scanner.c

changeset 25
802c5382f499
parent 23
778388400f7b
child 27
95a958e3de88
     1.1 --- a/scanner.c	Fri Oct 21 15:09:26 2011 +0200
     1.2 +++ b/scanner.c	Thu Dec 01 17:04:30 2011 +0100
     1.3 @@ -56,11 +56,14 @@
     1.4          continue;
     1.5        }
     1.6  
     1.7 -      /* Count lines */
     1.8 -      lines = 0;
     1.9 -      bfile = false;
    1.10 -      bfile_reset(settings->bfileHeuristics);
    1.11        if (testSuffix(filename, settings)) {
    1.12 +        /* Count lines */
    1.13 +        lines = 0;
    1.14 +        bfile = false;
    1.15 +        bfile_reset(settings->bfileHeuristics);
    1.16 +        char line_buffer[2048];
    1.17 +        int line_buffer_offset = 0;
    1.18 +
    1.19          FILE *file = fopen(filename, "r");
    1.20          if (file == NULL) {
    1.21            printf(entryname);
    1.22 @@ -74,7 +77,19 @@
    1.23            bfile = bfile_check(settings->bfileHeuristics, a);
    1.24  
    1.25            if (a == 10) {
    1.26 +            line_buffer[line_buffer_offset] = 0;
    1.27 +            /* TODO: do regex parsing */
    1.28 +
    1.29 +            line_buffer_offset = 0;
    1.30              lines++;
    1.31 +          } else {
    1.32 +            if (line_buffer_offset < 2048) {
    1.33 +              line_buffer[line_buffer_offset] = a;
    1.34 +              line_buffer_offset++;
    1.35 +            } else {
    1.36 +              line_buffer[line_buffer_offset-1] = 0;
    1.37 +              settings->confusing_lnlen = true;
    1.38 +            }
    1.39            }
    1.40          } while (!bfile && a != EOF);
    1.41          fclose(file);

mercurial