diff options
Diffstat (limited to 'src/FbCommandFactory.cc')
-rw-r--r-- | src/FbCommandFactory.cc | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/FbCommandFactory.cc b/src/FbCommandFactory.cc index 7dc7fc8..4e6adf9 100644 --- a/src/FbCommandFactory.cc +++ b/src/FbCommandFactory.cc | |||
@@ -20,7 +20,7 @@ | |||
20 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 20 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
21 | // DEALINGS IN THE SOFTWARE. | 21 | // DEALINGS IN THE SOFTWARE. |
22 | 22 | ||
23 | // $Id: FbCommandFactory.cc,v 1.35 2004/09/16 14:58:28 rathnor Exp $ | 23 | // $Id: FbCommandFactory.cc,v 1.36 2004/10/06 11:40:28 akir Exp $ |
24 | 24 | ||
25 | #include "FbCommandFactory.hh" | 25 | #include "FbCommandFactory.hh" |
26 | 26 | ||
@@ -66,6 +66,7 @@ FbCommandFactory::FbCommandFactory() { | |||
66 | "commanddialog", | 66 | "commanddialog", |
67 | "deiconify", | 67 | "deiconify", |
68 | "detachclient", | 68 | "detachclient", |
69 | "export", | ||
69 | "exec", | 70 | "exec", |
70 | "execcommand", | 71 | "execcommand", |
71 | "execute", | 72 | "execute", |
@@ -116,6 +117,7 @@ FbCommandFactory::FbCommandFactory() { | |||
116 | "rightworkspace", | 117 | "rightworkspace", |
117 | "rootmenu", | 118 | "rootmenu", |
118 | "saverc", | 119 | "saverc", |
120 | "setenv", | ||
119 | "sendtoworkspace", | 121 | "sendtoworkspace", |
120 | "sendtonextworkspace", | 122 | "sendtonextworkspace", |
121 | "sendtoprevworkspace", | 123 | "sendtoprevworkspace", |
@@ -176,8 +178,21 @@ FbTk::Command *FbCommandFactory::stringToCommand(const std::string &command, | |||
176 | return new SaveResources(); | 178 | return new SaveResources(); |
177 | else if (command == "execcommand" || command == "execute" || command == "exec") | 179 | else if (command == "execcommand" || command == "execute" || command == "exec") |
178 | return new ExecuteCmd(arguments); // execute command on key screen | 180 | return new ExecuteCmd(arguments); // execute command on key screen |
179 | else if (command == "exit") | 181 | else if (command == "exit") |
180 | return new ExitFluxboxCmd(); | 182 | return new ExitFluxboxCmd(); |
183 | else if (command == "setenv" || command == "export") { | ||
184 | |||
185 | std::string name = arguments; | ||
186 | FbTk::StringUtil::removeFirstWhitespace(name); | ||
187 | FbTk::StringUtil::removeTrailingWhitespace(name); | ||
188 | size_t pos = name.find_first_of(command == "setenv" ? " \t" : "="); | ||
189 | if (pos == std::string::npos || pos == name.size()) | ||
190 | return 0; | ||
191 | |||
192 | std::string value = name.substr(pos + 1); | ||
193 | name = name.substr(0, pos); | ||
194 | return new ExportCmd(name, value); | ||
195 | } | ||
181 | else if (command == "quit") | 196 | else if (command == "quit") |
182 | return new FbTk::SimpleCommand<Fluxbox>(*Fluxbox::instance(), &Fluxbox::shutdown); | 197 | return new FbTk::SimpleCommand<Fluxbox>(*Fluxbox::instance(), &Fluxbox::shutdown); |
183 | else if (command == "commanddialog") // run specified fluxbox command | 198 | else if (command == "commanddialog") // run specified fluxbox command |