diff options
author | Jim Meyering <jim@meyering.net> | 2007-09-25 22:24:21 +0200 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 2007-09-27 10:53:36 +0200 |
commit | 491c54ca99717339656509111012e88a6e3def84 (patch) | |
tree | 17625f5764a55b01b01576d1cf21209023dfd6d2 /gl/lib | |
parent | beaa39a649939cf19994bf773871a810ef896701 (diff) | |
download | coreutils-491c54ca99717339656509111012e88a6e3def84.tar.xz |
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.
Diffstat (limited to 'gl/lib')
-rw-r--r-- | gl/lib/file-set.c | 56 | ||||
-rw-r--r-- | gl/lib/file-set.h | 12 | ||||
-rw-r--r-- | gl/lib/hash-triple.c | 48 | ||||
-rw-r--r-- | gl/lib/hash-triple.h | 21 |
4 files changed, 0 insertions, 137 deletions
diff --git a/gl/lib/file-set.c b/gl/lib/file-set.c deleted file mode 100644 index ad03f90ce..000000000 --- a/gl/lib/file-set.c +++ /dev/null @@ -1,56 +0,0 @@ -#include <config.h> -#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 a5a159e94..000000000 --- a/gl/lib/file-set.h +++ /dev/null @@ -1,12 +0,0 @@ -#include <sys/types.h> -#include <sys/stat.h> -#include <stdbool.h> - -#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 74b9de80c..000000000 --- a/gl/lib/hash-triple.c +++ /dev/null @@ -1,48 +0,0 @@ -#include <config.h> - -#include "hash-triple.h" - -#include <stdlib.h> - -#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 7abe97044..000000000 --- a/gl/lib/hash-triple.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef HASH_TRIPLE_H -#define HASH_TRIPLE_H - -#include <sys/types.h> -#include <sys/stat.h> -#include <stdbool.h> - -/* 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 |