Our previous fix did not handle wild pathnames properly

This commit is contained in:
jgarcia 2008-04-06 18:00:42 +00:00
parent 0c331e67cb
commit 0091f0c0e8
3 changed files with 6 additions and 4 deletions

View file

@ -927,8 +927,10 @@ ecl_namestring(cl_object x, int truncate_if_unreadable)
}
NO_DIRECTORY:
if (ecl_file_position(buffer) == MAKE_FIXNUM(0)) {
if (ecl_member_char(':', x->pathname.name) ||
ecl_member_char(':', x->pathname.type))
if ((ecl_stringp(x->pathname.name) &&
ecl_member_char(':', x->pathname.name)) ||
(ecl_stringp(x->pathname.type) &&
ecl_member_char(':', x->pathname.type)))
writestr_stream(":", buffer);
}
y = x->pathname.name;

View file

@ -687,7 +687,7 @@ 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)) {
if (ecl_stringp(new) && 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

View file

@ -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-04-06 18:01)")
"@PACKAGE_VERSION@ (CVS 2008-04-06 20:00)")
(defun machine-type ()
"Args: ()