E-MailRelay

- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

gexecutablecommand_unix.cpp
Go to the documentation of this file.
1 //
2 // Copyright (C) 2001-2018 Graeme Walker <graeme_walker@users.sourceforge.net>
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
16 // ===
17 //
18 // gexecutablecommand_unix.cpp
19 //
20
21 #include "gdef.h"
22 #include "gexecutablecommand.h"
23 #include "gstr.h"
24 #include <algorithm>
25
26 G::StringArray G::ExecutableCommand::osSplit( const std::string & s )
27 {
28 G::StringArray parts ;
29 G::Str::splitIntoFields( G::Str::dequote(s) , parts , " " , '\\' ) ;
30 parts.erase( std::remove( parts.begin() , parts.end() , std::string() ) , parts.end() ) ;
31 return parts ;
32 }
33
34 bool G::ExecutableCommand::osNativelyRunnable() const
35 {
36 return true ;
37 }
38
39 void G::ExecutableCommand::osAddWrapper()
40 {
41 }
42
43 /// \file gexecutablecommand_unix.cpp
G::Str::dequote
static std::string dequote(const std::string &, char qq= '\"' , char esc = '\\' , const std::string & ws = Str::ws() )
Dequotes a string by removing unescaped quotes and escaping quoted whitespace, so "qq-aaa-esc-qq-bbb-...
Definition: gstr.cpp:99
G::StringArray
std::vector< std::string > StringArray
A std::vector of std::strings.
Definition: gstrings.h:33
gexecutablecommand.h
gstr.h
G::Str::splitIntoFields
static void splitIntoFields(const std::string &in, StringArray &out, const std::string &separators, char escape= '\0', bool remove_escapes=true)
Splits the string into fields.
Definition: gstr.cpp:975