summaryrefslogtreecommitdiff
path: root/amiga/utf8.c
diff options
context:
space:
mode:
Diffstat (limited to 'amiga/utf8.c')
-rwxr-xr-xamiga/utf8.c52
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);
}