Index: /trunk/src/kash/Makefile.kmk
===================================================================
--- /trunk/src/kash/Makefile.kmk	(revision 2301)
+++ /trunk/src/kash/Makefile.kmk	(revision 2302)
@@ -34,5 +34,5 @@
 kash_ASTOOL = YASM
 kash_DEFS = lint SHELL SMALL
-kash_DEFS += SH_STUB_MODE # for the time being.
+kash_DEFS += SH_FORKED_MODE
 kash_DEFS.debug = DEBUG=2
 kash_DEFS.linux = BSD
Index: /trunk/src/kash/shfile.c
===================================================================
--- /trunk/src/kash/shfile.c	(revision 2301)
+++ /trunk/src/kash/shfile.c	(revision 2302)
@@ -54,6 +54,5 @@
  */
 #if K_OS == K_OS_WINDOWS \
- || (   !defined(SH_STUB_MODE) \
-     && !defined(SH_FORKED_MODE))
+ || !defined(SH_FORKED_MODE)
 # define SHFILE_IN_USE
 #endif
@@ -600,5 +599,5 @@
 # endif /* K_OS != K_OS_WINDOWS */
 
-#elif defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#elif defined(SH_FORKED_MODE)
     fd = open(name, flags, mode);
 #endif
@@ -681,10 +680,6 @@
     }
 
-#elif defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
-# ifdef _MSC_VER
-    rc = _pipe(fds, PIPE_BUF, O_BINARY);
-# else
+#elif defined(SH_FORKED_MODE)
     rc = pipe(fds);
-# endif
 #endif
 
@@ -696,5 +691,5 @@
 {
     int rc;
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
     rc = dup(fd);
 
@@ -729,5 +724,5 @@
         rc = -1;
 
-#elif defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#elif defined(SH_FORKED_MODE)
     rc = close(fd);
 #endif
@@ -763,10 +758,6 @@
         rc = -1;
 
-#elif defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
-# ifdef _MSC_VER
-    rc = read(fd, buf, (unsigned)len);
-# else
+#elif defined(SH_FORKED_MODE)
     rc = read(fd, buf, len);
-# endif
 #endif
     return rc;
@@ -799,10 +790,6 @@
         rc = -1;
 
-#elif defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
-# ifdef _MSC_VER
-    rc = write(fd, buf, (unsigned)len);
-# else
+#elif defined(SH_FORKED_MODE)
     rc = write(fd, buf, len);
-# endif
 #endif
     return rc;
@@ -836,5 +823,5 @@
         rc = -1;
 
-#elif defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#elif defined(SH_FORKED_MODE)
     rc = lseek(fd, off, whench);
 #endif
@@ -919,59 +906,6 @@
         rc = -1;
 
-#elif defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
-# ifdef _MSC_VER
-    switch (cmd)
-    {
-        /* Just enough F_GETFL/F_SETFL to get along with. */
-        case F_GETFL:
-            errno = 0;
-            rc = _isatty(fd);
-            if (errno == EBADF)
-                rc = -1;
-            break;
-
-        case F_SETFL:
-            errno = 0;
-            rc = _isatty(fd);
-            if (errno != EBADF)
-            {
-                if (!arg)
-                    rc = 0;
-                else
-                {
-                    errno = EINVAL;
-                    rc = -1;
-                }
-            }
-            else
-                rc = -1;
-            break;
-
-        case F_DUPFD:
-        {
-            /* the brute force approach. */
-            int i = 0;
-            int fds[256];
-            for (i = 0; i < 256; i++)
-            {
-                fds[i] = -1;
-                rc = _dup(fd);
-                if (rc >= arg)
-                    break;
-                fds[i] = rc;
-            }
-            while (i-- > 0)
-                close(fds[i]);
-            if (rc < arg)
-            {
-                errno = EMFILE;
-                rc = -1;
-            }
-            break;
-        }
-    }
-# else
+#elif defined(SH_FORKED_MODE)
     rc = fcntl(fd, cmd, arg);
-# endif
 #endif
 
@@ -988,5 +922,5 @@
 int shfile_stat(shfdtab *pfdtab, const char *path, struct stat *pst)
 {
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
     return stat(path, pst);
 
@@ -997,5 +931,5 @@
 int shfile_lstat(shfdtab *pfdtab, const char *link, struct stat *pst)
 {
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
 # ifdef _MSC_VER
     return stat(link, pst);
@@ -1010,5 +944,5 @@
 int shfile_chdir(shfdtab *pfdtab, const char *path)
 {
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
 # ifdef _MSC_VER //???
     return chdir(path);
@@ -1023,5 +957,5 @@
 char *shfile_getcwd(shfdtab *pfdtab, char *buf, int len)
 {
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
     return getcwd(buf, len);
 
@@ -1032,5 +966,5 @@
 int shfile_access(shfdtab *pfdtab, const char *path, int type)
 {
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
 # ifdef _MSC_VER
     type &= ~X_OK;
@@ -1048,5 +982,5 @@
     int rc;
 
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
     rc = isatty(fd);
 #else
@@ -1062,5 +996,5 @@
     int rc;
 
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
 # ifdef _MSC_VER
     errno = ENOSYS;
@@ -1083,5 +1017,5 @@
     int rc;
 
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
 # ifdef _MSC_VER
     errno = ENOSYS;
@@ -1101,5 +1035,5 @@
 mode_t shfile_get_umask(shfdtab *pfdtab)
 {
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
     return 022;
 
@@ -1116,5 +1050,5 @@
 shdir *shfile_opendir(shfdtab *pfdtab, const char *dir)
 {
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
 # ifdef _MSC_VER
     errno = ENOSYS;
@@ -1130,5 +1064,5 @@
 shdirent *shfile_readdir(struct shdir *pdir)
 {
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
 # ifdef _MSC_VER
     errno = ENOSYS;
@@ -1145,5 +1079,5 @@
 void shfile_closedir(struct shdir *pdir)
 {
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
 # ifdef _MSC_VER
     errno = ENOSYS;
Index: /trunk/src/kash/shinstance.c
===================================================================
--- /trunk/src/kash/shinstance.c	(revision 2301)
+++ /trunk/src/kash/shinstance.c	(revision 2302)
@@ -697,5 +697,5 @@
     }
 
-#if (defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)) && !defined(_MSC_VER)
+#if defined(SH_FORKED_MODE) && !defined(_MSC_VER)
     rc = sigprocmask(operation, newp, oldp);
     if (!rc && newp)
@@ -726,5 +726,5 @@
         }
 
-# if defined(SH_STUB_MODE) || defined(_MSC_VER)
+# if defined(_MSC_VER)
         rc = 0;
 # else
@@ -798,5 +798,5 @@
      * Some other process, call kill where possible
      */
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
 # ifdef _MSC_VER
     errno = ENOSYS;
@@ -818,5 +818,5 @@
     int rc;
 
-#if defined(SH_STUB_MODE)
+#if defined(SH_FORKED_MODE)
 # ifdef _MSC_VER
     errno = ENOSYS;
@@ -837,5 +837,5 @@
 clock_t sh_times(shinstance *psh, shtms *tmsp)
 {
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
     (void)psh;
 # ifdef _MSC_VER
@@ -902,5 +902,5 @@
     pid = shfork_do_it(psh);
 
-#elif defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#elif defined(SH_FORKED_MODE)
 # ifdef _MSC_VER
     pid = -1;
@@ -1023,5 +1023,5 @@
     }
 
-#elif defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#elif defined(SH_FORKED_MODE)
     *statusp = 0;
 # ifdef _MSC_VER
@@ -1046,5 +1046,5 @@
     (void)psh;
 
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
     _exit(rc);
 
@@ -1071,5 +1071,5 @@
         envp = sh_environ(psh);
 
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
     errno = 0;
 # ifdef _MSC_VER
@@ -1079,5 +1079,5 @@
     {
         TRACE2((psh, "sh_execve: child exited, rc=%d. (errno=%d)\n", rc, errno));
-        exit(rc);
+        exit((int)rc);
     }
 # else
@@ -1095,5 +1095,5 @@
 uid_t sh_getuid(shinstance *psh)
 {
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
 # ifdef _MSC_VER
     uid_t uid = 0;
@@ -1112,5 +1112,5 @@
 uid_t sh_geteuid(shinstance *psh)
 {
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
 # ifdef _MSC_VER
     uid_t euid = 0;
@@ -1129,5 +1129,5 @@
 gid_t sh_getgid(shinstance *psh)
 {
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
 # ifdef _MSC_VER
     gid_t gid = 0;
@@ -1146,5 +1146,5 @@
 gid_t sh_getegid(shinstance *psh)
 {
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
 # ifdef _MSC_VER
     gid_t egid = 0;
@@ -1165,5 +1165,5 @@
     pid_t pid;
 
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
 # ifdef _MSC_VER
     pid = _getpid();
@@ -1180,5 +1180,5 @@
 pid_t sh_getpgrp(shinstance *psh)
 {
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
 # ifdef _MSC_VER
     pid_t pgrp = _getpid();
@@ -1197,5 +1197,5 @@
 pid_t sh_getpgid(shinstance *psh, pid_t pid)
 {
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
 # ifdef _MSC_VER
     pid_t pgid = pid;
@@ -1214,5 +1214,5 @@
 int sh_setpgid(shinstance *psh, pid_t pid, pid_t pgid)
 {
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
 # ifdef _MSC_VER
     int rc = -1;
@@ -1234,5 +1234,5 @@
     pid_t pgrp;
 
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
 # ifdef _MSC_VER
     pgrp = -1;
@@ -1255,5 +1255,5 @@
     TRACE2((psh, "sh_tcsetpgrp(%d, %d)\n", fd, pgrp));
 
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
 # ifdef _MSC_VER
     rc = -1;
@@ -1273,5 +1273,5 @@
 int sh_getrlimit(shinstance *psh, int resid, shrlimit *limp)
 {
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
 # ifdef _MSC_VER
     int rc = -1;
@@ -1293,5 +1293,5 @@
 int sh_setrlimit(shinstance *psh, int resid, const shrlimit *limp)
 {
-#if defined(SH_STUB_MODE) || defined(SH_FORKED_MODE)
+#if defined(SH_FORKED_MODE)
 # ifdef _MSC_VER
     int rc = -1;
