diff -u -r old/sh-utils-2.0i/doc/sh-utils.texi new/sh-utils-2.0i/doc/sh-utils.texi
--- old/sh-utils-2.0i/doc/sh-utils.texi	Mon Apr 10 14:20:42 2000
+++ new/sh-utils-2.0i/doc/sh-utils.texi	Wed May 10 09:11:15 2000
@@ -1259,6 +1259,10 @@
 be available, but it's not feasible to document all the variations: just
 try it and see.
 
+Note that most options for @code{stty} do not work under MSDOS,since the
+terminal settings cannot be changed using the ``con'' device which is
+the terminal driver for MSDOS systems.
+
 @menu
 * Control::                     Control settings
 * Input::                       Input settings
@@ -2065,6 +2069,7 @@
 The only options are @samp{--help} and @samp{--version}.  @xref{Common
 options}.
 
+Note that on MSDOS, this is not available and always prints an error message.
 
 @node who invocation
 @section @code{who}: Print who is currently logged in
@@ -2103,6 +2108,9 @@
 
 The program accepts the following options.  Also see @ref{Common options}.
 
+Note: Under MSDOS, @code{who} is not available since at any point of time,
+there can be only a single user.
+
 @table @samp
 @item -m
 @opindex -m
@@ -2913,6 +2921,9 @@
 10.  You must have appropriate privileges to specify a negative
 adjustment.  The priority can be adjusted by @code{nice} over the range
 of -20 (the highest priority) to 19 (the lowest).
+
+Note that on DJGPP, running @code{nice} does not produce the expected results
+since the nicety level is not inherited to child programs.
 
 @cindex conflicts with shell built-ins
 @cindex built-in shell commands, conflicts with
diff -u -r old/sh-utils-2.0i/lib/basename.c new/sh-utils-2.0i/lib/basename.c
--- old/sh-utils-2.0i/lib/basename.c	Mon Sep 27 00:10:01 1999
+++ new/sh-utils-2.0i/lib/basename.c	Wed May 10 09:11:43 2000
@@ -31,6 +31,10 @@
 # endif
 #endif
 
+#if defined __MSDOS__ && defined  __DJGPP__
+#define ISSLASH(C) ((C) == '/' || (C) == '\\' || (C) == ':')
+#endif
+
 #ifndef ISSLASH
 # define ISSLASH(C) ((C) == '/')
 #endif
diff -u -r old/sh-utils-2.0i/lib/dirname.c new/sh-utils-2.0i/lib/dirname.c
--- old/sh-utils-2.0i/lib/dirname.c	Sun Jan 23 03:21:46 2000
+++ new/sh-utils-2.0i/lib/dirname.c	Wed May 10 09:11:43 2000
@@ -57,9 +57,9 @@
   else
     {
       /* Remove any trailing slashes from the result.  */
-#ifdef MSDOS
+#ifdef __MSDOS__
       char *lim = (path[0] >= 'A' && path[0] <= 'z' && path[1] == ':')
-		  ? path + 2 : path;
+		  ? (char *)(path + 2) : (char *)path;
 
       /* If canonicalized "d:/path", leave alone the root case "d:/".  */
       while (slash > lim && *slash == '/')
diff -u -r old/sh-utils-2.0i/lib/euidaccess.c new/sh-utils-2.0i/lib/euidaccess.c
--- old/sh-utils-2.0i/lib/euidaccess.c	Fri Jan  7 19:29:26 2000
+++ new/sh-utils-2.0i/lib/euidaccess.c	Wed May 10 09:11:43 2000
@@ -159,9 +159,12 @@
     return -1;
 
   mode &= (X_OK | W_OK | R_OK);	/* Clear any bogus bits. */
+
+#ifndef __MSDOS__ /* Error occurs here on MSDOS systems. */
 #if R_OK != S_IROTH || W_OK != S_IWOTH || X_OK != S_IXOTH
   ?error Oops, portability assumptions incorrect.
 #endif
+#endif /* __MSDOS__ */
 
   if (mode == F_OK)
     return 0;			/* The file exists. */
diff -u -r old/sh-utils-2.0i/lib/getusershell.c new/sh-utils-2.0i/lib/getusershell.c
--- old/sh-utils-2.0i/lib/getusershell.c	Fri Sep 19 22:21:45 1997
+++ new/sh-utils-2.0i/lib/getusershell.c	Wed May 10 09:11:43 2000
@@ -51,6 +51,9 @@
 /* List of shells to use if the shells file is missing. */
 static char const* const default_shells[] =
 {
+#ifdef __MSDOS__
+  "c:/dos/command.com", "c:/windows/command.com", "c:/command.com",
+#endif
   "/bin/sh", "/bin/csh", "/usr/bin/sh", "/usr/bin/csh", NULL
 };
 
@@ -86,6 +89,11 @@
   if (shellstream == NULL)
     {
       shellstream = fopen (SHELLS_FILE, "r");
+#ifdef __MSDOS__
+      /* No standard place for "/etc/shells"...  */
+      if (shellstream == NULL && getenv ("SHELLS_FILE"))
+	shellstream = fopen (getenv ("SHELLS_FILE"), "r");
+#endif
       if (shellstream == NULL)
 	{
 	  /* No shells file.  Use the default list.  */
diff -u -r old/sh-utils-2.0i/lib/makepath.c new/sh-utils-2.0i/lib/makepath.c
--- old/sh-utils-2.0i/lib/makepath.c	Fri Apr 28 21:50:33 2000
+++ new/sh-utils-2.0i/lib/makepath.c	Wed May 10 09:11:43 2000
@@ -114,7 +114,7 @@
 # define _(Text) Text
 #endif
 
-#ifdef __MSDOS__
+#if defined(__MSDOS__) && !defined(HAVE_CONFIG_H)
 typedef int uid_t;
 typedef int gid_t;
 #endif
diff -u -r old/sh-utils-2.0i/lib/nanosleep.c new/sh-utils-2.0i/lib/nanosleep.c
--- old/sh-utils-2.0i/lib/nanosleep.c	Fri Mar 10 16:40:48 2000
+++ new/sh-utils-2.0i/lib/nanosleep.c	Wed May 10 09:11:43 2000
@@ -80,12 +80,18 @@
       sigemptyset (&newact.sa_mask);
       newact.sa_flags = 0;
 
+#ifdef SIGCONT /* SIGCONT isn't defined by ANSI. */      
       sigaction (SIGCONT, NULL, &oldact);
       if (oldact.sa_handler != SIG_IGN)
 	sigaction (SIGCONT, &newact, NULL);
+#endif /* SIGCONT */
+      
 #else
+#ifdef SIGCONT
       if (signal (SIGCONT, SIG_IGN) != SIG_IGN)
 	signal (SIGCONT, sighandler);
+#endif /* SIGCONT */
+      
 #endif
       first_call = 0;
     }
diff -u -r old/sh-utils-2.0i/lib/readutmp.c new/sh-utils-2.0i/lib/readutmp.c
--- old/sh-utils-2.0i/lib/readutmp.c	Wed Apr  5 19:59:20 2000
+++ new/sh-utils-2.0i/lib/readutmp.c	Wed May 10 09:11:43 2000
@@ -17,6 +17,8 @@
 
 /* Written by jla; revised by djm */
 
+#ifndef __MSDOS__ /* We don't have this facility on DOS. */
+
 #include <config.h>
 
 #include <stdio.h>
@@ -131,3 +133,4 @@
 }
 
 #endif
+#endif /* __MSDOS__ */
diff -u -r old/sh-utils-2.0i/lib/stripslash.c new/sh-utils-2.0i/lib/stripslash.c
--- old/sh-utils-2.0i/lib/stripslash.c	Mon Dec  7 18:50:37 1998
+++ new/sh-utils-2.0i/lib/stripslash.c	Wed May 10 09:11:43 2000
@@ -37,6 +37,18 @@
   int last;
 
   last = strlen (path) - 1;
+
+#ifdef __MSDOS__
+  /* Leave alone a single slash in "d:/".  "d:" means something
+      VERY different on MSDOS.  */
+  if (path[1] == ':')
+    {
+      path += 2;
+      last -= 2;
+    }
+  while (last > 0 && (path[last] == '/' || path[last] == '\\'))
+#else
   while (last > 0 && path[last] == '/')
+#endif /* __MSDOS__ */
     path[last--] = '\0';
 }
diff -u -r old/sh-utils-2.0i/src/dirname.c new/sh-utils-2.0i/src/dirname.c
--- old/sh-utils-2.0i/src/dirname.c	Sat May  6 18:38:25 2000
+++ new/sh-utils-2.0i/src/dirname.c	Wed May 10 09:12:13 2000
@@ -66,6 +66,9 @@
 {
   register char *path;
   register char *slash;
+#ifdef __MSDOS__
+  register char *temp;
+#endif /* __MSDOS__ */
 
   program_name = argv[0];
   setlocale (LC_ALL, "");
@@ -95,12 +98,31 @@
   strip_trailing_slashes (path);
 
   slash = strrchr (path, '/');
+#ifdef __MSDOS__
+  /* In case a backslash was used, check which one should be
+     stripped. */
+  temp = strrchr (path, '\\');
+  if (!slash) slash = temp;
+  else
+      if (temp && temp > slash) slash = temp;
+#endif /* __MSDOS__ */
+  
+#ifdef __MSDOS__	  
+  if (slash == NULL && strlen(path) >= 2)
+    {
+      if (path[1] != ':')
+	  path = (char *) ".";
+      else
+	  path[2] = '\0';
+    }
+#else
   if (slash == NULL)
-    path = (char *) ".";
+      path = (char *) ".";
+#endif /* __MSDOS__ */
   else
     {
       /* Remove any trailing slashes and final element. */
-      while (slash > path && *slash == '/')
+      while (slash > path && (*slash == '/' || *slash == '\\'))
 	--slash;
       slash[1] = 0;
     }
diff -u -r old/sh-utils-2.0i/src/pathchk.c new/sh-utils-2.0i/src/pathchk.c
--- old/sh-utils-2.0i/src/pathchk.c	Sat May  6 19:16:07 2000
+++ new/sh-utils-2.0i/src/pathchk.c	Wed May 10 09:12:14 2000
@@ -279,6 +279,25 @@
   parent = xstrdup (*path == '/' ? "/" : ".");
 
   slash = path;
+
+#ifdef __MSDOS__
+  if (path [0] && path[1] == ':')
+    {
+      /* If we have a pathname with a drive, make sure it's explicit
+	 (i.e. instead of "d:foo/bar" get "d:/curdir/foo/bar").  */
+      char *normalized_path = alloca(PATH_MAX + 1);
+      int c;
+
+      _fixpath (path, normalized_path);
+      c = normalized_path[3];
+      normalized_path[3] = 0;
+      parent = xstrdup (normalized_path);
+      normalized_path[3] = c;
+      path = normalized_path;
+      slash = path + 2;		/* point to the leftmost slash */
+    }
+#endif
+
   last_elem = 0;
   while (1)
     {
diff -u -r old/sh-utils-2.0i/src/pinky.c new/sh-utils-2.0i/src/pinky.c
--- old/sh-utils-2.0i/src/pinky.c	Sat May  6 19:21:43 2000
+++ new/sh-utils-2.0i/src/pinky.c	Wed May 10 09:12:14 2000
@@ -24,7 +24,9 @@
 
 #include "system.h"
 #include "error.h"
+#ifndef __MSDOS__
 #include "readutmp.h"
+#endif
 #include "closeout.h"
 
 /* The official name of this program (e.g., no `g' prefix).  */
@@ -82,6 +84,8 @@
   {NULL, 0, NULL, 0}
 };
 
+#ifndef __MSDOS__ /* In DOS, we don't need pinky. */
+
 /* Count and return the number of ampersands in STR.  */
 
 static int
@@ -456,9 +460,12 @@
     print_long_entry (argv_names[i]);
 }
 
+#endif /* __MSDOS__ */
+
 void
 usage (int status)
 {
+#ifndef __MSDOS__ /* Let the user know we don't have this. */
   if (status != 0)
     fprintf (stderr, _("Try `%s --help' for more information.\n"),
 	     program_name);
@@ -485,6 +492,9 @@
 "), UTMP_FILE);
       puts (_("\nReport bugs to <bug-sh-utils@gnu.org>."));
     }
+#else /* __MSDOS__ */
+  printf(_("%s not available on MS-DOS\n"), program_name);
+#endif /* __MSDOS__ */
   exit (status);
 }
 
@@ -494,6 +504,9 @@
   int optc, longind;
 
   program_name = argv[0];
+#ifdef __MSDOS__  /* If it's MSDOS, we just print a message and quit. */
+  usage(1);
+#else /* __MSDOS__ */
   setlocale (LC_ALL, "");
   bindtextdomain (PACKAGE, LOCALEDIR);
   textdomain (PACKAGE);
@@ -564,6 +577,6 @@
     short_pinky (UTMP_FILE, argc - optind, argv + optind);
   else
     long_pinky (argc - optind, argv + optind);
-
+#endif /* __MSDOS__ */
   exit (0);
 }
diff -u -r old/sh-utils-2.0i/src/stty.c new/sh-utils-2.0i/src/stty.c
--- old/sh-utils-2.0i/src/stty.c	Sat May  6 18:42:27 2000
+++ new/sh-utils-2.0i/src/stty.c	Wed May 10 09:12:14 2000
@@ -347,7 +347,6 @@
 #endif
   {"crt", combination, OMIT, 0, 0},
   {"dec", combination, OMIT, 0, 0},
-
   {NULL, control, 0, 0, 0}
 };
 
@@ -493,6 +492,28 @@
 void
 usage (int status)
 {
+#ifdef __DJGPP__
+      printf (_("\
+Usage: %s [-F DEVICE] [--file=DEVICE] [SETTING]...\n\
+  or:  %s [-F DEVICE] [--file=DEVICE] [-a|--all]\n\
+  or:  %s [-F DEVICE] [--file=DEVICE] [-g|--save]\n\
+"),
+	      program_name, program_name, program_name);
+      printf (_("\
+Print terminal characteristics.\n\
+\n\
+  -a, --all          print all current settings in human-readable form\n\
+      --help         display this help and exit\n\
+      --version      output version information and exit\n\
+\n\
+"));
+      printf (_("\
+\n\
+Special settings:\n\
+  speed         print the terminal speed\n\
+"));
+      puts (_("\nReport bugs to <bug-sh-utils@gnu.org>."));
+#else
   if (status != 0)
     fprintf (stderr, _("Try `%s --help' for more information.\n"),
 	     program_name);
@@ -670,6 +691,7 @@
 "));
       puts (_("\nReport bugs to <bug-sh-utils@gnu.org>."));
     }
+#endif /* __DJGPP__ */
   exit (status);
 }
 
@@ -740,6 +762,7 @@
 	  output_type = all;
 	  break;
 
+#ifndef __DJGPP__
 	case 'g':
 	  recoverable_output = 1;
 	  output_type = recoverable;
@@ -750,6 +773,7 @@
 	    error (2, 0, _("only one device may be specified"));
 	  file_name = optarg;
 	  break;
+#endif /* __DJGPP__ */
 
 	default:
 	  unrecognized_option = 1;
@@ -791,22 +815,29 @@
 
       /* Handle "--file device" */
       len = strlen (argv[k]);
+#ifndef __DJGPP__
       if (len >= 3 && strstr ("--file", argv[k]))
 	{
 	  argv[k] = NULL;
 	  argv[k + 1] = NULL;
 	  continue;
     	}
+#endif /* __DJGPP__ */
 
       /* Handle "--all" and "--save".  */
       if (len >= 3
 	  && (strstr ("--all", argv[k])
+#ifdef __DJGPP__
+	      ))
+#else
 	      || strstr ("--save", argv[k])))
+#endif /* __DJGPP__ */
 	{
 	  argv[k] = NULL;
 	  continue;
 	}
 
+#ifndef __DJGPP__
       /* Handle "--file=device".  */
       eq = strchr (argv[k], '=');
       if (eq && eq - argv[k] >= 3)
@@ -830,6 +861,7 @@
 	    argv[k + 1] = NULL;
 	  argv[k] = NULL;
         }
+#endif /* __DJGPP__ */
       /* Everything else must be a normal, non-option argument.  */
       else
 	{
@@ -906,6 +938,7 @@
 	  ++argv[k];
 	  reversed = 1;
 	}
+#ifndef __DJGPP__
       for (i = 0; mode_info[i].name != NULL; ++i)
 	{
 	  if (STREQ (argv[k], mode_info[i].name))
@@ -915,11 +948,13 @@
 	      break;
 	    }
 	}
+#endif
       if (match_found == 0 && reversed)
 	{
 	  error (0, 0, _("invalid argument `%s'"), --argv[k]);
 	  usage (1);
 	}
+#ifndef __DJGPP__
       if (match_found == 0)
 	{
 	  for (i = 0; control_info[i].name != NULL; ++i)
@@ -939,8 +974,10 @@
 		}
 	    }
 	}
+#endif
       if (match_found == 0)
 	{
+#ifndef __DJGPP__
 	  if (STREQ (argv[k], "ispeed"))
 	    {
 	      if (k == argc - 1)
@@ -1009,11 +1046,17 @@
 	      require_set_attr = 1;
 	    }
 #endif
+#endif /* __DJGPP__ */
+#ifdef __DJGPP__
+	  if (STREQ (argv[k], "speed"))
+#else
 	  else if (STREQ (argv[k], "speed"))
+#endif
 	    {
 	      max_col = screen_columns ();
 	      display_speed (&mode, 0);
 	    }
+#ifndef __DJGPP__
 	  else if (string_to_baud (argv[k]) != (speed_t) -1)
 	    {
 	      set_speed (both_speeds, argv[k], &mode);
@@ -1029,10 +1072,12 @@
 		}
 	      require_set_attr = 1;
 	    }
+#endif /* __DJGPP__ */
 	}
       k++;
     }
 
+#ifndef __DJGPP__
   if (require_set_attr)
     {
       struct termios new_mode;
@@ -1092,6 +1137,7 @@
 	    }
 	}
     }
+#endif /* __DJGPP__ */
 
   exit (0);
 }
diff -u -r old/sh-utils-2.0i/src/su.c new/sh-utils-2.0i/src/su.c
--- old/sh-utils-2.0i/src/su.c	Sat May  6 19:17:20 2000
+++ new/sh-utils-2.0i/src/su.c	Wed May 10 09:12:14 2000
@@ -128,8 +128,12 @@
 #ifdef _PATH_DEFPATH
 # define DEFAULT_LOGIN_PATH _PATH_DEFPATH
 #else
+#ifdef __MSDOS__
+#define DEFAULT_LOGIN_PATH "c:/dos;c:/windows;c:/"
+#else
 # define DEFAULT_LOGIN_PATH ":/usr/ucb:/bin:/usr/bin"
 #endif
+#endif
 
 /* The default PATH for simulated logins to superuser accounts.  */
 #ifdef _PATH_DEFPATH_ROOT
@@ -139,7 +143,11 @@
 #endif
 
 /* The shell to run if none is given in the user's passwd entry.  */
+#ifdef __MSDOS__
+#define DEFAULT_SHELL "command.com"
+#else
 #define DEFAULT_SHELL "/bin/sh"
+#endif
 
 /* The user to become if none is specified.  */
 #define DEFAULT_USER "root"
@@ -285,6 +293,10 @@
     correct = sp->sp_pwdp;
   else
 #endif
+
+#ifdef __DJGPP__
+  return 1;
+#else /* not __DJGPP__ */
     correct = pw->pw_passwd;
 
   if (getuid () == 0 || correct == 0 || correct[0] == '\0')
@@ -299,6 +311,7 @@
   encrypted = crypt (unencrypted, correct);
   memset (unencrypted, 0, strlen (unencrypted));
   return strcmp (encrypted, correct) == 0;
+#endif /* __DJGPP__ */
 }
 
 /* Update `environ' for the new shell based on PW, with SHELL being
@@ -393,6 +406,13 @@
     args[argno++] = "-f";
   if (command)
     {
+#ifdef __DJGPP__
+      extern int _is_dos_shell (const char *);
+
+      if (_is_dos_shell (shell))
+	args[argno++] = "/c";
+      else
+#endif
       args[argno++] = "-c";
       args[argno++] = command;
     }
@@ -413,6 +433,14 @@
 {
   char *line;
 
+#ifdef __MSDOS__
+  /* Convert all slashes to forward style, make sure the
+     letter case in both SHELL and LINE is consistent.  */
+  char shellbuf[PATH_MAX];
+
+  _fixpath (shell, shellbuf);
+  shell = shellbuf;
+#endif
   setusershell ();
   while ((line = getusershell ()) != NULL)
     {
@@ -459,7 +487,11 @@
 main (int argc, char **argv)
 {
   int optc;
+#ifdef __DJGPP__
+  char *new_user = getlogin ();
+#else
   const char *new_user = DEFAULT_USER;
+#endif
   char *command = 0;
   char **additional_args = 0;
   char *shell = 0;
@@ -522,9 +554,29 @@
   if (optind < argc)
     additional_args = argv + optind;
 
+#ifndef __DJGPP__
   pw = getpwnam (new_user);
+#else
+  pw = getpwnam (getlogin());
+#endif /* __DJGPP__ */
+
   if (pw == 0)
+#ifdef __DJGPP__
+    {
+      /* On MSDOS, allow them to become anyone.  */
+      extern char * __dosexec_find_on_path (const char *, char **, char *);
+      char found_at[PATH_MAX];
+
+      pw = (struct passwd *)alloca (sizeof (struct passwd));
+      pw->pw_name = new_user;
+      pw->pw_dir = "c:/";
+      pw->pw_shell = __dosexec_find_on_path ("command.com", environ, found_at);
+      pw->pw_uid = getuid ();
+      pw->pw_gid = getgid ();
+    }
+#else  /* not DJGPP */
     error (1, 0, _("user %s does not exist"), new_user);
+#endif
   endpwent ();
 
   /* Make sure pw->pw_shell is non-NULL.  It may be NULL when NEW_USER
@@ -558,6 +610,11 @@
 
   if (shell == 0 && change_environment == 0)
     shell = getenv ("SHELL");
+#ifdef __MSDOS__
+  /* $SHELL is not guaranteed to be defined on MSDOS.  */
+  if (shell == 0 && change_environment == 0)
+    shell = getenv ("COMSPEC");
+#endif
   if (shell != 0 && getuid () && restricted_shell (pw->pw_shell))
     {
       /* The user being su'd to has a nonstandard shell, and so is
diff -u -r old/sh-utils-2.0i/src/tee.c new/sh-utils-2.0i/src/tee.c
--- old/sh-utils-2.0i/src/tee.c	Sat May  6 18:27:27 2000
+++ new/sh-utils-2.0i/src/tee.c	Wed May 10 09:12:14 2000
@@ -166,7 +166,11 @@
   char buffer[BUFSIZ];
   int bytes_read, i;
   int ret = 0;
+#ifdef __MSDOS__
+  char *mode_string = (append ? "a" : "w");
+#else
   const char *mode_string = (append ? "a" : "w");
+#endif /* __MSDOS__ */
 
   descriptors = (FILE **) xmalloc ((nfiles + 1) * sizeof (descriptors[0]));
 
@@ -175,6 +179,17 @@
   for (i = nfiles; i >= 1; i--)
     files[i] = files[i - 1];
 
+#ifdef __MSDOS__
+  /* When reading from a pipe, do it in binary mode so file
+     contents are copied verbatim.  */
+  if (!isatty (0))
+    {
+      setmode (0, O_BINARY);
+      if (!isatty (1))
+	setmode (1, O_BINARY);
+      mode_string = (append ? "ab" : "wb");
+    }
+#endif
   /* In the array of NFILES + 1 descriptors, make
      the first one correspond to standard output.   */
   descriptors[0] = stdout;
diff -u -r old/sh-utils-2.0i/src/test.c new/sh-utils-2.0i/src/test.c
--- old/sh-utils-2.0i/src/test.c	Sat May  6 19:21:09 2000
+++ new/sh-utils-2.0i/src/test.c	Wed May 10 09:12:14 2000
@@ -156,6 +156,11 @@
   struct stat st;
   static int euid = -1;
 
+#ifdef __MSDOS__
+  /* The bits in MODE are different for `access' and `stat'.
+     Besides, MSDOS doesn't care about uid/euid issues.  */
+  return access (path, mode);
+#else /* not MSDOS */
   if (test_stat (path, &st) < 0)
     return (-1);
 
@@ -183,6 +188,7 @@
     return (0);
 
   return (-1);
+#endif /* not MSDOS. */
 }
 
 /* Increment our position in the argument list.  Check that we're not
@@ -656,6 +662,18 @@
     case 'x':			/* File is executable? */
       unary_advance ();
       value = -1 != eaccess (argv[pos - 1], X_OK);
+#ifdef __DJGPP__
+      /* Shell scripts say ``test -x prog'', but DOS executables are
+	 called `prog.exe', `prog.com' etc.  Make so they are found.  */
+      {
+	extern char * __dosexec_find_on_path (const char *, char *[], char *);
+	char arg_path[PATH_MAX];
+
+	if (value == FALSE
+	    && __dosexec_find_on_path (argv[pos -1], (char **)0, arg_path))
+	  value = -1 != eaccess (arg_path, X_OK);
+      }
+#endif
       return (TRUE == value);
 
     case 'O':			/* File is owned by you? */
diff -u -r old/sh-utils-2.0i/src/users.c new/sh-utils-2.0i/src/users.c
--- old/sh-utils-2.0i/src/users.c	Sat May  6 19:18:35 2000
+++ new/sh-utils-2.0i/src/users.c	Wed May 10 09:12:14 2000
@@ -23,7 +23,10 @@
 
 #include "error.h"
 #include "long-options.h"
+
+#ifndef __MSDOS__
 #include "readutmp.h"
+#endif /* __MSDOS__ */
 #include "system.h"
 #include "closeout.h"
 
@@ -48,6 +51,8 @@
   return strcmp (*a, *b);
 }
 
+#ifndef __MSDOS__ /* This package isn't needed on DOS. */
+
 static void
 list_entries_users (int n, const STRUCT_UTMP *this)
 {
@@ -105,9 +110,12 @@
   list_entries_users (n_users, utmp_buf);
 }
 
+#endif /* __MSDOS__ */
+
 void
 usage (int status)
 {
+#ifndef __MSDOS__
   if (status != 0)
     fprintf (stderr, _("Try `%s --help' for more information.\n"),
 	     program_name);
@@ -123,6 +131,10 @@
 	      UTMP_FILE, WTMP_FILE);
       puts (_("\nReport bugs to <bug-sh-utils@gnu.org>."));
     }
+#else /* __MSDOS__ */
+  printf(_("%s not available on MS-DOS\n"), program_name);
+#endif /* __MSDOS__ */
+
   exit (status);
 }
 
@@ -130,7 +142,11 @@
 main (int argc, char **argv)
 {
   int optc, longind;
+
   program_name = argv[0];
+#ifdef __MSDOS__
+  usage(1);
+#else /* __MSDOS__ */
   setlocale (LC_ALL, "");
   bindtextdomain (PACKAGE, LOCALEDIR);
   textdomain (PACKAGE);
@@ -166,6 +182,6 @@
       error (0, 0, _("too many arguments"));
       usage (1);
     }
-
+#endif /* __MSDOS__ */
   exit (0);
 }
diff -u -r old/sh-utils-2.0i/src/who.c new/sh-utils-2.0i/src/who.c
--- old/sh-utils-2.0i/src/who.c	Sat May  6 19:18:53 2000
+++ new/sh-utils-2.0i/src/who.c	Wed May 10 09:12:14 2000
@@ -29,7 +29,11 @@
 #include <stdio.h>
 
 #include "error.h"
+
+#ifndef __MSDOS__
 #include "readutmp.h"
+#endif /* __MSDOS_- */
+
 #include "system.h"
 #include "closeout.h"
 
@@ -87,6 +91,8 @@
   {NULL, 0, NULL, 0}
 };
 
+#ifndef __MSDOS__
+
 /* Return a string representing the time between WHEN and the time
    that this function is first run. */
 
@@ -351,9 +357,12 @@
   print_entry (utmp_entry);
 }
 
+#endif /* __MSDOS__ */
+
 void
 usage (int status)
 {
+#ifndef __MSDOS__
   if (status != 0)
     fprintf (stderr, _("Try `%s --help' for more information.\n"),
 	     program_name);
@@ -379,6 +388,10 @@
 "), UTMP_FILE, WTMP_FILE);
       puts (_("\nReport bugs to <bug-sh-utils@gnu.org>."));
     }
+#else /* __MSDOS__ */
+  printf(_("%s not available on MS-DOS\n"), program_name);
+#endif /* __MSDOS__ */
+  
   exit (status);
 }
 
@@ -389,6 +402,9 @@
   int my_line_only = 0;
 
   program_name = argv[0];
+#ifdef __MSDOS__
+  usage(1);
+#else /* __MSDOS__ */
   setlocale (LC_ALL, "");
   bindtextdomain (PACKAGE, LOCALEDIR);
   textdomain (PACKAGE);
@@ -465,6 +481,6 @@
       error (0, 0, _("too many arguments"));
       usage (1);
     }
-
+#endif /* __MSDOS__ */
   exit (0);
 }
diff -u -r old/sh-utils-2.0i/tests/nice new/sh-utils-2.0i/tests/nice
--- old/sh-utils-2.0i/tests/nice	Thu Sep  9 11:37:00 1999
+++ new/sh-utils-2.0i/tests/nice	Wed May 10 09:20:35 2000
@@ -1,8 +1,6 @@
-#! /bin/sh
+#!/bin/sh
 # This script takes no arguments.
 
-srcdir=..
-
 tests='
 0 empty 10
 1 -1 1
@@ -27,6 +25,11 @@
 NA LAST NA
 '
 set - $tests
+
+if test -n "$DJDIR"; then
+  echo "Cannot execute nice test on DJGPP";
+  exit 77;
+fi
 
 if test "$VERBOSE" = yes; then
   nice --version
diff -u -r old/sh-utils-2.0i/tests/stty/basic-1 new/sh-utils-2.0i/tests/stty/basic-1
--- old/sh-utils-2.0i/tests/stty/basic-1	Tue Aug 17 15:11:29 1999
+++ new/sh-utils-2.0i/tests/stty/basic-1	Wed May 10 09:20:52 2000
@@ -1,6 +1,11 @@
-#! /bin/sh
+#!/bin/sh
 # Make sure stty can parse most of its options.
 
+if test -n "$DJDIR"; then
+  echo "Cannot execute stty tests on DJGPP";
+  exit 77;
+fi
+
 if test "$VERBOSE" = yes; then
   set -x
   stty --version
@@ -24,7 +29,7 @@
 REV_cbreak=1 REV_decctlq=1 REV_tabs=1 REV_lcase=1 REV_LCASE=1
 
 fail=0
-saved_state=.saved-state
+exit 0
 stty --save > $saved_state || fail=1
 stty `cat $saved_state` || fail=1
 
diff -u -r old/sh-utils-2.0i/tests/stty/row-col-1 new/sh-utils-2.0i/tests/stty/row-col-1
--- old/sh-utils-2.0i/tests/stty/row-col-1	Sat Jan 29 14:47:41 2000
+++ new/sh-utils-2.0i/tests/stty/row-col-1	Wed May 10 09:21:01 2000
@@ -1,6 +1,11 @@
-#! /bin/sh
+#!/bin/sh
 # This script takes no arguments.
 
+if test -n "$DJDIR"; then
+  echo "Cannot execute stty tests on DJGPP";
+  exit 77;
+fi
+
 if test "$VERBOSE" = yes; then
   set -x
   stty --version
@@ -31,7 +36,7 @@
 '
 set - $tests
 
-saved_size=.saved-size
+exit 0
 
 stty size > $saved_size || exit 1
 
--- /dev/null	Wed May  6 01:32:27 1998
+++ new/sh-utils-2.0i/djgpp/Makefile	Wed May 10 13:20:47 2000
@@ -0,0 +1,221 @@
+# Makefile.in generated automatically by automake 1.4a from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = ..
+prefix = ${DJDIR}
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/info
+mandir = ${prefix}/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/sh-utils
+pkglibdir = $(libdir)/sh-utils
+pkgincludedir = $(includedir)/sh-utils
+
+top_builddir = ..
+
+ACLOCAL = ${SHELL} /prj/shutils1/sh-utils-2.0i/missing --run aclocal
+AUTOCONF = ${SHELL} /prj/shutils1/sh-utils-2.0i/missing --run autoconf
+AUTOMAKE = ${SHELL} /prj/shutils1/sh-utils-2.0i/missing --run automake
+AUTOHEADER = ${SHELL} /prj/shutils1/sh-utils-2.0i/missing --run autoheader
+
+INSTALL = d:/djgpp/bin/ginstall -c
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_FLAG =
+transform = s,x,x,
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = i386-pc-msdosdjgpp
+host_triplet = i386-pc-msdosdjgpp
+AMTAR = ${SHELL} /prj/shutils1/sh-utils-2.0i/missing --run tar
+AMTARFLAGS = @AMTARFLAGS@
+CATALOGS = 
+CATOBJEXT = 
+CC = gcc
+CPP = gcc -E
+DATADIRNAME = share
+GENCAT = 
+GETCONF = getconf
+GMOFILES =  cs.gmo de.gmo el.gmo es.gmo et.gmo fr.gmo gl.gmo it.gmo ja.gmo nl.gmo no.gmo pl.gmo pt.gmo pt_BR.gmo sl.gmo ru.gmo sk.gmo sv.gmo zh.gmo
+GMSGFMT = 
+GNU_PACKAGE = GNU sh-utils
+GT_NO = 
+GT_YES = #YES#
+INCLUDE_LOCALE_H = #include <locale.h>
+INSTOBJEXT = 
+INTLDEPS = 
+INTLLIBS = 
+INTLOBJS = 
+LIBOBJS = fileblocks$U.o lchown$U.o lstat$U.o nanosleep$U.o group-member$U.o strtoumax$U.o error$U.o strftime$U.o getloadavg$U.o regex$U.o getusershell$U.o stime$U.o euidaccess$U.o rpmatch$U.o strndup$U.o strverscmp$U.o strnlen$U.o getline$U.o obstack$U.o
+ fsusage$U.o mountlist$U.o
+MAKEINFO = ${SHELL} /prj/shutils1/sh-utils-2.0i/missing --run makeinfo
+MKINSTALLDIRS = ./mkinstalldirs
+MSGFMT = 
+PACKAGE = sh-utils
+PERL = perl
+POFILES =  cs.po de.po el.po es.po et.po fr.po gl.po it.po ja.po nl.po no.po pl.po pt.po pt_BR.po sl.po ru.po sk.po sv.po zh.po
+POSUB = 
+POW_LIBM = 
+RANLIB = ranlib
+U = 
+USE_INCLUDED_LIBINTL = no
+USE_NLS = no
+VERSION = 2.0i
+l = 
+
+
+EXTRA_DIST = fnchange.lst fnchange.lsx README README.in \
+  config.bat config.sed config.site \
+  getconf edtests.bat tscript.sed
+
+MAINTAINERCLEANFILES = fnchange.lst README
+subdir = djgpp
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES = 
+DIST_SOURCES = 
+DIST_COMMON =  README ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnits --include-deps djgpp/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+distdir: $(DISTFILES)
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile all-local
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-local all-redirect all-am all install-strip installdirs \
+mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+all-local: README fnchange.lst
+
+fnchange.lst: fnchange.lsx $(top_srcdir)/configure.in
+	sed \
+	    -e '/^#/d' \
+	    -e 's/@V@/$(PACKAGE)-$(VERSION)/g' \
+	  $(srcdir)/fnchange.lsx > t-$@
+	mv t-$@ $@
+
+README: README.in $(top_srcdir)/configure.in
+	sed \
+	    -e 's/@VERSION\@/$(VERSION)/g' \
+	    -e 's/@V@/$(PACKAGE)-$(VERSION)/g' \
+	  $(srcdir)/README.in > t-$@
+	mv t-$@ $@
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- /dev/null	Wed May  6 01:32:27 1998
+++ new/sh-utils-2.0i/djgpp/Makefile.am	Wed May 10 13:20:47 2000
@@ -0,0 +1,22 @@
+## Process this file with automake to produce Makefile.in -*-Makefile-*-
+
+EXTRA_DIST = fnchange.lst fnchange.lsx README README.in \
+  config.bat config.sed config.site \
+  getconf edtests.bat tscript.sed
+MAINTAINERCLEANFILES = fnchange.lst README
+
+all-local: README fnchange.lst
+
+fnchange.lst: fnchange.lsx $(top_srcdir)/configure.in
+	sed \
+	    -e '/^#/d' \
+	    -e 's/@V@/$(PACKAGE)-$(VERSION)/g' \
+	  $(srcdir)/fnchange.lsx > t-$@
+	mv t-$@ $@
+
+README: README.in $(top_srcdir)/configure.in
+	sed \
+	    -e 's/@VERSION\@/$(VERSION)/g' \
+	    -e 's/@V@/$(PACKAGE)-$(VERSION)/g' \
+	  $(srcdir)/README.in > t-$@
+	mv t-$@ $@
--- /dev/null	Wed May  6 01:32:27 1998
+++ new/sh-utils-2.0i/djgpp/Makefile.in	Wed May 10 13:20:47 2000
@@ -0,0 +1,221 @@
+# Makefile.in generated automatically by automake 1.4a from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_FLAG =
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AMTAR = @AMTAR@
+AMTARFLAGS = @AMTARFLAGS@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CPP = @CPP@
+DATADIRNAME = @DATADIRNAME@
+GENCAT = @GENCAT@
+GETCONF = @GETCONF@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNU_PACKAGE = @GNU_PACKAGE@
+GT_NO = @GT_NO@
+GT_YES = @GT_YES@
+INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
+INSTOBJEXT = @INSTOBJEXT@
+INTLDEPS = @INTLDEPS@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+LIBOBJS = @LIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+POFILES = @POFILES@
+POSUB = @POSUB@
+POW_LIBM = @POW_LIBM@
+RANLIB = @RANLIB@
+U = @U@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+l = @l@
+
+
+EXTRA_DIST = fnchange.lst fnchange.lsx README README.in \
+  config.bat config.sed config.site \
+  getconf edtests.bat tscript.sed
+
+MAINTAINERCLEANFILES = fnchange.lst README
+subdir = djgpp
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES = 
+DIST_SOURCES = 
+DIST_COMMON =  README ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnits --include-deps djgpp/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+distdir: $(DISTFILES)
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile all-local
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-local all-redirect all-am all install-strip installdirs \
+mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+all-local: README fnchange.lst
+
+fnchange.lst: fnchange.lsx $(top_srcdir)/configure.in
+	sed \
+	    -e '/^#/d' \
+	    -e 's/@V@/$(PACKAGE)-$(VERSION)/g' \
+	  $(srcdir)/fnchange.lsx > t-$@
+	mv t-$@ $@
+
+README: README.in $(top_srcdir)/configure.in
+	sed \
+	    -e 's/@VERSION\@/$(VERSION)/g' \
+	    -e 's/@V@/$(PACKAGE)-$(VERSION)/g' \
+	  $(srcdir)/README.in > t-$@
+	mv t-$@ $@
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- /dev/null	Wed May  6 01:32:27 1998
+++ new/sh-utils-2.0i/djgpp/README.in	Wed May 10 13:20:47 2000
@@ -0,0 +1,112 @@
+These are instructions to build GNU Sh-utils for MS-DOS and
+MS-Windows using DJGPP tools.
+
+
+Required tools
+==============
+
+To build the package, you will need the DJGPP development environment
+(GCC, header files and the libraries) and DJGPP ports of the following
+tools:
+
+	- GNU Make 3.75 or later
+	- Bash (or some other Unix-like shell)
+	- GNU Sed
+	- GNU Fileutils
+	- GNU Textutils
+	- A previous version of GNU Sh-utils
+	- GNU Grep
+	- To run the test suite you'll also need Perl and Awk.
+
+These should be available from the DJGPP sites (see the FAQ for
+Simtelnet mirrors).
+
+The package should be built with the port of Make 3.75 or later.
+Previous versions of Make ported to DJGPP didn't support Unix shells,
+and the Makefiles for this package won't work without a Unix shell.
+
+
+Unpacking the sources
+=====================
+
+If you download the source distribution from one of the DJGPP
+archives, just unzip it preserving the directory structure (use -d
+switch if you do that with PKUNZIP).  You are now ready to build the
+programs; see the section "How to build" below.
+
+Source distributions downloaded from one of the GNU FTP sites need
+some more work to unpack.  First, you MUST use the `djtar' program to
+unzip the package.  That's because some file names in the official
+distributions need to be changed to avoid problems on the various
+platforms supported by DJGPP.  `djtar' can rename files on the fly
+given a file with name mappings.  The distribution includes a file
+`djgpp/fnchange.lst' with the necessary mappings.  So you need first
+to retrieve that file, and then invoke `djtar' to unpack the
+distribution.  Here's how:
+
+
+  djtar -x -p -o @V@/djgpp/fnchange.lst @V@.tar.gz > lst
+  djtar -x -n lst @V@.tar.gz
+
+(The name of the distribution archive and the top-level directory will
+be different for versions other than 2.0g.)
+
+
+
+How to build
+============
+
+If you obtained the sources from one of the DJGPP archives, there's
+nothing much to be done. The Makefiles are ready and you can build the
+package in one go by running `make'. Make sure that you have Make 3.75
+or later.
+
+If you want to get the DVI, Postscript and HTML documents you need to
+do this:
+
+		make dvi
+		make sh-utils.ps  (In the doc directory)
+		makeinfo --html sh-utils.texi  (In the doc dorectory)
+
+To build the package downloaded from a GNU FTP site, you will need o
+configure it first.  You will also need to configure it if you want to
+change the configuration options (e.g., use Rx instead of Regex, or
+add the National Language Support).  To configure Sh-utils, use the
+CONFIG.BAT batch file in the DJGPP subdirectory.  It sets a few
+environment variables, then calls BASH to run the configure script, so
+you should run CONFIG.BAT, then Make:
+
+		djgpp\config
+		make
+
+If you are building from a directory other than that where the sources
+were unpacked, give the source directory as an argument o CONFIG.BAT:
+
+	f:\gnu\@V@\djgpp\config f:/gnu/@V@
+
+Note that you MUST use forward slashes in the argument to CONFIG.BAT.
+
+The configure script run by CONFIG.BAT supports a few options (e.g.,
+you could build the package with the GNU Rx library instead of the
+default Regex).  Run "sh ./configure --help" to see all the options
+recognized by the script.
+
+When Make finishes, you can run the test suite and install the package:
+
+		make check
+		make install
+
+Notes
+=====
+
+The absolute majority of the DOS-specific changes for this package
+take care of the filename issues such as backward and forward slashes.
+Some utilities like users, who, pinky, are not available under DOS.
+Running them just prints an error message.
+
+The GNU Gettext package is not supported yet in the DJGPP version, so
+don't expect the programs to talk to you in any language but English.
+
+
+		Enjoy,
+				Prashant TR <prashant_tr@yahoo.com>
--- /dev/null	Wed May  6 01:32:27 1998
+++ new/sh-utils-2.0i/djgpp/config.bat	Wed May 10 13:20:47 2000
@@ -0,0 +1,153 @@
+@echo off
+echo Configuring GNU Sh-utils for DJGPP v2.x...
+
+Rem The SmallEnv tests protect against fixed and too small size
+Rem of the environment in stock DOS shell.
+
+Rem Find out where the sources are
+set XSRC=.
+if not "%XSRC%" == "." goto SmallEnv
+if "%1" == "" goto InPlace
+set XSRC=%1
+if not "%XSRC%" == "%1" goto SmallEnv
+redir -e /dev/null update %XSRC%/configure.orig ./configure
+if not exist configure update %XSRC%/configure ./configure
+
+:InPlace
+Rem Update configuration files
+echo Updating configuration scripts...
+if not exist configure.orig update configure configure.orig
+sed -f %XSRC%/djgpp/config.sed configure.orig > configure
+if errorlevel 1 goto SedError
+
+Rem Make sure they have a config.site file
+set CONFIG_SITE=%XSRC%/djgpp/config.site
+if not "%CONFIG_SITE%" == "%XSRC%/djgpp/config.site" goto SmallEnv
+
+Rem This is required because DOS/Windows are case-insensitive
+Rem to file names, and "make install" will do nothing if Make
+Rem finds a file called `install'.
+if exist INSTALL ren INSTALL INSTALL.txt
+
+Rem Set HOSTNAME so it shows in config.status
+if not "%HOSTNAME%" == "" goto hostdone
+if "%windir%" == "" goto msdos
+set OS=MS-Windows
+if not "%OS%" == "MS-Windows" goto SmallEnv
+goto haveos
+:msdos
+set OS=MS-DOS
+if not "%OS%" == "MS-DOS" goto SmallEnv
+:haveos
+if not "%USERNAME%" == "" goto haveuname
+if not "%USER%" == "" goto haveuser
+echo No USERNAME and no USER found in the environment, using default values
+set HOSTNAME=Unknown PC
+if not "%HOSTNAME%" == "Unknown PC" goto SmallEnv
+:haveuser
+set HOSTNAME=%USER%'s PC
+if not "%HOSTNAME%" == "%USER%'s PC" goto SmallEnv
+goto userdone
+:haveuname
+set HOSTNAME=%USERNAME%'s PC
+if not "%HOSTNAME%" == "%USERNAME%'s PC" goto SmallEnv
+:userdone
+set HOSTNAME=%HOSTNAME%, %OS%
+if not "%HOSTNAME%" == "%HOSTNAME%, %OS%" goto SmallEnv
+:hostdone
+set OS=
+
+Rem install-sh is required by the configure script but clashes with the
+Rem various Makefile install-foo targets, so we MUST have it before the
+Rem script runs and rename it afterwards
+if not exist install-sh if exist install-sh.sh ren install-sh.sh install-sh
+echo Running the ./configure script...
+sh ./configure --src=%XSRC% --disable-nls
+if errorlevel 1 goto CfgError
+if not exist install-sh.sh if exist install-sh ren install-sh install-sh.sh
+if "%XSRC%" == "." call djgpp\edtests
+Rem edit the various Makefiles.
+rem
+echo    intl/Makefile...
+if not exist intl\Makefile.orig mv -f intl/Makefile intl/Makefile.orig
+sed -f %XSRC%/djgpp/tscript.sed intl/Makefile.orig > intl\Makefile
+rem
+echo    lib/Makefile...
+if not exist lib\Makefile.orig mv -f lib/Makefile lib/Makefile.orig
+sed -f %XSRC%/djgpp/tscript.sed lib/Makefile.orig > lib\Makefile.temp
+sed -e "s/\.sed/.se/g" lib/Makefile.temp > lib\Makefile
+rem
+echo    src/Makefile...
+if not exist src\Makefile.orig mv -f src/Makefile src/Makefile.orig
+sed -f %XSRC%/djgpp/tscript.sed src/Makefile.orig > src\Makefile
+rem
+echo    po/Makefile...
+if not exist po\Makefile.orig mv -f po/Makefile po/Makefile.orig
+sed -f %XSRC%/djgpp/tscript.sed po/Makefile.orig > po\Makefile
+rem
+echo    m4/Makefile...
+if not exist m4\Makefile.orig mv -f m4/Makefile m4/Makefile.orig
+sed -f %XSRC%/djgpp/tscript.sed m4/Makefile.orig > m4\Makefile
+rem
+echo    doc/Makefile...
+if not exist doc\Makefile.orig mv -f doc/Makefile doc/Makefile.orig
+sed -f %XSRC%/djgpp/tscript.sed doc/Makefile.orig > doc\Makefile
+rem
+echo    man/Makefile...
+if not exist man\Makefile.orig mv -f man/Makefile man/Makefile.orig
+sed -f %XSRC%/djgpp/tscript.sed man/Makefile.orig > man\Makefile.temp
+sed -e "s/^MANS *=.*/MANS = /g" man/Makefile.temp > man\Makefile
+rem
+echo    tests/Makefile...
+if not exist tests\Makefile.orig mv -f tests/Makefile tests/Makefile.orig
+sed -f %XSRC%/djgpp/tscript.sed tests/Makefile.orig > tests\Makefile
+rem
+echo    tests/basename/Makefile...
+if not exist tests\basename\Makefile.orig mv -f tests/basename/Makefile tests/basename/Makefile.orig
+sed -f %XSRC%/djgpp/tscript.sed tests/basename/Makefile.orig > tests\basename\Makefile
+rem
+echo    tests/date/Makefile...
+if not exist tests\date\Makefile.orig mv -f tests/date/Makefile tests/date/Makefile.orig
+sed -f %XSRC%/djgpp/tscript.sed tests/date/Makefile.orig > tests\date\Makefile
+rem
+echo    tests/factor/Makefile...
+if not exist tests\factor\Makefile.orig mv -f tests/factor/Makefile tests/factor/Makefile.orig
+sed -f %XSRC%/djgpp/tscript.sed tests/factor/Makefile.orig > tests\factor\Makefile
+rem
+echo    tests/seq/Makefile...
+if not exist tests\seq\Makefile.orig mv -f tests/seq/Makefile tests/seq/Makefile.orig
+sed -f %XSRC%/djgpp/tscript.sed tests/seq/Makefile.orig > tests\seq\Makefile
+rem
+echo    tests/stty/Makefile...
+if not exist tests\stty\Makefile.orig mv -f tests/stty/Makefile tests/stty/Makefile.orig
+sed -f %XSRC%/djgpp/tscript.sed tests/stty/Makefile.orig > tests\stty\Makefile
+rem
+echo    tests/test/Makefile...
+if not exist tests\test\Makefile.orig mv -f tests/test/Makefile tests/test/Makefile.orig
+sed -f %XSRC%/djgpp/tscript.sed tests/test/Makefile.orig > tests\test\Makefile
+rem
+echo    Makefile...
+if not exist Makefile.orig mv -f Makefile Makefile.orig
+sed -f %XSRC%/djgpp/tscript.sed Makefile.orig > Makefile
+Rem workaround for bug in ported BASH.
+cp -f lib/Makefile lib/Makefile.temp
+sed -e "s|\`test -f .*\`||g" lib/Makefile.temp > lib\Makefile
+cp -f src/Makefile src/Makefile.temp
+sed -e "s|\`test -f .*\`||g" src/Makefile.temp > src\Makefile
+echo Done.
+goto End
+
+:SedError
+echo ./configure script editing failed!
+goto End
+
+:CfgError
+echo ./configure script exited abnormally!
+goto End
+
+:SmallEnv
+echo Your environment size is too small.  Enlarge it and run me again.
+echo Configuration NOT done!
+:End
+set XSRC=
+set CONFIG_SITE=
--- /dev/null	Wed May  6 01:32:27 1998
+++ new/sh-utils-2.0i/djgpp/config.sed	Wed May 10 13:20:47 2000
@@ -0,0 +1,70 @@
+# Replace "test -f" with "test -x" so that e.g. gcc.exe is found.
+/for ac_dir in \$PATH; do/,/IFS="\$ac_save_[Ii][Ff][Ss]"/ {
+  s|test -f \$ac_dir/|test -x $ac_dir/|
+}
+
+/IFS="\${IFS=/,/IFS="\$ac_save_ifs"/ {
+    s|test -f \$ac_dir/|test -x $ac_dir/|
+}
+
+# Replace (command) > /dev/null with `command > /dev/null`, since
+# parenthesized commands always return zero status in the ported Bash,
+# even if the named command doesn't exist
+/if ([^|;]*null/{
+  s,(,`,
+  s,),,
+  s,;  *then,`; then,
+}
+
+# po2tbl.sed.in is invalid on MSDOS
+s|po2tbl\.sed\.in|po2tbl-sed.in|g
+
+# Additional editing of Makefiles
+/ac_given_INSTALL=/,/^CEOF/ {
+  /^s%@l@%/a\
+  /TEXINPUTS=/s,:,\\\\\\\\\\\\\\;,g\
+  /PATH=/s,:,\\\\\\\;,g\
+  s,po2tbl\\.sed\\.in,po2tbl-sed.in,g\
+  s,config\\.h\\.in,config.h-in,g\
+  s,\\.env-warn,_env-warn,g\
+  s,Makefile\\.in\\.in,Makefile.in-in,g\
+  s,Makefile\\.am\\.in,Makefile.am-in,g\
+  s,jm-winsz\\\([12]\\\)\\.m4,jm\\\1-winsz.m4,g\
+  s,NN-strne-\\\([12]\\\)\\.X,NN\\\1-strne.X,g\
+  s,N-strne-\\\([12]\\\)\\.X,N\\\1-strne.X,g\
+  s,NN-streq-\\\([12]\\\)\\.X,NN\\\1q-stre.X,g\
+  s,NN-streq-\\\([12]\\\)\\.X,NN\\\1q-stre.X,g\
+  s,N-streq-\\\([12]\\\)\\.X,N\\\1q-stre.X,g\
+  s,N-streq-\\\([12]\\\)\\.X,N\\\1q-stre.X,g\
+  s,date2sec-\\\([01]\\\)\\.X,d2sec-\\\1.X,g\
+  s,date2sec-0a\\.X,d2sec-0a.X,g\
+  s,ref-add\\.sed\\.in,ref-add-sed.in,g\
+  s,ref-del\\.sed\\.in,ref-del-sed.in,g\
+  s,charset\\.alias,charset.al,g
+}
+
+# Makefile.in.in is renamed to Makefile.in-in...
+/^config_files=/,/^EOF/ {
+  s|po/Makefile\.in|po/Makefile.in:po/Makefile.in-in|
+}
+
+# ...and config.h.in into config.h-in
+/^ *config_headers=/,/^EOF/ {
+  s|config\.h|config.h:config.h-in|
+}
+
+# DOS-style absolute file names should be supported as well
+/\*) srcdir=/s,/\*,/*|[A-z]:/*,
+/\$]\*) INSTALL=/s,\[/\$\]\*,&|[A-z]:/*,
+/\$]\*) ac_rel_source=/s,\[/\$\]\*,&|[A-z]:/*,
+
+# Switch the order of the two Sed commands, since DOS path names
+# could include a colon
+/ac_file_inputs=/s,\( -e "s%\^%\$ac_given_srcdir/%"\)\( -e "s%:% $ac_given_srcdir/%g"\),\2\1,
+/ac_file_inputs=/,/^EOF/ {
+	s,sed -e "\(s%\^%\$ac_given_srcdir/%\);\(s%:% \$ac_given_srcdir/%g\)",sed -e "\2;\1",g
+}
+
+s|\$ac_cs_root\.hdr|${ac_cs_root}_hdr|g
+s/ln -s \$ac_rel_source \$ac_dest/cp -f $ac_rel_source $ac_dest/
+s/ln \$srcdir\/\$ac_source \$ac_dest/cp -f $srcdir\/$ac_source $ac_dest/
--- /dev/null	Wed May  6 01:32:27 1998
+++ new/sh-utils-2.0i/djgpp/config.site	Wed May 10 13:20:47 2000
@@ -0,0 +1,29 @@
+#! /bin/sh
+
+# This is the config.site file for configuring GNU packages
+# which are to be built with DJGPP tools.
+
+# Include the djgpp subdirectory in PATH, so that the (fake)
+# getconf is found.
+PATH="$srcdir/djgpp;$PATH"
+
+# These two variables are required, otherwise looking for
+# programs along the PATH will not work.
+PATH_SEPARATOR=:
+PATH_EXPAND=y
+
+# The root of the DJGPP tree serves as the default prefix
+test "x$prefix" = xNONE && prefix='${DJDIR}'
+
+# This is required for config.status script to be run, since
+# ./configure runs it by invoking ${CONFIG_SHELL-/bin/sh}
+CONFIG_SHELL=${CONFIG_SHELL='sh'}
+
+# These are set here so the generated Makefile's will be good
+# for every DJGPP installation, not only the one where the
+# package was configured.
+# $INSTALL must be an absolute path name, otherwise config.status
+# will try to prepend ./ and ../ to it when it goes into subdirs.
+INSTALL=${INSTALL='${DJDIR}/bin/ginstall -c'}
+RANLIB=${RANLIB='ranlib'}
+
--- /dev/null	Wed May  6 01:32:27 1998
+++ new/sh-utils-2.0i/djgpp/edtests.bat	Wed May 10 13:20:47 2000
@@ -0,0 +1,38 @@
+@echo off
+rem Change all unix-type text files to dos-type using utod.
+cd tests\date
+utod 1.X 2.X 3.X 4.X 5.X 6.X 7.X 8.X 9.X leap-1.X U95-1.X U95-2.X
+utod U95-3.X U92-1.X U92-2.X U92-3.X V92-1.X V92-2.X V92-3.X W92-1.X W92-2.X
+utod W92-3.X millen-1.X rel-0.X rel-1a.X rel-1b.X rel-2a.X rel-2b.X rel-2c.X
+utod rel-2d.X rel-2e.X rel-2f.X rel-2g.X rel-3a.X next-s.X next-m.X next-h.X
+utod next-d.X next-w.X next-mo.X next-y.X utc-0.X utc-0a.X utc-1.I utc-1.X
+utod utc-1a.I utc-1a.X d2sec-0.X d2sec-0a.X d2sec-1.X sec2date-0.X
+utod this-m.X this-h.X this-w.X this-mo.X this-y.X risks-1.X regress-1.X
+utod datevtime-1.X rfc822-1.X
+cd ..\..
+rem
+echo Editing the scripts in various subdirectories for DJGPP...
+echo    tests/date...
+if not exist tests\date\date-tests.orig mv -f tests/date/date-tests tests/date/date-tests.orig
+sed -f djgpp/tscript.sed tests/date/date-tests.orig > tests\date\date-tests
+echo    tests/test...
+if not exist tests\test\test-tests.orig mv -f tests/test/test-tests tests/test/test-tests.orig
+sed -f djgpp/tscript.sed tests/test/test-tests.orig > tests\test\test-tests
+echo    missing...
+if not exist missing.orig mv -f missing missing.orig
+sed -f djgpp/tscript.sed missing.orig > missing
+rem
+rem Edit the Perl scripts to get "make check" working.
+if not exist tests\basename\basic.orig mv -f tests/basename/basic tests/basename/basic.orig
+sed -f djgpp/pscript.sed tests/basename/basic.orig > tests\basename\basic
+rem
+if not exist tests\factor\basic.orig mv -f tests/factor/basic tests/factor/basic.orig
+sed -f djgpp/pscript.sed tests/factor/basic.orig > tests\factor\basic
+rem
+if not exist tests\stty\basic-1.orig mv -f tests/stty/basic-1 tests/stty/basic-1.orig
+sed -f djgpp/pscript.sed tests/stty/basic-1.orig > tests\stty\basic-1
+rem
+if not exist tests\stty\row-col-1.orig mv -f tests/stty/row-col-1 tests/stty/row-col-1.orig
+sed -f djgpp/pscript.sed tests/stty/row-col-1.orig > tests\stty\row-col-1
+if not exist tests\nice.orig mv -f tests/nice tests/nice.orig
+sed -f djgpp/pscript.sed tests/nice.orig > tests\nice
--- /dev/null	Wed May  6 01:32:27 1998
+++ new/sh-utils-2.0i/djgpp/fnchange.lst	Wed May 10 13:20:47 2000
@@ -0,0 +1,22 @@
+# This is a template from which fnchange.lst is generated.
+sh-utils-2.0i/config.h.in sh-utils-2.0i/config.h-in
+sh-utils-2.0i/po/Makefile.in.in sh-utils-2.0i/po/Makefile.in-in
+sh-utils-2.0i/m4/jm-winsz1.m4 sh-utils-2.0i/m4/jm1-winsz.m4
+sh-utils-2.0i/m4/jm-winsz2.m4 sh-utils-2.0i/m4/jm2-winsz.m4
+sh-utils-2.0i/m4/Makefile.am.in sh-utils-2.0i/m4/Makefile.am-in
+sh-utils-2.0i/tests/Makefile.am.in sh-utils-2.0i/tests/Makefile.am-in
+sh-utils-2.0i/tests/test/NN-strne-1.X sh-utils-2.0i/tests/test/NN1-strne.X
+sh-utils-2.0i/tests/test/NN-strne-2.X sh-utils-2.0i/tests/test/NN2-strne.X
+sh-utils-2.0i/tests/test/N-strne-1.X sh-utils-2.0i/tests/test/N1-strne.X
+sh-utils-2.0i/tests/test/N-strne-2.X sh-utils-2.0i/tests/test/N2-strne.X
+sh-utils-2.0i/tests/test/NN-streq-1.X sh-utils-2.0i/tests/test/NN1q-stre.X
+sh-utils-2.0i/tests/test/NN-streq-2.X sh-utils-2.0i/tests/test/NN2q-stre.X
+sh-utils-2.0i/tests/test/N-streq-1.X sh-utils-2.0i/tests/test/N1q-stre.X
+sh-utils-2.0i/tests/test/N-streq-2.X sh-utils-2.0i/tests/test/N2q-stre.X
+sh-utils-2.0i/tests/date/date2sec-0.X sh-utils-2.0i/tests/date/d2sec-0.X
+sh-utils-2.0i/tests/date/date2sec-0a.X sh-utils-2.0i/tests/date/d2sec-0a.X
+sh-utils-2.0i/tests/date/date2sec-1.X sh-utils-2.0i/tests/date/d2sec-1.X
+sh-utils-2.0i/intl/po2tbl.sed.in sh-utils-2.0i/intl/po2tbl-sed.in
+sh-utils-2.0i/lib/ref-add.sed.in sh-utils-2.0i/lib/ref-add-sed.in
+sh-utils-2.0i/lib/ref-del.sed.in sh-utils-2.0i/lib/ref-del-sed.in
+sh-utils-2.0i/tests/.env-warn sh-utils-2.0i/tests/_env-warn
--- /dev/null	Wed May  6 01:32:27 1998
+++ new/sh-utils-2.0i/djgpp/fnchange.lsx	Wed May 10 13:20:47 2000
@@ -0,0 +1,22 @@
+# This is a template from which fnchange.lst is generated.
+@V@/config.h.in @V@/config.h-in
+@V@/po/Makefile.in.in @V@/po/Makefile.in-in
+@V@/m4/jm-winsz1.m4 @V@/m4/jm1-winsz.m4
+@V@/m4/jm-winsz2.m4 @V@/m4/jm2-winsz.m4
+@V@/m4/Makefile.am.in @V@/m4/Makefile.am-in
+@V@/tests/Makefile.am.in @V@/tests/Makefile.am-in
+@V@/tests/test/NN-strne-1.X @V@/tests/test/NN1-strne.X
+@V@/tests/test/NN-strne-2.X @V@/tests/test/NN2-strne.X
+@V@/tests/test/N-strne-1.X @V@/tests/test/N1-strne.X
+@V@/tests/test/N-strne-2.X @V@/tests/test/N2-strne.X
+@V@/tests/test/NN-streq-1.X @V@/tests/test/NN1q-stre.X
+@V@/tests/test/NN-streq-2.X @V@/tests/test/NN2q-stre.X
+@V@/tests/test/N-streq-1.X @V@/tests/test/N1q-stre.X
+@V@/tests/test/N-streq-2.X @V@/tests/test/N2q-stre.X
+@V@/tests/date/date2sec-0.X @V@/tests/date/d2sec-0.X
+@V@/tests/date/date2sec-0a.X @V@/tests/date/d2sec-0a.X
+@V@/tests/date/date2sec-1.X @V@/tests/date/d2sec-1.X
+@V@/intl/po2tbl.sed.in @V@/intl/po2tbl-sed.in
+@V@/lib/ref-add.sed.in @V@/lib/ref-add-sed.in
+@V@/lib/ref-del.sed.in @V@/lib/ref-del-sed.in
+@V@/tests/.env-warn @V@/tests/_env-warn
--- /dev/null	Wed May  6 01:32:27 1998
+++ new/sh-utils-2.0i/djgpp/getconf	Wed May 10 13:20:47 2000
@@ -0,0 +1,2 @@
+#!/bin/sh
+exit 0
--- /dev/null	Wed May  6 01:32:27 1998
+++ new/sh-utils-2.0i/djgpp/pscript.sed	Wed May 10 13:20:47 2000
@@ -0,0 +1,12 @@
+# Used to modify the perl scripts so that "make check" works.
+# Change !/bin/sh to !/dev/env/DJDIR/bin/sh
+s/! *\/bin\/sh/\!\/dev\/env\/DJDIR\/bin\/sh/g
+
+# We require the perl script to change the backward slashes to forward in $PWD.
+s/\(my $prog =.*\)/\1 \
+my $cwd = $ENV{PWD}; \
+$cwd =\~ s\/\\\\\/\\\/\/g;/g
+
+# Change the $prog: and $prog --help so that they show their full paths.
+s/\$prog:/$cwd\/..\/..\/src\/$prog.exe:\1/g
+s/\$prog --help/$cwd\/..\/..\/src\/$prog.exe --help/g
--- /dev/null	Wed May  6 01:32:27 1998
+++ new/sh-utils-2.0i/djgpp/readme	Wed May 10 13:21:44 2000
@@ -0,0 +1,112 @@
+These are instructions to build GNU Sh-utils for MS-DOS and
+MS-Windows using DJGPP tools.
+
+
+Required tools
+==============
+
+To build the package, you will need the DJGPP development environment
+(GCC, header files and the libraries) and DJGPP ports of the following
+tools:
+
+	- GNU Make 3.75 or later
+	- Bash (or some other Unix-like shell)
+	- GNU Sed
+	- GNU Fileutils
+	- GNU Textutils
+	- A previous version of GNU Sh-utils
+	- GNU Grep
+	- To run the test suite you'll also need Perl and Awk.
+
+These should be available from the DJGPP sites (see the FAQ for
+Simtelnet mirrors).
+
+The package should be built with the port of Make 3.75 or later.
+Previous versions of Make ported to DJGPP didn't support Unix shells,
+and the Makefiles for this package won't work without a Unix shell.
+
+
+Unpacking the sources
+=====================
+
+If you download the source distribution from one of the DJGPP
+archives, just unzip it preserving the directory structure (use -d
+switch if you do that with PKUNZIP).  You are now ready to build the
+programs; see the section "How to build" below.
+
+Source distributions downloaded from one of the GNU FTP sites need
+some more work to unpack.  First, you MUST use the `djtar' program to
+unzip the package.  That's because some file names in the official
+distributions need to be changed to avoid problems on the various
+platforms supported by DJGPP.  `djtar' can rename files on the fly
+given a file with name mappings.  The distribution includes a file
+`djgpp/fnchange.lst' with the necessary mappings.  So you need first
+to retrieve that file, and then invoke `djtar' to unpack the
+distribution.  Here's how:
+
+
+  djtar -x -p -o sh-utils-2.0i/djgpp/fnchange.lst sh-utils-2.0i.tar.gz > lst
+  djtar -x -n lst sh-utils-2.0i.tar.gz
+
+(The name of the distribution archive and the top-level directory will
+be different for versions other than 2.0g.)
+
+
+
+How to build
+============
+
+If you obtained the sources from one of the DJGPP archives, there's
+nothing much to be done. The Makefiles are ready and you can build the
+package in one go by running `make'. Make sure that you have Make 3.75
+or later.
+
+If you want to get the DVI, Postscript and HTML documents you need to
+do this:
+
+		make dvi
+		make sh-utils.ps  (In the doc directory)
+		makeinfo --html sh-utils.texi  (In the doc dorectory)
+
+To build the package downloaded from a GNU FTP site, you will need o
+configure it first.  You will also need to configure it if you want to
+change the configuration options (e.g., use Rx instead of Regex, or
+add the National Language Support).  To configure Sh-utils, use the
+CONFIG.BAT batch file in the DJGPP subdirectory.  It sets a few
+environment variables, then calls BASH to run the configure script, so
+you should run CONFIG.BAT, then Make:
+
+		djgpp\config
+		make
+
+If you are building from a directory other than that where the sources
+were unpacked, give the source directory as an argument o CONFIG.BAT:
+
+	f:\gnu\sh-utils-2.0i\djgpp\config f:/gnu/sh-utils-2.0i
+
+Note that you MUST use forward slashes in the argument to CONFIG.BAT.
+
+The configure script run by CONFIG.BAT supports a few options (e.g.,
+you could build the package with the GNU Rx library instead of the
+default Regex).  Run "sh ./configure --help" to see all the options
+recognized by the script.
+
+When Make finishes, you can run the test suite and install the package:
+
+		make check
+		make install
+
+Notes
+=====
+
+The absolute majority of the DOS-specific changes for this package
+take care of the filename issues such as backward and forward slashes.
+Some utilities like users, who, pinky, are not available under DOS.
+Running them just prints an error message.
+
+The GNU Gettext package is not supported yet in the DJGPP version, so
+don't expect the programs to talk to you in any language but English.
+
+
+		Enjoy,
+				Prashant TR <prashant_tr@yahoo.com>
--- /dev/null	Wed May  6 01:32:27 1998
+++ new/sh-utils-2.0i/djgpp/tscript.sed	Wed May 10 13:20:47 2000
@@ -0,0 +1,28 @@
+# Change to valid 8.3 filenames.
+s/jm-winsz\([12]\)\.m4/jm\1-winsz.m4/g
+s/NN-strne-\([12]\)/NN\1-strne/g
+s/N-strne-\([12]\)/N\1-strne/g
+s/NN-streq-\([12]\)/NN\1q-stre/g
+s/N-streq-\([12]\)/N\1q-stre/g
+s/date2sec-/d2sec-/g
+s/Makefile\.am\.in/Makefile.am-in/g
+s/\.env-warn/_env-warn/g
+s/Makefile\.in\.in/Makefile.in-in/g
+s/config\.h\.in/config.h-in/g
+s/\.su-\$\$\$\$/_su-$$$$/g
+
+# Modifications to allow su to install without hassles.
+s/\(chmod .*\$(installed_su)\)/\1.exe/g
+s/\(chown .*\$(installed_su)\)/\1.exe/g
+
+# Change ':' in environment to ';'
+/TESTS_ENVIRONMENT *=/,/^EOF/ {
+	s/PATH=\(.*\):\$\$PATH \\/PATH="\1;$$PATH" \\/g
+	s/PATH=\(.*\):\$\$PATH/PATH="\1;$$PATH"/g
+}
+s/TEXINPUTS=\(.*\):\$\$TEXINPUTS \\/TEXINPUTS="\1;$$TEXINPUTS" \\/g
+
+# Remove ../ and ../../ at the beginning of these values.
+s/srcdir *= *\.\.\/\(\.\.\/\)*\([a-zA-Z]:\)/srcdir = \2/
+s/top_srcdir *= *\.\.\/\(\.\.\/\)*\([a-zA-Z]:\)/top_srcdir = \2/
+s/VPATH *= *\.\.\/\(\.\.\/\)*\([a-zA-Z]:\)/VPATH = \2/
