akinomyoga / ble.sh

Bash Line Editor―a line editor written in pure Bash with syntax highlighting, auto suggestions, vim modes, etc. for Bash interactive sessions.
BSD 3-Clause "New" or "Revised" License
2.69k stars 85 forks source link

[構文強調] face:型で配色指定すると[コマンドを入力した後に入力ができなくなる #20

Closed cmplstofB closed 5 years ago

cmplstofB commented 5 years ago

Commit ID: ec31aab Bash version: 4.4.23

(いつもお世話になっております)

ビルトインコマンドの配色をface:型で指定した場合,

$ [@

上のようなコマンドラインを入力した時点で 「-bash: -: 構文エラー: オペランドが予期されます (エラーのあるトークンは "-")」 という警告が発生し,それ以降,何かキーを入力する度に同様の警告が発生します。 また,[コマンドではなくtestコマンドを入力した際は,通常通り入力できました。


現在,以下のような配色設定をble.shの設定ファイルで行なっています(再現する最小の構成を抜粋; 2行目をface:型の指定にしないことで上述の不具合は生じなくなる)。

ble-color-setface syntax_command           bold,fg=green
ble-color-setface command_builtin          face:syntax_command

なお,長い上に蛇足気味ですが,当該の不具合が生じた付近のログは以下になりました。

(入力: export PS4='+ ${BASH_SOURCE/#"${HOME}"/\~}:${FUNCNAME:+$FUNCNAME():}${LINENO}: '; set -o xtrace<Enter>)
(中略)
(入力: [)
+++ ~/share/blesh/ble.sh:ble/util/buffer.flush():1: _ble_util_buffer=()
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: ble/util/idle.clock/.initialize
+++ ~/share/blesh/ble.sh:ble/util/idle.clock/.initialize():1: :
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: ble/util/idle.clock/.restart
+++ ~/share/blesh/ble.sh:ble/util/idle.clock/.restart():1: :
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: local _idle_start=65
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: local _idle_is_first=1
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: local _idle_processed=
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: :
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: local _idle_key
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: local _idle_next_time= _idle_next_itime= _idle_running= _idle_waiting=
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: for _idle_key in "${!_ble_util_idle_task[@]}"
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: ble/util/idle/IS_IDLE
+++ ~/share/blesh/ble.sh:ble/util/idle/IS_IDLE():1: ble-decode/has-input
+++ ~/share/blesh/ble.sh:ble-decode/has-input():1: (( _ble_decode_input_count ))
+++ ~/share/blesh/ble.sh:ble-decode/has-input():1: ble/util/is-stdin-ready
+++ ~/share/blesh/ble.sh:ble-decode/has-input():1: ble/encoding:UTF-8/is-intermediate
+++ ~/share/blesh/ble.sh:ble/encoding:UTF-8/is-intermediate():1: (( _ble_decode_byte__utf_8__mode ))
+++ ~/share/blesh/ble.sh:ble-decode/has-input():1: ble-decode-char/is-intermediate
+++ ~/share/blesh/ble.sh:ble-decode-char/is-intermediate():1: [[ -n '' ]]
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: local _idle_to_process=
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: local _idle_status=I
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: case ${_idle_status::1} in
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: [[ -n 1 ]]
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: _idle_to_process=1
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: [[ -n 1 ]]
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: local _idle_command=ble-complete/menu-filter.idle
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: _idle_processed=1
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: ble/util/idle.do/.call-task ble-complete/menu-filter.idle
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: local _command=ble-complete/menu-filter.idle
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: local ble_util_idle_status=
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: local ble_util_idle_elapsed=0
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: builtin eval ble-complete/menu-filter.idle
++++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: ble-complete/menu-filter.idle
++++ ~/share/blesh/lib/core-complete.sh:ble-complete/menu-filter.idle():1: ble/util/idle.wait-user-input
++++ ~/share/blesh/ble.sh:ble/util/idle.wait-user-input():1: [[ -n set ]]
++++ ~/share/blesh/ble.sh:ble/util/idle.wait-user-input():1: ble_util_idle_status=I
++++ ~/share/blesh/lib/core-complete.sh:ble-complete/menu-filter.idle():1: [[ -n 1 ]]
++++ ~/share/blesh/lib/core-complete.sh:ble-complete/menu-filter.idle():1: [[ -n '' ]]
++++ ~/share/blesh/lib/core-complete.sh:ble-complete/menu-filter.idle():1: return
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: local ext=1
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: (( ext==148 ))
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: [[ -n I ]]
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: _ble_util_idle_task[_idle_key]=I:ble-complete/menu-filter.idle
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: [[ I == [WS]* ]]
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: [[ I == R ]]
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: [[ I == [FEPC]* ]]
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: return 1
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: (( 1==148 ))
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: for _idle_key in "${!_ble_util_idle_task[@]}"
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: ble/util/idle/IS_IDLE
+++ ~/share/blesh/ble.sh:ble/util/idle/IS_IDLE():1: ble-decode/has-input
+++ ~/share/blesh/ble.sh:ble-decode/has-input():1: (( _ble_decode_input_count ))
+++ ~/share/blesh/ble.sh:ble-decode/has-input():1: ble/util/is-stdin-ready
+++ ~/share/blesh/ble.sh:ble-decode/has-input():1: ble/encoding:UTF-8/is-intermediate
+++ ~/share/blesh/ble.sh:ble/encoding:UTF-8/is-intermediate():1: (( _ble_decode_byte__utf_8__mode ))
+++ ~/share/blesh/ble.sh:ble-decode/has-input():1: ble-decode-char/is-intermediate
+++ ~/share/blesh/ble.sh:ble-decode-char/is-intermediate():1: [[ -n '' ]]
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: local _idle_to_process=
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: local _idle_status=I
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: case ${_idle_status::1} in
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: [[ -n 1 ]]
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: _idle_to_process=1
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: [[ -n 1 ]]
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: local _idle_command=ble-complete/auto-complete.idle
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: _idle_processed=1
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: ble/util/idle.do/.call-task ble-complete/auto-complete.idle
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: local _command=ble-complete/auto-complete.idle
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: local ble_util_idle_status=
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: local ble_util_idle_elapsed=0
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: builtin eval ble-complete/auto-complete.idle
++++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: ble-complete/auto-complete.idle
++++ ~/share/blesh/lib/core-complete.sh:ble-complete/auto-complete.idle():1: ble/util/idle.wait-user-input
++++ ~/share/blesh/ble.sh:ble/util/idle.wait-user-input():1: [[ -n set ]]
++++ ~/share/blesh/ble.sh:ble/util/idle.wait-user-input():1: ble_util_idle_status=I
++++ ~/share/blesh/lib/core-complete.sh:ble-complete/auto-complete.idle():1: [[ -n 1 ]]
++++ ~/share/blesh/lib/core-complete.sh:ble-complete/auto-complete.idle():1: [[ vi_imap == emacs ]]
++++ ~/share/blesh/lib/core-complete.sh:ble-complete/auto-complete.idle():1: [[ vi_imap == vi_[ic]map ]]
++++ ~/share/blesh/lib/core-complete.sh:ble-complete/auto-complete.idle():1: case $_ble_decode_widget_last in
++++ ~/share/blesh/lib/core-complete.sh:ble-complete/auto-complete.idle():1: return 0
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: local ext=0
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: (( ext==148 ))
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: [[ -n I ]]
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: _ble_util_idle_task[_idle_key]=I:ble-complete/auto-complete.idle
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: [[ I == [WS]* ]]
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: [[ I == R ]]
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: [[ I == [FEPC]* ]]
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.call-task():1: return 0
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: (( 0==148 ))
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: _idle_is_first=
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: ble/util/idle.do/.sleep-until-next
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.sleep-until-next():1: ble/util/idle/IS_IDLE
+++ ~/share/blesh/ble.sh:ble/util/idle/IS_IDLE():1: ble-decode/has-input
+++ ~/share/blesh/ble.sh:ble-decode/has-input():1: (( _ble_decode_input_count ))
+++ ~/share/blesh/ble.sh:ble-decode/has-input():1: ble/util/is-stdin-ready
+++ ~/share/blesh/ble.sh:ble-decode/has-input():1: ble/encoding:UTF-8/is-intermediate
+++ ~/share/blesh/ble.sh:ble/encoding:UTF-8/is-intermediate():1: (( _ble_decode_byte__utf_8__mode ))
+++ ~/share/blesh/ble.sh:ble-decode/has-input():1: ble-decode-char/is-intermediate
+++ ~/share/blesh/ble.sh:ble-decode-char/is-intermediate():1: [[ -n '' ]]
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.sleep-until-next():1: [[ -n '' ]]
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.sleep-until-next():1: local isfirst=1
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.sleep-until-next():1: local sleep_amount=
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.sleep-until-next():1: [[ -n '' ]]
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.sleep-until-next():1: [[ -n '' ]]
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.sleep-until-next():1: [[ -n 1 ]]
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.sleep-until-next():1: [[ -n '' ]]
+++ ~/share/blesh/ble.sh:ble/util/idle.do/.sleep-until-next():1: (( sleep_amount>0 ))
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: local ext=0
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: (( ext==148 ))
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: [[ -n '' ]]
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: break
+++ ~/share/blesh/ble.sh:ble/util/idle.do():1: [[ -n 1 ]]
+++ ~/share/blesh/ble.sh:ble-edit/bind/.tail():1: ble/textarea#render
+++ ~/share/blesh/ble.sh:ble/textarea#render():1: local caret_state=0:0:::
+++ ~/share/blesh/ble.sh:ble/textarea#render():1: [[ -1 -lt 0 ]]
+++ ~/share/blesh/ble.sh:ble/textarea#render():1: [[ ! -n '' ]]
+++ ~/share/blesh/ble.sh:ble/textarea#render():1: [[ 0:0::: == \0\:\0\:\:\: ]]
+++ ~/share/blesh/ble.sh:ble/textarea#render():1: ble/textarea#focus
+++ ~/share/blesh/ble.sh:ble/textarea#focus():1: DRAW_BUFF=()
+++ ~/share/blesh/ble.sh:ble/textarea#focus():1: local -a DRAW_BUFF
+++ ~/share/blesh/ble.sh:ble/textarea#focus():1: ble/canvas/panel#goto.draw 0 2 1
+++ ~/share/blesh/ble.sh:ble/canvas/panel#goto.draw():1: local index=0 x=2 y=1 ret
+++ ~/share/blesh/ble.sh:ble/canvas/panel#goto.draw():1: ble/arithmetic/sum
+++ ~/share/blesh/ble.sh:ble/arithmetic/sum():1: IFS=+
+++ ~/share/blesh/ble.sh:ble/arithmetic/sum():1: eval 'let "ret=$*+0"'
++++ ~/share/blesh/ble.sh:ble/arithmetic/sum():1: let ret=+0
+++ ~/share/blesh/ble.sh:ble/canvas/panel#goto.draw():1: ble/canvas/goto.draw 2 1
+++ ~/share/blesh/ble.sh:ble/canvas/goto.draw():1: local -i x=2 y=1
+++ ~/share/blesh/ble.sh:ble/canvas/goto.draw():1: ble/canvas/put.draw ''
+++ ~/share/blesh/ble.sh:ble/canvas/put.draw():1: DRAW_BUFF[${#DRAW_BUFF[*]}]=''
+++ ~/share/blesh/ble.sh:ble/canvas/goto.draw():1: local -i dy=y-_ble_canvas_y
+++ ~/share/blesh/ble.sh:ble/canvas/goto.draw():1: (( dy!=0 ))
+++ ~/share/blesh/ble.sh:ble/canvas/goto.draw():1: local -i dx=x-_ble_canvas_x
+++ ~/share/blesh/ble.sh:ble/canvas/goto.draw():1: (( dx!=0 ))
+++ ~/share/blesh/ble.sh:ble/canvas/goto.draw():1: _ble_canvas_x=2
+++ ~/share/blesh/ble.sh:ble/canvas/goto.draw():1: _ble_canvas_y=1
+++ ~/share/blesh/ble.sh:ble/textarea#focus():1: ble/canvas/bflush.draw
+++ ~/share/blesh/ble.sh:ble/canvas/bflush.draw():1: IFS=
+++ ~/share/blesh/ble.sh:ble/canvas/bflush.draw():1: builtin eval 'ble/util/buffer "${DRAW_BUFF[*]}"'
++++ ~/share/blesh/ble.sh:ble/canvas/bflush.draw():1: ble/util/buffer ''
++++ ~/share/blesh/ble.sh:ble/util/buffer():1: _ble_util_buffer[${#_ble_util_buffer[@]}]=''
+++ ~/share/blesh/ble.sh:ble/canvas/bflush.draw():1: DRAW_BUFF=()
+++ ~/share/blesh/ble.sh:ble/textarea#render():1: return
+++ ~/share/blesh/ble.sh:ble-edit/bind/.tail():1: ble/textarea#adjust-for-bash-bind
+++ ~/share/blesh/ble.sh:ble/textarea#adjust-for-bash-bind():1: [[ -n 1 ]]
+++ ~/share/blesh/ble.sh:ble/textarea#adjust-for-bash-bind():1: PS1=
+++ ~/share/blesh/ble.sh:ble/textarea#adjust-for-bash-bind():1: READLINE_LINE='
'
+++ ~/share/blesh/ble.sh:ble/textarea#adjust-for-bash-bind():1: READLINE_POINT=0
+++ ~/share/blesh/ble.sh:ble-edit/bind/.tail():1: ble-edit/bind/stdout.off
+++ ~/share/blesh/ble.sh:ble-edit/bind/stdout.off():1: ble/util/buffer.flush
+++ ~/share/blesh/ble.sh:ble/util/buffer.flush():1: IFS=
+++ ~/share/blesh/ble.sh:ble/util/buffer.flush():1: builtin eval 'builtin echo -n "${_ble_util_buffer[*]-}"'
++++ ~/share/blesh/ble.sh:ble/util/buffer.flush():1: builtin echo -n ''
+++ ~/share/blesh/ble.sh:ble/util/buffer.flush():1: _ble_util_buffer=()
+++ ~/share/blesh/ble.sh:ble-edit/bind/stdout.off():1: ble-edit/bind/stdout/check-stderr
+++ ~/share/blesh/ble.sh:ble-edit/bind/stdout/check-stderr():1: local file=/run/user/1000/blesh/16760.stderr
+++ ~/share/blesh/ble.sh:ble-edit/bind/stdout/check-stderr():1: ble/is-function ble/term/visible-bell
+++ ~/share/blesh/ble.sh:ble/is-function():1: builtin declare -F ble/term/visible-bell
+++ ~/share/blesh/ble.sh:ble-edit/bind/stdout/check-stderr():1: [[ -f /run/user/1000/blesh/16760.stderr ]]
+++ ~/share/blesh/ble.sh:ble-edit/bind/stdout/check-stderr():1: [[ -s /run/user/1000/blesh/16760.stderr ]]
+++ ~/share/blesh/ble.sh:ble-edit/bind/stdout/check-stderr():1: local message= line
+++ ~/share/blesh/ble.sh:ble-edit/bind/stdout/check-stderr():1: IFS=
+++ ~/share/blesh/ble.sh:ble-edit/bind/stdout/check-stderr():1: builtin read -r line
 ]]
 == \b\a\s\h\:\ * ]]
 == \b\a\s\h\:\ * ]]
+++ ~/share/blesh/ble.sh:ble-edit/bind/stdout/check-stderr():1: IFS=
+++ ~/share/blesh/ble.sh:ble-edit/bind/stdout/check-stderr():1: builtin read -r line
+++ ~/share/blesh/ble.sh:ble-edit/bind/stdout/check-stderr():1: [[ -n '' ]]
+++ ~/share/blesh/ble.sh:ble-edit/bind/stdout/check-stderr():1: [[ -n '' ]]
+++ ~/share/blesh/ble.sh:ble-edit/bind/stdout/check-stderr():1: :
+++ ~/share/blesh/ble.sh:ble-edit/bind/stdout.off():1: exec
++ ~/share/blesh/ble.sh:ble-edit/bind/.head():1: [[ -n 1 ]]
++ ~/share/blesh/ble.sh:ble-decode/PROLOGUE():1: ble-decode-bind/uvw
++ ~/share/blesh/ble.sh:ble-decode-bind/uvw():1: [[ -n 1 ]]
++ ~/share/blesh/ble.sh:ble-decode-bind/uvw():1: return
++ ~/share/blesh/ble.sh:ble-decode/PROLOGUE():1: ble/term/enter
++ ~/share/blesh/ble.sh:ble/term/enter():1: [[ internal == internal ]]
++ ~/share/blesh/ble.sh:ble/term/enter():1: return
++ ~/share/blesh/ble.sh:ble-decode/.hook():1: (( _ble_decode_input_count>=100 ))
++ ~/share/blesh/ble.sh:ble-decode/.hook():1: local c
++ ~/share/blesh/ble.sh:ble-decode/.hook():1: for c in "${chars[@]}"
++ ~/share/blesh/ble.sh:ble-decode/.hook():1: (( --_ble_decode_input_count ))
++ ~/share/blesh/ble.sh:ble-decode/.hook():1: (( _ble_keylogger_enabled ))
++ ~/share/blesh/ble.sh:ble-decode/.hook():1: ble/encoding:UTF-8/decode 91
++ ~/share/blesh/ble.sh:ble/encoding:UTF-8/decode():1: local code=27
++ ~/share/blesh/ble.sh:ble/encoding:UTF-8/decode():1: local mode=0
++ ~/share/blesh/ble.sh:ble/encoding:UTF-8/decode():1: local byte=91
++ ~/share/blesh/ble.sh:ble/encoding:UTF-8/decode():1: local cha0= char=
++ ~/share/blesh/ble.sh:ble/encoding:UTF-8/decode():1: (( 
    byte&=0xFF,
    (mode!=0&&(byte&0xC0)!=0x80)&&(
      cha0=_ble_decode_Erro|code,mode=0
    ),
    byte<0xF0?(
      byte<0xC0?(
        byte<0x80?(
          char=byte
        ):(
          mode==0?(
            char=_ble_decode_Erro|byte
          ):(
            code=code<<6|byte&0x3F,
            --mode==0&&(char=code)
          )
        )
      ):(
        byte<0xE0?(
          code=byte&0x1F,mode=1
        ):(
          code=byte&0x0F,mode=2
        )
      )
    ):(
      byte<0xFC?(
        byte<0xF8?(
          code=byte&0x07,mode=3
        ):(
          code=byte&0x03,mode=4
        )
      ):(
        byte<0xFE?(
          code=byte&0x01,mode=5
        ):(
          char=_ble_decode_Erro|byte
        )
      )
    )
   ))
++ ~/share/blesh/ble.sh:ble/encoding:UTF-8/decode():1: _ble_decode_byte__utf_8__code=27
++ ~/share/blesh/ble.sh:ble/encoding:UTF-8/decode():1: _ble_decode_byte__utf_8__mode=0
++ ~/share/blesh/ble.sh:ble/encoding:UTF-8/decode():1: CHARS=($cha0 $char)
++ ~/share/blesh/ble.sh:ble/encoding:UTF-8/decode():1: local -a CHARS
++ ~/share/blesh/ble.sh:ble/encoding:UTF-8/decode():1: (( 1 ))
++ ~/share/blesh/ble.sh:ble/encoding:UTF-8/decode():1: ble-decode-char 91
++ ~/share/blesh/ble.sh:ble-decode-char():1: (( 1 ))
++ ~/share/blesh/ble.sh:ble-decode-char():1: local char=91
++ ~/share/blesh/ble.sh:ble-decode-char():1: shift
++ ~/share/blesh/ble.sh:ble-decode-char():1: (( _ble_keylogger_enabled ))
++ ~/share/blesh/ble.sh:ble-decode-char():1: (( char&_ble_decode_Erro ))
++ ~/share/blesh/ble.sh:ble-decode-char():1: [[ -n '' ]]
++ ~/share/blesh/ble.sh:ble-decode-char():1: local ent
++ ~/share/blesh/ble.sh:ble-decode-char():1: ble-decode-char/.getent
++ ~/share/blesh/ble.sh:ble-decode-char/.getent():1: builtin eval 'ent=${_ble_decode_cmap_[char]-}'
+++ ~/share/blesh/ble.sh:ble-decode-char/.getent():1: ent=
++ ~/share/blesh/ble.sh:ble-decode-char/.getent():1: local csistat=
++ ~/share/blesh/ble.sh:ble-decode-char/.getent():1: ble-decode-char/csi/consume 91
++ ~/share/blesh/ble.sh:ble-decode-char/csi/consume():1: csistat=
++ ~/share/blesh/ble.sh:ble-decode-char/csi/consume():1: (( _ble_decode_csi_mode==0&&91!=27&&91!=155 ))
++ ~/share/blesh/ble.sh:ble-decode-char/csi/consume():1: return 1
++ ~/share/blesh/ble.sh:ble-decode-char/.getent():1: [[ -n '' ]]
++ ~/share/blesh/ble.sh:ble-decode-char():1: [[ ! -n '' ]]
++ ~/share/blesh/ble.sh:ble-decode-char():1: [[ -n '' ]]
++ ~/share/blesh/ble.sh:ble-decode-char():1: ble-decode-char/.send-modified-key 91
++ ~/share/blesh/ble.sh:ble-decode-char/.send-modified-key():1: local kcode=91
++ ~/share/blesh/ble.sh:ble-decode-char/.send-modified-key():1: (( kcode==_ble_decode_KCODE_IGNORE ))
++ ~/share/blesh/ble.sh:ble-decode-char/.send-modified-key():1: (( 0<=kcode&&kcode<32 ))
++ ~/share/blesh/ble.sh:ble-decode-char/.send-modified-key():1: (( 91==27 ))
++ ~/share/blesh/ble.sh:ble-decode-char/.send-modified-key():1: (( 91==_ble_decode_IsolatedESC ))
++ ~/share/blesh/ble.sh:ble-decode-char/.send-modified-key():1: (( _ble_decode_KCODE_SHIFT<=91&&91<=_ble_decode_KCODE_HYPER ))
++ ~/share/blesh/ble.sh:ble-decode-char/.send-modified-key():1: [[ -n '' ]]
++ ~/share/blesh/ble.sh:ble-decode-char/.send-modified-key():1: ble-decode-key 91
++ ~/share/blesh/ble.sh:ble-decode-key():1: local key
++ ~/share/blesh/ble.sh:ble-decode-key():1: for key in "$@"
++ ~/share/blesh/ble.sh:ble-decode-key():1: (( _ble_keylogger_enabled ))
++ ~/share/blesh/ble.sh:ble-decode-key():1: [[ -n '' ]]
++ ~/share/blesh/ble.sh:ble-decode-key():1: [[ -n '' ]]
++ ~/share/blesh/ble.sh:ble-decode-key():1: local dicthead=_ble_decode_vi_imap_kmap_
++ ~/share/blesh/ble.sh:ble-decode-key():1: builtin eval 'local ent=${_ble_decode_vi_imap_kmap_[key]-}'
+++ ~/share/blesh/ble.sh:ble-decode-key():1: local ent=
++ ~/share/blesh/ble.sh:ble-decode-key():1: [[ '' == 1:* ]]
++ ~/share/blesh/ble.sh:ble-decode-key():1: [[ '' == _ ]]
++ ~/share/blesh/ble.sh:ble-decode-key():1: [[ '' == _:* ]]
++ ~/share/blesh/ble.sh:ble-decode-key():1: ble-decode-key/.invoke-partial-match 91
++ ~/share/blesh/ble.sh:ble-decode-key/.invoke-partial-match():1: local dicthead=_ble_decode_vi_imap_kmap_
++ ~/share/blesh/ble.sh:ble-decode-key/.invoke-partial-match():1: local next=91
++ ~/share/blesh/ble.sh:ble-decode-key/.invoke-partial-match():1: [[ -n '' ]]
++ ~/share/blesh/ble.sh:ble-decode-key/.invoke-partial-match():1: local key=91
++ ~/share/blesh/ble.sh:ble-decode-key/.invoke-partial-match():1: ble-decode-key/ischar 91
++ ~/share/blesh/ble.sh:ble-decode-key/ischar():1: local key=91
++ ~/share/blesh/ble.sh:ble-decode-key/ischar():1: (( (key&_ble_decode_MaskFlag)==0&&32<=key&&key<_ble_decode_FunctionKeyBase ))
++ ~/share/blesh/ble.sh:ble-decode-key/.invoke-partial-match():1: ble-decode/has-input
++ ~/share/blesh/ble.sh:ble-decode/has-input():1: (( _ble_decode_input_count ))
++ ~/share/blesh/ble.sh:ble-decode/has-input():1: ble/util/is-stdin-ready
++ ~/share/blesh/ble.sh:ble-decode/has-input():1: ble/encoding:UTF-8/is-intermediate
++ ~/share/blesh/ble.sh:ble/encoding:UTF-8/is-intermediate():1: (( _ble_decode_byte__utf_8__mode ))
++ ~/share/blesh/ble.sh:ble-decode/has-input():1: ble-decode-char/is-intermediate
++ ~/share/blesh/ble.sh:ble-decode-char/is-intermediate():1: [[ -n '' ]]
++ ~/share/blesh/ble.sh:ble-decode-key/.invoke-partial-match():1: builtin eval 'local command=${_ble_decode_vi_imap_kmap_[1114113]-}'
+++ ~/share/blesh/ble.sh:ble-decode-key/.invoke-partial-match():1: local command=1:ble/widget/self-insert
++ ~/share/blesh/ble.sh:ble-decode-key/.invoke-partial-match():1: command=ble/widget/self-insert
++ ~/share/blesh/ble.sh:ble-decode-key/.invoke-partial-match():1: [[ -n ble/widget/self-insert ]]
++ ~/share/blesh/ble.sh:ble-decode-key/.invoke-partial-match():1: local seq_save=
++ ~/share/blesh/ble.sh:ble-decode-key/.invoke-partial-match():1: ble-decode/widget/.call-keyseq
++ ~/share/blesh/ble.sh:ble-decode/widget/.call-keyseq():1: ble-decode-key/batch/flush
++ ~/share/blesh/ble.sh:ble-decode-key/batch/flush():1: (( 0 ))
++ ~/share/blesh/ble.sh:ble-decode-key/batch/flush():1: return
++ ~/share/blesh/ble.sh:ble-decode/widget/.call-keyseq():1: [[ -n ble/widget/self-insert ]]
++ ~/share/blesh/ble.sh:ble-decode/widget/.call-keyseq():1: local old_suppress=0
++ ~/share/blesh/ble.sh:ble-decode/widget/.call-keyseq():1: local _ble_decode_keylog_depth=1
++ ~/share/blesh/ble.sh:ble-decode/widget/.call-keyseq():1: local WIDGET=ble/widget/self-insert KEYMAP=vi_imap 'LASTWIDGET=ble/widget/vi_imap/accept-single-line-or vi_imap/newline'
++ ~/share/blesh/ble.sh:ble-decode/widget/.call-keyseq():1: KEYS=(${_ble_decode_key__seq//_/ } $key)
++ ~/share/blesh/ble.sh:ble-decode/widget/.call-keyseq():1: local -a KEYS
++ ~/share/blesh/ble.sh:ble-decode/widget/.call-keyseq():1: _ble_decode_widget_last=ble/widget/self-insert
++ ~/share/blesh/ble.sh:ble-decode/widget/.call-keyseq():1: _ble_decode_key__seq=
++ ~/share/blesh/ble.sh:ble-decode/widget/.call-keyseq():1: ble-decode/widget/.invoke-hook 1114115
++ ~/share/blesh/ble.sh:ble-decode/widget/.invoke-hook():1: local kcode=1114115
++ ~/share/blesh/ble.sh:ble-decode/widget/.invoke-hook():1: local dicthead=_ble_decode_vi_imap_kmap_
++ ~/share/blesh/ble.sh:ble-decode/widget/.invoke-hook():1: builtin eval 'local hook=${_ble_decode_vi_imap_kmap_[kcode]-}'
+++ ~/share/blesh/ble.sh:ble-decode/widget/.invoke-hook():1: local hook=1:ble/widget/vi_imap/__before_widget__
++ ~/share/blesh/ble.sh:ble-decode/widget/.invoke-hook():1: hook=ble/widget/vi_imap/__before_widget__
++ ~/share/blesh/ble.sh:ble-decode/widget/.invoke-hook():1: [[ -n ble/widget/vi_imap/__before_widget__ ]]
++ ~/share/blesh/ble.sh:ble-decode/widget/.invoke-hook():1: builtin eval -- ble/widget/vi_imap/__before_widget__
+++ ~/share/blesh/ble.sh:ble-decode/widget/.invoke-hook():1: ble/widget/vi_imap/__before_widget__
+++ ~/share/blesh/keymap/vi.sh:ble/widget/vi_imap/__before_widget__():1: ble/keymap:vi/imap/is-command-white ble/widget/self-insert
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/imap/is-command-white():1: [[ ble/widget/self-insert == ble/widget/self-insert ]]
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/imap/is-command-white():1: return 0
+++ ~/share/blesh/keymap/vi.sh:ble/widget/vi_imap/__before_widget__():1: ble/keymap:vi/imap-repeat/push
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/imap-repeat/push():1: ble/array#push _ble_keymap_vi_irepeat 91:ble/widget/self-insert
+++ ~/share/blesh/ble.sh:ble/array#push():1: builtin eval '_ble_keymap_vi_irepeat+=("${@:2}")'
++++ ~/share/blesh/ble.sh:ble/array#push():1: _ble_keymap_vi_irepeat+=("${@:2}")
++ ~/share/blesh/ble.sh:ble-decode/widget/.call-keyseq():1: builtin eval -- ble/widget/self-insert
+++ ~/share/blesh/ble.sh:ble-decode/widget/.call-keyseq():1: ble/widget/self-insert
+++ ~/share/blesh/ble.sh:ble/widget/self-insert():1: local code=91
+++ ~/share/blesh/ble.sh:ble/widget/self-insert():1: (( code==0 ))
+++ ~/share/blesh/ble.sh:ble/widget/self-insert():1: local ibeg=0 iend=0
+++ ~/share/blesh/ble.sh:ble/widget/self-insert():1: local ret ins
+++ ~/share/blesh/ble.sh:ble/widget/self-insert():1: ble/util/c2s 91
+++ ~/share/blesh/ble.sh:ble/util/c2s():1: [[ ::ja_JP.UTF-8 != \:\:\j\a\_\J\P\.\U\T\F\-\8 ]]
+++ ~/share/blesh/ble.sh:ble/util/c2s():1: ret=
+++ ~/share/blesh/ble.sh:ble/util/c2s():1: [[ ! -n '' ]]
+++ ~/share/blesh/ble.sh:ble/util/c2s():1: ble/util/c2s-impl 91
+++ ~/share/blesh/ble.sh:ble/util/c2s-impl():1: builtin printf -v ret '\\U%08x' 91
+++ ~/share/blesh/ble.sh:ble/util/c2s-impl():1: builtin eval 'ret=$'\''\U0000005b'\'''
++++ ~/share/blesh/ble.sh:ble/util/c2s-impl():1: ret='['
+++ ~/share/blesh/ble.sh:ble/util/c2s():1: _ble_util_c2s_table[$1]='['
+++ ~/share/blesh/ble.sh:ble/widget/self-insert():1: ins='['
+++ ~/share/blesh/ble.sh:ble/widget/self-insert():1: local arg
+++ ~/share/blesh/ble.sh:ble/widget/self-insert():1: ble-edit/content/get-arg 1
+++ ~/share/blesh/ble.sh:ble-edit/content/get-arg():1: local default_value=1
+++ ~/share/blesh/ble.sh:ble-edit/content/get-arg():1: [[ '' == -* ]]
+++ ~/share/blesh/ble.sh:ble-edit/content/get-arg():1: [[ -n '' ]]
+++ ~/share/blesh/ble.sh:ble-edit/content/get-arg():1: arg=1
+++ ~/share/blesh/ble.sh:ble-edit/content/get-arg():1: _ble_edit_arg=
+++ ~/share/blesh/ble.sh:ble/widget/self-insert():1: (( arg<0 ))
+++ ~/share/blesh/ble.sh:ble/widget/self-insert():1: (( arg==0 ))
+++ ~/share/blesh/ble.sh:ble/widget/self-insert():1: [[ ! -n [ ]]
+++ ~/share/blesh/ble.sh:ble/widget/self-insert():1: (( arg>1 ))
+++ ~/share/blesh/ble.sh:ble/widget/self-insert():1: [[ -n 1 ]]
+++ ~/share/blesh/ble.sh:ble/widget/self-insert():1: [[ -n '' ]]
+++ ~/share/blesh/ble.sh:ble/widget/self-insert():1: [[ -n '' ]]
+++ ~/share/blesh/ble.sh:ble/widget/self-insert():1: ble-edit/content/replace 0 0 '['
+++ ~/share/blesh/ble.sh:ble-edit/content/replace():1: local -i beg=0 end=0
+++ ~/share/blesh/ble.sh:ble-edit/content/replace():1: local 'ins=[' reason=edit
+++ ~/share/blesh/ble.sh:ble-edit/content/replace():1: _ble_edit_str='['
+++ ~/share/blesh/ble.sh:ble-edit/content/replace():1: ble-edit/content/.update-dirty-range 0 1 0 edit
+++ ~/share/blesh/ble.sh:ble-edit/content/.update-dirty-range():1: ble/dirty-range#update --prefix=_ble_edit_dirty_draw_ 0 1 0
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: local _prefix=
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: [[ --prefix=_ble_edit_dirty_draw_ == --prefix=* ]]
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: _prefix=_ble_edit_dirty_draw_
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: shift
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: [[ -n _ble_edit_dirty_draw_ ]]
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: local beg end end0
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: local begB=0 endB=1 endB0=0
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: (( begB<0 ))
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: local begA endA endA0
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: (( begA=_ble_edit_dirty_draw_beg,endA=_ble_edit_dirty_draw_end,endA0=_ble_edit_dirty_draw_end0 ))
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: local delta
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: (( begA<0 ))
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: (( beg=begB,
      end=endB,
      end0=endB0 ))
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: [[ -n _ble_edit_dirty_draw_ ]]
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: (( _ble_edit_dirty_draw_beg=beg,
      _ble_edit_dirty_draw_end=end,
      _ble_edit_dirty_draw_end0=end0 ))
+++ ~/share/blesh/ble.sh:ble-edit/content/.update-dirty-range():1: ble/dirty-range#update --prefix=_ble_edit_dirty_syntax_ 0 1 0
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: local _prefix=
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: [[ --prefix=_ble_edit_dirty_syntax_ == --prefix=* ]]
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: _prefix=_ble_edit_dirty_syntax_
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: shift
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: [[ -n _ble_edit_dirty_syntax_ ]]
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: local beg end end0
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: local begB=0 endB=1 endB0=0
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: (( begB<0 ))
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: local begA endA endA0
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: (( begA=_ble_edit_dirty_syntax_beg,endA=_ble_edit_dirty_syntax_end,endA0=_ble_edit_dirty_syntax_end0 ))
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: local delta
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: (( begA<0 ))
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: (( beg=begB,
      end=endB,
      end0=endB0 ))
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: [[ -n _ble_edit_dirty_syntax_ ]]
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: (( _ble_edit_dirty_syntax_beg=beg,
      _ble_edit_dirty_syntax_end=end,
      _ble_edit_dirty_syntax_end0=end0 ))
+++ ~/share/blesh/ble.sh:ble-edit/content/.update-dirty-range():1: ble/textmap#update-dirty-range 0 1 0
+++ ~/share/blesh/ble.sh:ble/textmap#update-dirty-range():1: ble/dirty-range#update --prefix=_ble_textmap_d 0 1 0
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: local _prefix=
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: [[ --prefix=_ble_textmap_d == --prefix=* ]]
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: _prefix=_ble_textmap_d
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: shift
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: [[ -n _ble_textmap_d ]]
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: local beg end end0
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: local begB=0 endB=1 endB0=0
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: (( begB<0 ))
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: local begA endA endA0
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: (( begA=_ble_textmap_dbeg,endA=_ble_textmap_dend,endA0=_ble_textmap_dend0 ))
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: local delta
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: (( begA<0 ))
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: (( beg=begB,
      end=endB,
      end0=endB0 ))
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: [[ -n _ble_textmap_d ]]
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: (( _ble_textmap_dbeg=beg,
      _ble_textmap_dend=end,
      _ble_textmap_dend0=end0 ))
+++ ~/share/blesh/ble.sh:ble-edit/content/.update-dirty-range():1: local obs
+++ ~/share/blesh/ble.sh:ble-edit/content/.update-dirty-range():1: for obs in "${_ble_edit_dirty_observer[@]}"
+++ ~/share/blesh/ble.sh:ble-edit/content/.update-dirty-range():1: ble/keymap:vi/mark/shift-by-dirty-range 0 1 0 edit
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/shift-by-dirty-range():1: local beg=0 end=1 end0=0 reason=edit
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/shift-by-dirty-range():1: [[ edit == edit ]]
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/shift-by-dirty-range():1: ble/dirty-range#update --prefix=_ble_keymap_vi_mark_edit_d 0 1 0
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: local _prefix=
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: [[ --prefix=_ble_keymap_vi_mark_edit_d == --prefix=* ]]
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: _prefix=_ble_keymap_vi_mark_edit_d
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: shift
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: [[ -n _ble_keymap_vi_mark_edit_d ]]
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: local beg end end0
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: local begB=0 endB=1 endB0=0
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: (( begB<0 ))
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: local begA endA endA0
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: (( begA=_ble_keymap_vi_mark_edit_dbeg,endA=_ble_keymap_vi_mark_edit_dend,endA0=_ble_keymap_vi_mark_edit_dend0 ))
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: local delta
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: (( begA<0 ))
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: (( beg=begB,
      end=endB,
      end0=endB0 ))
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: [[ -n _ble_keymap_vi_mark_edit_d ]]
+++ ~/share/blesh/ble.sh:ble/dirty-range#update():1: (( _ble_keymap_vi_mark_edit_dbeg=beg,
      _ble_keymap_vi_mark_edit_dend=end,
      _ble_keymap_vi_mark_edit_dend0=end0 ))
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/shift-by-dirty-range():1: ble/keymap:vi/xmap/update-dirty-range 0 1 0 edit
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/xmap/update-dirty-range():1: [[ '' == ble/widget/vi_xmap/block-insert-mode.onleave ]]
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/shift-by-dirty-range():1: ble/keymap:vi/mark/update-mark-history
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: local h
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: ble-edit/history/get-index -v h
+++ ~/share/blesh/ble.sh:ble-edit/history/get-index():1: local _var=index
+++ ~/share/blesh/ble.sh:ble-edit/history/get-index():1: [[ -v == -v ]]
+++ ~/share/blesh/ble.sh:ble-edit/history/get-index():1: _var=h
+++ ~/share/blesh/ble.sh:ble-edit/history/get-index():1: shift 2
+++ ~/share/blesh/ble.sh:ble-edit/history/get-index():1: [[ -n '' ]]
+++ ~/share/blesh/ble.sh:ble-edit/history/get-index():1: [[ -n 1 ]]
+++ ~/share/blesh/ble.sh:ble-edit/history/get-index():1: (( h=_ble_edit_history_ind ))
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: [[ ! -n 7016 ]]
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: (( _ble_keymap_vi_mark_hindex!=h ))
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: local imark value
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: save=()
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: local -a save
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: for imark in "${!_ble_keymap_vi_mark_local[@]}"
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: local value=0:95
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: ble/array#push save 34:0:95
+++ ~/share/blesh/ble.sh:ble/array#push():1: builtin eval 'save+=("${@:2}")'
++++ ~/share/blesh/ble.sh:ble/array#push():1: save+=("${@:2}")
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: for imark in "${!_ble_keymap_vi_mark_local[@]}"
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: local value=0:1
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: ble/array#push save 46:0:1
+++ ~/share/blesh/ble.sh:ble/array#push():1: builtin eval 'save+=("${@:2}")'
++++ ~/share/blesh/ble.sh:ble/array#push():1: save+=("${@:2}")
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: for imark in "${!_ble_keymap_vi_mark_local[@]}"
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: local value=95:0
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: ble/array#push save 91:95:0
+++ ~/share/blesh/ble.sh:ble/array#push():1: builtin eval 'save+=("${@:2}")'
++++ ~/share/blesh/ble.sh:ble/array#push():1: save+=("${@:2}")
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: for imark in "${!_ble_keymap_vi_mark_local[@]}"
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: local value=95:0
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: ble/array#push save 93:95:0
+++ ~/share/blesh/ble.sh:ble/array#push():1: builtin eval 'save+=("${@:2}")'
++++ ~/share/blesh/ble.sh:ble/array#push():1: save+=("${@:2}")
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: for imark in "${!_ble_keymap_vi_mark_local[@]}"
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: local value=0:0
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: ble/array#push save 96:0:0
+++ ~/share/blesh/ble.sh:ble/array#push():1: builtin eval 'save+=("${@:2}")'
++++ ~/share/blesh/ble.sh:ble/array#push():1: save+=("${@:2}")
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: _ble_keymap_vi_mark_history[_ble_keymap_vi_mark_hindex]='34:0:95 46:0:1 91:95:0 93:95:0 96:0:0'
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: _ble_keymap_vi_mark_local=()
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: local entry
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: _ble_keymap_vi_mark_hindex=7017
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/shift-by-dirty-range():1: local shift=1
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/shift-by-dirty-range():1: local imark
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/shift-by-dirty-range():1: local h
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/shift-by-dirty-range():1: ble-edit/history/get-index -v h
+++ ~/share/blesh/ble.sh:ble-edit/history/get-index():1: local _var=index
+++ ~/share/blesh/ble.sh:ble-edit/history/get-index():1: [[ -v == -v ]]
+++ ~/share/blesh/ble.sh:ble-edit/history/get-index():1: _var=h
+++ ~/share/blesh/ble.sh:ble-edit/history/get-index():1: shift 2
+++ ~/share/blesh/ble.sh:ble-edit/history/get-index():1: [[ -n '' ]]
+++ ~/share/blesh/ble.sh:ble-edit/history/get-index():1: [[ -n 1 ]]
+++ ~/share/blesh/ble.sh:ble-edit/history/get-index():1: (( h=_ble_edit_history_ind ))
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/shift-by-dirty-range():1: ble/keymap:vi/mark/set-local-mark 46 0
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/set-local-mark():1: local c=46 index=0 ret
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/set-local-mark():1: ble/keymap:vi/mark/update-mark-history
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: local h
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: ble-edit/history/get-index -v h
+++ ~/share/blesh/ble.sh:ble-edit/history/get-index():1: local _var=index
+++ ~/share/blesh/ble.sh:ble-edit/history/get-index():1: [[ -v == -v ]]
+++ ~/share/blesh/ble.sh:ble-edit/history/get-index():1: _var=h
+++ ~/share/blesh/ble.sh:ble-edit/history/get-index():1: shift 2
+++ ~/share/blesh/ble.sh:ble-edit/history/get-index():1: [[ -n '' ]]
+++ ~/share/blesh/ble.sh:ble-edit/history/get-index():1: [[ -n 1 ]]
+++ ~/share/blesh/ble.sh:ble-edit/history/get-index():1: (( h=_ble_edit_history_ind ))
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: [[ ! -n 7017 ]]
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/update-mark-history():1: (( _ble_keymap_vi_mark_hindex!=h ))
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/set-local-mark():1: ble-edit/content/find-logical-bol 0
+++ ~/share/blesh/ble.sh:ble-edit/content/find-logical-bol():1: local index=0 offset=0
+++ ~/share/blesh/ble.sh:ble-edit/content/find-logical-bol():1: (( offset>0 ))
+++ ~/share/blesh/ble.sh:ble-edit/content/find-logical-bol():1: (( offset<0 ))
+++ ~/share/blesh/ble.sh:ble-edit/content/find-logical-bol():1: local text=
+++ ~/share/blesh/ble.sh:ble-edit/content/find-logical-bol():1: text=
+++ ~/share/blesh/ble.sh:ble-edit/content/find-logical-bol():1: (( ret=index-0 ))
+++ ~/share/blesh/ble.sh:ble-edit/content/find-logical-bol():1: return 0
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/set-local-mark():1: local bol=0
+++ ~/share/blesh/keymap/vi.sh:ble/keymap:vi/mark/set-local-mark():1: _ble_keymap_vi_mark_local[c]=0:0
+++ ~/share/blesh/ble.sh:ble-edit/content/replace():1: (( 0<=_ble_edit_dirty_syntax_beg&&_ble_edit_dirty_syntax_end<=1 ))
+++ ~/share/blesh/ble.sh:ble/widget/self-insert():1: (( _ble_edit_ind+=1,
    _ble_edit_mark>ibeg&&(
      _ble_edit_mark<iend?(
        _ble_edit_mark=_ble_edit_ind
      ):(
        _ble_edit_mark+=1-(iend-ibeg))) ))
+++ ~/share/blesh/ble.sh:ble/widget/self-insert():1: _ble_edit_mark_active=
+++ ~/share/blesh/ble.sh:ble/widget/self-insert():1: return 0
++ ~/share/blesh/ble.sh:ble-decode/widget/.call-keyseq():1: local ext=0
++ ~/share/blesh/ble.sh:ble-decode/widget/.call-keyseq():1: ble-decode/widget/.invoke-hook 1114116
++ ~/share/blesh/ble.sh:ble-decode/widget/.invoke-hook():1: local kcode=1114116
++ ~/share/blesh/ble.sh:ble-decode/widget/.invoke-hook():1: local dicthead=_ble_decode_vi_imap_kmap_
++ ~/share/blesh/ble.sh:ble-decode/widget/.invoke-hook():1: builtin eval 'local hook=${_ble_decode_vi_imap_kmap_[kcode]-}'
+++ ~/share/blesh/ble.sh:ble-decode/widget/.invoke-hook():1: local hook=
++ ~/share/blesh/ble.sh:ble-decode/widget/.invoke-hook():1: hook=
++ ~/share/blesh/ble.sh:ble-decode/widget/.invoke-hook():1: [[ -n '' ]]
++ ~/share/blesh/ble.sh:ble-decode/widget/.call-keyseq():1: return 0
++ ~/share/blesh/ble.sh:ble-decode-key/.invoke-partial-match():1: local ext=0
++ ~/share/blesh/ble.sh:ble-decode-key/.invoke-partial-match():1: (( ext!=125 ))
++ ~/share/blesh/ble.sh:ble-decode-key/.invoke-partial-match():1: return
++ ~/share/blesh/ble.sh:ble-decode-key():1: continue
++ ~/share/blesh/ble.sh:ble-decode-key():1: (( 0 ))
++ ~/share/blesh/ble.sh:ble-decode-key():1: return 0
++ ~/share/blesh/ble.sh:ble-decode-char():1: (( 0 ))
++ ~/share/blesh/ble.sh:ble-decode-char():1: return 0
++ ~/share/blesh/ble.sh:ble-decode/.hook():1: ble-decode/EPILOGUE
++ ~/share/blesh/ble.sh:ble-decode/EPILOGUE():1: (( _ble_bash>=40000 ))
++ ~/share/blesh/ble.sh:ble-decode/EPILOGUE():1: ble-decode/has-input
++ ~/share/blesh/ble.sh:ble-decode/has-input():1: (( _ble_decode_input_count ))
++ ~/share/blesh/ble.sh:ble-decode/has-input():1: ble/util/is-stdin-ready
++ ~/share/blesh/ble.sh:ble-decode/has-input():1: ble/encoding:UTF-8/is-intermediate
++ ~/share/blesh/ble.sh:ble/encoding:UTF-8/is-intermediate():1: (( _ble_decode_byte__utf_8__mode ))
++ ~/share/blesh/ble.sh:ble-decode/has-input():1: ble-decode-char/is-intermediate
++ ~/share/blesh/ble.sh:ble-decode-char/is-intermediate():1: [[ -n '' ]]
++ ~/share/blesh/ble.sh:ble-decode/EPILOGUE():1: ble-edit/exec:gexec/process
++ ~/share/blesh/ble.sh:ble-edit/exec:gexec/process():1: ble-edit/exec:gexec/.setup
++ ~/share/blesh/ble.sh:ble-edit/exec:gexec/.setup():1: (( 0==0 ))
++ ~/share/blesh/ble.sh:ble-edit/exec:gexec/.setup():1: return 1
++ ~/share/blesh/ble.sh:ble-edit/exec:gexec/process():1: return 1
++ ~/share/blesh/ble.sh:ble-decode/EPILOGUE():1: ble-edit/bind/.tail
++ ~/share/blesh/ble.sh:ble-edit/bind/.tail():1: ble-edit/info/reveal
++ ~/share/blesh/ble.sh:ble-edit/info/reveal():1: [[ default == default ]]
++ ~/share/blesh/ble.sh:ble-edit/info/reveal():1: ble-edit/info/.render-content 12 0 '-- INSERT --'
++ ~/share/blesh/ble.sh:ble-edit/info/.render-content():1: local x=12 y=0 'content=-- INSERT --'
++ ~/share/blesh/ble.sh:ble-edit/info/.render-content():1: [[ -- INSERT -- == \[\0\;\1\m\-\-\ \I\N\S\E\R\T\ \-\-\(\B\[\m ]]
++ ~/share/blesh/ble.sh:ble-edit/info/.render-content():1: return
++ ~/share/blesh/ble.sh:ble-edit/bind/.tail():1: ble/textarea#render
++ ~/share/blesh/ble.sh:ble/textarea#render():1: local caret_state=1:0:::
++ ~/share/blesh/ble.sh:ble/textarea#render():1: [[ 0 -lt 0 ]]
++ ~/share/blesh/ble.sh:ble/textarea#render():1: local ret
++ ~/share/blesh/ble.sh:ble/textarea#render():1: local x y g lc lg=0
++ ~/share/blesh/ble.sh:ble/textarea#render():1: ble-edit/prompt/update
++ ~/share/blesh/ble.sh:ble-edit/prompt/update():1: local version=1
++ ~/share/blesh/ble.sh:ble-edit/prompt/update():1: [[ 1 == \1 ]]
++ ~/share/blesh/ble.sh:ble-edit/prompt/update():1: ble-edit/prompt/.load
++ ~/share/blesh/ble.sh:ble-edit/prompt/.load():1: x=2
++ ~/share/blesh/ble.sh:ble-edit/prompt/.load():1: y=1
++ ~/share/blesh/ble.sh:ble-edit/prompt/.load():1: g=0
++ ~/share/blesh/ble.sh:ble-edit/prompt/.load():1: lc=32
++ ~/share/blesh/ble.sh:ble-edit/prompt/.load():1: lg=0
++ ~/share/blesh/ble.sh:ble-edit/prompt/.load():1: ret='~
$ '
++ ~/share/blesh/ble.sh:ble-edit/prompt/update():1: return
++ ~/share/blesh/ble.sh:ble/textarea#render():1: local prox=2 proy=1 prolc=32 'esc_prompt=~
$ '
++ ~/share/blesh/ble.sh:ble/textarea#render():1: local -a BLELINE_RANGE_UPDATE
++ ~/share/blesh/ble.sh:ble/textarea#render():1: BLELINE_RANGE_UPDATE=("$_ble_edit_dirty_draw_beg" "$_ble_edit_dirty_draw_end" "$_ble_edit_dirty_draw_end0")
++ ~/share/blesh/ble.sh:ble/textarea#render():1: ble/dirty-range#clear --prefix=_ble_edit_dirty_draw_
++ ~/share/blesh/ble.sh:ble/dirty-range#clear():1: local _prefix=
++ ~/share/blesh/ble.sh:ble/dirty-range#clear():1: [[ --prefix=_ble_edit_dirty_draw_ == --prefix=* ]]
++ ~/share/blesh/ble.sh:ble/dirty-range#clear():1: _prefix=_ble_edit_dirty_draw_
++ ~/share/blesh/ble.sh:ble/dirty-range#clear():1: shift
++ ~/share/blesh/ble.sh:ble/dirty-range#clear():1: (( _ble_edit_dirty_draw_beg=-1,
    _ble_edit_dirty_draw_end=-1,
    _ble_edit_dirty_draw_end0=-1 ))
++ ~/share/blesh/ble.sh:ble/textarea#render():1: ble-assert '((BLELINE_RANGE_UPDATE[0]<0||(
       BLELINE_RANGE_UPDATE[0]<=BLELINE_RANGE_UPDATE[1]&&
       BLELINE_RANGE_UPDATE[0]<=BLELINE_RANGE_UPDATE[2])))' '(0 1 0)'
++ ~/share/blesh/ble.sh:ble-assert():1: local 'expr=((BLELINE_RANGE_UPDATE[0]<0||(
       BLELINE_RANGE_UPDATE[0]<=BLELINE_RANGE_UPDATE[1]&&
       BLELINE_RANGE_UPDATE[0]<=BLELINE_RANGE_UPDATE[2])))'
++ ~/share/blesh/ble.sh:ble-assert():1: local '_ble_stackdump_title=assertion failure'
++ ~/share/blesh/ble.sh:ble-assert():1: builtin eval -- '((BLELINE_RANGE_UPDATE[0]<0||(
       BLELINE_RANGE_UPDATE[0]<=BLELINE_RANGE_UPDATE[1]&&
       BLELINE_RANGE_UPDATE[0]<=BLELINE_RANGE_UPDATE[2])))'
+++ ~/share/blesh/ble.sh:ble-assert():1: (( BLELINE_RANGE_UPDATE[0]<0||(
       BLELINE_RANGE_UPDATE[0]<=BLELINE_RANGE_UPDATE[1]&&
       BLELINE_RANGE_UPDATE[0]<=BLELINE_RANGE_UPDATE[2]) ))
++ ~/share/blesh/ble.sh:ble-assert():1: return 0
++ ~/share/blesh/ble.sh:ble/textarea#render():1: local 'text=[' index=1
++ ~/share/blesh/ble.sh:ble/textarea#render():1: local iN=1
++ ~/share/blesh/ble.sh:ble/textarea#render():1: (( index<0?(index=0):(index>iN&&(index=iN)) ))
++ ~/share/blesh/ble.sh:ble/textarea#render():1: local umin=-1 umax=-1
++ ~/share/blesh/ble.sh:ble/textarea#render():1: ble/textmap#update
++ ~/share/blesh/ble.sh:ble/textmap#update():1: local 'IFS=     
'
++ ~/share/blesh/ble.sh:ble/textmap#update():1: local dbeg dend dend0
++ ~/share/blesh/ble.sh:ble/textmap#update():1: (( dbeg=_ble_textmap_dbeg,
    dend=_ble_textmap_dend,
    dend0=_ble_textmap_dend0 ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: ble/dirty-range#clear --prefix=_ble_textmap_d
++ ~/share/blesh/ble.sh:ble/dirty-range#clear():1: local _prefix=
++ ~/share/blesh/ble.sh:ble/dirty-range#clear():1: [[ --prefix=_ble_textmap_d == --prefix=* ]]
++ ~/share/blesh/ble.sh:ble/dirty-range#clear():1: _prefix=_ble_textmap_d
++ ~/share/blesh/ble.sh:ble/dirty-range#clear():1: shift
++ ~/share/blesh/ble.sh:ble/dirty-range#clear():1: (( _ble_textmap_dbeg=-1,
    _ble_textmap_dend=-1,
    _ble_textmap_dend0=-1 ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: local iN=1
++ ~/share/blesh/ble.sh:ble/textmap#update():1: local '_pos=2 1'
++ ~/share/blesh/ble.sh:ble/textmap#update():1: _ble_textmap_begx=2
++ ~/share/blesh/ble.sh:ble/textmap#update():1: _ble_textmap_begy=1
++ ~/share/blesh/ble.sh:ble/textmap#update():1: local cols=178 xenl=1
++ ~/share/blesh/ble.sh:ble/textmap#update():1: (( COLUMNS&&cols<COLUMNS&&(xenl=1) ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: local it=8
++ ~/share/blesh/ble.sh:ble/textmap#update():1: ble/string#reserve-prototype 8
++ ~/share/blesh/ble.sh:ble/string#reserve-prototype():1: local -i n=8 c
++ ~/share/blesh/ble.sh:ble/string#reserve-prototype():1: (( c=8 ))
++ ~/share/blesh/ble.sh:ble/string#reserve-prototype():1: (( c<n ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: (( cols!=_ble_textmap_cols ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: [[ 2 1 != \2\ \1 ]]
++ ~/share/blesh/ble.sh:ble/textmap#update():1: (( dbeg<0 ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: (( dbeg>0 ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: _ble_textmap_cols=178
++ ~/share/blesh/ble.sh:ble/textmap#update():1: _ble_textmap_length=1
++ ~/share/blesh/ble.sh:ble/textmap#update():1: ble-assert '((dbeg<0||(dbeg<=dend&&dbeg<=dend0)))' '(0 1 0) <- (-1 -1 -1)'
++ ~/share/blesh/ble.sh:ble-assert():1: local 'expr=((dbeg<0||(dbeg<=dend&&dbeg<=dend0)))'
++ ~/share/blesh/ble.sh:ble-assert():1: local '_ble_stackdump_title=assertion failure'
++ ~/share/blesh/ble.sh:ble-assert():1: builtin eval -- '((dbeg<0||(dbeg<=dend&&dbeg<=dend0)))'
+++ ~/share/blesh/ble.sh:ble-assert():1: (( dbeg<0||(dbeg<=dend&&dbeg<=dend0) ))
++ ~/share/blesh/ble.sh:ble-assert():1: return 0
++ ~/share/blesh/ble.sh:ble/textmap#update():1: ble/array#reserve-prototype 1
++ ~/share/blesh/ble.sh:ble/array#reserve-prototype():1: local -i n=1 i
++ ~/share/blesh/ble.sh:ble/array#reserve-prototype():1: (( i=95 ))
++ ~/share/blesh/ble.sh:ble/array#reserve-prototype():1: (( i<n ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: local -a old_pos old_ichg
++ ~/share/blesh/ble.sh:ble/textmap#update():1: old_pos=("${_ble_textmap_pos[@]:dend0:iN-dend+1}")
++ ~/share/blesh/ble.sh:ble/textmap#update():1: old_ichg=("${_ble_textmap_ichg[@]}")
++ ~/share/blesh/ble.sh:ble/textmap#update():1: _ble_textmap_pos=("${_ble_textmap_pos[@]::dbeg+1}" "${_ble_array_prototype[@]::dend-dbeg}" "${_ble_textmap_pos[@]:dend0+1:iN-dend}")
++ ~/share/blesh/ble.sh:ble/textmap#update():1: _ble_textmap_glyph=("${_ble_textmap_glyph[@]::dbeg}" "${_ble_array_prototype[@]::dend-dbeg}" "${_ble_textmap_glyph[@]:dend0:iN-dend}")
++ ~/share/blesh/ble.sh:ble/textmap#update():1: _ble_textmap_ichg=()
++ ~/share/blesh/ble.sh:ble/textmap#update():1: ble/urange#shift --prefix=_ble_textmap_ 0 1 0
++ ~/share/blesh/ble.sh:ble/urange#shift():1: local prefix=
++ ~/share/blesh/ble.sh:ble/urange#shift():1: [[ --prefix=_ble_textmap_ == --prefix=* ]]
++ ~/share/blesh/ble.sh:ble/urange#shift():1: prefix=_ble_textmap_
++ ~/share/blesh/ble.sh:ble/urange#shift():1: shift
++ ~/share/blesh/ble.sh:ble/urange#shift():1: local dbeg=0 dend=1 dend0=0 shift=
++ ~/share/blesh/ble.sh:ble/urange#shift():1: (( dbeg>=0 ))
++ ~/share/blesh/ble.sh:ble/urange#shift():1: [[ -n '' ]]
++ ~/share/blesh/ble.sh:ble/urange#shift():1: (( shift=dend-dend0 ))
++ ~/share/blesh/ble.sh:ble/urange#shift():1: (( _ble_textmap_umin>=0&&(
      dbeg<=_ble_textmap_umin&&(_ble_textmap_umin<=dend0?(_ble_textmap_umin=dend):(_ble_textmap_umin+=shift)),
      dbeg<=_ble_textmap_umax&&(_ble_textmap_umax<=dend0?(_ble_textmap_umax=dbeg):(_ble_textmap_umax+=shift))),
    _ble_textmap_umin<_ble_textmap_umax||(
      _ble_textmap_umin=-1,
      _ble_textmap_umax=-1) ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: local i
++ ~/share/blesh/ble.sh:ble/textmap#update():1: (( i=dbeg ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: (( i<iN ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: ble/util/isprint+ '['
++ ~/share/blesh/ble.sh:ble/util/isprint+():1: LC_COLLATE=C
++ ~/share/blesh/ble.sh:ble/util/isprint+():1: ble/util/isprint+.impl '['
++ ~/share/blesh/ble.sh:ble/textmap#update():1: local w=1
++ ~/share/blesh/ble.sh:ble/textmap#update():1: local n
++ ~/share/blesh/ble.sh:ble/textmap#update():1: (( n=i+w ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: (( i<n ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: local 'cs=['
++ ~/share/blesh/ble.sh:ble/textmap#update():1: (( (++x==cols)&&(y++,x=0,xenl) ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: _ble_textmap_glyph[i]='['
++ ~/share/blesh/ble.sh:ble/textmap#update():1: _ble_textmap_pos[i+1]='3 1 0'
++ ~/share/blesh/ble.sh:ble/textmap#update():1: (( i++ ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: (( i<n ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: (( i>=dend ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: [[ 2 1 == \3\ \1\ \0 ]]
++ ~/share/blesh/ble.sh:ble/textmap#update():1: [[ 2 == \3 ]]
++ ~/share/blesh/ble.sh:ble/textmap#update():1: (( 1 ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: (( i<iN ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: (( i<iN ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: local j jN ichg
++ ~/share/blesh/ble.sh:ble/textmap#update():1: (( j=0,jN=0 ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: (( j<jN ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: (( dbeg<i ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: ble/urange#update --prefix=_ble_textmap_ 0 1
++ ~/share/blesh/ble.sh:ble/urange#update():1: local prefix=
++ ~/share/blesh/ble.sh:ble/urange#update():1: [[ --prefix=_ble_textmap_ == --prefix=* ]]
++ ~/share/blesh/ble.sh:ble/urange#update():1: prefix=_ble_textmap_
++ ~/share/blesh/ble.sh:ble/urange#update():1: shift
++ ~/share/blesh/ble.sh:ble/urange#update():1: local min=0 max=1
++ ~/share/blesh/ble.sh:ble/urange#update():1: (( 0<=min&&min<max ))
++ ~/share/blesh/ble.sh:ble/urange#update():1: (( (_ble_textmap_umin<0||min<_ble_textmap_umin)&&(_ble_textmap_umin=min),
    (_ble_textmap_umax<0||_ble_textmap_umax<max)&&(_ble_textmap_umax=max) ))
++ ~/share/blesh/ble.sh:ble/textmap#update():1: _ble_textmap_endx=3
++ ~/share/blesh/ble.sh:ble/textmap#update():1: _ble_textmap_endy=1
++ ~/share/blesh/ble.sh:ble/textarea#render():1: ble/urange#update 0 1
++ ~/share/blesh/ble.sh:ble/urange#update():1: local prefix=
++ ~/share/blesh/ble.sh:ble/urange#update():1: [[ 0 == --prefix=* ]]
++ ~/share/blesh/ble.sh:ble/urange#update():1: local min=0 max=1
++ ~/share/blesh/ble.sh:ble/urange#update():1: (( 0<=min&&min<max ))
++ ~/share/blesh/ble.sh:ble/urange#update():1: (( (umin<0||min<umin)&&(umin=min),
    (umax<0||umax<max)&&(umax=max) ))
++ ~/share/blesh/ble.sh:ble/textarea#render():1: ble/urange#clear --prefix=_ble_textmap_
++ ~/share/blesh/ble.sh:ble/urange#clear():1: local prefix=
++ ~/share/blesh/ble.sh:ble/urange#clear():1: [[ --prefix=_ble_textmap_ == --prefix=* ]]
++ ~/share/blesh/ble.sh:ble/urange#clear():1: prefix=_ble_textmap_
++ ~/share/blesh/ble.sh:ble/urange#clear():1: shift
++ ~/share/blesh/ble.sh:ble/urange#clear():1: (( _ble_textmap_umin=-1,_ble_textmap_umax=-1 ))
++ ~/share/blesh/ble.sh:ble/textarea#render():1: ble/textarea#update-text-buffer
++ ~/share/blesh/ble.sh:ble/textarea#update-text-buffer():1: local iN=1
++ ~/share/blesh/ble.sh:ble/textarea#update-text-buffer():1: local HIGHLIGHT_BUFF HIGHLIGHT_UMIN HIGHLIGHT_UMAX
++ ~/share/blesh/ble.sh:ble/textarea#update-text-buffer():1: ble-highlight-layer/update '['
++ ~/share/blesh/ble.sh:ble-highlight-layer/update():1: local 'text=['
++ ~/share/blesh/ble.sh:ble-highlight-layer/update():1: local -ir DMIN=0
++ ~/share/blesh/ble.sh:ble-highlight-layer/update():1: local -ir DMAX=1
++ ~/share/blesh/ble.sh:ble-highlight-layer/update():1: local -ir DMAX0=0
++ ~/share/blesh/ble.sh:ble-highlight-layer/update():1: local PREV_BUFF=_ble_highlight_layer_plain_buff
++ ~/share/blesh/ble.sh:ble-highlight-layer/update():1: local PREV_UMIN=-1
++ ~/share/blesh/ble.sh:ble-highlight-layer/update():1: local PREV_UMAX=-1
++ ~/share/blesh/ble.sh:ble-highlight-layer/update():1: local layer player=plain LEVEL
++ ~/share/blesh/ble.sh:ble-highlight-layer/update():1: local nlevel=5
++ ~/share/blesh/ble.sh:ble-highlight-layer/update():1: (( LEVEL=0 ))
++ ~/share/blesh/ble.sh:ble-highlight-layer/update():1: (( LEVEL<nlevel ))
++ ~/share/blesh/ble.sh:ble-highlight-layer/update():1: layer=plain
++ ~/share/blesh/ble.sh:ble-highlight-layer/update():1: ble-highlight-layer:plain/update '[' plain
++ ~/share/blesh/ble.sh:ble-highlight-layer:plain/update():1: (( DMIN>=0 ))
++ ~/share/blesh/ble.sh:ble-highlight-layer:plain/update():1: ble-highlight-layer/update/shift _ble_highlight_layer_plain_buff
++ ~/share/blesh/ble.sh:ble-highlight-layer/update/shift():1: local __dstArray=_ble_highlight_layer_plain_buff
++ ~/share/blesh/ble.sh:ble-highlight-layer/update/shift():1: local __srcArray=_ble_highlight_layer_plain_buff
++ ~/share/blesh/ble.sh:ble-highlight-layer/update/shift():1: (( DMIN>=0 ))
++ ~/share/blesh/ble.sh:ble-highlight-layer/update/shift():1: ble/array#reserve-prototype 1
++ ~/share/blesh/ble.sh:ble/array#reserve-prototype():1: local -i n=1 i
++ ~/share/blesh/ble.sh:ble/array#reserve-prototype():1: (( i=95 ))
++ ~/share/blesh/ble.sh:ble/array#reserve-prototype():1: (( i<n ))
++ ~/share/blesh/ble.sh:ble-highlight-layer/update/shift():1: builtin eval '
    _ble_highlight_layer_plain_buff=(
      "${_ble_highlight_layer_plain_buff[@]::DMIN}"
      "${_ble_array_prototype[@]::DMAX-DMIN}"
      "${_ble_highlight_layer_plain_buff[@]:DMAX0}")'
+++ ~/share/blesh/ble.sh:ble-highlight-layer/update/shift():1: _ble_highlight_layer_plain_buff=("${_ble_highlight_layer_plain_buff[@]::DMIN}" "${_ble_array_prototype[@]::DMAX-DMIN}" "${_ble_highlight_layer_plain_buff[@]:DMAX0}")
++ ~/share/blesh/ble.sh:ble-highlight-layer:plain/update():1: local i 'text=[' ch
++ ~/share/blesh/ble.sh:ble-highlight-layer:plain/update():1: local it=8
++ ~/share/blesh/ble.sh:ble-highlight-layer:plain/update():1: (( i=DMIN ))
++ ~/share/blesh/ble.sh:ble-highlight-layer:plain/update():1: (( i<DMAX ))
++ ~/share/blesh/ble.sh:ble-highlight-layer:plain/update():1: ch='['
++ ~/share/blesh/ble.sh:ble-highlight-layer:plain/update():1: LC_COLLATE=C
++ ~/share/blesh/ble.sh:ble-highlight-layer:plain/update():1: ble-highlight-layer:plain/update/.getch
++ ~/share/blesh/ble.sh:ble-highlight-layer:plain/update():1: _ble_highlight_layer_plain_buff[i]='['
++ ~/share/blesh/ble.sh:ble-highlight-layer:plain/update():1: (( i++ ))
++ ~/share/blesh/ble.sh:ble-highlight-layer:plain/update():1: (( i<DMAX ))
++ ~/share/blesh/ble.sh:ble-highlight-layer:plain/update():1: PREV_BUFF=_ble_highlight_layer_plain_buff
++ ~/share/blesh/ble.sh:ble-highlight-layer:plain/update():1: (( PREV_UMIN=DMIN,PREV_UMAX=DMAX ))
++ ~/share/blesh/ble.sh:ble-highlight-layer/update():1: player=plain
++ ~/share/blesh/ble.sh:ble-highlight-layer/update():1: (( LEVEL++ ))
++ ~/share/blesh/ble.sh:ble-highlight-layer/update():1: (( LEVEL<nlevel ))
++ ~/share/blesh/ble.sh:ble-highlight-layer/update():1: layer=syntax
++ ~/share/blesh/ble.sh:ble-highlight-layer/update():1: ble-highlight-layer:syntax/update '[' plain
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update():1: local 'text=[' player=plain
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update():1: local i iN=1
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update():1: ble-edit/content/update-syntax
++ ~/share/blesh/ble.sh:ble-edit/content/update-syntax():1: ble/is-function ble-syntax/parse
++ ~/share/blesh/ble.sh:ble/is-function():1: builtin declare -F ble-syntax/parse
++ ~/share/blesh/ble.sh:ble-edit/content/update-syntax():1: local beg end end0
++ ~/share/blesh/ble.sh:ble-edit/content/update-syntax():1: ble/dirty-range#load --prefix=_ble_edit_dirty_syntax_
++ ~/share/blesh/ble.sh:ble/dirty-range#load():1: local _prefix=
++ ~/share/blesh/ble.sh:ble/dirty-range#load():1: [[ --prefix=_ble_edit_dirty_syntax_ == --prefix=* ]]
++ ~/share/blesh/ble.sh:ble/dirty-range#load():1: _prefix=_ble_edit_dirty_syntax_
++ ~/share/blesh/ble.sh:ble/dirty-range#load():1: (( beg=_ble_edit_dirty_syntax_beg,
      end=_ble_edit_dirty_syntax_end,
      end0=_ble_edit_dirty_syntax_end0 ))
++ ~/share/blesh/ble.sh:ble-edit/content/update-syntax():1: (( beg>=0 ))
++ ~/share/blesh/ble.sh:ble-edit/content/update-syntax():1: ble/dirty-range#clear --prefix=_ble_edit_dirty_syntax_
++ ~/share/blesh/ble.sh:ble/dirty-range#clear():1: local _prefix=
++ ~/share/blesh/ble.sh:ble/dirty-range#clear():1: [[ --prefix=_ble_edit_dirty_syntax_ == --prefix=* ]]
++ ~/share/blesh/ble.sh:ble/dirty-range#clear():1: _prefix=_ble_edit_dirty_syntax_
++ ~/share/blesh/ble.sh:ble/dirty-range#clear():1: shift
++ ~/share/blesh/ble.sh:ble/dirty-range#clear():1: (( _ble_edit_dirty_syntax_beg=-1,
    _ble_edit_dirty_syntax_end=-1,
    _ble_edit_dirty_syntax_end0=-1 ))
++ ~/share/blesh/ble.sh:ble-edit/content/update-syntax():1: ble-syntax/parse '[' 0 1 0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: local 'text=['
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: local beg=0 end=1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: local end0=0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: (( end==beg&&end0==beg&&_ble_syntax_dbeg<0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: local -ir iN=1 shift=end-end0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: (( 0<=beg&&beg<=end&&end<=iN&&beg<=end0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: local i1 i2 j2
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: ble-syntax/parse/determine-parse-range
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/determine-parse-range():1: local flagSeekStat=0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/determine-parse-range():1: (( i1=_ble_syntax_dbeg,i1>=end0&&(i1+=shift),
    i2=_ble_syntax_dend,i2>=end0&&(i2+=shift),
    (i1<0||beg<i1)&&(i1=beg,flagSeekStat=1),
    (i2<0||i2<end)&&(i2=end),
    (i2>iN)&&(i2=iN),
    j2=i2-shift ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/determine-parse-range():1: (( flagSeekStat ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/determine-parse-range():1: local 'lookahead=stat[7]'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/determine-parse-range():1: local -a stat
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/determine-parse-range():1: (( i1>0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/determine-parse-range():1: (( 0<=i1&&i1<=beg&&end<=i2&&i2<=iN ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: ble-syntax/vanishing-word/register _ble_syntax_tree 0 i1 j2 0 i1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/vanishing-word/register():1: local tree_array=_ble_syntax_tree tofs=0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/vanishing-word/register():1: local -i beg=i1 end=j2 lbeg=0 lend=i1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/vanishing-word/register():1: (( (beg<=0)&&(beg=1) ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/vanishing-word/register():1: local node i nofs
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/vanishing-word/register():1: (( i=end ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/vanishing-word/register():1: (( i>=beg ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: ble-syntax/parse/shift
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift():1: ble-syntax/parse/shift.method2
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.method2():1: [[ -n '' ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.method2():1: local iN=0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.method2():1: local _shift2_j=0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.method2():1: ble-syntax/tree-enumerate ble-syntax/parse/shift.impl2/.proc1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate():1: local root i nofs
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate():1: [[ -n set ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate():1: ble-syntax/tree-enumerate/.initialize
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.initialize():1: [[ ! -n 1 -1 -1 -1 -1 -1 none 1 ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.initialize():1: local -a stat nest
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.initialize():1: ble/string#split-words stat '1 -1 -1 -1 -1 -1 none 1'
++ ~/share/blesh/ble.sh:ble/string#split-words():1: [[ -o noglob ]]
++ ~/share/blesh/ble.sh:ble/string#split-words():1: set -f
++ ~/share/blesh/ble.sh:ble/string#split-words():1: IFS='   
'
++ ~/share/blesh/ble.sh:ble/string#split-words():1: builtin eval 'stat=(${*:2})'
+++ ~/share/blesh/ble.sh:ble/string#split-words():1: stat=(${*:2})
++ ~/share/blesh/ble.sh:ble/string#split-words():1: set +f
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.initialize():1: local wtype=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.initialize():1: local wlen=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.initialize():1: local nlen=-1 inest
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.initialize():1: (( inest=nlen<0?nlen:iN-nlen ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.initialize():1: local tclen=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.initialize():1: local tplen=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.initialize():1: root=
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.initialize():1: (( iN>0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.initialize():1: (( wlen>=0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.initialize():1: (( inest>=0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.initialize():1: [[ -n '' ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.initialize():1: (( i=tclen>=0?iN-tclen:tclen ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.initialize():1: (( nofs=0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate():1: ble-syntax/tree-enumerate/.impl ble-syntax/parse/shift.impl2/.proc1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.impl():1: local islast=1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.impl():1: (( i>0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.method2():1: local j=0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.method2():1: ble-syntax/parse/shift.impl2/.shift-until 0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.impl2/.shift-until():1: local limit=0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.impl2/.shift-until():1: (( j>=limit ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.impl2/.shift-until():1: [[ -n '' ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.impl2/.shift-until():1: ble-syntax/parse/shift.stat
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.stat():1: [[ -n 1 -1 -1 -1 -1 -1 none 1 ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.stat():1: local -a stat
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.stat():1: ble/string#split-words stat '1 -1 -1 -1 -1 -1 none 1'
++ ~/share/blesh/ble.sh:ble/string#split-words():1: [[ -o noglob ]]
++ ~/share/blesh/ble.sh:ble/string#split-words():1: set -f
++ ~/share/blesh/ble.sh:ble/string#split-words():1: IFS='   
'
++ ~/share/blesh/ble.sh:ble/string#split-words():1: builtin eval 'stat=(${*:2})'
+++ ~/share/blesh/ble.sh:ble/string#split-words():1: stat=(${*:2})
++ ~/share/blesh/ble.sh:ble/string#split-words():1: set +f
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.stat():1: local k klen kbeg
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.stat():1: for k in 1 3 4 5
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.stat():1: (( (klen=stat[k])<0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.stat():1: continue
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.stat():1: for k in 1 3 4 5
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.stat():1: (( (klen=stat[k])<0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.stat():1: continue
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.stat():1: for k in 1 3 4 5
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.stat():1: (( (klen=stat[k])<0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.stat():1: continue
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.stat():1: for k in 1 3 4 5
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.stat():1: (( (klen=stat[k])<0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.stat():1: continue
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.stat():1: _ble_syntax_stat[j]='1 -1 -1 -1 -1 -1 none 1'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.impl2/.shift-until():1: ble-syntax/parse/shift.nest
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.nest():1: [[ -n '' ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.impl2/.shift-until():1: (( j-- ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift.impl2/.shift-until():1: (( j>=limit ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift():1: (( shift!=0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift():1: ble-syntax/urange#shift _ble_syntax_attr_
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/urange#shift():1: local prefix=_ble_syntax_attr_
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/urange#shift():1: (( _ble_syntax_attr_umin>=end0?(_ble_syntax_attr_umin+=shift):(
      _ble_syntax_attr_umin>=beg&&(_ble_syntax_attr_umin=end)),
    _ble_syntax_attr_umax>end0?(_ble_syntax_attr_umax+=shift):(
      _ble_syntax_attr_umax>beg&&(_ble_syntax_attr_umax=beg)),
    _ble_syntax_attr_umin>=_ble_syntax_attr_umax&&
      (_ble_syntax_attr_umin=_ble_syntax_attr_umax=-1) ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift():1: ble-syntax/wrange#shift _ble_syntax_word_
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/wrange#shift():1: local prefix=_ble_syntax_word_
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/wrange#shift():1: (( _ble_syntax_word_umin>=end0?(_ble_syntax_word_umin+=shift):(
       _ble_syntax_word_umin>beg&&(_ble_syntax_word_umin=end)),
    _ble_syntax_word_umax>=end0?(_ble_syntax_word_umax+=shift):(
      _ble_syntax_word_umax>=beg&&(_ble_syntax_word_umax=beg)),
    _ble_syntax_word_umin==0&&++_ble_syntax_word_umin,
    _ble_syntax_word_umin>_ble_syntax_word_umax&&
      (_ble_syntax_word_umin=_ble_syntax_word_umax=-1) ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/shift():1: ble-syntax/urange#shift _ble_syntax_vanishing_word_
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/urange#shift():1: local prefix=_ble_syntax_vanishing_word_
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/urange#shift():1: (( _ble_syntax_vanishing_word_umin>=end0?(_ble_syntax_vanishing_word_umin+=shift):(
      _ble_syntax_vanishing_word_umin>=beg&&(_ble_syntax_vanishing_word_umin=end)),
    _ble_syntax_vanishing_word_umax>end0?(_ble_syntax_vanishing_word_umax+=shift):(
      _ble_syntax_vanishing_word_umax>beg&&(_ble_syntax_vanishing_word_umax=beg)),
    _ble_syntax_vanishing_word_umin>=_ble_syntax_vanishing_word_umax&&
      (_ble_syntax_vanishing_word_umin=_ble_syntax_vanishing_word_umax=-1) ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: local ctx wbegin wtype inest tchild tprev nparam ilook
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: (( i1>0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: ctx=0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: ble-syntax:bash/initialize-ctx
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/initialize-ctx():1: ctx=1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: wbegin=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: wtype=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: inest=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: tchild=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: tprev=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: nparam=
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: ilook=1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: local -a _tail_syntax_stat _tail_syntax_tree _tail_syntax_nest _tail_syntax_attr
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: _tail_syntax_stat=("${_ble_syntax_stat[@]:j2:iN-i2+1}")
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: _tail_syntax_tree=("${_ble_syntax_tree[@]:j2:iN-i2}")
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: _tail_syntax_nest=("${_ble_syntax_nest[@]:j2:iN-i2}")
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: _tail_syntax_attr=("${_ble_syntax_attr[@]:j2:iN-i2}")
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: ble/array#reserve-prototype 1
++ ~/share/blesh/ble.sh:ble/array#reserve-prototype():1: local -i n=1 i
++ ~/share/blesh/ble.sh:ble/array#reserve-prototype():1: (( i=95 ))
++ ~/share/blesh/ble.sh:ble/array#reserve-prototype():1: (( i<n ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: _ble_syntax_stat=("${_ble_syntax_stat[@]::i1}" "${_ble_array_prototype[@]:i1:iN-i1}")
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: _ble_syntax_tree=("${_ble_syntax_tree[@]::i1}" "${_ble_array_prototype[@]:i1:iN-i1}")
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: _ble_syntax_nest=("${_ble_syntax_nest[@]::i1}" "${_ble_array_prototype[@]:i1:iN-i1}")
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: _ble_syntax_attr=("${_ble_syntax_attr[@]::i1}" "${_ble_array_prototype[@]:i1:iN-i1}")
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: ble-syntax:bash/initialize-vars
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/initialize-vars():1: local histc12
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/initialize-vars():1: [[ -n '' ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/initialize-vars():1: histc12='!^'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/initialize-vars():1: _ble_syntax_bash_histc12='!^'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/initialize-vars():1: ble-syntax:bash/cclass/update
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/cclass/update():1: local 'seed=!^'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/cclass/update():1: shopt -q extglob
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/cclass/update():1: seed='!^x'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/cclass/update():1: [[ !^x == \!\^\x ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/cclass/update():1: return 1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/initialize-vars():1: local 'histstop=   
='
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/initialize-vars():1: shopt -q extglob
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/initialize-vars():1: histstop='     
=('
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/initialize-vars():1: _ble_syntax_bash_histstop='    
=('
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: _ble_syntax_text='['
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: local i _stat tail
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: local debug_p1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: (( i=i1 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: (( i<iN ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: ble-syntax/parse/generate-stat
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/generate-stat():1: (( ilook<=i&&(ilook=i+1) ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/generate-stat():1: _stat='1 -1 -1 -1 -1 -1 none 1'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: (( i>=i2 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: _ble_syntax_stat[i]='1 -1 -1 -1 -1 -1 none 1'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: tail='['
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: debug_p1=0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: ble-syntax:bash/ctx-command
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command():1: ble-syntax:bash/starts-with-delimiter-or-redirect
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/starts-with-delimiter-or-redirect():1: local 'delimiters=[  
;|&<>()]'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/starts-with-delimiter-or-redirect():1: local 'redirect=((\{[a-zA-Z_][a-zA-Z_0-9]+\}|[0-9]+)?(&?>>?|>[|&]|<[>&]?|<<[-<]?))[  ]*'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/starts-with-delimiter-or-redirect():1: [[ [ =~ ^[   
;|&<>()] ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/starts-with-delimiter-or-redirect():1: [[ -1 -lt 0 ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/starts-with-delimiter-or-redirect():1: [[ [ =~ ^((\{[a-zA-Z_][a-zA-Z_0-9]+\}|[0-9]+)?(&?>>?|>[|&]|<[>&]?|<<[-<]?))[     ]* ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command():1: ble-syntax:bash/check-comment
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-comment():1: shopt -q interactive_comments
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-comment():1: (( wbegin<0||wbegin==i ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-comment():1: local 'rex=^#[^
]*'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-comment():1: [[ [ =~ ^#[^
]* ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-comment():1: return 1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command():1: local unexpectedWbegin=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command():1: ble-syntax:bash/ctx-command/.check-word-begin
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/.check-word-begin():1: (( wbegin<0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/.check-word-begin():1: local octx
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/.check-word-begin():1: (( octx=ctx,
      wtype=octx,
      ctx=_ble_syntax_bash_command_BeginCtx[ctx] ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/.check-word-begin():1: (( ctx==0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/.check-word-begin():1: ble-syntax/parse/word-push 1 0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/word-push():1: wtype=1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/word-push():1: wbegin=0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/word-push():1: tprev=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/word-push():1: tchild=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/.check-word-begin():1: (( octx!=BLE_CTX_ARGX0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/.check-word-begin():1: return
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command():1: local wtype0=1 i0=0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command():1: local flagConsume=0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command():1: ble-syntax:bash/check-variable-assignment
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-variable-assignment():1: (( wbegin==i ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-variable-assignment():1: (( ctx==BLE_CTX_VALI ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-variable-assignment():1: [[ -n 11 ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-variable-assignment():1: local 'suffix==|\+=?'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-variable-assignment():1: (( _ble_bash<30100 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-variable-assignment():1: (( ctx==BLE_CTX_ARGVI ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-variable-assignment():1: suffix='=|\+=?|\['
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-variable-assignment():1: local 'rex_assign=^[a-zA-Z_][a-zA-Z_0-9]*(=|\+=?|\[)'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-variable-assignment():1: [[ [ =~ ^[a-zA-Z_][a-zA-Z_0-9]*(=|\+=?|\[) ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-variable-assignment():1: return 1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command():1: local 'rex=^([^    
;|&()<>$"`\'\''[*?{~:^!@+!]|\\.)+'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command():1: [[ [ =~ ^([^   
;|&()<>$"`\'[*?{~:^!@+!]|\\.)+ ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command():1: ble-syntax:bash/check-process-subst
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-process-subst():1: [[ [ == [\<\>]\(* ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-process-subst():1: return 1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command():1: ble-syntax:bash/check-quotes
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-quotes():1: local rex aqdel=9 aquot=5
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-quotes():1: (( ctx==BLE_CTX_EXPR ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-quotes():1: (( ctx==BLE_CTX_PWORD ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-quotes():1: rex='^`([^`\]|\\(.|$))*(`?)|^'\''[^'\'']*('\''?)'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-quotes():1: [[ [ =~ ^`([^`\]|\\(.|$))*(`?)|^'[^']*('?) ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-quotes():1: (( ctx!=BLE_CTX_QUOT ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-quotes():1: rex='^(\$?")([^$"`\!]|\\.)*("?)'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-quotes():1: [[ [ =~ ^(\$?")([^$"`\!]|\\.)*("?) ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-quotes():1: rex='^\$'\''([^'\''\]|\\(.|$))*('\''?)'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-quotes():1: [[ [ =~ ^\$'([^'\]|\\(.|$))*('?) ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-quotes():1: return 1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command():1: ble-syntax:bash/check-dollar
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-dollar():1: [[ [ == \$* ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-dollar():1: return 1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command():1: ble-syntax:bash/check-glob
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-glob():1: [[ [ == [\[\?\*\@\+\!\(\)\|]* ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-glob():1: local ntype= force_attr=
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-glob():1: (( ctx==BLE_CTX_VRHS||ctx==BLE_CTX_ARGVR||ctx==BLE_CTX_VALR||ctx==BLE_CTX_RDRS ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-glob():1: (( ctx==BLE_CTX_PATN||ctx==BLE_CTX_BRAX ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-glob():1: [[ '' == assign ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-glob():1: [[ [ == [\?\*\@\+\!]\(* ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-glob():1: local 'histc1=!'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-glob():1: [[ -n ! ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-glob():1: [[ [ == \!* ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-glob():1: [[ [ == \[* ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-glob():1: (( ctx==BLE_CTX_BRAX ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-glob():1: ble-syntax/parse/nest-push 54 ''
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-push():1: local wlen=0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-push():1: local nlen=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-push():1: local tclen=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-push():1: local tplen=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-push():1: _ble_syntax_nest[i]='2 0 1 -1 -1 -1 none none'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-push():1: (( ctx=54,inest=i,wbegin=-1,wtype=-1,tprev=tchild,tchild=-1 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-push():1: nparam=
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-glob():1: (( _ble_syntax_attr[i++]=BLE_ATTR_GLOB ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-glob():1: [[ [ == \[\!* ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-glob():1: [[ '' == \] ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-glob():1: [[ '' == \[ ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-glob():1: return 0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command():1: flagConsume=1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command():1: (( flagConsume ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command():1: ble-assert '((wtype0>=0))'
++ ~/share/blesh/ble.sh:ble-assert():1: local 'expr=((wtype0>=0))'
++ ~/share/blesh/ble.sh:ble-assert():1: local '_ble_stackdump_title=assertion failure'
++ ~/share/blesh/ble.sh:ble-assert():1: builtin eval -- '((wtype0>=0))'
+++ ~/share/blesh/ble.sh:ble-assert():1: (( wtype0>=0 ))
++ ~/share/blesh/ble.sh:ble-assert():1: return 0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command():1: [[ -n '' ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command():1: (( unexpectedWbegin>=0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command():1: return 0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: ble-syntax/parse/check-end
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/check-end():1: [[ -n ble-syntax:bash/ctx-bracket-expression.end ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/check-end():1: ble-syntax:bash/ctx-bracket-expression.end
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-bracket-expression.end():1: local is_end=
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-bracket-expression.end():1: local nctx
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-bracket-expression.end():1: ble-syntax/parse/nest-ctx
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-ctx():1: nctx=
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-ctx():1: (( inest>=0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-ctx():1: nctx=2
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-bracket-expression.end():1: (( nctx==BLE_CTX_PATN ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-bracket-expression.end():1: ble-syntax:bash/check-word-end/is-delimiter
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-word-end/is-delimiter():1: local tail=
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-word-end/is-delimiter():1: [[ '' == [!\ \ \
\;\|\&\<\>\(\)]* ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-word-end/is-delimiter():1: [[ '' == [\<\>]* ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-word-end/is-delimiter():1: return 0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-bracket-expression.end():1: is_end=1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-bracket-expression.end():1: [[ [ == \:* ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-bracket-expression.end():1: [[ -n 1 ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-bracket-expression.end():1: ble-syntax/parse/nest-pop
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-pop():1: (( inest<0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-pop():1: local -a parentNest
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-pop():1: ble/string#split-words parentNest '2 0 1 -1 -1 -1 none none'
++ ~/share/blesh/ble.sh:ble/string#split-words():1: [[ -o noglob ]]
++ ~/share/blesh/ble.sh:ble/string#split-words():1: set -f
++ ~/share/blesh/ble.sh:ble/string#split-words():1: IFS='   
'
++ ~/share/blesh/ble.sh:ble/string#split-words():1: builtin eval 'parentNest=(${*:2})'
+++ ~/share/blesh/ble.sh:ble/string#split-words():1: parentNest=(${*:2})
++ ~/share/blesh/ble.sh:ble/string#split-words():1: set +f
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-pop():1: local ntype=none nbeg=0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-pop():1: ble-syntax/parse/tree-append nnone 0 -1 -1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: [[ -n 0 ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: (( i-1>=debug_p1 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: local type=nnone
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: local beg=0 end=1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: local len=1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: (( len==0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: local tchild=-1 tprev=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: local ochild=-1 oprev=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: (( tchild>=0&&(ochild=i-tchild) ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: (( tprev>=0&&(oprev=i-tprev) ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: [[ nnone =~ ^[0-9]+$ ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: _ble_syntax_tree[i-1]='nnone 1 -1 -1 - '
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-pop():1: local wlen=0 nlen=-1 tplen=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-pop():1: (( ctx=parentNest[0] ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-pop():1: (( wtype=parentNest[2] ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-pop():1: (( wbegin=wlen<0?wlen:nbeg-wlen,
    inest=nlen<0?nlen:nbeg-nlen,
    tchild=i,
    tprev=tplen<0?tplen:nbeg-tplen ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-pop():1: nparam=none
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-pop():1: [[ none == none ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-pop():1: nparam=
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-bracket-expression.end():1: ble-syntax/parse/check-end
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/check-end():1: [[ -n ble-syntax:bash/ctx-command/check-word-end ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/check-end():1: ble-syntax:bash/ctx-command/check-word-end
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/check-word-end():1: (( wbegin<0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/check-word-end():1: ble-syntax:bash/check-word-end/is-delimiter
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-word-end/is-delimiter():1: local tail=
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-word-end/is-delimiter():1: [[ '' == [!\ \ \
\;\|\&\<\>\(\)]* ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-word-end/is-delimiter():1: [[ '' == [\<\>]* ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/check-word-end/is-delimiter():1: return 0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/check-word-end():1: local wbeg=0 wlen=1 wend=1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/check-word-end():1: local 'word=['
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/check-word-end():1: local wt=1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/check-word-end():1: [[ -n 2 ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/check-word-end():1: wtype=2
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/check-word-end():1: local rex_expect_command=
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/check-word-end():1: [[ -n '' ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/check-word-end():1: ble-syntax/parse/word-pop
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/word-pop():1: ble-syntax/parse/tree-append 2 0 1 -1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: [[ -n 0 ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: (( i-1>=debug_p1 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: local type=2
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: local beg=0 end=1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: local len=1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: (( len==0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: local tchild=1 tprev=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: local ochild=-1 oprev=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: (( tchild>=0&&(ochild=i-tchild) ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: (( tprev>=0&&(oprev=i-tprev) ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: [[ 2 =~ ^[0-9]+$ ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: ble-syntax/parse/touch-updated-word 1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/touch-updated-word():1: (( 1>0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/touch-updated-word():1: (( (_ble_syntax_word_umin<0||_ble_syntax_word_umin>1)&&(
      _ble_syntax_word_umin=1) ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/touch-updated-word():1: (( (_ble_syntax_word_umax<0||_ble_syntax_word_umax<1)&&(
      _ble_syntax_word_umax=1) ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/tree-append():1: _ble_syntax_tree[i-1]='2 1 0 -1 - nnone 1 -1 -1 - '
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/word-pop():1: (( wbegin=-1,wtype=-1,tchild=i ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/word-pop():1: ble-syntax/parse/nest-reset-tprev
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-reset-tprev():1: (( inest<0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/nest-reset-tprev():1: tprev=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/check-word-end():1: (( ctx==BLE_CTX_CMDI ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/check-word-end():1: (( wt==BLE_CTX_CMDXV ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/check-word-end():1: local processed=
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/check-word-end():1: case "$word" in
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/check-word-end():1: [[ -n '' ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/check-word-end():1: (( ctx=BLE_CTX_ARGX ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/check-word-end():1: local 'rex=^([  ]*)(\([     ]*\)?)?'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/check-word-end():1: [[ '' =~ ^([    ]*)(\([     ]*\)?)? ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/check-word-end():1: [[ -n '' ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-command/check-word-end():1: return 0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/ctx-bracket-expression.end():1: return
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: (( 1 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: (( i<iN ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: unset debug_p1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: ble-syntax/vanishing-word/register _tail_syntax_tree -i2 i2+1 i 0 i
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/vanishing-word/register():1: local tree_array=_tail_syntax_tree tofs=-i2
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/vanishing-word/register():1: local -i beg=i2+1 end=i lbeg=0 lend=i
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/vanishing-word/register():1: (( (beg<=0)&&(beg=1) ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/vanishing-word/register():1: local node i nofs
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/vanishing-word/register():1: (( i=end ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/vanishing-word/register():1: (( i>=beg ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: ble-syntax/urange#update _ble_syntax_attr_ i1 i
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/urange#update():1: local prefix=_ble_syntax_attr_
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/urange#update():1: local -i p1=i1 p2=i
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/urange#update():1: (( 0<=p1&&p1<p2 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/urange#update():1: (( (_ble_syntax_attr_umin<0||_ble_syntax_attr_umin>p1)&&(_ble_syntax_attr_umin=p1),
    (_ble_syntax_attr_umax<0||_ble_syntax_attr_umax<p2)&&(_ble_syntax_attr_umax=p2) ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: (( (i>=i2)?(
      _ble_syntax_dbeg=_ble_syntax_dend=-1
    ):(
      _ble_syntax_dbeg=i,_ble_syntax_dend=i2) ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: (( i>=iN ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: (( i=iN ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: ble-syntax/parse/generate-stat
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/generate-stat():1: (( ilook<=i&&(ilook=i+1) ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse/generate-stat():1: _stat='3 -1 -1 -1 0 -1 none 1'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: _ble_syntax_stat[i]='3 -1 -1 -1 0 -1 none 1'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: (( inest>0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/parse():1: (( 2==iN+1 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update():1: local umin=-1 umax=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update():1: (( DMIN>=0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update():1: umin=0
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update():1: umax=1
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update():1: [[ -n '' ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update():1: ble-highlight-layer:syntax/update-attribute-table
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-attribute-table():1: ble-highlight-layer/update/shift _ble_highlight_layer_syntax1_table
++ ~/share/blesh/ble.sh:ble-highlight-layer/update/shift():1: local __dstArray=_ble_highlight_layer_syntax1_table
++ ~/share/blesh/ble.sh:ble-highlight-layer/update/shift():1: local __srcArray=_ble_highlight_layer_syntax1_table
++ ~/share/blesh/ble.sh:ble-highlight-layer/update/shift():1: (( DMIN>=0 ))
++ ~/share/blesh/ble.sh:ble-highlight-layer/update/shift():1: ble/array#reserve-prototype 1
++ ~/share/blesh/ble.sh:ble/array#reserve-prototype():1: local -i n=1 i
++ ~/share/blesh/ble.sh:ble/array#reserve-prototype():1: (( i=95 ))
++ ~/share/blesh/ble.sh:ble/array#reserve-prototype():1: (( i<n ))
++ ~/share/blesh/ble.sh:ble-highlight-layer/update/shift():1: builtin eval '
    _ble_highlight_layer_syntax1_table=(
      "${_ble_highlight_layer_syntax1_table[@]::DMIN}"
      "${_ble_array_prototype[@]::DMAX-DMIN}"
      "${_ble_highlight_layer_syntax1_table[@]:DMAX0}")'
+++ ~/share/blesh/ble.sh:ble-highlight-layer/update/shift():1: _ble_highlight_layer_syntax1_table=("${_ble_highlight_layer_syntax1_table[@]::DMIN}" "${_ble_array_prototype[@]::DMAX-DMIN}" "${_ble_highlight_layer_syntax1_table[@]:DMAX0}")
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-attribute-table():1: (( _ble_syntax_attr_umin>=0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-attribute-table():1: ble-highlight-layer:syntax/touch-range _ble_syntax_attr_umin _ble_syntax_attr_umax
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/touch-range():1: ble-syntax/urange#update '' _ble_syntax_attr_umin _ble_syntax_attr_umax
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/urange#update():1: local prefix=
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/urange#update():1: local -i p1=_ble_syntax_attr_umin p2=_ble_syntax_attr_umax
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/urange#update():1: (( 0<=p1&&p1<p2 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/urange#update():1: (( (umin<0||umin>p1)&&(umin=p1),
    (umax<0||umax<p2)&&(umax=p2) ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-attribute-table():1: local i g=0
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-attribute-table():1: (( _ble_syntax_attr_umin>0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-attribute-table():1: (( i=_ble_syntax_attr_umin ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-attribute-table():1: (( i<_ble_syntax_attr_umax ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-attribute-table():1: (( 31 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-attribute-table():1: ble-syntax/attr2g 31
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/attr2g():1: local iface=20
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/attr2g():1: g=2
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-attribute-table():1: _ble_highlight_layer_syntax1_table[i]=2
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-attribute-table():1: (( i++ ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-attribute-table():1: (( i<_ble_syntax_attr_umax ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-attribute-table():1: _ble_syntax_attr_umin=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-attribute-table():1: _ble_syntax_attr_umax=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update():1: ble-highlight-layer:syntax/update-word-table
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: local color_umin=-1 color_umax=-1 iN=1
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: ble-highlight-layer:syntax/word/.update-attributes
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes():1: (( _ble_syntax_word_umin>=0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes():1: ble-syntax/tree-enumerate-in-range _ble_syntax_word_umin _ble_syntax_word_umax ble-highlight-layer:syntax/word/.update-attributes/.proc
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: local -i beg=_ble_syntax_word_umin end=_ble_syntax_word_umax
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: local proc=ble-highlight-layer:syntax/word/.update-attributes/.proc
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: local -a node
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: local i nofs
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: (( i=end ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: (( i>=beg ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: (( i>0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: [[ -n 2 1 0 -1 - nnone 1 -1 -1 -  ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: ble/string#split-words node '2 1 0 -1 - nnone 1 -1 -1 - '
++ ~/share/blesh/ble.sh:ble/string#split-words():1: [[ -o noglob ]]
++ ~/share/blesh/ble.sh:ble/string#split-words():1: set -f
++ ~/share/blesh/ble.sh:ble/string#split-words():1: IFS='   
'
++ ~/share/blesh/ble.sh:ble/string#split-words():1: builtin eval 'node=(${*:2})'
+++ ~/share/blesh/ble.sh:ble/string#split-words():1: node=(${*:2})
++ ~/share/blesh/ble.sh:ble/string#split-words():1: set +f
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: local flagUpdateNode=
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: (( nofs=0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: (( nofs<10 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: local wtype=2 wlen=1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: local wbeg=0 wend=1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: ble-highlight-layer:syntax/word/.update-attributes/.proc
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: [[ 2 =~ ^[0-9]+$ ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: [[ - == - ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: ble-syntax/urange#update color_ 0 1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/urange#update():1: local prefix=color_
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/urange#update():1: local -i p1=0 p2=1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/urange#update():1: (( 0<=p1&&p1<p2 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/urange#update():1: (( (color_umin<0||color_umin>p1)&&(color_umin=p1),
    (color_umax<0||color_umax<p2)&&(color_umax=p2) ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: local p0=0 p1=1
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: (( wtype==BLE_ATTR_VAR||wtype==BLE_CTX_VALI ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: local type=
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: (( wtype==BLE_CTX_RDRH||wtype==BLE_CTX_RDRI ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: local 'wtxt=['
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: ble-syntax:bash/simple-word/is-simple '['
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/is-simple():1: [[ [ =~ ^(\\.|'[^']*'|\$'([^'\]|\\.)*'|\$?"([^$"`\!]|\\.|\$([-*@#?$!0_]|[1-9][0-9]*|[a-zA-Z_][a-zA-Z_0-9]*)|\$\{(#?[-*@#?$!0]|[#!]?([1-9][0-9]*|[a-zA-Z_][a-zA-Z_0-9]*))\})*"|\$([-*@#?$!0_]|[1-9][0-9]*|[a-zA-Z_][a-zA-Z_0-9]*)|\$\{(#?[-*@#?$!0]|[#!]?([1-9][0-9]*|[a-zA-Z_][a-zA-Z_0-9]*))\}|[^   
;|&()<>$"`\'^!])+$ ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: local ret
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: (( wtype==BLE_CTX_RDRS||wtype==BLE_ATTR_VAR||wtype==BLE_CTX_VALI&&wbeg<p0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: ble-syntax:bash/simple-word/eval '['
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/eval():1: local __ble_ret
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/eval():1: ble-syntax:bash/simple-word/eval/.impl '['
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/eval/.impl():1: ret=()
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/eval/.impl():1: local -a ret
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/eval/.impl():1: ble-syntax:bash/simple-word/extract-parameter-names '['
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/extract-parameter-names():1: ret=()
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/extract-parameter-names():1: local 'letter=[^   
;|&()<>$"`\'\''^!]'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/extract-parameter-names():1: local 'bquot=\\.'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/extract-parameter-names():1: local 'squot='\''[^'\'']*'\''|\$'\''([^'\''\]|\\.)*'\'''
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/extract-parameter-names():1: local 'dquot=\$?"([^$"`\!]|\\.|\$([-*@#?$!0_]|[1-9][0-9]*|[a-zA-Z_][a-zA-Z_0-9]*)|\$\{(#?[-*@#?$!0]|[#!]?([1-9][0-9]*|[a-zA-Z_][a-zA-Z_0-9]*))\})*"'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/extract-parameter-names():1: local 'param=\$([-*@#?$!0_]|[1-9][0-9]*|[a-zA-Z_][a-zA-Z_0-9]*)|\$\{(#?[-*@#?$!0]|[#!]?([1-9][0-9]*|[a-zA-Z_][a-zA-Z_0-9]*))\}'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/extract-parameter-names():1: local 'value=['
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/extract-parameter-names():1: local 'rex0=^([^   
;|&()<>$"`\'\''^!]|\\.|'\''[^'\'']*'\''|\$'\''([^'\''\]|\\.)*'\'')+'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/extract-parameter-names():1: local 'rex1=^(\$?"([^$"`\!]|\\.|\$([-*@#?$!0_]|[1-9][0-9]*|[a-zA-Z_][a-zA-Z_0-9]*)|\$\{(#?[-*@#?$!0]|[#!]?([1-9][0-9]*|[a-zA-Z_][a-zA-Z_0-9]*))\})*")'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/extract-parameter-names():1: local 'rex2=^(\$([-*@#?$!0_]|[1-9][0-9]*|[a-zA-Z_][a-zA-Z_0-9]*)|\$\{(#?[-*@#?$!0]|[#!]?([1-9][0-9]*|[a-zA-Z_][a-zA-Z_0-9]*))\})'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/extract-parameter-names():1: [[ -n [ ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/extract-parameter-names():1: [[ [ =~ ^([^   
;|&()<>$"`\'^!]|\\.|'[^']*'|\$'([^'\]|\\.)*')+ ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/extract-parameter-names():1: value=
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/extract-parameter-names():1: [[ '' =~ ^(\$?"([^$"`\!]|\\.|\$([-*@#?$!0_]|[1-9][0-9]*|[a-zA-Z_][a-zA-Z_0-9]*)|\$\{(#?[-*@#?$!0]|[#!]?([1-9][0-9]*|[a-zA-Z_][a-zA-Z_0-9]*))\})*") ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/extract-parameter-names():1: [[ '' =~ ^(\$([-*@#?$!0_]|[1-9][0-9]*|[a-zA-Z_][a-zA-Z_0-9]*)|\$\{(#?[-*@#?$!0]|[#!]?([1-9][0-9]*|[a-zA-Z_][a-zA-Z_0-9]*))\}) ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/extract-parameter-names():1: break
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/eval/.impl():1: (( 0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/eval/.impl():1: __ble_ret=()
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/eval/.impl():1: builtin eval 'ble-syntax:bash/simple-word/eval/.set-result ['
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/eval():1: local ext=0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/eval():1: ret='['
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax:bash/simple-word/eval():1: return 0
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: local ext=0
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: local -a value
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: value=("${ret[@]}")
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: (( ext&&(wtype==BLE_CTX_CMDI||wtype==BLE_CTX_ARGI||wtype==BLE_CTX_RDRF||wtype==BLE_CTX_RDRS||wtype==BLE_CTX_VALI) ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: (( (wtype==BLE_CTX_RDRF||wtype==BLE_CTX_RDRD)&&1>=2 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: (( wtype==BLE_CTX_CMDI ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: local attr=31
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: (( attr!=BLE_ATTR_KEYWORD&&attr!=BLE_ATTR_KEYWORD_BEGIN&&attr!=BLE_ATTR_KEYWORD_END&&attr!=BLE_ATTR_KEYWORD_MID&&attr!=BLE_ATTR_DEL ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: ble-syntax/highlight/cmdtype '[' '['
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/highlight/cmdtype():1: local 'cmd=[' '_0=['
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/highlight/cmdtype():1: (( _ble_syntax_highlight_filetype_version!=_ble_edit_LINENO ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/highlight/cmdtype():1: _ble_syntax_highlight_filetype=()
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/highlight/cmdtype():1: (( _ble_syntax_highlight_filetype_version=_ble_edit_LINENO ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/highlight/cmdtype():1: type=
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/highlight/cmdtype():1: [[ -n '' ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/highlight/cmdtype():1: ble-syntax/highlight/cmdtype/.impl '[' '['
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/highlight/cmdtype/.impl():1: local 'cmd=[' '_0=['
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/highlight/cmdtype/.impl():1: local btype
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/highlight/cmdtype/.impl():1: ble/util/type btype '['
++ ~/share/blesh/ble.sh:ble/util/type():1: ble/util/assign btype 'builtin type -t -- "$3" 2>/dev/null' '['
++ ~/share/blesh/ble.sh:ble/util/assign():1: local _ble_local_tmp=/run/user/1000/blesh/16760.ble_util_assign.tmp.0
++ ~/share/blesh/ble.sh:ble/util/assign():1: builtin eval 'builtin type -t -- "$3" 2>/dev/null'
+++ ~/share/blesh/ble.sh:ble/util/assign():1: builtin type -t -- '['
++ ~/share/blesh/ble.sh:ble/util/assign():1: (( _ble_util_assign_level-- ))
++ ~/share/blesh/ble.sh:ble/util/assign():1: local _ret=0 __arr
++ ~/share/blesh/ble.sh:ble/util/assign():1: mapfile -t __arr
++ ~/share/blesh/ble.sh:ble/util/assign():1: IFS='
'
++ ~/share/blesh/ble.sh:ble/util/assign():1: eval 'btype="${__arr[*]-}"'
+++ ~/share/blesh/ble.sh:ble/util/assign():1: btype=builtin
++ ~/share/blesh/ble.sh:ble/util/assign():1: return 0
++ ~/share/blesh/ble.sh:ble/util/type():1: builtin eval 'btype="${btype%
}"'
+++ ~/share/blesh/ble.sh:ble/util/type():1: btype=builtin
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/highlight/cmdtype/.impl():1: ble-syntax/highlight/cmdtype1 builtin '['
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/highlight/cmdtype1():1: type=builtin
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/highlight/cmdtype1():1: local 'cmd=['
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/highlight/cmdtype1():1: case "$type:$cmd" in
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/highlight/cmdtype1():1: (( type=BLE_ATTR_CMD_BUILTIN ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/highlight/cmdtype/.impl():1: [[ 102 == \1\0\3 ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/highlight/cmdtype/.impl():1: [[ 102 == \1\0\6 ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/highlight/cmdtype():1: _ble_syntax_highlight_filetype["x$_0"]=102
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: [[ -n 102 ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: [[ 102 == g:* ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: local g
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: ble-syntax/attr2g 102
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/attr2g():1: local iface=26
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/attr2g():1: g=
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: (( wbeg<p0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: node[nofs+4]=
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: flagUpdateNode=1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: (( nofs+=BLE_SYNTAX_TREE_WIDTH ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: (( nofs<10 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: local wtype=nnone wlen=1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: local wbeg=0 wend=1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: ble-highlight-layer:syntax/word/.update-attributes/.proc
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: [[ nnone =~ ^[0-9]+$ ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.update-attributes/.proc():1: return
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: (( nofs+=BLE_SYNTAX_TREE_WIDTH ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: (( nofs<10 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: [[ -n 1 ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: _ble_syntax_tree[i-1]='2 1 0 -1  nnone 1 -1 -1 -'
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: (( i-- ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-in-range():1: (( i>=beg ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: ble-highlight-layer/update/shift _ble_highlight_layer_syntax2_table
++ ~/share/blesh/ble.sh:ble-highlight-layer/update/shift():1: local __dstArray=_ble_highlight_layer_syntax2_table
++ ~/share/blesh/ble.sh:ble-highlight-layer/update/shift():1: local __srcArray=_ble_highlight_layer_syntax2_table
++ ~/share/blesh/ble.sh:ble-highlight-layer/update/shift():1: (( DMIN>=0 ))
++ ~/share/blesh/ble.sh:ble-highlight-layer/update/shift():1: ble/array#reserve-prototype 1
++ ~/share/blesh/ble.sh:ble/array#reserve-prototype():1: local -i n=1 i
++ ~/share/blesh/ble.sh:ble/array#reserve-prototype():1: (( i=95 ))
++ ~/share/blesh/ble.sh:ble/array#reserve-prototype():1: (( i<n ))
++ ~/share/blesh/ble.sh:ble-highlight-layer/update/shift():1: builtin eval '
    _ble_highlight_layer_syntax2_table=(
      "${_ble_highlight_layer_syntax2_table[@]::DMIN}"
      "${_ble_array_prototype[@]::DMAX-DMIN}"
      "${_ble_highlight_layer_syntax2_table[@]:DMAX0}")'
+++ ~/share/blesh/ble.sh:ble-highlight-layer/update/shift():1: _ble_highlight_layer_syntax2_table=("${_ble_highlight_layer_syntax2_table[@]::DMIN}" "${_ble_array_prototype[@]::DMAX-DMIN}" "${_ble_highlight_layer_syntax2_table[@]:DMAX0}")
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: ble-syntax/wrange#update _ble_syntax_word_ _ble_syntax_vanishing_word_umin _ble_syntax_vanishing_word_umax
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/wrange#update():1: local prefix=_ble_syntax_word_
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/wrange#update():1: local -i p1=_ble_syntax_vanishing_word_umin p2=_ble_syntax_vanishing_word_umax
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/wrange#update():1: (( 0<=p1&&p1<=p2 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/wrange#update():1: return
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: ble-syntax/wrange#update color_ _ble_syntax_vanishing_word_umin _ble_syntax_vanishing_word_umax
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/wrange#update():1: local prefix=color_
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/wrange#update():1: local -i p1=_ble_syntax_vanishing_word_umin p2=_ble_syntax_vanishing_word_umax
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/wrange#update():1: (( 0<=p1&&p1<=p2 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/wrange#update():1: return
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: _ble_syntax_vanishing_word_umin=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: _ble_syntax_vanishing_word_umax=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: ble-highlight-layer:syntax/word/.apply-attribute 0 1 d
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.apply-attribute():1: local wbeg=0 wend=1 wattr=d
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.apply-attribute():1: (( wbeg<color_umin&&(wbeg=color_umin),
    wend>color_umax&&(wend=color_umax),
    wbeg<wend ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.apply-attribute():1: [[ d =~ ^[0-9]+$ ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.apply-attribute():1: [[ d == m* ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.apply-attribute():1: [[ d == d ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.apply-attribute():1: ble-highlight-layer:syntax/fill _ble_highlight_layer_syntax2_table 0 1 ''
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/fill():1: local _i _arr=_ble_highlight_layer_syntax2_table _i1=0 _i2=1 _v=
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/fill():1: (( _i=_i1 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/fill():1: (( _i<_i2 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/fill():1: eval '_ble_highlight_layer_syntax2_table[_i]="$_v"'
+++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/fill():1: _ble_highlight_layer_syntax2_table[_i]=
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/fill():1: (( _i++ ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/fill():1: (( _i<_i2 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: local i
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: (( i=_ble_syntax_word_umax ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: (( i>=_ble_syntax_word_umin ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: (( i>0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: [[ -n 2 1 0 -1  nnone 1 -1 -1 - ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: local -a node
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: ble/string#split-words node '2 1 0 -1  nnone 1 -1 -1 -'
++ ~/share/blesh/ble.sh:ble/string#split-words():1: [[ -o noglob ]]
++ ~/share/blesh/ble.sh:ble/string#split-words():1: set -f
++ ~/share/blesh/ble.sh:ble/string#split-words():1: IFS='   
'
++ ~/share/blesh/ble.sh:ble/string#split-words():1: builtin eval 'node=(${*:2})'
+++ ~/share/blesh/ble.sh:ble/string#split-words():1: node=(${*:2})
++ ~/share/blesh/ble.sh:ble/string#split-words():1: set +f
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: local wlen=1
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: local wbeg=0 wend=1
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: [[ 2 =~ ^[0-9]+$ ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: local attr=nnone
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: ble-highlight-layer:syntax/word/.apply-attribute 0 1 nnone
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.apply-attribute():1: local wbeg=0 wend=1 wattr=nnone
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.apply-attribute():1: (( wbeg<color_umin&&(wbeg=color_umin),
    wend>color_umax&&(wend=color_umax),
    wbeg<wend ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.apply-attribute():1: [[ nnone =~ ^[0-9]+$ ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.apply-attribute():1: [[ nnone == m* ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/word/.apply-attribute():1: [[ nnone == d ]]
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: local tclen=0
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: (( tclen>=0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: local tchild=1
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: local tree= nofs=0 proc_children=ble-highlight-layer:syntax/word/.proc-childnode
++ ~/share/blesh/lib/core-syntax.sh:ble-highlight-layer:syntax/update-word-table():1: ble-syntax/tree-enumerate-children ble-highlight-layer:syntax/word/.proc-childnode
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-children():1: (( 0<tchild&&tchild<=i ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-children():1: local nofs=5
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-children():1: local i=1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate-children():1: ble-syntax/tree-enumerate/.impl ble-highlight-layer:syntax/word/.proc-childnode
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.impl():1: local islast=1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.impl():1: (( i>0 ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.impl():1: local -a node
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.impl():1: (( i<iN ))
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.impl():1: ble/string#split-words node '2 1 0 -1  nnone 1 -1 -1 -'
++ ~/share/blesh/ble.sh:ble/string#split-words():1: [[ -o noglob ]]
++ ~/share/blesh/ble.sh:ble/string#split-words():1: set -f
++ ~/share/blesh/ble.sh:ble/string#split-words():1: IFS='   
'
++ ~/share/blesh/ble.sh:ble/string#split-words():1: builtin eval 'node=(${*:2})'
+++ ~/share/blesh/ble.sh:ble/string#split-words():1: node=(${*:2})
++ ~/share/blesh/ble.sh:ble/string#split-words():1: set +f
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.impl():1: ble-assert '((nofs<${#node[@]}))' 'ble-syntax/tree-enumerate/.impl(i=1,iN=1,nofs=5,node=2 1 0 -1 nnone 1 -1 -1 -,command=ble-highlight-layer:syntax/word/.proc-childnode)/FATAL1'
++ ~/share/blesh/ble.sh:ble-assert():1: local 'expr=((nofs<${#node[@]}))'
++ ~/share/blesh/ble.sh:ble-assert():1: local '_ble_stackdump_title=assertion failure'
++ ~/share/blesh/ble.sh:ble-assert():1: builtin eval -- '((nofs<${#node[@]}))'
+++ ~/share/blesh/ble.sh:ble-assert():1: (( nofs<9 ))
++ ~/share/blesh/ble.sh:ble-assert():1: return 0
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.impl():1: local wtype=1 wlen=-1 tclen=-1 tplen=- attr=
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.impl():1: local wbegin=-1
++ ~/share/blesh/lib/core-syntax.sh:ble-syntax/tree-enumerate/.impl():1: local tchild=-1
-bash: -: 構文エラー: オペランドが予期されます (エラーのあるトークンは "-")
akinomyoga commented 5 years ago

ご報告ありがとうございます! こちらこそいつもお世話になっております。いつも使っていただいて感謝しております。再現しました。確認してみますね…

akinomyoga commented 5 years ago

2eaf2a9 直しました。動作確認が完全でなくご迷惑をおかけしました。 もう直っていると思うので取り敢えず閉じますが、ご確認いただければ幸いです。

cmplstofB commented 5 years ago

確認いたしました。対応ありがとうございます!

akinomyoga commented 5 years ago

ご確認ありがとうございます! 良いお年をお迎えください!