From 491c54ca99717339656509111012e88a6e3def84 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Tue, 25 Sep 2007 22:24:21 +0200 Subject: [PATCH] Move file-set and hash-triple modules to gnulib. * bootstrap.conf (gnulib_modules): Remove file-set, now that it's in gnulib, and the canonicalize module requires it there. * gl/lib/file-set.c, gl/lib/file-set.h, gl/modules/hash-triple: Remove. * gl/lib/hash-triple.c, gl/lib/hash-triple.h, gl/modules/file-set: Remove. --- ChangeLog | 7 ++++++ bootstrap.conf | 1 - gl/lib/file-set.c | 56 ------------------------------------------ gl/lib/file-set.h | 12 --------- gl/lib/hash-triple.c | 48 ------------------------------------ gl/lib/hash-triple.h | 21 ---------------- gl/modules/file-set | 27 -------------------- gl/modules/hash-triple | 25 ------------------- 8 files changed, 7 insertions(+), 190 deletions(-) delete mode 100644 gl/lib/file-set.c delete mode 100644 gl/lib/file-set.h delete mode 100644 gl/lib/hash-triple.c delete mode 100644 gl/lib/hash-triple.h delete mode 100644 gl/modules/file-set delete mode 100644 gl/modules/hash-triple diff --git a/ChangeLog b/ChangeLog index 0e3ff577b2..d8bdd87279 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2007-09-27 Jim Meyering + Move file-set and hash-triple modules to gnulib. + * bootstrap.conf (gnulib_modules): Remove file-set, now that + it's in gnulib, and the canonicalize module requires it there. + * gl/lib/file-set.c, gl/lib/file-set.h, gl/modules/hash-triple: Remove. + * gl/lib/hash-triple.c, gl/lib/hash-triple.h, gl/modules/file-set: + Remove. + Add a test to exercise a readlink bug. * tests/misc/readlink-fp-loop: New file. Test for the readlink bug fixed through today's change to Gnulib's canonicalize module. diff --git a/bootstrap.conf b/bootstrap.conf index 93bada9d41..de53c8d59b 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -45,7 +45,6 @@ gnulib_modules=" cycle-check d-ino d-type diacrit dirfd dirname dup2 error euidaccess exclude exitfail fchdir fcntl fcntl-safer fdl - file-set file-type fileblocks filemode filenamecat fnmatch-gnu fopen-safer fprintftime diff --git a/gl/lib/file-set.c b/gl/lib/file-set.c deleted file mode 100644 index ad03f90ce8..0000000000 --- a/gl/lib/file-set.c +++ /dev/null @@ -1,56 +0,0 @@ -#include -#include "file-set.h" - -#include "hash-triple.h" -#include "xalloc.h" - -/* Record destination file, FILE, and dev/ino from *STATS, - in the hash table, HT. If HT is NULL, return immediately. - If memory allocation fails, exit immediately. */ -void -record_file (Hash_table *ht, char const *file, struct stat const *stats) -{ - struct F_triple *ent; - - if (ht == NULL) - return; - - ent = xmalloc (sizeof *ent); - ent->name = xstrdup (file); - ent->st_ino = stats->st_ino; - ent->st_dev = stats->st_dev; - - { - struct F_triple *ent_from_table = hash_insert (ht, ent); - if (ent_from_table == NULL) - { - /* Insertion failed due to lack of memory. */ - xalloc_die (); - } - - if (ent_from_table != ent) - { - /* There was alread a matching entry in the table, so ENT was - not inserted. Free it. */ - triple_free (ent); - } - } -} - -/* Return true if there is an entry in hash table, HT, - for the file described by FILE and STATS. */ -bool -seen_file (Hash_table const *ht, char const *file, - struct stat const *stats) -{ - struct F_triple new_ent; - - if (ht == NULL) - return false; - - new_ent.name = (char *) file; - new_ent.st_ino = stats->st_ino; - new_ent.st_dev = stats->st_dev; - - return !!hash_lookup (ht, &new_ent); -} diff --git a/gl/lib/file-set.h b/gl/lib/file-set.h deleted file mode 100644 index a5a159e94d..0000000000 --- a/gl/lib/file-set.h +++ /dev/null @@ -1,12 +0,0 @@ -#include -#include -#include - -#include "hash.h" - -extern void record_file (Hash_table *ht, char const *file, - struct stat const *stats) - __attribute__((nonnull(2, 3))); - -extern bool seen_file (Hash_table const *ht, char const *file, - struct stat const *stats); diff --git a/gl/lib/hash-triple.c b/gl/lib/hash-triple.c deleted file mode 100644 index 74b9de80cf..0000000000 --- a/gl/lib/hash-triple.c +++ /dev/null @@ -1,48 +0,0 @@ -#include - -#include "hash-triple.h" - -#include - -#include "hash-pjw.h" -#include "same.h" -#include "same-inode.h" - -/* Hash an F_triple, and *do* consider the file name. */ -size_t -triple_hash (void const *x, size_t table_size) -{ - struct F_triple const *p = x; - size_t tmp = hash_pjw (p->name, table_size); - - /* Ignoring the device number here should be fine. */ - return (tmp ^ p->st_ino) % table_size; -} - -/* Hash an F_triple, without considering the file name. */ -size_t -triple_hash_no_name (void const *x, size_t table_size) -{ - struct F_triple const *p = x; - - /* Ignoring the device number here should be fine. */ - return p->st_ino % table_size; -} - -/* Compare two F_triple structs. */ -bool -triple_compare (void const *x, void const *y) -{ - struct F_triple const *a = x; - struct F_triple const *b = y; - return (SAME_INODE (*a, *b) && same_name (a->name, b->name)) ? true : false; -} - -/* Free an F_triple. */ -void -triple_free (void *x) -{ - struct F_triple *a = x; - free (a->name); - free (a); -} diff --git a/gl/lib/hash-triple.h b/gl/lib/hash-triple.h deleted file mode 100644 index 7abe970441..0000000000 --- a/gl/lib/hash-triple.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef HASH_TRIPLE_H -#define HASH_TRIPLE_H - -#include -#include -#include - -/* Describe a just-created or just-renamed destination file. */ -struct F_triple -{ - char *name; - ino_t st_ino; - dev_t st_dev; -}; - -extern size_t triple_hash (void const *x, size_t table_size); -extern size_t triple_hash_no_name (void const *x, size_t table_size); -extern bool triple_compare (void const *x, void const *y); -extern void triple_free (void *x); - -#endif diff --git a/gl/modules/file-set b/gl/modules/file-set deleted file mode 100644 index 7895cdac19..0000000000 --- a/gl/modules/file-set +++ /dev/null @@ -1,27 +0,0 @@ -Description: -Very specialized set-of-files code. - -Files: -lib/file-set.c -lib/file-set.h - -Depends-on: -hash -hash-triple -stdbool -xalloc -xalloc-die - -configure.ac: - -Makefile.am: -lib_SOURCES += file-set.c - -Include: -"file-set.h" - -License: -GPL - -Maintainer: -Jim Meyering diff --git a/gl/modules/hash-triple b/gl/modules/hash-triple deleted file mode 100644 index b746d47519..0000000000 --- a/gl/modules/hash-triple +++ /dev/null @@ -1,25 +0,0 @@ -Description: -Hash functions for file-related triples: name, device, inode. - -Files: -lib/hash-triple.c -lib/hash-triple.h - -Depends-on: -hash-pjw -same -same-inode - -configure.ac: - -Makefile.am: -lib_SOURCES += hash-triple.c - -Include: -"hash-triple.h" - -License: -GPL - -Maintainer: -Jim Meyering -- 2.47.2