Date: Mon, 09 Jul 2012 20:14:06 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r239198 - in soc2012/jhagewood/sdiff: . sdiff Message-ID: <20120709201406.A1B1F106568B@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jhagewood Date: Mon Jul 9 20:14:06 2012 New Revision: 239198 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=239198 Log: Modified: soc2012/jhagewood/sdiff/TODO soc2012/jhagewood/sdiff/hagewood-sdiff.patch soc2012/jhagewood/sdiff/sdiff/sdiff.c Modified: soc2012/jhagewood/sdiff/TODO ============================================================================== --- soc2012/jhagewood/sdiff/TODO Mon Jul 9 19:27:48 2012 (r239197) +++ soc2012/jhagewood/sdiff/TODO Mon Jul 9 20:14:06 2012 (r239198) @@ -1,4 +1,4 @@ -Combine diff-spec args and pipe to diff INCOMPLETE +Combine diff-spec args and pipe to diff COMPLETE Fixed 'W' Test script COMPLETE Adapt code to FreeBSD style guidelines INCOMPLETE Fix --width output indention COMPLETE @@ -6,9 +6,10 @@ Add more information to man file. COMPLETE Fix sdiff to work with binary data INCOMPLETE - NOTES: +- In diff, 'w' is used for --ignore-all-spaces instead of 'W'. When 'W' is passed to sdiff, it must be passed to diff as 'w'. + - BUG: Right side of output is 2 spaces further than GNU sdiff's output. -FIX: In println(), change column width to width-1, take out extra space when it prints 'div' on no right column. Modified: soc2012/jhagewood/sdiff/hagewood-sdiff.patch ============================================================================== --- soc2012/jhagewood/sdiff/hagewood-sdiff.patch Mon Jul 9 19:27:48 2012 (r239197) +++ soc2012/jhagewood/sdiff/hagewood-sdiff.patch Mon Jul 9 20:14:06 2012 (r239198) @@ -112,7 +112,7 @@ + diff -rupN jhagewood/sdiff/sdiff-orig/sdiff.c jhagewood/sdiff/sdiff/sdiff.c --- jhagewood/sdiff/sdiff-orig/sdiff.c 2012-07-07 19:37:22.000000000 -0400 -+++ jhagewood/sdiff/sdiff/sdiff.c 2012-07-09 19:53:05.000000000 -0400 ++++ jhagewood/sdiff/sdiff/sdiff.c 2012-07-09 20:09:56.000000000 -0400 @@ -5,6 +5,14 @@ * Public domain. */ @@ -231,21 +231,28 @@ /* combine no-arg single switches */ case 'a': case 'B': -@@ -261,11 +290,11 @@ main(int argc, char **argv) +@@ -261,11 +290,17 @@ main(int argc, char **argv) case 'i': case 't': case 'H': + case 'W': for(popt = longopts; ch != popt->val && popt->name != NULL; popt++); - diffargv[1] = realloc( diffargv[1], sizeof(char) * strlen(diffargv[1]) + 2 ); +- sprintf(diffargv[1], "%s%c", diffargv[1], ch); + diffargv[1] = realloc(diffargv[1], sizeof(char) * strlen(diffargv[1]) + 2); - sprintf(diffargv[1], "%s%c", diffargv[1], ch); ++ /* ++ * In diff, the 'W' option is 'w' and the 'w' is 'W'. ++ */ ++ if (ch == 'W') ++ sprintf(diffargv[1], "%sw", diffargv[1]); ++ else ++ sprintf(diffargv[1], "%s%c", diffargv[1], ch); break; - case DIFFPROG_OPT: diffargv[0] = diffprog = optarg; break; -@@ -289,26 +318,23 @@ main(int argc, char **argv) +@@ -289,26 +324,23 @@ main(int argc, char **argv) if (errstr) errx(2, "width is %s: %s", errstr, optarg); break; @@ -277,7 +284,7 @@ /* no single switches were used */ if( strcmp( diffargv[1], "-" ) == 0 ) { -@@ -362,19 +388,19 @@ main(int argc, char **argv) +@@ -362,19 +394,19 @@ main(int argc, char **argv) /* Add NULL to end of array to indicate end of array. */ diffargv[diffargc++] = NULL; @@ -302,7 +309,7 @@ case 0: /* child */ /* We don't read from the pipe. */ -@@ -383,7 +409,6 @@ main(int argc, char **argv) +@@ -383,7 +415,6 @@ main(int argc, char **argv) err(2, "child could not duplicate descriptor"); /* Free unused descriptor. */ close(fd[1]); @@ -310,7 +317,7 @@ execvp(diffprog, diffargv); err(2, "could not execute diff: %s", diffprog); break; -@@ -461,6 +486,7 @@ main(int argc, char **argv) +@@ -461,6 +492,7 @@ main(int argc, char **argv) static void printcol(const char *s, size_t *col, const size_t col_max) { @@ -318,7 +325,7 @@ for (; *s && *col < col_max; ++s) { size_t new_col; -@@ -484,11 +510,9 @@ printcol(const char *s, size_t *col, con +@@ -484,11 +516,9 @@ printcol(const char *s, size_t *col, con return; *col = new_col; break; @@ -330,7 +337,7 @@ putchar(*s); } } -@@ -527,30 +551,24 @@ prompt(const char *s1, const char *s2) +@@ -527,30 +557,24 @@ prompt(const char *s1, const char *s2) /* Choose left column as-is. */ if (s1 != NULL) fprintf(outfp, "%s\n", s1); @@ -363,7 +370,7 @@ default: /* Interactive usage help. */ USAGE: -@@ -570,7 +588,7 @@ PROMPT: +@@ -570,7 +594,7 @@ PROMPT: * If there was no error, we received an EOF from stdin, so we * should quit. */ @@ -372,7 +379,7 @@ fclose(outfp); exit(0); } -@@ -1103,24 +1121,22 @@ printd(FILE *file1, size_t file1end) +@@ -1103,24 +1127,22 @@ printd(FILE *file1, size_t file1end) static void int_usage(void) { Modified: soc2012/jhagewood/sdiff/sdiff/sdiff.c ============================================================================== --- soc2012/jhagewood/sdiff/sdiff/sdiff.c Mon Jul 9 19:27:48 2012 (r239197) +++ soc2012/jhagewood/sdiff/sdiff/sdiff.c Mon Jul 9 20:14:06 2012 (r239198) @@ -293,7 +293,13 @@ case 'W': for(popt = longopts; ch != popt->val && popt->name != NULL; popt++); diffargv[1] = realloc(diffargv[1], sizeof(char) * strlen(diffargv[1]) + 2); - sprintf(diffargv[1], "%s%c", diffargv[1], ch); + /* + * In diff, the 'W' option is 'w' and the 'w' is 'W'. + */ + if (ch == 'W') + sprintf(diffargv[1], "%sw", diffargv[1]); + else + sprintf(diffargv[1], "%s%c", diffargv[1], ch); break; case DIFFPROG_OPT: diffargv[0] = diffprog = optarg;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120709201406.A1B1F106568B>