diff options
author | ridiculousfish <corydoras@ridiculousfish.com> | 2012-07-17 12:47:01 -0700 |
---|---|---|
committer | ridiculousfish <corydoras@ridiculousfish.com> | 2012-07-17 12:47:01 -0700 |
commit | d06d6c69645c4d355772cb19043469328c05ccc5 (patch) | |
tree | ba9f91943b94b9b59b3e781580eca5d3230ac493 /common.cpp | |
parent | 977a4477f646e344e66a7b0bc22e2e89b72d20db (diff) |
Various changes to reduce fish's compiled code size
OS X release build executable size dropped from 672k to 511k
Diffstat (limited to 'common.cpp')
-rw-r--r-- | common.cpp | 70 |
1 files changed, 38 insertions, 32 deletions
@@ -126,16 +126,6 @@ void show_stackframe() } } -wcstring_list_t completions_to_wcstring_list( const std::vector<completion_t> &list ) -{ - wcstring_list_t strings; - strings.reserve(list.size()); - for (std::vector<completion_t>::const_iterator iter = list.begin(); iter != list.end(); ++iter) { - strings.push_back(iter->completion); - } - return strings; -} - int fgetws2(wcstring *s, FILE *f) { int i=0; @@ -240,10 +230,6 @@ void sort_strings( std::vector<wcstring> &strings) std::sort(strings.begin(), strings.end(), string_sort_predicate); } -void sort_completions( std::vector<completion_t> &completions) -{ - std::sort(completions.begin(), completions.end()); -} wchar_t *str2wcs( const char *in ) { wchar_t *out; @@ -693,34 +679,54 @@ ssize_t read_loop(int fd, void *buff, size_t count) return result; } -void debug( int level, const wchar_t *msg, ... ) +static bool should_debug(int level) { - /* Hack to not print error messages in the tests */ - if ( program_name && ! wcscmp(program_name, L"(ignore)") ) - return; - va_list va; - - wcstring sb; - - int errno_old = errno; - if( level > debug_level ) - return; + return false; - CHECK( msg, ); - - sb = format_string(L"%ls: ", program_name); - va_start(va, msg); - sb.append(vformat_string(msg, va)); - va_end(va); + /* Hack to not print error messages in the tests */ + if ( program_name && ! wcscmp(program_name, L"(ignore)") ) + return false; + + return true; +} +static void debug_shared( const wcstring &msg ) +{ + const wcstring sb = wcstring(program_name) + L": " + msg; wcstring sb2; write_screen( sb, sb2 ); fwprintf( stderr, L"%ls", sb2.c_str() ); +} + +void debug( int level, const wchar_t *msg, ... ) +{ + if (! should_debug(level)) + return; + int errno_old = errno; + va_list va; + va_start(va, msg); + wcstring local_msg = vformat_string(msg, va); + va_end(va); + debug_shared(local_msg); + errno = errno_old; +} - errno = errno_old; +void debug( int level, const char *msg, ... ) +{ + if (! should_debug(level)) + return; + int errno_old = errno; + char local_msg[512]; + va_list va; + va_start(va, msg); + vsnprintf(local_msg, sizeof local_msg, msg, va); + va_end(va); + debug_shared(str2wcstring(local_msg)); + errno = errno_old; } + void debug_safe(int level, const char *msg, const char *param1, const char *param2, const char *param3, const char *param4, const char *param5, const char *param6, const char *param7, const char *param8, const char *param9, const char *param10, const char *param11, const char *param12) { const char * const params[] = {param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12}; |