about summary refs log tree commit diff
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>2000-03-25 18:04:48 +0000
committerTanaka Akira <akr@users.sourceforge.net>2000-03-25 18:04:48 +0000
commit7e2d72fff45836860a86550e1a98c800bede1eb8 (patch)
tree5d39ca7f6745854726ffe6adbdb6682555c1cec9
parentd8f703027345170c7bc820ed7808e693dd1377d6 (diff)
downloadzsh-7e2d72fff45836860a86550e1a98c800bede1eb8.tar.gz
zsh-7e2d72fff45836860a86550e1a98c800bede1eb8.tar.xz
zsh-7e2d72fff45836860a86550e1a98c800bede1eb8.zip
zsh-workers/10242
-rw-r--r--Src/params.c14
-rw-r--r--configure.in3
2 files changed, 16 insertions, 1 deletions
diff --git a/Src/params.c b/Src/params.c
index d5c419daf..cdaecb199 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -453,6 +453,10 @@ createparamtable(void)
     char **new_environ, **envp, **envp2, **sigptr, **t;
     char buf[50], *str, *iname;
     int num_env, oae = opts[ALLEXPORT];
+#ifdef HAVE_UNAME
+    struct utsname unamebuf;
+    char *machinebuf;
+#endif
 
     paramtab = realparamtab = newparamtable(151, "paramtab");
 
@@ -538,7 +542,17 @@ createparamtable(void)
 
     /* Add the standard non-special parameters */
     set_pwd_env();
+#ifdef HAVE_UNAME
+    if(uname(&unamebuf)) setsparam("MACHTYPE", ztrdup(MACHTYPE));
+    else
+    {
+       machinebuf = ztrdup(unamebuf.machine);
+       setsparam("MACHTYPE", machinebuf);
+    }
+	
+#else
     setsparam("MACHTYPE", ztrdup(MACHTYPE));
+#endif
     setsparam("OSTYPE", ztrdup(OSTYPE));
     setsparam("TTY", ztrdup(ttystrname));
     setsparam("VENDOR", ztrdup(VENDOR));
diff --git a/configure.in b/configure.in
index 6e5d670fe..b2617701d 100644
--- a/configure.in
+++ b/configure.in
@@ -826,7 +826,8 @@ AC_CHECK_FUNCS(strftime difftime gettimeofday \
 	       mmap munmap msync \
 	       cap_get_proc \
 	       getrlimit \
-	       setlocale)
+	       setlocale \
+	       uname)
 AC_FUNC_STRCOLL
 
 if test $ac_cv_func_setpgrp = yes; then