package w3m
tag 261174 patch
thanks
On Sat, Jul 24, 2004 at 07:49:59AM +0800, Dan Jacobson wrote:
> There should be a way to have -dump dump table borders drawn with
> ASCII characters without having to use LC_ALL=C. If I use LC_ALL=C,
> it messes up the Chinese content.
>
The attached patch restricts table and menu borders to ASCII if you use
the -no-graph command line option.
Regards,
--
Karsten Schölzel | Email: [EMAIL PROTECTED]
Väderleden 9 4:98 | Jabber: [EMAIL PROTECTED]
97633 Luleå | VoIP: sip:[EMAIL PROTECTED]
Sweden | sip:[EMAIL PROTECTED]
| Tel: +4918015855857712
Make it possible to restrict table and menu borders to ASCII characters.
This is now done with -no-graph and the old meaning of -no-graph is
accessible through -o graphic_char=0
The values of graphic_char now have a strange order to be compatible with
older configs. It might be better to make the order natural.
---
commit 6c8cdf8e614ff121ef3d378fa305f16119410c37
tree 1b0e471b7e00d9a9c2ace2875a7ca4c0f269b012
parent 1c2e64c5ba38727f991c9787b95067391a4a0907
author Karsten Schoelzel <[EMAIL PROTECTED]> Thu, 04 May 2006 20:38:22 +0200
committer Karsten Schoelzel <[EMAIL PROTECTED]> Thu, 04 May 2006 20:38:22 +0200
fm.h | 5 ++++-
main.c | 4 ++--
rc.c | 11 +++++++++--
symbol.c | 37 +++++++++++++++++++++----------------
terms.c | 2 +-
5 files changed, 37 insertions(+), 22 deletions(-)
diff --git a/fm.h b/fm.h
index e10c2a7..8b8244b 100644
--- a/fm.h
+++ b/fm.h
@@ -1038,7 +1038,10 @@ global char SearchConv init(TRUE);
#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_CHARSET 0
+#define GRAPHIC_CHAR_ALL 1
+global char UseGraphicChar init(GRAPHIC_CHAR_ASCII);
extern char *graph_symbol[];
extern char *graph2_symbol[];
extern int symbol_width;
diff --git a/main.c b/main.c
index 6e11806..98d783e 100644
--- a/main.c
+++ b/main.c
@@ -544,9 +544,9 @@ main(int argc, char **argv, char **envp)
}
#endif
else if (!strcmp("-graph", argv[i]))
- UseGraphicChar = TRUE;
+ UseGraphicChar = GRAPHIC_CHAR_ALL;
else if (!strcmp("-no-graph", argv[i]))
- UseGraphicChar = FALSE;
+ UseGraphicChar = GRAPHIC_CHAR_ASCII;
else if (!strcmp("-T", argv[i])) {
if (++i >= argc)
usage();
diff --git a/rc.c b/rc.c
index 5d009bb..17f30d8 100644
--- a/rc.c
+++ b/rc.c
@@ -332,6 +332,13 @@ static struct sel_c auto_detect_str[] =
};
#endif
+static struct sel_c graphic_char_str[] = {
+ {N_S(GRAPHIC_CHAR_ASCII), N_("No")},
+ {N_S(GRAPHIC_CHAR_CHARSET), N_("Yes, but only charset specific")},
+ {N_S(GRAPHIC_CHAR_ALL), N_("Yes")},
+ {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,
@@ -368,8 +375,8 @@ struct param_ptr params1[] = {
{"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_ONOFF, (void *)&displayInsDel,
diff --git a/symbol.c b/symbol.c
index 9a482b3..7c235f2 100644
--- a/symbol.c
+++ b/symbol.c
@@ -86,24 +86,29 @@ get_symbol(wc_ces charset, int *width)
charset_symbol_set *p;
symbol_set *s = NULL;
- if (charset == save_charset && save_symbol != NULL &&
- *width == save_symbol->width) {
- *width = save_symbol->width;
- return save_symbol->item;
- }
- save_charset = charset;
- for (p = charset_symbol_list; p->charset; p++) {
- if (charset == p->charset &&
- (*width == 0 || *width == p->symbol->width)) {
- s = p->symbol;
- break;
+ if (UseGraphicChar != GRAPHIC_CHAR_ASCII) {
+ if (charset == save_charset && save_symbol != NULL &&
+ *width == save_symbol->width)
+ return save_symbol->item;
+ save_charset = charset;
+ for (p = charset_symbol_list; p->charset; p++) {
+ if (charset == p->charset &&
+ (*width == 0 || *width == p->symbol->width)) {
+ s = p->symbol;
+ break;
+ }
}
- }
- if (s == NULL)
+ if (s == NULL)
+ s = (*width == 2) ? &alt2_symbol_set : &alt_symbol_set;
+ if (s != save_symbol) {
+ if (!s->encode)
+ encode_symbol(s);
+ save_symbol = s;
+ }
+ } else {
+ if (save_symbol != NULL && *width == save_symbol->width)
+ return save_symbol->item;
s = (*width == 2) ? &alt2_symbol_set : &alt_symbol_set;
- if (s != save_symbol) {
- if (!s->encode)
- encode_symbol(s);
save_symbol = s;
}
*width = s->width;
diff --git a/terms.c b/terms.c
index ed9f425..5fa0568 100644
--- a/terms.c
+++ b/terms.c
@@ -1157,7 +1157,7 @@ graphend(void)
int
graph_ok(void)
{
- if (!UseGraphicChar)
+ if (UseGraphicChar != GRAPHIC_CHAR_ALL)
return 0;
return T_as[0] != 0 && T_ae[0] != 0 && T_ac[0] != 0;
}