github akinomyoga/ble.sh v0.4.0-devel2
Release 0.4.0-devel2 (2020-12-02)

latest releases: v0.4.0-devel3, v0.3.4, v0.2.7...
pre-release3 years ago

2020-01-12...2020-12-02 (#D1215...#D1426) c74abc5...276baf2

Usage

Prerequisites

Bash 3.0+ and basic POSIX utilities are required.

Download ble-0.4.0-devel2.tar.xz

https://github.com/akinomyoga/ble.sh/releases/download/v0.4.0-devel2/ble-0.4.0-devel2.tar.xz

# DOWNLOAD with wget
wget https://github.com/akinomyoga/ble.sh/releases/download/v0.4.0-devel2/ble-0.4.0-devel2.tar.xz

# DOWNLOAD with curl
curl -LO https://github.com/akinomyoga/ble.sh/releases/download/v0.4.0-devel2/ble-0.4.0-devel2.tar.xz

Trial & Install

# TRIAL
tar xJf ble-0.4.0-devel2.tar.xz
source ble-0.4.0-devel2/ble.sh

# INSTALL (quick)
tar xJf ble-0.4.0-devel2.tar.xz -C ~/.local/share/blesh
echo 'source ~/.local/share/blesh' >> ~/.bashrc

# INSTALL (more robust)
tar xJf ble-0.4.0-devel2.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

  • complete: support bleopt complete_auto_wordbreaks (suggestion by dylankb) #D1219 c294e31
  • main: check ~/.config/blesh/init.sh #D1224 a82f961
  • progcolor: support programmable highlighting #D1218 0770234 #D1244 9cb3583 #D1245 8e8a296 #D1247 154f638 #D1269 fa0036c
  • decode/kbd: support U+XXXX, @esc and @nul for keynames #D1251 441117c ef23ad1
  • syntax: support coproc #D1252 7ff68d2
  • vi/nmap: support readline widgets for M-left, M-right, C-delete, # and & #D1258 846e0be
  • complete: add compopt -o quote/default for fzf (motivated by dylankb) #D1275 58e1be4
  • util (ble-import): support an option -d (--delay) #D1285 9673e4e
  • syntax: support parameter expansion of the form ${var/#pat}, ${var/%pat} #D1286 e2f4809
  • edit: support bleopt editor line_limit_{type,length} history_limit_length #D1295 2f9a000
  • edit: support widgets {vi,emacs}-editing-mode #D1301 0c6c76e
  • syntax: allow unquoted [! and [^ in simple-word (reported by cmplstofB) #D1303 1efe833
  • util (ble/util/print-global-definitions): support arrays and unset variables (test-util) 6e85f1c
  • util (ble/util/cat): support NUL and multiple files (test-util) d19a9af
  • edit: support Bash 5.1 READLINE_MARK and PROMPT_COMMANDS #D1328 e97a858 #D1338 657bea5
    • edit, main: support array PROMPT_COMMAND in bash-5.1 #D1380 b852a4f
  • syntax: support confusing parameter expansions like ${#@}, etc. #D1330 b7b42eb
  • contrib: add contrib for user settings #D1335 f290115
  • syntax: support ${var@UuLK} in Bash 5.1 #D1336 04da4dd
  • main: add an option --test #D1340 1410c72
  • util (ble/builtin/trap): support return in INT/EXIT/WINCH #D1347 #D1348 3865488
  • history: support timestamp (reported by rux616) #D1351 4bcbd71 #D1356 350bb15 #D1364 1d8adf9
  • edit: support Bash 4.4 PS0 #D1357 23a1ac5
  • vi: support bleopt keymap_vi_mode_{update_prompt,show,name_*} (suggested by Dave-Elec) #D1365 76be6f1
  • prompt: support prompt sequence \q{...} #D1365 76be6f1
  • edit: support bind 'set show-mode-in-prompt' #D1365 76be6f1
    • prompt: fix a bug that mode string is not shown in auto_complete and other sub-modes (reported by tigger04) #D1371 f6fc7ff
    • prompt: redraw prompts on the prompt content change (reported by tigger04) #D1371 1954a1e
  • prompt: support bleopt prompt_{{ps1,rps1}{_final,_transient}} (suggested by Dave-Elec) #D1366 06381c9
    • prompt: fix a bug that prompt are always re-insntiated for every rendering #D1374 0770cda
    • prompt: fix a bug that rprompt is not cleared when bleopt prompt_rps1 is reset #D1377 1904b1d
    • prompt: fix a bug that prompts updated by PROMPT_COMMAND are not reflected immediately #D1426 bbda197
  • edit: support Bash 5.1 widgets #D1368 e747ee3
  • color: support TERM=*-direct #D1369 0d38897 #D1370 f7dc477
  • complete: support bleopt complete_auto_menu #D1373 77bfabd
    • complete: fix a problem of frequent bells with auto-menu activated #D1381 3b1d8ac
  • complete: support bleopt complete_menu_maxlines #D1375 8e81cd7
  • prompt: support _ble_prompt_update #D1376 0fa8739
  • prompt: support bleopt prompt_{xterm_title,screen_title,status_line} #D1378 5c3f6fe
    • prompt: check TERM for prompt window titles when _ble_term_TERM is unavailable #D1388 3c88869
  • syntax: support options bleopt highlight_{syntax,filename,vartype} to turn off highlighting (requested by pjmp) #D1379 0116f8b
  • complete: support shopt progcomp_alias #D1397 d68afa5
  • complete: generate completions of options based on man pages #D1405 8183455
    • complete (mandb): fix a bug that bleopt complete_menu_style is globally changed #D1412 b91fd10
  • highlight: support colon separated lists of paths #D1409 2f40422
    • highlight: fix a bug that non-simple words are always highlighted as syntax_error (reported by cmplstofB) #D1411 46e2ac6
    • highlight: fix a bug that words are sometimes unhighlighted #D1418 4395484
    • highlight: fix a bug that non-existent directories are not highlighted in the command name context #D1419 4395484
  • highlight: support options #D1410 2f40422
    • highlight: support highlighting of declare command options #D1420 f0df481
    • highlight: fix unhighlighted tilde expansions ~+ (reported by cmplstofB) #D1424 a32962e

Changes

  • highlight: highlight symlink directories as symlinks #D1249 25e8a72
  • auto-complete: bind insert-on-end to C-e #D1250 90b45eb
  • edit (widget/shell-expand-line): not quote expanded results by default #D1255 a9b7810
  • decode: refactor
    • decode: delay bind until keymap initialization #D1258 0beac33
    • decode: read user settings from bind -Xsp #D1259 eef14d0
    • decode: fix a bug of ble-bind with uninitialized cmap #D1260 5d98210
    • decode: fix error messages of BSD sed rejecting unencoded bytes from bind -p (reported by dylankb) #D1277 0cc9160
  • edit: provide proper $BASH_COMMAND and $_ for PS1, PROMPT_COMMAND, PRECMD, etc. #D1276 7db48dc
  • edit (quoted-insert): insert literal key sequence #D1291 420c933
  • decode: support decode_abort_char for modifyOtherKeys #D1293 ad98416
  • edit (edit-and-execute): disable highlighting of old command line content #D1295 2f9a000
  • util (bleopt): fail when a specified bleopt variable does not exist (test-util) 5966f22
  • builtin: let redefined builtins return 2 for --help #D1323 731896c
  • edit: preserve PS1 when internal_suppress_bash_output is set #D1344 6ede0c7
  • complete: complete param expan in additional contexts #D1358 3683305
  • main: reload on ble-update when ble.sh is already updated #D1359 a441d4d
  • main (ble-update): clone github repository if the original repository is not found #D1363 6e3b3b5
  • util (bleopt): change output format d4b12cd
  • syntax: allow time -- command for Bash 5.1 #D1367 00d0e93
  • menu: preserve columns with {forward,backward}-line #D1396 3d5a341
  • syntax: rename ble_debug to bleopt syntax_debug #D1398 3cda58b
  • syntax: change a style of buffer contents in bleopt syntax_debug #D1399 3cda58b
  • complete: change to generate filenames starting from . by default #D1425 987436d

Fix

  • util (ble/builtin/trap): fix argument analysis for the form trap INT (reported by dylankb) #D1221 db8b0c2
  • main: fix an error message on ristricted shells #D1220 b726225
  • edit: fix a bug that the shell hangs with source ble.sh --noattach && ble-attach (reported by dylankb) #D1223 59c1ce4 3031007
  • edit: fix a bug that the textarea state is not properly saved (reported by cmplstofB) #D1227 06ae2b1
  • syntax: support hexadecimal literals for arithmetic expression (reported by cmplstofB) #D1228 90e4f35
  • history: fix a bug that history append does not work with set -C (reported by cmplstofB) #D1229 604bb8b
  • decode (ble/builtin/bind): fix widget mapping for default_keymap=safe #D1234 750a9f5
  • main (ble-update): fix a bug that the check of make does not work in Bash 3.2 #D1236 08ced81
  • syntax: fix a infinite loop for variable assignments and parameter expansions #D1239 327661f
  • complete: clear menu on history move #D1248 06cc7de
  • syntax: fix a bug that arguments of eval are not highlighted #D1254 5046d14
  • decode: fix error message command=${[key]-} for mouse input #D1263 09bb274
  • [ble-0.3] reload: fix a bug that the state is broken by ble-reload #D1266 f2f30d1
  • decode (ble/builtin/bind): remove comment from bind argument #D1267 880bb2c
  • decode: use BRE instead of ERE for POSIX sed (reported by dylankb) #D1283 2184739
  • decode: fix strange behaviors after fzf (convert DEL to C-?) #D1281 744c8e8
  • edit: work around Bash rebinding on TERM change #D1287 ac7ab55 7a99bf3
  • term: work around terminfo/termcap entry collisions in tput (reported by killermoehre) #D1289 f8c54ef
  • complete: clear menu on discard-line (reported by animecyc) #D1290 fb794b3 #D1315 99880ef
  • vi (vi-command/nth-column): fix a bug in arithmetic expansion (reported by andychu) #D1292 da6cc47
  • complete: fix a bug that insert-word does not for with ambiguous candidates #D1295 2f9a000
  • complete: fix a bug that menu-filter is only partially turned off by complete_menu_filter #D1298 b3654e2
  • decode: fix error messages for unsupported readline functions #D1301 91bdb64
  • global: work around shopt -s assoc_expand_once #D1305 31908e1
  • global: work around TMOUT for builtin read #D1306 1c22a9d
  • syntax: fix failglob errors of heredocs of the form <<$(echo A) #D1308 3212fd2
  • decode (ble-bind): fix an error message #D1311 c868b6d
  • util (bleopt): fix a bug that a new setting is not defined with name:= (test-util) #D1312 c757b92
  • util (ble/util/{save,restore}-vars): fix a bug that name and prefix cannot be saved/restored (test-util) 5f2480c
  • util: fix ble/is-{inttype,readonly,transformed} (test-util) 485e1ac
  • util (ble/path#remove{,-glob}): fix corner cases (test-util) ccbc9f8
  • history: fix a problem that the history is doubled by history -a in bashrc #D1314 34821fe
  • util (ble/variable#get-attr): fix an error message with special variable names such as ? and * #D1321 557b774
  • util (has-glob-pattern): fix abort in subshells (test-util) #D1326 dc292a2
  • edit: fix a bug that set +H is cancelled on command execution #D1332 02bdf4e
  • syntax (ble/syntax/parse/shift): fix a bug of shift skip in nested words #D1333 65fbba0
  • global: work around Bash-4.4 return in trap handlers #D1334 aa09d15
  • util (ble-stackdump): fix a shift of line numbers #D1337 a14b72f d785b64
  • edit (ble-bind -x): check range of READLINE_{POINT,MARK} #D1339 efe1e81
  • main: fix a bug that ~/.config/blesh/init.sh is not detected (GitHub #53 by rux616) 61f9e10
  • util (ble/string#to{upper,lower}): work around LC_COLLATE=en_US.utf8 (test-util) #D1341 1f6b44e #D1355 4da6103 5f0d49f
  • util (encoding, keyseq): fix miscelleneous encoding bugs (test-util) 435bd16
    • ble/util/c2keyseq: work around bash ambiguous keyseq \M-\C-\\
    • ble/util/c2keyseq: fix a bug that C1 characters are not properly encoded
    • ble/util/keyseq2chars: fix a bug that \xHH is not properly processed
    • ble/encoding:UTF-8/b2c: work around Bash-4.2 arithmetic crash
    • ble/encoding:UTF-8/b2c: fix a bug that G0 characters lose its seventh bit
    • ble/encoding:UTF-8/c2b: fix a bug that the first byte gets redundant bits
  • edit: work around WINCH not updating COLUMNS/LINES after ble-reload #D1345 a190455
  • complete: initialize bleopt complete_menu_style options before complete_load hook (reported by rux616) #D1352 8a9a386
  • main: fix problems caused by multiple source ble.sh in bashrc #D1354 5476933
  • syntax: allow single-character variable name in named redirections {a}<> #D1360 4760409
  • complete: quote # and ~ at the beginning of word #D1362 f62fe54
  • decode (bind): work around shopt -s nocasematch (reported by tigger04) #D1372 855cacf
  • syntax (tree-enumerate): fix unmodified wtype of reconstructed words at the end #D1385 98576c7
  • complete: fix a bug that progcomp retry by 124 caused the default completion again #D1386 98576c7
  • complete: fix bugs that quotation disappears on ambiguous completion #D1387 98576c7
  • complete: fix a bug of duplicated completions of filenames with spaces #D1390 98576c7
  • complete: fix superlinear performace of ambiguous matching globpat #D1389 71afaba
  • prompt: fix extra spaces on line folding before double width character #D1400 d84bcd8
  • prompt: fix a bug that lonig rps1 is not correctly turned off #D1401 d84bcd8
  • syntax (glob bracket expression): fix a bug of unsupported POSIX brackets #D1402 6fd9e22
  • syntax (ble/syntax:bash/simple-word/evaluate-path-spec): fix a bug of unrecognized [!...] and [^...] #D1403 0b842f5
  • complete (cd): fix duplicate candidates by CDPATH (reported by Lennart00 at oh-my-bash) #D1415 5777d7f
  • complete (source:file): fix a bug that tilde expansion candidates are always filtered out #D1416 5777d7f
  • complete: fix a problem of redundant unmatched ambiguous part with tilde expansions in the common prefix #D1417 5777d7f
  • highlight: fix remaininig highlighting of vanishing words #D1421 #D1422 1066653
  • complete: fix a problem that the user setting dotglob is changed #D1425 987436d

Compatibility

  • main: work around cygwin uninitialized environment #D1225 #D1226 b9278bc
  • global: work around Bash 3.2 bug of array initialization with SOH/DEL #D1238 defdbd4 #D1241 1720ec0
  • term: support TERM=minix #D1262 ae0b80f
  • msys2: support2 MSYS (motivated by SUCHMOKUO) #D1264 47e2863
    • edit: support \$ in PS1 for MSYS2 #D1265 f6f8956
    • msys2: work around MSYS2 Bash bug of missing CR #D1270 71f3498
    • cygwin, msys2: support widget paste-from-clipboard #D1271 cd26c65
  • msys1: support MSYS1 #D1272 630d659
    • msys1: work around missing named pipes in MSYS1 #D1273 6f6c2e5
  • term: support contra SPD #D1288 1e65f2c
  • decode: work around Bash-4.1 bug that locale not applied with LC_CTYPE=C eval command (test-util) b2c7d1c
  • util (ble/variable#get-attr): fix a bug that attributes are not obtained in Bash <= 4.3 (test-util) b2c7d1c
  • decode: work around Bash-3.1 bug of declare -f rejecting special characters in function names (test-util) b2c7d1c
  • edit (ble/widget/bracketed-paste): fix error messages on paste_end in older version of Bash (test-util) b2c7d1c
  • decode: work around Bash-4.1 arithmetic bug of array subscripts evaluated in discarded branches #D1320 557b774
  • complete: follow Bash-5.1 change of arithmetic literal 10# #D1322 557b774
  • decode: fix a bug of broken cmap cache found in ble-0.3 #D1327 16b56bf
  • util (strftime): fix a bug not working with -v var option in Bash <= 4.1 (test-util) f1a2818
  • complete: work around slow compgen -c in Cygwin #D1329 5327f5d
  • edit: work around problems with mc (reported by onelittlehope) #D1392 e97aa07
    • highlight: fix a problem that the attribute of the last character is applied till EOL #D1393 2ddb1ba #D1395 ef09932

Internal changes and fixes

  • util: merge ble/util/{save,restore}-{arrs => vars} #D1217 6acb9a3
  • internal: merge subdir test into memo #D1230 f0c38b6
  • ble-measure: improve calibration DD1231 d3a7a52
  • vi_test: fix a bug that test fails to restore the original state #D1232 4b882fb
  • decode (ble/builtin/bind): skip checking stdin in parsing the keyseq #D1235 5f949e8
  • syntax: delay load of ble/syntax/parse for syntax highlighting #D1237 bb31b11
  • memo: split memo.txt -> note.txt, done.txt and ChangeLog.md #D1243 31bc9aa 8b0fe34 419155e
  • global: check isolated identifiers and leak variables #D1246 19cc99d 2e74b6d
  • util: add ble/function#{advice,push,pop} to patch functions (motivated by dylankb) #D1275 fbe531a
  • util (ble/util/stackdump): output to stdout instead of stderr #D1279 9d3c50d
  • complete (ble-sabbrev): delay initialization #D1282 dfc4f66
  • test: update lib/test-{core => util}.sh (reported by andychu) #D1294 e835b0d
  • edit: improve performance of bracketed-paste #D1296 0a45596 #D1300 3f33dab #D1302 5ee06c8 10ad274
  • decode: improve performance of ble-decode-char #D1297 0d9d867
  • ext: update mwg_pp.awk (for branch osh) 978ea32
  • test: add lib/core-test.sh #D1309 68f8077
  • global: do not use local -i #D1310 f9f0f9b
  • global: normalize calls of builtins #D1313 b3b06f7
  • test: refactor test #D1316 #D1317 6c2f863
  • util (ble/util/openat): change to open unused fds #D1318 6c2f863
  • util: rename ble/{util/openat => fd#alloc} #D1319 6c2f863
  • util (ble/function#advice remove): restore original command 149a640
  • edit: rename ble-edit/prompt/* -> ble/prompt/* #D1365 76be6f1
  • main: use PROMPT_COMMAND in bash-5.1 for prompt attach #D1380 b852a4f
  • main: unset BLE_VERSION, _ble_bash, etc. on ble-unload #D1382 6b615b6
  • util: revisit ble/variable#is-global implementation #D1383 6b5468f
  • cmap: recognize SS3 O as blur #D1384 445a5ad
  • edit (ble/widget/{accept-line,newline}): automatically switch widgets by the keymap #D1391 5bed6e6
  • complete: perform filter in ble/complete/cand/yield #D1404 7c6b67b 83fa830
    • complete: fix a bug that ble/cmdinfo/complete:cd candidates are unfiltered (reported by cmplstofB) #D1413 5c17a31
    • complete: fix unfiltered tilde expansions #D1414 5777d7f
    • complete: fix candidate filter failure in dynamic sabbrev expansion (reported by darrSonik) #D1423 dabc515
  • syntax, edit: use type -a -t -- cmd to get command types hidden by keywords #D1406 ef2d912
  • edit, complete: replace some external commands with Bash builtin #D1407 5386e93

Don't miss a new ble.sh release

NewReleases is sending notifications on new releases.