summaryrefslogtreecommitdiff
path: root/lib/getusershell.c
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2000-12-16 22:25:44 +0000
committerJim Meyering <jim@meyering.net>2000-12-16 22:25:44 +0000
commitc53667dc8975d78ac8cc76aa567dd1b948531618 (patch)
treebd3e131b0d712e93553642e896000224b691435d /lib/getusershell.c
parent0145879256a3306ed0750127b8b295cdc2778c1b (diff)
downloadgnulib-c53667dc8975d78ac8cc76aa567dd1b948531618.tar.gz
[!SHELLS_FILE && __DJGPP__]: Define
SHELLS_FILE to a file name that's useful on djgpp systems. Include stdlib.h. (ADDITIONAL_DEFAULT_SHELLS): Define. (default_shells): Prepend ADDITIONAL_DEFAULT_SHELLS. Based mostly on a patch from Prashant TR.
Diffstat (limited to 'lib/getusershell.c')
-rw-r--r--lib/getusershell.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/getusershell.c b/lib/getusershell.c
index 93d5e438ef..4816f968bf 100644
--- a/lib/getusershell.c
+++ b/lib/getusershell.c
@@ -22,11 +22,19 @@
#endif
#ifndef SHELLS_FILE
+# ifndef __DJGPP__
/* File containing a list of nonrestricted shells, one per line. */
-# define SHELLS_FILE "/etc/shells"
+# define SHELLS_FILE "/etc/shells"
+# else
+/* This is a horrible kludge. Isn't there a better way? */
+# define SHELLS_FILE "/dev/env/DJDIR/etc/shells"
+# endif
#endif
#include <stdio.h>
+#if HAVE_STDLIB_H
+# include <stdlib.h>
+#endif
#include <ctype.h>
#include "xalloc.h"
@@ -40,9 +48,17 @@
static int readname ();
+#if ! defined ADDITIONAL_DEFAULT_SHELLS && defined __MSDOS__
+# define ADDITIONAL_DEFAULT_SHELLS \
+ "c:/dos/command.com", "c:/windows/command.com", "c:/command.com",
+#else
+# define ADDITIONAL_DEFAULT_SHELLS /* empty */
+#endif
+
/* List of shells to use if the shells file is missing. */
static char const* const default_shells[] =
{
+ ADDITIONAL_DEFAULT_SHELLS
"/bin/sh", "/bin/csh", "/usr/bin/sh", "/usr/bin/csh", NULL
};