diff options
Diffstat (limited to 'src/callproc.c')
| -rw-r--r-- | src/callproc.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/callproc.c b/src/callproc.c index d6bad2a44e7..b339f343f62 100644 --- a/src/callproc.c +++ b/src/callproc.c | |||
| @@ -1230,8 +1230,7 @@ child_setup (int in, int out, int err, register char **new_argv, int set_pgrp, L | |||
| 1230 | 1230 | ||
| 1231 | if (STRINGP (display)) | 1231 | if (STRINGP (display)) |
| 1232 | { | 1232 | { |
| 1233 | int vlen = strlen ("DISPLAY=") + strlen (SSDATA (display)) + 1; | 1233 | char *vdata = (char *) alloca (sizeof "DISPLAY=" + SBYTES (display)); |
| 1234 | char *vdata = (char *) alloca (vlen); | ||
| 1235 | strcpy (vdata, "DISPLAY="); | 1234 | strcpy (vdata, "DISPLAY="); |
| 1236 | strcat (vdata, SSDATA (display)); | 1235 | strcat (vdata, SSDATA (display)); |
| 1237 | new_env = add_env (env, new_env, vdata); | 1236 | new_env = add_env (env, new_env, vdata); |
| @@ -1378,8 +1377,8 @@ relocate_fd (int fd, int minfd) | |||
| 1378 | #endif /* not WINDOWSNT */ | 1377 | #endif /* not WINDOWSNT */ |
| 1379 | 1378 | ||
| 1380 | static int | 1379 | static int |
| 1381 | getenv_internal_1 (const char *var, int varlen, char **value, int *valuelen, | 1380 | getenv_internal_1 (const char *var, ptrdiff_t varlen, char **value, |
| 1382 | Lisp_Object env) | 1381 | ptrdiff_t *valuelen, Lisp_Object env) |
| 1383 | { | 1382 | { |
| 1384 | for (; CONSP (env); env = XCDR (env)) | 1383 | for (; CONSP (env); env = XCDR (env)) |
| 1385 | { | 1384 | { |
| @@ -1413,8 +1412,8 @@ getenv_internal_1 (const char *var, int varlen, char **value, int *valuelen, | |||
| 1413 | } | 1412 | } |
| 1414 | 1413 | ||
| 1415 | static int | 1414 | static int |
| 1416 | getenv_internal (const char *var, int varlen, char **value, int *valuelen, | 1415 | getenv_internal (const char *var, ptrdiff_t varlen, char **value, |
| 1417 | Lisp_Object frame) | 1416 | ptrdiff_t *valuelen, Lisp_Object frame) |
| 1418 | { | 1417 | { |
| 1419 | /* Try to find VAR in Vprocess_environment first. */ | 1418 | /* Try to find VAR in Vprocess_environment first. */ |
| 1420 | if (getenv_internal_1 (var, varlen, value, valuelen, | 1419 | if (getenv_internal_1 (var, varlen, value, valuelen, |
| @@ -1454,7 +1453,7 @@ If optional parameter ENV is a list, then search this list instead of | |||
| 1454 | (Lisp_Object variable, Lisp_Object env) | 1453 | (Lisp_Object variable, Lisp_Object env) |
| 1455 | { | 1454 | { |
| 1456 | char *value; | 1455 | char *value; |
| 1457 | int valuelen; | 1456 | ptrdiff_t valuelen; |
| 1458 | 1457 | ||
| 1459 | CHECK_STRING (variable); | 1458 | CHECK_STRING (variable); |
| 1460 | if (CONSP (env)) | 1459 | if (CONSP (env)) |
| @@ -1478,7 +1477,7 @@ char * | |||
| 1478 | egetenv (const char *var) | 1477 | egetenv (const char *var) |
| 1479 | { | 1478 | { |
| 1480 | char *value; | 1479 | char *value; |
| 1481 | int valuelen; | 1480 | ptrdiff_t valuelen; |
| 1482 | 1481 | ||
| 1483 | if (getenv_internal (var, strlen (var), &value, &valuelen, Qnil)) | 1482 | if (getenv_internal (var, strlen (var), &value, &valuelen, Qnil)) |
| 1484 | return value; | 1483 | return value; |