Namespaces | |
detail | |
Classes | |
class | bcrypt |
struct | const_clone |
Helper struct to clone the constness of one type to another. More... | |
class | hash_base |
class | hash_digest |
struct | hash_error |
class | md5 |
class | scope_exit |
class | sha1 |
class | shared_reference |
class | string_map_variable_set |
Typedefs | |
using | byte_string_view = std::basic_string_view< uint8_t > |
using | string_map = std::map< std::string, t_string > |
template<typename D , typename S > | |
using | const_clone_t = typename const_clone< D, S >::type |
template<typename D , typename S > | |
using | const_clone_ref = typename const_clone< D, S >::reference |
template<typename D , typename S > | |
using | const_clone_ptr = typename const_clone< D, S >::pointer |
Enumerations | |
enum | { REMOVE_EMPTY = 0x01, STRIP_SPACES = 0x02 } |
Functions | |
std::vector< std::string > | split (const config_attribute_value &val) |
std::string | format_time_summary (std::time_t t) |
std::string | interpolate_variables_into_string (const std::string &str, const string_map *const symbols) |
Function which will interpolate variables, starting with '$' in the string 'str' with the equivalent symbols in the given symbol table. More... | |
std::string | interpolate_variables_into_string (const std::string &str, const std::map< std::string, std::string > *const symbols) |
std::string | interpolate_variables_into_string (const std::string &str, const variable_set &variables) |
t_string | interpolate_variables_into_tstring (const t_string &str, const variable_set &variables) |
Function that does the same as the above, for t_stringS. More... | |
std::string | format_conjunct_list (const t_string &empty, const std::vector< t_string > &elems) |
Format a conjunctive list. More... | |
std::string | format_disjunct_list (const t_string &empty, const std::vector< t_string > &elems) |
Format a disjunctive list. More... | |
std::string | format_timespan (std::time_t time) |
Formats a timespan into human-readable text. More... | |
bool | might_contain_variables (const std::string &str) |
Determines if a string might contain variables to interpolate. More... | |
bool | isnewline (const char c) |
bool | portable_isspace (const char c) |
bool | notspace (const char c) |
void | trim (std::string_view &s) |
std::vector< std::string > | split (std::string_view s, const char sep, const int flags) |
Splits a (comma-)separated string into a vector of pieces. More... | |
std::set< std::string > | split_set (std::string_view s, char sep, const int flags) |
std::vector< std::string > | square_parenthetical_split (const std::string &val, const char separator=',', const std::string &left="([", const std::string &right=")]", const int flags=REMOVE_EMPTY|STRIP_SPACES) |
Similar to parenthetical_split, but also expands embedded square brackets. More... | |
std::map< std::string, std::string > | map_split (const std::string &val, char major=',', char minor=':', int flags=REMOVE_EMPTY|STRIP_SPACES, const std::string &default_value="") |
Splits a string based on two separators into a map. More... | |
std::vector< std::string > | parenthetical_split (const std::string &val, const char separator=0, const std::string &left="(", const std::string &right=")", const int flags=REMOVE_EMPTY|STRIP_SPACES) |
Splits a string based either on a separator, except then the text appears within specified parenthesis. More... | |
int | apply_modifier (const int number, const std::string &amount, const int minimum) |
std::string | escape (const std::string &str, const char *special_chars) |
Prepends a configurable set of characters with a backslash. More... | |
static void | si_string_impl_stream_write (std::stringstream &ss, double input) |
static bool | is_username_char (char c) |
static bool | is_wildcard_char (char c) |
static bool | is_word_boundary (char c) |
std::string | indent (const std::string &string, std::size_t indent_size=4) |
Indent a block of text. More... | |
std::vector< std::string > | quoted_split (const std::string &val, char c=',', int flags=REMOVE_EMPTY|STRIP_SPACES, char quote='\\') |
This function is identical to split(), except it does not split when it otherwise would if the previous character was identical to the parameter 'quote' (i.e. More... | |
std::pair< int, int > | parse_range (const std::string &str) |
std::vector< std::pair< int, int > > | parse_ranges (const std::string &str) |
template<typename F > | |
void | split_foreach_impl (std::string_view s, char sep, const F &f) |
template<typename F > | |
void | split_foreach (std::string_view s, char sep, const int flags, const F &f) |
std::set< std::string > | set_split (const std::string &val, const char c=',', const int flags=REMOVE_EMPTY|STRIP_SPACES) |
Splits a (comma-)separated string into a set of pieces. More... | |
template<typename T > | |
std::string | join (const T &v, const std::string &s=",") |
Generates a new string joining container items in a list. More... | |
template<typename T > | |
std::string | join_map (const T &v, const std::string &major=",", const std::string &minor=":") |
template<typename T > | |
std::string | bullet_list (const T &v, std::size_t indent=4, const std::string &bullet=font::unicode_bullet) |
Generates a new string containing a bullet list. More... | |
std::string | print_modifier (const std::string &mod) |
Add a "+" or replace the "-" par Unicode minus. More... | |
bool | chars_equal_insensitive (char a, char b) |
bool | chars_less_insensitive (char a, char b) |
template<typename Container , typename Value > | |
bool | contains (const Container &container, const Value &value) |
Returns true iff value is found in container. More... | |
template<typename T , typename... Types> | |
shared_reference< T > | make_shared_reference (Types &&...args) |
template<typename... Types> | |
std::size_t | variant_index (const variant< Types... > &var) |
std::string | unescape (const std::string &str) |
Remove all escape characters (backslash) More... | |
std::string | urlencode (const std::string &str) |
Percent-escape characters in a UTF-8 string intended to be part of a URL. More... | |
bool | string_bool (const std::string &str, bool def=false) |
Convert no, false, off, 0, 0.0 to false, empty to def, and others to true. More... | |
std::string | bool_string (const bool value) |
Converts a bool value to 'true' or 'false'. More... | |
std::string | signed_value (int val) |
Convert into a signed value (using the Unicode "−" and +0 convention. More... | |
std::string | half_signed_value (int val) |
Sign with Unicode "−" if negative. More... | |
std::string | si_string (double input, bool base2, const std::string &unit) |
Convert into a string with an SI-postfix. More... | |
bool | isvalid_username (const std::string &login) |
Check if the username contains only valid characters. More... | |
bool | isvalid_wildcard (const std::string &login) |
Check if the username pattern contains only valid characters. More... | |
bool | word_completion (std::string &text, std::vector< std::string > &wordlist) |
Try to complete the last word of 'text' with the 'wordlist'. More... | |
bool | word_match (const std::string &message, const std::string &word) |
Check if a message contains a word. More... | |
bool | wildcard_string_match (const std::string &str, const std::string &match) |
Match using '*' as any number of characters (including none), '+' as one or more characters, and '?' as any one character. More... | |
void | ellipsis_truncate (std::string &str, const std::size_t size) |
Truncates a string to a given utf-8 character count and then appends an ellipsis. More... | |
std::string | escape (const std::string &str) |
Prepend all special characters with a backslash. More... | |
std::string | quote (const std::string &str) |
Surround the string 'str' with double quotes. More... | |
std::string | signed_percent (int val) |
Convert into a percentage (using the Unicode "−" and +0% convention. More... | |
Variables | |
template<typename T1 , typename T2 > | |
constexpr bool | decayed_is_same = std::is_same_v<T1, std::decay_t<T2>> |
Equivalent to as std::is_same_v except it uses the decayed form of V. More... | |
using utils::byte_string_view = typedef std::basic_string_view<uint8_t> |
Definition at line 22 of file base64.hpp.
using utils::const_clone_ptr = typedef typename const_clone<D, S>::pointer |
Definition at line 65 of file const_clone.hpp.
using utils::const_clone_ref = typedef typename const_clone<D, S>::reference |
Definition at line 62 of file const_clone.hpp.
using utils::const_clone_t = typedef typename const_clone<D, S>::type |
Definition at line 59 of file const_clone.hpp.
using utils::string_map = typedef std::map<std::string, t_string> |
Definition at line 34 of file string_utils.hpp.
anonymous enum |
Enumerator | |
---|---|
REMOVE_EMPTY | |
STRIP_SPACES | REMOVE_EMPTY: remove empty elements. |
Definition at line 40 of file string_utils.hpp.
int utils::apply_modifier | ( | const int | number, |
const std::string & | amount, | ||
const int | minimum | ||
) |
Definition at line 393 of file string_utils.cpp.
References div100rounded().
Referenced by unit::apply_builtin_effect(), attack_type::apply_modification(), bullet_list(), and tod_manager::modify_turns().
std::string utils::bool_string | ( | const bool | value | ) |
Converts a bool value to 'true' or 'false'.
Definition at line 479 of file string_utils.cpp.
Referenced by frame_parsed_parameters::debug_strings(), team_builder::init(), ai::lua_aspect_visitor::operator()(), gui2::dialogs::drop_down_menu::pre_show(), quote(), and gui2::dialogs::stuff_list_adder::widget().
std::string utils::bullet_list | ( | const T & | v, |
std::size_t | indent = 4 , |
||
const std::string & | bullet = font::unicode_bullet |
||
) |
Generates a new string containing a bullet list.
List items are preceded by the indentation blanks, a bullet string and another blank; all but the last item are followed by a newline.
v | A container with elements. |
indent | Number of indentation blanks. |
bullet | The leading bullet string. |
Definition at line 236 of file string_utils.hpp.
References apply_modifier(), i, indent(), parse_range(), and parse_ranges().
Referenced by addons_client::do_check_before_overwriting_addon(), and addons_client::do_resolve_addon_dependencies().
|
inline |
Definition at line 24 of file general.hpp.
Referenced by events::menu_handler::do_search(), gui2::dialogs::game_load::filter_text_changed(), mp::game_info::match_string_filter(), and word_completion().
|
inline |
Definition at line 25 of file general.hpp.
Referenced by gui::menu::basic_sorter::less().
|
inline |
Returns true iff value is found in container.
This should work whenever Container "looks like" an STL container of Values. Normally this uses std::find(), but a simulated partial template specialization exists when Value is Container::key_type. In this case, Container is assumed an associative container, and the member function find() is used.
Definition at line 77 of file general.hpp.
References utils::detail::contains_impl< Container, Value >::eval().
Referenced by ai::readonly_context_impl::applies_to_leader(), events::menu_handler::can_recruit(), ng::depcheck::manager::change_era(), ng::depcheck::manager::change_modifications(), ng::depcheck::manager::change_scenario(), actions::check_recruit_location(), ng::depcheck::manager::conflicts(), actions::find_recall_location(), ng::depcheck::manager::get_required_not_enabled(), and ng::depcheck::manager::requires().
void utils::ellipsis_truncate | ( | std::string & | str, |
const std::size_t | size | ||
) |
Truncates a string to a given utf-8 character count and then appends an ellipsis.
Definition at line 843 of file string_utils.cpp.
References font::ellipsis, and utf8::truncate().
Referenced by windows_tray_notification::adjust_length(), gui2::dialogs::game_load::populate_game_list(), gui2::dialogs::file_dialog::push_fileview_row(), and signed_percent().
|
inline |
Prepend all special characters with a backslash.
Special characters are: #}+-,*=
Definition at line 284 of file string_utils.hpp.
References escape(), unescape(), and urlencode().
std::string utils::escape | ( | const std::string & | str, |
const char * | special_chars | ||
) |
Prepends a configurable set of characters with a backslash.
Definition at line 408 of file string_utils.cpp.
Referenced by escape(), help::escape(), get_file_code(), and print_modifier().
std::string utils::format_conjunct_list | ( | const t_string & | empty, |
const std::vector< t_string > & | elems | ||
) |
Format a conjunctive list.
empty | The string to return for an empty list |
elems | The list of entries in the list |
Definition at line 255 of file string_utils.cpp.
Referenced by unit::describe_builtin_effect(), attack_type::describe_modification(), format_timespan(), lua_stringx::intf_format_list(), might_contain_variables(), events::menu_handler::recruit(), gui2::multimenu_button::update_label(), and user_choice_manager::update_local_choice().
std::string utils::format_disjunct_list | ( | const t_string & | empty, |
const std::vector< t_string > & | elems | ||
) |
Format a disjunctive list.
empty | The string to return for an empty list |
elems | The list of entries in the list |
Definition at line 273 of file string_utils.cpp.
Referenced by lua_stringx::intf_format_list(), and might_contain_variables().
std::string utils::format_time_summary | ( | std::time_t | t | ) |
Definition at line 23 of file format_time_summary.cpp.
References _(), translation::strftime(), and preferences::use_twelve_hour_clock_format().
Referenced by savegame::save_info::format_time_summary().
std::string utils::format_timespan | ( | std::time_t | time | ) |
Formats a timespan into human-readable text.
time | The timespan in seconds. |
Definition at line 291 of file string_utils.cpp.
References _(), format_conjunct_list(), N_, and VGETTEXT.
Referenced by BOOST_AUTO_TEST_CASE(), and might_contain_variables().
std::string utils::half_signed_value | ( | int | val | ) |
Sign with Unicode "−" if negative.
Definition at line 494 of file string_utils.cpp.
References font::unicode_minus.
Referenced by frame_parsed_parameters::debug_strings(), gui2::dialogs::game_stats::pre_show(), quote(), REPORT_GENERATOR(), and campaign_controller::show_carryover_message().
std::string utils::indent | ( | const std::string & | string, |
std::size_t | indent_size = 4 |
||
) |
Indent a block of text.
Only lines with content are changed; empty lines are left intact. However, if string is an empty string itself, the indentation unit with the specified indent_size will be returned instead.
string | Text to indent. |
indent_size | Number of indentation units to use. |
Definition at line 738 of file string_utils.cpp.
References split().
Referenced by bullet_list(), and gui2::dialogs::wml_error::wml_error().
std::string utils::interpolate_variables_into_string | ( | const std::string & | str, |
const string_map *const | symbols | ||
) |
Function which will interpolate variables, starting with '$' in the string 'str' with the equivalent symbols in the given symbol table.
If 'symbols' is nullptr, then game event variables will be used instead.
Definition at line 227 of file string_utils.cpp.
References do_interpolation().
Referenced by savegame::loadgame::check_version_compatibility(), gui2::dialogs::describe_status_verbose(), game_events::manager::execute_on_events(), unit_filter::first_match_on_map(), name_generator::generate(), vconfig::has_child(), interpolate_variables_into_tstring(), lua_stringx::intf_format(), map_location::map_location(), might_contain_variables(), campaign_controller::play_game(), terrain_label::read(), play_controller::show_objectives(), playsingle_controller::show_turn_dialog(), gui2::styled_widget::signal_handler_show_tooltip(), vgettext_impl(), and vngettext_impl().
std::string utils::interpolate_variables_into_string | ( | const std::string & | str, |
const std::map< std::string, std::string > *const | symbols | ||
) |
Definition at line 233 of file string_utils.cpp.
References do_interpolation().
std::string utils::interpolate_variables_into_string | ( | const std::string & | str, |
const variable_set & | variables | ||
) |
Definition at line 239 of file string_utils.cpp.
References do_interpolation().
t_string utils::interpolate_variables_into_tstring | ( | const t_string & | str, |
const variable_set & | variables | ||
) |
Function that does the same as the above, for t_stringS.
If a change was made, then the t_string's translation is done in this function, rather than at use. This limitation is due to the use of create-time interpolation, rather than use-time.
Definition at line 244 of file string_utils.cpp.
References interpolate_variables_into_string(), and t_string::str().
Referenced by vconfig::has_child(), lua_stringx::intf_format(), might_contain_variables(), and terrain_label::read().
|
static |
Definition at line 599 of file string_utils.cpp.
Referenced by isvalid_username(), and isvalid_wildcard().
|
static |
Definition at line 603 of file string_utils.cpp.
Referenced by isvalid_wildcard().
|
static |
Definition at line 681 of file string_utils.cpp.
Referenced by word_match().
bool utils::isnewline | ( | const char | c | ) |
Definition at line 40 of file string_utils.cpp.
Referenced by gui::textbox::append_text(), gui::textbox::handle_key_down(), portable_isspace(), t_translation::read_builder_map(), and t_translation::read_game_map().
bool utils::isvalid_username | ( | const std::string & | login | ) |
Check if the username contains only valid characters.
(all alpha-numeric characters plus underscore and hyphen)
Definition at line 607 of file string_utils.cpp.
References is_username_char().
Referenced by wesnothd::server::is_login_allowed(), signed_percent(), and wesnothd::server::status_handler().
bool utils::isvalid_wildcard | ( | const std::string & | login | ) |
Check if the username pattern contains only valid characters.
(all alpha-numeric characters plus underscore, hyphen, question mark and asterisk)
Definition at line 619 of file string_utils.cpp.
References is_username_char(), and is_wildcard_char().
Referenced by preferences::add_acquaintance(), and signed_percent().
std::string utils::join | ( | const T & | v, |
const std::string & | s = "," |
||
) |
Generates a new string joining container items in a list.
v | A container with elements. |
s | List delimiter. |
Definition at line 193 of file string_utils.hpp.
Referenced by wesnothd::server::accepting_connections(), schema_validation::schema_validator::active_tag_path(), game_events::event_handlers::add_event_handler(), mp::add_multiplayer_classification(), gui2::dialogs::add_unit_entry(), team::allied_human_teams(), attack_info(), BOOST_AUTO_TEST_CASE(), ng::depcheck::manager::change_era(), ng::depcheck::manager::change_scenario(), gui2::chatbox::chat_input_keypress_callback(), addons_client::connect(), schema_validation::schema_self_validator::current_path(), font::del_tags(), gui2::dialogs::depcheck_confirm_change::depcheck_confirm_change(), saved_game::expand_mp_events(), campaignd::control_line::full(), ai::holder::get_ai_overview(), preferences::get_ignored_delim(), hotkey::get_names(), carryover::get_recruits(), wesnothd::server::handle_player_in_lobby(), campaignd::server::handle_server_id(), events::map_command_handler< chat_command_handler >::help_command(), game_lua_kernel::impl_game_config_get(), game_lua_kernel::intf_add_tile_overlay(), lua_stringx::intf_str_join(), terrain_type_data::lazy_initialization(), game_config_manager::load_addons_cfg(), wesnothd::server::login_client(), gui2::dialogs::faction_select::on_faction_select(), ai::leader_aspects_visitor::operator()(), operator<<(), gui2::dialogs::terrain_layers::pre_show(), gui2::dialogs::unit_list::pre_show(), events::sdl_handler::process_tooltip_string(), gui2::unit_preview_pane::set_displayed_unit(), preferences::set_modifications(), gui::floating_textbox::tab(), schema_validation::schema_self_validator::tag_path_exists(), game_classification::to_config(), ai::default_recruitment::recruit_job::to_config(), ai::default_recruitment::recruit_limit::to_config(), editor::map_context::to_config(), carryover::transfer_all_recruits_to(), unit_helper::unit_level_tooltip(), addons_client::upload_addon(), campaignd::server::validate_addon(), ai::config_value_translator< std::vector< std::string > >::value_to_cfg(), team::team_info::write(), addon_info::write(), unit::write(), game_events::manager::write_events(), addon_info::write_minimal(), game_data::write_snapshot(), write_str_int_map(), and preferences::manager::~manager().
std::string utils::join_map | ( | const T & | v, |
const std::string & | major = "," , |
||
const std::string & | minor = ":" |
||
) |
Definition at line 208 of file string_utils.hpp.
Referenced by lua_stringx::intf_str_join_map(), ng::connect_engine::save_reserved_sides_information(), and mp_game_settings::to_config().
shared_reference<T> utils::make_shared_reference | ( | Types &&... | args | ) |
Definition at line 85 of file shared_reference.hpp.
std::map< std::string, std::string > utils::map_split | ( | const std::string & | val, |
char | major = ',' , |
||
char | minor = ':' , |
||
int | flags = REMOVE_EMPTY|STRIP_SPACES , |
||
const std::string & | default_value = "" |
||
) |
Splits a string based on two separators into a map.
Major: the separator between elements of the map Minor: the separator between keys and values in one element
For example, the string 'a:b,c:d,e:f' would be parsed into: a => b c => d e => f
Definition at line 269 of file string_utils.cpp.
Referenced by lua_stringx::intf_str_map_split(), ng::connect_engine::load_previous_sides_users(), ng::connect_engine::save_reserved_sides_information(), and set_split().
|
inline |
Determines if a string might contain variables to interpolate.
This can allow one to skip future interpolations (plural – if there is only one interpolation, the savings are not worth this check). In this spirit, precision is sacrificed in the name of efficiency; the check is quick and allows false positives, but there are no false negatives. (A false negative would lead to incorrect behavior, whereas a false positive leads to merely inefficient behavior.) In practice, false positives should be uncommon enough to not worry about.
Definition at line 43 of file string_utils.hpp.
References format_conjunct_list(), format_disjunct_list(), format_timespan(), interpolate_variables_into_string(), interpolate_variables_into_tstring(), vgettext_impl(), and vngettext_impl().
Referenced by game_events::event_handlers::add_event_handler(), and game_events::manager::execute_on_events().
bool utils::notspace | ( | const char | c | ) |
Definition at line 57 of file string_utils.cpp.
References portable_isspace().
std::vector< std::string > utils::parenthetical_split | ( | const std::string & | val, |
const char | separator = 0 , |
||
const std::string & | left = "(" , |
||
const std::string & | right = ")" , |
||
const int | flags = REMOVE_EMPTY|STRIP_SPACES |
||
) |
Splits a string based either on a separator, except then the text appears within specified parenthesis.
If the separator is "0" (default), it splits a string into an odd number of parts:
Note that one can use the same character for both the left and right parenthesis, which usually makes the most sense for this function.
Note that this will find the first matching char in the left string and match against the corresponding char in the right string. A correctly processed string should return a vector with an odd number of elements. Empty elements are never removed as they are placeholders, hence REMOVE EMPTY only works for the separator split.
INPUT: ("a(b)c{d}e(f{g})h", 0, "({", ")}") RETURNS: {"a", "b", "c", "d", "e", "f{g}", "h"}
Definition at line 300 of file string_utils.cpp.
References ERR_GENERAL, i, left, portable_isspace(), REMOVE_EMPTY, right, STRIP_SPACES, and trim().
Referenced by unit::apply_builtin_effect(), image::modification::decode(), wfl::string_callable::get_value(), unit::init(), ai::manager::internal_evaluate_command(), intf_name_generator(), lua_stringx::intf_str_paren_split(), lua_stringx::intf_str_split(), image::load_image_sub_file(), set_split(), and image::modification_queue::top().
std::pair< int, int > utils::parse_range | ( | const std::string & | str | ) |
Definition at line 810 of file string_utils.cpp.
References a, b, and ERR_GENERAL.
Referenced by bullet_list(), lua_stringx::intf_parse_range(), ai::readonly_context_impl::is_active(), map_location::matches_range(), gamemap::parse_location_range(), parse_ranges(), and filter_impl::~filter_impl().
std::vector< std::pair< int, int > > utils::parse_ranges | ( | const std::string & | str | ) |
Definition at line 833 of file string_utils.cpp.
References parse_range(), and split().
Referenced by unit::ability_active(), bullet_list(), check_side_number(), unit_filter_impl::unit_filter_compound::fill(), unit_filter::first_match_on_map(), game_events::builtin_conditions::have_location(), game_events::builtin_conditions::have_unit(), terrain_filter::match_internal(), matches_simple_filter(), and attack_type::special_active_impl().
bool utils::portable_isspace | ( | const char | c | ) |
Definition at line 47 of file string_utils.cpp.
References isnewline().
Referenced by preprocessor_data::get_chunk(), notspace(), parenthetical_split(), preprocessor_data::read_word(), and square_parenthetical_split().
|
inline |
Add a "+" or replace the "-" par Unicode minus.
Definition at line 270 of file string_utils.hpp.
References escape(), and font::unicode_minus.
Referenced by unit::describe_builtin_effect(), and attack_type::describe_modification().
|
inline |
Surround the string 'str' with double quotes.
Definition at line 296 of file string_utils.hpp.
References bool_string(), half_signed_value(), signed_value(), and string_bool().
Referenced by split_foreach().
std::vector< std::string > utils::quoted_split | ( | const std::string & | val, |
char | c = ',' , |
||
int | flags = REMOVE_EMPTY|STRIP_SPACES , |
||
char | quote = '\\' |
||
) |
This function is identical to split(), except it does not split when it otherwise would if the previous character was identical to the parameter 'quote' (i.e.
it does not split quoted commas). This method was added to make it possible to quote user input, particularly so commas in user input would not cause visual problems in menus.
Definition at line 771 of file string_utils.cpp.
References REMOVE_EMPTY, STRIP_SPACES, and trim().
Referenced by gui::menu::fill_items(), help::generate_contents_links(), preprocessor_data::get_chunk(), preprocessor_streambuf::get_current_file(), get_location(), lua_stringx::intf_str_split(), lineno_string(), help::parse_config_internal(), help::section_is_referenced(), split_foreach(), and help::topic_is_referenced().
|
inline |
Splits a (comma-)separated string into a set of pieces.
See split() for the meanings of the parameters.
Definition at line 98 of file string_utils.hpp.
References c, left, map_split(), parenthetical_split(), REMOVE_EMPTY, right, split(), square_parenthetical_split(), and STRIP_SPACES.
std::string utils::si_string | ( | double | input, |
bool | base2, | ||
const std::string & | unit | ||
) |
Convert into a string with an SI-postfix.
If the unit is to be translatable, a t_string should be passed as the third argument. _("unit_byte^B") is suggested as standard.
There are no default values because they would not be translatable.
Definition at line 532 of file string_utils.cpp.
References _(), si_string_impl_stream_write(), and font::unicode_minus.
Referenced by gui2::dialogs::network_transmission::pump_monitor::process(), gui2::dialogs::screenshot_notification::save_screenshot(), signed_percent(), size_display_string(), and gui2::dialogs::game_cache_options::update_cache_size_display().
|
static |
Definition at line 503 of file string_utils.cpp.
Referenced by si_string().
|
inline |
Convert into a percentage (using the Unicode "−" and +0% convention.
Definition at line 314 of file string_utils.hpp.
References ellipsis_truncate(), isvalid_username(), isvalid_wildcard(), preferences::login(), match(), si_string(), signed_value(), utf8::size(), wildcard_string_match(), word_completion(), and word_match().
Referenced by attack_type::accuracy_parry_description(), attack_info(), gui2::get_hp_tooltip(), gui2::dialogs::attack_predictions::set_data(), time_of_day_at(), unit_alignment(), unit_box_at(), and unit_hp().
std::string utils::signed_value | ( | int | val | ) |
Convert into a signed value (using the Unicode "−" and +0 convention.
Definition at line 487 of file string_utils.cpp.
References font::unicode_minus.
Referenced by attack_info(), gui2::dialogs::game_stats::pre_show(), quote(), and signed_percent().
std::vector< std::string > utils::split | ( | std::string_view | s, |
const char | sep, | ||
const int | flags | ||
) |
Splits a (comma-)separated string into a vector of pieces.
[in] | s | A (comma-)separated string. |
[in] | sep | The separator character (usually a comma). |
[in] | flags | Flags controlling how the split is done. This is a bit field with two settings (both on by default): REMOVE_EMPTY causes empty pieces to be skipped/removed. STRIP_SPACES causes the leading and trailing spaces of each piece to be ignored/stripped. |
Definition at line 82 of file string_utils.cpp.
References split_foreach().
std::vector< std::string > utils::split | ( | const config_attribute_value & | val | ) |
Definition at line 436 of file config_attribute_value.cpp.
References config_attribute_value::str().
Referenced by halo::halo_impl::add(), unit_animation::add_anims(), game_config::add_color_info(), game_events::event_handlers::add_event_handler(), terrain_builder::add_images_from_config(), name_generator_factory::add_name_generator_from_config(), terrain_builder::add_rotated_rules(), schema_validation::wml_tag::add_switch(), ng::flg_manager::append_leaders_from_faction(), unit::apply_builtin_effect(), attack_type::apply_modification(), unit_type::apply_scenario_fix(), unit_type::build_created(), unit_type::build_help_index(), team::calculate_is_enemy(), ai::config_value_translator< utils::variant< bool, std::vector< std::string > > >::cfg_to_value(), ai::config_value_translator< std::vector< std::string > >::cfg_to_value(), schema_validation::schema_self_validator::check_for_duplicates(), game_events::event_handlers::clean_up_expired_handlers(), game_config::color_info(), campaignd::command_line::command_line(), commandline_options::commandline_options(), ng::depcheck::manager::conflicts(), addons_client::connect(), savegame::convert_old_saves_1_13_1(), gui::menu::create_help_strings(), ai::default_recruitment::recruitment_aspect::create_job(), ai::default_recruitment::recruitment_aspect::create_limit(), events::menu_handler::custom_command(), default_map_generator_job::default_generate_map(), font::del_tags(), events::menu_handler::do_search(), events::console_handler::do_unit(), display::draw_hex(), gui::menu::draw_row(), gui2::dialogs::game_load::evaluate_summary_string(), schema_validation::wml_tag::expand(), combatant::fight(), unit_filter_impl::unit_filter_compound::fill(), terrain_filterimpl::filter_special_loc(), gui2::dialogs::unit_recruit::filter_text_changed(), gui2::dialogs::log_settings::filter_text_changed(), gui2::dialogs::unit_recall::filter_text_changed(), gui2::dialogs::game_load::filter_text_changed(), gui2::dialogs::unit_create::filter_text_changed(), gui2::dialogs::campaign_selection::filter_text_changed(), unit_creator::find_location(), ng::flg_manager::find_suitable_faction(), color_t::from_rgb_string(), color_t::from_rgba_string(), gui2::dialogs::mp_lobby::game_filter_reload(), cave_map_generator::cave_map_generator_job::generate_chambers(), help::generate_faction_topics(), help::generate_sections(), help::generate_topic_text(), help::generate_topics(), ai::unit_advancements_aspect::get_advancements(), preprocessor_data::get_chunk(), filesystem::get_localized_path(), terrain_filter::get_locs_impl(), unit::get_modification_advances(), gui2::dialogs::addon_manager::get_name_filter_visibility(), ai::default_recruitment::recruitment::get_random_pattern_type_if_exists(), ng::depcheck::manager::get_required(), wfl::string_callable::get_value(), get_variations(), wesnothd::server::handle_create_game(), gui2::dialogs::preferences_dialog::hotkey_filter_callback(), game_lua_kernel::impl_game_config_get(), indent(), unit::init(), display::init_flags_for_side_internal(), game_lua_kernel::intf_clear_menu_item(), intf_name_generator(), lua_stringx::intf_str_split(), ai::readonly_context_impl::is_active(), gui::menu::style::item_size(), terrain_type_data::lazy_initialization(), ai::default_recruitment::recruitment::leader_matches_job(), ai::default_recruitment::recruitment::limit_ok(), game_config_manager::load_addons_cfg(), campaignd::server::load_config(), wesnothd::server::load_config(), game_config::load_config(), preferences::load_credentials(), font::load_font_config(), terrain_builder::load_images(), preferences::manager::manager(), map_split(), side_filter::match_internal(), terrain_filter::match_internal(), map_location::matches_range(), matches_simple_filter(), theme::menu::menu(), theme::object::modify_location(), unit_type::musthave_status(), schema_validation::schema_self_validator::name_matches(), ai::formula_ai::on_create(), gui2::dialogs::faction_select::on_faction_select(), help::unit_topic_generator::operator()(), operator<<(), terrain_builder::parse_config(), map_location::parse_directions(), gui::parse_fraction(), wesnothd::parse_ip(), gamemap::parse_location_range(), commandline_options::parse_log_domains_(), parse_ranges(), commandline_options::parse_resolution_(), campaignd::blacklist::parse_str_to_globlist(), commandline_options::parse_to_uint_string_string_tuples_(), commandline_options::parse_to_uint_string_tuples_(), ng::create_engine::prepare_for_campaign(), team_builder::previous_recruits(), playmp_controller::process_oos(), progressive_pair< int >::progressive_pair(), progressive_single< image::locator >::progressive_single(), team::team_info::read(), addon_info::read(), gui2::implementation::read_flags(), unit_type_data::read_hide_help(), read_locations(), read_rect(), game_events::manager::read_scenario(), read_str_int_map(), ai::default_recruitment::recruitment::recruit_matches_job(), unit_type::remove_scenario_fixes(), font::render_text(), ng::depcheck::manager::requires(), unit_type::resistance_filter_matches(), unit::resistance_filter_matches(), sound::music_track::resolve(), tod_manager::resolve_random(), ng::flg_manager::resolve_random(), resolve_rect(), terrain_builder::rule_image_variant::rule_image_variant(), game_lua_kernel::run_filter(), gui::button::set_label(), set_split(), editor::terrain_palette::setup(), split_foreach(), square_parenthetical_split(), SYNCED_COMMAND_HANDLER_FUNCTION(), schema_validation::schema_self_validator::tag_path_exists(), game_config::tc_info(), image::modification_queue::top(), unit_animation::unit_animation(), schema_validation::schema_validator::validate_key(), schema_validation::schema_self_validator::validate_key(), version_info::version_info(), and game_events::WML_HANDLER_FUNCTION().
void utils::split_foreach | ( | std::string_view | s, |
char | sep, | ||
const int | flags, | ||
const F & | f | ||
) |
Definition at line 66 of file string_utils.hpp.
References c, f, quote(), quoted_split(), REMOVE_EMPTY, split(), split_foreach_impl(), split_set(), STRIP_SPACES, and trim().
Referenced by split(), and split_set().
void utils::split_foreach_impl | ( | std::string_view | s, |
char | sep, | ||
const F & | f | ||
) |
std::set< std::string > utils::split_set | ( | std::string_view | s, |
char | sep, | ||
const int | flags | ||
) |
Definition at line 91 of file string_utils.cpp.
References split_foreach().
Referenced by preferences::manager::manager(), and split_foreach().
std::vector< std::string > utils::square_parenthetical_split | ( | const std::string & | val, |
const char | separator = ',' , |
||
const std::string & | left = "([" , |
||
const std::string & | right = ")]" , |
||
const int | flags = REMOVE_EMPTY|STRIP_SPACES |
||
) |
Similar to parenthetical_split, but also expands embedded square brackets.
Notes:
This is useful for expanding animation WML code.
Examples:
INPUT: ("a[1-3](1,[5,6,7]),b[8,9]", ",") RETURNS: {"a1(1,5)", "a2(1,6)", "a3(1,7)", "b8", "b9"}
INPUT: ("abc[07-10]") RETURNS: {"abc07", "abc08", "abc09", "abc10"}
INPUT: ("a[1,2]b[3-4]:c[5,6]") RETURNS: {"a1b3:c5", "a2b4:c6"}
INPUT: ("abc[3,1].png") RETURNS: {"abc3.png", "abc2.png", "abc1.png"}
INPUT: ("abc[de,xyz]") RETURNS: {"abcde", "abcxyz"}
INPUT: ("abc[1*3]") RETURNS: {"abc1", "abc1", "abc1"}
Definition at line 100 of file string_utils.cpp.
References ERR_GENERAL, i, left, p, portable_isspace(), REMOVE_EMPTY, right, split(), STRIP_SPACES, and trim().
Referenced by halo::halo_impl::add(), terrain_builder::add_constraints(), display::init_flags_for_side_internal(), lua_stringx::intf_str_split(), terrain_builder::load_images(), pick_one(), progressive_single< image::locator >::progressive_single(), and set_split().
bool utils::string_bool | ( | const std::string & | str, |
bool | def | ||
) |
Convert no, false, off, 0, 0.0 to false, empty to def, and others to true.
Definition at line 467 of file string_utils.cpp.
Referenced by gui2::typed_formula< bool >::convert(), campaignd::server::handle_read_from_fifo(), tod_manager::is_start_ToD(), quote(), and gui2::styled_widget::set_members().
void utils::trim | ( | std::string_view & | s | ) |
Definition at line 62 of file string_utils.cpp.
Referenced by wesnothd::server::ban_handler(), wesnothd::server::bans_handler(), context_free_grammar_generator::context_free_grammar_generator(), game_config::dist_channel_id(), wesnothd::server::gban_handler(), events::cmd_arg_parser::get_data(), lua_stringx::intf_str_trim(), wesnothd::server::kickban_handler(), parenthetical_split(), preferences::password(), wesnothd::server::pm_handler(), wesnothd::server::process_command(), quoted_split(), read_ignore_patterns(), preferences::set_login(), preferences::set_password(), split_foreach(), square_parenthetical_split(), game_events::event_handlers::standardize_name(), t_translation::string_to_number_(), and version_info::version_info().
std::string utils::unescape | ( | const std::string & | str | ) |
Remove all escape characters (backslash)
Definition at line 423 of file string_utils.cpp.
Referenced by font::draw_text(), and escape().
std::string utils::urlencode | ( | const std::string & | str | ) |
Percent-escape characters in a UTF-8 string intended to be part of a URL.
Definition at line 438 of file string_utils.cpp.
References c.
Referenced by escape(), and campaignd::format_addon_feedback_url().
std::size_t utils::variant_index | ( | const variant< Types... > & | var | ) |
Definition at line 79 of file variant.hpp.
bool utils::wildcard_string_match | ( | const std::string & | str, |
const std::string & | match | ||
) |
Match using '*' as any number of characters (including none), '+' as one or more characters, and '?' as any one character.
Definition at line 697 of file string_utils.cpp.
References i.
Referenced by wesnothd::server::ban_handler(), BOOST_AUTO_TEST_CASE(), game_config::config_cache::delete_cache_files(), schema_validation::wml_tag::find_key(), schema_validation::wml_tag::find_tag(), wesnothd::server::gban_handler(), campaignd::server::ignore_address_stats(), campaignd::blacklist::ip_matches(), campaignd::blacklist::is_in_globlist(), wesnothd::server::is_login_allowed(), wesnothd::server::kick_handler(), wesnothd::server::kickban_handler(), wesnothd::server::login_client(), filesystem::looks_like_pbl(), filesystem::blacklist_pattern_list::match_dir(), filesystem::blacklist_pattern_list::match_file(), config::matches(), schema_validation::schema_self_validator::name_matches(), wesnothd::server::searchlog_handler(), signed_percent(), and wesnothd::server::status_handler().
bool utils::word_completion | ( | std::string & | text, |
std::vector< std::string > & | wordlist | ||
) |
Try to complete the last word of 'text' with the 'wordlist'.
[in,out] | text | The parameter's usage is:
|
[in,out] | wordlist | The parameter's usage is:
|
true | iff text is just one word (no spaces) |
Definition at line 634 of file string_utils.cpp.
References chars_equal_insensitive().
Referenced by gui2::chatbox::chat_input_keypress_callback(), signed_percent(), gui::floating_textbox::tab(), and gui2::dialogs::lua_interpreter::controller::tab().
bool utils::word_match | ( | const std::string & | message, |
const std::string & | word | ||
) |
Check if a message contains a word.
Definition at line 685 of file string_utils.cpp.
References is_word_boundary(), and next.
Referenced by display_chat_manager::add_chat_message(), gui2::chatbox::add_chat_room_message_received(), and signed_percent().
|
inline |
Equivalent to as std::is_same_v
except it uses the decayed form of V.
T1 | The first type to compare. |
T2 | The second type to compare. This will be passed through std::decay . |
Definition at line 34 of file general.hpp.
Referenced by ai::formula_ai::add_formula_function(), advance_unit(), ai::readonly_context_impl::applies_to_leader(), ai::cfun_ai_get_leader_goal(), and ai::lua_object< T >::from_type().