Date: Fri, 06 Jul 2012 18:09:42 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r239053 - in soc2012/jhagewood/sdiff: . sdiff Message-ID: <20120706180942.74C421065672@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jhagewood Date: Fri Jul 6 18:09:42 2012 New Revision: 239053 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=239053 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 Fri Jul 6 17:42:34 2012 (r239052) +++ soc2012/jhagewood/sdiff/TODO Fri Jul 6 18:09:42 2012 (r239053) @@ -1,7 +1,7 @@ Combine diff-spec args and pipe to diff INCOMPLETE Test script COMPLETE Adapt code to FreeBSD style guidelines INCOMPLETE -Fix --width output indention IN PROGRESS +Fix --width output indention COMPLETE --help COMPLETE Add more information to man file. INCOMPLETE @@ -11,3 +11,16 @@ -FIX: In println(), change column width to width-1, take out extra space when it prints 'div' on no right column. +- diff-specific args: + + -a Treat file1 and file2 as text files. + -b Ignore trailing blank spaces. + -d Minimize diff size. + -I regexp + Ignore line changes matching regexp. All lines in the change + must match regexp for the change to be ignored. + NOTE: Missing ')' on tests. + + -i Do a case-insensitive comparison. + -t Expand tabs to spaces. + -W Ignore all spaces (the -w flag is passed to diff(1)). Modified: soc2012/jhagewood/sdiff/hagewood-sdiff.patch ============================================================================== --- soc2012/jhagewood/sdiff/hagewood-sdiff.patch Fri Jul 6 17:42:34 2012 (r239052) +++ soc2012/jhagewood/sdiff/hagewood-sdiff.patch Fri Jul 6 18:09:42 2012 (r239053) @@ -12,16 +12,7 @@ .Sh NAME diff -rupN jhagewood/sdiff/sdiff-orig/sdiff.c jhagewood/sdiff/sdiff/sdiff.c --- jhagewood/sdiff/sdiff-orig/sdiff.c 2012-07-02 15:05:58.000000000 -0400 -+++ jhagewood/sdiff/sdiff/sdiff.c 2012-07-05 19:48:01.000000000 -0400 -@@ -34,7 +34,7 @@ - #include "common.h" - #include "extern.h" - --#define WIDTH 130 -+#define WIDTH 128 - /* - * Each column must be at least one character wide, plus three - * characters between the columns (space, [<|>], space). ++++ jhagewood/sdiff/sdiff/sdiff.c 2012-07-06 17:59:33.000000000 -0400 @@ -101,7 +101,8 @@ enum { HLINES_OPT, LFILES_OPT, @@ -32,8 +23,22 @@ /* pid from the diff parent (if applicable) */ DIFF_PID, -@@ -137,6 +138,25 @@ static struct option longopts[] = { +@@ -113,7 +114,7 @@ static struct option longopts[] = { + { "left-column", no_argument, NULL, LEFTC_OPT }, + { "suppress-common-lines", no_argument, NULL, 's' }, + { "width", required_argument, NULL, 'w' }, +- { "ignore-all-space", no_argument, NULL, 'W' }, ++ + { "output", required_argument, NULL, 'o' }, + { "diff-program", required_argument, NULL, DIFFPROG_OPT }, +@@ -134,9 +135,29 @@ static struct option longopts[] = { + { "ignore-case", no_argument, NULL, 'i' }, + { "expand-tabs", no_argument, NULL, 't' }, + { "speed-large-files", no_argument, NULL, 'H' }, +- ++ { "ignore-all-space", no_argument, NULL, 'W' }, ++ { NULL, 0, NULL, '\0'} }; + @@ -58,7 +63,25 @@ /* * Create temporary file if source_file is not a regular file. * Returns temporary file name if one was malloced, NULL if unnecessary. -@@ -289,17 +309,17 @@ main(int argc, char **argv) +@@ -247,9 +268,6 @@ main(int argc, char **argv) + case STRIPCR_OPT: + case TSIZE_OPT: + case 'S': +- case 'W': +- for(popt = longopts; ch != popt->val && popt->name != NULL; popt++); +- asprintf(&diffargv[diffargc++], "%s", popt->name ); + break; + + /* combine no-arg single switches */ +@@ -261,6 +279,7 @@ 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); +@@ -289,17 +308,17 @@ main(int argc, char **argv) if (errstr) errx(2, "width is %s: %s", errstr, optarg); break; @@ -80,7 +103,7 @@ default: usage(); break; -@@ -363,7 +383,7 @@ main(int argc, char **argv) +@@ -363,11 +382,11 @@ main(int argc, char **argv) diffargv[diffargc++] = NULL; /* Subtract column divider and divide by two. */ @@ -89,7 +112,12 @@ /* Make sure line_width can fit in size_t. */ if (width > (SIZE_MAX - 3) / 2) errx(2, "width is too large: %zu", width); -@@ -383,7 +403,6 @@ main(int argc, char **argv) +- line_width = width * 2 + 3; ++ line_width = ((width + 3) * 2); + + if( ppid == -1 ) + { +@@ -383,7 +402,6 @@ main(int argc, char **argv) err(2, "child could not duplicate descriptor"); /* Free unused descriptor. */ close(fd[1]); @@ -97,7 +125,7 @@ execvp(diffprog, diffargv); err(2, "could not execute diff: %s", diffprog); break; -@@ -1117,10 +1136,8 @@ int_usage(void) +@@ -1117,10 +1135,8 @@ int_usage(void) static void usage(void) { Modified: soc2012/jhagewood/sdiff/sdiff/sdiff.c ============================================================================== --- soc2012/jhagewood/sdiff/sdiff/sdiff.c Fri Jul 6 17:42:34 2012 (r239052) +++ soc2012/jhagewood/sdiff/sdiff/sdiff.c Fri Jul 6 18:09:42 2012 (r239053) @@ -34,7 +34,7 @@ #include "common.h" #include "extern.h" -#define WIDTH 128 +#define WIDTH 130 /* * Each column must be at least one character wide, plus three * characters between the columns (space, [<|>], space). @@ -114,7 +114,7 @@ { "left-column", no_argument, NULL, LEFTC_OPT }, { "suppress-common-lines", no_argument, NULL, 's' }, { "width", required_argument, NULL, 'w' }, - { "ignore-all-space", no_argument, NULL, 'W' }, + { "output", required_argument, NULL, 'o' }, { "diff-program", required_argument, NULL, DIFFPROG_OPT }, @@ -135,7 +135,8 @@ { "ignore-case", no_argument, NULL, 'i' }, { "expand-tabs", no_argument, NULL, 't' }, { "speed-large-files", no_argument, NULL, 'H' }, - + { "ignore-all-space", no_argument, NULL, 'W' }, + { NULL, 0, NULL, '\0'} }; @@ -267,9 +268,6 @@ case STRIPCR_OPT: case TSIZE_OPT: case 'S': - case 'W': - for(popt = longopts; ch != popt->val && popt->name != NULL; popt++); - asprintf(&diffargv[diffargc++], "%s", popt->name ); break; /* combine no-arg single switches */ @@ -281,6 +279,7 @@ 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); @@ -387,7 +386,7 @@ /* Make sure line_width can fit in size_t. */ if (width > (SIZE_MAX - 3) / 2) errx(2, "width is too large: %zu", width); - line_width = width * 2 + 3; + line_width = ((width + 3) * 2); if( ppid == -1 ) {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120706180942.74C421065672>