summaryrefslogtreecommitdiffstats
path: root/src/lib9/utf/utfutf.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2004-02-29 22:11:15 +0000
committerrsc <devnull@localhost>2004-02-29 22:11:15 +0000
commit91c13e54b5d631b65e2f8344d5e0abd058f78ba1 (patch)
tree81d77fc6a74f182543603032462e865e34e43335 /src/lib9/utf/utfutf.c
parent5a8e63b2f016735364d17866d5e2bcb35d20c78b (diff)
downloadplan9port-91c13e54b5d631b65e2f8344d5e0abd058f78ba1.tar.gz
plan9port-91c13e54b5d631b65e2f8344d5e0abd058f78ba1.zip
Move utf, fmt. Small header file changes.
Diffstat (limited to 'src/lib9/utf/utfutf.c')
-rw-r--r--src/lib9/utf/utfutf.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/lib9/utf/utfutf.c b/src/lib9/utf/utfutf.c
new file mode 100644
index 00000000..ea360361
--- /dev/null
+++ b/src/lib9/utf/utfutf.c
@@ -0,0 +1,41 @@
+/*
+ * The authors of this software are Rob Pike and Ken Thompson.
+ * Copyright (c) 2002 by Lucent Technologies.
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose without fee is hereby granted, provided that this entire notice
+ * is included in all copies of any software which is or includes a copy
+ * or modification of this software and in all copies of the supporting
+ * documentation for such software.
+ * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
+ * WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR LUCENT TECHNOLOGIES MAKE ANY
+ * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
+ * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
+ */
+#include <stdarg.h>
+#include <string.h>
+#include "utf.h"
+#include "utfdef.h"
+
+
+/*
+ * Return pointer to first occurrence of s2 in s1,
+ * 0 if none
+ */
+char*
+utfutf(char *s1, char *s2)
+{
+ char *p;
+ long f, n1, n2;
+ Rune r;
+
+ n1 = chartorune(&r, s2);
+ f = r;
+ if(f <= Runesync) /* represents self */
+ return strstr(s1, s2);
+
+ n2 = strlen(s2);
+ for(p=s1; p=utfrune(p, f); p+=n1)
+ if(strncmp(p, s2, n2) == 0)
+ return p;
+ return 0;
+}