[w3m-dev 04369] Re: w3m's bugs from bugs.debian.org

Hiroyuki Ito <[email protected]> Wed, 04 Aug 2010 22:55:34 +0900 (JST)
Newsgroups gmane.comp.web.w3m.devel
Message-ID <[email protected]>
伊東です。

graphic_char の扱いを修正しました。

結局 debian の 110_no-graph-restriction.patch と同じになりましたが、
メッセージを少し変えています。

Index: fm.h
===================================================================
RCS file: /cvsroot/w3m/w3m/fm.h,v
retrieving revision 1.146
diff -u -r1.146 fm.h
--- fm.h	3 Aug 2010 10:02:16 -0000	1.146
+++ fm.h	4 Aug 2010 13:47:05 -0000
@@ -1057,7 +1057,10 @@
 #define wc_Str_conv_strict(x,charset0,charset1) (x)
 #endif
 global char UseAltEntity init(TRUE);
-global char UseGraphicChar init(FALSE);
+#define GRAPHIC_CHAR_ASCII 2
+#define GRAPHIC_CHAR_DEC 1
+#define GRAPHIC_CHAR_CHARSET 0
+global char UseGraphicChar init(GRAPHIC_CHAR_CHARSET);
 extern char *graph_symbol[];
 extern char *graph2_symbol[];
 extern int symbol_width;
Index: main.c
===================================================================
RCS file: /cvsroot/w3m/w3m/main.c,v
retrieving revision 1.266
diff -u -r1.266 main.c
--- main.c	3 Aug 2010 10:25:23 -0000	1.266
+++ main.c	4 Aug 2010 13:47:05 -0000
@@ -554,9 +554,9 @@
 	    }
 #endif
 	    else if (!strcmp("-graph", argv[i]))
-		UseGraphicChar = TRUE;
+		UseGraphicChar = GRAPHIC_CHAR_DEC;
 	    else if (!strcmp("-no-graph", argv[i]))
-		UseGraphicChar = FALSE;
+		UseGraphicChar = GRAPHIC_CHAR_ASCII;
 	    else if (!strcmp("-T", argv[i])) {
 		if (++i >= argc)
 		    usage();
Index: rc.c
===================================================================
RCS file: /cvsroot/w3m/w3m/rc.c,v
retrieving revision 1.114
diff -u -r1.114 rc.c
--- rc.c	26 Jul 2010 11:38:53 -0000	1.114
+++ rc.c	4 Aug 2010 13:47:05 -0000
@@ -87,7 +87,7 @@
 #endif
 #define CMT_MULTICOL     N_("Display file names in multi-column format")
 #define CMT_ALT_ENTITY   N_("Use ASCII equivalents to display entities")
-#define CMT_GRAPHIC_CHAR N_("Use graphic char for border of table and menu")
+#define CMT_GRAPHIC_CHAR N_("Character type for border of table and menu")
 #define CMT_FOLD_TEXTAREA N_("Fold lines in TEXTAREA")
 #define CMT_DISP_INS_DEL N_("Display INS, DEL, S and STRIKE element")
 #define CMT_COLOR        N_("Display with color")
@@ -335,6 +335,13 @@
 };
 #endif
 
+static struct sel_c graphic_char_str[] = {
+    {N_S(GRAPHIC_CHAR_ASCII), N_("ASCII")},
+    {N_S(GRAPHIC_CHAR_CHARSET), N_("charset specific")},
+    {N_S(GRAPHIC_CHAR_DEC), N_("DEC special graphics")},
+    {0, NULL, NULL}
+};
+
 struct param_ptr params1[] = {
     {"tabstop", P_NZINT, PI_TEXT, (void *)&Tabstop, CMT_TABSTOP, NULL},
     {"indent_incr", P_NZINT, PI_TEXT, (void *)&IndentIncr, CMT_INDENT_INCR,
@@ -371,8 +378,8 @@
     {"multicol", P_INT, PI_ONOFF, (void *)&multicolList, CMT_MULTICOL, NULL},
     {"alt_entity", P_CHARINT, PI_ONOFF, (void *)&UseAltEntity, CMT_ALT_ENTITY,
      NULL},
-    {"graphic_char", P_CHARINT, PI_ONOFF, (void *)&UseGraphicChar,
-     CMT_GRAPHIC_CHAR, NULL},
+    {"graphic_char", P_CHARINT, PI_SEL_C, (void *)&UseGraphicChar,
+     CMT_GRAPHIC_CHAR, (void *)graphic_char_str},
     {"fold_textarea", P_CHARINT, PI_ONOFF, (void *)&FoldTextarea,
      CMT_FOLD_TEXTAREA, NULL},
     {"display_ins_del", P_INT, PI_SEL_C, (void *)&displayInsDel,
Index: symbol.c
===================================================================
RCS file: /cvsroot/w3m/w3m/symbol.c,v
retrieving revision 1.3
diff -u -r1.3 symbol.c
--- symbol.c	25 Jul 2010 09:55:05 -0000	1.3
+++ symbol.c	4 Aug 2010 13:47:05 -0000
@@ -87,7 +87,7 @@
     charset_symbol_set *p;
     symbol_set *s = NULL;
 
-    if (UseGraphicChar) {
+    if (UseGraphicChar != GRAPHIC_CHAR_ASCII) {
 	if (charset == save_charset && save_symbol != NULL &&
 	    *width == save_symbol->width) {
 	    return save_symbol->conved_item;
Index: terms.c
===================================================================
RCS file: /cvsroot/w3m/w3m/terms.c,v
retrieving revision 1.61
diff -u -r1.61 terms.c
--- terms.c	25 Jul 2010 09:55:05 -0000	1.61
+++ terms.c	4 Aug 2010 13:47:05 -0000
@@ -1201,7 +1201,7 @@
 int
 graph_ok(void)
 {
-    if (! UseGraphicChar)
+    if (UseGraphicChar != GRAPHIC_CHAR_DEC)
 	return 0;
     return T_as[0] != 0 && T_ae[0] != 0 && T_ac[0] != 0;
 }