ble-0.4.0-devel3 (2023-04-03)
2020-12-02...2023-04-03 (#D1427...#D2030) 276baf2...1a5c451
Usage
Prerequisites
Bash 3.0+ and basic POSIX utilities are required.
Download ble-0.4.0-devel3.tar.xz
https://github.com/akinomyoga/ble.sh/releases/download/v0.4.0-devel3/ble-0.4.0-devel3.tar.xz
# DOWNLOAD with wget
wget https://github.com/akinomyoga/ble.sh/releases/download/v0.4.0-devel3/ble-0.4.0-devel3.tar.xz
# DOWNLOAD with curl
curl -LO https://github.com/akinomyoga/ble.sh/releases/download/v0.4.0-devel3/ble-0.4.0-devel3.tar.xzTrial & Install
# TRIAL
tar xJf ble-0.4.0-devel3.tar.xz
source ble-0.4.0-devel3/ble.sh
# INSTALL (quick)
tar xJf ble-0.4.0-devel3.tar.xz -C ~/.local/share/blesh
echo 'source ~/.local/share/blesh' >> ~/.bashrc
# INSTALL (more robust)
tar xJf ble-0.4.0-devel3.tar.xz -C ~/.local/share/blesh
# Add the following line near the top of ~/.bashrc
[[ $- == *i* ]] && source ~/.local/share/blesh/ble.sh --attach=none
# Add the following line at the end of ~/.bashrc
[[ ${BLE_VERSION-} ]] && ble-attachNew features
- decode (
ble-decode-kbd): support various specifications of key sequences#D14390f01cab - edit: support new options
bleopt edit_line_type={logical,graphical}(motivated by 3ximus)#D144240ae242 - complete: support new options
bleopt complete_limit{,_auto}(contributed by timjrd)#D1445b13f114 5504bbc - edit (kill/copy): combine multiple kills and copies (suggested by 3ximus)
#D144366564e1- edit (
{kill,copy}-region-or): fix unconditionally combined kills/copies (reported by 3ximus)#D14471631751
- edit (
- canvas: update emoji database and support
bleopt emoji_version(motivated by endorfina)#D1454d1f8c27- emoji: unify emoji tables of different versions
#D1671af82662
- emoji: unify emoji tables of different versions
- canvas, edit: support
bleopt info_display(suggested by 0neGuyDev)#D145869228fa - prompt: support
bleopt prompt_status_{line,align}andface prompt_status_line#D1462cca1cbc - syntax: properly support case patterns
#D1474#D1475#D147664b55b7 - keymap/vi: add
ble/keymap:vi/script/get-modefor user-defined mode strings#D1488f25a6e8 462918d - prompt: support multiline
prompt_rps1#D15024fa139a - syntax: support tilde expansions in parameter expansions
#D15130506df2 - decode: support
ble-bind -m KEYMAP --cursor DECSCUSR(motivated by jmederosalvarado)#D1514#D1515#D151679d671d- decode: reflect changes after
ble-bind --cursor#D187339efcf9
- decode: reflect changes after
- edit: support
nsearchoptions (motivated by Alyetama, rashil2000, carv-silva)#D15179125795 - syntax: support the deprecated redirection
>& file#D1539b9b0de4 - complete: complete file descriptors and heredoc words after redirections
#D1539b9b0de4 - main: support
blehook ATTACH DETACH,BLE_ONLOAD,BLE_ATTACHED#D1543750ca38 - main: support
ble#D1544750ca38 - main (
ble-update): support package updates andsudoupdates (motivated by huresche, oc1024)#D15480bc2660- main (
ble-update): fix help message (contributed by NoahGorny) 50288bf
- main (
- syntax: support undocumented
${a~}and${a~~}#D15614df29a6 - lib: support
lib/vim-airline(motivated by huresche)#D1565da1d0ff- util (
ble/gdict): refactor#D15697732eed - vim-airline: support
bleopt vim_airline_theme#D158973b037f - prompt: track dependencies and detect changes
#D1590#D1591cf8d949 - prompt: preserve
LINESandCOLUMNSfor custom sequences#D1592040016d - color: fix the face initialiation order for uses in prompts (motivated by jmederosalvarado)
#D1593321371f - prompt (
contrib/prompt-git): support dirty checking#D1601b2713d9 - prompt (
contrib/prompt-git): do not useble/util/idlein Bash 3#D1606959cf27 - util (
bleopt): add new option-Ito reinitialize user settings on reload#D1607959cf27 - vi (vi_cmap): fix wrong prompt calculations by the outdated initial values
#D16532710b23 - vim-airline: measure separator widths and fix layout of status line
#D19991ce0d1a 478c9a1
- util (
- util, color: refactor configuration interfaces (
bleopt,blehook,ble-face)#D1568c94d292- color: support new face setting function
ble-face - util (
bleopt): support option-rand-uand wildcards in option names - util (
blehook): hide internal hooks by default and support option-a - util, color: fix argument analysis of
bleopt,blehook, andble-face(fixup c94d292)#D1571bb53271 - util (
blehook): show explicitly specified internal hooks#D1594f4312df - util (
bleopt): do no select obsoleted options by wildcards#D1595f4312df - util (
bleopt): fix error messages for unknown options#D161066df3e2 - util (
bleopt,bind): fix error message and exit status, respectively#D1640b663cee - util (
blehook): support wildcards#D1861480b7b3
- color: support new face setting function
- progcomp: support quoted commands and better
progcomp_alias#D1581#D1583dbe87c3- progcomp: fix a bug that command names may stray into completer function names
#D16111f2d45f
- progcomp: fix a bug that command names may stray into completer function names
- syntax: highlight quotes of the
\?form#D15845076a03- syntax: recognize escape " in double-quoted strings
#D16414b71449
- syntax: recognize escape " in double-quoted strings
- prompt: support a new backslash sequence
\g{...}#D1609be31391 - complete: add a new option
bleopt complete_limit_auto_menu#D16181829d80 - canvas: support grapheme clusters (motivated by huresche)
#D1619c0d997b- canvas (
ble/util/c2w): useEastAsianWidthandGeneralCategoryto mimicwcwidth#D16459a132b7 - canvas (c2w:auto): work around combining chars applied to the previous line
#D16491cbbecb - canvas (c2w:auto): avoid duplicate requests
#D16491cbbecb a3047f5 - canvas (c2w:auto): send DSR(6) in the internal state
#D1664a3047f5 - canvas (c2w): support
bleopt char_width_mode=musl#D166805b258f#D1672af82662 - canvas (c2w:auto): detect
emacsandmusl#D166805b258f
- canvas (
- rlfunc: support vi word operations in
emacskeymap (requested by SolarAquarion)#D162421d636a - edit: support
TMOUTfor the session timeout#D16310e16dbd - edit: support bash-5.2
READLINE_ARGUMENT#D1638d347fb3 - complete: support
complete [-DI]in old versions of Bash through_DefaultCmD_and_InitialWorD_#D1639925b2cd - rlfunc: support nsearch widgets in
vi_nmapkeymap (requested by cornfeedhobo)#D16519a7c8b1 - prompt: support
bleopt prompt_ruler(motivated by Barbarossa93)#D166605cf638- prompt: fix hanging by a zero-width
prompt_ruler#D16739033f29
- prompt: fix hanging by a zero-width
- edit: support
bleopt canvas_winch_action(requested by Johann-Goncalves-Pereira, guptapriyanshu7)#D16792243e91 - menu (menu-style:desc): improve descriptions (motivated by Shahabaz-Bagwan)
#D16854de1b45 - menu (menu-style:desc): support multicolumns (motivated by Shahabaz-Bagwan)
#D1686231dc39- menu (menu-style:desc): fix not working
bleopt menu_desc_multicolumn_width=#D17272140d1e
- menu (menu-style:desc): fix not working
- term: let DECSCUSR pass through terminal multiplexers (motivated by cmplstofB)
#D1697a3349e4- util: refactor
_ble_term_TERM#D174663fba6b
- util: refactor
- complete: requote for more compact representations on full completions
#D1700a1859b6- complete (requote): requote from optarg/rhs starting point
#D178693c2786
- complete (requote): requote from optarg/rhs starting point
- complete: improve support for
declareand[[ ... ]]#D1701da38404 - complete (menu-style:align): refactor
complete_menu_align => menu_align_{min,max}(motivated by banoris)#D171722a2449 - prompt: support
bleopt prompt_command_changes_layout#D1750e199bee - exec: measure execution times
#D17562b28bec - util: preserve original traps and restore them on unload
#D1775#D1776#D1777398e404- util (trap): fix a bug of restoring original traps
#D18508d918b6
- util (trap): fix a bug of restoring original traps
- progcomp: support
compopt -o ble/no-defaultto suppress default completions#D17897b70a0e - sabbrev: support options
-rand--resetto remove entries#D179029b8be3 - util (blehook): support
hook!=handlerandhook+-=handler#D17910b8c097 - prompt: escape control characters in
\wand\W#D17988940434 a9551e5 - emacs: support
bleopt keymap_emacs_mode_string_multiline(motivated by ArianaAsl)#D18188e9d273 - util: synchronize rlvars with
bleopt complete_{menu_color{,_match},skip_matched} term_bracketed_paste_mode(motivated by ArianaAsl)#D18196d20f51- util: suppress false warnings of
bindinside non-interactive shells (reported by wukuan405)#D18231e19a67
- util: suppress false warnings of
- history: support
bleopt history_erasedups_limit(motivated by SuperSandro2000)#D1822e4afb5a 3110967 - prompt: support
bleopt prompt_{emacs,vi}_mode_indicator(motivated by ferdinandyb)#D18432b905f8 - util (
ble-import): support option-q#D18591ca87a9 - history: support extension
HISTCONTROL=strip(motivated by aiotter)#D1874021e033 - benchmark (ble-measure): support an option
-V#D1881571ecec - color: allow setting color filter by
_ble_color_color2sgr_filter#D190288e74cc - auto-complete: add
bleopt complete_auto_complete_opts(motivated by DUOLabs333)#D1901#D19111478a04 6a21ebb - menu-complete: add
bleopt complete_menu_complete_opts(requested by DUOLabs333)#D19116a21ebb - edit (
magic-space): supportbleopt edit_magic_expand=...:alias(requested by telometto)#D191263da2ac- auto-complete: cancel auto-complete for
magic-space#D191301b4f67
- auto-complete: cancel auto-complete for
- complete: support ambiguous completion for command paths
#D19228a716ad - complete: preserve original path segments as long as possible
#D1923#D1924e3cdb9d - main: support
BLE_SESSION_IDandBLE_COMMAND_ID#D192544d9e10#D194746ac426#D1954651c70c - main: support an option
--inputrc={diff,all,user,none}#D192692f2006 - util (
ble/builtin/trap): support Bash 5.2trap -P#D1937826a275 - syntax: highlight
\?in here documents#D1959e619e73 - syntax: recognize history expansion in here documents,
"...!"(bash <= 4.2), and$!(bash <= 4.1)#D1959e619e73 - syntax: support context after
((...))and[[ ... ]]in bash-5.2#D196267cb967 - edit: support the readline variable
search-ignore-caseof bash-5.3#D1976e3ad110 - menu-complete: add
insert_uniqueoption to thecompletewidget#D199536efbb7 - syntax: check alias expansions of
coprocvariable names#D199692ce433 - syntax: support new parameter transformation
"${arr@k}"#D19981dd7e38 - edit: support a user command
ble append-line(requested by mozirilla213)#D20012a524f3 - decode: accept isolated ESC <char> (requested by mozirilla213)
#D2004d721049 - sabbrev: add widget
magic-slashto approximate Zsh named directories (motivated by mozirilla213)#D2008e6b9581 - sabbrev: support inline and linewise sabbre with
ble-sabbrev -il#D20125620853 - complete: add
bleopt complete_source_sabbrev_{opts,ignore}(motivated by mozirilla213)#D2013f95eb0c#D201645c7674 - util.bgproc: separate
ble/util/bgprocfromhistdb(motivated by bkerin)#D20177803305 - menu-complete: support selection by index (requested by bkerin)
#D2023b91b8bc
Changes
- syntax: exclude
\ + LFat the word beginning from words (motivated by cmplstofB)#D143167e62d6 - complete: do not quote
:and=in non-filename completions generated by progcomp (reported by 3ximus)#D1434d82535e - edit: preserve the state of
READLINE_{LINE,POINT,MARK}#D14378379d4a - edit: change default behavior of C-w and M-w to operate on backward words
#D144847a3301 - prompt: rename
bleopt prompt_{status_line => term_status}#D1462cca1cbc - edit (
ble/builtin/read): cancel by C-d on an empty line#D1473ecb8888 - syntax: change syntax context after
time ;and! ;for Bash 4.4#D14774628370 - decode (rlfunc): update mapping
vi-replaceinimapandvi-editing-modeinnmap(reported by onelittlehope)#D1484f2ca811 - prompt: invalidate prompt and textarea on prompt setting changes
#D14921f55913 - README: update informations on stable versions
#D1509c8e658e - README: update the description of how to uninstall
#D1510c8e658e - util (
bleopt): validate initial user settings#D151182c5ece - main: preserve user-space overridden builtins
#D15190860be0 - main: accept non-regular files as
blercand add option--norc#D15307244e2f - prompt: let
stderrpass through to tty in evaluatingPS0(reported by tycho-kirchner)#D154124a88ce - prompt: adjust behavior of
LINENOand prompt sequence\#(reported by tycho-kirchner)#D15428b0257e- prompt: update
PS0between multiple commands (motivated by tycho-kirchner)#D15608f29203
- prompt: update
- edit (
widget:display-shell-version): includeble.shversion#D1545750ca38- edit (
display-shell-version): detect configurations and print details#D17815015cb5 - edit (
display-shell-version): show information of the OS distribution and properly handle saved locales#D1854066ec63 bdb7dd6 - edit (
display-shell-version): showgawk,make, andgitversions of the build time#D1892e618133 - edit (
display-shell-version): support running as a user command (reported by DhruvaG2000)#D1893e618133 - edit (
display-shell-version): show warnings for fzf-integration#D19073bc3bea - edit (
display-shell-version): show thezoxideversion#D19073bc3bea
- edit (
- complete (
ble-sabbrev): support colored output#D1546750ca38 - decode (
ble-bind): support colored output#D1547750ca38 - keymap/vi: update mode names on change of
bleopt keymap_vi_mode_name_*(motivated by huresche)#D156511ac106 - main: show notifications against debug versions of Bash
#D16128f974aa - term: terminal identification
- edit: suppress only
stderrwithinternal_suppress_bash_output(motivated by rashil2000)#D1646a30887f - prompt: do not evaluate
PROMPT_COMMANDfor subprompts#D165408e903e - Makefile: work around the case the repository is cloned without
--recursive#D165522ace5f - repo: add subdirectories
makeanddocs#D165775bd04c - util: time out CPR requests
#D16691481d48 - main: suppress non-interactive warnings from manually sourced startup files (reported by andreclerigo)
#D16760525528 88e2df5 - mandb: integrate
mandbwithbash-completion(motivated by Shahabaz-Bagwan, bbyfacekiller and EmilySeville7cfg)#D1688c1cd666 - syntax: do not start argument completions immediately after previous word (reported by EmilySeville7cfg)
#D1690371a5a4 - syntax: strictly check variable names of
for-statements#D1692d056547 - widget
self-insert: untranslate control chars and insert the last character#D16965ff3021 - complete (
source:command): exclude inactive aliases#D1715d6242a7 - complete (
source:command): not quote aliases and keywords#D1715d6242a7 - highlight (
wtype=CTX_CMDI): check alias names before shell expansions#D1715d6242a7 - edit (
history_share): update history ondiscard-line(reported by SuperSandro2000)#D17428dbefe0 - canvas: do not insert explicit newlines on line folding if possible (reported by banoris)
#D174502b9da6 dc3827b- edit: fix layout with
prompt_rps1caused by missingopts=relativeforble/textmap#update#D1769f6af802
- edit: fix layout with
- edit (
ble-bind -x): preserve multiline prompts on execution ofbind -xcommands (requested by SuperSandro2000)#D17557d05a28 - util (
ble/util/buffer): hide cursor in rendering#D1758e332dc5 - complete (
action:file): always suffix/to complete symlinked directory names (reported by SuperSandro2000)#D1759397ac1f - edit (command-help): show source files for functions
#D17797683ab9 - edit (
ble/builtin/exit): defer exit in trap handlers (motivated by SuperSandro2000)#D1782f62fc04 6fdabf3 - complete (
source:command/get-desc): show function location and body#D1788496e798 - edit (
ble-detach): prepend a space tostty saneforHISTIGNORE=' *'#D179626b532e - decode (
bind): do not treat non-beginning#as comments#D182065c4138 - history: disable the history file when
HISTFILEis empty#D18369549e83 - complete: generate options by empty-word copmletion after filenames (reported by geekscrapy)
#D18466954b13- complete: do not show option descriptions for the empty-word completion (requested by geekscrapy)
#D18461c7f7a1
- complete: do not show option descriptions for the empty-word completion (requested by geekscrapy)
- syntax (
extract-command): extract unexpected command names as commands#D18485b63459 - main (
ble-reload): preserve the original initialization options#D1852d8c92cc - main (
ble-reload): fix a bug that the default rcfile is not loaded#D191485b5828 - blehook: print reusable code to restore the user hooks
#D1857b763677 - util (
ble/builtin/trap): refactor- trap,blehook: rename
ERR{ => EXEC}and separate from theERRtrap#D185894d1371 - trap: remove the support for the shell function
TRAPERR#D185894d1371 - trap: preserve
BASH_COMMANDin trap handlers#D185894d1371 - util (
ble/builtin/trap): run EXIT trap in subshells#D18625b351e8 - util (
ble/builtin/trap): fix the RETURN trap#D1863793dfad - trap,blehook: move to a new file
util.hook.sh#D186455a182b - trap (
trap -p): fix unprinted existing user traps#D186455a182b - trap (
ble/builtin/trap/finalize): fix a failure of restoring the original trap#D186455a182b - trap (
trap -p): print also custom traps#D186455a182b - trap: preserve positional parameters for user trap handlers
#D18659e2963c - trap: suppress
INTprocessing with user traps#D18665c28387 - trap: unify handling of
DEBUGand the other traps#D1867a22c25b - trap: work around possible interferences by recursive traps
#D1867a22c25b - trap: ignore
RETURNforble/builtin/trap/.handler#D1867a22c25b - trap: fix a bug that
DEBUGfor internal commands clears$?#D1867a22c25b - trap: use
ble/util/assign/.mktmpto read theDEBUGtrap#D19101de9a1e
- trap,blehook: rename
- progcomp: reproduce arguments of completion functions passed by Bash
#D18724d2dd35 - prompt: preserve transient prompt with
same-dirafterclear-screen#D187669013d9 - color: let
bleopt term_index_colorsoverride the default if specified#D18787d238c0 - canvas: update Unicode version 15.0.0
#D188049e55f4 - decode (
vi_imap-rlfunc.txt): update the widget forbackward-kill-wordaskill-backward-{u => c}word#D1896e19b796 - color: rearrange color table by
ble palette(suggested by stackoverflow/caoanan)#D1961bb8541d - util (
ble/util/idle): process events before idle sleep#D1980559d64b - keymap/vi (
decompose-meta): translate S-a to A#D1988600e845 - sabbrev: apply sabbrev to right-hand sides of variable assignments
#D200641faa49 - complete (
source:argument): fallback to rhs completion also forname+=rhs#D200641faa49 - auto-complete: limit the line length for auto-complete
#D20095bfbd6f - complete (
source:argument): generate sabbrev completions after normal completions (motivated by mozirilla213)#D2011a6f168d - complete (
source:option): carve outble/complete/source:option/generate-for-command(requested by mozirilla213)#D201454ace59
Fixes
- term: fix a bug that VTE based terminals are not recognized
#D14277e16d9d - complete: fix a problem that candidates are not updated after menu-filter (reported by 3ximus)
#D142898fbc1c - complete/mandb-related fixes
- mandb: support mandb in FreeBSD
#D14326c54f79 - mandb: fix BS contamination used by nroff to represent bold (reported by rlnore)
#D1429b5c875a - mandb: fix an encoding prpblem of utf8 manuals
#D14467a4a480 - mandb: improve extraction and cache for each locale
#D14803588158 - mandb: fix an infinite loop by a leak variable (reported by rlanore, riblo)
#D15500efcb65 - mandb: work around old groff in macOS (reported by killermoehre)
#D1551d4f816b - mandb: use
manpathandman -w, and read/etc/man_db.confand~/.manpath#D16372365e09 - mandb: support the formats of the man pages of
awkandsed(reported by bbyfacekiller)#D16876932018 - mandb: generate completions of options also for the empty word
#D1689b90ac78 - mandb: support the man-page formats of
wget,fish, andping(reported by bbyfacekiller)#D1687a79280e - mandb: carry optarg for e.g.
-a, --accept=LIST#D168723d5657 - mandb: parse
--helpfor specified commands#D1693e1ad2f1 - mandb: fix small issues of man-page analysis
#D1708caa77bc - mandb: insert a comma in brace expansions instead of a space
#D17190ac7f03 - mandb: support man-page format of
rsync#D17337900144 - mandb: fix a bug that the description is inserted for
--no-OPTION#D176188614b8 - mandb: fix a bug that the man page is not correctly searched (fixup 2365e09)
#D179465ffe70 - mandb: support the man-page formats of
man lsin coreutils/Japanese and in macOS#D1847fa32829 - mandb: include short name in the longname description
#D187960b6989
- mandb: support mandb in FreeBSD
- edit: work around the wrong job information of Bash in trap handlers (reported by 3ximus)
#D1435#D1436bc4735e - edit (command-help): work around the Bash bug that tempenv vanishes with
builtin eval#D14388379d4a - global: suppress missing locale errors (reported by 3ximus)
#D14404d3c595 - edit (sword): fix definition of
sword(shell words)#D1441f923388 - edit (
kill-forward-logical-line): fix a bug not deleting newline at the end of the line#D144309cf7f1 - util (
ble/util/msleep): fix hang in Cygwin by swithing from/dev/udp/0.0.0.0/80to/dev/zero#D1452d4d718a- util (
ble/util/msleep): work around the bash-4.3 bug ofread -t(reported by 3ximus)#D1468#D14694ca9b2e
- util (
- syntax: fix broken AST with
[[keyword#D145469658ef - benchmark (
ble-measure): work around a locale-dependent decimal point ofEPOCHREALTIME(reported by 3ximus)#D14601aa471b - global: work around bash-4.2 bug of
declare -gA(reported by 0xC0ncord)#D14708856a04 - bind: work around broken
cmd_xmapafter switching the editing mode#D14788d354c1- decode (
encoding:C): fix initialization for isolated ESC#D1839c3bba5b
- decode (
- edit: clear graphic rendition on newlines and external commands
#D147918bb2d5 - decode (rlfunc): work around incomplete bytes in keyseq (reported by onelittlehope)
#D14833559658 beb0383 37363be - main: fix a bug that unset
IFSis not correctly restored#D1489808f6f7 - canvas: fix a glitch that SGR at the end of command line is applied to new lines
#D14984bdfdbf - syntax: fix a bug that
eval() { :; },declare() { :; }are not treated as function definition#D1529b429095 - decode: fix a hang on attach failure by cache corruption
#D153124ea379 - edit, etc: add workarounds for
localvar_inherit#D15327b63c60- edit: fix a bug that
command-helpdoesn't work#D16350f6a083
- edit: fix a bug that
- progcomp: fix non-working
complete -C prog(reported by Archehandoro)#D1535026432d - bind: fix a problem that
bind '"seq":"key"'causes a loop macrobind -s key key(reported by thanosz)#D1536ea05fc5- bind: fix errors on readline macros (reported by RakibFiha)
#D1537c257299
- bind: fix errors on readline macros (reported by RakibFiha)
- main: work around sourcing
ble.shinside subshells#D1554bbc2a90 - main: work around
. ble.sh --{test,update,clear-cache}in intereactive sessions#D1555bbc2a90 - Makefile: create
rundirectory instead oftmp#D15579bdb37d - main: fix the workaround for
set -e#D1564ab2f70b - util: work around bash-3.0 bug
"${scal[@]/xxx}"#D157024f79da - sabbrev (
ble-sabbrev): fix delayed output before the initialization#D15735d85238 - history: fix the workaround for bash-3.0 bug of reducing histories
#D157615c9133 - syntax: fix a bug that argument completion is attempted in nested commands (reported by huresche)
#D1579301d40f - edit (brackated-paste): fix incomplete
CR => LFconversion (reported by alborotogarcia)#D15878d6da16 - main (adjust-bash-options): adjust
LC_COLLATE=C#D1588e87ac21 - highlight (
layer:region): fix blocked lower-layer changes without selection changes#D15965ede3c6 - complete (
auto-menu): fix sleep loops by clock/sclock difference#D159753dd018 - history: fix a bug that history data is cleared on
history -r#D160572c274e - util (
ble/string#quote-command): remove redundant trailing spaces for single word command#D161394556b4 - util: work around the Bash 3 bug of array assignments with
^Aand^?in Bash 3.2#D1614b9f7611 - benchmark (
ble-measure): fix a bug that the result is always 0 in Bash 3 and 4 (fixup bbc2a90)#D1615a034c91 - complete: fix a bug that the shopt settings are not restored correctly (reported by Lun4m)
#D1623899c114 - decode, canvas, etc.: explicitly treat CSI arguments as decimal numbers (reported by GorrillaRibs)
#D1625c6473b7 2ea48d7 - history: fix the vanishing history entry used for
ble-attach#D1629eb34061 - global: work around readonly
TMOUT(reported by farmerbobathan)#D163044e6ec1 - complete: fix a task scheduling bug of referencing two different clocks (reported by rashil2000)
#D1636fea5f5b - canvas: update prompt trace on
char_width_modechange (reported by Barbarossa93)#D164268ee111 - decode (
cmap/initialize): fix unquoted special chars in the cmap cache#D16477434d2d - decode: fix a bug that the characters input while initialization are delayed
#D1670430f449 - util (
ble/util/readfile): fix a bug of always exiting with 1 inbash <= 3.2(reported by laoshaw)#D167861705bf - trace: fix wrong positioning of the ellipses on overflow
#D1684b90ac78 - complete: do not generate keywords for quoted command names
#D169160d244f - menu (menu-style:align): fix the failure of delaying
ble/canvas/traceon items (motivated by banoris)#D1710acc9661 - complete: fix empty completions with
FIGNORE(reported by seanfarley)#D1711144ea5d - main: fix the message of owner errors of cache directories (reported by zim0369)
#D1712b547a41 - util (
ble/string#escape-for-bash-specialchars): fix escaping of TAB#D17137db3d2b - complete: fix failglob messages while progcomp for commands containing globchars
#D1716e26a3a8- complete: fix a bug that the default progcomp does not work properly
#D172201643fa
- complete: fix a bug that the default progcomp does not work properly
- highlight: fix a bug that arrays without the element
0is not highlighted#D1721b0a0b6f - util (visible-bell): erase visible-bell before running external commands
#D17230da0c1c- util(
ble/util/eval-pathname-expansion): fix restoring shopt options in bash-4.0#D1825736f4da
- util(
- util (
ble/function): work aroundshopt -u extglob#D1725952c388 - syntax: fix uninitialized syntax-highlighting in bash-3.2
#D1731e3f5bf7 - make: fix a bug that config update messages are removed on install
#D173672d968f - util: fix bugs in conversions from
'to\''#D17396d15782 - canvas: fix unupdated prompt on async wcwidth resolution
#D1740e14fa5d - progcomp: retry completions on
$? == 124also for non-default completions (reported by SuperSandro2000)#D175982b9c01 - app: work around data corruption by WINCH on intermediate state
#D17625065fda - util (
ble/util/import): work around filenames with bash special characters#D1763b27f758 - edit: fix the restore failure of
PS1andPROMPT_COMMANDonble-detach#D1784b9fdaab - complete: do not attempt an independent rhs completion for arguments (reported by rsteube)
#D1787f8bbe2c - history: fix the unsaved history in the detached state
#D1795344168e - edit: fix an unexpected leave from the command layout on
read#D18004dbf16f- edit: fix the command layout remaining after job information (reported by mozirilla213)
#D1991dcfb067
- edit: fix the command layout remaining after job information (reported by mozirilla213)
- history: work around possible dirty prefix
*in the history output#D180864a740d - decode (
ble-bind): fix the printed definition of-c/-xbindings#D182194de078 - command-help (
.read-man): add missingble/util/assign/.rmtmp#D1840937a164 - complete: fix wrong
COMP_POINTwithprogcomp_alias#D1841369f7c0 - main (
ble-update): fix error message with system-wide installation ofble.sh(fixed by tars0x9752) 1d2a9c1 a450775 - main. util: fix problems of readlink etc. found by test in macOS (reported by aiotter)
#D1849fa955c1#D1855a22e145 - progcomp: fix a bug that
COMP_WORDBREAKSis ignored#D18724d2dd35 - global: quote
return $?#D1884801d14a - canvas (
ble/canvas/trace): fix text justification for empty lines (reported by rashil2000)#D1894cdf74c2 - main: fix adjustments of bash options (reported by rashil2000)
#D1895138c476 - complete: suppress error messages for non-bash_completion
_parse_help(reported by nik312123)#D1900267de7f - prompt: fix the marker position for the readline variable
show-mode-in-prompt(reported by Strykar)#D190309bb4d3 - highlight: fix a bug that
bleopt filename_ls_colorsis not working (reported by qoreQyaS)#D1919b568ade - bind: fix M-C-@, C-x C-@, and M-C-x (
bash-4.2 -o emacs)#D1920a410b03 - complete (action:file): support
ble/syntax-rawin the filename extraction (reported by qoreQyaS)#D192132277da - decode: fix a bug that the tab completion do not work with bash-4.4 and lower
#D19287da9bce - complete: fix non-working ambiguous path completion with
..and.in the path#D1930632e90a - main (
ble-reload): fix failure by non-existent rcfile#D1931b7ae2fa - syntax (
ble/syntax/highlight/vartype): check variable in global scope#D1932b7026de - menu (linewise): fix layout calculation with variable width of line prefix (reported by bkerin)
#D1979cc852dc - edit (
ble/textarea#render): fix interleaving outputs to_ble_util_bufferandDRAW_BUFF#D19876d61388 - keymap/vi (
expand-range-for-linewise-operator): fix the end point being not extended#D1994bce2033 - keymap/vi (
operator:filter): do not append newline at the end of line#D1994bce2033 - highlight: fix shifted error marks after delayed
core-syntax#D2000f4145f1 - syntax: fix unrecognized variable assignment of the form
echo arr[i]+=rhs#D200741faa49 - menu (linewise): fix clipping of long line (reported by bkerin)
#D20254c6a477
Documentation
- blerc: add all the missing options
#D16670228d76 - blerc: add missing faces
argument_optionandcmdinfo_cd_cdpath(reported by Prikalel)#D167526aaf87 - README: describe how to invoke multiple widgets with a keybinding (motivated by michaelmob)
#D16996123551 - README: add links to
bash-itandoh-my-bash#D17244a2575f - README: mention the Guix package (motivated by kiasoc5)
#D18880f7c04b - blerc: add frequently used keybindings (motivated by KiaraGrouwstra, micimize)
#D1896#D1897e19b796 - wiki/Q&A: add item for defining a widget calling multiple widgets (motivated by micimize)
#D1898e19b796 - blerc: rename from
blerctoblerc.template#D1899e19b796 - README: add a link to the explanation on the "more reliable setup" of bashrc (motivated by telometto)
#D190509bb4d3 - README: describe
contrib/fzfintegration (reported by SuperSandro2000, tbagrel1)#D19073bc3bea b568ade - README: add links to Manual pages for kspec and
modifyOtherKeys#D1917fb7bd0b b568ade - README: explain the build process
#D1964#D196514ca1e5
Optimization
- syntax (
layer:syntax/word): perform pathname expansions in background subshells (motivated by 3ximus)#D144913e7bdd- syntax (
simple-word/is-simple-noglob): suppress error messages on expansions#D1461a56873f - syntax (
simple-word/eval): fix unperformed tilde expansions in the background (reported by 3ximus)#D14636ebec48 - syntax (
simple-word/eval): propagate timeouts in sync highlighting (reported by 3ximus)#D1465c2555e2 - edit: change the priority of
render-deferandmenu-filter#D1501aae553c
- syntax (
- complete: perform pathname expansions in subshells (motivated by 3ximus)
#D1450d511896 - complete: support
bleopt complete_timeout_compvarto time out pathname expansions forCOMP_WORDS/COMP_LINE#D1457cc2881a - complete (
ble/complete/source:file): remove slow old codes (reported by timjrd)#D1512e5be0c1 - syntax (
ble/syntax:bash/simple-word/eval): optimize large array passing (motivated by timjrd)#D1522c89aa23- syntax (
ble/syntax:bash/simple-word/eval): usemapfile -d ''for Bash 5.2#D160472c274e
- syntax (
- main: prefer
nawkovermawkandgawk#D1523#D1524c89aa23 - history: use
mapfile -d ''to load history in Bash 5.2#D160372c274e - prompt: use
${PS1@P}when the prompt contains only safe prompt sequences#D16178b5da08 - decode: cache
inputrctranslations#D1652994e2a5 - complete: use
awkfor batchquote-insert(motivated by banoris)#D1714a0b2ad2 92d9734- complete (quote-insert.batch): fix regex escaping in bracket expr of awk (reported by telometto)
#D17298039b77
- complete (quote-insert.batch): fix regex escaping in bracket expr of awk (reported by telometto)
- prompt: reduce redundant evaluation of
PROMPT_COMMANDon the startup#D1778042376b - main: run
ble/base/unloaddirectly at the end ofEXIThandler#D1797115baec - util: optimize
ble/util/writearray#D181696e9bf8 - history: optimize processing of
erasedups(motivated by SuperSandro2000)#D1817944d48e - debug: add
ble/debug/profiler(motivated by SuperSandro2000)#D1824f629698 11aa4ab 7bb10a7
Compatibility
- term: work around quirks of Solaris xpg4 awk
#D14816ca0b8c - term: support key sequences and control sequences of Solaris console
#D14816ca0b8c - term: work around Cygwin-console bug of bottom
IL/DL#D14825dce0b8 - term: work around leaked DA2R in screen from outside terminal
#D1485e130619 - complete: work around
fzfcompletion settings loaded automatically#D15084fc51ae - complete: work around
bash-completionbugs (reported by oc1024)#D15339d4ad56 - main: work around MSYS2 .inputrc (reported by n1kk)
#D15349e786ae - util (
modifyOtherKeys): work around a quirk of kitty (reported by NoahGorny)#D1549f599525- util (
modifyOtherKeys): update the workaround for a new quiark of kitty#D16273e4ecf5 - util (
modifyOtherKeys): use the kitty protocol for kitty 0.23+ which removes the support ofmodifyOtherKeys(reported by kovidgoyal)#D1681ec91574 - util (
modifyOtherKeys): set upmodifyOtherKeysonly afterDA2(reported by dongxi8)#D1885149eee9
- util (
- global: work around empty
vi_imapcache bytmux-resurrect#D1562560160b - decode: identify
kittyand treat\e[27uas isolated ESC (reported by lyiriyah)#D1585c2a84a2 - complete: suppress known error messages of
bash-completion(reported by oc1024, Lun4m)#D1622d117973 - decode: work around kitty keypad keys in modifyOtherKeys (reported by Nudin)
#D162627c80f9 - main: work around
set -Bandset -k#D1628a860769 - term: disable
modifyOtherKeysand do not sendDA2forst(requested by Shahabaz-Bagwan)#D163292c7b26 - cmap: add
st-specific escape sequences for cursor keys#D1633acfb879 - cmap: distinguish find/select from home/end for openSUSE
inputrc.keys(reported by cornfeedhobo)#D1648c4d28f4- cmap: freeze the internal codes of find/select and kitty special keys
#D1674fdfe62a
- cmap: freeze the internal codes of find/select and kitty special keys
- main: work around self-modifying
PROMPT_COMMANDbybash-preexec(reported by cornfeedhobo)#D165039ebf53- main: fix an infinite loop on
ble-reloadwith externally savedPROMPT_COMMAND(reported by tars0x9752)#D185153af663
- main: fix an infinite loop on
- decode: work around openSUSE broken
/etc/inputrc#D1662e5b0c86 - decode: work around the overwritten builtin
set(reported by eadmaster)#D1680a6b4e2c - complete: work around the variable leaks by
virshcompletion fromlibvirt(reported by telometto)#D1682f985b9a - stty: do not remove keydefs for C-u, C-v, C-w, and C-? (reported by laoshaw)
#D168382f74f0 - builtin: print usages of emulated builtins on option errors
#D16946f74021 - decode (
ble/builtin/bind): improve compatibility of the deprecated formbind key:rlfunc(motivated by cmplstofB)#D1698b6fc4f0 - complete: work around a false warning messages of gawk-4.0.2
#D17099771693 - main: work around
XDG_RUNTIME_DIRof a different user bysu(reported by zim0369)#D17128d37048 - main (
ble/util/readlink): work around non-standard or missingreadlink(motivated by peterzky)#D1720a41279e- util (
ble/function#pop): allow popping unset function#D1834c0abc95
- util (
- menu (
menu-style:desc): work around xenl quirks for relative cursor movements (reported by telometto)#D17283e136a6 - global: work around the arithmetic syntax error of
10#in Bash-5.1#D17347545ea3 - global: adjust implementations for Bash 5.2
patsub_replacement#D17384590997 - global (
ble/builtin/*): work aroundset -euin NixOS initialization (reported by SuperSandro2000)#D1743001c595 - util, edit, contrib: add support for
bash-preexec(motivated by SuperSandro2000)#D1744e85f52c- util (
ble/builtin/trap): fix resetting$?and$_(reported by SuperSandro2000)#D1757dfc6221 - util (
ble/builtin/trap): fix a failure of setting the trap-handler exit status (reported by SuperSandro2000)#D1771c513ed4 - edit (
TRAPDEBUG): partially restore$_afterDEBUGtrap (reported by aiotter)#D18530b95d5d
- util (
- main: check
IN_NIX_SHELLto inactivate ble.sh in nix-shell (suggested by SuperSandro2000)#D1747b4bd955- main: force prompt-attach inside the nix-shell
rc#D1766ceb2e7c
- main: force prompt-attach inside the nix-shell
- canvas: test the terminal for the sequence of clearing
DECSTBM#D17484b1601d - main: check
/dev/ttyon startup (reported by andychu)#D1749711c69f- main: fix the check of tty on stdin/stdout
#D183380f09c9
- main: fix the check of tty on stdin/stdout
- util: add identification of Windows Terminal
wt#D1758e332dc5 - complete: evaluate words for
noquote(motivated by SuperSandro2000)#D17670a42299 - edit (TRAPDEBUG): preserve original
DEBUGtrap and enabled it inPROMPT_COMMAND(motivated by ammarooo)#D1772#D1773ec2a67a- main, trap: fix initialization order of
{save,restore}-BASH_REMATCH(reported by SuperSandro2000)#D1780689534d
- main, trap: fix initialization order of
- global: work around bash-3.0 bug that single quotes remains for
"${v-$''}"#D17749b96578 - util: work around old
vtenot supportingDECSCUSRyet settingTERM=xterm(reported by dongxi8)#D178570277d0 - progcomp: work around the cobra V2 description hack (reported by SuperSandro2000)
#D180371d0736 - complete: work around blocking
_scp_remote_filesand_dnf(reported by iantra)#D1807a4a779e 46f5c13 - history: work around broken timestamps in
HISTFILE(reported by johnyaku)#D18315ef28eb - progcomp: disable
command_not_found_handle(reported by telometto, wisnoskij)#D183464d471a d5fe1d1 973ae8c - util (
modifyOtherKeys): work around delayed terminal identification#D184214f3c81- util (
modifyOtherKeys): fix a bug that kitty protocol is never activated#D184214f3c81
- util (
- util (
modifyOtherKeys): pass-through kitty protocol sequences (motivated by ferdinandyb)#D1845f66e0c1 - main: show warning for empty locale (movivated by Ultra980)
#D192792f2006 - main: never load
/etc/inputrcin openSUSE (motivated by Ultra980)#D192692f2006 0ceb0cb - canvas: refine detection of
bleopt char_width_mode=musl#D1929b0c16dd - term (
terminology): work around terminal glitches#D19469a1b4f9 - main (
ble/bin/awk): add workaround for macOSawk-32#D1974e2ec89c - util.hook: workaround bash-5.2 bug of nested read by
WINCH#D1981a5b10e8- main (
ble/base/adjust-builtin-wrappers): fix persistent tempenvIFS=in bash-5.0 (reported by pt12lol)#D20305baf6f6
- main (
- edit: always adjust the terminal states with
bind -x(reported by linwaytin)#D19835d14cf1- edit: restore
PS1while processingbind -x(reported by adoyle-h)#D20242eadcd5
- edit: restore
- syntax: suppress brace expansions in designated array initialization in Bash 5.3
#D19891e7b884 - progcomp: work around slow
nixcompletion#D19972c1aacf - complete: suppress error messages from
_adb(reported by mozirilla213)#D2005f2aa32b
Test
- github/workflows: add CI checks in macOS and msys2 (requested by aiotter)
##D1881c5ddacc- github/workflows (nightly): add check for macOS (contributed by aiotter)
#D18814cb0baa - github/workflows (nightly, test): interchange setup
#D18814cb0baa - github/workflows: add
test.yml#D1881824dc53 - fix for macOS tests
- fix for msys2 tests
- test: ensure a non-empty locale
#D1881c5d1b82 - test (ble/util/readlink): work around msys symlinks
#D1881c5d1b82 - test (ble/util/declare-print-definitions): skip array assignments involing CR in msys
#D1881c5d1b82 - test (ble/util/is-stdin-ready): skip test in the CI msys
#D1881c5d1b82 - main (bind): suppress non-interactive warning in msys
#D1881c5d1b82 - canvas (GraphemeClusterBreak): handle surrogate pairs for UCS-2
wchar_t#D188118bf121 - util (ble/encoding:UTF-8/b2c): fix interpretation of leading byte
#D18812e1a7c1 - util (ble/util/s2c): work around intermediate mbstate of bash <= 5.2
#D18812e1a7c1 - util (ble/util/s2bytes): clear locale cache
#D18812e1a7c1
- test: ensure a non-empty locale
- complete: fix syntax error for bash-3.0
#D18810b3e611 - github/workflows: work around grep-3.0 which crashes in windows-latest
#D1915fb7bd0b
- github/workflows (nightly): add check for macOS (contributed by aiotter)
- test (ble/util/writearray): use
ble/file#hashinstead ofsha256sum#D1882b76e21e - test (ble/util/readlink): work around external aliases
#D18900c6291f
Internal changes and fixes
- main: include hostname in local runtime directory
#D14446494836 - global: update the style of document comments ff4c4e7
- util: add function
ble/string#quote-words#D1451f03b87b - syntax (
ble/syntax:bash/simple-word/eval): cache#D14536d8311e- syntax (
simple-word/eval): supportopts=singlefor a better cache performance (motivated by 3ximus)#D146410caaa4
- syntax (
- global: refactor
setup => set up / set-up#D1456c37a9dd - global: clean up helps of user functions
#D145933c283e - benchmark (
ble-measure): support-T TIMEand-B TIMEoption#D14601aa471b - util, color (
bleopt,blehook,ble-color-setface): support--colorand fixsgr0contamination in non-color output#D146669248ff - global: fix status check for read timeout
#D1467e886883 - decode: move
{keymap/*. => lib/core-decode.*-}rlfunc.txtand clean up files#D1486f7323b4 - util, etc: ensure each function to work with arbitrary
IFS#D1490#D14915f9adfe - tui, canvas (
ble/canvas/trace): supportopts=clip#D149361ce90c - tui, edit: add a new render mode for full-screen applications 817889d
- test (
test-canvas): fix dependency onext/contra#D1525c89aa23 - util: inherit special file descriptors
#D155298835b5- util: fix a bug that old tty is used in new sessions
#D15860e55b8e
- util: fix a bug that old tty is used in new sessions
- global: use
_ble_term_IFS#D1557d23ad3c - global: work around
localvar_inheritfor varname-list init#D15665c2edfc - util: fix
ble/util/dense-array#fill-rangea46fdaf - util: fix leak variables
buff,trap,{x,y}{1,2}#D15725967d6c - util: fix leak variables
#D1643fcf634b - edit (
command-help): useble/util/assign/.mktmpto determine the temporary filename#D16631af0800 - make: update lint check
#D17097e26dcd - test: save the test log to a file
#D1735d8e6ea7 - benchmark: improve determination of the base time
#D1737ad866c1 - make: add fallback Makefile for BSD make
#D1805e5d8d00 - main: support
bleopt debug_xtrace(requested by SuperSandro2000)#D1810022d38b - test: clean up check failures by
make checkandmake scan#D1812bb3e0a3 - util (
fd#alloc): limit the search range of free fds#D181343be0e4 4c90072 - github/workflows: define an action for the nightly builds (contributed by uyha)
#D1814a3082a0 - global: quote numbers for unexpected
IFS#D18350179afc - history: refactor hooks
history_{{delete,clear,insert} => change}#D1860c393c93 - history: rename the hook
history_{on => }leave#D1860c393c93 - make: check necessary
.git#D18870f7c04b - benchmark (zsh): fix for
KSH_ARRAYS#D1886a144ffa 8cb9b84 - benchmark: support for ksh as
benchmark.ksh#D18865dae4da - github/workflows (build): rename directory in
ble-nightly.tar.xztoble-nightly(reported by Harduex)#D1891f20854f 4ea2e23 43c6d4b - edit: update prompts on g2sgr change
#D190640625ac - util, decode, vi: fix leak variables
#D19338d5cab8 - util: support
bleopt debug_idle#D1945fa10184 - global: work around bash-4.4 no-argument return in trap
#D1970eb4ffce - util: replace builtin
readonlywith a shell function (requested by mozirilla213)#D19858683c84 e4758db - global: avoid directly using
/dev/tty#D1986a835b83 - util: add
ble/util/message#D20012a524f3 - global: normalize bracket expressions to
_a-zA-Z/_a-zA-Z0-9#D200641faa49 - global: fix leak variables
#D20186f5604d - edit: handle nested WINCH properly
#D2020a6b2c07 - make: include the source filenames in the installed files (suggested by bkerin)
#D2027610fab3
Contrib
- prompt-git: detect staged changes
#D17182b48e31 - prompt-git: fix a bug that information is not updated on reload
#D1732361e9c5 - config/execmark: show exit status in a separate line
#D18284d24f84- config/execmark: add names of exit statuses
#D2019a6b2c07
- config/execmark: add names of exit statuses
- prompt-git: ignore untracked files in submodules
#D18294d24f84 - integration/fzf
- fzf-completion: fix integration (reported by ferdinandyb)
#D183712c022b - fzf-completion: remove
noquote(reported by MK-Alias)#D18890c6291f - fzf-initialize: check directory existence before adding it to
PATH(reported by Strykar)#D190409bb4d3 - fzf-key-bindings: fix a problem that
modifyOtherKeysis not reflected (reported by SuperSandro2000)#D1908486564a - fzf-completion: quote only with
filenameswhenble/syntax-rawis specified (reported by christianknauer)#D19788965b61
- fzf-completion: fix integration (reported by ferdinandyb)
- integration/zoxide
- README: update description on
_ble_contrib_fzf_base(reported by Strykar)#D190409bb4d3 - colorglass: add color filter
#D190288e74cc- colorglass: add
bleopt colorglass_{saturation,brightness}(motivated by auwsom)#D190640625ac
- colorglass: add
- add
histdb#D192544d9e10- histdb: support auto-complete source
histdb-word#D193800cae74 - histdb: automatically upgrade histdb version
#D19404fac1e3 - histdb: support auto-complete source
histdb-history#D19414fac1e3 - histdb: handle multiple exec lines for
histdb_ignore#D194236e1c89 - histdb: kill orphan
sqlite3processes#D194336e1c89 - histdb: back up the database
#D194436e1c89 - histdb: fix miscellaneous SQL query errors
#D194746ac426 - histdb: output error messages to tty
#D1952651c70c - histdb: fix remaining debug function name "assign{2 => }" in bash <= 3.2
#D1953651c70c - histdb: fix a problem that the background process fails to start in bash-3.0
#D1956651c70c - histdb: fix a bug that history search fails with a single quote in the commandline
#D1957651c70c - histdb: fix
histdb-wordcompletions in the middle of the commandline#D1968adaec05 - histdb: support
bleopt histdb_remarks#D1968adaec05 - histdb: support timeout of background processes
#D1971e0566bd - histdb: enable database timeout for transactions
#D1982a5b10e8 - histdb: fix
.timeoutnot set for backgroundsqlite3#D198220b42fa - histdb: suppress color codes in the default
histdb_remarks#D196820b42fa - histdb: disable timeout of background processes in Bash 3.2
#D199220b42fa - histdb: rewrite to use
ble/util/bgproc#D20177803305
- histdb: support auto-complete source
- integration: move
fzfandbash-preexecintegrations to subdir#D193986d9467