Skip to content

Commit 6374609

Browse files
author
Colin Robertson
committed
Fix another huge swathe of markdig issues
1 parent e9e5fe8 commit 6374609

75 files changed

Lines changed: 9663 additions & 8807 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/c-runtime-library/reference/rtc-seterrorfuncw.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,23 +50,23 @@ Before you can call this function, you must first call one of the run-time error
5050

5151
**_RTC_error_fnW** is defined as follows:
5252

53-
> **typedef int (__cdecl \*_RTC_error_fnW)(int** *errorType* **, const wchar_t \*** *filename* **, int** *linenumber* **, const wchar_t \*** *moduleName* **, const wchar_t \*** *format* **, ...);**
53+
> **typedef int (__cdecl * _RTC_error_fnW)(int** *errorType* **, const wchar_t *** *filename* **, int** *linenumber* **, const wchar_t *** *moduleName* **, const wchar_t *** *format* **, ...);**
5454
5555
where:
5656

57-
*errorType*
57+
*errorType*<br/>
5858
The type of error that's specified by [_RTC_SetErrorType](rtc-seterrortype.md).
5959

60-
*filename*
60+
*filename*<br/>
6161
The source file where the failure occurred, or null if no debug information is available.
6262

63-
*linenumber*
63+
*linenumber*<br/>
6464
The line in *filename* where the failure occurred, or 0 if no debug information is available.
6565

66-
*moduleName*
66+
*moduleName*<br/>
6767
The DLL or executable name where the failure occurred.
6868

69-
*format*
69+
*format*<br/>
7070
printf style string to display an error message, using the remaining parameters. The first argument of the VA_ARGLIST is the RTC Error number that occurred.
7171

7272
For an example that shows how to use **_RTC_error_fnW**, see [Native Run-Time Checks Customization](/visualstudio/debugger/native-run-time-checks-customization).

docs/c-runtime-library/reference/set-new-mode.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ _set_new_mode(1);
4444

4545
early in your program or link with Newmode.obj (see [Link Options](../../c-runtime-library/link-options.md)).
4646

47-
This function validates its parameter. If *newhandlermode* is anything other than 0 or 1, the function invokes the invalid parameter handler, as described in [Parameter Validation](../../c-runtime-library/parameter-validation.md). If execution is allowed to continue, **_****set_new_mode** returns -1 and sets **errno** to **EINVAL**.
47+
This function validates its parameter. If *newhandlermode* is anything other than 0 or 1, the function invokes the invalid parameter handler, as described in [Parameter Validation](../../c-runtime-library/parameter-validation.md). If execution is allowed to continue, <strong>_set_new_mode</strong> returns -1 and sets **errno** to `EINVAL`.
4848

4949
## Requirements
5050

docs/c-runtime-library/scanf-width-specification.md

Lines changed: 84 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -15,81 +15,88 @@ ms.author: "corob"
1515
ms.workload: ["cplusplus"]
1616
---
1717
# scanf Width Specification
18-
This information applies to the interpretation of format strings in the `scanf` family of functions, including the secure versions such as `scanf_s`. These functions normally assume the input stream is divided into a sequence of tokens. Tokens are separated by whitespace (space, tab, or newline), or in the case of numerical types, by the natural end of a numerical data type as indicated by the first character that cannot be converted into numerical text. However, the width specification may be used to cause parsing of the input to stop before the natural end of a token.
19-
20-
The *width* specification consists of characters between the `%` and the type field specifier, which may include a positive integer called the *width* field and one or more characters indicating the size of the field, which may also be considered as modifiers of the type of the field, such as an indication of whether the integer type is **short** or **long**. Such characters are referred to as the size prefix.
21-
22-
## The Width Field
23-
*The width* field is a positive decimal integer controlling the maximum number of characters to be read for that field. No more than *width* characters are converted and stored at the corresponding `argument`. Fewer than *width* characters may be read if a whitespace character (space, tab, or newline) or a character that cannot be converted according to the given format occurs before *width* is reached.
24-
25-
The width specification is separate and distinct from the buffer size argument required by the secure versions of these functions (i.e., `scanf_s`, `wscanf_s`, etc.). In the following example, the width specification is 20, indicating that up to 20 characters are to be read from the input stream. The buffer length is 21, which includes room for the possible 20 characters plus the null terminator:
26-
27-
```
28-
char str[21];
29-
scanf_s("%20s", str, 21);
30-
```
31-
32-
If the *width* field is not used, `scanf_s` will attempt to read the entire token into the string. If the size specified is not large enough to hold the entire token, nothing will be written to the destination string. If the *width* field is specified, then the first *width* characters in the token will be written to the destination string along with the null terminator.
33-
34-
## The Size Prefix
35-
The optional prefixes **h**, **l**, **ll**, **I64**, and **L** indicate the size of the `argument` (long or short, single-byte character or wide character, depending upon the type character that they modify). These format-specification characters are used with type characters in `scanf` or `wscanf` functions to specify interpretation of arguments as shown in the following table. The type prefix **I64** is a Microsoft extension and is not ANSI compatible. The type characters and their meanings are described in the "Type Characters for scanf functions" table in [scanf Type Field Characters](../c-runtime-library/scanf-type-field-characters.md).
36-
18+
19+
This information applies to the interpretation of format strings in the `scanf` family of functions, including the secure versions such as `scanf_s`. These functions normally assume the input stream is divided into a sequence of tokens. Tokens are separated by whitespace (space, tab, or newline), or in the case of numerical types, by the natural end of a numerical data type as indicated by the first character that cannot be converted into numerical text. However, the width specification may be used to cause parsing of the input to stop before the natural end of a token.
20+
21+
The *width* specification consists of characters between the `%` and the type field specifier, which may include a positive integer called the *width* field and one or more characters indicating the size of the field, which may also be considered as modifiers of the type of the field, such as an indication of whether the integer type is **short** or **long**. Such characters are referred to as the size prefix.
22+
23+
## The Width Field
24+
25+
The *width* field is a positive decimal integer controlling the maximum number of characters to be read for that field. No more than *width* characters are converted and stored at the corresponding `argument`. Fewer than *width* characters may be read if a whitespace character (space, tab, or newline) or a character that cannot be converted according to the given format occurs before *width* is reached.
26+
27+
The width specification is separate and distinct from the buffer size argument required by the secure versions of these functions (i.e., `scanf_s`, `wscanf_s`, etc.). In the following example, the width specification is 20, indicating that up to 20 characters are to be read from the input stream. The buffer length is 21, which includes room for the possible 20 characters plus the null terminator:
28+
29+
```C
30+
char str[21];
31+
scanf_s("%20s", str, 21);
32+
```
33+
34+
If the *width* field is not used, `scanf_s` will attempt to read the entire token into the string. If the size specified is not large enough to hold the entire token, nothing will be written to the destination string. If the *width* field is specified, then the first *width* characters in the token will be written to the destination string along with the null terminator.
35+
36+
## The Size Prefix
37+
38+
The optional prefixes **h**, **l**, **ll**, **I64**, and **L** indicate the size of the `argument` (long or short, single-byte character or wide character, depending upon the type character that they modify). These format-specification characters are used with type characters in `scanf` or `wscanf` functions to specify interpretation of arguments as shown in the following table. The type prefix **I64** is a Microsoft extension and is not ANSI compatible. The type characters and their meanings are described in the "Type Characters for scanf functions" table in [scanf Type Field Characters](../c-runtime-library/scanf-type-field-characters.md).
39+
3740
> [!NOTE]
38-
> The **h**, **l**, and **L** prefixes are Microsoft extensions when used with data of type `char`.
39-
40-
### Size Prefixes for scanf and wscanf Format-Type Specifiers
41-
42-
|To specify|Use prefix|With type specifier|
43-
|----------------|----------------|-------------------------|
44-
|**double**|**l**|**e**, **E**, **f**, **g**, or **G**|
45-
|**long double** (same as double)|**L**|**e**, **E**, **f**, **g**, or **G**|
46-
|**long int**|**l**|**d**, **i**, **o**, **x**, or **X**|
47-
|**long unsigned int**|**l**|**u**|
48-
|**long long**|**ll**|**d**, **i**, **o**, **x**, or **X**|
49-
|`short int`|**h**|**d**, **i**, **o**, **x**, or **X**|
50-
|**short unsigned int**|**h**|**u**|
51-
|__**int64**|**I64**|**d**, **i**, **o**, **u**, **x**, or **X**|
52-
|Single-byte character with `scanf`|**h**|**c** or **C**|
53-
|Single-byte character with `wscanf`|**h**|**c** or **C**|
54-
|Wide character with `scanf`|**l**|**c** or **C**|
55-
|Wide character with `wscanf`|**l**|**c**, or **C**|
56-
|Single-byte - character string with `scanf`|**h**|**s** or **S**|
57-
|Single-byte - character string with `wscanf`|**h**|**s** or **S**|
58-
|Wide-character string with `scanf`|**l**|**s** or **S**|
59-
|Wide-character string with `wscanf`|**l**|**s** or **S**|
60-
61-
The following examples use **h** and **l** with `scanf_s` functions and `wscanf_s` functions:
62-
63-
```
64-
scanf_s("%ls", &x, 2); // Read a wide-character string
65-
wscanf_s(L"%hC", &x, 2); // Read a single-byte character
66-
```
67-
68-
If using an unsecure function in the `scanf` family, omit the size parameter indicating the buffer length of the preceding argument.
69-
70-
## Reading Undelimited strings
71-
To read strings not delimited by whitespace characters, a set of characters in brackets (**[ ]**) can be substituted for the **s** (string) type character. The set of characters in brackets is referred to as a control string. The corresponding input field is read up to the first character that does not appear in the control string. If the first character in the set is a caret (**^**), the effect is reversed: The input field is read up to the first character that does appear in the rest of the character set.
72-
73-
Note that **%[a-z]** and **%[z-a]** are interpreted as equivalent to **%[abcde...z]**. This is a common `scanf` function extension, but note that the ANSI standard does not require it.
74-
75-
## Reading Unterminated strings
76-
To store a string without storing a terminating null character ('\0'), use the specification `%`*n***c** where *n* is a decimal integer. In this case, the **c** type character indicates that the argument is a pointer to a character array. The next *n* characters are read from the input stream into the specified location, and no null character ('\0') is appended. If *n* is not specified, its default value is 1.
77-
78-
## When scanf stops reading a field
79-
The `scanf` function scans each input field, character by character. It may stop reading a particular input field before it reaches a space character for a variety of reasons:
80-
81-
- The specified width has been reached.
82-
83-
- The next character cannot be converted as specified.
84-
85-
- The next character conflicts with a character in the control string that it is supposed to match.
86-
87-
- The next character fails to appear in a given character set.
88-
89-
For whatever reason, when the `scanf` function stops reading an input field, the next input field is considered to begin at the first unread character. The conflicting character, if there is one, is considered unread and is the first character of the next input field or the first character in subsequent read operations on the input stream.
90-
91-
## See Also
92-
[scanf, _scanf_l, wscanf, _wscanf_l](../c-runtime-library/reference/scanf-scanf-l-wscanf-wscanf-l.md)
93-
[scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l](../c-runtime-library/reference/scanf-s-scanf-s-l-wscanf-s-wscanf-s-l.md)
94-
[Format Specification Fields: scanf and wscanf Functions](../c-runtime-library/format-specification-fields-scanf-and-wscanf-functions.md)
95-
[scanf Type Field Characters](../c-runtime-library/scanf-type-field-characters.md)
41+
> The **h**, **l**, and **L** prefixes are Microsoft extensions when used with data of type `char`.
42+
43+
### Size Prefixes for scanf and wscanf Format-Type Specifiers
44+
45+
|To specify|Use prefix|With type specifier|
46+
|----------------|----------------|-------------------------|
47+
|**double**|**l**|**e**, **E**, **f**, **g**, or **G**|
48+
|**long double** (same as double)|**L**|**e**, **E**, **f**, **g**, or **G**|
49+
|**long int**|**l**|**d**, **i**, **o**, **x**, or **X**|
50+
|**long unsigned int**|**l**|**u**|
51+
|**long long**|**ll**|**d**, **i**, **o**, **x**, or **X**|
52+
|`short int`|**h**|**d**, **i**, **o**, **x**, or **X**|
53+
|**short unsigned int**|**h**|**u**|
54+
|__**int64**|**I64**|**d**, **i**, **o**, **u**, **x**, or **X**|
55+
|Single-byte character with `scanf`|**h**|**c** or **C**|
56+
|Single-byte character with `wscanf`|**h**|**c** or **C**|
57+
|Wide character with `scanf`|**l**|**c** or **C**|
58+
|Wide character with `wscanf`|**l**|**c**, or **C**|
59+
|Single-byte - character string with `scanf`|**h**|**s** or **S**|
60+
|Single-byte - character string with `wscanf`|**h**|**s** or **S**|
61+
|Wide-character string with `scanf`|**l**|**s** or **S**|
62+
|Wide-character string with `wscanf`|**l**|**s** or **S**|
63+
64+
The following examples use **h** and **l** with `scanf_s` functions and `wscanf_s` functions:
65+
66+
```C
67+
scanf_s("%ls", &x, 2); // Read a wide-character string
68+
wscanf_s(L"%hC", &x, 2); // Read a single-byte character
69+
```
70+
71+
If using an unsecure function in the `scanf` family, omit the size parameter indicating the buffer length of the preceding argument.
72+
73+
## Reading Undelimited strings
74+
75+
To read strings not delimited by whitespace characters, a set of characters in brackets (**[ ]**) can be substituted for the **s** (string) type character. The set of characters in brackets is referred to as a control string. The corresponding input field is read up to the first character that does not appear in the control string. If the first character in the set is a caret (**^**), the effect is reversed: The input field is read up to the first character that does appear in the rest of the character set.
76+
77+
Note that **%[a-z]** and **%[z-a]** are interpreted as equivalent to **%[abcde...z]**. This is a common `scanf` function extension, but note that the ANSI standard does not require it.
78+
79+
## Reading Unterminated strings
80+
81+
To store a string without storing a terminating null character ('\0'), use the specification **%**<em>n</em>**c** where *n* is a decimal integer. In this case, the **c** type character indicates that the argument is a pointer to a character array. The next *n* characters are read from the input stream into the specified location, and no null character ('\0') is appended. If *n* is not specified, its default value is 1.
82+
83+
## When scanf stops reading a field
84+
85+
The `scanf` function scans each input field, character by character. It may stop reading a particular input field before it reaches a space character for a variety of reasons:
86+
87+
- The specified width has been reached.
88+
89+
- The next character cannot be converted as specified.
90+
91+
- The next character conflicts with a character in the control string that it is supposed to match.
92+
93+
- The next character fails to appear in a given character set.
94+
95+
For whatever reason, when the `scanf` function stops reading an input field, the next input field is considered to begin at the first unread character. The conflicting character, if there is one, is considered unread and is the first character of the next input field or the first character in subsequent read operations on the input stream.
96+
97+
## See Also
98+
99+
[scanf, _scanf_l, wscanf, _wscanf_l](../c-runtime-library/reference/scanf-scanf-l-wscanf-wscanf-l.md)<br/>
100+
[scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l](../c-runtime-library/reference/scanf-s-scanf-s-l-wscanf-s-wscanf-s-l.md)<br/>
101+
[Format Specification Fields: scanf and wscanf Functions](../c-runtime-library/format-specification-fields-scanf-and-wscanf-functions.md)<br/>
102+
[scanf Type Field Characters](../c-runtime-library/scanf-type-field-characters.md)<br/>

0 commit comments

Comments
 (0)