*** empty log message ***
authorroot <root>
Mon, 17 Jan 2005 00:59:23 +0000 (00:59 +0000)
committerroot <root>
Mon, 17 Jan 2005 00:59:23 +0000 (00:59 +0000)
autoconf/config.h.in
autoconf/configure.in
src/command.C
src/init.C
src/main.C
src/rxvt.h
src/rxvttoolkit.C
src/rxvttoolkit.h

index d4a24ff..af36fb4 100644 (file)
-/* autoconf/config.h.in.  Generated automatically from autoconf/configure.in by autoheader 2.13.  */
+/* autoconf/config.h.in.  Generated from autoconf/configure.in by autoheader.  */
 
 
-/* Define if on AIX 3.
-   System headers sometimes define this.
-   We just want to avoid a redefinition error message.  */
-#ifndef _ALL_SOURCE
-#undef _ALL_SOURCE
-#endif
-
-/* Define to empty if the keyword does not work.  */
-#undef const
+/* Define if you want blinking cursor support */
+#undef CURSOR_BLINK
 
 
-/* Define to `int' if <sys/types.h> doesn't define.  */
-#undef gid_t
+/* Define if you want 8 bit control sequences */
+#undef EIGHT_BIT_CONTROLS
 
 
-/* Define if you have <sys/wait.h> that is POSIX.1 compatible.  */
-#undef HAVE_SYS_WAIT_H
+/* Define if you want to automatically compose combining characters */
+#undef ENABLE_COMBINING
 
 
-/* Define as __inline if that's what the C compiler calls it.  */
-#undef inline
+/* Define if you want handling for rarely used but handy features */
+#undef ENABLE_FRILLS
 
 
-/* Define to `int' if <sys/types.h> doesn't define.  */
-#undef mode_t
+/* Define if you want bold and italic support */
+#undef ENABLE_STYLES
 
 
-/* Define to `int' if <sys/types.h> doesn't define.  */
-#undef pid_t
+/* Define if you want european extended codesets */
+#undef ENCODING_EU
 
 
-/* Define if you need to in order for stat and other things to work.  */
-#undef _POSIX_SOURCE
+/* Define if you want japanese codesets */
+#undef ENCODING_JP
 
 
-/* Define as the return type of signal handlers (int or void).  */
-#undef RETSIGTYPE
+/* Define if you want extended japanese codesets */
+#undef ENCODING_JP_EXT
 
 
-/* Define if you have the ANSI C header files.  */
-#undef STDC_HEADERS
+/* Define if you want korean codesets */
+#undef ENCODING_KR
 
 
-/* Define if you can safely include both <sys/time.h> and <time.h>.  */
-#undef TIME_WITH_SYS_TIME
+/* Define if you want vietnamese codesets */
+#undef ENCODING_VN
 
 
-/* Define to `int' if <sys/types.h> doesn't define.  */
-#undef uid_t
+/* Define if you want chinese codesets */
+#undef ENCODING_ZH
 
 
-/* Define if the X Window System is missing or not being used.  */
-#undef X_DISPLAY_MISSING
+/* Define if you want extended chinese codesets */
+#undef ENCODING_ZH_EXT
 
 
-/* The number of bytes in a int.  */
-#undef SIZEOF_INT
+/* Define if you want the depth of scrollbars and menus to be less */
+#undef HALFSHADOW
 
 
-/* The number of bytes in a int *.  */
-#undef SIZEOF_INT_P
+/* Define to 1 if you have the <assert.h> header file. */
+#undef HAVE_ASSERT_H
 
 
-/* The number of bytes in a long long.  */
-#undef SIZEOF_LONG_LONG
+/* Define to 1 if you have the `atexit' function. */
+#undef HAVE_ATEXIT
 
 
-/* The number of bytes in a short.  */
-#undef SIZEOF_SHORT
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
 
 
-/* Define if you have the _getpty function.  */
-#undef HAVE__GETPTY
+/* Define to 1 if you have the <fcntl.h> header file. */
+#undef HAVE_FCNTL_H
 
 
-/* Define if you have the atexit function.  */
-#undef HAVE_ATEXIT
+/* Define if you have _GNU_SOURCE getpt() */
+#undef HAVE_GETPT
 
 
-/* Define if you have the grantpt function.  */
+/* Define to 1 if you have the `grantpt' function. */
 #undef HAVE_GRANTPT
 
 #undef HAVE_GRANTPT
 
-/* Define if you have the isastream function.  */
+/* Define to 1 if you have the <grp.h> header file. */
+#undef HAVE_GRP_H
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the `isastream' function. */
 #undef HAVE_ISASTREAM
 
 #undef HAVE_ISASTREAM
 
-/* Define if you have the nanosleep function.  */
+/* Define to 1 if you have the <lastlog.h> header file. */
+#undef HAVE_LASTLOG_H
+
+/* Define to 1 if you have the <libc.h> header file. */
+#undef HAVE_LIBC_H
+
+/* Define to 1 if you have the `Xft' library (-lXft). */
+#undef HAVE_LIBXFT
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the `nanosleep' function. */
 #undef HAVE_NANOSLEEP
 
 #undef HAVE_NANOSLEEP
 
-/* Define if you have the on_exit function.  */
+/* Define if nl_langinfo(CODESET) works */
+#undef HAVE_NL_LANGINFO
+
+/* Define to 1 if you have the `on_exit' function. */
 #undef HAVE_ON_EXIT
 
 #undef HAVE_ON_EXIT
 
-/* Define if you have the openpty function.  */
+/* Define to 1 if you have the `openpty' function. */
 #undef HAVE_OPENPTY
 
 #undef HAVE_OPENPTY
 
-/* Define if you have the revoke function.  */
+/* Define to 1 if you have the <pty.h> header file. */
+#undef HAVE_PTY_H
+
+/* Define to 1 if you have the `revoke' function. */
 #undef HAVE_REVOKE
 
 #undef HAVE_REVOKE
 
-/* Define if you have the seteuid function.  */
+/* Define to 1 if you have the `seteuid' function. */
 #undef HAVE_SETEUID
 
 #undef HAVE_SETEUID
 
-/* Define if you have the setpgid function.  */
+/* Define if plain old setlocale works */
+#undef HAVE_SETLOCALE
+
+/* Define to 1 if you have the `setpgid' function. */
 #undef HAVE_SETPGID
 
 #undef HAVE_SETPGID
 
-/* Define if you have the setpgrp function.  */
+/* Define to 1 if you have the `setpgrp' function. */
 #undef HAVE_SETPGRP
 
 #undef HAVE_SETPGRP
 
-/* Define if you have the setreuid function.  */
+/* Define to 1 if you have the `setreuid' function. */
 #undef HAVE_SETREUID
 
 #undef HAVE_SETREUID
 
-/* Define if you have the setsid function.  */
+/* Define to 1 if you have the `setsid' function. */
 #undef HAVE_SETSID
 
 #undef HAVE_SETSID
 
-/* Define if you have the setutent function.  */
+/* Define to 1 if you have the `setutent' function. */
 #undef HAVE_SETUTENT
 
 #undef HAVE_SETUTENT
 
-/* Define if you have the ttyslot function.  */
-#undef HAVE_TTYSLOT
-
-/* Define if you have the unlockpt function.  */
-#undef HAVE_UNLOCKPT
-
-/* Define if you have the unsetenv function.  */
-#undef HAVE_UNSETENV
-
-/* Define if you have the updwtmp function.  */
-#undef HAVE_UPDWTMP
-
-/* Define if you have the <X11/Xft/Xft.h> header file.  */
-#undef HAVE_X11_XFT_XFT_H
-
-/* Define if you have the <assert.h> header file.  */
-#undef HAVE_ASSERT_H
-
-/* Define if you have the <dlfcn.h> header file.  */
-#undef HAVE_DLFCN_H
-
-/* Define if you have the <fcntl.h> header file.  */
-#undef HAVE_FCNTL_H
+/* Define to 1 if you have the <stdarg.h> header file. */
+#undef HAVE_STDARG_H
 
 
-/* Define if you have the <grp.h> header file.  */
-#undef HAVE_GRP_H
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
 
 
-/* Define if you have the <lastlog.h> header file.  */
-#undef HAVE_LASTLOG_H
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
 
 
-/* Define if you have the <libc.h> header file.  */
-#undef HAVE_LIBC_H
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
 
 
-/* Define if you have the <pty.h> header file.  */
-#undef HAVE_PTY_H
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
 
 
-/* Define if you have the <stdarg.h> header file.  */
-#undef HAVE_STDARG_H
+/* Define if utmp.h or lastlog.h has struct lastlog */
+#undef HAVE_STRUCT_LASTLOG
 
 
-/* Define if you have the <stdint.h> header file.  */
-#undef HAVE_STDINT_H
+/* Define if utmpx.h or lastlog.h has struct lastlogx */
+#undef HAVE_STRUCT_LASTLOGX
 
 
-/* Define if you have the <stdlib.h> header file.  */
-#undef HAVE_STDLIB_H
+/* Define if utmp.h has struct utmp */
+#undef HAVE_STRUCT_UTMP
 
 
-/* Define if you have the <string.h> header file.  */
-#undef HAVE_STRING_H
+/* Define if utmpx.h has struct utmpx */
+#undef HAVE_STRUCT_UTMPX
 
 
-/* Define if you have the <sys/byteorder.h> header file.  */
+/* Define to 1 if you have the <sys/byteorder.h> header file. */
 #undef HAVE_SYS_BYTEORDER_H
 
 #undef HAVE_SYS_BYTEORDER_H
 
-/* Define if you have the <sys/ioctl.h> header file.  */
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
 #undef HAVE_SYS_IOCTL_H
 
 #undef HAVE_SYS_IOCTL_H
 
-/* Define if you have the <sys/select.h> header file.  */
+/* Define to 1 if you have the <sys/select.h> header file. */
 #undef HAVE_SYS_SELECT_H
 
 #undef HAVE_SYS_SELECT_H
 
-/* Define if you have the <sys/sockio.h> header file.  */
+/* Define to 1 if you have the <sys/sockio.h> header file. */
 #undef HAVE_SYS_SOCKIO_H
 
 #undef HAVE_SYS_SOCKIO_H
 
-/* Define if you have the <sys/stropts.h> header file.  */
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/stropts.h> header file. */
 #undef HAVE_SYS_STROPTS_H
 
 #undef HAVE_SYS_STROPTS_H
 
-/* Define if you have the <sys/strredir.h> header file.  */
+/* Define to 1 if you have the <sys/strredir.h> header file. */
 #undef HAVE_SYS_STRREDIR_H
 
 #undef HAVE_SYS_STRREDIR_H
 
-/* Define if you have the <sys/time.h> header file.  */
+/* Define to 1 if you have the <sys/time.h> header file. */
 #undef HAVE_SYS_TIME_H
 
 #undef HAVE_SYS_TIME_H
 
-/* Define if you have the <termios.h> header file.  */
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
+#undef HAVE_SYS_WAIT_H
+
+/* Define to 1 if you have the <termios.h> header file. */
 #undef HAVE_TERMIOS_H
 
 #undef HAVE_TERMIOS_H
 
-/* Define if you have the <unistd.h> header file.  */
+/* Define to 1 if you have the `ttyslot' function. */
+#undef HAVE_TTYSLOT
+
+/* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
 #undef HAVE_UNISTD_H
 
-/* Define if you have the <utmp.h> header file.  */
-#undef HAVE_UTMP_H
+/* Define to 1 if you have the `unlockpt' function. */
+#undef HAVE_UNLOCKPT
 
 
-/* Define if you have the <utmpx.h> header file.  */
+/* Define to 1 if you have the `unsetenv' function. */
+#undef HAVE_UNSETENV
+
+/* Define to 1 if you have the `updwtmp' function. */
+#undef HAVE_UPDWTMP
+
+/* Define to 1 if you have the <utmpx.h> header file. */
 #undef HAVE_UTMPX_H
 
 #undef HAVE_UTMPX_H
 
-/* Define if you have the Xft library (-lXft).  */
-#undef HAVE_LIBXFT
+/* Define if struct utmpx contains ut_host */
+#undef HAVE_UTMPX_HOST
 
 
-/* Use all glibc features. */
-#undef _GNU_SOURCE
+/* Define to 1 if you have the <utmp.h> header file. */
+#undef HAVE_UTMP_H
 
 
-/* Needed to get declarations for msg_control and msg_controllen on Solaris */
-#undef _XOPEN_SOURCE_EXTENDED
+/* Define if struct utmp contains ut_host */
+#undef HAVE_UTMP_HOST
 
 
-/* Needed to get declarations for msg_control and msg_controllen on Solaris */
-#undef _XOPEN_SOURCE
+/* Define if struct utmp contains ut_pid */
+#undef HAVE_UTMP_PID
 
 
-/* Needed to get declarations for msg_control and msg_controllen on Solaris */
-#undef __EXTENSIONS__
+/* Define to 1 if you have the <X11/Xft/Xft.h> header file. */
+#undef HAVE_X11_XFT_XFT_H
+
+/* Define if Xlocale support works */
+#undef HAVE_XLOCALE
+
+/* Define if you have XPointer typedef */
+#undef HAVE_XPOINTER
+
+/* Define if setlocale (defined to Xsetlocale) works */
+#undef HAVE_XSETLOCALE
+
+/* Define to 1 if you have the `_getpty' function. */
+#undef HAVE__GETPTY
+
+/* Define if you want ISO 14755 extended support */
+#undef ISO_14755
+
+/* Define if lastlog is provided via a directory */
+#undef LASTLOG_IS_DIR
+
+/* Define if you want to have lastlog support when utmp/utmpx is enabled */
+#undef LASTLOG_SUPPORT
 
 /* Build shared library version - specify via configure only */
 #undef LIBRXVT
 
 
 /* Build shared library version - specify via configure only */
 #undef LIBRXVT
 
-/* Define if you want the depth of scrollbars and menus to be less */
-#undef HALFSHADOW
+/* Define if you want Menubar support */
+#undef MENUBAR
 
 
-/* Define to change gid of ttys to group tty */
-#undef TTY_GID_SUPPORT
+/* Define to have CTRL cause wheel events to accelerate scrolling. Release
+   CTRL to halt scrolling */
+#undef MOUSE_SLIP_WHEELING
+
+/* Define to use wheel events (button4 and button5) to scroll */
+#undef MOUSE_WHEEL
+
+/* Support NeXT style scrollbars */
+#undef NEXT_SCROLLBAR
 
 /* Define if you don't want support for the backspace key */
 #undef NO_BACKSPACE_KEY
 
 /* Define if you don't want support for the backspace key */
 #undef NO_BACKSPACE_KEY
 /* Define if you don't want any resources read */
 #undef NO_RESOURCES
 
 /* Define if you don't want any resources read */
 #undef NO_RESOURCES
 
-/* Define if you want to use XGetDefault instead of our internal version */
-#undef USE_XGETDEFAULT
+/* Define for continual scrolling when you keep the scrollbar button pressed
+   */
+#undef NO_SCROLLBAR_BUTTON_CONTINUAL_SCROLLING
 
 
-/* Fallback resource class */
-#undef RESFALLBACK
+/* Disable the secondary screen. Many programs use the secondary screen as
+   their workplace */
+#undef NO_SECONDARY_SCREEN
 
 
-/* Default resource name */
-#undef RESNAME
+/* Define if you don't need to use our replacement string functions */
+#undef NO_STRINGS
 
 
-/* Resource class */
-#undef RESCLASS
+/* Define if you want faded colors when focus is lost */
+#undef OFF_FOCUS_FADING
 
 
-/* Binary base name */
-#undef RXVTNAME
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
 
 
-/* Disable the secondary screen. Many programs use the secondary screen as their workplace */
-#undef NO_SECONDARY_SCREEN
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
 
 
-/* Define to use smart resize behavior */
-#undef SMART_RESIZE
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
 
 
-/* Set TERM to the value given by configure */
-#undef TERMENV
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
 
 
-/* Set TERMINFO value to the value given by configure */
-#undef RXVT_TERMINFO
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
 
 
-/* Define if you need function prototypes */
-#undef PROTOTYPES
-
-/* Define if you include <X11/xpm.h> on a normal include path (be careful) */
-#undef XPM_INC_X11
-
-/* Define if you have XPointer typedef */
-#undef HAVE_XPOINTER
+/* Support plain style scrollbars */
+#undef PLAIN_SCROLLBAR
 
 
-/* Define if utmp.h has struct utmp */
-#undef HAVE_STRUCT_UTMP
+/* Define if you want hide the pointer while typing */
+#undef POINTER_BLANK
 
 
-/* Define if struct utmp contains ut_host */
-#undef HAVE_UTMP_HOST
+/* Define to use a 24 bit visual if the screen has 24 bit mode */
+#undef PREFER_24BIT
 
 
-/* Define if struct utmp contains ut_pid */
-#undef HAVE_UTMP_PID
+/* Define if you need function prototypes */
+#undef PROTOTYPES
 
 
-/* Define if utmpx.h has struct utmpx */
-#undef HAVE_STRUCT_UTMPX
+/* Define for first char in devptyXX */
+#undef PTYCHAR1
 
 
-/* Define if struct utmpx contains ut_host */
-#undef HAVE_UTMPX_HOST
+/* Define for second char in devptyXX */
+#undef PTYCHAR2
 
 
-/* Define if utmp.h or lastlog.h has struct lastlog */
-#undef HAVE_STRUCT_LASTLOG
+/* Define for this pty type */
+#undef PTYS_ARE_CLONE
 
 
-/* Define if utmpx.h or lastlog.h has struct lastlogx */
-#undef HAVE_STRUCT_LASTLOGX
+/* Define for this pty type */
+#undef PTYS_ARE_GETPT
 
 
-/* Define location of utmp */
-#undef RXVT_UTMP_FILE
+/* Define for this pty type */
+#undef PTYS_ARE_GETPTY
 
 
-/* Define location of utmpx */
-#undef RXVT_UTMPX_FILE
+/* Define for this pty type */
+#undef PTYS_ARE_NUMERIC
 
 
-/* Define location of wtmp */
-#undef RXVT_WTMP_FILE
+/* Define for this pty type */
+#undef PTYS_ARE_OPENPTY
 
 
-/* Define location of wtmpx */
-#undef RXVT_WTMPX_FILE
+/* Define for this pty type */
+#undef PTYS_ARE_PTC
 
 
-/* Define location of lastlog */
-#undef RXVT_LASTLOG_FILE
+/* Define for this pty type */
+#undef PTYS_ARE_PTMX
 
 
-/* Define if lastlog is provided via a directory */
-#undef LASTLOG_IS_DIR
+/* Define for this pty type */
+#undef PTYS_ARE_SEARCHED
 
 
-/* Define location of lastlogx */
-#undef RXVT_LASTLOGX_FILE
+/* Define for this pty type */
+#undef PTYS_ARE__GETPTY
 
 
-/* Define location of ttys/ttytab */
-#undef TTYTAB_FILENAME
+/* Resource class */
+#undef RESCLASS
 
 
-/* Define if Xlocale support works */
-#undef HAVE_XLOCALE
+/* Fallback resource class */
+#undef RESFALLBACK
 
 
-/* Define if setlocale (defined to Xsetlocale) works */
-#undef HAVE_XSETLOCALE
+/* Default resource name */
+#undef RESNAME
 
 
-/* Define if plain old setlocale works */
-#undef HAVE_SETLOCALE
+/* Define as the return type of signal handlers (`int' or `void'). */
+#undef RETSIGTYPE
 
 
-/* Define if nl_langinfo(CODESET) works */
-#undef HAVE_NL_LANGINFO
+/* Binary base name */
+#undef RXVTNAME
 
 
-/* Define if your XIMCallback specifies XIC as first type. */
-#undef XIMCB_PROTO_BROKEN
+/* Define location of lastlogx */
+#undef RXVT_LASTLOGX_FILE
 
 
-/* Define if you have _GNU_SOURCE getpt()  */
-#undef HAVE_GETPT
+/* Define location of lastlog */
+#undef RXVT_LASTLOG_FILE
 
 
-/* Define for this pty type */
-#undef PTYS_ARE_OPENPTY
+/* Support Rxvt original style scrollbars */
+#undef RXVT_SCROLLBAR
 
 
-/* Define for this pty type */
-#undef PTYS_ARE_NUMERIC
+/* Set TERMINFO value to the value given by configure */
+#undef RXVT_TERMINFO
 
 
-/* Define for this pty type */
-#undef PTYS_ARE_PTMX
+/* Define location of utmpx */
+#undef RXVT_UTMPX_FILE
 
 
-/* Define for this pty type */
-#undef PTYS_ARE_PTC
+/* Define location of utmp */
+#undef RXVT_UTMP_FILE
 
 
-/* Define for this pty type */
-#undef PTYS_ARE__GETPTY
+/* Define location of wtmpx */
+#undef RXVT_WTMPX_FILE
 
 
-/* Define for this pty type */
-#undef PTYS_ARE_GETPTY
+/* Define location of wtmp */
+#undef RXVT_WTMP_FILE
 
 
-/* Define for this pty type */
-#undef PTYS_ARE_GETPT
+/* Define to allow scrolling when the selection moves to the top or bottom of
+   the screen */
+#undef SELECTION_SCROLLING
 
 
-/* Define for this pty type */
-#undef PTYS_ARE_CLONE
+/* The size of a `int', as computed by sizeof. */
+#undef SIZEOF_INT
 
 
-/* Define for this pty type */
-#undef PTYS_ARE_SEARCHED
+/* The size of a `int *', as computed by sizeof. */
+#undef SIZEOF_INT_P
 
 
-/* Define for first char in devptyXX */
-#undef PTYCHAR1
+/* The size of a `long long', as computed by sizeof. */
+#undef SIZEOF_LONG_LONG
 
 
-/* Define for second char in devptyXX */
-#undef PTYCHAR2
+/* The size of a `short', as computed by sizeof. */
+#undef SIZEOF_SHORT
 
 
-/* Define to enable xft support */
-#undef XFT
+/* Define to use "smart" resize behavior */
+#undef SMART_RESIZE
 
 
-/* Define if you want bold and italic support */
-#undef ENABLE_STYLES
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
 
 
-/* Define if you want ISO 14755 extended support */
-#undef ISO_14755
+/* Set TERM to the value given by configure */
+#undef TERMENV
 
 
-/* Define if you want 8 bit control sequences */
-#undef EIGHT_BIT_CONTROLS
+/* Define if you want blinking text support */
+#undef TEXT_BLINK
 
 
-/* Define if you want faded colors when focus is lost */
-#undef OFF_FOCUS_FADING
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+#undef TIME_WITH_SYS_TIME
 
 /* Define if you want your background to be tinted */
 #undef TINTING
 
 /* Define if you want your background to be tinted */
 #undef TINTING
 /* Define if you want your background to use the parent window background */
 #undef TRANSPARENT
 
 /* Define if you want your background to use the parent window background */
 #undef TRANSPARENT
 
-/* Define for continual scrolling when you keep the scrollbar button pressed */
-#undef NO_SCROLLBAR_BUTTON_CONTINUAL_SCROLLING
-
-/* Define to allow scrolling when the selection moves to the top or bottom of the screen */
-#undef SELECTION_SCROLLING
-
-/* Define if you want Menubar support */
-#undef MENUBAR
+/* Define location of ttys/ttytab */
+#undef TTYTAB_FILENAME
 
 
-/* Define if you want handling for rarely used but handy features */
-#undef ENABLE_FRILLS
+/* Define to change gid of ttys to group tty */
+#undef TTY_GID_SUPPORT
 
 
-/* Define to use a 24 bit visual if the screen has 24 bit mode */
-#undef PREFER_24BIT
+/* Define if you want to represent unicode characters outside plane 0 */
+#undef UNICODE_3
 
 
-/* Define to use wheel events (button4 and button5) to scroll */
-#undef MOUSE_WHEEL
+/* Define if you want to use XGetDefault instead of our internal version */
+#undef USE_XGETDEFAULT
 
 
-/* Define to have CTRL cause wheel events to accelerate scrolling. Release CTRL to halt scrolling */
-#undef MOUSE_SLIP_WHEELING
+/* Define if you want to have XIM (X Input Method) protocol support - required
+   for multibyte characters input */
+#undef USE_XIM
 
 /* Define if you want to have utmp/utmpx support */
 #undef UTMP_SUPPORT
 
 /* Define if you want to have utmp/utmpx support */
 #undef UTMP_SUPPORT
 /* Define if you want to have wtmp support when utmp/utmpx is enabled */
 #undef WTMP_SUPPORT
 
 /* Define if you want to have wtmp support when utmp/utmpx is enabled */
 #undef WTMP_SUPPORT
 
-/* Define if you want to have lastlog support when utmp/utmpx is enabled */
-#undef LASTLOG_SUPPORT
+/* Define to enable xft support */
+#undef XFT
 
 
-/* Define if you want to have XIM (X Input Method) protocol support - required for multibyte characters input */
-#undef USE_XIM
+/* Define if your XIMCallback specifies XIC as first type. */
+#undef XIMCB_PROTO_BROKEN
 
 /* Define if you want to have sexy-looking background pixmaps. Needs libXpm */
 #undef XPM_BACKGROUND
 
 
 /* Define if you want to have sexy-looking background pixmaps. Needs libXpm */
 #undef XPM_BACKGROUND
 
-/* Support Rxvt original style scrollbars */
-#undef RXVT_SCROLLBAR
-
-/* Support NeXT style scrollbars */
-#undef NEXT_SCROLLBAR
+/* Define if you include <X11/xpm.h> on a normal include path (be careful) */
+#undef XPM_INC_X11
 
 /* Support Xterm style scrollbars */
 #undef XTERM_SCROLLBAR
 
 
 /* Support Xterm style scrollbars */
 #undef XTERM_SCROLLBAR
 
-/* Support plain style scrollbars */
-#undef PLAIN_SCROLLBAR
-
-/* Define if you want hide the pointer while typing */
-#undef POINTER_BLANK
-
-/* Define if you want blinking cursor support */
-#undef CURSOR_BLINK
-
-/* Define if you want blinking text support */
-#undef TEXT_BLINK
+/* Define to 1 if the X Window System is missing or not being used. */
+#undef X_DISPLAY_MISSING
 
 
-/* Define if you want to represent unicode characters outside plane 0 */
-#undef UNICODE_3
+/* Define to 1 if on AIX 3.
+   System headers sometimes define this.
+   We just want to avoid a redefinition error message.  */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
 
 
-/* Define if you want to automatically compose combining characters */
-#undef ENABLE_COMBINING
+/* Use all glibc features. */
+#undef _GNU_SOURCE
 
 
-/* Define if you want european extended codesets */
-#undef ENCODING_EU
+/* Needed to get declarations for msg_control and msg_controllen on Solaris */
+#undef _XOPEN_SOURCE
 
 
-/* Define if you want vietnamese codesets */
-#undef ENCODING_VN
+/* Needed to get declarations for msg_control and msg_controllen on Solaris */
+#undef _XOPEN_SOURCE_EXTENDED
 
 
-/* Define if you want japanese codesets */
-#undef ENCODING_JP
+/* Needed to get declarations for msg_control and msg_controllen on Solaris */
+#undef __EXTENSIONS__
 
 
-/* Define if you want extended japanese codesets */
-#undef ENCODING_JP_EXT
+/* Define to empty if `const' does not conform to ANSI C. */
+#undef const
 
 
-/* Define if you want korean codesets */
-#undef ENCODING_KR
+/* Define to `int' if <sys/types.h> doesn't define. */
+#undef gid_t
 
 
-/* Define if you want chinese codesets */
-#undef ENCODING_ZH
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+   calls it, or to nothing if 'inline' is not supported under any name.  */
+#ifndef __cplusplus
+#undef inline
+#endif
 
 
-/* Define if you want extended chinese codesets */
-#undef ENCODING_ZH_EXT
+/* Define to `int' if <sys/types.h> does not define. */
+#undef mode_t
 
 
-/* Define if you don't need to use our replacement string functions */
-#undef NO_STRINGS
+/* Define to `int' if <sys/types.h> does not define. */
+#undef pid_t
 
 
+/* Define to `int' if <sys/types.h> doesn't define. */
+#undef uid_t
index 86777dd..2565d1c 100644 (file)
@@ -2,6 +2,8 @@ dnl# -*- sh -*-
 dnl#
 dnl# Process this file with autoconf to produce a configure script.
 dnl#
 dnl#
 dnl# Process this file with autoconf to produce a configure script.
 dnl#
+orig_CXXFLAGS="$CXXFLAGS"
+
 AC_INIT
 AC_CONFIG_SRCDIR([src/feature.h])
 AC_CONFIG_AUX_DIR(autoconf)
 AC_INIT
 AC_CONFIG_SRCDIR([src/feature.h])
 AC_CONFIG_AUX_DIR(autoconf)
@@ -35,6 +37,17 @@ AC_PROG_AWK
 
 AC_LANG(C)
 
 
 AC_LANG(C)
 
+dnl# --------------------------------------------------------------------------
+dnl# Supply default CFLAGS, if not specified by `CFLAGS=flags ./configure'
+dnl#
+if test -z "$orig_CXXFLAGS"; then
+  CXXFLAGS='-O'
+  if test x$GCC = xyes && test "x$GXX" = xyes; then
+    CXXFLAGS="-g -O3"
+  fi
+  CFLAGS="$CXXFLAGS"
+fi
+
 LINKER="$CXX"
 if test x$GCC = xyes && test x$GXX = xyes; then
    AC_CHECK_LIB(supc++, main, [
 LINKER="$CXX"
 if test x$GCC = xyes && test x$GXX = xyes; then
    AC_CHECK_LIB(supc++, main, [
@@ -447,21 +460,6 @@ dnl# --------------------------------------------------------------------------
 
 AC_DEFINE(PROTOTYPES, 1, Define if you need function prototypes)
 
 
 AC_DEFINE(PROTOTYPES, 1, Define if you need function prototypes)
 
-dnl# --------------------------------------------------------------------------
-dnl# Supply default CFLAGS, if not specified by `CFLAGS=flags ./configure'
-dnl#
-if test -z "$CFLAGS"; then
-    if test -z "$CCOPTS"; then
-       CCOPTS='-O'
-dnl>   if test "x$GCC" = xyes; then
-dnl>       if test x$system = xLinux; then
-dnl>           CCOPTS="$CCOPTS "'-O2 -fno-strength-reduce'
-dnl>       fi
-dnl>   fi
-    fi
-    CFLAGS="$CCOPTS"
-fi
-
 AC_PATH_PROG(MV, mv, mv)
 AC_PATH_PROG(RM, rm, rm)
 AC_PATH_PROG(CP, cp, cp)
 AC_PATH_PROG(MV, mv, mv)
 AC_PATH_PROG(RM, rm, rm)
 AC_PATH_PROG(CP, cp, cp)
index b6e3d53..2beae70 100644 (file)
 #include "version.h"
 #include "command.h"
 
 #include "version.h"
 #include "command.h"
 
+#ifdef KEYSYM_RESOURCE
+# include "keyboard.h"
+#endif
+
 #include <cwchar>
 #include <csignal>
 
 #include <cwchar>
 #include <csignal>
 
@@ -346,6 +350,11 @@ rxvt_term::lookup_key (XKeyEvent &ev)
 
   if (valid_keysym)
     {
 
   if (valid_keysym)
     {
+#ifdef KEYSYM_RESOURCE
+      if (keyboard->dispatch (this, keysym, ev.state))
+        return;
+#endif
+
       if (TermWin.saveLines)
         {
 #ifdef UNSHIFTED_SCROLLKEYS
       if (TermWin.saveLines)
         {
 #ifdef UNSHIFTED_SCROLLKEYS
@@ -489,31 +498,6 @@ rxvt_term::lookup_key (XKeyEvent &ev)
 
       if (keysym >= 0xFF00 && keysym <= 0xFFFF)
         {
 
       if (keysym >= 0xFF00 && keysym <= 0xFFFF)
         {
-#ifdef KEYSYM_RESOURCE
-          if (!(shft | ctrl) && Keysym_map[keysym & 0xFF] != NULL)
-            {
-              unsigned int    l;
-              const unsigned char *kbuf0;
-
-              kbuf0 = (Keysym_map[keysym & 0xFF]);
-              l = (unsigned int)*kbuf0++;
-
-              /* escape prefix */
-              if (meta
-# ifdef META8_OPTION
-                  && meta_char == C0_ESC
-# endif
-                 )
-                {
-                  const unsigned char ch = C0_ESC;
-                  tt_write (&ch, 1);
-                }
-
-              tt_write (kbuf0, l);
-              return;
-            }
-          else
-#endif
             {
               newlen = 1;
               switch (keysym)
             {
               newlen = 1;
               switch (keysym)
@@ -787,11 +771,8 @@ rxvt_term::lookup_key (XKeyEvent &ev)
                     break;
 #undef FKEY
                   default:
                     break;
 #undef FKEY
                   default:
-                    if (len == 0 
-                        && (keysym & 0xfff0) != 0xff70
-                        && (keysym & 0xfff0) != 0xffe0)
-                      /* generate a keycode for every remaining keypress */
-                      sprintf ((char *)kbuf, "\033[%x;%xA", (unsigned char)ev.state, (unsigned short)keysym);
+                    newlen = 0;
+                    break;
                 }
 
               if (newlen)
                 }
 
               if (newlen)
@@ -817,13 +798,6 @@ rxvt_term::lookup_key (XKeyEvent &ev)
           strcpy (kbuf, "\033[Z");
           len = 3;
         }
           strcpy (kbuf, "\033[Z");
           len = 3;
         }
-      else if (len == 0
-               && (keysym & 0xffe0) != 0xfe00
-               && (keysym < 0xfe50 || keysym > 0xfe6f))
-        {
-          /* generate a keycode for every remaining keypress */
-          len = sprintf ((char *)kbuf, "\033[%x;%xA", (unsigned char)ev.state, (unsigned short)keysym);
-        }
       else
         {
 #ifdef META8_OPTION
       else
         {
 #ifdef META8_OPTION
@@ -891,7 +865,7 @@ rxvt_term::lookup_key (XKeyEvent &ev)
 }
 /*}}} */
 
 }
 /*}}} */
 
-#if (MENUBAR_MAX)
+#if MENUBAR_MAX || defined (KEYSYM_RESOURCE)
 /*{{{ rxvt_cmd_write (), rxvt_cmd_getc () */
 /* attempt to `write' count to the input buffer */
 unsigned int
 /*{{{ rxvt_cmd_write (), rxvt_cmd_getc () */
 /* attempt to `write' count to the input buffer */
 unsigned int
@@ -924,7 +898,7 @@ rxvt_term::cmd_write (const unsigned char *str, unsigned int count)
 
   return 0;
 }
 
   return 0;
 }
-#endif                         /* MENUBAR_MAX */
+#endif
 
 void
 rxvt_term::flush ()
 
 void
 rxvt_term::flush ()
@@ -1035,6 +1009,10 @@ rxvt_term::slip_wheel_cb (time_watcher &w)
       || mouse_slip_wheel_speed < 0 ? scr_page (DN, -mouse_slip_wheel_speed)
                                     : scr_page (UP,  mouse_slip_wheel_speed))
     {
       || mouse_slip_wheel_speed < 0 ? scr_page (DN, -mouse_slip_wheel_speed)
                                     : scr_page (UP,  mouse_slip_wheel_speed))
     {
+      if (TermWin.view_start == TermWin.nscrolled ||
+          TermWin.view_start == 0)
+        mouse_slip_wheel_speed = 0;
+
       refresh_type |= SMOOTH_REFRESH;
       want_refresh = 1;
       w.start (w.at + SCROLLBAR_CONTINUOUS_DELAY);
       refresh_type |= SMOOTH_REFRESH;
       want_refresh = 1;
       w.start (w.at + SCROLLBAR_CONTINUOUS_DELAY);
@@ -1107,7 +1085,7 @@ rxvt_term::pointer_blank ()
   if (! (options & Opt_pointerBlank))
     return;
 
   if (! (options & Opt_pointerBlank))
     return;
 
-  XDefineCursor (display->display, TermWin.vt, blank_cursor);
+  XDefineCursor (display->display, TermWin.vt, display->blank_cursor);
   XFlush (display->display);
 
   hidden_pointer = 1;
   XFlush (display->display);
 
   hidden_pointer = 1;
@@ -1769,7 +1747,7 @@ rxvt_term::button_press (XButtonEvent &ev)
                 /* allow meta + click to select rectangular areas */
                 /* should be done in screen.C */
 #if ENABLE_FRILLS
                 /* allow meta + click to select rectangular areas */
                 /* should be done in screen.C */
 #if ENABLE_FRILLS
-                selection.rect = !! (ev.state & ModMetaMask);
+                selection.rect = !!(ev.state & ModMetaMask);
 #else
                 selection.rect = false;
 #endif
 #else
                 selection.rect = false;
 #endif
@@ -3852,6 +3830,7 @@ rxvt_term::process_xterm_seq (int op, const char *str, unsigned char resp)
         else
           {
             set_locale (str);
         else
           {
             set_locale (str);
+            pty.set_utf8_mode (enc_utf8);
 # ifdef USE_XIM
             im_cb ();
 # endif
 # ifdef USE_XIM
             im_cb ();
 # endif
index 5fbf298..ffb7fbf 100644 (file)
@@ -33,6 +33,7 @@
 
 #include "../config.h"          /* NECESSARY */
 #include "rxvt.h"               /* NECESSARY */
 
 #include "../config.h"          /* NECESSARY */
 #include "rxvt.h"               /* NECESSARY */
+#include "rxvtutil.h"
 #include "init.h"
 
 #include <csignal>
 #include "init.h"
 
 #include <csignal>
@@ -382,9 +383,6 @@ rxvt_term::init_resources (int argc, const char *const *argv)
     TermWin.int_bwidth = min (i, 100);    /* arbitrary limit */
   if (rs[Rs_ext_bwidth] && (i = atoi (rs[Rs_ext_bwidth])) >= 0)
     TermWin.ext_bwidth = min (i, 100);    /* arbitrary limit */
     TermWin.int_bwidth = min (i, 100);    /* arbitrary limit */
   if (rs[Rs_ext_bwidth] && (i = atoi (rs[Rs_ext_bwidth])) >= 0)
     TermWin.ext_bwidth = min (i, 100);    /* arbitrary limit */
-#endif
-
-#ifndef NO_LINESPACE
   if (rs[Rs_lineSpace] && (i = atoi (rs[Rs_lineSpace])) >= 0)
     TermWin.lineSpace = min (i, 100);     /* arbitrary limit */
 #endif
   if (rs[Rs_lineSpace] && (i = atoi (rs[Rs_lineSpace])) >= 0)
     TermWin.lineSpace = min (i, 100);     /* arbitrary limit */
 #endif
@@ -606,16 +604,17 @@ rxvt_term::set_locale (const char *locale)
   mbstate.reset ();
 #endif
 
   mbstate.reset ();
 #endif
 
-#if 0
 #if HAVE_NL_LANGINFO
   char *codeset = strdup (nl_langinfo (CODESET));
 #if HAVE_NL_LANGINFO
   char *codeset = strdup (nl_langinfo (CODESET));
-  enc_utf8 = !strcasecmp (codeset, "UTF-8")
-             || !strcasecmp (codeset, "UTF8");
+  // /^UTF.?8/i
+  enc_utf8 = (codeset[0] == 'U' || codeset[0] == 'u')
+          && (codeset[1] == 'T' || codeset[1] == 't')
+          && (codeset[2] == 'F' || codeset[2] == 'f')
+          && (codeset[3] == '8' || codeset[4] == '8');
   free (codeset);
 #else
   enc_utf8 = 0;
 #endif
   free (codeset);
 #else
   enc_utf8 = 0;
 #endif
-#endif
 }
 
 void
 }
 
 void
@@ -844,53 +843,71 @@ rxvt_term::get_ourmods ()
 
   requestedmeta = realmeta = realalt = 0;
   rsmod = rs[Rs_modifier];
 
   requestedmeta = realmeta = realalt = 0;
   rsmod = rs[Rs_modifier];
+
   if (rsmod
       && strcasecmp (rsmod, "mod1") >= 0 && strcasecmp (rsmod, "mod5") <= 0)
     requestedmeta = rsmod[3] - '0';
 
   map = XGetModifierMapping (display->display);
   kc = map->modifiermap;
   if (rsmod
       && strcasecmp (rsmod, "mod1") >= 0 && strcasecmp (rsmod, "mod5") <= 0)
     requestedmeta = rsmod[3] - '0';
 
   map = XGetModifierMapping (display->display);
   kc = map->modifiermap;
+
   for (i = 1; i < 6; i++)
     {
       k = (i + 2) * map->max_keypermod;       /* skip shift/lock/control */
   for (i = 1; i < 6; i++)
     {
       k = (i + 2) * map->max_keypermod;       /* skip shift/lock/control */
+
       for (j = map->max_keypermod; j--; k++)
         {
           if (kc[k] == 0)
             break;
       for (j = map->max_keypermod; j--; k++)
         {
           if (kc[k] == 0)
             break;
+
           switch (XKeycodeToKeysym (display->display, kc[k], 0))
             {
               case XK_Num_Lock:
                 ModNumLockMask = modmasks[i - 1];
           switch (XKeycodeToKeysym (display->display, kc[k], 0))
             {
               case XK_Num_Lock:
                 ModNumLockMask = modmasks[i - 1];
-                /* FALLTHROUGH */
-              default:
-                continue;       /* for (;;) */
+                continue;
+
+              case XK_ISO_Level3_Shift:
+                ModLevel3Mask = modmasks[i - 1];
+                continue;
+
               case XK_Meta_L:
               case XK_Meta_R:
                 cm = "meta";
                 realmeta = i;
                 break;
               case XK_Meta_L:
               case XK_Meta_R:
                 cm = "meta";
                 realmeta = i;
                 break;
+
               case XK_Alt_L:
               case XK_Alt_R:
                 cm = "alt";
                 realalt = i;
                 break;
               case XK_Alt_L:
               case XK_Alt_R:
                 cm = "alt";
                 realalt = i;
                 break;
+
               case XK_Super_L:
               case XK_Super_R:
                 cm = "super";
                 break;
               case XK_Super_L:
               case XK_Super_R:
                 cm = "super";
                 break;
+
               case XK_Hyper_L:
               case XK_Hyper_R:
                 cm = "hyper";
                 break;
               case XK_Hyper_L:
               case XK_Hyper_R:
                 cm = "hyper";
                 break;
+
+              default:
+                continue;
             }
             }
+
           if (rsmod && strncasecmp (rsmod, cm, strlen (cm)) == 0)
             requestedmeta = i;
         }
     }
           if (rsmod && strncasecmp (rsmod, cm, strlen (cm)) == 0)
             requestedmeta = i;
         }
     }
+
   XFreeModifiermap (map);
   XFreeModifiermap (map);
-  i = (requestedmeta ? requestedmeta
-       : (realmeta ? realmeta
-          : (realalt ? realalt : 0)));
+
+  i = requestedmeta ? requestedmeta
+    : realmeta      ? realmeta
+    : realalt       ? realalt
+    : 0;
+
   if (i)
     ModMetaMask = modmasks[i - 1];
 }
   if (i)
     ModMetaMask = modmasks[i - 1];
 }
@@ -1032,19 +1049,6 @@ rxvt_term::create_windows (int argc, const char *const *argv)
   leftptr_cursor = XCreateFontCursor (display->display, XC_left_ptr);
 #endif
 
   leftptr_cursor = XCreateFontCursor (display->display, XC_left_ptr);
 #endif
 
-#ifdef POINTER_BLANK
-  {
-    XColor blackcolour;
-    blackcolour.red   = 0;
-    blackcolour.green = 0;
-    blackcolour.blue  = 0;
-    Font f = XLoadFont (display->display, "fixed");
-    blank_cursor = XCreateGlyphCursor (display->display, f, f, ' ', ' ',
-                                       &blackcolour, &blackcolour);
-    XUnloadFont (display->display, f);
-  }
-#endif
-
   /* the vt window */
   TermWin.vt = XCreateSimpleWindow (display->display, TermWin.parent[0],
                                    window_vt_x,
   /* the vt window */
   TermWin.vt = XCreateSimpleWindow (display->display, TermWin.parent[0],
                                    window_vt_x,
@@ -1383,11 +1387,16 @@ rxvt_get_ttymode (ttymode_t *tio, int erase)
 void
 rxvt_term::run_command (const char *const *argv)
 {
 void
 rxvt_term::run_command (const char *const *argv)
 {
-  int er;
-
   if (!pty.get ())
     rxvt_fatal ("can't initialize pseudo-tty, aborting.\n");
 
   if (!pty.get ())
     rxvt_fatal ("can't initialize pseudo-tty, aborting.\n");
 
+  pty.set_utf8_mode (enc_utf8);
+
+  /* set initial window size */
+  tt_winch ();
+
+  int er;
+
 #ifndef NO_BACKSPACE_KEY
   if (key_backspace[0] && !key_backspace[1])
     er = key_backspace[0];
 #ifndef NO_BACKSPACE_KEY
   if (key_backspace[0] && !key_backspace[1])
     er = key_backspace[0];
@@ -1399,9 +1408,6 @@ rxvt_term::run_command (const char *const *argv)
 
   rxvt_get_ttymode (&tio, er);
 
 
   rxvt_get_ttymode (&tio, er);
 
-  /* set initial window size */
-  tt_winch ();
-
   sw_chld.start (SIGCHLD);
 
 #ifndef __QNX__
   sw_chld.start (SIGCHLD);
 
 #ifndef __QNX__
index 2c3216f..857d5ad 100644 (file)
@@ -35,6 +35,7 @@
 #include "main.intpro"          /* PROTOS for internal routines */
 
 #include <csignal>
 #include "main.intpro"          /* PROTOS for internal routines */
 
 #include <csignal>
+#include <cstring>
 
 #ifdef TTY_GID_SUPPORT
 # include <grp.h>
 
 #ifdef TTY_GID_SUPPORT
 # include <grp.h>
@@ -44,7 +45,9 @@
 # include <termios.h>
 #endif
 
 # include <termios.h>
 #endif
 
-#include <cstring>
+#ifdef KEYSYM_RESOURCE
+# include "keyboard.h"
+#endif
 
 vector<rxvt_term *> rxvt_term::termlist;
 
 
 vector<rxvt_term *> rxvt_term::termlist;
 
@@ -170,6 +173,13 @@ rxvt_term::rxvt_term ()
   cmdbuf_ptr = cmdbuf_endp = cmdbuf_base;
 
   termlist.push_back (this);
   cmdbuf_ptr = cmdbuf_endp = cmdbuf_base;
 
   termlist.push_back (this);
+
+#ifdef KEYSYM_RESOURCE
+  keyboard = new keyboard_manager;
+
+  if (!keyboard)
+    rxvt_fatal ("out of memory, aborting.\n");
+#endif
 }
 
 rxvt_term::~rxvt_term ()
 }
 
 rxvt_term::~rxvt_term ()
@@ -266,6 +276,10 @@ rxvt_term::~rxvt_term ()
 
   delete envv;
   delete argv;
 
   delete envv;
   delete argv;
+
+#ifdef KEYSYM_RESOURCE
+   delete keyboard;
+#endif
 }
 
 void
 }
 
 void
@@ -333,6 +347,8 @@ rxvt_term::init (int argc, const char *const *argv)
 {
   SET_R (this);
 
 {
   SET_R (this);
 
+  set_locale ("");
+
   if (!init_vars ())
     return false;
 
   if (!init_vars ())
     return false;
 
@@ -340,7 +356,9 @@ rxvt_term::init (int argc, const char *const *argv)
 
   const char **cmd_argv = init_resources (argc, argv);
 
 
   const char **cmd_argv = init_resources (argc, argv);
 
-  set_locale ("");
+#ifdef KEYSYM_RESOURCE
+  keyboard->register_done ();
+#endif
 
 #if MENUBAR_MAX
   menubar_read (rs[Rs_menu]);
 
 #if MENUBAR_MAX
   menubar_read (rs[Rs_menu]);
@@ -384,6 +402,8 @@ rxvt_term::init (int argc, const char *const *argv)
 
   init_command (cmd_argv);
 
 
   init_command (cmd_argv);
 
+  free (cmd_argv);
+
   pty_ev.start (pty.pty, EVENT_READ);
 
   check_ev.start ();
   pty_ev.start (pty.pty, EVENT_READ);
 
   check_ev.start ();
@@ -784,6 +804,7 @@ rxvt_term::set_fonts ()
   TermWin.fontset[0] = fs;
 
   prop = (*fs)[1]->properties ();
   TermWin.fontset[0] = fs;
 
   prop = (*fs)[1]->properties ();
+  prop.height += TermWin.lineSpace;
   fs->set_prop (prop);
 
   TermWin.fwidth  = prop.width;
   fs->set_prop (prop);
 
   TermWin.fwidth  = prop.width;
index 96f6bb7..2487a05 100644 (file)
@@ -12,7 +12,7 @@
 #include <X11/keysymdef.h>
 #include <X11/Xatom.h>
 #if ENABLE_FRILLS
 #include <X11/keysymdef.h>
 #include <X11/Xatom.h>
 #if ENABLE_FRILLS
-#include <X11/Xmd.h>
+# include <X11/Xmd.h>
 #endif
 
 #include "encoding.h"
 #endif
 
 #include "encoding.h"
@@ -606,7 +606,7 @@ enum {
   Rs_borderLess,
 #endif
   Rs_scrollBar_thickness,
   Rs_borderLess,
 #endif
   Rs_scrollBar_thickness,
-#ifndef NO_LINESPACE
+#if ENABLE_FRILLS
   Rs_lineSpace,
 #endif
   Rs_cutchars,
   Rs_lineSpace,
 #endif
   Rs_cutchars,
@@ -996,6 +996,10 @@ extern class rxvt_composite_vec rxvt_composite;
 #endif
 
 
 #endif
 
 
+#ifdef KEYSYM_RESOURCE
+  class keyboard_manager;
+#endif
+
 struct rxvt_term : zero_initialized, rxvt_vars {
   log_callback *log_hook;               // log error messages through this hook, if != 0
 
 struct rxvt_term : zero_initialized, rxvt_vars {
   log_callback *log_hook;               // log error messages through this hook, if != 0
 
@@ -1022,7 +1026,7 @@ struct rxvt_term : zero_initialized, rxvt_vars {
 #ifdef POINTER_BLANK
                   hidden_pointer:1,
 #endif
 #ifdef POINTER_BLANK
                   hidden_pointer:1,
 #endif
-//                  enc_utf8:1,                /* wether locale uses utf-8 */
+                  enc_utf8:1,          /* wether locale uses utf-8 */
                   seen_input:1,         /* wether we have seen some program output yet */
                   seen_resize:1,       /* wether we had a resize event */
                   parsed_geometry:1;
                   seen_input:1,         /* wether we have seen some program output yet */
                   seen_resize:1,       /* wether we had a resize event */
                   parsed_geometry:1;
@@ -1078,7 +1082,8 @@ struct rxvt_term : zero_initialized, rxvt_vars {
 # endif
                   allowedxerror;
 /* ---------- */
 # endif
                   allowedxerror;
 /* ---------- */
-  unsigned int    ModMetaMask,
+  unsigned int    ModLevel3Mask,
+                  ModMetaMask,
                   ModNumLockMask;
   int             old_width,  /* last used width in screen resize          */
                   old_height; /* last used height in screen resize         */
                   ModNumLockMask;
   int             old_width,  /* last used width in screen resize          */
                   old_height; /* last used height in screen resize         */
@@ -1122,9 +1127,6 @@ struct rxvt_term : zero_initialized, rxvt_vars {
   size_t          incr_buf_size, incr_buf_fill;
 /* ---------- */
   Cursor          leftptr_cursor;
   size_t          incr_buf_size, incr_buf_fill;
 /* ---------- */
   Cursor          leftptr_cursor;
-#ifdef POINTER_BLANK
-  Cursor          blank_cursor;
-#endif
 /* ---------- */
 #ifndef NO_BACKSPACE_KEY
   const char     *key_backspace;
 /* ---------- */
 #ifndef NO_BACKSPACE_KEY
   const char     *key_backspace;
@@ -1192,9 +1194,11 @@ struct rxvt_term : zero_initialized, rxvt_vars {
   unsigned char  *v_buffer;           /* pointer to physical buffer */
   unsigned int    v_buflen;           /* size of area to write */
   stringvec      *argv, *envv;        /* if != 0, will be freed on destroy time */
   unsigned char  *v_buffer;           /* pointer to physical buffer */
   unsigned int    v_buflen;           /* size of area to write */
   stringvec      *argv, *envv;        /* if != 0, will be freed on destroy time */
+
 #ifdef KEYSYM_RESOURCE
 #ifdef KEYSYM_RESOURCE
-  const unsigned char *Keysym_map[256];
+  keyboard_manager *keyboard;
 #endif
 #endif
+
   const char     *rs[NUM_RESOURCES];
   /* command input buffering */
   unsigned char  *cmdbuf_ptr, *cmdbuf_endp;
   const char     *rs[NUM_RESOURCES];
   /* command input buffering */
   unsigned char  *cmdbuf_ptr, *cmdbuf_endp;
index 8f6b3b1..446f553 100644 (file)
@@ -84,7 +84,7 @@ void refcache<T>::put (T *obj)
 }
 
 template<class T>
 }
 
 template<class T>
-refcache<T>::~refcache ()
+void refcache<T>::clear ()
 {
   while (this->size ())
     put (*this->begin ());
 {
   while (this->size ())
     put (*this->begin ());
@@ -170,6 +170,17 @@ bool rxvt_display::init ()
     is_local = sa.sun_family == AF_LOCAL;
 #endif
 
     is_local = sa.sun_family == AF_LOCAL;
 #endif
 
+#ifdef POINTER_BLANK
+  XColor blackcolour;
+  blackcolour.red   = 0;
+  blackcolour.green = 0;
+  blackcolour.blue  = 0;
+  Font f = XLoadFont (display, "fixed");
+  blank_cursor = XCreateGlyphCursor (display, f, f, ' ', ' ',
+                                     &blackcolour, &blackcolour);
+  XUnloadFont (display, f);
+#endif
+
 #ifdef PREFER_24BIT
   /*
    * If depth is not 24, look for a 24bit visual.
 #ifdef PREFER_24BIT
   /*
    * If depth is not 24, look for a 24bit visual.
@@ -205,6 +216,9 @@ bool rxvt_display::init ()
 rxvt_display::~rxvt_display ()
 {
   x_ev.stop ();
 rxvt_display::~rxvt_display ()
 {
   x_ev.stop ();
+#ifdef USE_XIM
+  xims.clear ();
+#endif
 
   if (display)
     XCloseDisplay (display);
 
   if (display)
     XCloseDisplay (display);
index 290beb4..3203915 100644 (file)
@@ -36,7 +36,12 @@ template<class T>
 struct refcache : vector<T *> {
   T *get (const char *id);
   void put (T *obj);
 struct refcache : vector<T *> {
   T *get (const char *id);
   void put (T *obj);
-  ~refcache ();
+  void clear ();
+
+  ~refcache ()
+  {
+    clear ();
+  }
 };
 
 /////////////////////////////////////////////////////////////////////////////
 };
 
 /////////////////////////////////////////////////////////////////////////////
@@ -71,15 +76,18 @@ struct rxvt_display : refcounted {
 #endif
 
 //public
 #endif
 
 //public
-  Display  *display;
-  int      depth;
-  int      screen;
-  Visual   *visual;
-  Colormap cmap;
-  Window   root;
+  Display   *display;
+  int       depth;
+  int       screen;
+  Visual    *visual;
+  Colormap  cmap;
+  Window    root;
   rxvt_term *selection_owner;
 #ifndef NO_SLOW_LINK_SUPPORT
   rxvt_term *selection_owner;
 #ifndef NO_SLOW_LINK_SUPPORT
-  bool     is_local;
+  bool      is_local;
+#endif
+#ifdef POINTER_BLANK
+  Cursor    blank_cursor;
 #endif
 
   rxvt_display (const char *id);
 #endif
 
   rxvt_display (const char *id);