Skip to content

Commit

Permalink
highlight: fix a problem that the lastchar attribute is applied till …
Browse files Browse the repository at this point in the history
…EOL (2)
  • Loading branch information
akinomyoga committed Dec 2, 2020
1 parent f47a5b8 commit 8c1e17c
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 9 deletions.
15 changes: 8 additions & 7 deletions src/canvas.sh
Expand Up @@ -1651,19 +1651,20 @@ function ble/textmap#hit {
## 現在の (描画の為に動き回る) カーソル位置を保持します。
_ble_canvas_x=0 _ble_canvas_y=0

## 関数 ble/canvas/goto.draw x y
## 関数 ble/canvas/goto.draw x y opts
## 現在位置を指定した座標へ移動する制御系列を生成します。
## @param[in] x y
## 移動先のカーソルの座標を指定します。
## プロンプト原点が x=0 y=0 に対応します。
function ble/canvas/goto.draw {
local x=$1 y=$2
local x=$1 y=$2 opts=$3

# Note #D1392: mc (midnight commander) は
# sgr0 単体でもプロンプトと勘違いするので、
# プロンプト更新もカーソル移動も不要の時は、
# sgr0 も含めて何も出力しない。
((x==_ble_canvas_x&&y==_ble_canvas_y)) && return 0
[[ :$opts: != *:sgr0:* ]] &&
((x==_ble_canvas_x&&y==_ble_canvas_y)) && return 0

ble/canvas/put.draw "$_ble_term_sgr0"

Expand Down Expand Up @@ -1808,9 +1809,9 @@ function ble/canvas/panel#get-origin {
((${prefix}x=0,${prefix}y=ret))
}
function ble/canvas/panel#goto.draw {
local index=$1 x=${2-0} y=${3-0} ret
local index=$1 x=${2-0} y=${3-0} opts=$4 ret
ble/arithmetic/sum "${_ble_canvas_panel_height[@]::index}"
ble/canvas/goto.draw "$x" $((ret+y))
ble/canvas/goto.draw "$x" $((ret+y)) "$opts"
}
## 関数 ble/canvas/panel#put.draw panel text x y
function ble/canvas/panel#put.draw {
Expand Down Expand Up @@ -1889,7 +1890,7 @@ function ble/canvas/panel#clear.draw {
if ((height)); then
local ret
ble/arithmetic/sum "${_ble_canvas_panel_height[@]::index}"; local ins_offset=$ret
ble/canvas/goto.draw 0 "$ins_offset"
ble/canvas/goto.draw 0 "$ins_offset" sgr0
if ((height==1)); then
ble/canvas/put.draw "$_ble_term_el2"
else
Expand All @@ -1903,7 +1904,7 @@ function ble/canvas/panel#clear-after.draw {
local height=${_ble_canvas_panel_height[index]}
((y<height)) || return

ble/canvas/panel#goto.draw "$index" "$x" "$y"
ble/canvas/panel#goto.draw "$index" "$x" "$y" sgr0
ble/canvas/put.draw "$_ble_term_el"
local rest_lines=$((height-(y+1)))
if ((rest_lines)); then
Expand Down
4 changes: 2 additions & 2 deletions src/edit.sh
Expand Up @@ -1568,7 +1568,7 @@ function ble/textarea#render/.erase-rps1 {
local -a DRAW_BUFF=()
local y=0
for ((y=0;y<rps1_height;y++)); do
ble/canvas/panel#goto.draw "$_ble_textarea_panel" $((cols+1)) "$y"
ble/canvas/panel#goto.draw "$_ble_textarea_panel" $((cols+1)) "$y" sgr0
ble/canvas/put.draw "$_ble_term_el"
done
ble/canvas/bflush.draw
Expand All @@ -1584,7 +1584,7 @@ function ble/textarea#render/.cleanup-trailing-spaces-after-newline {
for line in "${buffer[@]}"; do
((index+=${#line}))
ble/string#split-words pos "${_ble_textmap_pos[index]}"
ble/canvas/panel#goto.draw "$_ble_textarea_panel" "${pos[0]}" "${pos[1]}"
ble/canvas/panel#goto.draw "$_ble_textarea_panel" "${pos[0]}" "${pos[1]}" sgr0
ble/canvas/put.draw "$_ble_term_el"
((index++))
done
Expand Down

0 comments on commit 8c1e17c

Please sign in to comment.