new
This commit is contained in:
parent
ad017cfbf5
commit
d957951b75
27 changed files with 2521 additions and 0 deletions
65
src/libndb/ndbfree.c
Normal file
65
src/libndb/ndbfree.c
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <bio.h>
|
||||
#include <ctype.h>
|
||||
#include <ndb.h>
|
||||
#include "ndbhf.h"
|
||||
|
||||
/*
|
||||
* free a parsed entry
|
||||
*/
|
||||
void
|
||||
ndbfree(Ndbtuple *t)
|
||||
{
|
||||
Ndbtuple *tn;
|
||||
|
||||
for(; t; t = tn){
|
||||
tn = t->entry;
|
||||
if(t->val != t->valbuf){
|
||||
free(t->val);
|
||||
}
|
||||
free(t);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* set a value in a tuple
|
||||
*/
|
||||
void
|
||||
ndbsetval(Ndbtuple *t, char *val, int n)
|
||||
{
|
||||
if(n < Ndbvlen){
|
||||
if(t->val != t->valbuf){
|
||||
free(t->val);
|
||||
t->val = t->valbuf;
|
||||
}
|
||||
} else {
|
||||
if(t->val != t->valbuf)
|
||||
t->val = realloc(t->val, n+1);
|
||||
else
|
||||
t->val = malloc(n+1);
|
||||
if(t->val == nil)
|
||||
sysfatal("ndbsetval %r");
|
||||
}
|
||||
strncpy(t->val, val, n);
|
||||
t->val[n] = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* allocate a tuple
|
||||
*/
|
||||
Ndbtuple*
|
||||
ndbnew(char *attr, char *val)
|
||||
{
|
||||
Ndbtuple *t;
|
||||
|
||||
t = mallocz(sizeof(*t), 1);
|
||||
if(t == nil)
|
||||
sysfatal("ndbnew %r");
|
||||
if(attr != nil)
|
||||
strncpy(t->attr, attr, sizeof(t->attr)-1);
|
||||
t->val = t->valbuf;
|
||||
if(val != nil)
|
||||
ndbsetval(t, val, strlen(val));
|
||||
return t;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue