From: Oliver O. <fr...@us...> - 2007-06-17 12:19:11
|
Update of /cvsroot/simspark/simspark/spark/utility/sfsexp In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv14820 Modified Files: Tag: projectx parser.c sexp.c sexp.h sexp_ops.c Log Message: merged from HEAD Index: sexp.h =================================================================== RCS file: /cvsroot/simspark/simspark/spark/utility/sfsexp/sexp.h,v retrieving revision 1.1 retrieving revision 1.1.4.1 diff -C2 -d -r1.1 -r1.1.4.1 *** sexp.h 19 Dec 2005 19:13:30 -0000 1.1 --- sexp.h 17 Jun 2007 12:01:44 -0000 1.1.4.1 *************** *** 291,294 **** --- 291,299 ---- */ unsigned int binlength; + + /** + * The line number of the element start + */ + unsigned int line; } sexp_t; *************** *** 462,465 **** --- 467,475 ---- */ char *bindata; + + /** + * The current line number, i.e. the number of \n seen + */ + unsigned int line; } pcont_t; Index: parser.c =================================================================== RCS file: /cvsroot/simspark/simspark/spark/utility/sfsexp/parser.c,v retrieving revision 1.1 retrieving revision 1.1.4.1 diff -C2 -d -r1.1 -r1.1.4.1 *** parser.c 19 Dec 2005 19:13:30 -0000 1.1 --- parser.c 17 Jun 2007 12:01:44 -0000 1.1.4.1 *************** *** 330,333 **** --- 330,334 ---- cc->qdepth = 0; cc->squoted = 0; + cc->line = 1; return cc; *************** *** 458,461 **** --- 459,464 ---- t = s; cc->sbuffer = str; + + cc->line = 1; } *************** *** 487,490 **** --- 490,497 ---- /* space,tab,CR,LF considered white space */ case '\n': + cc->line++; + t++; + break; + case ' ': case '\t': *************** *** 567,571 **** sx->next = NULL; sx->list = NULL; ! if (stack->height < 1) { --- 574,579 ---- sx->next = NULL; sx->list = NULL; ! sx->line = cc->line; ! if (stack->height < 1) { *************** *** 707,711 **** sx->val_allocated = val_allocated; sx->val_used = val_used; ! sx->next = NULL; if (squoted != 0) sx->aty = SEXP_SQUOTE; --- 715,721 ---- sx->val_allocated = val_allocated; sx->val_used = val_used; ! sx->next = NULL; ! sx->line = cc->line; ! if (squoted != 0) sx->aty = SEXP_SQUOTE; *************** *** 837,841 **** sx->val_used = val_used; sx->val_allocated = val_allocated; ! sx->next = NULL; if (squoted == 1) { --- 847,852 ---- sx->val_used = val_used; sx->val_allocated = val_allocated; ! sx->next = NULL; ! sx->line = cc->line; if (squoted == 1) { *************** *** 993,996 **** --- 1004,1008 ---- sx->next = NULL; sx->aty = SEXP_SQUOTE; + sx->line = cc->line; val = (char *)malloc(sizeof(char)*sexp_val_start_size); *************** *** 1060,1063 **** --- 1072,1076 ---- case 11: if (t[0] == '\n') { + cc->line++; state = 1; } *************** *** 1161,1164 **** --- 1174,1178 ---- sx->next = NULL; sx->aty = SEXP_BINARY; + sx->line = cc->line; bindata = NULL; Index: sexp_ops.c =================================================================== RCS file: /cvsroot/simspark/simspark/spark/utility/sfsexp/sexp_ops.c,v retrieving revision 1.1 retrieving revision 1.1.4.1 diff -C2 -d -r1.1 -r1.1.4.1 *** sexp_ops.c 19 Dec 2005 19:13:30 -0000 1.1 --- sexp_ops.c 17 Jun 2007 12:01:44 -0000 1.1.4.1 *************** *** 146,150 **** snew->list = copy_sexp(s->list); } ! snew->next = copy_sexp(s->next); --- 146,151 ---- snew->list = copy_sexp(s->list); } ! ! snew->line = s->line; snew->next = copy_sexp(s->next); *************** *** 257,260 **** --- 258,262 ---- cd->next = NULL; cd->list = copy_sexp(s->list->next); + cd->line = s->line; return cd; } Index: sexp.c =================================================================== RCS file: /cvsroot/simspark/simspark/spark/utility/sfsexp/sexp.c,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.1.2.1 diff -C2 -d -r1.1.2.1 -r1.1.2.1.2.1 *** sexp.c 9 Feb 2007 16:15:16 -0000 1.1.2.1 --- sexp.c 17 Jun 2007 12:01:44 -0000 1.1.2.1.2.1 *************** *** 96,99 **** --- 96,100 ---- fakehead->next = NULL; /* this is the important part of fakehead */ fakehead->aty = sx->aty; + fakehead->line = 0; if (fakehead->ty == SEXP_VALUE) { *************** *** 496,499 **** --- 497,502 ---- sx->list = sx->next = NULL; + sx->line = 0; + return sx; } |