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>
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.
11 d957951b 2005-02-11 devnull Ndbtuple*
12 d957951b 2005-02-11 devnull ndbfindattr(Ndbtuple *entry, Ndbtuple *line, char *attr)
14 d957951b 2005-02-11 devnull Ndbtuple *nt;
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)
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;
30 d957951b 2005-02-11 devnull return nil;
33 d957951b 2005-02-11 devnull Ndbtuple*
34 d957951b 2005-02-11 devnull ndblookval(Ndbtuple *entry, Ndbtuple *line, char *attr, char *to)
36 d957951b 2005-02-11 devnull Ndbtuple *t;
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;
43 d957951b 2005-02-11 devnull return t;