1 #include "io-dump/dump-remover.h"
2 #include "io-dump/dump-util.h"
3 #include "io/read-pref-file.h"
4 #include "util/angband-files.h"
7 * @brief prefファイルを選択して処理する /
8 * Ask for a "user pref line" and process it
9 * @brief prf出力内容を消去する /
10 * Remove old lines automatically generated before.
11 * @param orig_file 消去を行うファイル名
13 void remove_auto_dump(concptr orig_file, concptr auto_dump_mark)
16 bool between_mark = FALSE;
19 long header_location = 0;
20 char header_mark_str[80];
21 char footer_mark_str[80];
23 sprintf(header_mark_str, auto_dump_header, auto_dump_mark);
24 sprintf(footer_mark_str, auto_dump_footer, auto_dump_mark);
25 size_t mark_len = strlen(footer_mark_str);
28 orig_fff = angband_fopen(orig_file, "r");
29 if (!orig_fff) return;
32 char tmp_file[FILE_NAME_SIZE];
33 if (!open_temporary_file(&tmp_fff, tmp_file)) return;
37 if (angband_fgets(orig_fff, buf, sizeof(buf)))
41 fseek(orig_fff, header_location, SEEK_SET);
53 if (!strcmp(buf, header_mark_str))
55 header_location = ftell(orig_fff);
62 fprintf(tmp_fff, "%s\n", buf);
68 if (!strncmp(buf, footer_mark_str, mark_len))
71 if (!sscanf(buf + mark_len, " (%d)", &tmp)
74 fseek(orig_fff, header_location, SEEK_SET);
84 angband_fclose(orig_fff);
85 angband_fclose(tmp_fff);
89 tmp_fff = angband_fopen(tmp_file, "r");
90 orig_fff = angband_fopen(orig_file, "w");
91 while (!angband_fgets(tmp_fff, buf, sizeof(buf)))
92 fprintf(orig_fff, "%s\n", buf);
94 angband_fclose(orig_fff);
95 angband_fclose(tmp_fff);