Introduction
Introduction Statistics Contact Development Disclaimer Help
runestrstr.c - 9base - revived minimalist port of Plan 9 userland to Unix
git clone git://git.suckless.org/9base
Log
Files
Refs
README
LICENSE
---
runestrstr.c (1191B)
---
1 /*
2 * The authors of this software are Rob Pike and Ken Thompson.
3 * Copyright (c) 2002 by Lucent Technologies.
4 * Permission to use, copy, modify, and distribute this software for any
5 * purpose without fee is hereby granted, provided that this entire noti…
6 * is included in all copies of any software which is or includes a copy
7 * or modification of this software and in all copies of the supporting
8 * documentation for such software.
9 * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLI…
10 * WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR LUCENT TECHNOLOGIES…
11 * ANY REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABI…
12 * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
13 */
14 #include <stdarg.h>
15 #include <string.h>
16 #include "plan9.h"
17 #include "utf.h"
18
19 /*
20 * Return pointer to first occurrence of s2 in s1,
21 * 0 if none
22 */
23 Rune*
24 runestrstr(Rune *s1, Rune *s2)
25 {
26 Rune *p, *pa, *pb;
27 int c0, c;
28
29 c0 = *s2;
30 if(c0 == 0)
31 return s1;
32 s2++;
33 for(p=runestrchr(s1, c0); p; p=runestrchr(p+1, c0)) {
34 pa = p;
35 for(pb=s2;; pb++) {
36 c = *pb;
37 if(c == 0)
38 return p;
39 if(c != *++pa)
40 break;
41 }
42 }
43 return 0;
44 }
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.