tndblookval.c - plan9port - [fork] Plan 9 from user space
HTML git clone git://src.adamsgaard.dk/plan9port
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
tndblookval.c (791B)
---
1 #include <u.h>
2 #include <libc.h>
3 #include <bio.h>
4 #include <ip.h>
5 #include <ndb.h>
6
7 /*
8 * Look for a pair with the given attribute. look first on the same line,
9 * then in the whole entry.
10 */
11 Ndbtuple*
12 ndbfindattr(Ndbtuple *entry, Ndbtuple *line, char *attr)
13 {
14 Ndbtuple *nt;
15
16 /* first look on same line (closer binding) */
17 for(nt = line; nt;){
18 if(strcmp(attr, nt->attr) == 0)
19 return nt;
20 nt = nt->line;
21 if(nt == line)
22 break;
23 }
24
25 /* search whole tuple */
26 for(nt = entry; nt; nt = nt->entry)
27 if(strcmp(attr, nt->attr) == 0)
28 return nt;
29
30 return nil;
31 }
32
33 Ndbtuple*
34 ndblookval(Ndbtuple *entry, Ndbtuple *line, char *attr, char *to)
35 {
36 Ndbtuple *t;
37
38 t = ndbfindattr(entry, line, attr);
39 if(t != nil){
40 strncpy(to, t->val, Ndbvlen-1);
41 to[Ndbvlen-1] = 0;
42 }
43 return t;
44 }