--- a/Unix.st Thu Nov 09 12:49:30 1995 +0100
+++ b/Unix.st Thu Nov 09 14:15:41 1995 +0100
@@ -22,7 +22,7 @@
COPYRIGHT (c) 1988 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libbasic/Attic/Unix.st,v 1.68 1995-11-09 11:49:30 cg Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/Unix.st,v 1.69 1995-11-09 13:15:41 cg Exp $
'!
!OperatingSystem primitiveDefinitions!
@@ -48,6 +48,10 @@
# define WANT_SYSTEM
#endif
+#ifdef ultrix
+# define WANT_SYSTEM
+#endif
+
#ifdef WANT_REALPATH
# include <sys/param.h>
# define _SYS_PARAM_H_INCLUDED_
@@ -269,7 +273,11 @@
# define __execve execve
# define __wait wait
# define __waitpid waitpid
-# define FORK fork
+# if defined(ultrix)
+# define FORK vfork
+# else
+# define FORK fork
+# endif
# endif /* ! LINUX */
extern char **environ;
# endif
@@ -613,7 +621,7 @@
version
"
-$Header: /cvs/stx/stx/libbasic/Attic/Unix.st,v 1.68 1995-11-09 11:49:30 cg Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/Unix.st,v 1.69 1995-11-09 13:15:41 cg Exp $
"
!
@@ -4007,17 +4015,18 @@
executeCommand:aCommandString
"execute the unix command specified by the argument, aCommandString.
Return true if successful, false otherwise.
- Smalltalk is suspended, while the command is executing.
The return value of the system()-call is available in the variable
LastExecStatus (which is zero after successful execution); this value
consists of the reason for termination (0=normal) in the upper 8bits and,
iff it was a normal return, the value passed to exit() in the low 8bits."
-
%{
-
int status;
if (__isString(aCommandString)) {
+ /*
+ * ST/X provides a modified (fixed) implementation of the
+ * system() libc-function, which is interruptable ...
+ */
# ifdef WANT_SYSTEM
__BEGIN_INTERRUPTABLE__
status = mySystem((char *) _stringVal(aCommandString));