vsdbr_join.c (359B)
1 #include "std.h" 2 3 void 4 vsdbr_join(Sdbr *v[], Sdbr r) 5 { 6 int i, n; 7 8 if (!Vecsiz(r.attr)) 9 sysfatal("vsdbr_join: empty record"); 10 for (i = 0; i < Vecsiz(*v); ++i) { 11 n = sdbr_attr((*v)[i], r.attr[0].s); 12 if (n < 0 || strcmp((*v)[i].val[n].s, r.val[0].s)) 13 continue; /*exact val, not match*/ 14 sdbr_edit(*v + i, r); 15 return; 16 } 17 sdbr_dup(Vecadd(v), r); 18 }