mirror of
https://github.com/fish-shell/fish-shell
synced 2025-01-14 05:53:59 +00:00
We had identical format_val and to_string; standardize on to_string
This commit is contained in:
parent
82a93d8406
commit
230fb921ec
3 changed files with 32 additions and 41 deletions
63
common.h
63
common.h
|
@ -281,6 +281,19 @@ void assert_is_locked(void *mutex, const char *who);
|
||||||
*/
|
*/
|
||||||
char *wcs2str_internal( const wchar_t *in, char *out );
|
char *wcs2str_internal( const wchar_t *in, char *out );
|
||||||
|
|
||||||
|
/** Format the specified size (in bytes, kilobytes, etc.) into the specified stringbuffer. */
|
||||||
|
wcstring format_size(long long sz);
|
||||||
|
|
||||||
|
/** Version of format_size that does not allocate memory. */
|
||||||
|
void format_size_safe(char buff[128], unsigned long long sz);
|
||||||
|
|
||||||
|
/** Our crappier versions of debug which is guaranteed to not allocate any memory, or do anything other than call write(). This is useful after a call to fork() with threads. */
|
||||||
|
void debug_safe(int level, const char *msg, const char *param1 = NULL, const char *param2 = NULL, const char *param3 = NULL);
|
||||||
|
|
||||||
|
/** Writes out a long safely */
|
||||||
|
void format_long_safe(char buff[128], long val);
|
||||||
|
void format_long_safe(wchar_t buff[128], long val);
|
||||||
|
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
T from_string(const wcstring &x) {
|
T from_string(const wcstring &x) {
|
||||||
|
@ -297,6 +310,20 @@ wcstring to_string(const T &x) {
|
||||||
return stream.str();
|
return stream.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* wstringstream is a huge memory pig. Let's provide some specializations where we can. */
|
||||||
|
template<>
|
||||||
|
inline wcstring to_string(const long &x) {
|
||||||
|
wchar_t buff[128];
|
||||||
|
format_long_safe(buff, x);
|
||||||
|
return wcstring(buff);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<>
|
||||||
|
inline wcstring to_string(const int &x) {
|
||||||
|
return to_string(static_cast<long>(x));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Helper class for managing a null-terminated array of null-terminated strings (of some char type) */
|
/* Helper class for managing a null-terminated array of null-terminated strings (of some char type) */
|
||||||
template <typename CharType_t>
|
template <typename CharType_t>
|
||||||
class null_terminated_array_t {
|
class null_terminated_array_t {
|
||||||
|
@ -658,42 +685,6 @@ int create_directory( const wcstring &d );
|
||||||
*/
|
*/
|
||||||
void bugreport();
|
void bugreport();
|
||||||
|
|
||||||
/** Format the specified size (in bytes, kilobytes, etc.) into the specified stringbuffer. */
|
|
||||||
wcstring format_size(long long sz);
|
|
||||||
|
|
||||||
/** Version of format_size that does not allocate memory. */
|
|
||||||
void format_size_safe(char buff[128], unsigned long long sz);
|
|
||||||
|
|
||||||
/** Our crappier versions of debug which is guaranteed to not allocate any memory, or do anything other than call write(). This is useful after a call to fork() with threads. */
|
|
||||||
void debug_safe(int level, const char *msg, const char *param1 = NULL, const char *param2 = NULL, const char *param3 = NULL);
|
|
||||||
|
|
||||||
/** Writes out a long safely */
|
|
||||||
void format_long_safe(char buff[128], long val);
|
|
||||||
void format_long_safe(wchar_t buff[128], long val);
|
|
||||||
|
|
||||||
|
|
||||||
/** Converts some type to a wstring. */
|
|
||||||
template<typename T>
|
|
||||||
inline wcstring format_val(T x) {
|
|
||||||
std::wstringstream stream;
|
|
||||||
stream << x;
|
|
||||||
return stream.str();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* wstringstream is a huge memory pig. Let's provide some specializations where we can. */
|
|
||||||
template<>
|
|
||||||
inline wcstring format_val(long x) {
|
|
||||||
wchar_t buff[128];
|
|
||||||
format_long_safe(buff, x);
|
|
||||||
return wcstring(buff);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<>
|
|
||||||
inline wcstring format_val(int x) {
|
|
||||||
return format_val(static_cast<long>(x));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Return the number of seconds from the UNIX epoch, with subsecond
|
Return the number of seconds from the UNIX epoch, with subsecond
|
||||||
precision. This function uses the gettimeofday function, and will
|
precision. This function uses the gettimeofday function, and will
|
||||||
|
|
6
env.cpp
6
env.cpp
|
@ -1103,15 +1103,15 @@ env_var_t env_get_string( const wcstring &key )
|
||||||
}
|
}
|
||||||
else if( key == L"COLUMNS" )
|
else if( key == L"COLUMNS" )
|
||||||
{
|
{
|
||||||
return format_val((long)common_get_width());
|
return to_string((long)common_get_width());
|
||||||
}
|
}
|
||||||
else if( key == L"LINES" )
|
else if( key == L"LINES" )
|
||||||
{
|
{
|
||||||
return format_val((long)common_get_width());
|
return to_string((long)common_get_width());
|
||||||
}
|
}
|
||||||
else if( key == L"status" )
|
else if( key == L"status" )
|
||||||
{
|
{
|
||||||
return format_val((long)proc_get_last_status());
|
return to_string((long)proc_get_last_status());
|
||||||
}
|
}
|
||||||
else if( key == L"umask" )
|
else if( key == L"umask" )
|
||||||
{
|
{
|
||||||
|
|
4
proc.cpp
4
proc.cpp
|
@ -541,8 +541,8 @@ void proc_fire_event( const wchar_t *msg, int type, pid_t pid, int status )
|
||||||
event.param1.pid = pid;
|
event.param1.pid = pid;
|
||||||
|
|
||||||
event.arguments->push_back(msg);
|
event.arguments->push_back(msg);
|
||||||
event.arguments->push_back(format_val<int>(pid));
|
event.arguments->push_back(to_string<int>(pid));
|
||||||
event.arguments->push_back(format_val<int>(status));
|
event.arguments->push_back(to_string<int>(status));
|
||||||
event_fire( &event );
|
event_fire( &event );
|
||||||
event.arguments->resize(0);
|
event.arguments->resize(0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue