Modified most functions in wutil.h/.cpp to use wcstring instead of wchar_t*, removing calls to c_str() while calling these functions in other files.

This commit is contained in:
Siteshwar Vashisht 2012-02-18 22:41:22 +05:30
parent c0ed169fdc
commit c9f4e91df8
9 changed files with 51 additions and 51 deletions

View file

@ -20,11 +20,11 @@ static const int kAutoloadStalenessInterval = 15;
file_access_attempt_t access_file(const wcstring &path, int mode) { file_access_attempt_t access_file(const wcstring &path, int mode) {
file_access_attempt_t result = {0}; file_access_attempt_t result = {0};
struct stat statbuf; struct stat statbuf;
if (wstat(path.c_str(), &statbuf)) { if (wstat(path, &statbuf)) {
result.error = errno; result.error = errno;
} else { } else {
result.mod_time = statbuf.st_mtime; result.mod_time = statbuf.st_mtime;
if (waccess(path.c_str(), mode)) { if (waccess(path, mode)) {
result.error = errno; result.error = errno;
} else { } else {
result.accessible = true; result.accessible = true;

View file

@ -1781,7 +1781,7 @@ bool string_prefixes_string(const wcstring &proposed_prefix, const wcstring &val
return prefix_size <= value.size() && value.compare(0, prefix_size, proposed_prefix) == 0; return prefix_size <= value.size() && value.compare(0, prefix_size, proposed_prefix) == 0;
} }
int create_directory( const wchar_t *d ) int create_directory( const wcstring &d )
{ {
int ok = 0; int ok = 0;
struct stat buf; struct stat buf;
@ -1805,7 +1805,7 @@ int create_directory( const wchar_t *d )
if( errno == ENOENT ) if( errno == ENOENT )
{ {
wcstring dir = wdirname(d); wcstring dir = wdirname(d);
if( !create_directory( dir.c_str() ) ) if( !create_directory( dir ) )
{ {
if( !wmkdir( d, 0700 ) ) if( !wmkdir( d, 0700 ) )
{ {

View file

@ -559,7 +559,7 @@ void tokenize_variable_array( const wcstring &val, wcstring_list_t &out);
\return 0 if, at the time of function return the directory exists, -1 otherwise. \return 0 if, at the time of function return the directory exists, -1 otherwise.
*/ */
int create_directory( const wchar_t *d ); int create_directory( const wcstring &d );
/** /**
Print a short message about how to file a bug report to stderr Print a short message about how to file a bug report to stderr

View file

@ -128,7 +128,7 @@ static bool is_potential_path( const wcstring &cpath )
must_be_dir = cleaned_path[cleaned_path.length()-1] == L'/'; must_be_dir = cleaned_path[cleaned_path.length()-1] == L'/';
if( must_be_dir ) if( must_be_dir )
{ {
dir = wopendir( cleaned_path.c_str() ); dir = wopendir( cleaned_path );
res = !!dir; res = !!dir;
if( dir ) if( dir )
{ {
@ -144,12 +144,12 @@ static bool is_potential_path( const wcstring &cpath )
{ {
res = true; res = true;
} }
else if( (dir = wopendir( dir_name.c_str() )) ) else if( (dir = wopendir( dir_name)) )
{ {
wcstring ent; wcstring ent;
while (wreaddir(dir, ent)) while (wreaddir(dir, ent))
{ {
if( wcsncmp( ent.c_str(), base_name.c_str(), base_name.length() ) == 0 ) if( ent == base_name )
{ {
res = true; res = true;
break; break;
@ -802,7 +802,7 @@ static void tokenize( const wchar_t * const buff, int * const color, const int p
if( slash_idx != wcstring::npos ) if( slash_idx != wcstring::npos )
{ {
dir.resize(slash_idx); dir.resize(slash_idx);
if( wstat( dir.c_str(), &buff ) == -1 ) if( wstat( dir, &buff ) == -1 )
{ {
color[ tok_get_pos( &tok ) ] = HIGHLIGHT_ERROR; color[ tok_get_pos( &tok ) ] = HIGHLIGHT_ERROR;
if( error ) if( error )

View file

@ -409,7 +409,7 @@ void history_t::load_old_if_needed(void)
if( ! filename.empty() ) if( ! filename.empty() )
{ {
if( ( fd = wopen( filename.c_str(), O_RDONLY ) ) > 0 ) if( ( fd = wopen( filename, O_RDONLY ) ) > 0 )
{ {
off_t len = lseek( fd, 0, SEEK_END ); off_t len = lseek( fd, 0, SEEK_END );
if( len != (off_t)-1) if( len != (off_t)-1)
@ -595,7 +595,7 @@ void history_t::save_internal()
if( ! tmp_name.empty() ) if( ! tmp_name.empty() )
{ {
FILE *out; FILE *out;
if( (out=wfopen( tmp_name.c_str(), "w" ) ) ) if( (out=wfopen( tmp_name, "w" ) ) )
{ {
/* Load old */ /* Load old */
@ -639,7 +639,7 @@ void history_t::save_internal()
else else
{ {
wcstring new_name = history_filename(name, wcstring()); wcstring new_name = history_filename(name, wcstring());
wrename(tmp_name.c_str(), new_name.c_str()); wrename(tmp_name, new_name);
} }
} }
} }
@ -664,7 +664,7 @@ void history_t::clear(void) {
old_item_offsets.clear(); old_item_offsets.clear();
wcstring filename = history_filename(name, L""); wcstring filename = history_filename(name, L"");
if (! filename.empty()) if (! filename.empty())
wunlink(filename.c_str()); wunlink(filename);
this->clear_file_state(); this->clear_file_state();
} }
@ -710,7 +710,7 @@ int file_detection_context_t::perform_file_detection(bool test_all) {
if (path.at(0) != '/') { if (path.at(0) != '/') {
path.insert(0, working_directory); path.insert(0, working_directory);
} }
path_is_valid = (0 == waccess(path.c_str(), F_OK)); path_is_valid = (0 == waccess(path, F_OK));
} }

View file

@ -81,10 +81,10 @@ bool path_get_path_string(const wcstring &cmd_str, wcstring &output, const env_v
if (path_len == 0) continue; if (path_len == 0) continue;
append_path_component(new_cmd, cmd_str); append_path_component(new_cmd, cmd_str);
if( waccess( new_cmd.c_str(), X_OK )==0 ) if( waccess( new_cmd, X_OK )==0 )
{ {
struct stat buff; struct stat buff;
if( wstat( new_cmd.c_str(), &buff )==-1 ) if( wstat( new_cmd, &buff )==-1 )
{ {
if( errno != EACCES ) if( errno != EACCES )
{ {

View file

@ -593,7 +593,7 @@ static void wildcard_completion_allocate( std::vector<completion_t> &list,
non-symlinks by first doing an lstat, and if the file is not a non-symlinks by first doing an lstat, and if the file is not a
link we copy the results over to the regular stat buffer. link we copy the results over to the regular stat buffer.
*/ */
if( ( lstat_res = lwstat( fullname.c_str(), &lbuf ) ) ) if( ( lstat_res = lwstat( fullname, &lbuf ) ) )
{ {
sz=-1; sz=-1;
stat_res = lstat_res; stat_res = lstat_res;
@ -603,7 +603,7 @@ static void wildcard_completion_allocate( std::vector<completion_t> &list,
if( S_ISLNK(lbuf.st_mode)) if( S_ISLNK(lbuf.st_mode))
{ {
if( ( stat_res = wstat( fullname.c_str(), &buf ) ) ) if( ( stat_res = wstat( fullname, &buf ) ) )
{ {
sz=-1; sz=-1;
} }
@ -863,7 +863,7 @@ static int wildcard_expand_internal( const wchar_t *wc,
will be added in the next pass. will be added in the next pass.
*/ */
struct stat buf; struct stat buf;
if( !wstat( long_name.c_str(), &buf ) ) if( !wstat( long_name, &buf ) )
{ {
skip = S_ISDIR(buf.st_mode); skip = S_ISDIR(buf.st_mode);
} }

View file

@ -118,25 +118,25 @@ wchar_t *wgetcwd( wchar_t *buff, size_t sz )
return ret; return ret;
} }
int wchdir( const wchar_t * dir ) int wchdir( const wcstring &dir )
{ {
cstring tmp = wcs2string(dir); cstring tmp = wcs2string(dir);
return chdir( tmp.c_str() ); return chdir( tmp.c_str() );
} }
FILE *wfopen(const wchar_t *path, const char *mode) FILE *wfopen(const wcstring &path, const char *mode)
{ {
cstring tmp = wcs2string(path); cstring tmp = wcs2string(path);
return fopen(tmp.c_str(), mode); return fopen(tmp.c_str(), mode);
} }
FILE *wfreopen(const wchar_t *path, const char *mode, FILE *stream) FILE *wfreopen(const wcstring &path, const char *mode, FILE *stream)
{ {
cstring tmp = wcs2string(path); cstring tmp = wcs2string(path);
return freopen(tmp.c_str(), mode, stream); return freopen(tmp.c_str(), mode, stream);
} }
int wopen(const wchar_t *pathname, int flags, ...) int wopen(const wcstring &pathname, int flags, ...)
{ {
cstring tmp = wcs2string(pathname); cstring tmp = wcs2string(pathname);
int res=-1; int res=-1;
@ -154,25 +154,25 @@ int wopen(const wchar_t *pathname, int flags, ...)
return res; return res;
} }
int wcreat(const wchar_t *pathname, mode_t mode) int wcreat(const wcstring &pathname, mode_t mode)
{ {
cstring tmp = wcs2string(pathname); cstring tmp = wcs2string(pathname);
return creat(tmp.c_str(), mode); return creat(tmp.c_str(), mode);
} }
DIR *wopendir(const wchar_t *name) DIR *wopendir(const wcstring &name)
{ {
cstring tmp = wcs2string(name); cstring tmp = wcs2string(name);
return opendir(tmp.c_str()); return opendir(tmp.c_str());
} }
int wstat(const wchar_t *file_name, struct stat *buf) int wstat(const wcstring &file_name, struct stat *buf)
{ {
cstring tmp = wcs2string(file_name); cstring tmp = wcs2string(file_name);
return stat(tmp.c_str(), buf); return stat(tmp.c_str(), buf);
} }
int lwstat(const wchar_t *file_name, struct stat *buf) int lwstat(const wcstring &file_name, struct stat *buf)
{ {
// fprintf(stderr, "%s\n", __PRETTY_FUNCTION__); // fprintf(stderr, "%s\n", __PRETTY_FUNCTION__);
cstring tmp = wcs2string(file_name); cstring tmp = wcs2string(file_name);
@ -180,31 +180,31 @@ int lwstat(const wchar_t *file_name, struct stat *buf)
} }
int waccess(const wchar_t *file_name, int mode) int waccess(const wcstring &file_name, int mode)
{ {
cstring tmp = wcs2string(file_name); cstring tmp = wcs2string(file_name);
return access(tmp.c_str(), mode); return access(tmp.c_str(), mode);
} }
int wunlink(const wchar_t *file_name) int wunlink(const wcstring &file_name)
{ {
cstring tmp = wcs2string(file_name); cstring tmp = wcs2string(file_name);
return unlink(tmp.c_str()); return unlink(tmp.c_str());
} }
void wperror(const wchar_t *s) void wperror(const wcstring &s)
{ {
int e = errno; int e = errno;
if( s != 0 ) if( !s.empty() )
{ {
fwprintf( stderr, L"%ls: ", s ); fwprintf( stderr, L"%ls: ", s.c_str() );
} }
fwprintf( stderr, L"%s\n", strerror( e ) ); fwprintf( stderr, L"%s\n", strerror( e ) );
} }
#ifdef HAVE_REALPATH_NULL #ifdef HAVE_REALPATH_NULL
wchar_t *wrealpath(const wchar_t *pathname, wchar_t *resolved_path) wchar_t *wrealpath(const wcstring &pathname, wchar_t *resolved_path)
{ {
cstring tmp = wcs2string(pathname); cstring tmp = wcs2string(pathname);
char *narrow_res = realpath( tmp.c_str(), 0 ); char *narrow_res = realpath( tmp.c_str(), 0 );
@ -346,7 +346,7 @@ wcstring wgettext2(const wcstring &in) {
return result; return result;
} }
const wchar_t *wgetenv( const wchar_t *name ) const wchar_t *wgetenv( const wcstring &name )
{ {
ASSERT_IS_MAIN_THREAD(); ASSERT_IS_MAIN_THREAD();
cstring name_narrow = wcs2string(name); cstring name_narrow = wcs2string(name);
@ -361,13 +361,13 @@ const wchar_t *wgetenv( const wchar_t *name )
} }
int wmkdir( const wchar_t *name, int mode ) int wmkdir( const wcstring &name, int mode )
{ {
cstring name_narrow = wcs2string(name); cstring name_narrow = wcs2string(name);
return mkdir( name_narrow.c_str(), mode ); return mkdir( name_narrow.c_str(), mode );
} }
int wrename( const wchar_t *old, const wchar_t *newv ) int wrename( const wcstring &old, const wcstring &newv )
{ {
cstring old_narrow = wcs2string(old); cstring old_narrow = wcs2string(old);
cstring new_narrow =wcs2string(newv); cstring new_narrow =wcs2string(newv);

30
wutil.h
View file

@ -44,53 +44,53 @@ void wutil_destroy();
/** /**
Wide character version of fopen(). Wide character version of fopen().
*/ */
FILE *wfopen(const wchar_t *path, const char *mode); FILE *wfopen(const wcstring &path, const char *mode);
/** /**
Wide character version of freopen(). Wide character version of freopen().
*/ */
FILE *wfreopen(const wchar_t *path, const char *mode, FILE *stream); FILE *wfreopen(const wcstring &path, const char *mode, FILE *stream);
/** /**
Wide character version of open(). Wide character version of open().
*/ */
int wopen(const wchar_t *pathname, int flags, ...); int wopen(const wcstring &pathname, int flags, ...);
/** /**
Wide character version of creat(). Wide character version of creat().
*/ */
int wcreat(const wchar_t *pathname, mode_t mode); int wcreat(const wcstring &pathname, mode_t mode);
/** /**
Wide character version of opendir(). Wide character version of opendir().
*/ */
DIR *wopendir(const wchar_t *name); DIR *wopendir(const wcstring &name);
/** /**
Wide character version of stat(). Wide character version of stat().
*/ */
int wstat(const wchar_t *file_name, struct stat *buf); int wstat(const wcstring &file_name, struct stat *buf);
/** /**
Wide character version of lstat(). Wide character version of lstat().
*/ */
int lwstat(const wchar_t *file_name, struct stat *buf); int lwstat(const wcstring &file_name, struct stat *buf);
/** /**
Wide character version of access(). Wide character version of access().
*/ */
int waccess(const wchar_t *pathname, int mode); int waccess(const wcstring &pathname, int mode);
/** /**
Wide character version of unlink(). Wide character version of unlink().
*/ */
int wunlink(const wchar_t *pathname); int wunlink(const wcstring &pathname);
/** /**
Wide character version of perror(). Wide character version of perror().
*/ */
void wperror(const wchar_t *s); void wperror(const wcstring &s);
/** /**
Wide character version of getcwd(). Wide character version of getcwd().
@ -100,7 +100,7 @@ wchar_t *wgetcwd( wchar_t *buff, size_t sz );
/** /**
Wide character version of chdir() Wide character version of chdir()
*/ */
int wchdir( const wchar_t * dir ); int wchdir( const wcstring &dir );
/** /**
Wide character version of realpath function. Just like the GNU Wide character version of realpath function. Just like the GNU
@ -108,7 +108,7 @@ int wchdir( const wchar_t * dir );
second argument, in which case the result will be allocated using second argument, in which case the result will be allocated using
malloc, and must be free'd by the user. malloc, and must be free'd by the user.
*/ */
wchar_t *wrealpath(const wchar_t *pathname, wchar_t *resolved_path); wchar_t *wrealpath(const wcstring &pathname, wchar_t *resolved_path);
/** /**
Wide character version of readdir() Wide character version of readdir()
@ -139,16 +139,16 @@ wcstring wgettext2(const wcstring &in);
/** /**
Wide character version of getenv Wide character version of getenv
*/ */
const wchar_t *wgetenv( const wchar_t *name ); const wchar_t *wgetenv( const wcstring &name );
/** /**
Wide character version of mkdir Wide character version of mkdir
*/ */
int wmkdir( const wchar_t *dir, int mode ); int wmkdir( const wcstring &dir, int mode );
/** /**
Wide character version of rename Wide character version of rename
*/ */
int wrename( const wchar_t *oldName, const wchar_t *newName ); int wrename( const wcstring &oldName, const wcstring &newName );
#endif #endif