• ANNOUNCE: DJGPP port of GNU Bash 4.2.53 uploaded.

    From [via djgpp-announce@delorie.com]" <@21:1/5 to All on Thu Sep 8 19:30:28 2022
    This is a port of GNU Bash 4.2.53 to MSDOS/DJGPP.

    Bash is the GNU Project's Bourne Again SHell, a complete
    implementation of the POSIX.2 shell spec, but also with interactive
    command line editing, job control on architectures that support it,
    csh-like features such as history substitution and brace expansion,
    and a slew of other features.

    DJGPP specific changes.

    - This port is based on the last port of bash to DJGPP (aka
    bsh4117b*.zip). It fixes some issues discovered while using it.
    Beacuse the bsh4117* port is based on all previous ports of bash,
    it implies that all of them are very likely to suffer from the same
    issues. Thus all previous ports have been moved to the "deleted"
    directory. Their usage is no longer neither supported nor

    - The port checks at run time if LFN support is available or not and
    selects the file names of temporary files that are created

    - This port now supports colorized printing on terminal in the same
    fashion as other DJGPP ports like grep and diffutils do.

    - The port has been compiled using a C library version compiled from
    current repository code. To avoid any nmalloc related issues, the
    old malloc functions have been compiled instead of nmalloc.

    - There may exist much more DOS specific bugs in this port that have
    still not been discovered and that will be fixed as they appear.

    - The testsuite is POSIX centric and has not been ported. Especially
    assumptions about paths that are POSIX specific make it really
    difficult to adjust the testsuite to DOS. Currently the port can
    only be tested by using it.
    It is also not clear at all if this port does work on FreeDOS and
    OpenDos in a reliably way.

    - The port has been configured and compiled on WinXP SP3, Win98SE,
    MS-DOS 7.10 using DOSLFN 0.41f and MS-DOS 6.22 using DOSLFN 0.41f.
    There is no guarantee that this may be possible with any other DOS-
    like OS. Due to the use of long file names it will not be possible
    to configure and compile without LFN support. The port has been
    compiled using gcc346 and bnu2351b.

    - The coprocess support and the coproc reserved word have been
    disabled. This feature requires special pipe support and this may
    be implemented in the future.

    - To be able to build this port you may need to have LFN support.

    - If NLS support is wanted, then the sources must be reconfigured
    passing the nls option to config.bat.

    As usual, all djgpp specific files (diffs, README files, etc.) are
    stored in the "djgpp" directory. The sources have been configured to
    be build in the "0build" directory. If for some reason it does not
    work for you, delete its contents and configure from scratch again.

    Please read the docs to become familiar with this product.

    Here is an extract of the NEWS file showing the user visible changes
    from the last port (GNU Bash 4.1.17) to this one:


    This is a terse description of the new features added to bash-4.2 since
    the release of bash-4.1. As always, the manual page (doc/bash.1) is
    the place to look for complete descriptions.

    1. New Features in Bash

    a. `exec -a foo' now sets $0 to `foo' in an executable shell script
    without a leading #!.

    b. Subshells begun to execute command substitutions or run shell
    functions or builtins in subshells do not reset trap strings until a
    new trap is specified. This allows $(trap) to display the caller's
    traps and the trap strings to persist until a new trap is set.

    c. `trap -p' will now show signals ignored at shell startup, though
    their disposition still cannot be modified.

    d. $'...', echo, and printf understand \uXXXX and \UXXXXXXXX escape

    e. declare/typeset has a new `-g' option, which creates variables in
    the global scope even when run in a shell function.

    f. test/[/[[ have a new -v variable unary operator, which returns
    success if `variable' has been set.

    g. Posix parsing changes to allow `! time command' and multiple
    consecutive instances of `!' (which toggle) and `time' (which have no cumulative effect).

    h. Posix change to allow `time' as a command by itself to print the
    elapsed user, system, and real times for the shell and its children.

    j. $((...)) is always parsed as an arithmetic expansion first, instead
    of as a potential nested command substitution, as Posix requires.

    k. A new FUNCNEST variable to allow the user to control the maximum
    shell function nesting (recursive execution) level.

    l. The mapfile builtin now supplies a third argument to the callback
    command: the line about to be assigned to the supplied array index.

    m. The printf builtin has a new %(fmt)T specifier, which allows time
    values to use strftime-like formatting.

    n. There is a new `compat41' shell option.

    o. The cd builtin has a new Posix-mandated `-e' option.

    p. Negative subscripts to indexed arrays, previously errors, now are
    treated as offsets from the maximum assigned index + 1.

    q. Negative length specifications in the ${var:offset:length}
    expansion, previously errors, are now treated as offsets from the end
    of the variable.

    r. Parsing change to allow `time -p --'.

    s. Posix-mode parsing change to not recognize `time' as a keyword if
    the following token begins with a `-'. This means no more Posix-mode
    `time -p'. Posix interpretation 267.

    t. There is a new `lastpipe' shell option that runs the last command
    of a pipeline in the current shell context. The lastpipe option has no
    effect if job control is enabled.

    u. History expansion no longer expands the `$!' variable expansion.

    v. Posix mode shells no longer exit if a variable assignment error
    occurs with an assignment preceding a command that is not a special

    w. Non-interactive mode shells exit if -u is enabled and an attempt is
    made to use an unset variable with the % or # expansions, the `//',
    `^', or `,' expansions, or the parameter length expansion.

    x. Posix-mode shells use the argument passed to `.' as-is if a $PATH
    search fails, effectively searching the current directory. Posix-2008

    2. New Features in Readline

    a. The history library does not try to write the history filename in
    the current directory if $HOME is unset. This closes a potential
    security problem if the application does not specify a history filename.

    b. New bindable variable `completion-display-width' to set the number
    of columns used when displaying completions.

    c. New bindable variable `completion-case-map' to cause
    case-insensitive completion to treat `-' and `_' as identical.

    d. There are new bindable vi-mode command names to avoid readline's
    case- insensitive matching not allowing them to be bound separately.

    e. New bindable variable `menu-complete-display-prefix' causes the menu
    completion code to display the common prefix of the possible
    completions before cycling through the list, instead of after.


    The port consists of the usual three packages that have been produced
    using djdev206 (CVS repository code) and can be downloaded from
    ftp.delorie.com and mirrors as (time stamp 2022-08-31):

    GNU Bash 4.2.53 binary, info and man format documentation:

    GNU Bash 4.2.53 dvi, html, pdf and ps format documentation:

    GNU Bash 4.2.53 source:

    Send GNU Bash specific bug reports to <bug-bash@gnu.org>.
    Send suggestions and bug reports concerning the DJGPP port
    to comp.os.msdos.djgpp or <djgpp@delorie.com>.


    Guerrero, Juan Manuel <juan.guerrero@gmx.de>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)