OSDN Git Service

Merge pull request #3532 from sikabane-works/release/3.0.0.87-alpha
[hengbandforosx/hengbandosx.git] / src / util / int-char-converter.h
1 #pragma once
2
3 #include "system/angband.h"
4
5 /*
6  * Allow use of "ASCII" and "EBCDIC" for "indexes", "digits",
7  * and "Control-Characters".
8  *
9  * Note that all "index" values must be "lowercase letters", while
10  * all "digits" must be "digits".  Control characters can be made
11  * from any legal characters.
12  */
13
14 constexpr uint8_t A2I(int ch)
15 {
16     return ch - 'a';
17 }
18
19 constexpr char I2A(int i)
20 {
21     return static_cast<char>(i + 'a');
22 }
23
24 constexpr uint8_t D2I(int ch)
25 {
26     return ch - '0';
27 }
28
29 constexpr char I2D(int i)
30 {
31     return static_cast<char>(i + '0');
32 }
33
34 template <typename T>
35 constexpr T KTRL(T ch)
36 {
37     return static_cast<T>(ch & 0x1F);
38 }
39
40 constexpr char ESCAPE = '\033';