# HG changeset patch # User jwe # Date 793035926 0 # Node ID 46619c5ca048ed0d12026dac34516260d9c2169d # Parent 3508c2ef142c890d4746f9ad0a8454650801e91e [project @ 1995-02-17 15:45:07 by jwe] diff -r 3508c2ef142c -r 46619c5ca048 src/user-prefs.cc --- a/src/user-prefs.cc Thu Feb 16 05:44:22 1995 +0000 +++ b/src/user-prefs.cc Fri Feb 17 15:45:26 1995 +0000 @@ -704,7 +704,7 @@ if (s) { delete [] user_pref.loadpath; - user_pref.loadpath = s; + user_pref.loadpath = maybe_add_default_load_path (s); } else { diff -r 3508c2ef142c -r 46619c5ca048 src/variables.cc --- a/src/variables.cc Thu Feb 16 05:44:22 1995 +0000 +++ b/src/variables.cc Fri Feb 17 15:45:26 1995 +0000 @@ -378,6 +378,33 @@ return pager_binary; } +// Always returns a new string. + +char * +maybe_add_default_load_path (const char *p) +{ + static char *std_path = subst_octave_home (OCTAVE_FCNFILEPATH); + + char *pathstring = strsave (p); + + if (pathstring[0] == SEPCHAR) + { + char *tmp = pathstring; + pathstring = strconcat (std_path, pathstring); + delete [] tmp; + } + + int tmp_len = strlen (pathstring); + if (pathstring[tmp_len-1] == SEPCHAR) + { + char *tmp = pathstring; + pathstring = strconcat (pathstring, std_path); + delete [] tmp; + } + + return pathstring; +} + char * octave_lib_dir (void) { @@ -396,36 +423,14 @@ char * default_path (void) { + static char *std_path = subst_octave_home (OCTAVE_FCNFILEPATH); + + static char *oct_path = getenv ("OCTAVE_PATH"); + static char *pathstring = 0; delete [] pathstring; - static char *std_path = subst_octave_home (OCTAVE_FCNFILEPATH); - - char *oct_path = getenv ("OCTAVE_PATH"); - - if (oct_path) - { - pathstring = strsave (oct_path); - - if (pathstring[0] == SEPCHAR) - { - char *tmp = pathstring; - pathstring = strconcat (std_path, pathstring); - delete [] tmp; - } - - int tmp_len = strlen (pathstring); - if (pathstring[tmp_len-1] == SEPCHAR) - { - char *tmp = pathstring; - pathstring = strconcat (pathstring, std_path); - delete [] tmp; - } - } - else - pathstring = strsave (std_path); - - return pathstring; + return oct_path ? strsave (oct_path) : strsave (std_path); } char * diff -r 3508c2ef142c -r 46619c5ca048 src/variables.h --- a/src/variables.h Thu Feb 16 05:44:22 1995 +0000 +++ b/src/variables.h Fri Feb 17 15:45:26 1995 +0000 @@ -114,6 +114,8 @@ extern void install_builtin_variables (void); +extern char *maybe_add_default_load_path (const char *p); + extern char *octave_lib_dir (void); extern char *octave_arch_lib_dir (void); extern char *octave_bin_dir (void);