Hello community, here is the log from the commit of package diffstat for openSUSE:Factory checked in at 2016-02-09 16:49:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/diffstat (Old) and /work/SRC/openSUSE:Factory/.diffstat.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "diffstat" Changes: -------- --- /work/SRC/openSUSE:Factory/diffstat/diffstat.changes 2015-08-07 00:16:26.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.diffstat.new/diffstat.changes 2016-02-09 16:49:23.000000000 +0100 @@ -1,0 +2,10 @@ +Sun Feb 7 07:51:45 UTC 2016 - [email protected] + +- Update to 1.61 + * add -T option to show amount of changes next to histogram. + * if -S option is given, check for unmodified files and add those + to the report. + * update configure macros + * update config.guess, config.sub + +------------------------------------------------------------------- Old: ---- diffstat-1.60.tgz diffstat-1.60.tgz.asc New: ---- diffstat-1.61.tgz diffstat-1.61.tgz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ diffstat.spec ++++++ --- /var/tmp/diff_new_pack.QYJK1J/_old 2016-02-09 16:49:24.000000000 +0100 +++ /var/tmp/diff_new_pack.QYJK1J/_new 2016-02-09 16:49:24.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package diffstat # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: diffstat -Version: 1.60 +Version: 1.61 Release: 0 Summary: Utility That Provides Statistics Based on the Output of diff License: MIT @@ -38,12 +38,11 @@ %patch0 %build -export CFLAGS="%{optflags} -Wall" %configure -make %{?_smp_mflags} +make %{?_smp_mflags} CFLAGS="%{optflags}" %install -make DESTDIR=%{buildroot} install %{?_smp_mflags} +make %{?_smp_mflags} DESTDIR=%{buildroot} install %check make %{?_smp_mflags} check @@ -52,6 +51,6 @@ %defattr(-,root,root) %doc README CHANGES COPYING %{_bindir}/diffstat -%doc %{_mandir}/man1/diffstat.1* +%{_mandir}/man1/diffstat.1%{ext_man} %changelog ++++++ diffstat-1.60.tgz -> diffstat-1.61.tgz ++++++ ++++ 2916 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/diffstat-1.60/CHANGES new/diffstat-1.61/CHANGES --- old/diffstat-1.60/CHANGES 2015-07-07 01:21:00.000000000 +0200 +++ new/diffstat-1.61/CHANGES 2016-01-14 02:11:58.000000000 +0100 @@ -1,6 +1,19 @@ --- $Id: CHANGES,v 1.91 2015/07/06 23:21:00 tom Exp $ +-- $Id: CHANGES,v 1.94 2016/01/14 01:11:58 tom Exp $ + +2016/01/14 (diffstat 1.61) + + add -T option to show amount of changes next to histogram. + + + if -S option is given, check for unmodified files and add those to + the report. + + + update configure macros + + + update config.guess, config.sub 2015/07/07 (diffstat 1.60) + + handle double-quotes, e.g., from diffutils 3.3 when filenames have + embedded spaces. + + add configure option --with-man2html + update configure macros diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/diffstat-1.60/COPYING new/diffstat-1.61/COPYING --- old/diffstat-1.60/COPYING 2015-07-07 01:29:04.000000000 +0200 +++ new/diffstat-1.61/COPYING 2016-01-03 18:45:14.000000000 +0100 @@ -1,4 +1,4 @@ -Copyright 1994-2014,2015 by Thomas E. Dickey +Copyright 1994-2015,2016 by Thomas E. Dickey All Rights Reserved. Permission to use, copy, modify, and distribute this software and its diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/diffstat-1.60/COPYING.asc new/diffstat-1.61/COPYING.asc --- old/diffstat-1.60/COPYING.asc 2015-07-07 01:29:25.000000000 +0200 +++ new/diffstat-1.61/COPYING.asc 2016-01-03 18:45:34.000000000 +0100 @@ -1,8 +1,8 @@ -----BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.10 (GNU/Linux) +Version: GnuPG v1.4.12 (GNU/Linux) Comment: See http://invisible-island.net/public/public.html for info -iEYEABECAAYFAlWbD1EACgkQcCNT4Pfkjtta2gCeL9RsKaNoyJUWQPmHwLNHlQaX -x0AAoLCG482y5wuQuKSbchhkaCz/YlBu -=mgEw +iEYEABECAAYFAlaJXjoACgkQcCNT4PfkjtvpogCgycNy4AEp4dGgS9XM9jpgHThS +3lQAoJHdOM/4hpgPiGbItbq3ewrdFSEY +=UW+O -----END PGP SIGNATURE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/diffstat-1.60/configure.in new/diffstat-1.61/configure.in --- old/diffstat-1.60/configure.in 2015-07-07 01:22:57.000000000 +0200 +++ new/diffstat-1.61/configure.in 2016-01-03 18:44:31.000000000 +0100 @@ -1,7 +1,7 @@ dnl Process this file with 'autoconf' to produce a 'configure' script -dnl $Id: configure.in,v 1.28 2015/07/06 23:22:57 tom Exp $ +dnl $Id: configure.in,v 1.29 2016/01/03 17:44:31 tom Exp $ AC_PREREQ(2.52.20011201) -AC_REVISION($Revision: 1.28 $) +AC_REVISION($Revision: 1.29 $) AC_INIT(diffstat.c) AC_CONFIG_HEADER(config.h:config_h.in) @@ -40,9 +40,11 @@ AC_CHECK_FUNCS(\ mkdtemp \ +opendir \ tsearch \ ) +CF_FUNC_LSTAT CF_FUNC_GETOPT(getopt,\$(srcdir)/porting) CF_FUNC_POPEN(popen,\$(srcdir)/porting) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/diffstat-1.60/diffstat.1 new/diffstat-1.61/diffstat.1 --- old/diffstat-1.60/diffstat.1 2014-06-05 23:11:15.000000000 +0200 +++ new/diffstat-1.61/diffstat.1 2016-01-14 10:39:26.000000000 +0100 @@ -1,5 +1,5 @@ .\"***************************************************************************** -.\" Copyright 1994-2013,2014 by Thomas E. Dickey * +.\" Copyright 1994-2014,2016 by Thomas E. Dickey * .\" All Rights Reserved. * .\" * .\" Permission to use, copy, modify, and distribute this software and its * @@ -18,7 +18,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR * .\" IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * .\"***************************************************************************** -.\" $Id: diffstat.1,v 1.33 2014/06/05 21:11:15 tom Exp $ +.\" $Id: diffstat.1,v 1.35 2016/01/14 09:39:26 tom Exp $ .TH DIFFSTAT 1 .SH NAME \fBdiffstat\fP \- make histogram from diff-output @@ -27,17 +27,17 @@ .SH DESCRIPTION This program reads the output of \fBdiff\fP and displays a histogram of the insertions, deletions, and modifications per-file. -Diffstat is a program that is useful for reviewing large, complex patch files. +\fBDiffstat\fP is a program that is useful for reviewing large, complex patch files. It reads from one or more input files which contain output from \fBdiff\fP, producing a histogram of the total lines changed for each file referenced. .PP If the input filename ends with .bz2, .gz, .lzma, .z or .Z, -diffstat will read the +\fBdiffstat\fP will read the uncompressed data via a pipe from the corresponding program. It also can infer the compression type from files piped via the standard input. .PP -Diffstat recognizes the most popular types of output from diff: -.RS +\fBDiffstat\fP recognizes the most popular types of output from \fBdiff\fP: +.RS 3 .TP unified preferred by the \fBpatch\fP utility. @@ -60,7 +60,7 @@ .SH OPTIONS .TP .B \-b -ignore lines matching "Binary files XXX and YYY differ" in the diff +ignore lines matching "Binary files XXX and YYY differ" in the \fBdiff\fP .TP .B \-c prefix each line of output with "#", making it a comment-line for shell @@ -152,6 +152,10 @@ .BI \-p " number" override the logic that strips common pathnames, simulating the \fBpatch\fP "\-p" option. +.IP +If you do not give a \fB\-p\fP option, \fBdiffstat\fP examines the +differences and strips the common prefix from the pathnames. +This is not what \fBpatch\fP does. .TP .B \-q suppress the "0 files changed" message for empty diffs. @@ -187,7 +191,19 @@ .TP .B \-t overrides the histogram, -generates output of comma separated values. +generates output of comma separated values for the number of +changed lines found in the differences for each file: inserted, deleted and modified. +.IP +If \fB\-S\fP or \fB\-D\fP options are given, the number of unchanged +lines precedes the number of changes. +.TP +.B \-T +prints the numbers that the \fB\-t\fP option would show, +between the pathname and histogram. +.IP +The width of the number of changes is determined by the largest value (but at least 3). +The width given in the \fB\-w\fP option is separate from the width of these +numbers. .TP .B \-u suppress the sorting of filenames in the report. @@ -206,7 +222,7 @@ just in case the filenames get too large. .SH ENVIRONMENT .PP -\fBDiffstat\fP runs in a portable UNIX\*R environment. +\fBDiffstat\fP runs in a POSIX environment. .PP You can override the compiled-in paths of programs used for decompressing input files by setting environment variables corresponding to their name: @@ -232,9 +248,9 @@ \fBDiffstat\fP is a single binary module, which uses no auxiliary files. .SH BUGS .PP -\fBDiffstat\fP makes a lot of assumptions about the format of a \fBdiff\fP file. +\fBDiffstat\fP makes a lot of assumptions about the format of \fBdiff\fP's output. .PP -There is no way to obtain a filename from the standard diff between +There is no way to obtain a filename from the standard \fBdiff\fP between two files with no options. Context diffs work, as well as unified diffs. @@ -245,7 +261,8 @@ to approximate modified lines for the \fB\-m\fP option. .SH SEE ALSO .PP -.BR diff (1). +.BR diff (1), +.BR patch (1). .SH AUTHOR .PP Thomas Dickey <[email protected]>. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/diffstat-1.60/diffstat.c new/diffstat-1.61/diffstat.c --- old/diffstat-1.60/diffstat.c 2015-07-07 02:21:23.000000000 +0200 +++ new/diffstat-1.61/diffstat.c 2016-01-14 01:52:29.000000000 +0100 @@ -1,5 +1,5 @@ /****************************************************************************** - * Copyright 1994-2014,2015 by Thomas E. Dickey * + * Copyright 1994-2015,2016 by Thomas E. Dickey * * All Rights Reserved. * * * * Permission to use, copy, modify, and distribute this software and its * @@ -20,7 +20,7 @@ ******************************************************************************/ #ifndef NO_IDENT -static const char *Id = "$Id: diffstat.c,v 1.60 2015/07/07 00:21:23 tom Exp $"; +static const char *Id = "$Id: diffstat.c,v 1.61 2016/01/14 00:52:29 tom Exp $"; #endif /* @@ -28,6 +28,8 @@ * Author: T.E.Dickey * Created: 02 Feb 1992 * Modified: + * 14 Jan 2016, extend -S option to count unmodified files. + * add -T option to show values with histogram * 06 Jul 2015, handle double-quotes, e.g., from diffutils 3.3 * when filenames have embedded spaces. * 05 Jun 2014, add -E option to filter colordiff output. @@ -219,6 +221,10 @@ extern int isatty(int); #endif +#ifdef HAVE_OPENDIR +#include <dirent.h> +#endif + #ifdef HAVE_MALLOC_H #include <malloc.h> #endif @@ -324,6 +330,7 @@ #endif #define contain_any(s,reject) (strcspn(s,reject) != strlen(s)) +#define maximum(a,b) ((a) < (b) ? (b) : (a)) #define HAVE_NOTHING 0 #define HAVE_GENERIC 1 /* e.g., "Index: foo" w/o pathname */ @@ -407,8 +414,9 @@ static int summary_only = 0; /* true if only summary line is shown */ static int suppress_binary = 0; /* -b option */ static int trim_escapes = 0; /* -E option */ -static int table_opt = 0; /* if nonzero, write table rather than plot */ +static int table_opt = 0; /* if 1/2, write table instead/also plot */ static int trace_opt = 0; /* if nonzero, write debugging information */ +static int unchanged = 0; /* special-case for -S vs modified-files */ static int verbose = 0; /* -v option */ static long plot_scale; /* the effective scale (1:maximum) */ @@ -417,6 +425,7 @@ static void *sorted_data; #endif +static int number_len = 5; static int prefix_len = -1; /******************************************************************************/ @@ -442,12 +451,29 @@ return p; } +static mode_t +get_stat(const char *name) +{ + struct stat sb; + int rc; +#ifdef HAVE_LSTAT + rc = lstat(name, &sb); +#else + rc = stat(name, &sb); +#endif + return ((rc == 0) ? (sb.st_mode & S_IFMT) : 0); +} + static int is_dir(const char *name) { - struct stat sb; - return (stat(name, &sb) == 0 && - (sb.st_mode & S_IFMT) == S_IFDIR); + return get_stat(name) == S_IFDIR; +} + +static int +is_file(const char *name) +{ + return get_stat(name) == S_IFREG; } static void @@ -515,6 +541,38 @@ } #endif +static int +count_prefix(const char *name) +{ + int count = 0; + const char *s; + while ((s = strchr(name, PATHSEP)) != 0) { + name = s + 1; + ++count; + } + return count; +} + +static const char * +skip_prefix(const char *name, int prefix, int *base) +{ + if (prefix >= 0) { + int n; + *base = 0; + + for (n = prefix; n > 0; n--) { + const char *s = strchr(name + *base, PATHSEP); + if (s == 0 || *++s == EOS) { + name = s; + break; + } + *base = (int) (s - name); + } + TRACE(("** base set to %d\n", *base)); + } + return name; +} + static DATA * find_data(const char *name) { @@ -526,15 +584,7 @@ /* Compute the base offset if the prefix option is used */ if (prefix_opt >= 0) { - int n; - - for (n = prefix_opt; n > 0; n--) { - char *s = strchr(name + base, PATHSEP); - if (s == 0 || *++s == EOS) - break; - base = (int) (s - name); - } - TRACE(("** base set to %d\n", base)); + (void) skip_prefix(name, prefix_opt, &base); } /* Insert into sorted list (usually sorted). If we are not sorting or @@ -1060,7 +1110,29 @@ static char * data_filename(const DATA * p) { - return (p->name + (prefix_opt >= 0 ? p->base : prefix_len)); + return p ? (p->name + (prefix_opt >= 0 ? p->base : prefix_len)) : ""; +} + +static int +count_lines2(const char *filename) +{ + int result = 0; + int ch; + FILE *fp; + + TRACE(("count_lines %s\n", filename)); + if ((fp = fopen(filename, "r")) != 0) { + result = 0; + while ((ch = MY_GETC(fp)) != EOF) { + if (ch == '\n') + ++result; + } + fclose(fp); + TRACE(("->%d lines\n", result)); + } else { + fprintf(stderr, "Cannot open \"%s\"\n", filename); + } + return result; } /* @@ -1072,9 +1144,7 @@ int result = -1; char *filename = 0; char *filetail = data_filename(p); - size_t want = strlen(path_opt) + 2 + strlen(filetail); - FILE *fp; - int ch; + size_t want = strlen(path_opt) + 2 + strlen(filetail) + strlen(p->name); if ((filename = malloc(want)) != 0) { int merge = 0; @@ -1108,20 +1178,14 @@ } } if (!merge) { - sprintf(filename, "%s%c%s", path_opt, PATHSEP, filetail); - } - - TRACE(("count_lines %s\n", filename)); - if ((fp = fopen(filename, "r")) != 0) { - result = 0; - while ((ch = MY_GETC(fp)) != EOF) { - if (ch == '\n') - ++result; + if (path_opt) { + strcpy(filename, p->name); + } else { + sprintf(filename, "%s%c%s", path_opt, PATHSEP, filetail); } - fclose(fp); - } else { - fprintf(stderr, "Cannot open %s\n", filename); } + + result = count_lines2(filename); free(filename); } else { failed("count_lines"); @@ -1945,7 +2009,7 @@ ; } else if (p->cmt == Binary && suppress_binary == 1) { ; - } else if (table_opt) { + } else if (table_opt == 1) { if (names_only) { printf("%s\n", name); } else { @@ -1976,6 +2040,14 @@ : min_name_wide); printf("%-*.*s", width, width, name); } + if (table_opt == 2) { + putchar('|'); + if (path_opt) + printf("%*ld ", number_len, EqlOf(p)); + printf("%*ld ", number_len, InsOf(p)); + printf("%*ld ", number_len, DelOf(p)); + printf("%*ld", number_len, ModOf(p)); + } putchar('|'); switch (p->cmt) { default: @@ -2065,6 +2137,97 @@ return result; } +#ifdef HAVE_OPENDIR +static void +count_unmodified_files(const char *pathname, long *files, long *lines) +{ + DATA *p; + char *name; + + TRACE(("count_unmodified_files %s\n", pathname)); + if (is_dir(pathname)) { + DIR *dp = opendir(pathname); + struct dirent *de; + + if (dp != 0) { + while ((de = readdir(dp)) != 0) { + if (!strcmp(de->d_name, ".") || !strcmp(de->d_name, "..")) + continue; + name = malloc(strlen(pathname) + 2 + strlen(de->d_name)); + if (name != 0) { + sprintf(name, "%s%c%s", pathname, PATHSEP, de->d_name); + count_unmodified_files(name, files, lines); + free(name); + } + } + closedir(dp); + } + } else if (is_file(pathname)) { + /* + * Given the pathname from the (-S) source directory, derive a + * corresponding path for the destination directory. Then check if + * that path appears in the list of modified files. + */ + int found = 0; + const char *ref_name = (all_data ? all_data->name : pathname); + + if (prefix_opt >= 0) { + int level_s = count_prefix(path_opt); + int base_s = 0; + int base_d = 0; + (void) skip_prefix(pathname, level_s + 1, &base_s); + (void) skip_prefix(ref_name, level_s + 1, &base_d); + name = malloc(2 + strlen(pathname) + strlen(ref_name)); + sprintf(name, "%.*s%s", base_d, ref_name, base_s + pathname); + } else { + const char *mark = unchanged ? ref_name : data_filename(all_data); + int skip = 1 + (int) strlen(path_opt); + name = malloc(strlen(ref_name) + 2 + strlen(pathname)); + sprintf(name, "%.*s%s", + (int) (mark - ref_name), + ref_name, + pathname + skip); + } + if (is_file(name)) { + for (p = all_data; p != 0 && !found; p = p->link) { + if (!strcmp(name, p->name)) { + found = 1; + } + } + if (!found) { + int len; + p = find_data(name); + *files += 1; + EqlOf(p) = count_lines(p); + *lines += EqlOf(p); + + if (unchanged) { + len = (int) strlen(p->name); + if (min_name_wide < (len - p->base)) + min_name_wide = (len - p->base); + } + } + } + free(name); + } +} +#endif + +static void +update_min_name_wide(long longest_name) +{ + if (prefix_opt < 0) { + if (prefix_len < 0) + prefix_len = 0; + if ((longest_name - prefix_len) > min_name_wide) + min_name_wide = (longest_name - prefix_len); + } + + if (min_name_wide < 1) + min_name_wide = 0; + min_name_wide++; /* make sure it's nonzero */ +} + static void summarize(void) { @@ -2074,6 +2237,7 @@ long total_mod = 0; long total_eql = 0; long files_added = 0; + long files_equal = 0; long files_binary = 0; long files_removed = 0; long temp; @@ -2187,14 +2351,26 @@ } } - if (prefix_opt < 0) { - if (prefix_len < 0) - prefix_len = 0; - if ((longest_name - prefix_len) > min_name_wide) - min_name_wide = (longest_name - prefix_len); + update_min_name_wide(longest_name); + +#ifdef HAVE_OPENDIR + if (path_opt != 0) { + unchanged = (all_data == 0); + count_unmodified_files(path_opt, &files_equal, &total_eql); + if (unchanged) { + for (p = all_data; p; p = p->link) { + int len = (int) strlen(p->name); + if (longest_name < len) + longest_name = len; + temp = TotalOf(p); + if (temp > plot_scale) + plot_scale = temp; + } + update_min_name_wide(longest_name); + } } +#endif - min_name_wide++; /* make sure it's nonzero */ plot_width = (max_width - min_name_wide - 8); if (plot_width < 10) plot_width = 10; @@ -2202,7 +2378,7 @@ if (plot_scale < plot_width) plot_scale = plot_width; /* 1:1 */ - if (table_opt) { + if (table_opt == 1) { if (!names_only) { printf("INSERTED,DELETED,MODIFIED,"); if (path_opt) @@ -2211,6 +2387,21 @@ printf("FILE-ADDED,FILE-DELETED,FILE-BINARY,"); } printf("FILENAME\n"); + } else if (table_opt == 2) { + long largest = 0; + for (p = all_data; p; p = p->link) { + if (path_opt) + largest = maximum(largest, EqlOf(p)); + largest = maximum(largest, InsOf(p)); + largest = maximum(largest, DelOf(p)); + largest = maximum(largest, ModOf(p)); + } + number_len = 0; + while (largest > 0) { + number_len++; + largest /= 10; + } + number_len = maximum(number_len, 3); } #ifdef HAVE_TSEARCH if (use_tsearch) { @@ -2221,7 +2412,7 @@ show_data(p); } - if (!table_opt && !names_only) { + if ((table_opt != 1) && !names_only) { #define PLURAL(n) n, n != 1 ? "s" : "" if (num_files > 0 || !quiet) { printf("%s %d file%s changed", comment_opt, PLURAL(num_files)); @@ -2451,6 +2642,7 @@ " -s show only the summary line", " -S PATH specify location of original files, use for unchanged-count", " -t print a table (comma-separated-values) rather than histogram", + " -T print amounts (like -t option) in addition to histogram", " -u do not sort the input list", " -v show progress if output is redirected to a file", " -V prints the version number", @@ -2502,7 +2694,7 @@ max_width = 80; while ((j = getopt_helper(argc, argv, - "bcCdD:e:Ef:hkKlmn:N:o:p:qr:RsS:tuvVw:", 'h', 'V')) + "bcCdD:e:Ef:hkKlmn:N:o:p:qr:RsS:tTuvVw:", 'h', 'V')) != -1) { switch (j) { case 'b': @@ -2575,6 +2767,9 @@ case 't': table_opt = 1; break; + case 'T': + table_opt = 2; + break; case 'u': sort_names = 0; break; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/diffstat-1.60/package/debian/changelog new/diffstat-1.61/package/debian/changelog --- old/diffstat-1.60/package/debian/changelog 2015-07-07 02:39:34.000000000 +0200 +++ new/diffstat-1.61/package/debian/changelog 2016-01-06 01:51:23.000000000 +0100 @@ -1,3 +1,9 @@ +diffstat (1.61) unstable; urgency=low + + * maintenance updates + + -- Thomas E. Dickey <[email protected]> Tue, 05 Jan 2016 19:51:23 -0500 + diffstat (1.60) unstable; urgency=low * handle quoted files from diffutils 3.3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/diffstat-1.60/package/debian/copyright new/diffstat-1.61/package/debian/copyright --- old/diffstat-1.60/package/debian/copyright 2015-07-07 02:26:41.000000000 +0200 +++ new/diffstat-1.61/package/debian/copyright 2016-01-06 01:51:23.000000000 +0100 @@ -1,7 +1,7 @@ Upstream source http://invisible-island.net/diffstat/diffstat.html /****************************************************************************** - * Copyright 1994-2014,2015 by Thomas E. Dickey * + * Copyright 1994-2015,2016 by Thomas E. Dickey * * All Rights Reserved. * * * * Permission to use, copy, modify, and distribute this software and its * @@ -25,7 +25,7 @@ Files: aclocal.m4 Licence: other-BSD -Copyright: 2003-2014,2015 by Thomas E. Dickey +Copyright: 2003-2015,2016 by Thomas E. Dickey Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -86,7 +86,7 @@ shared with many OS's install programs. Files: debian/* -Copyright: 2010-2014,2015 Thomas E. Dickey +Copyright: 2010-2015,2016 Thomas E. Dickey Licence: other-BSD Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/diffstat-1.60/package/diffstat.spec new/diffstat-1.61/package/diffstat.spec --- old/diffstat-1.60/package/diffstat.spec 2015-07-07 01:27:58.000000000 +0200 +++ new/diffstat-1.61/package/diffstat.spec 2016-01-06 01:51:23.000000000 +0100 @@ -1,7 +1,7 @@ Summary: diffstat - make histogram from diff-output %define AppProgram diffstat -%define AppVersion 1.60 -# $XTermId: diffstat.spec,v 1.9 2015/07/06 23:27:58 tom Exp $ +%define AppVersion 1.61 +# $XTermId: diffstat.spec,v 1.10 2016/01/06 00:51:23 tom Exp $ Name: %{AppProgram} Version: %{AppVersion} Release: 1
