aboutsummaryrefslogtreecommitdiff
path: root/unix/boot/bootlib/osputenv.c
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /unix/boot/bootlib/osputenv.c
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'unix/boot/bootlib/osputenv.c')
-rw-r--r--unix/boot/bootlib/osputenv.c72
1 files changed, 72 insertions, 0 deletions
diff --git a/unix/boot/bootlib/osputenv.c b/unix/boot/bootlib/osputenv.c
new file mode 100644
index 00000000..40599a85
--- /dev/null
+++ b/unix/boot/bootlib/osputenv.c
@@ -0,0 +1,72 @@
+/* Copyright(c) 1986 Association of Universities for Research in Astronomy Inc.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#define import_xnames
+#include "bootlib.h"
+
+#define SZ_VALUE SZ_COMMAND
+
+#ifdef NOVOS
+/* OS_PUTENV -- Set the value of the named environment variable.
+ */
+void
+os_putenv (
+ char *name,
+ char *value
+)
+{
+ char buf[SZ_VALUE], *env;
+
+ sprintf (buf, "%s=%s", name, value);
+ if ( (env = (char *) malloc (strlen(buf) + 1)) ) {
+ strcpy (env, buf);
+#ifdef ultrix
+ putenv (env); /* must keep env around. */
+#else
+#ifdef vax
+ setenv (name, value, 1);
+#else
+ putenv (env); /* must keep env around. */
+#endif
+#endif
+ }
+}
+
+#else
+/* OS_PUTENV -- Set the value of the named environment variable.
+ */
+void
+os_putenv (
+ char *name,
+ char *value
+)
+{
+ XCHAR x_name[SZ_FNAME+1];
+ XCHAR x_value[SZ_VALUE+1];
+ char buf[SZ_VALUE], *env;
+ extern void ENVRESET();
+
+
+ /* Set the VOS environment. */
+ os_strupk (name, x_name, SZ_FNAME);
+ os_strupk (value, x_value, SZ_VALUE);
+ ENVRESET (x_name, x_value);
+
+ /* Set the HOST environment. */
+ sprintf (buf, "%s=%s", name, value);
+ if ( (env = (char *) malloc (strlen(buf) + 1)) ) {
+ strcpy (env, buf);
+#ifdef ultrix
+ putenv (env);
+#else
+#ifdef vax
+ setenv (name, value, 1);
+#else
+ putenv (env); /* must keep env around. */
+#endif
+#endif
+ }
+}
+#endif