Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
|Links to RELEASE_18c:||(view) (annotate)|
Add the new keyword argument :TRUENAMEP to the function directory, replacing the former :FOLLOW-LINKS argument, and redefine :FOLLOW-LINKS to control the following of symbolic links while searching for matching directories.
o Rework %enumerate-directories to handle :wild and :wild-inferiors within the pathname; noted by Christophe Rhodes. Further maintain a list of the directory inode and device numbers which are used to avoid paths loops during :wild-inferiors searches. o Enhance %enumerate-directories to accept a new follow-links argument to allow the following of symbolic links to be disabled. Similarly add follow-links keyword argument to interface macro enumerate-matches.
This set of revisions brings the RELENG_18 branch up to HEAD in preparation for an 18c release.
Update from the current main branch.
This (huge) revision brings the RELENG_18 branch up to the current HEAD. Note code/unix-glib2.lisp not yet included -- not sure it is ready to go.
Few fixes to ensure-directories-exist: make it work with logical pathnames; don't call truename on the pathname as this will likely fail if it's a file.
Function ensure-directories-exist, part of ANSI CL, contributed by Pierpaolo Bernardi.
Werkowskis source kit 1.03.7
Merged patch from PW that makes PRINT-DIRECTORY handle broken links better.
Added an executable-only optional to unix-namestring so that we can expand path:foo into the first executable in the path named foo, not just the first file.
Made QUICK-INTEGER-TO-STRING only handle the FIXNUM case so that it really is quick.
Added some missing simple-string declarations.
Fixed %enumerate-directories to hack :WILD and :WILD-INFERIORS (somewhat.) Semi-gratuitously changed %enumerate-files to use %pathname accessors.
Deleted vestigial documentation in rename-file about files that are open but don't exist yet.
Undid last change, because that's the wrong place to put it.
Fixed enumerate-files to hack :wild and :unspecific name&type.
Changed ENUMERATE-MATCHES (hence all filesys code) to do translate-logical-pathname on logical pathnames.
Added support for parsing :WILD and :WILD-INFERIORS. Fixed :WILD-INFERIORS unparsing. Un-commented-out USER-HOMEDIR-PATHNAME. Un-generalized split-at-slashes, since logical pathname parsing no longer uses it.
Logical pathnames for UNIX filesystems have been added. Note that logical- namestrings must consist of capital letters, numbers and hyphens, according to the ANSI specification, and not including lower case letters as listed in some of the examples in the specification.
Change to the function %enumerate-files to permit versions to match on :wild and :newest for UNIX filesystems (the only kind currently supported by CMUCL).
Modifications to support logical-pathnames. unparse-unix-piece includes support for wildcards and wildcard-inferiors. split-at-slashes given an optional argument to permit parsing of directories based on the ";" in logical-pathnames.
Fixed some constant names that changed.
Merged new-alien changes onto trunk.
Fixed PARSE-UNIX-NAMESTRING to use '(:absolute) as the directory when there are no directories but there was an initial slash instead of using NIL.
Changed DELETE-FILE to signal an error if the file doesn't exist.
Added FOLLOW-LINKS argument to DIRECTORY which inhibits the final call to TRUENAME when NIL. Changed completion and directory printing to specify this.
Make directory return truenames. Make complete-file and ambiguous-files only look that the directory of the defaults.
Fixed %enumerate-files to skip ``.'' and ``..''. Fixed directory to merge in :wild for the name, type, and version.
Fixed %ENUMERATE-FILES to deal better with pathnames that have NIL for the type.
In UNIX-NAMESTRING, treat a NIL version the same as :NEWEST.
Fixed various places that needed to take into account the fact that UNIX-NAMESTRING might return NIL now.
Extensive rewrite. The machine/filesystem independed stuff is now in pathname.lisp and this file contains basically the Unix depended code. This rewrite includes full support for wildcards and structured directories (as per X3J13). The new pathname format also lends itself better to the addition of logical pathnames (but they haven't been written, yet).
Removed use of TAB-OVER, so I can remove pprint.lisp from the cold load.
Deleted some orphaned code.
Modified COMPLETE-FILE to correctly complete files relative to the defaults. It was previously relying on MERGE-PATHNAMES solely, but MERGE-PATHNAMES cannot do what COMPLETE-FILE requires when presented with a partial (non-absolute) pathname that includes some directories. What the user wants is the partial pathname to be merged with the absolute defaults including any directories specified in pathname. MERGE-PATHNAMES cannot do this since partial pathnames have independent uses, and it cannot clobber a non-nil slot in the partial pathname structure. However, COMPLETE-FILE obtains its partial pathnames from users specifying against defaults with the intent of deriving an absolute name, so when the defaults contain an absolute directory slot, the partial directory spec of the supplied pathname (if any) gets tacked onto the end of the defaults directory spec. This fixes a long standing Hemlock problem: you could find files relative to the defaults with subdirectory specs, but you could not complete them. Fixed DIRECTORY to no longer signal errors. It's job is to return a list of files matching its argument, and it should return nil when the spec is in accurate.
Make user-homedir-pathname just return home:.
Changed pathname printer to use #P.
Changed exported funs not to assign their arguments.
Changed PARSE-NAMESTRING to use WITH-ARRAY-DATA.
New file header with RCS header FILE-COMMENT.
Finally got around to rewritting print-directory.
In ambiguous-files, don't merge in the name and type from defaults, and check for subdirs, so that we get the trailing slash on them.
Export unix-namestring from the extensions package, and allow the second arg to be defaulted to T.
Rewrote large chunks to get rid of Dave code. Do pattern matching in directory instead of expecting the lower level code to handle it. Changed the names of routines like %ses-get-useful-part to something reasonable.
Moved MIPS branch onto trunk; no merge necessary.
Back-merged my type fixes into the working code version as of this date.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
|Powered by ViewVC 1.1.5|