Changeset: b27d7ad64613 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b27d7ad64613 Modified Files: clients/mapiclient/tachograph.c Branch: default Log Message:
Show result variables on DONE state diffs (114 lines): diff --git a/clients/mapiclient/tachograph.c b/clients/mapiclient/tachograph.c --- a/clients/mapiclient/tachograph.c +++ b/clients/mapiclient/tachograph.c @@ -143,8 +143,8 @@ fndSource(char *varname) fprintf(stderr,"fndSource %s\n",varname); for( i=0; i< srctop; i++) if( strcmp(varname, sources[i].varname)==0) - return sources[i].source; - return "TEMP"; + return strdup(sources[i].source); + return strdup(varname); } /* * Parsing the argument list of a MAL call to obtain un-quoted string values @@ -302,35 +302,9 @@ static struct{ {0,0,0,0,0}}; static void -renderCall(char *line, int len, char *stmt, int state, int mode) +renderArgs(char *c, int len, char *line, char *limit, char *l) { - char *limit= line + len, *l = line, *c = stmt; - int i; char varname[BUFSIZ], *v=0; - - (void) state; - // look for assignment - c = strstr(c,":="); - if( c) - c+=2; - else c=stmt; - - while ( *c && isspace((int) *c)) c++; - /* consider a function name remapping */ - if( mode){ - for(i=0; mapping[i].name; i++) - if( strncmp(c,mapping[i].name, mapping[i].length) == 0){ - c+= mapping[i].length; - sprintf(l,"%s", mapping[i].alias); - l += mapping[i].newl; - *l=0; - break; - } - while(*c && *c !='(') *l++= *c++; - } else - while(*c && *c !='(') *l++= *c++; - // handle argument list - if( *c == '(') *l++ = *c++; for(; *c && *c !=')' && l < limit-1; ){ v= 0; if(isalpha((int)*c) ){ @@ -346,6 +320,7 @@ renderCall(char *line, int len, char *st v= fndSource(varname); snprintf(l, len -strlen(line)-2,"%s",v); while(*l) l++; + free(v); } while(*c && *c !=']' && l < limit -2) *l++ = *c++; if( *c == ']' && l < limit) *l++ = *c++; @@ -367,11 +342,53 @@ renderCall(char *line, int len, char *st for(v = varname; *v; ) *l++ = *v++; *l++= *c++; } - *l++ = *c; + if(*c) *l++ = *c; *l=0; } static void +renderCall(char *line, int len, char *stmt, int state, int mode) +{ + char *limit= line + len, *l = line, *c = stmt, *s; + int i; + + (void) state; + // look for assignment + c = strstr(c,":="); + if( c) { + if(state){ + // for finished instructions show the result too + *c =0; + s = stmt; + if( *s == '(') *l++ = *c++; + renderArgs(s, len, line, limit, l); + while(*l) l++; + sprintf(l," := "); + while(*l) l++; + } + c+=2; + } else c=stmt; + + while ( *c && isspace((int) *c)) c++; + /* consider a function name remapping */ + if( mode){ + for(i=0; mapping[i].name; i++) + if( strncmp(c,mapping[i].name, mapping[i].length) == 0){ + c+= mapping[i].length; + sprintf(l,"%s", mapping[i].alias); + l += mapping[i].newl; + *l=0; + break; + } + while(*c && *c !='(') *l++= *c++; + } else + while(*c && *c !='(') *l++= *c++; + // handle argument list + if( *c == '(') *l++ = *c++; + renderArgs(c, len, line, limit, l); +} + +static void showBar(int level, lng clk, char *stmt) { lng i =0, nl; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list