Commit f25cd98b authored by Dmitry Antipov's avatar Dmitry Antipov
Browse files

* callproc.c (egetenv_internal): Add arg and rename from egetenv ...

* lisp.h (egetenv): ... because of a new inline function used to
avoid calls to strlen for a compile-time constants.
parent a4a30aa0
......@@ -3,6 +3,9 @@
* fileio.c (CHECK_LENGTH): New macro.
(Fexpand_file_name): Use it and get rid of a few more calls
to strlen and strcat.
* callproc.c (egetenv_internal): Add arg and rename from egetenv ...
* lisp.h (egetenv): ... because of a new inline function used to
avoid calls to strlen for a compile-time constants.
 
2014-09-01 Dmitry Antipov <dmantipov@yandex.ru>
 
......
......@@ -1488,14 +1488,14 @@ If optional parameter ENV is a list, then search this list instead of
}
/* A version of getenv that consults the Lisp environment lists,
easily callable from C. */
easily callable from C. This is usually called from egetenv. */
char *
egetenv (const char *var)
egetenv_internal (const char *var, ptrdiff_t len)
{
char *value;
ptrdiff_t valuelen;
if (getenv_internal (var, strlen (var), &value, &valuelen, Qnil))
if (getenv_internal (var, len, &value, &valuelen, Qnil))
return value;
else
return 0;
......
......@@ -4442,7 +4442,16 @@ extern char *xlispstrdup (Lisp_Object) ATTRIBUTE_MALLOC;
extern void dupstring (char **, char const *);
extern void xputenv (const char *);
extern char *egetenv (const char *);
extern char *egetenv_internal (const char *, ptrdiff_t);
/* VAR is usually a compile-time constant, so the
call to strlen is likely to be optimized away. */
INLINE char *
egetenv(const char *var)
{
return egetenv_internal (var, strlen (var));
}
/* Copy Lisp string to temporary (allocated on stack) C string. */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment