int nb_regist(char *xkey, ob *xob) { nb_rec *nb; nb = nb_newpair(xkey, xob); if(nb) { varray_push(gnotebindlist, nb); return 0; } return -1; }
int nf_registfilename(char *fn) { nf_rec *ne; ne = nf_newfile(fn); if(ne) { varray_push(gnotefilelist, ne); return 0; } return -1; }
void varray_copy(varray *source, varray *destination) { int i; void *item; if (source == NULL) return; if (destination == NULL) return; for (i = 0; i < varray_length (source); i++) { item = varray_get (source, i); varray_push (destination, item); } }
int txe_parse(varray_t *ar, char *fs) { char *p, *q; char token[BUFSIZ]; txe *ne; int cin; Echo("target '%s'\n", fs); ne = NULL; p = fs; cin = 0; q = token; while(*p) { #if 0 *q = '\0'; Echo("\t'%s'\n", token); #endif if(*p=='\\') { #if 0 *q++ = *p++; #endif p++; if(*p) { *q++ = *p++; } continue; } if(*p=='|') { ne = NULL; *q = '\0'; if(token[0]) { if(cin<=0) { Echo(" data %d '%s'\n", cin, token); ne = txe_new(TXE_DATA, token); cin++; } else if(cin>0) { Echo(" cmd %d '%s'\n", cin, token); ne = txe_new(TXE_CMD, token); cin--; } if(ne) { varray_push(ar, ne); } } else { if(cin<=0) { cin++; } else if(cin>0) { cin--; } } q = token; p++; continue; } *q++ = *p++; } *q = '\0'; ne = NULL; if(token[0]) { if(cin<=0) { Echo(" data %d '%s'\n", cin, token); ne = txe_new(TXE_DATA, token); } else { Echo(" cmd %d '%s'\n", cin, token); ne = txe_new(TXE_CMD, token); } if(ne) { varray_push(ar, ne); } } return 0; }