github akinomyoga/ble.sh v0.4.0-devel3
Devel 0.4.0-devel3

20 months ago

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.xz

Trial & 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-attach

New features

  • decode (ble-decode-kbd): support various specifications of key sequences #D1439 0f01cab
  • edit: support new options bleopt edit_line_type={logical,graphical} (motivated by 3ximus) #D1442 40ae242
  • complete: support new options bleopt complete_limit{,_auto} (contributed by timjrd) #D1445 b13f114 5504bbc
    • complete: update the default value of bleopt complete_limit{,auto} #D1500 aae553c
    • complete: inject user interruption and complete limits into bash-completion through read (motivated by timjrd) #D1504 856cec2 #D1507 4fc51ae
  • edit (kill/copy): combine multiple kills and copies (suggested by 3ximus) #D1443 66564e1
    • edit ({kill,copy}-region-or): fix unconditionally combined kills/copies (reported by 3ximus) #D1447 1631751
  • canvas: update emoji database and support bleopt emoji_version (motivated by endorfina) #D1454 d1f8c27
    • emoji: unify emoji tables of different versions #D1671 af82662
  • canvas, edit: support bleopt info_display (suggested by 0neGuyDev) #D1458 69228fa
    • canvas (panel): always call panel::render to update height #D1472 51d2c05
    • util (visible-bell): work around coordinate mismatches in subshells #D1495 01cfb10
    • canvas: work around kitty's quirk not recognizing DECSTBM (CSI ; r) #D1503 eca2976
  • prompt: support bleopt prompt_status_{line,align} and face prompt_status_line #D1462 cca1cbc
    • prompt: fix missing height allocation for status line #D1487 b424fa5
    • prompt: support bleopt prompt_status_align=justify #D1494 c30a0db
  • syntax: properly support case patterns #D1474 #D1475 #D1476 64b55b7
  • keymap/vi: add ble/keymap:vi/script/get-mode for user-defined mode strings #D1488 f25a6e8 462918d
  • prompt: support multiline prompt_rps1 #D1502 4fa139a
    • canvas: fix wrong coordinate calculation on linefolding (reported by telometto) #D1602 9badb5f
    • prompt: fix coordinates after prompt_rps1 #D1972 e128801
    • prompt: clear remaining SGR after prompt_rps1 (reported by linwaytin) #D2003 ea99d94
  • syntax: support tilde expansions in parameter expansions #D1513 0506df2
  • decode: support ble-bind -m KEYMAP --cursor DECSCUSR (motivated by jmederosalvarado) #D1514 #D1515 #D1516 79d671d
    • decode: reflect changes after ble-bind --cursor #D1873 39efcf9
  • edit: support nsearch options (motivated by Alyetama, rashil2000, carv-silva) #D1517 9125795
    • edit: support nsearch opts empty=emulate-readline (motivated by jainpratik163) #D1661 d68ba61
    • edit: support bash-5.2 binding of prior/next to history-search-{for,back}ward #D1661 d26a6e1
  • syntax: support the deprecated redirection >& file #D1539 b9b0de4
  • complete: complete file descriptors and heredoc words after redirections #D1539 b9b0de4
  • main: support blehook ATTACH DETACH, BLE_ONLOAD, BLE_ATTACHED #D1543 750ca38
  • main: support ble #D1544 750ca38
  • main (ble-update): support package updates and sudo updates (motivated by huresche, oc1024) #D1548 0bc2660
    • main (ble-update): fix help message (contributed by NoahGorny) 50288bf
  • syntax: support undocumented ${a~} and ${a~~} #D1561 4df29a6
  • lib: support lib/vim-airline (motivated by huresche) #D1565 da1d0ff
    • util (ble/gdict): refactor #D1569 7732eed
    • vim-airline: support bleopt vim_airline_theme #D1589 73b037f
    • prompt: track dependencies and detect changes #D1590 #D1591 cf8d949
    • prompt: preserve LINES and COLUMNS for custom sequences #D1592 040016d
    • color: fix the face initialiation order for uses in prompts (motivated by jmederosalvarado) #D1593 321371f
    • prompt (contrib/prompt-git): support dirty checking #D1601 b2713d9
    • prompt (contrib/prompt-git): do not use ble/util/idle in Bash 3 #D1606 959cf27
    • util (bleopt): add new option -I to reinitialize user settings on reload #D1607 959cf27
    • vi (vi_cmap): fix wrong prompt calculations by the outdated initial values #D1653 2710b23
    • vim-airline: measure separator widths and fix layout of status line #D1999 1ce0d1a 478c9a1
  • util, color: refactor configuration interfaces (bleopt, blehook, ble-face) #D1568 c94d292
    • color: support new face setting function ble-face
    • util (bleopt): support option -r and -u and wildcards in option names
    • util (blehook): hide internal hooks by default and support option -a
    • util, color: fix argument analysis of bleopt, blehook, and ble-face (fixup c94d292) #D1571 bb53271
    • util (blehook): show explicitly specified internal hooks #D1594 f4312df
    • util (bleopt): do no select obsoleted options by wildcards #D1595 f4312df
    • util (bleopt): fix error messages for unknown options #D1610 66df3e2
    • util (bleopt, bind): fix error message and exit status, respectively #D1640 b663cee
    • util (blehook): support wildcards #D1861 480b7b3
  • progcomp: support quoted commands and better progcomp_alias #D1581 #D1583 dbe87c3
    • progcomp: fix a bug that command names may stray into completer function names #D1611 1f2d45f
  • syntax: highlight quotes of the \? form #D1584 5076a03
    • syntax: recognize escape " in double-quoted strings #D1641 4b71449
  • prompt: support a new backslash sequence \g{...} #D1609 be31391
    • prompt: accept more general [TYPE:]SPEC in \g{...} like ble-face #D1963 81b3b0e
    • prompt: fix non-working 24-bit color in \g{...} #D1977 881ec25
  • complete: add a new option bleopt complete_limit_auto_menu #D1618 1829d80
  • canvas: support grapheme clusters (motivated by huresche) #D1619 c0d997b
    • canvas (ble/util/c2w): use EastAsianWidth and GeneralCategory to mimic wcwidth #D1645 9a132b7
    • canvas (c2w:auto): work around combining chars applied to the previous line #D1649 1cbbecb
    • canvas (c2w:auto): avoid duplicate requests #D1649 1cbbecb a3047f5
    • canvas (c2w:auto): send DSR(6) in the internal state #D1664 a3047f5
    • canvas (c2w): support bleopt char_width_mode=musl #D1668 05b258f #D1672 af82662
    • canvas (c2w:auto): detect emacs and musl #D1668 05b258f
  • rlfunc: support vi word operations in emacs keymap (requested by SolarAquarion) #D1624 21d636a
  • edit: support TMOUT for the session timeout #D1631 0e16dbd
  • edit: support bash-5.2 READLINE_ARGUMENT #D1638 d347fb3
  • complete: support complete [-DI] in old versions of Bash through _DefaultCmD_ and _InitialWorD_ #D1639 925b2cd
  • rlfunc: support nsearch widgets in vi_nmap keymap (requested by cornfeedhobo) #D1651 9a7c8b1
  • prompt: support bleopt prompt_ruler (motivated by Barbarossa93) #D1666 05cf638
    • prompt: fix hanging by a zero-width prompt_ruler #D1673 9033f29
  • edit: support bleopt canvas_winch_action (requested by Johann-Goncalves-Pereira, guptapriyanshu7) #D1679 2243e91
    • blerc: fix the name of the option bleopt canvas_winch_action (reported by Knusper) b1be640
    • edit: go back to the previous lines with redraw-here more aggressively #D1966 a125187
  • menu (menu-style:desc): improve descriptions (motivated by Shahabaz-Bagwan) #D1685 4de1b45
  • menu (menu-style:desc): support multicolumns (motivated by Shahabaz-Bagwan) #D1686 231dc39
    • menu (menu-style:desc): fix not working bleopt menu_desc_multicolumn_width= #D1727 2140d1e
  • term: let DECSCUSR pass through terminal multiplexers (motivated by cmplstofB) #D1697 a3349e4
    • util: refactor _ble_term_TERM #D1746 63fba6b
  • complete: requote for more compact representations on full completions #D1700 a1859b6
    • complete (requote): requote from optarg/rhs starting point #D1786 93c2786
  • complete: improve support for declare and [[ ... ]] #D1701 da38404
    • syntax: fix completion and highlighting of declare with assignment arguments #D1704 #D1705 e12bae4
    • cmdspec: refactor {mandb => cmdspec}_opts #D1706 #D1707 0786e92
  • complete (menu-style:align): refactor complete_menu_align => menu_align_{min,max} (motivated by banoris) #D1717 22a2449
  • prompt: support bleopt prompt_command_changes_layout #D1750 e199bee
  • exec: measure execution times #D1756 2b28bec
    • edit: work around a bash-4.4..5.1 bug of exit outputting time to stderr of exit context #D1765 3de751e e61dbaa
    • edit (exec_elapsed_mark): show hours and days #D1793 699dabb
  • util: preserve original traps and restore them on unload #D1775 #D1776 #D1777 398e404
    • util (trap): fix a bug of restoring original traps #D1850 8d918b6
  • progcomp: support compopt -o ble/no-default to suppress default completions #D1789 7b70a0e
  • sabbrev: support options -r and --reset to remove entries #D1790 29b8be3
  • util (blehook): support hook!=handler and hook+-=handler #D1791 0b8c097
  • prompt: escape control characters in \w and \W #D1798 8940434 a9551e5
    • prompt: fix wrongly escaped UTF-8 chars in \w and \W #D1806 d340233
    • prompt: fix a bug that \u is expanded to the shell name #D1975 fe339c3
  • emacs: support bleopt keymap_emacs_mode_string_multiline (motivated by ArianaAsl) #D1818 8e9d273
  • util: synchronize rlvars with bleopt complete_{menu_color{,_match},skip_matched} term_bracketed_paste_mode (motivated by ArianaAsl) #D1819 6d20f51
    • util: suppress false warnings of bind inside non-interactive shells (reported by wukuan405) #D1823 1e19a67
  • history: support bleopt history_erasedups_limit (motivated by SuperSandro2000) #D1822 e4afb5a 3110967
  • prompt: support bleopt prompt_{emacs,vi}_mode_indicator (motivated by ferdinandyb) #D1843 2b905f8
  • util (ble-import): support option -q #D1859 1ca87a9
  • history: support extension HISTCONTROL=strip (motivated by aiotter) #D1874 021e033
  • benchmark (ble-measure): support an option -V #D1881 571ecec
  • color: allow setting color filter by _ble_color_color2sgr_filter #D1902 88e74cc
  • auto-complete: add bleopt complete_auto_complete_opts (motivated by DUOLabs333) #D1901 #D1911 1478a04 6a21ebb
  • menu-complete: add bleopt complete_menu_complete_opts (requested by DUOLabs333) #D1911 6a21ebb
  • edit (magic-space): support bleopt edit_magic_expand=...:alias (requested by telometto) #D1912 63da2ac
    • auto-complete: cancel auto-complete for magic-space #D1913 01b4f67
  • complete: support ambiguous completion for command paths #D1922 8a716ad
  • complete: preserve original path segments as long as possible #D1923 #D1924 e3cdb9d
  • main: support BLE_SESSION_ID and BLE_COMMAND_ID #D1925 44d9e10 #D1947 46ac426 #D1954 651c70c
  • main: support an option --inputrc={diff,all,user,none} #D1926 92f2006
  • util (ble/builtin/trap): support Bash 5.2 trap -P #D1937 826a275
  • syntax: highlight \? in here documents #D1959 e619e73
  • syntax: recognize history expansion in here documents, "...!" (bash <= 4.2), and $! (bash <= 4.1) #D1959 e619e73
  • syntax: support context after ((...)) and [[ ... ]] in bash-5.2 #D1962 67cb967
  • edit: support the readline variable search-ignore-case of bash-5.3 #D1976 e3ad110
  • menu-complete: add insert_unique option to the complete widget #D1995 36efbb7
  • syntax: check alias expansions of coproc variable names #D1996 92ce433
  • syntax: support new parameter transformation "${arr@k}" #D1998 1dd7e38
  • edit: support a user command ble append-line (requested by mozirilla213) #D2001 2a524f3
  • decode: accept isolated ESC <char> (requested by mozirilla213) #D2004 d721049
  • sabbrev: add widget magic-slash to approximate Zsh named directories (motivated by mozirilla213) #D2008 e6b9581
  • sabbrev: support inline and linewise sabbre with ble-sabbrev -il #D2012 5620853
  • complete: add bleopt complete_source_sabbrev_{opts,ignore} (motivated by mozirilla213) #D2013 f95eb0c #D2016 45c7674
  • util.bgproc: separate ble/util/bgproc from histdb (motivated by bkerin) #D2017 7803305
    • util.bgproc: fix use of ble/util/idle in bash-3 #D2026 79a6bd4
    • util.bgproc: increase frequency of bgproc termination check (motivated by bkerin) #D2027 8d623c1
    • util.bgproc: fix an fd#alloc failure in bash-4.2 #D2029 7c4ff7b
  • menu-complete: support selection by index (requested by bkerin) #D2023 b91b8bc

Changes

  • syntax: exclude \ + LF at the word beginning from words (motivated by cmplstofB) #D1431 67e62d6
  • complete: do not quote : and = in non-filename completions generated by progcomp (reported by 3ximus) #D1434 d82535e
  • edit: preserve the state of READLINE_{LINE,POINT,MARK} #D1437 8379d4a
  • edit: change default behavior of C-w and M-w to operate on backward words #D1448 47a3301
  • prompt: rename bleopt prompt_{status_line => term_status} #D1462 cca1cbc
  • edit (ble/builtin/read): cancel by C-d on an empty line #D1473 ecb8888
  • syntax: change syntax context after time ; and ! ; for Bash 4.4 #D1477 4628370
  • decode (rlfunc): update mapping vi-replace in imap and vi-editing-mode in nmap (reported by onelittlehope) #D1484 f2ca811
  • prompt: invalidate prompt and textarea on prompt setting changes #D1492 1f55913
  • README: update informations on stable versions #D1509 c8e658e
  • README: update the description of how to uninstall #D1510 c8e658e
  • util (bleopt): validate initial user settings #D1511 82c5ece
    • util (bleopt): fix a bug that old values are double-expanded on init (fixup 82c5ece) #D1521 f795c07
    • util (bleopt): do not validate obsoleted initial settings #D1527 032f6b2
  • main: preserve user-space overridden builtins #D1519 0860be0
    • util (ble/util/type): fix a bug that aliases are not properly highlighted (reported by 3ximus) #D1526 45b30a7
    • main: preserve user's expand_aliases and allow aliases in internal space (fixup 0860be0) #D1574 afc4112
    • main: main: fix expand_aliases unset on ble-reload (fixup afc4112) #D1577 3417388
  • main: accept non-regular files as blerc and add option --norc #D1530 7244e2f
  • prompt: let stderr pass through to tty in evaluating PS0 (reported by tycho-kirchner) #D1541 24a88ce
  • prompt: adjust behavior of LINENO and prompt sequence \# (reported by tycho-kirchner) #D1542 8b0257e
    • prompt: update PS0 between multiple commands (motivated by tycho-kirchner) #D1560 8f29203
  • edit (widget:display-shell-version): include ble.sh version #D1545 750ca38
    • edit (display-shell-version): detect configurations and print details #D1781 5015cb5
    • edit (display-shell-version): show information of the OS distribution and properly handle saved locales #D1854 066ec63 bdb7dd6
    • edit (display-shell-version): show gawk, make, and git versions of the build time #D1892 e618133
    • edit (display-shell-version): support running as a user command (reported by DhruvaG2000) #D1893 e618133
    • edit (display-shell-version): show warnings for fzf-integration #D1907 3bc3bea
    • edit (display-shell-version): show the zoxide version #D1907 3bc3bea
  • complete (ble-sabbrev): support colored output #D1546 750ca38
  • decode (ble-bind): support colored output #D1547 750ca38
    • decode (ble-bind): output bindings of the specified keymaps with ble-bind -m KEYMAP (fixup 750ca38) #D1559 6e0245a
  • keymap/vi: update mode names on change of bleopt keymap_vi_mode_name_* (motivated by huresche) #D1565 11ac106
  • main: show notifications against debug versions of Bash #D1612 8f974aa
  • term: terminal identification
    • term (_ble_term_TERM): update vte identification #D1620 00e74d8
    • term (_ble_term_TERM): detect wezterm-20220408 #D1909 486564a
    • term (_ble_term_TERM): detect konsole #D1988 600e845 ed53858
  • edit: suppress only stderr with internal_suppress_bash_output (motivated by rashil2000) #D1646 a30887f
  • prompt: do not evaluate PROMPT_COMMAND for subprompts #D1654 08e903e
  • Makefile: work around the case the repository is cloned without --recursive #D1655 22ace5f
  • repo: add subdirectories make and docs #D1657 75bd04c
  • util: time out CPR requests #D1669 1481d48
    • util (CPR): fix the problem of always timing out (fixup 1481d48) #D1792 9b331c4
  • main: suppress non-interactive warnings from manually sourced startup files (reported by andreclerigo) #D1676 0525528 88e2df5
  • mandb: integrate mandb with bash-completion (motivated by Shahabaz-Bagwan, bbyfacekiller and EmilySeville7cfg) #D1688 c1cd666
  • syntax: do not start argument completions immediately after previous word (reported by EmilySeville7cfg) #D1690 371a5a4
    • syntax: revert 371a5a4 and generate empty completion source on syntax error #D1609 e09fcab
  • syntax: strictly check variable names of for-statements #D1692 d056547
  • widget self-insert: untranslate control chars and insert the last character #D1696 5ff3021
  • complete (source:command): exclude inactive aliases #D1715 d6242a7
  • complete (source:command): not quote aliases and keywords #D1715 d6242a7
  • highlight (wtype=CTX_CMDI): check alias names before shell expansions #D1715 d6242a7
    • util (ble/is-alias): fix a bug of unredirected error messages for bash-3.2 (fixup d6242a7) #D1730 31372cb
  • edit (history_share): update history on discard-line (reported by SuperSandro2000) #D1742 8dbefe0
  • canvas: do not insert explicit newlines on line folding if possible (reported by banoris) #D1745 02b9da6 dc3827b
    • edit: fix layout with prompt_rps1 caused by missing opts=relative for ble/textmap#update #D1769 f6af802
  • edit (ble-bind -x): preserve multiline prompts on execution of bind -x commands (requested by SuperSandro2000) #D1755 7d05a28
  • util (ble/util/buffer): hide cursor in rendering #D1758 e332dc5
  • complete (action:file): always suffix / to complete symlinked directory names (reported by SuperSandro2000) #D1759 397ac1f
  • edit (command-help): show source files for functions #D1779 7683ab9
  • edit (ble/builtin/exit): defer exit in trap handlers (motivated by SuperSandro2000) #D1782 f62fc04 6fdabf3
    • util (blehook): fix a bug that the the hook arguments are lost (reported by SuperSandro2000) #D1804 479795d
    • edit: fix a bug of ble/builtin/exit inside subshells in the EXIT trap #D1973 0451521
  • complete (source:command/get-desc): show function location and body #D1788 496e798
  • edit (ble-detach): prepend a space to stty sane for HISTIGNORE=' *' #D1796 26b532e
  • decode (bind): do not treat non-beginning # as comments #D1820 65c4138
  • history: disable the history file when HISTFILE is empty #D1836 9549e83
  • complete: generate options by empty-word copmletion after filenames (reported by geekscrapy) #D1846 6954b13
    • complete: do not show option descriptions for the empty-word completion (requested by geekscrapy) #D1846 1c7f7a1
  • syntax (extract-command): extract unexpected command names as commands #D1848 5b63459
  • main (ble-reload): preserve the original initialization options #D1852 d8c92cc
  • main (ble-reload): fix a bug that the default rcfile is not loaded #D1914 85b5828
  • blehook: print reusable code to restore the user hooks #D1857 b763677
    • blehook: separate internal and user hooks #D1856 b763677
    • blehook: prefer the uniq != to the addition += #D1871 fe7abd4
    • blehook: print hooks with --color=auto by default #D1875 3953afe
  • util (ble/builtin/trap): refactor
    • trap,blehook: rename ERR{ => EXEC} and separate from the ERR trap #D1858 94d1371
    • trap: remove the support for the shell function TRAPERR #D1858 94d1371
    • trap: preserve BASH_COMMAND in trap handlers #D1858 94d1371
    • util (ble/builtin/trap): run EXIT trap in subshells #D1862 5b351e8
    • util (ble/builtin/trap): fix the RETURN trap #D1863 793dfad
    • trap,blehook: move to a new file util.hook.sh #D1864 55a182b
    • trap (trap -p): fix unprinted existing user traps #D1864 55a182b
    • trap (ble/builtin/trap/finalize): fix a failure of restoring the original trap #D1864 55a182b
    • trap (trap -p): print also custom traps #D1864 55a182b
    • trap: preserve positional parameters for user trap handlers #D1865 9e2963c
    • trap: suppress INT processing with user traps #D1866 5c28387
    • trap: unify handling of DEBUG and the other traps #D1867 a22c25b
    • trap: work around possible interferences by recursive traps #D1867 a22c25b
    • trap: ignore RETURN for ble/builtin/trap/.handler #D1867 a22c25b
    • trap: fix a bug that DEBUG for internal commands clears $? #D1867 a22c25b
    • trap: use ble/util/assign/.mktmp to read the DEBUG trap #D1910 1de9a1e
  • progcomp: reproduce arguments of completion functions passed by Bash #D1872 4d2dd35
  • prompt: preserve transient prompt with same-dir after clear-screen #D1876 69013d9
  • color: let bleopt term_index_colors override the default if specified #D1878 7d238c0
  • canvas: update Unicode version 15.0.0 #D1880 49e55f4
  • decode (vi_imap-rlfunc.txt): update the widget for backward-kill-word as kill-backward-{u => c}word #D1896 e19b796
  • color: rearrange color table by ble palette (suggested by stackoverflow/caoanan) #D1961 bb8541d
  • util (ble/util/idle): process events before idle sleep #D1980 559d64b
  • keymap/vi (decompose-meta): translate S-a to A #D1988 600e845
  • sabbrev: apply sabbrev to right-hand sides of variable assignments #D2006 41faa49
  • complete (source:argument): fallback to rhs completion also for name+=rhs #D2006 41faa49
  • auto-complete: limit the line length for auto-complete #D2009 5bfbd6f
  • complete (source:argument): generate sabbrev completions after normal completions (motivated by mozirilla213) #D2011 a6f168d
  • complete (source:option): carve out ble/complete/source:option/generate-for-command (requested by mozirilla213) #D2014 54ace59

Fixes

  • term: fix a bug that VTE based terminals are not recognized #D1427 7e16d9d
  • complete: fix a problem that candidates are not updated after menu-filter (reported by 3ximus) #D1428 98fbc1c
  • complete/mandb-related fixes
    • mandb: support mandb in FreeBSD #D1432 6c54f79
    • mandb: fix BS contamination used by nroff to represent bold (reported by rlnore) #D1429 b5c875a
    • mandb: fix an encoding prpblem of utf8 manuals #D1446 7a4a480
    • mandb: improve extraction and cache for each locale #D1480 3588158
    • mandb: fix an infinite loop by a leak variable (reported by rlanore, riblo) #D1550 0efcb65
    • mandb: work around old groff in macOS (reported by killermoehre) #D1551 d4f816b
    • mandb: use manpath and man -w, and read /etc/man_db.conf and ~/.manpath #D1637 2365e09
    • mandb: support the formats of the man pages of awk and sed (reported by bbyfacekiller) #D1687 6932018
    • mandb: generate completions of options also for the empty word #D1689 b90ac78
    • mandb: support the man-page formats of wget, fish, and ping (reported by bbyfacekiller) #D1687 a79280e
    • mandb: carry optarg for e.g. -a, --accept=LIST #D1687 23d5657
    • mandb: parse --help for specified commands #D1693 e1ad2f1
    • mandb: fix small issues of man-page analysis #D1708 caa77bc
    • mandb: insert a comma in brace expansions instead of a space #D1719 0ac7f03
    • mandb: support man-page format of rsync #D1733 7900144
    • mandb: fix a bug that the description is inserted for --no-OPTION #D1761 88614b8
    • mandb: fix a bug that the man page is not correctly searched (fixup 2365e09) #D1794 65ffe70
    • mandb: support the man-page formats of man ls in coreutils/Japanese and in macOS #D1847 fa32829
    • mandb: include short name in the longname description #D1879 60b6989
  • edit: work around the wrong job information of Bash in trap handlers (reported by 3ximus) #D1435 #D1436 bc4735e
  • edit (command-help): work around the Bash bug that tempenv vanishes with builtin eval #D1438 8379d4a
  • global: suppress missing locale errors (reported by 3ximus) #D1440 4d3c595
  • edit (sword): fix definition of sword (shell words) #D1441 f923388
  • edit (kill-forward-logical-line): fix a bug not deleting newline at the end of the line #D1443 09cf7f1
  • util (ble/util/msleep): fix hang in Cygwin by swithing from /dev/udp/0.0.0.0/80 to /dev/zero #D1452 d4d718a
    • util (ble/util/msleep): work around the bash-4.3 bug of read -t (reported by 3ximus) #D1468 #D1469 4ca9b2e
  • syntax: fix broken AST with [[ keyword #D1454 69658ef
  • benchmark (ble-measure): work around a locale-dependent decimal point of EPOCHREALTIME (reported by 3ximus) #D1460 1aa471b
  • global: work around bash-4.2 bug of declare -gA (reported by 0xC0ncord) #D1470 8856a04
    • global: fix declaration of associative arrays for ble-reload (reported by 0xC0ncord) #D1471 3cae6e4
    • global: use a better workaround of bash-4.2 declare -gA by separating assignment #D1567 2408a20
  • bind: work around broken cmd_xmap after switching the editing mode #D1478 8d354c1
    • decode (encoding:C): fix initialization for isolated ESC #D1839 c3bba5b
  • edit: clear graphic rendition on newlines and external commands #D1479 18bb2d5
  • decode (rlfunc): work around incomplete bytes in keyseq (reported by onelittlehope) #D1483 3559658 beb0383 37363be
  • main: fix a bug that unset IFS is not correctly restored #D1489 808f6f7
    • edit: fix error messages on accessing undo records in emacs mode (reported by rux616) #D1497 61a57c0 e9be69e
  • canvas: fix a glitch that SGR at the end of command line is applied to new lines #D1498 4bdfdbf
  • syntax: fix a bug that eval() { :; }, declare() { :; } are not treated as function definition #D1529 b429095
  • decode: fix a hang on attach failure by cache corruption #D1531 24ea379
  • edit, etc: add workarounds for localvar_inherit #D1532 7b63c60
    • edit: fix a bug that command-help doesn't work #D1635 0f6a083
  • progcomp: fix non-working complete -C prog (reported by Archehandoro) #D1535 026432d
  • bind: fix a problem that bind '"seq":"key"' causes a loop macro bind -s key key (reported by thanosz) #D1536 ea05fc5
    • bind: fix errors on readline macros (reported by RakibFiha) #D1537 c257299
  • main: work around sourcing ble.sh inside subshells #D1554 bbc2a90
    • main: fix exit status for bash ble.sh --test (fixup bbc2a90) #D1558 641238a
    • main: fix reloading after ble-update (fixup bbc2a90) (fixed by oc1024) #D1558 9372670
  • main: work around . ble.sh --{test,update,clear-cache} in intereactive sessions #D1555 bbc2a90
  • Makefile: create run directory instead of tmp #D1557 9bdb37d
  • main: fix the workaround for set -e #D1564 ab2f70b
    • main: fix the workaround for set -u #D1575 76073a9
    • main: fix the workaround for set -eu and refactor #D1743 6a946f0
    • decode: fix the workaround for set -e with --prompt=attach #D1832 5111323
  • util: work around bash-3.0 bug "${scal[@]/xxx}" #D1570 24f79da
  • sabbrev (ble-sabbrev): fix delayed output before the initialization #D1573 5d85238
  • history: fix the workaround for bash-3.0 bug of reducing histories #D1576 15c9133
  • syntax: fix a bug that argument completion is attempted in nested commands (reported by huresche) #D1579 301d40f
  • edit (brackated-paste): fix incomplete CR => LF conversion (reported by alborotogarcia) #D1587 8d6da16
  • main (adjust-bash-options): adjust LC_COLLATE=C #D1588 e87ac21
  • highlight (layer:region): fix blocked lower-layer changes without selection changes #D1596 5ede3c6
  • complete (auto-menu): fix sleep loops by clock/sclock difference #D1597 53dd018
  • history: fix a bug that history data is cleared on history -r #D1605 72c274e
  • util (ble/string#quote-command): remove redundant trailing spaces for single word command #D1613 94556b4
  • util: work around the Bash 3 bug of array assignments with ^A and ^? in Bash 3.2 #D1614 b9f7611
  • benchmark (ble-measure): fix a bug that the result is always 0 in Bash 3 and 4 (fixup bbc2a90) #D1615 a034c91
  • complete: fix a bug that the shopt settings are not restored correctly (reported by Lun4m) #D1623 899c114
  • decode, canvas, etc.: explicitly treat CSI arguments as decimal numbers (reported by GorrillaRibs) #D1625 c6473b7 2ea48d7
  • history: fix the vanishing history entry used for ble-attach #D1629 eb34061
  • global: work around readonly TMOUT (reported by farmerbobathan) #D1630 44e6ec1
  • complete: fix a task scheduling bug of referencing two different clocks (reported by rashil2000) #D1636 fea5f5b
  • canvas: update prompt trace on char_width_mode change (reported by Barbarossa93) #D1642 68ee111
  • decode (cmap/initialize): fix unquoted special chars in the cmap cache #D1647 7434d2d
  • decode: fix a bug that the characters input while initialization are delayed #D1670 430f449
  • util (ble/util/readfile): fix a bug of always exiting with 1 in bash <= 3.2 (reported by laoshaw) #D1678 61705bf
  • trace: fix wrong positioning of the ellipses on overflow #D1684 b90ac78
  • complete: do not generate keywords for quoted command names #D1691 60d244f
  • menu (menu-style:align): fix the failure of delaying ble/canvas/trace on items (motivated by banoris) #D1710 acc9661
  • complete: fix empty completions with FIGNORE (reported by seanfarley) #D1711 144ea5d
  • main: fix the message of owner errors of cache directories (reported by zim0369) #D1712 b547a41
  • util (ble/string#escape-for-bash-specialchars): fix escaping of TAB #D1713 7db3d2b
  • complete: fix failglob messages while progcomp for commands containing globchars #D1716 e26a3a8
    • complete: fix a bug that the default progcomp does not work properly #D1722 01643fa
  • highlight: fix a bug that arrays without the element 0 is not highlighted #D1721 b0a0b6f
  • util (visible-bell): erase visible-bell before running external commands #D1723 0da0c1c
    • util(ble/util/eval-pathname-expansion): fix restoring shopt options in bash-4.0 #D1825 736f4da
  • util (ble/function): work around shopt -u extglob #D1725 952c388
  • syntax: fix uninitialized syntax-highlighting in bash-3.2 #D1731 e3f5bf7
  • make: fix a bug that config update messages are removed on install #D1736 72d968f
  • util: fix bugs in conversions from ' to \'' #D1739 6d15782
  • canvas: fix unupdated prompt on async wcwidth resolution #D1740 e14fa5d
  • progcomp: retry completions on $? == 124 also for non-default completions (reported by SuperSandro2000) #D1759 82b9c01
  • app: work around data corruption by WINCH on intermediate state #D1762 5065fda
  • util (ble/util/import): work around filenames with bash special characters #D1763 b27f758
  • edit: fix the restore failure of PS1 and PROMPT_COMMAND on ble-detach #D1784 b9fdaab
  • complete: do not attempt an independent rhs completion for arguments (reported by rsteube) #D1787 f8bbe2c
  • history: fix the unsaved history in the detached state #D1795 344168e
  • edit: fix an unexpected leave from the command layout on read #D1800 4dbf16f
    • edit: fix the command layout remaining after job information (reported by mozirilla213) #D1991 dcfb067
  • history: work around possible dirty prefix * in the history output #D1808 64a740d
  • decode (ble-bind): fix the printed definition of -c/-x bindings #D1821 94de078
  • command-help (.read-man): add missing ble/util/assign/.rmtmp #D1840 937a164
  • complete: fix wrong COMP_POINT with progcomp_alias #D1841 369f7c0
  • main (ble-update): fix error message with system-wide installation of ble.sh (fixed by tars0x9752) 1d2a9c1 a450775
  • main. util: fix problems of readlink etc. found by test in macOS (reported by aiotter) #D1849 fa955c1 #D1855 a22e145
  • progcomp: fix a bug that COMP_WORDBREAKS is ignored #D1872 4d2dd35
  • global: quote return $? #D1884 801d14a
  • canvas (ble/canvas/trace): fix text justification for empty lines (reported by rashil2000) #D1894 cdf74c2
  • main: fix adjustments of bash options (reported by rashil2000) #D1895 138c476
  • complete: suppress error messages for non-bash_completion _parse_help (reported by nik312123) #D1900 267de7f
  • prompt: fix the marker position for the readline variable show-mode-in-prompt (reported by Strykar) #D1903 09bb4d3
  • highlight: fix a bug that bleopt filename_ls_colors is not working (reported by qoreQyaS) #D1919 b568ade
  • bind: fix M-C-@, C-x C-@, and M-C-x (bash-4.2 -o emacs) #D1920 a410b03
  • complete (action:file): support ble/syntax-raw in the filename extraction (reported by qoreQyaS) #D1921 32277da
  • decode: fix a bug that the tab completion do not work with bash-4.4 and lower #D1928 7da9bce
  • complete: fix non-working ambiguous path completion with .. and . in the path #D1930 632e90a
  • main (ble-reload): fix failure by non-existent rcfile #D1931 b7ae2fa
  • syntax (ble/syntax/highlight/vartype): check variable in global scope #D1932 b7026de
  • menu (linewise): fix layout calculation with variable width of line prefix (reported by bkerin) #D1979 cc852dc
  • edit (ble/textarea#render): fix interleaving outputs to _ble_util_buffer and DRAW_BUFF #D1987 6d61388
  • keymap/vi (expand-range-for-linewise-operator): fix the end point being not extended #D1994 bce2033
  • keymap/vi (operator:filter): do not append newline at the end of line #D1994 bce2033
  • highlight: fix shifted error marks after delayed core-syntax #D2000 f4145f1
  • syntax: fix unrecognized variable assignment of the form echo arr[i]+=rhs #D2007 41faa49
  • menu (linewise): fix clipping of long line (reported by bkerin) #D2025 4c6a477

Documentation

  • blerc: add all the missing options #D1667 0228d76
  • blerc: add missing faces argument_option and cmdinfo_cd_cdpath (reported by Prikalel) #D1675 26aaf87
  • README: describe how to invoke multiple widgets with a keybinding (motivated by michaelmob) #D1699 6123551
  • README: add links to bash-it and oh-my-bash #D1724 4a2575f
  • README: mention the Guix package (motivated by kiasoc5) #D1888 0f7c04b
  • blerc: add frequently used keybindings (motivated by KiaraGrouwstra, micimize) #D1896 #D1897 e19b796
  • wiki/Q&A: add item for defining a widget calling multiple widgets (motivated by micimize) #D1898 e19b796
  • blerc: rename from blerc to blerc.template #D1899 e19b796
  • README: add a link to the explanation on the "more reliable setup" of bashrc (motivated by telometto) #D1905 09bb4d3
  • README: describe contrib/fzf integration (reported by SuperSandro2000, tbagrel1) #D1907 3bc3bea b568ade
  • README: add links to Manual pages for kspec and modifyOtherKeys #D1917 fb7bd0b b568ade
  • README: explain the build process #D1964 #D1965 14ca1e5

Optimization

  • syntax (layer:syntax/word): perform pathname expansions in background subshells (motivated by 3ximus) #D1449 13e7bdd
    • syntax (simple-word/is-simple-noglob): suppress error messages on expansions #D1461 a56873f
    • syntax (simple-word/eval): fix unperformed tilde expansions in the background (reported by 3ximus) #D1463 6ebec48
    • syntax (simple-word/eval): propagate timeouts in sync highlighting (reported by 3ximus) #D1465 c2555e2
    • edit: change the priority of render-defer and menu-filter #D1501 aae553c
  • complete: perform pathname expansions in subshells (motivated by 3ximus) #D1450 d511896
  • complete: support bleopt complete_timeout_compvar to time out pathname expansions for COMP_WORDS / COMP_LINE #D1457 cc2881a
  • complete (ble/complete/source:file): remove slow old codes (reported by timjrd) #D1512 e5be0c1
  • syntax (ble/syntax:bash/simple-word/eval): optimize large array passing (motivated by timjrd) #D1522 c89aa23
    • syntax (ble/syntax:bash/simple-word/eval): use mapfile -d '' for Bash 5.2 #D1604 72c274e
  • main: prefer nawk over mawk and gawk #D1523 #D1524 c89aa23
    • main (ble/bin/.freeze-utility-path): fix unupdated temporary implementations #D1528 c70a3b4
    • util (ble/util/assign): work around subshell conflicts #D1578 6e4bb12
  • history: use mapfile -d '' to load history in Bash 5.2 #D1603 72c274e
  • prompt: use ${PS1@P} when the prompt contains only safe prompt sequences #D1617 8b5da08
    • prompt: fix not properly set $? in ${PS1@P} evaluation (reported by nihilismus) #D1644 521aff9
    • prompt: fix a bug that the special treatment of \$ in Cygwin/MSYS is disabled #D1741 4782a33
  • decode: cache inputrc translations #D1652 994e2a5
  • complete: use awk for batch quote-insert (motivated by banoris) #D1714 a0b2ad2 92d9734
    • complete (quote-insert.batch): fix regex escaping in bracket expr of awk (reported by telometto) #D1729 8039b77
  • prompt: reduce redundant evaluation of PROMPT_COMMAND on the startup #D1778 042376b
  • main: run ble/base/unload directly at the end of EXIT handler #D1797 115baec
  • util: optimize ble/util/writearray #D1816 96e9bf8
  • history: optimize processing of erasedups (motivated by SuperSandro2000) #D1817 944d48e
  • debug: add ble/debug/profiler (motivated by SuperSandro2000) #D1824 f629698 11aa4ab 7bb10a7
    • util (ble/string#split): optimize #D1826 7bb10a7
    • global: avoid passing arbitrary strings through awk -v var=value #D1827 82232de
    • edit: properly set LINENO for PS1, PROMPT_COMMAND, and DEBUG #D1830 4d24f84

Compatibility

  • term: work around quirks of Solaris xpg4 awk #D1481 6ca0b8c
  • term: support key sequences and control sequences of Solaris console #D1481 6ca0b8c
  • term: work around Cygwin-console bug of bottom IL/DL #D1482 5dce0b8
  • term: work around leaked DA2R in screen from outside terminal #D1485 e130619
  • complete: work around fzf completion settings loaded automatically #D1508 4fc51ae
  • complete: work around bash-completion bugs (reported by oc1024) #D1533 9d4ad56
  • main: work around MSYS2 .inputrc (reported by n1kk) #D1534 9e786ae
  • util (modifyOtherKeys): work around a quirk of kitty (reported by NoahGorny) #D1549 f599525
    • util (modifyOtherKeys): update the workaround for a new quiark of kitty #D1627 3e4ecf5
    • util (modifyOtherKeys): use the kitty protocol for kitty 0.23+ which removes the support of modifyOtherKeys (reported by kovidgoyal) #D1681 ec91574
    • util (modifyOtherKeys): set up modifyOtherKeys only after DA2 (reported by dongxi8) #D1885 149eee9
  • global: work around empty vi_imap cache by tmux-resurrect #D1562 560160b
  • decode: identify kitty and treat \e[27u as isolated ESC (reported by lyiriyah) #D1585 c2a84a2
  • complete: suppress known error messages of bash-completion (reported by oc1024, Lun4m) #D1622 d117973
  • decode: work around kitty keypad keys in modifyOtherKeys (reported by Nudin) #D1626 27c80f9
  • main: work around set -B and set -k #D1628 a860769
  • term: disable modifyOtherKeys and do not send DA2 for st (requested by Shahabaz-Bagwan) #D1632 92c7b26
  • cmap: add st-specific escape sequences for cursor keys #D1633 acfb879
  • cmap: distinguish find/select from home/end for openSUSE inputrc.keys (reported by cornfeedhobo) #D1648 c4d28f4
    • cmap: freeze the internal codes of find/select and kitty special keys #D1674 fdfe62a
  • main: work around self-modifying PROMPT_COMMAND by bash-preexec (reported by cornfeedhobo) #D1650 39ebf53
    • main: fix an infinite loop on ble-reload with externally saved PROMPT_COMMAND (reported by tars0x9752) #D1851 53af663
  • decode: work around openSUSE broken /etc/inputrc #D1662 e5b0c86
  • decode: work around the overwritten builtin set (reported by eadmaster) #D1680 a6b4e2c
  • complete: work around the variable leaks by virsh completion from libvirt (reported by telometto) #D1682 f985b9a
  • stty: do not remove keydefs for C-u, C-v, C-w, and C-? (reported by laoshaw) #D1683 82f74f0
  • builtin: print usages of emulated builtins on option errors #D1694 6f74021
  • decode (ble/builtin/bind): improve compatibility of the deprecated form bind key:rlfunc (motivated by cmplstofB) #D1698 b6fc4f0
    • decode (ble/builtin/bind): fix a bug that only lowercase is accepted for deprecated form bind key:rlfunc (reported by returntrip) #D1726 a67458e e363f1b
  • complete: work around a false warning messages of gawk-4.0.2 #D1709 9771693
  • main: work around XDG_RUNTIME_DIR of a different user by su (reported by zim0369) #D1712 8d37048
  • main (ble/util/readlink): work around non-standard or missing readlink (motivated by peterzky) #D1720 a41279e
    • util (ble/function#pop): allow popping unset function #D1834 c0abc95
  • menu (menu-style:desc): work around xenl quirks for relative cursor movements (reported by telometto) #D1728 3e136a6
  • global: work around the arithmetic syntax error of 10# in Bash-5.1 #D1734 7545ea3
  • global: adjust implementations for Bash 5.2 patsub_replacement #D1738 4590997
    • global: work around compat42 quoting of "${v/pat/"$rep"}" #D1751 a75bb25
    • prompt: fix a bug of ble/prompt/print redundantly quoting $ #D1752 a75bb25
    • global: identify bash-4.2 bug that internal quoting of ${v/%$empty/"$rep"} remains #D1753 a75bb25
    • global: work around shopt -s compat42 #D1754 a75bb25
  • global (ble/builtin/*): work around set -eu in NixOS initialization (reported by SuperSandro2000) #D1743 001c595
  • util, edit, contrib: add support for bash-preexec (motivated by SuperSandro2000) #D1744 e85f52c
    • util (ble/builtin/trap): fix resetting $? and $_ (reported by SuperSandro2000) #D1757 dfc6221
    • util (ble/builtin/trap): fix a failure of setting the trap-handler exit status (reported by SuperSandro2000) #D1771 c513ed4
    • edit (TRAPDEBUG): partially restore $_ after DEBUG trap (reported by aiotter) #D1853 0b95d5d
  • main: check IN_NIX_SHELL to inactivate ble.sh in nix-shell (suggested by SuperSandro2000) #D1747 b4bd955
    • main: force prompt-attach inside the nix-shell rc #D1766 ceb2e7c
  • canvas: test the terminal for the sequence of clearing DECSTBM #D1748 4b1601d
  • main: check /dev/tty on startup (reported by andychu) #D1749 711c69f
    • main: fix the check of tty on stdin/stdout #D1833 80f09c9
  • util: add identification of Windows Terminal wt #D1758 e332dc5
  • complete: evaluate words for noquote (motivated by SuperSandro2000) #D1767 0a42299
  • edit (TRAPDEBUG): preserve original DEBUG trap and enabled it in PROMPT_COMMAND (motivated by ammarooo) #D1772 #D1773 ec2a67a
    • main, trap: fix initialization order of {save,restore}-BASH_REMATCH (reported by SuperSandro2000) #D1780 689534d
  • global: work around bash-3.0 bug that single quotes remains for "${v-$''}" #D1774 9b96578
  • util: work around old vte not supporting DECSCUSR yet setting TERM=xterm (reported by dongxi8) #D1785 70277d0
  • progcomp: work around the cobra V2 description hack (reported by SuperSandro2000) #D1803 71d0736
  • complete: work around blocking _scp_remote_files and _dnf (reported by iantra) #D1807 a4a779e 46f5c13
  • history: work around broken timestamps in HISTFILE (reported by johnyaku) #D1831 5ef28eb
  • progcomp: disable command_not_found_handle (reported by telometto, wisnoskij) #D1834 64d471a d5fe1d1 973ae8c
  • util (modifyOtherKeys): work around delayed terminal identification #D1842 14f3c81
    • util (modifyOtherKeys): fix a bug that kitty protocol is never activated #D1842 14f3c81
  • util (modifyOtherKeys): pass-through kitty protocol sequences (motivated by ferdinandyb) #D1845 f66e0c1
  • main: show warning for empty locale (movivated by Ultra980) #D1927 92f2006
  • main: never load /etc/inputrc in openSUSE (motivated by Ultra980) #D1926 92f2006 0ceb0cb
  • canvas: refine detection of bleopt char_width_mode=musl #D1929 b0c16dd
  • term (terminology): work around terminal glitches #D1946 9a1b4f9
  • main (ble/bin/awk): add workaround for macOS awk-32 #D1974 e2ec89c
  • util.hook: workaround bash-5.2 bug of nested read by WINCH #D1981 a5b10e8
    • main (ble/base/adjust-builtin-wrappers): fix persistent tempenv IFS= in bash-5.0 (reported by pt12lol) #D2030 5baf6f6
  • edit: always adjust the terminal states with bind -x (reported by linwaytin) #D1983 5d14cf1
    • edit: restore PS1 while processing bind -x (reported by adoyle-h) #D2024 2eadcd5
  • syntax: suppress brace expansions in designated array initialization in Bash 5.3 #D1989 1e7b884
  • progcomp: work around slow nix completion #D1997 2c1aacf
  • complete: suppress error messages from _adb (reported by mozirilla213) #D2005 f2aa32b

Test

  • github/workflows: add CI checks in macOS and msys2 (requested by aiotter) ##D1881 c5ddacc
    • github/workflows (nightly): add check for macOS (contributed by aiotter) #D1881 4cb0baa
    • github/workflows (nightly, test): interchange setup #D1881 4cb0baa
    • github/workflows: add test.yml #D1881 824dc53
    • fix for macOS tests
      • test (ble/util/c2s): fix locale settings in tests #D1881 26ed622
      • test (ble/util/msleep): loosen the condition #D1881 26ed622
      • test (ble/util/msleep): skip test in CI #D1881 26ed622
    • fix for msys2 tests
      • test: ensure a non-empty locale #D1881 c5d1b82
      • test (ble/util/readlink): work around msys symlinks #D1881 c5d1b82
      • test (ble/util/declare-print-definitions): skip array assignments involing CR in msys #D1881 c5d1b82
      • test (ble/util/is-stdin-ready): skip test in the CI msys #D1881 c5d1b82
      • main (bind): suppress non-interactive warning in msys #D1881 c5d1b82
      • canvas (GraphemeClusterBreak): handle surrogate pairs for UCS-2 wchar_t #D1881 18bf121
      • util (ble/encoding:UTF-8/b2c): fix interpretation of leading byte #D1881 2e1a7c1
      • util (ble/util/s2c): work around intermediate mbstate of bash <= 5.2 #D1881 2e1a7c1
      • util (ble/util/s2bytes): clear locale cache #D1881 2e1a7c1
    • complete: fix syntax error for bash-3.0 #D1881 0b3e611
    • github/workflows: work around grep-3.0 which crashes in windows-latest #D1915 fb7bd0b
  • test (ble/util/writearray): use ble/file#hash instead of sha256sum #D1882 b76e21e
  • test (ble/util/readlink): work around external aliases #D1890 0c6291f

Internal changes and fixes

  • main: include hostname in local runtime directory #D1444 6494836
  • global: update the style of document comments ff4c4e7
  • util: add function ble/string#quote-words #D1451 f03b87b
  • syntax (ble/syntax:bash/simple-word/eval): cache #D1453 6d8311e
    • syntax (simple-word/eval): support opts=single for a better cache performance (motivated by 3ximus) #D1464 10caaa4
  • global: refactor setup => set up / set-up #D1456 c37a9dd
  • global: clean up helps of user functions #D1459 33c283e
  • benchmark (ble-measure): support -T TIME and -B TIME option #D1460 1aa471b
  • util, color (bleopt, blehook, ble-color-setface): support --color and fix sgr0 contamination in non-color output #D1466 69248ff
  • global: fix status check for read timeout #D1467 e886883
  • decode: move {keymap/*. => lib/core-decode.*-}rlfunc.txt and clean up files #D1486 f7323b4
    • Makefile: fix up f7323b4: restore rule for keymap/*.txt #D1496 054e5c1
  • util, etc: ensure each function to work with arbitrary IFS #D1490 #D1491 5f9adfe
  • tui, canvas (ble/canvas/trace): support opts=clip #D1493 61ce90c
  • tui, edit: add a new render mode for full-screen applications 817889d
  • test (test-canvas): fix dependency on ext/contra #D1525 c89aa23
  • util: inherit special file descriptors #D1552 98835b5
    • util: fix a bug that old tty is used in new sessions #D1586 0e55b8e
  • global: use _ble_term_IFS #D1557 d23ad3c
  • global: work around localvar_inherit for varname-list init #D1566 5c2edfc
  • util: fix ble/util/dense-array#fill-range a46fdaf
  • util: fix leak variables buff, trap, {x,y}{1,2} #D1572 5967d6c
  • util: fix leak variables #D1643 fcf634b
  • edit (command-help): use ble/util/assign/.mktmp to determine the temporary filename #D1663 1af0800
  • make: update lint check #D1709 7e26dcd
  • test: save the test log to a file #D1735 d8e6ea7
  • benchmark: improve determination of the base time #D1737 ad866c1
  • make: add fallback Makefile for BSD make #D1805 e5d8d00
  • main: support bleopt debug_xtrace (requested by SuperSandro2000) #D1810 022d38b
  • test: clean up check failures by make check and make scan #D1812 bb3e0a3
  • util (fd#alloc): limit the search range of free fds #D1813 43be0e4 4c90072
  • github/workflows: define an action for the nightly builds (contributed by uyha) #D1814 a3082a0
  • global: quote numbers for unexpected IFS #D1835 0179afc
  • history: refactor hooks history_{{delete,clear,insert} => change} #D1860 c393c93
  • history: rename the hook history_{on => }leave #D1860 c393c93
  • make: check necessary .git #D1887 0f7c04b
  • benchmark (zsh): fix for KSH_ARRAYS #D1886 a144ffa 8cb9b84
  • benchmark: support for ksh as benchmark.ksh #D1886 5dae4da
  • github/workflows (build): rename directory in ble-nightly.tar.xz to ble-nightly (reported by Harduex) #D1891 f20854f 4ea2e23 43c6d4b
  • edit: update prompts on g2sgr change #D1906 40625ac
  • util, decode, vi: fix leak variables #D1933 8d5cab8
  • util: support bleopt debug_idle #D1945 fa10184
  • global: work around bash-4.4 no-argument return in trap #D1970 eb4ffce
  • util: replace builtin readonly with a shell function (requested by mozirilla213) #D1985 8683c84 e4758db
    • util (ble/builtin/readonly): show file and line in warnings #D2015 467fa44 2c9b56d
  • global: avoid directly using /dev/tty #D1986 a835b83
  • util: add ble/util/message #D2001 2a524f3
  • global: normalize bracket expressions to _a-zA-Z / _a-zA-Z0-9 #D2006 41faa49
  • global: fix leak variables #D2018 6f5604d
  • edit: handle nested WINCH properly #D2020 a6b2c07
  • make: include the source filenames in the installed files (suggested by bkerin) #D2027 610fab3

Contrib

  • prompt-git: detect staged changes #D1718 2b48e31
  • prompt-git: fix a bug that information is not updated on reload #D1732 361e9c5
  • config/execmark: show exit status in a separate line #D1828 4d24f84
    • config/execmark: add names of exit statuses #D2019 a6b2c07
  • prompt-git: ignore untracked files in submodules #D1829 4d24f84
  • integration/fzf
    • fzf-completion: fix integration (reported by ferdinandyb) #D1837 12c022b
    • fzf-completion: remove noquote (reported by MK-Alias) #D1889 0c6291f
    • fzf-initialize: check directory existence before adding it to PATH (reported by Strykar) #D1904 09bb4d3
    • fzf-key-bindings: fix a problem that modifyOtherKeys is not reflected (reported by SuperSandro2000) #D1908 486564a
    • fzf-completion: quote only with filenames when ble/syntax-raw is specified (reported by christianknauer) #D1978 8965b61
  • integration/zoxide
    • complete, contrib: add completion integration with zoxide (reported by ferdinandyb) #D1838 a96bafe
    • zoxide: update contrib/integration/zoxide for zoxide v0.8.1 #D1907 3bc3bea
    • zoxide: adjust zoxide icanon (reported by linwaytin) #D1993 dc7de6b
  • README: update description on _ble_contrib_fzf_base (reported by Strykar) #D1904 09bb4d3
  • colorglass: add color filter #D1902 88e74cc
    • colorglass: add bleopt colorglass_{saturation,brightness} (motivated by auwsom) #D1906 40625ac
  • add histdb #D1925 44d9e10
    • histdb: support auto-complete source histdb-word #D1938 00cae74
    • histdb: automatically upgrade histdb version #D1940 4fac1e3
    • histdb: support auto-complete source histdb-history #D1941 4fac1e3
    • histdb: handle multiple exec lines for histdb_ignore #D1942 36e1c89
    • histdb: kill orphan sqlite3 processes #D1943 36e1c89
    • histdb: back up the database #D1944 36e1c89
    • histdb: fix miscellaneous SQL query errors #D1947 46ac426
    • histdb: output error messages to tty #D1952 651c70c
    • histdb: fix remaining debug function name "assign{2 => }" in bash <= 3.2 #D1953 651c70c
    • histdb: fix a problem that the background process fails to start in bash-3.0 #D1956 651c70c
    • histdb: fix a bug that history search fails with a single quote in the commandline #D1957 651c70c
    • histdb: fix histdb-word completions in the middle of the commandline #D1968 adaec05
    • histdb: support bleopt histdb_remarks #D1968 adaec05
    • histdb: support timeout of background processes #D1971 e0566bd
    • histdb: enable database timeout for transactions #D1982 a5b10e8
    • histdb: fix .timeout not set for background sqlite3 #D1982 20b42fa
    • histdb: suppress color codes in the default histdb_remarks #D1968 20b42fa
    • histdb: disable timeout of background processes in Bash 3.2 #D1992 20b42fa
    • histdb: rewrite to use ble/util/bgproc #D2017 7803305
  • integration: move fzf and bash-preexec integrations to subdir #D1939 86d9467

Don't miss a new ble.sh release

NewReleases is sending notifications on new releases.