Commit 1c994463116c3427589188e5f15e117d44bc188e
1 parent
15a31763
fixed root directory bug in stim::filename
Showing
1 changed file
with
10 additions
and
5 deletions
Show diff stats
stim/parser/filename.h
@@ -110,12 +110,17 @@ protected: | @@ -110,12 +110,17 @@ protected: | ||
110 | unix_dir = unix_dir.substr(2, unix_dir.length()-2); //extract the directory structure | 110 | unix_dir = unix_dir.substr(2, unix_dir.length()-2); //extract the directory structure |
111 | } | 111 | } |
112 | 112 | ||
113 | - if(unix_dir[0] == '/'){ //if there is a leading slash | ||
114 | - relative = false; //the path is not relative | ||
115 | - unix_dir = unix_dir.substr(1, unix_dir.length() - 1); //remove the slash | 113 | + if(drive.size() != 0){ |
114 | + relative = false; | ||
115 | + } | ||
116 | + if(unix_dir.size() > 0){ //if there is a directory specified, remove surrounding slashes | ||
117 | + if(unix_dir[0] == '/'){ //if there is a leading slash | ||
118 | + relative = false; //the path is not relative | ||
119 | + unix_dir = unix_dir.substr(1, unix_dir.length() - 1); //remove the slash | ||
120 | + } | ||
121 | + if(unix_dir[unix_dir.size()-1] == '/') | ||
122 | + unix_dir = unix_dir.substr(0, unix_dir.length() - 1); | ||
116 | } | 123 | } |
117 | - if(unix_dir[unix_dir.size()-1] == '/') | ||
118 | - unix_dir = unix_dir.substr(0, unix_dir.length() - 1); | ||
119 | 124 | ||
120 | path = stim::parser::split(unix_dir, '/'); //split up the directory structure | 125 | path = stim::parser::split(unix_dir, '/'); //split up the directory structure |
121 | 126 |