projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cruft
[apps/madmutt.git]
/
charset.cpkg
diff --git
a/charset.cpkg
b/charset.cpkg
index
6934987
..
b2b4d79
100644
(file)
--- a/
charset.cpkg
+++ b/
charset.cpkg
@@
-62,10
+62,13
@@
static char *charset_init(void)
#ifdef HAVE_BIND_TEXTDOMAIN_CODESET
bind_textdomain_codeset(PACKAGE, res);
#endif
#ifdef HAVE_BIND_TEXTDOMAIN_CODESET
bind_textdomain_codeset(PACKAGE, res);
#endif
+ return m_strdup(res);
+}
- Charset_is_utf8 = charset_is_utf8(res);
+static void charset_onchange(const char *cset)
+{
+ Charset_is_utf8 = charset_is_utf8(cset);
CharsetReplacement = Charset_is_utf8 ? 0xfffd : '?';
CharsetReplacement = Charset_is_utf8 ? 0xfffd : '?';
- return m_strdup(res);
}
@package MCharset {
}
@package MCharset {
@@
-91,7
+94,10
@@
static char *charset_init(void)
** .pp
** Character set your terminal uses to display and enter textual data.
*/
** .pp
** Character set your terminal uses to display and enter textual data.
*/
- string_t charset = charset_init();
+ string_t charset = {
+ .init = charset_init();
+ .onchange = charset_onchange($$);
+ };
/*
** .pp
/*
** .pp
@@
-122,13
+128,13
@@
static char *charset_init(void)
void charset_hook(rx_t local, const string_t alias) {
rx_set_template(local, alias);
void charset_hook(rx_t local, const string_t alias) {
rx_set_template(local, alias);
- rx_list_a
ppend(&charset_hooks,
local);
+ rx_list_a
dd2(&charset_hooks, &
local);
RETURN();
};
void iconv_hook(rx_t local, const string_t alias) {
rx_set_template(local, alias);
RETURN();
};
void iconv_hook(rx_t local, const string_t alias) {
rx_set_template(local, alias);
- rx_list_a
ppend(&iconv_hooks,
local);
+ rx_list_a
dd2(&iconv_hooks, &
local);
RETURN();
};
};
RETURN();
};
};
@@
-203,8
+209,8
@@
int charset_is_us_ascii(const char *s)
/* Like iconv_open, but canonicalises the charsets */
iconv_t mutt_iconv_open(const char *tocode, const char *fromcode, int flags)
{
/* Like iconv_open, but canonicalises the charsets */
iconv_t mutt_iconv_open(const char *tocode, const char *fromcode, int flags)
{
- char to1[STRING];
- char from1[STRING];
+ char to1[STRING]
, to2[STRING]
;
+ char from1[STRING]
, from2[STRING]
;
char tmp[STRING];
iconv_t cd;
char tmp[STRING];
iconv_t cd;
@@
-225,14
+231,10
@@
iconv_t mutt_iconv_open(const char *tocode, const char *fromcode, int flags)
if ((cd = iconv_open(to1, from1)) != MUTT_ICONV_ERROR)
return cd;
if ((cd = iconv_open(to1, from1)) != MUTT_ICONV_ERROR)
return cd;
- {
- char to2[STRING];
-
char from2[STRING]
;
+ if (rx_list_match2(iconv_hooks, to1, to2, sizeof(to2))
+ && rx_list_match2(iconv_hooks, from1, from2, sizeof(from2)))
+
return iconv_open(to2, from2)
;
- if (rx_list_match2(iconv_hooks, to1, to2, sizeof(to2))
- && rx_list_match2(iconv_hooks, from1, from2, sizeof(from2)))
- return iconv_open(to2, from2);
- }
return MUTT_ICONV_ERROR;
}
return MUTT_ICONV_ERROR;
}