diff options
Diffstat (limited to 'lib/rfsv.cc')
| -rw-r--r-- | lib/rfsv.cc | 45 | 
1 files changed, 25 insertions, 20 deletions
diff --git a/lib/rfsv.cc b/lib/rfsv.cc index cd13cb3..68635d5 100644 --- a/lib/rfsv.cc +++ b/lib/rfsv.cc @@ -116,30 +116,35 @@ Enum<rfsv::errs> rfsv::getStatus(void) {  	return status;  } -// beware this returns static data -const char * const rfsv:: +string rfsv:: +convertSlash(const string &name) +{ +	string tmp = ""; +	for (const char *p = name.c_str(); *p; p++) +		tmp += (*p == '/') ? '\\' : *p; +	return tmp; +} + +string rfsv::  attr2String(const long attr)  { -	static char buf[11]; -	buf[0] = ((attr & PSI_A_DIR) ? 'd' : '-'); -	buf[1] = ((attr & PSI_A_READ) ? 'r' : '-'); -	buf[2] = ((attr & PSI_A_RDONLY) ? '-' : 'w'); -	buf[3] = ((attr & PSI_A_HIDDEN) ? 'h' : '-'); -	buf[4] = ((attr & PSI_A_SYSTEM) ? 's' : '-'); -	buf[5] = ((attr & PSI_A_ARCHIVE) ? 'a' : '-'); -	buf[6] = ((attr & PSI_A_VOLUME) ? 'v' : '-'); +	string tmp = ""; +	tmp += ((attr & PSI_A_DIR) ? 'd' : '-'); +	tmp += ((attr & PSI_A_READ) ? 'r' : '-'); +	tmp += ((attr & PSI_A_RDONLY) ? '-' : 'w'); +	tmp += ((attr & PSI_A_HIDDEN) ? 'h' : '-'); +	tmp += ((attr & PSI_A_SYSTEM) ? 's' : '-'); +	tmp += ((attr & PSI_A_ARCHIVE) ? 'a' : '-'); +	tmp += ((attr & PSI_A_VOLUME) ? 'v' : '-');  	// EPOC -	buf[7] = ((attr & PSI_A_NORMAL) ? 'n' : '-'); -	buf[8] = ((attr & PSI_A_TEMP) ? 't' : '-'); -	buf[9] = ((attr & PSI_A_COMPRESSED) ? 'c' : '-'); - +	tmp += ((attr & PSI_A_NORMAL) ? 'n' : '-'); +	tmp += ((attr & PSI_A_TEMP) ? 't' : '-'); +	tmp += ((attr & PSI_A_COMPRESSED) ? 'c' : '-');  	// SIBO -	buf[7] = ((attr & PSI_A_EXEC) ? 'x' : buf[7]); -	buf[8] = ((attr & PSI_A_STREAM) ? 'b' : buf[8]); -	buf[9] = ((attr & PSI_A_TEXT) ? 't' : buf[9]); - -	buf[10] = '\0'; -	return (char *) (&buf); +	tmp[7] = ((attr & PSI_A_EXEC) ? 'x' : tmp[7]); +	tmp[8] = ((attr & PSI_A_STREAM) ? 'b' : tmp[8]); +	tmp[9] = ((attr & PSI_A_TEXT) ? 't' : tmp[9]); +	return tmp;  }  | 
