1 /* This file contains path component name utility functions.
2 *
3 * The entry points into this file are:
4 * normalize_name normalize a path component name for hashing purposes
5 * compare_name check whether two path component names are equivalent
6 *
7 * Created:
8 * April 2009 (D.C. van Moolenbroek)
9 */
10
11 #include "inc.h"
12
13 #include <ctype.h>
14
15 /*===========================================================================*
16 * normalize_name *
17 *===========================================================================*/
normalize_name(char dst[NAME_MAX+1],char * src)18 void normalize_name(char dst[NAME_MAX+1], char *src)
19 {
20 /* Normalize the given path component name, storing the result in the given
21 * buffer.
22 */
23 size_t i, size;
24
25 size = strlen(src) + 1;
26
27 assert(size <= NAME_MAX+1);
28
29 if (sffs_params->p_case_insens) {
30 for (i = 0; i < size; i++)
31 *dst++ = tolower((int)*src++);
32 }
33 else memcpy(dst, src, size);
34 }
35
36 /*===========================================================================*
37 * compare_name *
38 *===========================================================================*/
compare_name(char * name1,char * name2)39 int compare_name(char *name1, char *name2)
40 {
41 /* Return TRUE if the given path component names are equivalent, FALSE
42 * otherwise.
43 */
44 int r;
45
46 if (sffs_params->p_case_insens)
47 r = strcasecmp(name1, name2);
48 else
49 r = strcmp(name1, name2);
50
51 return r ? FALSE : TRUE;
52 }
53