diff options
author | Łukasz Niemier <lukasz@niemier.pl> | 2012-11-18 11:23:22 +0100 |
---|---|---|
committer | Łukasz Niemier <lukasz@niemier.pl> | 2012-11-18 11:23:22 +0100 |
commit | 47df1ae40adecd0a02fc7dd06ab0745cb18c3fe0 (patch) | |
tree | 13bf3e8fdcae60fdfb5fa5e26c95818dc7a49790 /path.cpp | |
parent | b79854ad1aa814d9d35d76a1929b4726fa4bffa5 (diff) |
Remove trailing whitespaces and change tabs to spaces
Diffstat (limited to 'path.cpp')
-rw-r--r-- | path.cpp | 392 |
1 files changed, 196 insertions, 196 deletions
@@ -25,110 +25,110 @@ static bool path_get_path_core(const wcstring &cmd, wcstring *out_path, const env_var_t &bin_path_var) { - int err = ENOENT; - - debug( 3, L"path_get_path( '%ls' )", cmd.c_str() ); - + int err = ENOENT; + + debug( 3, L"path_get_path( '%ls' )", cmd.c_str() ); + /* If the command has a slash, it must be a full path */ - if (cmd.find(L'/') != wcstring::npos) - { - if( waccess( cmd, X_OK )==0 ) - { - struct stat buff; - if(wstat( cmd, &buff )) - { - return false; - } - - if( S_ISREG(buff.st_mode) ) + if (cmd.find(L'/') != wcstring::npos) + { + if( waccess( cmd, X_OK )==0 ) + { + struct stat buff; + if(wstat( cmd, &buff )) + { + return false; + } + + if( S_ISREG(buff.st_mode) ) { - if (out_path) + if (out_path) out_path->assign(cmd); return true; } - else - { - errno = EACCES; - return false; - } - } - else - { - struct stat buff; - wstat( cmd, &buff ); - return false; - } - - } - else - { + else + { + errno = EACCES; + return false; + } + } + else + { + struct stat buff; + wstat( cmd, &buff ); + return false; + } + + } + else + { wcstring bin_path; - if (! bin_path_var.missing()) + if (! bin_path_var.missing()) { bin_path = bin_path_var; } else - { - if (contains( PREFIX L"/bin", L"/bin", L"/usr/bin" )) - { - bin_path = L"/bin" ARRAY_SEP_STR L"/usr/bin"; - } - else - { - bin_path = L"/bin" ARRAY_SEP_STR L"/usr/bin" ARRAY_SEP_STR PREFIX L"/bin"; - } - } - + { + if (contains( PREFIX L"/bin", L"/bin", L"/usr/bin" )) + { + bin_path = L"/bin" ARRAY_SEP_STR L"/usr/bin"; + } + else + { + bin_path = L"/bin" ARRAY_SEP_STR L"/usr/bin" ARRAY_SEP_STR PREFIX L"/bin"; + } + } + wcstring nxt_path; wcstokenizer tokenizer(bin_path, ARRAY_SEP_STR); - while (tokenizer.next(nxt_path)) - { + while (tokenizer.next(nxt_path)) + { if (nxt_path.empty()) continue; append_path_component(nxt_path, cmd); - if( waccess( nxt_path, X_OK )==0 ) - { - struct stat buff; - if( wstat( nxt_path, &buff )==-1 ) - { - if( errno != EACCES ) - { - wperror( L"stat" ); - } - continue; - } - if( S_ISREG(buff.st_mode) ) - { + if( waccess( nxt_path, X_OK )==0 ) + { + struct stat buff; + if( wstat( nxt_path, &buff )==-1 ) + { + if( errno != EACCES ) + { + wperror( L"stat" ); + } + continue; + } + if( S_ISREG(buff.st_mode) ) + { if (out_path) out_path->swap(nxt_path); - return true; - } - err = EACCES; - - } - else - { - switch( errno ) - { - case ENOENT: - case ENAMETOOLONG: - case EACCES: - case ENOTDIR: - break; - default: - { - debug( 1, + return true; + } + err = EACCES; + + } + else + { + switch( errno ) + { + case ENOENT: + case ENAMETOOLONG: + case EACCES: + case ENOTDIR: + break; + default: + { + debug( 1, MISSING_COMMAND_ERR_MSG, nxt_path.c_str() ); - wperror( L"access" ); - } - } - } - } - } - - errno = err; - return false; + wperror( L"access" ); + } + } + } + } + } + + errno = err; + return false; } bool path_get_path(const wcstring &cmd, wcstring *out_path, const env_vars_snapshot_t &vars) @@ -143,94 +143,94 @@ bool path_get_path(const wcstring &cmd, wcstring *out_path) bool path_get_cdpath_string(const wcstring &dir_str, wcstring &result, const env_var_t &cdpath) { - wchar_t *res = 0; - int err = ENOENT; + wchar_t *res = 0; + int err = ENOENT; bool success = false; - + const wchar_t *const dir = dir_str.c_str(); - if( dir[0] == L'/'|| (wcsncmp( dir, L"./", 2 )==0) ) - { - struct stat buf; - if( wstat( dir, &buf ) == 0 ) - { - if( S_ISDIR(buf.st_mode) ) - { - result = dir_str; + if( dir[0] == L'/'|| (wcsncmp( dir, L"./", 2 )==0) ) + { + struct stat buf; + if( wstat( dir, &buf ) == 0 ) + { + if( S_ISDIR(buf.st_mode) ) + { + result = dir_str; success = true; - } - else - { - err = ENOTDIR; - } - - } - } - else - { - + } + else + { + err = ENOTDIR; + } + + } + } + else + { + wcstring path = L"."; - + // Respect CDPATH env_var_t cdpath = env_get_string(L"CDPATH"); if (! cdpath.missing_or_empty()) { path = cdpath.c_str(); } - + wcstokenizer tokenizer(path, ARRAY_SEP_STR); wcstring next_path; while (tokenizer.next(next_path)) { expand_tilde(next_path); if (next_path.size() == 0) continue; - + wcstring whole_path = next_path; append_path_component(whole_path, dir); - - struct stat buf; - if( wstat( whole_path, &buf ) == 0 ) - { - if( S_ISDIR(buf.st_mode) ) - { + + struct stat buf; + if( wstat( whole_path, &buf ) == 0 ) + { + if( S_ISDIR(buf.st_mode) ) + { result = whole_path; success = true; - break; - } - else - { - err = ENOTDIR; - } - } - else - { - if( lwstat( whole_path, &buf ) == 0 ) - { - err = EROTTEN; - } - } + break; + } + else + { + err = ENOTDIR; + } + } + else + { + if( lwstat( whole_path, &buf ) == 0 ) + { + err = EROTTEN; + } + } } } - - - if( !success ) - { - errno = err; - } - - return res; + + + if( !success ) + { + errno = err; + } + + return res; } bool path_get_cdpath(const wcstring &dir, wcstring *out, const wchar_t *wd, const env_vars_snapshot_t &env_vars) { - int err = ENOENT; - if (dir.empty()) - return false; - + int err = ENOENT; + if (dir.empty()) + return false; + if (wd) { size_t len = wcslen(wd); assert(wd[len - 1] == L'/'); } - + wcstring_list_t paths; if (dir.at(0) == L'/') { /* Absolute path */ @@ -254,7 +254,7 @@ bool path_get_cdpath(const wcstring &dir, wcstring *out, const wchar_t *wd, cons wcstokenizer tokenizer(path, ARRAY_SEP_STR); while (tokenizer.next(nxt_path)) { - + if (nxt_path == L"." && wd != NULL) { // nxt_path is just '.', and we have a working directory, so use the wd instead // TODO: if nxt_path starts with ./ we need to replace the . with the wd @@ -262,39 +262,39 @@ bool path_get_cdpath(const wcstring &dir, wcstring *out, const wchar_t *wd, cons } expand_tilde(nxt_path); -// debug( 2, L"woot %ls\n", expanded_path.c_str() ); +// debug( 2, L"woot %ls\n", expanded_path.c_str() ); if (nxt_path.empty()) continue; - + wcstring whole_path = nxt_path; append_path_component(whole_path, dir); paths.push_back(whole_path); } } - + bool success = false; for (wcstring_list_t::const_iterator iter = paths.begin(); iter != paths.end(); ++iter) { - struct stat buf; + struct stat buf; const wcstring &dir = *iter; - if( wstat( dir, &buf ) == 0 ) - { - if( S_ISDIR(buf.st_mode) ) - { + if( wstat( dir, &buf ) == 0 ) + { + if( S_ISDIR(buf.st_mode) ) + { success = true; if (out) out->assign(dir); break; - } - else - { - err = ENOTDIR; - } - } + } + else + { + err = ENOTDIR; + } } - + } + if (! success) - errno = err; + errno = err; return success; } @@ -302,7 +302,7 @@ bool path_can_be_implicit_cd(const wcstring &path, wcstring *out_path, const wch { wcstring exp_path = path; expand_tilde(exp_path); - + bool result = false; if (string_prefixes_string(L"/", exp_path) || string_prefixes_string(L"./", exp_path) || @@ -317,41 +317,41 @@ bool path_can_be_implicit_cd(const wcstring &path, wcstring *out_path, const wch bool path_get_config(wcstring &path) { - int done = 0; - wcstring res; - - const env_var_t xdg_dir = env_get_string( L"XDG_CONFIG_HOME" ); - if( ! xdg_dir.missing() ) - { - res = xdg_dir + L"/fish"; - if( !create_directory( res ) ) - { - done = 1; - } - } - else - { - const env_var_t home = env_get_string( L"HOME" ); - if( ! home.missing() ) - { - res = home + L"/.config/fish"; - if( !create_directory( res ) ) - { - done = 1; - } - } - } - - if( done ) - { + int done = 0; + wcstring res; + + const env_var_t xdg_dir = env_get_string( L"XDG_CONFIG_HOME" ); + if( ! xdg_dir.missing() ) + { + res = xdg_dir + L"/fish"; + if( !create_directory( res ) ) + { + done = 1; + } + } + else + { + const env_var_t home = env_get_string( L"HOME" ); + if( ! home.missing() ) + { + res = home + L"/.config/fish"; + if( !create_directory( res ) ) + { + done = 1; + } + } + } + + if( done ) + { path = res; return true; - } - else - { - debug( 0, _(L"Unable to create a configuration directory for fish. Your personal settings will not be saved. Please set the $XDG_CONFIG_HOME variable to a directory where the current user has write access." )); - return false; - } + } + else + { + debug( 0, _(L"Unable to create a configuration directory for fish. Your personal settings will not be saved. Please set the $XDG_CONFIG_HOME variable to a directory where the current user has write access." )); + return false; + } } @@ -375,7 +375,7 @@ void path_make_canonical( wcstring &path ) size = path.size(); replace_all(path, L"//", L"/"); } while (path.size() != size); - + /* Remove trailing slashes, except don't remove the first one */ while (size-- > 1) { if (path.at(size) != L'/') @@ -410,7 +410,7 @@ bool path_is_valid(const wcstring &path, const wcstring &working_directory) bool paths_are_same_file(const wcstring &path1, const wcstring &path2) { if (path1 == path2) return true; - + struct stat s1, s2; if (wstat(path1, &s1) == 0 && wstat(path2, &s2) == 0) { return s1.st_ino == s2.st_ino && s1.st_dev == s2.st_dev; |