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 }