Browse Source

* replaced '/' with DirectorySeparator in the WASI directory parsing code

Nikolay Nikolov 3 years ago
parent
commit
d7755a56f6
2 changed files with 5 additions and 5 deletions
  1. 4 4
      rtl/wasi/sysdir.inc
  2. 1 1
      rtl/wasi/system.pp

+ 4 - 4
rtl/wasi/sysdir.inc

@@ -110,7 +110,7 @@ begin
     if s[1] in ['/','\'] then
     begin
       delete(s,1,1);
-      new_dir:='/';
+      new_dir:=DirectorySeparator;
     end;
     while s<>'' do
     begin
@@ -126,7 +126,7 @@ begin
           while (new_dir<>'') and (new_dir[Length(new_dir)] in AllowDirectorySeparators) do
             delete(new_dir,Length(new_dir),1);
           if (Pos('/',new_dir)=0) and (Pos('\',new_dir)=0) then
-            new_dir:=new_dir+'/';
+            new_dir:=new_dir+DirectorySeparator;
         end;
       end
       else
@@ -135,7 +135,7 @@ begin
         if (new_dir<>'') and (new_dir[Length(new_dir)] in AllowDirectorySeparators) then
           new_dir:=new_dir+next_dir_part
         else
-          new_dir:=new_dir+'/'+next_dir_part;
+          new_dir:=new_dir+DirectorySeparator+next_dir_part;
         if not ConvertToFdRelativePath(current_dirs[new_drive_nr].drive_str+new_dir,fd,pr) then
         begin
           {...}
@@ -166,7 +166,7 @@ begin
           else if (new_dir_save<>'') and (new_dir_save[length(new_dir_save)] in AllowDirectorySeparators) then
             do_ChDir_internal(current_dirs[new_drive_nr].drive_str+new_dir_save+symlink,SymLinkFollowCount-1)
           else
-            do_ChDir_internal(current_dirs[new_drive_nr].drive_str+new_dir_save+'/'+symlink,SymLinkFollowCount-1);
+            do_ChDir_internal(current_dirs[new_drive_nr].drive_str+new_dir_save+DirectorySeparator+symlink,SymLinkFollowCount-1);
           exit;
         end
         else if st.filetype<>__WASI_FILETYPE_DIRECTORY then

+ 1 - 1
rtl/wasi/system.pp

@@ -137,7 +137,7 @@ begin
     if current_dirs[drive_nr].dir_name[Length(current_dirs[drive_nr].dir_name)] in AllowDirectorySeparators then
       path:=current_dirs[drive_nr].dir_name+path
     else
-      path:=current_dirs[drive_nr].dir_name+'/'+path;
+      path:=current_dirs[drive_nr].dir_name+DirectorySeparator+path;
   end;
   { path is now absolute. Try to find it in the preopened dirs array }
   ConvertToFdRelativePath:=false;