X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=commands.c;h=3eea9046b8094bf44ad612799604b1a9323fd1c4;hp=2a4c7be3463c46145d407a9bdd213c3d5ccbe1fb;hb=ca1036a5694287e6ccf6d95af9e33a7e1d5a75fd;hpb=c6b020e0fa5c38e4fd8a6ffb75e00338c0535b11 diff --git a/commands.c b/commands.c index 2a4c7be..3eea904 100644 --- a/commands.c +++ b/commands.c @@ -823,126 +823,6 @@ int mutt_save_message (HEADER * h, int delete, return -1; } -int mutt_update_list_file (char *filename, char *section, char *key, - char *line) -{ - FILE *ifp; - FILE *ofp; - char buf[HUGE_STRING]; - char oldfile[_POSIX_PATH_MAX]; - char *c; - int ext = 0, done = 0, r = 0; - - snprintf (oldfile, sizeof (oldfile), "%s.bak", filename); - debug_print (1, ("Renaming %s to %s\n", filename, oldfile)); - - /* if file not exist, create it */ - if ((ifp = safe_fopen (filename, "a"))) - fclose (ifp); - if (_mutt_rename_file (filename, oldfile, 1)) { - mutt_perror (_("Unable to create backup file")); - - return (-1); - } - debug_print (1, ("Opening %s\n", oldfile)); - if (!(ifp = safe_fopen (oldfile, "r"))) { - mutt_perror (_("Unable to open backup file for reading")); - - return (-1); - } - debug_print (1, ("Opening %s\n", filename)); - if (!(ofp = safe_fopen (filename, "w"))) { - fclose (ifp); - mutt_perror (_("Unable to open new file for writing")); - - return (-1); - } - if (mx_lock_file (filename, fileno (ofp), 1, 0, 1)) { - fclose (ofp); - fclose (ifp); - mutt_error (_("Unable to lock %s, old file saved as %s"), filename, - oldfile); - return (-1); - } - - if (section) { - while (r != EOF && !done && fgets (buf, sizeof (buf), ifp)) { - r = fputs (buf, ofp); - c = buf; - while (*c && *c != '\n') - c++; - c[0] = 0; /* strip EOL */ - if (!strncmp (buf, "#: ", 3) && !str_casecmp (buf + 3, section)) - done++; - } - if (r != EOF && !done) { - snprintf (buf, sizeof (buf), "#: %s\n", section); - r = fputs (buf, ofp); - } - done = 0; - } - - while (r != EOF && fgets (buf, sizeof (buf), ifp)) { - if (ext) { - c = buf; - while (*c && (*c != '\r') && (*c != '\n')) - c++; - c--; - if (*c != '\\') - ext = 0; - } - else if ((section && !strncmp (buf, "#: ", 3))) { - if (!done && line) { - fputs (line, ofp); - fputc ('\n', ofp); - } - r = fputs (buf, ofp); - done++; - break; - } - else if (key && !strncmp (buf, key, str_len (key)) && - (!*key || buf[str_len (key)] == ' ')) { - c = buf; - ext = 0; - while (*c && (*c != '\r') && (*c != '\n')) - c++; - c--; - if (*c == '\\') - ext = 1; - if (!done && line) { - r = fputs (line, ofp); - if (*key) - r = fputc ('\n', ofp); - done++; - } - } - else { - r = fputs (buf, ofp); - } - } - - while (r != EOF && fgets (buf, sizeof (buf), ifp)) - r = fputs (buf, ofp); - - /* If there wasn't a line to replace, put it on the end of the file */ - if (r != EOF && !done && line) { - fputs (line, ofp); - r = fputc ('\n', ofp); - } - mx_unlock_file (filename, fileno (ofp), 0); - fclose (ofp); - fclose (ifp); - if (r != EOF) { - unlink (oldfile); - return 0; - } - unlink (filename); - mutt_error (_("Cannot write new %s, old file saved as %s"), filename, - oldfile); - return (-1); -} - - void mutt_version (void) { mutt_message (mutt_make_version ());