SHA256
3
0
forked from pool/fdupes
OBS User unknown 2009-01-22 12:03:22 +00:00 committed by Git OBS Bridge
parent 9c3fe56e51
commit 9749d71940
3 changed files with 90 additions and 9 deletions

64
fdupes-sort-output.diff Normal file
View File

@ -0,0 +1,64 @@
--- fdupes.c
+++ fdupes.c
@@ -581,24 +581,45 @@
return 1;
}
+/* from qsort man page */
+static int
+cmpstringp(const void *p1, const void *p2)
+{
+ /* The actual arguments to this function are "pointers to
+ pointers to char", but strcmp(3) arguments are "pointers
+ to char", hence the following cast plus dereference */
+
+ return strcmp(* (char * const *) p1, * (char * const *) p2);
+}
+
void printmatches(file_t *files)
{
file_t *tmpfile;
while (files != NULL) {
if (files->hasdupes) {
+ char **names = (char**)malloc(sizeof(char*)*(files->hasdupes+1));
+ int count = 0, index;
+ names[count++] = files->d_name;
+ tmpfile = files->duplicates;
+ while (tmpfile != NULL) {
+ names[count++] = tmpfile->d_name;
+ tmpfile = tmpfile->duplicates;
+ }
+ qsort(names, count, sizeof(char *), cmpstringp);
+
if (!ISFLAG(flags, F_OMITFIRST)) {
if (ISFLAG(flags, F_SHOWSIZE)) printf("%ld byte%seach:\n", files->size,
(files->size != 1) ? "s " : " ");
- if (ISFLAG(flags, F_DSAMELINE)) escapefilename("\\ ", &files->d_name);
- printf("%s%c", files->d_name, ISFLAG(flags, F_DSAMELINE)?' ':'\n');
+ if (ISFLAG(flags, F_DSAMELINE)) escapefilename("\\ ", &names[0]);
+ printf("%s%c", names[0], ISFLAG(flags, F_DSAMELINE)?' ':'\n');
}
- tmpfile = files->duplicates;
- while (tmpfile != NULL) {
- if (ISFLAG(flags, F_DSAMELINE)) escapefilename("\\ ", &tmpfile->d_name);
- printf("%s%c", tmpfile->d_name, ISFLAG(flags, F_DSAMELINE)?' ':'\n');
- tmpfile = tmpfile->duplicates;
+ for (index = 1; index < count; index++) {
+ if (ISFLAG(flags, F_DSAMELINE)) escapefilename("\\ ", &names[index]);
+ printf("%s%c", names[index], ISFLAG(flags, F_DSAMELINE)?' ':'\n');
+
}
+ free(names);
printf("\n");
}
@@ -869,7 +890,7 @@
}
if (confirmmatch(file1, file2)) {
- match->hasdupes = 1;
+ match->hasdupes++;
curfile->duplicates = match->duplicates;
match->duplicates = curfile;
}

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Thu Jan 15 17:05:36 CET 2009 - coolo@suse.de
- sort the output of fdupes to make it deterministic
-------------------------------------------------------------------
Thu Sep 6 18:41:37 CEST 2007 - mls@suse.de

View File

@ -1,25 +1,34 @@
#
# spec file for package fdupes (Version 1.40)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
Name: fdupes
URL: http://premium.caribe.net/~adrian2/fdupes.html
Url: http://premium.caribe.net/~adrian2/fdupes.html
Group: Productivity/Archiving/Compression
Summary: Identifying or deleting duplicate files
Version: 1.40
Release: 42
Release: 109
License: X11/MIT
Source0: %name-%{version}.tar.bz2
Source1: macros.fdupes
Patch0: %name.diff
Patch1: fdupes-sort-output.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@ -35,6 +44,7 @@ Authors:
%prep
%setup -q
%patch
%patch1
%build
make
@ -55,11 +65,13 @@ rm -rf $RPM_BUILD_ROOT
/etc/rpm
%changelog
* Thu Sep 06 2007 - mls@suse.de
* Thu Jan 15 2009 coolo@suse.de
- sort the output of fdupes to make it deterministic
* Thu Sep 06 2007 mls@suse.de
- do not hardlink empty files in %%fdupes macro
* Wed Sep 05 2007 - nadvornik@suse.cz
* Wed Sep 05 2007 nadvornik@suse.cz
- support filenames with spaces in %%fdupes macro [#307727]
* Tue May 15 2007 - coolo@suse.de
* Tue May 15 2007 coolo@suse.de
- add an RPM macro to make use of it in spec files
* Thu Nov 16 2006 - dmueller@suse.de
* Thu Nov 16 2006 dmueller@suse.de
- Initial package (1.40)