hush: support "cd -- DIR" and such
[oweals/busybox.git] / shell / shell_common.c
1 /* vi: set sw=4 ts=4: */
2 /*
3  * Adapted from ash applet code
4  *
5  * This code is derived from software contributed to Berkeley by
6  * Kenneth Almquist.
7  *
8  * Copyright (c) 1989, 1991, 1993, 1994
9  *      The Regents of the University of California.  All rights reserved.
10  *
11  * Copyright (c) 1997-2005 Herbert Xu <herbert@gondor.apana.org.au>
12  * was re-ported from NetBSD and debianized.
13  *
14  * Copyright (c) 2010 Denys Vlasenko
15  * Split from ash.c
16  *
17  * Licensed under the GPL v2 or later, see the file LICENSE in this tarball.
18  */
19 #include "libbb.h"
20 #include "shell_common.h"
21
22 const char defifsvar[] ALIGN1 = "IFS= \t\n";
23
24
25 int FAST_FUNC is_well_formed_var_name(const char *s, char terminator)
26 {
27         if (!s || !(isalpha(*s) || *s == '_'))
28                 return 0;
29
30         do
31                 s++;
32         while (isalnum(*s) || *s == '_');
33
34         return *s == terminator;
35 }