diff options
author | Ito Hiroyuki <ZXB01226@nifty.com> | 2010-07-19 12:08:41 +0000 |
---|---|---|
committer | Ito Hiroyuki <ZXB01226@nifty.com> | 2010-07-19 12:08:41 +0000 |
commit | 459e010eed8f5217086045d20793ab87d2c8dc62 (patch) | |
tree | c9ce0a53a15c0026ce0306037d5b5c45559b1ec4 /symbol.c | |
parent | * [w3m-dev 04321] Re: w3m's bugs from bugs.debian.org (diff) | |
download | w3m-459e010eed8f5217086045d20793ab87d2c8dc62.tar.gz w3m-459e010eed8f5217086045d20793ab87d2c8dc62.zip |
* [w3m-dev 04321] Re: w3m's bugs from bugs.debian.org
* http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=261174#10
* terms.c (graph_ok): check UseGraphicChar is GRAPHIC_CHAR_ALL or not.
* symbol.c (get_symbol): check UseGraphicChar.
* rc.c (graphic_char_str): added.
* main.c (sig_chld): use GRAPHIC_CHAR_ASCII and GRAPHIC_CHAR_ALL.
* fm.h (GRAPHIC_CHAR_ASCII, GRAPHIC_CHAR_CHARSET, GRAPHIC_CHAR_ALL): added.
* fm.h: UseGraphicChar is initialized as GRAPHIC_CHAR_ASCII.
Diffstat (limited to 'symbol.c')
-rw-r--r-- | symbol.c | 37 |
1 files changed, 21 insertions, 16 deletions
@@ -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; |