socsvn commit: r239198 - in soc2012/jhagewood/sdiff: . sdiff
jhagewood at FreeBSD.org
jhagewood at FreeBSD.org
Mon Jul 9 20:14:08 UTC 2012
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;
More information about the svn-soc-all
mailing list