summaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/main.c b/main.c
index f83f2fe..8d91af1 100644
--- a/main.c
+++ b/main.c
@@ -497,7 +497,11 @@ main (argc, argv, envp)
register char *ep = envp[i];
while (*ep != '=')
++ep;
- define_variable (envp[i], ep - envp[i], ep + 1, o_env, 1)
+ /* The result of pointer arithmetic is cast to unsigned int for
+ machines where ptrdiff_t is a different size that doesn't widen
+ the same. */
+ define_variable (envp[i], (unsigned int) (ep - envp[i]),
+ ep + 1, o_env, 1)
/* Force exportation of every variable culled from the environment.
We used to rely on target_environment's v_default code to do this.
But that does not work for the case where an environment variable