From owner-p4-projects@FreeBSD.ORG Fri Jul 30 23:54:29 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7132C1065677; Fri, 30 Jul 2010 23:54:29 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 35C571065675 for ; Fri, 30 Jul 2010 23:54:29 +0000 (UTC) (envelope-from bfiedler@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0996D8FC08 for ; Fri, 30 Jul 2010 23:54:29 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.4/8.14.4) with ESMTP id o6UNsSd0052234 for ; Fri, 30 Jul 2010 23:54:28 GMT (envelope-from bfiedler@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.4/8.14.4/Submit) id o6UNsS6E052232 for perforce@freebsd.org; Fri, 30 Jul 2010 23:54:28 GMT (envelope-from bfiedler@FreeBSD.org) Date: Fri, 30 Jul 2010 23:54:28 GMT Message-Id: <201007302354.o6UNsS6E052232@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bfiedler@FreeBSD.org using -f From: Benjamin Fiedler To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 181625 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Jul 2010 23:54:29 -0000 http://p4web.freebsd.org/@@181625?ac=10 Change 181625 by bfiedler@freebsd-7803 on 2010/07/30 23:53:45 Diff3 now compiles warning-free; iflag implemented Affected files ... .. //depot/projects/soc2010/bsdtextproc/diff3/diff3prog.c#2 edit Differences ... ==== //depot/projects/soc2010/bsdtextproc/diff3/diff3prog.c#2 (text+ko) ==== @@ -64,11 +64,18 @@ * @(#)diff3.c 8.1 (Berkeley) 6/6/93 */ +#ifdef __FreeBSD__ +#define __dead +#endif + #include #include #include #include #include +#include +#include +#include /* diff3 - 3-way differential file comparison */ @@ -116,8 +123,9 @@ * is stored in last[1-3]; */ int last[4]; -int eflag; +int eflag, iflag; int oflag; /* indicates whether to mark overlaps (-E or -X)*/ +int strip_cr; int debug = 0; char f1mark[40], f3mark[40]; /* markers for -E and -X */ @@ -139,6 +147,32 @@ void increase(void); __dead void usage(void); +enum { + HELP_OPT = CHAR_MAX + 1, + STRIPCR_OPT, + DIFFPROG_OPT, +}; + +#define OPTIONS "3aAeEiL:mTvxX" +static struct option longopts[] = { + { "ed", no_argument, NULL, 'e' }, + { "show-overlap", no_argument, NULL, 'E' }, + { "overlap-only", no_argument, NULL, 'x' }, + + /* features to implement */ + { "show-all", no_argument, NULL, 'A' }, + { "easy-only", no_argument, NULL, '3' }, + { "merge", no_argument, NULL, 'm' }, + { "label", required_argument, NULL, 'L' }, + { "text", no_argument, NULL, 'a' }, + { "strip-trailing-cr", no_argument, NULL, STRIPCR_OPT }, + { "initial-tab", no_argument, NULL, 'T' }, + { "diff-program", required_argument, NULL, DIFFPROG_OPT }, + { "version", no_argument, NULL, 'v' }, + { "help", no_argument, NULL, HELP_OPT } +}; + + int main(int argc, char **argv) { @@ -146,7 +180,7 @@ eflag = 0; oflag = 0; - while ((ch = getopt(argc, argv, "EeXx3")) != -1) { + while ((ch = getopt_long(argc, argv, OPTIONS, longopts, NULL)) != -1) { switch (ch) { case 'E': eflag = 3; @@ -155,6 +189,9 @@ case 'e': eflag = 3; break; + case 'i': + iflag = 1; + break; case 'X': oflag = eflag = 1; break; @@ -164,6 +201,10 @@ case '3': eflag = 2; break; + case STRIPCR_OPT: + strip_cr = 1; + break; + } } argc -= optind; @@ -558,6 +599,10 @@ printf("%da\n%s\n.\n", de[n].old.from - 1, f1mark); } } + + if( iflag ) + printf("w\nq\n"); + exit(overlapcnt); }