From: <laz...@us...> - 2004-02-28 07:56:53
|
Update of /cvsroot/rtk/rtk/src/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17692/src/core Modified Files: error.cpp rchar.cpp Log Message: - Fixed string stuff for W32..... - printf convert defined as macro and uses alloca now PLEASE do not ANY GNU GCC specific code, e.g. in test.h PRINTF macro.. There's no way in this world compile vector test.. So, I changed PRINTF macro to what MS VCPP support, though no idea about gcc... Index: error.cpp =================================================================== RCS file: /cvsroot/rtk/rtk/src/core/error.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** error.cpp 18 Jan 2004 20:17:07 -0000 1.2 --- error.cpp 28 Feb 2004 07:39:44 -0000 1.3 *************** *** 4,14 **** static const RCHAR * error_names[] = { ! _NOP(_R("No Error")), #if 1 # define INC_ERROR_CODES 1 ! # define ERROR_CODE0(name) _NOP( _R(#name) ), ! # define ERROR_CODE1(name,type) _NOP( _R(#type) _R(":") _R(#name) ), # include <rtk/error_codes.h> --- 4,14 ---- static const RCHAR * error_names[] = { ! _R("No Error"), #if 1 # define INC_ERROR_CODES 1 ! # define ERROR_CODE0(name) _R(#name), ! # define ERROR_CODE1(name,type) _R(#type) _R(":") _R(#name), # include <rtk/error_codes.h> *************** *** 19,24 **** #else ! _NOP_(_R("Out of memory")), ! _NOP_(_R("File not found")), #endif }; --- 19,24 ---- #else ! _R("Out of memory"), ! _R("File not found"), #endif }; *************** *** 30,34 **** if (code < 0) code = -code; if (code >= error_count) ! return _TR(_R("Unknown error")); return error_names[code]; } --- 30,34 ---- if (code < 0) code = -code; if (code >= error_count) ! return _R("Unknown error"); return error_names[code]; } Index: rchar.cpp =================================================================== RCS file: /cvsroot/rtk/rtk/src/core/rchar.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** rchar.cpp 26 Feb 2004 20:02:16 -0000 1.2 --- rchar.cpp 28 Feb 2004 07:39:44 -0000 1.3 *************** *** 4,7 **** --- 4,11 ---- #include <stdlib.h> + #ifdef _RTK_WIN32_ + #include <malloc.h> + #endif + namespace Rtk { *************** *** 11,15 **** RCHAR* ptr = ret; while (*str) { ! *ptr++ = rtolower(*str++); } return ret; --- 15,19 ---- RCHAR* ptr = ret; while (*str) { ! *ptr++ = rtolower(*str++); } return ret; *************** *** 21,45 **** RCHAR* ptr = ret; while (*str) { ! *ptr++ = rtoupper(*str++); } return ret; } ! #if UNICODE ! static RCHAR* convert(const RCHAR* fmt) ! { ! RCHAR* fmt2 = rstrdup(fmt); ! RCHAR* ptr = fmt2; ! while (*ptr) { ! if (ptr[0] == '%' && ptr[1] == 's') { ! ptr[1] = 'S'; ! ptr+=2; ! } else { ! ptr++; ! } ! } ! return fmt2; ! } // printf --- 25,50 ---- RCHAR* ptr = ret; while (*str) { ! *ptr++ = rtoupper(*str++); } return ret; } ! #if !defined(_RTK_WIN32_) && defined(UNICODE) ! #define CVT(fmt_len) \ ! RCHAR *fmt2 = (RCHAR*)alloca(fmt_len); \ ! const RCHAR *s_ptr = fmt; RCHAR *d_ptr = fmt2; \ ! bool check = false; \ ! while (*s_ptr) { \ ! if(check && *s_ptr=='s') { \ ! *d_ptr++ = 'S'; \ ! s_ptr++; \ ! check = false; \ ! } else { \ ! if(*s_ptr=='%') check = true; \ ! else check = false; \ ! *d_ptr++ = *s_ptr++; \ ! } \ ! } fmt = fmt2 // printf *************** *** 47,70 **** int rvsnprintf(RCHAR* dst, int max_len, const RCHAR* fmt, va_list args) { ! RCHAR* fmt2 = convert(fmt); ! int ret = vswprintf(dst, max_len, fmt2, args); ! free(fmt2); ! return ret; } int rvfprintf(FILE* f, const RCHAR* fmt, va_list args) { ! RCHAR* fmt2 = convert(fmt); ! int ret = vfwprintf(f, fmt2, args); ! free(fmt2); ! return ret; } int rvprintf(const RCHAR* fmt, va_list args) { ! RCHAR* fmt2 = convert(fmt); ! int ret = vfwprintf(stdout, fmt2, args); ! free(fmt2); ! return ret; } --- 52,69 ---- int rvsnprintf(RCHAR* dst, int max_len, const RCHAR* fmt, va_list args) { ! CVT(max_len); ! return vsnwprintf(dst, max_len, fmt, args); } int rvfprintf(FILE* f, const RCHAR* fmt, va_list args) { ! CVT(rstrlen(fmt)); ! return vfwprintf(f, fmt, args); } int rvprintf(const RCHAR* fmt, va_list args) { ! CVT(rstrlen(fmt)); ! return vfwprintf(stdout, fmt, args); } *************** *** 100,123 **** int rvsscanf(const RCHAR* src, const RCHAR* fmt, va_list args) { ! RCHAR* fmt2 = convert(fmt); ! int ret = vswscanf(src, fmt2, args); ! free(fmt2); ! return ret; } int rvfscanf(FILE* f, const RCHAR* fmt, va_list args) { ! RCHAR* fmt2 = convert(fmt); ! int ret = vfwscanf(f, fmt2, args); ! free(fmt2); ! return ret; } int rvscanf(const RCHAR* fmt, va_list args) { ! RCHAR* fmt2 = convert(fmt); ! int ret = vfwscanf(stdin, fmt2, args); ! free(fmt2); ! return ret; } --- 99,116 ---- int rvsscanf(const RCHAR* src, const RCHAR* fmt, va_list args) { ! CVT(rstrlen(fmt)); ! return vswscanf(src, fmt2, args); } int rvfscanf(FILE* f, const RCHAR* fmt, va_list args) { ! CVT(rstrlen(fmt)); ! return vfwscanf(f, fmt2, args); } int rvscanf(const RCHAR* fmt, va_list args) { ! CVT(rstrlen(fmt)); ! return vfwscanf(stdin, fmt2, args); } *************** *** 149,154 **** } - #else /* !UNICODE */ - #endif /* !UNICODE */ --- 142,145 ---- |