diff --git a/ChangeLog b/ChangeLog index 8014fbe..d7a0d3f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4000,3 +4000,13 @@ Thu Nov 16 16:27:09 PST 2000 Michael Jennings This time it really works. No, I mean it this time. Seriously. ------------------------------------------------------------------------------- +Fri Nov 24 18:53:13 PST 2000 Michael Jennings + + At the request of Snow-Man , I added the build + date to the output of --version. While I was at it, I also added the + RCS ident strings. + + I also applied a patch from Sung-Hyun Nam that + fixes XIM-related seg faults during clean-up. + +------------------------------------------------------------------------------- diff --git a/acconfig.h b/acconfig.h index c18b4c1..0854802 100644 --- a/acconfig.h +++ b/acconfig.h @@ -310,6 +310,7 @@ #undef NO_XLOCALE #undef GREEK_SUPPORT #undef CONFIG_SEARCH_PATH +#undef BUILD_DATE #undef AUTHORS #undef MFONT0 #undef MFONT1 @@ -337,6 +338,28 @@ #undef LIBAST_X11_SUPPORT #undef LIBAST_IMLIB2_SUPPORT #undef LIBAST_MMX_SUPPORT +#undef ACTIONS_IDENT +#undef BUTTONS_IDENT +#undef COMMAND_IDENT +#undef DRAW_IDENT +#undef E_IDENT +#undef EVENTS_IDENT +#undef FONT_IDENT +#undef GRKELOT_IDENT +#undef MAIN_IDENT +#undef MENUS_IDENT +#undef MISC_IDENT +#undef NETDISP_IDENT +#undef OPTIONS_IDENT +#undef PIXMAP_IDENT +#undef SCREEN_IDENT +#undef SCROLLBAR_IDENT +#undef STARTUP_IDENT +#undef SYSTEM_IDENT +#undef TERM_IDENT +#undef TIMER_IDENT +#undef UTMP_IDENT +#undef WINDOWS_IDENT /* Leave that blank line there!! Autoheader needs it. diff --git a/configure.in b/configure.in index f9b9300..5e19f65 100644 --- a/configure.in +++ b/configure.in @@ -6,10 +6,36 @@ AM_INIT_AUTOMAKE(Eterm, 0.9.1) dnl# Set some basic variables DATE="`date '+%d %B %Y'`" AC_SUBST(DATE) +BUILD_DATE="`date`" +AC_DEFINE_UNQUOTED(BUILD_DATE, "$BUILD_DATE") AUTHORS="Michael Jennings (mej@eterm.org) " AC_SUBST(AUTHORS) AC_DEFINE_UNQUOTED(AUTHORS, "$AUTHORS") +dnl# Find RCS Ident info from source files +AC_DEFINE_UNQUOTED(ACTIONS_IDENT, "`grep '$Id$Id: //;s/ \$.*$//;s/.v / /;s/ Exp//'`") +AC_DEFINE_UNQUOTED(BUTTONS_IDENT, "`grep '$Id$Id: //;s/ \$.*$//;s/.v / /;s/ Exp//'`") +AC_DEFINE_UNQUOTED(COMMAND_IDENT, "`grep '$Id$Id: //;s/ \$.*$//;s/.v / /;s/ Exp//'`") +AC_DEFINE_UNQUOTED(DRAW_IDENT, "`grep '$Id$Id: //;s/ \$.*$//;s/.v / /;s/ Exp//'`") +AC_DEFINE_UNQUOTED(E_IDENT, "`grep '$Id$Id: //;s/ \$.*$//;s/.v / /;s/ Exp//'`") +AC_DEFINE_UNQUOTED(EVENTS_IDENT, "`grep '$Id$Id: //;s/ \$.*$//;s/.v / /;s/ Exp//'`") +AC_DEFINE_UNQUOTED(FONT_IDENT, "`grep '$Id$Id: //;s/ \$.*$//;s/.v / /;s/ Exp//'`") +AC_DEFINE_UNQUOTED(GRKELOT_IDENT, "`grep '$Id$Id: //;s/ \$.*$//;s/.v / /;s/ Exp//'`") +AC_DEFINE_UNQUOTED(MAIN_IDENT, "`grep '$Id$Id: //;s/ \$.*$//;s/.v / /;s/ Exp//'`") +AC_DEFINE_UNQUOTED(MENUS_IDENT, "`grep '$Id$Id: //;s/ \$.*$//;s/.v / /;s/ Exp//'`") +AC_DEFINE_UNQUOTED(MISC_IDENT, "`grep '$Id$Id: //;s/ \$.*$//;s/.v / /;s/ Exp//'`") +AC_DEFINE_UNQUOTED(NETDISP_IDENT, "`grep '$Id$Id: //;s/ \$.*$//;s/.v / /;s/ Exp//'`") +AC_DEFINE_UNQUOTED(OPTIONS_IDENT, "`grep '$Id$Id: //;s/ \$.*$//;s/.v / /;s/ Exp//'`") +AC_DEFINE_UNQUOTED(PIXMAP_IDENT, "`grep '$Id$Id: //;s/ \$.*$//;s/.v / /;s/ Exp//'`") +AC_DEFINE_UNQUOTED(SCREEN_IDENT, "`grep '$Id$Id: //;s/ \$.*$//;s/.v / /;s/ Exp//'`") +AC_DEFINE_UNQUOTED(SCROLLBAR_IDENT, "`grep '$Id$Id: //;s/ \$.*$//;s/.v / /;s/ Exp//'`") +AC_DEFINE_UNQUOTED(STARTUP_IDENT, "`grep '$Id$Id: //;s/ \$.*$//;s/.v / /;s/ Exp//'`") +AC_DEFINE_UNQUOTED(SYSTEM_IDENT, "`grep '$Id$Id: //;s/ \$.*$//;s/.v / /;s/ Exp//'`") +AC_DEFINE_UNQUOTED(TERM_IDENT, "`grep '$Id$Id: //;s/ \$.*$//;s/.v / /;s/ Exp//'`") +AC_DEFINE_UNQUOTED(TIMER_IDENT, "`grep '$Id$Id: //;s/ \$.*$//;s/.v / /;s/ Exp//'`") +AC_DEFINE_UNQUOTED(UTMP_IDENT, "`grep '$Id$Id: //;s/ \$.*$//;s/.v / /;s/ Exp//'`") +AC_DEFINE_UNQUOTED(WINDOWS_IDENT, "`grep '$Id$Id: //;s/ \$.*$//;s/.v / /;s/ Exp//'`") + dnl# Supply default CFLAGS, if not specified by `CFLAGS=flags ./configure' if test ! -z "${CFLAGS}" -o ! -z "${CCOPTS}"; then CFLAGS_GIVEN=1 diff --git a/src/command.c b/src/command.c index 2125ff7..3a3f592 100644 --- a/src/command.c +++ b/src/command.c @@ -1141,6 +1141,10 @@ clean_exit(void) } #endif #ifdef USE_XIM + if (xim_input_context) { + XUnsetICFocus(xim_input_context); + XDestroyIC(xim_input_context); + } if (xim_input_method) { XCloseIM(xim_input_method); } @@ -1767,6 +1771,11 @@ init_locale(void) if (strcmp(locale, "C")) # endif { +#ifdef MULTI_CHARSET + TermWin.fontset = create_fontset(etfonts[def_font_idx], etmfonts[def_font_idx]); +#else + TermWin.fontset = create_fontset(etfonts[def_font_idx], "-misc-fixed-medium-r-semicondensed--13-*-75-*-c-*-iso10646-1"); +#endif if (xim_real_init() != -1) { return; } @@ -1775,11 +1784,6 @@ init_locale(void) XRegisterIMInstantiateCallback(Xdisplay, NULL, NULL, NULL, xim_instantiate_cb, NULL); # endif } -#endif -#ifdef MULTI_CHARSET - TermWin.fontset = create_fontset(etfonts[def_font_idx], etmfonts[def_font_idx]); -#else - TermWin.fontset = create_fontset(etfonts[def_font_idx], "-misc-fixed-medium-r-semicondensed--13-*-75-*-c-*-iso10646-1"); #endif /* Reset locale to NULL since the call to create_fontset() has freed that memory. */ locale = NULL; diff --git a/src/options.c b/src/options.c index dd35e3e..b6f34c3 100644 --- a/src/options.c +++ b/src/options.c @@ -365,7 +365,7 @@ usage(void) unsigned short i, col; - printf("Eterm Enlightened Terminal Emulator for X Windows\n"); + printf("Eterm Enlightened Terminal Emulator for the X Window System\n"); printf("Copyright (c) 1997-2000, " AUTHORS "\n\n"); printf("Usage for " APL_NAME " " VERSION ":\n\n"); printf("%7s %17s %40s\n", "POSIX", "GNU", "Description"); @@ -408,6 +408,32 @@ version(void) printf("Eterm " VERSION "\n"); printf("Copyright (c) 1997-2000, " AUTHORS "\n\n"); + printf("Build info:\n"); + printf(" Built on " BUILD_DATE "\n"); + printf(" " ACTIONS_IDENT "\n" + " " BUTTONS_IDENT "\n" + " " COMMAND_IDENT "\n" + " " DRAW_IDENT "\n" + " " E_IDENT "\n" + " " EVENTS_IDENT "\n" + " " FONT_IDENT "\n" + " " GRKELOT_IDENT "\n" + " " MAIN_IDENT "\n" + " " MENUS_IDENT "\n" + " " MISC_IDENT "\n" + " " NETDISP_IDENT "\n" + " " OPTIONS_IDENT "\n" + " " PIXMAP_IDENT "\n" + " " SCREEN_IDENT "\n" + " " SCROLLBAR_IDENT "\n" + " " STARTUP_IDENT "\n" + " " SYSTEM_IDENT "\n" + " " TERM_IDENT "\n" + " " TIMER_IDENT "\n" + " " UTMP_IDENT "\n" + " " WINDOWS_IDENT "\n" + "\n"); + printf("Debugging configuration: "); #ifdef DEBUG printf("DEBUG=%d", DEBUG); @@ -2307,7 +2333,7 @@ parse_keyboard(char *buff, void *state) return NULL; } rs_meta_mod = (unsigned int) strtoul(tmp, (char **) NULL, 0); - + } else if (!BEG_STRCASECMP(buff, "alt_mod ")) { char *tmp = get_pword(2, buff);