dsk_err_t dg_custom_init(void) { const char *path; char buf[2 * PATH_MAX]; FILE *fp; dsk_err_t err; static int custom_inited = 0; /* Assert that the format names and numeric IDs are in sync. */ #ifdef HAVE_ASSERT_H assert(!strcmp(stdg[FMT_180K].name, "pcw180")); assert(!strcmp(stdg[FMT_320K].name, "ibm320")); assert(!strcmp(stdg[FMT_720F].name, "ibm720")); assert(!strcmp(stdg[FMT_1440F].name, "ibm1440")); assert(!strcmp(stdg[FMT_ACORN160].name, "acorn160")); assert(!strcmp(stdg[FMT_AMPRO800].name, "ampro800")); #endif if (custom_inited < 1) { path = dg_sharedir(); if (path) { sprintf(buf, "%s%s", path, "libdskrc"); fp = fopen(buf, "r"); if (fp) { err = dg_parse_file(fp); fclose(fp); if (err) return err; } } custom_inited = 1; } if (custom_inited < 2) { path = dg_homedir(); if (path) { sprintf(buf, "%s%s", path, ".libdskrc"); fp = fopen(buf, "r"); if (fp) { err = dg_parse_file(fp); fclose(fp); if (err) return err; } } custom_inited = 2; } return DSK_ERR_OK; }
dsk_err_t dg_custom_init(void) { const char *path; char buf[2 * PATH_MAX]; FILE *fp; dsk_err_t err; static int custom_inited = 0; if (custom_inited < 1) { path = dg_sharedir(); if (path) { sprintf(buf, "%s%s", path, "libdskrc"); fp = fopen(buf, "r"); if (fp) { err = dg_parse_file(fp); fclose(fp); if (err) return err; } } custom_inited = 1; } if (custom_inited < 2) { path = dg_homedir(); if (path) { sprintf(buf, "%s%s", path, ".libdskrc"); fp = fopen(buf, "r"); if (fp) { err = dg_parse_file(fp); fclose(fp); if (err) return err; } } custom_inited = 2; } return DSK_ERR_OK; }