From f5a08e3918e9d5d1a57bed113ca0a75a17c51675 Mon Sep 17 00:00:00 2001 From: Tim Waugh Date: Jun 25 2010 14:17:47 +0000 Subject: - For 'cmp -s', compare file sizes only if both non-zero (bug #563618). --- diff --git a/diffutils-cmp-s-empty.patch b/diffutils-cmp-s-empty.patch new file mode 100644 index 0000000..bc1c6b4 --- /dev/null +++ b/diffutils-cmp-s-empty.patch @@ -0,0 +1,20 @@ +diff -up diffutils-2.8.1/src/cmp.c.cmp-s-empty diffutils-2.8.1/src/cmp.c +--- diffutils-2.8.1/src/cmp.c.cmp-s-empty 2002-04-05 21:37:31.000000000 +0100 ++++ diffutils-2.8.1/src/cmp.c 2010-06-25 14:56:08.464802321 +0100 +@@ -316,12 +316,15 @@ main (int argc, char **argv) + + /* If only a return code is needed, + and if both input descriptors are associated with plain files, ++ and if both files are larger than 0 bytes (procfs files are always 0), + conclude that the files differ if they have different sizes + and if more bytes will be compared than are in the smaller file. */ + + if (comparison_type == type_status + && S_ISREG (stat_buf[0].st_mode) +- && S_ISREG (stat_buf[1].st_mode)) ++ && S_ISREG (stat_buf[1].st_mode) ++ && stat_buf[0].st_size > 0 ++ && stat_buf[1].st_size > 0) + { + off_t s0 = stat_buf[0].st_size - file_position (0); + off_t s1 = stat_buf[1].st_size - file_position (1); diff --git a/diffutils.spec b/diffutils.spec index 5e61fda..a935dbc 100644 --- a/diffutils.spec +++ b/diffutils.spec @@ -1,7 +1,7 @@ Summary: A GNU collection of diff utilities Name: diffutils Version: 2.8.1 -Release: 28%{?dist} +Release: 29%{?dist} Group: Applications/Text URL: http://www.gnu.org/software/diffutils/diffutils.html Source: ftp://ftp.gnu.org/gnu/diffutils/diffutils-%{version}.tar.gz @@ -9,6 +9,7 @@ Patch0: diffutils-2.8.4-i18n.patch Patch1: diffutils-2.8.1-badc.patch Patch2: diffutils-sdiff.patch Patch3: diffutils-sdiff-E.patch +Patch4: diffutils-cmp-s-empty.patch License: GPLv2+ Requires(post): /sbin/install-info Requires(preun): /sbin/install-info @@ -42,6 +43,9 @@ Install diffutils if you need to compare text files. # Fixed 'sdiff -E' (bug #484892). %patch3 -p1 -b .sdiff-E +# For 'cmp -s', compare file sizes only if both non-zero (bug #563618). +%patch4 -p1 -b .cmp-s-empty + %build %configure make PR_PROGRAM=%{_bindir}/pr @@ -76,6 +80,9 @@ rm -rf $RPM_BUILD_ROOT %{_infodir}/diff.info*gz %changelog +* Fri Jun 25 2010 Tim Waugh 2.8.1-29 +- For 'cmp -s', compare file sizes only if both non-zero (bug #563618). + * Wed Apr 21 2010 Tim Waugh - 2.8.1-28 - Build requires help2man (bug #577325). Fixes empty diff man page.