summaryrefslogtreecommitdiff
path: root/utils/utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'utils/utils.c')
-rw-r--r--utils/utils.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/utils/utils.c b/utils/utils.c
index a62f7256a..bc912fdc7 100644
--- a/utils/utils.c
+++ b/utils/utils.c
@@ -129,6 +129,31 @@ char * tolat1(xmlChar * s)
return d0;
}
+char * tolat1_pre(xmlChar * s)
+{
+ unsigned int length = strlen((char*) s);
+ char *d = xcalloc(length + 1, sizeof(char));
+ char *d0 = d;
+ int u, chars;
+
+ while (*s != 0) {
+ chars = length;
+ u = xmlGetUTF8Char((unsigned char *) s, &chars);
+ s += chars;
+ length -= chars;
+ if (u == 0x09 || u == 0x0a || u == 0x0d ||
+ (0x20 <= u && u <= 0x7f) ||
+ (0xa0 <= u && u <= 0xff))
+ *d = u;
+ else
+ *d = '?';
+ d++;
+ }
+ *d = 0;
+
+ return d0;
+}
+
char *squash_tolat1(xmlChar *s)
{
/* TODO: optimize */