mirror of
https://github.com/rabbibotton/clog.git
synced 2025-12-06 10:40:45 -08:00
escape-string
This commit is contained in:
parent
252f2bd922
commit
d7ae4c1bfd
3 changed files with 48 additions and 22 deletions
|
|
@ -28,8 +28,9 @@
|
||||||
(validp function)
|
(validp function)
|
||||||
(cclose function)
|
(cclose function)
|
||||||
(shutdown function)
|
(shutdown function)
|
||||||
(cwrite function)
|
(put function)
|
||||||
(cwriteln function))
|
(put-line function)
|
||||||
|
(new-line function))
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
@ -56,7 +57,9 @@
|
||||||
(let ((uid (clog::generate-connection-id)))
|
(let ((uid (clog::generate-connection-id)))
|
||||||
(clog::prep-query uid nil)
|
(clog::prep-query uid nil)
|
||||||
(execute connection-id
|
(execute connection-id
|
||||||
(format nil "ws.send (\"~A:\"+eval(\"~A\"));" uid script))
|
(format nil "ws.send (\"~A:\"+eval(\"~A\"));"
|
||||||
|
uid
|
||||||
|
(clog:escape-string script)))
|
||||||
(clog::wait-for-answer uid)))
|
(clog::wait-for-answer uid)))
|
||||||
|
|
||||||
;;;;;;;;;;;;
|
;;;;;;;;;;;;
|
||||||
|
|
@ -87,18 +90,26 @@
|
||||||
reistablish connectivity."
|
reistablish connectivity."
|
||||||
(execute connection-id "Shutdown_ws(event.reason='user')"))
|
(execute connection-id "Shutdown_ws(event.reason='user')"))
|
||||||
|
|
||||||
;;;;;;;;;;;;
|
;;;;;;;;;
|
||||||
;; cwrite ;;
|
;; put ;;
|
||||||
;;;;;;;;;;;;
|
;;;;;;;;;
|
||||||
|
|
||||||
(defun cwrite (connection-id text)
|
(defun put (connection-id text)
|
||||||
"Write TEXT raw to document object of CONNECTION-ID with out new line."
|
"Write TEXT to document object of CONNECTION-ID with out new line."
|
||||||
(execute connection-id (format nil "document.write('~A');" text)))
|
(execute connection-id (format nil "document.write('~A');" (clog:escape-string text))))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;
|
||||||
;; cwriteln ;;
|
;; put-line ;;
|
||||||
;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(defun cwriteln (connection-id text)
|
(defun put-line (connection-id text)
|
||||||
"Write TEXT raw to document object of CONNECTION-ID with new line."
|
"Write TEXT to document object of CONNECTION-ID with new line and HTML <br />."
|
||||||
(execute connection-id (format nil "document.writeln('~A');" text)))
|
(execute connection-id (format nil "document.writeln('~A<br />');" (clog:escape-string text))))
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;
|
||||||
|
;; new-line ;;
|
||||||
|
;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
(defun new-line (connection-id)
|
||||||
|
"Write a new line raw to document object of CONNECTION-ID with a <br />."
|
||||||
|
(execute connection-id (format nil "document.writeln('<br />');")))
|
||||||
|
|
|
||||||
18
clog.lisp
18
clog.lisp
|
|
@ -38,8 +38,9 @@ application."
|
||||||
(set-on-connect function)
|
(set-on-connect function)
|
||||||
|
|
||||||
"CLOG utilities"
|
"CLOG utilities"
|
||||||
|
|
||||||
(open-browser function))
|
(escape-string function)
|
||||||
|
(open-browser function))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Implementation - clog
|
;; Implementation - clog
|
||||||
|
|
@ -235,6 +236,19 @@ located at STATIC-ROOT."
|
||||||
"Change the ON-CONNECTION-HANDLER set during Initialize."
|
"Change the ON-CONNECTION-HANDLER set during Initialize."
|
||||||
(setf *on-connect-handler* on-connect-handler))
|
(setf *on-connect-handler* on-connect-handler))
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; escape-string ;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
(defun escape-string (str)
|
||||||
|
"Escape STR for sending to browser script."
|
||||||
|
(let ((res))
|
||||||
|
(setf res (ppcre:regex-replace-all "\\x22" str "\\x22"))
|
||||||
|
(setf res (ppcre:regex-replace-all "\\x27" res "\\x27"))
|
||||||
|
(setf res (ppcre:regex-replace-all "\\x0A" res "\\x0A"))
|
||||||
|
(setf res (ppcre:regex-replace-all "\\x0D" res "\\x0D"))
|
||||||
|
res))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;
|
||||||
;; open-browser ;;
|
;; open-browser ;;
|
||||||
;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,18 @@
|
||||||
(defun on-connect (id)
|
(defun on-connect (id)
|
||||||
(format t "Connection ~A is valid? ~A~%" id (clog-connection:validp id))
|
(format t "Connection ~A is valid? ~A~%" id (clog-connection:validp id))
|
||||||
(dotimes (n 10)
|
(dotimes (n 10)
|
||||||
(clog-connection:cwrite id "<b>connection-write</b>")
|
(clog-connection:put id "<b>connection-write</b>")
|
||||||
(clog-connection:cwriteln id "<i>connection-writeln</i>")
|
(clog-connection:put-line id "<i>connection-writeln</i>")
|
||||||
(sleep .2))
|
(sleep .2))
|
||||||
(clog-connection:cwrite id "<br><b>Query Result : </b>")
|
(clog-connection:put id "<br><b>Query Result : </b>")
|
||||||
(clog-connection:cwrite id (clog-connection:query id "navigator.appVersion"))
|
(clog-connection:put-line id (clog-connection:query id "navigator.appVersion"))
|
||||||
(clog-connection:cwrite id "<hr>simulate network interupt")
|
(clog-connection:new-line id)
|
||||||
|
(clog-connection:put id "<hr>simulate network interupt")
|
||||||
(clog-connection:cclose id)
|
(clog-connection:cclose id)
|
||||||
(sleep .2)
|
(sleep .2)
|
||||||
(clog-connection:cwrite id "<br><b>reconnected</b>")
|
(clog-connection:put id "<br><b>reconnected</b>")
|
||||||
(sleep .2)
|
(sleep .2)
|
||||||
(clog-connection:cwrite id "<br><b>shutting down connection</b>")
|
(clog-connection:put id "<br><b>shutting down connection</b>")
|
||||||
(sleep .2)
|
(sleep .2)
|
||||||
;; It is generally uneccessary to shutdown the connection
|
;; It is generally uneccessary to shutdown the connection
|
||||||
(clog-connection:shutdown id))
|
(clog-connection:shutdown id))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue