From af8dc621047c19be2d029be90245a2004a6d2305 Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Tue, 31 Jan 2012 11:45:51 -0800 Subject: [PATCH] Revert "io.pathnames: Revised ~ support to expand on the first tilde, and not on "~/"." This reverts commit 251a2a19a67ce305b8318ae5aab7b4be204903f4. --- core/io/pathnames/pathnames-docs.factor | 4 ++-- core/io/pathnames/pathnames-tests.factor | 19 ++++++------------- core/io/pathnames/pathnames.factor | 2 +- 3 files changed, 9 insertions(+), 16 deletions(-) diff --git a/core/io/pathnames/pathnames-docs.factor b/core/io/pathnames/pathnames-docs.factor index 94cb23832d..d20db3f3a9 100644 --- a/core/io/pathnames/pathnames-docs.factor +++ b/core/io/pathnames/pathnames-docs.factor @@ -106,7 +106,7 @@ HELP: absolute-path { "path" "a pathname string" } { "path'" "a pathname string" } } -{ $description "Prepends the " { $link current-directory } " to the pathname and resolves a " { $snippet "resource:" } ", " { $snippet "~" } " or " { $snippet "vocab:" } " prefix, if present (see " { $link "io.pathnames.special" } ")." } +{ $description "Prepends the " { $link current-directory } " to the pathname and resolves a " { $snippet "resource:" } ", " { $snippet "~/" } " or " { $snippet "vocab:" } " prefix, if present (see " { $link "io.pathnames.special" } ")." } { $notes "This word is exactly the same as " { $link normalize-path } ", except on Windows NT platforms, where it does not prepend the Unicode path prefix. Most code should call " { $link normalize-path } " instead." } ; HELP: resolve-symlinks @@ -133,7 +133,7 @@ ARTICLE: "io.pathnames.special" "Special pathnames" $nl "If a pathname begins with " { $snippet "vocab:" } ", then it will be searched for in all current vocabulary roots (see " { $link "add-vocab-roots" } ")." $nl -"If a pathname begins with " { $snippet "~" } ", it will be searched for in the home directory. Subsequent tildes in the pathname will be construed as literal tilde path or filenames and will not be treated specially. To access a filename named " { $snippet "~" } ", you must construct a path to reference the filename, even if it's within the current directory such as " { $snippet "./~" } "." ; +"If a pathname begins with " { $snippet "~/" } ", it will be searched for in the home directory. Subsequent tildes in the pathname will be construed as literal tilde path or filenames and will not be treated specially. It should be noted that the " { $snippet "~" } " symbol without a forward slash will be also be treated as a literal path or filename." ; ARTICLE: "io.pathnames.presentations" "Pathname presentations" "Pathname presentations are objects that wrap a pathname string. Clicking a pathname presentation in the UI brings up the file in one of the supported editors. See " { $link "editor" } " for more details." diff --git a/core/io/pathnames/pathnames-tests.factor b/core/io/pathnames/pathnames-tests.factor index 2d352848ce..6c92a83bd5 100644 --- a/core/io/pathnames/pathnames-tests.factor +++ b/core/io/pathnames/pathnames-tests.factor @@ -1,7 +1,6 @@ USING: io.pathnames io.files.temp io.directories continuations math io.files.private kernel -namespaces sequences system tools.test -io.backend io.pathnames.private ; +namespaces sequences tools.test io.pathnames.private ; IN: io.pathnames.tests [ "passwd" ] [ "/etc/passwd" file-name ] unit-test @@ -72,14 +71,8 @@ IN: io.pathnames.tests [ f ] [ "/funny.directory/file-with-no-extension" file-extension ] unit-test [ "" ] [ "/funny.directory/file-with-no-extension." file-extension ] unit-test -! Testing ~ special pathname -[ t ] [ os windows? "~\\" "~/" ? absolute-path home = ] unit-test -[ t ] [ "~/" home [ normalize-path ] bi@ = ] unit-test - -[ t ] [ "~" absolute-path home = ] unit-test -[ t ] [ "~" home [ normalize-path ] bi@ = ] unit-test - -[ t ] [ "~" home [ "foo" append-path ] bi@ [ normalize-path ] bi@ = ] unit-test -[ t ] [ os windows? "~\\~/" "~/~/" ? "~" "~" append-path [ path-components ] bi@ = ] unit-test - - +! Testing ~/ special pathname +[ t ] [ "~/" absolute-path home = ] unit-test +[ f ] [ "~" absolute-path home = ] unit-test +[ t ] [ "~/~" absolute-path "/~" home prepend = ] unit-test +[ t ] [ "~/~/" absolute-path "/~/" home prepend = ] unit-test diff --git a/core/io/pathnames/pathnames.factor b/core/io/pathnames/pathnames.factor index c2542f9897..911235e017 100644 --- a/core/io/pathnames/pathnames.factor +++ b/core/io/pathnames/pathnames.factor @@ -152,7 +152,7 @@ M: string absolute-path trim-head-separators vocab-path absolute-path ] [ - "~" ?head [ + "~/" ?head [ trim-head-separators home prepend-path absolute-path ] [