mirror of
https://github.com/rkd77/elinks.git
synced 2025-05-18 00:48:57 -04:00
u2cp_: Make the no_nbsp_hack parameter an enum.
This is from attachment 279 of bug 811. The change does not yet affect any visible behaviour.
This commit is contained in:
parent
b880c3a682
commit
40b6edc69d
@ -164,7 +164,7 @@ static const unicode_val_T strange_chars[32] = {
|
|||||||
#define is_cp_ptr_utf8(cp_ptr) ((cp_ptr)->aliases == aliases_utf8)
|
#define is_cp_ptr_utf8(cp_ptr) ((cp_ptr)->aliases == aliases_utf8)
|
||||||
|
|
||||||
unsigned char *
|
unsigned char *
|
||||||
u2cp_(unicode_val_T u, int to, int no_nbsp_hack)
|
u2cp_(unicode_val_T u, int to, enum nbsp_mode nbsp_mode)
|
||||||
{
|
{
|
||||||
int j;
|
int j;
|
||||||
int s;
|
int s;
|
||||||
@ -179,14 +179,17 @@ u2cp_(unicode_val_T u, int to, int no_nbsp_hack)
|
|||||||
#endif /* CONFIG_UTF8 */
|
#endif /* CONFIG_UTF8 */
|
||||||
|
|
||||||
/* To mark non breaking spaces, we use a special char NBSP_CHAR. */
|
/* To mark non breaking spaces, we use a special char NBSP_CHAR. */
|
||||||
if (u == 0xa0) return no_nbsp_hack ? " " : NBSP_CHAR_STRING;
|
if (u == 0xa0) {
|
||||||
|
if (nbsp_mode == NBSP_MODE_HACK) return NBSP_CHAR_STRING;
|
||||||
|
else /* NBSP_MODE_ASCII */ return " ";
|
||||||
|
}
|
||||||
if (u == 0xad) return "";
|
if (u == 0xad) return "";
|
||||||
|
|
||||||
if (u < 0xa0) {
|
if (u < 0xa0) {
|
||||||
unicode_val_T strange = strange_chars[u - 0x80];
|
unicode_val_T strange = strange_chars[u - 0x80];
|
||||||
|
|
||||||
if (!strange) return NULL;
|
if (!strange) return NULL;
|
||||||
return u2cp_(strange, to, no_nbsp_hack);
|
return u2cp_(strange, to, nbsp_mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (u < 0xFFFF)
|
if (u < 0xFFFF)
|
||||||
|
@ -35,6 +35,17 @@ enum convert_string_mode {
|
|||||||
CSM_NONE, /* Convert nothing. */
|
CSM_NONE, /* Convert nothing. */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* How to translate non-breaking spaces. */
|
||||||
|
enum nbsp_mode {
|
||||||
|
/* Convert to NBSP_CHAR. This lets the HTML renderer
|
||||||
|
* recognize nbsp even if the codepage doesn't support
|
||||||
|
* nbsp. (VISCII doesn't.) */
|
||||||
|
NBSP_MODE_HACK = 0,
|
||||||
|
|
||||||
|
/* Convert to normal ASCII space. */
|
||||||
|
NBSP_MODE_ASCII = 1
|
||||||
|
};
|
||||||
|
|
||||||
struct conv_table *get_translation_table(int, int);
|
struct conv_table *get_translation_table(int, int);
|
||||||
unsigned char *get_entity_string(const unsigned char *str, const int strlen, int encoding);
|
unsigned char *get_entity_string(const unsigned char *str, const int strlen, int encoding);
|
||||||
|
|
||||||
@ -101,9 +112,9 @@ unicode_val_T cp_to_unicode(int, unsigned char **, unsigned char *);
|
|||||||
unicode_val_T cp2u(int, unsigned char);
|
unicode_val_T cp2u(int, unsigned char);
|
||||||
unsigned char *cp2utf8(int, int);
|
unsigned char *cp2utf8(int, int);
|
||||||
|
|
||||||
unsigned char *u2cp_(unicode_val_T, int, int no_nbsp_hack);
|
unsigned char *u2cp_(unicode_val_T, int, enum nbsp_mode);
|
||||||
#define u2cp(u, to) u2cp_(u, to, 0)
|
#define u2cp(u, to) u2cp_(u, to, NBSP_MODE_HACK)
|
||||||
#define u2cp_no_nbsp(u, to) u2cp_(u, to, 1)
|
#define u2cp_no_nbsp(u, to) u2cp_(u, to, NBSP_MODE_ASCII)
|
||||||
|
|
||||||
void init_charsets_lookup(void);
|
void init_charsets_lookup(void);
|
||||||
void free_charsets_lookup(void);
|
void free_charsets_lookup(void);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user