From ca224bb74220c7948897f702f13265f7f4871d5f Mon Sep 17 00:00:00 2001 From: Hourier Date: Mon, 20 Jan 2020 22:09:51 +0900 Subject: [PATCH] =?utf8?q?[Fix]=20#39619=20backwardsEric=E6=B0=8F=E3=81=AB?= =?utf8?q?=E3=82=88=E3=82=8B=E3=83=91=E3=83=83=E3=83=81=EF=BC=9A=E8=87=AA?= =?utf8?q?=E5=8B=95=E6=8B=BE=E3=81=84=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB?= =?utf8?q?=E3=82=92=E9=96=8B=E3=81=91=E3=81=AA=E3=81=8B=E3=81=A3=E3=81=9F?= =?utf8?q?=E6=99=82=E3=81=AB=E3=82=AF=E3=83=A9=E3=83=83=E3=82=B7=E3=83=A5?= =?utf8?q?=E3=81=99=E3=82=8B=E5=95=8F=E9=A1=8C=E3=82=92=E4=BF=AE=E6=AD=A3?= =?utf8?q?=20/=20Fixed=20autopick=20crash=20with=20no=20preference=20files?= =?utf8?q?=20by=20backwardsEric,=20thanks=20a=20lot!?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/autopick.c | 51 ++++++++++++++++++++++++--------------------------- 1 file changed, 24 insertions(+), 27 deletions(-) diff --git a/src/autopick.c b/src/autopick.c index 2c79c1e19..381d974a8 100644 --- a/src/autopick.c +++ b/src/autopick.c @@ -653,6 +653,7 @@ command_menu_type menu_data[] = {NULL, -1, -1, 0} }; + /* * A function to create new entry */ @@ -2351,38 +2352,39 @@ bool autopick_autoregister(player_type *player_ptr, object_type *o_ptr) } /* Check the header */ - while (TRUE) + if (pref_fff) { - /* Read a line */ - if (my_fgets(pref_fff, buf, sizeof(buf))) + while (TRUE) { - /* No header found */ - player_ptr->autopick_autoregister = FALSE; + if (my_fgets(pref_fff, buf, sizeof(buf))) + { + player_ptr->autopick_autoregister = FALSE; + break; + } - break; + if (streq(buf, autoregister_header)) + { + player_ptr->autopick_autoregister = TRUE; + break; + } } - if (streq(buf, autoregister_header)) - { - /* Found the header */ - player_ptr->autopick_autoregister = TRUE; - - break; - } + fclose(pref_fff); + } + else + { + /* + * File could not be opened for reading. Assume header not + * present. + */ + player_ptr->autopick_autoregister = FALSE; } - /* Close read only FILE* */ - fclose(pref_fff); - - /* Open for append */ pref_fff = my_fopen(pref_file, "a"); - - /* Failure */ - if (!pref_fff) { + if (!pref_fff) + { msg_format(_("%s を開くことができませんでした。", "Failed to open %s."), pref_file); msg_print(NULL); - - /* Failed */ return FALSE; } @@ -2395,15 +2397,10 @@ bool autopick_autoregister(player_type *player_ptr, object_type *o_ptr) "# *Warning!* The lines below will be deleated later.")); fprintf(pref_fff, "%s\n", _("# 後で自動的に削除されますので、必要な行は上の方へ移動しておいてください。", "# Keep it by cut & paste if you need these lines for future characters.")); - - /* Now auto register is in-use */ player_ptr->autopick_autoregister = TRUE; } - /* Get a preference entry */ autopick_entry_from_object(player_ptr, entry, o_ptr); - - /* Set to auto-destroy (with no-display) */ entry->action = DO_AUTODESTROY; /* Load the new line as preference */ -- 2.11.0