diff options
author | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2008-08-23 16:17:23 +0000 |
---|---|---|
committer | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2008-08-23 16:17:23 +0000 |
commit | 889648aa4d59940cd5e8a766fee0575582c72255 (patch) | |
tree | 698dec7f44d70d37748670b754c019186f914a8e /amiga/utf8.c | |
parent | ac427e05e59d24a88cdc4919208ecf040f35fd44 (diff) | |
download | netsurf-889648aa4d59940cd5e8a766fee0575582c72255.tar.gz netsurf-889648aa4d59940cd5e8a766fee0575582c72255.tar.bz2 |
Convert UTF-8 text to local charset before printing to screen
svn path=/trunk/netsurf/; revision=5184
Diffstat (limited to 'amiga/utf8.c')
-rwxr-xr-x | amiga/utf8.c | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/amiga/utf8.c b/amiga/utf8.c index 22812ba0c..87c95d58a 100755 --- a/amiga/utf8.c +++ b/amiga/utf8.c @@ -18,8 +18,60 @@ #include <sys/types.h> #include "utils/utf8.h" +#include <proto/codesets.h> +#include <proto/exec.h> +#include <parserutils/charset/mibenum.h> utf8_convert_ret utf8_to_local_encoding(const char *string, size_t len, char **result) { +/* + struct codeset *cs = CodesetsFind("ISO-8859-1", + CSA_FallbackToDefault,FALSE, + TAG_DONE); +*/ + +// if(!len) return UTF8_CONVERT_OK; + + *result = CodesetsUTF8ToStr(CSA_Source,string, + CSA_SourceLen,len, +// CSA_MapForeignChars,TRUE, +// CSA_DestCodeset,cs, + TAG_DONE); + + return UTF8_CONVERT_OK; +} + +ULONG ami_utf8_to_any(const char *string, size_t len, char **result) +{ + uint16 mibenum = 0; + + struct codeset *cs = CodesetsFindBest(CSA_Source,string, + CSA_SourceLen,len, + CSA_FallbackToDefault,TRUE, + TAG_DONE); + + *result = CodesetsUTF8ToStr(CSA_Source,string, + CSA_SourceLen,len, +// CSA_MapForeignChars,TRUE, + CSA_DestCodeset,cs, + TAG_DONE); + + mibenum = parserutils_charset_mibenum_from_name(cs->name,strlen(cs->name)); + + printf("%ld\n",mibenum); + + return mibenum; // mibenum +} + +/* +char *ami_utf8_alloc(char *string) +{ + return (AllocVec(CodesetsUTF8Len(string)+1,MEMF_CLEAR)); +} +*/ + +void ami_utf8_free(char *ptr) +{ + if(ptr) CodesetsFreeA(ptr,NULL); } |