plan9port

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

sdbr_query.c (361B)


      1 #include "std.h"
      2 
      3 int
      4 sdbr_query(Sdbr r, Sdbr q)
      5 {
      6 	char *attr;
      7 	ulong i;
      8 	int   m;
      9 
     10 	for (i = 0; i < Vecsiz(q.attr); ++i) {
     11 		attr = q.attr[i].s;
     12 		m = sdbr_attr(r, attr[0] == '!' ? attr + 1 : attr);
     13 		if (m < 0) {
     14 			if (attr[0] == '!')
     15 				continue;
     16 			return 0;
     17 		}
     18 		if (sdbr_match(q.val[i].s, r.val[m].s) == (attr[0] == '!'))
     19 			return 0;
     20 	}
     21 	return 1;
     22 }