Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
|Links to mcvs-1-0-3:||(view) (annotate)|
Merging from mcvs-1-0-branch. * code/unix-bindings/wrap.c (mcvs-spawn): In the child process, reset the signal handler for SIGCHLD to SIG_DFL before exec-ing the new image. This is needed because CLISP set it to SIG_IGN, which causes child reaping problems in spawned programs. This should fix the ``No child processes'' problem when running CVS from Meta-CVS.
Merging from mcvs-1-0-branch. * code/unix-bindings/wrap.c (impl_spawn): Try waitpid again in a loop while it returns -1, and errno is EINTR. Reported by Johannes Grødem <email@example.com>.
Merging from mcvs-1-0-branch. * code/unix-bindings/wrap.c (mcvs_getcwd): If getcwd() returns NULL, it only means that the buffer is too small if errno is also set to ERANGE. This second condition was not being tested. * code/clisp-unix.lisp (getcwd-error): New condition. (initialize-instance (getcwd-error)): New method. (getcwd): Raise getcwd-error condition if unix-funcs::getcwd returns NIL.
Merging from mcvs-1-0-branch. * code/unix-bindings/impl.c: File renamed to wrap.c. (impl_null_pointer_p, impl_get_errno, impl_set_errno, impl_readdir, impl_readlink, impl_stat, impl_lstat, impl_fstat, impl_getcwd, impl_spawn): Prefix changed from ``impl_'' to ``mcvs_''. * code/unix-bindings/link.sh, code/unix-bindings/Makefile, code/unix-bindings/unix.lisp: Updated accordingly.
Merging from mcvs-1-0-branch. * code/unix-bindings/impl.c (impl_spawn): For Cygwin, re-implemented this function as a wrapper for the spawnvp function. The combination of fork + execvp + waitpid does not work because waitpid is broken; it waits for thep rocess, but then returns -1 and sets errno to ECHILD.
Add missing cast.
Merging from mcvs-1-0-branch. Discontinuing use of CLISP's ext:run-program function in favor of a new workalike which doesn't rely on the shell interpreter. * code/unix-bindings/unix.lisp (unix-funcs:spawn): New C call out function (unix-funcs:run-program): New function, implemented using spawn. * code/unix-bindings/impl.c (impl_spawn): New function; wraps up fork, execvp and waitpid. * code/clisp-unix.lisp: Switch from ext:run-program to unix-funcs:run-program.
Merging symlink-branch to main trunk.
Use getcwd to to implement mcvs-locate. * code/unix-bindings/unix.lisp (getcwd): New call out, invokes impl_getcwd. * code/unix-bindings/impl.c (impl_getcwd): New function, use getcwd() to obtain current working directory, resizing dynamic buffer if necessary to get the entire path. * code/clisp-unix.lisp (getcwd): New wrapper function. * code/dirwalk.lisp (go-up): Function removed. * code/mapping.lisp (mcvs-locate): Rewritten to obtain path using getcwd, then try looking for MCVS directory in successively shorter prefixes of that path.
Working back support for CLISP 2.27. * code/install.sh: Bogus *null-pointer* hack is no longer added to the generated mcvs script, since we have our own FFI functions for doing the test. * code/unix-bindings/unix.lisp (unix-funcs:null-pointer-p): New function, tests a C pointer for null, returns T or NIL. * code/unix-bindings/impl.c (impl_null_pointer_p): New function, C implementation of unix-funcs:null-pointer-p. * code/clisp-unix.lisp (pointer-null): New macro, uses ffi:foreign-address-null under CLISP 2.28 or greater, or unix-funcs:null-pointer-p, under an older CLISP.
Retargetting CVS with new system call bindings that are not GNU/Linux specific.
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|