Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
asdf
asdf
Commits
a1ead0db
Commit
a1ead0db
authored
Feb 26, 2014
by
Francois-Rene Rideau
Browse files
Some fixes to CLISP on Windows: use ext:probe-pathname, not posix:file-stat;
use ext:run-program, not ext:shell.
parent
ecff62c7
Changes
3
Hide whitespace changes
Inline
Side-by-side
test/test-run-program.script
View file @
a1ead0db
;; -*- Lisp -*-
(declaim (optimize (debug 3) (safety #-gcl 3 #+gcl 0)))
#+(and clisp os-windows)
(ext:without-package-lock ()
(trace uiop:run-program uiop/run-program::%run-program uiop/run-program::%system
ext:shell ext:run-shell-command ext:run-program))
;; On Windows, normalize away CRLF into jut the unixy LF.
(defun dewindowize (x)
(block ()
...
...
uiop/filesystem.lisp
View file @
a1ead0db
...
...
@@ -116,7 +116,7 @@ or the original (parsed) pathname if it is false (the default)."
(
cond
(
truename
foundtrue
)
(
foundtrue
p
)))))
(
let*
((
fs
(
find-symbol*
'
#:file-stat
:posix
nil
))
(
let*
((
fs
(
or
#-
os-windows
(
find-symbol*
'
#:file-stat
:posix
nil
))
)
(
pp
(
find-symbol*
'
#:probe-pathname
:ext
nil
))
(
resolve
(
if
pp
`
(
ignore-errors
(
,
pp
p
))
...
...
uiop/run-program.lisp
View file @
a1ead0db
...
...
@@ -410,7 +410,7 @@ It returns a process-info plist with possible keys:
;; NB: these implementations have unix vs windows set at compile-time.
(
declare
(
ignorable
if-input-does-not-exist
if-output-exists
if-error-output-exists
))
(
assert
(
not
(
and
wait
(
member
:stream
(
list
input
output
error-output
)))))
#-
(
or
allegro
clozure
cmu
(
and
lispworks
os-unix
)
sbcl
scl
)
#-
(
or
allegro
clisp
clozure
cmu
(
and
lispworks
os-unix
)
sbcl
scl
)
(
progn
command
keys
directory
(
error
"run-program not available"
))
#+
(
or
allegro
clisp
clozure
cmu
(
and
lispworks
os-unix
)
sbcl
scl
)
...
...
@@ -435,10 +435,10 @@ It returns a process-info plist with possible keys:
#-
allegro
(
with-current-directory
(
#-
sbcl
directory
)
#+
clisp
(
flet
((
run
(
f
&rest
args
)
(
flet
((
run
(
f
x
&rest
args
)
(
multiple-value-list
(
apply
f
:input
%input
:output
%output
:allow-other-keys
t
`
(
,@
args
,@
keys
)))))
(
apply
f
x
:input
%input
:output
%output
:allow-other-keys
t
`
(
,@
args
,@
keys
)))))
(
assert
(
eq
%error-output
:terminal
))
;;; since we now always return a code, we can't use this code path, anyway!
(
etypecase
%command
...
...
@@ -769,14 +769,17 @@ It returns a process-info plist with possible keys:
#+
(
or
allegro
clozure
cmu
(
and
lispworks
os-unix
)
sbcl
scl
)
(
%wait-process-result
(
apply
'%run-program
(
%normalize-system-command
command
)
:wait
t
keys
))
#+
(
or
abcl
clisp
c
orman
lisp
ecl
gcl
(
and
lispworks
os-windows
)
mkcl
xcl
)
#+
(
or
abcl
c
orman
lisp
clisp
ecl
gcl
(
and
lispworks
os-windows
)
mkcl
xcl
)
(
let
((
%command
(
%redirected-system-command
command
input
output
error-output
directory
)))
#+
(
and
lispworks
os-windows
)
(
system:call-system
%command
:current-directory
directory
:wait
t
)
#-
(
and
lispworks
os-windows
)
#+
clisp
(
%wait-process-result
(
apply
'%run-program
%command
:wait
t
:input
:interactive
:output
:interactive
:error-output
:interactive
keys
))
#-
(
or
clisp
(
and
lispworks
os-windows
))
(
with-current-directory
((
unless
(
os-unix-p
)
directory
))
#+
abcl
(
ext:run-shell-command
%command
)
#+
clisp
(
clisp-exit-code
(
ext:shell
%command
))
#+
cormanlisp
(
win32:system
%command
)
#+
ecl
(
let
((
*standard-input*
*stdin*
)
(
*standard-output*
*stdout*
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment