~ubuntu-branches/ubuntu/oneiric/mksh/oneiric

Viewing all changes in revision 2.1.8.

  • Committer: Bazaar Package Importer
  • Author(s): Thorsten Glaser
  • Date: 2010-02-28 14:09:39 UTC
  • mfrom: (1.2.7 upstream)
  • mto: (2.1.9 squeeze)
  • mto: This revision was merged to the branch mainline in revision 20.
  • Revision ID: james.westby@ubuntu.com-20100228140939-sd9wzd1qx7e552x2
Tags: 39.3-1
* New upstream version R39c; shortened ChangeLog since R39:
  - [tg] Build system, code, docs and testsuite cleanup, also style(9)
  - [tg] Parse and evaluate ${parameter op word} correctly
  - [tg] Fix possible SIGSEGV in interactive mode bind builtin due to
    mis-optimisation of gcc combined with a bogus prototype;
    discovered by Grml.org's Frank Terbeck (ft), thanks!
  - [tg] Clean up some more strict *roff or compiler warnings: dashes,
    undefined macros; casting errors (constness, signedness, type
    width/class) and catch possibly unaligned pointer dereferences
    early; remove code/rodata redundancies, plug memory leaks
  - [smultron] Tweak the manual page: point out the word “colour”
  - [tg] Optimise dot.mkshrc DJB’s CDB hash implementations; add Bob
    Jenkins’ one-at-a-time hash (standard and leading-bit
    initialised); fix signedness in expressions; let the hashes use
    stdin if "$*" is empty, like Lb64{en,de}code; use
    “[[ -o utf8-mode ]]” ipv “[[ $- = *U* ]]”
  - [tg] Build.sh portability fixes: missing prerequisite headers;
    ensure $CC is never called without $CFLAGS; fix test.sh, et al.
  - [tg] Optimise internal variable representation; use one-at-a-time
    hash; cache hash values for faster resizing at zero memory cost;
    clean up hash table (keytab) code; switch hash table collision
    resolution algorithm to Python’s; prepare for later changes
  - [tg] Fix type errors in the source code (int → bool, size_t,
    mksh_uari_t)
  - [tg] Fix “${foo:bar:$baz}” not working (missing substitute() call)
  - [tg] Implement “typeset ±a” as nop
  - [tg] Support ksh93-like “${!foo[@]}” listing the keys (indicēs) of
    all set array elements
  - [tg] Support bash/ksh93-like “array=([key]=value …)” and
    (additionally) “set ±A array -- [key]=value …” to directly
    specify indicēs to use
  - [tg] Document the optional, unsupported, printf(1) builtin in TFM
  - [tg] Replace realpath(3) dependency and internally used
    get_phys_path() pdksh code with own implementation; always offer
    the realpath builtin
  - [tg] Implement nameref='typeset -n' (bounded variables) like AT&T
    ksh93 but with mksh-style nested/dynamic scoping and on-use
    resolving; they cannot currently be stored in an array though
  - [tg] Add “chdir” builtin doing the same as “cd” special builtin
  - [tg, David Korn] Document more differences between mksh (and
    pdksh) and AT&T ksh (or, more specific, ksh88, ksh93) in the
    manual page
  - [tg] Support “'a'” as an alternative to “1#a”, like ksh93 does
  - [tg] Add ksh’s “test -o ?foo”: true if “foo” is a valid shell
    option, where “foo” can be “xtrace” or “-x” or “+x” (these three
    are equivalent)
  - [tg] Support “$'…'” backslash-expanding single-quoted strings, as
    requested by David Korn, with almost the same syntax and semantics
  - [tg] Unify backslash expansion code (C style vs. print builtin)
  - [tg] Support “function stop () {” bashism
  - [tg] For several items in the source code that require order to be
    kept, provide from multiply-included header files; sort correctly
  - [tg] Get rid of unneeded FMONITOR (-m) for shells without job
    control; sync list of flags, comments and manpage with reality
  - [tg] If MKSH_SMALL, reduce size by removing editor functionality
  - [tg] Support VT100 emulator style {Ctrl,Alt}-CurLeft/Right keycode
    sequences with new vt100-hack emacs bind function (LP: #355883)
  - [cnuke, tg] Remove more, like GNU bash extensions, from MKSH_SMALL
  - [tg] Remove more functionality, such as Emacs command line editing
    mode bind key macros, and other extensions, from MKSH_SMALL to
    help floppies
  - [tg] Make forking and subshells less expensive wrt. random state
  - [tg] Build and source code fixes for / caught by SUNWcc, HP aCC,
    pcc, DEC ucode cc (MIPS), GCC, LLVM clang
  - [tg] Make undef/def MKSH_NOVI into 0/1 MKSH_S_NOVI build flag
  - [tg] Get rid of "U getenv" in nm output, we already import environ
  - [tg] Simplify $RANDOM handling: reads are now either arc4random(3)
    (if available: set +o arc4random is no longer possible) or an LCG;
    writes are arc4random_pushb(3) if available for explicit writes,
    arc4random_addrandom(3) otherwise, or another one-at-a-time hash
    feeding the LCG; furthermore, RANDOM is now always exported to and
    imported from (implicit read: no push to kernel done) the
    environment vector on startup and spawning
  - [tg] Document mksh does not exactly use OPTU-8/OPTU-16 in the
    manpage, as well as when characters, octets, or screen columns
    are used
  - [tg] Fix exit 127 on "mksh /tmp/horsies" ipv of 1 on ENOENT,
    #548744
  - [Clint Adams] Fix typos in the testsuite
  - [tg, Clint Adams] Begin a shared testsuite for mksh and posh
  - [tg] Make 「((foo) || bar)」 and 「((foo) | (bar))」 work
  - [tg] Fix lazy evaluation of assignments by ternary operator,
    #445651
  - [tg] Work around Cygwin bugs (quirks) hindering the testsuite
  - [tg] In FSH mode, “echo [-n] 'foo\x40bar'” shall not be expanded
  - [tg] Let set -- $(false); echo $? return 0 (POSIXly correct) in
    FSH mode, 1 (needed for getopt(1) support) otherwise
  - [tg] Changes of variables inside Bourne style POSIX functions
    indeed affect the current execution environment (of the function
    caller)
  - [tg] Fix getopts behaviour (sync with AT&T ksh93 not ksh88)
  - [tg] “eval $(false)” shall return 0 (Debian Closes: #550717)
  - [tg] Ensure that /* apo'strophes in comments */ work
  - [tg] Overhaul and simplify handling of (special) variables
  - [tg] Further reduce memory (code/data) and import footprint
  - [tg] Use functions without PATH_MAX limit on GNU/Hurd
  - [tg] Fix tab completing pathnames containing ‘:’, ‘=’, ‘$’ or ‘`’
  - [tg] Support ‘-T <tty>’ even if MKSH_SMALL and fix it
  - [tg] Remove "which" alias "whence -p" to allow "which -a" in
    dot.mkshrc and add more examples, some commented out
  - [tg] Fix print_columns() issue with displaying items where
    characters had differing number of octets and columns, and the
    off-by-one which had hidden this problem with 2-octet 1-column
    and 3-octet 2-column chars
  - [tg] Beautify the manpage in both AT&T nroff and GNU groff
  - [tg] Fix null-expansion of “${x%?}” if $x is unset
  - [tg] Make some globbing (${x%?}) operate on characters instead of
    octets; update manual page to reflect that others still do and
    remove wording that let people think we’d ever support POSuX
    character classes
  - [tg] New ${%foo} returning width of $foo in screen columns, or -1
    if $foo contains an ASCII/latin1/Unicode C0/C1 control character
  - [tg] Fix subtle possible portability problem wrt. CHILD_MAX
  - [tg] Honour ±U on command line of an interactive shell
  - [tg] Fix dead stores and other bugs pointed out by the Clang
    static analyser; put assertions in places it has false positives
  - [tg] Plug uninitialised memory access and possible out-of-bounds
    read of a buffer caught by Valgrind; change one memcpy(3) to
    memmove(3) where srcbuf and dstbuf overlap; place (-DDEBUG)
    workaround for false positive
  - [tg] Rework __attribute__ compiler capability check
  - [tg] Apply errno save/restore related fix from (sync with) oksh
  - [tg] Build.sh: output message when switching from
    autoconfiguration to building / output generation (requested by
    Matt “lewellyn” Lewandowsky); use “conftest.c” ipv “scn.c” (to
    please ccache); ...
  - [tg] Allow “unset foo[*]” (keep attributes) and “typeset foo[*]”
    (for forward-compatibility; R39b it’s the same as “typeset foo”)
  - [tg] When persistent history is enabled (but not MKSH_SMALL) and
    used, intertwine the shells concurrently accessing $HISTFILE
    better ⇒ sync on empty or duplicate line as well (requested by
    Maximilian “mxey” Gaß)
  - [tg] Split off “set ±o posix” and “set ±o sh” again, to be
    somewhat more compatible to various old or vendor versions of
    pdksh and mksh:
    + MKSH_BINSHREDUCED sets FSH but not FPOSIX
    + MKSH_MIDNIGHTBSD01ASH_COMPAT depends on FSH but not FPOSIX
    + The echo built-in behaves the same for FPOSIX and FSH
    + File descriptors > 2 are not closed for both FPOSIX and FSH
    + Both “set -o posix” and “set -o sh” call “set +o braceexpand”
    + In contrast to R39 and below, the errorlevel of
      “set -- $(getopt ab:c "$@")” is now the same in ksh and
      FPOSIX mode (0) and only FSH will use the errorlevel of getopt
      (used to be the other way round)
  - [tg] Document some more shortcomings in the mksh(1) manual page
  - Contributed printf.c fixes:
    + [tg] Make printf(1) builtin use “$'…'” mode, like ksh93
    + [tg] Fix const-cleanliness
* Remove patches now integrated in upstream or no longer needed
* Bump Standards-Version, no relevant change
* Apply patches inside the top-level directory
* debian/source/format: Enforce "1.0" manually, for now
* debian/README.source: New, by zack's suggestion, to document some
  particulars of the source package and why I'm not using 3.0 yet
* debian/README.Debian, debian/mksh.docs: New, document dash bug
* debian/control: I'm sure we don't need to B-D on locales-all [m68k]
* debian/control: tweak package short description to well-known text
  and sync long description with upstream's
* debian/copyright: Update, sync with upstream
* Rename build/ into builddir/ to avoid phony target vs pathname
  conflict in Makefile (debian/rules)
* debian/rules: Ensure we use the C locale during build (especially
  for patch application collation order)
* debian/mksh.examples, debian/rules: Split out dh_installexamples args
* debian/rules: Update for R39c, printf.c.1.14 particulars
* debian/rules: When building, try with -combine first but retry if it
  fails, like my OpenSuSE Buildservice packages do (cf. LP: #375604)
* debian/control: Remove DMUA, I'm a DD now
* debian/diffs/backport-fixes.diff: New, fixes not yet in R39c

expand all expand all

Show diffs side-by-side

added added

removed removed

Lines of Context: