summaryrefslogtreecommitdiff
path: root/src/misc/getusershell.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/misc/getusershell.c')
-rw-r--r--src/misc/getusershell.c33
1 files changed, 0 insertions, 33 deletions
diff --git a/src/misc/getusershell.c b/src/misc/getusershell.c
deleted file mode 100644
index 683158c8..00000000
--- a/src/misc/getusershell.c
+++ /dev/null
@@ -1,33 +0,0 @@
-#define _GNU_SOURCE
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-static const char defshells[] = "/bin/sh\n/bin/csh\n";
-
-static char *line;
-static size_t linesize;
-static FILE *f;
-
-void endusershell(void)
-{
- if (f) fclose(f);
- f = 0;
-}
-
-void setusershell(void)
-{
- if (!f) f = fopen("/etc/shells", "rb");
- if (!f) f = fmemopen((void *)defshells, sizeof defshells - 1, "rb");
-}
-
-char *getusershell(void)
-{
- ssize_t l;
- if (!f) setusershell();
- if (!f) return 0;
- l = getline(&line, &linesize, f);
- if (l <= 0) return 0;
- if (line[l-1]=='\n') line[l-1]=0;
- return line;
-}