* 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.
This commit is contained in:
parent
a4a30aa0ec
commit
f25cd98b27
3 changed files with 16 additions and 4 deletions
|
@ -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;
|
||||
|
|
11
src/lisp.h
11
src/lisp.h
|
@ -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. */
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue