13#define WHO "ofmipname"
15int rename(
const char *,
const char *);
21{ logmsg(
WHO,111,FATAL,
"out of memory"); }
23{ logmsg(
WHO,111,FATAL,
"unable to read input: "); }
24static void die_write()
25{ logmsg(
WHO,111,FATAL,B(
"unable to create: ",
fntmp)); }
27{ logmsg(
WHO,100,USAGE,
"ofmipname cdb tmp"); }
37static void doit(
char *x,
unsigned int len)
42 if (x[0] ==
'#')
return;
44 colon = byte_chr(x,len,
':');
45 if (colon == len)
return;
46 if (!stralloc_copyb(&
key,x,colon)) nomem();
47 ++colon; x += colon; len -= colon;
49 colon = byte_chr(x,len,
':');
50 if (colon == len)
return;
51 if (!stralloc_copyb(&
data,x,colon)) nomem();
52 if (!stralloc_0(&
data)) nomem();
53 ++colon; x += colon; len -= colon;
55 colon = byte_chr(x,len,
':');
56 if (colon == len)
return;
57 if (!stralloc_catb(&
data,x,colon)) nomem();
58 ++colon; x += colon; len -= colon;
64int main(
int argc,
char **argv)
75 fd = open_trunc(
fntmp);
76 if (fd == -1) die_write();
77 if (cdb_make_start(&
cdb,fd) == -1) die_write();
80 if (getln(buffer_0,&
line,&
match,
'\n') == -1) die_read();
85 if (cdb_make_finish(&
cdb) == -1) die_write();
86 if (fsync(fd) == -1) die_write();
87 if (close(fd) == -1) die_write();
89 logmsg(
WHO,111,FATAL,B(
"unable to move ",
fntmp,
" to ",
fncdb));
int rename(const char *, const char *)