mksh (59c-41) unstable; urgency=medium

  * Update from MirBSD CVS
    - [tg] Fix sometimes special builtin errors are not fatal enough
    - [tg] Errors reading next command to run are now fatal (LP#2002044)
    - [tg] … as are nōn-interactive syntax errors, following POSIX
  * Replace reference to removed mailing lists + update upstream infos
  * Sync lintian overrides

 -- Thorsten Glaser <tg@mirbsd.de>  Sun, 27 Apr 2025 00:43:37 +0000

mksh (59c-40) unstable; urgency=high

  * Update from MirBSD CVS
    - opt out of “AI” in FAQ2HTML.sh
    - make one test cleanup more reliable
    - mbsdcc.h: MBSDCC_H_NO_FAM now supported
  * Fix inconsistent casing in the previous two d/changelog entries
  * Some working around lintian messages that differ between arches
  * Handle /bin/mksh-static glibc (on Hurd mostly) the same as the
    other (musl/klibc/dietlibc) ones
  * Handle nostaticpie in DEB_BUILD_OPTIONS, for debugging lintian
  * Address jammy/noble riscv64 buildds
  * Switch from pcregrep to recent-enough grep (Closes: #1101106)
    (I’ve to express my frustration with people removing a package
    required by other packages a mere month before the freeze.) 😾
  * Bump Standards-Version

 -- Thorsten Glaser <tg@mirbsd.de>  Sun, 23 Mar 2025 22:41:02 +0100

mksh (59c-39) unstable; urgency=medium

  [ Helmut Grohne ]
  * Move files from /bin/ to /usr/bin/ (Closes: #1073608)

  [ Thorsten Glaser ]
  * Grudgingly merge the above
  * The “2/2… who needs enemies” upload 😾
  * Drop the experimental changes
  * Upload to unstable
  * Merge from CVS HEAD:
    - [komh] fix refactoro
    - [komh] prefer .exe to .ksh in search order of the executable on OS/2
    - [tg] add just another nanosecond variant: dietlibc has sb.st_mtime_nsec
    - [tg] improve ENOEXEC scriptexec handling (whitelist cosmopolitan libc’s
      “APE” executables; distinguish between bad magic and shebang too long;
      avail on EBCDIC; fix errorlevel for wrong-arch ELF; recognise Zstd)
    - [Riccardo Felici] improve syntax check for while/until loops
  * Bump S-V, no changes
  * Remove checks for nōn-UsrMove layout, now that this is forced upon users

 -- Thorsten Glaser <tg@mirbsd.de>  Mon, 19 Aug 2024 01:55:51 +0200

mksh (59c-38) experimental; urgency=low

  * Experiments to deal with the poettering’d filesystem layout
  * Upload to experimental, B-D dietlibc/experimental for testing
    and GCC 14

 -- Thorsten Glaser <tg@mirbsd.de>  Fri, 05 Jul 2024 01:02:41 +0200

mksh (59c-37) unstable; urgency=medium

  * Limit musl static-PIE to architectures it is known to work
    (see #1068350 and even #1068302)

 -- Thorsten Glaser <tg@mirbsd.de>  Fri, 05 Apr 2024 02:33:34 +0200

mksh (59c-36) unstable; urgency=low

  * Fix two typos in musl static-pie support check, improve diagnostics

 -- Thorsten Glaser <tg@mirbsd.de>  Wed, 03 Apr 2024 12:25:23 +0200

mksh (59c-35) unstable; urgency=low

  * Update from CVS HEAD:
    - improvements to mbsd{cc,int}.h, mostly portability
    - put a message behind #ifdef DEBUG
    - improved fallback for missing rlim_t
    - FAQ update
    - avoid uint8_t in printf.c favouring “unsigned char” explicitly
  * Use munged specs file for #1050429 workaround, drop gcc-12 B-D
  * Install /usr/bin-based (nōn-canonical) pathnames into /etc/shells
    on systems with a broken filesystem layout (Closes: #1063905)
  * loong64 musl became available as well

 -- Thorsten Glaser <tg@mirbsd.de>  Tue, 02 Apr 2024 16:32:00 +0200

mksh (59c-34) unstable; urgency=low

  * Trace input files for all static builds, for maintainer use
  * loong64 klibc became available
  * Use static-pie with musl versions that support it
  * Update from CVS HEAD:
    - [tg] Use mbsdint.h/mbsdcc.h to use features of recent C standard
      versions or compiler extensions when available and suitable
    - [tg] Drop MKSH_BROKEN_OFFSETOF from SCO and Xenix, instead use
      offsetof(s, x) ipv offsetof(s, x[0]) which chokes MSVC
    - [tg] Add -c trace build option for GCC
    - [Riccardo Felici] forbid / (and ^ as collateral) in function names
    - [RT, tg] Port to BOW (BSD on Windows) with u_quad_t…
    - [tg] Drop values.h inclusion;
      improve sys/resource.h and missing-rlim_t detection
    - [tg] Make FAQ2HTML.sh 8.3-filename-safe
    - [tg] time can now be called as a builtin as well
    - [Martijn Dekker] Fix typeset -p for unset variables
    - [RT, tg] Port to SINIX-Z 5.42 and revisit Dell UNIX port
  * Distinguish between dependencies for Static-Built-Using,
    Built-Using, and neither (libgcc*-dev, linux-libc-dev waived)
    using real tracing output instead of hardcoding and checking
    paths; note necessary notices in copyright of binary packages
  * Mention S-B-U in notice to buildd admins
  * Update lintian overrides

 -- Thorsten Glaser <tg@mirbsd.de>  Sun, 04 Feb 2024 08:01:19 +0100

mksh (59c-33) unstable; urgency=medium

  * Update from CVS HEAD:
    - mbsd{cc,int}.h further improvements, a regression fix

 -- Thorsten Glaser <tg@mirbsd.de>  Sun, 17 Sep 2023 05:02:08 +0200

mksh (59c-32) unstable; urgency=low

  * Move to Static-Built-Using, introduced with bookworm’s dpkg
  * Use * for /usr/lib/*-linux-musl*/ for postinst/prerm as well
  * Correct musl triplet for sh4
  * Update to CVS HEAD:
    - mbsdint.h small improvements
    - apply workaround for Debian #1050589
  * Work around #1050429 by fallback to gcc-12 on mipsel, mips64el

 -- Thorsten Glaser <tg@mirbsd.de>  Mon, 28 Aug 2023 22:23:35 +0200

mksh (59c-31) unstable; urgency=medium

  * Move dietlibc, klibc version checks from d/control to d/meat
  * Do not use recent klibc versions that require Linux 5.1+ on
    mipsel, a significant number of boards (including multiple
    Debian buildd machines) fails to boot the newer kernels (+mips64el)
  * For lksh and mksh-static prefer musl for improved syscall coverage
    over klibc (lacks e.g. getrandom) over dietlibc (mostly stale)
  * Update to CVS HEAD:
    - [tg] Fix crash on $(: &>/dev/null) bashism in COMSUB
           reported by fmunozs on IRC; thanks!
    - [tg] Include contemporary OS-provided entropy in $RANDOM
    - [tg] test.sh -f is default; add +f for slow boxen

 -- Thorsten Glaser <tg@mirbsd.de>  Wed, 23 Aug 2023 19:42:16 +0200

mksh (59c-30) unstable; urgency=low

  * Update lintian overrides
  * Test upload for latest klibc compatibility checking
  * Import CVS changes:
    - [tg] Add +DEBUG to KSH_VERSION if built with Build.sh -g
      so these binaries won’t get shipped to actual users
    - [tg] Tighten x=(…) parsing, reported by Riccardo Felici
    - [tg] Update documentation (future directions, POSIX, meta)
    - [tg] Make manpages compatible with GNU groff 1.23 mdoc
    - [tg] Add another CRLF test
  * Enforce klibc 2.0.13+ needing Linux kernel 5.1+
  * Format log messages better (normal Debian loglevel præficēs)

 -- Thorsten Glaser <tg@mirbsd.de>  Fri, 04 Aug 2023 03:06:05 +0200

mksh (59c-29) unstable; urgency=medium

  * The “/bin/ is important (also to the FHS)” upload
  * Update from CVS HEAD:
    - [tg] Improve mbsdint.h further, make more versatile
    - [tg] Fix shift and rotate for nōn-power-of-two-sized quantities
    - [tg] shf_vfprintf can output mbiHUGE_{U,S} with %j now
    - [tg] ulimits can now be set and printed with mbiHUGE precision,
      no more 32-bit and/or int-size truncation
    - [tg] Reshuffle ulimit -v and -m assignment to both fulfil the POSIX
      requirement that -v is RLIMIT_AS if present and user assumption that
      -m is RLIMIT_VMEM or RLIMIT_RSS even if aliasing -v (for pkgsrc®)
    - [tg] Use of Build.sh -g or -DDEBUG in CPPFLAGS now limits (user)
      recursion so fuzzers triggering that won’t get a segfault; do not use
      this in a production shell because arbitrary user recursion (up to
      stacklimit) is guaranteed to scripts!
    - [tg] Plug minor valgrind memleaks not relevant in production
    - [tg] Fix iop leak in recursive parsing (found by Riccardo Felici,
      USI Lugano); make parsing more robust in related areas
    - [tg] Unwind reclaim must free retrace_info (crash reported by fmunozs)

 -- Thorsten Glaser <tg@mirbsd.de>  Tue, 13 Jun 2023 03:02:38 +0200

mksh (59c-27) unstable; urgency=medium

  * Small targeted fixes from MirBSD CVS:
    - (regarding mbsdint.h) portability fixes
    - [tg] Fix some formatting routines, calculations; add extra checks
    - (printf.c) fix prefix outputting diagnostics

 -- Thorsten Glaser <tg@mirbsd.de>  Tue, 14 Mar 2023 16:59:00 +0100

mksh (59c-26) unstable; urgency=medium

  * Fixup more update-shells breakage also found by piuparts

 -- Thorsten Glaser <tg@mirbsd.de>  Wed, 15 Feb 2023 16:04:53 +0100

mksh (59c-25) unstable; urgency=medium

  * Amend add-shell workaround to piuparts trouble caused by merged-usr…
  * Revamp entire update-shells logic for reliability
  * Small targeted fixes from MirBSD CVS
    - [tg] Improve situation when commands/etc. cannot be found + manpage
    - [tg] Minor mbsdint.h fixes, it has a testsuite now

 -- Thorsten Glaser <tg@mirbsd.de>  Tue, 14 Feb 2023 19:48:24 +0100

mksh (59c-24) unstable; urgency=medium

  * Raise time limit…

 -- Thorsten Glaser <tg@mirbsd.de>  Thu, 26 Jan 2023 07:22:31 +0100

mksh (59c-23) unstable; urgency=medium

  * Add missing time limit to new mtest
  * Show arch in build log, for blscan and useful-scripts analysēs
  * Do the same with build env inconsistencies
  * CVS update for avoidable blhc warning
  * Work around add-shell adding the symlink target as well (piuparts)
  * Built-Using: omit gcc-* and linux src pkgs as runtimes

 -- Thorsten Glaser <tg@mirbsd.de>  Thu, 26 Jan 2023 06:12:23 +0100

mksh (59c-22) unstable; urgency=medium

  * Add looping regression-62 variant as mtest to catch libc bugs
  * Update to CVS HEAD:
    - [lintian] Fix misspelling
    - [tg] Fix handling of $#/$0/… for various corner cases (LP#2002250)
    - [tg] Unify nil pointer handling using C23’s if present
    - [tg] Accommodate diverging negative modulo on lksh in testsuite
  * Also update printf.c to CVS HEAD (lowers bytewaste)
  * Lintian override updates; no-change Policy bump

 -- Thorsten Glaser <tg@mirbsd.de>  Tue, 24 Jan 2023 06:23:05 +0100

mksh (59c-21) unstable; urgency=low

  * Update to CVS HEAD:
    - [CodeQL] use fchown(2) in palliative code
    - [tg] In test(1) clarify operators need escaping as usual
    - [tg] Fix time -p in pipeline and strict POSIX format
    - [tg] 4 bytes are sufficient for wctomb…
    - [tg] Small comment and documentation improvements

 -- Thorsten Glaser <tg@mirbsd.de>  Tue, 03 Jan 2023 18:00:51 +0100

mksh (59c-20) unstable; urgency=medium

  * Update to CVS HEAD:
    - [tg] Pass the third argument to open(2) always for HP aCC
    - [tg] clang --version seems to be accepted these days
    - [tg] DragonFlyBSD defines NELEM in sys/param.h õÕ
    - [tg] Rewrite all code to not need PATH_MAX, fix some casts
    - [tg] Fix compatibility with systems where tv_sec is unsigned
    - [tg] Begin debugging the heredoc-tmpfile-8 test; help welcome
  * Omit D:loglibc lines from README.Debian (Closes: #1021085)
  * Fix autopkgtests to handle flaky tests (Closes: #1025229)

 -- Thorsten Glaser <tg@mirbsd.de>  Fri, 02 Dec 2022 02:49:39 +0100

mksh (59c-19) unstable; urgency=medium

  * debian/blscan: handle better when some are still building
  * klibc B-D: revert from linux-any to whitelist because it’s not
    yet available on e.g. arc (new d-ports architecture)
  * Omit number of tests failed/ignored/passed from README.Debian
    because fragile/ignore-fail tests make it unreproducible;
    thanks lamby for noting (Closes: #1021085)
  * Bump klibc sid version lower bound for 32-bit arch fix

 -- Thorsten Glaser <tg@mirbsd.de>  Sun, 02 Oct 2022 21:22:44 +0200

mksh (59c-18) unstable; urgency=medium

  * Update to CVS HEAD:
    - [tg] add more documentation and user-requested examples to the FAQ
    - [tg] plug rare build error if using Build.sh -g
    - [tg] fix GCC ASan (reported by Riccardo Felici, USI Lugano), UBSan
    - [tg] dot.mkshrc missing backspace; make Lb64decode work on lksh
    - [tg] Support HP-UX 9 (m68k) and possibly fix other smaller compilers
    - [tg] Fix ulimit bad option message
    - [tg] Implement some extra safeties when doing strdup(3)-ish things
    - [tg] dot.mkshrc fix enable errors from disabled ones
    - [tg] Update to UCD 15.0.0
  * Useless maintainer churn for lintian’s latest format changes

 -- Thorsten Glaser <tg@mirbsd.de>  Wed, 28 Sep 2022 22:07:27 +0000

mksh (59c-17) unstable; urgency=medium

  * Update to CVS HEAD:
    - [tg] Correct R41 regression wrt (nōninteractive) tty state restoring
    - [tg] dot.mkshrc also add ~/.local/bin/ to $PATH if extant
    - [tg] rename bool/true/false/tobool() to Wahr/Ja/Nee/isWahr()
    - [tg] drop use of pure attribute, until revisited (and with const)
    - [tg] reduce UB in arithmetics further (and IB…)
    - [tg, trn] FAQ: note line number reporting issue for blocks
    - [tg] improve Makefrag.inc generation (Build.sh -M)
    - [Coverity] improve padding/unused in onstack Getopt structure
    - [tg] fix shift in value substitutions and function substitutions
    - [tg] improve compile-time checks and run more but not redundant ones
    - [tg] With much rejoicing remove the warning introduced in 59c-15
      again as it was thankfully rejected, at POSIX level
  * Update to matching printf.c

 -- Thorsten Glaser <tg@mirbsd.de>  Mon, 25 Apr 2022 04:01:35 +0200

mksh (59c-16) unstable; urgency=medium

  * Update to CVS HEAD:
    - [tg] Work around older dietlibc’s lack of some limit macros
    - [tg] Clear builtin_argv0 when quitenv()ing E_EXEC env
    - [tg] Fix selftest-tty-absent and thus FTBFS on Hurd and
      GNU/kFreeBSD due to #807071

 -- Thorsten Glaser <tg@mirbsd.de>  Mon, 31 Jan 2022 23:14:57 +0000

mksh (59c-15) unstable; urgency=medium

  * Require usable libklibc-dev (cf. #1004465)
  * Update to CVS HEAD:
    - [tg, Redfoxmoon] Fixes for the MIPSpro compiler
    - [tg] Clean up the pre-initio() codepaths
    - [tg] Advance less-UB-y arithmetics project: shf_vfprintf et al.
    - [tg] Overhaul error reporting functions avoiding some name doubling
    - [tg] Fix if FCEDIT when TMPDIR contains whitespace
    - [tg] Tighten locale and charset checks
    - [tg] Handle gracefully users doing integer EPOCHREALTIME=
    - [tg] Fix newer GCC warning on compile-time asserts
    - [tg] Support GNU strerrordesc_np(3) replacement for _sys_errlist[]
    - [tg] Better configure-time detection (TenDRA, dietlibc, …)
    - [tg] Fix possible setsid(2) failure in chvt code by always forking,
      with waiting if !, and communicate child process errors back
    - [tg] Change some more numbers to unsigned, signed is evil in C
    - [tg] Improve flags documentation, also (Closes: #999706)
    - [tg] Clear nonblocking flag on entry for FIFOs as well, as POSIX says
    - [komh, tg] Fix termio chvt flushing and link to Ilya Zakharevich’s
      docs why no shell can use termios(4) on OS/2
    - [tg] Introduce k32 type and arithmetics, used in hash, indicēs, …
    - [tg] Add explicit masking for 8-bit to KBY and KBI macros
    - [tg] Change remaining users off stdint.h types, except old arith
    - [tg, bwh] Limit object size to the smaller of (size_t)PTRDIFF_MAX and
      SIZE_MAX, so byte representation pointer offsets cannot cause UB
    - [tg] PRNG improvements: track traps and history input
    - [tg] Limit variable name length to INT_MAX-X_EXTRA to guarantee export
    - [tg] Update portability glue for manpage
    - [tg] Document local array howto and behaviour in the FAQ
    - [tg] Fix missing backslash in posix-mode FAQ locale example code
    - [tg] Change short hash from BAFH0-1 to BAFH1-0 (faster at no loss)
    - [tg] Improve UB-safe type property detection and arithmetics; switch
      more parts of lksh to UB-y (POSIXly “correct” though…) arithmetics
    - [tg] Support GNU sigdescr_np(3) replacement for _sys_siglist[] and
      sigabbrev_np(3) for _sys_signame[] (avoid glibc regression)
    - [RT] Port to SerenityOS
    - [tg] Build.sh work around FreeBSD make(1) using set -v
    - [tg] Warn about [^…] shellglobs because some people currently are
      trying to change POSIX to force GNU bash behaviour there instead of
      (currently) permitting both traditional/ksh and GNU bash behaviour ☹☹☹
    - [tg] Correct set -o allexport description
  * debian/printf.c: Update from MirBSD CVS to support new warning framework
  * Sync debian/copyright accordingly

 -- Thorsten Glaser <tg@mirbsd.de>  Mon, 31 Jan 2022 17:04:23 +0100

mksh (59c-14) unstable; urgency=low

  * Use klibc’s optimisation flags as intended despite -g
  * Rely on fixed SSP detection (see below)
  * Fix some build issues:
    - musl and glibc mksh-static weren’t MKSH_SMALL(_BUT_FAST)
    - better escaping
    - fix ordering when appending/prepending to CFLAGS
    - refactor CFLAGS/LDFLAGS mangling for static builds of lksh
    - improve comments in d/meat
  * Updates from CVS HEAD:
    - [tg] Improve autodetection of whether SSP/ProPolice is supported
    - [tg] Work around broken _POSIX_VDISABLE definition in glibc/kFreeBSD
    - [tg] "C" is the implementation-defined default locale, unless the new
      MKSH_DEFAULT_UTFLOC macro is defined, for setlocale-less operation
    - [tg] Add debug-buffer editing command #ifdef DF (for developing mksh)
    - [tg] Correct off-by-one, unroll loop in escaping code
  * Check glibc’s default locale matches the one in mksh-static/lksh-static
  * Test argv[0] can be changed (cf. #970460)

 -- Thorsten Glaser <tg@mirbsd.de>  Sat, 16 Oct 2021 04:53:47 +0200

mksh (59c-12) unstable; urgency=low

  * Package CVS HEAD (again with locale tracking):
    - [tg] Ensure the shell exits nōnzero on internal errors everywhere
    - [tg] Drop duplicate, reversed, SIGINT/SIGQUIT handler munging on
      exec which was only right most of the time (Closes: #992885)
    - [tg] Drop sigaction(2)/bsd_signal(3) failure warnings with reason
    - [tg] Fix exit (and set -e etc.) in valsubs
    - [tg] Clean up _POSIX_VDISABLE handling
    - [tg] Redo fd saving handling; issues spotted by komh (OS/2), ymd
    - [tg] Remove BOM handling entirely
  * Try adapting lintian/sid overrides (though #995850)

 -- Thorsten Glaser <tg@mirbsd.de>  Mon, 11 Oct 2021 00:22:01 +0200

mksh (59c-11) unstable; urgency=low

  * Stopgap to not error out on “trap true KILL”, unbreaks startx

 -- Thorsten Glaser <tg@mirbsd.de>  Mon, 04 Oct 2021 19:03:31 +0200

mksh (59c-10) unstable; urgency=low

  * Package CVS HEAD (again with locale tracking):
    - [tg] Document MKSH_ASSUME_UTF8 will need to go away with full locale
      tracking; (see Debian) locale will be federführend even in scripts…
    - [tg] Correct several minor/cosmetic issues
    - [tg] Add generator code for character classes, more consistent
    - [tg] Use small stack buffers over allocating to reduce malloc pressure
      in several more codepaths
    - [tg] Add character class documentation to the manpage
    - [tg] Small optimisations (less duplication; optimise for the common
      codepath instead of the uncommon one) in code and testsuite
    - [tg] EBCDIC: codepage consistency check, diagnostic; document more
    - [tg] Plug a couple memory leaks; slightly increase performance
    - [tg] Massive code and comment improvements during work on fixing the way
      special characters (control characters, invalid UTF-8, etc.) are handled
      or escaped, including emacs mode cursor positioning and output
    - [tg] Reduce memory allocator pressure by using more on-stack buffers
    - [tg] Improve outputting job information
    - [tg] Harmonise some error reporting and use string pooling more
    - [tg] Make rotating by 0 avoid C UB… *sigh*
    - [tg, RT] Add new Build.sh option -A
    - [RT, tg] Port to SCO OpenServer 3.2r4.2 and Xenix (crossbuilt for now)
    - [tg] Fix FAQ2HTML.sh on præ-POSIX sh(1)
    - [tg] Make testsuite not fail on rangeless tr(1) or symlinkless system
    - [tg] Allow for <sys/select.h> substituting <sys/time.h> if both may not
      be included at the same time (scosysv 3.2r4.2)
    - [tg] Elide some configure-time tests on OEs where they are known
    - [tg] Not only is fgrep(1) unportable, but so is grep(1) -F…
    - [tg] Calculate the most negative number w/o triggering UB (I want Ͻ…)
    - [tg] Improve signedness‑ and const-cleanliness of code
    - [tg] Add strstr(3) and memmove(3) if missing
    - [tg] Clear a few more tty flags on makeraw; inspired by ksh93
    - [tg] Skip the rename builtin if rename(2) syscall is missing
    - [tg] Add a signal handling abstraction; still require sigaction(2) in
      the normal case, whitelist OSes with reliable signal(3) bsd_signal
    - [tg, RT] Xenix has reliable signals but broken termios(4); cope
    - [tg] Speed up configuring: skip a few checks for ancient compilers
    - [RT, tg] Update and promote to working the port to Syllable Desktop;
      improve the situation for LynxOS 3.0 and BeOS 6.2 “Zeta” and, slightly,
      for BeOS 5.1 “Dano” and 5.0 “Maui”
    - [tg] Check whether exec -a newargv0 prog args… works separately so it
      isn’t caught through sh-mode-1 indirectly only; split that
    - [tg] Begin switching to… slightly less insane… integer types
    - [RT] Port to SkyOS (fragile), SerenityOS (begun), Minoca OS (good)
    - [tg] Sanity-check some usual tools before using (build, test)
    - [tg, RT, komh] Handle broken-but-extant getrusage(2)
    - [tg] Make times(3) use work in the absence of CLK_TCK
    - [tg] Actually act on getrusage(2) and times(3) errors
    - [tg] When tabcompleting, set the mark to the beginning of the inserted
      substring (the cursor is at or just one space past the end), similar
      to how other editing commands behave; for xthechar on IRC
    - [tg] When importing env vars, first match now wins, like in libc
    - [tg] Exporting parameters to the environment now uses a stable order
    - [tg] Move kill-region default binding to Esc+^W because ^W is usually
      taken by WERASE, to unconfuse
    - [RT, tg] Work around NeXTstep cc(1) more
    - [tg] Testsuite: C.UTF-8 is now the default UTF-8 locale on all operating
      systems except HP/UX where it still defaults to en_US.utf8 and Darwin
      (Mac OSX) which uses just UTF-8 for some reason‽
    - [tg] Run all tests with LANG=C since musl defaults to C.UTF-8 if all
      locale parameters are unset (and talk about Debian glibc to do the same
      exists and I’m considering this for MirBSD maybe as well)
    - [tg] Make base-1 integers pass typeset -p reentry-safe
    - [tg] Fix manual page misrendering a few Ns macros with GNU groff
    - [tg] Uncouple HAVE_SETLOCALE_CTYPE=0 from (soon to be gone)
      -DMKSH_ASSUME_UTF8={0|1}
    - [RT] Make it easier to work around a broken $Config{perlpath}
    - [tg] Use extended caret notation in bind input and output
    - [tg] Prepare for moving raw octet mapping off U+EF80‥U+EFFF to
      U-00200080‥U-002000FF but don’t actually do it until R60 release
    - [tg] Use extended caret notation in the command line editor, etc.
    - [tg] Restore transpose ability to work for nōn-UTF8 characters
    - [tg] Make input handling more reliable, prepare some for 21-bit UCS
    - [tg] Do not attempt to fcntl(2) on just-closed file descriptors…
    - [tg] Warn if setting or clearing the close-on-exec flag fails
    - [tg] Fix test for character device in mksh -T
    - [tg] Address Coverity Scan checkers’ complaints
    - [tg] Make casting around, EBCDIC, DEBUG builds more reliable
    - [tg] Protect tab completion with extended caret notation escaping,
      reported by lanodan on IRC
    - [tg] Make Build.sh -g more useful-ish with other compilers and prefer
      -Og over -O2 for optimisation then
    - [tg] Revert turning on POSIX mode turns off UTF-8 mode from R56
    - [tg] Advance to renaissance locale tracking; revert defining our
      implementation-defined default locale to C and use the OS’
    - [tg] Add ${var@^} for unambiguous extended caret notation
  * Identify as “+Debian” vendor version; should’ve done that earlier…
  * Bump Standards-Version, no change

 -- Thorsten Glaser <tg@mirbsd.de>  Mon, 04 Oct 2021 02:44:17 +0200

mksh (59c-9) unstable; urgency=medium

  * Cherry-pick bugfixes from CVS HEAD:
    - stop referring to dead IRC network
    - check lower bounds of input line array when backspacing
    - protect against hi-bit7 (stty) EOF character
    - show error message and exit nōn-zero on stdout write failure
      for builtin calls (Closes: #990265) + display correct errno
    - show error message in echo/print builtin on output write failure
      (it exits 1 already in that case)
    - ensure macro calls don’t have side effects in arguments
    - properly flush stderr and unwind for direct builtin calls
      (“ln -s /bin/mksh echo; ./echo …”)
    - fix truncation behaviour for internal snprintf equivalent
  * Update upstream contact info accordingly

 -- Thorsten Glaser <tg@mirbsd.de>  Sat, 10 Jul 2021 22:08:30 +0200

mksh (59c-8) unstable; urgency=medium

  * Fix a -Wpointer-sign in escaping code
  * Shrink escape diff (algorithm unchanged) for easier review

 -- Thorsten Glaser <tg@mirbsd.de>  Mon, 31 May 2021 02:42:55 +0200

mksh (59c-7) unstable; urgency=medium

  * Do not use sigsetjmp(…, 0) with klibc (cf. #988027)
  * Cherry-pick upstream memory leak fixes
  * Apply just enough upstream changes to address more escaping
    issues: for ${var@Q} and “typeset -p”, take UTF-8 mode (on/off)
    into account; don’t issue \uNNNN escapes outside of UTF-8 mode,
    don’t escape nōn-ASCII printable, that is, nōn-control characters;
    always escape C0 controls and DEL; escape C1 controls by default,
    but add an option “asis” to disable that (e.g. for DOS codepages)
    in nōn-UTF8 mode — note this will need fixing for tab completion,
    command line editing (in a subsequent upload)…
  * Work around hppa buildd issue (same as m68k, sh4)

 -- Thorsten Glaser <tg@mirbsd.de>  Sun, 30 May 2021 23:57:59 +0200

mksh (59c-6) unstable; urgency=medium

  * Clear “taint” on most actions mutating a variable

 -- Thorsten Glaser <tg@mirbsd.de>  Mon, 03 May 2021 03:26:28 +0200

mksh (59c-5) unstable; urgency=medium

  * Apply targeted fixes, intended for bullseye:
    - [tg] Plug some memory leaks
    - [tg] Harden conversion of imported variables to integer, like
      Perl “taint”: imported variables will now lose the value when
      converting to integer but they are not purely numeric
      (CVE-2019-14868 was a similar issue in AT&T ksh); honour
      -o posix for leading-zero as octal, though (but continue not
      when importing array indicēs)
    - [tg] Fix lexer token state corruption when reading new input;
      makes evaluate-region editing command actually useful
    - [tg] Fix proper escaping/quoting and tab completion for tilde,
      curly braces and \x02, either escaped or not
    Note: patches are reduced to minimum change for bullseye
  * Rebuild for outdated Built-Using

 -- Thorsten Glaser <tg@mirbsd.de>  Sun, 02 May 2021 23:52:52 +0200

mksh (59c-4) unstable; urgency=low

  * Update to upstream CVS HEAD
    - [tg] Make "C" the implementation-specified default locale for
      early-locale-tracking (note full locale tracking will have to
      use whatever the underlying OS’ is, if no setlocale(3) it’ll
      be just "C" again) and document possibly removing turning on
      POSIX mode disabling and presence of a BOM enabling UTF-8 mode
      with full locale tracking
    - [tg] Document OPTU-16 (U+EF80‥U+EFFF) mapping for raw octets will not
      be present once mksh will have switched to full 21-bit UCS / UTF-8
    - [tg] Add several bigword-based editing commands to Emacs mode
    - [tg] Improve documentation wrt. $ENV
  * Bring locale tracking code somewhat closer to what will eventually be
    in upstream code (once I manage to do the related changes around MirBSD
    base and its scripts, which needs some more time and tuits):
    - drop BOM enabling UTF-8 mode code
    - no longer deactivate UTF-8 mode on entering POSIX mode
      (rationale: the POSIX locale parameters will be the only deciding
      factor; even if, nominally, only the POSIX locale is compliant)
  * Apply locale tracking to nōn-interactive shells as well

 -- Thorsten Glaser <tg@mirbsd.de>  Sat, 13 Mar 2021 19:09:48 +0100

mksh (59c-3) unstable; urgency=medium

  * Update to upstream CVS HEAD
    - [tg] Defend against getcwd() syscall on Linux violating POSIX
    - [tg] Fix GNU/Hurd codepath path length type, realpath errno
    - [komh] Fix jobless build (missing ifdef)
    - [tg] Fix struct stat mtime member detection
  * Turn on locale tracking; upstream will do it in a few days anyway

 -- Thorsten Glaser <tg@mirbsd.de>  Sun, 07 Feb 2021 02:57:12 +0100

mksh (59c-2) unstable; urgency=medium

  * The “Monday 🙀” upload
  * Update maintainer scripts from jupp (template)
  * Bump Policy (no relevant changes)
  * Update to upstream CVS HEAD
    - [tg] Draw all prompt lines on clear-screen (spotted by akko)
    - [tg] Fix Lstripcom errorlevel, so it can be used with set -e
    - [tg, guillem] Fix TOCTOU when calling readlink(2)
    - [tg] Let regression-37 actually test what it was supposed to
    - [tg] Fix a misrendering in the manpage and use The Queen’s English
    - [tg] When restoring shell flags upon return from FKSH functions,
      never restore ±p (±o privileged) and fix restoring ±m (±o monitor)
    - [tg] More const-cleanliness
    - [tg] dot.mkshrc: no longer use the built-in cat(1)
    - [tg] dot.mkshrc: Lstripcom: don’t trash backslashes
    - [tg] dot.mkshrc: allow ^D on interactive use of utilities
    - [tg] dot.mkshrc: more “set -ueo pipefail” safety
    - [tg] dot.mkshrc: fix some more minor issues spotted reviewing
    - [tg] check.t: fix some test documentation, cross-reference POSIX
      more, fix if necessary, make some able to be run with other shells
    - [tg] Add RLIMIT_RTTIME as ulimit -R matching GNU bash
    - [tg, enh] Remove cat(1) and sleep(1) builtins; point users to the
      new portable MirBSD sleep download page — getting signal handling
      right for them as builtins would be hard and expensive
    - [tg] Darwin has st_mtimespec but not st_mtim in struct stat
    - [tg] Improve installation instructions printed for out-of-tree builds
    - [chet, tg] Make HISTFILE read-only in restricted shells
  * Update Build-Depends for bsdmainutils to bsdextrautils move
  * Bump debian/watch version=4 (lintian-requested)
  * Update lintian overrides

 -- Thorsten Glaser <tg@mirbsd.de>  Mon, 25 Jan 2021 14:02:13 +0100

mksh (59c-1) unstable; urgency=medium

  * “Blue moon on Samhain” upload
  * New upstream release
    - [tg] Update character widths (Jamo bugfix)
    - [spellintian] Fixes
    - [Jonathan Perkin] Don’t use “test -e” in Build.sh
    - [Jonathan Perkin] Mac OSX-specific: ensure ulimit -m is present
      even if it is an alias of ulimit -v (10.4+), for compatibility
    - [Finn Thain, Stanley J. Johnson] Port to A/UX
    - [tg] Add older ulimit(2) support, if setrlimit(2) is missing
    - [tg] More EBCDIC-safeness (slightly…)
    - [PerlAcademy] Allow all tests to pass with very old Perl 5
    - [tg] Fix test.sh’s output of tested/expected shell version
    - [Stanley J. Johnson] Let A/UX default CC to gcc
    - [tg] Drop “is being ported” warning from A/UX and OS/2, they work
    - [tg] Include <pwd.h> only if MKSH_NOPWNAM is not defined
    - [tg] “command -v” must print absolute pathnames, even if $PATH
      contains relative pathnames under which the command in question
      was found (orbea)
    - [komh] Fix absolute pathnames relative to / on nōn-OS/2, too
    - [tg] Fix some more corner cases related to pathname normalisation
    - [tg] FAQ: “${@?}: bad substitution” documentation
    - [tg] Fix some constructs pointed out by https://www.deepcode.ai/
    - [tg] Clean, refactor, optimise some code
    - [tg] Allow ^Xe on empty command line; quote editor argument properly
    - [tg] FAQ: an IRC user suggests ^Xe for ad-hōc scripts and multiline
    - [tg] Eliminate many unnecessary calls to (re‑)allocate memory
    - [tg] Correct order during tree-printing of heredocs (LP#1783355)
    - [tg] Drop some possibly unreached and probably broken code
    - [tg] Increase FAQ2HTML.sh compatibility with pre-POSIX shells
    - [tg] Demote some (unlikely called) output code to !MKSH_SMALL
  * Drop -o from lo alias as coreutils’ ls(1) does not implement
    the option the same as BSD
  * Update “the Uhr” from MirBSD CVS
    - tg: sync with progress-bar,v 1.6

 -- Thorsten Glaser <tg@mirbsd.de>  Sat, 31 Oct 2020 06:49:43 +0100

mksh (59b-3) unstable; urgency=medium

  * “zelenka” upload
  * autopkgtests dislike stderr output (really Closes: #970268)

 -- Thorsten Glaser <tg@mirbsd.de>  Wed, 16 Sep 2020 18:57:00 +0200

mksh (59b-2) unstable; urgency=medium

  * d/mksh.postinst: u-a doesn’t like slaves pointing to same-links
  * adapt as-installed tests to skip known-bad binaries (Closes: #970268)
  * redo lintian overrides because someone seems to think it cute
    to let maintainers do unnecessary changes

 -- Thorsten Glaser <tg@mirbsd.de>  Tue, 15 Sep 2020 00:28:36 +0200

mksh (59b-1) unstable; urgency=medium

  * Upload to unstable
  * Move to debhelper 13
  * New upstream bugfix release
    - [tg] Handle other tmux $TERM types, pointed out by multi via IRC
    - [tg] Fix typo in FAQ
    - [tg] y='a\*b'; [[ $x = $y ]] regression (Martijn Dekker) fix
    - [l0kod] Defuse CLIP OS O_MAYEXEC support (cf. LWN)
    - [tg] Make set +o output a command to restore the currently set and
      (new!) cleared options, keep a reset state per session (experimental)
    - [tg] Correct documentation and code regarding to argv[0] parsing:
      first ‘-’ for login shells, then ‘r’ case-insensitively for restricted
      shell, then “sh”*, again case-insensitively, for BINSH_* modes;
      add tests
    - [tg] On OS/2, allow case-insensitive name for direct builtin call
    - [tg] Always skip startup files if direct builtin call
    - [tg] Avoid some sometimes-redundant startup codepaths
  * Drop hint-testsuite-triggers autopkgtest, it confused Debian QA tools
  * Remove no longer relevant section from README.Debian
  * Add ksh93-compatible alternative rksh if mksh provides ksh

 -- Thorsten Glaser <tg@mirbsd.de>  Sun, 17 May 2020 03:05:10 +0200

mksh (59-1) experimental; urgency=low

  * Upload to experimental
  * New upstream release
    - [tg] Repair out-of-tree builds (noticed by rsc)
    - [tg] Work around a glibc on Hurd issue in testsuite
    - [komh] OS/2 filesystem mtime granularity is two seconds (as in FAT)
    - [tg] Replace while with goto: Coverity was confused
    - [tg] Fix invocation of some builtins when external utility absent
    - [komh] Improve automatic executable suffix for test builtin
    - [tg] Style code, refactor, clean up, optimise
    - [tg] Use cached egid in test builtin
    - [tg] Make bind builtin output reentry-safe; safety fixes
    - [tg] If basename(argv[0]) after leading dash removal begins with
      an ‘r’ enable restricted shell flag; reported by pmjdebruijn via IRC
    - [tg] Fix code example in manpage for how tab completion escapes
    - [tg] Match full extglob pattern RHS of [[ string comparison like ksh93
    - [tg] Implement which with -a in dot.mkshrc
    - [tg] Remove global builtin (use typeset -g)
    - [tg] alias, command, whence: Print alias names quoted
    - [tg] Implement a new quote-region (Esc+Q) editing command
    - [tg] Document all built-in aliases (requested by msiism via IRC)
      and those aliases and functions shipped in dot.mkshrc; completely
      overhaul builtin and reserved word documentation, for consistency
    - [tg] The manual page now features properly spaced em dashes ☻
    - [tg] Document that test x = y doesn’t extglob, only [[ x = y ]] does
  * Install rmksh and rlksh symlinks
  * Update uhr from MirBSD CVS (performance; adjust to new release)
  * Add relevant entries to NEWS.Debian

 -- Thorsten Glaser <tg@mirbsd.de>  Wed, 15 Apr 2020 02:39:01 +0200

mksh (58-1) unstable; urgency=medium

  * New upstream release
    - [tg] Improve code performance, quality, robustness and correctness
    - [multiplexd] Add vi mode PgDn, similar to PgUp doing history search
    - [tg] Build.sh fixup unreliable test -n / -z
    - [multiplexd] Correct documentation of vi mode @c
    - [tg] Update to UCD 13.0.0
    - [tg] Use nanoseconds in test -nt / -ot (LP#1855325)
  * Work around debhelper issue #908845 (Niels Thykier)
  * Update lintian overrides

 -- Thorsten Glaser <tg@mirbsd.de>  Fri, 27 Mar 2020 12:59:25 +0100

mksh (57-7) unstable; urgency=low

  * Update from MirBSD CVS HEAD
    - [tg] Correct backslash expansion documentation; caveat re. 16-bit UCS
    - [tg] Fix extra empty field on IFS-NWS trim expansion (Martijn Dekker)
    - [tg] Improve code performance, quality, robustness
    - [tg] Allow ${x:n} where n is an identifier (veedeeh)
    - [tg] Permit ‘+’ in alias names, but not leading (Aleksey Cheusov)
    - [tg] Fix here strings for $@ (LP#1857195), reported by jvdh
  * /etc/skel/.mkshrc: use canonical names of locales mentioned
  * Introduce DEP 8 autopkgtests

 -- Thorsten Glaser <tg@mirbsd.de>  Sat, 14 Mar 2020 02:29:40 +0100

mksh (57-6) unstable; urgency=low

  * Reorder lines in /etc/skel/mkshrc for even easier locale choice
  * Use “none” buildsystem to avoid unwanted make call (cf. #949635)
  * Register FAQ with doc-base
  * Complicate Built-Using detection to be reproducible wrt. usrmerge
  * Ignore nocheck option on m68k and sh4 for now
  * Ship variants with failed tests non-executable (could also not ship
    them, but this is better for debugging those; s390x comes to mind)
  * Update from MirBSD CVS HEAD
    - [tg, veedeeh] Document vi command line editing mode state better
    - [tg] Add FAQ2HTML.sh to convert mksh.faq to local valid XHTML+CSS
  * Use upstream faq2html instead of local prototype

 -- Thorsten Glaser <tg@mirbsd.de>  Mon, 03 Feb 2020 23:56:09 +0100

mksh (57-5) unstable; urgency=medium

  * Don’t omit musl from informative list of dependencies output
  * Update mksh from MirBSD CVS again, for latest fixes and changes
    - [tg] Begin work on support for neatcc (needs neatcc to evolve first)
    - [tg] Fix possibly not enough aligned access in struct job
    - [tg] Support going full setugid by running “set -p” once interactive
    - [tg] Document another (arcane, almost nowhere needed) definition
    - [tg] Improve code legibility and testsuite reliability and maintenance
    - [tg] Speed up trivial += cases (LP#1855167)
    - [tg] Some further code and memory optimisation and test coverage
    - [tg] Document that += is always string append (LP#1857702)
    - [tg] Fix “set -e appears active within eval but isn’t” reported by
      Martijn Dekker and another bug related to using set ±e inside eval
    - [tg] Handle parameter assignment in front of invocations of POSIX-style
      functions like ksh-style ones and external utilities; cf. #935115
    - [tg] Fix bad memory access for invalid syntax (LP#1857828, LP#1857826)
    - [Brian Callahan] Update MALLOC_OPTIONS-using testcase for newer OpenBSD
    - [tg] Support lacc as compiler (just detecting, no change), thanks Brian
    - [tg] Share __IDSTRING with jupp
    - [tg] Update string comparison/pattern documentation
  * 2020 in copyright
  * Import latest bugfixed printf.c from MirBSD CVS
  * Generate and ship FAQ as HTML for easy local reading
  * Bump Policy (no changes relevant for us)
  * Use new execute_{before,after}_dh_foo-arch targets for more reliability
  * Update maintainer script templates

 -- Thorsten Glaser <tg@mirbsd.de>  Thu, 23 Jan 2020 00:41:50 +0100

mksh (57-4) unstable; urgency=low

  * Update to CVS HEAD (fix lksh build without controlling tty)

 -- Thorsten Glaser <tg@mirbsd.de>  Thu, 24 Oct 2019 02:14:02 +0200

mksh (57-3) unstable; urgency=low

  * The “fixes BD-Uninstallable on kfreebsd-*” upload
  * Switch wheezy/precise+ to C.UTF-8 for testsuite and nuke locales B-D
  * Implement improved build log output about libc and testsuite results
  * Fail builds that positively fail the regression tests
  * Update to CVS HEAD (improvement in dot.mkshrc)
  * Bump Policy (nothing for us)

 -- Thorsten Glaser <tg@mirbsd.de>  Wed, 23 Oct 2019 21:56:33 +0200

mksh (57-2) unstable; urgency=medium

  * Drop “ancient package version preinst”, except for oldold…stable
  * /etc/skel/.mkshrc: improve (commented-out) locale (re)setting example
  * Update to a CVS snapshot as of 2019-09-16
    - [lintian] hyphen-used-as-minus-sign (on jessie, not later, ‽‽‽)
    - [tg] Fix system info gcc dump{machine,version} shell escaping level
    - [tg] Document KSH_VERSIONNAME_VENDOR_EXT in Build.sh
    - [tg] Be more explicit about the LTO bug exposed by check.t
    - [Todd C. Miller] Add -x (file locks) and AIX-specific -r ulimits
    - [tg] Handle Midipix as test environment and fix some warnings
    - [tg] Fix some Build.sh issues as Mirtoconf is now used by MirCPIO
      and MagicPoint
    - [komh] Improve CRLF to LF conversion
    - [komh] Ensure ECHO mode is enabled at startup so read has local echo
    - [komh] Let check.pl retain the PERLIO env variable
    - [komh] Unbreak nounset-1 test on systems with drive letters
    - [komh, tg] Make ulimit-3 test work without |& (that is, incomplete
      ports, i.e. those with -DMKSH_NOPROSPECTOFWORK)
    - [tg] Disable xxx-stat-1 test for now, fails when run as root
    - [tg] Drop Build.sh flags -c combine, -c lto
    - [Martijn Dekker] Exit 126 on execve(2) failure, not 1 (e.g. E2BIG)
    - [tg] Behave set and export/readonly-on-read-only-variables when run
      with command and command dot, bugreports by Martijn Dekker
    - [tg] dot.mkshrc: simplify; enhance (un)setting locale example
    - [tg, selk] Catch build errors earlier
    - [tg] Add -fno-lto (if GCC is detected) to CFLAGS and LDFLAGS
    - [tg] Limit HISTSIZE to 65535, as long pre-announced
  * Use filter (not findstring) gmake function to check list variables
  * Very grudgingly, rewrite d/rules using dh7-style
  * Use sed --posix always to avoid GNU extensions breaking valid regexps
  * Update list of architectures for dependencies
    - assume dietlibc is recent enough on hppa
    - add musl on riscv64
    - drop belocs-locales-bin and mentions of avr32
  * Bump Policy which forced dh7 down our throats

 -- Thorsten Glaser <tg@mirbsd.de>  Thu, 26 Sep 2019 00:52:17 +0200

# Older entries have been removed from this changelog.
# To read the complete changelog use `apt changelog mksh`.
