From 95a60b2936e8835963bfb08eadc0edf9dddf0498 Mon Sep 17 00:00:00 2001 From: Herbert Xu Date: Wed, 26 May 2010 18:54:19 +0800 Subject: [VAR] Replace cmdenviron with localvars This patch replaces the cmdenviron mechanism for temporary command variables with the localvars mechanism used by functions. This reduces code size, and more importantly, makes the variable assignment take effect immediately as required by POSIX. Signed-off-by: Herbert Xu --- src/var.h | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/var.h') diff --git a/src/var.h b/src/var.h index 2bb82b1..ef6d583 100644 --- a/src/var.h +++ b/src/var.h @@ -133,14 +133,14 @@ struct strlist; void listsetvar(struct strlist *, int); char *lookupvar(const char *); intmax_t lookupvarint(const char *); -char *bltinlookup(const char *); char **listvars(int, int, char ***); #define environment() listvars(VEXPORT, VUNSET, 0) int showvars(const char *, int, int); int exportcmd(int, char **); int localcmd(int, char **); +void mklocal(char *); void pushlocalvars(void); -void poplocalvars(void); +void poplocalvars(int); int unsetcmd(int, char **); void unsetvar(const char *); int varcmp(const char *, const char *); @@ -148,3 +148,14 @@ int varcmp(const char *, const char *); static inline int varequal(const char *a, const char *b) { return !varcmp(a, b); } + +/* + * Search the environment of a builtin command. + */ + +static inline char *bltinlookup(const char *name) +{ + return lookupvar(name); +} + + -- cgit 1.4.1