OpenTTD Source: src/string_type.h File Reference

OpenTTD Source 15.0-RC2

Data Structures | Macros | Typedefs | Enumerations | Variables
string_type.h File Reference

Types for strings. More...

`#include "core/enum_type.hpp"`

Go to the source code of this file.

## Data Structures
struct | StringHash
| Helper to provide transparent hashing for string types in e.g. More...

## 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
using | StringValidationSettings = EnumBitSet< StringValidationSetting, uint8_t >
typedef std::vector< std::string > | StringList
| Type for a list of strings.

## Enumerations
enum | CharSetFilter : uint8_t { CS_ALPHANUMERAL , CS_NUMERAL , CS_NUMERAL_SPACE , CS_NUMERAL_SIGNED , CS_ALPHA , CS_HEXADECIMAL }
| Valid filter types for IsValidChar. More...
enum class | StringValidationSetting : uint8_t { ReplaceWithQuestionMark , AllowNewline , AllowControlCode , ReplaceTabCrNlWithSpace }
| 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.

## ◆ StringValidationSettings

using StringValidationSettings = EnumBitSet<StringValidationSetting, uint8_t>

Definition at line 56 of file string_type.h.

## Enumeration Type Documentation

## ◆ CharSetFilter

enum CharSetFilter : uint8_t

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.

## ◆ StringValidationSetting

enum class StringValidationSetting : uint8_t
| strong

Settings for the string validation.

Enumerator
ReplaceWithQuestionMark | Replace the unknown/bad bits with question marks.
AllowNewline | Allow newlines; replaces '\r ' with ' ' during processing.
AllowControlCode | Allow the special control codes.
ReplaceTabCrNlWithSpace | Replace tabs ('\t'), carriage returns ('\r') and newlines (' ') with spaces. When StringValidationSetting::AllowNewline is set, a ' ' or '\r ' combination are not replaced with a space. A lone '\r' is replaced with a space. When StringValidationSetting::ReplaceWithQuestionMark 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().