Skip to content

Commit

Permalink
edit (ble-bind -x): preserve multiline prompts on execution of "bind …
Browse files Browse the repository at this point in the history
…-x" commands
  • Loading branch information
akinomyoga committed Jul 6, 2022
1 parent 1f254b5 commit 240bfaa
Showing 1 changed file with 20 additions and 6 deletions.
26 changes: 20 additions & 6 deletions src/edit.sh
Expand Up @@ -4086,16 +4086,30 @@ function ble/widget/.insert-newline {
_ble_textarea_gendx=0 _ble_textarea_gendy=0
_ble_canvas_panel_height[_ble_textarea_panel]=1
}
## @fn ble/widget/.hide-current-line [opts]
## @param[in] opts
## a colon-separated list of the following fields:
##
## keep-header
## keep the multiline prompt displayed in the terminal except
## for the last line.
##
function ble/widget/.hide-current-line {
local opts=$1 y_erase=0
[[ :$opts: == *:keep-header:* ]] && y_erase=${_ble_prompt_ps1_data[4]}
ble-edit/info/hide
local -a DRAW_BUFF=()
ble/canvas/panel#clear.draw "$_ble_textarea_panel"
ble/canvas/panel#goto.draw "$_ble_textarea_panel" 0 0
if ((y_erase)); then
ble/canvas/panel#clear-after.draw "$_ble_textarea_panel" 0 "$y_erase"
else
ble/canvas/panel#clear.draw "$_ble_textarea_panel"
fi
ble/canvas/panel#goto.draw "$_ble_textarea_panel" 0 "$y_erase"
ble/canvas/bflush.draw
ble/textarea#invalidate
_ble_canvas_x=0 _ble_canvas_y=0
_ble_textarea_gendx=0 _ble_textarea_gendy=0
_ble_canvas_panel_height[_ble_textarea_panel]=1
_ble_canvas_x=0 _ble_canvas_y=$y_erase
_ble_textarea_gendx=0 _ble_textarea_gendy=$y_erase
((_ble_canvas_panel_height[_ble_textarea_panel]=1+y_erase))
}

function ble/widget/.newline/clear-content {
Expand Down Expand Up @@ -7442,7 +7456,7 @@ function ble/widget/.EDIT_COMMAND {
local READLINE_LINE=$_ble_edit_str
local READLINE_POINT=$_ble_edit_ind
local READLINE_MARK=$_ble_edit_mark
ble/widget/.hide-current-line
ble/widget/.hide-current-line keep-header
ble/util/buffer.flush >&2
eval "$command" || return 1
ble-edit/content/clear-arg
Expand Down

0 comments on commit 240bfaa

Please sign in to comment.