This came up on the Maxima list. Consider

|(let ((file (pathname "//tmp/.////test.txt"))) (with-open-file (stream file :direction :output :if-exists :supersede) (values file (truename file) (pathname stream)))) |

gcl 2.6.14 returns:

|#p"/tmp/test.txt" #p"/tmp/test.txt" #p"/tmp/test.txt" |

Losing the "/./" is unfortunate, but not really incorrect on Unix.

However, with gcl 2.7.1 we get:

|Error: Fast links are on: do (si::use-fast-links nil) for debugging Signalled by PATHNAME. Condition in PATHNAME [or a callee]: INTERNAL-SIMPLE-PARSE-ERROR: "//tmp/.////test.txt" is not a valid pathname on host NIL Broken at PATHNAME. Type :H for Help. 1 Return to top level. >> |

This version basically dislikes having consecutive slashes. On unix, this is equivalent to just one "/".

If you change the namestring to "/tmp/./test.txt", gcl 2.7.1 works and preserves the "/./".

It would be really nice to get this fixed before 2.7.2 is released.

​

Reply via email to