diff src/load-save.cc @ 6838:5e3350bdd91d

[project @ 2007-08-28 02:59:58 by jwe]
author jwe
date Tue, 28 Aug 2007 02:59:59 +0000
parents 958713bc465e
children 47f4f4e88166
line wrap: on
line diff
--- a/src/load-save.cc	Mon Aug 27 20:20:55 2007 +0000
+++ b/src/load-save.cc	Tue Aug 28 02:59:59 2007 +0000
@@ -594,7 +594,8 @@
 {
   std::string fname = name;
 
-  if (! octave_env::absolute_pathname (fname))
+  if (! (octave_env::absolute_pathname (fname)
+	 || octave_env::rooted_relative_pathname (fname)))
     {
       file_stat fs (fname);
 
@@ -612,8 +613,14 @@
 	}
     }
 
-  if (fname.rfind (".") == NPOS)
+  size_t dot_pos = fname.rfind (".");
+  size_t sep_pos = fname.find_last_of (file_ops::dir_sep_chars);
+    
+  if (dot_pos == NPOS || (sep_pos != NPOS && dot_pos < sep_pos))
     {
+      // Either no '.' in name or no '.' appears after last directory
+      // separator.
+
       file_stat fs (fname);
 
       if (! (fs.exists () && fs.is_reg ()))