From 0d280813e7a4818a31263dd21b5d5c77255c4f8a Mon Sep 17 00:00:00 2001 From: backwardsEric Date: Sat, 28 Sep 2019 12:40:31 -0700 Subject: [PATCH] If neither autopick preference file is present, selecting 'Auto' when deleting an item would cause a segmentation fault, at least with the Mac OS X version. This change resolves that. --- src/autopick.c | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/src/autopick.c b/src/autopick.c index c74136ac..9e194844 100644 --- a/src/autopick.c +++ b/src/autopick.c @@ -1953,28 +1953,38 @@ bool autopick_autoregister(object_type *o_ptr) } /* Check the header */ - while (TRUE) - { - /* Read a line */ - if (my_fgets(pref_fff, buf, sizeof(buf))) + if (pref_fff) { + while (TRUE) { - /* No header found */ - p_ptr->autopick_autoregister = FALSE; + /* Read a line */ + if (my_fgets(pref_fff, buf, sizeof(buf))) + { + /* No header found */ + p_ptr->autopick_autoregister = FALSE; - break; - } + break; + } - if (streq(buf, autoregister_header)) - { - /* Found the header */ - p_ptr->autopick_autoregister = TRUE; + if (streq(buf, autoregister_header)) + { + /* Found the header */ + p_ptr->autopick_autoregister = TRUE; - break; + break; + } } - } - /* Close read only FILE* */ - fclose(pref_fff); + /* Close read only FILE* */ + fclose(pref_fff); + } + else + { + /* + * File could not be opened for reading. Assume header not + * present. + */ + p_ptr->autopick_autoregister = FALSE; + } /* Open for append */ pref_fff = my_fopen(pref_file, "a"); -- 2.21.0 (Apple Git-122)