diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2013-03-25 19:19:44 +0100 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2013-03-25 19:19:44 +0100 |
| commit | 58caeaa8a8ecdbd4f65d6dfd751c3e226336fe67 (patch) | |
| tree | 9b67fd671c65efe013a395d42f77dd2443422263 /src | |
| parent | ce67d298712b957fbea534b0631eaae2e44be5be (diff) | |
add a cd command
Diffstat (limited to 'src')
| -rw-r--r-- | src/commands.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/commands.cc b/src/commands.cc index 11f97720..1a95ec15 100644 --- a/src/commands.cc +++ b/src/commands.cc @@ -734,6 +734,15 @@ void set_register(const CommandParameters& params, Context& context) RegisterManager::instance()[params[0][0]] = memoryview<String>(params[1]); } +void change_working_directory(const CommandParameters& params, Context&) +{ + if (params.size() != 1) + throw wrong_argument_count(); + + if (chdir(parse_filename(params[0]).c_str()) != 0) + throw runtime_error("cannot change to directory " + params[0]); +} + class RegisterRestorer { public: @@ -925,6 +934,8 @@ void register_commands() cm.register_commands({"name"}, set_client_name); cm.register_command("reg", set_register); + + cm.register_command("cd", change_working_directory, filename_completer); } } |
