diff options
author | Joseph Hunkeler <jhunk@stsci.edu> | 2011-04-20 23:47:28 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunk@stsci.edu> | 2011-04-20 23:47:28 -0400 |
commit | 36a352c6bbe227ab9e6d6e1508827a87a48fe06c (patch) | |
tree | 2d430a12106c2d7afcc978855ed66c3a59af4aa6 /util.c | |
parent | b204f6439e4c5a83d009cc618cf96e9d9750b9e5 (diff) | |
download | duser-36a352c6bbe227ab9e6d6e1508827a87a48fe06c.tar.gz |
Initial commit after breaking up duser.c into more chunks.
Diffstat (limited to 'util.c')
-rw-r--r-- | util.c | 75 |
1 files changed, 75 insertions, 0 deletions
@@ -0,0 +1,75 @@ +#define _GNU_SOURCE +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <ctype.h> +#include "duser.h" + +void stats_init(stats_t *s) +{ + s->lines = 0; + s->files = 0; + s->matches = 0; + s->added = 0; + s->deleted = 0; + s->modified = 0; +} + +int user_choice(char c) +{ + if(c == 'y' || c == 'Y') + return 0; + + return 1; +} + +int check_cmd_string(char** args, const char* str2, int count) +{ + int i = 0; + while(i < count) + { + if((strncmp(args[i], str2, strlen(args[i]))) == 0) + { + return 0; + } + i++; + } + return -1; +} + +//I'm using this until regex can get its head out of its... +//toilet bowl. +int strfind(const char* str1, const char* str2) +{ + if((strcasestr(str1, str2)) != 0) + { + if((strcasecmp(str1, str2)) == 0) + return 0; + } + return -1; +} + +int strval(const char* str) +{ + const char* bad = "!#$%^&*()+={}[]|\\<>,"; + unsigned int i = 0; + unsigned int ibad = 0; + for(i = 0 ; i < strlen(str) ; i++) + { + unsigned char c = str[i]; + if((i == 0) && !(isalpha(c))) + { + return -1; + } + for(ibad = 0 ; ibad <= strlen(bad) ; ibad++) + { + if(str[i] == bad[ibad]) + { + return -1; + } + } + } + + return 0; +} + |