Add `zshrc`
Add `zlogout`
Fix last remaining `emulate -L zsh -[options]`

Change the `emulate -L zsh -eu` at the top of the definition of the
function `path-lookup` to `emulate -L zsh; set -eu`.

This was the last remaining `emulate -L zsh -[options]` line, of several
that I had previously so changed.

The reason for changing these lines is that, apparently, including
shell command-line options after the shell name causes the `-L` option
to `emulate` to be ignored, resulting in the shell options being reset
globally.
Don’t set `ERR_EXIT` in functions

In the functions `check`, `file-qualifies`, `path-lookup`, and
`zshrc-load-module`, no longer set the zsh option `ERR_EXIT` (`-e`).

These are the last several functions that were still setting `ERR_EXIT`;
I already changed various other functions to not set `ERR_EXIT`.

The reason for changing these functions to not set `ERR_EXIT` is that,
if `ERR_EXIT` is set in a function (at least one run from the
command-line in an interactive zsh session), and a command executed in
that function fails (i.e., exits with a non-zero exit status code), the
whole shell will exit, rather than, as I had once thought, only the
function.
Make many parameters `readonly`

Declare many shell parameters with `readonly` rather than `local`, where
doing so would not change the intended semantics.

The principle behind this change is the same as behind adding `const`
qualifiers in C++.
Add `with-no-rprompt` function

Add a `with-no-rprompt` shell function, which runs a given command in an
environment where the shell parameter `ZSHRC_NO_RPROMPT` is set to `y`.

The motivating use-case for this function is the invocation
`with-no-rprompt zsh`, which opens a new zsh session that will not use a
`RPROMPT` (a shell prompt on the right-hand side of the display), at
least unless subsequently instructed otherwise.
Add `have-zsh-supporting-Unicode-TIMEFMT` function

Add a `have-zsh-supporting-Unicode-TIMEFMT` shell function, which
returns true (exits with exit status code zero) when executing under a
zsh instance that does not seem to garble UTF-8–encoded non–US-ASCII
Unicode code-points in the output of `time`, and returns false (exits
with a non-zero exit status code) otherwise.

At the present time, including octets with the high bit set (e.g.,
Unicode code-points not in US-ASCII that are encoded as UTF-8) in
`TIMEFMT` results in garbled output from `time`.

Mikael Magnusson (‘Mikachu’) submitted a patch to zsh to fix this issue,
after I brought the issue up in <ircs://chat.freenode.net/zsh>.
Integrate `TIMEFMT` into dynamic prompts system

In the `set-dynamic-prompts` function, in addition to setting the
special shell parameters that control the formats of the shell prompts,
now also set the special shell parameter `TIMEFMT`, which controls the
format of the running-time reports zsh emits for commands that (a) are
prefixed with `time` or (b) occupy more than `$REPORTTIME` seconds of
CPU time.

This allows the format of these reports to be controlled with a
`time-report-fmt` entry in the `~/.zsh/prompt-style` configuration file,
which is local to each user-account.

Because, in the current format of the `prompt-style` file, the values of
entries cannot contain whitespace, the following translations will be
performed on the value of a `time-report-fmt` entry in the
`prompt-style` file:

  - Low-lines not enclosed in parentheses (`_`) will be translated to
    spaces.

  - Low-lines enclosed in parentheses (`(_)`) will be translated to
    horizontal tabs.

Furthermore, because UTF-8–encoded non–US-ASCII Unicode code-points are
not presently supported in `TIMEFMT` (see also the function
`have-zsh-supporting-Unicode-TIMEFMT`), the following translations will
also be performed on the value of a `time-report-fmt` entry in the
`prompt-style` file unless UTF-8–encoded non–US-ASCII Unicode
code-points appear to be supported in `TIMEFMT`:

  - Typographical single quotation marks (`‘`, `’`) will be translated
    to grave accents (`` ` ``).

  - Typographical double quotation marks (`“`, `”`) will be translated
    to straight double quotation marks (`"`).

  - Em-dashes (`—`) will be translated to double hyphen-minuses (`--`).
Use `with-no-rprompt` for showterm, asciinema

Change the `showterm` and `asciinema` aliases to wrap showterm and
asciinema (respectively) in `with-no-rprompt` as well as in
`in-ghost-shell`.