UnixOperatingSystem.st
changeset 6050 af9ae36d6fdb
parent 5886 78c6f9c5fe8e
child 6287 f1a8f0ac8048
--- a/UnixOperatingSystem.st	Wed Sep 26 15:17:34 2001 +0200
+++ b/UnixOperatingSystem.st	Wed Sep 26 17:35:16 2001 +0200
@@ -1,6 +1,6 @@
 "
  COPYRIGHT (c) 1988 by Claus Gittinger
-              All Rights Reserved
+	      All Rights Reserved
 
  This software is furnished under a license and may be used
  only in accordance with the terms of that license and with the
@@ -280,6 +280,10 @@
 #  endif
 # endif
 
+# if defined (HAS_FTIME)
+#  include <sys/timeb.h>
+# endif
+
 /* 
  * posix systems should define these ... 
  * but on some (older) systems, they are not.
@@ -564,103 +568,103 @@
     sigset_t block, omask;
 
     if (line == NULL)
-        return -1;
+	return -1;
 
     sa.sa_handler = SIG_IGN;
     sa.sa_flags = 0;
     __sigemptyset (&sa.sa_mask);
 
     if (__sigaction (SIGINT, &sa, &intr) < 0) {
-        DPRINTF(("1: errno=%d\n", errno));
-        return -1;
+	DPRINTF(("1: errno=%d\n", errno));
+	return -1;
     }
     if (__sigaction (SIGQUIT, &sa, &quit) < 0) {
-        save = errno;
-        (void) __sigaction (SIGINT, &intr, (struct sigaction *) NULL);
-        errno = save;
-        DPRINTF(("2: errno=%d\n", errno));
-        return -1;
+	save = errno;
+	(void) __sigaction (SIGINT, &intr, (struct sigaction *) NULL);
+	errno = save;
+	DPRINTF(("2: errno=%d\n", errno));
+	return -1;
     }
 
     __sigemptyset (&block);
     __sigaddset (&block, SIGCHLD);
     save = errno;
     if (__sigprocmask(SIG_BLOCK, &block, &omask) < 0) {
-        if (errno == ENOSYS)
-            errno = save;
-        else {
-            save = errno;
-            (void) __sigaction(SIGINT, &intr, (struct sigaction *) NULL);
-            (void) __sigaction (SIGQUIT, &quit, (struct sigaction *) NULL);
-            errno = save;
-            DPRINTF(("3: errno=%d\n", errno));
-            return -1;
-        }
+	if (errno == ENOSYS)
+	    errno = save;
+	else {
+	    save = errno;
+	    (void) __sigaction(SIGINT, &intr, (struct sigaction *) NULL);
+	    (void) __sigaction (SIGQUIT, &quit, (struct sigaction *) NULL);
+	    errno = save;
+	    DPRINTF(("3: errno=%d\n", errno));
+	    return -1;
+	}
     }
 
     pid = FORK ();
     if (pid == (pid_t) 0) {
-        /* Child side.  */
-        CONST char *new_argv[4];
-        new_argv[0] = SHELL_NAME;
-        new_argv[1] = "-c";
-        new_argv[2] = line;
-        new_argv[3] = NULL;
-
-        /* Restore the signals.  */
-        (void) __sigaction (SIGINT, &intr, (struct sigaction *) NULL);
-        (void) __sigaction (SIGQUIT, &quit, (struct sigaction *) NULL);
-        (void) __sigprocmask (SIG_SETMASK, &omask, (sigset_t *) NULL);
-
-        /* Exec the shell.  */
-        (void) __execve (SHELL_PATH, (char *CONST *) new_argv, __environ);
-        _exit (127);
+	/* Child side.  */
+	CONST char *new_argv[4];
+	new_argv[0] = SHELL_NAME;
+	new_argv[1] = "-c";
+	new_argv[2] = line;
+	new_argv[3] = NULL;
+
+	/* Restore the signals.  */
+	(void) __sigaction (SIGINT, &intr, (struct sigaction *) NULL);
+	(void) __sigaction (SIGQUIT, &quit, (struct sigaction *) NULL);
+	(void) __sigprocmask (SIG_SETMASK, &omask, (sigset_t *) NULL);
+
+	/* Exec the shell.  */
+	(void) __execve (SHELL_PATH, (char *CONST *) new_argv, __environ);
+	_exit (127);
     } else {
-        if (pid < (pid_t) 0) {
-            /* The fork failed.  */
-            DPRINTF(("4: errno=%d\n", errno));
-            status = -1;
-        } else {
-            /* Parent side.  */
+	if (pid < (pid_t) 0) {
+	    /* The fork failed.  */
+	    DPRINTF(("4: errno=%d\n", errno));
+	    status = -1;
+	} else {
+	    /* Parent side.  */
 #ifdef  NO_WAITPID
-            pid_t child;
-
-            do {
-                __BEGIN_INTERRUPTABLE__
-                child = __wait (&status);
-                __END_INTERRUPTABLE__
-                if (child < 0 && errno != EINTR) {
-                    DPRINTF(("5: errno=%d\n", errno));
-                    status = -1;
-                    break;
-                }
-            } while (child != pid);
+	    pid_t child;
+
+	    do {
+		__BEGIN_INTERRUPTABLE__
+		child = __wait (&status);
+		__END_INTERRUPTABLE__
+		if (child < 0 && errno != EINTR) {
+		    DPRINTF(("5: errno=%d\n", errno));
+		    status = -1;
+		    break;
+		}
+	    } while (child != pid);
 #else
-            pid_t child;
-
-            /* claus: the original did not care for EINTR here ... */
-            do {
-                __BEGIN_INTERRUPTABLE__
-                child = __waitpid (pid, &status, 0);
-                __END_INTERRUPTABLE__
-            } while ((child != pid) && (errno == EINTR));
-            if (child != pid) {
-                DPRINTF(("6: errno=%d\n", errno));
-                status = -1;
-            }
+	    pid_t child;
+
+	    /* claus: the original did not care for EINTR here ... */
+	    do {
+		__BEGIN_INTERRUPTABLE__
+		child = __waitpid (pid, &status, 0);
+		__END_INTERRUPTABLE__
+	    } while ((child != pid) && (errno == EINTR));
+	    if (child != pid) {
+		DPRINTF(("6: errno=%d\n", errno));
+		status = -1;
+	    }
 #endif /* NO_WAITPID */
-        }
+	}
     }
     save = errno;
     if ((__sigaction (SIGINT, &intr, (struct sigaction *) NULL)
      | __sigaction (SIGQUIT, &quit, (struct sigaction *) NULL)
      | __sigprocmask (SIG_SETMASK, &omask, (sigset_t *) NULL)) != 0) {
-        if (errno == ENOSYS) {
-            errno = save;
-        } else {
-            status = -1;
-            DPRINTF(("7: errno=%d\n", errno));
-        }
+	if (errno == ENOSYS) {
+	    errno = save;
+	} else {
+	    status = -1;
+	    DPRINTF(("7: errno=%d\n", errno));
+	}
     }
 
     return status;
@@ -701,112 +705,112 @@
 char *path;
 char resolved_path [];
 {
-        char copy_path[MAXPATHLEN];
-        char link_path[MAXPATHLEN];
-        char *new_path = resolved_path;
-        char *max_path;
-        int readlinks = 0;
-        int n;
-
-        /* Make a copy of the source path since we may need to modify it. */
-        strcpy(copy_path, path);
-        path = copy_path;
-        max_path = copy_path + MAXPATHLEN - 2;
-        /* If it's a relative pathname use getwd for starters. */
-        if (*path != '/') {
+	char copy_path[MAXPATHLEN];
+	char link_path[MAXPATHLEN];
+	char *new_path = resolved_path;
+	char *max_path;
+	int readlinks = 0;
+	int n;
+
+	/* Make a copy of the source path since we may need to modify it. */
+	strcpy(copy_path, path);
+	path = copy_path;
+	max_path = copy_path + MAXPATHLEN - 2;
+	/* If it's a relative pathname use getwd for starters. */
+	if (*path != '/') {
 #ifdef HAS_GETCWD
-                new_path = getcwd(new_path, MAXPATHLEN - 1);
+		new_path = getcwd(new_path, MAXPATHLEN - 1);
 #else
-                new_path = getwd(new_path);
-#endif
-                if (new_path == NULL) 
-                    return(NULL);
-
-                new_path += strlen(new_path);
-                if (new_path[-1] != '/')
-                        *new_path++ = '/';
-        }
-        else {
-                *new_path++ = '/';
-                path++;
-        }
-        /* Expand each slash-separated pathname component. */
-        while (*path != '\0') {
-                /* Ignore stray "/". */
-                if (*path == '/') {
-                        path++;
-                        continue;
-                }
-                if (*path == '.') {
-                        /* Ignore ".". */
-                        if (path[1] == '\0' || path[1] == '/') {
-                                path++;
-                                continue;
-                        }
-                        if (path[1] == '.') {
-                                if (path[2] == '\0' || path[2] == '/') {
-                                        path += 2;
-                                        /* Ignore ".." at root. */
-                                        if (new_path == resolved_path + 1)
-                                                continue;
-                                        /* Handle ".." by backing up. */
-                                        while ((--new_path)[-1] != '/')
-                                                ;
-                                        continue;
-                                }
-                        }
-                }
-                /* Safely copy the next pathname component. */
-                while (*path != '\0' && *path != '/') {
-                        if (path > max_path) {
-                                errno = ENAMETOOLONG;
-                                return NULL;
-                        }
-                        *new_path++ = *path++;
-                }
+		new_path = getwd(new_path);
+#endif
+		if (new_path == NULL) 
+		    return(NULL);
+
+		new_path += strlen(new_path);
+		if (new_path[-1] != '/')
+			*new_path++ = '/';
+	}
+	else {
+		*new_path++ = '/';
+		path++;
+	}
+	/* Expand each slash-separated pathname component. */
+	while (*path != '\0') {
+		/* Ignore stray "/". */
+		if (*path == '/') {
+			path++;
+			continue;
+		}
+		if (*path == '.') {
+			/* Ignore ".". */
+			if (path[1] == '\0' || path[1] == '/') {
+				path++;
+				continue;
+			}
+			if (path[1] == '.') {
+				if (path[2] == '\0' || path[2] == '/') {
+					path += 2;
+					/* Ignore ".." at root. */
+					if (new_path == resolved_path + 1)
+						continue;
+					/* Handle ".." by backing up. */
+					while ((--new_path)[-1] != '/')
+						;
+					continue;
+				}
+			}
+		}
+		/* Safely copy the next pathname component. */
+		while (*path != '\0' && *path != '/') {
+			if (path > max_path) {
+				errno = ENAMETOOLONG;
+				return NULL;
+			}
+			*new_path++ = *path++;
+		}
 #ifdef S_IFLNK
-                /* Protect against infinite loops. */
-                if (readlinks++ > MAX_READLINKS) {
-                        errno = ELOOP;
-                        return NULL;
-                }
-                /* See if latest pathname component is a symlink. */
-                *new_path = '\0';
-                n = readlink(resolved_path, link_path, MAXPATHLEN - 1);
-                if (n < 0) {
-                        /* EINVAL means the file exists but isn't a symlink. */
-                        if (errno != EINVAL)
-                                return NULL;
-                }
-                else {
-                        /* Note: readlink doesn't add the null byte. */
-                        link_path[n] = '\0';
-                        if (*link_path == '/')
-                                /* Start over for an absolute symlink. */
-                                new_path = resolved_path;
-                        else
-                                /* Otherwise back up over this component. */
-                                while (*(--new_path) != '/')
-                                        ;
-                        /* Safe sex check. */
-                        if (strlen(path) + n >= MAXPATHLEN) {
-                                errno = ENAMETOOLONG;
-                                return NULL;
-                        }
-                        /* Insert symlink contents into path. */
-                        strcat(link_path, path);
-                        strcpy(copy_path, link_path);
-                        path = copy_path;
-                }
+		/* Protect against infinite loops. */
+		if (readlinks++ > MAX_READLINKS) {
+			errno = ELOOP;
+			return NULL;
+		}
+		/* See if latest pathname component is a symlink. */
+		*new_path = '\0';
+		n = readlink(resolved_path, link_path, MAXPATHLEN - 1);
+		if (n < 0) {
+			/* EINVAL means the file exists but isn't a symlink. */
+			if (errno != EINVAL)
+				return NULL;
+		}
+		else {
+			/* Note: readlink doesn't add the null byte. */
+			link_path[n] = '\0';
+			if (*link_path == '/')
+				/* Start over for an absolute symlink. */
+				new_path = resolved_path;
+			else
+				/* Otherwise back up over this component. */
+				while (*(--new_path) != '/')
+					;
+			/* Safe sex check. */
+			if (strlen(path) + n >= MAXPATHLEN) {
+				errno = ENAMETOOLONG;
+				return NULL;
+			}
+			/* Insert symlink contents into path. */
+			strcat(link_path, path);
+			strcpy(copy_path, link_path);
+			path = copy_path;
+		}
 #endif /* S_IFLNK */
-                *new_path++ = '/';
-        }
-        /* Delete trailing slash but don't whomp a lone slash. */
-        if (new_path != resolved_path + 1 && new_path[-1] == '/')
-                new_path--;
-        /* Make sure it's null terminated. */
-        *new_path = '\0';
-        return resolved_path;
+		*new_path++ = '/';
+	}
+	/* Delete trailing slash but don't whomp a lone slash. */
+	if (new_path != resolved_path + 1 && new_path[-1] == '/')
+		new_path--;
+	/* Make sure it's null terminated. */
+	*new_path = '\0';
+	return resolved_path;
 }
 # define HAS_REALPATH
 #endif /* WANT_REALPATH && not HAS_REALPATH */
@@ -819,7 +823,7 @@
 copyright
 "
  COPYRIGHT (c) 1988 by Claus Gittinger
-              All Rights Reserved
+	      All Rights Reserved
 
  This software is furnished under a license and may be used
  only in accordance with the terms of that license and with the
@@ -844,93 +848,93 @@
 
     [Class variables:]
 
-        HostName        <String>        remembered hostname
-
-        DomainName      <String>        remembered domainname
-
-        SlowFork        <Boolean>       if set, fork and popen are avoided;
-                                        (more or less obsolete now)
-
-
-        CurrentDirectory <String>       remembered currentDirectories path
+	HostName        <String>        remembered hostname
+
+	DomainName      <String>        remembered domainname
+
+	SlowFork        <Boolean>       if set, fork and popen are avoided;
+					(more or less obsolete now)
+
+
+	CurrentDirectory <String>       remembered currentDirectories path
 
     [author:]
-        Claus Gittinger
+	Claus Gittinger
 
     [see also:]
-        OSProcessStatus
-        Filename Date Time
-        ExternalStream FileStream PipeStream Socket
+	OSProcessStatus
+	Filename Date Time
+	ExternalStream FileStream PipeStream Socket
 "
 !
 
 examples
 "
   various queries
-                                                                [exBegin]
+								[exBegin]
     Transcript 
-        showCR:'hello ' , (OperatingSystem getLoginName)
-                                                                [exEnd]
-
-                                                                [exBegin]
+	showCR:'hello ' , (OperatingSystem getLoginName)
+								[exEnd]
+
+								[exBegin]
     OperatingSystem isUNIXlike ifTrue:[
-        Transcript showCR:'this is some UNIX-like OS'
+	Transcript showCR:'this is some UNIX-like OS'
     ] ifFalse:[
-        Transcript showCR:'this OS is not UNIX-like'
+	Transcript showCR:'this OS is not UNIX-like'
     ]
-                                                                [exEnd]
-
-                                                                [exBegin]
+								[exEnd]
+
+								[exBegin]
     Transcript 
-        showCR:'this machine is called ' , OperatingSystem getHostName
-                                                                [exEnd]
-
-                                                                [exBegin]
+	showCR:'this machine is called ' , OperatingSystem getHostName
+								[exEnd]
+
+								[exBegin]
     Transcript 
-        showCR:('this machine is in the '
-               , OperatingSystem getDomainName
-               , ' domain')
-                                                                [exEnd]
-
-                                                                [exBegin]
+	showCR:('this machine is in the '
+	       , OperatingSystem getDomainName
+	       , ' domain')
+								[exEnd]
+
+								[exBegin]
     Transcript 
-        showCR:('this machine''s CPU is a '
-               , OperatingSystem getCPUType
-               )
-                                                                [exEnd]
-
-                                                                [exBegin]
+	showCR:('this machine''s CPU is a '
+	       , OperatingSystem getCPUType
+	       )
+								[exEnd]
+
+								[exBegin]
     Transcript showCR:'executing ls command ...'.
     OperatingSystem executeCommand:'ls'.
     Transcript showCR:'... done.'.
-                                                                [exEnd]
+								[exEnd]
 
   locking a file 
   (should be executed on two running smalltalks - not in two threads):
-                                                                [exBegin]
+								[exBegin]
     |f|
 
     f := 'testFile' asFilename readWriteStream.
 
     10 timesRepeat:[
-        'about to lock ...' printCR.
-        [
-          OperatingSystem 
-            lockFD:(f fileDescriptor)
-            shared:false
-            blocking:false
-        ] whileFalse:[
-            'process ' print. OperatingSystem getProcessId print. ' is waiting' printCR.
-            Delay waitForSeconds:1
-        ].
-        'LOCKED ...' printCR.
-        Delay waitForSeconds:10.
-        'unlock ...' printCR.
-        (OperatingSystem 
-            unlockFD:(f fileDescriptor)) printCR.
-        Delay waitForSeconds:3.
+	'about to lock ...' printCR.
+	[
+	  OperatingSystem 
+	    lockFD:(f fileDescriptor)
+	    shared:false
+	    blocking:false
+	] whileFalse:[
+	    'process ' print. OperatingSystem getProcessId print. ' is waiting' printCR.
+	    Delay waitForSeconds:1
+	].
+	'LOCKED ...' printCR.
+	Delay waitForSeconds:10.
+	'unlock ...' printCR.
+	(OperatingSystem 
+	    unlockFD:(f fileDescriptor)) printCR.
+	Delay waitForSeconds:3.
     ]
-                                                                [exBegin]
+								[exBegin]
 "
 ! !
 
@@ -955,16 +959,16 @@
     "catch image restart and flush some cached data"
 
     something == #earlyRestart ifTrue:[
-        "
-         flush cached data/info
-        "
-        HostName := nil.
-        DomainName := nil.
-        LastErrorNumber := nil.
-        PipeFailed := false.
-        SlowFork := false.
-        ForkFailed := false.
-        CurrentDirectory := nil.
+	"
+	 flush cached data/info
+	"
+	HostName := nil.
+	DomainName := nil.
+	LastErrorNumber := nil.
+	PipeFailed := false.
+	SlowFork := false.
+	ForkFailed := false.
+	CurrentDirectory := nil.
     ]
 
     "Created: / 15.6.1996 / 15:22:37 / cg"
@@ -1466,225 +1470,225 @@
 %{  /* NOCONTEXT */
 #ifdef SIGABRT
     if (signalName == @symbol(SIGABRT)) {
-        RETURN ( __MKSMALLINT(SIGABRT) );
+	RETURN ( __MKSMALLINT(SIGABRT) );
     }
 #endif
 #ifdef SIGALRM
     if (signalName == @symbol(SIGALRM)) {
-        RETURN ( __MKSMALLINT(SIGALRM) );
+	RETURN ( __MKSMALLINT(SIGALRM) );
     }
 #endif
 #ifdef SIGBREAK
     if (signalName == @symbol(SIGBREAK)) {
-        RETURN ( __MKSMALLINT(SIGBREAK) );
+	RETURN ( __MKSMALLINT(SIGBREAK) );
     }
 #endif
 #ifdef SIGBUS
     if (signalName == @symbol(SIGBUS)) {
-        RETURN ( __MKSMALLINT(SIGBUS) );
+	RETURN ( __MKSMALLINT(SIGBUS) );
     }
 #endif
 #ifdef SIGCHLD
     if ((signalName == @symbol(SIGCHLD))
      || (signalName == @symbol(SIGCLD)) ) {
-        RETURN ( __MKSMALLINT(SIGCHLD) );
+	RETURN ( __MKSMALLINT(SIGCHLD) );
     }
 #else
 # if defined(SIGCLD)
     if ((signalName == @symbol(SIGCHLD))
      || (signalName == @symbol(SIGCLD)) ) {
-        RETURN ( __MKSMALLINT(SIGCLD) );
+	RETURN ( __MKSMALLINT(SIGCLD) );
     }
 # endif
 #endif
 #ifdef SIGCONT
     if (signalName == @symbol(SIGCONT)) {
-        RETURN ( __MKSMALLINT(SIGCONT) );
+	RETURN ( __MKSMALLINT(SIGCONT) );
     }
 #endif
 #ifdef SIGDANGER
     if (signalName == @symbol(SIGDANGER)) {
-        RETURN ( __MKSMALLINT(SIGDANGER) );
+	RETURN ( __MKSMALLINT(SIGDANGER) );
     }
 #endif
 #ifdef SIGEMT
     if (signalName == @symbol(SIGEMT)) {
-        RETURN ( __MKSMALLINT(SIGEMT) );
+	RETURN ( __MKSMALLINT(SIGEMT) );
     }
 #endif
 #ifdef SIGFPE
     if (signalName == @symbol(SIGFPE)) {
-        RETURN ( __MKSMALLINT(SIGFPE) );
+	RETURN ( __MKSMALLINT(SIGFPE) );
     }
 #endif
 #ifdef SIGGRANT
     if (signalName == @symbol(SIGGRANT)) {
-        RETURN ( __MKSMALLINT(SIGGRANT) );
+	RETURN ( __MKSMALLINT(SIGGRANT) );
     }
 #endif
 #ifdef SIGHUP
     if (signalName == @symbol(SIGHUP)) {
-        RETURN ( __MKSMALLINT(SIGHUP) );
+	RETURN ( __MKSMALLINT(SIGHUP) );
     }
 #endif
 #ifdef SIGILL
     if (signalName == @symbol(SIGILL)) {
-        RETURN ( __MKSMALLINT(SIGILL) );
+	RETURN ( __MKSMALLINT(SIGILL) );
     }
 #endif
 #ifdef SIGINT
     if (signalName == @symbol(SIGINT)) {
-        RETURN ( __MKSMALLINT(SIGINT) );
+	RETURN ( __MKSMALLINT(SIGINT) );
     }
 #endif
 #ifdef SIGIO
     if (signalName == @symbol(SIGIO)) {
-        RETURN ( __MKSMALLINT(SIGIO) );
+	RETURN ( __MKSMALLINT(SIGIO) );
     }
 #endif
 #ifdef SIGIOT
     if (signalName == @symbol(SIGIOT)) {
-        RETURN ( __MKSMALLINT(SIGIOT) );
+	RETURN ( __MKSMALLINT(SIGIOT) );
     }
 #endif
 #ifdef SIGKILL
     if (signalName == @symbol(SIGKILL)) {
-        RETURN ( __MKSMALLINT(SIGKILL) );
+	RETURN ( __MKSMALLINT(SIGKILL) );
     }
 #endif
 #ifdef SIGLOST
     if (signalName == @symbol(SIGLOST)) {
-        RETURN ( __MKSMALLINT(SIGLOST) );
+	RETURN ( __MKSMALLINT(SIGLOST) );
     }
 #endif
 #ifdef SIGMIGRATE
     if (signalName == @symbol(SIGMIGRATE)) {
-        RETURN ( __MKSMALLINT(SIGMIGRATE) );
+	RETURN ( __MKSMALLINT(SIGMIGRATE) );
     }
 #endif
 #ifdef SIGMSG
     if (signalName == @symbol(SIGMSG)) {
-        RETURN ( __MKSMALLINT(SIGMSG) );
+	RETURN ( __MKSMALLINT(SIGMSG) );
     }
 #endif
 #ifdef SIGPIPE
     if (signalName == @symbol(SIGPIPE)) {
-        RETURN ( __MKSMALLINT(SIGPIPE) );
+	RETURN ( __MKSMALLINT(SIGPIPE) );
     }
 #endif
 #ifdef SIGPOLL
     if (signalName == @symbol(SIGPOLL)) {
-        RETURN ( __MKSMALLINT(SIGPOLL) );
+	RETURN ( __MKSMALLINT(SIGPOLL) );
     }
 #endif
 #ifdef SIGPRE
     if (signalName == @symbol(SIGPRE)) {
-        RETURN ( __MKSMALLINT(SIGPRE) );
+	RETURN ( __MKSMALLINT(SIGPRE) );
     }
 #endif
 #ifdef SIGPROF
     if (signalName == @symbol(SIGPROF)) {
-        RETURN ( __MKSMALLINT(SIGPROF) );
+	RETURN ( __MKSMALLINT(SIGPROF) );
     }
 #endif
 #ifdef SIGPWR
     if (signalName == @symbol(SIGPWR)) {
-        RETURN ( __MKSMALLINT(SIGPWR) );
+	RETURN ( __MKSMALLINT(SIGPWR) );
     }
 #endif
 #ifdef SIGQUIT
     if (signalName == @symbol(SIGQUIT)) {
-        RETURN ( __MKSMALLINT(SIGQUIT) );
+	RETURN ( __MKSMALLINT(SIGQUIT) );
     }
 #endif
 #ifdef SIGRETRACT
     if (signalName == @symbol(SIGRETRACT)) {
-        RETURN ( __MKSMALLINT(SIGRETRACT) );
+	RETURN ( __MKSMALLINT(SIGRETRACT) );
     }
 #endif
 #ifdef SIGSAK
     if (signalName == @symbol(SIGSAK)) {
-        RETURN ( __MKSMALLINT(SIGSAK) );
+	RETURN ( __MKSMALLINT(SIGSAK) );
     }
 #endif
 #ifdef SIGSEGV
     if (signalName == @symbol(SIGSEGV)) {
-        RETURN ( __MKSMALLINT(SIGSEGV) );
+	RETURN ( __MKSMALLINT(SIGSEGV) );
     }
 #endif
 #ifdef SIGSOUND
     if (signalName == @symbol(SIGSOUND)) {
-        RETURN ( __MKSMALLINT(SIGSOUND) );
+	RETURN ( __MKSMALLINT(SIGSOUND) );
     }
 #endif
 #ifdef SIGSTOP
     if (signalName == @symbol(SIGSTOP)) {
-        RETURN ( __MKSMALLINT(SIGSTOP) );
+	RETURN ( __MKSMALLINT(SIGSTOP) );
     }
 #endif
 #ifdef SIGSYS
     if (signalName == @symbol(SIGSYS)) {
-        RETURN ( __MKSMALLINT(SIGSYS) );
+	RETURN ( __MKSMALLINT(SIGSYS) );
     }
 #endif
 #ifdef SIGTERM
     if (signalName == @symbol(SIGTERM)) {
-        RETURN ( __MKSMALLINT(SIGTERM) );
+	RETURN ( __MKSMALLINT(SIGTERM) );
     }
 #endif
 #ifdef SIGTRAP
     if (signalName == @symbol(SIGTRAP)) {
-        RETURN ( __MKSMALLINT(SIGTRAP) );
+	RETURN ( __MKSMALLINT(SIGTRAP) );
     }
 #endif
 #ifdef SIGTSTP
     if (signalName == @symbol(SIGTSTP)) {
-        RETURN ( __MKSMALLINT(SIGTSTP) );
+	RETURN ( __MKSMALLINT(SIGTSTP) );
     }
 #endif
 #ifdef SIGTTIN
     if (signalName == @symbol(SIGTTIN)) {
-        RETURN ( __MKSMALLINT(SIGTTIN) );
+	RETURN ( __MKSMALLINT(SIGTTIN) );
     }
 #endif
 #ifdef SIGTTOU
     if (signalName == @symbol(SIGTTOU)) {
-        RETURN ( __MKSMALLINT(SIGTTOU) );
+	RETURN ( __MKSMALLINT(SIGTTOU) );
     }
 #endif
 #ifdef SIGURG
     if (signalName == @symbol(SIGURG)) {
-        RETURN ( __MKSMALLINT(SIGURG) );
+	RETURN ( __MKSMALLINT(SIGURG) );
     }
 #endif
 #ifdef SIGUSR1
     if (signalName == @symbol(SIGUSR1)) {
-        RETURN ( __MKSMALLINT(SIGUSR1) );
+	RETURN ( __MKSMALLINT(SIGUSR1) );
     }
 #endif
 #ifdef SIGUSR2
     if (signalName == @symbol(SIGUSR2)) {
-        RETURN ( __MKSMALLINT(SIGUSR2) );
+	RETURN ( __MKSMALLINT(SIGUSR2) );
     }
 #endif
 #ifdef SIGVTALRM
     if (signalName == @symbol(SIGVTALRM)) {
-        RETURN ( __MKSMALLINT(SIGVTALRM) );
+	RETURN ( __MKSMALLINT(SIGVTALRM) );
     }
 #endif
 #ifdef SIGWINCH
     if (signalName == @symbol(SIGWINCH)) {
-        RETURN ( __MKSMALLINT(SIGWINCH) );
+	RETURN ( __MKSMALLINT(SIGWINCH) );
     }
 #endif
 #ifdef SIGXCPU
     if (signalName == @symbol(SIGXCPU)) {
-        RETURN ( __MKSMALLINT(SIGXCPU) );
+	RETURN ( __MKSMALLINT(SIGXCPU) );
     }
 #endif
 #ifdef SIGXFSZ
     if (signalName == @symbol(SIGXFSZ)) {
-        RETURN ( __MKSMALLINT(SIGXFSZ) );
+	RETURN ( __MKSMALLINT(SIGXFSZ) );
     }
 #endif
 
@@ -1730,229 +1734,229 @@
      */
 #ifdef EPERM
     if (sym == @symbol(EPERM)) {
-        RETURN ( __MKSMALLINT(EPERM) );
+	RETURN ( __MKSMALLINT(EPERM) );
     }
 #endif
 
 #ifdef ENOENT
     if (sym == @symbol(ENOENT)) {
-        RETURN ( __MKSMALLINT(ENOENT) );
+	RETURN ( __MKSMALLINT(ENOENT) );
     }
 #endif
 
 #ifdef ESRCH
     if (sym == @symbol(ESRCH)) {
-        RETURN ( __MKSMALLINT(ESRCH) );
+	RETURN ( __MKSMALLINT(ESRCH) );
     }
 #endif
 
 #ifdef EINTR
     if (sym == @symbol(EINTR)) {
-        RETURN ( __MKSMALLINT(EINTR) );
+	RETURN ( __MKSMALLINT(EINTR) );
     }
 #endif
 
 #ifdef EIO
     if (sym == @symbol(EIO)) {
-        RETURN ( __MKSMALLINT(EIO) );
+	RETURN ( __MKSMALLINT(EIO) );
     }
 #endif
 
 #ifdef ENXIO
     if (sym == @symbol(ENXIO)) {
-        RETURN ( __MKSMALLINT(ENXIO) );
+	RETURN ( __MKSMALLINT(ENXIO) );
     }
 #endif
 
 #ifdef E2BIG
     if (sym == @symbol(E2BIG)) {
-        RETURN ( __MKSMALLINT(E2BIG) );
+	RETURN ( __MKSMALLINT(E2BIG) );
     }
 #endif
 
 #ifdef ENOEXEC
     if (sym == @symbol(ENOEXEC)) {
-        RETURN ( __MKSMALLINT(ENOEXEC) );
+	RETURN ( __MKSMALLINT(ENOEXEC) );
     }
 #endif
 
 #ifdef EBADF
     if (sym == @symbol(EBADF)) {
-        RETURN ( __MKSMALLINT(EBADF) );
+	RETURN ( __MKSMALLINT(EBADF) );
     }
 #endif
 
 #ifdef ECHILD
     if (sym == @symbol(ECHILD)) {
-        RETURN ( __MKSMALLINT(ECHILD) );
+	RETURN ( __MKSMALLINT(ECHILD) );
     }
 #endif
 
 #if defined(EAGAIN)
     if (sym == @symbol(EAGAIN)) {
-        RETURN ( __MKSMALLINT(EAGAIN) );
+	RETURN ( __MKSMALLINT(EAGAIN) );
     }
 #endif
 
 #ifdef ENOMEM
     if (sym == @symbol(ENOMEM)) {
-        RETURN ( __MKSMALLINT(ENOMEM) );
+	RETURN ( __MKSMALLINT(ENOMEM) );
     }
 #endif
 
 #ifdef EACCES
     if (sym == @symbol(EACCES)) {
-        RETURN ( __MKSMALLINT(EACCES) );
+	RETURN ( __MKSMALLINT(EACCES) );
     }
 #endif
 
 #ifdef EFAULT
     if (sym == @symbol(EFAULT)) {
-        RETURN ( __MKSMALLINT(EFAULT) );
+	RETURN ( __MKSMALLINT(EFAULT) );
     }
 #endif
 
 #ifdef EBUSY
     if (sym == @symbol(EBUSY)) {
-        RETURN ( __MKSMALLINT(EBUSY) );
+	RETURN ( __MKSMALLINT(EBUSY) );
     }
 #endif
 
 #ifdef EXDEV
     if (sym == @symbol(EXDEV)) {
-        RETURN ( __MKSMALLINT(EXDEV) );
+	RETURN ( __MKSMALLINT(EXDEV) );
     }
 #endif
 
 #ifdef ENODEV
     if (sym == @symbol(ENODEV)) {
-        RETURN ( __MKSMALLINT(ENODEV) );
+	RETURN ( __MKSMALLINT(ENODEV) );
     }
 #endif
 
 #ifdef ENOTDIR
     if (sym == @symbol(ENOTDIR)) {
-        RETURN ( __MKSMALLINT(ENOTDIR) );
+	RETURN ( __MKSMALLINT(ENOTDIR) );
     }
 #endif
 
 #ifdef EISDIR
     if (sym == @symbol(EISDIR)) {
-        RETURN ( __MKSMALLINT(EISDIR) );
+	RETURN ( __MKSMALLINT(EISDIR) );
     }
 #endif
 
 #ifdef EINVAL
     if (sym == @symbol(EINVAL)) {
-        RETURN ( __MKSMALLINT(EINVAL) );
+	RETURN ( __MKSMALLINT(EINVAL) );
     }
 #endif
 
 #ifdef ENFILE
     if (sym == @symbol(ENFILE)) {
-        RETURN ( __MKSMALLINT(ENFILE) );
+	RETURN ( __MKSMALLINT(ENFILE) );
     }
 #endif
 
 #ifdef EMFILE
     if (sym == @symbol(EMFILE)) {
-        RETURN ( __MKSMALLINT(EMFILE) );
+	RETURN ( __MKSMALLINT(EMFILE) );
     }
 #endif
 
 #ifdef ENOTTY
     if (sym == @symbol(ENOTTY)) {
-        RETURN ( __MKSMALLINT(ENOTTY) );
+	RETURN ( __MKSMALLINT(ENOTTY) );
     }
 #endif
 
 #ifdef EFBIG
     if (sym == @symbol(EFBIG)) {
-        RETURN ( __MKSMALLINT(EFBIG) );
+	RETURN ( __MKSMALLINT(EFBIG) );
     }
 #endif
 
 #ifdef ENOSPC
     if (sym == @symbol(ENOSPC)) {
-        RETURN ( __MKSMALLINT(ENOSPC) );
+	RETURN ( __MKSMALLINT(ENOSPC) );
     }
 #endif
 
 #ifdef ESPIPE
     if (sym == @symbol(ESPIPE)) {
-        RETURN ( __MKSMALLINT(ESPIPE) );
+	RETURN ( __MKSMALLINT(ESPIPE) );
     }
 #endif
 
 #ifdef EROFS
     if (sym == @symbol(EROFS)) {
-        RETURN ( __MKSMALLINT(EROFS) );
+	RETURN ( __MKSMALLINT(EROFS) );
     }
 #endif
 
 #ifdef EMLINK
     if (sym == @symbol(EMLINK)) {
-        RETURN ( __MKSMALLINT(EMLINK) );
+	RETURN ( __MKSMALLINT(EMLINK) );
     }
 #endif
 
 #ifdef EPIPE
     if (sym == @symbol(EPIPE)) {
-        RETURN ( __MKSMALLINT(EPIPE) );
+	RETURN ( __MKSMALLINT(EPIPE) );
     }
 #endif
 
 #ifdef EDOM
     if (sym == @symbol(EDOM)) {
-        RETURN ( __MKSMALLINT(EDOM) );
+	RETURN ( __MKSMALLINT(EDOM) );
     }
 #endif
 
 #ifdef ERANGE
     if (sym == @symbol(ERANGE)) {
-        RETURN ( __MKSMALLINT(ERANGE) );
+	RETURN ( __MKSMALLINT(ERANGE) );
     }
 #endif
 
 #ifdef EDEADLK
     if (sym == @symbol(EDEADLK)) {
-        RETURN ( __MKSMALLINT(EDEADLK) );
+	RETURN ( __MKSMALLINT(EDEADLK) );
     }
 #endif
 
 #ifdef ENAMETOOLONG
     if (sym == @symbol(ENAMETOOLONG)) {
-        RETURN ( __MKSMALLINT(ENAMETOOLONG) );
+	RETURN ( __MKSMALLINT(ENAMETOOLONG) );
     }
 #endif
 
 #ifdef ENOLCK
     if (sym == @symbol(ENOLCK)) {
-        RETURN ( __MKSMALLINT(ENOLCK) );
+	RETURN ( __MKSMALLINT(ENOLCK) );
     }
 #endif
 
 #ifdef ENOSYS
     if (sym == @symbol(ENOSYS)) {
-        RETURN ( __MKSMALLINT(ENOSYS) );
+	RETURN ( __MKSMALLINT(ENOSYS) );
     }
 #endif
 
 #ifdef ENOTEMPTY
     if (sym == @symbol(ENOTEMPTY)) {
-        RETURN ( __MKSMALLINT(ENOTEMPTY) );
+	RETURN ( __MKSMALLINT(ENOTEMPTY) );
     }
 #endif
 
 #ifdef EEXIST
     if (sym == @symbol(EEXIST)) {
-        RETURN ( __MKSMALLINT(EEXIST) );
+	RETURN ( __MKSMALLINT(EEXIST) );
     }
 #endif
 
 #ifdef EILSEQ
     if (sym == @symbol(EILSEQ)) {
-        RETURN ( __MKSMALLINT(EILSEQ) );
+	RETURN ( __MKSMALLINT(EILSEQ) );
     }
 #endif
 
@@ -1961,13 +1965,13 @@
      */
 #ifdef ENOTBLK
     if (sym == @symbol(ENOTBLK)) {
-        RETURN ( __MKSMALLINT(ENOTBLK) );
+	RETURN ( __MKSMALLINT(ENOTBLK) );
     }
 #endif
 
 #ifdef ETXTBSY
     if (sym == @symbol(ETXTBSY)) {
-        RETURN ( __MKSMALLINT(ETXTBSY) );
+	RETURN ( __MKSMALLINT(ETXTBSY) );
     }
 #endif
 
@@ -1976,19 +1980,19 @@
      */
 #ifdef EWOULDBLOCK
     if (sym == @symbol(EWOULDBLOCK)) {
-        RETURN ( __MKSMALLINT(EWOULDBLOCK) );
+	RETURN ( __MKSMALLINT(EWOULDBLOCK) );
     }
 #endif
 
 #ifdef ENOMSG
     if (sym == @symbol(ENOMSG)) {
-        RETURN ( __MKSMALLINT(ENOMSG) );
+	RETURN ( __MKSMALLINT(ENOMSG) );
     }
 #endif
 
 #ifdef ELOOP
     if (sym == @symbol(ELOOP)) {
-        RETURN ( __MKSMALLINT(ELOOP) );
+	RETURN ( __MKSMALLINT(ELOOP) );
     }
 #endif
 
@@ -1997,31 +2001,31 @@
      */
 #ifdef ETIME
     if (sym == @symbol(ETIME)) {
-        RETURN ( __MKSMALLINT(ETIME) );
+	RETURN ( __MKSMALLINT(ETIME) );
     }
 #endif
 
 #ifdef ENOSR
     if (sym == @symbol(ENOSR)) {
-        RETURN ( __MKSMALLINT(ENOSR) );
+	RETURN ( __MKSMALLINT(ENOSR) );
     }
 #endif
 
 #ifdef ENOSTR
     if (sym == @symbol(ENOSTR)) {
-        RETURN ( __MKSMALLINT(ENOSTR) );
+	RETURN ( __MKSMALLINT(ENOSTR) );
     }
 #endif
 
 #ifdef ECOMM
     if (sym == @symbol(ECOMM)) {
-        RETURN ( __MKSMALLINT(ECOMM) );
+	RETURN ( __MKSMALLINT(ECOMM) );
     }
 #endif
 
 #ifdef EPROTO
     if (sym == @symbol(EPROTO)) {
-        RETURN ( __MKSMALLINT(EPROTO) );
+	RETURN ( __MKSMALLINT(EPROTO) );
     }
 #endif
 
@@ -2030,13 +2034,13 @@
      */
 #ifdef ESTALE
     if (sym == @symbol(ESTALE)) {
-        RETURN ( __MKSMALLINT(ESTALE) );
+	RETURN ( __MKSMALLINT(ESTALE) );
     }
 #endif
 
 #ifdef EREMOTE
     if (sym == @symbol(EREMOTE)) {
-        RETURN ( __MKSMALLINT(EREMOTE) );
+	RETURN ( __MKSMALLINT(EREMOTE) );
     }
 #endif
 
@@ -2045,157 +2049,157 @@
      */
 #ifdef EINPROGRESS
     if (sym == @symbol(EINPROGRESS)) {
-        RETURN ( __MKSMALLINT(EINPROGRESS) );
+	RETURN ( __MKSMALLINT(EINPROGRESS) );
     }
 #endif
 
 #ifdef EALREADY
     if (sym == @symbol(EALREADY)) {
-        RETURN ( __MKSMALLINT(EALREADY) );
+	RETURN ( __MKSMALLINT(EALREADY) );
     }
 #endif
 
 #ifdef ENOTSOCK
     if (sym == @symbol(ENOTSOCK)) {
-        RETURN ( __MKSMALLINT(ENOTSOCK) );
+	RETURN ( __MKSMALLINT(ENOTSOCK) );
     }
 #endif
 
 #ifdef EDESTADDRREQ
     if (sym == @symbol(EDESTADDRREQ)) {
-        RETURN ( __MKSMALLINT(EDESTADDRREQ) );
+	RETURN ( __MKSMALLINT(EDESTADDRREQ) );
     }
 #endif
 
 #ifdef EMSGSIZE
     if (sym == @symbol(EMSGSIZE)) {
-        RETURN ( __MKSMALLINT(EMSGSIZE) );
+	RETURN ( __MKSMALLINT(EMSGSIZE) );
     }
 #endif
 
 #ifdef EPROTOTYPE
     if (sym == @symbol(EPROTOTYPE)) {
-        RETURN ( __MKSMALLINT(EPROTOTYPE) );
+	RETURN ( __MKSMALLINT(EPROTOTYPE) );
     }
 #endif
 
 #ifdef ENOPROTOOPT
     if (sym == @symbol(ENOPROTOOPT)) {
-        RETURN ( __MKSMALLINT(ENOPROTOOPT) );
+	RETURN ( __MKSMALLINT(ENOPROTOOPT) );
     }
 #endif
 
 #ifdef EPROTONOSUPPORT
     if (sym == @symbol(EPROTONOSUPPORT)) {
-        RETURN ( __MKSMALLINT(EPROTONOSUPPORT) );
+	RETURN ( __MKSMALLINT(EPROTONOSUPPORT) );
     }
 #endif
 
 #ifdef ESOCKTNOSUPPORT
     if (sym == @symbol(ESOCKTNOSUPPORT)) {
-        RETURN ( __MKSMALLINT(ESOCKTNOSUPPORT) );
+	RETURN ( __MKSMALLINT(ESOCKTNOSUPPORT) );
     }
 #endif
 
 #ifdef EOPNOTSUPP
     if (sym == @symbol(EOPNOTSUPP)) {
-        RETURN ( __MKSMALLINT(EOPNOTSUPP) );
+	RETURN ( __MKSMALLINT(EOPNOTSUPP) );
     }
 #endif
 
 #ifdef EPFNOSUPPORT
     if (sym == @symbol(EPFNOSUPPORT)) {
-        RETURN ( __MKSMALLINT(EPFNOSUPPORT) );
+	RETURN ( __MKSMALLINT(EPFNOSUPPORT) );
     }
 #endif
 
 #ifdef EAFNOSUPPORT
     if (sym == @symbol(EAFNOSUPPORT)) {
-        RETURN ( __MKSMALLINT(EAFNOSUPPORT) );
+	RETURN ( __MKSMALLINT(EAFNOSUPPORT) );
     }
 #endif
 
 #ifdef EADDRINUSE
     if (sym == @symbol(EADDRINUSE)) {
-        RETURN ( __MKSMALLINT(EADDRINUSE) );
+	RETURN ( __MKSMALLINT(EADDRINUSE) );
     }
 #endif
 
 #ifdef EADDRNOTAVAIL
     if (sym == @symbol(EADDRNOTAVAIL)) {
-        RETURN ( __MKSMALLINT(EADDRNOTAVAIL) );
+	RETURN ( __MKSMALLINT(EADDRNOTAVAIL) );
     }
 #endif
 
 #ifdef ETIMEDOUT
     if (sym == @symbol(ETIMEDOUT)) {
-        RETURN ( __MKSMALLINT(ETIMEDOUT) );
+	RETURN ( __MKSMALLINT(ETIMEDOUT) );
     }
 #endif
 
 #ifdef ECONNREFUSED
     if (sym == @symbol(ECONNREFUSED)) {
-        RETURN ( __MKSMALLINT(ECONNREFUSED) );
+	RETURN ( __MKSMALLINT(ECONNREFUSED) );
     }
 #endif
 
 #ifdef ENETDOWN
     if (sym == @symbol(ENETDOWN)) {
-        RETURN ( __MKSMALLINT(ENETDOWN) );
+	RETURN ( __MKSMALLINT(ENETDOWN) );
     }
 #endif
 
 #ifdef ENETUNREACH
     if (sym == @symbol(ENETUNREACH)) {
-        RETURN ( __MKSMALLINT(ENETUNREACH) );
+	RETURN ( __MKSMALLINT(ENETUNREACH) );
     }
 #endif
 
 #ifdef ENETRESET
     if (sym == @symbol(ENETRESET)) {
-        RETURN ( __MKSMALLINT(ENETRESET) );
+	RETURN ( __MKSMALLINT(ENETRESET) );
     }
 #endif
 
 #ifdef ECONNABORTED
     if (sym == @symbol(ECONNABORTED)) {
-        RETURN ( __MKSMALLINT(ECONNABORTED) );
+	RETURN ( __MKSMALLINT(ECONNABORTED) );
     }
 #endif
 
 #ifdef ECONNRESET
     if (sym == @symbol(ECONNRESET)) {
-        RETURN ( __MKSMALLINT(ECONNRESET) );
+	RETURN ( __MKSMALLINT(ECONNRESET) );
     }
 #endif
 
 #ifdef EISCONN
     if (sym == @symbol(EISCONN)) {
-        RETURN ( __MKSMALLINT(EISCONN) );
+	RETURN ( __MKSMALLINT(EISCONN) );
     }
 #endif
 
 #ifdef ENOTCONN
     if (sym == @symbol(ENOTCONN)) {
-        RETURN ( __MKSMALLINT(ENOTCONN) );
+	RETURN ( __MKSMALLINT(ENOTCONN) );
     }
 #endif
 
 #ifdef ESHUTDOWN
     if (sym == @symbol(ESHUTDOWN)) {
-        RETURN ( __MKSMALLINT(ESHUTDOWN) );
+	RETURN ( __MKSMALLINT(ESHUTDOWN) );
     }
 #endif
 
 #ifdef EHOSTDOWN
     if (sym == @symbol(EHOSTDOWN)) {
-        RETURN ( __MKSMALLINT(EHOSTDOWN) );
+	RETURN ( __MKSMALLINT(EHOSTDOWN) );
     }
 #endif
 
 #ifdef EHOSTUNREACH
     if (sym == @symbol(EHOSTUNREACH)) {
-        RETURN ( __MKSMALLINT(EHOSTUNREACH) );
+	RETURN ( __MKSMALLINT(EHOSTUNREACH) );
     }
 #endif
 %}.
@@ -2220,503 +2224,503 @@
     OBJ eno = errNr;
 
     if (__isSmallInteger(eno)) {
-        switch (__intVal(eno)) {
-            /*
-             * POSIX errnos - these should be defined
-             */
+	switch (__intVal(eno)) {
+	    /*
+	     * POSIX errnos - these should be defined
+	     */
 #ifdef EPERM
-            case EPERM:
-                msg = "Operation not permitted";
-                sym = @symbol(EPERM);
-                break;
+	    case EPERM:
+		msg = "Operation not permitted";
+		sym = @symbol(EPERM);
+		break;
 #endif
 #ifdef ENOENT
-            case ENOENT:
-                msg = "No such file or directory";
-                sym = @symbol(ENOENT);
-                break;
+	    case ENOENT:
+		msg = "No such file or directory";
+		sym = @symbol(ENOENT);
+		break;
 #endif
 #ifdef ESRCH
-            case ESRCH:
-                msg = "No such process";
-                sym = @symbol(ESRCH);
-                break;
+	    case ESRCH:
+		msg = "No such process";
+		sym = @symbol(ESRCH);
+		break;
 #endif
 #ifdef EINTR
-            case EINTR:
-                msg = "Interrupted system call";
-                sym = @symbol(EINTR);
-                break;
+	    case EINTR:
+		msg = "Interrupted system call";
+		sym = @symbol(EINTR);
+		break;
 #endif
 #ifdef EIO
-            case EIO:
-                msg = "I/O error";
-                sym = @symbol(EIO);
-                break;
+	    case EIO:
+		msg = "I/O error";
+		sym = @symbol(EIO);
+		break;
 #endif
 #ifdef ENXIO
-            case ENXIO:
-                msg = "No such device or address";
-                sym = @symbol(ENXIO);
-                break;
+	    case ENXIO:
+		msg = "No such device or address";
+		sym = @symbol(ENXIO);
+		break;
 #endif
 #ifdef E2BIG
-            case E2BIG:
-                msg = "Arg list too long";
-                sym = @symbol(E2BIG);
-                break;
+	    case E2BIG:
+		msg = "Arg list too long";
+		sym = @symbol(E2BIG);
+		break;
 #endif
 #ifdef ENOEXEC
-            case ENOEXEC:
-                msg = "Exec format error";
-                sym = @symbol(ENOEXEC);
-                break;
+	    case ENOEXEC:
+		msg = "Exec format error";
+		sym = @symbol(ENOEXEC);
+		break;
 #endif
 #ifdef EBADF
-            case EBADF:
-                msg = "Bad file number";
-                sym = @symbol(EBADF);
-                break;
+	    case EBADF:
+		msg = "Bad file number";
+		sym = @symbol(EBADF);
+		break;
 #endif
 #ifdef ECHILD
-            case ECHILD:
-                msg = "No child processes";
-                sym = @symbol(ECHILD);
-                break;
+	    case ECHILD:
+		msg = "No child processes";
+		sym = @symbol(ECHILD);
+		break;
 #endif
 #if !defined(EWOULDBLOCK) && defined(EAGAIN) && (EWOULDBLOCK != EAGAIN)
-            case EAGAIN:
-                msg = "Try again";
-                sym = @symbol(EAGAIN);
-                break;
+	    case EAGAIN:
+		msg = "Try again";
+		sym = @symbol(EAGAIN);
+		break;
 #endif
 #ifdef ENOMEM
-            case ENOMEM:
-                msg = "Out of memory";
-                sym = @symbol(ENOMEM);
-                break;
+	    case ENOMEM:
+		msg = "Out of memory";
+		sym = @symbol(ENOMEM);
+		break;
 #endif
 #ifdef EACCES
-            case EACCES:
-                msg = "Permission denied";
-                sym = @symbol(EACCES);
-                break;
+	    case EACCES:
+		msg = "Permission denied";
+		sym = @symbol(EACCES);
+		break;
 #endif
 #ifdef EFAULT
-            case EFAULT:
-                msg = "Bad address";
-                sym = @symbol(EFAULT);
-                break;
+	    case EFAULT:
+		msg = "Bad address";
+		sym = @symbol(EFAULT);
+		break;
 #endif
 #ifdef EBUSY
-            case EBUSY:
-                msg = "Device or resource busy";
-                sym = @symbol(EBUSY);
-                break;
+	    case EBUSY:
+		msg = "Device or resource busy";
+		sym = @symbol(EBUSY);
+		break;
 #endif
 #ifdef EEXIST
-            case EEXIST:
-                msg = "File exists";
-                sym = @symbol(EEXIST);
-                break;
+	    case EEXIST:
+		msg = "File exists";
+		sym = @symbol(EEXIST);
+		break;
 #endif
 #ifdef EXDEV
-            case EXDEV:
-                msg = "Cross-device link";
-                sym = @symbol(EXDEV);
-                break;
+	    case EXDEV:
+		msg = "Cross-device link";
+		sym = @symbol(EXDEV);
+		break;
 #endif
 #ifdef ENODEV
-            case ENODEV:
-                msg = "No such device";
-                sym = @symbol(ENODEV);
-                break;
+	    case ENODEV:
+		msg = "No such device";
+		sym = @symbol(ENODEV);
+		break;
 #endif
 #ifdef ENOTDIR
-            case ENOTDIR:
-                msg = "Not a directory";
-                sym = @symbol(ENOTDIR);
-                break;
+	    case ENOTDIR:
+		msg = "Not a directory";
+		sym = @symbol(ENOTDIR);
+		break;
 #endif
 #ifdef EISDIR
-            case EISDIR:
-                msg = "Is a directory";
-                sym = @symbol(EISDIR);
-                break;
+	    case EISDIR:
+		msg = "Is a directory";
+		sym = @symbol(EISDIR);
+		break;
 #endif
 #ifdef EINVAL
-            case EINVAL:
-                msg = "Invalid argument";
-                sym = @symbol(EINVAL);
-                break;
+	    case EINVAL:
+		msg = "Invalid argument";
+		sym = @symbol(EINVAL);
+		break;
 #endif
 #ifdef ENFILE
-            case ENFILE:
-                msg = "File table overflow";
-                sym = @symbol(ENFILE);
-                break;
+	    case ENFILE:
+		msg = "File table overflow";
+		sym = @symbol(ENFILE);
+		break;
 #endif
 #ifdef EMFILE
-            case EMFILE:
-                msg = "Too many open files";
-                sym = @symbol(EMFILE);
-                break;
+	    case EMFILE:
+		msg = "Too many open files";
+		sym = @symbol(EMFILE);
+		break;
 #endif
 #ifdef ENOTTY
-            case ENOTTY:
-                msg = "Not a typewriter";
-                sym = @symbol(ENOTTY);
-                break;
+	    case ENOTTY:
+		msg = "Not a typewriter";
+		sym = @symbol(ENOTTY);
+		break;
 #endif
 #ifdef EFBIG
-            case EFBIG:
-                msg = "File too large";
-                sym = @symbol(EFBIG);
-                break;
+	    case EFBIG:
+		msg = "File too large";
+		sym = @symbol(EFBIG);
+		break;
 #endif
 #ifdef ENOSPC
-            case ENOSPC:
-                msg = "No space left on device";
-                sym = @symbol(ENOSPC);
-                break;
+	    case ENOSPC:
+		msg = "No space left on device";
+		sym = @symbol(ENOSPC);
+		break;
 #endif
 #ifdef ESPIPE
-            case ESPIPE:
-                msg = "Illegal seek";
-                sym = @symbol(ESPIPE);
-                break;
+	    case ESPIPE:
+		msg = "Illegal seek";
+		sym = @symbol(ESPIPE);
+		break;
 #endif
 #ifdef EROFS
-            case EROFS:
-                msg = "Read-only file system";
-                sym = @symbol(EROFS);
-                break;
+	    case EROFS:
+		msg = "Read-only file system";
+		sym = @symbol(EROFS);
+		break;
 #endif
 #ifdef EMLINK
-            case EMLINK:
-                msg = "Too many links";
-                sym = @symbol(EMLINK);
-                break;
+	    case EMLINK:
+		msg = "Too many links";
+		sym = @symbol(EMLINK);
+		break;
 #endif
 #ifdef EPIPE
-            case EPIPE:
-                msg = "Broken pipe";
-                sym = @symbol(EPIPE);
-                break;
+	    case EPIPE:
+		msg = "Broken pipe";
+		sym = @symbol(EPIPE);
+		break;
 #endif
 #ifdef EDOM
-            case EDOM:
-                msg = "Math argument out of domain";
-                sym = @symbol(EDOM);
-                break;
+	    case EDOM:
+		msg = "Math argument out of domain";
+		sym = @symbol(EDOM);
+		break;
 #endif
 #ifdef ERANGE
-            case ERANGE:
-                msg = "Math result not representable";
-                sym = @symbol(ERANGE);
-                break;
+	    case ERANGE:
+		msg = "Math result not representable";
+		sym = @symbol(ERANGE);
+		break;
 #endif
 #ifdef EDEADLK
 # if EDEADLK != EWOULDBLOCK
-            case EDEADLK:
-                msg = "Resource deadlock would occur";
-                sym = @symbol(EDEADLK);
-                break;
+	    case EDEADLK:
+		msg = "Resource deadlock would occur";
+		sym = @symbol(EDEADLK);
+		break;
 # endif
 #endif
 #ifdef ENAMETOOLONG
-            case ENAMETOOLONG:
-                msg = "File name too long";
-                sym = @symbol(ENAMETOOLONG);
-                break;
+	    case ENAMETOOLONG:
+		msg = "File name too long";
+		sym = @symbol(ENAMETOOLONG);
+		break;
 #endif
 #ifdef ENOLCK
-            case ENOLCK:
-                msg = "No record locks available";
-                sym = @symbol(ENOLCK);
-                break;
+	    case ENOLCK:
+		msg = "No record locks available";
+		sym = @symbol(ENOLCK);
+		break;
 #endif
 #ifdef ENOSYS
-            case ENOSYS:
-                msg = "Function not implemented";
-                sym = @symbol(ENOSYS);
-                break;
+	    case ENOSYS:
+		msg = "Function not implemented";
+		sym = @symbol(ENOSYS);
+		break;
 #endif
 #if defined(ENOTEMPTY) && (ENOTEMPTY != EEXIST)
-            case ENOTEMPTY:
-                msg = "Directory not empty";
-                sym = @symbol(ENOTEMPTY);
-                break;
+	    case ENOTEMPTY:
+		msg = "Directory not empty";
+		sym = @symbol(ENOTEMPTY);
+		break;
 #endif
 #ifdef EILSEQ
-            case EILSEQ:
-                msg = "Illegal byte sequence";
-                sym = @symbol(EILSEQ);
-                break;
-#endif
-            /*
-             * XPG3 errnos - defined on most systems
-             */
+	    case EILSEQ:
+		msg = "Illegal byte sequence";
+		sym = @symbol(EILSEQ);
+		break;
+#endif
+	    /*
+	     * XPG3 errnos - defined on most systems
+	     */
 #ifdef ENOTBLK
-            case ENOTBLK:
-                msg = "Block device required";
-                sym = @symbol(ENOTBLK);
-                break;
+	    case ENOTBLK:
+		msg = "Block device required";
+		sym = @symbol(ENOTBLK);
+		break;
 #endif
 #ifdef ETXTBSY
-            case ETXTBSY:
-                msg = "Text file busy";
-                sym = @symbol(ETXTBSY);
-                break;
-#endif
-            /*
-             * some others
-             */
+	    case ETXTBSY:
+		msg = "Text file busy";
+		sym = @symbol(ETXTBSY);
+		break;
+#endif
+	    /*
+	     * some others
+	     */
 #ifdef EWOULDBLOCK
-            case EWOULDBLOCK:
+	    case EWOULDBLOCK:
 # if defined(EAGAIN) && (EWOULDBLOCK == EAGAIN)
-                msg = "Operation would block / No more processes";
+		msg = "Operation would block / No more processes";
 # else
-                msg = "Operation would block";
-# endif
-                sym = @symbol(EWOULDBLOCK);
-                break;
+		msg = "Operation would block";
+# endif
+		sym = @symbol(EWOULDBLOCK);
+		break;
 #endif
 #ifdef ENOMSG
-            case ENOMSG:
-                msg = "No message of desired type";
-                sym = @symbol(ENOMSG);
-                break;
+	    case ENOMSG:
+		msg = "No message of desired type";
+		sym = @symbol(ENOMSG);
+		break;
 #endif
 #ifdef ELOOP
-            case ELOOP:
-                msg = "Too many levels of symbolic links";
-                sym = @symbol(ELOOP);
-                break;
-#endif
-
-            /*
-             * some stream errors
-             */
+	    case ELOOP:
+		msg = "Too many levels of symbolic links";
+		sym = @symbol(ELOOP);
+		break;
+#endif
+
+	    /*
+	     * some stream errors
+	     */
 #ifdef ETIME
-            case ETIME:
-                msg = "Timer expired";
-                sym = @symbol(ETIME);
-                break;
+	    case ETIME:
+		msg = "Timer expired";
+		sym = @symbol(ETIME);
+		break;
 #endif
 #ifdef ENOSR
-            case ENOSR:
-                msg = "Out of streams resources";
-                sym = @symbol(ENOSR);
-                break;
+	    case ENOSR:
+		msg = "Out of streams resources";
+		sym = @symbol(ENOSR);
+		break;
 #endif
 #ifdef ENOSTR
-            case ENOSTR:
-                msg = "Device not a stream";
-                sym = @symbol(ENOSTR);
-                break;
+	    case ENOSTR:
+		msg = "Device not a stream";
+		sym = @symbol(ENOSTR);
+		break;
 #endif
 #ifdef ECOMM
-            case ECOMM:
-                msg = "Communication error on send";
-                sym = @symbol(ECOMM);
-                break;
+	    case ECOMM:
+		msg = "Communication error on send";
+		sym = @symbol(ECOMM);
+		break;
 #endif
 #ifdef EPROTO
-            case EPROTO:
-                msg = "Protocol error";
-                sym = @symbol(EPROTO);
-                break;
-#endif
-            /*
-             * nfs errors
-             */
+	    case EPROTO:
+		msg = "Protocol error";
+		sym = @symbol(EPROTO);
+		break;
+#endif
+	    /*
+	     * nfs errors
+	     */
 #ifdef ESTALE
-            case ESTALE:
-                msg = "Stale NFS file handle";
-                sym = @symbol(ESTALE);
-                break;
+	    case ESTALE:
+		msg = "Stale NFS file handle";
+		sym = @symbol(ESTALE);
+		break;
 #endif
 #ifdef EREMOTE
-            case EREMOTE:
-                msg = "Too many levels of remote in path";
-                sym = @symbol(EREMOTE);
-                break;
-#endif
-            /*
-             * some networking errors
-             */
+	    case EREMOTE:
+		msg = "Too many levels of remote in path";
+		sym = @symbol(EREMOTE);
+		break;
+#endif
+	    /*
+	     * some networking errors
+	     */
 #ifdef EINPROGRESS
-            case EINPROGRESS:
-                msg = "Operation now in progress";
-                sym = @symbol(EINPROGRESS);
-                break;
+	    case EINPROGRESS:
+		msg = "Operation now in progress";
+		sym = @symbol(EINPROGRESS);
+		break;
 #endif
 #ifdef EALREADY
-            case EALREADY:
-                msg = "Operation already in progress";
-                sym = @symbol(EALREADY);
-                break;
+	    case EALREADY:
+		msg = "Operation already in progress";
+		sym = @symbol(EALREADY);
+		break;
 #endif
 #ifdef ENOTSOCK
-            case ENOTSOCK:
-                msg = "Socket operation on non-socket";
-                sym = @symbol(ENOTSOCK);
-                break;
+	    case ENOTSOCK:
+		msg = "Socket operation on non-socket";
+		sym = @symbol(ENOTSOCK);
+		break;
 #endif
 #ifdef EDESTADDRREQ
-            case EDESTADDRREQ:
-                msg = "Destination address required";
-                sym = @symbol(EDESTADDRREQ);
-                break;
+	    case EDESTADDRREQ:
+		msg = "Destination address required";
+		sym = @symbol(EDESTADDRREQ);
+		break;
 #endif
 #ifdef EMSGSIZE
-            case EMSGSIZE:
-                msg = "Message too long";
-                sym = @symbol(EMSGSIZE);
-                break;
+	    case EMSGSIZE:
+		msg = "Message too long";
+		sym = @symbol(EMSGSIZE);
+		break;
 #endif
 #ifdef EPROTOTYPE
-            case EPROTOTYPE:
-                msg = "Protocol wrong type for socket";
-                sym = @symbol(EPROTOTYPE);
-                break;
+	    case EPROTOTYPE:
+		msg = "Protocol wrong type for socket";
+		sym = @symbol(EPROTOTYPE);
+		break;
 #endif
 #ifdef ENOPROTOOPT
-            case ENOPROTOOPT:
-                msg = "Protocol not available";
-                sym = @symbol(ENOPROTOOPT);
-                break;
+	    case ENOPROTOOPT:
+		msg = "Protocol not available";
+		sym = @symbol(ENOPROTOOPT);
+		break;
 #endif
 #ifdef EPROTONOSUPPORT
-            case EPROTONOSUPPORT:
-                msg = "Protocol not supported";
-                sym = @symbol(EPROTONOSUPPORT);
-                break;
+	    case EPROTONOSUPPORT:
+		msg = "Protocol not supported";
+		sym = @symbol(EPROTONOSUPPORT);
+		break;
 #endif
 #ifdef ESOCKTNOSUPPORT
-            case ESOCKTNOSUPPORT:
-                msg = "Socket type not supported";
-                sym = @symbol(ESOCKTNOSUPPORT);
-                break;
+	    case ESOCKTNOSUPPORT:
+		msg = "Socket type not supported";
+		sym = @symbol(ESOCKTNOSUPPORT);
+		break;
 #endif
 #ifdef EOPNOTSUPP
-            case EOPNOTSUPP:
-                msg = "Operation not supported on socket";
-                sym = @symbol(EOPNOTSUPP);
-                break;
+	    case EOPNOTSUPP:
+		msg = "Operation not supported on socket";
+		sym = @symbol(EOPNOTSUPP);
+		break;
 #endif
 #ifdef EPFNOSUPPORT
-            case EPFNOSUPPORT:
-                msg = "Protocol family not supported";
-                sym = @symbol(EPFNOSUPPORT);
-                break;
+	    case EPFNOSUPPORT:
+		msg = "Protocol family not supported";
+		sym = @symbol(EPFNOSUPPORT);
+		break;
 #endif
 #ifdef EAFNOSUPPORT
-            case EAFNOSUPPORT:
-                msg = "Address family not supported by protocol family";
-                sym = @symbol(EAFNOSUPPORT);
-                break;
+	    case EAFNOSUPPORT:
+		msg = "Address family not supported by protocol family";
+		sym = @symbol(EAFNOSUPPORT);
+		break;
 #endif
 #ifdef EADDRINUSE
-            case EADDRINUSE:
-                msg = "Address already in use";
-                sym = @symbol(EADDRINUSE);
-                break;
+	    case EADDRINUSE:
+		msg = "Address already in use";
+		sym = @symbol(EADDRINUSE);
+		break;
 #endif
 #ifdef EADDRNOTAVAIL
-            case EADDRNOTAVAIL:
-                msg = "Can\'t assign requested address";
-                sym = @symbol(EADDRNOTAVAIL);
-                break;
+	    case EADDRNOTAVAIL:
+		msg = "Can\'t assign requested address";
+		sym = @symbol(EADDRNOTAVAIL);
+		break;
 #endif
 #ifdef ETIMEDOUT
-            case ETIMEDOUT:
-                msg = "Connection timed out";
-                sym = @symbol(ETIMEDOUT);
-                break;
+	    case ETIMEDOUT:
+		msg = "Connection timed out";
+		sym = @symbol(ETIMEDOUT);
+		break;
 #endif
 #ifdef ECONNREFUSED
-            case ECONNREFUSED:
-                msg = "Connection refused";
-                sym = @symbol(ECONNREFUSED);
-                break;
+	    case ECONNREFUSED:
+		msg = "Connection refused";
+		sym = @symbol(ECONNREFUSED);
+		break;
 #endif
 #ifdef ENETDOWN
-            case ENETDOWN:
-                msg = "Network is down";
-                sym = @symbol(ENETDOWN);
-                break;
+	    case ENETDOWN:
+		msg = "Network is down";
+		sym = @symbol(ENETDOWN);
+		break;
 #endif
 #ifdef ENETUNREACH
-            case ENETUNREACH:
-                msg = "Network is unreachable";
-                sym = @symbol(ENETUNREACH);
-                break;
+	    case ENETUNREACH:
+		msg = "Network is unreachable";
+		sym = @symbol(ENETUNREACH);
+		break;
 #endif
 #ifdef ENETRESET
-            case ENETRESET:
-                msg = "Network dropped conn due to reset";
-                sym = @symbol(ENETRESET);
-                break;
+	    case ENETRESET:
+		msg = "Network dropped conn due to reset";
+		sym = @symbol(ENETRESET);
+		break;
 #endif
 #ifdef ECONNABORTED
-            case ECONNABORTED:
-                msg = "Software caused connection abort";
-                sym = @symbol(ECONNABORTED);
-                break;
+	    case ECONNABORTED:
+		msg = "Software caused connection abort";
+		sym = @symbol(ECONNABORTED);
+		break;
 #endif
 #ifdef ECONNRESET
-            case ECONNRESET:
-                msg = "Connection reset by peer";
-                sym = @symbol(ECONNRESET);
-                break;
+	    case ECONNRESET:
+		msg = "Connection reset by peer";
+		sym = @symbol(ECONNRESET);
+		break;
 #endif
 #ifdef EISCONN
-            case EISCONN:
-                msg = "Socket is already connected";
-                sym = @symbol(EISCONN);
-                break;
+	    case EISCONN:
+		msg = "Socket is already connected";
+		sym = @symbol(EISCONN);
+		break;
 #endif
 #ifdef ENOTCONN
-            case ENOTCONN:
-                msg = "Socket is not connected";
-                sym = @symbol(ENOTCONN);
-                break;
+	    case ENOTCONN:
+		msg = "Socket is not connected";
+		sym = @symbol(ENOTCONN);
+		break;
 #endif
 #ifdef ESHUTDOWN
-            case ESHUTDOWN:
-                msg = "Can't send after socket shutdown";
-                sym = @symbol(ESHUTDOWN);
-                break;
+	    case ESHUTDOWN:
+		msg = "Can't send after socket shutdown";
+		sym = @symbol(ESHUTDOWN);
+		break;
 #endif
 #ifdef EHOSTDOWN
-            case EHOSTDOWN:
-                msg = "Host is down";
-                sym = @symbol(EHOSTDOWN);
-                break;
+	    case EHOSTDOWN:
+		msg = "Host is down";
+		sym = @symbol(EHOSTDOWN);
+		break;
 #endif
 #ifdef EHOSTUNREACH
-            case EHOSTUNREACH:
-                msg = "No route to host";
-                sym = @symbol(EHOSTUNREACH);
-                break;
-#endif
-
-            default:
-                {
-                    __BEGIN_PROTECT_REGISTERS__
-                    sprintf(buffer, "ErrorNr: %d", __intVal(eno));
-                    __END_PROTECT_REGISTERS__
-                }
-                msg = buffer;
-                sym = @symbol(ERROR_OTHER);
-                break;
-        }
-        text = __MKSTRING(msg);
+	    case EHOSTUNREACH:
+		msg = "No route to host";
+		sym = @symbol(EHOSTUNREACH);
+		break;
+#endif
+
+	    default:
+		{
+		    __BEGIN_PROTECT_REGISTERS__
+		    sprintf(buffer, "ErrorNr: %d", __intVal(eno));
+		    __END_PROTECT_REGISTERS__
+		}
+		msg = buffer;
+		sym = @symbol(ERROR_OTHER);
+		break;
+	}
+	text = __MKSTRING(msg);
     } else {
-        text = nil;
-        sym = nil;
+	text = nil;
+	sym = nil;
     }
 %}.
     ^ Array with:sym with:text
@@ -2748,31 +2752,31 @@
     "Internal lowLevel entry for combined fork & exec;
 
      If fork is false (chain a command):
-         execute the OS command specified by the argument, aCommandPath, with
-         arguments in argArray (no arguments, if nil).
-         If successful, this method does not return and smalltalk is gone.
-         If not successful, it does return.
-         Normal use is with forkForCommand.
+	 execute the OS command specified by the argument, aCommandPath, with
+	 arguments in argArray (no arguments, if nil).
+	 If successful, this method does not return and smalltalk is gone.
+	 If not successful, it does return.
+	 Normal use is with forkForCommand.
 
      If fork is true (subprocess command execution):
-        fork a child to do the above.
-        The process id of the child process is returned; nil if the fork failed.
+	fork a child to do the above.
+	The process id of the child process is returned; nil if the fork failed.
 
      fdArray contains the filedescriptors, to be used for the child (if fork is true).
-        fdArray[1] = 15 -> use fd 15 as stdin.
-        If an element of the array is set to nil, the corresponding filedescriptor
-        will be closed for the child.
-        fdArray[0] == StdIn for child
-        fdArray[1] == StdOut for child
-        fdArray[2] == StdErr for child
-        on VMS, these must be channels as returned by createMailBox.
+	fdArray[1] = 15 -> use fd 15 as stdin.
+	If an element of the array is set to nil, the corresponding filedescriptor
+	will be closed for the child.
+	fdArray[0] == StdIn for child
+	fdArray[1] == StdOut for child
+	fdArray[2] == StdErr for child
+	on VMS, these must be channels as returned by createMailBox.
 
      closeFdArray contains descriptors that will be closed in the subprocess.
-        closeDescriptors are ignored in the WIN32 & VMS versions.
+	closeDescriptors are ignored in the WIN32 & VMS versions.
 
      If newPgrp is true, the subprocess will be established in a new process group.
-        The processgroup will be equal to id.
-        newPgrp is not used on WIN32 and VMS systems.
+	The processgroup will be equal to id.
+	newPgrp is not used on WIN32 and VMS systems.
 
      env specifies environment variables which are passed differently from
      the current environment. If non-nil, it must be a dictionary providing
@@ -2780,30 +2784,30 @@
      To pass a variable as empty (i.e. unset), pass a nil value.
 
      Notice: this used to be two separate ST-methods; however, in order to use
-            vfork on some machines, it had to be merged into one, to avoid write
-            accesses to ST/X memory from the vforked-child.
-            The code below only does read accesses."
+	    vfork on some machines, it had to be merged into one, to avoid write
+	    accesses to ST/X memory from the vforked-child.
+	    The code below only does read accesses."
 
     |envPairs argArray fdArray closeFdArray dirName|
 
     env notNil ifTrue:[
-        envPairs := OrderedCollection new.
-        env keysAndValuesDo:[:key :val |
-            envPairs add:key; add:val
-        ].
-        envPairs := envPairs asArray.
+	envPairs := OrderedCollection new.
+	env keysAndValuesDo:[:key :val |
+	    envPairs add:key; add:val
+	].
+	envPairs := envPairs asArray.
     ].
     argColl notNil ifTrue:[
-        argArray := argColl asArray
+	argArray := argColl asArray
     ].
     fdColl notNil ifTrue:[
-        fdArray := fdColl asArray
+	fdArray := fdColl asArray
     ].
     closeFdColl notNil ifTrue:[
-        closeFdArray := closeFdColl asArray
+	closeFdArray := closeFdColl asArray
     ].
     aDirectory notNil ifTrue:[
-        dirName := aDirectory asFilename name
+	dirName := aDirectory asFilename name
     ].
 
 %{  /* STACK: 16000 */
@@ -2817,241 +2821,241 @@
 #endif
 
     if (__isString(aCommandPath) && 
-        ((argArray == nil) || __isArrayLike(argArray)) &&
-        ((fdArray == nil) || __isArrayLike(fdArray)) &&
-        ((closeFdArray == nil) || __isArrayLike(closeFdArray))
+	((argArray == nil) || __isArrayLike(argArray)) &&
+	((fdArray == nil) || __isArrayLike(fdArray)) &&
+	((closeFdArray == nil) || __isArrayLike(closeFdArray))
     ) {
-        nargs = argArray == nil ? 0 : __arraySize(argArray);
-        argv = (char **) malloc(sizeof(char *) * (nargs + 1));
-        if (argv) {
-            int nOldEnv, nNewEnv;
-
-            for (i=0; i < nargs; i++) {
-                arg = __ArrayInstPtr(argArray)->a_element[i];
-                if (__isString(arg)) {
-                    argv[i] = (char *) __stringVal(arg);
-                } else {
-                    argv[i] = "";
-                }
-            }
-            argv[i] = NULL;
-
-            /*
-             * number of new items in environment ..       
-             */
-            nNewEnv = 0;
-            if ((envPairs != nil) && __isArrayLike(envPairs)) {
-                nNewEnv = __arraySize(envPairs) / 2;
-            }
-
-            if (nNewEnv == 0) {
-                _nEnv = environ;
-            } else {
-                _env = environ;
-                /* 
-                 * get size of environment
-                 */
-                nOldEnv = 0;
-                if (_env) {
-                    while (*_env) {
-                        nOldEnv++;
-                        _env++;
-                    }
-                }
-
-                /*
-                 * generate a new environment
-                 * I have not found a spec which defines if
-                 * items at the end overwrite previous definitions,
-                 * or if the first encountered definition is valid.
-                 * To be prepared for any case, simply add the new definitions
-                 * at both ends - that should do it in any case.
-                 * Someone with more know-how may want to fix this.
-                 */
-                _nEnv = (char **)malloc(sizeof(char *) * (nNewEnv + nOldEnv + nNewEnv + 1));
-                if (_nEnv) {
-                    char **eO, **eN;
-
-                    eN = _nEnv;
-                    if (nNewEnv) {
-                        /*
-                         * add new items at the front ...
-                         */
-                        int i;
-
-                        for (i=0; (i+1)<__arraySize(envPairs); i+=2) {
-                            OBJ t;
-                            char *var, *val, *e;
-
-                            t = __ArrayInstPtr(envPairs)->a_element[i];
-                            if (__isString(t) || __isSymbol(t)) {
-                                var = (char *)__stringVal(t);
-                                t = __ArrayInstPtr(envPairs)->a_element[i+1];
-                                if (__isString(t) || __isSymbol(t)) {
-                                    val = (char *)__stringVal(t);
-                                } else {
-                                    val = NULL;
-                                }
-                                if (val != NULL) {                
-                                    e = (char *)malloc(strlen(var) + 1 + strlen(val) + 1);
-                                    strcpy(e, var);               
-                                    strcat(e, "=");               
-                                    strcat(e, val);               
-                                } else {                          
-                                    e = (char *)malloc(strlen(var) + 1 + 1);
-                                    strcpy(e, var);
-                                    strcat(e, "=");
-                                }   
-                                *eN++ = e;
-                            }
-                        }
-                    }
-
-                    if (nOldEnv) {
-                        /*
-                         * append old environment 
-                         */
-                        eO = environ;
-                        while (*eN = *eO++) {
-                            eN++;
-                        }
-                    }
-
-                    if (nNewEnv) {
-                        /*
-                         * new items again at the end
-                         */
-                        for (eO = _nEnv, i=0; i<nNewEnv; i++) {
-                            *eN++ = *eO++;
-                        }
-
-                        *eN = NULL;
-                    }
-                }
-            }
-
-            if (doFork == true) {
-                /*
-                 * fork a subprocess.
-                 */
-                int nfd, nclose;
-
-                nfd = fdArray == nil ? 0 : __arraySize(fdArray);
-                nclose = closeFdArray == nil ? 0 : __arraySize(closeFdArray);
+	nargs = argArray == nil ? 0 : __arraySize(argArray);
+	argv = (char **) malloc(sizeof(char *) * (nargs + 1));
+	if (argv) {
+	    int nOldEnv, nNewEnv;
+
+	    for (i=0; i < nargs; i++) {
+		arg = __ArrayInstPtr(argArray)->a_element[i];
+		if (__isString(arg)) {
+		    argv[i] = (char *) __stringVal(arg);
+		} else {
+		    argv[i] = "";
+		}
+	    }
+	    argv[i] = NULL;
+
+	    /*
+	     * number of new items in environment ..       
+	     */
+	    nNewEnv = 0;
+	    if ((envPairs != nil) && __isArrayLike(envPairs)) {
+		nNewEnv = __arraySize(envPairs) / 2;
+	    }
+
+	    if (nNewEnv == 0) {
+		_nEnv = environ;
+	    } else {
+		_env = environ;
+		/* 
+		 * get size of environment
+		 */
+		nOldEnv = 0;
+		if (_env) {
+		    while (*_env) {
+			nOldEnv++;
+			_env++;
+		    }
+		}
+
+		/*
+		 * generate a new environment
+		 * I have not found a spec which defines if
+		 * items at the end overwrite previous definitions,
+		 * or if the first encountered definition is valid.
+		 * To be prepared for any case, simply add the new definitions
+		 * at both ends - that should do it in any case.
+		 * Someone with more know-how may want to fix this.
+		 */
+		_nEnv = (char **)malloc(sizeof(char *) * (nNewEnv + nOldEnv + nNewEnv + 1));
+		if (_nEnv) {
+		    char **eO, **eN;
+
+		    eN = _nEnv;
+		    if (nNewEnv) {
+			/*
+			 * add new items at the front ...
+			 */
+			int i;
+
+			for (i=0; (i+1)<__arraySize(envPairs); i+=2) {
+			    OBJ t;
+			    char *var, *val, *e;
+
+			    t = __ArrayInstPtr(envPairs)->a_element[i];
+			    if (__isString(t) || __isSymbol(t)) {
+				var = (char *)__stringVal(t);
+				t = __ArrayInstPtr(envPairs)->a_element[i+1];
+				if (__isString(t) || __isSymbol(t)) {
+				    val = (char *)__stringVal(t);
+				} else {
+				    val = NULL;
+				}
+				if (val != NULL) {                
+				    e = (char *)malloc(strlen(var) + 1 + strlen(val) + 1);
+				    strcpy(e, var);               
+				    strcat(e, "=");               
+				    strcat(e, val);               
+				} else {                          
+				    e = (char *)malloc(strlen(var) + 1 + 1);
+				    strcpy(e, var);
+				    strcat(e, "=");
+				}   
+				*eN++ = e;
+			    }
+			}
+		    }
+
+		    if (nOldEnv) {
+			/*
+			 * append old environment 
+			 */
+			eO = environ;
+			while (*eN = *eO++) {
+			    eN++;
+			}
+		    }
+
+		    if (nNewEnv) {
+			/*
+			 * new items again at the end
+			 */
+			for (eO = _nEnv, i=0; i<nNewEnv; i++) {
+			    *eN++ = *eO++;
+			}
+
+			*eN = NULL;
+		    }
+		}
+	    }
+
+	    if (doFork == true) {
+		/*
+		 * fork a subprocess.
+		 */
+		int nfd, nclose;
+
+		nfd = fdArray == nil ? 0 : __arraySize(fdArray);
+		nclose = closeFdArray == nil ? 0 : __arraySize(closeFdArray);
 #ifdef HAS_VFORK
-                id = vfork();
+		id = vfork();
 #else
-                id = fork();
-#endif
-                if (id == 0) {
-                    /*
-                    ** In child.
-                    ** first: dup filedescriptors
-                    */
-                    for (i = 0; i < nfd; i++) {
-                        OBJ fd;
-                        int rslt;
-
-                        fd = __ArrayInstPtr(fdArray)->a_element[i];
-                        if (__isSmallInteger(fd) && (__intVal(fd) != i)) {
-                            do {
-                                rslt = dup2(__intVal(fd), i);
-                            } while ((rslt < 0) && (errno == EINTR));
-                        }
-                    }
-                    /*
-                    ** second: close unused filedescriptors
-                    */
-                    for (i = 0; i < nfd; i++) {
-                        if (__ArrayInstPtr(fdArray)->a_element[i] == nil) {
-                            close(i);
-                        }
-                    }
-                    /*
-                    ** third: close filedescriptors
-                    */
-                    for (i = 0; i < nclose; i++) {
-                        OBJ fd;
-
-                        fd = __ArrayInstPtr(closeFdArray)->a_element[i];
-                        if (__isSmallInteger(fd)) {
-                            close(__intVal(fd));
-                        }
-                    }
-
-                    if (newPgrp == true) {
+		id = fork();
+#endif
+		if (id == 0) {
+		    /*
+		    ** In child.
+		    ** first: dup filedescriptors
+		    */
+		    for (i = 0; i < nfd; i++) {
+			OBJ fd;
+			int rslt;
+
+			fd = __ArrayInstPtr(fdArray)->a_element[i];
+			if (__isSmallInteger(fd) && (__intVal(fd) != i)) {
+			    do {
+				rslt = dup2(__intVal(fd), i);
+			    } while ((rslt < 0) && (errno == EINTR));
+			}
+		    }
+		    /*
+		    ** second: close unused filedescriptors
+		    */
+		    for (i = 0; i < nfd; i++) {
+			if (__ArrayInstPtr(fdArray)->a_element[i] == nil) {
+			    close(i);
+			}
+		    }
+		    /*
+		    ** third: close filedescriptors
+		    */
+		    for (i = 0; i < nclose; i++) {
+			OBJ fd;
+
+			fd = __ArrayInstPtr(closeFdArray)->a_element[i];
+			if (__isSmallInteger(fd)) {
+			    close(__intVal(fd));
+			}
+		    }
+
+		    if (newPgrp == true) {
 #ifndef NEXT
-                        setsid();
+			setsid();
 #endif
 #if defined(TIOCSCTTY)
-                        ioctl(0, TIOCSCTTY, 0) ;
+			ioctl(0, TIOCSCTTY, 0) ;
 #endif
 
 #if defined(TIOCSPGRP)
-                        {
-                            int pgrp = getpid();
-
-                            ioctl(0, TIOCSPGRP, (char *)&pgrp);
-                        }
+			{
+			    int pgrp = getpid();
+
+			    ioctl(0, TIOCSPGRP, (char *)&pgrp);
+			}
 #endif
 #if defined(_POSIX_JOB_CONTROL)
-                        (void) setpgid(0, 0);
+			(void) setpgid(0, 0);
 #else
 # if defined(BSD) || defined(LINUX)
-                        (void) setpgrp(0);
-# endif
-#endif
-                    }
-
-                    if (dirName != nil) {
-                        chdir(__stringVal(dirName));
-                    }
-
-                    execve(__stringVal(aCommandPath), argv, _nEnv);
-                    /* should not be reached */
-                    _exit(127);                 /* POSIX 2 compatible exit value */
-                }
-
-            } else {
-                if (dirName != nil) {
-                    chdir(__stringVal(dirName));
-                }
-                /*
-                 * no subprocess (i.e. transfer to another program)
-                 */
-                execve(__stringVal(aCommandPath), argv, _nEnv);
-                /* 
-                 * should not be reached
-                 * (well, it is, if you pass a wrong command-path)
-                 */
-                id = -1;
-            }
-
-            if (nNewEnv && (_nEnv != NULL)) {
-                /*
-                 * free new environment stuff
-                 */
-                for (i=0; i<nNewEnv;i++) {
-                    char *e = _nEnv[i];
-
-                    if (e) {
-                        free(e);
-                    }
-                }
-                free(_nEnv);
-            }
-
-            free(argv);
-
-            /*
-             * In parent: succes or failure
-             */
-            if (id == -1) {
-                RETURN (nil);
-            } else {
-                RETURN (__MKSMALLINT(id));
-            }
-        }
+			(void) setpgrp(0);
+# endif
+#endif
+		    }
+
+		    if (dirName != nil) {
+			chdir(__stringVal(dirName));
+		    }
+
+		    execve(__stringVal(aCommandPath), argv, _nEnv);
+		    /* should not be reached */
+		    _exit(127);                 /* POSIX 2 compatible exit value */
+		}
+
+	    } else {
+		if (dirName != nil) {
+		    chdir(__stringVal(dirName));
+		}
+		/*
+		 * no subprocess (i.e. transfer to another program)
+		 */
+		execve(__stringVal(aCommandPath), argv, _nEnv);
+		/* 
+		 * should not be reached
+		 * (well, it is, if you pass a wrong command-path)
+		 */
+		id = -1;
+	    }
+
+	    if (nNewEnv && (_nEnv != NULL)) {
+		/*
+		 * free new environment stuff
+		 */
+		for (i=0; i<nNewEnv;i++) {
+		    char *e = _nEnv[i];
+
+		    if (e) {
+			free(e);
+		    }
+		}
+		free(_nEnv);
+	    }
+
+	    free(argv);
+
+	    /*
+	     * In parent: succes or failure
+	     */
+	    if (id == -1) {
+		RETURN (nil);
+	    } else {
+		RETURN (__MKSMALLINT(id));
+	    }
+	}
     }
 %}.
     "
@@ -3067,9 +3071,9 @@
 
      id := OperatingSystem fork.
      id == 0 ifTrue:[
-        'I am the child'.
-        OperatingSystem exec:'/bin/ls' withArguments:#('ls' '/tmp').
-        'not reached'.
+	'I am the child'.
+	OperatingSystem exec:'/bin/ls' withArguments:#('ls' '/tmp').
+	'not reached'.
      ]
     "
     "
@@ -3077,11 +3081,11 @@
 
      id := OperatingSystem fork.
      id == 0 ifTrue:[
-        'I am the child'.
-        OperatingSystem
-           exec:'/bin/sh'
-           withArguments:#('sh' '-c' 'sleep 2;echo 1;sleep 2;echo 2').
-        'not reached'.
+	'I am the child'.
+	OperatingSystem
+	   exec:'/bin/sh'
+	   withArguments:#('sh' '-c' 'sleep 2;echo 1;sleep 2;echo 2').
+	'not reached'.
      ].
      id printNL.
      (Delay forSeconds:3.5) wait.
@@ -3098,12 +3102,12 @@
      hardwiring any 'cd ..' command strings into your applictions."
 
      ^ self
-        executeCommand:aCommandString 
-        inputFrom:nil 
-        outputTo:nil 
-        errorTo:nil 
-        inDirectory:aDirectory asFilename name
-        onError:[:status| false].
+	executeCommand:aCommandString 
+	inputFrom:nil 
+	outputTo:nil 
+	errorTo:nil 
+	inDirectory:aDirectory asFilename name
+	onError:[:status| false].
 
 "/    | cmd |
 "/
@@ -3144,8 +3148,8 @@
 
      id := OperatingSystem fork.
      id == 0 ifTrue:[
-        'I am the child process' printCR.
-        OperatingSystem exit
+	'I am the child process' printCR.
+	OperatingSystem exit
      ]
     "
 !
@@ -3158,38 +3162,38 @@
     int status;
 
     if (__isSmallInteger(aProcessId)) {
-        pid_t pid = (pid_t)(__intVal(aProcessId));
-        {
+	pid_t pid = (pid_t)(__intVal(aProcessId));
+	{
 
 # ifdef  NO_WAITPID
-            pid_t child;
-
-            do {
-                __BEGIN_INTERRUPTABLE__
-                child = __wait (&status);
-                __END_INTERRUPTABLE__
-                if (child < 0 && errno != EINTR) {
-                    fprintf(stderr, "OS: child-wait errno=%d\n", errno);
-                    status = -1;
-                    break;
-                }
-            } while (child != pid);
+	    pid_t child;
+
+	    do {
+		__BEGIN_INTERRUPTABLE__
+		child = __wait (&status);
+		__END_INTERRUPTABLE__
+		if (child < 0 && errno != EINTR) {
+		    fprintf(stderr, "OS: child-wait errno=%d\n", errno);
+		    status = -1;
+		    break;
+		}
+	    } while (child != pid);
 # else
-            pid_t child;
-
-            /* claus: the original did not care for EINTR here ... */
-            do {
-                __BEGIN_INTERRUPTABLE__
-                child = __waitpid (pid, &status, 0);
-                __END_INTERRUPTABLE__
-            } while ((child != pid) && (errno == EINTR));
-            if (child != pid) {
-                fprintf(stderr, "OS: child-waitpid errno=%d\n", errno);
-                status = -1;
-            }
+	    pid_t child;
+
+	    /* claus: the original did not care for EINTR here ... */
+	    do {
+		__BEGIN_INTERRUPTABLE__
+		child = __waitpid (pid, &status, 0);
+		__END_INTERRUPTABLE__
+	    } while ((child != pid) && (errno == EINTR));
+	    if (child != pid) {
+		fprintf(stderr, "OS: child-waitpid errno=%d\n", errno);
+		status = -1;
+	    }
 # endif /* NO_WAITPID */
-        }
-        RETURN ( __MKSMALLINT(status));
+	}
+	RETURN ( __MKSMALLINT(status));
     }
 %}.
     self primitiveFailed
@@ -3204,28 +3208,28 @@
     |path f fExt|
 
     aCommand asFilename isAbsolute ifTrue:[
-        ^ aCommand
+	^ aCommand
     ].
 
     path := self getEnvironment:'PATH'.
     path notNil ifTrue:[
-        (path asCollectionOfSubstringsSeparatedBy:(self pathSeparator)) do:[:path |
-            path isEmpty ifTrue:[
-                f := aCommand asFilename
-            ] ifFalse:[
-                f := path asFilename construct:aCommand.
-            ].
-            self executableFileExtensions do:[:ext |
-                ext notEmpty ifTrue:[
-                    fExt := (f pathName , ext) asFilename.
-                ] ifFalse:[
-                    fExt := f.
-                ].
-                fExt isExecutable ifTrue:[
-                    ^ fExt pathName
-                ].
-            ].
-        ].
+	(path asCollectionOfSubstringsSeparatedBy:(self pathSeparator)) do:[:path |
+	    path isEmpty ifTrue:[
+		f := aCommand asFilename
+	    ] ifFalse:[
+		f := path asFilename construct:aCommand.
+	    ].
+	    self executableFileExtensions do:[:ext |
+		ext notEmpty ifTrue:[
+		    fExt := (f pathName , ext) asFilename.
+		] ifFalse:[
+		    fExt := f.
+		].
+		fExt isExecutable ifTrue:[
+		    ^ fExt pathName
+		].
+	    ].
+	].
     ].
     ^ nil
 
@@ -3260,31 +3264,31 @@
     aCommandString isNil ifTrue:[^ nil].
 
     (in := anExternalInStream) isNil ifTrue:[
-        in := '/dev/null' asFilename readStream
+	in := '/dev/null' asFilename readStream
     ].
     (out := anExternalOutStream) isNil ifTrue:[
-        out := '/dev/null' asFilename writeStream
+	out := '/dev/null' asFilename writeStream
     ].
     (err := anExternalErrStream) isNil ifTrue:[
-        anExternalOutStream isNil ifTrue:[
-            err := out
-        ] ifFalse:[
-            err := '/dev/null' asFilename writeStream
-        ]
+	anExternalOutStream isNil ifTrue:[
+	    err := out
+	] ifFalse:[
+	    err := '/dev/null' asFilename writeStream
+	]
     ].
 
     shellAndArgs := self commandAndArgsForOSCommand:aCommandString.
 
     rslt := self
-        exec:(shellAndArgs at:1)
-        withArguments:(shellAndArgs at:2)
-        fileDescriptors:(Array with:in fileDescriptor
-                               with:out fileDescriptor
-                               with:err fileDescriptor)
-        closeDescriptors:nil
-        fork:true
-        newPgrp:true "/ false
-        inDirectory:dir.
+	exec:(shellAndArgs at:1)
+	withArguments:(shellAndArgs at:2)
+	fileDescriptors:(Array with:in fileDescriptor
+			       with:out fileDescriptor
+			       with:err fileDescriptor)
+	closeDescriptors:nil
+	fork:true
+	newPgrp:true "/ false
+	inDirectory:dir.
 
     ^ rslt
 
@@ -3307,7 +3311,7 @@
      The following will no longer work. monitorPid has disappeared 
 
      pid notNil ifTrue:[
-         Processor monitorPid:pid action:[:OSstatus | sema signal ].
+	 Processor monitorPid:pid action:[:OSstatus | sema signal ].
      ].
      in close.
      out close.
@@ -3332,8 +3336,8 @@
 	if (@global(ExternalStream:FileOpenTrace) == true) {
 	    fprintf(stderr, "close [UnixOp] fd=%d\n", __intVal(anInteger));
 	}
-        close(__intVal(anInteger));
-        RETURN(self);
+	close(__intVal(anInteger));
+	RETURN(self);
      }
 %}.
      ^ self primitiveFailed.
@@ -3351,14 +3355,14 @@
 
 %{
     if (__isString(aPathName)) {
-        int ret;
-
-        ret = mkdir(__stringVal(aPathName), 0755);
-        if (ret < 0) {
-            @global(LastErrorNumber) = __MKSMALLINT(errno);
-            RETURN (false);
-        }
-        RETURN (true);
+	int ret;
+
+	ret = mkdir(__stringVal(aPathName), 0755);
+	if (ret < 0) {
+	    @global(LastErrorNumber) = __MKSMALLINT(errno);
+	    RETURN (false);
+	}
+	RETURN (true);
       }
 %}.
 
@@ -3385,16 +3389,16 @@
     int ret;
 
     if (__isString(oldPath) && __isString(newPath)) {
-        __BEGIN_INTERRUPTABLE__
-        do {
-            ret = link((char *) __stringVal(oldPath), (char *) __stringVal(newPath));
-        } while (ret < 0 && errno == EINTR);
-        __END_INTERRUPTABLE__
-        if (ret < 0) {
-            @global(LastErrorNumber) = __MKSMALLINT(errno);
-            RETURN ( false );
-        }
-        RETURN (true);
+	__BEGIN_INTERRUPTABLE__
+	do {
+	    ret = link((char *) __stringVal(oldPath), (char *) __stringVal(newPath));
+	} while (ret < 0 && errno == EINTR);
+	__END_INTERRUPTABLE__
+	if (ret < 0) {
+	    @global(LastErrorNumber) = __MKSMALLINT(errno);
+	    RETURN ( false );
+	}
+	RETURN (true);
     }
 %}.
     "/
@@ -3417,24 +3421,24 @@
     int ret;
 
     if (__isString(oldPath) && __isString(newPath)) {
-        __BEGIN_INTERRUPTABLE__
-        do {
-            ret = symlink((char *) __stringVal(oldPath), (char *) __stringVal(newPath));
-        } while (ret < 0 && errno == EINTR);
-        __END_INTERRUPTABLE__
-        if (ret < 0) {
-            @global(LastErrorNumber) = __MKSMALLINT(errno);
-            RETURN ( false );
-        }
-        RETURN (true);
+	__BEGIN_INTERRUPTABLE__
+	do {
+	    ret = symlink((char *) __stringVal(oldPath), (char *) __stringVal(newPath));
+	} while (ret < 0 && errno == EINTR);
+	__END_INTERRUPTABLE__
+	if (ret < 0) {
+	    @global(LastErrorNumber) = __MKSMALLINT(errno);
+	    RETURN ( false );
+	}
+	RETURN (true);
     }
 #endif
 %}.
     (oldPath isString not or:[newPath isString not]) ifTrue:[
-        "/
-        "/ bad argument(s) given
-        "/
-        ^ self primitiveFailed 
+	"/
+	"/ bad argument(s) given
+	"/
+	^ self primitiveFailed 
     ].
 
     "/
@@ -3480,16 +3484,16 @@
     int ret;
 
     if (__isString(fullPathName)) {
-        __BEGIN_INTERRUPTABLE__
-        do {
-            ret = rmdir((char *) __stringVal(fullPathName));
-        } while (ret < 0 && errno == EINTR);
-        __END_INTERRUPTABLE__
-        if (ret < 0) {
-            @global(LastErrorNumber) = __MKSMALLINT(errno);
-            RETURN ( false );
-        }
-        RETURN (true);
+	__BEGIN_INTERRUPTABLE__
+	do {
+	    ret = rmdir((char *) __stringVal(fullPathName));
+	} while (ret < 0 && errno == EINTR);
+	__END_INTERRUPTABLE__
+	if (ret < 0) {
+	    @global(LastErrorNumber) = __MKSMALLINT(errno);
+	    RETURN ( false );
+	}
+	RETURN (true);
     }
 %}.
     "/
@@ -3513,16 +3517,16 @@
     int ret;
 
     if (__isString(fullPathName)) {
-        __BEGIN_INTERRUPTABLE__
-        do {
-            ret = unlink((char *) __stringVal(fullPathName));
-        } while (ret < 0 && errno == EINTR);
-        __END_INTERRUPTABLE__
-        if (ret < 0) {
-            @global(LastErrorNumber) = __MKSMALLINT(errno);
-            RETURN ( false );
-        }
-        RETURN (true);
+	__BEGIN_INTERRUPTABLE__
+	do {
+	    ret = unlink((char *) __stringVal(fullPathName));
+	} while (ret < 0 && errno == EINTR);
+	__END_INTERRUPTABLE__
+	if (ret < 0) {
+	    @global(LastErrorNumber) = __MKSMALLINT(errno);
+	    RETURN ( false );
+	}
+	RETURN (true);
     }
 %}.
     ^ self primitiveFailed
@@ -3541,27 +3545,27 @@
 
     if (__isString(oldPath) && __isString(newPath)) {
 #if defined(HAS_RENAME)
-        __BEGIN_INTERRUPTABLE__
-        do {
-            ret = rename((char *) __stringVal(oldPath), (char *) __stringVal(newPath));
-        } while (ret < 0 && errno == EINTR);
-        __END_INTERRUPTABLE__
+	__BEGIN_INTERRUPTABLE__
+	do {
+	    ret = rename((char *) __stringVal(oldPath), (char *) __stringVal(newPath));
+	} while (ret < 0 && errno == EINTR);
+	__END_INTERRUPTABLE__
 #else
-        ret = link((char *) __stringVal(oldPath), (char *) __stringVal(newPath));
-        if (ret >= 0) {
-            ret = unlink((char *) __stringVal(oldPath));
-            if (ret < 0) {
-                eno = errno;
-                unlink((char *) __stringVal(newPath));
-                errno = eno;
-            }
-        }
-#endif
-        if (ret < 0) {
-            @global(LastErrorNumber) = __MKSMALLINT(errno);
-            RETURN ( false );
-        }
-        RETURN (true);
+	ret = link((char *) __stringVal(oldPath), (char *) __stringVal(newPath));
+	if (ret >= 0) {
+	    ret = unlink((char *) __stringVal(oldPath));
+	    if (ret < 0) {
+		eno = errno;
+		unlink((char *) __stringVal(newPath));
+		errno = eno;
+	    }
+	}
+#endif
+	if (ret < 0) {
+	    @global(LastErrorNumber) = __MKSMALLINT(errno);
+	    RETURN ( false );
+	}
+	RETURN (true);
     }
 %}.
     ^ self primitiveFailed
@@ -3583,16 +3587,16 @@
 
     if (__isString(aPathName)
      && __isSmallInteger(newSize)) {
-        __BEGIN_INTERRUPTABLE__
-        do {
-            ret = truncate((char *) __stringVal(aPathName), __intVal(newSize));
-        } while (ret < 0 && errno == EINTR);
-        __END_INTERRUPTABLE__
-        if (ret < 0) {
-            @global(LastErrorNumber) = __MKSMALLINT(errno);
-            RETURN ( false );
-        }
-        RETURN (true);
+	__BEGIN_INTERRUPTABLE__
+	do {
+	    ret = truncate((char *) __stringVal(aPathName), __intVal(newSize));
+	} while (ret < 0 && errno == EINTR);
+	__END_INTERRUPTABLE__
+	if (ret < 0) {
+	    @global(LastErrorNumber) = __MKSMALLINT(errno);
+	    RETURN ( false );
+	}
+	RETURN (true);
     }
 #else
 # ifdef HAS_FTRUNCATE
@@ -3601,21 +3605,21 @@
 
     if (__isString(aPathName)
      && __isSmallInteger(newSize)) {
-        do {
-            fd = open((char *) __stringVal(aPathName), 2);
-        } while (fd < 0 && errno == EINTR);
-        if (fd < 0) {
-            @global(LastErrorNumber) = __MKSMALLINT(errno);
-            RETURN ( false );
-        }
+	do {
+	    fd = open((char *) __stringVal(aPathName), 2);
+	} while (fd < 0 && errno == EINTR);
+	if (fd < 0) {
+	    @global(LastErrorNumber) = __MKSMALLINT(errno);
+	    RETURN ( false );
+	}
         
-        ret = ftruncate(fd, __intVal(newSize));
-        close(fd);
-        if (ret < 0) {
-            @global(LastErrorNumber) = __MKSMALLINT(errno);
-            RETURN ( false );
-        } 
-        RETURN (true);
+	ret = ftruncate(fd, __intVal(newSize));
+	close(fd);
+	if (ret < 0) {
+	    @global(LastErrorNumber) = __MKSMALLINT(errno);
+	    RETURN ( false );
+	} 
+	RETURN (true);
     }
 # endif /* using FTRUNCATE */
 #endif
@@ -3648,31 +3652,31 @@
 #   endif
 
     if (aSymbol == @symbol(readUser)) {
-        RETURN ( __MKSMALLINT(S_IRUSR) );
+	RETURN ( __MKSMALLINT(S_IRUSR) );
     }
     if (aSymbol == @symbol(writeUser)) {
-        RETURN ( __MKSMALLINT(S_IWUSR) );
+	RETURN ( __MKSMALLINT(S_IWUSR) );
     }
     if (aSymbol == @symbol(executeUser)) {
-        RETURN ( __MKSMALLINT(S_IXUSR) );
+	RETURN ( __MKSMALLINT(S_IXUSR) );
     }
     if (aSymbol == @symbol(readGroup)) {
-        RETURN ( __MKSMALLINT(S_IRGRP) );
+	RETURN ( __MKSMALLINT(S_IRGRP) );
     }
     if (aSymbol == @symbol(writeGroup)) {
-        RETURN ( __MKSMALLINT(S_IWGRP) );
+	RETURN ( __MKSMALLINT(S_IWGRP) );
     }
     if (aSymbol == @symbol(executeGroup)) {
-        RETURN ( __MKSMALLINT(S_IXGRP) );
+	RETURN ( __MKSMALLINT(S_IXGRP) );
     }
     if (aSymbol == @symbol(readOthers)) {
-        RETURN ( __MKSMALLINT(S_IROTH) );
+	RETURN ( __MKSMALLINT(S_IROTH) );
     }
     if (aSymbol == @symbol(writeOthers)) {
-        RETURN ( __MKSMALLINT(S_IWOTH) );
+	RETURN ( __MKSMALLINT(S_IWOTH) );
     }
     if (aSymbol == @symbol(executeOthers)) {
-        RETURN ( __MKSMALLINT(S_IXOTH) );
+	RETURN ( __MKSMALLINT(S_IXOTH) );
     }
 %}.
     ^ self primitiveFailed
@@ -3690,7 +3694,7 @@
 
     "
      this could have been implemented as:
-        (self infoOf:aPathName) at:#mode
+	(self infoOf:aPathName) at:#mode
      but for huge directory searches the code below is faster
     "
 
@@ -3700,19 +3704,19 @@
 
     if (__isString(aPathName)) {
 # ifdef TRACE_STAT_CALLS
-        printf("stat on '%s' for accessMode\n", __stringVal(aPathName));
-# endif
-        __BEGIN_INTERRUPTABLE__
-        do {
-            ret = stat((char *) __stringVal(aPathName), &buf);
-        } while ((ret < 0) && (errno == EINTR));
-        __END_INTERRUPTABLE__
-
-        if (ret < 0) {
-            @global(LastErrorNumber) = __MKSMALLINT(errno);
-            RETURN ( nil );
-        }
-        RETURN ( __MKSMALLINT(buf.st_mode & 0777) );
+	printf("stat on '%s' for accessMode\n", __stringVal(aPathName));
+# endif
+	__BEGIN_INTERRUPTABLE__
+	do {
+	    ret = stat((char *) __stringVal(aPathName), &buf);
+	} while ((ret < 0) && (errno == EINTR));
+	__END_INTERRUPTABLE__
+
+	if (ret < 0) {
+	    @global(LastErrorNumber) = __MKSMALLINT(errno);
+	    RETURN ( nil );
+	}
+	RETURN ( __MKSMALLINT(buf.st_mode & 0777) );
     }
 %}.
    ^ self primitiveFailed
@@ -3732,16 +3736,16 @@
     int ret;
 
     if (__isString(aPathName) && __isSmallInteger(modeBits)) {
-        __BEGIN_INTERRUPTABLE__
-        do {
-            ret = chmod((char *)__stringVal(aPathName), __intVal(modeBits));
-        } while (ret < 0 && errno == EINTR);
-        __END_INTERRUPTABLE__
-        if (ret < 0) {
-            @global(LastErrorNumber) = __MKSMALLINT(errno);
-            RETURN ( false );
-        }
-        RETURN ( true );
+	__BEGIN_INTERRUPTABLE__
+	do {
+	    ret = chmod((char *)__stringVal(aPathName), __intVal(modeBits));
+	} while (ret < 0 && errno == EINTR);
+	__END_INTERRUPTABLE__
+	if (ret < 0) {
+	    @global(LastErrorNumber) = __MKSMALLINT(errno);
+	    RETURN ( false );
+	}
+	RETURN ( true );
     }
 %}.
     ^ self primitiveFailed
@@ -3770,69 +3774,69 @@
 
 %{
     if (__isSmallInteger(aFileDescriptor)) {
-        int fd = __intVal(aFileDescriptor);
-        int lockArg;
-
-        /*
-         * claus: sigh - each one has a different interface ... 
-         */
+	int fd = __intVal(aFileDescriptor);
+	int lockArg;
+
+	/*
+	 * claus: sigh - each one has a different interface ... 
+	 */
 #if defined(F_SETLK)
-        {
-            /* 
-             * new fcntl(SETLK) interface;
-             * available on SYSV4 and Linux
-             */
-            struct flock flock;
-
-            if (isSharedReadLock == true) {
-                flock.l_type = F_RDLCK;
-            } else {
-                flock.l_type = F_WRLCK;
-            }
-            flock.l_whence = 0;
-            flock.l_start = 0;
-            flock.l_len = 0;
-            lockArg = F_SETLK;
+	{
+	    /* 
+	     * new fcntl(SETLK) interface;
+	     * available on SYSV4 and Linux
+	     */
+	    struct flock flock;
+
+	    if (isSharedReadLock == true) {
+		flock.l_type = F_RDLCK;
+	    } else {
+		flock.l_type = F_WRLCK;
+	    }
+	    flock.l_whence = 0;
+	    flock.l_start = 0;
+	    flock.l_len = 0;
+	    lockArg = F_SETLK;
 # if defined(F_SETLKW)
-            if (blockIfLocked == true) {
-                lockArg = F_SETLKW;
-            }
-# endif
-            if (fcntl(fd, lockArg, &flock) != -1) {
-                RETURN (true);
-            }
-        }
+	    if (blockIfLocked == true) {
+		lockArg = F_SETLKW;
+	    }
+# endif
+	    if (fcntl(fd, lockArg, &flock) != -1) {
+		RETURN (true);
+	    }
+	}
 
 #else /* no F_SETLK available */
 
 # if defined(LOCK_EX) && defined(LOCK_UN)
-        /* 
-         * BSD 4.3 advisory locks
-         */
-        lockArg = LOCK_EX;
+	/* 
+	 * BSD 4.3 advisory locks
+	 */
+	lockArg = LOCK_EX;
 #  if defined(LOCK_SH)
-        if (isSharedReadLock == true) {
-            lockArg = LOCK_SH
-        }
+	if (isSharedReadLock == true) {
+	    lockArg = LOCK_SH
+	}
 #  endif
 #  if defined(LOCK_NB)
-        if (blockIfLocked == false) {
-            lockArg |= LOCK_NB;
-        }
+	if (blockIfLocked == false) {
+	    lockArg |= LOCK_NB;
+	}
 #  endif
-        if (flock(fd, lockArg) != -1) {
-            RETURN (true);
-        }
+	if (flock(fd, lockArg) != -1) {
+	    RETURN (true);
+	}
 
 # else /* no flock available */
 
 #  if defined(F_LOCK) && defined(F_UNLOCK)
-        /* 
-         * SYSV3 advisory locks
-         */
-        if (lockf(fd, F_LOCK, 0) != -1) {
-            RETURN (true);
-        }
+	/* 
+	 * SYSV3 advisory locks
+	 */
+	if (lockf(fd, F_LOCK, 0) != -1) {
+	    RETURN (true);
+	}
 #  endif
 # endif
 #endif
@@ -3924,47 +3928,47 @@
      
 %{
     if (__isSmallInteger(aFileDescriptor)) {
-        int fd = __intVal(aFileDescriptor);
-
-        /*
-         * claus: sigh - each one has a different interface ...
-         */
+	int fd = __intVal(aFileDescriptor);
+
+	/*
+	 * claus: sigh - each one has a different interface ...
+	 */
 #if defined(F_SETLK)
-        {
-            /*
-             * new fcntl(SETLK) interface;
-             * available on SYSV4 and Linux
-             */
-            struct flock flock;
-
-            flock.l_type = F_UNLCK;
-            flock.l_whence = 0;
-            flock.l_start = 0;
-            flock.l_len = 0;
-            if (fcntl(fd, F_SETLK, &flock) != -1) {
-                RETURN (true);
-            }
-        }
+	{
+	    /*
+	     * new fcntl(SETLK) interface;
+	     * available on SYSV4 and Linux
+	     */
+	    struct flock flock;
+
+	    flock.l_type = F_UNLCK;
+	    flock.l_whence = 0;
+	    flock.l_start = 0;
+	    flock.l_len = 0;
+	    if (fcntl(fd, F_SETLK, &flock) != -1) {
+		RETURN (true);
+	    }
+	}
 
 #else /* no F_SETLK available */
 
 # if defined(LOCK_EX) && defined(LOCK_UN)
-        /*
-         * BSD 4.3 advisory locks
-         */
-        if (flock(fd, LOCK_UN) != -1) {
-            RETURN (true);
-        }
+	/*
+	 * BSD 4.3 advisory locks
+	 */
+	if (flock(fd, LOCK_UN) != -1) {
+	    RETURN (true);
+	}
 
 # else /* no flock available */
 
 #  if defined(F_LOCK) && defined(F_UNLOCK)
-        /* 
-         * SYSV3 advisory locks
-         */
-        if (lockf(fd, F_UNLOCK, 0) != -1) {
-            RETURN (true);
-        }
+	/* 
+	 * SYSV3 advisory locks
+	 */
+	if (lockf(fd, F_UNLOCK, 0) != -1) {
+	    RETURN (true);
+	}
 #  endif
 # endif
 #endif
@@ -3994,27 +3998,27 @@
     |names n "{ Class: SmallInteger }" |
 
     names := pathName 
-                asCollectionOfSubstringsSeparatedBy:self fileSeparator.
+		asCollectionOfSubstringsSeparatedBy:self fileSeparator.
     names := names asOrderedCollection.
     "
      cut off initial double-slashes
     "
     [names startsWith:#('' '')] whileTrue:[
-        names removeFirst.
+	names removeFirst.
     ].
     "
      cut off double-slashes at end
     "
     [names endsWith:#('')] whileTrue:[
-        names removeLast.
+	names removeLast.
     ].
     "
      cut off current-dir at beginning
     "
     n := names size.
     [(n >= 2) and:[names startsWith:#('.')]] whileTrue:[
-        names removeFirst.
-        n := n - 1.
+	names removeFirst.
+	n := n - 1.
     ].
 
     "
@@ -4023,14 +4027,14 @@
     [(n > 2) 
      and:[(names endsWith:#('..'))
      and:[((names at:(n - 1)) startsWith:'.') not ]]] whileTrue:[
-        names removeLast; removeLast.
-        n := n - 2.
+	names removeLast; removeLast.
+	n := n - 2.
     ].
 
     ^ names asStringWith:self fileSeparator 
-                    from:1
-                    to:n
-                    compressTabs:false final:nil 
+		    from:1
+		    to:n
+		    compressTabs:false final:nil 
 
     "
      OperatingSystem compressPath:'./..'    
@@ -4060,8 +4064,8 @@
      The amountof information returned depends upon the OS, and is
      not guaranteed to be consistent across architectures.
      On unix, the information returned is (at least):
-        freeBytes
-        totalBytes
+	freeBytes
+	totalBytes
     "
 
     |p outputText keys values n info
@@ -4071,9 +4075,9 @@
     p isNil ifTrue:[^ nil].
 
     [
-        outputText := p contentsOfEntireFile.
+	outputText := p contentsOfEntireFile.
     ] valueNowOrOnUnwindDo:[
-        p close.
+	p close.
     ].
 "/ Transcript showCR:outputText asString.
     outputText isNil ifTrue:[^ nil].
@@ -4100,22 +4104,22 @@
 
     n := Integer readFrom:(values at:capacityIdx) onError:nil.
     n notNil ifTrue:[
-        info at:#percentUsed put:n
+	info at:#percentUsed put:n
     ].
 
     n := Integer readFrom:(values at:availIdx) onError:nil.
     n notNil ifTrue:[
-        info at:#freeBytes put:(n * 1024)
+	info at:#freeBytes put:(n * 1024)
     ].
 
     n := Integer readFrom:(values at:usedIdx) onError:nil.
     n notNil ifTrue:[
-        info at:#usedBytes put:(n * 1024)
+	info at:#usedBytes put:(n * 1024)
     ].
 
     n := Integer readFrom:(values at:sizeIdx) onError:nil.
     n notNil ifTrue:[
-        info at:#totalBytes put:(n * 1024)
+	info at:#totalBytes put:(n * 1024)
     ].
 
     info at:#mountPoint put:(values at:mountIdx).
@@ -4143,9 +4147,9 @@
     "/ root, home and current directories.
     "/
     ^ Array 
-        with:'/'
-        with:(self getHomeDirectory)
-        with:(Filename currentDirectory pathName)
+	with:'/'
+	with:(self getHomeDirectory)
+	with:(Filename currentDirectory pathName)
 
     "Modified: / 5.6.1998 / 18:35:35 / cg"
 !
@@ -4155,8 +4159,8 @@
      The amount of information returned depends upon the OS, and is
      not guaranteed to be consistent across architectures.
      On unix, the information returned is (at least):
-        mountPoint - mount point
-        fileSystem - device or NFS-remotePath
+	mountPoint - mount point
+	fileSystem - device or NFS-remotePath
     "
 
     |p outputText keys values info infoEntry|
@@ -4165,9 +4169,9 @@
     p isNil ifTrue:[^ nil].
 
     [
-        outputText := p contentsOfEntireFile.
+	outputText := p contentsOfEntireFile.
     ] valueNowOrOnUnwindDo:[
-        p close.
+	p close.
     ].
 "/ Transcript showCR:outputText asString.
     outputText isNil ifTrue:[^ nil].
@@ -4182,15 +4186,15 @@
     info := OrderedCollection new.
 
     outputText from:2 do:[:line |
-        values := line asCollectionOfWords.
-
-        values size >= 2 ifTrue:[
-
-            infoEntry := IdentityDictionary new.
-            infoEntry at:#mountPoint put:(values last).
-            infoEntry at:#fileSystem put:(values first).
-            info add:infoEntry.
-        ]
+	values := line asCollectionOfWords.
+
+	values size >= 2 ifTrue:[
+
+	    infoEntry := IdentityDictionary new.
+	    infoEntry at:#mountPoint put:(values last).
+	    infoEntry at:#fileSystem put:(values first).
+	    info add:infoEntry.
+	]
     ].
     ^ info
 
@@ -4211,21 +4215,21 @@
     "return some object filled with info for the file 'aPathName';
      the info (for which corresponding access methods are understood by
      the returned object) is:
-         type            - a symbol giving the files type
-         mode            - numeric access mode 
-         uid             - owners user id
-         gid             - owners group id
-         size            - files size
-         id              - files number (i.e. inode number)
-         accessed        - last access time (as Timestamp)
-         modified        - last modification time (as Timestamp)
-         statusChanged   - last status change time (as Timestamp)
-         alternativeName     - (windows only:) the MSDOS name of the file
-         recordFormatNumeric - (VMS only:) numeric value of the recordFormat
-         recordFormat        - (VMS only:) symbolic value of the recordFormat
-         recordAttributes    - (VMS only:) recordAttributes
-         fixedHeaderSize     - (VMS only:) fixed header size in a variable record format
-         recordSize          - (VMS only:) record size.
+	 type            - a symbol giving the files type
+	 mode            - numeric access mode 
+	 uid             - owners user id
+	 gid             - owners group id
+	 size            - files size
+	 id              - files number (i.e. inode number)
+	 accessed        - last access time (as Timestamp)
+	 modified        - last modification time (as Timestamp)
+	 statusChanged   - last status change time (as Timestamp)
+	 alternativeName     - (windows only:) the MSDOS name of the file
+	 recordFormatNumeric - (VMS only:) numeric value of the recordFormat
+	 recordFormat        - (VMS only:) symbolic value of the recordFormat
+	 recordAttributes    - (VMS only:) recordAttributes
+	 fixedHeaderSize     - (VMS only:) fixed header size in a variable record format
+	 recordSize          - (VMS only:) record size.
 
      Some of the fields may be returned as nil on systems which do not provide
      all of the information.
@@ -4245,95 +4249,95 @@
 
     if (__isString(aPathName)) {
 # ifdef TRACE_STAT_CALLS
-        printf("stat on '%s' for info\n", __stringVal(aPathName));
-# endif
-        __BEGIN_INTERRUPTABLE__
-        do {
-            ret = stat((char *) __stringVal(aPathName), &buf);
-        } while ((ret < 0) && (errno == EINTR));
-        __END_INTERRUPTABLE__
-
-        if (ret < 0) {
-            @global(LastErrorNumber) = __MKSMALLINT(errno);
-            RETURN ( nil );
-        }
-        switch (buf.st_mode & S_IFMT) {
-            case S_IFDIR:
-                type = @symbol(directory);
-                break;
-
-            case S_IFREG:
-                type = @symbol(regular);
-                break;
+	printf("stat on '%s' for info\n", __stringVal(aPathName));
+# endif
+	__BEGIN_INTERRUPTABLE__
+	do {
+	    ret = stat((char *) __stringVal(aPathName), &buf);
+	} while ((ret < 0) && (errno == EINTR));
+	__END_INTERRUPTABLE__
+
+	if (ret < 0) {
+	    @global(LastErrorNumber) = __MKSMALLINT(errno);
+	    RETURN ( nil );
+	}
+	switch (buf.st_mode & S_IFMT) {
+	    case S_IFDIR:
+		type = @symbol(directory);
+		break;
+
+	    case S_IFREG:
+		type = @symbol(regular);
+		break;
 # ifdef S_IFCHR
-            case S_IFCHR:
-                type = @symbol(characterSpecial);
-                break;
+	    case S_IFCHR:
+		type = @symbol(characterSpecial);
+		break;
 # endif
 # ifdef S_IFBLK
-            case S_IFBLK:
-                type = @symbol(blockSpecial);
-                break;
+	    case S_IFBLK:
+		type = @symbol(blockSpecial);
+		break;
 # endif
 # ifdef S_IFMPC
-            case S_IFMPC:
-                type = @symbol(multiplexedCharacterSpecial);
-                break;
+	    case S_IFMPC:
+		type = @symbol(multiplexedCharacterSpecial);
+		break;
 # endif
 # ifdef S_IFMPB
-            case S_IFMPB:
-                type = @symbol(multiplexedBlockSpecial);
-                break;
+	    case S_IFMPB:
+		type = @symbol(multiplexedBlockSpecial);
+		break;
 # endif
 # ifdef S_IFLNK
-            case S_IFLNK:
-                type = @symbol(symbolicLink);
-                break;
+	    case S_IFLNK:
+		type = @symbol(symbolicLink);
+		break;
 # endif
 # ifdef S_IFSOCK
-            case S_IFSOCK:
-                type = @symbol(socket);
-                break;
+	    case S_IFSOCK:
+		type = @symbol(socket);
+		break;
 # endif
 # ifdef S_IFIFO
-            case S_IFIFO:
-                type = @symbol(fifo);
-                break;
-# endif
-            default:
-                type = @symbol(unknown);
-                break;
-        }
-
-        ino = buf.st_ino;
-        id = __MKUINT(ino);
-
-        mode = __MKSMALLINT(buf.st_mode & 0777);
-        uid = __MKSMALLINT(buf.st_uid);
-        gid = __MKSMALLINT(buf.st_gid);
-        size = __MKUINT(buf.st_size);
-        aOStime = __MKUINT(buf.st_atime);
-        mOStime = __MKUINT(buf.st_mtime);
-        cOStime = __MKUINT(buf.st_ctime);
+	    case S_IFIFO:
+		type = @symbol(fifo);
+		break;
+# endif
+	    default:
+		type = @symbol(unknown);
+		break;
+	}
+
+	ino = buf.st_ino;
+	id = __MKUINT(ino);
+
+	mode = __MKSMALLINT(buf.st_mode & 0777);
+	uid = __MKSMALLINT(buf.st_uid);
+	gid = __MKSMALLINT(buf.st_gid);
+	size = __MKUINT(buf.st_size);
+	aOStime = __MKUINT(buf.st_atime);
+	mOStime = __MKUINT(buf.st_mtime);
+	cOStime = __MKUINT(buf.st_ctime);
     }
 %}.
     mode notNil ifTrue:[
-        atime := AbsoluteTime fromOSTime:(aOStime * 1000).
-        mtime := AbsoluteTime fromOSTime:(mOStime * 1000).
-        ctime := AbsoluteTime fromOSTime:(cOStime * 1000).
-
-        info := FileStatusInfo
-                    type:type 
-                    mode:mode 
-                    uid:uid 
-                    gid:gid 
-                    size:size 
-                    id:id 
-                    accessed:atime 
-                    modified:mtime 
-                    statusChanged:ctime
-                    path:nil.
-        ^ info
+	atime := AbsoluteTime fromOSTime:(aOStime * 1000).
+	mtime := AbsoluteTime fromOSTime:(mOStime * 1000).
+	ctime := AbsoluteTime fromOSTime:(cOStime * 1000).
+
+	info := FileStatusInfo
+		    type:type 
+		    mode:mode 
+		    uid:uid 
+		    gid:gid 
+		    size:size 
+		    id:id 
+		    accessed:atime 
+		    modified:mtime 
+		    statusChanged:ctime
+		    path:nil.
+	^ info
    ].
    ^ self primitiveFailed
 
@@ -4354,27 +4358,27 @@
     int ret;
 
     if (__isString(aPathName)) {
-        struct stat buf;
+	struct stat buf;
 
 # ifdef TRACE_STAT_CALLS
-        printf("stat on '%s' for isDirectory\n", __stringVal(aPathName));
-# endif
-        __BEGIN_INTERRUPTABLE__
-        do {
-            ret = stat((char *) __stringVal(aPathName), &buf);
-        } while ((ret < 0) && (errno == EINTR));
-        __END_INTERRUPTABLE__
-        if (ret < 0) {
-            @global(LastErrorNumber) = __MKSMALLINT(errno);
-            RETURN ( false );
-        }
-        RETURN ( ((buf.st_mode & S_IFMT) == S_IFDIR) ? true : false);
+	printf("stat on '%s' for isDirectory\n", __stringVal(aPathName));
+# endif
+	__BEGIN_INTERRUPTABLE__
+	do {
+	    ret = stat((char *) __stringVal(aPathName), &buf);
+	} while ((ret < 0) && (errno == EINTR));
+	__END_INTERRUPTABLE__
+	if (ret < 0) {
+	    @global(LastErrorNumber) = __MKSMALLINT(errno);
+	    RETURN ( false );
+	}
+	RETURN ( ((buf.st_mode & S_IFMT) == S_IFDIR) ? true : false);
     }
 %}.
     ^ self primitiveFailed
 
     "an alternative implementation would be:
-        ^ (self infoOf:aPathName) type == #directory
+	^ (self infoOf:aPathName) type == #directory
     "
 !
 
@@ -4387,17 +4391,17 @@
 
     if (__isString(aPathName)) {
 # ifdef TRACE_ACCESS_CALLS
-        printf("access on '%s' for executable\n", __stringVal(aPathName));
-# endif
-        __BEGIN_INTERRUPTABLE__
-        do {
-            ret = access(__stringVal(aPathName), X_OK);
-        } while ((ret < 0) && (errno == EINTR));
-        __END_INTERRUPTABLE__
-        if (ret < 0) {
-            @global(LastErrorNumber) = __MKSMALLINT(errno);
-        }
-        RETURN ( ((ret == 0) ? true : false) );
+	printf("access on '%s' for executable\n", __stringVal(aPathName));
+# endif
+	__BEGIN_INTERRUPTABLE__
+	do {
+	    ret = access(__stringVal(aPathName), X_OK);
+	} while ((ret < 0) && (errno == EINTR));
+	__END_INTERRUPTABLE__
+	if (ret < 0) {
+	    @global(LastErrorNumber) = __MKSMALLINT(errno);
+	}
+	RETURN ( ((ret == 0) ? true : false) );
     }
 %}.
     ^ self primitiveFailed
@@ -4412,17 +4416,17 @@
 
     if (__isString(aPathName)) {
 # ifdef TRACE_ACCESS_CALLS
-        printf("access on '%s' for readable\n", __stringVal(aPathName));
-# endif
-        __BEGIN_INTERRUPTABLE__
-        do {
-            ret = access(__stringVal(aPathName), R_OK);
-        } while ((ret < 0) && (errno == EINTR));
-        __END_INTERRUPTABLE__
-        if (ret < 0) {
-            @global(LastErrorNumber) = __MKSMALLINT(errno);
-        }
-        RETURN ( ((ret == 0) ? true : false) );
+	printf("access on '%s' for readable\n", __stringVal(aPathName));
+# endif
+	__BEGIN_INTERRUPTABLE__
+	do {
+	    ret = access(__stringVal(aPathName), R_OK);
+	} while ((ret < 0) && (errno == EINTR));
+	__END_INTERRUPTABLE__
+	if (ret < 0) {
+	    @global(LastErrorNumber) = __MKSMALLINT(errno);
+	}
+	RETURN ( ((ret == 0) ? true : false) );
     }
 %}.
     ^ self primitiveFailed
@@ -4449,18 +4453,18 @@
 
     if (__isString(aPathName) || __isSymbol(aPathName) ) {
 # ifdef TRACE_STAT_CALLS
-        printf("stat on '%s' for isValidPath\n", __stringVal(aPathName));
-# endif
-        __BEGIN_INTERRUPTABLE__
-        do {
-            ret = stat((char *) __stringVal(aPathName), &buf);
-        } while ((ret < 0) && (errno == EINTR));
-        __END_INTERRUPTABLE__
-        if (ret < 0) {
-            @global(LastErrorNumber) = __MKSMALLINT(errno);
-            RETURN (false);
-        }
-        RETURN ( ret ? false : true );
+	printf("stat on '%s' for isValidPath\n", __stringVal(aPathName));
+# endif
+	__BEGIN_INTERRUPTABLE__
+	do {
+	    ret = stat((char *) __stringVal(aPathName), &buf);
+	} while ((ret < 0) && (errno == EINTR));
+	__END_INTERRUPTABLE__
+	if (ret < 0) {
+	    @global(LastErrorNumber) = __MKSMALLINT(errno);
+	    RETURN (false);
+	}
+	RETURN ( ret ? false : true );
     }
 %}.
     ^ self primitiveFailed
@@ -4479,17 +4483,17 @@
 
     if (__isString(aPathName)) {
 # ifdef TRACE_ACCESS_CALLS
-        printf("access on '%s' for writable\n", __stringVal(aPathName));
-# endif
-        __BEGIN_INTERRUPTABLE__
-        do {
-            ret = access(__stringVal(aPathName), W_OK);
-        } while ((ret < 0) && (errno == EINTR));
-        __END_INTERRUPTABLE__
-        if (ret < 0) {
-            @global(LastErrorNumber) = __MKSMALLINT(errno);
-        }
-        RETURN ( ((ret == 0) ? true : false) );
+	printf("access on '%s' for writable\n", __stringVal(aPathName));
+# endif
+	__BEGIN_INTERRUPTABLE__
+	do {
+	    ret = access(__stringVal(aPathName), W_OK);
+	} while ((ret < 0) && (errno == EINTR));
+	__END_INTERRUPTABLE__
+	if (ret < 0) {
+	    @global(LastErrorNumber) = __MKSMALLINT(errno);
+	}
+	RETURN ( ((ret == 0) ? true : false) );
     }
 %}.
     ^ self primitiveFailed
@@ -4515,59 +4519,59 @@
     unsigned INT ino;
 
     if (__isString(aPathName)) {
-        __BEGIN_INTERRUPTABLE__
-        do {
-            ret = lstat((char *) __stringVal(aPathName), &buf);
-        } while ((ret < 0) && (errno == EINTR));
-        __END_INTERRUPTABLE__
-
-        if (ret < 0) {
-            @global(LastErrorNumber) = __MKSMALLINT(errno);
-            RETURN ( nil );
-        }
-        switch (buf.st_mode & S_IFMT) {
-            default:
-                RETURN ( nil ); /* not a symbolic link */
-
-            case S_IFLNK:
-                type = @symbol(symbolicLink);
-                break;
-        }
-
-        ino = buf.st_ino;
-        id = __MKUINT(ino);
-
-        mode = __MKSMALLINT(buf.st_mode & 0777);
-        uid = __MKSMALLINT(buf.st_uid);
-        gid = __MKSMALLINT(buf.st_gid);
-        size = __MKUINT(buf.st_size);
-        atime = __MKUINT(buf.st_atime);
-        mtime = __MKUINT(buf.st_mtime);
-        ctime = __MKUINT(buf.st_ctime);
-        if ((ret = readlink((char *) __stringVal(aPathName), pathBuffer, sizeof(pathBuffer))) < 0) {
-            @global(LastErrorNumber) = __MKSMALLINT(errno);
-            RETURN ( nil );
-        } 
-        pathBuffer[ret] = '\0';  /* readlink does not 0-terminate */
-        path = __MKSTRING(pathBuffer);
+	__BEGIN_INTERRUPTABLE__
+	do {
+	    ret = lstat((char *) __stringVal(aPathName), &buf);
+	} while ((ret < 0) && (errno == EINTR));
+	__END_INTERRUPTABLE__
+
+	if (ret < 0) {
+	    @global(LastErrorNumber) = __MKSMALLINT(errno);
+	    RETURN ( nil );
+	}
+	switch (buf.st_mode & S_IFMT) {
+	    default:
+		RETURN ( nil ); /* not a symbolic link */
+
+	    case S_IFLNK:
+		type = @symbol(symbolicLink);
+		break;
+	}
+
+	ino = buf.st_ino;
+	id = __MKUINT(ino);
+
+	mode = __MKSMALLINT(buf.st_mode & 0777);
+	uid = __MKSMALLINT(buf.st_uid);
+	gid = __MKSMALLINT(buf.st_gid);
+	size = __MKUINT(buf.st_size);
+	atime = __MKUINT(buf.st_atime);
+	mtime = __MKUINT(buf.st_mtime);
+	ctime = __MKUINT(buf.st_ctime);
+	if ((ret = readlink((char *) __stringVal(aPathName), pathBuffer, sizeof(pathBuffer))) < 0) {
+	    @global(LastErrorNumber) = __MKSMALLINT(errno);
+	    RETURN ( nil );
+	} 
+	pathBuffer[ret] = '\0';  /* readlink does not 0-terminate */
+	path = __MKSTRING(pathBuffer);
     }
 #else
     RETURN ( nil );
 #endif
 %}.
     mode notNil ifTrue:[
-        info := IdentityDictionary new.
-        ^ FileStatusInfo
-            type:type 
-            mode:mode 
-            uid:uid 
-            gid:gid 
-            size:size 
-            id:id 
-            accessed:(AbsoluteTime fromOSTime:(atime * 1000)) 
-            modified:(AbsoluteTime fromOSTime:(mtime * 1000)) 
-            statusChanged:(AbsoluteTime fromOSTime:(ctime * 1000))
-            path:path
+	info := IdentityDictionary new.
+	^ FileStatusInfo
+	    type:type 
+	    mode:mode 
+	    uid:uid 
+	    gid:gid 
+	    size:size 
+	    id:id 
+	    accessed:(AbsoluteTime fromOSTime:(atime * 1000)) 
+	    modified:(AbsoluteTime fromOSTime:(mtime * 1000)) 
+	    statusChanged:(AbsoluteTime fromOSTime:(ctime * 1000))
+	    path:path
    ].
    ^ self primitiveFailed
 
@@ -4604,43 +4608,43 @@
     path := self primPathNameOf:pathName.
 
     path isNil ifTrue:[
-        (self isValidPath:pathName) ifFalse:[
-            p := pathName.
-            [(p size > 1)
-             and:[p endsWith:(self fileSeparator)]
-            ] whileTrue:[
-                p := p copyWithoutLast:1.
-            ].
-            ^ p
-        ].
-
-        (SlowFork==true or:[PipeFailed==true]) ifFalse:[
-            PipeStream openErrorSignal handle:[:ex |
-                PipeFailed := true.
-                'UnixOperatingSystem [warning]: cannot fork/popen' errorPrintCR.
-                ex return.
-            ] do:[
-                "have to fall back ..."
-                command := 'cd "' , pathName , '"; pwd'.
-                p := PipeStream readingFrom:command.
-            ].
-
-            (p isNil or:[p atEnd]) ifTrue:[
-                ('UnixOperatingSystem [warning]: PipeStream for <' , command , '> failed') errorPrintCR.
-            ] ifFalse:[
-                path := p nextLine.
-                p close.
-            ]
-        ].
-        path isNil ifTrue:[
-            "/
-            "/ return the original - there is nothing else can we do
-            "/
-            path := pathName
-        ].
-        (SlowFork==true or:[ForkFailed==true]) ifTrue:[
-            path := self compressPath:path
-        ]
+	(self isValidPath:pathName) ifFalse:[
+	    p := pathName.
+	    [(p size > 1)
+	     and:[p endsWith:(self fileSeparator)]
+	    ] whileTrue:[
+		p := p copyWithoutLast:1.
+	    ].
+	    ^ p
+	].
+
+	(SlowFork==true or:[PipeFailed==true]) ifFalse:[
+	    PipeStream openErrorSignal handle:[:ex |
+		PipeFailed := true.
+		'UnixOperatingSystem [warning]: cannot fork/popen' errorPrintCR.
+		ex return.
+	    ] do:[
+		"have to fall back ..."
+		command := 'cd "' , pathName , '"; pwd'.
+		p := PipeStream readingFrom:command.
+	    ].
+
+	    (p isNil or:[p atEnd]) ifTrue:[
+		('UnixOperatingSystem [warning]: PipeStream for <' , command , '> failed') errorPrintCR.
+	    ] ifFalse:[
+		path := p nextLine.
+		p close.
+	    ]
+	].
+	path isNil ifTrue:[
+	    "/
+	    "/ return the original - there is nothing else can we do
+	    "/
+	    path := pathName
+	].
+	(SlowFork==true or:[ForkFailed==true]) ifTrue:[
+	    path := self compressPath:path
+	]
     ].
     ^ path.
 
@@ -4670,20 +4674,20 @@
 
     if (__isString(aPathName)) {
 # ifdef TRACE_STAT_CALLS
-        printf("stat on '%s' for id\n", __stringVal(aPathName));
-# endif
-        __BEGIN_INTERRUPTABLE__
-        do {
-            ret = stat((char *) __stringVal(aPathName), &buf);
-        } while (ret < 0 && errno == EINTR);
-        __END_INTERRUPTABLE__
-        if (ret >= 0) {
-            ino = buf.st_ino;
-            retVal = __MKUINT(ino);
-            RETURN (retVal);
-        }
-        @global(LastErrorNumber) = __MKSMALLINT(errno);
-        RETURN (nil);
+	printf("stat on '%s' for id\n", __stringVal(aPathName));
+# endif
+	__BEGIN_INTERRUPTABLE__
+	do {
+	    ret = stat((char *) __stringVal(aPathName), &buf);
+	} while (ret < 0 && errno == EINTR);
+	__END_INTERRUPTABLE__
+	if (ret >= 0) {
+	    ino = buf.st_ino;
+	    retVal = __MKUINT(ino);
+	    RETURN (retVal);
+	}
+	@global(LastErrorNumber) = __MKSMALLINT(errno);
+	RETURN (nil);
     }
     RETURN (nil);
 %}.
@@ -4712,30 +4716,30 @@
     if (__isString(pathName)) {
 
 #ifdef HAS_GETCWD
-        if (strcmp(__stringVal(pathName), ".") == 0) {
-            char nameBuffer[MAXPATHLEN + 1];
-
-            if (@global(CurrentDirectory) == nil) {
-                if (getcwd(nameBuffer, MAXPATHLEN)) {
-                    OBJ d;
-
-                    @global(CurrentDirectory) = d = __MKSTRING(nameBuffer);
-                    __GSTORE(d);
-                }
-            }
-            RETURN (@global(CurrentDirectory));
-        }
+	if (strcmp(__stringVal(pathName), ".") == 0) {
+	    char nameBuffer[MAXPATHLEN + 1];
+
+	    if (@global(CurrentDirectory) == nil) {
+		if (getcwd(nameBuffer, MAXPATHLEN)) {
+		    OBJ d;
+
+		    @global(CurrentDirectory) = d = __MKSTRING(nameBuffer);
+		    __GSTORE(d);
+		}
+	    }
+	    RETURN (@global(CurrentDirectory));
+	}
 #endif /* HAS_GETCWD */
 
 #ifdef HAS_REALPATH
-        {
-            char nameBuffer[MAXPATHLEN + 1 + MAXPATHLEN + 1];
-
-            if (realpath(__stringVal(pathName), nameBuffer)) {
-                RETURN ( __MKSTRING(nameBuffer) );
-            }
-            RETURN ( nil );
-        }
+	{
+	    char nameBuffer[MAXPATHLEN + 1 + MAXPATHLEN + 1];
+
+	    if (realpath(__stringVal(pathName), nameBuffer)) {
+		RETURN ( __MKSTRING(nameBuffer) );
+	    }
+	    RETURN ( nil );
+	}
 #endif /* ! HAS_REALPATH */
     }
 %}.
@@ -4747,7 +4751,7 @@
      For nonexistent files, nil is returned."
 
     "could be implemented as:
-        (self infoOf:aPathName) accessed 
+	(self infoOf:aPathName) accessed 
     "
     |osSeconds i|
 %{
@@ -4757,18 +4761,18 @@
 
     if (__isString(aPathName)) {
 # ifdef TRACE_STAT_CALLS
-        printf("stat on '%s' for timeOfLastAccess\n", __stringVal(aPathName));
-# endif
-        __BEGIN_INTERRUPTABLE__
-        do {
-            ret = stat((char *) __stringVal(aPathName), &buf);
-        } while (ret < 0 && errno == EINTR);
-        __END_INTERRUPTABLE__
-        if (ret < 0) {
-            @global(LastErrorNumber) = __MKSMALLINT(errno);
-            RETURN (nil);
-        }
-        osSeconds = __MKUINT(buf.st_atime);
+	printf("stat on '%s' for timeOfLastAccess\n", __stringVal(aPathName));
+# endif
+	__BEGIN_INTERRUPTABLE__
+	do {
+	    ret = stat((char *) __stringVal(aPathName), &buf);
+	} while (ret < 0 && errno == EINTR);
+	__END_INTERRUPTABLE__
+	if (ret < 0) {
+	    @global(LastErrorNumber) = __MKSMALLINT(errno);
+	    RETURN (nil);
+	}
+	osSeconds = __MKUINT(buf.st_atime);
     }
 %}.
     osSeconds notNil ifTrue:[^ AbsoluteTime fromOSTime:(osSeconds * 1000)].
@@ -4787,7 +4791,7 @@
      For nonexistent files, nil is returned."
 
     "could be implemented as:
-        (self infoOf:aPathName) modified
+	(self infoOf:aPathName) modified
     "
 
     |osSeconds i|
@@ -4798,18 +4802,18 @@
 
     if (__isString(aPathName)) {
 # ifdef TRACE_STAT_CALLS
-        printf("stat on '%s' for timeOfLastChange\n", __stringVal(aPathName));
-# endif
-        __BEGIN_INTERRUPTABLE__
-        do {
-            ret = stat((char *) __stringVal(aPathName), &buf);
-        } while (ret < 0 && errno == EINTR);
-        __END_INTERRUPTABLE__
-        if (ret < 0) {
-            @global(LastErrorNumber) = __MKSMALLINT(errno);
-            RETURN ( nil );
-        }
-        osSeconds = __MKUINT(buf.st_mtime);
+	printf("stat on '%s' for timeOfLastChange\n", __stringVal(aPathName));
+# endif
+	__BEGIN_INTERRUPTABLE__
+	do {
+	    ret = stat((char *) __stringVal(aPathName), &buf);
+	} while (ret < 0 && errno == EINTR);
+	__END_INTERRUPTABLE__
+	if (ret < 0) {
+	    @global(LastErrorNumber) = __MKSMALLINT(errno);
+	    RETURN ( nil );
+	}
+	osSeconds = __MKUINT(buf.st_mtime);
     }
 %}.
     osSeconds notNil ifTrue:[^ AbsoluteTime fromOSTime:(osSeconds * 1000)].
@@ -4832,7 +4836,7 @@
 
     "
      this could have been implemented as:
-        (self infoOf:aPathName) type 
+	(self infoOf:aPathName) type 
      but for huge directory searches the code below is faster
     "
 
@@ -4842,45 +4846,45 @@
 
     if (__isString(aPathName)) {
 # ifdef TRACE_STAT_CALLS
-        printf("stat on '%s' for type\n", __stringVal(aPathName));
-# endif
-        __BEGIN_INTERRUPTABLE__
-        do {
-            ret = stat((char *) __stringVal(aPathName), &buf);
-        } while (ret < 0 && errno == EINTR);
-        __END_INTERRUPTABLE__
-        if (ret < 0) {
-            @global(LastErrorNumber) = __MKSMALLINT(errno);
-            RETURN ( nil );
-        }
-        switch (buf.st_mode & S_IFMT) {
-            case S_IFDIR:
-                RETURN ( @symbol(directory) );
-            case S_IFREG:
-                RETURN ( @symbol(regular) );
+	printf("stat on '%s' for type\n", __stringVal(aPathName));
+# endif
+	__BEGIN_INTERRUPTABLE__
+	do {
+	    ret = stat((char *) __stringVal(aPathName), &buf);
+	} while (ret < 0 && errno == EINTR);
+	__END_INTERRUPTABLE__
+	if (ret < 0) {
+	    @global(LastErrorNumber) = __MKSMALLINT(errno);
+	    RETURN ( nil );
+	}
+	switch (buf.st_mode & S_IFMT) {
+	    case S_IFDIR:
+		RETURN ( @symbol(directory) );
+	    case S_IFREG:
+		RETURN ( @symbol(regular) );
 # ifdef S_IFCHR
-            case S_IFCHR:
-                RETURN ( @symbol(characterSpecial) );
+	    case S_IFCHR:
+		RETURN ( @symbol(characterSpecial) );
 # endif
 # ifdef S_IFBLK
-            case S_IFBLK:
-                RETURN ( @symbol(blockSpecial) );
+	    case S_IFBLK:
+		RETURN ( @symbol(blockSpecial) );
 # endif
 # ifdef S_IFLNK
-            case S_IFLNK:
-                RETURN ( @symbol(symbolicLink) );
+	    case S_IFLNK:
+		RETURN ( @symbol(symbolicLink) );
 # endif
 # ifdef S_IFSOCK
-            case S_IFSOCK:
-                RETURN ( @symbol(socket) );
+	    case S_IFSOCK:
+		RETURN ( @symbol(socket) );
 # endif
 # ifdef S_IFIFO
-            case S_IFIFO:
-                RETURN ( @symbol(fifo) );
-# endif
-            default:
-                RETURN ( @symbol(unknown) );
-        }
+	    case S_IFIFO:
+		RETURN ( @symbol(fifo) );
+# endif
+	    default:
+		RETURN ( @symbol(unknown) );
+	}
     }
 %}.
     i := self infoOf:aPathName.
@@ -4922,8 +4926,8 @@
 
     if (__isSmallInteger(signalNumber)) {
 #ifdef SIG_DFL
-        signal(__intVal(signalNumber), SIG_DFL);
-        RETURN (self);
+	signal(__intVal(signalNumber), SIG_DFL);
+	RETURN (self);
 #endif
     }
 %}.
@@ -4951,22 +4955,22 @@
 
 #if (defined(F_GETFL) && defined(F_SETFL) && defined(FASYNC)) || defined(SYSV4)
     if (__isSmallInteger(fd)) {
-        f = __intVal(fd);
+	f = __intVal(fd);
 # if defined(SYSV4)
-        ret = ioctl(f, I_SETSIG, 0);
+	ret = ioctl(f, I_SETSIG, 0);
 # else /*! SYSV4*/
-        flags = fcntl(f, F_GETFL, 0);
-        /*
-         * if already clear, there is no need for this syscall ...
-         */
-        if (flags & FASYNC) {
-            ret = fcntl(f, F_SETFL, flags & ~FASYNC);
-            if (ret >= 0) ret = flags;
-        } else {
-            ret = flags;
-        }
+	flags = fcntl(f, F_GETFL, 0);
+	/*
+	 * if already clear, there is no need for this syscall ...
+	 */
+	if (flags & FASYNC) {
+	    ret = fcntl(f, F_SETFL, flags & ~FASYNC);
+	    if (ret >= 0) ret = flags;
+	} else {
+	    ret = flags;
+	}
 # endif /* !SYSV4 */
-        RETURN ( __MKSMALLINT(ret) );
+	RETURN ( __MKSMALLINT(ret) );
     }
 #endif
 %}.
@@ -4991,14 +4995,14 @@
 %{  /* NOCONTEXT */
 
     if (__isSmallInteger(signalNumber)) {
-        int sigNo = __intVal(signalNumber);
-
-        if (sigNo == 0) {
-            RETURN (self);
-        }
+	int sigNo = __intVal(signalNumber);
+
+	if (sigNo == 0) {
+	    RETURN (self);
+	}
 #ifdef SIG_IGN
-        signal(sigNo, SIG_IGN);
-        RETURN (self);
+	signal(sigNo, SIG_IGN);
+	RETURN (self);
 #endif
     }
 %}.
@@ -5019,8 +5023,8 @@
 disableTimer
     "disable timer interrupts.
      WARNING: 
-        the system will not operate correctly with timer interrupts
-        disabled, because no scheduling or timeouts are possible."
+	the system will not operate correctly with timer interrupts
+	disabled, because no scheduling or timeouts are possible."
 
 %{  /* NOCONTEXT */
 
@@ -5085,73 +5089,73 @@
 #endif
 
     if (__isSmallInteger(fd)) {
-        if (firstCall) {
+	if (firstCall) {
 #ifdef HAS_SIGACTION
-            struct sigaction act;
-
-            /*
-             * Do not add SA_RESTART here. A signal can cause a
-             * thread switch, another thread can do a garbage collect
-             * and restarted system calls may write into old
-             * (collected) addresses.
-             */
-
-            act.sa_flags = SA_SIGINFO; /* <- if you add more, remember dummys at the top */
-            sigemptyset(&act.sa_mask);
-            act.sa_handler = __signalIoInterrupt;
-            sigaction(THESIGNAL, &act, 0);
+	    struct sigaction act;
+
+	    /*
+	     * Do not add SA_RESTART here. A signal can cause a
+	     * thread switch, another thread can do a garbage collect
+	     * and restarted system calls may write into old
+	     * (collected) addresses.
+	     */
+
+	    act.sa_flags = SA_SIGINFO; /* <- if you add more, remember dummys at the top */
+	    sigemptyset(&act.sa_mask);
+	    act.sa_handler = __signalIoInterrupt;
+	    sigaction(THESIGNAL, &act, 0);
 #else
 # ifdef HAS_SIGVEC
-            struct sigvec vec;
-
-            vec.sv_flags = SV_INTERRUPT;
-            sigemptyset(&vec.sv_mask);
-            vec.sv_handler = __signalIoInterrupt;
-            sigvec(THESIGNAL, &vec, NULL);
+	    struct sigvec vec;
+
+	    vec.sv_flags = SV_INTERRUPT;
+	    sigemptyset(&vec.sv_mask);
+	    vec.sv_handler = __signalIoInterrupt;
+	    sigvec(THESIGNAL, &vec, NULL);
 # else
-            signal(THESIGNAL, __signalIoInterrupt);
-# endif
-#endif
-            firstCall = 0;
-        }
+	    signal(THESIGNAL, __signalIoInterrupt);
+# endif
+#endif
+	    firstCall = 0;
+	}
 #undef THESIGNAL
 
-        f = __intVal(fd);
+	f = __intVal(fd);
 # if defined(SYSV4)
-        ret = ioctl(f, I_SETSIG, S_INPUT | S_HIPRI | S_ERROR | S_RDNORM | S_RDBAND | S_MSG | S_HANGUP);
+	ret = ioctl(f, I_SETSIG, S_INPUT | S_HIPRI | S_ERROR | S_RDNORM | S_RDBAND | S_MSG | S_HANGUP);
 # else /*! SYSV4*/
-        flags = fcntl(f, F_GETFL, 0);
-        /*
-         * if already set, there is no need for this syscall ...
-         */
-        if (flags & FASYNC) {
-            ret = flags;
-        } else {
-            ret = fcntl(f, F_SETFL, flags | FASYNC);
-            if (ret >= 0) ret = flags;
-        }
+	flags = fcntl(f, F_GETFL, 0);
+	/*
+	 * if already set, there is no need for this syscall ...
+	 */
+	if (flags & FASYNC) {
+	    ret = flags;
+	} else {
+	    ret = fcntl(f, F_SETFL, flags | FASYNC);
+	    if (ret >= 0) ret = flags;
+	}
 # endif /*!SYSV4*/
 
 #if defined(F_SETOWN) || defined(FIOSETOWN)
-        {
-            int pid;
-            int ok;
-
-            pid = getpid();
+	{
+	    int pid;
+	    int ok;
+
+	    pid = getpid();
 
 # if defined(F_SETOWN)
-            ok = fcntl(f, F_SETOWN, pid);
-            /* printf("F_SETOWN returns %d (%d)\n", ret, errno); */
+	    ok = fcntl(f, F_SETOWN, pid);
+	    /* printf("F_SETOWN returns %d (%d)\n", ret, errno); */
 # else
-            ok = ioctl(f, FIOSETOWN, &pid);
-            /* printf("FIOSETOWN returns %d (%d)\n", ret, errno); */
-# endif
-            if (ok < 0) {
-                ret = ok;
-            }
-        }
-#endif
-        RETURN ( __MKUINT(ret) );
+	    ok = ioctl(f, FIOSETOWN, &pid);
+	    /* printf("FIOSETOWN returns %d (%d)\n", ret, errno); */
+# endif
+	    if (ok < 0) {
+		ret = ok;
+	    }
+	}
+#endif
+	RETURN ( __MKUINT(ret) );
     }
 #endif
 %}.
@@ -5256,119 +5260,119 @@
      &&  (sigNr <= SIG_LIMIT)
 #endif
     ) {
-        /*
-         * standard signals are forced into standard handlers
-         * - all others go into general signalInterrupt
-         */
+	/*
+	 * standard signals are forced into standard handlers
+	 * - all others go into general signalInterrupt
+	 */
 #if defined(SIGPOLL) && defined(SIGIO)
-        if (sigNr == SIGPOLL)
-            sigNr = SIGIO;
-#endif
-        switch (sigNr) {
-            case 0:
-                /* enabling a non-supported signal */
-                RETURN (self);
+	if (sigNr == SIGPOLL)
+	    sigNr = SIGIO;
+#endif
+	switch (sigNr) {
+	    case 0:
+		/* enabling a non-supported signal */
+		RETURN (self);
 
 #ifdef SIGBREAK
-            case SIGBREAK:
+	    case SIGBREAK:
 #endif
 #ifdef SIGINT
-            case SIGINT:
+	    case SIGINT:
 #endif
 #ifdef SIGQUIT
-            case SIGQUIT:
+	    case SIGQUIT:
 #endif
 #if defined(SIGINT) || defined(SIGQUIT) || defined(SIGBREAK)
-                handler = __signalUserInterrupt;
-                break;
+		handler = __signalUserInterrupt;
+		break;
 #endif
 #ifdef SIGFPE
-            case SIGFPE:
-                handler = __signalFpExceptionInterrupt;
-                break;
+	    case SIGFPE:
+		handler = __signalFpExceptionInterrupt;
+		break;
 #endif
 
 #ifdef SIGPIPE
-            case SIGPIPE:
-                handler = __signalPIPEInterrupt;
-                break;
+	    case SIGPIPE:
+		handler = __signalPIPEInterrupt;
+		break;
 #endif
 #ifdef SIGBUS
-            case SIGBUS:
-                handler = __signalBUSInterrupt;
-                break;
+	    case SIGBUS:
+		handler = __signalBUSInterrupt;
+		break;
 #endif
 #ifdef SIGSEGV
-            case SIGSEGV:
-                handler = __signalSEGVInterrupt;
-                break;
+	    case SIGSEGV:
+		handler = __signalSEGVInterrupt;
+		break;
 #endif
 #ifdef SIGILL
-            case SIGILL:
-                handler = __signalTrapInterrupt;
-                break;
+	    case SIGILL:
+		handler = __signalTrapInterrupt;
+		break;
 #endif
 #ifdef SIGEMT
-            case SIGEMT:
-                handler = __signalTrapInterrupt;
-                break;
+	    case SIGEMT:
+		handler = __signalTrapInterrupt;
+		break;
 #endif
 #ifdef SIGIO
-            case SIGIO:
-                handler = __signalIoInterrupt;
-                break;
+	    case SIGIO:
+		handler = __signalIoInterrupt;
+		break;
 #endif
 
 #ifdef CHILD_SIGNAL
-            case CHILD_SIGNAL:
-                handler = __signalChildInterrupt;
-                break;
+	    case CHILD_SIGNAL:
+		handler = __signalChildInterrupt;
+		break;
 #endif
 #ifdef SIGALRM
-            case SIGALRM:
-                handler = __signalTimerInterrupt;
-                break;
-#endif
-
-            default:
-                handler = __signalInterrupt;
-                break;
-        }
-
-        {
+	    case SIGALRM:
+		handler = __signalTimerInterrupt;
+		break;
+#endif
+
+	    default:
+		handler = __signalInterrupt;
+		break;
+	}
+
+	{
 #ifdef HAS_SIGACTION
-            struct sigaction act;
-
-            /*
-             * Do not add SA_RESTART here. A signal can cause a
-             * thread switch, another thread can do a garbage collect
-             * and restarted system calls may write into old
-             * (collected) addresses.
-             */
-
-            act.sa_flags = SA_SIGINFO; /* <- if you add more, remember dummys at the top */
-            sigemptyset(&act.sa_mask);
-            act.sa_handler = handler;
-            sigaction(sigNr, &act, 0);
+	    struct sigaction act;
+
+	    /*
+	     * Do not add SA_RESTART here. A signal can cause a
+	     * thread switch, another thread can do a garbage collect
+	     * and restarted system calls may write into old
+	     * (collected) addresses.
+	     */
+
+	    act.sa_flags = SA_SIGINFO; /* <- if you add more, remember dummys at the top */
+	    sigemptyset(&act.sa_mask);
+	    act.sa_handler = handler;
+	    sigaction(sigNr, &act, 0);
 #else
 # ifdef HAS_SIGVEC
-            struct sigvec vec;
-
-            vec.sv_flags = SV_INTERRUPT;
-            sigemptyset(&vec.sv_mask);
-            vec.sv_handler = handler;
-            sigvec(sigNr, &vec, NULL);
+	    struct sigvec vec;
+
+	    vec.sv_flags = SV_INTERRUPT;
+	    sigemptyset(&vec.sv_mask);
+	    vec.sv_handler = handler;
+	    sigvec(sigNr, &vec, NULL);
 # else
-            (void) signal(sigNr, handler);
-# endif
-#endif
-        }
-
-        /*
-         * maybe, we should ret the old enable-status
-         * as boolean here ...
-         */
-        RETURN (self);
+	    (void) signal(sigNr, handler);
+# endif
+#endif
+	}
+
+	/*
+	 * maybe, we should ret the old enable-status
+	 * as boolean here ...
+	 */
+	RETURN (self);
     }
 %}.
 
@@ -5389,60 +5393,60 @@
 
 #ifdef SIGALRM
     {
-        static int firstCall = 1;
+	static int firstCall = 1;
 # ifndef __signalTimerInterrupt
-        extern void __signalTimerInterrupt(SIGHANDLER_ARG);
-# endif
-
-        if (firstCall) {
+	extern void __signalTimerInterrupt(SIGHANDLER_ARG);
+# endif
+
+	if (firstCall) {
 # ifdef HAS_SIGACTION
-            struct sigaction act;
-
-            act.sa_flags = SA_SIGINFO; /* <- if you add more, remember dummys at the top */
-            sigemptyset(&act.sa_mask);
-            act.sa_handler = __signalTimerInterrupt;
-            sigaction(SIGALRM, &act, 0);
+	    struct sigaction act;
+
+	    act.sa_flags = SA_SIGINFO; /* <- if you add more, remember dummys at the top */
+	    sigemptyset(&act.sa_mask);
+	    act.sa_handler = __signalTimerInterrupt;
+	    sigaction(SIGALRM, &act, 0);
 # else
 #  ifdef HAS_SIGVEC
-            struct sigvec vec;
-
-            vec.sv_flags = SV_INTERRUPT;
-            sigemptyset(&vec.sv_mask);
-            vec.sv_handler = __signalTimerInterrupt;
-            sigvec(SIGALRM, &vec, NULL);
+	    struct sigvec vec;
+
+	    vec.sv_flags = SV_INTERRUPT;
+	    sigemptyset(&vec.sv_mask);
+	    vec.sv_handler = __signalTimerInterrupt;
+	    sigvec(SIGALRM, &vec, NULL);
 #  else /* neither SIGACTION nor SIGVEC */
-            signal(SIGALRM, __signalTimerInterrupt);
+	    signal(SIGALRM, __signalTimerInterrupt);
 #  endif /* stupid system  */
 # endif
-            firstCall = 0;
-        }
+	    firstCall = 0;
+	}
     }
 #endif /* SIGALRM */
 
 
 #if defined(ITIMER_REAL) && !defined(NO_SETITIMER)
     {
-        struct itimerval dt;
-
-        dt.it_interval.tv_sec = 0;
-        dt.it_interval.tv_usec = 0;
-        dt.it_value.tv_sec = millis / 1000;
-        dt.it_value.tv_usec = (millis % 1000) * 1000;  
-        setitimer(ITIMER_REAL, &dt, 0);
-        RETURN (true);
+	struct itimerval dt;
+
+	dt.it_interval.tv_sec = 0;
+	dt.it_interval.tv_usec = 0;
+	dt.it_value.tv_sec = millis / 1000;
+	dt.it_value.tv_usec = (millis % 1000) * 1000;  
+	setitimer(ITIMER_REAL, &dt, 0);
+	RETURN (true);
     }
 #else /* no ITIMER_REAL */
 
 # ifdef USE_SLOW_ALARM
     {
-        /*
-         * last fallback - use alarm (which only gives 1 second resolution).
-         * If the system does not support any of the above, you have to life
-         * with this. The consequence is that pressing CTRL-C processing and
-         * thread switching will take place much delayed.
-         */
-        alarm(1);
-        RETURN(true);
+	/*
+	 * last fallback - use alarm (which only gives 1 second resolution).
+	 * If the system does not support any of the above, you have to life
+	 * with this. The consequence is that pressing CTRL-C processing and
+	 * thread switching will take place much delayed.
+	 */
+	alarm(1);
+	RETURN(true);
     }
 # endif
 #endif /* ITIMER_REAL */
@@ -5455,8 +5459,8 @@
      The process has a no chance to do some cleanup.
 
      WARNING: in order to avoid zombie processes (on unix),
-              you may have to fetch the processes exitstatus with
-              OperatingSystem>>getStatusOfProcess:aProcessId."
+	      you may have to fetch the processes exitstatus with
+	      OperatingSystem>>getStatusOfProcess:aProcessId."
 
     self sendSignal:(self sigKILL) to:processId.
 
@@ -5468,8 +5472,8 @@
      The process has a no chance to do some cleanup.
 
      WARNING: in order to avoid zombie processes (on unix),
-              you may have to fetch the processes exitstatus with
-              OperatingSystem>>getStatusOfProcess:aProcessId."
+	      you may have to fetch the processes exitstatus with
+	      OperatingSystem>>getStatusOfProcess:aProcessId."
 
     self sendSignal:(self sigKILL) to:(processGroupId negated).
 
@@ -5483,17 +5487,17 @@
      Do not confuse UNIX signals with Smalltalk-Signals.
 
      WARNING: in order to avoid zombie processes (on unix),
-              you may have to fetch the processes exitstatus with
-              OperatingSystem>>getStatusOfProcess:aProcessId
-              if the signal terminates that process."
+	      you may have to fetch the processes exitstatus with
+	      OperatingSystem>>getStatusOfProcess:aProcessId
+	      if the signal terminates that process."
 
 %{
     if (__bothSmallInteger(signalNumber, processId)) {
-        if (kill(__intVal(processId), __intVal(signalNumber)) < 0) {
-            @global(LastErrorNumber) = __MKSMALLINT(errno);
-            RETURN ( false );
-        }
-        RETURN ( true );
+	if (kill(__intVal(processId), __intVal(signalNumber)) < 0) {
+	    @global(LastErrorNumber) = __MKSMALLINT(errno);
+	    RETURN ( false );
+	}
+	RETURN ( true );
     }
 %}.
     "/
@@ -5510,7 +5514,7 @@
      On systems, where no virtual timer is available, use the real timer
      (which is of course less correct).
      OBSOLETE: the new messageTally runs as a high prio process, not using 
-               spy interrupts."
+	       spy interrupts."
 
 %{  /* NOCONTEXT */
 
@@ -5549,7 +5553,7 @@
 stopSpyTimer
     "stop spy timing - disable spy timer.
      OBSOLETE: the new messageTally runs as a high prio process, not using 
-               spy interrupts."
+	       spy interrupts."
 
 %{  /* NOCONTEXT */
 
@@ -5572,8 +5576,8 @@
      The process has a chance to do some cleanup.
 
      WARNING: in order to avoid zombie processes (on unix),
-              you may have to fetch the processes exitstatus with
-              OperatingSystem>>getStatusOfProcess:aProcessId."
+	      you may have to fetch the processes exitstatus with
+	      OperatingSystem>>getStatusOfProcess:aProcessId."
 
     self sendSignal:(self sigTERM) to:processId.
 
@@ -5586,8 +5590,8 @@
      The process has a chance to do some cleanup.
 
      WARNING: in order to avoid zombie processes (on unix),
-              you may have to fetch the processes exitstatus with
-              OperatingSystem>>getStatusOfProcess:aProcessId."
+	      you may have to fetch the processes exitstatus with
+	      OperatingSystem>>getStatusOfProcess:aProcessId."
 
     self sendSignal:(self sigTERM) to:(processGroupId negated).
 
@@ -5620,17 +5624,17 @@
 
     line = _getpty(&_fdM, O_RDWR|O_NDELAY, 0600, 0);
     if ((line != 0) && (_fdM >= 0)) {
-        _fdS = open(line, O_RDWR);
-        if (_fdS < 0) {
-            (void)close(_fdM);
-            _fdS = _fdM = -1;
-        }
+	_fdS = open(line, O_RDWR);
+	if (_fdS < 0) {
+	    (void)close(_fdM);
+	    _fdS = _fdM = -1;
+	}
     } else {
-        _fdM -1;
+	_fdM -1;
     }
     if ((_fdM >= 0) && (_fdS >= 0)) {
-         fdM = __MKSMALLINT(_fdM);
-         fdS = __MKSMALLINT(_fdS);
+	 fdM = __MKSMALLINT(_fdM);
+	 fdS = __MKSMALLINT(_fdS);
     }
 #   define NO_PTY_TEMPL
 #endif /* IRIX5 */
@@ -5709,39 +5713,39 @@
 # endif
 
     if ((gr = getgrnam("tty")) != NULL)
-        ttygid = gr->gr_gid;
+	ttygid = gr->gr_gid;
     else
-        ttygid = -1;
+	ttygid = -1;
 
     for (cp1 = PTY_1_CHARS; *cp1; cp1++) {
-        line[len-2] = * cp1;
-
-        for( cp2 = PTY_2_CHARS; *cp2; cp2++ ) {
-            line[PT_INDEX] = 'p';
-            line[len-1] = *cp2;
-
-            if ((_fdM = open(line, O_RDWR, 0)) < 0) {
-                if (errno == ENOENT) {
-                    _fdM = _fdS = -1;
-                    goto getOutOfHere; /* out of ptys */
-                }
-            } else {
-                line[PT_INDEX] = 't';
-                (void) chown( line, getuid(), ttygid );
-                (void) chmod( line, S_IRUSR|S_IWUSR|S_IWGRP );
-
-                if( (_fdS = open(line, O_RDWR, 0)) >= 0 ) {
-                    goto getOutOfHere;
-                }
-                (void) close( _fdM );
-            }
-        }
+	line[len-2] = * cp1;
+
+	for( cp2 = PTY_2_CHARS; *cp2; cp2++ ) {
+	    line[PT_INDEX] = 'p';
+	    line[len-1] = *cp2;
+
+	    if ((_fdM = open(line, O_RDWR, 0)) < 0) {
+		if (errno == ENOENT) {
+		    _fdM = _fdS = -1;
+		    goto getOutOfHere; /* out of ptys */
+		}
+	    } else {
+		line[PT_INDEX] = 't';
+		(void) chown( line, getuid(), ttygid );
+		(void) chmod( line, S_IRUSR|S_IWUSR|S_IWGRP );
+
+		if( (_fdS = open(line, O_RDWR, 0)) >= 0 ) {
+		    goto getOutOfHere;
+		}
+		(void) close( _fdM );
+	    }
+	}
     }
   getOutOfHere: ;
 
     if ((_fdM >= 0) && (_fdS >= 0)) {
-         fdM = __MKSMALLINT(_fdM);
-         fdS = __MKSMALLINT(_fdS);
+	 fdM = __MKSMALLINT(_fdM);
+	 fdS = __MKSMALLINT(_fdS);
     }
 
 #endif /* PTY_TEMPL */
@@ -5750,7 +5754,7 @@
 %}.
 
     fdM notNil ifTrue:[
-        ^ Array with:fdM with:fdS.
+	^ Array with:fdM with:fdS.
     ].
 
     ^ nil
@@ -5768,15 +5772,15 @@
      int fds[2];
 
      if (pipe(fds) < 0) {
-        @global(LastErrorNumber) = __MKSMALLINT(errno);
-        RETURN ( nil );
+	@global(LastErrorNumber) = __MKSMALLINT(errno);
+	RETURN ( nil );
      }
 
      fd1 = __MKSMALLINT(fds[0]);
      fd2 = __MKSMALLINT(fds[1]);
 %}.
     fd1 notNil ifTrue:[
-        ^ Array with:fd1 with:fd2.
+	^ Array with:fd1 with:fd2.
     ].
     ^ nil
 !
@@ -5790,11 +5794,11 @@
     if (__isSmallInteger(fd)
      && __isSmallInteger(w)
      && __isSmallInteger(h)) {
-        wsize.ws_row = (unsigned short)__intVal(h);
-        wsize.ws_col = (unsigned short)__intVal(w);
-        if (ioctl(__intVal(fd), TIOCSWINSZ, (char *)&wsize) >= 0) {
-            RETURN (true);
-        }
+	wsize.ws_row = (unsigned short)__intVal(h);
+	wsize.ws_col = (unsigned short)__intVal(w);
+	if (ioctl(__intVal(fd), TIOCSWINSZ, (char *)&wsize) >= 0) {
+	    RETURN (true);
+	}
     }
 #endif
 %}.
@@ -5837,34 +5841,34 @@
 getDomainName
     "return the domain this host is in.
      Notice:
-        not all systems support this; on some, 'unknown' is returned."
+	not all systems support this; on some, 'unknown' is returned."
 
     |name idx hostName|
 
     DomainName notNil ifTrue:[
-        ^ DomainName
+	^ DomainName
     ].
     name := self primGetDomainName.
     name isNil ifTrue:[
-        "/ fallBack
-        name := self getEnvironment:'DOMAIN'.
-        name isNil ifTrue:[
-            name := self getCommandOutputFrom:'domainname'
-        ]
+	"/ fallBack
+	name := self getEnvironment:'DOMAIN'.
+	name isNil ifTrue:[
+	    name := self getCommandOutputFrom:'domainname'
+	]
     ].
     name isNil ifTrue:[
-        "/ sometimes, we can extract the domainName from the hostName ...
-        hostName := self getHostName.
-        hostName notNil ifTrue:[
-            idx := hostName indexOf:$..
-            idx ~~ 0 ifTrue:[
-                name := hostName copyFrom:idx+1.
-            ]
-        ]. 
-        name isNil ifTrue:[
-            'UnixOperatingSystem [warning]: cannot find out domainname' errorPrintCR.
-            name := 'unknown'.
-        ]
+	"/ sometimes, we can extract the domainName from the hostName ...
+	hostName := self getHostName.
+	hostName notNil ifTrue:[
+	    idx := hostName indexOf:$..
+	    idx ~~ 0 ifTrue:[
+		name := hostName copyFrom:idx+1.
+	    ]
+	]. 
+	name isNil ifTrue:[
+	    'UnixOperatingSystem [warning]: cannot find out domainname' errorPrintCR.
+	    name := 'unknown'.
+	]
     ].
     DomainName := name.
     ^ name
@@ -5885,11 +5889,11 @@
     extern char *getenv();
 
     if (__isString(aStringOrSymbol) || __isSymbol(aStringOrSymbol)) {
-        env =  getenv(__stringVal(aStringOrSymbol));
-        if (env) {
-            RETURN ( __MKSTRING(env) );
-        }
-        RETURN ( nil );
+	env =  getenv(__stringVal(aStringOrSymbol));
+	if (env) {
+	    RETURN ( __MKSTRING(env) );
+	}
+	RETURN ( nil );
     }
 %}.
     ^ self primitiveFailed
@@ -5908,33 +5912,33 @@
     "return the hostname we are running on - if there is
      a HOST environment variable, we are much faster here ...
      Notice:
-        not all systems support this; on some, 'unknown' is returned."
+	not all systems support this; on some, 'unknown' is returned."
 
     |name idx|
 
     HostName notNil ifTrue:[
-        ^ HostName
+	^ HostName
     ].
     name := self primGetHostName.
 
     name isNil ifTrue:[
-        "/ fallBack
-        name := self getEnvironment:'HOST'.
-        name isNil ifTrue:[
-            name := self getCommandOutputFrom:'hostname'
-        ]
+	"/ fallBack
+	name := self getEnvironment:'HOST'.
+	name isNil ifTrue:[
+	    name := self getCommandOutputFrom:'hostname'
+	]
     ].
     name isNil ifTrue:[
-        'UnixOperatingSystem [warning]: cannot find out hostname' errorPrintCR.
-        name := 'unknown'.
+	'UnixOperatingSystem [warning]: cannot find out hostname' errorPrintCR.
+	name := 'unknown'.
     ] ifFalse:[
-        "/ on some systems, the hostname already contains the domain.
-        "/ decompose it here.
-        idx := name indexOf:$..
-        idx ~~ 0 ifTrue:[
-            DomainName := name copyFrom:(idx+1).
-            name := name copyTo:(idx-1).
-        ]
+	"/ on some systems, the hostname already contains the domain.
+	"/ decompose it here.
+	idx := name indexOf:$..
+	idx ~~ 0 ifTrue:[
+	    DomainName := name copyFrom:(idx+1).
+	    name := name copyTo:(idx-1).
+	]
     ].
     HostName := name.
     ^ name
@@ -5948,42 +5952,42 @@
     "return a dictionary filled with values from the locale information;
      Not all fields may be present, depending on the OS's setup and capabilities.
      Possible fields are:
-        decimalPoint                    <String>
-
-        thousandsSep                    <String>
-
-        internationalCurrencySymbol     <String>
-
-        currencySymbol                  <String>
-
-        monetaryDecimalPoint            <String>
-
-        monetaryThousandsSeparator      <String>
-
-        positiveSign                    <String>
-
-        negativeSign                    <String>
-
-        internationalFractionalDigits   <Integer>
-
-        fractionalDigits                <Integer>
-
-        positiveSignPrecedesCurrencySymbol      <Boolean>
-
-        negativeSignPrecedesCurrencySymbol      <Boolean>
-
-        positiveSignSeparatedBySpaceFromCurrencySymbol  <Boolean>
-
-        negativeSignSeparatedBySpaceFromCurrencySymbol  <Boolean>
-
-        positiveSignPosition                            <Symbol>
-                                                        one of: #parenthesesAround, 
-                                                                #signPrecedes, 
-                                                                #signSuceeds, 
-                                                                #signPrecedesCurrencySymbol,
-                                                                #signSuceedsCurrencySymbol
-
-        negativeSignPosition                            <like above>
+	decimalPoint                    <String>
+
+	thousandsSep                    <String>
+
+	internationalCurrencySymbol     <String>
+
+	currencySymbol                  <String>
+
+	monetaryDecimalPoint            <String>
+
+	monetaryThousandsSeparator      <String>
+
+	positiveSign                    <String>
+
+	negativeSign                    <String>
+
+	internationalFractionalDigits   <Integer>
+
+	fractionalDigits                <Integer>
+
+	positiveSignPrecedesCurrencySymbol      <Boolean>
+
+	negativeSignPrecedesCurrencySymbol      <Boolean>
+
+	positiveSignSeparatedBySpaceFromCurrencySymbol  <Boolean>
+
+	negativeSignSeparatedBySpaceFromCurrencySymbol  <Boolean>
+
+	positiveSignPosition                            <Symbol>
+							one of: #parenthesesAround, 
+								#signPrecedes, 
+								#signSuceeds, 
+								#signPrecedesCurrencySymbol,
+								#signSuceedsCurrencySymbol
+
+	negativeSignPosition                            <like above>
 
      it is up to the application to deal with undefined values.
 
@@ -5994,9 +5998,9 @@
     |info val|
 
     LocaleInfo notNil ifTrue:[
-        "/ return the internal info; useful on systems which do not
-        "/ support this.
-        ^ LocaleInfo
+	"/ return the internal info; useful on systems which do not
+	"/ support this.
+	^ LocaleInfo
     ].
 
     info := IdentityDictionary new.
@@ -6017,31 +6021,31 @@
     int   csNegSepBySpace;      /* money: 1 if currency symbol should be separated by a space from a negative value; 0 if no space */
     int   csPosSignPosition;    /* money: 0: ()'s around the value & currency symbol */
     int   csNegSignPosition;    /*        1: sign precedes the value & currency symbol */
-                                /*        2: sign succeeds the value & currency symbol */
-                                /*        3: sign immediately precedes the currency symbol */
-                                /*        4: sign immediately suceeds the currency symbol */
+				/*        2: sign succeeds the value & currency symbol */
+				/*        3: sign immediately precedes the currency symbol */
+				/*        4: sign immediately suceeds the currency symbol */
 
 #if defined(HAS_LOCALECONV)
     struct lconv *conf;
 
     conf = localeconv();
     if (conf) {
-        decimalPoint = conf->decimal_point;
-        thousandsSep = conf->thousands_sep;
-        intCurrencySymbol = conf->int_curr_symbol;
-        currencySymbol = conf->currency_symbol;
-        monDecimalPoint = conf->mon_decimal_point;
-        monThousandsSep = conf->mon_thousands_sep;
-        positiveSign = conf->positive_sign;
-        negativeSign = conf->negative_sign;
-        intFractDigits = conf->int_frac_digits;
-        fractDigits = conf->frac_digits;
-        csPosPrecedes = conf->p_cs_precedes; 
-        csNegPrecedes = conf->n_cs_precedes; 
-        csPosSepBySpace = conf->p_sep_by_space; 
-        csNegSepBySpace = conf->n_sep_by_space; 
-        csPosSignPosition = conf->p_sign_posn;
-        csNegSignPosition = conf->n_sign_posn;
+	decimalPoint = conf->decimal_point;
+	thousandsSep = conf->thousands_sep;
+	intCurrencySymbol = conf->int_curr_symbol;
+	currencySymbol = conf->currency_symbol;
+	monDecimalPoint = conf->mon_decimal_point;
+	monThousandsSep = conf->mon_thousands_sep;
+	positiveSign = conf->positive_sign;
+	negativeSign = conf->negative_sign;
+	intFractDigits = conf->int_frac_digits;
+	fractDigits = conf->frac_digits;
+	csPosPrecedes = conf->p_cs_precedes; 
+	csNegPrecedes = conf->n_cs_precedes; 
+	csPosSepBySpace = conf->p_sep_by_space; 
+	csNegSepBySpace = conf->n_sep_by_space; 
+	csPosSignPosition = conf->p_sign_posn;
+	csNegSignPosition = conf->n_sign_posn;
     }
 #else
     decimalPoint = (char *)0;
@@ -6062,129 +6066,129 @@
     csNegSignPosition = -1;
 #endif
     if (decimalPoint) {
-        val = __MKSTRING(decimalPoint);
-        __AT_PUT_(info, @symbol(decimalPoint), val);
+	val = __MKSTRING(decimalPoint);
+	__AT_PUT_(info, @symbol(decimalPoint), val);
     }
     if (thousandsSep) {
-        val = __MKSTRING(thousandsSep);
-        __AT_PUT_(info, @symbol(thousandsSeparator), val);
+	val = __MKSTRING(thousandsSep);
+	__AT_PUT_(info, @symbol(thousandsSeparator), val);
     }
     if (intCurrencySymbol) {
-        val = __MKSTRING(intCurrencySymbol);
-        __AT_PUT_(info, @symbol(internationCurrencySymbol), val);
+	val = __MKSTRING(intCurrencySymbol);
+	__AT_PUT_(info, @symbol(internationCurrencySymbol), val);
     }
     if (currencySymbol) {
-        val = __MKSTRING(currencySymbol);
-        __AT_PUT_(info, @symbol(currencySymbol), val);
+	val = __MKSTRING(currencySymbol);
+	__AT_PUT_(info, @symbol(currencySymbol), val);
     }
     if (monDecimalPoint) {
-        val = __MKSTRING(monDecimalPoint);
-        __AT_PUT_(info, @symbol(monetaryDecimalPoint), val);
+	val = __MKSTRING(monDecimalPoint);
+	__AT_PUT_(info, @symbol(monetaryDecimalPoint), val);
     }
     if (monThousandsSep) {
-        val = __MKSTRING(monThousandsSep);
-        __AT_PUT_(info, @symbol(monetaryThousandsSeparator), val);
+	val = __MKSTRING(monThousandsSep);
+	__AT_PUT_(info, @symbol(monetaryThousandsSeparator), val);
     }
     if (positiveSign) {
-        val = __MKSTRING(positiveSign);
-        __AT_PUT_(info, @symbol(positiveSign), val);
+	val = __MKSTRING(positiveSign);
+	__AT_PUT_(info, @symbol(positiveSign), val);
     }
     if (negativeSign) {
-        val = __MKSTRING(negativeSign);
-        __AT_PUT_(info, @symbol(negativeSign), val);
+	val = __MKSTRING(negativeSign);
+	__AT_PUT_(info, @symbol(negativeSign), val);
     }
     if (intFractDigits >= 0) {
-        __AT_PUT_(info, @symbol(internationalFractionalDigits),  __MKSMALLINT(intFractDigits));
+	__AT_PUT_(info, @symbol(internationalFractionalDigits),  __MKSMALLINT(intFractDigits));
     }
     if (fractDigits >= 0) {
-        __AT_PUT_(info, @symbol(fractionalDigits),  __MKSMALLINT(fractDigits));
+	__AT_PUT_(info, @symbol(fractionalDigits),  __MKSMALLINT(fractDigits));
     }
     if (csPosPrecedes >= 0) {
-        if (csPosPrecedes == 0) {
-            val = false;
-        } else {
-            val = true;
-        }
-        __AT_PUT_(info, @symbol(positiveSignPrecedesCurrencySymbol), val );
+	if (csPosPrecedes == 0) {
+	    val = false;
+	} else {
+	    val = true;
+	}
+	__AT_PUT_(info, @symbol(positiveSignPrecedesCurrencySymbol), val );
     }
     if (csNegPrecedes >= 0) {
-        if (csNegPrecedes == 0) {
-            val = false;
-        } else {
-            val = true;
-        }
-        __AT_PUT_(info, @symbol(negativeSignPrecedesCurrencySymbol), val );
+	if (csNegPrecedes == 0) {
+	    val = false;
+	} else {
+	    val = true;
+	}
+	__AT_PUT_(info, @symbol(negativeSignPrecedesCurrencySymbol), val );
     }
     if (csPosSepBySpace >= 0) {
-        if (csPosSepBySpace == 0) {
-            val = false;
-        } else {
-            val = true;
-        }
-        __AT_PUT_(info, @symbol(positiveSignSeparatedBySpaceFromCurrencySymbol), val);
+	if (csPosSepBySpace == 0) {
+	    val = false;
+	} else {
+	    val = true;
+	}
+	__AT_PUT_(info, @symbol(positiveSignSeparatedBySpaceFromCurrencySymbol), val);
     }
     if (csNegSepBySpace >= 0) {
-        if (csNegSepBySpace == 0) {
-            val = false;
-        } else {
-            val = true;
-        }
-        __AT_PUT_(info, @symbol(negativeSignSeparatedBySpaceFromCurrencySymbol), val);
+	if (csNegSepBySpace == 0) {
+	    val = false;
+	} else {
+	    val = true;
+	}
+	__AT_PUT_(info, @symbol(negativeSignSeparatedBySpaceFromCurrencySymbol), val);
     }
     switch (csPosSignPosition) {
-        case 0:
-            val = @symbol(parenthesesAround);
-            break;
-
-        case 1:
-            val = @symbol(signPrecedes);
-            break;
-
-        case 2:
-            val = @symbol(signSuceeds);
-            break;
-
-        case 3:
-            val = @symbol(signPrecedesCurrencySymbol);
-            break;
-
-        case 4:
-            val = @symbol(signSuceedsCurrencySymbol);
-            break;
-
-        default:
-            val = nil;
+	case 0:
+	    val = @symbol(parenthesesAround);
+	    break;
+
+	case 1:
+	    val = @symbol(signPrecedes);
+	    break;
+
+	case 2:
+	    val = @symbol(signSuceeds);
+	    break;
+
+	case 3:
+	    val = @symbol(signPrecedesCurrencySymbol);
+	    break;
+
+	case 4:
+	    val = @symbol(signSuceedsCurrencySymbol);
+	    break;
+
+	default:
+	    val = nil;
     }
     if (val != nil) {
-        __AT_PUT_(info, @symbol(positiveSignPosition), val);
+	__AT_PUT_(info, @symbol(positiveSignPosition), val);
     }
 
     switch (csNegSignPosition) {
-        case 0:
-            val = @symbol(parenthesesAround);
-            break;
-
-        case 1:
-            val = @symbol(signPrecedes);
-            break;
-
-        case 2:
-            val = @symbol(signSuceeds);
-            break;
-
-        case 3:
-            val = @symbol(signPrecedesCurrencySymbol);
-            break;
-
-        case 4:
-            val = @symbol(signSuceedsCurrencySymbol);
-            break;
-
-        default:
-            val = nil;
+	case 0:
+	    val = @symbol(parenthesesAround);
+	    break;
+
+	case 1:
+	    val = @symbol(signPrecedes);
+	    break;
+
+	case 2:
+	    val = @symbol(signSuceeds);
+	    break;
+
+	case 3:
+	    val = @symbol(signPrecedesCurrencySymbol);
+	    break;
+
+	case 4:
+	    val = @symbol(signSuceedsCurrencySymbol);
+	    break;
+
+	default:
+	    val = nil;
     }
     if (val != nil) {
-        __AT_PUT_(info, @symbol(negativeSignPosition), val);
+	__AT_PUT_(info, @symbol(negativeSignPosition), val);
     }
 %}.
     ^ info
@@ -6215,7 +6219,7 @@
     "if supported by the OS, return the systemID;
      a unique per machine identification.
      WARNING:
-        not all systems support this; on some, 'unknown' is returned."
+	not all systems support this; on some, 'unknown' is returned."
 
 %{  /* NO_CONTEXT */
 #if defined(IRIX5) && !defined(HAS_GETHOSTID)
@@ -6224,9 +6228,9 @@
     OBJ arr;
 
     if ((retVal = syssgi(SGI_SYSID, idBuffer)) == 0) {
-        arr = __BYTEARRAY_UNINITIALIZED_NEW_INT(MAXSYSIDSIZE);
-        bcopy(idBuffer, __ByteArrayInstPtr(arr)->ba_element, MAXSYSIDSIZE);
-        RETURN (arr);
+	arr = __BYTEARRAY_UNINITIALIZED_NEW_INT(MAXSYSIDSIZE);
+	bcopy(idBuffer, __ByteArrayInstPtr(arr)->ba_element, MAXSYSIDSIZE);
+	RETURN (arr);
     }
 #endif
 #if defined(HAS_GETHOSTID)
@@ -6240,15 +6244,15 @@
 #endif
 #if defined(HAS_SYSINFO) && defined(SI_HW_SERIAL)
     {
-        char buffer[128];
-
-        buffer[0] = 0;
-        if (sysinfo(SI_HW_SERIAL, buffer, sizeof(buffer))) {
-            buffer[127] = 0;
-            if (strlen(buffer) > 0) {
-                RETURN(__MKSTRING(buffer));
-            }
-        }
+	char buffer[128];
+
+	buffer[0] = 0;
+	if (sysinfo(SI_HW_SERIAL, buffer, sizeof(buffer))) {
+	    buffer[127] = 0;
+	    if (strlen(buffer) > 0) {
+		RETURN(__MKSTRING(buffer));
+	    }
+	}
     }
 #endif
 %}.
@@ -6272,52 +6276,52 @@
        This method is mainly provided to augment error reports with some system
        information. 
        (in case of system/version specific OS errors, conditional workarounds and patches
-        may be based upon this info).
+	may be based upon this info).
        Also, applications could enable/disable buffering or otherwise reduce
        their memory usage depending upon the amount of memory installed.
        Your application may make use of available information for tuning,
        but should NEVER DEPEND upon this in any way.
 
      The returned info may (or may not) contain:
-        #system -> some operating system identification (irix, Linux, nt, win32s ...) 
-        #version -> OS version (some os version identification)
-        #release -> OS release (3.5, 1.2.1 ...)
-        #node   -> some host identification (hostname)
-        #domain  -> domain name (hosts domain)
-        #machine -> type of CPU (i586, mips ...)
+	#system -> some operating system identification (irix, Linux, nt, win32s ...) 
+	#version -> OS version (some os version identification)
+	#release -> OS release (3.5, 1.2.1 ...)
+	#node   -> some host identification (hostname)
+	#domain  -> domain name (hosts domain)
+	#machine -> type of CPU (i586, mips ...)
      
      those are currently returned on some machines (no warranty)
      linux:
-        #totalRam         -> total amount of memory available
-        #sharedRam        -> amount of memory which is shared among processes
-                             (i.e. shared code)
-        #bufferRam        -> amount used for buffers
-        #swapSize         -> total size of swap space
-        #freeSwap         -> free amount in swapSpace
-        #extendedInstructions -> extended instruction set info
+	#totalRam         -> total amount of memory available
+	#sharedRam        -> amount of memory which is shared among processes
+			     (i.e. shared code)
+	#bufferRam        -> amount used for buffers
+	#swapSize         -> total size of swap space
+	#freeSwap         -> free amount in swapSpace
+	#extendedInstructions -> extended instruction set info
 
      osf:
-        #physicalRam      -> total amount of physical memory
-        #cpuType          -> type of cpu (more detailed than machine)
-        #numberOfCPUs     -> number of cpus in box
+	#physicalRam      -> total amount of physical memory
+	#cpuType          -> type of cpu (more detailed than machine)
+	#numberOfCPUs     -> number of cpus in box
         
      solaris:
-        #physicalRam      -> total amount of physical memory
-        #availableRam     -> total available amount of physical memory (i.e. unused ram)
-        #freeRam          -> amount of free memory
-        #numberOfCPUs     -> number of cpus in box (online CPUS)
-        [#dCacheSize]     -> bytes in data cache (only available on some solaris versions)
-        [#iCacheSize]     -> bytes in data cache (only available on some solaris versions)
-        [#instructionSets]-> instruction sets available (only available on some solaris versions)
-        [#platform]       -> platform name (only available on some solaris versions)
+	#physicalRam      -> total amount of physical memory
+	#availableRam     -> total available amount of physical memory (i.e. unused ram)
+	#freeRam          -> amount of free memory
+	#numberOfCPUs     -> number of cpus in box (online CPUS)
+	[#dCacheSize]     -> bytes in data cache (only available on some solaris versions)
+	[#iCacheSize]     -> bytes in data cache (only available on some solaris versions)
+	[#instructionSets]-> instruction sets available (only available on some solaris versions)
+	[#platform]       -> platform name (only available on some solaris versions)
 
      hpux:
-        #physicalRam      -> total amount of physical memory in box
-        #activeRealMemory -> ? - read pstat documentation
-        #activeVirtualRam -> ? - read pstat documentation
-        #freeMemory       -> ? - read pstat documentation
-        #realMemory       -> ? (amount of memory left to user programs)
-        #virtualRam       -> ? - read pstat documentation
+	#physicalRam      -> total amount of physical memory in box
+	#activeRealMemory -> ? - read pstat documentation
+	#activeVirtualRam -> ? - read pstat documentation
+	#freeMemory       -> ? - read pstat documentation
+	#realMemory       -> ? (amount of memory left to user programs)
+	#virtualRam       -> ? - read pstat documentation
     "
 
     |sys node rel ver mach dom mtyp brel info arch cpuType cpuSpeed
@@ -6335,11 +6339,11 @@
     struct sysinfo infoBuffer;
 
     if (sysinfo(&infoBuffer) >= 0) {
-        totalRam   = __MKUINT(infoBuffer.totalram);
-        sharedRam = __MKUINT(infoBuffer.sharedram);
-        bufferRam = __MKUINT(infoBuffer.bufferram);
-        swapSize  = __MKUINT(infoBuffer.totalswap);
-        freeSwap  = __MKUINT(infoBuffer.freeswap);
+	totalRam   = __MKUINT(infoBuffer.totalram);
+	sharedRam = __MKUINT(infoBuffer.sharedram);
+	bufferRam = __MKUINT(infoBuffer.bufferram);
+	swapSize  = __MKUINT(infoBuffer.totalswap);
+	freeSwap  = __MKUINT(infoBuffer.freeswap);
     }
 # endif
 #endif /* LINUX */
@@ -6362,18 +6366,18 @@
 
 #if defined(HAS_UNAME)
     {
-        struct utsname ubuff;
-
-        if (uname(&ubuff) >= 0) {
-            sys  = __MKSTRING(ubuff.sysname);
-            node = __MKSTRING(ubuff.nodename);
-            rel  = __MKSTRING(ubuff.release);
-            ver  = __MKSTRING(ubuff.version);
-            mach = __MKSTRING(ubuff.machine);
+	struct utsname ubuff;
+
+	if (uname(&ubuff) >= 0) {
+	    sys  = __MKSTRING(ubuff.sysname);
+	    node = __MKSTRING(ubuff.nodename);
+	    rel  = __MKSTRING(ubuff.release);
+	    ver  = __MKSTRING(ubuff.version);
+	    mach = __MKSTRING(ubuff.machine);
 # ifdef HAS_UTS_DOMAINNAME
-            dom  = __MKSTRING(ubuff.domainname);
+	    dom  = __MKSTRING(ubuff.domainname);
 # endif /* no HAS_UTS_DOMAINNAME */
-        }
+	}
     }
 
 #else /* no UNAME */
@@ -6386,468 +6390,468 @@
 #if defined(HAS_SYSINFO)
 # if defined(SI_ARCHITECTURE)
     if (arch == nil) {
-        char buffer[128];
-
-        if (sysinfo(SI_ARCHITECTURE, buffer, sizeof(buffer))) {
-            arch = __MKSTRING(buffer);
-        }
+	char buffer[128];
+
+	if (sysinfo(SI_ARCHITECTURE, buffer, sizeof(buffer))) {
+	    arch = __MKSTRING(buffer);
+	}
     }
 # endif /* SI_ARCHITECTURE */
 
 # if defined(SI_ISALIST)
     {
-        char buffer[128];
-
-        if (sysinfo(SI_ISALIST, buffer, sizeof(buffer))) {
-            instructionSets = __MKSTRING(buffer);
-        }
+	char buffer[128];
+
+	if (sysinfo(SI_ISALIST, buffer, sizeof(buffer))) {
+	    instructionSets = __MKSTRING(buffer);
+	}
     }
 # endif /* SI_ISALIST */
 
 # if defined(SI_PLATFORM)
     {
-        char buffer[128];
-
-        if (sysinfo(SI_PLATFORM, buffer, sizeof(buffer))) {
-            platform = __MKSTRING(buffer);
-        }
+	char buffer[128];
+
+	if (sysinfo(SI_PLATFORM, buffer, sizeof(buffer))) {
+	    platform = __MKSTRING(buffer);
+	}
     }
 # endif /* SI_PLATFORM */
 
 # if defined(SI_RELEASE)
     {
-        char buffer[128];
-
-        if (sysinfo(SI_RELEASE, buffer, sizeof(buffer))) {
-            rel = __MKSTRING(buffer);
-        }
+	char buffer[128];
+
+	if (sysinfo(SI_RELEASE, buffer, sizeof(buffer))) {
+	    rel = __MKSTRING(buffer);
+	}
     }
 # endif /* SI_RELEASE */
 #endif /* HAS_SYSINFO */
 
 #if defined(HAS_GETDOMAINNAME)
     if (dom == nil) {
-        char buffer[128];
-
-        if (getdomainname(buffer, sizeof(buffer)) == 0) {
-            dom = __MKSTRING(buffer);
-        }
+	char buffer[128];
+
+	if (getdomainname(buffer, sizeof(buffer)) == 0) {
+	    dom = __MKSTRING(buffer);
+	}
     }
 #endif /* HAS_GETDOMAINNAME */
 
 #if defined(HAS_SYSCONF)
 # ifdef _SC_NPROCESSORS_ONLN
     {
-        long val;
+	long val;
  
-        val = sysconf(_SC_NPROCESSORS_ONLN);
-        if (val > 0) {
-            numberOfCPUs = __MKINT(val);
-        }
+	val = sysconf(_SC_NPROCESSORS_ONLN);
+	if (val > 0) {
+	    numberOfCPUs = __MKINT(val);
+	}
     }
 # endif
 
 # if defined(_SC_PAGESIZE)
     {
-        long val;
-
-        val = sysconf(_SC_PAGESIZE);
-        if (val != -1) {
-            pageSize = __MKUINT(val);
-        }
+	long val;
+
+	val = sysconf(_SC_PAGESIZE);
+	if (val != -1) {
+	    pageSize = __MKUINT(val);
+	}
     }
 # endif
 
 # if defined(_SC_PHYS_PAGES)
     {
-        long val;
-
-        val = sysconf(_SC_PHYS_PAGES);
-        if (val != -1) {
-            physicalPages = __MKUINT(val);
-        }
+	long val;
+
+	val = sysconf(_SC_PHYS_PAGES);
+	if (val != -1) {
+	    physicalPages = __MKUINT(val);
+	}
     }
 # endif
 
 # if defined(_SC_AVPHYS_PAGES)
     {
-        long val;
-
-        val = sysconf(_SC_AVPHYS_PAGES);
-        if (val != -1) {
-            availablePages = __MKUINT(val);
-        }
+	long val;
+
+	val = sysconf(_SC_AVPHYS_PAGES);
+	if (val != -1) {
+	    availablePages = __MKUINT(val);
+	}
     }
 # endif
 
 # if defined(_SC_ICACHE_SZ)
     {
-        long val;
-
-        val = sysconf(_SC_ICACHE_SZ);
-        if (val != -1) {
-            iCacheSize = __MKUINT(val);
-        }
+	long val;
+
+	val = sysconf(_SC_ICACHE_SZ);
+	if (val != -1) {
+	    iCacheSize = __MKUINT(val);
+	}
     }
 # endif
 
 # if defined(_SC_DCACHE_SZ)
     {
-        long val;
+	long val;
  
-        val = sysconf(_SC_DCACHE_SZ);
-        if (val != -1) {
-            dCacheSize = __MKUINT(val);
-        }
+	val = sysconf(_SC_DCACHE_SZ);
+	if (val != -1) {
+	    dCacheSize = __MKUINT(val);
+	}
     }
 # endif
 #endif /* HAS_SYSCONF */
 
 #if defined(HAS_GETSYSINFO)
     {
-        INT index;
-        int retInt32 = 0;
+	INT index;
+	int retInt32 = 0;
 
 # if defined(GSI_CPU)
-        index = 0;
-        if (getsysinfo(GSI_CPU, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
-            switch (retInt32) {
+	index = 0;
+	if (getsysinfo(GSI_CPU, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
+	    switch (retInt32) {
 #  ifdef VAX_780
-                case VAX_780:
-                    cpuType = __MKSTRING("VAX_780");
-                    break;
+		case VAX_780:
+		    cpuType = __MKSTRING("VAX_780");
+		    break;
 #  endif
 #  ifdef VAX_750
-                case VAX_750:
-                    cpuType = __MKSTRING("VAX_750");
-                    break;
+		case VAX_750:
+		    cpuType = __MKSTRING("VAX_750");
+		    break;
 #  endif
 #  ifdef VAX_730
-                case VAX_730:
-                    cpuType = __MKSTRING("VAX_730");
-                    break;
+		case VAX_730:
+		    cpuType = __MKSTRING("VAX_730");
+		    break;
 #  endif
 #  ifdef VAX_8600
-                case VAX_8600:
-                    cpuType = __MKSTRING("VAX_8600");
-                    break;
+		case VAX_8600:
+		    cpuType = __MKSTRING("VAX_8600");
+		    break;
 #  endif
 #  ifdef VAX_8200
-                case VAX_8200:
-                    cpuType = __MKSTRING("VAX_8200");
-                    break;
+		case VAX_8200:
+		    cpuType = __MKSTRING("VAX_8200");
+		    break;
 #  endif
 #  ifdef VAX_8800
-                case VAX_8800:
-                    cpuType = __MKSTRING("VAX_8800");
-                    break;
+		case VAX_8800:
+		    cpuType = __MKSTRING("VAX_8800");
+		    break;
 #  endif
 #  ifdef MVAX_I
-                case MVAX_I:
-                    cpuType = __MKSTRING("MVAX_I");
-                    break;
+		case MVAX_I:
+		    cpuType = __MKSTRING("MVAX_I");
+		    break;
 #  endif
 #  ifdef MVAX_II
-                case MVAX_II:
-                    cpuType = __MKSTRING("MVAX_II");
-                    break;
+		case MVAX_II:
+		    cpuType = __MKSTRING("MVAX_II");
+		    break;
 #  endif
 #  ifdef V_VAX
-                case V_VAX:
-                    cpuType = __MKSTRING("V_VAX");
-                    break;
+		case V_VAX:
+		    cpuType = __MKSTRING("V_VAX");
+		    break;
 #  endif
 #  ifdef VAX_3600
-                case VAX_3600:
-                    cpuType = __MKSTRING("VAX_3600");
-                    break;
+		case VAX_3600:
+		    cpuType = __MKSTRING("VAX_3600");
+		    break;
 #  endif
 #  ifdef VAX_6200
-                case VAX_6200:
-                    cpuType = __MKSTRING("VAX_6200");
-                    break;
+		case VAX_6200:
+		    cpuType = __MKSTRING("VAX_6200");
+		    break;
 #  endif
 #  ifdef VAX_3400
-                case VAX_3400:
-                    cpuType = __MKSTRING("VAX_3400");
-                    break;
+		case VAX_3400:
+		    cpuType = __MKSTRING("VAX_3400");
+		    break;
 #  endif
 #  ifdef C_VAXSTAR
-                case C_VAXSTAR:
-                    cpuType = __MKSTRING("C_VAXSTAR");
-                    break;
+		case C_VAXSTAR:
+		    cpuType = __MKSTRING("C_VAXSTAR");
+		    break;
 #  endif
 #  ifdef VAX_60
-                case VAX_60:
-                    cpuType = __MKSTRING("VAX_60");
-                    break;
+		case VAX_60:
+		    cpuType = __MKSTRING("VAX_60");
+		    break;
 #  endif
 #  ifdef VAX_3900
-                case VAX_3900:
-                    cpuType = __MKSTRING("VAX_3900");
-                    break;
+		case VAX_3900:
+		    cpuType = __MKSTRING("VAX_3900");
+		    break;
 #  endif
 #  ifdef DS_3100
-                case DS_3100:
-                    cpuType = __MKSTRING("DS_3100");
-                    break;
+		case DS_3100:
+		    cpuType = __MKSTRING("DS_3100");
+		    break;
 #  endif
 #  ifdef VAX_8820
-                case VAX_8820:
-                    cpuType = __MKSTRING("VAX_8820");
-                    break;
+		case VAX_8820:
+		    cpuType = __MKSTRING("VAX_8820");
+		    break;
 #  endif
 #  ifdef DS_5400
-                case DS_5400:
-                    cpuType = __MKSTRING("DS_5400");
-                    break;
+		case DS_5400:
+		    cpuType = __MKSTRING("DS_5400");
+		    break;
 #  endif
 #  ifdef DS_5800
-                case DS_5800:
-                    cpuType = __MKSTRING("DS_5800");
-                    break;
+		case DS_5800:
+		    cpuType = __MKSTRING("DS_5800");
+		    break;
 #  endif
 #  ifdef DS_5000
-                case DS_5000:
-                    cpuType = __MKSTRING("DS_5000");
-                    break;
+		case DS_5000:
+		    cpuType = __MKSTRING("DS_5000");
+		    break;
 #  endif
 #  ifdef DS_CMAX
-                case DS_CMAX:
-                    cpuType = __MKSTRING("DS_CMAX");
-                    break;
+		case DS_CMAX:
+		    cpuType = __MKSTRING("DS_CMAX");
+		    break;
 #  endif
 #  ifdef VAX_6400
-                case VAX_6400:
-                    cpuType = __MKSTRING("VAX_6400");
-                    break;
+		case VAX_6400:
+		    cpuType = __MKSTRING("VAX_6400");
+		    break;
 #  endif
 #  ifdef VAXSTAR
-                case VAXSTAR:
-                    cpuType = __MKSTRING("VAXSTAR");
-                    break;
+		case VAXSTAR:
+		    cpuType = __MKSTRING("VAXSTAR");
+		    break;
 #  endif
 #  ifdef DS_5500
-                case DS_5500:
-                    cpuType = __MKSTRING("DS_5500");
-                    break;
+		case DS_5500:
+		    cpuType = __MKSTRING("DS_5500");
+		    break;
 #  endif
 #  ifdef DS_5100
-                case DS_5100:
-                    cpuType = __MKSTRING("DS_5100");
-                    break;
+		case DS_5100:
+		    cpuType = __MKSTRING("DS_5100");
+		    break;
 #  endif
 #  ifdef VAX_9000
-                case VAX_9000:
-                    cpuType = __MKSTRING("VAX_9000");
-                    break;
+		case VAX_9000:
+		    cpuType = __MKSTRING("VAX_9000");
+		    break;
 #  endif
 #  ifdef DS_500_100
-                case DS_500_100:
-                    cpuType = __MKSTRING("DS_500_100");
-                    break;
+		case DS_500_100:
+		    cpuType = __MKSTRING("DS_500_100");
+		    break;
 #  endif
 
 
 #  ifdef ALPHA_ADU
-                case ALPHA_ADU:
-                    cpuType = __MKSTRING("ALPHA_ADU");
-                    break;
+		case ALPHA_ADU:
+		    cpuType = __MKSTRING("ALPHA_ADU");
+		    break;
 #  endif
 #  ifdef DEC_4000
-                case DEC_4000:
-                    cpuType = __MKSTRING("DEC_4000");
-                    break;
+		case DEC_4000:
+		    cpuType = __MKSTRING("DEC_4000");
+		    break;
 #  endif
 #  ifdef DEC_3000_500
-                case DEC_3000_500:
-                    cpuType = __MKSTRING("DEC_3000_500");
-                    break;
+		case DEC_3000_500:
+		    cpuType = __MKSTRING("DEC_3000_500");
+		    break;
 #  endif
 #  ifdef DEC_7000
-                case DEC_7000:
-                    cpuType = __MKSTRING("DEC_7000");
-                    break;
+		case DEC_7000:
+		    cpuType = __MKSTRING("DEC_7000");
+		    break;
 #  endif
 #  ifdef DS_5000_300
-                case DS_5000_300:
-                    cpuType = __MKSTRING("DS_5000_300");
-                    break;
+		case DS_5000_300:
+		    cpuType = __MKSTRING("DS_5000_300");
+		    break;
 #  endif
 #  ifdef DEC_3000_300
-                case DEC_3000_300:
-                    cpuType = __MKSTRING("DEC_3000_300");
-                    break;
+		case DEC_3000_300:
+		    cpuType = __MKSTRING("DEC_3000_300");
+		    break;
 #  endif
 #  ifdef DEC_2000_300
-                case DEC_2000_300:
-                    cpuType = __MKSTRING("DEC_2000_300");
-                    break;
+		case DEC_2000_300:
+		    cpuType = __MKSTRING("DEC_2000_300");
+		    break;
 #  endif
 #  ifdef DEC_2100_A500
-                case DEC_2100_A500:
-                    cpuType = __MKSTRING("DEC_2100_A500");
-                    break;
+		case DEC_2100_A500:
+		    cpuType = __MKSTRING("DEC_2100_A500");
+		    break;
 #  endif
 #  ifdef DEC_2100_A50
-                case DEC_2100_A50:
-                    cpuType = __MKSTRING("DEC_2100_A50");
-                    break;
+		case DEC_2100_A50:
+		    cpuType = __MKSTRING("DEC_2100_A50");
+		    break;
 #  endif
 #  ifdef ALPHA_KN20AA
-                case ALPHA_KN20AA:
-                    cpuType = __MKSTRING("ALPHA_KN20AA");
-                    break;
+		case ALPHA_KN20AA:
+		    cpuType = __MKSTRING("ALPHA_KN20AA");
+		    break;
 #  endif
 #  ifdef DEC_21000
-                case DEC_21000:
-                    cpuType = __MKSTRING("DEC_21000");
-                    break;
+		case DEC_21000:
+		    cpuType = __MKSTRING("DEC_21000");
+		    break;
 #  endif
 #  ifdef DEC_AXPVME_64
-                case DEC_AXPVME_64:
-                    cpuType = __MKSTRING("DEC_AXPVME_64");
-                    break;
+		case DEC_AXPVME_64:
+		    cpuType = __MKSTRING("DEC_AXPVME_64");
+		    break;
 #  endif
 #  ifdef DEC_2100_C500
-                case DEC_2100_C500:
-                    cpuType = __MKSTRING("DEC_2100_C500");
-                    break;
+		case DEC_2100_C500:
+		    cpuType = __MKSTRING("DEC_2100_C500");
+		    break;
 #  endif
 #  ifdef DEC_AXPPCI_33
-                case DEC_AXPPCI_33:
-                    cpuType = __MKSTRING("DEC_AXPPCI_33");
-                    break;
+		case DEC_AXPPCI_33:
+		    cpuType = __MKSTRING("DEC_AXPPCI_33");
+		    break;
 #  endif
 #  ifdef DEC_1000
-                case DEC_1000:
-                    cpuType = __MKSTRING("DEC_1000");
-                    break;
+		case DEC_1000:
+		    cpuType = __MKSTRING("DEC_1000");
+		    break;
 #  endif
 #  ifdef EB64_PLUS
-                case EB64_PLUS:
-                    cpuType = __MKSTRING("EB64_PLUS");
-                    break;
+		case EB64_PLUS:
+		    cpuType = __MKSTRING("EB64_PLUS");
+		    break;
 #  endif
 #  ifdef LCA_EB66
-                case LCA_EB66:
-                    cpuType = __MKSTRING("LCA_EB66");
-                    break;
+		case LCA_EB66:
+		    cpuType = __MKSTRING("LCA_EB66");
+		    break;
 #  endif
 #  ifdef ALPHA_EB164
-                case ALPHA_EB164:
-                    cpuType = __MKSTRING("ALPHA_EB164");
-                    break;
+		case ALPHA_EB164:
+		    cpuType = __MKSTRING("ALPHA_EB164");
+		    break;
 #  endif
 #  ifdef DEC_EV45_PBP
-                case DEC_EV45_PBP:
-                    cpuType = __MKSTRING("DEC_EV45_PBP");
-                    break;
+		case DEC_EV45_PBP:
+		    cpuType = __MKSTRING("DEC_EV45_PBP");
+		    break;
 #  endif
 #  ifdef DEC_1000A
-                case DEC_1000A:
-                    cpuType = __MKSTRING("DEC_1000A");
-                    break;
+		case DEC_1000A:
+		    cpuType = __MKSTRING("DEC_1000A");
+		    break;
 #  endif
 #  ifdef DEC_4100
-                case DEC_4100:
-                    cpuType = __MKSTRING("DEC_4100");
-                    break;
+		case DEC_4100:
+		    cpuType = __MKSTRING("DEC_4100");
+		    break;
 #  endif
 #  ifdef DEC_ALPHAVME_224
-                case DEC_ALPHAVME_224:
-                    cpuType = __MKSTRING("DEC_ALPHAVME_224");
-                    break;
+		case DEC_ALPHAVME_224:
+		    cpuType = __MKSTRING("DEC_ALPHAVME_224");
+		    break;
 #  endif
 #  ifdef DEC_1000_5
-                case DEC_1000_5:
-                    cpuType = __MKSTRING("DEC_1000_5");
-                    break;
+		case DEC_1000_5:
+		    cpuType = __MKSTRING("DEC_1000_5");
+		    break;
 #  endif
 #  ifdef DEC_1000A_5
-                case DEC_1000A_5:
-                    cpuType = __MKSTRING("DEC_1000A_5");
-                    break;
+		case DEC_1000A_5:
+		    cpuType = __MKSTRING("DEC_1000A_5");
+		    break;
 #  endif
 #  ifdef DEC_EV56_PBP
-                case DEC_EV56_PBP:
-                    cpuType = __MKSTRING("DEC_EV56_PBP");
-                    break;
+		case DEC_EV56_PBP:
+		    cpuType = __MKSTRING("DEC_EV56_PBP");
+		    break;
 #  endif
 #  ifdef ALPHABOOK
-                case ALPHABOOK:
-                    cpuType = __MKSTRING("ALPHABOOK");
-                    break;
+		case ALPHABOOK:
+		    cpuType = __MKSTRING("ALPHABOOK");
+		    break;
 #  endif
 #  ifdef DEC_ALPHAVME_320
-                case DEC_ALPHAVME_320:
-                    cpuType = __MKSTRING("DEC_ALPHAVME_320");
-                    break;
+		case DEC_ALPHAVME_320:
+		    cpuType = __MKSTRING("DEC_ALPHAVME_320");
+		    break;
 #  endif
 #  ifdef DEC_550
-                case DEC_550:
-                    cpuType = __MKSTRING("DEC_550");
-                    break;
+		case DEC_550:
+		    cpuType = __MKSTRING("DEC_550");
+		    break;
 #  endif
 #  ifdef DEC_6600
-                case DEC_6600:
-                    cpuType = __MKSTRING("DEC_6600");
-                    break;
+		case DEC_6600:
+		    cpuType = __MKSTRING("DEC_6600");
+		    break;
 #  endif
 #  ifdef UNKN_SYSTEM
-                case UNKN_SYSTEM:
-                    cpuType = __MKSTRING("UNKN_SYSTEM");
-                    break;
+		case UNKN_SYSTEM:
+		    cpuType = __MKSTRING("UNKN_SYSTEM");
+		    break;
 #  endif
-                default:
-                    cpuType = __MKSTRING("OTHER_DEC_SYSTEM");
-                    break;
-            }
-        }
+		default:
+		    cpuType = __MKSTRING("OTHER_DEC_SYSTEM");
+		    break;
+	    }
+	}
 # endif /* GSI_CPU */
 
 # if defined(GSI_CPU_INFO)
-        /*
-         * stupid: OSF1 pre V4.0 has no mhz, but V4.0 has it.
-         * use the GSI_PLATFORM_NAME as a hint - it is only defined in
-         * V4.0 and higher ... (sigh)
-         */
+	/*
+	 * stupid: OSF1 pre V4.0 has no mhz, but V4.0 has it.
+	 * use the GSI_PLATFORM_NAME as a hint - it is only defined in
+	 * V4.0 and higher ... (sigh)
+	 */
 #  if defined GSI_PLATFORM_NAME
-        {
-            struct cpu_info cpuInfo;
-
-            index = 0;
-            if (getsysinfo(GSI_CPU_INFO, &cpuInfo, sizeof(cpuInfo), &index, NULL) > 0) {
-                cpuSpeed   = __MKUINT(cpuInfo.mhz);
-            }
-        }
+	{
+	    struct cpu_info cpuInfo;
+
+	    index = 0;
+	    if (getsysinfo(GSI_CPU_INFO, &cpuInfo, sizeof(cpuInfo), &index, NULL) > 0) {
+		cpuSpeed   = __MKUINT(cpuInfo.mhz);
+	    }
+	}
 #  endif
 # endif /* GSI_CPU_INFO */
 
 # if defined(GSI_CPUS_IN_BOX)
-        index = 0;
-        if (getsysinfo(GSI_CPUS_IN_BOX, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
-            numberOfCPUs   = __MKUINT(retInt32);
-        }
+	index = 0;
+	if (getsysinfo(GSI_CPUS_IN_BOX, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
+	    numberOfCPUs   = __MKUINT(retInt32);
+	}
 # endif /* GSI_CPUS_IN_BOX */
 
 # if defined(GSI_PHYSMEM)
-        index = 0;
-        if (getsysinfo(GSI_PHYSMEM, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
-            INT bytes = retInt32 * 1024;
-
-            physicalRam   = __MKUINT(bytes);
-        }
+	index = 0;
+	if (getsysinfo(GSI_PHYSMEM, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
+	    INT bytes = retInt32 * 1024;
+
+	    physicalRam   = __MKUINT(bytes);
+	}
 # endif /* GSI_PHYSMEM */
 
 # if defined(GSI_PLATFORM_NAME) && (!defined(HAS_SYSINFO) || !defined(SI_PLATFORM))
     {
-        char buffer[128];
-
-        index = 0;
-        if (getsysinfo(GSI_PLATFORM_NAME, buffer, sizeof(buffer), &index, NULL) > 0) {
-            platform = __MKSTRING(buffer);
-        }
+	char buffer[128];
+
+	index = 0;
+	if (getsysinfo(GSI_PLATFORM_NAME, buffer, sizeof(buffer), &index, NULL) > 0) {
+	    platform = __MKSTRING(buffer);
+	}
     }
 # endif /* GSI_PLATFORM_NAME */
 
@@ -6855,25 +6859,25 @@
 #endif /* HAS_GETSYSINFO */
 
     {
-        extern OBJ __getInstructionSetInfo();
-
-        extendedInstructions = __getInstructionSetInfo();
+	extern OBJ __getInstructionSetInfo();
+
+	extendedInstructions = __getInstructionSetInfo();
     }
 %}.
     sys isNil ifTrue:[
-        sys := self getSystemType.
+	sys := self getSystemType.
     ].
     node isNil ifTrue:[
-        node := self getHostName.
+	node := self getHostName.
     ].
     dom isNil ifTrue:[
-        dom := self getDomainName.
+	dom := self getDomainName.
     ].
     mach isNil ifTrue:[
-        mach := self getCPUType.
+	mach := self getCPUType.
     ].
     arch isNil ifTrue:[
-        arch := sys.
+	arch := sys.
     ].
 
     info := IdentityDictionary new.
@@ -6885,12 +6889,12 @@
     arch notNil ifTrue:[info at:#architecture put:arch].
     dom notNil ifTrue:[info at:#domain put:dom].
     (pageSize notNil and:[physicalPages notNil]) ifTrue:[
-        physicalRam := pageSize * physicalPages. "/ done here - could be largeInt.
+	physicalRam := pageSize * physicalPages. "/ done here - could be largeInt.
     ].
     physicalRam notNil ifTrue:[info at:#physicalRam put:physicalRam].
     (pageSize notNil and:[availablePages notNil]) ifTrue:[
-        availableRam := pageSize * availablePages. "/ done here - could be largeInt.
-        availableRam notNil ifTrue:[info at:#availableRam put:availableRam].
+	availableRam := pageSize * availablePages. "/ done here - could be largeInt.
+	availableRam notNil ifTrue:[info at:#availableRam put:availableRam].
     ].
     totalRam notNil ifTrue:[info at:#totalRam put:totalRam].
     sharedRam notNil ifTrue:[info at:#sharedRam put:sharedRam].
@@ -6944,7 +6948,7 @@
 
 %}.
     sys isNil ifTrue:[
-        ^ self getOSType
+	^ self getOSType
     ].
     ^ sys
 
@@ -6976,11 +6980,11 @@
 maxFileNameLength
     "return the max number of characters in a filename.
      CAVEAT:
-         Actually, the following is somewhat wrong - some systems
-         support different sizes, depending on the volume.
-         We return a somewhat conservative number here.
-         Another entry, to query for volume specific max
-         will be added in the future."
+	 Actually, the following is somewhat wrong - some systems
+	 support different sizes, depending on the volume.
+	 We return a somewhat conservative number here.
+	 Another entry, to query for volume specific max
+	 will be added in the future."
 
 %{  /* NOCONTEXT */
  
@@ -7050,21 +7054,21 @@
 primGetDomainName
     "return the domain this host is in.
      Notice:
-        not all systems support this; on some, nil is returned."
+	not all systems support this; on some, nil is returned."
 
 %{  /* STACK: 2048 */
 #if defined(HAS_GETDOMAINNAME)
     char buffer[128];
 
     if (getdomainname(buffer, sizeof(buffer)) == 0) {
-        RETURN (__MKSTRING(buffer));
+	RETURN (__MKSTRING(buffer));
     }
 #else
 # if defined(HAS_UNAME) && defined(HAS_UTS_DOMAINNAME)
     struct utsname ubuff;
 
     if (uname(&ubuff) >= 0) {
-        RETURN (__MKSTRING(ubuff.domainname));
+	RETURN (__MKSTRING(ubuff.domainname));
     }
 # else
 #  if defined(HAS_SYSINFO) && defined(SI_SRPC_DOMAIN)
@@ -7072,7 +7076,7 @@
     int ret;
 
     if ((ret = sysinfo(SI_SRPC_DOMAIN, buffer, sizeof(buffer))) >= 0 && ret <= sizeof(buffer)) {
-        RETURN (__MKSTRING(buffer));
+	RETURN (__MKSTRING(buffer));
     }
 #  endif
 # endif
@@ -7091,21 +7095,21 @@
     "return the hostname we are running on - if there is
      a HOST environment variable, we are much faster here ...
      Notice:
-        not all systems support this; on some, nil is returned."
+	not all systems support this; on some, nil is returned."
 
 %{  /* STACK: 2048 */
 #if defined(HAS_GETHOSTNAME)
     char buffer[256];
 
     if (gethostname(buffer, sizeof(buffer)) == 0) {
-        RETURN (__MKSTRING(buffer));
+	RETURN (__MKSTRING(buffer));
     }
 #else
 # if defined(HAS_UNAME)
     struct utsname ubuff;
 
     if (uname(&ubuff) >= 0) {
-        RETURN (__MKSTRING(ubuff.nodename));
+	RETURN (__MKSTRING(ubuff.nodename));
     }
 # else
 #  if defined(HAS_SYSINFO) && defined(SI_HOSTNAME)
@@ -7113,7 +7117,7 @@
     int ret;
  
     if ((ret = sysinfo(SI_HOSTNAME, buffer, sizeof(buffer))) >= 0 && ret <= sizeof(buffer)) {
-        RETURN (__MKSTRING(buffer));
+	RETURN (__MKSTRING(buffer));
     }
 #  endif
 # endif
@@ -7276,31 +7280,31 @@
 
     sysPath := super defaultSystemPath.
     #(
-        '/usr/local/lib/smalltalk'
-        '/usr/lib/smalltalk'
-        '/lib/smalltalk'
-        '/opt/smalltalk'
+	'/usr/local/lib/smalltalk'
+	'/usr/lib/smalltalk'
+	'/lib/smalltalk'
+	'/opt/smalltalk'
     ) do:[:d |
-        (d asFilename isDirectory) ifTrue:[
-            "/ try to guess a gnu-smalltalk; skip it
-            (d asFilename construct:'initialize.st') exists ifFalse:[
-                releaseFile := d asFilename construct:'RELEASE'.
-                releaseFile exists ifTrue:[
-                    s := releaseFile readStream.
-                    s notNil ifTrue:[
-                        v := Integer readFrom:s onError:-1.
-                        s close.
-                        v == majorVersionNr ifTrue:[
-                            sysPath add:d
-                        ] ifFalse:[
-                            ('UnixOperatingSystem [info]: ignore files in ' , d asFilename pathName , ' (RELEASE mismatch)') infoPrintCR.
-                        ]
-                    ] ifFalse:[
-                        ('UnixOperatingSystem [info]: ignore files in ' , d asFilename pathName , ' (RELEASE missing)') infoPrintCR.
-                    ]
-                ]
-            ]
-        ]
+	(d asFilename isDirectory) ifTrue:[
+	    "/ try to guess a gnu-smalltalk; skip it
+	    (d asFilename construct:'initialize.st') exists ifFalse:[
+		releaseFile := d asFilename construct:'RELEASE'.
+		releaseFile exists ifTrue:[
+		    s := releaseFile readStream.
+		    s notNil ifTrue:[
+			v := Integer readFrom:s onError:-1.
+			s close.
+			v == majorVersionNr ifTrue:[
+			    sysPath add:d
+			] ifFalse:[
+			    ('UnixOperatingSystem [info]: ignore files in ' , d asFilename pathName , ' (RELEASE mismatch)') infoPrintCR.
+			]
+		    ] ifFalse:[
+			('UnixOperatingSystem [info]: ignore files in ' , d asFilename pathName , ' (RELEASE missing)') infoPrintCR.
+		    ]
+		]
+	    ]
+	]
     ].
     ^ sysPath
 
@@ -7330,16 +7334,16 @@
 
     if (__isSmallInteger(addr)
      && __bothSmallInteger(flags, id)) {
-        shmaddr = (void *) __intVal(addr);
-        shmflg = __intVal(flags);
-        shmid = __intVal(id);
-
-        address = shmat(shmid, shmaddr, shmflg);
-        if (address != (void *)-1) {
-            RETURN (__MKEXTERNALBYTES(addr));
-        }
-        @global(LastErrorNumber) = __MKSMALLINT(errno);
-        RETURN (nil);
+	shmaddr = (void *) __intVal(addr);
+	shmflg = __intVal(flags);
+	shmid = __intVal(id);
+
+	address = shmat(shmid, shmaddr, shmflg);
+	if (address != (void *)-1) {
+	    RETURN (__MKEXTERNALBYTES(addr));
+	}
+	@global(LastErrorNumber) = __MKSMALLINT(errno);
+	RETURN (nil);
     }
 #endif
 %}.
@@ -7358,14 +7362,14 @@
     int rslt;
 
     if (__isSmallInteger(addr)) {
-        shmaddr = (void *) __intVal(addr);
-
-        rslt = shmdt(shmaddr);
-        if (rslt != -1) {
-            RETURN (true);
-        }
-        @global(LastErrorNumber) = __MKSMALLINT(errno);
-        RETURN (false);
+	shmaddr = (void *) __intVal(addr);
+
+	rslt = shmdt(shmaddr);
+	if (rslt != -1) {
+	    RETURN (true);
+	}
+	@global(LastErrorNumber) = __MKSMALLINT(errno);
+	RETURN (false);
     }
 #endif
 %}.
@@ -7383,14 +7387,14 @@
 #ifdef WANT_SHM
     if (__bothSmallInteger(key, size)
      && __isSmallInteger(flags)) {
-        int rslt;
-
-        rslt = shmget(__intVal(key), __intVal(size), __intVal(flags));
-        if (rslt != -1) {
-            RETURN (__MKSMALLINT(rslt));
-        }
-        @global(LastErrorNumber) = __MKSMALLINT(errno);
-        RETURN (nil);
+	int rslt;
+
+	rslt = shmget(__intVal(key), __intVal(size), __intVal(flags));
+	if (rslt != -1) {
+	    RETURN (__MKSMALLINT(rslt));
+	}
+	@global(LastErrorNumber) = __MKSMALLINT(errno);
+	RETURN (nil);
     }
 #endif
 %}.
@@ -7423,16 +7427,16 @@
     day = __MKSMALLINT(tmPtr->tm_mday);
 %}.
     year isNil ifTrue:[
-        i := self computeTimeAndDateFrom:osTime.
-        year := i at:1.
-        month := i at:2.
-        day := i at:3.
+	i := self computeTimeAndDateFrom:osTime.
+	year := i at:1.
+	month := i at:2.
+	day := i at:3.
     ].
     aBlock value:year value:month value:day
 
     "
      OperatingSystem computeDatePartsOf:0 for:[:y :m :d |
-        y printCR. m printCR. d printCR
+	y printCR. m printCR. d printCR
      ]
     "
 !
@@ -7450,21 +7454,21 @@
     if (__bothSmallInteger(y, m) 
      && __bothSmallInteger(d, h)
      && __bothSmallInteger(min, s)) {
-        tm.tm_hour = __intVal(h);
-        tm.tm_min = __intVal(min);
-        tm.tm_sec = __intVal(s);
-
-        tm.tm_year = __intVal(y) - 1900;
-        tm.tm_mon = __intVal(m) - 1;
-        tm.tm_mday = __intVal(d);
-        tm.tm_isdst = -1;
-
-        t = mktime(&tm);
-        osSeconds = __MKUINT((INT)t+TIMEZONE(&tm));
+	tm.tm_hour = __intVal(h);
+	tm.tm_min = __intVal(min);
+	tm.tm_sec = __intVal(s);
+
+	tm.tm_year = __intVal(y) - 1900;
+	tm.tm_mon = __intVal(m) - 1;
+	tm.tm_mday = __intVal(d);
+	tm.tm_isdst = -1;
+
+	t = mktime(&tm);
+	osSeconds = __MKUINT((INT)t+TIMEZONE(&tm));
     }
 %}.
     osSeconds notNil ifTrue:[
-        ^ osSeconds * 1000 + millis
+	^ osSeconds * 1000 + millis
     ].    
     ^ self primitiveFailed
 
@@ -7490,21 +7494,21 @@
     if (__bothSmallInteger(y, m) 
      && __bothSmallInteger(d, h)
      && __bothSmallInteger(min, s)) {
-        tm.tm_hour = __intVal(h);
-        tm.tm_min = __intVal(min);
-        tm.tm_sec = __intVal(s);
-
-        tm.tm_year = __intVal(y) - 1900;
-        tm.tm_mon = __intVal(m) - 1;
-        tm.tm_mday = __intVal(d);
-        tm.tm_isdst = -1;
-
-        t = mktime(&tm);
-        osSeconds = __MKUINT((INT)t);
+	tm.tm_hour = __intVal(h);
+	tm.tm_min = __intVal(min);
+	tm.tm_sec = __intVal(s);
+
+	tm.tm_year = __intVal(y) - 1900;
+	tm.tm_mon = __intVal(m) - 1;
+	tm.tm_mday = __intVal(d);
+	tm.tm_isdst = -1;
+
+	t = mktime(&tm);
+	osSeconds = __MKUINT((INT)t);
     }
 %}.
     osSeconds notNil ifTrue:[
-        ^ osSeconds * 1000 + millis
+	^ osSeconds * 1000 + millis
     ].    
     ^ self primitiveFailed
 
@@ -7568,7 +7572,7 @@
 
     "
      OperatingSystem computeTimePartsOf:100 for:[:h :m :s :milli |
-        Transcript show:h; space; show:m; space; show:s; space; showCR:milli.
+	Transcript show:h; space; show:m; space; show:s; space; showCR:milli.
      ]
     "
 !
@@ -7576,17 +7580,17 @@
 computeUTCTimeAndDateFrom:osTime
     "given an OS-dependent time in osTime, return an Array
      containing:
-        (full-) year, 
-        month,                          (1..)
-        day,                            (1..)
-        hour,                           (0..23)
-        minute                          (0..59)
-        seconds,                        (0..59)
-        offset to UTC,                  (seconds)
-        daylight savings time flag, 
-        milliseconds,                   (0..999)
-        dayInYear                       (1..)
-        dayInWeek                       (1..).
+	(full-) year, 
+	month,                          (1..)
+	day,                            (1..)
+	hour,                           (0..23)
+	minute                          (0..59)
+	seconds,                        (0..59)
+	offset to UTC,                  (seconds)
+	daylight savings time flag, 
+	milliseconds,                   (0..999)
+	dayInYear                       (1..)
+	dayInWeek                       (1..).
      Conversion is to utc."
 
     |millis osSeconds ret|
@@ -7627,7 +7631,7 @@
 
     "
      OperatingSystem computeUTCTimePartsOf:100 for:[:h :m :s :milli |
-        h printCR. m printCR. s printCR. milli printCR
+	h printCR. m printCR. s printCR. milli printCR
      ]
     "
 !
@@ -7655,9 +7659,9 @@
     tt = (TIME_T)t;
 
     if (isLocalTime == true) {
-        tmPtr = localtime(&tt);
+	tmPtr = localtime(&tt);
     } else {
-        tmPtr = gmtime(&tt);
+	tmPtr = gmtime(&tt);
     }
     hours = __MKSMALLINT(tmPtr->tm_hour);
     minutes = __MKSMALLINT(tmPtr->tm_min);
@@ -7720,7 +7724,7 @@
     struct timeb timebuffer;
 
     ftime(&timebuffer);
-    _seconds = timebuffer.time.
+     _seconds = timebuffer.time;
     _millis = timebuffer.millitm;
 #   define HAVE_TIME
 # endif
@@ -7758,7 +7762,7 @@
     _seconds = tb.tv_sec;
     _micros = tb.tv_usec;
     if (_micros >= (1000*1000)) {
-        printf("oops\n");
+	printf("oops\n");
     }
 #endif
 
@@ -7785,8 +7789,8 @@
      Use the millisecondTimeXXX:-methods to compare and add time deltas - these know about the wrap.
 
      BAD DESIGN:
-        This should be changed to return some instance of RelativeTime,
-        and these computations moved there.
+	This should be changed to return some instance of RelativeTime,
+	and these computations moved there.
 
      Dont use this method in application code since it is an internal (private)
      interface. For compatibility with ST-80, use Time millisecondClockValue.
@@ -7830,9 +7834,9 @@
      * bsd time
      */
     struct timeval tb;
-    struct timezone tzb;
-
-    gettimeofday(&tb, &tzb);
+    /* struct timezone tzb; */
+
+    gettimeofday(&tb, NULL /* &tzb */);
     t = tb.tv_sec*1000 + tb.tv_usec/1000;
 #endif
 
@@ -7859,9 +7863,9 @@
 
     time := self primGetOSTime.
     time isArray ifTrue:[
-        seconds := time at:1.
-        millis := time at:2.
-        time := (seconds * 1000) + millis
+	seconds := time at:1.
+	millis := time at:2.
+	time := (seconds * 1000) + millis
     ].
     ^ time
 
@@ -7886,9 +7890,9 @@
     then := UnixOperatingSystem millisecondTimeAdd:now and:millis.
 
     [UnixOperatingSystem millisecondTime:then isAfter:now] whileTrue:[
-        delta := UnixOperatingSystem millisecondTimeDeltaBetween:then and:now.
-        self selectOnAnyReadable:nil writable:nil exception:nil withTimeOut:delta.
-        now := UnixOperatingSystem getMillisecondTime.
+	delta := UnixOperatingSystem millisecondTimeDeltaBetween:then and:now.
+	self selectOnAnyReadable:nil writable:nil exception:nil withTimeOut:delta.
+	now := UnixOperatingSystem getMillisecondTime.
     ]
 
     "
@@ -7920,11 +7924,11 @@
 #if !defined(HAS_GETTIMEOFDAY) 
 # if defined(HAS_FTIME)
     {
-        struct timeb timebuffer;
-
-        ftime(&timebuffer);
-        _secs = timebuffer.time;
-        _millis = timebuffer.millitm;
+	struct timeb timebuffer;
+
+	ftime(&timebuffer);
+	_secs = timebuffer.time;
+	_millis = timebuffer.millitm;
     }
 #   define HAVE_TIME
 # endif /* HAS_FTIME */
@@ -7932,19 +7936,19 @@
 # ifndef HAVE_TIME
 #  if defined(SYSV) && defined(HZ)
     {
-        /* 
-         * sys5 time; we have to fake the information
-         * the returned value is inexact.
-         */
-        long ticks;
-        struct tms tb;
-
-        _secs = time(0);   /* seconds since 1970 ... */
-
-        ticks = times(&tb);
-        t = (ticks * 1000) / HZ;
-        t = t % 1000;
-        _millis = __MKSMALLINT(t);
+	/* 
+	 * sys5 time; we have to fake the information
+	 * the returned value is inexact.
+	 */
+	long ticks;
+	struct tms tb;
+
+	_secs = time(0);   /* seconds since 1970 ... */
+
+	ticks = times(&tb);
+	t = (ticks * 1000) / HZ;
+	t = t % 1000;
+	_millis = __MKSMALLINT(t);
     }
 #   define HAVE_TIME
 #  endif /* OLD SYSV stuff */
@@ -7958,16 +7962,16 @@
      */
 
     {
-        /*
-         * bsd time
-         */
-        struct timeval tb;
-        struct timezone tzb;
-
-        gettimeofday(&tb, &tzb);
-
-        _secs = tb.tv_sec;
-        _millis = tb.tv_usec / 1000;
+	/*
+	 * bsd time
+	 */
+	struct timeval tb;
+	/* struct timezone tzb; */
+
+	gettimeofday(&tb, NULL /* &tzb */);
+
+	_secs = tb.tv_sec;
+	_millis = tb.tv_usec / 1000;
     }
 #endif
 
@@ -7983,25 +7987,25 @@
 
 #ifdef alpha64
     {
-        unsigned INT _lsecs, _lmillis, rslt;
-
-        _lsecs = (INT)_secs;
-        _lmillis = (INT)_millis;
-        rslt = _lsecs * 1000 + _lmillis;
-        RETURN (__MKUINT(rslt));
+	unsigned INT _lsecs, _lmillis, rslt;
+
+	_lsecs = (INT)_secs;
+	_lmillis = (INT)_millis;
+	rslt = _lsecs * 1000 + _lmillis;
+	RETURN (__MKUINT(rslt));
     }
 #else
 # ifdef HAS_LONGLONG
     {
-        unsigned long long _lsecs, _lmillis, rslt;
-        unsigned low, hi;
-
-        _lsecs = (long long)_secs;
-        _lmillis = (long long)_millis;
-        rslt = _lsecs * 1000 + _lmillis;
-        low = rslt & 0xFFFFFFFF;
-        hi = rslt >> 32;
-        RETURN (__MKLARGEINT64(1, low, hi));
+	unsigned long long _lsecs, _lmillis, rslt;
+	unsigned low, hi;
+
+	_lsecs = (long long)_secs;
+	_lmillis = (long long)_millis;
+	rslt = _lsecs * 1000 + _lmillis;
+	low = rslt & 0xFFFFFFFF;
+	hi = rslt >> 32;
+	RETURN (__MKLARGEINT64(1, low, hi));
     }
 # else
     seconds = __MKUINT(_secs);
@@ -8033,8 +8037,8 @@
 %{  /* NOCONTEXT */
 
     if (__isSmallInteger(numberOfSeconds)) {
-        sleep(__intVal(numberOfSeconds));
-        RETURN ( self );
+	sleep(__intVal(numberOfSeconds));
+	RETURN ( self );
     }
 %}.
     "
@@ -8098,11 +8102,11 @@
     info := self userInfoOf:userID.
     (info notNil
     and:[info includesKey:#gecos]) ifTrue:[
-        gecos := info at:#gecos.
-        (gecos includes:$,) ifTrue:[
-            ^ gecos copyTo:(gecos indexOf:$,) - 1
-        ].
-        ^ gecos
+	gecos := info at:#gecos.
+	(gecos includes:$,) ifTrue:[
+	    ^ gecos copyTo:(gecos indexOf:$,) - 1
+	].
+	^ gecos
     ].
     ^ self getUserNameFromID:userID
 
@@ -8144,10 +8148,10 @@
     struct group *g;
 
     if (__isSmallInteger(aNumber)) {
-        g = getgrgid(__intVal(aNumber));
-        if (g) {
-            RETURN ( __MKSTRING(g->gr_name) );
-        }
+	g = getgrgid(__intVal(aNumber));
+	if (g) {
+	    RETURN ( __MKSTRING(g->gr_name) );
+	}
     }
 %}.
     ^ '???'
@@ -8187,35 +8191,35 @@
     char *name = (char *)0;
 
     if (firstCall) {
-        name = getlogin();
-        if (! name || (name[0] == 0)) {
-            name = getenv("LOGNAME");
-        }
-        if (name && (strlen(name) < sizeof(cachedName))) {
-            strcpy(cachedName, name);
-            firstCall = 0;
-        }
+	name = getlogin();
+	if (! name || (name[0] == 0)) {
+	    name = getenv("LOGNAME");
+	}
+	if (name && (strlen(name) < sizeof(cachedName))) {
+	    strcpy(cachedName, name);
+	    firstCall = 0;
+	}
     } else {
-        name = cachedName;
+	name = cachedName;
     }
 
     /*
      * try a few common environment variables ...
      */
     if (! name || (name[0] == 0) ) {
-        name = getenv("LOGIN");
-        if (! name || (name[0] == 0) ) {
-            name = getenv("LOGNAME");
-            if (! name || (name[0] == 0) ) {
-                name = getenv("USER");
-            }
-        }
+	name = getenv("LOGIN");
+	if (! name || (name[0] == 0) ) {
+	    name = getenv("LOGNAME");
+	    if (! name || (name[0] == 0) ) {
+		name = getenv("USER");
+	    }
+	}
     }
     /*
      * nope - I really font know who you are.
      */
     if (! name || (name[0] == 0) ) {
-        name = "you";
+	name = "you";
     }
 
     RETURN ( __MKSTRING(name) );
@@ -8255,15 +8259,15 @@
     struct passwd *p;
 
     if (__isSmallInteger(aNumber)) {
-        p = getpwuid(__intVal(aNumber));
-        if (p) {
-            RETURN ( __MKSTRING(p->pw_name) );
-        }
+	p = getpwuid(__intVal(aNumber));
+	if (p) {
+	    RETURN ( __MKSTRING(p->pw_name) );
+	}
     }
 #endif /* unix-like */
 %}.
     aNumber == self getUserID ifTrue:[
-        ^ self getLoginName
+	^ self getLoginName
     ].
 
     ^ '? (' , aNumber printString , ')'
@@ -8298,42 +8302,42 @@
     int ret;
 
     if (__isString(aNameOrID)) {
-        buf = getpwnam(__stringVal(aNameOrID));
+	buf = getpwnam(__stringVal(aNameOrID));
     } else if (__isSmallInteger(aNameOrID)) {
-        buf = getpwuid(__intVal(aNameOrID));
+	buf = getpwuid(__intVal(aNameOrID));
     } else {
-        buf = (struct passwd *)0;
+	buf = (struct passwd *)0;
     }
     if (buf) {
-        name = __MKSTRING(buf->pw_name);
+	name = __MKSTRING(buf->pw_name);
 #  ifndef NO_PWD_PASSWD
-        passw = __MKSTRING(buf->pw_passwd);
+	passw = __MKSTRING(buf->pw_passwd);
 #  endif
 #  ifdef SYSV4
-        age = __MKSTRING(buf->pw_age);
-        comment = __MKSTRING(buf->pw_comment);
+	age = __MKSTRING(buf->pw_age);
+	comment = __MKSTRING(buf->pw_comment);
 #  endif
-        dir = __MKSTRING(buf->pw_dir);
+	dir = __MKSTRING(buf->pw_dir);
 #  ifndef NO_PWD_GECOS
-        gecos = __MKSTRING(buf->pw_gecos);
+	gecos = __MKSTRING(buf->pw_gecos);
 #  endif
-        shell = __MKSTRING(buf->pw_shell);
-
-        uid = __MKSMALLINT(buf->pw_uid);
-        gid = __MKSMALLINT(buf->pw_gid);
+	shell = __MKSTRING(buf->pw_shell);
+
+	uid = __MKSMALLINT(buf->pw_uid);
+	gid = __MKSMALLINT(buf->pw_gid);
     }
 # endif /* has PWD */
 %}.
     info := IdentityDictionary new.
     name isNil ifTrue:[
-        aNameOrID == self getUserID ifTrue:[
-            name := self getLoginName
-        ].
+	aNameOrID == self getUserID ifTrue:[
+	    name := self getLoginName
+	].
     ].
     name notNil ifTrue:[
-        info at:#name put:name.
+	info at:#name put:name.
     ] ifFalse:[
-        info at:#name put:'unknown'
+	info at:#name put:'unknown'
     ].
     passw notNil ifTrue:[info at:#passwd put:passw].
     age notNil ifTrue:[info at:#age put:age].
@@ -8341,9 +8345,9 @@
     gecos notNil ifTrue:[info at:#gecos put:gecos].
     shell notNil ifTrue:[info at:#shell put:shell].
     dir isNil ifTrue:[
-        aNameOrID == self getUserID ifTrue:[
-            dir := self getHomeDirectory
-        ]
+	aNameOrID == self getUserID ifTrue:[
+	    dir := self getHomeDirectory
+	]
     ].
     dir notNil ifTrue:[info at:#dir put:dir].
     uid notNil ifTrue:[info at:#uid put:uid].
@@ -8407,11 +8411,11 @@
 #   define __BLOCKING_WAIT__ 1
 
     if (blocking != true) {
-        /*
-         * We do not support nonBlocking waits, so signal an error
-         * Sorry about the goto, but with all these ifdefs ...
-         */
-        goto done;
+	/*
+	 * We do not support nonBlocking waits, so signal an error
+	 * Sorry about the goto, but with all these ifdefs ...
+	 */
+	goto done;
     }
 # endif /*!HAS_WAIT3*/
 #endif  /*!HAS_WAITPID*/
@@ -8442,7 +8446,7 @@
 #endif
 
     do {
-        p = __WAIT;
+	p = __WAIT;
     } while (p == -1 && errno == EINTR);
 
 #if __BLOCKING_WAIT__
@@ -8453,35 +8457,35 @@
 #undef __WAIT
 
     if (p == 0)
-        RETURN(nil)
+	RETURN(nil)
 
     if (p == -1) {
-        if (errno == ECHILD)
-            RETURN(nil);
+	if (errno == ECHILD)
+	    RETURN(nil);
     } else {
-        pid = __MKSMALLINT(p);
-        if (WIFEXITED(s)) {
-            status = @symbol(exit);
-            code = __MKSMALLINT(WEXITSTATUS(s));
-            core = WCOREDUMP(s) ? true : false;
-        } else if (WIFSIGNALED(s)) {
-            status = @symbol(signal);
-            code = __MKSMALLINT(WTERMSIG(s));
-        } else if (WIFSTOPPED(s)) {
-            status = @symbol(stop);
-            code = __MKSMALLINT(WSTOPSIG(s));
-        }
+	pid = __MKSMALLINT(p);
+	if (WIFEXITED(s)) {
+	    status = @symbol(exit);
+	    code = __MKSMALLINT(WEXITSTATUS(s));
+	    core = WCOREDUMP(s) ? true : false;
+	} else if (WIFSIGNALED(s)) {
+	    status = @symbol(signal);
+	    code = __MKSMALLINT(WTERMSIG(s));
+	} else if (WIFSTOPPED(s)) {
+	    status = @symbol(stop);
+	    code = __MKSMALLINT(WSTOPSIG(s));
+	}
 #if defined(WIFCONTINUED)
-        else if (WIFCONTINUED(s)) {
-            status = @symbol(continue);
-        } 
+	else if (WIFCONTINUED(s)) {
+	    status = @symbol(continue);
+	} 
 #endif
     }
 done: ;
 %}.
 
     (status isNil or:[pid isNil]) ifTrue:[
-        ^ self primitiveFailed
+	^ self primitiveFailed
     ].
 
 "/ Transcript show:'pid: '; show:pid; show:' status: '; show:status;
@@ -8506,13 +8510,13 @@
      */
 # if defined(FIONREAD)
     {
-        int n;
-
-        if (__isSmallInteger(fd)) {
-            if (ioctl(__intVal(fd), FIONREAD, &n) >= 0) {
-                RETURN (__MKINT(n));
-            }
-        }
+	int n;
+
+	if (__isSmallInteger(fd)) {
+	    if (ioctl(__intVal(fd), FIONREAD, &n) >= 0) {
+		RETURN (__MKINT(n));
+	    }
+	}
     }
 # endif /* FIONREAD */
 #endif
@@ -8532,13 +8536,13 @@
      */
 # if defined(FIONREAD)
     {
-        int n;
-
-        if (__isSmallInteger(fd)) {
-            if (n = ioctl(__intVal(fd), FIONREAD)) {
-                printf("FIONREAD returns %d\n", n);
-            }
-        }
+	int n;
+
+	if (__isSmallInteger(fd)) {
+	    if (n = ioctl(__intVal(fd), FIONREAD)) {
+		printf("FIONREAD returns %d\n", n);
+	    }
+	}
     }
 # endif /* FIONREAD */
 #endif
@@ -8570,159 +8574,159 @@
 #endif
 
     if (__isSmallInteger(millis)) {
-        FD_ZERO(&rset);
-        FD_ZERO(&wset);
-        FD_ZERO(&eset);
-
-        maxF = -1;
-        if (__isNonNilObject(readFdArray)) {
-            if (! __isArrayLike(readFdArray)) {
-                goto fail;    
-            }
-            count = __arraySize(readFdArray);
-
-            for (i=0; i<count;i++) {
-                fd = __ArrayInstPtr(readFdArray)->a_element[i];
-                if (fd != nil) {
-                    if (! __isSmallInteger(fd)) {
-                        if (@global(InfoPrinting) == true) {
-                            fprintf(stderr, "[OS] warning: funny read-fd (0x%x) given to select\n", fd);
-                        }
-                    } else {
-                        f = __intVal(fd);
-                        if ((unsigned)f < FD_SETSIZE) {
-                            FD_SET(f, &rset);
-                            if (f > maxF) maxF = f;
-                            numFds++;
-                        } else {
-                            if (@global(InfoPrinting) == true) {
-                                fprintf(stderr, "[OS] warning: huge read-fd (0x%x) given to select\n", fd);
-                            }
-                        }
-                    }
-                }
-            }
-        }
-
-        if (__isNonNilObject(writeFdArray)) {
-            if (! __isArrayLike(writeFdArray)) {
-                goto fail;    
-            }
-            count = __arraySize(writeFdArray);
-            for (i=0; i<count;i++) {
-                fd = __ArrayInstPtr(writeFdArray)->a_element[i];
-                if (fd != nil) {
-                    if (! __isSmallInteger(fd)) {
-                        if (@global(InfoPrinting) == true) {
-                            fprintf(stderr, "[OS] warning: funny write-fd (0x%x) given to select\n", fd);
-                        }
-                    } else {
-                        f = __intVal(fd);
-                        if ((unsigned)f < FD_SETSIZE) {
-                            FD_SET(f, &wset);       
-                            if (f > maxF) maxF = f;
-                            numFds++;
-                        } else {
-                            if (@global(InfoPrinting) == true) {
-                                fprintf(stderr, "[OS] warning: huge write-fd (0x%x) given to select\n", fd);
-                            }
-                        }
-                    }
-                }
-            }
-        }
-
-        if (__isNonNilObject(exceptFdArray)) {
-            if (! __isArrayLike(exceptFdArray)) {
-                goto fail;    
-            }
-            count = __arraySize(exceptFdArray);
-            for (i=0; i<count;i++) {
-                fd = __ArrayInstPtr(exceptFdArray)->a_element[i];
-                if (fd != nil) {
-                    if (! __isSmallInteger(fd)) {
-                        if (@global(InfoPrinting) == true) {
-                            fprintf(stderr, "[OS] warning: funny except-fd (0x%x) given to select\n", fd);
-                        }
-                    } else {
-                        f = __intVal(fd);
-                        if ((unsigned)f < FD_SETSIZE) {
-                            FD_SET(f, &eset);       
-                            if (f > maxF) maxF = f;
-                            numFds++;
-                        } else {
-                            if (@global(InfoPrinting) == true) {
-                                fprintf(stderr, "[OS] warning: huge except-fd (0x%x) given to select\n", fd);
-                            }
-                        }
-                    }
-                }
-            }
-        }
-
-        t = __intVal(millis);
-        if (t) {
-            wt.tv_sec = t / 1000;
-            wt.tv_usec = (t % 1000) * 1000;
-        } else {
-            wt.tv_sec = wt.tv_usec = 0;
-        }
-
-        /*
-         * make certain, that interrupt gets us out of the select
-         * However, we must then care for moved objects.
-         */
-        __BEGIN_INTERRUPTABLE__
-        errno = 0;
-
-        if (t == 0) {
-            /* 
-             * if there is no timeout time, we can stay here interruptable.
-             */
-            do {
-                ret = select(maxF+1, &rset, &wset, &eset, &wt);
-            } while ((ret < 0) && (errno == EINTR));
-        } else {
-            do {
-                ret = select(maxF+1, &rset, &wset, &eset, &wt);
-                /* 
-                 * for now: dont loop; if we did, we had to adjust the vt-timeval;
-                 * could otherwise stay in this loop forever ...
-                 * Premature ret (before the time expired) must be handled by the caller.
-                 * A good solution is to update the wt-timeval and redo the select.
-                 */
-            } while (0 /* (ret < 0) && (errno == EINTR) */ );
-        }
-        __END_INTERRUPTABLE__
-
-        if (ret > 0) {
-            for (i=0; i <= maxF; i++) {
-                if (FD_ISSET(i, &rset)
-                 || FD_ISSET(i, &wset)
-                 || FD_ISSET(i, &eset)) {
-                    RETURN ( __MKSMALLINT(i) );
-                }
-            }
-        } else {
-            if (ret < 0) {
-                if (errno == EINTR) {
-                    errno = 0;
-                    @global(LastErrorNumber) = nil;
-                } else {
-                    if (@global(InfoPrinting) == true) {
-                        fprintf(stderr, "OS [info]: select errno = %d\n", errno);
-                    }
-                    @global(LastErrorNumber) = __MKSMALLINT(errno);
-                }
-            } else {
-                @global(LastErrorNumber) = nil;
-            }
-        }
-
-        /*
-         * Return nil (means time expired or interrupted)
-         */
-        RETURN ( nil );
+	FD_ZERO(&rset);
+	FD_ZERO(&wset);
+	FD_ZERO(&eset);
+
+	maxF = -1;
+	if (__isNonNilObject(readFdArray)) {
+	    if (! __isArrayLike(readFdArray)) {
+		goto fail;    
+	    }
+	    count = __arraySize(readFdArray);
+
+	    for (i=0; i<count;i++) {
+		fd = __ArrayInstPtr(readFdArray)->a_element[i];
+		if (fd != nil) {
+		    if (! __isSmallInteger(fd)) {
+			if (@global(InfoPrinting) == true) {
+			    fprintf(stderr, "[OS] warning: funny read-fd (0x%x) given to select\n", fd);
+			}
+		    } else {
+			f = __intVal(fd);
+			if ((unsigned)f < FD_SETSIZE) {
+			    FD_SET(f, &rset);
+			    if (f > maxF) maxF = f;
+			    numFds++;
+			} else {
+			    if (@global(InfoPrinting) == true) {
+				fprintf(stderr, "[OS] warning: huge read-fd (0x%x) given to select\n", fd);
+			    }
+			}
+		    }
+		}
+	    }
+	}
+
+	if (__isNonNilObject(writeFdArray)) {
+	    if (! __isArrayLike(writeFdArray)) {
+		goto fail;    
+	    }
+	    count = __arraySize(writeFdArray);
+	    for (i=0; i<count;i++) {
+		fd = __ArrayInstPtr(writeFdArray)->a_element[i];
+		if (fd != nil) {
+		    if (! __isSmallInteger(fd)) {
+			if (@global(InfoPrinting) == true) {
+			    fprintf(stderr, "[OS] warning: funny write-fd (0x%x) given to select\n", fd);
+			}
+		    } else {
+			f = __intVal(fd);
+			if ((unsigned)f < FD_SETSIZE) {
+			    FD_SET(f, &wset);       
+			    if (f > maxF) maxF = f;
+			    numFds++;
+			} else {
+			    if (@global(InfoPrinting) == true) {
+				fprintf(stderr, "[OS] warning: huge write-fd (0x%x) given to select\n", fd);
+			    }
+			}
+		    }
+		}
+	    }
+	}
+
+	if (__isNonNilObject(exceptFdArray)) {
+	    if (! __isArrayLike(exceptFdArray)) {
+		goto fail;    
+	    }
+	    count = __arraySize(exceptFdArray);
+	    for (i=0; i<count;i++) {
+		fd = __ArrayInstPtr(exceptFdArray)->a_element[i];
+		if (fd != nil) {
+		    if (! __isSmallInteger(fd)) {
+			if (@global(InfoPrinting) == true) {
+			    fprintf(stderr, "[OS] warning: funny except-fd (0x%x) given to select\n", fd);
+			}
+		    } else {
+			f = __intVal(fd);
+			if ((unsigned)f < FD_SETSIZE) {
+			    FD_SET(f, &eset);       
+			    if (f > maxF) maxF = f;
+			    numFds++;
+			} else {
+			    if (@global(InfoPrinting) == true) {
+				fprintf(stderr, "[OS] warning: huge except-fd (0x%x) given to select\n", fd);
+			    }
+			}
+		    }
+		}
+	    }
+	}
+
+	t = __intVal(millis);
+	if (t) {
+	    wt.tv_sec = t / 1000;
+	    wt.tv_usec = (t % 1000) * 1000;
+	} else {
+	    wt.tv_sec = wt.tv_usec = 0;
+	}
+
+	/*
+	 * make certain, that interrupt gets us out of the select
+	 * However, we must then care for moved objects.
+	 */
+	__BEGIN_INTERRUPTABLE__
+	errno = 0;
+
+	if (t == 0) {
+	    /* 
+	     * if there is no timeout time, we can stay here interruptable.
+	     */
+	    do {
+		ret = select(maxF+1, &rset, &wset, &eset, &wt);
+	    } while ((ret < 0) && (errno == EINTR));
+	} else {
+	    do {
+		ret = select(maxF+1, &rset, &wset, &eset, &wt);
+		/* 
+		 * for now: dont loop; if we did, we had to adjust the vt-timeval;
+		 * could otherwise stay in this loop forever ...
+		 * Premature ret (before the time expired) must be handled by the caller.
+		 * A good solution is to update the wt-timeval and redo the select.
+		 */
+	    } while (0 /* (ret < 0) && (errno == EINTR) */ );
+	}
+	__END_INTERRUPTABLE__
+
+	if (ret > 0) {
+	    for (i=0; i <= maxF; i++) {
+		if (FD_ISSET(i, &rset)
+		 || FD_ISSET(i, &wset)
+		 || FD_ISSET(i, &eset)) {
+		    RETURN ( __MKSMALLINT(i) );
+		}
+	    }
+	} else {
+	    if (ret < 0) {
+		if (errno == EINTR) {
+		    errno = 0;
+		    @global(LastErrorNumber) = nil;
+		} else {
+		    if (@global(InfoPrinting) == true) {
+			fprintf(stderr, "OS [info]: select errno = %d\n", errno);
+		    }
+		    @global(LastErrorNumber) = __MKSMALLINT(errno);
+		}
+	    } else {
+		@global(LastErrorNumber) = nil;
+	    }
+	}
+
+	/*
+	 * Return nil (means time expired or interrupted)
+	 */
+	RETURN ( nil );
     }
 
 fail: ;
@@ -8750,16 +8754,16 @@
 #if defined(F_GETFL) && defined(F_SETFL)
 # if defined(FNDELAY)
     if (__isSmallInteger(fd)) {
-        int f = __intVal(fd);
-
-        flags = fcntl(f, F_GETFL, 0);
-        if (aBoolean == true) {
-            ret = fcntl(f, F_SETFL, flags & ~FNDELAY);
-        } else {
-            ret = fcntl(f, F_SETFL, flags | FNDELAY);
-        }
-        if (ret >= 0) ret = flags;
-        RETURN ( __MKSMALLINT(ret) );
+	int f = __intVal(fd);
+
+	flags = fcntl(f, F_GETFL, 0);
+	if (aBoolean == true) {
+	    ret = fcntl(f, F_SETFL, flags & ~FNDELAY);
+	} else {
+	    ret = fcntl(f, F_SETFL, flags | FNDELAY);
+	}
+	if (ret >= 0) ret = flags;
+	RETURN ( __MKSMALLINT(ret) );
     }
 # endif
 #endif
@@ -8774,7 +8778,7 @@
 
 type:t mode:m uid:u gid:g size:s id:i accessed:aT modified:mT statusChanged:sT path:lP
     ^ self basicNew
-        type:t mode:m uid:u gid:g size:s id:i accessed:aT modified:mT statusChanged:sT path:lP 
+	type:t mode:m uid:u gid:g size:s id:i accessed:aT modified:mT statusChanged:sT path:lP 
 ! !
 
 !UnixOperatingSystem::FileStatusInfo methodsFor:'accessing'!
@@ -8911,20 +8915,20 @@
 
     [Instance variables:]
 
-        pid     <Integer>       OS-Process identifier
-
-        status  <Symbol>        either #exit #signal #stop #continue
-
-        code    <Integer>       either exitcode or signalnumber
-
-        core    <Boolean>       true if core has been dumped
+	pid     <Integer>       OS-Process identifier
+
+	status  <Symbol>        either #exit #signal #stop #continue
+
+	code    <Integer>       either exitcode or signalnumber
+
+	core    <Boolean>       true if core has been dumped
 
 
     [author:]
-        Stefan Vogel
+	Stefan Vogel
 
     [see also:]
-        OperatingSystem
+	OperatingSystem
 "
 ! !
 
@@ -9063,6 +9067,6 @@
 !UnixOperatingSystem class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.100 2001-07-09 12:55:35 penk Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.101 2001-09-26 15:35:16 cg Exp $'
 ! !
 UnixOperatingSystem initialize!