Introduction
Introduction Statistics Contact Development Disclaimer Help
util.c - 9base - revived minimalist port of Plan 9 userland to Unix
git clone git://git.suckless.org/9base
Log
Files
Refs
README
LICENSE
---
util.c (766B)
---
1 #include "sam.h"
2
3 void
4 cvttorunes(char *p, int n, Rune *r, int *nb, int *nr, int *nulls)
5 {
6 uchar *q;
7 Rune *s;
8 int j, w;
9
10 /*
11 * Always guaranteed that n bytes may be interpreted
12 * without worrying about partial runes. This may mean
13 * reading up to UTFmax-1 more bytes than n; the caller
14 * knows this. If n is a firm limit, the caller should
15 * set p[n] = 0.
16 */
17 q = (uchar*)p;
18 s = r;
19 for(j=0; j<n; j+=w){
20 if(*q < Runeself){
21 w = 1;
22 *s = *q++;
23 }else{
24 w = chartorune(s, (char*)q);
25 q += w;
26 }
27 if(*s)
28 s++;
29 else if(nulls)
30 *nulls = TRUE;
31 }
32 *nb = (char*)q-p;
33 *nr = s-r;
34 }
35
36 void*
37 fbufalloc(void)
38 {
39 return emalloc(BUFSIZE);
40 }
41
42 void
43 fbuffree(void *f)
44 {
45 free(f);
46 }
47
48 uint
49 min(uint a, uint b)
50 {
51 if(a < b)
52 return a;
53 return b;
54 }
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.