diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/formats/flopimg.cpp | 3 | ||||
-rw-r--r-- | src/lib/util/opresolv.h | 27 |
2 files changed, 19 insertions, 11 deletions
diff --git a/src/lib/formats/flopimg.cpp b/src/lib/formats/flopimg.cpp index e05bd54cf26..9fb487ba971 100644 --- a/src/lib/formats/flopimg.cpp +++ b/src/lib/formats/flopimg.cpp @@ -58,7 +58,7 @@ struct floppy_params static floperr_t floppy_track_unload(floppy_image_legacy *floppy); -OPTION_GUIDE_START(floppy_option_guide_actual) +OPTION_GUIDE_START(floppy_option_guide) OPTION_INT('H', "heads", "Heads") OPTION_INT('T', "tracks", "Tracks") OPTION_INT('S', "sectors", "Sectors") @@ -66,7 +66,6 @@ OPTION_GUIDE_START(floppy_option_guide_actual) OPTION_INT('I', "interleave", "Interleave") OPTION_INT('F', "firstsectorid", "First Sector") OPTION_GUIDE_END -const util::option_guide &floppy_option_guide = floppy_option_guide_actual; static void floppy_close_internal(floppy_image_legacy *floppy, int close_file); diff --git a/src/lib/util/opresolv.h b/src/lib/util/opresolv.h index 3d04f723840..3d919d26d59 100644 --- a/src/lib/util/opresolv.h +++ b/src/lib/util/opresolv.h @@ -50,19 +50,28 @@ // TYPE DEFINITIONS //************************************************************************** -#define OPTION_GUIDE_START(option_guide_) \ - const auto option_guide_ = util::make_option_guide(0 -#define OPTION_GUIDE_END \ - ); -#define OPTION_GUIDE_EXTERN(option_guide_) \ +#define OPTION_GUIDE_START(option_guide_) \ + namespace option_guide_impl_##option_guide_ \ + { \ + static const util::option_guide &get(); \ + }; \ + const util::option_guide &option_guide_ = option_guide_impl_##option_guide_::get(); \ + namespace option_guide_impl_##option_guide_ \ + { \ + static const auto actual = util::make_option_guide(0 +#define OPTION_GUIDE_END \ + ); \ + static const util::option_guide &get() { return actual; } \ + }; +#define OPTION_GUIDE_EXTERN(option_guide_) \ extern const util::option_guide &option_guide_ -#define OPTION_INT(option_char, identifier, display_name) \ +#define OPTION_INT(option_char, identifier, display_name) \ ,util::option_guide::entry(util::option_guide::entry::option_type::INT, (option_char), (identifier), (display_name)) -#define OPTION_STRING(option_char, identifier, display_name) \ +#define OPTION_STRING(option_char, identifier, display_name) \ ,util::option_guide::entry(util::option_guide::entry::option_type::STRING, (option_char), (identifier), (display_name)) -#define OPTION_ENUM_START(option_char, identifier, display_name) \ +#define OPTION_ENUM_START(option_char, identifier, display_name) \ ,util::option_guide::entry(util::option_guide::entry::option_type::ENUM_BEGIN, (option_char), (identifier), (display_name)) -#define OPTION_ENUM(value, identifier, display_name) \ +#define OPTION_ENUM(value, identifier, display_name) \ ,util::option_guide::entry(util::option_guide::entry::option_type::ENUM_VALUE, (value), (identifier), (display_name)) #define OPTION_ENUM_END |