From 0616f028612acfa549cb1c721fdf8c17e683178d Mon Sep 17 00:00:00 2001 From: root Date: Mon, 17 Jan 2005 00:59:23 +0000 Subject: [PATCH] *** empty log message *** --- autoconf/config.h.in | 588 ++++++++++++++++++++++++++------------------------ autoconf/configure.in | 28 ++- src/command.C | 61 ++---- src/init.C | 68 +++--- src/main.C | 25 ++- src/rxvt.h | 20 +- src/rxvttoolkit.C | 16 +- src/rxvttoolkit.h | 24 ++- 8 files changed, 447 insertions(+), 383 deletions(-) diff --git a/autoconf/config.h.in b/autoconf/config.h.in index d4a24ff..af36fb4 100644 --- a/autoconf/config.h.in +++ b/autoconf/config.h.in @@ -1,206 +1,251 @@ -/* 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 doesn't define. */ -#undef gid_t +/* Define if you want 8 bit control sequences */ +#undef EIGHT_BIT_CONTROLS -/* Define if you have 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 doesn't define. */ -#undef mode_t +/* Define if you want bold and italic support */ +#undef ENABLE_STYLES -/* Define to `int' if 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 and . */ -#undef TIME_WITH_SYS_TIME +/* Define if you want vietnamese codesets */ +#undef ENCODING_VN -/* Define to `int' if 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 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 header file. */ +#undef HAVE_DLFCN_H -/* Define if you have the _getpty function. */ -#undef HAVE__GETPTY +/* Define to 1 if you have the 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 -/* Define if you have the isastream function. */ +/* Define to 1 if you have the header file. */ +#undef HAVE_GRP_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the `isastream' function. */ #undef HAVE_ISASTREAM -/* Define if you have the nanosleep function. */ +/* Define to 1 if you have the header file. */ +#undef HAVE_LASTLOG_H + +/* Define to 1 if you have the 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 header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the `nanosleep' function. */ #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 -/* Define if you have the openpty function. */ +/* Define to 1 if you have the `openpty' function. */ #undef HAVE_OPENPTY -/* Define if you have the revoke function. */ +/* Define to 1 if you have the header file. */ +#undef HAVE_PTY_H + +/* Define to 1 if you have the `revoke' function. */ #undef HAVE_REVOKE -/* Define if you have the seteuid function. */ +/* Define to 1 if you have the `seteuid' function. */ #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 -/* Define if you have the setpgrp function. */ +/* Define to 1 if you have the `setpgrp' function. */ #undef HAVE_SETPGRP -/* Define if you have the setreuid function. */ +/* Define to 1 if you have the `setreuid' function. */ #undef HAVE_SETREUID -/* Define if you have the setsid function. */ +/* Define to 1 if you have the `setsid' function. */ #undef HAVE_SETSID -/* Define if you have the setutent function. */ +/* Define to 1 if you have the `setutent' function. */ #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 header file. */ -#undef HAVE_X11_XFT_XFT_H - -/* Define if you have the header file. */ -#undef HAVE_ASSERT_H - -/* Define if you have the header file. */ -#undef HAVE_DLFCN_H - -/* Define if you have the header file. */ -#undef HAVE_FCNTL_H +/* Define to 1 if you have the header file. */ +#undef HAVE_STDARG_H -/* Define if you have the header file. */ -#undef HAVE_GRP_H +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H -/* Define if you have the header file. */ -#undef HAVE_LASTLOG_H +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H -/* Define if you have the header file. */ -#undef HAVE_LIBC_H +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H -/* Define if you have the header file. */ -#undef HAVE_PTY_H +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H -/* Define if you have the 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 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 header file. */ -#undef HAVE_STDLIB_H +/* Define if utmp.h has struct utmp */ +#undef HAVE_STRUCT_UTMP -/* Define if you have the header file. */ -#undef HAVE_STRING_H +/* Define if utmpx.h has struct utmpx */ +#undef HAVE_STRUCT_UTMPX -/* Define if you have the header file. */ +/* Define to 1 if you have the header file. */ #undef HAVE_SYS_BYTEORDER_H -/* Define if you have the header file. */ +/* Define to 1 if you have the header file. */ #undef HAVE_SYS_IOCTL_H -/* Define if you have the header file. */ +/* Define to 1 if you have the header file. */ #undef HAVE_SYS_SELECT_H -/* Define if you have the header file. */ +/* Define to 1 if you have the header file. */ #undef HAVE_SYS_SOCKIO_H -/* Define if you have the header file. */ +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ #undef HAVE_SYS_STROPTS_H -/* Define if you have the header file. */ +/* Define to 1 if you have the header file. */ #undef HAVE_SYS_STRREDIR_H -/* Define if you have the header file. */ +/* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIME_H -/* Define if you have the header file. */ +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have that is POSIX.1 compatible. */ +#undef HAVE_SYS_WAIT_H + +/* Define to 1 if you have the header file. */ #undef HAVE_TERMIOS_H -/* Define if you have the header file. */ +/* Define to 1 if you have the `ttyslot' function. */ +#undef HAVE_TTYSLOT + +/* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H -/* Define if you have the header file. */ -#undef HAVE_UTMP_H +/* Define to 1 if you have the `unlockpt' function. */ +#undef HAVE_UNLOCKPT -/* Define if you have the 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 header file. */ #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 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 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 -/* 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 @@ -211,152 +256,149 @@ /* 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 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 and . */ +#undef TIME_WITH_SYS_TIME /* Define if you want your background to be tinted */ #undef TINTING @@ -364,26 +406,21 @@ /* 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 @@ -391,63 +428,60 @@ /* 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 -/* Support Rxvt original style scrollbars */ -#undef RXVT_SCROLLBAR - -/* Support NeXT style scrollbars */ -#undef NEXT_SCROLLBAR +/* Define if you include on a normal include path (be careful) */ +#undef XPM_INC_X11 /* 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 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 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 does not define. */ +#undef pid_t +/* Define to `int' if doesn't define. */ +#undef uid_t diff --git a/autoconf/configure.in b/autoconf/configure.in index 86777dd..2565d1c 100644 --- a/autoconf/configure.in +++ b/autoconf/configure.in @@ -2,6 +2,8 @@ dnl# -*- sh -*- 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) @@ -35,6 +37,17 @@ AC_PROG_AWK 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, [ @@ -447,21 +460,6 @@ dnl# -------------------------------------------------------------------------- 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) diff --git a/src/command.C b/src/command.C index b6e3d53..2beae70 100644 --- a/src/command.C +++ b/src/command.C @@ -50,6 +50,10 @@ #include "version.h" #include "command.h" +#ifdef KEYSYM_RESOURCE +# include "keyboard.h" +#endif + #include #include @@ -346,6 +350,11 @@ rxvt_term::lookup_key (XKeyEvent &ev) if (valid_keysym) { +#ifdef KEYSYM_RESOURCE + if (keyboard->dispatch (this, keysym, ev.state)) + return; +#endif + if (TermWin.saveLines) { #ifdef UNSHIFTED_SCROLLKEYS @@ -489,31 +498,6 @@ rxvt_term::lookup_key (XKeyEvent &ev) 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) @@ -787,11 +771,8 @@ rxvt_term::lookup_key (XKeyEvent &ev) 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) @@ -817,13 +798,6 @@ rxvt_term::lookup_key (XKeyEvent &ev) 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 @@ -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 @@ -924,7 +898,7 @@ rxvt_term::cmd_write (const unsigned char *str, unsigned int count) return 0; } -#endif /* MENUBAR_MAX */ +#endif 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)) { + 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); @@ -1107,7 +1085,7 @@ rxvt_term::pointer_blank () 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; @@ -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 - selection.rect = !! (ev.state & ModMetaMask); + selection.rect = !!(ev.state & ModMetaMask); #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); + pty.set_utf8_mode (enc_utf8); # ifdef USE_XIM im_cb (); # endif diff --git a/src/init.C b/src/init.C index 5fbf298..ffb7fbf 100644 --- a/src/init.C +++ b/src/init.C @@ -33,6 +33,7 @@ #include "../config.h" /* NECESSARY */ #include "rxvt.h" /* NECESSARY */ +#include "rxvtutil.h" #include "init.h" #include @@ -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 */ -#endif - -#ifndef NO_LINESPACE 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 -#if 0 #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 -#endif } void @@ -844,53 +843,71 @@ rxvt_term::get_ourmods () 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; + 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; + 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_Alt_L: case XK_Alt_R: cm = "alt"; realalt = i; break; + case XK_Super_L: case XK_Super_R: cm = "super"; break; + case XK_Hyper_L: case XK_Hyper_R: cm = "hyper"; break; + + default: + continue; } + if (rsmod && strncasecmp (rsmod, cm, strlen (cm)) == 0) requestedmeta = i; } } + XFreeModifiermap (map); - i = (requestedmeta ? requestedmeta - : (realmeta ? realmeta - : (realalt ? realalt : 0))); + + i = requestedmeta ? requestedmeta + : realmeta ? realmeta + : realalt ? realalt + : 0; + 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 -#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, @@ -1383,11 +1387,16 @@ rxvt_get_ttymode (ttymode_t *tio, int erase) void rxvt_term::run_command (const char *const *argv) { - int er; - 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]; @@ -1399,9 +1408,6 @@ rxvt_term::run_command (const char *const *argv) rxvt_get_ttymode (&tio, er); - /* set initial window size */ - tt_winch (); - sw_chld.start (SIGCHLD); #ifndef __QNX__ diff --git a/src/main.C b/src/main.C index 2c3216f..857d5ad 100644 --- a/src/main.C +++ b/src/main.C @@ -35,6 +35,7 @@ #include "main.intpro" /* PROTOS for internal routines */ #include +#include #ifdef TTY_GID_SUPPORT # include @@ -44,7 +45,9 @@ # include #endif -#include +#ifdef KEYSYM_RESOURCE +# include "keyboard.h" +#endif vector rxvt_term::termlist; @@ -170,6 +173,13 @@ rxvt_term::rxvt_term () 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 () @@ -266,6 +276,10 @@ rxvt_term::~rxvt_term () delete envv; delete argv; + +#ifdef KEYSYM_RESOURCE + delete keyboard; +#endif } void @@ -333,6 +347,8 @@ rxvt_term::init (int argc, const char *const *argv) { SET_R (this); + set_locale (""); + 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); - set_locale (""); +#ifdef KEYSYM_RESOURCE + keyboard->register_done (); +#endif #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); + free (cmd_argv); + 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 (); + prop.height += TermWin.lineSpace; fs->set_prop (prop); TermWin.fwidth = prop.width; diff --git a/src/rxvt.h b/src/rxvt.h index 96f6bb7..2487a05 100644 --- a/src/rxvt.h +++ b/src/rxvt.h @@ -12,7 +12,7 @@ #include #include #if ENABLE_FRILLS -#include +# include #endif #include "encoding.h" @@ -606,7 +606,7 @@ enum { Rs_borderLess, #endif Rs_scrollBar_thickness, -#ifndef NO_LINESPACE +#if ENABLE_FRILLS Rs_lineSpace, #endif Rs_cutchars, @@ -996,6 +996,10 @@ extern class rxvt_composite_vec rxvt_composite; #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 @@ -1022,7 +1026,7 @@ struct rxvt_term : zero_initialized, rxvt_vars { #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; @@ -1078,7 +1082,8 @@ struct rxvt_term : zero_initialized, rxvt_vars { # 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 */ @@ -1122,9 +1127,6 @@ struct rxvt_term : zero_initialized, rxvt_vars { 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; @@ -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 */ + #ifdef KEYSYM_RESOURCE - const unsigned char *Keysym_map[256]; + keyboard_manager *keyboard; #endif + const char *rs[NUM_RESOURCES]; /* command input buffering */ unsigned char *cmdbuf_ptr, *cmdbuf_endp; diff --git a/src/rxvttoolkit.C b/src/rxvttoolkit.C index 8f6b3b1..446f553 100644 --- a/src/rxvttoolkit.C +++ b/src/rxvttoolkit.C @@ -84,7 +84,7 @@ void refcache::put (T *obj) } template -refcache::~refcache () +void refcache::clear () { while (this->size ()) put (*this->begin ()); @@ -170,6 +170,17 @@ bool rxvt_display::init () 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. @@ -205,6 +216,9 @@ bool rxvt_display::init () rxvt_display::~rxvt_display () { x_ev.stop (); +#ifdef USE_XIM + xims.clear (); +#endif if (display) XCloseDisplay (display); diff --git a/src/rxvttoolkit.h b/src/rxvttoolkit.h index 290beb4..3203915 100644 --- a/src/rxvttoolkit.h +++ b/src/rxvttoolkit.h @@ -36,7 +36,12 @@ template struct refcache : vector { T *get (const char *id); void put (T *obj); - ~refcache (); + void clear (); + + ~refcache () + { + clear (); + } }; ///////////////////////////////////////////////////////////////////////////// @@ -71,15 +76,18 @@ struct rxvt_display : refcounted { #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 - bool is_local; + bool is_local; +#endif +#ifdef POINTER_BLANK + Cursor blank_cursor; #endif rxvt_display (const char *id); -- 1.9.1