/trunk/HuntnGather/Hunt/Hunt.c/Hunt.c |
@@ -61,10 +61,43 @@ |
} |
|
/* |
* Compare "name" and "needle" for equality. |
*/ |
int compare(char *name, char *needle) { |
#if defined ___AmigaOS___ |
ULONG size; |
char *upn, *upe; |
int success; |
UBYTE *pattern; |
|
upe = strupr(needle); |
upn = strupr(name); |
|
size = strlen(upe) * 3; |
|
if(pattern = AllocVec(size, MEMF_ANY|MEMF_CLEAR)) { |
|
if(ParsePatternNoCase(upe, pattern, (LONG)size) >= 0) { |
success = MatchPatternNoCase(pattern, upn); |
|
FreeMem(pattern, size); |
|
return success; |
} |
} |
|
return FALSE; |
#else |
return strstr(strupr(name), strupr(needle) != NULL; |
#endif |
} |
|
|
/* |
* |
* Search the database for a matching string. |
*/ |
void SearchDatabase(char *dbFile, char* string) { |
void SearchDatabase(char *dbFile, char* needle) { |
FILE *fp; |
char *name; |
char *path; |
@@ -110,7 +143,7 @@ |
break; |
case '\t': |
// Case insensitive match. |
if(strstr(strupr(name), strupr(string)) != NULL) { |
if(compare(name, needle)) { |
match = TRUE; |
} |
if(path != NULL) { |
@@ -168,17 +201,17 @@ |
dbFile = optarg; |
break; |
case 'h': |
fprintf(stdout, "SYNTAX: %s [-d DATABASE] STRING\n", argv[0]); |
fprintf(stdout, "SYNTAX: %s [-d DATABASE] PATTERN\n", argv[0]); |
break; |
case '?': |
fprintf(stderr, "Invalid option %c.\n", optopt); |
fprintf(stdout, "SYNTAX: %s [-d DATABASE] STRING\n", argv[0]); |
fprintf(stdout, "SYNTAX: %s [-d DATABASE] PATTERN\n", argv[0]); |
return 1; |
} |
} |
|
if(optind > argc) { |
fprintf(stdout, "SYNTAX: %s [-d DATABASE] STRING\n", argv[0]); |
fprintf(stdout, "SYNTAX: %s [-d DATABASE] PATTERN\n", argv[0]); |
return 1; |
} |
|