diff options
author | AJR <ajrhacker@users.noreply.github.com> | 2021-01-01 12:18:29 -0500 |
---|---|---|
committer | AJR <ajrhacker@users.noreply.github.com> | 2021-01-01 12:22:17 -0500 |
commit | aa29519528cb3dbdbfac56819bea670ed8c56c5d (patch) | |
tree | bdaff6e127ed377a4fc84d3e8ee1b7a99f503d0b /src/frontend | |
parent | 21fd9835451a5a7d7655964bfb7adb1ba9b8540f (diff) |
Further additions of std::string_view
- corefile.cpp, fileio.cpp: Change puts to take a std::string_view parameter
- rendlay.cpp: Use std::string_view instead of bare pointers in various functions
- vecstream.h: Add std::string_view conversion operator to obtain output buffer without needing to make it a C string with explicit null termination
- xmlfile.cpp: Add get_attribute_string_ptr method that distinguishes between empty strings and absent attributes without falling back to C strings
Diffstat (limited to 'src/frontend')
-rw-r--r-- | src/frontend/mame/clifront.cpp | 7 | ||||
-rw-r--r-- | src/frontend/mame/ui/inifile.cpp | 3 | ||||
-rw-r--r-- | src/frontend/mame/ui/miscmenu.cpp | 6 | ||||
-rw-r--r-- | src/frontend/mame/ui/ui.cpp | 6 | ||||
-rw-r--r-- | src/frontend/mame/ui/utils.cpp | 8 |
5 files changed, 13 insertions, 17 deletions
diff --git a/src/frontend/mame/clifront.cpp b/src/frontend/mame/clifront.cpp index c284fc879d5..cf5bd408151 100644 --- a/src/frontend/mame/clifront.cpp +++ b/src/frontend/mame/clifront.cpp @@ -1085,7 +1085,6 @@ const char cli_frontend::s_softlist_xml_dtd[] = void cli_frontend::output_single_softlist(std::ostream &out, software_list_device &swlistdev) { - util::stream_format(out, "\t<softwarelist name=\"%s\" description=\"%s\">\n", swlistdev.list_name(), util::xml::normalize_string(swlistdev.description().c_str())); for (const software_info &swinfo : swlistdev.get_info()) { util::stream_format(out, "\t\t<software name=\"%s\"", util::xml::normalize_string(swinfo.shortname().c_str())); @@ -1655,7 +1654,7 @@ void cli_frontend::execute_commands(const char *exename) throw emu_fatalerror("Unable to create file %s.ini\n",emulator_info::get_configname()); // generate the updated INI - file.puts(m_options.output_ini().c_str()); + file.puts(m_options.output_ini()); ui_options ui_opts; emu_file file_ui(OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS); @@ -1663,7 +1662,7 @@ void cli_frontend::execute_commands(const char *exename) throw emu_fatalerror("Unable to create file ui.ini\n"); // generate the updated INI - file_ui.puts(ui_opts.output_ini().c_str()); + file_ui.puts(ui_opts.output_ini()); plugin_options plugin_opts; path_iterator iter(m_options.plugins_path()); @@ -1678,7 +1677,7 @@ void cli_frontend::execute_commands(const char *exename) throw emu_fatalerror("Unable to create file plugin.ini\n"); // generate the updated INI - file_plugin.puts(plugin_opts.output_ini().c_str()); + file_plugin.puts(plugin_opts.output_ini()); return; } diff --git a/src/frontend/mame/ui/inifile.cpp b/src/frontend/mame/ui/inifile.cpp index 77dfd1088dc..1bcdce69aba 100644 --- a/src/frontend/mame/ui/inifile.cpp +++ b/src/frontend/mame/ui/inifile.cpp @@ -570,8 +570,7 @@ void favorite_manager::save_favorites() buf << info.devicetype << '\n'; util::stream_format(buf, "%d\n", info.available); - buf.put('\0'); - file.puts(&buf.vec()[0]); + file.puts(std::string_view(buf)); } } file.close(); diff --git a/src/frontend/mame/ui/miscmenu.cpp b/src/frontend/mame/ui/miscmenu.cpp index b9b55264ca4..1c917e3aefe 100644 --- a/src/frontend/mame/ui/miscmenu.cpp +++ b/src/frontend/mame/ui/miscmenu.cpp @@ -640,7 +640,7 @@ void menu_export::handle() // iterate through drivers and output the info while (drvlist.next()) util::stream_format(buffer, "%-18s\"%s\"\n", drvlist.driver().name, drvlist.driver().type.fullname()); - file.puts(buffer.str().c_str()); + file.puts(buffer.str()); file.close(); machine().popmessage(_("%s.txt saved under ui folder."), filename); } @@ -728,7 +728,7 @@ void menu_machine_configure::handle() if (filerr == osd_file::error::NONE) { std::string inistring = m_opts.output_ini(); - file.puts(inistring.c_str()); + file.puts(inistring); ui().popup_time(2, "%s", _("\n Configuration saved \n\n")); } } @@ -868,7 +868,7 @@ menu_plugins_configure::~menu_plugins_configure() // throw emu_fatalerror("Unable to create file plugin.ini\n"); return; // generate the updated INI - file_plugin.puts(mame_machine_manager::instance()->plugins().output_ini().c_str()); + file_plugin.puts(mame_machine_manager::instance()->plugins().output_ini()); } //------------------------------------------------- diff --git a/src/frontend/mame/ui/ui.cpp b/src/frontend/mame/ui/ui.cpp index 64f68d92049..e2ea6745f86 100644 --- a/src/frontend/mame/ui/ui.cpp +++ b/src/frontend/mame/ui/ui.cpp @@ -2262,8 +2262,7 @@ void mame_ui_manager::save_ui_options() if (file.open("ui.ini") == osd_file::error::NONE) { // generate the updated INI - std::string initext = options().output_ini(); - file.puts(initext.c_str()); + file.puts(options().output_ini()); file.close(); } else @@ -2321,8 +2320,7 @@ void mame_ui_manager::save_main_option() if (file.open(std::string(emulator_info::get_configname()) + ".ini") == osd_file::error::NONE) { // generate the updated INI - std::string initext = options.output_ini(); - file.puts(initext.c_str()); + file.puts(options.output_ini()); file.close(); } else { diff --git a/src/frontend/mame/ui/utils.cpp b/src/frontend/mame/ui/utils.cpp index a1f0e11051b..52833a37252 100644 --- a/src/frontend/mame/ui/utils.cpp +++ b/src/frontend/mame/ui/utils.cpp @@ -124,7 +124,7 @@ public: virtual void save_ini(emu_file &file, unsigned indent) const override { - file.puts(util::string_format("%2$*1$s%3$s = 1\n", 2 * indent, "", config_name()).c_str()); + file.puts(util::string_format("%2$*1$s%3$s = 1\n", 2 * indent, "", config_name())); } virtual typename Base::type get_type() const override { return Type; } @@ -203,7 +203,7 @@ public: virtual void save_ini(emu_file &file, unsigned indent) const override { char const *const text(filter_text()); - file.puts(util::string_format("%2$*1$s%3$s = %4$s\n", 2 * indent, "", this->config_name(), text ? text : "").c_str()); + file.puts(util::string_format("%2$*1$s%3$s = %4$s\n", 2 * indent, "", this->config_name(), text ? text : "")); } protected: @@ -247,7 +247,7 @@ public: virtual void save_ini(emu_file &file, unsigned indent) const override { auto const tail(std::find_if(std::begin(m_filters), std::end(m_filters), [] (typename Base::ptr const &flt) { return !flt; })); - file.puts(util::string_format("%2$*1$s%3$s = %4$d\n", 2 * indent, "", this->config_name(), std::distance(std::begin(m_filters), tail)).c_str()); + file.puts(util::string_format("%2$*1$s%3$s = %4$d\n", 2 * indent, "", this->config_name(), std::distance(std::begin(m_filters), tail))); for (auto it = std::begin(m_filters); tail != it; ++it) (*it)->save_ini(file, indent + 1); } @@ -883,7 +883,7 @@ public: virtual void save_ini(emu_file &file, unsigned indent) const override { char const *const text(filter_text()); - file.puts(util::string_format("%2$*1$s%3$s = %4$s\n", 2 * indent, "", this->config_name(), text ? text : "").c_str()); + file.puts(util::string_format("%2$*1$s%3$s = %4$s\n", 2 * indent, "", this->config_name(), text ? text : "")); } virtual bool apply(ui_system_info const &system) const override |