changeset 1098:614b1d02e6c3

Refactor: isolate calls to utf8 functions into a single source file.
author corvid <corvid@lavabit.com>
date Fri, 15 May 2009 22:08:10 -0400
parents 4be83aec27bd
children f45c0207dc68 73a85563d3a9
files src/Makefile.am src/html.cc src/utf8.cc src/utf8.hh
diffstat 4 files changed, 55 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/Makefile.am	Fri May 15 15:27:14 2009 -0400
+++ b/src/Makefile.am	Fri May 15 22:08:10 2009 -0400
@@ -53,6 +53,8 @@
 	klist.h \
 	chain.c \
 	chain.h \
+	utf8.cc \
+	utf8.hh \
 	timeout.cc \
 	timeout.hh \
 	dialog.cc \
--- a/src/html.cc	Fri May 15 15:27:14 2009 -0400
+++ b/src/html.cc	Fri May 15 22:08:10 2009 -0400
@@ -23,12 +23,11 @@
 #include <math.h>       /* for rint */
 #include <errno.h>
 
-#include <fltk/utf.h>   /* for utf8encode */
-
 #include "bw.h"         /* for BrowserWindow */
 #include "msg.h"
 #include "binaryconst.h"
 #include "colors.h"
+#include "utf8.hh"
 
 #include "misc.h"
 #include "uicmd.hh"
@@ -1028,7 +1027,7 @@
                                        toksize-i, &entsize)) >= 0) {
          if (isocode >= 128) {
             /* multibyte encoding */
-            n = utf8encode(isocode, buf);
+            n = a_Utf8_encode(isocode, buf);
             for (k = 0; k < n; ++k)
                new_str[j++] = buf[k];
          } else {
@@ -3568,7 +3567,7 @@
                                              tagsize-i, &entsize)) >= 0) {
                if (isocode >= 128) {
                   char buf[4];
-                  int k, n = utf8encode(isocode, buf);
+                  int k, n = a_Utf8_encode(isocode, buf);
                   for (k = 0; k < n; ++k)
                      dStr_append_c(Buf, buf[k]);
                } else {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/utf8.cc	Fri May 15 22:08:10 2009 -0400
@@ -0,0 +1,34 @@
+/*
+ * File: utf8.c
+ *
+ * Copyright (C) 2009 Jorge Arellano Cid <jcid@dillo.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ */
+
+#include <fltk/utf.h>
+
+#include "utf8.hh"
+
+// C++ functions with C linkage ----------------------------------------------
+
+/*
+ * Write UTF-8 encoding of ucs into buf and return number of bytes written.
+ */
+int a_Utf8_encode(unsigned int ucs, char *buf)
+{
+   return utf8encode(ucs, buf);
+}
+
+/*
+ * Examine first srclen bytes of src.
+ * Return 0 if not legal UTF-8, 1 if all ASCII, 2 if all below 0x800,
+ * 3 if all below 0x10000, and 4 otherwise.
+ */
+int a_Utf8_test(const char* src, unsigned int srclen)
+{
+   return utf8test(src, srclen);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/utf8.hh	Fri May 15 22:08:10 2009 -0400
@@ -0,0 +1,16 @@
+#ifndef __UTF8_HH__
+#define __UTF8_HH__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+int a_Utf8_encode(unsigned int ucs, char *buf);
+int a_Utf8_test(const char* src, unsigned int srclen);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __UTF8_HH__ */
+