diff options
author | Steve Wills <swills@FreeBSD.org> | 2013-01-09 06:58:36 +0000 |
---|---|---|
committer | Steve Wills <swills@FreeBSD.org> | 2013-01-09 06:58:36 +0000 |
commit | 672a4b22bc7bb42742ad0d1b756acb6849bf5ef8 (patch) | |
tree | 0b052a19f3a2745396ce148f4613403346f64538 /chinese/aterm | |
parent | b17528a2eeabd4f6a52a77edb404db30ebe0bb9d (diff) |
Notes
Diffstat (limited to 'chinese/aterm')
-rw-r--r-- | chinese/aterm/Makefile | 11 | ||||
-rw-r--r-- | chinese/aterm/distinfo | 4 | ||||
-rw-r--r-- | chinese/aterm/files/patch-aa | 1064 | ||||
-rw-r--r-- | chinese/aterm/files/patch-autoconf__config.h.in | 11 | ||||
-rw-r--r-- | chinese/aterm/files/patch-autoconf__configure.in | 12 | ||||
-rw-r--r-- | chinese/aterm/files/patch-configure | 27 |
6 files changed, 55 insertions, 1074 deletions
diff --git a/chinese/aterm/Makefile b/chinese/aterm/Makefile index caacf3b9fa88..3b44908e9103 100644 --- a/chinese/aterm/Makefile +++ b/chinese/aterm/Makefile @@ -1,12 +1,8 @@ -# New ports collection Makefile for: aterm -# Date created: Oct 1 2001 -# Whom: gugod@gugod.org +# Created by: gugod@gugod.org # $FreeBSD$ -# PORTNAME= aterm -PORTVERSION= 0.4.2 -PORTREVISION= 2 +PORTVERSION= 1.0.1 CATEGORIES= chinese x11 MASTER_SITES= SF @@ -15,8 +11,7 @@ COMMENT= A color vt102 terminal emulator with transparency support USE_XORG= xpm GNU_CONFIGURE= yes -PATCH_WRKSRC= ${WRKSRC}/.. -CONFIGURE_ARGS= --enable-fading --enable-xim --enable-big5 +CONFIGURE_ARGS= --enable-xim --enable-big5 post-install: @${CHMOD} 4711 ${PREFIX}/bin/aterm diff --git a/chinese/aterm/distinfo b/chinese/aterm/distinfo index fa6e2bb350e5..92847fd6af2a 100644 --- a/chinese/aterm/distinfo +++ b/chinese/aterm/distinfo @@ -1,2 +1,2 @@ -SHA256 (aterm-0.4.2.tar.gz) = 364b432da6dfa5ff052d02041834a8e963cf9a513084a3a732a33bbbf64bfe83 -SIZE (aterm-0.4.2.tar.gz) = 312730 +SHA256 (aterm-1.0.1.tar.gz) = 0b385c7d00ffdd488f7950e0de109576f55a04b4c056dce426ae2f8ed564f214 +SIZE (aterm-1.0.1.tar.gz) = 320805 diff --git a/chinese/aterm/files/patch-aa b/chinese/aterm/files/patch-aa deleted file mode 100644 index 74e0ef524175..000000000000 --- a/chinese/aterm/files/patch-aa +++ /dev/null @@ -1,1064 +0,0 @@ -diff -cNr aterm-0.4.2.orig/autoconf/acconfig.h aterm-0.4.2/autoconf/acconfig.h -*** aterm-0.4.2.orig/autoconf/acconfig.h Fri Sep 7 00:38:07 2001 ---- aterm-0.4.2/autoconf/acconfig.h Sun Sep 30 15:13:21 2001 -*************** -*** 38,44 **** ---- 38,49 ---- - /* Define if Xlocale support doesn't work */ - #undef NO_XLOCALE - -+ #undef USE_XIM -+ - /* Define is setlocale (defined to Xsetlocale) doesn't work */ -+ #undef NO_XSETLOCALE -+ -+ /* Define is plain setlocale doesn't work */ - #undef NO_SETLOCALE - - /* Define if you want Menubar support */ -diff -cNr aterm-0.4.2.orig/autoconf/config.h.in aterm-0.4.2/autoconf/config.h.in -*** aterm-0.4.2.orig/autoconf/config.h.in Fri Sep 7 00:38:07 2001 ---- aterm-0.4.2/autoconf/config.h.in Sun Sep 30 15:14:08 2001 -*************** -*** 88,94 **** ---- 88,99 ---- - /* Define if Xlocale support doesn't work */ - #undef NO_XLOCALE - -+ #undef USE_XIM -+ - /* Define is setlocale (defined to Xsetlocale) doesn't work */ -+ #undef NO_XSETLOCALE -+ -+ /* Define is plain setlocale doesn't work */ - #undef NO_SETLOCALE - - /* Define if you want Menubar support */ -diff -cNr aterm-0.4.2.orig/autoconf/configure.in aterm-0.4.2/autoconf/configure.in -*** aterm-0.4.2.orig/autoconf/configure.in Fri Sep 7 00:38:07 2001 ---- aterm-0.4.2/autoconf/configure.in Sun Sep 30 15:18:11 2001 -*************** -*** 106,111 **** ---- 106,117 ---- - AC_DEFINE(ZH) - fi]) - -+ AC_ARG_ENABLE(xim, -+ [ --enable-xim enable xim support], -+ [if test x$enableval = xyes; then -+ AC_DEFINE(USE_XIM) -+ fi]) -+ - AC_ARG_ENABLE(greek, - [ --enable-greek enable greek keyboard support], - [if test x$enableval = xyes; then -*************** -*** 642,647 **** ---- 648,654 ---- - dnl# this is a really hack test for some basic Xlocale stuff - SAVETHELIBS=$LIBS - LIBS="$LIBS $X_LIBS $X_PRE_LIBS $X_EXTRA_LIBS -lX11" -+ CFLAGS="$CFLAGS $X_CFLAGS" - AC_CACHE_CHECK(for working Xlocale, rxvt_cv_func_xlocale, - [AC_TRY_RUN( - [#define X_LOCALE 1 -*************** -*** 667,672 **** ---- 674,687 ---- - [setlocale(LC_CTYPE, "");], - rxvt_cv_func_xsetlocale=yes, rxvt_cv_func_xsetlocale=no)]) - if test "${rxvt_cv_func_xsetlocale}" = no; then -+ AC_DEFINE(NO_XSETLOCALE) -+ fi -+ -+ AC_CACHE_CHECK(for working plain setlocale, rxvt_cv_func_setlocale, -+ [AC_TRY_LINK([#include <locale.h>], -+ [setlocale(LC_CTYPE, "");], -+ rxvt_cv_func_setlocale=yes, rxvt_cv_func_setlocale=no)]) -+ if test x${rxvt_cv_func_setlocale} = xno; then - AC_DEFINE(NO_SETLOCALE) - fi - -diff -cNr aterm-0.4.2.orig/configure aterm-0.4.2/configure -*** aterm-0.4.2.orig/configure Fri Sep 7 00:38:07 2001 ---- aterm-0.4.2/configure Sun Sep 30 17:00:35 2001 -*************** -*** 36,41 **** ---- 36,43 ---- - ac_help="$ac_help - --enable-big5 enable big5 support" - ac_help="$ac_help -+ --enable-xim enable xim support" -+ ac_help="$ac_help - --enable-greek enable greek keyboard support" - ac_help="$ac_help - --enable-thai enable thai support" -*************** -*** 786,791 **** ---- 788,804 ---- - fi - fi - -+ # Check whether --enable-xim or --disable-xim was given. -+ if test "${enable_xim+set}" = set; then -+ enableval="$enable_xim" -+ if test x$enableval = xyes; then -+ cat >> confdefs.h <<\EOF -+ #define USE_XIM 1 -+ EOF -+ -+ fi -+ fi -+ - - # Check whether --enable-greek or --disable-greek was given. - if test "${enable_greek+set}" = set; then -*************** -*** 4649,4654 **** ---- 4662,4668 ---- - - SAVETHELIBS=$LIBS - LIBS="$LIBS $X_LIBS $X_PRE_LIBS $X_EXTRA_LIBS -lX11" -+ CFLAGS="$CFLAGS $X_CFLAGS" - echo $ac_n "checking for working Xlocale""... $ac_c" 1>&6 - echo "configure:4654: checking for working Xlocale" >&5 - if eval "test \"`echo '$''{'rxvt_cv_func_xlocale'+set}'`\" = set"; then -*************** -*** 4724,4730 **** - echo "$ac_t""$rxvt_cv_func_xsetlocale" 1>&6 - if test "${rxvt_cv_func_xsetlocale}" = no; then - cat >> confdefs.h <<\EOF -! #define NO_SETLOCALE 1 - EOF - - fi ---- 4738,4777 ---- - echo "$ac_t""$rxvt_cv_func_xsetlocale" 1>&6 - if test "${rxvt_cv_func_xsetlocale}" = no; then - cat >> confdefs.h <<\EOF -! #define NO_XSETLOCALE 1 -! EOF -! -! fi -! -! echo $ac_n "checking for working plain setlocale""... $ac_c" 1>&6 -! echo "configure:4659: checking for working plain setlocale" >&5 -! if eval "test \"`echo '$''{'rxvt_cv_func_setlocale'+set}'`\" = set"; then -! echo $ac_n "(cached) $ac_c" 1>&6 -! else -! cat > conftest.$ac_ext <<EOF -! #line 4664 "configure" -! #include "confdefs.h" -! #include <locale.h> -! int main() { -! setlocale(LC_CTYPE, ""); -! ; return 0; } -! EOF -! if { (eval echo configure:4671: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then -! rm -rf conftest* -! rxvt_cv_func_setlocale=yes -! else -! echo "configure: failed program was:" >&5 -! cat conftest.$ac_ext >&5 -! rm -rf conftest* -! rxvt_cv_func_setlocale=no -! fi -! rm -f conftest* -! fi -! -! echo "$ac_t""$rxvt_cv_func_setlocale" 1>&6 -! if test x${rxvt_cv_func_setlocale} = xno; then -! cat >> confdefs.h <<\EOF -! efine NO_SETLOCALE 1 - EOF - - fi -diff -cNr aterm-0.4.2.orig/scripts/random_colors aterm-0.4.2/scripts/random_colors -*** aterm-0.4.2.orig/scripts/random_colors Thu Jan 1 08:00:00 1970 ---- aterm-0.4.2/scripts/random_colors Sun Sep 30 17:01:24 2001 -*************** -*** 0 **** ---- 1,18 ---- -+ #!/bin/bash -+ -+ # This script will launch aterm with different tinting color -+ # every time you start it -+ # I don't really know how that can be of any use at all, but some -+ # folks like it - so here it is -+ -+ CLRCODE=`expr $RANDOM % 6` -+ ATRMPATH=$DESTDIR/usr/local/bin -+ -+ { [ "$CLRCODE" -eq "0" ] && CLRNAME="-tint blue -fg yellow -bg black"; } || -+ { [ "$CLRCODE" -eq "1" ] && CLRNAME="-tint red -fg white -bg black"; } || -+ { [ "$CLRCODE" -eq "2" ] && CLRNAME="-tint green -fg white -bg white"; } || -+ { [ "$CLRCODE" -eq "3" ] && CLRNAME="-tint cyan -fg white -bg white"; } || -+ { [ "$CLRCODE" -eq "4" ] && CLRNAME="-tint magenta -fg white -bg black"; } || -+ { [ "$CLRCODE" -eq "5" ] && CLRNAME="-tint yellow -fg blue -bg white"; } -+ -+ exec $ATRMPATH/aterm -fg white -tr $CLRNAME $@ -diff -cNr aterm-0.4.2.orig/src/command.c aterm-0.4.2/src/command.c -*** aterm-0.4.2.orig/src/command.c Fri Sep 7 00:38:07 2001 ---- aterm-0.4.2/src/command.c Sun Sep 30 14:36:49 2001 -*************** -*** 69,80 **** - #ifndef NO_XLOCALE - # if (XtSpecificationRelease < 6) - # define NO_XLOCALE -- # else -- # define X_LOCALE -- # include <X11/Xlocale.h> - # endif - #endif /* NO_XLOCALE */ - - #ifdef TTY_GID_SUPPORT - # include <grp.h> - #endif ---- 69,87 ---- - #ifndef NO_XLOCALE - # if (XtSpecificationRelease < 6) - # define NO_XLOCALE - # endif - #endif /* NO_XLOCALE */ - -+ #ifndef NO_XSETLOCALE -+ # define X_LOCALE -+ # include <X11/Xlocale.h> -+ #else -+ # ifndef NO_SETLOCALE -+ # include <locale.h> -+ # endif -+ #endif /* NO_XLOCALE */ -+ -+ - #ifdef TTY_GID_SUPPORT - # include <grp.h> - #endif -*************** -*** 182,190 **** - - /*{{{ defines: */ - -! #define KBUFSZ 8 /* size of keyboard mapping buffer */ -! #define STRING_MAX 512 /* max string size for process_xterm_seq() */ -! #define ESC_ARGS 32 /* max # of args for esc sequences */ - - /* a large REFRESH_PERIOD causes problems with `cat' */ - #define REFRESH_PERIOD 1 ---- 189,201 ---- - - /*{{{ defines: */ - -! #ifdef USE_XIM -! # define KBUFSZ 64 /* size of keyboard mapping buffer */ -! #else -! # define KBUFSZ 8 /* size of keyboard mapping buffer */ -! #endif -! #define STRING_MAX 512 /* max string size for process_xterm_seq() */ -! #define ESC_ARGS 32 /* max # of args for esc sequences */ - - /* a large REFRESH_PERIOD causes problems with `cat' */ - #define REFRESH_PERIOD 1 -*************** -*** 308,318 **** ---- 319,333 ---- - static Atom DndProtocol, DndSelection; - #endif /* OFFIX_DND */ - -+ #ifdef USE_XIM -+ static XIC Input_Context; /* input context */ -+ #else - #ifndef NO_XLOCALE - static char *rs_inputMethod = ""; /* XtNinputMethod */ - static char *rs_preeditType = NULL; /* XtNpreeditType */ - static XIC Input_Context; /* input context */ - #endif /* NO_XLOCALE */ -+ #endif /* USE_XIM */ - - /* command input buffering */ - #ifndef BUFSIZ -*************** -*** 534,540 **** - ttydev = tty_name; - - # define PTYCHAR1 "pqrstuvwxyz" -! # define PTYCHAR2 "0123456789abcdef" - for (c1 = PTYCHAR1; *c1; c1++) { - ptydev[len - 2] = ttydev[len - 2] = *c1; - for (c2 = PTYCHAR2; *c2; c2++) { ---- 549,555 ---- - ttydev = tty_name; - - # define PTYCHAR1 "pqrstuvwxyz" -! # define PTYCHAR2 "0123456789abcdefghijklmnopqrstuvwxyz" - for (c1 = PTYCHAR1; *c1; c1++) { - ptydev[len - 2] = ttydev[len - 2] = *c1; - for (c2 = PTYCHAR2; *c2; c2++) { -*************** -*** 1137,1143 **** ---- 1152,1167 ---- - DndSelection = XInternAtom(Xdisplay, "DndSelection", False); - #endif /* OFFIX_DND */ - -+ #ifndef NO_XLOCALE - init_xlocale(); -+ #else -+ setlocale(LC_CTYPE, ""); -+ #endif -+ -+ #ifdef USE_XIM -+ setTermFontSet(); -+ XRegisterIMInstantiateCallback(Xdisplay, NULL, NULL, NULL, IMInstantiateCallback, NULL); -+ #endif - - /* get number of available file descriptors */ - #ifdef _POSIX_VERSION -*************** -*** 1204,1209 **** ---- 1228,1234 ---- - init_xlocale(void) - { - #ifndef NO_XLOCALE -+ #ifndef USE_XIM - char *p, *s, buf[32], tmp[1024]; - XIM xim = NULL; - XIMStyle input_style = 0; -*************** -*** 1212,1218 **** - - Input_Context = NULL; - -! # ifndef NO_SETLOCALE - /* setlocale(LC_CTYPE, ""); /* XXX: should we do this? */ - # endif - if (rs_inputMethod == NULL || !*rs_inputMethod) { ---- 1237,1243 ---- - - Input_Context = NULL; - -! # if !defined(NO_SETLOCALE) || !defined(NO_XSETLOCALE) - /* setlocale(LC_CTYPE, ""); /* XXX: should we do this? */ - # endif - if (rs_inputMethod == NULL || !*rs_inputMethod) { -*************** -*** 1311,1316 **** ---- 1336,1342 ---- - print_error("Failed to create input context"); - XCloseIM(xim); - } -+ #endif /* USE_XIM */ - #endif /* NO_XLOCALE */ - } - /*}}} */ -*************** -*** 1379,1400 **** - numlock_state = (ev->xkey.state & ModNumLockMask); /* numlock toggle */ - PrivMode((!numlock_state), PrivMode_aplKP); - } -! #ifndef NO_XLOCALE -! if (!XFilterEvent(ev, *(&ev->xkey.window))) { -! if (Input_Context != NULL) { -! Status status_return; -! -! len = XmbLookupString(Input_Context, &ev->xkey, kbuf, -! sizeof(kbuf), &keysym, -! &status_return); -! } else { -! len = XLookupString(&ev->xkey, kbuf, -! sizeof(kbuf), &keysym, -! &compose); -! } -! } else -! len = 0; -! #else /* NO_XLOCALE */ - len = XLookupString(&ev->xkey, (char *) kbuf, sizeof(kbuf), &keysym, &compose); - /* - * have unmapped Latin[2-4] entries -> Latin1 ---- 1405,1425 ---- - numlock_state = (ev->xkey.state & ModNumLockMask); /* numlock toggle */ - PrivMode((!numlock_state), PrivMode_aplKP); - } -! #ifdef USE_XIM -! len = 0; -! if (Input_Context != NULL) { -! Status status_return; -! -! kbuf[0] = '\0'; -! len = XmbLookupString(Input_Context, &ev->xkey, kbuf, -! sizeof(kbuf), &keysym, -! &status_return); -! } else { -! len = XLookupString(&ev->xkey, kbuf, -! sizeof(kbuf), &keysym, -! &compose); -! } -! #else /* USE_XIM */ - len = XLookupString(&ev->xkey, (char *) kbuf, sizeof(kbuf), &keysym, &compose); - /* - * have unmapped Latin[2-4] entries -> Latin1 -*************** -*** 1404,1410 **** - len = 1; - kbuf[0] = (keysym & 0xFF); - } -! #endif /* NO_XLOCALE */ - - if (len && (Options & Opt_scrollKeypress)) - TermWin.view_start = 0; ---- 1429,1435 ---- - len = 1; - kbuf[0] = (keysym & 0xFF); - } -! #endif /* USE_XIM */ - - if (len && (Options & Opt_scrollKeypress)) - TermWin.view_start = 0; -*************** -*** 1977,1984 **** ---- 2002,2013 ---- - XEvent ev; - - refreshed = 0; -+ #ifdef USE_XIM -+ XProcessEvent(Xdisplay); -+ #else - XNextEvent(Xdisplay, &ev); - process_x_event(&ev); -+ #endif - - /* in case button actions pushed chars to cmdbuf */ - if (cmdbuf_ptr < cmdbuf_endp) -*************** -*** 2050,2055 **** ---- 2079,2087 ---- - refreshed = 1; - scr_refresh(refresh_type); - scrollbar_show(1); -+ #ifdef USE_XIM -+ IMSendSpot(); -+ #endif - } - } - } -*************** -*** 2225,2231 **** - on_colors_changed(Color_bg); - } - #endif -! #ifndef NO_XLOCALE - if (Input_Context != NULL) - XSetICFocus(Input_Context); - #endif ---- 2257,2263 ---- - on_colors_changed(Color_bg); - } - #endif -! #ifndef USE_XIM - if (Input_Context != NULL) - XSetICFocus(Input_Context); - #endif -*************** -*** 2242,2248 **** - on_colors_changed(Color_bg); - } - #endif -! #ifndef NO_XLOCALE - if (Input_Context != NULL) - XUnsetICFocus(Input_Context); - #endif ---- 2274,2280 ---- - on_colors_changed(Color_bg); - } - #endif -! #ifndef USE_XIM - if (Input_Context != NULL) - XUnsetICFocus(Input_Context); - #endif -*************** -*** 2720,2725 **** ---- 2752,2760 ---- - scr_refresh(refresh_type); - refresh_count = refresh_limit = 0; - scrollbar_show(1); -+ #ifdef USE_XIM -+ IMSendSpot(); -+ #endif - } - break; - } -*************** -*** 3444,3449 **** ---- 3479,3487 ---- - } - } - Gr_do_graphics(cmd, nargs, args, text); -+ #ifdef USE_XIM -+ IMSendSpot(); -+ #endif - #endif - } - /*}}} */ -*************** -*** 3611,3617 **** ---- 3649,4013 ---- - } - } - -+ #ifdef USE_XIM -+ /* PROTO */ -+ void -+ setSize( XRectangle *size ) -+ { -+ size->x = TermWin_internalBorder; -+ size->y = TermWin_internalBorder; -+ size->width = Width2Pixel (TermWin.ncol); -+ size->height = Height2Pixel(TermWin.nrow); -+ return; -+ } -+ -+ /* PROTO */ -+ void -+ setColor( unsigned long *fg, unsigned long *bg ) -+ { -+ *fg = PixColors[Color_fg]; -+ *bg = PixColors[Color_bg]; -+ return; -+ } - -+ /* PROTO */ -+ void -+ IMSendSpot( void ) -+ { -+ XPoint spot; -+ XVaNestedList preedit_attr; -+ XIMStyle input_style; -+ -+ if( Input_Context == NULL ) -+ return; -+ else { -+ XGetICValues(Input_Context,XNInputStyle,&input_style,NULL); -+ if (!(input_style & XIMPreeditPosition)) -+ return; -+ } -+ setPosition( &spot ); -+ -+ preedit_attr = XVaCreateNestedList( 0, XNSpotLocation, &spot, NULL ); -+ XSetICValues( Input_Context, XNPreeditAttributes, preedit_attr, NULL ); -+ XFree( preedit_attr ); -+ return; -+ } -+ -+ /* PROTO */ -+ void -+ setTermFontSet( void ) -+ { -+ char *string; -+ long length, i; -+ -+ if( TermWin.fontset != NULL ){ -+ XFreeFontSet( Xdisplay, TermWin.fontset ); -+ TermWin.fontset = NULL; -+ } -+ -+ length = 0; -+ for( i = 0 ; i < NFONTS ; i ++){ -+ if( rs_font[ i ] ) -+ length += strlen( rs_font[ i ] ) + 1; -+ # ifdef MULTICHAR_SET -+ if( rs_mfont[ i ] ) -+ length += strlen( rs_mfont[ i ] ) + 1; -+ # endif -+ } -+ if( ( string = malloc( length ) ) != NULL ){ -+ char **missing_charsetlist, *def_string; -+ int missing_charsetcount; -+ -+ string[ 0 ] = '\0'; -+ for( i = 0 ; i < NFONTS ; i ++){ -+ if( rs_font[ i ] ){ -+ strcat( string, rs_font[ i ] ); -+ strcat( string, "," ); -+ } -+ # ifdef MULTICHAR_SET -+ if( rs_mfont[ i ] ){ -+ strcat( string, rs_mfont[ i ] ); -+ strcat( string, "," ); -+ } -+ # endif -+ } -+ length = strlen( string ); -+ if( length > 0 && string[ length - 1 ] == ',' ){ -+ string[ length - 1 ] = '\0'; -+ length --; -+ } -+ if( length > 0 ){ -+ TermWin.fontset = XCreateFontSet -+ ( Xdisplay, string, -+ &missing_charsetlist, &missing_charsetcount, &def_string ); -+ } -+ free( string ); -+ } else { -+ TermWin.fontset = NULL; -+ } -+ return; -+ } -+ -+ /* PROTO */ -+ void -+ setPreeditArea(XRectangle *preedit_rect, XRectangle *status_rect, XRectangle *needed_rect) -+ { -+ preedit_rect->x = needed_rect->width -+ + (scrollbar_visible() && !(Options & Opt_scrollBar_right) -+ ? (SB_WIDTH + sb_shadow * 2) : 0); -+ preedit_rect->y = Height2Pixel(TermWin.nrow - 1) -+ + ((menuBar.state == 1) ? menuBar_TotalHeight() : 0); -+ -+ preedit_rect->width = Width2Pixel(TermWin.ncol + 1) - needed_rect->width -+ + (!(Options & Opt_scrollBar_right) -+ ? (SB_WIDTH + sb_shadow * 2) : 0); -+ preedit_rect->height = Height2Pixel(1); -+ -+ status_rect->x = (scrollbar_visible() && !(Options & Opt_scrollBar_right)) -+ ? (SB_WIDTH + sb_shadow * 2) : 0; -+ status_rect->y = Height2Pixel(TermWin.nrow - 1) -+ + ((menuBar.state == 1) ? menuBar_TotalHeight() : 0); -+ -+ status_rect->width = needed_rect->width ? needed_rect->width -+ : Width2Pixel(TermWin.ncol + 1); -+ status_rect->height = Height2Pixel(1); -+ } -+ -+ /* PROTO */ -+ void -+ IMDestroyCallback(XIM xim, XPointer client_data, XPointer call_data) -+ { -+ Input_Context = NULL; -+ XRegisterIMInstantiateCallback(Xdisplay, NULL, NULL, NULL, IMInstantiateCallback, NULL); -+ } -+ -+ -+ /* PROTO */ -+ void -+ IMInstantiateCallback(Display *display, XPointer client_data, XPointer call_data) -+ { -+ char *p, *s, buf[64], tmp[1024]; -+ char *end, *next_s; -+ XIM xim = NULL; -+ XIMStyle input_style = 0; -+ XIMStyles *xim_styles = NULL; -+ int found; -+ XPoint spot; -+ XRectangle rect, status_rect, needed_rect; -+ unsigned long fg, bg; -+ XVaNestedList preedit_attr = NULL; -+ XVaNestedList status_attr = NULL; -+ XIMCallback ximcallback; -+ -+ Input_Context = NULL; -+ -+ if (Input_Context) -+ return; -+ -+ ximcallback.callback = IMDestroyCallback; -+ ximcallback.client_data = NULL; -+ -+ if (rs_inputMethod && *rs_inputMethod) { -+ STRNCPY(tmp, rs_inputMethod, sizeof(tmp) - 1); -+ for (s = tmp; *s; s = next_s + 1) { -+ for (; *s && isspace(*s); s++); -+ if (!*s) -+ break; -+ for (end = s; (*end && (*end != ',')); end++); -+ for (next_s = end--; ((end >= s) && isspace(*end)); end--); -+ *(end + 1) = '\0'; -+ -+ if (*s) { -+ STRCPY(buf, "@im="); -+ strncat(buf, s, sizeof(buf) - 4 - 1); -+ if ((p = XSetLocaleModifiers(buf)) != NULL && *p -+ && (xim = XOpenIM(Xdisplay, NULL, NULL, NULL)) != NULL) -+ break; -+ } -+ if (!*next_s) -+ break; -+ } -+ } -+ -+ /* try with XMODIFIERS env. var. */ -+ if (xim == NULL && (p = XSetLocaleModifiers("")) != NULL && *p) -+ xim = XOpenIM(Xdisplay, NULL, NULL, NULL); -+ -+ /* try with no modifiers base */ -+ if (xim == NULL && (p = XSetLocaleModifiers("@im=none")) != NULL && *p) -+ xim = XOpenIM(Xdisplay, NULL, NULL, NULL); -+ -+ if (xim == NULL) -+ return; -+ XSetIMValues(xim, XNDestroyCallback, &ximcallback, NULL); -+ -+ if (XGetIMValues(xim, XNQueryInputStyle, &xim_styles, NULL) -+ || !xim_styles) { -+ print_error("input method doesn't support any style"); -+ XCloseIM(xim); -+ return; -+ } -+ STRNCPY(tmp, (rs_preeditType ? rs_preeditType -+ : "OverTheSpot,OffTheSpot,Root"), -+ sizeof(tmp) - 1); -+ for (found = 0, s = tmp; *s && !found; s = next_s + 1) { -+ unsigned short i; -+ -+ for (; *s && isspace(*s); s++); -+ if (!*s) -+ break; -+ for (end = s; (*end && (*end != ',')); end++); -+ for (next_s = end--; ((end >= s) && isspace(*end)); end--); -+ *(end + 1) = '\0'; -+ -+ if (!strcmp(s, "OverTheSpot")) -+ input_style = (XIMPreeditPosition | XIMStatusNothing); -+ else if (!strcmp(s, "OffTheSpot")) -+ input_style = (XIMPreeditArea | XIMStatusArea); -+ else if (!strcmp(s, "Root")) -+ input_style = (XIMPreeditNothing | XIMStatusNothing); -+ -+ for (i = 0; i < xim_styles->count_styles; i++) -+ if (input_style == xim_styles->supported_styles[i]) { -+ found = 1; -+ break; -+ } -+ } -+ XFree(xim_styles); -+ -+ if (found == 0) { -+ print_error("input method doesn't support my preedit type"); -+ XCloseIM(xim); -+ return; -+ } -+ if ((input_style != (XIMPreeditNothing | XIMStatusNothing)) -+ && (input_style != (XIMPreeditArea | XIMStatusArea)) -+ && (input_style != (XIMPreeditPosition | XIMStatusNothing))) { -+ print_error("This program does not support the preedit type"); -+ XCloseIM(xim); -+ return; -+ } -+ if (input_style & XIMPreeditPosition) { -+ setSize(&rect); -+ setPosition(&spot); -+ setColor(&fg, &bg); -+ -+ preedit_attr = XVaCreateNestedList(0, XNArea, &rect, -+ XNSpotLocation, &spot, -+ XNForeground, fg, -+ XNBackground, bg, -+ XNFontSet, TermWin.fontset, -+ NULL); -+ } else if (input_style & XIMPreeditArea) { -+ setColor(&fg, &bg); -+ -+ /* -+ * The necessary width of preedit area is unknown -+ * until create input context. -+ */ -+ needed_rect.width = 0; -+ -+ setPreeditArea(&rect, &status_rect, &needed_rect); -+ -+ preedit_attr = XVaCreateNestedList(0, XNArea, &rect, -+ XNForeground, fg, -+ XNBackground, bg, -+ XNFontSet, TermWin.fontset, -+ NULL); -+ status_attr = XVaCreateNestedList(0, XNArea, &status_rect, -+ XNForeground, fg, -+ XNBackground, bg, -+ XNFontSet, TermWin.fontset, -+ NULL); -+ } -+ Input_Context = XCreateIC(xim, XNInputStyle, input_style, -+ XNClientWindow, TermWin.parent, -+ XNFocusWindow, TermWin.parent, -+ XNDestroyCallback, &ximcallback, -+ preedit_attr ? XNPreeditAttributes : NULL, -+ preedit_attr, -+ status_attr ? XNStatusAttributes : NULL, -+ status_attr, -+ NULL); -+ XFree(preedit_attr); -+ XFree(status_attr); -+ if (Input_Context == NULL) { -+ print_error("Failed to create input context"); -+ XCloseIM(xim); -+ } -+ if (input_style & XIMPreeditArea) -+ IMSetStatusPosition(); -+ } -+ -+ /* PROTO */ -+ void -+ IMSetStatusPosition(void) -+ { -+ XIMStyle input_style; -+ XRectangle rect, status_rect, *needed_rect; -+ XVaNestedList preedit_attr, status_attr; -+ -+ if (Input_Context == NULL) -+ return; -+ -+ XGetICValues(Input_Context, XNInputStyle, &input_style, NULL); -+ -+ if (input_style & XIMPreeditArea) { -+ status_attr = XVaCreateNestedList(0, XNAreaNeeded, &needed_rect, NULL); -+ XGetICValues(Input_Context, XNStatusAttributes, status_attr, NULL); -+ XFree(status_attr); -+ -+ rect.x = needed_rect->width; -+ if (menuBar.state == 1) { -+ rect.y = Height2Pixel(TermWin.nrow - 1) - menuBar_TotalHeight(); -+ } else { -+ rect.y = Height2Pixel(TermWin.nrow - 1); -+ } -+ if (Options & Opt_scrollBar_right) { -+ rect.width = Width2Pixel(TermWin.ncol + 1) - needed_rect->width; -+ } else { -+ rect.width = Width2Pixel(TermWin.ncol + 1) + SB_WIDTH + SHADOW * 2 - needed_rect->width; -+ } -+ rect.height = needed_rect->height; -+ preedit_attr = XVaCreateNestedList(0, XNArea, &rect, NULL); -+ -+ if (scrollbar_visible()) { -+ if (Options & Opt_scrollBar_right) { -+ status_rect.x = 0; -+ } else { -+ status_rect.x = SB_WIDTH + SHADOW * 2; -+ } -+ } else { -+ status_rect.x = 0; -+ } -+ if (menuBar.state == 1) { -+ status_rect.y = Height2Pixel(TermWin.nrow - 1) + menuBar_TotalHeight(); -+ } else { -+ status_rect.y = Height2Pixel(TermWin.nrow - 1); -+ } -+ status_rect.width = needed_rect->width; -+ status_rect.height = needed_rect->height; -+ status_attr = XVaCreateNestedList(0, XNArea, &status_rect, NULL); -+ XSetICValues(Input_Context, -+ XNPreeditAttributes, preedit_attr, -+ XNStatusAttributes, status_attr, NULL); -+ XFree(preedit_attr); -+ XFree(status_attr); -+ } -+ } -+ -+ /* PROTO */ -+ void -+ XProcessEvent( Display *display ) -+ { -+ XEvent xev; -+ XNextEvent( display, &xev ); -+ if( !XFilterEvent( &xev, xev.xany.window ) ) -+ process_x_event( &xev ); -+ return; -+ } -+ -+ #endif - - /*}}} */ - /*----------------------- end-of-file (C source) -----------------------*/ -diff -cNr aterm-0.4.2.orig/src/feature.h aterm-0.4.2/src/feature.h -*** aterm-0.4.2.orig/src/feature.h Fri Sep 7 00:38:07 2001 ---- aterm-0.4.2/src/feature.h Sun Sep 30 14:38:03 2001 -*************** -*** 306,311 **** ---- 306,317 ---- - */ - #define SAVELINES 64 - -+ /* -+ * Default line space -+ */ -+ #define LINESPACE 0 -+ -+ - /* (Hops) Set to choose a number of lines of context between pages - * (rather than a proportion (1/5) of savedlines buffer) - * when paging the savedlines with SHIFT-{Prior,Next} keys. -diff -cNr aterm-0.4.2.orig/src/main.c aterm-0.4.2/src/main.c -*** aterm-0.4.2.orig/src/main.c Fri Sep 7 00:38:07 2001 ---- aterm-0.4.2/src/main.c Sun Sep 30 14:56:48 2001 -*************** -*** 901,906 **** ---- 901,909 ---- - - XResizeWindow(Xdisplay, TermWin.parent, width, height); - resize_window1(width, height); -+ #ifdef USE_XIM -+ IMSetStatusPosition(); -+ #endif - scr_clear(); - } - } -*************** -*** 1357,1363 **** - fw = TermWin.font->min_bounds.width; /* can be error !!!! */ - if( fw > 1000 ) fw = 0 ; /* added by suggestion from <suchness>*/ - -! fh = TermWin.font->ascent + TermWin.font->descent; - - if (TermWin.font->min_bounds.width == TermWin.font->max_bounds.width) - TermWin.fprop = 0; /* Mono-spaced (fixed width) font */ ---- 1360,1370 ---- - fw = TermWin.font->min_bounds.width; /* can be error !!!! */ - if( fw > 1000 ) fw = 0 ; /* added by suggestion from <suchness>*/ - -! #ifdef USE_LINESPACE -! fh = TermWin.font->ascent + TermWin.font->descent + TermWin.lineSpace; -! #else -! fh = TermWin.font->ascent + TermWin.font->descent; -! #endif - - if (TermWin.font->min_bounds.width == TermWin.font->max_bounds.width) - TermWin.fprop = 0; /* Mono-spaced (fixed width) font */ -*************** -*** 1624,1629 **** ---- 1631,1639 ---- - rs_geometry = NULL; /* window geometry */ - rs_minBufferWidth = NULL; - rs_saveLines = NULL; /* scrollback buffer [lines] */ -+ #ifdef USE_LINESPACE -+ rs_lineSpace = NULL; -+ #endif - rs_borderWidth = NULL; - rs_modifier = NULL; /* modifier */ - #if defined (HOTKEY_CTRL) || defined (HOTKEY_META) -*************** -*** 1750,1755 **** ---- 1760,1769 ---- - TermWin.min_bcol = 1; - if (!rs_saveLines || (TermWin.saveLines = atoi(rs_saveLines)) < 0) - TermWin.saveLines = SAVELINES; -+ #ifdef USE_LINESPACE -+ if (!rs_lineSpace || (TermWin.lineSpace = atoi(rs_lineSpace)) < 0) -+ TermWin.lineSpace = LINESPACE; -+ #endif - if (!rs_borderWidth || (TermWin.borderWidth = atoi(rs_borderWidth)) < 0) - TermWin.borderWidth = BORDERWIDTH; - -*************** -*** 1797,1802 **** ---- 1811,1819 ---- - rs_mfont[i] = def_mfontName[i]; - #endif - } -+ #ifdef USE_XIM -+ TermWin.fontset = NULL; -+ #endif - - #ifdef XTERM_REVERSE_VIDEO - /* this is how xterm implements reverseVideo */ -diff -cNr aterm-0.4.2.orig/src/rxvt.h aterm-0.4.2/src/rxvt.h -*** aterm-0.4.2.orig/src/rxvt.h Fri Sep 7 00:38:07 2001 ---- aterm-0.4.2/src/rxvt.h Sun Sep 30 15:01:00 2001 -*************** -*** 266,271 **** ---- 266,274 ---- - ncol, nrow, /* window size [characters] */ - bcol, /* current number of columns in the buffer */ - min_bcol, /* minimum horizontal columns in the buffer */ -+ #ifdef USE_LINESPACE -+ lineSpace, /* linespace */ -+ #endif - focus, /* window has focus */ - saveLines, /* number of lines that fit in scrollback */ - borderWidth,/* number of pixels in window border */ -*************** -*** 280,285 **** ---- 283,291 ---- - #ifdef MULTICHAR_SET - XFontStruct *mfont; /* Multichar font structure */ - #endif -+ #ifdef USE_XIM -+ XFontSet fontset; -+ #endif - #if defined(BACKGROUND_IMAGE) || defined(TRANSPARENT) || defined(_MYSTYLE_) - BackgroundInfo background; - #endif -*************** -*** 928,933 **** ---- 934,942 ---- - EXTERN const char *rs_geometry; /* window geometry */ - EXTERN const char *rs_minBufferWidth; /* minimum buffer width - so we can scroll horizontally */ - EXTERN const char *rs_saveLines; /* scrollback buffer [lines] */ -+ #ifdef USE_LINESPACE -+ EXTERN const char *rs_lineSpace; /* line space [pixels] */ -+ #endif - EXTERN const char *rs_borderWidth; /* border width [pixels] */ - EXTERN const char *rs_cutchars; /* chars for selection boundaries */ - #ifdef META8_OPTION -*************** -*** 948,953 **** ---- 957,966 ---- - #endif - #ifdef PRINTPIPE - EXTERN const char *rs_print_pipe; -+ #endif -+ #ifdef USE_XIM -+ EXTERN const char *rs_preeditType; -+ EXTERN const char *rs_inputMethod; - #endif - #ifndef NO_BRIGHTCOLOR - EXTERN unsigned int colorfgbg; -diff -cNr aterm-0.4.2.orig/src/screen.c aterm-0.4.2/src/screen.c -*** aterm-0.4.2.orig/src/screen.c Fri Sep 7 00:38:07 2001 ---- aterm-0.4.2/src/screen.c Sun Sep 30 15:03:36 2001 -*************** -*** 3439,3441 **** ---- 3439,3455 ---- - #endif - fprintf(stderr, "%s\n", name[color]); - } -+ -+ #ifdef USE_XIM -+ /* PROTO */ -+ void -+ setPosition(XPoint *pos) -+ { -+ XWindowAttributes xwa ; -+ -+ XGetWindowAttributes( Xdisplay, TermWin.vt, &xwa ) ; -+ pos->x = Col2Pixel ( screen.cur.col ) + xwa.x; -+ pos->y = Height2Pixel((screen.cur.row + 1)) + xwa.y; -+ return ; -+ } -+ #endif -diff -cNr aterm-0.4.2.orig/src/xdefaults.c aterm-0.4.2/src/xdefaults.c -*** aterm-0.4.2.orig/src/xdefaults.c Fri Sep 7 00:38:07 2001 ---- aterm-0.4.2/src/xdefaults.c Sun Sep 30 15:06:21 2001 -*************** -*** 276,281 **** ---- 276,286 ---- - STRG(rs_multichar_encoding, "multichar_encoding", "km", "mode", - "multiple-character font encoding; mode = eucj | sjis | big5"), - #endif /* MULTICHAR_SET */ -+ #ifdef USE_XIM -+ STRG(rs_preeditType, "preeditType", "pt", "style", -+ "input style of input method; style = OverTheSpot | OffTheSpot | Root"), -+ STRG(rs_inputMethod, "inputMethod", "im", "name", "name of input method"), -+ #endif /* USE_XIM */ - #ifdef GREEK_SUPPORT - STRG(rs_greek_keyboard, "greek_keyboard", "grk", "mode", - "greek keyboard mapping; mode = iso | ibm"), -*************** -*** 313,318 **** ---- 318,327 ---- - "minimum number of columns stored in buffer"), - STRG(rs_saveLines, "saveLines", "sl", "number", - "number of scrolled lines to save"), -+ #ifdef USE_LINESPACE -+ STRG(rs_lineSpace, "lineSpace", "lsp", "number", -+ "line space"), -+ #endif - BOOL(rs_utmpInhibit, "utmpInhibit", "ut", Opt_utmpInhibit, - "utmp inhibit"), - BOOL(rs_visualBell, "visualBell", "vb", Opt_visualBell, "visual bell"), diff --git a/chinese/aterm/files/patch-autoconf__config.h.in b/chinese/aterm/files/patch-autoconf__config.h.in new file mode 100644 index 000000000000..9c32e337b957 --- /dev/null +++ b/chinese/aterm/files/patch-autoconf__config.h.in @@ -0,0 +1,11 @@ +--- ./autoconf/config.h.in.orig 2013-01-04 19:40:08.000000000 +0800 ++++ ./autoconf/config.h.in 2013-01-04 20:41:33.000000000 +0800 +@@ -132,6 +132,8 @@ + /* Disable the secondary screen (Esc(47h) / Esc(47l)) */ + #undef NO_SECONDARY_SCREEN + ++#undef USE_XIM ++ + /* Define is setlocale (defined to Xsetlocale) doesn't work */ + #undef NO_SETLOCALE + diff --git a/chinese/aterm/files/patch-autoconf__configure.in b/chinese/aterm/files/patch-autoconf__configure.in new file mode 100644 index 000000000000..4dba3206ca59 --- /dev/null +++ b/chinese/aterm/files/patch-autoconf__configure.in @@ -0,0 +1,12 @@ +--- ./autoconf/configure.in.orig 2013-01-04 19:40:13.000000000 +0800 ++++ ./autoconf/configure.in 2013-01-04 19:47:51.000000000 +0800 +@@ -48,6 +48,9 @@ + AC_ARG_ENABLE(big5, [ --enable-big5 enable big5 support], + [if test x$enableval = xyes; then AC_DEFINE(ZH,1,[Define if you want chinese support]) fi]) + ++AC_ARG_ENABLE(xim, [ --enable-xim enable xim support], ++ [if test x$enableval = xyes; then AC_DEFINE(USE_XIM,1,[Define if you want XIM support]) fi]) ++ + AC_ARG_ENABLE(greek, [ --enable-greek enable greek keyboard support], + [if test x$enableval = xyes; then AC_DEFINE(GREEK_SUPPORT,1,[Define if you want support for Greek Elot-928 & IBM-437 keyboard]) fi]) + diff --git a/chinese/aterm/files/patch-configure b/chinese/aterm/files/patch-configure new file mode 100644 index 000000000000..e35d029bad3e --- /dev/null +++ b/chinese/aterm/files/patch-configure @@ -0,0 +1,27 @@ +--- ./configure.orig 2013-01-04 20:51:05.000000000 +0800 ++++ ./configure 2013-01-04 20:46:12.000000000 +0800 +@@ -1293,6 +1293,7 @@ + --enable-wtmp enable wtmp support if you have utmp/utmpx support + --enable-kanji enable kanji support + --enable-big5 enable big5 support ++ --enable-xim enable xim support + --enable-greek enable greek keyboard support + --enable-thai enable thai support + --enable-ttygid enable tty setting to group \"tty\" - use only if +@@ -1864,6 +1865,16 @@ + fi + + ++# Check whether --enable-xim was given. ++if test "${enable_xim+set}" = set; then ++ enableval=$enable_xim; if test x$enableval = xyes; then ++cat >> confdefs.h <<\_ACEOF ++#define USE_XIM 1 ++_ACEOF ++ fi ++fi ++ ++ + # Check whether --enable-greek was given. + if test "${enable_greek+set}" = set; then + enableval=$enable_greek; if test x$enableval = xyes; then |