diff options
author | Eli Zaretskii <eliz@gnu.org> | 2014-07-03 20:58:19 +0300 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2014-07-03 20:58:19 +0300 |
commit | 9235f805fa0bacc02a6ddaeceb9867cb37d01d85 (patch) | |
tree | 9a8a3333ad25ec7e302e511ffb6747fee119a95d /libguile/filesys.c | |
parent | 9dc3fc4dd474ce4da6a45dcf197e1f99a9a7047a (diff) | |
download | guile-9235f805fa0bacc02a6ddaeceb9867cb37d01d85.tar.gz |
Fix problems with Windows file names that use backslashes.
* libguile/load.c (scm_i_mirror_backslashes): New function.
(scm_init_load_path): Call it to produce MS-Windows file names
with forward slashes.
(FILE_NAME_SEPARATOR_STRING): Define as "/" on all platforms.
* libguile/load.h (scm_i_mirror_backslashes): Add prototype.
* libguile/init.c (scm_boot_guile): Call scm_i_mirror_backslashes
on argv[0].
* libguile/filesys.c (scm_getcwd): Call scm_i_mirror_backslashes
on the directory name returned by getcwd.
* test-suite/tests/ports.test ("file name separators"): New test.
Diffstat (limited to 'libguile/filesys.c')
-rw-r--r-- | libguile/filesys.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libguile/filesys.c b/libguile/filesys.c index 09f6cf9a5..301040a7d 100644 --- a/libguile/filesys.c +++ b/libguile/filesys.c @@ -51,6 +51,7 @@ #include "libguile/validate.h" #include "libguile/filesys.h" +#include "libguile/load.h" /* for scm_i_mirror_backslashes */ #ifdef HAVE_IO_H @@ -1235,6 +1236,9 @@ SCM_DEFINE (scm_getcwd, "getcwd", 0, 0, 0, errno = save_errno; SCM_SYSERROR; } + /* On Windows, convert backslashes in current directory to forward + slashes. */ + scm_i_mirror_backslashes (wd); result = scm_from_locale_stringn (wd, strlen (wd)); free (wd); return result; |