From 0c331e67cb70f10d7f67cb17576ffab8e45b99a5 Mon Sep 17 00:00:00 2001 From: jgarcia Date: Sun, 6 Apr 2008 16:02:07 +0000 Subject: [PATCH] DIRECTORY now takes care of files that have colons in their names --- src/c/unixfsys.d | 8 ++++++++ src/lsp/config.lsp.in | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/c/unixfsys.d b/src/c/unixfsys.d index a352d6984..abaa65e6f 100644 --- a/src/c/unixfsys.d +++ b/src/c/unixfsys.d @@ -687,6 +687,14 @@ dir_files(cl_object basedir, cl_object pathname) char *text = new->base_string.self; if (file_kind(text, TRUE) == @':directory') continue; + if (ecl_member_char(':', new)) { + /* File names are allowed to have ':', but ECL + * interprets colons as separators for device names + * By prepending the name with a ':', we set the device + * to NIL and parse the file name properly */ + new = si_base_string_concatenate(2, make_constant_base_string(":"), + new); + } new = cl_pathname(new); if (Null(cl_pathname_match_p(new, mask))) continue; diff --git a/src/lsp/config.lsp.in b/src/lsp/config.lsp.in index 2851aaddf..3355e2d18 100644 --- a/src/lsp/config.lsp.in +++ b/src/lsp/config.lsp.in @@ -24,7 +24,7 @@ Returns, as a string, the location of the machine on which ECL runs." (defun lisp-implementation-version () "Args:() Returns the version of your ECL as a string." - "@PACKAGE_VERSION@ (CVS 2008-03-18 22:50)") + "@PACKAGE_VERSION@ (CVS 2008-04-06 18:01)") (defun machine-type () "Args: ()