magicant
released this
14 Dec 03:59
·
38 commits
to master
since this release
[0.2.0] - 2024-12-14
Added
- A case branch now can be terminated with
;&
or;|
instead of;;
to fall
through to the next branch or to resume pattern matching from the next branch,
respectively.;&
is a POSIX.1-2024 feature, and;|
is an extension. For
compatibility with other shells,;;&
is also accepted as an alias for;|
. - Dollar-single-quotes are now supported as a form of quoting where backslash
escapes are recognized.- Currently, octal and hexadecimal escapes that expand to a value greater
than 127 are translated to a UTF-8 sequence for the corresponding Unicode
scalar value. This behavior does not conform to POSIX.1-2024 and is
subject to change. - As an extension to POSIX.1-2024, the shell also recognizes the
\u
and
\U
escapes for Unicode scalar values, and the\E
escape as a synonym
for\e
.
- Currently, octal and hexadecimal escapes that expand to a value greater
Changed
- The shell's syntax now allows
esac
as the first pattern of a case branch
as incase esac in (esac|case) echo ok; esac
. Previously, it was a syntax
error, but POSIX.1-2024 allows it. - The
bg
built-in now updates the!
special parameter to the process ID of
the background job, as required by POSIX.1-2024. - The
exec
built-in no longer exits the shell when the specified command is
not found in an interactive shell, as required by POSIX.1-2024.
Fixed
- The interactive shell now discards the entire line when a syntax error occurs
in the middle of a command line. Previously, it would continue parsing the
rest of the line, which could lead to confusing behavior.