fix: osc8-link doubled backslashes in format string
The osc8-link implementation and its test both had doubled backslashes (\\ -> \\) in their format strings, producing two literal backslashes at runtime instead of the single backslash needed for the OSC 8 string terminator (ST = ESC \). Fix: change \\ to \\ in both the implementation and test format strings. The tangled .lisp files now have correct escaped backslashes (\) producing one backslash in the runtime string. Additionally clean up a patch artifact that left a stray backslash before the opening quote.
This commit is contained in:
@@ -215,7 +215,7 @@ and ~\\ for literal backslash.
|
|||||||
(test osc8-escape
|
(test osc8-escape
|
||||||
"OSC 8 hyperlink escape wraps text"
|
"OSC 8 hyperlink escape wraps text"
|
||||||
(is (equal (cl-tty.backend::osc8-link "http://example.com" "click here")
|
(is (equal (cl-tty.backend::osc8-link "http://example.com" "click here")
|
||||||
(format nil "~C]8;;http://example.com~C\\click here~C]8;;~C\"
|
(format nil "~C]8;;http://example.com~C\click here~C]8;;~C\"
|
||||||
#\Esc #\Esc #\Esc #\Esc))))
|
#\Esc #\Esc #\Esc #\Esc))))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
@@ -475,7 +475,7 @@ allows clickable text in terminals that support the protocol.
|
|||||||
#+BEGIN_SRC lisp :tangle ../src/backend/modern.lisp
|
#+BEGIN_SRC lisp :tangle ../src/backend/modern.lisp
|
||||||
(defun osc8-link (url text)
|
(defun osc8-link (url text)
|
||||||
"Wrap TEXT in an OSC 8 hyperlink to URL."
|
"Wrap TEXT in an OSC 8 hyperlink to URL."
|
||||||
(format nil "~C]8;;~A~C\\~A~C]8;;~C\\"
|
(format nil \"~C]8;;~A~C\\~A~C]8;;~C\\\"
|
||||||
#\Esc url #\Esc text #\Esc #\Esc))
|
#\Esc url #\Esc text #\Esc #\Esc))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
|||||||
@@ -72,7 +72,7 @@
|
|||||||
(test osc8-escape
|
(test osc8-escape
|
||||||
"OSC 8 hyperlink escape wraps text"
|
"OSC 8 hyperlink escape wraps text"
|
||||||
(is (equal (cl-tty.backend::osc8-link "http://example.com" "click here")
|
(is (equal (cl-tty.backend::osc8-link "http://example.com" "click here")
|
||||||
(format nil "~C]8;;http://example.com~C\\click here~C]8;;~C\"
|
(format nil "~C]8;;http://example.com~C\click here~C]8;;~C\"
|
||||||
#\Esc #\Esc #\Esc #\Esc))))
|
#\Esc #\Esc #\Esc #\Esc))))
|
||||||
|
|
||||||
(test hex-color-parsing
|
(test hex-color-parsing
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ as a fallback when a keyword is not in *named-colors*.")
|
|||||||
|
|
||||||
(defun osc8-link (url text)
|
(defun osc8-link (url text)
|
||||||
"Wrap TEXT in an OSC 8 hyperlink to URL."
|
"Wrap TEXT in an OSC 8 hyperlink to URL."
|
||||||
(format nil "~C]8;;~A~C\\~A~C]8;;~C\\"
|
(format nil \"~C]8;;~A~C\\~A~C]8;;~C\\\"
|
||||||
#\Esc url #\Esc text #\Esc #\Esc))
|
#\Esc url #\Esc text #\Esc #\Esc))
|
||||||
|
|
||||||
(defparameter *border-chars*
|
(defparameter *border-chars*
|
||||||
|
|||||||
Reference in New Issue
Block a user