plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

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 }