Ignore:
Timestamp:
07/21/06 14:29:00 (8 years ago)
Author:
xi
Message:

Fix some leaks, segfaults and warnings.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libyaml/trunk/tests/run-scanner.c

    r208 r210  
    88main(int argc, char *argv[]) 
    99{ 
    10     FILE *file; 
    11     yaml_parser_t parser; 
    12     yaml_token_t token; 
    13     int done = 0; 
    14     int count = 0; 
     10    int number; 
    1511 
    16     if (argc != 2) { 
    17         printf("Usage: %s file.yaml\n", argv[0]); 
     12    if (argc < 2) { 
     13        printf("Usage: %s file1.yaml ...\n", argv[0]); 
    1814        return 0; 
    1915    } 
    20     file = fopen(argv[1], "rb"); 
    21     assert(file); 
    2216 
    23     assert(yaml_parser_initialize(&parser)); 
     17    for (number = 1; number < argc; number ++) 
     18    { 
     19        FILE *file; 
     20        yaml_parser_t parser; 
     21        yaml_token_t token; 
     22        int done = 0; 
     23        int count = 0; 
     24        int error = 0; 
    2425 
    25     yaml_parser_set_input_file(&parser, file); 
     26        printf("[%d] Scanning '%s': ", number, argv[number]); 
     27        fflush(stdout); 
    2628 
    27     while (!done) 
    28     { 
    29         assert(yaml_parser_scan(&parser, &token)); 
     29        file = fopen(argv[number], "rb"); 
     30        assert(file); 
    3031 
    31         done = (token.type == YAML_STREAM_END_TOKEN); 
     32        assert(yaml_parser_initialize(&parser)); 
    3233 
    33         yaml_token_delete(&token); 
     34        yaml_parser_set_input_file(&parser, file); 
    3435 
    35         count ++; 
     36        while (!done) 
     37        { 
     38            if (!yaml_parser_scan(&parser, &token)) { 
     39                error = 1; 
     40                break; 
     41            } 
     42 
     43            done = (token.type == YAML_STREAM_END_TOKEN); 
     44 
     45            yaml_token_delete(&token); 
     46 
     47            count ++; 
     48        } 
     49 
     50        yaml_parser_delete(&parser); 
     51 
     52        assert(!fclose(file)); 
     53 
     54        printf("%s (%d tokens)\n", (error ? "FAILURE" : "SUCCESS"), count); 
    3655    } 
    37  
    38     yaml_parser_delete(&parser); 
    39  
    40     fclose(file); 
    41  
    42     printf("Parsing the file '%s': %d tokens\n", argv[1], count); 
    4356 
    4457    return 0; 
Note: See TracChangeset for help on using the changeset viewer.