Browse Source

Fixed filesystem::(un)escape for MSYS2: no longer adds extra \ for Windows paths

merge-requests/365/head
eidheim 9 years ago
parent
commit
766e37249e
  1. 4
      src/filesystem.cc

4
src/filesystem.cc

@ -139,7 +139,7 @@ bool filesystem::write(const std::string &path, Glib::RefPtr<Gtk::TextBuffer> bu
std::string filesystem::escape_argument(const std::string &argument) {
auto escaped=argument;
for(size_t pos=0;pos<escaped.size();++pos) {
if(escaped[pos]=='\\' || escaped[pos]==' ' || escaped[pos]=='(' || escaped[pos]==')' || escaped[pos]=='\'' || escaped[pos]=='"') {
if(escaped[pos]==' ' || escaped[pos]=='(' || escaped[pos]==')' || escaped[pos]=='\'' || escaped[pos]=='"') {
escaped.insert(pos, "\\");
++pos;
}
@ -166,7 +166,7 @@ std::string filesystem::unescape_argument(const std::string &argument) {
}
for(size_t pos=1;pos<unescaped.size();++pos) {
if(unescaped[pos-1]=='\\' && (unescaped[pos]=='\\' || unescaped[pos]==' ' || unescaped[pos]=='(' || unescaped[pos]==')' || unescaped[pos]=='\'' || unescaped[pos]=='"')) {
if(unescaped[pos-1]=='\\' && (unescaped[pos]==' ' || unescaped[pos]=='(' || unescaped[pos]==')' || unescaped[pos]=='\'' || unescaped[pos]=='"')) {
unescaped.erase(pos-1, 1);
--pos;
}

Loading…
Cancel
Save