pkglint -r --network --only "migrate"
As a side-effect of migrating the homepages, pkglint also fixed a few
indentations in unrelated lines. These and the new homepages have been
checked manually.
pkglint --only "https instead of http" -r -F
With manual adjustments afterwards since pkglint 19.4.4 fixed a few
indentations in unrelated lines.
This mainly affects projects hosted at SourceForce, as well as
freedesktop.org, CTAN and GNU.
## v0.6.4
- Fix `vi-forward-char` triggering a bell when using it to accept a suggestion (#488)
- New configuration option to skip completion suggestions when buffer matches a pattern (#487)
- New configuration option to ignore history entries matching a pattern (#456)
Based on Schily Tools Release 2019-12-05.
AN-2019-11-11:
- libschily: the new functions wcastoi wcastol wcastolb that have been
added with the previous release have been forgotten in the linker map
file.
AN-2019-12-05:
- include/schily/stdio.h: We no longer define getc_unlocked() on Solaris
in case that it is defined already. This was needed since Oracle
Solaris 11.4 compiles 64 bit by default and made stdio less opaque
than before - this result in the same bahavior as for 32 bit programs.
This means, we no longer need to use tricks to get fast access to
stdio.
Thanks to Rolf Dietze for reporting.
- libschily: the function getargs() and similar (from the option parser
group) fixed a bug that prevented the usability of the official method
to include the char '+' inside option names by quoting the character
in the option name used in the format string.
This bug has been fixed in order to be able to support "star -dump+ ..."
- libshedit: because of the changes in Oracle Solaris 11.4, we need to
#undef FAST_GETC_PUTC in order to avoid to use getc_unlocked().
Thanks to Rolf Dietze for reporting.
- Bourne Shell/bsh: */hashcmd.c did not handle a malloc()ed string
correctly and could cause a memory leak with hash commands that
do not add new aliases.
We now create a copy using make()/makestr() before calling ab_push()
or ab_insert() and always free "name" at the end of the function
hashcmd()
- Bourne Shell: The man page now documents that the command
"set -o hashcmds"
inside the file $HOME/.shrc makes a # on the fist column of that
file and followed by a non-space character, no longer a comment..
It is thus recommended to have "set -o hashcmds" close to the.
bottom of the file $HOME/.shrc
Based on Schily Tools Release 2019-12-05.
AN-2019-11-11:
- libschily: the new functions wcastoi wcastol wcastolb that have been
added with the previous release have been forgotten in the linker map
file.
AN-2019-12-05:
- include/schily/stdio.h: We no longer define getc_unlocked() on Solaris
in case that it is defined already. This was needed since Oracle
Solaris 11.4 compiles 64 bit by default and made stdio less opaque
than before - this result in the same bahavior as for 32 bit programs.
This means, we no longer need to use tricks to get fast access to
stdio.
Thanks to Rolf Dietze for reporting.
- libschily: the function getargs() and similar (from the option parser
group) fixed a bug that prevented the usability of the official method
to include the char '+' inside option names by quoting the character
in the option name used in the format string.
This bug has been fixed in order to be able to support "star -dump+ ..."
- libshedit: because of the changes in Oracle Solaris 11.4, we need to
#undef FAST_GETC_PUTC in order to avoid to use getc_unlocked().
Thanks to Rolf Dietze for reporting.
- Bourne Shell/bsh: */hashcmd.c did not handle a malloc()ed string
correctly and could cause a memory leak with hash commands that
do not add new aliases.
We now create a copy using make()/makestr() before calling ab_push()
or ab_insert() and always free "name" at the end of the function
hashcmd()
- Bourne Shell: The man page now documents that the command
"set -o hashcmds"
inside the file $HOME/.shrc makes a # on the fist column of that
file and followed by a non-space character, no longer a comment..
It is thus recommended to have "set -o hashcmds" close to the.
bottom of the file $HOME/.shrc
Changes:
6.22.02 - 20191204
------------------
Fix version in configure.ac
6.22.01 - 20191201
------------------
undo PR/88: Preserve empty arguments in :q, since it breaks
$ set x=""
$ alias test "echo "\""$x:q"\"" is working."
$ alias test
echo "
pkgsrc changes:
- Remove no longer needed patches (both backport from upstream to 6.21.00)
Changes:
V6.22.00 - 20191128
-------------------
- PR/113: Sobomax: avoid infinite loops for -c commands when stdout is
not a tty.
- Avoid infinite loops during history loads when merging, print a better
error for errors during history load.
- PR/88: Preserve empty arguments in :q
- PR/94: Small apple issues (SAVESIGVEC, HOSTTYPE)
- PR/81: Fix range matching issue where we were comparing with the
range character instead of the start of range. [l-z]* would match foo
## v0.6.3
- Fixed bug moving cursor to end of buffer after accepting suggestion (#453)
## v0.6.2
- Fixed bug deleting the last character in the buffer in vi mode (#450)
- Degrade gracefully when user doesn't have `zsh/system` module installed (#447)
## v0.6.1
- Fixed bug occurring when `_complete` had been aliased (#443)
## v0.6.0
- Added `completion` suggestion strategy powered by completion system (#111)
- Allow setting `ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE` to an empty string (#422)
- Don't fetch suggestions after copy-earlier-word (#439)
- Allow users to unignore zle-\* widgets (e.g. zle-line-init) (#432)
Gash is a POSIX-compatible shell written in Guile Scheme. It provides
both the shell interface, as well as a Guile library for parsing shell
scripts. Gash is designed to bootstrap Bash as part of the Guix
bootstrap process. There are plans to develop Gash into a
general-purpose shell and tool for building interfaces between Scheme
and the shell.
Features of the shell
* Sophisticated enough to be used to build Bash.
* Has a nice colorized prompt.
* Includes all of the POSIX-specified "special" built-ins except for
`times'.
* Includes about half of the POSIX-specified "regular" built-ins
(see `gash/built-ins.scm' for details).
Features of the programming interface
* Parses Shell scripts into an AST.
* Provides a rudimentary interface for writing Shell-like Scheme
scripts.
# fish 3.0.2 (released February 19, 2019)
This release of fish fixes an issue discovered in fish 3.0.1.
### Fixes and improvements
- The PWD environment variable is now ignored if it does not resolve to the true working directory, fixing strange behaviour in terminals started by editors and IDEs (#5647).
If you are upgrading from version 2.7.1 or before, please also review the release notes for 3.0.1, 3.0.0 and 3.0b1 (included below).
---
# fish 3.0.1 (released February 11, 2019)
This release of fish fixes a number of major issues discovered in fish 3.0.0.
### Fixes and improvements
- `exec` does not complain about running foreground jobs when called (#5449).
- while loops now evaluate to the last executed command in the loop body (or zero if the body was empty), matching POSIX semantics (#4982).
- `read --silent` no longer echoes to the tty when run from a non-interactive script (#5519).
- On macOS, path entries with spaces in `/etc/paths` and `/etc/paths.d` now correctly set path entries with spaces. Likewise, `MANPATH` is correctly set from `/etc/manpaths` and `/etc/manpaths.d` (#5481).
- fish starts correctly under Cygwin/MSYS2 (#5426).
- The `pager-toggle-search` binding (Ctrl-S by default) will now activate the search field, even when the pager is not focused.
- The error when a command is not found is now printed a single time, instead of once per argument (#5588).
- Fixes and improvements to the git completions, including printing correct paths with older git versions, fuzzy matching again, reducing unnecessary offers of root paths (starting with `:/`) (#5578, #5574, #5476), and ignoring shell aliases, so enterprising users can set up the wrapping command (via `set -g __fish_git_alias_$command $whatitwraps`) (#5412).
- Significant performance improvements to core shell functions (#5447) and to the `kill` completions (#5541).
- Starting in symbolically-linked working directories works correctly (#5525).
- The default `fish_title` function no longer contains extra spaces (#5517).
- The `nim` prompt now works correctly when chosen in the Web-based configuration (#5490).
- `string` now prints help to stdout, like other builtins (#5495).
- Killing the terminal while fish is in vi normal mode will no longer send it spinning and eating CPU. (#5528)
- A number of crashes have been fixed (#5550, #5548, #5479, #5453).
- Improvements to the documentation and certain completions.
### Known issues
There is one significant known issue that was not corrected before the release:
- fish does not run correctly under Windows Services for Linux before Windows 10 version 1809/17763, and the message warning of this may not be displayed (#5619).
If you are upgrading from version 2.7.1 or before, please also review the release notes for 3.0.0 and 3.0b1 (included below).
Based on schilytools release from 2019-10-25.
Changelog
=========
- include/schily/wchar.h: Some fallback definitions for
mbsinit() mbrtowc() wcrtomb() have been moved to make them always
visible and not only in case that <wchar.h> exists.
- include/schily/wchar.h: Before, we checked for HAVE_ISWPRINT to catch
the HP-UX-10.20 case where wchar_t is in stdlib.h. Now we check
(SIZEOF_WCHAR == 0 || SIZEOF_WCHAR_T == 0) as this works on Ultrix as
well.
- libgetopt: The getopt() function now supports options in the form:
+o, ++long-option or +long-option
if the optstring starts with a '+'. A new exported variable
"optflags" has the bit "OPT_PLUS" set, in case that an actual option
starts with '+'.
If more than one of the flag characters ':', '+' or "()" are used,
"()" must be last.
- Bourne Shell: The testsuite no longer tries to check ISO-8859-1 strings
as we cannot set this up reliably on all platforms and as Mac OS does
not allow to create the related filenames.
- Bourne Shell: The getopts(1) builtin command now supports options in.
the form:
+o, ++long-option or +long-option
if the optstring starts with a '+'. The shell variable "$NAME" has
a leading '+' in case that an actual option starts with '+'.
Note that this makes getopts(1) in the Bourne Shell compatible at
shell script level to the extensions in the getopts(1) implementation
in ksh93 for:
-o/+o Short options with either a leading - or +
--long GNU style long options as aliases to short -o options
++long GNU style long options as aliases to short +o options
Our enhancements to support:
-long UNIX style long options as aliases to short -o options
+long UNIX style long options as aliases to short +o options
- Long options the have no related short option
Are not supported by ksh93.
Based on schilytools release from 2019-10-25.
Changelog
=========
- include/schily/wchar.h: Some fallback definitions for
mbsinit() mbrtowc() wcrtomb() have been moved to make them always
visible and not only in case that <wchar.h> exists.
- include/schily/wchar.h: Before, we checked for HAVE_ISWPRINT to catch
the HP-UX-10.20 case where wchar_t is in stdlib.h. Now we check
(SIZEOF_WCHAR == 0 || SIZEOF_WCHAR_T == 0) as this works on Ultrix as
well.
- libgetopt: The getopt() function now supports options in the form:
+o, ++long-option or +long-option
if the optstring starts with a '+'. A new exported variable
"optflags" has the bit "OPT_PLUS" set, in case that an actual option
starts with '+'.
If more than one of the flag characters ':', '+' or "()" are used,
"()" must be last.
- Bourne Shell: The testsuite no longer tries to check ISO-8859-1 strings
as we cannot set this up reliably on all platforms and as Mac OS does
not allow to create the related filenames.
- Bourne Shell: The getopts(1) builtin command now supports options in.
the form:
+o, ++long-option or +long-option
if the optstring starts with a '+'. The shell variable "$NAME" has
a leading '+' in case that an actual option starts with '+'.
Note that this makes getopts(1) in the Bourne Shell compatible at
shell script level to the extensions in the getopts(1) implementation
in ksh93 for:
-o/+o Short options with either a leading - or +
--long GNU style long options as aliases to short -o options
++long GNU style long options as aliases to short +o options
Our enhancements to support:
-long UNIX style long options as aliases to short -o options
+long UNIX style long options as aliases to short +o options
- Long options the have no related short option
Are not supported by ksh93.
Based on SchilyTools Release from 2019-10-07.
Changelog
=========
- configure: Some shells report a syntax error with "< file (cmd)"
and need the redirection statement to be *after* the command. Our
changes to support the V7 shell by adding round braces caused ash
variants like "dash" to fail.
Thanks to Harald van Dijk for reporting
- cont/cc-config.sh: canged some :>some-file statements into
(:)>some-file. they have meen missed when introducing work arounds
for the V7 Shell on Ultrix that does not support I/O redirection
for builtin commands.
Thanks to Robert Clausecker for reporting
- libschily/comerr.c: If the environment COMERR_EXCODE has been set to
a value that starts with '0', the normal exit code mapping is switched
off, but all potential exit code values != 0 that follow the rule
(excode % 256) == 0
are mapped to -64. This helps to avoid unexpected behavior with
historic shells that still use the old waitpid() and modern
shells (using waitid() but in a backward compatible default mode)
where a program that terminates with
exit(256);
is evaluated in conditional statements as if the exit code was 0.
- Bourne Shell: Missing Makefile.dot added.
- Bourne Shell / bsh / ved: The dotdiles TAR archives are now again named
*/dotfiles.tar.bz2 as the change in the previous release caused
problems.
Thanks for Gabriele Balducci balducci@units.it and Robert Clausecker
for reporting
- Bourne Shell: Cstyle changes (long lines removed) in io.c & expand.c
- Bourne Shell: Fixed a bug that prevented to forward the special exit
cause (NOTFOUND or NOEXEC) to the vfork() parent process via.
struct siginfo.si_code in some cases. These values are added beyond
the POSIX CLD_* values in siginfo.si_code from the POSIX standard.
They are passed back from the vfork()ed child to the parent via the
shared memory from the vfork() implementation.
- Bourne Shell: introduced shared memory to be able to forward the
special exit cause (NOTFOUND or NOEXEC) to the parent even in case it
used fork() instead of vfork().
- Bourne Shell: Added support for a new automatic parameter "$/" to
complement the existing parameter "$?".
This is a result from a discussion in a POSIX teleconference from
April 2016.
This new parameter returns *decimal numbers* for a normal command
termination and *text* for abnormal command termination:
number<>Exit code from normal termination. This is a signed 32 bit
value from the exit() parameter on POSIX systems and a 8 bit
value on pre-POSIX systems like Linux.
signame>A signal name (see kill -l) if the command has been terminated
by a signal. This is the signal name with the leading "SIG"
stripped off.
NOEXEC<>The command was found but could not be executed, e.g. as
a result of missing permissions or because the name points
to a directory.
NOTFOUND The command could not be found.
Note that currently, the strings "NOEXEC" and "NOTFOUND" are passed
back reliably from vfork(2) childs or when the related state is already
known by the cache. In other cases, the reliability of $/ with respect
to "NOEXEC" and "NOTFOUND" has not yet been verified. It thus may
return 126 or 127 as with $?. The string values "NOEXEC" and "NOTFOUND"
cannot be passed back from a subshell, using only the waitid()
mechanism. To circumvent that problem, from fork()ed subshells,.
shared memory or non-fork()ed virtual subshells would work.
If you detect a complex command where you get 126 or 127 instead of
the exoected "NOEXEC" or "NOTFOUND", please send a report.
We for now choose to use shared memory as this is easier to implement.
Later versions will mosy likely implement virtual fork()less
subshells.
- Bourne Shell: minor Cstyle changes on word.c and macro.c
- Bourne Shell: New version date
Based on SchilyTools Release from 2019-10-07.
Changelog
=========
- configure: Some shells report a syntax error with "< file (cmd)"
and need the redirection statement to be *after* the command. Our
changes to support the V7 shell by adding round braces caused ash
variants like "dash" to fail.
Thanks to Harald van Dijk for reporting
- cont/cc-config.sh: canged some :>some-file statements into
(:)>some-file. they have meen missed when introducing work arounds
for the V7 Shell on Ultrix that does not support I/O redirection
for builtin commands.
Thanks to Robert Clausecker for reporting
- libschily/comerr.c: If the environment COMERR_EXCODE has been set to
a value that starts with '0', the normal exit code mapping is switched
off, but all potential exit code values != 0 that follow the rule
(excode % 256) == 0
are mapped to -64. This helps to avoid unexpected behavior with
historic shells that still use the old waitpid() and modern
shells (using waitid() but in a backward compatible default mode)
where a program that terminates with
exit(256);
is evaluated in conditional statements as if the exit code was 0.
- Bourne Shell: Missing Makefile.dot added.
- Bourne Shell / bsh / ved: The dotdiles TAR archives are now again named
*/dotfiles.tar.bz2 as the change in the previous release caused
problems.
Thanks for Gabriele Balducci balducci@units.it and Robert Clausecker
for reporting
- Bourne Shell: Cstyle changes (long lines removed) in io.c & expand.c
- Bourne Shell: Fixed a bug that prevented to forward the special exit
cause (NOTFOUND or NOEXEC) to the vfork() parent process via.
struct siginfo.si_code in some cases. These values are added beyond
the POSIX CLD_* values in siginfo.si_code from the POSIX standard.
They are passed back from the vfork()ed child to the parent via the
shared memory from the vfork() implementation.
- Bourne Shell: introduced shared memory to be able to forward the
special exit cause (NOTFOUND or NOEXEC) to the parent even in case it
used fork() instead of vfork().
- Bourne Shell: Added support for a new automatic parameter "$/" to
complement the existing parameter "$?".
This is a result from a discussion in a POSIX teleconference from
April 2016.
This new parameter returns *decimal numbers* for a normal command
termination and *text* for abnormal command termination:
number<>Exit code from normal termination. This is a signed 32 bit
value from the exit() parameter on POSIX systems and a 8 bit
value on pre-POSIX systems like Linux.
signame>A signal name (see kill -l) if the command has been terminated
by a signal. This is the signal name with the leading "SIG"
stripped off.
NOEXEC<>The command was found but could not be executed, e.g. as
a result of missing permissions or because the name points
to a directory.
NOTFOUND The command could not be found.
Note that currently, the strings "NOEXEC" and "NOTFOUND" are passed
back reliably from vfork(2) childs or when the related state is already
known by the cache. In other cases, the reliability of $/ with respect
to "NOEXEC" and "NOTFOUND" has not yet been verified. It thus may
return 126 or 127 as with $?. The string values "NOEXEC" and "NOTFOUND"
cannot be passed back from a subshell, using only the waitid()
mechanism. To circumvent that problem, from fork()ed subshells,.
shared memory or non-fork()ed virtual subshells would work.
If you detect a complex command where you get 126 or 127 instead of
the exoected "NOEXEC" or "NOTFOUND", please send a report.
We for now choose to use shared memory as this is easier to implement.
Later versions will mosy likely implement virtual fork()less
subshells.
- Bourne Shell: minor Cstyle changes on word.c and macro.c
- Bourne Shell: New version date
Changelog
=========
Release 2019-03-29:
- Bourne Shell: local(1), export(1) and readonly(1) now all support to.
expand the '~' character in environment variables like e.g. PATH.
- Bourne Shell: Added unit tests for the tilde expansion and the related
changes.
Release 2019-04-29:
- libshedit/bsh/Bourne Shell: The TAB file name expansion now uses a new
expansion funtion that is not based on pattern matching but on strstr()
and thus is no longer fooled by file names that contain pattern matching
meta characters.
- Bourne Shell: "trap -- ..." now correctly handles "--" even if the next
argument is "-".
- Bourne Shell: trap now supports a new option -p that allows to restore
the whole trap state using the following commands:
old_traps=$(trap -p)
trap "some commands" INT QUIT
...
eval "$old_traps"
This is possible because "trap -p" outputs the state for all signals
and not only for those signals that are not in the default state.
The new trap interfase was agreed on in the 2019-04-11 POSIX
teleconference.
Bourne Shell: The exception for "while true; do date; done | uniq -c"
in job control handling that has been introduced in November 2015 has
been refined to prevent it from causing "(bosh)" to stop from SIGTTIN.
Thanks to Robert Elz <kre@munnari.OZ.AU> for reporting.
- Bourne Shell: A new #define JOB_DEBUG has been added.
- Bourne Shell: The command:
(trap '' SEGV; $SHELL -c 'kill -s SEGV $$; echo survived')
caused the shell not to print "survived" because a previous exception
for SIGSEGV from the 1977 Bourne Shell version had not been removed
for the POSIX variant of the shell. The problem occured because it
was possible to unignore an ignored (at startup) SIGSEGV.
Thanks to Robert Elz <kre@munnari.OZ.AU> for reporting.
- Bourne Shell: The code now uses SIG2STR_MAX for the size of the
sig2str() output buffer.
- Bourne Shell: the behavior related to SIGINT on the command line
in the case that the history editor is enabled has been changed to
match the behavior of ksh. The Bourne Shell now calls trap commands
for SIGINT when ^C is typed on the command line.
Note that the classical Bourne Shell behavior (which is still active
in case the history editor has been disabled via "set +o ved") is that
the trap command is called after ^C is followed by a CR if both are
typed on a PS1 prompt.
Note: The behavior for "trap" in this area is currently not specified
in POSIX.
- Bourne Shell: After jobcontrol has been introduced into the Bourne
Shell: When in jobcontrol mode, the shell could no longer get
signals at the same time as foreground jobs because when using
jobcontrol, the shell is in a different process group than the
foreground job.
The Bourne Shell now derives the information about a delivered signal
from the waitid() return data and thus is now able to work the same
way as it has been designed in 1977. This is the same way as ksh works.
If a foreground program catches such signals, the shell is still not
able to detect the signal, but it is now closer to the original
behavior from 1977.
- Bourne Shell: new version date 2019-04-17
Release 2019-05-28:
- Bourne Shell: Similar to what ksh88 does, scripts are now checked
before they are run. If there is a nul byte before a newline
in the first 256 bytes, a file is rejected as alien binary
instead of trying to interpret it as a script.
Release 2019-06-13:
- Bourne Shell: A new option "set -o globskipdot" has been added.
If set, the entries "." and ".." are skipped and not shown in globbing
results. If not set, the entries "." and ".." are always returned,
even when they are not part of the readdir(3) results.
- Bourne Shell: The option "set -o globskipdot" has been made the
new dfault behavior for "bosh", but not for "pbosh"
Note that this new shell option has been introduced as a result
of a related BUG discussion in the Austin Group telephone conference.
The background is to permit shell scripts to check whether a shell
grants to hide the "." and ".." for all filesystems.
Release 2019-07-15:
- Bourne Shell: If OPTIND is set to a new value, the getopt() internal
variable "_sp" is now reset to 1. This is needed in order to make sure
that a combined option string can be parsed correctly.
- Bourne Shell/libshedit/bsh: The TAB expander now again gives .. as a.
result if the pattern is ..
This is needed in order to let ..TAB result in ../ on the command
line editor.
Release 2019-09-22:
- Bourne Shell: The new function isbinary() that has been introduced
in May and that should prevent the shell from interpreting binary
files as shell scripts had a problem:
In case that a disconnected TCP/IP based remote login caused a SIGTERM
followed by the read() function on stdin returning EIO, the shell
could go into a complex endless loop as the failing read() with
"trapnote" set caused a longjmp() before the next prompt without first
clearing "trapnote". As a result, the shell did hang endlessly around
while just consuming CPU time.
The shell now avoids to call the read() routine inside isbinary()
when "trapnote" is set and this way is able to avoid the longjmp() on
error.
- Bourne Shell: Fixed some typos in comment
Thanks to Robert Clausecker for reporting
- Bourne Shell: print.c: Changed err++ for a BOOL typed variable
into err = TRUE.
Thanks to Robert Clausecker for reporting
- Bourne Shell, with obosh compilation type: Avoid an "unused" warning
with word.c
- Bourne Shell: defs.h now includes an "extern int optopt;" in order
to support Ultrix where this delcaration is missing in unistd.h.
Thanks to Robert Clausecker for reporting
- bsh/Bourne Shell: test.c Now using a
#if defined(S_IFPORT) && S_IFPORT != S_IFIFO
to work around a strange definition on Ultrix
Thanks to Robert Clausecker for reporting
- Bourne Shell: New version date
Changelog
=========
Release 2019-03-29:
- Bourne Shell: local(1), export(1) and readonly(1) now all support to.
expand the '~' character in environment variables like e.g. PATH.
- Bourne Shell: Added unit tests for the tilde expansion and the related
changes.
Release 2019-04-29:
- libshedit/bsh/Bourne Shell: The TAB file name expansion now uses a new
expansion funtion that is not based on pattern matching but on strstr()
and thus is no longer fooled by file names that contain pattern matching
meta characters.
- Bourne Shell: "trap -- ..." now correctly handles "--" even if the next
argument is "-".
- Bourne Shell: trap now supports a new option -p that allows to restore
the whole trap state using the following commands:
old_traps=$(trap -p)
trap "some commands" INT QUIT
...
eval "$old_traps"
This is possible because "trap -p" outputs the state for all signals
and not only for those signals that are not in the default state.
The new trap interfase was agreed on in the 2019-04-11 POSIX
teleconference.
Bourne Shell: The exception for "while true; do date; done | uniq -c"
in job control handling that has been introduced in November 2015 has
been refined to prevent it from causing "(bosh)" to stop from SIGTTIN.
Thanks to Robert Elz <kre@munnari.OZ.AU> for reporting.
- Bourne Shell: A new #define JOB_DEBUG has been added.
- Bourne Shell: The command:
(trap '' SEGV; $SHELL -c 'kill -s SEGV $$; echo survived')
caused the shell not to print "survived" because a previous exception
for SIGSEGV from the 1977 Bourne Shell version had not been removed
for the POSIX variant of the shell. The problem occured because it
was possible to unignore an ignored (at startup) SIGSEGV.
Thanks to Robert Elz <kre@munnari.OZ.AU> for reporting.
- Bourne Shell: The code now uses SIG2STR_MAX for the size of the
sig2str() output buffer.
- Bourne Shell: the behavior related to SIGINT on the command line
in the case that the history editor is enabled has been changed to
match the behavior of ksh. The Bourne Shell now calls trap commands
for SIGINT when ^C is typed on the command line.
Note that the classical Bourne Shell behavior (which is still active
in case the history editor has been disabled via "set +o ved") is that
the trap command is called after ^C is followed by a CR if both are
typed on a PS1 prompt.
Note: The behavior for "trap" in this area is currently not specified
in POSIX.
- Bourne Shell: After jobcontrol has been introduced into the Bourne
Shell: When in jobcontrol mode, the shell could no longer get
signals at the same time as foreground jobs because when using
jobcontrol, the shell is in a different process group than the
foreground job.
The Bourne Shell now derives the information about a delivered signal
from the waitid() return data and thus is now able to work the same
way as it has been designed in 1977. This is the same way as ksh works.
If a foreground program catches such signals, the shell is still not
able to detect the signal, but it is now closer to the original
behavior from 1977.
- Bourne Shell: new version date 2019-04-17
Release 2019-05-28:
- Bourne Shell: Similar to what ksh88 does, scripts are now checked
before they are run. If there is a nul byte before a newline
in the first 256 bytes, a file is rejected as alien binary
instead of trying to interpret it as a script.
Release 2019-06-13:
- Bourne Shell: A new option "set -o globskipdot" has been added.
If set, the entries "." and ".." are skipped and not shown in globbing
results. If not set, the entries "." and ".." are always returned,
even when they are not part of the readdir(3) results.
- Bourne Shell: The option "set -o globskipdot" has been made the
new dfault behavior for "bosh", but not for "pbosh"
Note that this new shell option has been introduced as a result
of a related BUG discussion in the Austin Group telephone conference.
The background is to permit shell scripts to check whether a shell
grants to hide the "." and ".." for all filesystems.
Release 2019-07-15:
- Bourne Shell: If OPTIND is set to a new value, the getopt() internal
variable "_sp" is now reset to 1. This is needed in order to make sure
that a combined option string can be parsed correctly.
- Bourne Shell/libshedit/bsh: The TAB expander now again gives .. as a.
result if the pattern is ..
This is needed in order to let ..TAB result in ../ on the command
line editor.
Release 2019-09-22:
- Bourne Shell: The new function isbinary() that has been introduced
in May and that should prevent the shell from interpreting binary
files as shell scripts had a problem:
In case that a disconnected TCP/IP based remote login caused a SIGTERM
followed by the read() function on stdin returning EIO, the shell
could go into a complex endless loop as the failing read() with
"trapnote" set caused a longjmp() before the next prompt without first
clearing "trapnote". As a result, the shell did hang endlessly around
while just consuming CPU time.
The shell now avoids to call the read() routine inside isbinary()
when "trapnote" is set and this way is able to avoid the longjmp() on
error.
- Bourne Shell: Fixed some typos in comment
Thanks to Robert Clausecker for reporting
- Bourne Shell: print.c: Changed err++ for a BOOL typed variable
into err = TRUE.
Thanks to Robert Clausecker for reporting
- Bourne Shell, with obosh compilation type: Avoid an "unused" warning
with word.c
- Bourne Shell: defs.h now includes an "extern int optopt;" in order
to support Ultrix where this delcaration is missing in unistd.h.
Thanks to Robert Clausecker for reporting
- bsh/Bourne Shell: test.c Now using a
#if defined(S_IFPORT) && S_IFPORT != S_IFIFO
to work around a strange definition on Ultrix
Thanks to Robert Clausecker for reporting
- Bourne Shell: New version date
10: fix var-assigns before special builtins & fn calls in posix mode
11: fixed missing quoted nul removal (in one odd case).
See the patch files (once fetched) for more details of what was altered.
Note release version goes backwards. Version now follows openbsd version
numbering.
No changes available.
Patched to eliminate compilation warnings on netbsd.
When $HOME environment variable is set, e.g. in pkgrsc where a fake
homedir is injected, ~ is expanded to $HOME while ~user is expanded
to the passwd(5) home_dir field leading to inconsistency in the test.
No PKGREVISION bump since that change only affects tests.
pkgsrc changes:
- Add patch-nls_Makefile.in to avoid +x bit in *.cat files
- Remove no longer needed patches (all applied upstream):
patch-ed.chared.c, patch-ed.inputl.c, patch-nls-catgen, patch-sh.func.c,
patch-tw.init.c
Changes:
V6.21.00 - 20190508
-------------------
- Abort history loading on words and lines too long
https://bugzilla.redhat.com/show_bug.cgi?id=1598502
- PR/37: Introduce GetCmdChar() to avoid open coding array access.
make closem() not close sockets so as not to affect nss_ldap.
tcsh never creates sockets so that's ok (Miloslav Trmac)
- PR/597: Make rmstar work with aliased rm
- convert match() from recursive to backtracking.
- Handle 8 bit characters in bindkey (Werner Fink)
- Look for tgetent in libtinfo as well (Werner Fink)
- Don't play pointer tricks that are undefined in modern c (Brooks Davis)
- Fix out of bounds read (Brooks Davis)
- Fix type of read in prompt confirmation (eg. rmstar) (David Kaspar)
- PR/471: Delay arginp parsing
ok <kim>, thanks!
The patches fix:
1. Under certain circumstances, the glob expansion code did not remove
backslashes escaping characters in directory names (or portions of a
pattern preceding a slash).
2. When an alias value ends with an unquoted literal tab (not part of a quoted
string or comment), alias expansion cannot correctly detect the end of the
alias value after expanding it.
3. There are several incompatibilities in how bash-5.0 processes pathname
expansion (globbing) of filename arguments that have backslashes in the
directory portion.
4. In bash-5.0, the `wait' builtin without arguments waits for all children
of the shell. This includes children it `inherited' at shell invocation time.
This patch modifies the behavior to not wait for these inherited children,
some of which might be long-lived.
5. In certain cases, bash optimizes out a fork() call too early and prevents
traps from running.
6. Bash-5.0 did not build successfully if SYSLOG_HISTORY was defined without
also defining SYSLOG_SHOPT.
7. Running `exec' when job control was disabled, even temporarily, but after it
had been initialized, could leave the terminal in the wrong process group for
the executed process.
## v0.5.2
- Allow disabling automatic widget re-binding for better performance (#418)
- Fix async suggestions when `SH_WORD_SPLIT` is set
- Refactor async mode to use process substitution instead of zpty (#417)
## v0.5.1
- Speed up widget rebinding (#413)
- Clean up global variable creations (#403)
- Respect user's set options when running original widget (#402)
Update provided by Michael Bäuerle via pksrc-wip.
Changelog
=========
Release 2019-02-18:
- libgetopt: The undocumented variable "_sp" from SVr4 has been renamed
to "opt_sp" and (on platforms that support "#pragma weak") there
is a weak reference _sp to that new variable, giving backwards
compatibility.
The reason for doing this is to make sure that people on Illumos
or Oracle Solaris, who still have an outdated version of getopt()
in their local libc, do not try to link the Bourne Shell only
against their old getopt(). If they did this, they would not get
the documented enhanced getopt() features from the Bourne Shell.
- Bourne Shell: The shell now uses "opt_sp" as the name for the
undocumented additional getopt() interface from AT&T. This has
been done to avoid being able to link the Bourne Shell on
Illumos or Oracle Solaris without using our libgetopt. If this
was done, we could not support UNIX/MULTICS style long options
and we could not support -help/--help, since the latter is
implemented via long options that are not an alias to short
options.
- Bourne Shell: added a new timestamp to the Bourne Shell version.
Release 2018-11-21:
- Bourne Shell: make it exit the whole shell with set -e after a command
substitution failed on the right side of a variable assignment
that has no command. This is required by POSIX.
- Bourne Shell: added a unit tests for the above case.
- Bourne Shell: New version date set to 2018-12-08 the this change.
Release 2019-01-22:
- bsh / Bourne Shell / star: the function hop_dirs() no longer checks
for p2 != NULL before calling *p2 = '/' as p2 has
been granted to be != NULL from a break with
strchr(p, '/') == NULL
Thanks to Pavel Raiskup for poiting to a related
Coverity message.
- Bourne Shell: Added a missing /* FALLTHROUGH */ comment..
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: added a range check for $OPTIND to tge getopts(1)
implementation
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: Removed a nonsense variable in expand() that caused
Coverity not to understand that a directory was correctly
closed()
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: Added a paranoia comparison to make Coverity quiet.
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: avoid to call catpath() with a NULL pointer for path
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: check the write() return code in io.c
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: Added a paranopia check for "test -o" to make Coperity
quiet.
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: Added (void) before fcntl() in hope to make Coverity
quiet.
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: Removed dead code from readwc()
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: Cstyle changes to xec.c
- Bourne Shell: "builtin -d ..." did access free()d memory.
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: expand.c: added a check for fd == -1 to avoid calling
openat() with that fd.
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
-Bourne Shell: func.c: added a check for fd == -1 to avoid calling
read()/close() with that fd.
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: jobs.c: enlarged a buffer to be of same size as
numbuf[] to avoid a potential buffer overflow.
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: print.c::prt_cntl() had a very old (AT&T) bug with
printing byte sequences that get an error with mbtowc() and it
did not print byte sequences correctly that refer to legal but
"nonprintable" multi byte characters.
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: xec.c: the reserved word "time" could cause to
access uninitialized memory if the string in $TIMEFORMAT
contains the format %J
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: xec.c: added a paranoia check on whether
findnam("funcname") returns NULL even though the existence of
a function with that name already has been verified via the
hash service.
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
Release 2019-02-18:
- Bourne Shell: Another vfork() problem has been fixed. "trap cmd EXIT"
has incorrectly called "cmd" after a non-existing command was.
called by the shell. This was a result of the shared data from
vfork().
Thanks to Martijn Dekker for reporting.
- Bourne Shell: A unit test case for the above bug has been added.
- Bourne Shell: __growstak() now always uses realloc() on modern
platforms. This may speed up things up to 15%.
Thanks to Jan Engelhardt for reporting.
Release 2019-03-11:
- libgetopt/Bourne Shell: added an #ifndef __CYGWIN__ in order to avoid
overwriting non-standard definitions by standard
definitions on Cygwin for the global getopt()
variables.
Thanks to Heiko Ei[eszett]feldt for proposing this
fix.
- Bourne Shell: better comment in bltin.c
Update provided by Michael Bäuerle via pkgsrc-wip.
Changelog
=========
Release 2019-02-18:
- libgetopt: The undocumented variable "_sp" from SVr4 has been renamed
to "opt_sp" and (on platforms that support "#pragma weak") there
is a weak reference _sp to that new variable, giving backwards
compatibility.
The reason for doing this is to make sure that people on Illumos
or Oracle Solaris, who still have an outdated version of getopt()
in their local libc, do not try to link the Bourne Shell only
against their old getopt(). If they did this, they would not get
the documented enhanced getopt() features from the Bourne Shell.
- Bourne Shell: The shell now uses "opt_sp" as the name for the
undocumented additional getopt() interface from AT&T. This has
been done to avoid being able to link the Bourne Shell on
Illumos or Oracle Solaris without using our libgetopt. If this
was done, we could not support UNIX/MULTICS style long options
and we could not support -help/--help, since the latter is
implemented via long options that are not an alias to short
options.
- Bourne Shell: added a new timestamp to the Bourne Shell version.
Release 2018-11-21:
- Bourne Shell: make it exit the whole shell with set -e after a command
substitution failed on the right side of a variable assignment
that has no command. This is required by POSIX.
- Bourne Shell: added a unit tests for the above case.
- Bourne Shell: New version date set to 2018-12-08 the this change.
Release 2019-01-22:
- bsh / Bourne Shell / star: the function hop_dirs() no longer checks
for p2 != NULL before calling *p2 = '/' as p2 has
been granted to be != NULL from a break with
strchr(p, '/') == NULL
Thanks to Pavel Raiskup for poiting to a related
Coverity message.
- Bourne Shell: Added a missing /* FALLTHROUGH */ comment..
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: added a range check for $OPTIND to tge getopts(1)
implementation
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: Removed a nonsense variable in expand() that caused
Coverity not to understand that a directory was correctly
closed()
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: Added a paranoia comparison to make Coverity quiet.
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: avoid to call catpath() with a NULL pointer for path
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: check the write() return code in io.c
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: Added a paranopia check for "test -o" to make Coperity
quiet.
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: Added (void) before fcntl() in hope to make Coverity
quiet.
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: Removed dead code from readwc()
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: Cstyle changes to xec.c
- Bourne Shell: "builtin -d ..." did access free()d memory.
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: expand.c: added a check for fd == -1 to avoid calling
openat() with that fd.
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
-Bourne Shell: func.c: added a check for fd == -1 to avoid calling
read()/close() with that fd.
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: jobs.c: enlarged a buffer to be of same size as
numbuf[] to avoid a potential buffer overflow.
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: print.c::prt_cntl() had a very old (AT&T) bug with
printing byte sequences that get an error with mbtowc() and it
did not print byte sequences correctly that refer to legal but
"nonprintable" multi byte characters.
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: xec.c: the reserved word "time" could cause to
access uninitialized memory if the string in $TIMEFORMAT
contains the format %J
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
- Bourne Shell: xec.c: added a paranoia check on whether
findnam("funcname") returns NULL even though the existence of
a function with that name already has been verified via the
hash service.
Thanks to Pavel Raiskup for poiting to a related Coverity
message.
Release 2019-02-18:
- Bourne Shell: Another vfork() problem has been fixed. "trap cmd EXIT"
has incorrectly called "cmd" after a non-existing command was.
called by the shell. This was a result of the shared data from
vfork().
Thanks to Martijn Dekker for reporting.
- Bourne Shell: A unit test case for the above bug has been added.
- Bourne Shell: __growstak() now always uses realloc() on modern
platforms. This may speed up things up to 15%.
Thanks to Jan Engelhardt for reporting.
Release 2019-03-11:
- libgetopt/Bourne Shell: added an #ifndef __CYGWIN__ in order to avoid
overwriting non-standard definitions by standard
definitions on Cygwin for the global getopt()
variables.
Thanks to Heiko Ei[eszett]feldt for proposing this
fix.
- Bourne Shell: better comment in bltin.c
* Move --enable-zsh-mem configure option to non-debug part
to stabilize zsh with NetBSD's new jemalloc
Changelog:
2019-02-03 dana <dana@dana.is>
* unposted: Config/version.mk, Etc/FAQ.yo, README: Update for
5.7.1
* 44034: Completion/Unix/Type/_date_formats: Complete %9./%N,
adjust some wording
* 44033: Completion/Unix/Command/_dos2unix: Add completion for
dos2unix/unix2dos
* 44030: Src/prompt.c, Test/D01prompt.ztst: Return error for
unrecognised colour name
2019-01-28 Fredric Silberberg <fred@silberberg.xyz>
* github #32: Completion/Unix/Command/_git: Fix a typo in the
git tag completion.
2018-01-27 dana <dana@dana.is>
* unposted: Etc/creating-a-release.txt: Document additional
release steps
* 44020: Functions/VCS_Info/Backends/VCS_INFO_detect_p4: Fix
infinite recursion
R57 rolls up bugfixes, with few hard changes:
* [gecko2] Update operating environment reporting for the Macintosh
* [Martijn Dekker] make ${foo#'bar'} in here document behave like ksh93
* [Martijn Dekker] quote empty strings for re-entry into shell
* [tg, G.raud Meyer] Improve documentation, especially for tty states
* [tg] Protect against entering line editing with bad saved tty state
* [tg] Fix set -o allexport for arrays (which we apparently do)
* [tg] Handle lseek(2) returning -1 as pointed out by Coverity Scan
* [tg] Fix left-padding UTF-8 strings
* [tg, G.raud Meyer] Fix using the ?-m? flag on the command line
* [tg] Update to UCD 11.0.0
* [multiplexd] Fix a segfault using ^W during search in Vi mode
* [tg] Fix an error message; add a test for controlling tty
* [tg] Permit unsetting LINES and COLUMNS, for those who need it
* [tg] Fix manpage bug (RedHat BZ#1612173)
* [tg] Minor spelling cleanup
* [tg] Unbreak high-bit7 (n?n-ASCII) heredoc separators (LP#1779179)
* [tg] Allow dumping high-bit7-char-containing strings in DEBUG mode
* [tg] Add some testcases for behaviour questions popped up in IRC
* [tg] Trick a GCC warning, to make up for it ignoring lint(1) hints
* [tg] Add O_MAYEXEC support for CLIP OS
* [tg] Make dup-to-self with ksh-style fd?3 closing work; catern via IRC
* [tg] Add compat glue for newer GNU groff mdoc to the manpages
* [tg] Trigger EXIT trap after single-command subshells (Debian #910276)
* [tg] Document set -eo pipefail caveat (LP#1804504)
* [tg] Fix MKSH_EARLY_LOCALE_TRACKING warning
* [tg] Document that, when your Unix is broken, GIGO applies (LP#1817959)
* [tg] Improve error message for inaccessible executables (LP#1817789)
## v0.5.0
- Don't overwrite config with default values (#335)
- Support fallback strategies by supplying array to suggestion config var
- Rename "default" suggestion strategy to "history" to name it based on what it actually does
- Reset opts in some functions affected by `GLOB_SUBST` (#334)
- Support widgets starting with dashes (ex: `-a-widget`) (#337)
- Skip async tests in zsh versions less than 5.0.8 because of reliability issues
- Fix handling of newline + carriage return in async pty (#333)
if MANPATH is empty but the environment variable is respected, we won't
be able to find any man pages, because fish set it to PREFIX/share/fish/man
bump PKGREVISION