From 8182e7cfe7d9c60567e48b876282594395062530 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gwenol=C3=A9=20Beauchesne?= Date: Tue, 18 Feb 2003 16:48:11 +0000 Subject: Merge in CVS dietlibc 0.21 for IA-64 and X86-64 support. However, drop the following architectures we currently don't support: arm, mips, mipsel, parisc, s390, sparc64. --- mdk-stage1/dietlibc/libcruft/getusershell.c | 33 +++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 mdk-stage1/dietlibc/libcruft/getusershell.c (limited to 'mdk-stage1/dietlibc/libcruft/getusershell.c') diff --git a/mdk-stage1/dietlibc/libcruft/getusershell.c b/mdk-stage1/dietlibc/libcruft/getusershell.c new file mode 100644 index 000000000..4c99aa4d4 --- /dev/null +++ b/mdk-stage1/dietlibc/libcruft/getusershell.c @@ -0,0 +1,33 @@ +#define _BSD_SOURCE +#include +#include +#include +#include "parselib.h" + +static struct state __ps; + +void setusershell(void) { + __prepare_parse(_PATH_SHELLS,&__ps); +} + +void endusershell(void) { + __end_parse(&__ps); +} + +#define MAXSHELL 128 + +char *getusershell(void) { + static char line[MAXSHELL+1]; + size_t i; + if (!__ps.buffirst) setusershell(); + if (!__ps.buffirst) goto error; + if (__ps.cur>=__ps.buflen) goto error; + i=__parse_1(&__ps,'\n'); + if (i>=MAXSHELL) i=MAXSHELL-1; + memcpy(line,__ps.buffirst+__ps.cur,i); + line[i]=0; + __ps.cur+=i+1; + return line; +error: + return 0; +} -- cgit v1.2.1