Changeset: a082f4406a38 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a082f4406a38 Modified Files: Branch: default Log Message:
Merge with Oct2010 branch. diffs (267 lines): diff -r 0d4e5d27cb15 -r a082f4406a38 testing/src/Mdiff.c --- a/testing/src/Mdiff.c Fri Oct 08 10:22:45 2010 +0200 +++ b/testing/src/Mdiff.c Fri Oct 08 11:30:21 2010 +0200 @@ -38,9 +38,10 @@ static void showUsage(char *name) { - printf("Usage: %s [-I<exp>] [-C<num>] [-A<num>] [-t<text>] [-r<rev>] <oldfile> <newfile> [<outfile>]\n", name); + printf("Usage: %s [-I<exp>] [-F<exp>] [-C<num>] [-A<num>] [-t<text>] [-r<rev>] <oldfile> <newfile> [<outfile>]\n", name); printf("\n"); printf(" -I<exp> : ignore lines matching <exp> during diff (optional, default: -I'^#')\n"); + printf(" -F<exp> : show the most recent line matching <exp>\n"); printf(" -C<num> : use <num> lines of context during diff (optional, default: -C1)\n"); printf(" -A<num> : accuracy for diff: 0=lines, 1=words, 2=chars (optional, default: -A1)\n"); printf(" -d : change the algorithm to perhaps find a smaller set of changes;\n"); @@ -59,10 +60,10 @@ char EMPTY[] = ""; char DEFAULT[] = "-I'^#'"; char ignoreWHITE[] = " -b -B"; - char *old_fn, *new_fn, *html_fn, *caption = EMPTY, *revision = EMPTY, *ignoreEXP = DEFAULT, *ignore; + char *old_fn, *new_fn, *html_fn, *caption = EMPTY, *revision = EMPTY, *ignoreEXP = DEFAULT, *ignore, *function; int LWC = 1, context = 1, option, mindiff = 0, quiet = 0; - while ((option = getopt(argc, argv, "hdqA:C:I:t:r:")) != EOF) + while ((option = getopt(argc, argv, "hdqA:C:I:F:t:r:")) != EOF) switch (option) { case 'd': mindiff = 1; @@ -86,6 +87,18 @@ strcat(ignoreEXP, "'"); #endif break; + case 'F': + function = malloc(strlen(optarg) + 6); +#ifdef NATIVE_WIN32 + strcpy(function, "-F"); +#else + strcpy(function, "'-F"); +#endif + strcat(function, optarg); +#ifndef NATIVE_WIN32 + strcat(function, "'"); +#endif + break; case 't': caption = optarg; break; @@ -110,9 +123,9 @@ new_fn = ((argc > (++optind)) ? argv[optind] : "-"); html_fn = ((argc > (++optind)) ? argv[optind] : "-"); - TRACE(fprintf(STDERR, "%s %s -A %i -C %i %s -t %s -r %s %s %s %s\n", argv[0], mindiff ? "-d" : "", LWC, context, ignore, caption, revision, old_fn, new_fn, html_fn)); + TRACE(fprintf(STDERR, "%s %s -A %i -C %i %s %s -t %s -r %s %s %s %s\n", argv[0], mindiff ? "-d" : "", LWC, context, ignore, function, caption, revision, old_fn, new_fn, html_fn)); - switch (oldnew2html(mindiff, LWC, context, ignore, old_fn, new_fn, html_fn, caption, revision)) { + switch (oldnew2html(mindiff, LWC, context, ignore, function, old_fn, new_fn, html_fn, caption, revision)) { case 0: if (quiet == 0) fprintf(STDERR, "%s and %s are equal.\n", old_fn, new_fn); diff -r 0d4e5d27cb15 -r a082f4406a38 testing/src/Mtest.py.in --- a/testing/src/Mtest.py.in Fri Oct 08 10:22:45 2010 +0200 +++ b/testing/src/Mtest.py.in Fri Oct 08 11:30:21 2010 +0200 @@ -1972,7 +1972,7 @@ cmd.append('-d') if quiet: cmd.append('-q') - proc = subprocess.Popen(cmd + ['-I%s' % par['IGNORE'], '-C%s' % par['CONTEXT'], '-A%d' % ACCURACYout, '-r%s' % REVe, '%s%s.FILTERED' % (TST, STABLEout), '%s.test.out.FILTERED' % TST, '%s.out.diff.html' % TST]) + proc = subprocess.Popen(cmd + ['-F^#', '-I%s' % par['IGNORE'], '-C%s' % par['CONTEXT'], '-A%d' % ACCURACYout, '-r%s' % REVe, '%s%s.FILTERED' % (TST, STABLEout), '%s.test.out.FILTERED' % TST, '%s.out.diff.html' % TST]) proc.killed = False t = Timer(float(par['TIMEOUT']), killProc, args = [proc]) try: @@ -1989,7 +1989,7 @@ cmd = 'diff' if ACCURACYout >= 0: cmd += ' -d' - os.system('%s -Bb -I"%s" -U%s "%s%s.FILTERED" "%s.test.out.FILTERED"' % (cmd, par['IGNORE'], par['CONTEXT'], TST, STABLEout, TST)) + os.system('%s -Bb -F"^#" -I"%s" -U%s "%s%s.FILTERED" "%s.test.out.FILTERED"' % (cmd, par['IGNORE'], par['CONTEXT'], TST, STABLEout, TST)) #TODO: #timedout = 1 @@ -2025,15 +2025,15 @@ MDIFF = MDIFF0 ACCURACYerr = 0 if not quiet: - timedout = os.system('%s -I"%s" -C%s -A%d -r"%s" "%s%s.FILTERED" "%s.test.err.FILTERED" "%s.err.diff.html"' % (MDIFF, par['IGNORE'], par['CONTEXT'], ACCURACYerr, REVe, TST, STABLEerr, TST, TST)) + timedout = os.system('%s -F"^#" -I"%s" -C%s -A%d -r"%s" "%s%s.FILTERED" "%s.test.err.FILTERED" "%s.err.diff.html"' % (MDIFF, par['IGNORE'], par['CONTEXT'], ACCURACYerr, REVe, TST, STABLEerr, TST, TST)) else: - timedout = os.system('%s -q -I"%s" -C%s -A%d -r"%s" "%s%s.FILTERED" "%s.test.err.FILTERED" "%s.err.diff.html"' % (MDIFF, par['IGNORE'], par['CONTEXT'], ACCURACYerr, REVe, TST, STABLEerr, TST, TST)) + timedout = os.system('%s -q -F"^#" -I"%s" -C%s -A%d -r"%s" "%s%s.FILTERED" "%s.test.err.FILTERED" "%s.err.diff.html"' % (MDIFF, par['IGNORE'], par['CONTEXT'], ACCURACYerr, REVe, TST, STABLEerr, TST, TST)) ACCURACYerr = ACCURACYerr - 1 if env.get('ECHO_DIFF'): cmd = 'diff' if ACCURACYerr >= 0: cmd += ' -d' - os.system('%s -Bb -I"%s" -U%s "%s%s.FILTERED" "%s.test.err.FILTERED"' % (cmd, par['IGNORE'], par['CONTEXT'], TST, STABLEerr, TST)) + os.system('%s -Bb -F"^#" -I"%s" -U%s "%s%s.FILTERED" "%s.test.err.FILTERED"' % (cmd, par['IGNORE'], par['CONTEXT'], TST, STABLEerr, TST)) FailedOut, FailedErr, elem = AddTstToHtmlIndex(env, TST, STABLEout, STABLEerr, EXT, max(sockerr, timeout, recursion, killed, segfaulted)) diff -r 0d4e5d27cb15 -r a082f4406a38 testing/src/difflib.c --- a/testing/src/difflib.c Fri Oct 08 10:22:45 2010 +0200 +++ b/testing/src/difflib.c Fri Oct 08 11:30:21 2010 +0200 @@ -132,14 +132,14 @@ FILE * -oldnew2u_diff(int mindiff, int context, char *ignore, char *old_fn, char *new_fn) +oldnew2u_diff(int mindiff, int context, char *ignore, char *function, char *old_fn, char *new_fn) { char command[CMDLEN]; char *_d = mindiff ? "-d" : ""; - TRACE(fprintf(STDERR, "oldnew2u_diff(%i,%i,%s,%s,%s)\n", mindiff, context, ignore, old_fn, new_fn)); + TRACE(fprintf(STDERR, "oldnew2u_diff(%i,%i,%s,%s,%s,%s)\n", mindiff, context, ignore, function, old_fn, new_fn)); - sprintf(command, "%s %s -a %s -U%d %s %s", DIFF, ignore, _d, context, old_fn, new_fn); + sprintf(command, "%s %s %s -a %s -U%d %s %s", DIFF, ignore, function, _d, context, old_fn, new_fn); return popen(command, "r"); } @@ -372,14 +372,14 @@ int -oldnew2l_diff(int mindiff, int context, char *ignore, char *old_fn, char *new_fn, char *l_diff_fn) +oldnew2l_diff(int mindiff, int context, char *ignore, char *function, char *old_fn, char *new_fn, char *l_diff_fn) { FILE *u_diff_fp; int rtrn = 0; - TRACE(fprintf(STDERR, "oldnew2l_diff(%i,%i,%s,%s,%s,%s)\n", mindiff, context, ignore, old_fn, new_fn, l_diff_fn)); + TRACE(fprintf(STDERR, "oldnew2l_diff(%i,%i,%s,%s,%s,%s,%s)\n", mindiff, context, ignore, function, old_fn, new_fn, l_diff_fn)); - if ((u_diff_fp = oldnew2u_diff(mindiff, context, ignore, old_fn, new_fn)) == NULL) { + if ((u_diff_fp = oldnew2u_diff(mindiff, context, ignore, function, old_fn, new_fn)) == NULL) { ERRHNDL(0, "oldnew2u_diff returns 0 in oldnew2l_diff", "", 1); } @@ -392,16 +392,16 @@ int -oldnew2w_diff(int mindiff, int context, char *ignore, char *old_fn, char *new_fn, char *w_diff_fn) +oldnew2w_diff(int mindiff, int context, char *ignore, char *function, char *old_fn, char *new_fn, char *w_diff_fn) { char l_diff_fn[CMDLEN]; int rtrn = 0; - TRACE(fprintf(STDERR, "oldnew2w_diff(%i,%i,%s,%s,%s,%s)\n", mindiff, context, ignore, old_fn, new_fn, w_diff_fn)); + TRACE(fprintf(STDERR, "oldnew2w_diff(%i,%i,%s,%s,%s,%s,%s)\n", mindiff, context, ignore, function, old_fn, new_fn, w_diff_fn)); sprintf(l_diff_fn, "%s%c.difflib-%ld-oldnew2w_diff-l_diff", tmpdir(), DIR_SEP, (long) getpid()); - if (!oldnew2l_diff(mindiff, context, ignore, old_fn, new_fn, l_diff_fn)) { + if (!oldnew2l_diff(mindiff, context, ignore, function, old_fn, new_fn, l_diff_fn)) { UNLINK(l_diff_fn); ERRHNDL(0, "oldnew2l_diff returns 0 in oldnew2w_diff", "", 1); } @@ -416,16 +416,16 @@ int -oldnew2c_diff(int mindiff, int context, char *ignore, char *old_fn, char *new_fn, char *c_diff_fn) +oldnew2c_diff(int mindiff, int context, char *ignore, char *function, char *old_fn, char *new_fn, char *c_diff_fn) { char w_diff_fn[CMDLEN]; int rtrn = 0; - TRACE(fprintf(STDERR, "oldnew2c_diff(%i,%i,%s,%s,%s,%s)\n", mindiff, context, ignore, old_fn, new_fn, c_diff_fn)); + TRACE(fprintf(STDERR, "oldnew2c_diff(%i,%i,%s,%s,%s,%s,%s)\n", mindiff, context, ignore, function, old_fn, new_fn, c_diff_fn)); sprintf(w_diff_fn, "%s%c.difflib-%ld-oldnew2c_diff-w_diff", tmpdir(), DIR_SEP, (long) getpid()); - if (!oldnew2w_diff(mindiff, context, ignore, old_fn, new_fn, w_diff_fn)) { + if (!oldnew2w_diff(mindiff, context, ignore, function, old_fn, new_fn, w_diff_fn)) { UNLINK(w_diff_fn); ERRHNDL(0, "oldnew2w_diff returns 0 in oldnew2c_diff", "", 1); } @@ -440,17 +440,17 @@ int -oldnew2lwc_diff(int mindiff, int LWC, int context, char *ignore, char *old_fn, char *new_fn, char *lwc_diff_fn) +oldnew2lwc_diff(int mindiff, int LWC, int context, char *ignore, char *function, char *old_fn, char *new_fn, char *lwc_diff_fn) { - TRACE(fprintf(STDERR, "oldnew2lwc_diff(%i,%i,%i,%s,%s,%s,%s)\n", mindiff, LWC, context, ignore, old_fn, new_fn, lwc_diff_fn)); + TRACE(fprintf(STDERR, "oldnew2lwc_diff(%i,%i,%i,%s,%s,%s,%s,%s)\n", mindiff, LWC, context, ignore, function, old_fn, new_fn, lwc_diff_fn)); switch (LWC) { case 0: - return oldnew2l_diff(mindiff, context, ignore, old_fn, new_fn, lwc_diff_fn); + return oldnew2l_diff(mindiff, context, ignore, function, old_fn, new_fn, lwc_diff_fn); case 1: - return oldnew2w_diff(mindiff, context, ignore, old_fn, new_fn, lwc_diff_fn); + return oldnew2w_diff(mindiff, context, ignore, function, old_fn, new_fn, lwc_diff_fn); case 2: - return oldnew2c_diff(mindiff, context, ignore, old_fn, new_fn, lwc_diff_fn); + return oldnew2c_diff(mindiff, context, ignore, function, old_fn, new_fn, lwc_diff_fn); default: ErrXit("oldnew2lwc_diff called with wrong LWC", "", 1); } @@ -573,12 +573,17 @@ fprintf(html_fp, "<td align='center'>...</td>"); fprintf(html_fp, "<td align='center'>...</td></tr></tbody>\n"); } + for (i = 0; i < 3 && ok; i++) + ok = strchr(ok+1, '@'); + if (ok && ok[1] == ' ') + fprintf(html_fp, "<td colspan='7' align='center'>%s</td>\n", ok + 2); for (i = 0; i < 5; i++) clr[i] = 0; orn = nrn = 0; newline_ = 1; newline = 1; sprintf(c, " "); + ok = line; while (ok && (ok = fgets(line, BUFLEN, lwc_diff_fp)) && strchr(" -+", line[0])) { if (line[1] != '\3') { size_t sl = strlen(line) - 1; @@ -842,16 +847,16 @@ int -oldnew2html(int mindiff, int LWC, int context, char *ignore, char *old_fn, char *new_fn, char *html_fn, char *caption, char *revision) +oldnew2html(int mindiff, int LWC, int context, char *ignore, char *function, char *old_fn, char *new_fn, char *html_fn, char *caption, char *revision) { char lwc_diff_fn[CMDLEN]; int rtrn; - TRACE(fprintf(STDERR, "oldnew2html(%i,%i,%i,%s,%s,%s,%s,%s,%s)\n", mindiff, LWC, context, ignore, old_fn, new_fn, html_fn, caption, revision)); + TRACE(fprintf(STDERR, "oldnew2html(%i,%i,%i,%s,%s,%s,%s,%s,%s,%s)\n", mindiff, LWC, context, ignore, function, old_fn, new_fn, html_fn, caption, revision)); sprintf(lwc_diff_fn, "%s%c.difflib-%ld-oldnew2html-lwc_diff", tmpdir(), DIR_SEP, (long) getpid()); - if (!oldnew2lwc_diff(mindiff, LWC, context, ignore, old_fn, new_fn, lwc_diff_fn)) + if (!oldnew2lwc_diff(mindiff, LWC, context, ignore, function, old_fn, new_fn, lwc_diff_fn)) /* { UNLINK(lwc_diff_fn); ERRHNDL(0,"oldnew2lwc_diff returns 0 in oldnew2html","",1); } */ fclose(Wfopen(lwc_diff_fn)); diff -r 0d4e5d27cb15 -r a082f4406a38 testing/src/difflib.h --- a/testing/src/difflib.h Fri Oct 08 10:22:45 2010 +0200 +++ b/testing/src/difflib.h Fri Oct 08 11:30:21 2010 +0200 @@ -33,18 +33,18 @@ #endif -FILE *oldnew2u_diff(int mindiff, int context, char *ignore, char *old_fn, char *new_fn); -int oldnew2l_diff(int mindiff, int context, char *ignore, char *old_fn, char *new_fn, char *l_diff_fn); -int oldnew2w_diff(int mindiff, int context, char *ignore, char *old_fn, char *new_fn, char *w_diff_fn); -int oldnew2c_diff(int mindiff, int context, char *ignore, char *old_fn, char *new_fn, char *c_diff_fn); -int oldnew2lwc_diff(int mindiff, int LWC, int context, char *ignore, char *old_fn, char *new_fn, char *lwc_diff_fn); +FILE *oldnew2u_diff(int mindiff, int context, char *ignore, char *function, char *old_fn, char *new_fn); +int oldnew2l_diff(int mindiff, int context, char *ignore, char *function, char *old_fn, char *new_fn, char *l_diff_fn); +int oldnew2w_diff(int mindiff, int context, char *ignore, char *function, char *old_fn, char *new_fn, char *w_diff_fn); +int oldnew2c_diff(int mindiff, int context, char *ignore, char *function, char *old_fn, char *new_fn, char *c_diff_fn); +int oldnew2lwc_diff(int mindiff, int LWC, int context, char *ignore, char *function, char *old_fn, char *new_fn, char *lwc_diff_fn); int u_diff2l_diff(FILE *u_diff_fp, char *l_diff_fn); int l_diff2w_diff(int mindiff, char *l_diff_fn, char *w_diff_fn); int w_diff2c_diff(int mindiff, char *w_diff_fn, char *c_diff_fn); -int oldnew2html(int mindiff, int LWC, int context, char *ignore, char *old_fn, char *new_fn, char *html_fn, char *caption, char *revision); +int oldnew2html(int mindiff, int LWC, int context, char *ignore, char *function, char *old_fn, char *new_fn, char *html_fn, char *caption, char *revision); int lwc_diff2html(char *old_fn, char *new_fn, char *lwc_diff_fn, char *html_fn, char *caption, char *revision); #endif /* DIFFLIB_H */ _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list