From bf8b10944cacea6a0d4cd3878f9aafb4b2913a39 Mon Sep 17 00:00:00 2001 From: Augustin Degomme Date: Wed, 27 May 2020 14:55:33 +0200 Subject: [PATCH] MPI IO : "support" for ./ in filename --- src/smpi/mpi/smpi_file.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/smpi/mpi/smpi_file.cpp b/src/smpi/mpi/smpi_file.cpp index 124fc876bf..d48222118c 100644 --- a/src/smpi/mpi/smpi_file.cpp +++ b/src/smpi/mpi/smpi_file.cpp @@ -35,7 +35,7 @@ namespace smpi{ size_t found=fullname.find('/'); //in case no fullpath is provided ... just pick the first mountpoint. - if(found==std::string::npos){ + if(found==std::string::npos || fullname.rfind("./", 1) != std::string::npos){ auto disk = simgrid::s4u::Host::current()->get_disks().front(); std::string mount; if (disk->get_host() != simgrid::s4u::Host::current()) @@ -43,8 +43,12 @@ namespace smpi{ else mount = disk->extension()->get_mount_point(); XBT_DEBUG("No absolute path given for file opening, use '%s'", mount.c_str()); - mount.append("/"); - fullname.insert(0, mount); + if(fullname.rfind("./",1) != std::string::npos) + fullname.replace(fullname.begin(), fullname.begin() + 1, mount); + else{ + mount.append("/"); + fullname.insert(0, mount); + } } file_= new simgrid::s4u::File(fullname, nullptr); -- 2.20.1