/// Changes vim working directory /// /// @param dir The new working directory /// @param[out] err Details of an error that may have occurred void vim_change_directory(String dir, Error *err) { if (dir.size >= MAXPATHL) { set_api_error("directory string is too long", err); return; } char string[MAXPATHL]; strncpy(string, dir.data, dir.size); string[dir.size] = NUL; try_start(); if (vim_chdir((char_u *)string)) { if (!try_end(err)) { set_api_error("failed to change directory", err); } return; } post_chdir(false); try_end(err); }
/// Changes Vim working directory /// /// @param dir The new working directory /// @param[out] err Details of an error that may have occurred void vim_change_directory(String dir, Error *err) { if (dir.size >= MAXPATHL) { api_set_error(err, Validation, _("Directory string is too long")); return; } char string[MAXPATHL]; strncpy(string, dir.data, dir.size); string[dir.size] = NUL; try_start(); if (vim_chdir((char_u *)string)) { if (!try_end(err)) { api_set_error(err, Exception, _("Failed to change directory")); } return; } post_chdir(kCdScopeGlobal); try_end(err); }