Commit 40609f3
committed
dash: line editing + history via an in-tree static libedit (>=0.5.4)
dash built every version with -DSMALL, so it had no interactive line editing,
history or fc builtin. From 0.5.4 dash's configure offers --with-libedit, which
links the BSD editline library and undefines SMALL; 0.5.3 has no such option (it
hardcodes -DSMALL) and is left as-is. dash's configure AC_MSG_ERRORs if the flag
is passed without the library, so the library must exist first.
Add common/libedit.sh: a static libedit (pinned 20260512-3.1) built with
musl-cross against the in-tree static ncurses, mirroring common/ncurses.sh
(idempotent, fetch + checksums/sources/libedit/, shvr_libedit_cflags/ldflags).
Like ncurses it is fetched fresh and checksum-verified at build time; the tarball
itself is not committed (/build is gitignored).
Wire it into dash for >=0.5.4: build libedit, pass --with-libedit, and supply the
include/lib paths. libedit needs a termcap implementation (tgetent) from ncurses,
which must be linked AFTER -ledit, but dash's configure appends "-ledit" last
(LIBS="-lncurses -ledit") -- the wrong static link order -- so the order is fixed
in the generated Makefile.
Verified across the full range on both arches: 0.5.4..0.5.13.4 now link libedit
(configure: "history_init in -ledit... yes") and gain emacs/vi editing, in-session
history recall and the fc builtin (interactive `fc -l` lists prior commands);
0.5.3 stays minimal (fc: not found) and its binary is byte-identical to before.
dash has no persistent HISTFILE -- that is not a dash feature. Regenerated
checksums/build/{amd64,arm64}/dash_* for the ten affected versions;
verify_build_checksums passes on both arches.1 parent 9beff1b commit 40609f3
23 files changed
Lines changed: 128 additions & 21 deletions
File tree
- checksums
- build
- amd64
- dash_0.5.10.2/bin
- dash_0.5.11.5/bin
- dash_0.5.12/bin
- dash_0.5.13.4/bin
- dash_0.5.4/bin
- dash_0.5.5.1/bin
- dash_0.5.6.1/bin
- dash_0.5.7/bin
- dash_0.5.8/bin
- dash_0.5.9.1/bin
- arm64
- dash_0.5.10.2/bin
- dash_0.5.11.5/bin
- dash_0.5.12/bin
- dash_0.5.13.4/bin
- dash_0.5.4/bin
- dash_0.5.5.1/bin
- dash_0.5.6.1/bin
- dash_0.5.7/bin
- dash_0.5.8/bin
- dash_0.5.9.1/bin
- sources/libedit
- common
- variants
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
0 commit comments