diff options
author | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2013-07-21 14:00:10 +0000 |
---|---|---|
committer | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2013-07-21 14:00:10 +0000 |
commit | 46396e49ab3578d76207d4124821c41d4bfa9bf9 (patch) | |
tree | cfb74cce3770ff3086fd7ad48f3c28b273539034 /app/mkfontscale/hash.c | |
parent | b99f409ae1fc5e815664d123c90efb8fb1f445d0 (diff) |
Update to mkfontscale 1.1.1
Diffstat (limited to 'app/mkfontscale/hash.c')
-rw-r--r-- | app/mkfontscale/hash.c | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/app/mkfontscale/hash.c b/app/mkfontscale/hash.c index 135380bff..3adfb6861 100644 --- a/app/mkfontscale/hash.c +++ b/app/mkfontscale/hash.c @@ -20,6 +20,8 @@ THE SOFTWARE. */ +#include "config.h" + #include <stdlib.h> #include <stdio.h> #include <string.h> @@ -41,14 +43,11 @@ hash(const char *string) } static void -strcpy_lwr(char *dst, const char *src) +str_tolower(char *s) { - while(1) { - *dst = tolower(*src); - if(*src == '\0') - break; - src++; - dst++; + while(*s != '\0') { + *s = tolower(*s); + s++; } } @@ -79,7 +78,7 @@ destroyHashTable(HashTablePtr table) char * getHash(HashTablePtr table, const char *key) { - int i = hash(key); + unsigned int i = hash(key); HashBucketPtr bp; for(bp = table[i]; bp; bp = bp->next) { if(strcasecmp(bp->key, key) == 0) @@ -91,18 +90,17 @@ getHash(HashTablePtr table, const char *key) int putHash(HashTablePtr table, char *key, char *value, int prio) { - int i = hash(key); + unsigned int i = hash(key); char *keycopy = NULL, *valuecopy = NULL; HashBucketPtr bp; for(bp = table[i]; bp; bp = bp->next) { if(strcasecmp(bp->key, key) == 0) { if(prio > bp->prio) { - keycopy = malloc(strlen(key) + 1); + keycopy = strdup(key); if(keycopy == NULL) goto fail; - strcpy_lwr(keycopy, key); - valuecopy = malloc(strlen(value) + 1); + str_tolower(keycopy); + valuecopy = strdup(value); if(valuecopy == NULL) goto fail; - strcpy(valuecopy, value); free(bp->key); free(bp->value); bp->key = keycopy; @@ -111,14 +109,13 @@ putHash(HashTablePtr table, char *key, char *value, int prio) return 1; } } - keycopy = malloc(strlen(key) + 1); + keycopy = strdup(key); if(keycopy == NULL) goto fail; - strcpy_lwr(keycopy, key); - valuecopy = malloc(strlen(value) + 1); + str_tolower(keycopy); + valuecopy = strdup(value); if(valuecopy == NULL) goto fail; - strcpy(valuecopy, value); bp = malloc(sizeof(HashBucketRec)); if(bp == NULL) goto fail; |