From Jason Turner

[character.seq]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp1oj1fxu9/{from.md → to.md} +26 -10
tmp/tmp1oj1fxu9/{from.md → to.md} RENAMED
@@ -1,21 +1,33 @@
1
  ##### Character sequences <a id="character.seq">[[character.seq]]</a>
2
 
 
 
3
  The C standard library makes widespread use of characters and character
4
  sequences that follow a few uniform conventions:
5
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  - A *letter* is any of the 26 lowercase or 26 uppercase letters in the
7
- basic execution character set.
8
- - The *decimal-point character* is the (single-byte) character used by
9
- functions that convert between a (single-byte) character sequence and
10
- a value of one of the floating-point types. It is used in the
11
- character sequence to denote the beginning of a fractional part. It is
12
- represented in [[support]] through [[thread]] and [[depr]] by a
13
- period, `'.'`, which is also its value in the `"C"` locale, but may
14
- change during program execution by a call to
15
- `setlocale(int, const char*)`,[^8] or by a change to a `locale`
16
- object, as described in [[locales]] and [[input.output]].
17
  - A *character sequence* is an array object [[dcl.array]] `A` that can
18
  be declared as `T A[N]`, where `T` is any of the types `char`,
19
  `unsigned char`, or `signed char` [[basic.fundamental]], optionally
20
  qualified by any combination of `const` or `volatile`. The initial
21
  elements of the array have defined contents up to and including an
@@ -37,10 +49,14 @@ and including the terminating null character.
37
 
38
  A *static NTBS* is an NTBS with static storage duration.[^10]
39
 
40
  ###### Multibyte strings <a id="multibyte.strings">[[multibyte.strings]]</a>
41
 
 
 
 
 
42
  A *null-terminated multibyte string*, or NTMBS, is an NTBS that
43
  constitutes a sequence of valid multibyte characters, beginning and
44
  ending in the initial shift state.[^11]
45
 
46
  A *static NTMBS* is an NTMBS with static storage duration.
 
1
  ##### Character sequences <a id="character.seq">[[character.seq]]</a>
2
 
3
+ ###### General <a id="character.seq.general">[[character.seq.general]]</a>
4
+
5
  The C standard library makes widespread use of characters and character
6
  sequences that follow a few uniform conventions:
7
 
8
+ - Properties specified as *locale-specific* may change during program
9
+ execution by a call to `setlocale(int, const char*)` [[clocale.syn]],
10
+ or by a change to a `locale` object, as described in [[locales]] and
11
+ [[input.output]].
12
+ - The *execution character set* and the *execution wide-character set*
13
+ are supersets of the basic literal character set [[lex.charset]]. The
14
+ encodings of the execution character sets and the sets of additional
15
+ elements (if any) are locale-specific. Each element of the execution
16
+ wide-character set is encoded as a single code unit representable by a
17
+ value of type `wchar_t`. \[*Note 1*: The encodings of the execution
18
+ character sets can be unrelated to any literal
19
+ encoding. — *end note*]
20
  - A *letter* is any of the 26 lowercase or 26 uppercase letters in the
21
+ basic character set.
22
+ - The *decimal-point character* is the locale-specific (single-byte)
23
+ character used by functions that convert between a (single-byte)
24
+ character sequence and a value of one of the floating-point types. It
25
+ is used in the character sequence to denote the beginning of a
26
+ fractional part. It is represented in [[support]] through [[thread]]
27
+ and [[depr]] by a period, `'.'`, which is also its value in the `"C"`
28
+ locale.
 
 
29
  - A *character sequence* is an array object [[dcl.array]] `A` that can
30
  be declared as `T A[N]`, where `T` is any of the types `char`,
31
  `unsigned char`, or `signed char` [[basic.fundamental]], optionally
32
  qualified by any combination of `const` or `volatile`. The initial
33
  elements of the array have defined contents up to and including an
 
49
 
50
  A *static NTBS* is an NTBS with static storage duration.[^10]
51
 
52
  ###### Multibyte strings <a id="multibyte.strings">[[multibyte.strings]]</a>
53
 
54
+ A *multibyte character* is a sequence of one or more bytes representing
55
+ the code unit sequence for an encoded character of the execution
56
+ character set.
57
+
58
  A *null-terminated multibyte string*, or NTMBS, is an NTBS that
59
  constitutes a sequence of valid multibyte characters, beginning and
60
  ending in the initial shift state.[^11]
61
 
62
  A *static NTMBS* is an NTMBS with static storage duration.