bopher-ng

A better Gopher client in pure Bash
git clone git://git.luxferre.top/bopher-ng.git
Log | Files | Refs | README | LICENSE

commit 754da0568730dd24ba342216f8b70b8279bcde19
parent d09b830154fd136e918010cfbf3800bdca1790be
Author: Luxferre <lux@ferre>
Date:   Wed, 29 Mar 2023 20:41:51 +0300

more escaping for escaping

Diffstat:
Mbopher-ng.sh | 32++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/bopher-ng.sh b/bopher-ng.sh @@ -40,22 +40,22 @@ fi # styling used in the TUI ESC=$'\x1b' # use the ANSI literal syntax to support in read prompts as well -ERESET="$ESC[0m" # reset the styling -ERRCOLOR="$ESC[31;1m" # red bold -LINKCOLOR="$ESC[36;1m" # cyan bold -FOCUSATTR="$ESC[7;2m" # swap foreground and background and brightness level -CLS="$ESC[2J" # clear the entire screen -CURRESET="$ESC[0;0H" # reset the visual cursor -CURSTART="$ESC[1G" # move cursor to the start of the line -LINECLR="$ESC[2K" # clear current line -BELOWCLR="$ESC[0J" # clear everything below -ALTBUFON="$ESC[?47h" # use the alternative screen buffer -ALTBUFOFF="$ESC[?47l" # return to the default screen buffer +ERESET="${ESC}[0m" # reset the styling +ERRCOLOR="${ESC}[31;1m" # red bold +LINKCOLOR="${ESC}[36;1m" # cyan bold +FOCUSATTR="${ESC}[7;2m" # swap foreground and background and brightness level +CLS="${ESC}[2J" # clear the entire screen +CURRESET="${ESC}[0;0H" # reset the visual cursor +CURSTART="${ESC}[1G" # move cursor to the start of the line +LINECLR="${ESC}[2K" # clear current line +BELOWCLR="${ESC}[0J" # clear everything below +ALTBUFON="${ESC}[?47h" # use the alternative screen buffer +ALTBUFOFF="${ESC}[?47l" # return to the default screen buffer # mouse event support switches -MOUSEON="$ESC[?1000;1006h" # term command to start sending mouse input events as control sequences (semi-long format, no drag) -MOUSEOFF="$ESC[?1000;1006l" # term command to stop sending mouse input events as control sequences (semi-long format, no drag) -# in the semi-long format without drag, every mouse control sequence starts with "$ESC[<" and then has three fields: +MOUSEON="${ESC}[?1000;1006h" # term command to start sending mouse input events as control sequences (semi-long format, no drag) +MOUSEOFF="${ESC}[?1000;1006l" # term command to stop sending mouse input events as control sequences (semi-long format, no drag) +# in the semi-long format without drag, every mouse control sequence starts with "${ESC}[<" and then has three fields: # button_attr;xcoord;ycoord[Mm] clear_term() { # clear the terminal on Ctrl+C interrupt @@ -186,7 +186,7 @@ amrender() { # - clear everything that remains and reset the cursor to the last line # - output current resource to the status line # - reset the cursor once again - output="${output}$BELOWCLR$ESC[$TERMROWS;0H$FOCUSATTR$(amtogopher "$CURRENTAM")$ERESET$ESC[$TERMROWS;0H" + output="${output}$BELOWCLR${ESC}[$TERMROWS;0H$FOCUSATTR$(amtogopher "$CURRENTAM")$ERESET${ESC}[$TERMROWS;0H" printf '%b' "$output" # finally, print the entire output with a single call } trap 'amrender' WINCH # rerender on terminal size change @@ -258,7 +258,7 @@ goback() { # remove the last AM line from history and go there stashlink() { # stash the link to the currently viewed resource local gopherlink="$(amtogopher "$CURRENTAM")" printf '[%s] %s\n' "$(date -u '+%F %T')" "$gopherlink" >> $BOPHER_LINKSTASH - printf 'Stashed %s%b' "$gopherlink" "$ERESET$ESC[$TERMROWS;0H" # just reset the cursor to the last line + printf 'Stashed %s%b' "$gopherlink" "$ERESET${ESC}[$TERMROWS;0H" # just reset the cursor to the last line } # Focus and click a link on a Gophermap