From owner-svn-src-user@freebsd.org Sat Dec 31 11:35:52 2016 Return-Path: <owner-svn-src-user@freebsd.org> Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BC4EAC99F99 for <svn-src-user@mailman.ysv.freebsd.org>; Sat, 31 Dec 2016 11:35:52 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7D4EC1B84; Sat, 31 Dec 2016 11:35:52 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id uBVBZphe054744; Sat, 31 Dec 2016 11:35:51 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id uBVBZpBX054741; Sat, 31 Dec 2016 11:35:51 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201612311135.uBVBZpBX054741@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin <bapt@FreeBSD.org> Date: Sat, 31 Dec 2016 11:35:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r310948 - user/bapt/diff X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" <svn-src-user.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-user>, <mailto:svn-src-user-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user/> List-Post: <mailto:svn-src-user@freebsd.org> List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-user>, <mailto:svn-src-user-request@freebsd.org?subject=subscribe> X-List-Received-Date: Sat, 31 Dec 2016 11:35:52 -0000 Author: bapt Date: Sat Dec 31 11:35:51 2016 New Revision: 310948 URL: https://svnweb.freebsd.org/changeset/base/310948 Log: Implement diff --ignore-file-name-case Note that the --no-ignore-file-name-case is not planned to be implemented as this is the default and there is no configuration switch to change that default Obtained from: soc2012 Modified: user/bapt/diff/diff.c user/bapt/diff/diff.h user/bapt/diff/diffdir.c Modified: user/bapt/diff/diff.c ============================================================================== --- user/bapt/diff/diff.c Sat Dec 31 11:30:18 2016 (r310947) +++ user/bapt/diff/diff.c Sat Dec 31 11:35:51 2016 (r310948) @@ -40,7 +40,7 @@ __FBSDID("$FreeBSD$"); #include "xmalloc.h" int lflag, Nflag, Pflag, rflag, sflag, Tflag, cflag; -int diff_format, diff_context, status; +int diff_format, diff_context, status, ignore_file_case; int tabsize = 8; char *start, *ifdefname, *diffargs, *label[2], *ignore_pats; struct stat stb1, stb2; @@ -51,6 +51,7 @@ regex_t ignore_re; enum { OPT_TSIZE = CHAR_MAX + 1, OPT_STRIPCR, + OPT_IGN_FN_CASE, }; static struct option longopts[] = { @@ -79,6 +80,7 @@ static struct option longopts[] = { { "ignore-all-space", no_argument, 0, 'w' }, { "exclude", required_argument, 0, 'x' }, { "exclude-from", required_argument, 0, 'X' }, + { "ignore-file-name-case", no_argument, NULL, OPT_IGN_FN_CASE }, { "strip-trailing-cr", no_argument, NULL, OPT_STRIPCR }, { "tabsize", optional_argument, NULL, OPT_TSIZE }, { NULL, 0, 0, '\0'} @@ -219,6 +221,9 @@ main(int argc, char **argv) case 'x': push_excludes(optarg); break; + case OPT_IGN_FN_CASE: + ignore_file_case = 1; + break; case OPT_TSIZE: tabsize = (int) strtonum(optarg, 1, INT_MAX, &errstr); if (errstr) { Modified: user/bapt/diff/diff.h ============================================================================== --- user/bapt/diff/diff.h Sat Dec 31 11:30:18 2016 (r310947) +++ user/bapt/diff/diff.h Sat Dec 31 11:35:51 2016 (r310948) @@ -84,7 +84,7 @@ struct excludes { }; extern int lflag, Nflag, Pflag, rflag, sflag, Tflag, cflag; -extern int diff_format, diff_context, status; +extern int diff_format, diff_context, status, ignore_file_case; extern int tabsize; extern char *start, *ifdefname, *diffargs, *label[2], *ignore_pats; extern struct stat stb1, stb2; Modified: user/bapt/diff/diffdir.c ============================================================================== --- user/bapt/diff/diffdir.c Sat Dec 31 11:30:18 2016 (r310947) +++ user/bapt/diff/diffdir.c Sat Dec 31 11:35:51 2016 (r310948) @@ -124,7 +124,8 @@ diffdir(char *p1, char *p2, int flags) dent2 = dp2 != edp2 ? *dp2 : NULL; pos = dent1 == NULL ? 1 : dent2 == NULL ? -1 : - strcmp(dent1->d_name, dent2->d_name); + ignore_file_case ? strcasecmp(dent1->d_name, dent2->d_name) : + strcmp(dent1->d_name, dent2->d_name) ; if (pos == 0) { /* file exists in both dirs, diff it */ diffit(dent1, path1, dirlen1, path2, dirlen2, flags);