src/scanner.c

changeset 60
69be673a4fd0
parent 58
bb512754aaf3
child 61
9c8d768f0244
     1.1 --- a/src/scanner.c	Sat Jul 25 17:53:54 2020 +0200
     1.2 +++ b/src/scanner.c	Sat Jul 25 18:28:01 2020 +0200
     1.3 @@ -112,11 +112,11 @@
     1.4    return list;
     1.5  }
     1.6  
     1.7 -int scanDirectory(scanner_t scanner, settings_t* settings,
     1.8 -    string_list_t* output) {
     1.9 +void scanDirectory(scanner_t scanner, settings_t* settings,
    1.10 +    string_list_t* output, scanresult_t* result) {
    1.11  
    1.12 -  int lines, a;
    1.13 -  int lineSum = 0;
    1.14 +  result->directory = 0;
    1.15 +  int a;
    1.16    bool bfile;
    1.17    char *outbuf;
    1.18  
    1.19 @@ -128,15 +128,17 @@
    1.20      if (!S_ISREG(filelist->st_mode)) {
    1.21        if (settings->recursive && S_ISDIR(filelist->st_mode)) {
    1.22          string_list_t *recoutput = new_string_list_t();
    1.23 -        lines = scanDirectory(
    1.24 +        scanresult_t recresult;
    1.25 +        scanDirectory(
    1.26              (scanner_t) {filelist->filename, scanner.spaces+1},
    1.27 -            settings, recoutput);
    1.28 -        lineSum += lines;
    1.29 +            settings, recoutput, &recresult);
    1.30 +        result->directory += recresult.directory;
    1.31          if (!settings->matchesOnly || recoutput->count > 0) {
    1.32            outbuf = (char*) malloc(81);
    1.33            snprintf(outbuf, 81, "%*s/%*s%13d lines\n",
    1.34                filelist->displayname_len+scanner.spaces, filelist->displayname,
    1.35 -              60-filelist->displayname_len-scanner.spaces-1, "", lines);
    1.36 +              60-filelist->displayname_len-scanner.spaces-1, "",
    1.37 +              recresult.directory);
    1.38            add_string(output, outbuf);
    1.39            for (int i = 0 ; i < recoutput->count ; i++) {
    1.40              add_string(output, recoutput->items[i]);
    1.41 @@ -155,7 +157,7 @@
    1.42          && !testSuffix(filelist->displayname, settings->excludeSuffixes)) {
    1.43  
    1.44          /* Count lines */
    1.45 -        lines = 0;
    1.46 +        int lines = 0;
    1.47          bfile = false;
    1.48          bfile_reset(settings->bfileHeuristics);
    1.49          regex_parser_reset(settings->regex);
    1.50 @@ -209,7 +211,7 @@
    1.51                add_string(output, outbuf);
    1.52              }
    1.53            } else {
    1.54 -            lineSum += lines;
    1.55 +            result->directory += lines;
    1.56              outbuf = (char*) malloc(81);
    1.57              snprintf(outbuf, 81, "%*s%*s%13d lines\n",
    1.58                  filelist->displayname_len+scanner.spaces, filelist->displayname,
    1.59 @@ -235,6 +237,4 @@
    1.60      filelist = filelist->next;
    1.61      free(freethis);
    1.62    }
    1.63 -
    1.64 -  return lineSum;
    1.65  }

mercurial