commit 786ecbd7a8ad4202498463e238d29d5baf4b4bcc
parent 2e73f732059937e719536b730da899e3441b5eba
Author: Andrej Kacian <ticho@claws-mail.org>
Date: Wed, 14 Feb 2018 23:03:17 +0100
Add support for the iso-8859-8-i encoding
Support this encoding by aliasing it to iso-8859-8.
Diffstat:
2 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/src/codeconv.c b/src/codeconv.c
@@ -706,12 +706,24 @@ static gint conv_noconv(gchar *outbuf, gint outlen, const gchar *inbuf)
static const gchar *
conv_get_fallback_for_private_encoding(const gchar *encoding)
{
- if (encoding && (encoding[0] == 'X' || encoding[0] == 'x') &&
- encoding[1] == '-') {
- if (!g_ascii_strcasecmp(encoding, CS_X_MACCYR))
- return CS_MACCYR;
- if (!g_ascii_strcasecmp(encoding, CS_X_GBK))
- return CS_GBK;
+ if (encoding) {
+ if ((encoding[0] == 'X' || encoding[0] == 'x') &&
+ encoding[1] == '-') {
+ if (!g_ascii_strcasecmp(encoding, CS_X_MACCYR))
+ return CS_MACCYR;
+ if (!g_ascii_strcasecmp(encoding, CS_X_GBK))
+ return CS_GBK;
+ }
+ else if(!g_ascii_strcasecmp(encoding, CS_ISO_8859_8_I)) {
+ /*
+ * ISO-8859-8-I is a variant which fully
+ * agrees with ISO-8859-8 on character
+ * codings, and differs only in directionality
+ * implications, which are ignored here
+ * anyway; and is not recognized by iconv
+ */
+ return CS_ISO_8859_8;
+ }
}
return encoding;
diff --git a/src/codeconv.h b/src/codeconv.h
@@ -116,6 +116,7 @@ struct _CodeConverter
#define CS_ISO_8859_6 "ISO-8859-6"
#define CS_ISO_8859_7 "ISO-8859-7"
#define CS_ISO_8859_8 "ISO-8859-8"
+#define CS_ISO_8859_8_I "ISO-8859-8-I"
#define CS_ISO_8859_9 "ISO-8859-9"
#define CS_ISO_8859_10 "ISO-8859-10"
#define CS_ISO_8859_11 "ISO-8859-11"