socsvn commit: r239093 - in soc2012/jhagewood: diff diff3 mdocml
sdiff sdiff/sdiff
jhagewood at FreeBSD.org
jhagewood at FreeBSD.org
Sat Jul 7 19:50:07 UTC 2012
Author: jhagewood
Date: Sat Jul 7 19:50:04 2012
New Revision: 239093
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=239093
Log:
Modified:
soc2012/jhagewood/diff/hagewood-diff.patch
soc2012/jhagewood/diff3/hagewood-diff3.patch
soc2012/jhagewood/mdocml/hagewood-mdocml-ns.patch
soc2012/jhagewood/sdiff/hagewood-sdiff.patch
soc2012/jhagewood/sdiff/sdiff/sdiff.c
Modified: soc2012/jhagewood/diff/hagewood-diff.patch
==============================================================================
--- soc2012/jhagewood/diff/hagewood-diff.patch Sat Jul 7 19:34:52 2012 (r239092)
+++ soc2012/jhagewood/diff/hagewood-diff.patch Sat Jul 7 19:50:04 2012 (r239093)
@@ -1,1589 +1,6 @@
-diff -rupN jhagewood/diff/diff-orig/.svn/all-wcprops jhagewood/diff/diff/.svn/all-wcprops
---- jhagewood/diff/diff-orig/.svn/all-wcprops 2012-07-07 14:53:51.000000000 -0400
-+++ jhagewood/diff/diff/.svn/all-wcprops 2012-07-07 14:53:51.000000000 -0400
-@@ -1,59 +1,59 @@
- K 25
- svn:wc:ra_dav:version-url
--V 56
--/socsvn/!svn/ver/238807/soc2012/jhagewood/diff/diff-orig
-+V 51
-+/socsvn/!svn/ver/239048/soc2012/jhagewood/diff/diff
- END
- diff.1.gz
- K 25
- svn:wc:ra_dav:version-url
--V 66
--/socsvn/!svn/ver/238807/soc2012/jhagewood/diff/diff-orig/diff.1.gz
-+V 61
-+/socsvn/!svn/ver/238807/soc2012/jhagewood/diff/diff/diff.1.gz
- END
- pathnames.h
- K 25
- svn:wc:ra_dav:version-url
--V 68
--/socsvn/!svn/ver/238807/soc2012/jhagewood/diff/diff-orig/pathnames.h
-+V 63
-+/socsvn/!svn/ver/238807/soc2012/jhagewood/diff/diff/pathnames.h
- END
- diff.1
- K 25
- svn:wc:ra_dav:version-url
--V 63
--/socsvn/!svn/ver/238807/soc2012/jhagewood/diff/diff-orig/diff.1
-+V 58
-+/socsvn/!svn/ver/238807/soc2012/jhagewood/diff/diff/diff.1
- END
- diffreg.c
- K 25
- svn:wc:ra_dav:version-url
--V 66
--/socsvn/!svn/ver/238807/soc2012/jhagewood/diff/diff-orig/diffreg.c
-+V 61
-+/socsvn/!svn/ver/239048/soc2012/jhagewood/diff/diff/diffreg.c
- END
- diff
- K 25
- svn:wc:ra_dav:version-url
--V 61
--/socsvn/!svn/ver/238807/soc2012/jhagewood/diff/diff-orig/diff
-+V 56
-+/socsvn/!svn/ver/238807/soc2012/jhagewood/diff/diff/diff
- END
- diffdir.c
- K 25
- svn:wc:ra_dav:version-url
--V 66
--/socsvn/!svn/ver/238807/soc2012/jhagewood/diff/diff-orig/diffdir.c
-+V 61
-+/socsvn/!svn/ver/238807/soc2012/jhagewood/diff/diff/diffdir.c
- END
- diff.c
- K 25
- svn:wc:ra_dav:version-url
--V 63
--/socsvn/!svn/ver/238807/soc2012/jhagewood/diff/diff-orig/diff.c
-+V 58
-+/socsvn/!svn/ver/239007/soc2012/jhagewood/diff/diff/diff.c
- END
- Makefile
- K 25
- svn:wc:ra_dav:version-url
--V 65
--/socsvn/!svn/ver/238807/soc2012/jhagewood/diff/diff-orig/Makefile
-+V 60
-+/socsvn/!svn/ver/238807/soc2012/jhagewood/diff/diff/Makefile
- END
- diff.h
- K 25
- svn:wc:ra_dav:version-url
--V 63
--/socsvn/!svn/ver/238807/soc2012/jhagewood/diff/diff-orig/diff.h
-+V 58
-+/socsvn/!svn/ver/238807/soc2012/jhagewood/diff/diff/diff.h
- END
-diff -rupN jhagewood/diff/diff-orig/.svn/entries jhagewood/diff/diff/.svn/entries
---- jhagewood/diff/diff-orig/.svn/entries 2012-07-07 14:53:51.000000000 -0400
-+++ jhagewood/diff/diff/.svn/entries 2012-07-07 14:53:51.000000000 -0400
-@@ -2,13 +2,13 @@
-
- dir
- 239088
--https://socsvn.freebsd.org/socsvn/soc2012/jhagewood/diff/diff-orig
-+https://socsvn.freebsd.org/socsvn/soc2012/jhagewood/diff/diff
- https://socsvn.freebsd.org/socsvn
-
-
-
--2012-07-02T14:59:21.494992Z
--238807
-+2012-07-06T17:31:27.428691Z
-+239048
- jhagewood
-
-
-@@ -67,7 +67,7 @@ file
-
-
- 2012-07-07T18:53:51.000000Z
--5a0333c769b4cd0b56d0183979c3c3da
-+02e0e4002578433745dc1989cde68db3
- 2012-07-02T14:59:21.494992Z
- 238807
- jhagewood
-@@ -92,7 +92,7 @@ jhagewood
-
-
-
--1173
-+1208
-
- diff.1
- file
-@@ -135,9 +135,9 @@ file
-
-
- 2012-07-07T18:53:51.000000Z
--41390d52e706fd5ff89e5139b1a3992a
--2012-07-02T14:59:21.494992Z
--238807
-+360e792dce77ba35267246e878158613
-+2012-07-06T17:31:27.428691Z
-+239048
- jhagewood
-
-
-@@ -160,7 +160,7 @@ jhagewood
-
-
-
--38935
-+40791
-
- diff
- file
-@@ -203,7 +203,7 @@ file
-
-
- 2012-07-07T18:53:51.000000Z
--28bd85291f636c13f457cda2ec9e2168
-+44a983d6f3f06103b3210dc9799dc9aa
- 2012-07-02T14:59:21.494992Z
- 238807
- jhagewood
-@@ -228,7 +228,7 @@ jhagewood
-
-
-
--8385
-+8360
-
- diff.c
- file
-@@ -237,9 +237,9 @@ file
-
-
- 2012-07-07T18:53:51.000000Z
--5c74db6e58594c5d345aa050fcda44ae
--2012-07-02T14:59:21.494992Z
--238807
-+060bb447cdcbd060f328603bc0595a90
-+2012-07-05T18:13:06.636166Z
-+239007
- jhagewood
-
-
-@@ -262,7 +262,7 @@ jhagewood
-
-
-
--14455
-+18176
-
- Makefile
- file
-@@ -305,7 +305,7 @@ file
-
-
- 2012-07-07T18:53:51.000000Z
--eab9e28aee9d963655a25372ef2f2657
-+f389a5742640cda8b39f75a4cda31197
- 2012-07-02T14:59:21.494992Z
- 238807
- jhagewood
-@@ -330,5 +330,5 @@ jhagewood
-
-
-
--3738
-+3852
-
-diff -rupN jhagewood/diff/diff-orig/.svn/text-base/diff.c.svn-base jhagewood/diff/diff/.svn/text-base/diff.c.svn-base
---- jhagewood/diff/diff-orig/.svn/text-base/diff.c.svn-base 2012-07-07 14:53:51.000000000 -0400
-+++ jhagewood/diff/diff/.svn/text-base/diff.c.svn-base 2012-07-07 14:53:51.000000000 -0400
-@@ -1,4 +1,4 @@
--/*-
-+/*
- * Copyright (c) 2003 Todd C. Miller <Todd.Miller at courtesan.com>
- *
- * Permission to use, copy, modify, and distribute this software for any
-@@ -18,15 +18,13 @@
- * Materiel Command, USAF, under agreement number F39502-99-1-0512.
- */
-
--#include <sys/cdefs.h>
--
--#ifndef lint
- #if 0
--__RCSID("$OpenBSD: diff.c,v 1.50 2007/05/29 18:24:56 ray Exp $");
--#else
--__FBSDID("$FreeBSD$");
-+#ifndef lint
-+static char sccsid[] = "@(#)diff.c 8.1 (Berkeley) 6/6/93";
- #endif
- #endif /* not lint */
-+#include <sys/cdefs.h>
-+__FBSDID("$FreeBSD$");
-
- #include <sys/param.h>
- #include <sys/stat.h>
-@@ -45,20 +43,20 @@ __FBSDID("$FreeBSD$");
- #include "diff.h"
- #include "pathnames.h"
-
--int aflag, bflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag;
--int sflag, tflag, Tflag, wflag;
--int Bflag, yflag;
--int strip_cr, tabsize=8;
--char ignore_file_case = 0;
--int format, context, status;
--char *start, *ifdefname, *diffargs, *label[2], *ignore_pats;
-+int aflag, bflag, cflag, dflag, Eflag, iflag, lflag, Nflag, Pflag, pflag, rflag;
-+int sflag, tflag, Tflag, wflag, Toflag, Fromflag;
-+int Bflag, yflag;
-+int strip_cr, suppress_cl, tabsize = 8;
-+char ignore_file_case = 0;
-+int format, context, status;
-+char *start, *ifdefname, *diffargs, *label[2], *ignore_pats, *line_format, *group_format;
- struct stat stb1, stb2;
- struct excludes *excludes_list;
- regex_t ignore_re;
-
- int flag_opts = 0;
-
--#define OPTIONS "0123456789aBbC:cdD:efhI:iL:lnNPpqrS:sTtU:uvwXy:x"
-+#define OPTIONS "0123456789aBbC:cdD:EefhI:iL:lnNPpqrS:sTtU:uvwXy:x"
-
-
- /* Options which exceed manageable alphanumeric assignments */
-@@ -69,84 +67,129 @@ enum
- OPT_STRIPCR,
- OPT_NORMAL,
- OPT_LEFTC,
-- OT_SUPCL,
-- OPT_GTYPE,
-+ OPT_SUPCL,
-+ OPT_CHGD_GF,
-+ OPT_NEW_GF,
-+ OPT_OLD_GF,
-+ OPT_UNCHGD_GF,
- OPT_LF,
- OPT_LLF,
- OPT_TSIZE,
-- OPT_UNINF,
- OPT_FFILE,
- OPT_TOFILE,
- OPT_HLINES,
- OPT_LFILES,
- OPT_HELP,
-+ OPT_NEW_LF,
-+ OPT_OLD_LF,
-+ OPT_UNCHGD_LF,
- };
-
-
- static struct option longopts[] = {
--/* XXX: UNIMPLEMENTED
-- { "normal", no_argument, NULL, OPT_NORMAL },
-- { "left-column", no_argument, NULL, OPT_LEFTC },
-- { "suppress-common-lines", no_argument, NULL, OT_SUPCL },
-- { "GTYPE-group-format", required_argument, NULL, OPT_GTYPE },
-- { "line-format", required_argument, NULL, OPT_LF },
-- { "LTYPE-line-format", required_argument, NULL, OPT_LLF },
-- { "unidirectional-new-file", no_argument, NULL, OPT_UNINF },
-- { "from-file", required_argument, NULL, OPT_FFILE },
-- { "to-file", required_argument, NULL, OPT_TOFILE },
-- { "horizon-lines", required_argument, NULL, OPT_HLINES },
-- { "speed-large-files", no_argument, NULL, OPT_LFILES }, */
-- { "tabsize", optional_argument, NULL, OPT_TSIZE },
-- { "strip-trailing-cr", no_argument, NULL, OPT_STRIPCR },
-- { "help", no_argument, NULL, OPT_HELP },
-- { "ignore-file-name-case", no_argument, NULL, OPT_IGN_FN_CASE },
-- { "no-ignore-file-name-case", no_argument, NULL, OPT_NIGN_FN_CASE },
-- { "text", no_argument, NULL, 'a' },
--/* XXX: UNIMPLEMENTED */
-- { "ignore-blank-lines", no_argument, NULL, 'B' },
-- { "ignore-space-change", no_argument, NULL, 'b' },
--/* XXX: -c is incompatible with GNU version */
-+
-+ /*
-+ * Commented-out options are unimplemented.
-+ */
-+
-+ { "brief", no_argument, NULL, 'q' },
-+ { "changed-group-format", required_argument, NULL, OPT_CHGD_GF},
- { "context", optional_argument, NULL, 'C' },
-- { "ifdef", required_argument, NULL, 'D' },
-- { "minimal", no_argument, NULL, 'd' },
--/* XXX: UNIMPLEMENTED
-- { "ignore-tab-expansion", no_argument, NULL, 'E' }, */
- { "ed", no_argument, NULL, 'e' },
--/* XXX: UNIMPLEMENTED
-- { "show-function-line", required_argument, NULL, 'F' }, */
-+ { "exclude", required_argument, NULL, 'x' },
-+ { "exclude-from", required_argument, NULL, 'X' },
-+ { "expand-tabs", no_argument, NULL, 't' },
-+ { "from-file", required_argument, NULL, OPT_FFILE },
- { "forward-ed", no_argument, NULL, 'f' },
-+ { "help", no_argument, NULL, OPT_HELP },
-+ /*{ "horizon-lines", required_argument, NULL, OPT_HLINES },*/
-+ { "ifdef", required_argument, NULL, 'D' },
-+ { "ignore-all-space", no_argument, NULL, 'W' },
-+ { "ignore-blank-lines", no_argument, NULL, 'B' },
-+ { "ignore-case", no_argument, NULL, 'i' },
-+ { "ignore-file-name-case", no_argument, NULL, OPT_IGN_FN_CASE },
- { "ignore-matching-lines", required_argument, NULL, 'I' },
-- { "ignore-case", no_argument, NULL, 'i' },
-+ { "ignore-space-change", no_argument, NULL, 'b' },
-+ { "ignore-tab-expansion", no_argument, NULL, 'E' },
-+ { "initial-tab", no_argument, NULL, 'T' },
- { "label", required_argument, NULL, 'L' },
-- { "paginate", no_argument, NULL, 'l' },
-+ { "left-column", no_argument, NULL, OPT_LEFTC },
-+ { "line-format", required_argument, NULL, OPT_LF },
-+ { "minimal", no_argument, NULL, 'd' },
- { "new-file", no_argument, NULL, 'N' },
-- { "rcs", no_argument, NULL, 'n' },
-- { "unidirectional-new-file", no_argument, NULL, 'P' },
-- { "show-c-function", no_argument, NULL, 'p' },
-- { "brief", no_argument, NULL, 'q' },
-+ { "new-line-format", required_argument, NULL, OPT_NEW_LF},
-+ { "new-group-format", required_argument, NULL, OPT_NEW_GF},
-+ { "no-ignore-file-name-case", no_argument, NULL, OPT_NIGN_FN_CASE },
-+ { "normal", no_argument, NULL, OPT_NORMAL },
-+ { "old-line-format", required_argument, NULL, OPT_OLD_LF},
-+ { "old-group-format", required_argument, NULL, OPT_OLD_GF},
-+ { "paginate", no_argument, NULL, 'l' },
- { "recursive", no_argument, NULL, 'r' },
-- { "starting-file", required_argument, NULL, 'S' },
- { "report-identical-files", no_argument, NULL, 's' },
-- { "initial-tab", no_argument, NULL, 'T' },
-- { "expand-tabs", no_argument, NULL, 't' },
--/* XXX: -u is incompatible with GNU version */
-+ { "rcs", no_argument, NULL, 'n' },
-+ { "show-c-function", no_argument, NULL, 'p' },
-+ { "show-function-line", required_argument, NULL, 'F' },
-+ { "side-by-side", no_argument, NULL, 'y' },
-+ /*{ "speed-large-files", no_argument, NULL, OPT_LFILES }, */
-+ { "starting-file", required_argument, NULL, 'S' },
-+ { "strip-trailing-cr", no_argument, NULL, OPT_STRIPCR },
-+ { "suppress-common-lines", no_argument, NULL, OPT_SUPCL },
-+ { "tabsize", optional_argument, NULL, OPT_TSIZE },
-+ { "text", no_argument, NULL, 'a' },
-+ { "to-file", required_argument, NULL, OPT_TOFILE },
-+ { "unchanged-group-format", required_argument, NULL, OPT_UNCHGD_GF},
-+ { "unchanged-line-format", required_argument, NULL, OPT_UNCHGD_LF},
-+ { "unidirectional-new-file", no_argument, NULL, 'P' },
- { "unified", optional_argument, NULL, 'U' },
- { "version", no_argument, NULL, 'v' },
--/* XXX: UNIMPLEMENTED
-- { "width", optional_argument, NULL, 'W' }, */
-- { "ignore-all-space", no_argument, NULL, 'w' },
-- { "exclude-from", required_argument, NULL, 'X' },
-- { "exclude", required_argument, NULL, 'x' },
-- { "side-by-side", no_argument, NULL, 'y' },
-+ /*{ "width", optional_argument, NULL, 'w' }, */
- { NULL, 0, NULL, '\0'}
- };
-
- static const char *help_msg[] = {
--"-a --text treat files as ASCII text",
--"-B --ignore-blank-lines Ignore blank newlines in the comparison",
--"-b --ignore-space-change Ignore all changes due to whitespace",
--"-C NUM --context=[NUM] Show NUM lines before and after change (default 3)",
--"-D --ifdef=NAME",
-+"\t-a --text treat files as ASCII text",
-+"\t-B --ignore-blank-lines Ignore blank newlines in the comparison",
-+"\t-b --ignore-space-change Ignore all changes due to whitespace",
-+"\t-C -c NUM --context=NUM Show NUM lines before and after change (default 3)",
-+"\t-D --ifdef=NAME Output merged file with `#ifdef NAME' diffs",
-+"\t-E --ignore-tab-expansion Ignore tab expansion in the comparison",
-+"\t-e --ed Output an ed script",
-+"\t-F --show-function-line=RE Show the most recent line matching RE",
-+"\t-f --forward-ed Output a forward ed script",
-+"\t-I --ignore-matching-lines=RE Ignore changes whose lines all match RE",
-+"\t-i --ignore-case Ignore case differences in file contents",
-+"\t-L --label=NAME Label file header",
-+"\t-l --paginate Paginates output through pr",
-+"\t-N --new-file Treat new files as empty",
-+"\t-n --rcs Output an RCS format diff",
-+"\t-P --unidirectional-new-file Treat absent-first files as empty",
-+"\t-p --show-c-function Show which C function each change is in",
-+"\t-q --brief report only when files differ",
-+"\t-r --recursive Recursively compare any sub-directories found",
-+"\t-S --starting-file=FILE Start with FILE when comparing directories",
-+"\t-s --report-identical-files Report when two files are the same",
-+"\t-T --initial-tab Make tabs line up by prepending a tab",
-+"\t-t --expand-tabs Expand tabs to spaces in output",
-+"\t-U -u NUM --unified=NUM Show NUM lines of unified context",
-+"\t-v --version Show diff version",
-+"\t-W --ignore-all-space Ignore all space",
-+"\t-w --width=NUM Output at most NUM (default 130) print columns",
-+"\t-X --exclude-from=FILE Start with FILE when comparing directories",
-+"\t-x --exclude=PAT Exclude files that match PAT",
-+"\t-y --side-by-side Output difference in two columns",
-+"\t--GTYPE-group-format=GFMT Format GTYPE input groups with GFMT",
-+"\t--LTYPE-line-format=LFMT Format LTYPE input lines with LFMT",
-+"\t--from-file=FILE Compare FILE to all operands",
-+"\t--to-file=FILE Compare all operands to FILE",
-+"\t--ignore-file-name-case Ignore file name case",
-+"\t--left-column Output the only the left column of common lines",
-+"\t--line-format=LFMT Format all input lines with LFMT",
-+"\t--no-ignore-file-name-case Do not ignore file name case",
-+"\t--normal Output a normal diff (default output)",
-+"\t--strip-trailing-cr Strip trailing carriage return",
-+"\t--suppress-common-lines Do not output common lines",
-+"\t--tabsize=NUM Tab stops every NUM (default 8) print columns",
-+"\t--help Output this help message",
- NULL,
- };
- char **help_strs = (char **)help_msg;
-@@ -162,14 +205,15 @@ void read_excludes_file(char *);
- int
- main(int argc, char **argv)
- {
-- char *ep, **oargv;
-- long l;
-- int ch, lastch, gotstdin, prevoptind, newarg;
-- int oargc;
--
-+ char *ep, **oargv, *optfile;
-+ long l;
-+ int ch, lastch, gotstdin, prevoptind, newarg;
-+ int oargc;
-+
- oargv = argv;
- oargc = argc;
- gotstdin = 0;
-+ optfile = "\0";
-
- lastch = '\0';
- prevoptind = 1;
-@@ -197,6 +241,7 @@ main(int argc, char **argv)
- break;
- case 'C':
- case 'c':
-+ cflag = 1;
- format = D_CONTEXT;
- if (optarg != NULL) {
- l = strtol(optarg, &ep, 10);
-@@ -213,6 +258,9 @@ main(int argc, char **argv)
- case 'd':
- dflag = 1;
- break;
-+ case 'E':
-+ Eflag = 1;
-+ break;
- case 'e':
- format = D_EDIT;
- break;
-@@ -284,7 +332,7 @@ main(int argc, char **argv)
- case 'v':
- printf("FreeBSD diff 2.8.7\n");
- exit(0);
-- case 'w':
-+ case 'W':
- wflag = 1;
- break;
- case 'X':
-@@ -296,15 +344,48 @@ main(int argc, char **argv)
- case 'y':
- yflag = 1;
- break;
-+ case OPT_FFILE:
-+ Toflag = 1;
-+ optfile = optarg;
-+ break;
-+ case OPT_TOFILE:
-+ Fromflag = 1;
-+ optfile = optarg;
-+ break;
-+ case OPT_CHGD_GF:
-+ case OPT_NEW_GF:
-+ case OPT_OLD_GF:
-+ case OPT_UNCHGD_GF:
-+ /* XXX To do: Complete --GTYPE-group-format. */
-+ format = D_GF;
-+ group_format = optarg;
-+ break;
-+ case OPT_NEW_LF:
-+ case OPT_OLD_LF:
-+ case OPT_UNCHGD_LF:
-+ case OPT_LF:
-+ /* XXX To do: Complete --line-format. */
-+ format = D_LF;
-+ line_format = optarg;
-+ break;
-+ case OPT_NORMAL:
-+ format = D_NORMAL;
-+ break;
-+ case OPT_LEFTC:
-+ /* Do nothing, passes option to sdiff. */
-+ break;
-+ case OPT_SUPCL:
-+ /* Do nothing, passes option to sdiff. */
-+ break;
- case OPT_TSIZE:
-- if (optarg != NULL) {
-- l = strtol(optarg, &ep, 10);
-- if (*ep != '\0' || l < 1 || l >= INT_MAX)
-- usage();
-- tabsize = (int)l;
-- } else
-- tabsize = 8;
-- break;
-+ if (optarg != NULL) {
-+ l = strtol(optarg, &ep, 10);
-+ if (*ep != '\0' || l < 1 || l >= INT_MAX)
-+ usage();
-+ tabsize = (int)l;
-+ } else
-+ tabsize = 8;
-+ break;
- case OPT_STRIPCR:
- strip_cr=1;
- break;
-@@ -315,11 +396,10 @@ main(int argc, char **argv)
- ignore_file_case = 0;
- break;
- case OPT_HELP:
-- for(;*help_strs;help_strs++)
-- {
-+ for (; *help_strs; help_strs++) {
- printf("%s\n", *help_strs);
- }
-- exit(2);
-+ exit(0);
- break;
- default:
- usage();
-@@ -328,20 +408,20 @@ main(int argc, char **argv)
- lastch = ch;
- newarg = optind != prevoptind;
- prevoptind = optind;
-+
- }
- argc -= optind;
- argv += optind;
--
-- if(yflag) {
-+ if (yflag) {
- /* remove y flag from args and call sdiff */
-- for(argv=oargv; argv && strcmp(*argv, "-y") != 0; argv++);
-+ for (argv = oargv; argv && strcmp(*argv, "-y") != 0 &&
-+ strcmp(*argv, "--side-by-side") != 0; argv++);
- while(argv != &oargv[oargc]){
-- *argv=*(argv+1);
-+ *argv= *(argv+1);
- argv++;
- }
- oargv[0] = _PATH_SDIFF;
- *argv= "\0";
--
- execv(_PATH_SDIFF, oargv);
- _exit(127);
- }
-@@ -380,7 +460,10 @@ main(int argc, char **argv)
- set_argstr(oargv, argv);
- if (S_ISDIR(stb1.st_mode) && S_ISDIR(stb2.st_mode)) {
- if (format == D_IFDEF)
-- errx(2, "-D option not supported with directories");
-+ if (ch == 'D')
-+ errx(2, "-D option not supported with directories");
-+ if (ch == OPT_LF)
-+ errx(2, "--line-format option not supported with directories");
- diffdir(argv[0], argv[1]);
- } else {
- if (S_ISDIR(stb1.st_mode)) {
-@@ -393,8 +476,26 @@ main(int argc, char **argv)
- if (stat(argv[1], &stb2) < 0)
- err(2, "%s", argv[1]);
- }
-- print_status(diffreg(argv[0], argv[1], 0), argv[0], argv[1],
-- NULL);
-+ /* Checks if --to-file or --from-file are specified */
-+ if (Toflag && Fromflag) {
-+ (void)fprintf(stderr, "--from-file and --to-file both specified.\n");
-+ exit(2);
-+ }
-+ if (Toflag) {
-+ print_status(diffreg(optfile, argv[0], 0), optfile, argv[0],
-+ NULL);
-+ print_status(diffreg(optfile, argv[1], 0), optfile, argv[1],
-+ NULL);
-+ }
-+ if (Fromflag) {
-+ print_status(diffreg(argv[0], optfile, 0), argv[0], optfile,
-+ NULL);
-+ print_status(diffreg(argv[1], optfile, 0), argv[1], optfile,
-+ NULL);
-+ }
-+ if (!Toflag && !Fromflag)
-+ print_status(diffreg(argv[0], argv[1], 0), argv[0], argv[1],
-+ NULL);
- }
- exit(status);
- }
-@@ -402,11 +503,10 @@ main(int argc, char **argv)
- void *
- emalloc(size_t n)
- {
-- void *p;
-+ void *p;
-
- if (n == 0)
- errx(2, NULL);
--
- if ((p = malloc(n)) == NULL)
- errx(2, NULL);
- return (p);
-@@ -415,7 +515,7 @@ emalloc(size_t n)
- void *
- erealloc(void *p, size_t n)
- {
-- void *q;
-+ void *q;
-
- if (n == 0)
- errx(2, NULL);
-@@ -431,13 +531,12 @@ erealloc(void *p, size_t n)
- int
- easprintf(char **ret, const char *fmt, ...)
- {
-- int len;
-- va_list ap;
-+ int len;
-+ va_list ap;
-
- va_start(ap, fmt);
- len = vasprintf(ret, fmt, ap);
- va_end(ap);
--
- if (len < 0 || *ret == NULL)
- errx(2, NULL);
- return (len);
-@@ -446,11 +545,12 @@ easprintf(char **ret, const char *fmt, .
- char *
- estrdup(const char *str)
- {
-- size_t len;
-- char *cp;
-+ size_t len;
-+ char *cp;
-
- len = strlen(str) + 1;
- cp = emalloc(len);
-+
- strlcpy(cp, str, len);
- return (cp);
- }
-@@ -531,6 +631,7 @@ push_ignore_pats(char *pattern)
- void
- print_only(const char *path, size_t dirlen, const char *entry)
- {
-+
- if (dirlen > 1)
- dirlen--;
- printf("Only in %.*s: %s\n", (int)dirlen, path, entry);
-@@ -539,45 +640,46 @@ print_only(const char *path, size_t dirl
- void
- print_status(int val, char *path1, char *path2, char *entry)
- {
-+
- switch (val) {
- case D_ONLY:
- print_only(path1, strlen(path1), entry);
- break;
- case D_COMMON:
- printf("Common subdirectories: %s%s and %s%s\n",
-- path1, entry ? entry : "", path2, entry ? entry : "");
-+ path1, entry ? entry : "", path2, entry ? entry : "");
- break;
- case D_BINARY:
-- printf("Binary files %s%s and %s%s differ\n",
-- path1, entry ? entry : "", path2, entry ? entry : "");
-+ printf("Files %s%s and %s%s differ\n",
-+ path1, entry ? entry : "", path2, entry ? entry : "");
- break;
- case D_DIFFER:
- if (format == D_BRIEF)
- printf("Files %s%s and %s%s differ\n",
-- path1, entry ? entry : "",
-- path2, entry ? entry : "");
-+ path1, entry ? entry : "",
-+ path2, entry ? entry : "");
- break;
- case D_SAME:
- if (sflag)
- printf("Files %s%s and %s%s are identical\n",
-- path1, entry ? entry : "",
-- path2, entry ? entry : "");
-+ path1, entry ? entry : "",
-+ path2, entry ? entry : "");
- break;
- case D_MISMATCH1:
- printf("File %s%s is a directory while file %s%s is a regular file\n",
-- path1, entry ? entry : "", path2, entry ? entry : "");
-+ path1, entry ? entry : "", path2, entry ? entry : "");
- break;
- case D_MISMATCH2:
- printf("File %s%s is a regular file while file %s%s is a directory\n",
-- path1, entry ? entry : "", path2, entry ? entry : "");
-+ path1, entry ? entry : "", path2, entry ? entry : "");
- break;
- case D_SKIPPED1:
- printf("File %s%s is not a regular file or directory and was skipped\n",
-- path1, entry ? entry : "");
-+ path1, entry ? entry : "");
- break;
- case D_SKIPPED2:
- printf("File %s%s is not a regular file or directory and was skipped\n",
-- path2, entry ? entry : "");
-+ path2, entry ? entry : "");
- break;
- }
- }
-@@ -585,6 +687,7 @@ print_status(int val, char *path1, char
- void
- usage(void)
- {
-+
- (void)fprintf(stderr,
- "usage: diff [-abdilpqTtw] [-I pattern] [-c | -e | -f | -n | -u]\n"
- " [-L label] file1 file2\n"
-diff -rupN jhagewood/diff/diff-orig/.svn/text-base/diff.h.svn-base jhagewood/diff/diff/.svn/text-base/diff.h.svn-base
---- jhagewood/diff/diff-orig/.svn/text-base/diff.h.svn-base 2012-07-07 14:53:51.000000000 -0400
-+++ jhagewood/diff/diff/.svn/text-base/diff.h.svn-base 2012-07-07 14:53:51.000000000 -0400
-@@ -48,6 +48,8 @@
- #define D_NREVERSE 5 /* Reverse ed script with numbered
- lines and no trailing . */
- #define D_BRIEF 6 /* Say if the files differ */
-+#define D_GF 7 /* Group format */
-+#define D_LF 8 /* Line format */
-
- /*
- * Output flags
-@@ -75,9 +77,9 @@ struct excludes {
- struct excludes *next;
- };
-
--extern int aflag, bflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag,
-- sflag, tflag, Tflag, wflag;
--extern int Bflag, strip_cr, tabsize;
-+extern int aflag, bflag, cflag, dflag, Eflag, Fromflag, iflag, lflag, Nflag, Pflag, pflag, rflag,
-+ sflag, tflag, Tflag, Toflag, wflag;
-+extern int Bflag, strip_cr, suppress_cl, tabsize;
- extern int format, context, status;
- extern char ignore_file_case;
- extern char *start, *ifdefname, *diffargs, *label[2], *ignore_pats;
-diff -rupN jhagewood/diff/diff-orig/.svn/text-base/diffdir.c.svn-base jhagewood/diff/diff/.svn/text-base/diffdir.c.svn-base
---- jhagewood/diff/diff-orig/.svn/text-base/diffdir.c.svn-base 2012-07-07 14:53:51.000000000 -0400
-+++ jhagewood/diff/diff/.svn/text-base/diffdir.c.svn-base 2012-07-07 14:53:51.000000000 -0400
-@@ -20,14 +20,13 @@
-
- #include <sys/cdefs.h>
-
--#ifndef lint
- #if 0
--__RCSID("$OpenBSD: diffdir.c,v 1.32 2007/06/09 05:16:21 ray Exp $");
--#else
--__FBSDID("$FreeBSD$");
-+#ifndef lint
-+static char sccsid[] = "@(#)diffdir.c 8.1 (Berkeley) 6/6/93";
- #endif
- #endif /* not lint */
--
-+#include <sys/cdefs.h>
-+__FBSDID("$FreeBSD$");
- #include <sys/param.h>
- #include <sys/stat.h>
-
-@@ -57,12 +56,12 @@ static void diffit(struct dirent *, char
- void
- diffdir(char *p1, char *p2)
- {
-- struct dirent **dirp1, **dirp2, **dp1, **dp2;
-- struct dirent *dent1, *dent2;
-- size_t dirlen1, dirlen2;
-- char path1[MAXPATHLEN], path2[MAXPATHLEN];
-- char *dirbuf1, *dirbuf2;
-- int pos;
-+ struct dirent **dirp1, **dirp2, **dp1, **dp2;
-+ struct dirent *dent1, *dent2;
-+ size_t dirlen1, dirlen2;
-+ char path1[MAXPATHLEN], path2[MAXPATHLEN];
-+ char *dirbuf1, *dirbuf2;
-+ int pos;
-
- dirlen1 = strlcpy(path1, *p1 ? p1 : ".", sizeof(path1));
- if (dirlen1 >= sizeof(path1) - 1) {
-@@ -169,17 +168,16 @@ diffdir(char *p1, char *p2)
- static struct dirent **
- slurpdir(char *path, char **bufp, int enoentok)
- {
-- char *buf, *ebuf, *cp;
-- size_t bufsize, have, need;
-- long base;
-- int fd, nbytes, entries;
-- struct stat sb;
-- struct dirent **dirlist, *dp;
-+ char *buf, *ebuf, *cp;
-+ size_t bufsize, have, need;
-+ long base;
-+ int fd, nbytes, entries;
-+ struct stat sb;
-+ struct dirent **dirlist, *dp;
-
- *bufp = NULL;
- if ((fd = open(path, O_RDONLY, 0644)) == -1) {
- static struct dirent *dummy;
--
- if (!enoentok || errno != ENOENT) {
- warn("%s", path);
- return (NULL);
-@@ -191,19 +189,17 @@ slurpdir(char *path, char **bufp, int en
- close(fd);
- return (NULL);
- }
--
- need = roundup(sb.st_blksize, sizeof(struct dirent));
- have = bufsize = roundup(MAX(sb.st_size, sb.st_blksize),
- sizeof(struct dirent)) + need;
- ebuf = buf = emalloc(bufsize);
--
- do {
- if (have < need) {
-- bufsize += need;
-- have += need;
-- cp = erealloc(buf, bufsize);
-- ebuf = cp + (ebuf - buf);
-- buf = cp;
-+ bufsize += need;
-+ have += need;
-+ cp = erealloc(buf, bufsize);
-+ ebuf = cp + (ebuf - buf);
-+ buf = cp;
- }
- nbytes = getdirentries(fd, ebuf, have, &base);
- if (nbytes == -1) {
-@@ -255,8 +251,8 @@ slurpdir(char *path, char **bufp, int en
- static int
- dircompare(const void *vp1, const void *vp2)
- {
-- struct dirent *dp1 = *((struct dirent **) vp1);
-- struct dirent *dp2 = *((struct dirent **) vp2);
-+ struct dirent *dp1 = *((struct dirent **) vp1);
-+ struct dirent *dp2 = *((struct dirent **) vp2);
-
- return (strcmp(dp1->d_name, dp2->d_name));
- }
-@@ -267,7 +263,7 @@ dircompare(const void *vp1, const void *
- static void
- diffit(struct dirent *dp, char *path1, size_t plen1, char *path2, size_t plen2)
- {
-- int flags = D_HEADER;
-+ int flags = D_HEADER;
-
- strlcpy(path1 + plen1, dp->d_name, MAXPATHLEN - plen1);
- if (stat(path1, &stb1) != 0) {
-diff -rupN jhagewood/diff/diff-orig/.svn/text-base/diffreg.c.svn-base jhagewood/diff/diff/.svn/text-base/diffreg.c.svn-base
---- jhagewood/diff/diff-orig/.svn/text-base/diffreg.c.svn-base 2012-07-07 14:53:51.000000000 -0400
-+++ jhagewood/diff/diff/.svn/text-base/diffreg.c.svn-base 2012-07-07 14:53:51.000000000 -0400
-@@ -62,15 +62,13 @@
- * @(#)diffreg.c 8.1 (Berkeley) 6/6/93
- */
-
--#include <sys/cdefs.h>
--
--#ifndef lint
- #if 0
--__RCSID("$OpenBSD: diffreg.c,v 1.70 2007/09/11 15:47:17 gilles Exp $");
--#else
--__FBSDID("$FreeBSD");
-+#ifndef lint
-+static char sccsid[] = "@(#)diffreg.c 8.1 (Berkeley) 6/6/93";
- #endif
- #endif /* not lint */
-+#include <sys/cdefs.h>
-+__FBSDID("$FreeBSD$");
-
- #include <sys/param.h>
- #include <sys/stat.h>
-@@ -90,6 +88,14 @@ __FBSDID("$FreeBSD");
- #include "diff.h"
- #include "pathnames.h"
-
-+#ifdef ST_MTIM_NSEC
-+# define TIMESPEC_NS(timespec) ((timespec).ST_MTIM_NSEC)
-+#else
-+# define TIMESPEC_NS(timespec) 0
-+#endif
-+
-+#define MAX_CHECK 768
-+
- /*
- * diff - compare two files.
- */
-@@ -196,7 +202,7 @@ static void change(char *, FILE *, char
- static void sort(struct line *, int);
- static void print_header(const char *, const char *);
- static int ignoreline(char *);
--static int asciifile(FILE *);
-+static int istextfile(FILE *);
- static int fetch(long *, int, int, FILE *, int, int);
- static int newcand(int, int, int);
- static int search(int *, int, int);
-@@ -294,13 +300,13 @@ u_char cup2low[256] = {
- int
- diffreg(char *ofile1, char *ofile2, int flags)
- {
-- char *file1 = ofile1;
-- char *file2 = ofile2;
-- FILE *f1 = NULL;
-- FILE *f2 = NULL;
-- int rval = D_SAME;
-- int i, ostdout = -1;
-- pid_t pid = -1;
-+ char *file1 = ofile1;
-+ char *file2 = ofile2;
-+ FILE *f1 = NULL;
-+ FILE *f2 = NULL;
-+ int rval = D_SAME;
-+ int i, ostdout = -1;
-+ pid_t pid = -1;
-
- anychange = 0;
- lastline = 0;
-@@ -353,7 +359,6 @@ diffreg(char *ofile1, char *ofile2, int
- status |= 2;
- goto closem;
- }
--
- switch (files_differ(f1, f2, flags)) {
- case 0:
- goto closem;
-@@ -365,7 +370,7 @@ diffreg(char *ofile1, char *ofile2, int
- goto closem;
- }
-
-- if (!asciifile(f1) || !asciifile(f2)) {
-+ if (!istextfile(f1) || !istextfile(f2)) {
- rval = D_BINARY;
- status |= 1;
- goto closem;
-@@ -477,8 +482,8 @@ closem:
- static int
- files_differ(FILE *f1, FILE *f2, int flags)
- {
-- char buf1[BUFSIZ], buf2[BUFSIZ];
-- size_t i, j;
-+ char buf1[BUFSIZ], buf2[BUFSIZ];
-+ size_t i, j;
-
- if ((flags & (D_EMPTY1|D_EMPTY2)) || stb1.st_size != stb2.st_size ||
- (stb1.st_mode & S_IFMT) != (stb2.st_mode & S_IFMT))
-@@ -503,9 +508,9 @@ files_differ(FILE *f1, FILE *f2, int fla
- static FILE *
- opentemp(const char *file)
- {
-- char buf[BUFSIZ], *tempdir, tempfile[MAXPATHLEN];
-- ssize_t nread;
-- int ifd, ofd;
-+ char buf[BUFSIZ], *tempdir, tempfile[MAXPATHLEN];
-+ ssize_t nread;
-+ int ifd, ofd;
-
- if (strcmp(file, "-") == 0)
- ifd = STDIN_FILENO;
-@@ -541,7 +546,7 @@ opentemp(const char *file)
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-soc-all
mailing list