[PATCH 14/20] doc: Link to "Character Escape Sequences" table

eugene.loh
2025-09-26T19:06:25Z

A link to this table did not work since it referenced an ID that did not
exist. Add an anchor ID by the table and use it.

While we're at it, convert the table from HTML to Markdown and break up
some longer lines, improving readability and maintainability of the
Markdown source file.

Signed-off-by: Eugene Loh <eugene.loh@oracle.com>
---
...dtrace-ref-TypesOperatorsandExpressions.md | 139 ++----------------
.../dtrace_builtin_variable_reference.md | 10 +-
2 files changed, 20 insertions(+), 129 deletions(-)

diff --git a/doc/userguide/reference/dtrace-ref-TypesOperatorsandExpressions.md b/doc/userguide/reference/dtrace-ref-TypesOperatorsandExpressions.md
index 2d7172366..05d772c7c 100644
--- a/doc/userguide/reference/dtrace-ref-TypesOperatorsandExpressions.md
+++ b/doc/userguide/reference/dtrace-ref-TypesOperatorsandExpressions.md
@@ -474,135 +474,18 @@ D type

Character constants are written as a single character or escape sequence that's inside a pair of single quotes \(`'a'`\). Character constants are assigned the `int` type rather than `char` and are equivalent to an integer constant with a value that's determined by that character's value in the ASCII character set. See the `ascii(7)` manual page for a list of characters and their values. You can also use any of the special escape sequences that are listed in the following table. D uses the same escape sequences as those found in ANSI C.

-
-
-Escape Sequence
-
-
-
-Represents
-
-
-
-Escape Sequence
-
-
-
-Represents
-
-
-
-`\a`
-
-
-
-alert
-
-
-
-`\\`
-
-
-
-backslash
-
-
-
-`\b`
-
-
-
-backspace
-
-
-
-`\?`
-
-
-
-question mark
-
-
-
-`\f`
-
-
-
-form feed
-
-
-
-`\'`
-
-
-
-single quote
-
-
-
-`\n`
-
-
-
-newline
-
-
-
-`\"`
-
-
-
-double quote
-
-
-
-`\r`
-
-
-
-carriage return
-
-
-
-`\0*oo*`
-
-
-
-octal value 0*oo*
-
-
-
-`\t`
-
-
-
-horizontal tab
-
-
-
-`\x*hh*`
-
-
-
-hexadecimal value 0x*hh*
-
-
-
-`\v`
-
-
-
-vertical tab
-
-
-
-`\0`
-
-
-
-null character
+**Table:** Character Escape Sequences
+
+| Escape Sequence | Represents | | Escape Sequence | Represents |
+| :--- | :--- | --- | :--- | :--- |
+| `\a` | alert | | `\\` | backslash |
+| `\b` | backspace | | `\?` | question mark |
+| `\f` | form feed | | `\'` | single quote |
+| `\n` | newline | | `\"` | double quote |
+| `\r` | carriage return | | `\0`*oo* | octal value 0*oo* |
+| `\t` | horizontal tab | | `\x`*hh* | hexadecimal value 0x*hh* |
+| `\v` | vertical tab | | `\0` | null character |

-
You can include more than one character specifier inside single quotes to create integers with individual bytes that are initialized according to the corresponding character specifiers. The bytes are read left-to-right from a character constant and assigned to the resulting integer in the order corresponding to the native endianness of the operating environment. Up to eight character specifiers can be included in a single character constant.

Strings constants of any length can be composed by enclosing them in a pair of double quotes \(`"hello"`\). A string constant can't contain a literal newline character. To create strings containing newlines, use the `\n` escape sequence instead of a literal newline. String constants can contain any of the special character escape sequences that are shown for character constants before. Similar to ANSI C, strings are represented as arrays of characters that end with a null character \(`\0`\) that's implicitly added to each string constant you declare. String constants are assigned the special D type `string`. The D compiler provides a set of special features for comparing and tracing character arrays that are declared as strings.
diff --git a/doc/userguide/reference/dtrace_builtin_variable_reference.md b/doc/userguide/reference/dtrace_builtin_variable_reference.md
index fd1af0f75..1132a041a 100644
--- a/doc/userguide/reference/dtrace_builtin_variable_reference.md
+++ b/doc/userguide/reference/dtrace_builtin_variable_reference.md
@@ -221,7 +221,15 @@ The macro argument values must match the form of an integer, identifier, or stri
sudo ./foo '"a string argument"'
```

-If you want D macro arguments to be interpreted as string tokens, even if they match the form of an integer or identifier, prefix the macro variable or argument name with two leading dollar signs, for example, `$$1`, which forces the D compiler to interpret the argument value as if it were a string surrounded by double quotes. All the usual D string escape sequences, per [Table 5](dtrace-ref-TypesOperatorsandExpressions.md#dt_t6_dlang), are expanded inside any string macro arguments, regardless of whether they're referenced by using the `$arg` or `$$arg` form of the macro. If the `defaultargs` option is set, unspecified arguments that are referenced with the `$$arg` form have the value of the empty string \(`""`\).
+If you want D macro arguments to be interpreted as string tokens,
+even if they match the form of an integer or identifier,
+prefix the macro variable or argument name with two leading dollar signs,
+for example, `$$1`, which forces the D compiler to interpret the argument value as if it were a string surrounded by double quotes.
+All the usual D string escape sequences, in the table of [Character Escape Sequences](dtrace-ref-TypesOperatorsandExpressions.md#char_esc_seqs),
+are expanded inside any string macro arguments,
+regardless of whether they're referenced by using the `$arg` or `$$arg` form of the macro.
+If the `defaultargs` option is set,
+unspecified arguments that are referenced with the `$$arg` form have the value of the empty string \(`""`\).

### Target Process ID

--
2.47.3