filenames.h: #include "hashtab.h".

include/
	* filenames.h: #include "hashtab.h".
	(filename_hash, filename_eq): Declare.
	libiberty/
	* filename_cmp.c (filename_hash, filename_eq): New functions.

From-SVN: r189472
This commit is contained in:
Doug Evans 2012-07-13 22:12:28 +00:00 committed by Doug Evans
parent c8b8af718c
commit 69488641ac
4 changed files with 64 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2012-07-13 Doug Evans <dje@google.com>
* filenames.h: #include "hashtab.h".
(filename_hash, filename_eq): Declare.
2012-06-18 Doug Evans <dje@google.com>
* dwarf2.def (DW_OP): Add DW_OP_GNU_const_index.

View File

@ -26,6 +26,8 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef FILENAMES_H
#define FILENAMES_H
#include "hashtab.h" /* for hashval_t */
#ifdef __cplusplus
extern "C" {
#endif
@ -84,6 +86,10 @@ extern int filename_cmp (const char *s1, const char *s2);
extern int filename_ncmp (const char *s1, const char *s2,
size_t n);
extern hashval_t filename_hash (const void *s);
extern int filename_eq (const void *s1, const void *s2);
#ifdef __cplusplus
}
#endif

View File

@ -1,3 +1,7 @@
2012-07-13 Doug Evans <dje@google.com>
* filename_cmp.c (filename_hash, filename_eq): New functions.
2012-06-29 Andreas Schwab <schwab@linux-m68k.org>
* copying-lib.texi (Library Copying): Don't use @heading inside

View File

@ -141,3 +141,52 @@ filename_ncmp (const char *s1, const char *s2, size_t n)
return 0;
#endif
}
/*
@deftypefn Extension hashval_t filename_hash (const void *@var{s})
Return the hash value for file name @var{s} that will be compared
using filename_cmp.
This function is for use with hashtab.c hash tables.
@end deftypefn
*/
hashval_t
filename_hash (const void *s)
{
/* The cast is for -Wc++-compat. */
const unsigned char *str = (const unsigned char *) s;
hashval_t r = 0;
unsigned char c;
while ((c = *str++) != 0)
{
if (c == '\\')
c = '/';
c = TOLOWER (c);
r = r * 67 + c - 113;
}
return r;
}
/*
@deftypefn Extension int filename_eq (const void *@var{s1}, const void *@var{s2})
Return non-zero if file names @var{s1} and @var{s2} are equivalent.
This function is for use with hashtab.c hash tables.
@end deftypefn
*/
int
filename_eq (const void *s1, const void *s2)
{
/* The casts are for -Wc++-compat. */
return filename_cmp ((const char *) s1, (const char *) s2) == 0;
}