diff src/load-path.cc @ 10315:57a59eae83cc

untabify src C++ source files
author John W. Eaton <jwe@octave.org>
date Thu, 11 Feb 2010 12:41:46 -0500
parents 2d47356a7a1a
children 97b4bd6f0925
line wrap: on
line diff
--- a/src/load-path.cc	Thu Feb 11 12:23:32 2010 -0500
+++ b/src/load-path.cc	Thu Feb 11 12:41:46 2010 -0500
@@ -57,46 +57,46 @@
   if (fs)
     {
       if (is_relative)
-	{
-	  try
-	    {
-	      std::string abs_name = octave_env::make_absolute (dir_name);
-
-	      abs_dir_cache_iterator p = abs_dir_cache.find (abs_name);
-
-	      if (p != abs_dir_cache.end ())
-		{
-		  // The directory is in the cache of all directories
-		  // we have visited (indexed by its absolute name).
-		  // If it is out of date, initialize it.  Otherwise,
-		  // copy the info from the cache.  By doing that, we
-		  // avoid unnecessary calls to stat that can slow
-		  // things down tremendously for large directories.
-
-		  const dir_info& di = p->second;
-
-		  if (fs.mtime () + fs.time_resolution () > di.dir_time_last_checked)
-		    initialize ();
-		  else
-		    *this = di;
-		}
-	      else
-		{
-		  // We haven't seen this directory before.
-
-		  initialize ();
-		}
-	    }
-	  catch (octave_execution_exception)
-	    {
-	      // Skip updating if we don't know where we are, but
-	      // don't treat it as an error.
-
-	      error_state = 0;
-	    }
-	}
+        {
+          try
+            {
+              std::string abs_name = octave_env::make_absolute (dir_name);
+
+              abs_dir_cache_iterator p = abs_dir_cache.find (abs_name);
+
+              if (p != abs_dir_cache.end ())
+                {
+                  // The directory is in the cache of all directories
+                  // we have visited (indexed by its absolute name).
+                  // If it is out of date, initialize it.  Otherwise,
+                  // copy the info from the cache.  By doing that, we
+                  // avoid unnecessary calls to stat that can slow
+                  // things down tremendously for large directories.
+
+                  const dir_info& di = p->second;
+
+                  if (fs.mtime () + fs.time_resolution () > di.dir_time_last_checked)
+                    initialize ();
+                  else
+                    *this = di;
+                }
+              else
+                {
+                  // We haven't seen this directory before.
+
+                  initialize ();
+                }
+            }
+          catch (octave_execution_exception)
+            {
+              // Skip updating if we don't know where we are, but
+              // don't treat it as an error.
+
+              error_state = 0;
+            }
+        }
       else if (fs.mtime () + fs.time_resolution () > dir_time_last_checked)
-	initialize ();
+        initialize ();
     }
   else
     {
@@ -122,19 +122,19 @@
       get_file_list (dir_name);
 
       try
-	{
-	  std::string abs_name = octave_env::make_absolute (dir_name);
-
-	  // FIXME -- nothing is ever removed from this cache of
-	  // directory information, so there could be some resource
-	  // problems.  Perhaps it should be pruned from time to time.
-
-	  abs_dir_cache[abs_name] = *this;
-	}
+        {
+          std::string abs_name = octave_env::make_absolute (dir_name);
+
+          // FIXME -- nothing is ever removed from this cache of
+          // directory information, so there could be some resource
+          // problems.  Perhaps it should be pruned from time to time.
+
+          abs_dir_cache[abs_name] = *this;
+        }
       catch (octave_execution_exception)
-	{
-	  // Skip updating if we don't know where we are.
-	}
+        {
+          // Skip updating if we don't know where we are.
+        }
     }
   else
     {
@@ -161,43 +161,43 @@
       octave_idx_type fcn_files_count = 0;
 
       for (octave_idx_type i = 0; i < len; i++)
-	{
-	  std::string fname = flist[i];
-
-	  std::string full_name = file_ops::concat (d, fname);
-
-	  file_stat fs (full_name);
-
-	  if (fs)
-	    {
-	      if (fs.is_dir ())
-		{
-		  if (fname == "private")
-		    get_private_file_map (full_name);
-		  else if (fname[0] == '@')
-		    get_method_file_map (full_name, fname.substr (1));
-		}
-	      else
-		{
-		  all_files[all_files_count++] = fname;
-
-		  size_t pos = fname.rfind ('.');
-
-		  if (pos != std::string::npos)
-		    {
-		      std::string ext = fname.substr (pos);
-
-		      if (ext == ".m" || ext == ".oct" || ext == ".mex")
-			{
-			  std::string base = fname.substr (0, pos);
-
-			  if (valid_identifier (base))
-			    fcn_files[fcn_files_count++] = fname;
-			}
-		    }
-		}
-	    }
-	}
+        {
+          std::string fname = flist[i];
+
+          std::string full_name = file_ops::concat (d, fname);
+
+          file_stat fs (full_name);
+
+          if (fs)
+            {
+              if (fs.is_dir ())
+                {
+                  if (fname == "private")
+                    get_private_file_map (full_name);
+                  else if (fname[0] == '@')
+                    get_method_file_map (full_name, fname.substr (1));
+                }
+              else
+                {
+                  all_files[all_files_count++] = fname;
+
+                  size_t pos = fname.rfind ('.');
+
+                  if (pos != std::string::npos)
+                    {
+                      std::string ext = fname.substr (pos);
+
+                      if (ext == ".m" || ext == ".oct" || ext == ".mex")
+                        {
+                          std::string base = fname.substr (0, pos);
+
+                          if (valid_identifier (base))
+                            fcn_files[fcn_files_count++] = fname;
+                        }
+                    }
+                }
+            }
+        }
 
       all_files.resize (all_files_count);
       fcn_files.resize (fcn_files_count);
@@ -223,34 +223,34 @@
       octave_idx_type len = flist.length ();
 
       for (octave_idx_type i = 0; i < len; i++)
-	{
-	  std::string fname = flist[i];
-
-	  std::string ext;
-	  std::string base = fname;
-
-	  size_t pos = fname.rfind ('.');
-
-	  if (pos != std::string::npos)
-	    {
-	      base = fname.substr (0, pos);
-	      ext = fname.substr (pos);
-
-	      if (valid_identifier (base))
-		{
-		  int t = 0;
-
-		  if (ext == ".m")
-		    t = load_path::M_FILE;
-		  else if (ext == ".oct")
-		    t = load_path::OCT_FILE;
-		  else if (ext == ".mex")
-		    t = load_path::MEX_FILE;
-
-		  retval[base] |= t;
-		}
-	    }
-	}
+        {
+          std::string fname = flist[i];
+
+          std::string ext;
+          std::string base = fname;
+
+          size_t pos = fname.rfind ('.');
+
+          if (pos != std::string::npos)
+            {
+              base = fname.substr (0, pos);
+              ext = fname.substr (pos);
+
+              if (valid_identifier (base))
+                {
+                  int t = 0;
+
+                  if (ext == ".m")
+                    t = load_path::M_FILE;
+                  else if (ext == ".oct")
+                    t = load_path::OCT_FILE;
+                  else if (ext == ".mex")
+                    t = load_path::MEX_FILE;
+
+                  retval[base] |= t;
+                }
+            }
+        }
     }
   else
     {
@@ -269,7 +269,7 @@
 
 void
 load_path::dir_info::get_method_file_map (const std::string& d,
-					  const std::string& class_name)
+                                          const std::string& class_name)
 {
   method_file_map[class_name].method_file_map = get_fcn_files (d);
 
@@ -312,7 +312,7 @@
   while (retval != dir_info_list.end ())
     {
       if (retval->dir_name == dir)
-	break;
+        break;
 
       retval++;
     }
@@ -330,7 +330,7 @@
   while (retval != dir_info_list.end ())
     {
       if (retval->dir_name == dir)
-	break;
+        break;
 
       retval++;
     }
@@ -346,7 +346,7 @@
 
 void
 load_path::move_fcn_map (const std::string& dir_name,
-			 const string_vector& fcn_files, bool at_end)
+                         const string_vector& fcn_files, bool at_end)
 {
   octave_idx_type len = fcn_files.length ();
 
@@ -360,36 +360,36 @@
       size_t pos = fname.rfind ('.');
 
       if (pos != std::string::npos)
-	{
-	  base = fname.substr (0, pos);
-	  ext = fname.substr (pos);
-	}
+        {
+          base = fname.substr (0, pos);
+          ext = fname.substr (pos);
+        }
 
       file_info_list_type& file_info_list = fcn_map[base];
 
       if (file_info_list.size () == 1)
-	continue;
+        continue;
       else
-	{
-	  for (file_info_list_iterator p = file_info_list.begin ();
-	       p != file_info_list.end ();
-	       p++)
-	    {
-	      if (p->dir_name == dir_name)
-		{
-		  file_info fi = *p;
-
-		  file_info_list.erase (p);
-
-		  if (at_end)
-		    file_info_list.push_back (fi);
-		  else
-		    file_info_list.push_front (fi);
-
-		  break;
-		}
-	    }
-	}
+        {
+          for (file_info_list_iterator p = file_info_list.begin ();
+               p != file_info_list.end ();
+               p++)
+            {
+              if (p->dir_name == dir_name)
+                {
+                  file_info fi = *p;
+
+                  file_info_list.erase (p);
+
+                  if (at_end)
+                    file_info_list.push_back (fi);
+                  else
+                    file_info_list.push_front (fi);
+
+                  break;
+                }
+            }
+        }
     }
 }
 
@@ -405,36 +405,36 @@
       fcn_map_type& fm = i->second;
 
       std::string full_dir_name
-	= file_ops::concat (dir_name, "@" + class_name);
+        = file_ops::concat (dir_name, "@" + class_name);
 
       for (fcn_map_iterator q = fm.begin (); q != fm.end (); q++)
-	{
-	  file_info_list_type& file_info_list = q->second;
-
-	  if (file_info_list.size () == 1)
-	    continue;
-	  else
-	    {
-	      for (file_info_list_iterator p = file_info_list.begin ();
-	       p != file_info_list.end ();
-	       p++)
-		{
-		  if (p->dir_name == full_dir_name)
-		    {
-		      file_info fi = *p;
-
-		      file_info_list.erase (p);
-
-		      if (at_end)
-			file_info_list.push_back (fi);
-		      else
-			file_info_list.push_front (fi);
-
-		      break;
-		    }
-		}
-	    }
-	}
+        {
+          file_info_list_type& file_info_list = q->second;
+
+          if (file_info_list.size () == 1)
+            continue;
+          else
+            {
+              for (file_info_list_iterator p = file_info_list.begin ();
+               p != file_info_list.end ();
+               p++)
+                {
+                  if (p->dir_name == full_dir_name)
+                    {
+                      file_info fi = *p;
+
+                      file_info_list.erase (p);
+
+                      if (at_end)
+                        file_info_list.push_back (fi);
+                      else
+                        file_info_list.push_front (fi);
+
+                      break;
+                    }
+                }
+            }
+        }
     }
 }
 
@@ -448,9 +448,9 @@
       dir_info_list.erase (i);
 
       if (at_end)
-	dir_info_list.push_back (di);
+        dir_info_list.push_back (di);
       else
-	dir_info_list.push_front (di);
+        dir_info_list.push_front (di);
 
       std::string dir_name = di.dir_name;
 
@@ -470,9 +470,9 @@
   if (! tpath.empty ())
     {
       if (path.empty ())
-	path = tpath;
+        path = tpath;
       else
-	path += dir_path::path_sep_str () + tpath;
+        path += dir_path::path_sep_str () + tpath;
     }
 }
 
@@ -537,12 +537,12 @@
       std::string elt = p.substr (beg, end-beg);
 
       if (! elt.empty ())
-	retval.push_back (elt);
+        retval.push_back (elt);
 
       beg = end + 1;
 
       if (beg == len)
-	break;
+        break;
 
       end = p.find (dir_path::path_sep_char (), beg);
     }
@@ -582,7 +582,7 @@
        i++)
     {
       if (add_hook)
-	add_hook (i->dir_name);
+        add_hook (i->dir_name);
     }
 
   // Always prepend current directory.
@@ -610,7 +610,7 @@
 
   if (len > 1 && dir_arg.substr (len-2) == "//")
     warning_with_id ("Octave:recursive-path-search",
-		     "trailing `//' is no longer special in search path elements");
+                     "trailing `//' is no longer special in search path elements");
 
   std::string dir = file_ops::tilde_expand (dir_arg);
 
@@ -623,36 +623,36 @@
       file_stat fs (dir);
 
       if (fs)
-	{
-	  if (fs.is_dir ())
-	    {
-	      dir_info di (dir);
-
-	      if (! error_state)
-		{
-		  if (at_end)
-		    dir_info_list.push_back (di);
-		  else
-		    dir_info_list.push_front (di);
-
-		  add_to_fcn_map (di, at_end);
-
-		  add_to_private_fcn_map (di);
-
-		  add_to_method_map (di, at_end);
-
-		  if (add_hook)
-		    add_hook (dir);
-		}
-	    }
-	  else if (warn)
-	    warning ("addpath: %s: not a directory", dir_arg.c_str ());
-	}
+        {
+          if (fs.is_dir ())
+            {
+              dir_info di (dir);
+
+              if (! error_state)
+                {
+                  if (at_end)
+                    dir_info_list.push_back (di);
+                  else
+                    dir_info_list.push_front (di);
+
+                  add_to_fcn_map (di, at_end);
+
+                  add_to_private_fcn_map (di);
+
+                  add_to_method_map (di, at_end);
+
+                  if (add_hook)
+                    add_hook (dir);
+                }
+            }
+          else if (warn)
+            warning ("addpath: %s: not a directory", dir_arg.c_str ());
+        }
       else if (warn)
-	{
-	  std::string msg = fs.error ();
-	  warning ("addpath: %s: %s", dir_arg.c_str (), msg.c_str ());
-	}
+        {
+          std::string msg = fs.error ();
+          warning ("addpath: %s: %s", dir_arg.c_str (), msg.c_str ());
+        }
     }
 
   // FIXME -- is there a better way to do this?
@@ -665,7 +665,7 @@
 
 void
 load_path::remove_fcn_map (const std::string& dir,
-			   const string_vector& fcn_files)
+                           const string_vector& fcn_files)
 {
   octave_idx_type len = fcn_files.length ();
 
@@ -679,27 +679,27 @@
       size_t pos = fname.rfind ('.');
 
       if (pos != std::string::npos)
-	{
-	  base = fname.substr (0, pos);
-	  ext = fname.substr (pos);
-	}
+        {
+          base = fname.substr (0, pos);
+          ext = fname.substr (pos);
+        }
 
       file_info_list_type& file_info_list = fcn_map[base];
 
       for (file_info_list_iterator p = file_info_list.begin ();
-	   p != file_info_list.end ();
-	   p++)
-	{
-	  if (p->dir_name == dir)
-	    {
-	      file_info_list.erase (p);
-
-	      if (file_info_list.empty ())
-		fcn_map.erase (fname);
-
-	      break;
-	    }
-	}
+           p != file_info_list.end ();
+           p++)
+        {
+          if (p->dir_name == dir)
+            {
+              file_info_list.erase (p);
+
+              if (file_info_list.empty ())
+                fcn_map.erase (fname);
+
+              break;
+            }
+        }
     }
 }
 
@@ -726,30 +726,30 @@
       std::string full_dir_name = file_ops::concat (dir, "@" + class_name);
 
       for (fcn_map_iterator q = fm.begin (); q != fm.end (); q++)
-	{
-	  file_info_list_type& file_info_list = q->second;
-
-	  if (file_info_list.size () == 1)
-	    continue;
-	  else
-	    {
-	      for (file_info_list_iterator p = file_info_list.begin ();
-	       p != file_info_list.end ();
-	       p++)
-		{
-		  if (p->dir_name == full_dir_name)
-		    {
-		      file_info_list.erase (p);
-
-		      // FIXME -- if there are no other elements, we
-		      // should remove this element of fm but calling
-		      // erase here would invalidate the iterator q.
-
-		      break;
-		    }
-		}
-	    }
-	}
+        {
+          file_info_list_type& file_info_list = q->second;
+
+          if (file_info_list.size () == 1)
+            continue;
+          else
+            {
+              for (file_info_list_iterator p = file_info_list.begin ();
+               p != file_info_list.end ();
+               p++)
+                {
+                  if (p->dir_name == full_dir_name)
+                    {
+                      file_info_list.erase (p);
+
+                      // FIXME -- if there are no other elements, we
+                      // should remove this element of fm but calling
+                      // erase here would invalidate the iterator q.
+
+                      break;
+                    }
+                }
+            }
+        }
     }
 }
 
@@ -761,36 +761,36 @@
   if (! dir_arg.empty ())
     {
       if (dir_arg == ".")
-	{
-	  warning ("rmpath: can't remove \".\" from path");
-
-	  // Avoid additional warnings.
-	  retval = true;
-	}
+        {
+          warning ("rmpath: can't remove \".\" from path");
+
+          // Avoid additional warnings.
+          retval = true;
+        }
       else
-	{
-	  std::string dir = file_ops::tilde_expand (dir_arg);
-
-	  dir_info_list_iterator i = find_dir_info (dir);
-
-	  if (i != dir_info_list.end ())
-	    {
-	      retval = true;
-
-	      if (remove_hook)
-		remove_hook (dir);
-
-	      string_vector fcn_files = i->fcn_files;
-
-	      dir_info_list.erase (i);
-
-	      remove_fcn_map (dir, fcn_files);
-
-	      remove_private_fcn_map (dir);
-
-	      remove_method_map (dir);
-	    }
-	}
+        {
+          std::string dir = file_ops::tilde_expand (dir_arg);
+
+          dir_info_list_iterator i = find_dir_info (dir);
+
+          if (i != dir_info_list.end ())
+            {
+              retval = true;
+
+              if (remove_hook)
+                remove_hook (dir);
+
+              string_vector fcn_files = i->fcn_files;
+
+              dir_info_list.erase (i);
+
+              remove_fcn_map (dir, fcn_files);
+
+              remove_private_fcn_map (dir);
+
+              remove_method_map (dir);
+            }
+        }
     }
 
   return retval;
@@ -827,91 +827,91 @@
 
 bool
 load_path::check_file_type (std::string& fname, int type, int possible_types,
-			    const std::string& fcn, const char *who)
+                            const std::string& fcn, const char *who)
 {
   bool retval = false;
 
   if (type == load_path::OCT_FILE)
     {
       if ((type & possible_types) == load_path::OCT_FILE)
-	{
-	  fname += ".oct";
-	  retval = true;
-	}
+        {
+          fname += ".oct";
+          retval = true;
+        }
     }
   else if (type == load_path::M_FILE)
     {
       if ((type & possible_types) == load_path::M_FILE)
-	{
-	  fname += ".m";
-	  retval = true;
-	}
+        {
+          fname += ".m";
+          retval = true;
+        }
     }
   else if (type == load_path::MEX_FILE)
     {
       if ((type & possible_types) == load_path::MEX_FILE)
-	{
-	  fname += ".mex";
-	  retval = true;
-	}
+        {
+          fname += ".mex";
+          retval = true;
+        }
     }
   else if (type == (load_path::M_FILE | load_path::OCT_FILE))
     {
       if (possible_types & load_path::OCT_FILE)
-	{
-	  fname += ".oct";
-	  retval = true;
-	}
+        {
+          fname += ".oct";
+          retval = true;
+        }
       else if (possible_types & load_path::M_FILE)
-	{
-	  fname += ".m";
-	  retval = true;
-	}
+        {
+          fname += ".m";
+          retval = true;
+        }
     }
   else if (type == (load_path::M_FILE | load_path::MEX_FILE))
     {
       if (possible_types & load_path::MEX_FILE)
-	{
-	  fname += ".mex";
-	  retval = true;
-	}
+        {
+          fname += ".mex";
+          retval = true;
+        }
       else if (possible_types & load_path::M_FILE)
-	{
-	  fname += ".m";
-	  retval = true;
-	}
+        {
+          fname += ".m";
+          retval = true;
+        }
     }
   else if (type == (load_path::OCT_FILE | load_path::MEX_FILE))
     {
       if (possible_types & load_path::OCT_FILE)
-	{
-	  fname += ".oct";
-	  retval = true;
-	}
+        {
+          fname += ".oct";
+          retval = true;
+        }
       else if (possible_types & load_path::MEX_FILE)
-	{
-	  fname += ".mex";
-	  retval = true;
-	}
+        {
+          fname += ".mex";
+          retval = true;
+        }
     }
   else if (type == (load_path::M_FILE | load_path::OCT_FILE
-		    | load_path::MEX_FILE))
+                    | load_path::MEX_FILE))
     {
       if (possible_types & load_path::OCT_FILE)
-	{
-	  fname += ".oct";
-	  retval = true;
-	}
+        {
+          fname += ".oct";
+          retval = true;
+        }
       else if (possible_types & load_path::MEX_FILE)
-	{
-	  fname += ".mex";
-	  retval = true;
-	}
+        {
+          fname += ".mex";
+          retval = true;
+        }
       else if (possible_types & load_path::M_FILE)
-	{
-	  fname += ".m";
-	  retval = true;
-	}
+        {
+          fname += ".m";
+          retval = true;
+        }
     }
   else
     error ("%s: %s: invalid type code = %d", who, fcn.c_str (), type);
@@ -921,7 +921,7 @@
 
 std::string
 load_path::do_find_fcn (const std::string& fcn, std::string& dir_name,
-			int type) const
+                        int type) const
 {
   std::string retval;
   
@@ -932,14 +932,14 @@
       size_t pos = fcn.find ('/');
 
       if (pos != std::string::npos)
-	{
-	  std::string class_name = fcn.substr (1, pos-1);
-	  std::string meth = fcn.substr (pos+1);
-
-	  retval = do_find_method (class_name, meth, dir_name);
-	}
+        {
+          std::string class_name = fcn.substr (1, pos-1);
+          std::string meth = fcn.substr (pos+1);
+
+          retval = do_find_method (class_name, meth, dir_name);
+        }
       else
-	retval = std::string ();
+        retval = std::string ();
     }
   else
     {
@@ -948,27 +948,27 @@
       const_fcn_map_iterator p = fcn_map.find (fcn);
 
       if (p != fcn_map.end ())
-	{
-	  const file_info_list_type& file_info_list = p->second;
-
-	  for (const_file_info_list_iterator i = file_info_list.begin ();
-	       i != file_info_list.end ();
-	       i++)
-	    {
-	      const file_info& fi = *i;
-
-	      retval = file_ops::concat (fi.dir_name, fcn);
-
-	      if (check_file_type (retval, type, fi.types,
-				   fcn, "load_path::do_find_fcn"))
-		{
-		  dir_name = fi.dir_name;
-		  break;
-		}
-	      else
-		retval = std::string ();
-	    }
-	}
+        {
+          const file_info_list_type& file_info_list = p->second;
+
+          for (const_file_info_list_iterator i = file_info_list.begin ();
+               i != file_info_list.end ();
+               i++)
+            {
+              const file_info& fi = *i;
+
+              retval = file_ops::concat (fi.dir_name, fcn);
+
+              if (check_file_type (retval, type, fi.types,
+                                   fcn, "load_path::do_find_fcn"))
+                {
+                  dir_name = fi.dir_name;
+                  break;
+                }
+              else
+                retval = std::string ();
+            }
+        }
     }
 
   return retval;
@@ -976,7 +976,7 @@
 
 std::string
 load_path::do_find_private_fcn (const std::string& dir,
-				const std::string& fcn, int type) const
+                                const std::string& fcn, int type) const
 {
   std::string retval;
 
@@ -991,14 +991,14 @@
       dir_info::const_fcn_file_map_iterator p = m.find (fcn);
 
       if (p != m.end ())
-	{
-	  std::string fname
-	    = file_ops::concat (file_ops::concat (dir, "private"), fcn);
-
-	  if (check_file_type (fname, type, p->second, fcn,
-			       "load_path::find_private_fcn"))
-	    retval = fname;
-	}
+        {
+          std::string fname
+            = file_ops::concat (file_ops::concat (dir, "private"), fcn);
+
+          if (check_file_type (fname, type, p->second, fcn,
+                               "load_path::find_private_fcn"))
+            retval = fname;
+        }
     }
 
   return retval;
@@ -1006,8 +1006,8 @@
 
 std::string
 load_path::do_find_method (const std::string& class_name,
-			   const std::string& meth,
-			   std::string& dir_name, int type) const
+                           const std::string& meth,
+                           std::string& dir_name, int type) const
 {
   std::string retval;
 
@@ -1024,29 +1024,29 @@
       const_fcn_map_iterator p = m.find (meth);
 
       if (p != m.end ())
-	{
-	  const file_info_list_type& file_info_list = p->second;
-
-	  for (const_file_info_list_iterator i = file_info_list.begin ();
-	       i != file_info_list.end ();
-	       i++)
-	    {
-	      const file_info& fi = *i;
-
-	      retval = file_ops::concat (fi.dir_name, meth);
-
-	      bool found = check_file_type (retval, type, fi.types,
-					    meth, "load_path::do_find_method");
-
-	      if (found)
-		{
-		  dir_name = fi.dir_name;
-		  break;
-		}
-	      else
-		retval = std::string ();
-	    }
-	}
+        {
+          const file_info_list_type& file_info_list = p->second;
+
+          for (const_file_info_list_iterator i = file_info_list.begin ();
+               i != file_info_list.end ();
+               i++)
+            {
+              const file_info& fi = *i;
+
+              retval = file_ops::concat (fi.dir_name, meth);
+
+              bool found = check_file_type (retval, type, fi.types,
+                                            meth, "load_path::do_find_method");
+
+              if (found)
+                {
+                  dir_name = fi.dir_name;
+                  break;
+                }
+              else
+                retval = std::string ();
+            }
+        }
     }
 
   return retval;
@@ -1066,7 +1066,7 @@
       const fcn_map_type& m = q->second;
 
       for (const_fcn_map_iterator p = m.begin (); p != m.end (); p++)
-	retval.push_back (p->first);
+        retval.push_back (p->first);
     }
 
   if (! retval.empty ())
@@ -1105,44 +1105,44 @@
   if (file.find_first_of (file_ops::dir_sep_chars ()) != std::string::npos)
     {
       if (octave_env::absolute_pathname (file)
-	  || octave_env::rooted_relative_pathname (file))
-	{
-	  file_stat fs (file);
-
-	  if (fs.exists ())
-	    return file;
-	}
+          || octave_env::rooted_relative_pathname (file))
+        {
+          file_stat fs (file);
+
+          if (fs.exists ())
+            return file;
+        }
       else
-	{
-	  for (const_dir_info_list_iterator p = dir_info_list.begin ();
-	       p != dir_info_list.end ();
-	       p++)
-	    {
-	      std::string tfile = file_ops::concat (p->dir_name, file);
-
-	      file_stat fs (tfile);
-
-	      if (fs.exists ())
-		return tfile;
-	    }
-	}
+        {
+          for (const_dir_info_list_iterator p = dir_info_list.begin ();
+               p != dir_info_list.end ();
+               p++)
+            {
+              std::string tfile = file_ops::concat (p->dir_name, file);
+
+              file_stat fs (tfile);
+
+              if (fs.exists ())
+                return tfile;
+            }
+        }
     }
   else
     {
       for (const_dir_info_list_iterator p = dir_info_list.begin ();
-	   p != dir_info_list.end ();
-	   p++)
-	{
-	  string_vector all_files = p->all_files;
-
-	  octave_idx_type len = all_files.length ();
-
-	  for (octave_idx_type i = 0; i < len; i++)
-	    {
-	      if (all_files[i] == file)
-		return file_ops::concat (p->dir_name, file);
-	    }
-	}
+           p != dir_info_list.end ();
+           p++)
+        {
+          string_vector all_files = p->all_files;
+
+          octave_idx_type len = all_files.length ();
+
+          for (octave_idx_type i = 0; i < len; i++)
+            {
+              if (all_files[i] == file)
+                return file_ops::concat (p->dir_name, file);
+            }
+        }
     }
 
   return retval;
@@ -1155,41 +1155,41 @@
 
   if (dir.find_first_of (file_ops::dir_sep_chars ()) != std::string::npos
       && (octave_env::absolute_pathname (dir)
-	  || octave_env::rooted_relative_pathname (dir)))
+          || octave_env::rooted_relative_pathname (dir)))
     {
       file_stat fs (dir);
 
       if (fs.exists () && fs.is_dir ())
-	return dir;
+        return dir;
     }
   else
     {
       for (const_dir_info_list_iterator p = dir_info_list.begin ();
-	   p != dir_info_list.end ();
-	   p++)
-	{
-	  std::string dname = octave_env::make_absolute (p->dir_name);
-
-	  size_t dname_len = dname.length ();
-
-	  if (dname.substr (dname_len - 1) == file_ops::dir_sep_str ())
-	    {
-	      dname = dname.substr (0, dname_len - 1);
-	      dname_len--;
-	    }
-
-	  size_t dir_len = dir.length ();
-
-	  if (dname_len >= dir_len
-	      && file_ops::is_dir_sep (dname[dname_len - dir_len - 1])
-	      && dir.compare (dname.substr (dname_len - dir_len)) == 0)
-	    {
-	      file_stat fs (p->dir_name);
-
-	      if (fs.exists () && fs.is_dir ())
-		return p->dir_name;
-	    }
-	}
+           p != dir_info_list.end ();
+           p++)
+        {
+          std::string dname = octave_env::make_absolute (p->dir_name);
+
+          size_t dname_len = dname.length ();
+
+          if (dname.substr (dname_len - 1) == file_ops::dir_sep_str ())
+            {
+              dname = dname.substr (0, dname_len - 1);
+              dname_len--;
+            }
+
+          size_t dir_len = dir.length ();
+
+          if (dname_len >= dir_len
+              && file_ops::is_dir_sep (dname[dname_len - dir_len - 1])
+              && dir.compare (dname.substr (dname_len - dir_len)) == 0)
+            {
+              file_stat fs (p->dir_name);
+
+              if (fs.exists () && fs.is_dir ())
+                return p->dir_name;
+            }
+        }
     }
 
   return retval;
@@ -1202,41 +1202,41 @@
 
   if (dir.find_first_of (file_ops::dir_sep_chars ()) != std::string::npos
       && (octave_env::absolute_pathname (dir)
-	  || octave_env::rooted_relative_pathname (dir)))
+          || octave_env::rooted_relative_pathname (dir)))
     {
       file_stat fs (dir);
 
       if (fs.exists () && fs.is_dir ())
-	retlist.push_back (dir);
+        retlist.push_back (dir);
     }
   else
     {
       for (const_dir_info_list_iterator p = dir_info_list.begin ();
-	   p != dir_info_list.end ();
-	   p++)
-	{
-	  std::string dname = octave_env::make_absolute (p->dir_name);
-
-	  size_t dname_len = dname.length ();
-
-	  if (dname.substr (dname_len - 1) == file_ops::dir_sep_str ())
-	    {
-	      dname = dname.substr (0, dname_len - 1);
-	      dname_len--;
-	    }
-
-	  size_t dir_len = dir.length ();
-
-	  if (dname_len >= dir_len
-	      && file_ops::is_dir_sep (dname[dname_len - dir_len - 1])
-	      && dir.compare (dname.substr (dname_len - dir_len)) == 0)
-	    {
-	      file_stat fs (p->dir_name);
-
-	      if (fs.exists () && fs.is_dir ())
-		retlist.push_back (p->dir_name);
-	    }
-	}
+           p != dir_info_list.end ();
+           p++)
+        {
+          std::string dname = octave_env::make_absolute (p->dir_name);
+
+          size_t dname_len = dname.length ();
+
+          if (dname.substr (dname_len - 1) == file_ops::dir_sep_str ())
+            {
+              dname = dname.substr (0, dname_len - 1);
+              dname_len--;
+            }
+
+          size_t dir_len = dir.length ();
+
+          if (dname_len >= dir_len
+              && file_ops::is_dir_sep (dname[dname_len - dir_len - 1])
+              && dir.compare (dname.substr (dname_len - dir_len)) == 0)
+            {
+              file_stat fs (p->dir_name);
+
+              if (fs.exists () && fs.is_dir ())
+                retlist.push_back (p->dir_name);
+            }
+        }
     }
 
   return retlist;
@@ -1258,14 +1258,14 @@
   for (octave_idx_type i = 0; i < flen; i++)
     {
       if (octave_env::absolute_pathname (flist[i]))
-	{
-	  file_stat fs (flist[i]);
-
-	  if (fs.exists ())
-	    return flist[i];
-	}
+        {
+          file_stat fs (flist[i]);
+
+          if (fs.exists ())
+            return flist[i];
+        }
       else
-	rel_flist[rel_flen++] = flist[i];
+        rel_flist[rel_flen++] = flist[i];
     }
 
   rel_flist.resize (rel_flen);
@@ -1279,18 +1279,18 @@
       octave_idx_type len = all_files.length ();
 
       for (octave_idx_type i = 0; i < len; i++)
-	{
-	  for (octave_idx_type j = 0; j < rel_flen; j++)
-	    {
-	      if (all_files[i] == rel_flist[j])
-		{
-		  dir_name = p->dir_name;
-		  file_name = rel_flist[j];
-
-		  goto done;
-		}
-	    }
-	}
+        {
+          for (octave_idx_type j = 0; j < rel_flen; j++)
+            {
+              if (all_files[i] == rel_flist[j])
+                {
+                  dir_name = p->dir_name;
+                  file_name = rel_flist[j];
+
+                  goto done;
+                }
+            }
+        }
     }
 
  done:
@@ -1317,14 +1317,14 @@
   for (octave_idx_type i = 0; i < flen; i++)
     {
       if (octave_env::absolute_pathname (flist[i]))
-	{
-	  file_stat fs (flist[i]);
-
-	  if (fs.exists ())
-	    retlist.push_back (flist[i]);
-	}
+        {
+          file_stat fs (flist[i]);
+
+          if (fs.exists ())
+            retlist.push_back (flist[i]);
+        }
       else
-	rel_flist[rel_flen++] = flist[i];
+        rel_flist[rel_flen++] = flist[i];
     }
 
   rel_flist.resize (rel_flen);
@@ -1338,14 +1338,14 @@
       octave_idx_type len = all_files.length ();
 
       for (octave_idx_type i = 0; i < len; i++)
-	{
-	  for (octave_idx_type j = 0; j < rel_flen; j++)
-	    {
-	      if (all_files[i] == rel_flist[j])
-		retlist.push_back
-		  (file_ops::concat (p->dir_name, rel_flist[j]));
-	    }
-	}
+        {
+          for (octave_idx_type j = 0; j < rel_flen; j++)
+            {
+              if (all_files[i] == rel_flist[j])
+                retlist.push_back
+                  (file_ops::concat (p->dir_name, rel_flist[j]));
+            }
+        }
     }
 
   return retlist;
@@ -1396,14 +1396,14 @@
       octave_idx_type len = retval.length ();
 
       for (octave_idx_type i = 0; i < len; i++)
-	{
-	  std::string fname = retval[i];
-
-	  size_t pos = fname.rfind ('.');
-
-	  if (pos != std::string::npos)
-	    retval[i] = fname.substr (0, pos);
-	}
+        {
+          std::string fname = retval[i];
+
+          size_t pos = fname.rfind ('.');
+
+          if (pos != std::string::npos)
+            retval[i] = fname.substr (0, pos);
+        }
     }
 
   return retval;
@@ -1458,7 +1458,7 @@
   if (types & load_path::MEX_FILE)
     {
       if (printed_type)
-	os << "|";
+        os << "|";
       os << "mex";
       printed_type = true;
     }
@@ -1466,7 +1466,7 @@
   if (types & load_path::M_FILE)
     {
       if (printed_type)
-	os << "|";
+        os << "|";
       os << "m";
       printed_type = true;
     }
@@ -1474,7 +1474,7 @@
 
 void
 print_fcn_list (std::ostream& os,
-		const load_path::dir_info::fcn_file_map_type& lst)
+                const load_path::dir_info::fcn_file_map_type& lst)
 {
   for (load_path::dir_info::const_fcn_file_map_iterator p = lst.begin ();
        p != lst.end ();
@@ -1506,11 +1506,11 @@
       int types = p->second;
 
       if (types & load_path::OCT_FILE)
-	nm += ".oct";
+        nm += ".oct";
       else if (types & load_path::MEX_FILE)
-	nm += ".mex";
+        nm += ".mex";
       else
-	nm += ".m";
+        nm += ".m";
 
       retval[count++] = nm;
     }
@@ -1528,38 +1528,38 @@
       string_vector fcn_files = i->fcn_files;
 
       if (! fcn_files.empty ())
-	{
-	  os << "\n*** function files in " << i->dir_name << ":\n\n";
-
-	  fcn_files.list_in_columns (os);
-	}
+        {
+          os << "\n*** function files in " << i->dir_name << ":\n\n";
+
+          fcn_files.list_in_columns (os);
+        }
 
       const dir_info::method_file_map_type& method_file_map
-	= i->method_file_map;
+        = i->method_file_map;
 
       if (! method_file_map.empty ())
-	{
-	  for (dir_info::const_method_file_map_iterator p = method_file_map.begin ();
-	       p != method_file_map.end ();
-	       p++)
-	    {
-	      os << "\n*** methods in " << i->dir_name
-		 << "/@" << p->first << ":\n\n";
-
-	      const dir_info::class_info& ci = p->second;
-
-	      string_vector method_files = get_file_list (ci.method_file_map);
-
-	      method_files.list_in_columns (os);
-	    }
-	}
+        {
+          for (dir_info::const_method_file_map_iterator p = method_file_map.begin ();
+               p != method_file_map.end ();
+               p++)
+            {
+              os << "\n*** methods in " << i->dir_name
+                 << "/@" << p->first << ":\n\n";
+
+              const dir_info::class_info& ci = p->second;
+
+              string_vector method_files = get_file_list (ci.method_file_map);
+
+              method_files.list_in_columns (os);
+            }
+        }
     }
 
   for (const_private_fcn_map_iterator i = private_fcn_map.begin ();
        i != private_fcn_map.end (); i++)
     {
       os << "\n*** private functions in "
-	 << file_ops::concat (i->first, "private") << ":\n\n";
+         << file_ops::concat (i->first, "private") << ":\n\n";
 
       print_fcn_list (os, i->second);
     }
@@ -1575,15 +1575,15 @@
       const file_info_list_type& file_info_list = i->second;
 
       for (const_file_info_list_iterator p = file_info_list.begin ();
-	   p != file_info_list.end ();
-	   p++)
-	{
-	  os << "  " << p->dir_name << " (";
-
-	  print_types (os, p->types);
-
-	  os << ")\n";
-	}
+           p != file_info_list.end ();
+           p++)
+        {
+          os << "  " << p->dir_name << " (";
+
+          print_types (os, p->types);
+
+          os << ")\n";
+        }
     }
 
   for (const_method_map_iterator i = method_map.begin ();
@@ -1595,24 +1595,24 @@
       const fcn_map_type& fm = i->second;
 
       for (const_fcn_map_iterator q = fm.begin ();
-	   q != fm.end ();
-	   q++)
-	{
-	  os << "  " << q->first << ":\n";
-
-	  const file_info_list_type& file_info_list = q->second;
-
-	  for (const_file_info_list_iterator p = file_info_list.begin ();
-	       p != file_info_list.end ();
-	       p++)
-	    {
-	      os << "  " << p->dir_name << " (";
-
-	      print_types (os, p->types);
-
-	      os << ")\n";
-	    }
-	}
+           q != fm.end ();
+           q++)
+        {
+          os << "  " << q->first << ":\n";
+
+          const file_info_list_type& file_info_list = q->second;
+
+          for (const_file_info_list_iterator p = file_info_list.begin ();
+               p != file_info_list.end ();
+               p++)
+            {
+              os << "  " << p->dir_name << " (";
+
+              print_types (os, p->types);
+
+              os << ")\n";
+            }
+        }
     }
 
   os << "\n";
@@ -1639,38 +1639,38 @@
       size_t pos = fname.rfind ('.');
 
       if (pos != std::string::npos)
-	{
-	  base = fname.substr (0, pos);
-	  ext = fname.substr (pos);
-	}
+        {
+          base = fname.substr (0, pos);
+          ext = fname.substr (pos);
+        }
 
       file_info_list_type& file_info_list = fcn_map[base];
 
       file_info_list_iterator p = file_info_list.begin ();
 
       while (p != file_info_list.end ())
-	{
-	  if (p->dir_name == dir_name)
-	    break;
-
-	  p++;
-	}
+        {
+          if (p->dir_name == dir_name)
+            break;
+
+          p++;
+        }
 
       int t = 0;
       if (ext == ".m")
-	t = load_path::M_FILE;
+        t = load_path::M_FILE;
       else if (ext == ".oct")
-	t = load_path::OCT_FILE;
+        t = load_path::OCT_FILE;
       else if (ext == ".mex")
-	t = load_path::MEX_FILE;
+        t = load_path::MEX_FILE;
 
       if (p == file_info_list.end ())
-	{
-	  file_info fi (dir_name, t);
-
-	  if (at_end)
-	    file_info_list.push_back (fi);
-	  else
+        {
+          file_info fi (dir_name, t);
+
+          if (at_end)
+            file_info_list.push_back (fi);
+          else
             {
               // Warn if a built-in or library function is being shadowed.
               if (! file_info_list.empty ())
@@ -1694,13 +1694,13 @@
 
               file_info_list.push_front (fi);
             }
-	}
+        }
       else
-	{
-	  file_info& fi = *p;
-
-	  fi.types |= t;
-	}
+        {
+          file_info& fi = *p;
+
+          fi.types |= t;
+        }
     }
 }
 
@@ -1730,7 +1730,7 @@
       fcn_map_type& fm = method_map[class_name];
 
       std::string full_dir_name
-	= file_ops::concat (dir_name, "@" + class_name);
+        = file_ops::concat (dir_name, "@" + class_name);
 
       const dir_info::class_info& ci = q->second;
 
@@ -1738,49 +1738,49 @@
       const dir_info::fcn_file_map_type& m = ci.method_file_map;
 
       for (dir_info::const_fcn_file_map_iterator p = m.begin ();
-	   p != m.end ();
-	   p++)
-	{
-	  std::string base = p->first;
-
-	  int types = p->second;
-
-	  file_info_list_type& file_info_list = fm[base];
-
-	  file_info_list_iterator p2 = file_info_list.begin ();
-
-	  while (p2 != file_info_list.end ())
-	    {
-	      if (p2->dir_name == full_dir_name)
-		break;
-
-	      p2++;
-	    }
-
-	  if (p2 == file_info_list.end ())
-	    {
-	      file_info fi (full_dir_name, types);
-
-	      if (at_end)
-		file_info_list.push_back (fi);
-	      else
-		file_info_list.push_front (fi);
-	    }
-	  else
-	    {
-	      // FIXME -- is this possible?
-
-	      file_info& fi = *p2;
-
-	      fi.types = types;
-	    }
-	}
+           p != m.end ();
+           p++)
+        {
+          std::string base = p->first;
+
+          int types = p->second;
+
+          file_info_list_type& file_info_list = fm[base];
+
+          file_info_list_iterator p2 = file_info_list.begin ();
+
+          while (p2 != file_info_list.end ())
+            {
+              if (p2->dir_name == full_dir_name)
+                break;
+
+              p2++;
+            }
+
+          if (p2 == file_info_list.end ())
+            {
+              file_info fi (full_dir_name, types);
+
+              if (at_end)
+                file_info_list.push_back (fi);
+              else
+                file_info_list.push_front (fi);
+            }
+          else
+            {
+              // FIXME -- is this possible?
+
+              file_info& fi = *p2;
+
+              fi.types = types;
+            }
+        }
 
       // <FCN_NAME, TYPES>
       dir_info::fcn_file_map_type private_file_map = ci.private_file_map;
 
       if (! private_file_map.empty ())
-	private_fcn_map[full_dir_name] = private_file_map;
+        private_fcn_map[full_dir_name] = private_file_map;
     }
 }
 
@@ -1800,35 +1800,35 @@
       octave_idx_type len = dirlist.length ();
 
       for (octave_idx_type i = 0; i < len; i++)
-	{
-	  std::string elt = dirlist[i];
-
-	  // FIXME -- the caller should be able to specify the list of
-	  // directories to skip in addition to ".", "..", and
-	  // directories beginning with "@".
-
-	  bool skip_p = (elt == "." || elt == ".." || elt[0] == '@');
-
-	  if (! skip_p)
-	    {
-	      for (octave_idx_type j = 0; j < skip.length (); j++)
-		{
-		  skip_p = (elt == skip[j]);
-		  if (skip_p)
-		    break;
-		}
-
-	      if (! skip_p)
-		{
-		  std::string nm = file_ops::concat (dirname, elt);
-
-		  file_stat fs (nm);
-
-		  if (fs && fs.is_dir ())
-		    retval += dir_path::path_sep_str () + genpath (nm);
-		}
-	    }
-	}
+        {
+          std::string elt = dirlist[i];
+
+          // FIXME -- the caller should be able to specify the list of
+          // directories to skip in addition to ".", "..", and
+          // directories beginning with "@".
+
+          bool skip_p = (elt == "." || elt == ".." || elt[0] == '@');
+
+          if (! skip_p)
+            {
+              for (octave_idx_type j = 0; j < skip.length (); j++)
+                {
+                  skip_p = (elt == skip[j]);
+                  if (skip_p)
+                    break;
+                }
+
+              if (! skip_p)
+                {
+                  std::string nm = file_ops::concat (dirname, elt);
+
+                  file_stat fs (nm);
+
+                  if (fs && fs.is_dir ())
+                    retval += dir_path::path_sep_str () + genpath (nm);
+                }
+            }
+        }
     }
 
   return retval;
@@ -1836,7 +1836,7 @@
 
 static void
 execute_pkg_add_or_del (const std::string& dir,
-			const std::string& script_file)
+                        const std::string& script_file)
 {
   if (! octave_interpreter_ready)
     return;
@@ -1880,9 +1880,9 @@
       std::string dirname = args(0).string_value ();
 
       if (! error_state)
-	retval = genpath (dirname);
+        retval = genpath (dirname);
       else
-	error ("genpath: expecting argument to be a character string");
+        error ("genpath: expecting argument to be a character string");
     }
   else
     print_usage ();
@@ -1981,29 +1981,29 @@
   if (! error_state)
     {
       if (argc > 1)
-	{
-	  std::string path = argv[1];
-
-	  for (int i = 2; i < argc; i++)
-	    path += dir_path::path_sep_str () + argv[i];
-
-	  load_path::set (path, true);
-
-	  rehash_internal ();
-	}
+        {
+          std::string path = argv[1];
+
+          for (int i = 2; i < argc; i++)
+            path += dir_path::path_sep_str () + argv[i];
+
+          load_path::set (path, true);
+
+          rehash_internal ();
+        }
 
       if (nargout > 0)
-	retval = load_path::path ();
+        retval = load_path::path ();
       else if (argc == 1 && nargout == 0)
-	{
-	  octave_stdout << "\nOctave's search path contains the following directories:\n\n";
-
-	  string_vector dirs = load_path::dirs ();
-
-	  dirs.list_in_columns (octave_stdout);
-
-	  octave_stdout << "\n";
-	}
+        {
+          octave_stdout << "\nOctave's search path contains the following directories:\n\n";
+
+          string_vector dirs = load_path::dirs ();
+
+          dirs.list_in_columns (octave_stdout);
+
+          octave_stdout << "\n";
+        }
     }
 
   return retval;
@@ -2038,76 +2038,76 @@
       octave_value option_arg = args(nargin-1);
 
       if (option_arg.is_string ())
-	{
-	  std::string option = option_arg.string_value ();
-
-	  if (option == "-end")
-	    {
-	      append = true;
-	      nargin--;
-	    }
-	  else if (option == "-begin")
-	    nargin--;
-	}
+        {
+          std::string option = option_arg.string_value ();
+
+          if (option == "-end")
+            {
+              append = true;
+              nargin--;
+            }
+          else if (option == "-begin")
+            nargin--;
+        }
       else if (option_arg.is_numeric_type ())
-	{
-	  int val = option_arg.int_value ();
-
-	  if (! error_state)
-	    {
-	      if (val == 0)
-		append = false;
-	      else if (val == 1)
-		append = true;
-	      else
-		{
-		  error ("addpath: expecting final argument to be 1 or 0");
-		  return retval;
-		}
-	    }
-	  else
-	    {
-	      error ("addpath: expecting final argument to be 1 or 0");
-	      return retval;
-	    }
-	}
+        {
+          int val = option_arg.int_value ();
+
+          if (! error_state)
+            {
+              if (val == 0)
+                append = false;
+              else if (val == 1)
+                append = true;
+              else
+                {
+                  error ("addpath: expecting final argument to be 1 or 0");
+                  return retval;
+                }
+            }
+          else
+            {
+              error ("addpath: expecting final argument to be 1 or 0");
+              return retval;
+            }
+        }
 
       bool need_to_update = false;
 
       for (int i = 0; i < nargin; i++)
-	{
-	  std::string arg = args(i).string_value ();
-
-	  if (! error_state)
-	    {
-	      std::list<std::string> dir_elts = split_path (arg);
-
-	      if (! append)
-		std::reverse (dir_elts.begin (), dir_elts.end ());
-
-	      for (std::list<std::string>::const_iterator p = dir_elts.begin ();
-		   p != dir_elts.end ();
-		   p++)
-		{
-		  std::string dir = *p;
-
-		  //dir = regexprep (dir_elts{j}, "//+", "/");
-		  //dir = regexprep (dir, "/$", "");
-
-		  if (append)
-		    load_path::append (dir, true);
-		  else
-		    load_path::prepend (dir, true);
-
-		  need_to_update = true;
-		}
-	    }
-	  else
-	    error ("addpath: expecting all args to be character strings");
-	}
+        {
+          std::string arg = args(i).string_value ();
+
+          if (! error_state)
+            {
+              std::list<std::string> dir_elts = split_path (arg);
+
+              if (! append)
+                std::reverse (dir_elts.begin (), dir_elts.end ());
+
+              for (std::list<std::string>::const_iterator p = dir_elts.begin ();
+                   p != dir_elts.end ();
+                   p++)
+                {
+                  std::string dir = *p;
+
+                  //dir = regexprep (dir_elts{j}, "//+", "/");
+                  //dir = regexprep (dir, "/$", "");
+
+                  if (append)
+                    load_path::append (dir, true);
+                  else
+                    load_path::prepend (dir, true);
+
+                  need_to_update = true;
+                }
+            }
+          else
+            error ("addpath: expecting all args to be character strings");
+        }
 
       if (need_to_update)
-	rehash_internal ();
+        rehash_internal ();
     }
   else
     print_usage ();
@@ -2138,34 +2138,34 @@
       bool need_to_update = false;
 
       for (int i = 0; i < nargin; i++)
-	{
-	  std::string arg = args(i).string_value ();
-
-	  if (! error_state)
-	    {
-	      std::list<std::string> dir_elts = split_path (arg);
-
-	      for (std::list<std::string>::const_iterator p = dir_elts.begin ();
-		   p != dir_elts.end ();
-		   p++)
-		{
-		  std::string dir = *p;
-
-		  //dir = regexprep (dir_elts{j}, "//+", "/");
-		  //dir = regexprep (dir, "/$", "");
-
-		  if (! load_path::remove (dir))
-		    warning ("rmpath: %s: not found", dir.c_str ());
-		  else
-		    need_to_update = true;
-		}
-	    }
-	  else
-	    error ("addpath: expecting all args to be character strings");
-	}
+        {
+          std::string arg = args(i).string_value ();
+
+          if (! error_state)
+            {
+              std::list<std::string> dir_elts = split_path (arg);
+
+              for (std::list<std::string>::const_iterator p = dir_elts.begin ();
+                   p != dir_elts.end ();
+                   p++)
+                {
+                  std::string dir = *p;
+
+                  //dir = regexprep (dir_elts{j}, "//+", "/");
+                  //dir = regexprep (dir, "/$", "");
+
+                  if (! load_path::remove (dir))
+                    warning ("rmpath: %s: not found", dir.c_str ());
+                  else
+                    need_to_update = true;
+                }
+            }
+          else
+            error ("addpath: expecting all args to be character strings");
+        }
 
       if (need_to_update)
-	rehash_internal ();
+        rehash_internal ();
     }
   else
     print_usage ();