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
|
#lang s-exp framework/private/decode
|
||||||
bVTbjtsgEP2VqatIdlWyadSLtFIv6lOf+wErgZkYthi8gJPN33cAO3GyfonjM2fOXDi49vgy
|
|
||||||
ao9QGy2g6j3KbQhV+Vc1E9waHkLCZ2C0Oi7fo3Om5EkfWoU9Vg3FJB60RfBOiDMTkp9/Eh8j
|
jVTJbtswEL3rK6YujJBFmbhGFyBAF/TUc69BAlDiWGJCkSpJ2/HfdyhKka04TXmwoZk3bxa+Y
|
||||||
1LWEOmDrrAzsh+SR6rej92gjm+CmSQLcEvE7CRGF9c5GBbKBb80VJNEE7Qt/Kih0x0Rf0m+K
|
c E 8 / t l q j
|
||||||
9/wfMieesY1Eij0fNlCLURvJBk7ideuMoaB2tgAVN50zX3c0aSXk9nnoqptKRsdocL0YTfqB
|
9 \ B \ \ \ \ \6V\ \ \ \ \OB\ \l9\ \ \ \ \YD\xq\jI\yh\ P
|
||||||
Rk2x1boPaQeUNHXbYWQnLaNq4HOzGlWoOxVTOHfQruky2W5A9JmR84kWKDe03CDstvsv+WcR
|
F j a 3 U E 5 Y e v 6 J z h R c
|
||||||
lZ6fWEmei+1gd5c+xd8fmll88O6oJUI6+l+XhbDkjIJBrfvB+QizJR4T/ERUfH2LswKGp+tu
|
EUb\rRF \8K\4s\ \ D6J\U8v \C9\AG\ \AGI 7AbB \ \ \ \ S xg5\awK
|
||||||
B8UDfoKj0/IO3N+BZQ8WT7k8O3je4wbCOKDfECvbd3qlrqxCT02mjYoxxnzUFk2aOFGYtiFy
|
4 p u S E Y F V W + / R R j
|
||||||
G3W25dJVmZwErvGCbdI1uBhhRdjwnkyRrJYl8BibxU1YnqLU3LhuA9UfPgxn+K19VGSnj/A3
|
G \YO\b/\ lBK\cA\ \ \ \aQ\ \ \n8\ \ \ FVi\Ci\db\Z2\ \ID\i8\ I
|
||||||
WetdlY4g9bTM6TEE3tHE0/HJu/jc5J3mRVIuGgS8nDwE5U65HtQvo0vbEM5L9AtzTZxYLkWI
|
V P R q J O p j W n M +
|
||||||
ZzLZTJZIE6Jsmit/ZTet4rZD1iq6hPQBuLaS9kafgjDv3UxCJ0Wsm4t2MRKpP+BrpEqP5bHw
|
Utd\S3\ \ \ \ \ \ \Kt\hg\YTqvo\D2\vl\Aw\pX\ 3mM\VC\ \R1\b2\ S 1
|
||||||
A6x6JG/zPw==
|
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
|
#lang s-exp framework/private/decode
|
||||||
|
|
||||||
XY9BD
|
TY+9Ds
|
||||||
sIgEEWv
|
IwDIT3P
|
||||||
8pfMgqRV
|
MWN9hCJA
|
||||||
E3Whn
|
hIwAA
|
||||||
qXtT
|
+CGN
|
||||||
GOjg
|
rGFR
|
||||||
AE08
|
UkRW
|
||||||
fYWp
|
lA4u
|
||||||
62Nu
|
1JaF
|
||||||
897D
|
K6ne
|
||||||
PMxjx
|
/zz1n
|
||||||
heAwtc
|
R0w/v
|
||||||
7G3Lzfs
|
3gis73R
|
||||||
CN4 d0m
|
j6s8Zto
|
||||||
4K0G giGp
|
jxn oU0
|
||||||
R+8w JgC4
|
k2Cl yEjX
|
||||||
MA0w rvkk
|
OwFR cmBh
|
||||||
XCTR 5GkC
|
mBVA Dwmg
|
||||||
56T Peux
|
i6lD RKO0
|
||||||
e8Yo PtsJ
|
gzOj Pk1l
|
||||||
E5X7 jWeY
|
+/Je XNDZ
|
||||||
E74T 1gWf
|
Zr6m iThT
|
||||||
ryiR 4OjH
|
OwM6 glKb
|
||||||
y/tK Waem
|
toML NyTJ
|
||||||
1XMZ aIU9
|
sPz3 05XJ
|
||||||
ttXK LuXV
|
jZd4 kaCE
|
||||||
1hU2 x7WO
|
iot+ UbDD
|
||||||
f75G vdLLj
|
ZhUb Cp/f
|
||||||
9Xuc CD6A
|
yLxa YX1Y
|
||||||
\\\\ A==
|
8vnh zCug
|
||||||
|
WvD5 +7J/C
|
||||||
|
+wj/ \wI=;;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#lang scheme/base
|
#lang racket/base
|
||||||
(require (for-syntax scheme/base file/gunzip net/base64))
|
(require (for-syntax racket/base file/gunzip net/base64))
|
||||||
(provide (except-out (all-from-out scheme/base) #%module-begin)
|
(provide (except-out (all-from-out racket/base) #%module-begin)
|
||||||
(rename-out [module-begin #%module-begin]))
|
(rename-out [module-begin #%module-begin]))
|
||||||
|
|
||||||
(define-syntax (module-begin stx)
|
(define-syntax (module-begin stx)
|
||||||
|
|
|
@ -1,43 +1,34 @@
|
||||||
#lang scheme/base
|
#lang racket/base
|
||||||
(require scheme/cmdline scheme/string scheme/match scheme/pretty
|
(require racket/cmdline racket/string file/gzip file/gunzip net/base64)
|
||||||
file/gzip file/gunzip net/base64)
|
|
||||||
|
|
||||||
(define (encode-exprs exprs)
|
(define do-lang? #f)
|
||||||
(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 (encode-module)
|
(define (encode/decode-text who lang-from lang-to convert1 convert2)
|
||||||
(define mod (parameterize ([read-accept-reader #t]) (read)))
|
(when do-lang?
|
||||||
(when (eof-object? mod) (error 'encode-module "missing module"))
|
(let ([l (cadr (or (regexp-match #rx"^ *#lang +(.*[^ ]) *$" (read-line))
|
||||||
(match mod
|
(error who "missing #lang line")))])
|
||||||
[(list 'module m 'scheme/base (list '#%module-begin exprs ...))
|
(if (equal? l lang-from)
|
||||||
(write-bytes #"#lang s-exp framework/private/decode\n")
|
(printf "#lang ~a\n" lang-to)
|
||||||
(write-bytes (regexp-replace* #rx"\r\n" (encode-exprs exprs) #"\n"))]
|
(error who "bad #lang: expected ~s, got ~s" lang-from l))))
|
||||||
[else (error 'encode-module "cannot parse module, must use scheme/base")]))
|
(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 (encode-text)
|
||||||
(define mod (parameterize ([read-accept-reader #t]) (read)))
|
(encode/decode-text
|
||||||
(when (eof-object? mod) (error 'encode-module "missing module"))
|
'encode-text "racket/base" "s-exp framework/private/decode"
|
||||||
(match mod
|
deflate base64-encode-stream))
|
||||||
[(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")]))
|
|
||||||
|
|
||||||
(command-line #:once-any
|
(define (decode-text)
|
||||||
["-e" "encode" (encode-module) (exit)]
|
(encode/decode-text
|
||||||
["-d" "decode" (decode-module) (exit)])
|
'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")
|
(printf "Use `-h' for help\n")
|
||||||
|
|
|
@ -1,22 +1,25 @@
|
||||||
#lang s-exp framework/private/decode
|
#lang s-exp framework/private/decode
|
||||||
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
|
||||||
2PGeTmarKfxtVmQYsuJC8qTG/hfDl/Mf
|
+x3+xSQWcbusz0i6U2rypHsKkJAVBKFQd3TdDolA6CrOkpoW4Usr5sGqpQQUcvMQnSXrILQ3
|
||||||
|
4Z6hyYp0e6e5V4jPRYoamot3NRXrisn3YkhPPDMdNRpBc9SW1sIVFXA6GvYZXbl2mEqte3i7
|
||||||
|
rFSI+7v+1RrJ5n3b6Atdb4Ljw73qR8SkKQy2mlIsCMOPsFFihwqSv+EffmabUJAn3dBzvrxw
|
||||||
|
JqiQ6zw/mTWYvZV7YQUJaoTlFOjlbm/Bh/28h8773BnTHhw4sua5Qwmv5uafRv8B
|
||||||
|
|
Loading…
Reference in New Issue
Block a user