Ignore:
Timestamp:
Aug 29, 2009, 3:22:10 AM (15 years ago)
Author:
Bruno Cornec
Message:
  • Some more fgets => mr_getline transformations
  • XWIN define is gone
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2.10/mondo/src/common/libmondo-files.c

    r2341 r2357  
    4646{
    4747    /*@ buffers ***************************************************** */
    48     static char output[MAX_STR_LEN];
     48    char *output = NULL;
    4949    char *command = NULL;
    5050
    5151    /*@ pointers **************************************************** */
    52     char *p;
     52    char *p = NULL;
    5353    FILE *fin;
    54 
    55     /*@ initialize pointers ***************************************** */
    56 
    57     p = output;
    5854
    5955    /*@************************************************************** */
     
    6460        fin = popen(command, "r");
    6561        if (fin) {
    66             (void) fgets(output, MAX_STR_LEN, fin);
     62            mr_getline(output, fin);
    6763            p = strchr(output, ' ');
     64            if (p != NULL) {
     65                *p = '\0';
     66            } else {
     67                mr_free(output);
     68                mr_asprintf(output, "");
     69            }
    6870            paranoid_pclose(fin);
    6971        }
     
    7173    } else {
    7274        log_it("File '%s' not found; cannot calc checksum", filename);
    73     }
    74     if (p) {
    75         *p = '\0';
     75        mr_asprintf(output, "");
    7676    }
    7777    return (output);
     
    125125    /*@ buffers ***************************************************** */
    126126    char *command = NULL;
    127     char incoming[MAX_STR_LEN];
     127    char *incoming = NULL;
    128128
    129129    /*@ long ******************************************************** */
     
    132132    /*@ pointers **************************************************** */
    133133    FILE *fin;
    134 
    135     /*@ initialize [0] to null ******************************************** */
    136     incoming[0] = '\0';
    137134
    138135    assert_string_is_neither_NULL_nor_zerolength(filename);
     
    152149            noof_lines = 0;
    153150        } else {
    154             (void) fgets(incoming, MAX_STR_LEN - 1, fin);
    155             while (strlen(incoming) > 0
    156                    && incoming[strlen(incoming) - 1] < 32) {
     151            mr_getline(incoming, fin);
     152            while (strlen(incoming) > 0 && incoming[strlen(incoming) - 1] < 32) {
    157153                incoming[strlen(incoming) - 1] = '\0';
    158154            }
    159155            noof_lines = atol(incoming);
     156            mr_free(incoming);
    160157        }
    161158        paranoid_pclose(fin);
     
    206203    char *outfname = NULL;
    207204    char *tmp = NULL;
    208     char incoming[MAX_STR_LEN];
     205    char *incoming = NULL;
    209206
    210207    /*@ int ********************************************************* */
     
    236233    mr_free(outfname);
    237234
    238     for (fgets(incoming, MAX_STR_LEN, fin); !feof(fin);
    239          fgets(incoming, MAX_STR_LEN, fin)) {
     235    for (mr_getline(incoming, fin); !feof(fin); mr_getline(incoming, fin)) {
    240236        i = strlen(incoming) - 1;
    241237        if (i >= 0 && incoming[i] < 32) {
     
    247243            log_it("Excluding '%s'-nonexistent\n", incoming);
    248244        }
    249     }
     245        mr_free(incoming);
     246    }
     247    mr_free(incoming);
     248
    250249    paranoid_fclose(fout);
    251250    paranoid_fclose(fin);
     
    470469{
    471470    /*@ buffers ***************************************************** */
    472     static char output[MAX_STR_LEN];
     471    char *output = NULL;
    473472    char *command = NULL;
    474473
     
    480479    if (!does_file_exist(filename)) {
    481480        log_it("Tring to get last line of nonexistent file (%s)", filename);
    482         output[0] = '\0';
     481        mr_asprintf(output, "");
    483482        return (output);
    484483    }
     
    487486    mr_free(command);
    488487
    489     (void) fgets(output, MAX_STR_LEN, fin);
     488    mr_getline(output, fin);
    490489    paranoid_pclose(fin);
    491490    while (strlen(output) > 0 && output[strlen(output) - 1] < 32) {
     
    526525 * @bug I don't know what this function does. However, it seems orphaned, so it should probably be removed.
    527526 */
    528 int
    529 make_checksum_list_file(char *filelist, char *cksumlist, char *comppath)
    530 {
     527int make_checksum_list_file(char *filelist, char *cksumlist, char *comppath) {
    531528    /*@ pointers **************************************************** */
    532529    FILE *fin;
     
    539536
    540537    /*@ buffer ****************************************************** */
    541     char stub_fname[1000];
    542     char curr_fname[1000];
     538    char *stub_fname = NULL;
     539    char *curr_fname = NULL;
    543540    char *curr_cksum = NULL;
    544541    char *tmp = NULL;
     
    571568        return (1);
    572569    }
    573     for (fgets(stub_fname, 999, fin); !feof(fin);
    574          fgets(stub_fname, 999, fin)) {
     570    for (mr_getline(stub_fname, fin); !feof(fin); mr_getline(stub_fname, fin)) {
    575571        if (stub_fname[(i = strlen(stub_fname) - 1)] < 32) {
    576572            stub_fname[i] = '\0';
    577573        }
    578574        mr_asprintf(tmp, "%s%s", comppath, stub_fname);
    579         strcpy(curr_fname, tmp + 1);
     575        mr_free(stub_fname);
     576
     577        mr_asprintf(curr_fname, "%s", tmp + 1);
    580578        mr_free(tmp);
    581579
     
    587585            current_time = get_time();
    588586            counter = 0;
     587            /* BERLIOS: 37 really ? */
    589588            curr_fname[37] = '\0';
    590589            curr_pos = ftello(fin) / 1024;
    591590            percentage = (int) (curr_pos * 100 / filelist_length);
    592591            time_taken = current_time - start_time;
    593             if (percentage == 0) {
    594                 /*              printf("%0d%% done      \r",percentage); */
    595             } else {
     592            if (percentage != 0) {
    596593                time_remaining = time_taken * 100 / (long) (percentage) - time_taken;
    597594                log_to_screen("%02d%% done   %02d:%02d taken   %02d:%02d remaining  %-37s\r", percentage, (int) (time_taken / 60), (int) (time_taken % 60), (int) (time_remaining / 60), (int) (time_remaining % 60), curr_fname);
     
    599596            sync();
    600597        }
    601     }
     598        mr_free(curr_fname);
     599    }
     600    mr_free(stub_fname);
     601
    602602    paranoid_fclose(fout);
    603603    paranoid_fclose(fin);
     
    678678
    679679    /*@ buffers **************************************************** */
    680     char incoming[MAX_STR_LEN];
     680    char *incoming = NULL;
    681681
    682682    /*@ end vars *************************************************** */
     
    689689        return (0);
    690690    }
    691     (void) fgets(incoming, MAX_STR_LEN - 1, fin);
     691    mr_getline(incoming, fin);
    692692    while (!feof(fin)) {
    693693        if (strstr(incoming, wildcard)) {
    694694            matches++;
    695695        }
    696         (void) fgets(incoming, MAX_STR_LEN - 1, fin);
    697     }
     696        mr_free(incoming);
     697        mr_getline(incoming, fin);
     698    }
     699    mr_free(incoming);
    698700    paranoid_fclose(fin);
    699701    return (matches);
     
    737739{
    738740    /*@ buffers ***************************************************** */
    739     char *fname;
     741    char *fname = NULL;
    740742    char *biggielist = NULL;
    741743    char *tmp = NULL;
     
    751753    /*@ end vars *************************************************** */
    752754
    753     malloc_string(fname);
    754755    log_it("Calculating size of all biggiefiles (in total)");
    755756    mr_asprintf(biggielist, "%s/biggielist.txt", bkpinfo->tmpdir);
     
    762763    } else {
    763764        log_msg(4, "Reading it...");
    764         for (fgets(fname, MAX_STR_LEN, fin); !feof(fin);
    765              fgets(fname, MAX_STR_LEN, fin)) {
     765        for (mr_getline(fname, fin); !feof(fin); mr_getline(fname, fin)) {
    766766            if (fname[strlen(fname) - 1] <= 32) {
    767767                fname[strlen(fname) - 1] = '\0';
     
    772772                    if (!tmp) {
    773773                        mr_free(tmp);
     774                        mr_free(fname);
    774775                        fatal_error("ntfsresize not found");
    775776                    }
     
    799800                break;
    800801            }
    801         }
     802            mr_free(fname);
     803        }
     804        mr_free(fname);
    802805    }
    803806    log_it("Closing...");
    804807    paranoid_fclose(fin);
    805808    log_it("Finished calculating total size of all biggiefiles");
    806     paranoid_free(fname);
    807809    return (scratchL);
    808810}
     
    817819{
    818820    /*@ buffer ****************************************************** */
    819     char tmp[MAX_STR_LEN];
     821    char *tmp = NULL;
    820822    char *command = NULL;
    821823    long long llres;
     
    833835      llres = 0;
    834836    } else {
    835       (void) fgets(tmp, MAX_STR_LEN, fin);
     837      mr_getline(tmp, fin);
    836838      paranoid_pclose(fin);
    837839      p = strchr(tmp, '\t');
     
    843845        llres += (int) (*p - '0');
    844846      }
     847      mr_free(tmp);
    845848    }
    846849    mr_free(command);
     
    12891292    }
    12901293    /* BERLIOS: This is just plain WRONG !! */
    1291     mr_asprintf(do_not_compress_these, "%s", last_line_of_file(tmp));
     1294    do_not_compress_these = last_line_of_file(tmp);
    12921295    mr_free(tmp);
    12931296
Note: See TracChangeset for help on using the changeset viewer.