only warn when there is an invalid path when getting a prop
This commit is contained in:
parent
f4c08ccb08
commit
72431fda2d
|
@ -140,7 +140,7 @@ path/s is either such a string or a list of them.
|
||||||
;; need updating if more characters are allowed in the future.
|
;; need updating if more characters are allowed in the future.
|
||||||
#rx"[^/.a-zA-Z0-9%_+-]")
|
#rx"[^/.a-zA-Z0-9%_+-]")
|
||||||
|
|
||||||
(define (validate-path-string path-string who)
|
(define (validate-path-string path-string who [only-warn? #f])
|
||||||
(define (bad why)
|
(define (bad why)
|
||||||
(error* who "invalid path argument, expecting a ~a, got: ~e"
|
(error* who "invalid path argument, expecting a ~a, got: ~e"
|
||||||
why path-string))
|
why path-string))
|
||||||
|
@ -149,10 +149,12 @@ path/s is either such a string or a list of them.
|
||||||
(regexp-match? rx:bad-path path-string))
|
(regexp-match? rx:bad-path path-string))
|
||||||
(bad "relative `/'-delimited string, no `/' suffix, `//', `.', or `..'"))
|
(bad "relative `/'-delimited string, no `/' suffix, `//', `.', or `..'"))
|
||||||
(when (regexp-match? rx:bad-pathchar path-string)
|
(when (regexp-match? rx:bad-pathchar path-string)
|
||||||
(error* who "invalid path argument, ~s is not allowed, got: ~e\n~a~a"
|
(if only-warn?
|
||||||
(regexp-match rx:bad-pathchar path-string) path-string
|
(warn "~s is a bad path argument" path-string)
|
||||||
"(note: if paths with this character are needed, then this"
|
(error* who "invalid path argument, ~s is not allowed, got: ~e\n~a~a"
|
||||||
" script needs to be exteded to allow them)")))
|
(regexp-match rx:bad-pathchar path-string) path-string
|
||||||
|
"(note: if paths with this character are needed, then this"
|
||||||
|
" script needs to be exteded to allow them)"))))
|
||||||
|
|
||||||
(define (parse-prop-string prop str who)
|
(define (parse-prop-string prop str who)
|
||||||
(with-handlers ([exn? (lambda (e)
|
(with-handlers ([exn? (lambda (e)
|
||||||
|
@ -162,7 +164,7 @@ path/s is either such a string or a list of them.
|
||||||
|
|
||||||
(define (get-prop path-string prop-name [default get-prop]
|
(define (get-prop path-string prop-name [default get-prop]
|
||||||
#:strict? [strict? #f] #:as-string? [as-string? #f])
|
#:strict? [strict? #f] #:as-string? [as-string? #f])
|
||||||
(validate-path-string path-string 'get-prop)
|
(validate-path-string path-string 'get-prop #t) ; no errors
|
||||||
(let ([upchain
|
(let ([upchain
|
||||||
;; take the chain going up from the most specific node, so that
|
;; take the chain going up from the most specific node, so that
|
||||||
;; properties of a directory apply to subpaths
|
;; properties of a directory apply to subpaths
|
||||||
|
|
Loading…
Reference in New Issue
Block a user