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
commit2464a2cd9dbafc6b14fd0e9a5e76eacc39c5bef7 (patch)
tree311cf582096cf1b38c11a81f01bc7e13cdeab4f6 /lib/getusershell.c
parent96e6715ebeb00b1528b3f0b85eeeeb41212eae94 (diff)
downloadcoreutils-2464a2cd9dbafc6b14fd0e9a5e76eacc39c5bef7.tar.xz
[!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 93d5e438e..4816f968b 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
};