diff src/octave.cc @ 798:0acec886a912

[project @ 1994-10-13 04:57:48 by jwe]
author jwe
date Thu, 13 Oct 1994 04:58:40 +0000
parents f7b9920e968b
children 45f674300747
line wrap: on
line diff
--- a/src/octave.cc
+++ b/src/octave.cc
@@ -213,16 +213,25 @@
 
   char *shell_path = getenv ("PATH");
   char *arch_dir = octave_arch_lib_dir ();
-  char *tmp = strconcat (shell_path, ":");
+  char *bin_dir = octave_bin_dir ();
 
-  shell_path = shell_path ? strconcat (tmp, arch_dir)
-    : strsave (arch_dir);
+  int len = strlen (arch_dir) + strlen (bin_dir) + 7;
+
+  char *putenv_cmd = 0;
 
-  delete [] tmp;
+  if (shell_path)
+    {
+      len += strlen (shell_path) + 1;
+      putenv_cmd = new char [len];
+      sprintf (putenv_cmd, "PATH=%s:%s:%s", shell_path, arch_dir, bin_dir);
+    }
+  else
+    {
+      putenv_cmd = new char [len];
+      sprintf (putenv_cmd, "PATH=%s:%s", arch_dir, bin_dir);
+    }
 
-  char *putenv_command = strconcat ("PATH=", shell_path);
-
-  putenv (putenv_command);
+  putenv (putenv_cmd);
 
   raw_prog_name = strsave (name);
   prog_name = strsave ("octave");