Encode any text instead of going through a pretty-printer.
This commit is contained in:
parent
dc25ef2d26
commit
42e76eaaf4
|
@ -1,12 +1,35 @@
|
|||
#lang s-exp framework/private/decode
|
||||
bVTbjtsgEP2VqatIdlWyadSLtFIv6lOf+wErgZkYthi8gJPN33cAO3GyfonjM2fOXDi49vgy
|
||||
ao9QGy2g6j3KbQhV+Vc1E9waHkLCZ2C0Oi7fo3Om5EkfWoU9Vg3FJB60RfBOiDMTkp9/Eh8j
|
||||
1LWEOmDrrAzsh+SR6rej92gjm+CmSQLcEvE7CRGF9c5GBbKBb80VJNEE7Qt/Kih0x0Rf0m+K
|
||||
9/wfMieesY1Eij0fNlCLURvJBk7ideuMoaB2tgAVN50zX3c0aSXk9nnoqptKRsdocL0YTfqB
|
||||
Rk2x1boPaQeUNHXbYWQnLaNq4HOzGlWoOxVTOHfQruky2W5A9JmR84kWKDe03CDstvsv+WcR
|
||||
lZ6fWEmei+1gd5c+xd8fmll88O6oJUI6+l+XhbDkjIJBrfvB+QizJR4T/ERUfH2LswKGp+tu
|
||||
B8UDfoKj0/IO3N+BZQ8WT7k8O3je4wbCOKDfECvbd3qlrqxCT02mjYoxxnzUFk2aOFGYtiFy
|
||||
G3W25dJVmZwErvGCbdI1uBhhRdjwnkyRrJYl8BibxU1YnqLU3LhuA9UfPgxn+K19VGSnj/A3
|
||||
WetdlY4g9bTM6TEE3tHE0/HJu/jc5J3mRVIuGgS8nDwE5U65HtQvo0vbEM5L9AtzTZxYLkWI
|
||||
ZzLZTJZIE6Jsmit/ZTet4rZD1iq6hPQBuLaS9kafgjDv3UxCJ0Wsm4t2MRKpP+BrpEqP5bHw
|
||||
A6x6JG/zPw==
|
||||
|
||||
jVTJbtswEL3rK6YujJBFmbhGFyBAF/TUc69BAlDiWGJCkSpJ2/HfdyhKka04TXmwoZk3bxa+Y
|
||||
c E 8 / t l q j
|
||||
9 \ B \ \ \ \ \6V\ \ \ \ \OB\ \l9\ \ \ \ \YD\xq\jI\yh\ P
|
||||
F j a 3 U E 5 Y e v 6 J z h R c
|
||||
EUb\rRF \8K\4s\ \ D6J\U8v \C9\AG\ \AGI 7AbB \ \ \ \ S xg5\awK
|
||||
4 p u S E Y F V W + / R R j
|
||||
G \YO\b/\ lBK\cA\ \ \ \aQ\ \ \n8\ \ \ FVi\Ci\db\Z2\ \ID\i8\ I
|
||||
V P R q J O p j W n M +
|
||||
Utd\S3\ \ \ \ \ \ \Kt\hg\YTqvo\D2\vl\Aw\pX\ 3mM\VC\ \R1\b2\ S 1
|
||||
H H 3 n L r T Z K d J
|
||||
L \yscoZ\Qyjtb\DY\sp\Km\d+\ \ \ \bxacF\iU\ \ \ 6 \vK\+q\ \ \ x
|
||||
e n y Y 2 O 0 e A r + W k U
|
||||
7 \ \ 2 \ \gW\Zf\tK\KU\eH\ \ \ \Xa\ \ X \ BEV\/u\ \ \ \ D
|
||||
m q M Y q 9 V b D h 8 5 P 8 d 0
|
||||
aCum5h\ \C+O0s\ 6EZ\V5\6o\Rq\lp\ \ \ \C2Y \ \6Xk \ \ p \ l 7
|
||||
W s I H o g y V N A i r y / W
|
||||
n /uc\cT\ \ H \ \m5F5lu \ LGY\ \Fq\5c\IB\+Db \ \ \ \ z \ R
|
||||
G A C u i H 3 H m 3 0 w
|
||||
ohK\e3\HNHWR\ \ dFh\ka\ \ \wF\ \Mt\53\ z \ \ \ \SZ\eh\arDF6\ 2
|
||||
S / I z a G j 8 8 d
|
||||
I \ht\DDxgusWt\kw\A+\ w \c1\rN\re\ u \5N\c/\M4r4v\Qm\y8\ \ \bH\EJY
|
||||
d u h X / Y d s
|
||||
L \wx\2Z\Jb\Yto26\Gl\10\p2U2x\ \ \h7\ \ \eV\k0Q8u\sB\ w ttQ5Q2\ 6
|
||||
n 5 N + O j L e Y f Z 5
|
||||
ODhg \ \ \ \x0HZM\8kJnas \zN\H2\ \Qv6 \ \ \ \ \ \ Mly\2p\Nq1
|
||||
D 8 g P u 4 o n O p n 0 +
|
||||
F \o3S \0rh6C\ Ytf\su\ \ s \ \O8\ \FP\72J D03\8P\vt\AZ\vFula\ b
|
||||
2 d 6 P S F o M Q R Z 0 w Q H
|
||||
o \ \ah\ \ \ \ \/g\Yc\ \ e \ \59\ \ \ \ mekqmzi \ zHvD 5
|
||||
C P C o T Q u H 2 q 8 f x K
|
||||
5 \XP\BSucV\ \ \+j\no\lC\P2\ \ \78\Lk\iw\da\kw\u6\ \ \PZ\ob\ q s
|
||||
m Z o 5 7
|
||||
fBFSNtDWKqqHXiB7IqWDy0btkw9A+GJ7Z2L4h2Oy9YU9ipwxX+Bgp23X+OxIsnBVxmgMv/gI=
|
||||
|
|
|
@ -1,32 +1,34 @@
|
|||
#lang s-exp framework/private/decode
|
||||
|
||||
XY9BD
|
||||
sIgEEWv
|
||||
8pfMgqRV
|
||||
E3Whn
|
||||
qXtT
|
||||
GOjg
|
||||
AE08
|
||||
fYWp
|
||||
62Nu
|
||||
897D
|
||||
PMxjx
|
||||
heAwtc
|
||||
7G3Lzfs
|
||||
CN4 d0m
|
||||
4K0G giGp
|
||||
R+8w JgC4
|
||||
MA0w rvkk
|
||||
XCTR 5GkC
|
||||
56T Peux
|
||||
e8Yo PtsJ
|
||||
E5X7 jWeY
|
||||
E74T 1gWf
|
||||
ryiR 4OjH
|
||||
y/tK Waem
|
||||
1XMZ aIU9
|
||||
ttXK LuXV
|
||||
1hU2 x7WO
|
||||
f75G vdLLj
|
||||
9Xuc CD6A
|
||||
\\\\ A==
|
||||
TY+9Ds
|
||||
IwDIT3P
|
||||
MWN9hCJA
|
||||
hIwAA
|
||||
+CGN
|
||||
rGFR
|
||||
UkRW
|
||||
lA4u
|
||||
1JaF
|
||||
K6ne
|
||||
/zz1n
|
||||
R0w/v
|
||||
3gis73R
|
||||
j6s8Zto
|
||||
jxn oU0
|
||||
k2Cl yEjX
|
||||
OwFR cmBh
|
||||
mBVA Dwmg
|
||||
i6lD RKO0
|
||||
gzOj Pk1l
|
||||
+/Je XNDZ
|
||||
Zr6m iThT
|
||||
OwM6 glKb
|
||||
toML NyTJ
|
||||
sPz3 05XJ
|
||||
jZd4 kaCE
|
||||
iot+ UbDD
|
||||
ZhUb Cp/f
|
||||
yLxa YX1Y
|
||||
8vnh zCug
|
||||
WvD5 +7J/C
|
||||
+wj/ \wI=;;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#lang scheme/base
|
||||
(require (for-syntax scheme/base file/gunzip net/base64))
|
||||
(provide (except-out (all-from-out scheme/base) #%module-begin)
|
||||
#lang racket/base
|
||||
(require (for-syntax racket/base file/gunzip net/base64))
|
||||
(provide (except-out (all-from-out racket/base) #%module-begin)
|
||||
(rename-out [module-begin #%module-begin]))
|
||||
|
||||
(define-syntax (module-begin stx)
|
||||
|
|
|
@ -1,43 +1,34 @@
|
|||
#lang scheme/base
|
||||
(require scheme/cmdline scheme/string scheme/match scheme/pretty
|
||||
file/gzip file/gunzip net/base64)
|
||||
#lang racket/base
|
||||
(require racket/cmdline racket/string file/gzip file/gunzip net/base64)
|
||||
|
||||
(define (encode-exprs exprs)
|
||||
(define in
|
||||
(open-input-string
|
||||
(string-join (map (lambda (x) (format "~s" x)) exprs) " ")))
|
||||
(define out (open-output-bytes))
|
||||
(deflate in out)
|
||||
(base64-encode (get-output-bytes out)))
|
||||
(define do-lang? #f)
|
||||
|
||||
(define (encode-module)
|
||||
(define mod (parameterize ([read-accept-reader #t]) (read)))
|
||||
(when (eof-object? mod) (error 'encode-module "missing module"))
|
||||
(match mod
|
||||
[(list 'module m 'scheme/base (list '#%module-begin exprs ...))
|
||||
(write-bytes #"#lang s-exp framework/private/decode\n")
|
||||
(write-bytes (regexp-replace* #rx"\r\n" (encode-exprs exprs) #"\n"))]
|
||||
[else (error 'encode-module "cannot parse module, must use scheme/base")]))
|
||||
(define (encode/decode-text who lang-from lang-to convert1 convert2)
|
||||
(when do-lang?
|
||||
(let ([l (cadr (or (regexp-match #rx"^ *#lang +(.*[^ ]) *$" (read-line))
|
||||
(error who "missing #lang line")))])
|
||||
(if (equal? l lang-from)
|
||||
(printf "#lang ~a\n" lang-to)
|
||||
(error who "bad #lang: expected ~s, got ~s" lang-from l))))
|
||||
(define O (open-output-bytes))
|
||||
(convert1 (current-input-port) O)
|
||||
(convert2 (open-input-bytes (get-output-bytes O)) (current-output-port))
|
||||
(flush-output))
|
||||
|
||||
(define (decode-module)
|
||||
(define mod (parameterize ([read-accept-reader #t]) (read)))
|
||||
(when (eof-object? mod) (error 'encode-module "missing module"))
|
||||
(match mod
|
||||
[(list 'module m 'framework/private/decode
|
||||
(list '#%module-begin exprs ...))
|
||||
(write-bytes #"#lang scheme/base\n")
|
||||
(let* ([data (format "~a" exprs)]
|
||||
[data (substring data 1 (sub1 (string-length data)))]
|
||||
[data (string->bytes/utf-8 data)]
|
||||
[in (open-input-bytes (base64-decode data))]
|
||||
[out (open-output-string)]
|
||||
[out (begin (inflate in out) (get-output-string out))]
|
||||
[exprs (read (open-input-string (string-append "(" out ")")))])
|
||||
(for ([expr (in-list exprs)])
|
||||
(pretty-print expr)))]
|
||||
[else (error 'decode-module "cannot parse module, must use scheme/base")]))
|
||||
(define (encode-text)
|
||||
(encode/decode-text
|
||||
'encode-text "racket/base" "s-exp framework/private/decode"
|
||||
deflate base64-encode-stream))
|
||||
|
||||
(command-line #:once-any
|
||||
["-e" "encode" (encode-module) (exit)]
|
||||
["-d" "decode" (decode-module) (exit)])
|
||||
(define (decode-text)
|
||||
(encode/decode-text
|
||||
'decode-text "s-exp framework/private/decode" "racket/base"
|
||||
base64-decode-stream inflate))
|
||||
|
||||
(command-line
|
||||
#:once-each
|
||||
["-l" "translate lang line" (set! do-lang? #t)]
|
||||
#:once-any
|
||||
["-e" "encode" (encode-text) (exit)]
|
||||
["-d" "decode" (decode-text) (exit)])
|
||||
(printf "Use `-h' for help\n")
|
||||
|
|
|
@ -1,22 +1,25 @@
|
|||
#lang s-exp framework/private/decode
|
||||
rVbbjqQ2EP2VSq9WgnTIzGjzsFql038QKV8QGSja7oDNGNOXfci3p8rGYJieVTbKE7gup8rl
|
||||
43JlFl9HZRGyVpWw6yzWPw/DLvzt8klctWIYWJ6TpLfmomqEQZpr8ToiahLW2CiN0Fu8KDMO
|
||||
RWNFh/ChWVTVR8g8DlRCX8RAy0ZhW0N2KUojbA0fMoYf1FeE53x2fOrHslUVZEorB96SrdD9
|
||||
ANGRkhxc8dsFK2csZJ3oYSUJTnl08xGyoCta1CcnIxTbGF30QmmXpmDVRThyOqEDBed8drfY
|
||||
rP5jSionq5yTlmgpb3IsqlahdoUPz+u6yucadCoUqzvzd4lsLmgtV5vTwgv5A14c6SujyS3j
|
||||
/Q5IvySFjg5Gn455IiIHis9CPkvKPstIfEssOJMba2lx38jvLG/MqOvCaDxOqTW0VxSVLAba
|
||||
tzKagEVX1oJ2C2e4wR2cVENxDR9JHleJZCU4418PZBFS2NNfsGRUUtwh5LCPEHI5tDQL3v+o
|
||||
WyQuBVDisGiPdDKdyufVGbrz7E71VfP/2Z/gcs4+ygSYxFnH0MYFeP+zQvYnF6H9YoO9VLVF
|
||||
Ec8oFIUOkBC68/fAPeJG0MczrivPVabYfzuxgflqWmMHIKxd2YrqL+oKrTpJd7LivoskI21t
|
||||
xZXIXzmhTy1+gwDL7VF0a5y0SJdKY12U92OowqR+J/rUkt7RGkvxcZdvM8O2Vf2AgW/ZU8zt
|
||||
Mxsy06JIBtGP0eDT0y/LUvplvuJyyDg7RN4dUso9yvBkqVm+qdz/mt+KIHPbenP+TWBKcRHt
|
||||
iMTwLLsCn9OmTeVL17gWg8MestfRONbDFYIFZHKrkrBybo0hLVHtmQQ36rgNAXamHluToNxC
|
||||
0493jqvqVTGBadeeOl/RmiMEqBxiavv495JvY5997Ps6tpxj37exzw9iyzT2fYot59hyFbuB
|
||||
925WyGhP2pf8EeIzZMW0YLBNN8wTBLVBuKUItxXC0mgjRYaxR1tovCaE2RK3979Q+k9CW7bq
|
||||
+RZ4gZPIq4KfXCAY6p62qPzd9lYTyksgCM0NplXxNV7wSjsOMkH064eYwTIktcVMtvKN9pJc
|
||||
XoY4xNfhEJ+GA1cw2BZTew7S/STdR2ka8sHM4yedlShbxqZ5mJlUf1KJSjwpvXl5uAjH2ZhE
|
||||
PODMHfyWr8xui0lpDD03mmWU5Tzf0KORFC4Z4nZ466k/YA3Cz09gmvk7YQ1A21G6H91PcDLu
|
||||
C/yNuwU5tEY9tu2S7vvR6JQDFHQjBSmRwobh6apoIhP+seToXEhqkrukGSneb5jcluEuKdqb
|
||||
Ch0g9UkK8q/qwalOrlQLXpmR5qpQHWegE66SwB026tlauiEuldaT+fC2cEmX1Uh09YOuHzM8
|
||||
o5ZXJ9GGmcgTjpyu4fcj77nEFna/wx+8h4EfG9o45f3pmTugRH7A/WIeYCaSehge0nthuYnH
|
||||
2PGeTmarKfxtVmQYsuJC8qTG/hfDl/Mf
|
||||
zVdLk6M2EL77V3TY2lrIhJrZ2hxSqUx8yTlVObt8kKFt5BUSI4Qfe8hvT7cEWGA8u8ec0ONT
|
||||
61PTz1V6MrKEZLUC+MvA1XRgUSh1hbPQDpwBZcxXEDSsZAuFKXG9WiXZapVafOukRagtlmBF
|
||||
8RXdc6FE2/JmY81JlghtZc75W4eoebXEvdQIjcWTNF2b762oET7so73iIzFJvRwohD6Jlhdo
|
||||
aS9RlbA55TsjbAmfPqTZFjat/Ibwss0CJsh4brqdkgWkUksHHh72CdGi+wkGGamSrcv/PGHh
|
||||
jIW0Fg1MVsLRbHrY35gGRK5QH1w1CLwhjc4bIbXLZsSsPAlHxw/oQMIxGwVZ3E/GA0WZEaoX
|
||||
InWFll5Eh/NCSdQu92R4XhZZrKa0lqxW+h75O2VhTmgt/xymiSeSA3hyI/fC6LIfA2xS1kyL
|
||||
umQM1PRX9WGdRUt0nFjxYjaeIs3SA9MN7V8iKBO98F+jyXW2fuX1vel0mRuNa2K9jeTxw0gz
|
||||
KIoqb0lL0uh4k+4T9a4UpCM4wgWu3lrzc/hUE0GMPleoIRV0ffrHK+EDzycahXNZ5jeuEIg+
|
||||
DQKrLJvLGswipu4WQJ1WSCYdLiXPEWpNFlDT/x1mR6iPC+KHC+iPynd2j2QnS7s3S5xxHxjd
|
||||
iE+PTxlr4wJZP1jgOZJkb35EcWkvJriN7G60DoUiGF1kXuEHkmnShfUxm9w+uS6Wv33gB6sZ
|
||||
kX4eTLgsvLeyg90M8rEx/rghMsu8MMrYFuiSZKcohCaQKHmo3MGKazJDkzoIV1pxpghROKEP
|
||||
Cr9zRVDTEGymHiMp4LiKgr1DjWW+u66DMu+hj7lS5E9+FGssMcZkZjnTd6FSsmlxLpEdM30e
|
||||
3vnbnfF5Bx0A1RLg5+Hwl+dfH21WfjNbUCB7QNBN+jo47euSvz56+8FSAkz+9y8fQ8QsX/UO
|
||||
MTd62Eeukp+E6pDCxSY9Q5UFp4myVOw9wbPOeeuwgfStM45hcIYAhE0136pgJqOXQsUJwTaS
|
||||
SgDYXCgd70lybcpOmUjcZawQhrNDbOPf6VGz2BcY9przrvINrVlDuCKDgfvTMPqcZdv72BZR
|
||||
PHqK1ynFaqR4nVO8I3pcInpPt4rpXnu61Ui3eoduL2wPP5REx7v9+57oyOcHkB54T+sF0ryf
|
||||
MKN3T09y8EL6GWjIhzQWfqMncPkOgUldEDtJ2zVoc428fCtgZzGg8UPY+Q8fHP2ecQ2HF7/g
|
||||
KuRZzgUokCBKyTYvfHj2qF7OZ/jUGiVDqTkRtbNdW0XC/HxRXEAGRqO4+AXvpYU4GHJp+BoK
|
||||
Ez9YrkFoh7Qcqt28T9ge7/8Wrz4NqxMat+Zg7A18PzDtF9Jbh3Er9ae1C+tgPe0DbuQIwXX/
|
||||
mLcv2eRUP2XIzhgqRTSvEf+44E+pjvCqHKnE1yR4aShgUpMkfHsBZj9+e5kt0LOkbjr3CxyM
|
||||
+x3+xSQWcbusz0i6U2rypHsKkJAVBKFQd3TdDolA6CrOkpoW4Usr5sGqpQQUcvMQnSXrILQ3
|
||||
4Z6hyYp0e6e5V4jPRYoamot3NRXrisn3YkhPPDMdNRpBc9SW1sIVFXA6GvYZXbl2mEqte3i7
|
||||
rFSI+7v+1RrJ5n3b6Atdb4Ljw73qR8SkKQy2mlIsCMOPsFFihwqSv+EffmabUJAn3dBzvrxw
|
||||
JqiQ6zw/mTWYvZV7YQUJaoTlFOjlbm/Bh/28h8773BnTHhw4sua5Qwmv5uafRv8B
|
||||
|
|
Loading…
Reference in New Issue
Block a user