diff options
author | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2016-01-26 19:37:18 +0000 |
---|---|---|
committer | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2016-01-26 19:37:18 +0000 |
commit | 520e81f98d7560cb39a9141c698723e2e36aa675 (patch) | |
tree | 6fb7885421e4c7e2c8c08187ca4963886ebdf1ea | |
parent | 9505b8e5143b3b11f86469818258f1b628053d08 (diff) | |
download | netsurf-520e81f98d7560cb39a9141c698723e2e36aa675.tar.gz netsurf-520e81f98d7560cb39a9141c698723e2e36aa675.tar.bz2 |
Alloc specifying local charset on OS3 as we can't get this from Locale
-rw-r--r-- | amiga/options.h | 1 | ||||
-rw-r--r-- | amiga/os3support.h | 2 | ||||
-rwxr-xr-x | amiga/utf8.c | 6 |
3 files changed, 8 insertions, 1 deletions
diff --git a/amiga/options.h b/amiga/options.h index c46c979b4..0c4db5c45 100644 --- a/amiga/options.h +++ b/amiga/options.h @@ -90,5 +90,6 @@ NSOPTION_BOOL(accept_lang_locale, true) /* Options relevant for OS3 only */ #ifndef __amigaos4__ NSOPTION_BOOL(friend_bitmap, false) +NSOPTION_STRING(local_charset, "ISO-8859-1") #endif diff --git a/amiga/os3support.h b/amiga/os3support.h index 5f21fadba..c1db0541d 100644 --- a/amiga/os3support.h +++ b/amiga/os3support.h @@ -140,7 +140,7 @@ #define ESetInfo SetInfo /* Only used in one place we haven't ifdeffed, where it returns the charset name */ -#define ObtainCharsetInfo(A,B,C) (const char *)"ISO-8859-1" +#define ObtainCharsetInfo(A,B,C) (const char *)nsoption_charp(local_charset) /* DOS */ #define AllocSysObjectTags(A,B,C,D) CreateMsgPort() /* Assume ASOT_PORT for now */ diff --git a/amiga/utf8.c b/amiga/utf8.c index 9bf1b1adb..91d7c90c0 100755 --- a/amiga/utf8.c +++ b/amiga/utf8.c @@ -23,6 +23,7 @@ #include <proto/diskfont.h> #include <diskfont/diskfonttag.h> +#include "utils/nsoption.h" #include "utils/utf8.h" #include "desktop/gui_utf8.h" @@ -37,6 +38,8 @@ nserror utf8_from_local_encoding(const char *string, size_t len, char **result) charset = GetDiskFontCtrl(DFCTRL_CHARSET); encname = (const char *) ObtainCharsetInfo(DFCS_NUMBER, charset, DFCS_MIMENAME); +#else + encname = nsoption_charp(local_charset); #endif return utf8_from_enc(string,encname,len,result,NULL); @@ -51,6 +54,8 @@ nserror utf8_to_local_encoding(const char *string, size_t len, char **result) charset = GetDiskFontCtrl(DFCTRL_CHARSET); encname = (const char *) ObtainCharsetInfo(DFCS_NUMBER, charset, DFCS_MIMENAME); +#else + encname = nsoption_charp(local_charset); #endif return utf8_to_enc(string,encname,len,result); @@ -96,3 +101,4 @@ static struct gui_utf8_table utf8_table = { }; struct gui_utf8_table *amiga_utf8_table = &utf8_table; + |