mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
gpgscm: Improve library functions.
* tests/gpgscm/tests.scm (absolute-path?): New function. (canonical-path): Use the new function. * tests/gpgscm/lib.scm (string-split-pln): New function. (string-indexp, string-splitp): Likewise. (string-splitn): Express using the above function. (string-ltrim, string-rtrim): Fix corner case. (list->string-reversed): New function. (read-line): Fix performance. Signed-off-by: Justus Winter <justus@g10code.com>
This commit is contained in:
parent
ab3cdeb441
commit
e3876f16eb
2 changed files with 88 additions and 34 deletions
|
@ -186,16 +186,19 @@
|
|||
(assert (string=? (path-join "foo" "bar" "baz") "foo/bar/baz"))
|
||||
(assert (string=? (path-join "" "bar" "baz") "bar/baz"))
|
||||
|
||||
;; Is PATH an absolute path?
|
||||
(define (absolute-path? path)
|
||||
(or (char=? #\/ (string-ref path 0))
|
||||
(and *win32* (char=? #\\ (string-ref path 0)))
|
||||
(and *win32*
|
||||
(char-alphabetic? (string-ref path 0))
|
||||
(char=? #\: (string-ref path 1))
|
||||
(or (char=? #\/ (string-ref path 2))
|
||||
(char=? #\\ (string-ref path 2))))))
|
||||
|
||||
;; Make PATH absolute.
|
||||
(define (canonical-path path)
|
||||
(if (or (char=? #\/ (string-ref path 0))
|
||||
(and *win32* (char=? #\\ (string-ref path 0)))
|
||||
(and *win32*
|
||||
(char-alphabetic? (string-ref path 0))
|
||||
(char=? #\: (string-ref path 1))
|
||||
(or (char=? #\/ (string-ref path 2))
|
||||
(char=? #\\ (string-ref path 2)))))
|
||||
path
|
||||
(path-join (getcwd) path)))
|
||||
(if (absolute-path? path) path (path-join (getcwd) path)))
|
||||
|
||||
(define (in-srcdir . names)
|
||||
(canonical-path (apply path-join (cons (getenv "srcdir") names))))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue