Blame


1 d957951b 2005-02-11 devnull #include <u.h>
2 d957951b 2005-02-11 devnull #include <libc.h>
3 d957951b 2005-02-11 devnull #include <bio.h>
4 d957951b 2005-02-11 devnull #include <ip.h>
5 d957951b 2005-02-11 devnull #include <ndb.h>
6 d957951b 2005-02-11 devnull
7 d957951b 2005-02-11 devnull /*
8 d957951b 2005-02-11 devnull * Look for a pair with the given attribute. look first on the same line,
9 d957951b 2005-02-11 devnull * then in the whole entry.
10 d957951b 2005-02-11 devnull */
11 d957951b 2005-02-11 devnull Ndbtuple*
12 d957951b 2005-02-11 devnull ndbfindattr(Ndbtuple *entry, Ndbtuple *line, char *attr)
13 d957951b 2005-02-11 devnull {
14 d957951b 2005-02-11 devnull Ndbtuple *nt;
15 d957951b 2005-02-11 devnull
16 d957951b 2005-02-11 devnull /* first look on same line (closer binding) */
17 d957951b 2005-02-11 devnull for(nt = line; nt;){
18 d957951b 2005-02-11 devnull if(strcmp(attr, nt->attr) == 0)
19 d957951b 2005-02-11 devnull return nt;
20 d957951b 2005-02-11 devnull nt = nt->line;
21 d957951b 2005-02-11 devnull if(nt == line)
22 d957951b 2005-02-11 devnull break;
23 d957951b 2005-02-11 devnull }
24 d957951b 2005-02-11 devnull
25 d957951b 2005-02-11 devnull /* search whole tuple */
26 d957951b 2005-02-11 devnull for(nt = entry; nt; nt = nt->entry)
27 d957951b 2005-02-11 devnull if(strcmp(attr, nt->attr) == 0)
28 d957951b 2005-02-11 devnull return nt;
29 d957951b 2005-02-11 devnull
30 d957951b 2005-02-11 devnull return nil;
31 d957951b 2005-02-11 devnull }
32 d957951b 2005-02-11 devnull
33 d957951b 2005-02-11 devnull Ndbtuple*
34 d957951b 2005-02-11 devnull ndblookval(Ndbtuple *entry, Ndbtuple *line, char *attr, char *to)
35 d957951b 2005-02-11 devnull {
36 d957951b 2005-02-11 devnull Ndbtuple *t;
37 d957951b 2005-02-11 devnull
38 d957951b 2005-02-11 devnull t = ndbfindattr(entry, line, attr);
39 d957951b 2005-02-11 devnull if(t != nil){
40 d957951b 2005-02-11 devnull strncpy(to, t->val, Ndbvlen-1);
41 d957951b 2005-02-11 devnull to[Ndbvlen-1] = 0;
42 d957951b 2005-02-11 devnull }
43 d957951b 2005-02-11 devnull return t;
44 d957951b 2005-02-11 devnull }