did you try the patch?
> * Sam Steingold <fqf@...> [2013-01-06 01:33:49 -0500]:
>
>> * Alberto Riva <nyo@...> [2013-01-04 16:22:46 -0500]:
>>
>> Please note that the file that causes the problem is called ".clisp",
>> it's NOT .clisprc
>
> oops. sorry.
> this is the value of *user-lib-directory*:
> http://clisp.org/impnotes/clisp-link.html#opt-install
>
> it is a bug that clisp signals an error when it tries to find it.
> please try this patch:
>
> diff -r 696bfff6e3d1 src/pathname.d
> --- a/src/pathname.d Mon Dec 03 11:22:27 2012 -0500
> +++ b/src/pathname.d Sun Jan 06 01:32:17 2013 -0500
> @@ -5753,13 +5753,15 @@ global /*maygc*/ file_kind_t classify_na
> #endif
> }
>
> -LISPFUNNS(probe_pathname,1) /* (PROBE-PATHNAME pathname) */
> -{ /* a safe way to distinguish between files and dirs:
> +LISPFUN(probe_pathname,seclass_rd_sig,1,0,norest,key,1,(kw(error)))
> +{ /* (PROBE-PATHNAME pathname &key (error t))
> + a safe way to distinguish between files and dirs:
> "dir", "dir/" ==> #p"dir/"
> "file", "file/" ==> #p"file"
> "none", "none/" ==> NIL
> the first value is the truename,
> the second is the "correct" absolute pathname */
> + bool errorp = !nullp(popSTACK());
> if (builtin_stream_p(STACK_0)) { /* stream -> path */
> probe_path_from_stream(&STACK_0); /* STACK_0 is now an absolute truename */
> } else { /* turn into a pathname */
> @@ -5784,6 +5786,10 @@ LISPFUNNS(probe_pathname,1) /* (PROB
> }
> });
> switch (classification) {
> + case FILE_KIND_BAD:
> + if (errorp)
> + OS_file_error(STACK_0);
> + /*FALLTHROUGH*/
> case FILE_KIND_NONE: /* does not exist */
> VALUES1(NIL); skipSTACK(3); return;
> case FILE_KIND_DIR: { /* directory */
> @@ -5828,7 +5834,6 @@ LISPFUNNS(probe_pathname,1) /* (PROB
> skipSTACK(2);
> }
> break;
> - case FILE_KIND_BAD: OS_file_error(STACK_0);
> }
> pushSTACK(asciz_to_string(resolved,O(pathname_encoding)));
> funcall(L(truename),1);
> diff -r 696bfff6e3d1 src/spvw.d
> --- a/src/spvw.d Mon Dec 03 11:22:27 2012 -0500
> +++ b/src/spvw.d Sun Jan 06 01:32:17 2013 -0500
> @@ -3412,7 +3412,8 @@ local inline void main_actions (struct a
> /* set *user-lib-directory* */
> pushSTACK(ascii_to_string(".clisp/")); pushSTACK(O(user_homedir));
> funcall(L(merge_pathnames),2); pushSTACK(value1); /* ~/.clisp/ */
> - funcall(L(probe_pathname),1);
> + pushSTACK(S(Kerror)); pushSTACK(NIL); /* ignore errors */
> + funcall(L(probe_pathname),3);
> if (pathnamep(value1)
> && nullp(ThePathname(value1)->pathname_name)
> && nullp(ThePathname(value1)->pathname_type))
> diff -r 696bfff6e3d1 src/subr.d
> --- a/src/subr.d Mon Dec 03 11:22:27 2012 -0500
> +++ b/src/subr.d Sun Jan 06 01:32:17 2013 -0500
> @@ -828,7 +828,7 @@ LISPFUNN(absolute_pathname,1)
> LISPFUNNR(namestring,1)
> LISPFUNNS(truename,1)
> LISPFUNNS(probe_file,1)
> -LISPFUNNS(probe_pathname,1)
> +LISPFUN(probe_pathname,seclass_rd_sig,1,0,norest,key,1,(kw(error)))
> LISPFUNNS(probe_directory,1)
> LISPFUNN(delete_file,1)
> LISPFUN(rename_file,seclass_default,2,0,norest,key,1,(kw(if_exists)))
--
Sam Steingold (http://sds.podval.org/) on Ubuntu 12.04 (precise) X 11.0.11103000
http://www.childpsy.net/ http://memri.org http://palestinefacts.org
http://iris.org.il http://think-israel.org
You do not have time or money to sue anyone rich enough to be worth suing.
|