serialize paths with convention type

svn: r4925
This commit is contained in:
Matthew Flatt 2006-11-23 01:50:00 +00:00
parent 1a4df0fa70
commit 46fed6e891

View File

@ -414,7 +414,7 @@
(char? v) (char? v)
(symbol? v) (symbol? v)
(string? v) (string? v)
(path? v) (path-for-some-system? v)
(bytes? v) (bytes? v)
(vector? v) (vector? v)
(pair? v) (pair? v)
@ -557,7 +557,7 @@
(for-each loop (vector->list ((serialize-info-vectorizer info) v))))] (for-each loop (vector->list ((serialize-info-vectorizer info) v))))]
[(or (string? v) [(or (string? v)
(bytes? v) (bytes? v)
(path? v)) (path-for-some-system? v))
;; No sub-structure ;; No sub-structure
(void)] (void)]
[(vector? v) [(vector? v)
@ -611,8 +611,8 @@
[(or (string? v) [(or (string? v)
(bytes? v)) (bytes? v))
(cons 'u v)] (cons 'u v)]
[(path? v) [(path-for-some-system? v)
(cons 'p (path->bytes v))] (list* 'p+ (path->bytes v) (path-convention-type v))]
[(vector? v) [(vector? v)
(cons (if (immutable? v) 'v 'v!) (cons (if (immutable? v) 'v 'v!)
(map (serial #t) (vector->list v)))] (map (serial #t) (vector->list v)))]
@ -733,6 +733,7 @@
[(string? x) (string-copy x)] [(string? x) (string-copy x)]
[(bytes? x) (bytes-copy x)]))] [(bytes? x) (bytes-copy x)]))]
[(p) (bytes->path (cdr v))] [(p) (bytes->path (cdr v))]
[(p+) (bytes->path (cadr v) (cddr v))]
[(c) (cons-immutable (loop (cadr v)) (loop (cddr v)))] [(c) (cons-immutable (loop (cadr v)) (loop (cddr v)))]
[(c!) (cons (loop (cadr v)) (loop (cddr v)))] [(c!) (cons (loop (cadr v)) (loop (cddr v)))]
[(v) (apply vector-immutable (map loop (cdr v)))] [(v) (apply vector-immutable (map loop (cdr v)))]