Sophie

Sophie

distrib > * > 2008.0 > x86_64 > by-pkgid > 907bfa963ac974b85d672e56a090d463 > files > 10

xcin-2.5.3-0.pre3.4mdv2008.0.src.rpm

--- xcin.org/src/gui_overspot.c	2001-12-10 23:33:46.000000000 +0800
+++ xcin/src/gui_overspot.c	2004-01-02 10:43:06.000000000 +0800
@@ -42,9 +42,10 @@
 #define DRAW_LCCH	4
 
 static xmode_t display_mode;
-static char inpn_english[11];
-static char inpn_sbyte[11];
-static char inpn_2bytes[11];
+// Modify by Firefly(firefly@firefly.idv.tw)
+static char inpn_english[101];
+static char inpn_sbyte[101];
+static char inpn_2bytes[101];
 
 #define GC_idx		0	/* Window fg_color, bg_color */
 #define GCM_idx		1	/* For spot mark: mfg_color, mbg_color */
@@ -249,8 +250,9 @@ overspot_win_adjust(gui_t *gui, winlist_
     ic_rec->ic_value_update &= ~CLIENT_SETIC_PRE_AREA;
     new_x = oc[idx]->pos_x +
 	    ic_rec->pre_attr.spot_location.x + ic_rec->pre_attr.area.x;
+    // Modify by Firefly(firefly@firefly.idv.tw)
     new_y = oc[idx]->pos_y +
-	    ic_rec->pre_attr.spot_location.y + ic_rec->pre_attr.area.y + 15;
+	    ic_rec->pre_attr.spot_location.y + ic_rec->pre_attr.area.y;
     if (new_x + winlen > gui->display_width)
 	new_x = gui->display_width - winlen - 5;
     if (new_y + win->height > gui->display_height)
@@ -301,7 +303,8 @@ overspot_draw_multich(gui_t *gui, winlis
 	if ((len = wch_mblen(selkey))) {
 */
 	if (selkey->wch != (wchar_t)0) {
-	    len = (selkey->s[1] != '\0') ? 2 : 1;
+	    // Modify by Firefly(firefly@firefly.idv.tw)
+	    len = strlen(selkey->s);
 	    XmbDrawImageString(gui->display, win->window, font->fontset,
 			gc[spot_GC_idx], x, y, (char *)selkey->s, len);
 	    x += (XmbTextEscapement(font->fontset, (char *)selkey->s, len) + 2);
@@ -310,7 +313,8 @@ overspot_draw_multich(gui_t *gui, winlis
 /*
 	    if (! (len = wch_mblen(cch))) {
 */
-	    len = (cch->s[1] != '\0') ? 2 : 1;
+	    // Modify by Firefly(firefly@firefly.idv.tw)
+	    len = strlen(cch->s);
 	    if (cch->wch == (wchar_t)0) {
 		toggle_flag = -1;
 		break;
@@ -394,7 +398,8 @@ overspot_draw_multichBW(gui_t *gui, winl
 	if ((len = wch_mblen(selkey))) {
 */
 	if (selkey->wch != (wchar_t)0) {
-	    len = (selkey->s[1] != '\0') ? 2 : 1;
+	    // Modify by Firefly(firefly@firefly.idv.tw)
+	    len = strlen(selkey->s);
 	    nwchs_to_mbs(buf+bufidx, selkey, 1, BUFSIZE-bufidx);
 	    strncat(buf, " ", BUFSIZE-bufidx-len);
 	    bufidx += (len + 1);
@@ -407,7 +412,8 @@ overspot_draw_multichBW(gui_t *gui, winl
 		toggle_flag = -1;
 		break;
 	    }
-	    len = (cch->s[1] != '\0') ? 2 : 1;
+	    // Modify by Firefly(firefly@firefly.idv.tw)
+	    len = strlen(cch->s);
 	    nwchs_to_mbs(buf+bufidx, cch, 1, BUFSIZE-bufidx);
 	    bufidx += len;
 	}
@@ -497,7 +503,8 @@ draw_lcch(gui_t *gui, winlist_t *win, fo
 /*
 	len = wch_mblen(tmp);
 */
-	len = (tmp->s[1] == '\0') ? 1 : 2;
+	// Modify by Firefly(firefly@firefly.idv.tw)
+	len = strlen(tmp->s);
 	XmbDrawImageString(gui->display, win->window, font->fontset, 
 		gc[GCM_idx], x, y, (char *)tmp->s, len);
 	x += XmbTextEscapement(font->fontset, (char *)tmp->s, len);
@@ -550,8 +557,8 @@ static int
 draw_inpname(gui_t *gui, winlist_t *win, font_t *font, GC *gc,
 	     int x, int y, IM_Context_t *imc)
 {
-    char inpname[15], *inpn=NULL, *inpb=NULL;
-    char *s, buf[9];
+    char inpname[100], *inpn=NULL, *inpb=NULL;
+    char *s, buf[100];
     int len, gc_index;
 
     inpb = ((imc->inp_state & IM_2BYTES)) ? inpn_2bytes : inpn_sbyte;
@@ -569,8 +576,8 @@ draw_inpname(gui_t *gui, winlist_t *win,
 /*
 	    extract_char(imc->inpinfo.inp_cname, buf, sizeof(buf));
 */
-	    strncpy(buf, imc->inpinfo.inp_cname, 2);
-	    buf[2] = '\0';
+	    // Modify by Firefly(firefly@firefly.idv.tw)
+	    strcpy(buf, imc->inpinfo.inp_cname);
 	    inpn = buf;
 	}
     }
@@ -579,11 +586,11 @@ draw_inpname(gui_t *gui, winlist_t *win,
 
     if ((display_mode & OVERSPOT_USE_USRCOLOR)) {
 	gc_index = GCLINE_idx;
-	len = snprintf(inpname, 15, "%s|%s", inpn, inpb);
+	len = snprintf(inpname, 100, "%s|%s", inpn, inpb);
     }
     else {
 	gc_index = GC_idx;
-	len = snprintf(inpname, 15, "[%s|%s]", inpn, inpb);
+	len = snprintf(inpname, 100, "[%s|%s]", inpn, inpb);
     }
     XmbDrawImageString(gui->display, win->window, font->fontset, 
 		gc[gc_index], x, y, inpname, len);
@@ -736,12 +743,10 @@ gui_overspot_init(gui_t *gui, xccore_t *
     extract_char(gui->inpn_sbyte, inpn_sbyte, 11);
     extract_char(gui->inpn_2bytes, inpn_2bytes, 11);
 */
-    strncpy(inpn_english, gui->inpn_english, 2);
-    strncpy(inpn_sbyte, gui->inpn_sbyte, 2);
-    strncpy(inpn_2bytes, gui->inpn_2bytes, 2);
-    inpn_english[2] = '\0';
-    inpn_sbyte[2] = '\0';
-    inpn_2bytes[2] = '\0';
+    // Modify by Firefly(firefly@firefly.idv.tw)
+    strcpy(inpn_english, gui->inpn_english);
+    strcpy(inpn_sbyte, gui->inpn_sbyte);
+    strcpy(inpn_2bytes, gui->inpn_2bytes);
 
     win = gui_new_win();
     win->wtype = WTYPE_OVERSPOT;