Commit 69488641 by Doug Evans Committed by Doug Evans

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
parent c8b8af71
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.
......
......@@ -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
......
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
......
......@@ -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;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment