HuntnGather – Diff between revs 47 and 49

Subversion Repositories:
Rev:
Show entire fileIgnore whitespace
Rev 47 Rev 49
Line 51... Line 51...
51   51  
52 /* 52 /*
53 * 53 *
54 * Search the database for a matching string. 54 * Search the database for a matching string.
55 */ 55 */
56 void SearchDatabase(char *dbFile, char* needle) { 56 void SearchDatabaseExact(char *dbFile, char *needle) {
57 #if defined ___AsyncIO___ 57 #if defined ___AsyncIO___
58 struct AsyncFile *fp; 58 struct AsyncFile *fp;
59 #else 59 #else
60 FILE *fp; 60 FILE *fp;
Line 93... Line 93...
93 fclose(fp); 93 fclose(fp);
94 #endif 94 #endif
95 return; 95 return;
96 } 96 }
Line -... Line 97...
-   97  
-   98 #if defined ___AmigaOS___
-   99 #if defined ___NOCASE_FS___
-   100 if(Strnicmp(entry->name, needle, StringLenMax(entry->name, needle)) == 0) {
-   101 #else
-   102 if(StrnCmp(entry->name, needle, StringLenMax(entry->name, needle)) == 0) {
-   103 #endif
97   104 #else
-   105 if(strstr(entry->name, needle) != NULL) {
-   106 #endif
-   107 fprintf(stdout, "%s\n", entry->path);
-   108 }
-   109  
-   110 free(entry->name);
-   111 free(entry->path);
-   112 free(entry);
-   113 entry = NULL;
-   114  
-   115 free(line->string);
-   116 free(line);
-   117 line = NULL;
-   118 }
-   119  
-   120 if(line != NULL) {
-   121 free(line->string);
-   122 free(line);
-   123 line = NULL;
-   124 }
-   125  
-   126 #if defined ___AsyncIO___
-   127 CloseAsync(fp);
-   128 #else
-   129 fclose(fp);
-   130 #endif
-   131 }
-   132  
-   133 /*
-   134 *
-   135 * Search the database for a matching string.
-   136 */
-   137 void SearchDatabasePattern(char *dbFile, UBYTE *pattern) {
-   138 #if defined ___AsyncIO___
-   139 struct AsyncFile *fp;
-   140 #else
-   141 FILE *fp;
-   142 #endif
-   143 dbEntry *entry;
-   144 dbLine *line = NULL;
-   145  
-   146 // Open database file for reading.
-   147 #if defined ___AsyncIO___
-   148 if((fp = OpenAsync(dbFile, MODE_READ, ASYNC_BUF)) == NULL) {
-   149 #else
-   150 if((fp = fopen(dbFile, "r")) == NULL) {
-   151 #endif
-   152 fprintf(stderr, "Could not open file '%s' for reading.\n", dbFile);
-   153 return;
-   154 }
-   155  
-   156 while(PROGRAM_RUN && (line = ReadLine(fp)) != NULL) {
-   157 #if defined ___AmigaOS___
-   158 // Check if CTRL+C was pressed and abort the program.
-   159 if(SetSignal(0L, SIGBREAKF_CTRL_C) & SIGBREAKF_CTRL_C) {
-   160 PROGRAM_RUN = FALSE;
-   161 continue;
-   162 }
-   163 #endif
-   164  
-   165 if((entry = CreateDatabaseEntry(line)) == NULL) {
-   166 fprintf(stderr, "Unable to create database entry.\n");
-   167 free(line->string);
-   168 free(line);
-   169 line = NULL;
-   170  
-   171 #if defined ___AsyncIO___
-   172 CloseAsync(fp);
-   173 #else
-   174 fclose(fp);
-   175 #endif
-   176 return;
-   177 }
-   178  
98 if(StringMatch(entry->name, needle)) { 179 if(MatchPatternNoCase(pattern, entry->name)) {
99 fprintf(stdout, "%s\n", entry->path); 180 fprintf(stdout, "%s\n", entry->path);
Line 100... Line 181...
100 } 181 }
101   182  
Line 125... Line 206...
125 /* 206 /*
126 * 207 *
127 * Search the database for the matching string. 208 * Search the database for the matching string.
128 */ 209 */
129 void Hunt(char *dbFile, char *needle) { 210 void Hunt(char *dbFile, char *needle) {
-   211 #if defined ___AmigaOS___
-   212 UBYTE *pattern;
-   213 ULONG size;
-   214  
-   215 #if defined ___NOCASE_FS___
-   216 StrUpr(needle);
-   217 #endif
-   218  
-   219 size = strlen(needle) * 2 + 2;
-   220  
-   221 if(pattern = AllocVec(size, MEMF_ANY|MEMF_CLEAR)) {
-   222 switch(ParsePatternNoCase(needle, pattern, (LONG)size)) {
-   223 case 1: // the needle contains wildcards
-   224 SearchDatabasePattern(dbFile, pattern);
-   225 break;
-   226 case 0: // no wildcards contained in needle
-   227 SearchDatabaseExact(dbFile, needle);
-   228 break;
-   229 case -1: // overflow condition
-   230 fprintf(stderr, "Pattern '%s' could not be parsed.\n", needle);
-   231 break;
-   232 }
-   233 FreeVec(pattern);
-   234 pattern = NULL;
-   235 return;
-   236 }
-   237 #endif
-   238  
130 // Search the database for the matching string. 239 // Search the database for the matching string.
131 SearchDatabase(dbFile, needle); 240 SearchDatabaseExact(dbFile, needle);
132 } 241 }
Line 133... Line 242...
133   242  
134 void usage(char *name) { 243 void usage(char *name) {
135 fprintf(stdout, "Hunt & Gather - %s, a file index search tool. \n", name); 244 fprintf(stdout, "Hunt & Gather - %s, a file index search tool. \n", name);