/usr/lib/s9fes/loutify-char.scm is in scheme9 2010.11.13-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | ; Scheme 9 from Empty Space, Function Library
; By Nils M Holm, 2010
; See the LICENSE file of the S9fES package for terms of use
;
; (loutify-char char) ==> string
; (loutify-string string) ==> string
;
; LOUTIFY-CHAR converts a char to a string that is save for
; inclusion in an Lout document. LOUTIFY-STRING does the
; same for a string.
;
; Example: (loutify-char #\") ==> "\"\\\"\""
; (loutify-string "\"x\"") ==> "\"\\\"x\\\"\""
(define (loutify-char c)
(let ((quotify
(lambda (c)
(string-append "\"" c "\""))))
(cond ((char=? c #\") (quotify "\\\""))
((char=? c #\@) (quotify "@"))
((char=? c #\/) (quotify "/"))
((char=? c #\|) (quotify "|"))
((char=? c #\&) (quotify "&"))
((char=? c #\#) (quotify "#"))
((char=? c #\\) (quotify "\\\\"))
((char=? c #\{) (quotify "{"))
((char=? c #\}) (quotify "}"))
((char=? c #\`) "{@BQ}")
(else (string c)))))
(define (loutify-string s)
(string-append
"\""
(apply string-append
(map (lambda (c)
(cond ((char=? #\" c) "\\\"")
((char=? #\\ c) "\\\\")
(else (string c))))
(string->list s)))
"\""))
|