diff options
-rw-r--r-- | sys/kern/kern_environment.c | 22 | ||||
-rw-r--r-- | sys/sys/systm.h | 3 |
2 files changed, 23 insertions, 2 deletions
diff --git a/sys/kern/kern_environment.c b/sys/kern/kern_environment.c index 9789706..08af003 100644 --- a/sys/kern/kern_environment.c +++ b/sys/kern/kern_environment.c @@ -46,6 +46,9 @@ char *kern_envp; static char *kernenv_next(char *cp); +/* + * Look up an environment variable by name. + */ char * getenv(const char *name) { @@ -65,6 +68,23 @@ getenv(const char *name) } /* + * Return a string value from an environment variable. + */ +int +getenv_string(const char *name, char *data, int size) +{ + char *tmp; + + tmp = getenv(name); + if (tmp == NULL) { + strncpy(data, tmp, size); + data[size - 1] = 0; + return (1); + } else + return (0); +} + +/* * Return an integer value from an environment variable. */ int @@ -83,7 +103,7 @@ getenv_int(const char *name, int *data) /* * Return a quad_t value from an environment variable. */ -quad_t +int getenv_quad(const char *name, quad_t *data) { const char *value; diff --git a/sys/sys/systm.h b/sys/sys/systm.h index 7a43f0f..56b5958 100644 --- a/sys/sys/systm.h +++ b/sys/sys/systm.h @@ -192,7 +192,8 @@ int cr_cansee __P((struct ucred *u1, struct ucred *u2)); char *getenv __P((const char *name)); int getenv_int __P((const char *name, int *data)); -quad_t getenv_quad __P((const char *name, quad_t *data)); +int getenv_string __P((const char *name, char *data, int size)); +int getenv_quad __P((const char *name, quad_t *data)); #ifdef APM_FIXUP_CALLTODO struct timeval; |