Subject: CVS commit: pkgsrc/shells/pbosh
From: Michael Baeuerle
Date: 2019-10-24 19:08:02
Message id:

Log Message:
shells/pbosh: Update to 20191007

Based on SchilyTools Release from 2019-10-07.

- 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/ 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


  is evaluated in conditional statements as if the exit code was 0.

- Bourne Shell: Missing added.

- Bourne Shell / bsh / ved: The dotdiles TAR archives are now again named
  */dotfiles.tar.bz2 as the change in the previous release caused

  Thanks for Gabriele Balducci 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 \ 
  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

- Bourne Shell: minor Cstyle changes on word.c and macro.c

- Bourne Shell: New version date