diff options
author | Yoshio MITA <mita@FreeBSD.org> | 2002-01-20 22:32:04 +0000 |
---|---|---|
committer | Yoshio MITA <mita@FreeBSD.org> | 2002-01-20 22:32:04 +0000 |
commit | 2c480e144fea8d613935eb99328494de3ddf5d4b (patch) | |
tree | ffff5bba4de63a10d52bd357a00b99f6ea42bc6d | |
parent | 699b590e7cc5e8e0815ab810209ef3f32e6b391c (diff) | |
download | ports-2c480e144fea8d613935eb99328494de3ddf5d4b.tar.gz ports-2c480e144fea8d613935eb99328494de3ddf5d4b.zip |
Notes
-rw-r--r-- | japanese/gnomelibs/Makefile | 2 | ||||
-rw-r--r-- | japanese/gnomelibs/files/patch-ae | 154 | ||||
-rw-r--r-- | japanese/gnomelibs/files/patch-af | 160 | ||||
-rw-r--r-- | japanese/gnomelibs/files/patch-ag | 32 | ||||
-rw-r--r-- | japanese/gnomelibs/files/patch-ah | 24 | ||||
-rw-r--r-- | japanese/gnomelibs/files/patch-ai | 521 | ||||
-rw-r--r-- | japanese/gnomelibs/files/patch-aj | 21 | ||||
-rw-r--r-- | japanese/gnomelibs/files/patch-ak | 20 | ||||
-rw-r--r-- | japanese/gnomelibs/files/patch-al | 328 | ||||
-rw-r--r-- | japanese/gnomelibs/files/patch-am | 23 | ||||
-rw-r--r-- | japanese/gnomelibs/files/patch-an | 89 | ||||
-rw-r--r-- | japanese/gnomelibs/files/patch-ao | 16 | ||||
-rw-r--r-- | japanese/gnomelibs/files/patch-ap | 29 | ||||
-rw-r--r-- | japanese/gnomelibs/files/patch-aq | 13 | ||||
-rw-r--r-- | japanese/gnomelibs/files/patch-ar | 10 |
15 files changed, 1 insertions, 1441 deletions
diff --git a/japanese/gnomelibs/Makefile b/japanese/gnomelibs/Makefile index 18f72b801aa8..819ceb605aaa 100644 --- a/japanese/gnomelibs/Makefile +++ b/japanese/gnomelibs/Makefile @@ -6,7 +6,7 @@ # # This port does not work with another version of master port. -#PORTVERSION= 1.4.1.1 +#PORTVERSION= 1.4.1.3 CATEGORIES= japanese x11 gnome MASTERDIR= ${.CURDIR}/../../x11/gnomelibs diff --git a/japanese/gnomelibs/files/patch-ae b/japanese/gnomelibs/files/patch-ae deleted file mode 100644 index 537cc3e9086e..000000000000 --- a/japanese/gnomelibs/files/patch-ae +++ /dev/null @@ -1,154 +0,0 @@ ---- zvt/update.c.zvtmb Mon Aug 28 01:22:23 2000 -+++ zvt/update.c Sun Jun 24 07:35:48 2001 -@@ -170,6 +170,11 @@ - run++; - } else { - /* render 'run so far' */ -+#ifdef ZVT_MB -+ run = vt_query_line_mbchar(runstart + run, bl); -+ runstart = vt_query_line_mbchar(runstart, bl); -+ run -= runstart; -+#endif - vx->draw_text(vx->vt.user_data, bl, - line, runstart, run, attr); - vx->back_match = always?0: -@@ -197,6 +202,11 @@ - /* check for runs of common characters, if they are short, then - use them */ - if (commonrun>VT_THRESHHOLD || (newattr!=attr)) { -+#ifdef ZVT_MB -+ run = vt_query_line_mbchar(runstart + run, bl); -+ runstart = vt_query_line_mbchar(runstart, bl); -+ run -= runstart; -+#endif - vx->draw_text(vx->vt.user_data, bl, - line, runstart, run, attr); - run=0; -@@ -205,6 +215,11 @@ - commonrun++; - } - #else -+#ifdef ZVT_MB -+ run = vt_query_line_mbchar(runstart + run, bl); -+ runstart = vt_query_line_mbchar(runstart, bl); -+ run -= runstart; -+#endif - vx->draw_text(vx->vt.user_data, bl, - line, runstart, run, attr); - run=0; -@@ -215,6 +230,11 @@ - } - - if (run) { -+#ifdef ZVT_MB -+ run = vt_query_line_mbchar(runstart + run, bl); -+ runstart = vt_query_line_mbchar(runstart, bl); -+ run -= runstart; -+#endif - vx->draw_text(vx->vt.user_data, bl, - line, runstart, run, attr); - } -@@ -677,7 +697,14 @@ - while (nn && line<vx->vt.height) { - d(printf("%p: scanning line %d, was %d\n", wn, line, wn->line)); - if (wn->line==-1) { -+#ifdef ZVT_MB -+ /* FIXME: -+ Current vt_line_update() have a problem for multibyte character, -+ so, we must update with a force argument. */ -+ vt_line_update(vx, wn, bl, line, 1, 0, bl->width); -+#else - vt_line_update(vx, wn, bl, line, 0, 0, bl->width); -+#endif - d(printf("manual: updating line %d\n", line)); - } else if (wn->modcount || update_state) { - vt_line_update(vx, wn, bl, line, force, 0, bl->width); -@@ -772,6 +799,12 @@ - - if (wn) { - nn = wn->next; -+#ifdef ZVT_MB -+ /* query start/end range for multibyte */ -+ csx = vt_query_line_mbchar(csx, wn); -+ cex = vt_query_line_mbchar(cex, wn); -+#endif -+ - while ((csy<=cey) && nn) { - d(printf("updating line %d\n", csy)); - -@@ -965,6 +998,12 @@ - ex++; - } - -+#ifdef ZVT_MB -+ /* arranged selection columns (sx and ex) for multibyte character */ -+ sx = vt_query_line_mbchar(sx,s); -+ ex = vt_query_line_mbchar(ex,e); -+#endif -+ - if ( ((vx->selstarty == vx->selendy) && (vx->selstartx > vx->selendx)) || - (vx->selstarty > vx->selendy) ) { - vx->selstartx = ex; /* swap end/start values */ -@@ -998,6 +1037,9 @@ - } - } - -+#ifdef ZVT_MB -+ if (!(l->data[dataend] & VTATTR_MULTIBYTE)) -+#endif - if (end>dataend) { - lf = 1; /* we selected past the end of the line */ - end = dataend; -@@ -1011,6 +1053,9 @@ - case 2: { - unsigned short *o = (unsigned short *)out; - for (i=start;i<end;i++) { -+#ifdef ZVT_MB -+ if ((l->data[i] & VTATTR_MULTIBYTE)) continue; -+#endif - c = l->data[i] & VTATTR_DATAMASK; - if (state==0) { - if (c==0x09) -@@ -1037,6 +1082,9 @@ - case 4: { - unsigned int *o = (unsigned int *)out; - for (i=start;i<end;i++) { -+#ifdef ZVT_MB -+ if ((l->data[i] & VTATTR_MULTIBYTE)) continue; -+#endif - c = l->data[i] & VTATTR_DATAMASK; - if (state==0) { - if (c==0x09) -@@ -1062,6 +1110,9 @@ - default: { - unsigned char *o = out; - for (i=start;i<end;i++) { -+#ifdef ZVT_MB -+ if ((l->data[i] & VTATTR_MULTIBYTE)) continue; -+#endif - c = l->data[i] & VTATTR_DATAMASK; - if (state==0) { - if (c==0x09) -@@ -1288,9 +1339,13 @@ - void vt_draw_cursor(struct _vtx *vx, int state) - { - uint32 attr; -+ gint len = 1; - - if (vx->vt.scrollbackold == 0 && vx->vt.cursorx<vx->vt.width) { - attr = vx->vt.this_line->data[vx->vt.cursorx]; -+#ifdef ZVT_MB -+ len = vt_line_mblen(vx->vt.cursorx, vx->vt.this_line); -+#endif /* ZVT_MB */ - if (state && (vx->vt.mode & VTMODE_BLANK_CURSOR)==0) { /* must swap fore/background colour */ - attr = (((attr & VTATTR_FORECOLOURM) >> VTATTR_FORECOLOURB) << VTATTR_BACKCOLOURB) - | (((attr & VTATTR_BACKCOLOURM) >> VTATTR_BACKCOLOURB) << VTATTR_FORECOLOURB) -@@ -1299,7 +1354,7 @@ - vx->back_match=0; /* forces re-draw? */ - vx->draw_text(vx->vt.user_data, - vx->vt.this_line, -- vx->vt.cursory, vx->vt.cursorx, 1, attr); -+ vx->vt.cursory, vx->vt.cursorx, len, attr); - } - } - diff --git a/japanese/gnomelibs/files/patch-af b/japanese/gnomelibs/files/patch-af deleted file mode 100644 index ea73c508a625..000000000000 --- a/japanese/gnomelibs/files/patch-af +++ /dev/null @@ -1,160 +0,0 @@ ---- zvt/vt.c.zvtmb Sun Nov 26 03:49:08 2000 -+++ zvt/vt.c Sun Jun 24 07:35:48 2001 -@@ -109,6 +109,62 @@ - - #endif - -+#ifdef ZVT_MB -+/* -+ return multibyte character length in vt line -+*/ -+int vt_line_mblen(int x, struct vt_line *l) -+{ -+ unsigned char ctmp[MB_CUR_MAX]; -+ int len = 1, i; -+ -+ /* arranged selection columns (sx and ex) for multibyte character */ -+ if (MB_CUR_MAX >= 2) { -+ for (i = 0; i < MB_CUR_MAX; i++) -+ if (x+i <= l->width) -+ ctmp[i] = l->data[x+i] & 0xff; -+ else -+ ctmp[i] = 0; -+ len = mblen(ctmp, MB_CUR_MAX); -+ if (len <= 0) len = 1; -+ } -+ -+ return(len); -+} -+ -+int vt_query_line_mbchar(int x, struct vt_line *l) -+{ -+ unsigned char ctmp[MB_CUR_MAX]; -+ int xx = x, len = 1, i; -+ -+ if (x == 0 || x == l->width) return(x); -+ -+ /* arranged selection columns (sx and ex) for multibyte character */ -+ if (MB_CUR_MAX >= 2) { -+ if (x > l->width) x = l->width; -+ if (x < 0) x = 0; -+ for (xx = 0; xx < x; xx += len) { -+ if ((l->data[xx] & VTATTR_DATAMASK) <= 0x1f) -+ len = 1; /* control code character */ -+ else { -+ for (i = 0; i < MB_CUR_MAX && xx+i < x; i++) -+ ctmp[i] = l->data[xx+i] & VTATTR_DATAMASK; -+ for ( ; i < MB_CUR_MAX; i++) -+ ctmp[i] = 0; -+ len = mblen(ctmp, MB_CUR_MAX); -+ if (len <= 0) { -+ if (xx + 1 != x) -+ len = 1; -+ else -+ break; -+ } -+ } -+ } -+ } -+ return(xx); -+} -+#endif -+ - /*********************************************************************** - * Update functions - */ -@@ -1444,6 +1500,10 @@ - struct vt_jump *modes = vtjumps; - char *ptr_end; - void (*process)(struct vt_em *vt); /* process function */ -+#ifdef ZVT_MB -+ unsigned char ctmp[MB_CUR_MAX]; -+ int ctmp_num; -+#endif - - /* states: - * 0: normal escape mode -@@ -1521,7 +1581,26 @@ - - switch (state) { - -+#if defined(ZVT_JIS) && defined(ZVT_MB) -+ case 100: /* enter JIS mode */ -+ state = (c == 'B')? 101: 0; -+ break; -+ case 110: /* exit JIS mode */ -+ state = 0; -+ break; -+ case 101: -+ if (c > 0x1f && c < 0x80 && MB_CUR_MAX >= 2) -+ c += 0x80; -+#endif - case 0: -+#ifdef ZVT_MB -+ /* prevent to be into alt mode for half katakana character in EUC-JP */ -+ if ((mode & VT_CON) && process == vt_alt_start && (*ptr & 0xff) >= 0xa0) { -+ mode = VT_LIT; -+ process = NULL; -+ } -+#endif -+ - if (mode & VT_LIT) { - /* remap character? */ - if (vt->remaptable && c<=0xff) -@@ -1531,17 +1610,43 @@ - if (vt->mode & VTMODE_INSERT) - vt_insert_chars(vt, 1); - -+#ifdef ZVT_MB -+ ctmp_num = 0; -+#endif - /* need to wrap? */ - if (vt->cursorx>=vt->width) { - if (vt->mode&VTMODE_WRAPOFF) - vt->cursorx = vt->width-1; - else { -+#ifdef ZVT_MB -+ /* check of a boundary of multi byte character */ -+ int x = vt_query_line_mbchar(vt->width+1, vt->this_line); -+ if (x < vt->width && vt->width - x < sizeof(ctmp) ) { -+ for(ctmp_num=0; ctmp_num < vt->width - x; ctmp_num++) { -+ int i = vt->width - 1 - ctmp_num; -+ ctmp[ctmp_num] = vt->this_line->data[i] & 0xff; -+ vt->this_line->data[i] = -+ ((vt->attr) & VTATTR_CLEARMASK) |VTATTR_MULTIBYTE; -+ vt->this_line->modcount++; -+ } -+ } -+#endif - vt_lf(vt); - vt->cursorx=0; - } - } - - /* output character */ -+#ifdef ZVT_MB -+ if (ctmp_num) { -+ while(ctmp_num) { -+ vt->this_line->data[vt->cursorx++] = -+ ((vt->attr) & VTATTR_MASK) | ctmp[ctmp_num-1]; -+ ctmp_num--; -+ vt->this_line->modcount++; -+ } -+ } -+#endif - vt->this_line->data[vt->cursorx] = ((vt->attr) & VTATTR_MASK) | c; - vt->this_line->modcount++; - /* d(printf("literal %c\n", c)); */ -@@ -1571,6 +1676,12 @@ - } else if (c==']') { /* set text parameters, read parameters */ - state = 4; - vt->arg.txt.outptr = vt->arg.txt.args_mem; -+#if defined(ZVT_JIS) && defined(ZVT_MB) -+ } else if (c=='$') { /* in JIS code */ -+ state = 100; -+ } else if (c=='(') { /* out JIS mode */ -+ state = 110; -+#endif - } else if (mode & VT_EXA) { - vt->arg.num.intargs[0] = c & 0x7f; - state = 5; diff --git a/japanese/gnomelibs/files/patch-ag b/japanese/gnomelibs/files/patch-ag deleted file mode 100644 index 8fc48ec0274a..000000000000 --- a/japanese/gnomelibs/files/patch-ag +++ /dev/null @@ -1,32 +0,0 @@ ---- zvt/vt.h.zvtmb Sat Oct 30 03:35:49 1999 -+++ zvt/vt.h Sun Jun 24 07:35:48 2001 -@@ -28,6 +28,10 @@ - /* for utf-8 input support */ - #define ZVT_UTF 1 - -+/* for multibyte support */ -+#define ZVT_MB 1 -+#define ZVT_JIS 1 -+ - #ifdef __cplusplus - extern "C" { - #endif /* __cplusplus */ -@@ -71,6 +75,7 @@ - #define VTATTR_BLINK 0x10000000 - #define VTATTR_REVERSE 0x08000000 - #define VTATTR_CONCEALED 0x04000000 -+#define VTATTR_MULTIBYTE 0x80000000 /* for multibyte charater */ - - /* all attributes mask, and no-attributes mask */ - #define VTATTR_MASK 0xffff0000 -@@ -207,6 +212,10 @@ - int vt_killchild (struct vt_em *vt, int signal); - int vt_closepty (struct vt_em *vt); - void vt_reset_terminal (struct vt_em *vt, int hard); -+#ifdef ZVT_MB -+int vt_line_mblen(int x, struct vt_line *l); -+int vt_query_line_mbchar(int x, struct vt_line *l); -+#endif - - #ifdef __cplusplus - } diff --git a/japanese/gnomelibs/files/patch-ah b/japanese/gnomelibs/files/patch-ah deleted file mode 100644 index 279d55c06e99..000000000000 --- a/japanese/gnomelibs/files/patch-ah +++ /dev/null @@ -1,24 +0,0 @@ ---- zvt/zterm.c.zvtmb Sat Mar 18 16:57:13 2000 -+++ zvt/zterm.c Sun Jun 24 07:35:48 2001 -@@ -41,7 +41,12 @@ - - #include "zvtterm.h" - --#define FONT "-misc-fixed-medium-r-normal--12-200-75-75-c-100-iso8859-1" -+ -+#ifdef ZVT_MB -+#define FONT "-misc-fixed-medium-r-normal--14-*-*-*-*-*-*-*" -+#else -+#define FONT "-misc-fixed-medium-r-normal--14-*-*-*-*-*-iso8859-1" -+#endif - - extern char **environ; - static char **env; -@@ -153,6 +158,7 @@ - env_copy [winid_pos] = "TEST"; - env_copy [i] = NULL; - -+ gtk_set_locale(); - gtk_init(&argc, &argv); - - /* process arguments */ diff --git a/japanese/gnomelibs/files/patch-ai b/japanese/gnomelibs/files/patch-ai deleted file mode 100644 index b3d94577a632..000000000000 --- a/japanese/gnomelibs/files/patch-ai +++ /dev/null @@ -1,521 +0,0 @@ ---- zvt/zvtterm.c.zvtmb Sun Jun 24 07:35:48 2001 -+++ zvt/zvtterm.c Sun Jun 24 07:35:48 2001 -@@ -49,12 +49,15 @@ - #include <X11/Xatom.h> - #include <X11/Xos.h> - -- - /* define to 'x' to enable copious debug output */ - #define d(x) - - /* default font */ -+#ifndef ZVT_MB - #define DEFAULT_FONT "-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1" -+#else -+#define DEFAULT_FONT "-misc-fixed-medium-r-normal--14-*-*-*-*-*-*-1" -+#endif - - #define PADDING 2 - -@@ -115,6 +118,12 @@ - /* load the "current" background, from file or from system */ - static void load_background (ZvtTerm *term); - -+#ifdef ZVT_IM_ON_THE_SPOT -+static void zvt_im_preedit_set_spot(ZvtTerm *term, int col, int row, int offx, int offy); -+static void zvt_im_preedit_set_foreground(ZvtTerm *term, GdkColor *color); -+static void zvt_im_preedit_set_background(ZvtTerm *term, GdkColor *color); -+static void zvt_im_preedit_set_font(ZvtTerm *term, GdkFont *font); -+#endif - - /* static data */ - -@@ -146,6 +155,13 @@ - }; - static guint term_signals[LAST_SIGNAL] = { 0 }; - -+/* values for selection info */ -+enum { -+ TARGET_STRING, -+ TARGET_UTF8, -+ TARGET_TEXT, -+ TARGET_COMPOUND_TEXT -+}; - - /* GTK parent class */ - static GtkWidgetClass *parent_class = NULL; -@@ -237,6 +253,17 @@ - zvt_term_init (ZvtTerm *term) - { - struct _zvtprivate *zp; -+ static const GtkTargetEntry targets[] = { -+ { "STRING", 0, TARGET_STRING }, -+#ifdef ZVT_UTF -+ { "UTF-8", 0, TARGET_UTF8 }, -+#endif -+#ifdef ZVT_MB -+ { "TEXT", 0, TARGET_TEXT }, -+ { "COMPOUND_TEXT", 0, TARGET_COMPOUND_TEXT } -+#endif -+ }; -+ static const gint n_targets = sizeof(targets) / sizeof(targets[0]); - - GTK_WIDGET_SET_FLAGS (term, GTK_CAN_FOCUS); - -@@ -328,19 +355,9 @@ - term); - - /* selection received */ -- gtk_selection_add_target ( -- GTK_WIDGET (term), -- GDK_SELECTION_PRIMARY, -- GDK_SELECTION_TYPE_STRING, -- 0); --#ifdef ZVT_UTF -- gtk_selection_add_target ( -- GTK_WIDGET (term), -- GDK_SELECTION_PRIMARY, -- gdk_atom_intern ("UTF-8", FALSE), -- 1); --#endif -- -+ gtk_selection_add_targets (GTK_WIDGET (term), -+ GDK_SELECTION_PRIMARY, -+ targets, n_targets); - } - - /** -@@ -647,6 +664,11 @@ - clone_col(&zp->queue_red, 0); - clone_col(&zp->queue_green, 0); - clone_col(&zp->queue_blue, 0); -+#ifdef ZVT_IM_ON_THE_SPOT -+ zvt_im_preedit_set_background(term, &c); -+ c.pixel = term->colors [16]; -+ zvt_im_preedit_set_foreground(term, &c); -+#endif /* ZVT_IM_ON_THE_SPOT */ - } - - /** -@@ -782,6 +804,9 @@ - term_force_size(term); - - /* input context */ -+#ifdef ZVT_IM_ON_THE_SPOT -+ zvt_term_set_open_im (term, True); -+#else - if (gdk_im_ready () && !term->ic) { - GdkICAttr attr; - -@@ -794,6 +819,7 @@ - g_warning("Can't create input context."); - } - } -+#endif - } - - static void -@@ -1261,7 +1287,11 @@ - case GDK_FONT_FONTSET: { - XFontSet fontset = (XFontSet) ((GdkFontPrivate *)font)->xfont; - XFontSetExtents *extents = XExtentsOfFontSet(fontset); -+#ifdef ZVT_MB /* This is look bug..., isn't it? */ -+ term->charwidth = gdk_string_width (font, "M"); -+#else - term->charwidth = extents->max_logical_extent.width; -+#endif - term->charheight = extents->max_logical_extent.height; - zp->fonttype = ZVT_FONT_FONTSET; - } -@@ -1276,6 +1306,9 @@ - if (term->font) - gdk_font_unref (term->font); - term->font = font; -+#ifdef ZVT_IM_ON_THE_SPOT -+ zvt_im_preedit_set_font(term, font); -+#endif - - if (term->font_bold) - gdk_font_unref (term->font_bold); -@@ -1376,16 +1409,28 @@ - - if (rest) { - g_string_sprintf (outname, "%s-medium-r%s", newname->str, rest); -+#ifndef ZVT_MB - font = gdk_font_load (outname->str); -+#else -+ font = gdk_fontset_load (outname->str); -+#endif - d( printf("loading normal font %s\n", outname->str) ); - - g_string_sprintf (outname, "%s-bold-r%s", newname->str, rest); -+#ifndef ZVT_MB - font_bold = gdk_font_load (outname->str); -+#else -+ font_bold = gdk_fontset_load (outname->str); -+#endif - d( printf("loading bold font %s\n", outname->str) ); - - zvt_term_set_fonts_internal (term, font, font_bold); - } else { -+#ifndef ZVT_MB - font = gdk_font_load (name); -+#else -+ font = gdk_fontset_load (name); -+#endif - zvt_term_set_fonts_internal (term, font, 0); - } - -@@ -1425,7 +1470,11 @@ - { - GdkAtom string_atom; - #ifdef ZVT_UTF -+#ifdef ZVT_MB -+ char *types[] = {"UTF-8", "COMPOUND_TEXT"}; -+#else - char *types[] = {"UTF-8", "STRING"}; -+#endif /* ZVT_MB */ - int index; - struct _zvtprivate *zp = _ZVT_PRIVATE(widget); - -@@ -1445,7 +1494,11 @@ - d(printf(" %s atom = %d\n", types[index], (int)string_atom)); - #else - /* Get the atom corresonding to the target "STRING" */ -+#ifdef ZVT_MB -+ string_atom = gdk_atom_intern ("COMPOUND_TEXT", FALSE); -+#else - string_atom = gdk_atom_intern ("STRING", FALSE); -+#endif /* ZVT_MB */ - #endif - - if (string_atom == GDK_NONE) { -@@ -1871,10 +1924,15 @@ - - switch (type) { - default: -- case 0: { /* this is ascii/isolatin1 */ -+ -+#ifdef ZVT_MB -+ case TARGET_COMPOUND_TEXT: -+ case TARGET_TEXT: -+#endif -+ case TARGET_STRING: { /* this is ascii/isolatin1 */ - unsigned char *o; - d(printf("converting selection to ISOLATIN1\n")); -- out = g_malloc(term->vx->selection_size); -+ out = g_malloc(term->vx->selection_size+1); - o = out; - for(i=0;i<term->vx->selection_size;i++) { - c = term->vx->selection_data[i]; -@@ -1883,7 +1941,7 @@ - *outlen = term->vx->selection_size; - break; - } -- case 1: { /* this is utf-8, basically a local implementation of wcstombs() */ -+ case TARGET_UTF8: { /* this is utf-8, basically a local implementation of wcstombs() */ - unsigned char *o; - unsigned int len=0; - d(printf("converting selection to UTF-8\n")); -@@ -1972,10 +2030,34 @@ - term = ZVT_TERM (widget); - vx = term->vx; - -+#ifdef ZVT_MB -+ if (info == TARGET_COMPOUND_TEXT||info == TARGET_TEXT) { -+ GdkAtom encoding; -+ gint format; -+ guchar *str, *new_str; -+ gint new_len; -+#ifdef ZVT_UTF -+ str = zvt_term_convert_selection(term, info, &len); -+#else -+ int len = vx->selection_size; -+ str = (guchar*)vx->selection_data; -+#endif -+ str[len] = '\0'; -+ gdk_string_to_compound_text (str, &encoding, &format, &new_str, &new_len); -+ gtk_selection_data_set (selection_data_ptr, encoding, format, -+ new_str, new_len); -+ gdk_free_compound_text (new_str); -+#if ZVT_UTF -+ g_free(str); -+#endif -+ return; -+ } -+#endif /* ZVT_MB */ -+ - #ifdef ZVT_UTF - /* convert selection based on info */ - /* the selection is actually stored in 32 bit chars */ -- if (info==1) -+ if (info==TARGET_UTF8) - atom = gdk_atom_intern ("UTF-8", FALSE); - else - atom = GDK_SELECTION_TYPE_STRING; -@@ -2026,6 +2108,7 @@ - - /* Make sure we got the data in the expected form */ - if (selection_data->type != GDK_SELECTION_TYPE_STRING -+ && selection_data->type != gdk_atom_intern("COMPOUND_TEXT", FALSE) - && selection_data->type != gdk_atom_intern("UTF-8", FALSE)) { - g_print ("Selection \"STRING\" was not returned as strings!\n"); - return; -@@ -2036,13 +2119,40 @@ - { - int i; - char *ctmp = selection_data->data; -+ gint length = selection_data->length; - -- for(i = 0; i < selection_data->length; i++) -- if(ctmp[i] == '\n') ctmp[i] = '\r'; -- -- if (term->scroll_on_keystroke) -- zvt_term_scroll (term, 0); -- zvt_term_writechild(term, selection_data->data, selection_data->length); -+ if (selection_data->type == gdk_atom_intern("COMPOUND_TEXT",FALSE)) { -+ gchar **list; -+ gint count; -+ -+ count = gdk_text_property_to_text_list (selection_data->type, -+ selection_data->format, -+ selection_data->data, -+ selection_data->length, -+ &list); -+ if (count > 0) { -+ gint n; -+ length = 0; -+ for (n=0; n<count; n++) { -+ ctmp = list[n]; -+ length = strlen (list[n]); -+ for(i = 0; i < length; i++) -+ if(ctmp[i] == '\n') ctmp[i] = '\r'; -+ -+ if (term->scroll_on_keystroke) -+ zvt_term_scroll (term, 0); -+ vt_writechild(&vx->vt, ctmp, length); -+ } -+ gdk_free_text_list (list); -+ } -+ } else { -+ for (i = 0; i < length; i++) -+ if(ctmp[i] == '\n') ctmp[i] = '\r'; -+ -+ if (term->scroll_on_keystroke) -+ zvt_term_scroll (term, 0); -+ vt_writechild(&vx->vt, ctmp, length); -+ } - } - } - -@@ -2094,6 +2204,141 @@ - return length; - } - -+#ifdef ZVT_IM_ON_THE_SPOT -+/** -+ * zvt_term_set_open_im: -+ * @term: A &ZvtTerm widget. -+ * @state: if True, open IM, else close. -+ **/ -+void -+zvt_term_set_open_im (ZvtTerm *term, int state) -+{ -+ if(!state) -+ { -+ if (term->ic) -+ { -+ gdk_ic_destroy(term->ic); -+ term->ic = NULL; -+ } -+ return; -+ } -+ -+ if (gdk_im_ready () && !term->ic) -+ { -+ gint width, height; -+ GdkICAttr attr; -+ GdkColormap *colormap; -+ GdkICAttributesType attrmask = GDK_IC_ALL_REQ; -+ GdkIMStyle style; -+ GdkIMStyle supported_style = GDK_IM_PREEDIT_NONE | -+ GDK_IM_PREEDIT_NOTHING | -+ GDK_IM_PREEDIT_POSITION | -+ GDK_IM_STATUS_NONE | -+ GDK_IM_STATUS_NOTHING; -+ -+ if (GTK_WIDGET (term)->style && -+ GTK_WIDGET (term)->style->font->type != GDK_FONT_FONTSET) -+ supported_style &= ~GDK_IM_PREEDIT_POSITION; -+ -+ attr.style = style = gdk_im_decide_style (supported_style); -+ attr.client_window = attr.focus_window = term->term_window; -+ -+ if ((colormap = gtk_widget_get_colormap (GTK_WIDGET (term))) -+ != gtk_widget_get_default_colormap ()) -+ { -+ attrmask |= GDK_IC_PREEDIT_COLORMAP; -+ attr.preedit_colormap = colormap; -+ } -+ -+ switch (style & GDK_IM_PREEDIT_MASK) -+ { -+ case GDK_IM_PREEDIT_POSITION: -+ if (term->font && term->font->type != GDK_FONT_FONTSET) -+ { -+ g_warning ("over-the-spot style requires fontset"); -+ break; -+ } -+#if 0 -+ gdk_window_get_size (term->term_window, &width, &height); -+#else -+ width = term->vx->vt.width* term->charwidth; -+ height = term->vx->vt.height* term->charheight; -+#endif -+ attrmask |= GDK_IC_PREEDIT_POSITION_REQ|GDK_IC_PREEDIT_FONTSET; -+ attr.spot_location.x = 0; -+ attr.spot_location.y = 0; -+ attr.preedit_area.x = 0; -+ attr.preedit_area.y = 0; -+ attr.preedit_area.width = width; -+ attr.preedit_area.height = height; -+ attr.preedit_fontset = term->font; -+ break; -+ } -+ -+ term->ic = gdk_ic_new(&attr, attrmask); -+ -+ if (!term->ic) -+ { -+ g_warning("Can't create input context."); -+ } -+ } -+} -+ -+ -+static void -+zvt_im_preedit_set_spot(ZvtTerm *term, int col, int row, int offx, int offy) -+{ -+ if (term->ic && -+ (gdk_ic_get_style (term->ic) & GDK_IM_PREEDIT_POSITION)) -+ { -+ GdkICAttr attr; -+ attr.spot_location.x = col * term->charwidth + offx; -+ attr.spot_location.y = row * term->charheight -+ + term->font->ascent + offy; -+ gdk_ic_set_attr (term->ic, &attr, GDK_IC_SPOT_LOCATION); -+ } -+} -+ -+static void -+zvt_im_preedit_set_foreground(ZvtTerm *term, GdkColor *color) -+{ -+ if (term->ic && -+ (gdk_ic_get_style (term->ic) & GDK_IM_PREEDIT_POSITION)) -+ { -+ GdkICAttr attr; -+ attr.preedit_foreground = *color; -+ gdk_ic_set_attr (term->ic, &attr, GDK_IC_PREEDIT_FOREGROUND); -+ } -+} -+ -+static void -+zvt_im_preedit_set_background(ZvtTerm *term, GdkColor *color) -+{ -+ if (term->ic && -+ (gdk_ic_get_style (term->ic) & GDK_IM_PREEDIT_POSITION)) -+ { -+ GdkICAttr attr; -+ attr.preedit_background = *color; -+ gdk_ic_set_attr (term->ic, &attr, GDK_IC_PREEDIT_BACKGROUND); -+ } -+} -+ -+ -+static void -+zvt_im_preedit_set_font(ZvtTerm *term, GdkFont *font) -+{ -+ if (term->ic && -+ (gdk_ic_get_style (term->ic) & GDK_IM_PREEDIT_POSITION)) -+ { -+ GdkICAttr attr; -+ if (font && font->type != GDK_FONT_FONTSET) -+ g_warning ("over-the-spot style requires fontset"); -+ attr.preedit_fontset = font; -+ gdk_ic_set_attr (term->ic, &attr, GDK_IC_PREEDIT_FONTSET); -+ } -+} -+#endif /* ZVT_IM_ON_THE_SPOT */ -+ - static void - zvt_term_writemore (gpointer data, gint fd, GdkInputCondition condition) - { -@@ -2324,7 +2569,7 @@ - static gint - zvt_term_key_press (GtkWidget *widget, GdkEventKey *event) - { -- char buffer[64]; -+ char buffer[128]; - char *p=buffer; - struct _vtx *vx; - ZvtTerm *term; -@@ -2535,6 +2780,7 @@ - break; - default: - if (event->length > 0){ -+ gint length = MIN(((buffer+ sizeof(buffer)) - p)/sizeof(char), event->length); - if (event->state & (GDK_MOD1_MASK | GDK_MOD4_MASK)){ - *p++ = '\033'; - } -@@ -3149,24 +3395,24 @@ - break; - /* this is limited to 65535 characters! */ - case ZVT_FONT_FONTSET: { -- wchar_t *expandwc = zp->text_expand; -+ char *expand = zp->text_expand; - XFontSet fontset = (XFontSet) font_private->xfont; - - for (i=0;i<len;i++) { -- expandwc[i] = VT_ASCII(line->data[i+col]); -+ expand[i] = VT_ASCII(line->data[i+col]) & 0xff; - } - - /* render wide characters, with fill if we can */ - if (dofill) { -- XwcDrawImageString(drawable_private->xdisplay, drawable_private->xwindow, -- fontset, gc_private->xgc, offx + x, offy + y, expandwc, len); -+ XmbDrawImageString(drawable_private->xdisplay, drawable_private->xwindow, -+ fontset, gc_private->xgc, offx + x, offy + y, expand, len); - } else { -- XwcDrawString(drawable_private->xdisplay, drawable_private->xwindow, -- fontset, gc_private->xgc, offx + x, offy + y, expandwc, len); -+ XmbDrawString(drawable_private->xdisplay, drawable_private->xwindow, -+ fontset, gc_private->xgc, offx + x, offy + y, expand, len); - } - if (overstrike) -- XwcDrawString(drawable_private->xdisplay, drawable_private->xwindow, -- fontset, gc_private->xgc, offx + x + 1, offy + y, expandwc, len); -+ XmbDrawString(drawable_private->xdisplay, drawable_private->xwindow, -+ fontset, gc_private->xgc, offx + x + 1, offy + y, expand, len); - } - } - -@@ -3187,6 +3433,10 @@ - x + offx + len*term->charwidth, offy + row*term->charheight, - 1, term->charheight); - } -+#ifdef ZVT_IM_ON_THE_SPOT -+ if (len <= MB_CUR_MAX) -+ zvt_im_preedit_set_spot(term, col, row, offx, offy); -+#endif - } - - -@@ -3856,6 +4106,7 @@ - gdk_gc_set_foreground (term->back_gc, &pen); - return; - } -+ - } - - static gint diff --git a/japanese/gnomelibs/files/patch-aj b/japanese/gnomelibs/files/patch-aj deleted file mode 100644 index 8cb4ba6caf99..000000000000 --- a/japanese/gnomelibs/files/patch-aj +++ /dev/null @@ -1,21 +0,0 @@ ---- zvt/zvtterm.h.zvtmb Sun Jun 24 07:35:48 2001 -+++ zvt/zvtterm.h Sun Jun 24 07:35:48 2001 -@@ -33,6 +33,7 @@ - - /* if one doesn't want to compile in transparency one would define this */ - /* #define ZVT_NO_TRANSPARENT 1 */ -+#define ZVT_IM_ON_THE_SPOT 1 - - #define ZVT_TERM(obj) GTK_CHECK_CAST (obj, zvt_term_get_type (), ZvtTerm) - #define ZVT_TERM_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, zvt_term_get_type (), ZvtTermClass) -@@ -240,6 +241,10 @@ - void zvt_term_set_size (ZvtTerm *term, - guint width, - guint height); -+#if ZVT_IM_ON_THE_SPOT -+void zvt_term_set_open_im (ZvtTerm *term, -+ int state); -+#endif - - /* returns an bitmask of the capabilities compiled into ZvtTerm */ - guint32 zvt_term_get_capabilities (ZvtTerm *term); diff --git a/japanese/gnomelibs/files/patch-ak b/japanese/gnomelibs/files/patch-ak deleted file mode 100644 index 5791438b9a62..000000000000 --- a/japanese/gnomelibs/files/patch-ak +++ /dev/null @@ -1,20 +0,0 @@ ---- ./gtk-xmhtml/XmHTMLP.h.jp3 Thu Jun 3 08:01:17 1999 -+++ ./gtk-xmhtml/XmHTMLP.h Sun Oct 29 18:32:21 2000 -@@ -301,6 +301,8 @@ - #define TEXT_IMAGE (1<<5) /* indicates an image member */ - #define TEXT_FORM (1<<6) /* indicates a form member */ - #define TEXT_BREAK (1<<7) /* indicates a linebreak */ -+#define TEXT_SPACE_LEAD_ZEROWIDTH (1<<8) /* no spacing, but can break before the word */ -+#define TEXT_SPACE_TRAIL_ZEROWIDTH (1<<9) /* no spacing, but can break after the word */ - - /***** - * HTML list marker enumeration type -@@ -527,7 +529,7 @@ - int len; /* string length of word */ - XmHTMLfont *font; /* font to use */ - Byte line_data; /* line data (underline/strikeout) */ -- Byte spacing; /* leading/trailing/nospace allowed */ -+ int spacing; /* leading/trailing/nospace allowed */ - AllEvents *events; /* events to be served */ - struct _XmHTMLImage *image; /* when this is an image */ - struct _XmHTMLForm *form; /* when this is a form element */ diff --git a/japanese/gnomelibs/files/patch-al b/japanese/gnomelibs/files/patch-al deleted file mode 100644 index 61fdf435ea67..000000000000 --- a/japanese/gnomelibs/files/patch-al +++ /dev/null @@ -1,328 +0,0 @@ ---- ./gtk-xmhtml/format.c.jp3 Fri Jul 30 02:59:48 1999 -+++ ./gtk-xmhtml/format.c Sun Oct 29 18:32:21 2000 -@@ -237,6 +237,14 @@ - #include <string.h> - #include <ctype.h> /* isspace, tolower */ - -+#include <gdk/gdki18n.h> -+#if !defined(G_HAVE_BROKEN_WCTYPE) && (defined(G_HAVE_WCTYPE_H) || defined(G_HAVE_WCHAR_H)) && !defined(X_LOCALE) -+#define is_ideograph(wc) \ -+ (!(iswspace(wc) || iswalnum(wc) || iswpunct(wc) || iswcntrl(wc))) -+#else -+#define is_ideograph(wc) FALSE -+#endif -+ - /* Local includes */ - #include "XmHTMLP.h" - #include "XmHTMLfuncs.h" -@@ -307,14 +315,14 @@ - - /* copy given text into an internal buffer */ - static String CopyText(XmHTMLWidget html, String text, Boolean formatted, -- Byte *text_data, Boolean expand_escapes); -+ int *text_data, Boolean expand_escapes); - - /* collapse all consecutive whitespace into a single space */ - static void CollapseWhiteSpace(String text); - - /* Split raw text into an array of words */ - static XmHTMLWord* TextToWords(String text, int *num_words, Dimension *height, -- XmHTMLfont *font, Byte line_data, Byte text_data, -+ XmHTMLfont *font, Byte line_data, int text_data, - XmHTMLObjectTableElement owner); - - /* Split an image into an array of words ;-) */ -@@ -804,14 +812,16 @@ - *****/ - static XmHTMLWord* - TextToWords(String text, int *num_words, Dimension *height, XmHTMLfont *font, -- Byte line_data, Byte text_data, XmHTMLObjectTableElement owner) -+ Byte line_data, int text_data, XmHTMLObjectTableElement owner) - { -- int n_words, len, i; -- char *start; -- static XmHTMLWord *words; -- static char *raw; -+ int n_words, n_words_alloc, raw_numwc, i; -+ GdkWChar *raw, *start; -+ XmHTMLWord *words; - register int j; -- register char *chPtr; -+ register GdkWChar *chPtr; -+ int leading_space; -+ char *wordsbuf; -+ int size_wordsbuf; - - /* sanity check */ - if(text == NULL) -@@ -822,57 +832,109 @@ - - _XmHTMLFullDebug(2, ("format.c: TextToWords, text in is:\n%s\n", text)); - -- /* compute how many words we have */ -- n_words = 0; -- for(chPtr = text; *chPtr != '\0'; chPtr++) -- if(*chPtr == ' ') -- n_words++; -- /* also pick up the last word */ -- n_words++; -- - /* copy text */ -- raw = strdup(text); -+ raw = (GdkWChar *)calloc(strlen(text) + 1, sizeof(GdkWChar)); -+ raw_numwc = gdk_mbstowcs(raw, text, strlen(text)); -+ if (raw_numwc < 1) -+ raw_numwc = 0; - - /* allocate memory for all words */ -- words = (XmHTMLWord*)calloc(n_words, sizeof(XmHTMLWord)); -+ n_words = 0; -+ n_words_alloc = 10; -+ words = (XmHTMLWord*)calloc(n_words_alloc, sizeof(XmHTMLWord)); - - /* Split the text in words and fill in the appropriate fields */ - *height = font->height; - chPtr = start = raw; - -- for(i = 0, j = 0, len = 0; ; chPtr++, len++, j++) -+ for(i = 0, j = 0, leading_space = 0; ; chPtr++, j++) - { -- /* also pick up the last word! */ -- if(*chPtr == ' ' || *chPtr == '\0') -+ /* expand words[] if needed */ -+ if (n_words_alloc < i + 1) - { -- if(*chPtr) -+ n_words_alloc += 10; -+ words = (XmHTMLWord *)realloc( -+ words, n_words_alloc * sizeof(XmHTMLWord)); -+ } -+ -+ /* also pick up the last word! */ -+ if(*chPtr == ' ' || *chPtr == '\0' || -+ (chPtr > start && -+ (is_ideograph(*chPtr) || is_ideograph(chPtr[-1])))) -+ { -+ GdkWChar saved_char; -+ int trailing_space = 0; -+ if(*chPtr == ' ') - { - chPtr++; /* nuke the space */ - raw[j++] = '\0'; -+ trailing_space = 1; - } -+ /* set the first char of the next word 0 temporally. -+ * gdk_wcstombs requires this. */ -+ saved_char = raw[j]; -+ raw[j] = '\0'; - /* fill in required fields */ -- words[i].self = &words[i]; -- words[i].word = start; -- words[i].len = len; -+ words[i].self = NULL; /* set later */ -+ words[i].word = gdk_wcstombs(start); -+ words[i].len = words[i].word ? strlen(words[i].word) : 0; - words[i].height = *height; -- words[i].width = Toolkit_Text_Width(font->xfont, words[i].word, len); -+ words[i].width = Toolkit_Text_Width( -+ font->xfont, words[i].word, strlen(words[i].word)); - words[i].owner = owner; - words[i].font = font; -- words[i].spacing = TEXT_SPACE_LEAD | TEXT_SPACE_TRAIL; -+ words[i].spacing = 0; /* set later */ - words[i].type = OBJ_TEXT; - words[i].line_data = line_data; - -+ if (leading_space) -+ words[i].spacing |= TEXT_SPACE_LEAD; -+ else -+ words[i].spacing |= TEXT_SPACE_LEAD_ZEROWIDTH; -+ -+ if (trailing_space) -+ words[i].spacing |= TEXT_SPACE_TRAIL; -+ else -+ words[i].spacing |= TEXT_SPACE_TRAIL_ZEROWIDTH; -+ -+ leading_space = trailing_space; /* for the next word */ -+ -+ raw[j] = saved_char; -+ - _XmHTMLFullDebug(2, ("format.c: TextToWords, word is %s, len is " - "%i, width is %i, height is %i\n", words[i].word, words[i].len, - words[i].width, words[i].height)); - - start = chPtr; - i++; -- len = 0; - } - if(*chPtr == '\0') - break; - } -+ free(raw); -+ n_words = i; -+ -+ /* because the pointer 'words' may be realloc()ed, we need to set the -+ * 'self' field here. -+ */ -+ for (i = 0; i < n_words; i++) -+ words[i].self = &words[i]; -+ -+ /* words[0].word must be a malloc()ed pointer, and word[i].word -+ * (for i > 0) a reference (i.e., it should not be freed). -+ */ -+ for (size_wordsbuf = 0, i = 0; i < n_words; i++) -+ size_wordsbuf += words[i].len + 1; -+ wordsbuf = (char *)malloc(size_wordsbuf); -+ for (i = j = 0; i < n_words; i++) -+ { -+ /* copies trailing nil also */ -+ memcpy(wordsbuf + j, words[i].word, words[i].len + 1); -+ free(words[i].word); -+ words[i].word = wordsbuf + j; -+ j += words[i].len + 1; -+ } -+ - /* - * when there is more than one word in this block, the first word - * _always_ has a trailing space. -@@ -880,10 +942,13 @@ - */ - if(n_words > 1) - { -- /* unset nospace bit */ -- Byte spacing = text_data & ~TEXT_SPACE_NONE; -- words[0].spacing = spacing | TEXT_SPACE_TRAIL; -- words[n_words-1].spacing = spacing | TEXT_SPACE_LEAD; -+ words[0].spacing &= ~TEXT_SPACE_LEAD_ZEROWIDTH; -+ words[n_words-1].spacing &= ~TEXT_SPACE_TRAIL_ZEROWIDTH; -+ -+ words[0].spacing |= text_data & -+ (TEXT_SPACE_LEAD | TEXT_SPACE_LEAD_ZEROWIDTH); -+ words[n_words-1].spacing |= text_data & -+ (TEXT_SPACE_TRAIL | TEXT_SPACE_TRAIL_ZEROWIDTH); - } - else - words[0].spacing = text_data; -@@ -1109,7 +1174,7 @@ - if(tmp->id == HT_OPTION && !tmp->is_end) - { - XmHTMLObject *sel_start = tmp; -- Byte foo; -+ int foo; - String text = NULL; - - /* -@@ -1185,7 +1250,7 @@ - static XmHTMLForm *form_entry; - XmHTMLWord *word; - String text = NULL; -- Byte foo; -+ int foo; - - *num_words = 0; - *height = *width = 0; -@@ -1633,13 +1698,14 @@ - * cleaned up text. Terminates if malloc fails. - *****/ - static String --CopyText(XmHTMLWidget html, String text, Boolean formatted, Byte *text_data, -+CopyText(XmHTMLWidget html, String text, Boolean formatted, int *text_data, - Boolean expand_escapes) - { - static String ret_val; -- char *start = text; -+ GdkWChar *wtext, *start; - int len; - static Boolean have_space = False; -+ static Boolean have_space_zerowidth = False; - - /* sanity check */ - if(*text == '\0' || !strlen(text)) -@@ -1653,23 +1719,30 @@ - /* expand all escape sequences in this text */ - if(expand_escapes) - _XmHTMLExpandEscapes(ret_val, html->html.bad_html_warnings); -- have_space = False; -+ have_space = have_space_zerowidth = False; - return(ret_val); - } - - _XmHTMLFullDebug(2, ("format.c: CopyText, text in is:\n%s\n", text)); - -- /* initial length of full text */ -- len = strlen(text); -+ /* convert to wide characters */ -+ wtext = (GdkWChar *)calloc(strlen(text) + 1, sizeof(GdkWChar)); -+ len = gdk_mbstowcs(wtext, text, strlen(text)); -+ if (len < 0) len = 0; -+ start = wtext; - - *text_data = 0; - - /* see if we have any leading/trailing spaces */ -- if(isspace(*text) || have_space) -+ if(gdk_iswspace(*wtext) || have_space) - *text_data = TEXT_SPACE_LEAD; -+ else if(is_ideograph(*wtext) || have_space_zerowidth) -+ *text_data = TEXT_SPACE_LEAD_ZEROWIDTH; - -- if(isspace(text[len-1])) -+ if(len > 0 && gdk_iswspace(wtext[len-1])) - *text_data |= TEXT_SPACE_TRAIL; -+ else if(len > 0 && is_ideograph(wtext[len-1])) -+ *text_data |= TEXT_SPACE_TRAIL_ZEROWIDTH; - - /***** - * Remove leading/trailing spaces -@@ -1677,11 +1750,13 @@ - * elements must be retained - *****/ - /* remove all leading space */ -- while(*start != '\0' && isspace(*start)) -+ while(*start != '\0' && gdk_iswspace(*start)) -+ { - start++; -+ len--; -+ } - /* remove all trailing space */ -- len = strlen(start); -- while(len > 0 && isspace(start[len-1])) -+ while(len > 0 && gdk_iswspace(start[len-1])) - len--; - - /***** -@@ -1705,16 +1780,14 @@ - have_space = True; - return(NULL); - } -- have_space = False; -- -- /* -- * We are a little bit to generous here: consecutive multiple whitespace -- * will be collapsed into a single space, so we may over-allocate. -- * Hey, better to overdo this than to have one byte to short ;-) -- */ -- ret_val = (String)malloc((len+1)*sizeof(char)); -- strncpy(ret_val, start, len); /* copy it */ -- ret_val[len] = '\0'; /* NULL terminate */ -+ have_space = have_space_zerowidth = False; -+ if(len > 0 && is_ideograph(wtext[len-1])) -+ have_space_zerowidth = True; -+ -+ /* convert to multibyte form */ -+ start[len] = '\0'; -+ ret_val = gdk_wcstombs(start); -+ free(wtext); - - /* expand all escape sequences in this text */ - if(expand_escapes) -@@ -3030,7 +3103,8 @@ - String text; - int linefeed, n_words, anchor_words, named_anchors; - int x_offset = 0, y_offset = 0; -- Byte text_data, line_data; /* text and line data bits */ -+ int text_data; /* text data bits */ -+ Byte line_data; /* line data bits */ - unsigned long element_data = 0; - XmHTMLWord *words; - XmHTMLAnchor *anchor_data, *form_anchor_data; diff --git a/japanese/gnomelibs/files/patch-am b/japanese/gnomelibs/files/patch-am deleted file mode 100644 index 2c9547e672aa..000000000000 --- a/japanese/gnomelibs/files/patch-am +++ /dev/null @@ -1,23 +0,0 @@ ---- ./gtk-xmhtml/gtk-xmhtml.c.jp3 Fri Jul 30 02:59:49 1999 -+++ ./gtk-xmhtml/gtk-xmhtml.c Sun Oct 29 18:32:21 2000 -@@ -2262,16 +2262,18 @@ - Toolkit_Draw_Shadows(XmHTMLWidget html, TGC top_shadow, TGC bottom_shadow, - gint xs, gint ys, gint w, gint h, gint shadow_thick, gint shadow_type) - { -+ GtkWidget *win; -+ win = GTK_WIDGET(html->html.work_area); - switch (shadow_type) - { - case XmSHADOW_IN: -- gtk_draw_shadow(GTK_WIDGET(html)->style, GTK_WIDGET(html)->window, -+ gtk_draw_shadow(GTK_WIDGET(html)->style, win->window, - GTK_STATE_NORMAL, GTK_SHADOW_IN, - xs, ys, - w, h); - break; - case XmSHADOW_OUT: -- gtk_draw_shadow(GTK_WIDGET(html)->style, GTK_WIDGET(html)->window, -+ gtk_draw_shadow(GTK_WIDGET(html)->style, win->window, - GTK_STATE_NORMAL, GTK_SHADOW_OUT, - xs, ys, - w, h); diff --git a/japanese/gnomelibs/files/patch-an b/japanese/gnomelibs/files/patch-an deleted file mode 100644 index 7c63077e3c9d..000000000000 --- a/japanese/gnomelibs/files/patch-an +++ /dev/null @@ -1,89 +0,0 @@ ---- ./gtk-xmhtml/layout.c.jp3 Fri Jul 30 02:59:51 1999 -+++ ./gtk-xmhtml/layout.c Sun Oct 29 18:32:21 2000 -@@ -447,7 +447,7 @@ - *****/ - for(i = 0 ; i < html->html.anchor_words; i++) - html->html.anchors[i].x = html->html.anchors[i].self->x; -- for(i = 0 ; i < html->html.anchor_words; i++) -+ for(i = 0 ; i < html->html.anchor_words - 1; i++) - { - if((html->html.anchors[i].owner == html->html.anchors[i+1].owner) && - (html->html.anchors[i].line == html->html.anchors[i+1].line)) -@@ -1173,19 +1173,30 @@ - * which *does* have a trailing space. We then use the total width - * of this word to check against available line width. - *****/ -- if(!(words[i]->spacing & TEXT_SPACE_TRAIL) && -- i+1 < *nwords && !(words[i+1]->spacing & TEXT_SPACE_LEAD)) -+ if( -+ !(words[i]->spacing & TEXT_SPACE_TRAIL) && -+ !(words[i]->spacing & TEXT_SPACE_TRAIL_ZEROWIDTH) && -+ i+1 < *nwords && -+ !(words[i+1]->spacing & TEXT_SPACE_LEAD) && -+ !(words[i+1]->spacing & TEXT_SPACE_LEAD_ZEROWIDTH) -+ ) - { - int j = i+1; - word_width = words[i]->width; - while(j < *nwords) - { -- if(!(words[j]->spacing & TEXT_SPACE_LEAD)) -+ if(!(words[j]->spacing & TEXT_SPACE_LEAD) && -+ !(words[j]->spacing & TEXT_SPACE_LEAD_ZEROWIDTH)) - word_width += words[j]->width; - - /* see if this word has a trail space and the next a leading */ -- if(!(words[j]->spacing & TEXT_SPACE_TRAIL) && -- j+1 < *nwords && !(words[j+1]->spacing & TEXT_SPACE_LEAD)) -+ if( -+ !(words[j]->spacing & TEXT_SPACE_TRAIL) && -+ !(words[j]->spacing & TEXT_SPACE_TRAIL_ZEROWIDTH) && -+ j+1 < *nwords && -+ !(words[j+1]->spacing & TEXT_SPACE_LEAD) && -+ !(words[j+1]->spacing & TEXT_SPACE_LEAD_ZEROWIDTH) -+ ) - j++; - else - break; -@@ -1395,8 +1406,13 @@ - * save linenumber, x and y positions for this word or for - * multiple words needing to be ``glued'' together. - *****/ -- if(!(words[i]->spacing & TEXT_SPACE_TRAIL) && -- i+1 < *nwords && !(words[i+1]->spacing & TEXT_SPACE_LEAD)) -+ if( -+ !(words[i]->spacing & TEXT_SPACE_TRAIL) && -+ !(words[i]->spacing & TEXT_SPACE_TRAIL_ZEROWIDTH) && -+ i+1 < *nwords && -+ !(words[i+1]->spacing & TEXT_SPACE_LEAD) && -+ !(words[i+1]->spacing & TEXT_SPACE_LEAD_ZEROWIDTH) -+ ) - { - /* first word must take spacing into account */ - UPDATE_WORD(words[i]); -@@ -1413,8 +1429,13 @@ - UPDATE_WORD(words[i]) - - /* this word has a trailing and the next a leading space? */ -- if(!(words[i]->spacing & TEXT_SPACE_TRAIL) && -- i+1 < *nwords && !(words[i+1]->spacing & TEXT_SPACE_LEAD)) -+ if( -+ !(words[i]->spacing & TEXT_SPACE_TRAIL) && -+ !(words[i]->spacing & TEXT_SPACE_TRAIL_ZEROWIDTH) && -+ i+1 < *nwords && -+ !(words[i+1]->spacing & TEXT_SPACE_LEAD) && -+ !(words[i+1]->spacing & TEXT_SPACE_LEAD_ZEROWIDTH) -+ ) - i++; - else - break; -@@ -2972,8 +2993,7 @@ - - /* store return dimensions, box->x is not touched */ - box->y += max_theight; -- table->end->height = box->height = max_theight; -- box->width = box->min_width = full_max_twidth; -+ table->end->height = max_theight; - - /***** - * update x position of owning object, it might have shifted due to diff --git a/japanese/gnomelibs/files/patch-ao b/japanese/gnomelibs/files/patch-ao deleted file mode 100644 index 528c50f818d7..000000000000 --- a/japanese/gnomelibs/files/patch-ao +++ /dev/null @@ -1,16 +0,0 @@ ---- ./gtk-xmhtml/paint.c.jp3 Fri Jul 30 02:59:51 1999 -+++ ./gtk-xmhtml/paint.c Sun Oct 29 18:32:21 2000 -@@ -1604,13 +1604,8 @@ - xs = data->x - html->html.scroll_x; - - /* vertical offset */ --#if 0 - dy = (int)(0.75*(html->html.default_font->height)); --#else -- dy = 0; --#endif - ys = data->y - html->html.scroll_y; -- - if(data->height) - { - if(data->y_offset) /* noshade */ diff --git a/japanese/gnomelibs/files/patch-ap b/japanese/gnomelibs/files/patch-ap deleted file mode 100644 index c92ca7c31ef4..000000000000 --- a/japanese/gnomelibs/files/patch-ap +++ /dev/null @@ -1,29 +0,0 @@ ---- ./gtk-xmhtml/fonts.c.jp4 Fri Jul 30 02:59:47 1999 -+++ ./gtk-xmhtml/fonts.c Sun Oct 29 18:32:21 2000 -@@ -221,8 +221,8 @@ - static fontCache *curr_cache; /* current font cache */ - - /* Backup lists when sizes are not specified */ --static int def_fn_sizes[8] = {140,80,240,180,160,140,120,100}; --static int def_fn_fixed_sizes[2] = {120,80}; -+static int def_fn_sizes[8] = {110,80,240,160,160,140,140,140}; -+static int def_fn_fixed_sizes[2] = {110,80}; - - /***** - * Name: makeFontName -@@ -297,13 +297,13 @@ - /* FIXME: better way to determine the fontset name? */ - sprintf(new_name, - "-%s-%s-%s-%s-%s-*-*-%i-%i-%i-%s-*-%s," -- "-*-*-%s-%s-%s-*-*-%i-*-*-*-*-*," -+ "-*-*-%s-%s-%s-*-%i-*-*-*-*-*-*," - "-*-*-*-*-*-*-%i-*-*-*-*-*-*,*", - foundry != NULL ? foundry : fndry, - family != NULL ? family : fam, - weight, slant, wd, points, - curr_cache->res_x, curr_cache->res_y, sp, charset, -- weight, slant, wd, points, -+ weight, slant, wd, points / 10, - points / 10); - } else { - sprintf(new_name, diff --git a/japanese/gnomelibs/files/patch-aq b/japanese/gnomelibs/files/patch-aq deleted file mode 100644 index b47757d43a40..000000000000 --- a/japanese/gnomelibs/files/patch-aq +++ /dev/null @@ -1,13 +0,0 @@ ---- ./gtk-xmhtml/XmHTMLfuncs.h.jp4 Wed Dec 2 09:30:06 1998 -+++ ./gtk-xmhtml/XmHTMLfuncs.h Sun Oct 29 18:32:21 2000 -@@ -190,8 +190,8 @@ - * Scalable size array: default,sub/superscript,h1,h2,h3,h4,h5,h6 - * Fixed size array : default,sub/superscript - *****/ --#define XmHTML_DEFAULT_FONT_SCALABLE_SIZES "14,8,24,18,14,12,10,8" --#define XmHTML_DEFAULT_FONT_FIXED_SIZES "12,8" -+#define XmHTML_DEFAULT_FONT_SCALABLE_SIZES "14,8,24,16,16,14,14,8" -+#define XmHTML_DEFAULT_FONT_FIXED_SIZES "14,8" - - /***** - * Default Table boder width, cell & row spacing. diff --git a/japanese/gnomelibs/files/patch-ar b/japanese/gnomelibs/files/patch-ar deleted file mode 100644 index ce9102ab05c8..000000000000 --- a/japanese/gnomelibs/files/patch-ar +++ /dev/null @@ -1,10 +0,0 @@ ---- ./libgnomeui/gnome-about.c.jp5 Thu May 4 19:15:28 2000 -+++ ./libgnomeui/gnome-about.c Sun Oct 29 18:32:21 2000 -@@ -413,6 +413,7 @@ - /* Create fonts */ - /* FIXME: dirty hack, but it solves i18n problem without rewriting the - drawing code.. */ -+ gtk_widget_ensure_style (widget); - style = gtk_style_ref (widget->style); - gtk_widget_ensure_style(widget); - |