| 199 |
206 |
| 200 /* Scan subdirectories */ |
207 /* Scan subdirectories */ |
| 201 if (!S_ISREG(filelist->st_mode)) { |
208 if (!S_ISREG(filelist->st_mode)) { |
| 202 if (S_ISDIR(filelist->st_mode)) { |
209 if (S_ISDIR(filelist->st_mode)) { |
| 203 if (settings->recursive) { |
210 if (settings->recursive) { |
| 204 string_list_t *recoutput = settings->verbose ? new_string_list_t() : NULL; |
211 if (is_dir_excluded(settings->excludeDirs, filelist->filename)) { |
| 205 scanresult_t recresult; |
212 if (!settings->matchesOnly && settings->verbose) { |
| 206 recresult.ext = result->ext; |
213 // TODO: print "no match" |
| 207 scanDirectory( |
214 } |
| 208 (scanner_t) {filelist->filename, scanner.spaces+1}, |
215 } else { |
| 209 settings, recoutput, &recresult); |
216 string_list_t *recoutput = settings->verbose ? new_string_list_t() : NULL; |
| 210 result->result += recresult.result; |
217 scanresult_t recresult; |
| 211 if (settings->verbose && (!settings->matchesOnly || recresult.result > 0)) { |
218 recresult.ext = result->ext; |
| 212 outbuf = (char*) malloc(81); |
219 scanDirectory( |
| 213 snprintf(outbuf, 81, "%*s/%*s%13u %s\n", |
220 (scanner_t) {filelist->filename, scanner.spaces+1}, |
| 214 filelist->displayname_len+scanner.spaces, filelist->displayname, |
221 settings, recoutput, &recresult); |
| 215 60-filelist->displayname_len-scanner.spaces-1, "", |
222 result->result += recresult.result; |
| 216 recresult.result, result_type); |
223 if (settings->verbose && (!settings->matchesOnly || recresult.result > 0)) { |
| 217 add_string(output, outbuf); |
224 outbuf = (char*) malloc(81); |
| 218 for (unsigned i = 0 ; i < recoutput->count ; i++) { |
225 snprintf(outbuf, 81, "%*s/%*s%13u %s\n", |
| 219 add_string(output, recoutput->items[i]); |
226 filelist->displayname_len+scanner.spaces, filelist->displayname, |
| 220 } |
227 60-filelist->displayname_len-scanner.spaces-1, "", |
| |
228 recresult.result, result_type); |
| |
229 add_string(output, outbuf); |
| |
230 for (unsigned i = 0 ; i < recoutput->count ; i++) { |
| |
231 add_string(output, recoutput->items[i]); |
| |
232 } |
| |
233 } |
| |
234 destroy_string_list_t(recoutput); |
| 221 } |
235 } |
| 222 destroy_string_list_t(recoutput); |
|
| 223 } |
236 } |
| 224 } else if (!settings->matchesOnly && settings->verbose) { |
237 } else if (!settings->matchesOnly && settings->verbose) { |
| 225 outbuf = (char*) malloc(81); |
238 outbuf = (char*) malloc(81); |
| 226 snprintf(outbuf, 81, "%*s\n", |
239 snprintf(outbuf, 81, "%*s\n", |
| 227 filelist->displayname_len+scanner.spaces, |
240 filelist->displayname_len+scanner.spaces, |