Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
Merging symlink-branch to main trunk.
* code/clisp-unix.lisp (link-error): New slot, kind. Holds the string "symbolic" or "hard". (initialize-instance link-error): Use new slot in constructing message. (link): Specify "hard" value for :kind slot of condition. (symlink): New function. * code/clisp-linux.lisp: Likewise.
* posix.lisp (execute-program): Function removed. * clisp-linux.lisp (execute-program): Function added. Works in terms of CLISP's run-program function rather than the shell function, thus eliminating the need to build a command string and escape shell characters. * clisp-unix.lisp (excecute-program): Likewise.
* clisp-linux.sh (:clisp-old): Added to *features* for CLISP 2.28 or higher. (*null-pointer*): Only defined when :clisp-old is present. (pointer-null): Use new ffi:foreign-pointer-null if :clisp-old feature is not present. * install.sh: Don't do *null-pointer* workaround hack unless :clisp-old feature is present in the memory image.
Support for filetypes in import. * posix.lisp (suffix): Separator character parameter is optional; multiple occurences of character lead to one big suffix like ".tar.gz" instead of ".gz". A leading dot means it's not a suffix but a hidden file like ".exrc". (edit-file): New function, brings up text editor for specified file. * clisp-linux.lisp (env-lookup): New function for environment variable lookup. * types.lisp: New source file. (*mcvs-types-name*, *mcvs-types*): New constants for TYPES filename. (types-read, types-write, types-sanity-check, types-to-import-wrapper-args): New functions. * import.lisp (*types-comments*): New constant. (mcvs-import): Restructured to build up list of file suffixes, allow the user to edit the file which determines how they are treated, filter out ignored files and pass -W options to cvs import to handle the rest. Failed cvs import is turned into restartable condition. * mapping.lisp (mapping-generate-name): Takes a suffix parameter. The F-files now carry a suffix obtained from the original file, because I have concluded that this was the only reasonable way to integrate with CVS.
* sync.lisp (synchronize-files): Return :dir symbol when either argument is a directory. * mapping.lisp (mapping-synchronize): Chatter output messages are shorter. Handles :dir return value from synchronize-files. (mapping-update): New sanity checks for moved and added files, to avoid clobbering local files. Removed redundant call to ensure-directories-exit in move logic, because synchronize-files will do it anyway. Chatter messages reordered to occur before their corresponding action is done. * mcvs-main.lisp (*mcvs-error-treatment*): Special variable can have new domain value, namely :decline. (mcvs-top-error-handler): Print error message when terminating non-restartable error. Handle new :decline treatment by simply returning. (mcvs-debug-shell): Set *mcvs-error-treatment* to :decline so that errors are caught by debugger.
Added workaround for operating system argument passing limitations, resembling the Unix xargs utility. Also, trimmed some fat from the basename function. * clisp-linux.lisp: (*argument-limit*): New constant added. (arglist-to-command-string): Function removed. (execute-program): Function removed. (shell-interpreter): New function, wrapper for CLISP's shell function, turns exit status into T (success) or NIL (failure). * diff.lisp (mcvs-diff): Uses execute-program-xargs instead of execute-program. * posix.lisp (basename): Does not canonicalize path name. This turns out to be an unnecessary performance hit in some cases. (arglist-to-command-string): New function. Similar to what was removed from clisp-linux, but this one properly escapes all shell metacharacters. (execute-program): New function, calls shell-interpreter. (execute-program-xargs): New function. Takes two argument lists. Forms one or more command lines by combining the first argument list with one or more pieces of the second argument list, and executes each command. The length of the pieces is determined by the argument passing limit. * dirwalk.lisp (ensure-directories-gone): Add use of canonicalize-path because basename doesn't do it.
MCVS is being renamed to Meta-CVS.
* move.lisp (move-guts): test the actual filesystem as well as the map for existence of a directory or file. This makes the move operation behave better. Files can be moved to an existing directory that is not known to MCVS, and a file can properly clobber a target file that is not known to MCVS. * clisp-linux.lisp (directory-p, regular-p, symlink-p): define methods for these generic functions for a NIL argument, such that they return NIL.
Ugly hack to reset *null-pointer* after loading memory image, because CLISP changes the representation of a pickled *null-pointer*.
Fixing compiler errors.
Adding all existing source files.
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|