#include "english.h"
#include "diary-subtitle-table.h"
+#include "io/write-diary.h"
// Clipboard variables for copy&paste in visual mode
static TERM_COLOR attr_idx = 0;
static char hack[17] = "dwsorgbuDWvyRGBU";
/*!
-<<<<<<< HEAD
* @brief prefファイルを選択して処理する /
* Ask for a "user pref line" and process it
-=======
* @brief prf出力内容を消去する /
* Remove old lines automatically generated before.
* @param orig_file 消去を行うファイル名
fd_kill(tmp_file);
}
-
-/*!
- * @brief prfファイルのフォーマットに従った内容を出力する /
- * Dump a formatted line, using "vstrnfmt()".
- * @param fmt 出力内容
- */
-static void auto_dump_printf(concptr fmt, ...)
-{
- va_list vp;
- char buf[1024];
- va_start(vp, fmt);
- (void)vstrnfmt(buf, sizeof(buf), fmt, vp);
- va_end(vp);
- for (concptr p = buf; *p; p++)
- {
- if (*p == '\n') auto_dump_line_num++;
- }
-
- fprintf(auto_dump_stream, "%s", buf);
-}
-
-
/*!
* @brief prfファイルをファイルオープンする /
* Open file to append auto dump.
* @param mark 出力するヘッダマーク
* @return ファイルポインタを取得できたらTRUEを返す
*/
-static bool open_auto_dump(concptr buf, concptr mark)
+static bool open_auto_dump(FILE *auto_dump_stream, concptr buf, concptr mark)
{
char header_mark_str[80];
auto_dump_mark = mark;
fprintf(auto_dump_stream, "%s\n", header_mark_str);
auto_dump_line_num = 0;
- auto_dump_printf(_("# *警告!!* 以降の行は自動生成されたものです。\n",
+ auto_dump_printf(auto_dump_stream, _("# *警告!!* 以降の行は自動生成されたものです。\n",
"# *Warning!* The lines below are an automatic dump.\n"));
- auto_dump_printf(_("# *警告!!* 後で自動的に削除されるので編集しないでください。\n",
+ auto_dump_printf(auto_dump_stream, _("# *警告!!* 後で自動的に削除されるので編集しないでください。\n",
"# Don't edit them; changes will be deleted and replaced automatically.\n"));
return TRUE;
}
* Append foot part and close auto dump.
* @return なし
*/
-static void close_auto_dump(void)
+static void close_auto_dump(FILE *auto_dump_stream)
{
char footer_mark_str[80];
sprintf(footer_mark_str, auto_dump_footer, auto_dump_mark);
- auto_dump_printf(_("# *警告!!* 以降の行は自動生成されたものです。\n",
+ auto_dump_printf(auto_dump_stream, _("# *警告!!* 以降の行は自動生成されたものです。\n",
"# *Warning!* The lines below are an automatic dump.\n"));
- auto_dump_printf(_("# *警告!!* 後で自動的に削除されるので編集しないでください。\n",
+ auto_dump_printf(auto_dump_stream, _("# *警告!!* 後で自動的に削除されるので編集しないでください。\n",
"# Don't edit them; changes will be deleted and replaced automatically.\n"));
fprintf(auto_dump_stream, "%s (%d)\n", footer_mark_str, auto_dump_line_num);
my_fclose(auto_dump_stream);
int i;
char tmp[160];
char buf[1024];
+ FILE *auto_dump_stream;
FILE_TYPE(FILE_TYPE_TEXT);
screen_save();
while (TRUE)
if (!askfor(tmp, 70)) continue;
path_build(buf, sizeof(buf), ANGBAND_DIR_USER, tmp);
- if (!open_auto_dump(buf, mark)) continue;
+ if (!open_auto_dump(auto_dump_stream, buf, mark)) continue;
- auto_dump_printf(_("\n# カラーの設定\n\n", "\n# Color redefinitions\n\n"));
+ auto_dump_printf(auto_dump_stream, _("\n# カラーの設定\n\n", "\n# Color redefinitions\n\n"));
for (i = 0; i < 256; i++)
{
int kv = angband_color_table[i][0];
if (i < 16) name = color_names[i];
- auto_dump_printf(_("# カラー '%s'\n", "# Color '%s'\n"), name);
- auto_dump_printf("V:%d:0x%02X:0x%02X:0x%02X:0x%02X\n\n",
+ auto_dump_printf(auto_dump_stream, _("# カラー '%s'\n", "# Color '%s'\n"), name);
+ auto_dump_printf(auto_dump_stream, "V:%d:0x%02X:0x%02X:0x%02X:0x%02X\n\n",
i, kv, rv, gv, bv);
}
- close_auto_dump();
+ close_auto_dump(auto_dump_stream);
msg_print(_("カラーの設定をファイルに書き出しました。", "Dumped color redefinitions."));
}
else if (i == '3')
* @param fname ファイル名
* @return なし
*/
-static void macro_dump(concptr fname)
+static void macro_dump(FILE *auto_dump_stream, concptr fname)
{
static concptr mark = "Macro Dump";
char buf[1024];
path_build(buf, sizeof(buf), ANGBAND_DIR_USER, fname);
FILE_TYPE(FILE_TYPE_TEXT);
- if (!open_auto_dump(buf, mark)) return;
+ if (!open_auto_dump(auto_dump_stream, buf, mark)) return;
- auto_dump_printf(_("\n# 自動マクロセーブ\n\n", "\n# Automatic macro dump\n\n"));
+ auto_dump_printf(auto_dump_stream, _("\n# 自動マクロセーブ\n\n", "\n# Automatic macro dump\n\n"));
for (int i = 0; i < macro__num; i++)
{
ascii_to_text(buf, macro__act[i]);
- auto_dump_printf("A:%s\n", buf);
+ auto_dump_printf(auto_dump_stream, "A:%s\n", buf);
ascii_to_text(buf, macro__pat[i]);
- auto_dump_printf("P:%s\n", buf);
- auto_dump_printf("\n");
+ auto_dump_printf(auto_dump_stream, "P:%s\n", buf);
+ auto_dump_printf(auto_dump_stream, "\n");
}
- close_auto_dump();
+ close_auto_dump(auto_dump_stream);
}
*/
static errr keymap_dump(concptr fname)
{
+ FILE *auto_dump_stream;
static concptr mark = "Keymap Dump";
char key[1024];
char buf[1024];
path_build(buf, sizeof(buf), ANGBAND_DIR_USER, fname);
FILE_TYPE(FILE_TYPE_TEXT);
- if (!open_auto_dump(buf, mark)) return -1;
+ if (!open_auto_dump(auto_dump_stream, buf, mark)) return -1;
- auto_dump_printf(_("\n# 自動キー配置セーブ\n\n", "\n# Automatic keymap dump\n\n"));
+ auto_dump_printf(auto_dump_stream, _("\n# 自動キー配置セーブ\n\n", "\n# Automatic keymap dump\n\n"));
for (int i = 0; i < 256; i++)
{
concptr act;
buf[1] = '\0';
ascii_to_text(key, buf);
ascii_to_text(buf, act);
- auto_dump_printf("A:%s\n", buf);
- auto_dump_printf("C:%d:%s\n", mode, key);
+ auto_dump_printf(auto_dump_stream, "A:%s\n", buf);
+ auto_dump_printf(auto_dump_stream, "C:%d:%s\n", mode, key);
}
- close_auto_dump();
+ close_auto_dump(auto_dump_stream);
return 0;
}
{
char tmp[1024];
char buf[1024];
+ FILE *auto_dump_stream;
BIT_FLAGS mode = rogue_like_commands ? KEYMAP_MODE_ROGUE : KEYMAP_MODE_ORIG;
FILE_TYPE(FILE_TYPE_TEXT);
screen_save();
sprintf(tmp, "%s.prf", creature_ptr->base_name);
if (!askfor(tmp, 80)) continue;
- macro_dump(tmp);
+ macro_dump(auto_dump_stream, tmp);
msg_print(_("マクロを追加しました。", "Appended macros."));
}
else if (i == '3')
*/
void do_cmd_visuals(player_type *creature_ptr)
{
+ FILE *auto_dump_stream;
char tmp[160];
char buf[1024];
bool need_redraw = FALSE;
if (!askfor(tmp, 70)) continue;
path_build(buf, sizeof(buf), ANGBAND_DIR_USER, tmp);
- if (!open_auto_dump(buf, mark)) continue;
+ if (!open_auto_dump(auto_dump_stream, buf, mark)) continue;
- auto_dump_printf(_("\n# モンスターの[色/文字]の設定\n\n", "\n# Monster attr/char definitions\n\n"));
+ auto_dump_printf(auto_dump_stream, _("\n# モンスターの[色/文字]の設定\n\n", "\n# Monster attr/char definitions\n\n"));
for (i = 0; i < max_r_idx; i++)
{
monster_race *r_ptr = &r_info[i];
if (!r_ptr->name) continue;
- auto_dump_printf("# %s\n", (r_name + r_ptr->name));
- auto_dump_printf("R:%d:0x%02X/0x%02X\n\n", i,
+ auto_dump_printf(auto_dump_stream, "# %s\n", (r_name + r_ptr->name));
+ auto_dump_printf(auto_dump_stream, "R:%d:0x%02X/0x%02X\n\n", i,
(byte)(r_ptr->x_attr), (byte)(r_ptr->x_char));
}
- close_auto_dump();
+ close_auto_dump(auto_dump_stream);
msg_print(_("モンスターの[色/文字]をファイルに書き出しました。", "Dumped monster attr/chars."));
break;
}
if (!askfor(tmp, 70)) continue;
path_build(buf, sizeof(buf), ANGBAND_DIR_USER, tmp);
- if (!open_auto_dump(buf, mark)) continue;
+ if (!open_auto_dump(auto_dump_stream, mbuf, mark)) continue;
- auto_dump_printf(_("\n# アイテムの[色/文字]の設定\n\n", "\n# Object attr/char definitions\n\n"));
+ auto_dump_printf(auto_dump_stream, _("\n# アイテムの[色/文字]の設定\n\n", "\n# Object attr/char definitions\n\n"));
for (KIND_OBJECT_IDX k_idx = 0; k_idx < max_k_idx; k_idx++)
{
GAME_TEXT o_name[MAX_NLEN];
object_desc(creature_ptr, o_name, &forge, OD_FORCE_FLAVOR);
}
- auto_dump_printf("# %s\n", o_name);
- auto_dump_printf("K:%d:0x%02X/0x%02X\n\n", (int)k_idx,
+ auto_dump_printf(auto_dump_stream, "# %s\n", o_name);
+ auto_dump_printf(auto_dump_stream, "K:%d:0x%02X/0x%02X\n\n", (int)k_idx,
(byte)(k_ptr->x_attr), (byte)(k_ptr->x_char));
}
- close_auto_dump();
+ close_auto_dump(auto_dump_stream);
msg_print(_("アイテムの[色/文字]をファイルに書き出しました。", "Dumped object attr/chars."));
break;
}
if (!askfor(tmp, 70)) continue;
path_build(buf, sizeof(buf), ANGBAND_DIR_USER, tmp);
- if (!open_auto_dump(buf, mark)) continue;
+ if (!open_auto_dump(auto_dump_stream, buf, mark)) continue;
- auto_dump_printf(_("\n# 地形の[色/文字]の設定\n\n", "\n# Feature attr/char definitions\n\n"));
+ auto_dump_printf(auto_dump_stream, _("\n# 地形の[色/文字]の設定\n\n", "\n# Feature attr/char definitions\n\n"));
for (i = 0; i < max_f_idx; i++)
{
feature_type *f_ptr = &f_info[i];
if (!f_ptr->name) continue;
if (f_ptr->mimic != i) continue;
- auto_dump_printf("# %s\n", (f_name + f_ptr->name));
- auto_dump_printf("F:%d:0x%02X/0x%02X:0x%02X/0x%02X:0x%02X/0x%02X\n\n", i,
+ auto_dump_printf(auto_dump_stream, "# %s\n", (f_name + f_ptr->name));
+ auto_dump_printf(auto_dump_stream, "F:%d:0x%02X/0x%02X:0x%02X/0x%02X:0x%02X/0x%02X\n\n", i,
(byte)(f_ptr->x_attr[F_LIT_STANDARD]), (byte)(f_ptr->x_char[F_LIT_STANDARD]),
(byte)(f_ptr->x_attr[F_LIT_LITE]), (byte)(f_ptr->x_char[F_LIT_LITE]),
(byte)(f_ptr->x_attr[F_LIT_DARK]), (byte)(f_ptr->x_char[F_LIT_DARK]));
}
- close_auto_dump();
+ close_auto_dump(auto_dump_stream);
msg_print(_("地形の[色/文字]をファイルに書き出しました。", "Dumped feature attr/chars."));
break;
}
* Dump a formatted line, using "vstrnfmt()".
* @param fmt 出力内容
*/
-void auto_dump_printf(concptr fmt, ...)
+void auto_dump_printf(FILE *auto_dump_stream, concptr fmt, ...)
{
va_list vp;
char buf[1024];
* @param mark 出力するヘッダマーク
* @return ファイルポインタを取得できたらTRUEを返す
*/
-bool open_auto_dump(concptr buf, concptr mark)
+bool open_auto_dump(FILE *auto_dump_stream, concptr buf, concptr mark)
{
char header_mark_str[80];
auto_dump_mark = mark;
fprintf(auto_dump_stream, "%s\n", header_mark_str);
auto_dump_line_num = 0;
- auto_dump_printf(_("# *警告!!* 以降の行は自動生成されたものです。\n",
+ auto_dump_printf(auto_dump_stream, _("# *警告!!* 以降の行は自動生成されたものです。\n",
"# *Warning!* The lines below are an automatic dump.\n"));
- auto_dump_printf(_("# *警告!!* 後で自動的に削除されるので編集しないでください。\n",
+ auto_dump_printf(auto_dump_stream, _("# *警告!!* 後で自動的に削除されるので編集しないでください。\n",
"# Don't edit them; changes will be deleted and replaced automatically.\n"));
return TRUE;
}
* Append foot part and close auto dump.
* @return なし
*/
-void close_auto_dump(void)
+void close_auto_dump(FILE *auto_dump_stream)
{
char footer_mark_str[80];
sprintf(footer_mark_str, auto_dump_footer, auto_dump_mark);
- auto_dump_printf(_("# *警告!!* 以降の行は自動生成されたものです。\n",
+ auto_dump_printf(auto_dump_stream, _("# *警告!!* 以降の行は自動生成されたものです。\n",
"# *Warning!* The lines below are an automatic dump.\n"));
- auto_dump_printf(_("# *警告!!* 後で自動的に削除されるので編集しないでください。\n",
+ auto_dump_printf(auto_dump_stream, _("# *警告!!* 後で自動的に削除されるので編集しないでください。\n",
"# Don't edit them; changes will be deleted and replaced automatically.\n"));
fprintf(auto_dump_stream, "%s (%d)\n", footer_mark_str, auto_dump_line_num);
my_fclose(auto_dump_stream);
extern errr process_autopick_file(player_type *creature_ptr, concptr name);
extern errr process_histpref_file(player_type *creature_ptr, concptr name);
-void auto_dump_printf(concptr fmt, ...);
-bool open_auto_dump(concptr buf, concptr mark);
-void close_auto_dump(void);
+void auto_dump_printf(FILE *auto_dump_stream, concptr fmt, ...);
+bool open_auto_dump(FILE *auto_dump_stream, concptr buf, concptr mark);
+void close_auto_dump(FILE *auto_dump_stream);