The Battle for Wesnoth  1.19.7+dev
Classes | Namespaces | Macros | Functions | Variables
string_utils.cpp File Reference
#include "formula/string_utils.hpp"
#include "variable.hpp"
#include "config.hpp"
#include "log.hpp"
#include "gettext.hpp"
#include <algorithm>
#include <array>
#include <utility>
Include dependency graph for string_utils.cpp:

Go to the source code of this file.

Classes

class  utils::string_map_variable_set< T >
 

Namespaces

 utils
 
 utils::detail
 

Macros

#define GETTEXT_DOMAIN   "wesnoth-lib"
 
#define ERR_NG   LOG_STREAM(err, log_engine)
 
#define WRN_NG   LOG_STREAM(warn, log_engine)
 

Functions

static bool two_dots (char a, char b)
 
static std::string do_interpolation (const std::string &str, const variable_set &set)
 
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. More...
 
std::string utils::interpolate_variables_into_string (const std::string &str, const std::map< std::string, std::string > *const symbols)
 
std::string utils::interpolate_variables_into_string (const std::string &str, const variable_set &variables)
 
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. More...
 
std::string utils::format_conjunct_list (const t_string &empty, const std::vector< t_string > &elems)
 Format a conjunctive list. More...
 
std::string utils::format_disjunct_list (const t_string &empty, const std::vector< t_string > &elems)
 Format a disjunctive list. More...
 
std::string vgettext_impl (const char *domain, const char *msgid, const utils::string_map &symbols)
 Implementation functions for the VGETTEXT and VNGETTEXT macros. More...
 
std::string vngettext_impl (const char *domain, const char *singular, const char *plural, int count, const utils::string_map &symbols)
 
std::size_t edit_distance_approx (std::string_view str_1, std::string_view str_2) noexcept
 Calculate the approximate edit distance of two strings. More...
 

Variables

static lg::log_domain log_engine ("engine")
 
std::string(* utils::detail::evaluate_formula )(const std::string &formula) = nullptr
 

Macro Definition Documentation

◆ ERR_NG

#define ERR_NG   LOG_STREAM(err, log_engine)

Definition at line 31 of file string_utils.cpp.

◆ GETTEXT_DOMAIN

#define GETTEXT_DOMAIN   "wesnoth-lib"

Definition at line 17 of file string_utils.cpp.

◆ WRN_NG

#define WRN_NG   LOG_STREAM(warn, log_engine)

Definition at line 32 of file string_utils.cpp.

Function Documentation

◆ do_interpolation()

static std::string do_interpolation ( const std::string &  str,
const variable_set set 
)
static

◆ edit_distance_approx()

std::size_t edit_distance_approx ( std::string_view  str_1,
std::string_view  str_2 
)
noexcept

Calculate the approximate edit distance of two strings.

Parameters
str_1First string to compare.
str_2Second string to compare.
Returns
A score indicating how different the two strings are–the lower the score, the more similar the strings are.
Note
To avoid dynamic allocation, this function limits the number of characters that participate in the comparison.

Definition at line 318 of file string_utils.cpp.

References i, and swap().

Referenced by events::map_command_handler< Worker >::dispatch().

◆ two_dots()

static bool two_dots ( char  a,
char  b 
)
static

Definition at line 34 of file string_utils.cpp.

References b.

Referenced by do_interpolation().

◆ vgettext_impl()

std::string vgettext_impl ( const char *  domain,
const char *  msgid,
const utils::string_map symbols 
)

Implementation functions for the VGETTEXT and VNGETTEXT macros.

DO NOT USE DIRECTLY unless you really know what you're doing. See https://github.com/wesnoth/wesnoth/issues/2716 for more info.

Definition at line 298 of file string_utils.cpp.

References translation::dsgettext(), utils::interpolate_variables_into_string(), and wfl::msg().

Referenced by gui2::dialogs::mp_staging::pre_show().

◆ vngettext_impl()

std::string vngettext_impl ( const char *  domain,
const char *  singular,
const char *  plural,
int  count,
const utils::string_map symbols 
)

Variable Documentation

◆ log_engine

lg::log_domain log_engine("engine") ( "engine"  )
static