OpenTTD Source 20241224-master-gf74b0cf984
string_type.h File Reference

Types for strings. More...

#include "core/enum_type.hpp"

Go to the source code of this file.

Macros

#define NBSP   "\u00a0"
 A non-breaking space.
 
#define LRM   "\u200e"
 A left-to-right marker, marks the next character as left-to-right.
 

Typedefs

typedef std::vector< std::string > StringList
 Type for a list of strings.
 

Enumerations

enum  CharSetFilter {
  CS_ALPHANUMERAL , CS_NUMERAL , CS_NUMERAL_SPACE , CS_NUMERAL_SIGNED ,
  CS_ALPHA , CS_HEXADECIMAL
}
 Valid filter types for IsValidChar. More...
 
enum  StringValidationSettings {
  SVS_NONE = 0 , SVS_REPLACE_WITH_QUESTION_MARK = 1 << 0 , SVS_ALLOW_NEWLINE = 1 << 1 , SVS_ALLOW_CONTROL_CODE = 1 << 2 ,
  SVS_REPLACE_TAB_CR_NL_WITH_SPACE = 1 << 3
}
 Settings for the string validation. More...
 

Variables

static const char32_t CHAR_TD_LRM = 0x200E
 The next character acts like a left-to-right character.
 
static const char32_t CHAR_TD_RLM = 0x200F
 The next character acts like a right-to-left character.
 
static const char32_t CHAR_TD_LRE = 0x202A
 The following text is embedded left-to-right.
 
static const char32_t CHAR_TD_RLE = 0x202B
 The following text is embedded right-to-left.
 
static const char32_t CHAR_TD_LRO = 0x202D
 Force the following characters to be treated as left-to-right characters.
 
static const char32_t CHAR_TD_RLO = 0x202E
 Force the following characters to be treated as right-to-left characters.
 
static const char32_t CHAR_TD_PDF = 0x202C
 Restore the text-direction state to before the last LRE, RLE, LRO or RLO.
 

Detailed Description

Types for strings.

Definition in file string_type.h.

Macro Definition Documentation

◆ LRM

#define LRM   "\u200e"

A left-to-right marker, marks the next character as left-to-right.

Definition at line 19 of file string_type.h.

◆ NBSP

#define NBSP   "\u00a0"

A non-breaking space.

Definition at line 16 of file string_type.h.

Typedef Documentation

◆ StringList

typedef std::vector<std::string> StringList

Type for a list of strings.

Definition at line 60 of file string_type.h.

Enumeration Type Documentation

◆ CharSetFilter

Valid filter types for IsValidChar.

Enumerator
CS_ALPHANUMERAL 

Both numeric and alphabetic and spaces and stuff.

CS_NUMERAL 

Only numeric ones.

CS_NUMERAL_SPACE 

Only numbers and spaces.

CS_NUMERAL_SIGNED 

Only numbers and '-' for negative values.

CS_ALPHA 

Only alphabetic values.

CS_HEXADECIMAL 

Only hexadecimal characters.

Definition at line 24 of file string_type.h.

◆ StringValidationSettings

Settings for the string validation.

Enumerator
SVS_NONE 

Allow nothing and replace nothing.

SVS_REPLACE_WITH_QUESTION_MARK 

Replace the unknown/bad bits with question marks.

SVS_ALLOW_NEWLINE 

Allow newlines; replaces '\r
' with '
' during processing.

SVS_ALLOW_CONTROL_CODE 

Allow the special control codes.

SVS_REPLACE_TAB_CR_NL_WITH_SPACE 

Replace tabs ('\t'), carriage returns ('\r') and newlines ('
') with spaces.

When SVS_ALLOW_NEWLINE is set, a '
' or '\r
' combination are not replaced with a space. A lone '\r' is replaced with a space. When SVS_REPLACE_WITH_QUESTION_MARK is set, this replacement runs first.

Definition at line 44 of file string_type.h.

Variable Documentation

◆ CHAR_TD_LRE

const char32_t CHAR_TD_LRE = 0x202A
static

The following text is embedded left-to-right.

Definition at line 37 of file string_type.h.

Referenced by IsTextDirectionChar().

◆ CHAR_TD_LRM

const char32_t CHAR_TD_LRM = 0x200E
static

The next character acts like a left-to-right character.

Definition at line 35 of file string_type.h.

Referenced by IsTextDirectionChar().

◆ CHAR_TD_LRO

const char32_t CHAR_TD_LRO = 0x202D
static

Force the following characters to be treated as left-to-right characters.

Definition at line 39 of file string_type.h.

Referenced by IsTextDirectionChar().

◆ CHAR_TD_PDF

const char32_t CHAR_TD_PDF = 0x202C
static

Restore the text-direction state to before the last LRE, RLE, LRO or RLO.

Definition at line 41 of file string_type.h.

Referenced by IsTextDirectionChar().

◆ CHAR_TD_RLE

const char32_t CHAR_TD_RLE = 0x202B
static

The following text is embedded right-to-left.

Definition at line 38 of file string_type.h.

Referenced by IsTextDirectionChar().

◆ CHAR_TD_RLM

const char32_t CHAR_TD_RLM = 0x200F
static

The next character acts like a right-to-left character.

Definition at line 36 of file string_type.h.

Referenced by IsTextDirectionChar().

◆ CHAR_TD_RLO

const char32_t CHAR_TD_RLO = 0x202E
static

Force the following characters to be treated as right-to-left characters.

Definition at line 40 of file string_type.h.

Referenced by IsTextDirectionChar().