Subversion Repositories planix.SVN

Rev

Rev 2 | Blame | Compare with Previous | Last modification | View Log | RSS feed

#include <u.h>
#include <libc.h>
#include <bio.h>
#include <ip.h>
#include <ndb.h>

/*
 *  Look for a pair with the given attribute.  look first on the same line,
 *  then in the whole entry.
 */
Ndbtuple*
ndbfindattr(Ndbtuple *entry, Ndbtuple *line, char *attr)
{
        Ndbtuple *nt;

        /* first look on same line (closer binding) */
        for(nt = line; nt;){
                if(strcmp(attr, nt->attr) == 0)
                        return nt;
                nt = nt->line;
                if(nt == line)
                        break;
        }

        /* search whole tuple */
        for(nt = entry; nt; nt = nt->entry)
                if(strcmp(attr, nt->attr) == 0)
                        return nt;

        return nil;
}

Ndbtuple*
ndblookval(Ndbtuple *entry, Ndbtuple *line, char *attr, char *to)
{
        Ndbtuple *t;

        t = ndbfindattr(entry, line, attr);
        if(t != nil){
                strncpy(to, t->val, Ndbvlen-1);
                to[Ndbvlen-1] = 0;
        }
        return t;
}