From 7262371cd77f1cf9fa3b55545d590140810611fe Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 30 Sep 2007 00:58:14 +0000 Subject: [PATCH] fix compilation in Unicode build (not sure if this fixes run-time behaviour though...) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48991 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- utils/HelpGen/src/HelpGen.cpp | 12 ++--- utils/HelpGen/src/cjparser.cpp | 80 ++++++++++++++++----------------- utils/HelpGen/src/cjparser.h | 6 +-- utils/HelpGen/src/docripper.cpp | 2 +- 4 files changed, 48 insertions(+), 52 deletions(-) diff --git a/utils/HelpGen/src/HelpGen.cpp b/utils/HelpGen/src/HelpGen.cpp index da84564d7b..dbb6b655b8 100644 --- a/utils/HelpGen/src/HelpGen.cpp +++ b/utils/HelpGen/src/HelpGen.cpp @@ -55,10 +55,6 @@ #pragma hdrstop #endif -#if wxUSE_UNICODE - #error "HelpGen doesn't build in Unicode mode" -#endif - #ifndef WX_PRECOMP #include "wx/string.h" #include "wx/log.h" @@ -82,10 +78,10 @@ // ----------------------------------------------------------------------------- // return the label for the given function name (i.e. argument of \label) -static wxString MakeLabel(const wxChar *classname, const wxChar *funcname = NULL); +static wxString MakeLabel(const char *classname, const char *funcname = NULL); // return the whole \helpref{arg}{arg_label} string -static wxString MakeHelpref(const wxChar *argument); +static wxString MakeHelpref(const char *argument); // [un]quote special TeX characters (in place) static void TeXFilter(wxString* str); @@ -385,7 +381,7 @@ protected: // returns the length of 'match' if the string 'str' starts with it or 0 // otherwise - static size_t TryMatch(const wxChar *str, const wxChar *match); + static size_t TryMatch(const char *str, const char *match); // skip spaces: returns pointer to first non space character (also // updates the value of m_line) @@ -1068,7 +1064,7 @@ void HelpGenVisitor::VisitClass( spClass& cl ) baseHeaderName.erase(0, 3); for ( index = 0; index < WXSIZEOF(headers); index++ ) { - if ( Stricmp(baseHeaderName, headers[index]) == 0 ) + if ( wxStricmp(baseHeaderName, headers[index]) == 0 ) break; } diff --git a/utils/HelpGen/src/cjparser.cpp b/utils/HelpGen/src/cjparser.cpp index 821023f397..46824e382a 100644 --- a/utils/HelpGen/src/cjparser.cpp +++ b/utils/HelpGen/src/cjparser.cpp @@ -38,7 +38,7 @@ // statics used by inline'ed C helper-functions static char* _gSrcStart = 0; static char* _gSrcEnd = 0; -static wxChar* _gLastSuppresedComment = 0; +static char* _gLastSuppresedComment = 0; static int _gLineNo = 0; // FOR NOW:: comments queue is static @@ -382,13 +382,13 @@ static inline bool get_next_token( char*& cur ) return true; } -static inline void skip_preprocessor_dir( wxChar*& cur ) +static inline void skip_preprocessor_dir( char*& cur ) { do { skip_to_eol(cur); - if ( *(cur-1) != _T('\\') ) + if ( *(cur-1) != '\\' ) break; if ( cur < _gSrcEnd ) @@ -899,8 +899,8 @@ static void arrange_indirection_tokens_between( wxString& type, { // TBD:: FIXME:: return value of operators ! - while ( identifier[0u] == _T('*') || - identifier[0u] == _T('&') + while ( identifier[0u] == '*' || + identifier[0u] == '&' ) { type += identifier[0u]; @@ -931,33 +931,33 @@ static bool is_keyword( char* cur ) return i == __gMultiLangMap.end() ? false : true; } -static inline void get_string_between( wxChar* start, wxChar* end, +static inline void get_string_between( char* start, char* end, wxString* pStr ) { char saved = *end; - *end = _T('\0'); + *end = '\0'; *pStr = start; *end = saved; } -static wxChar* set_comment_text( wxString& text, wxChar* start ) +static char* set_comment_text( wxString& text, char* start ) { - wxChar* end = start; + char* end = start; // to avoid poluting the queue with this comment _gLastSuppresedComment = start; skip_comments( end ); - if ( *(end-1) == _T('/') ) + if ( *(end-1) == '/' ) end -= 2; start += 2; // skip multiple leading '/''s or '*''s - while( *start == _T('/') && start < end ) ++start; - while( *start == _T('*') && start < end ) ++start; + while( *start == '/' && start < end ) ++start; + while( *start == '*' && start < end ) ++start; get_string_between( start, end, &text ); @@ -1064,13 +1064,13 @@ spFile* CJSourceParser::Parse( char* start, char* end ) continue; } - if ( *m_cur >= _T('0') && *m_cur <= _T('9') ) + if ( *m_cur >= '0' && *m_cur <= '9' ) { skip_token( m_cur ); continue; } - if ( *m_cur == _T('}') ) + if ( *m_cur == '}' ) { if ( mCurCtxType != SP_CTX_CLASS ) { @@ -1186,13 +1186,13 @@ spFile* CJSourceParser::Parse( char* start, char* end ) } while( 1 ); } -void CJSourceParser::AttachComments( spContext& ctx, wxChar* cur ) +void CJSourceParser::AttachComments( spContext& ctx, char* cur ) { if ( !mCommentsOn ) return; MCommentListT& lst = ctx.GetCommentList(); - wxChar* prevComEnd = 0; + char* prevComEnd = 0; int tmpLnNo; store_line_no( tmpLnNo ); @@ -1205,9 +1205,9 @@ void CJSourceParser::AttachComments( spContext& ctx, wxChar* cur ) lst.push_back( pComment ); // find the end of comment - wxChar* start = _gCommentsQueue[i]; + char* start = _gCommentsQueue[i]; - pComment->mIsMultiline = ( *(start+1) == _T('*') ); + pComment->mIsMultiline = ( *(start+1) == '*' ); // first comment in the queue and multiline // comments are always treated as a begining @@ -1226,7 +1226,7 @@ void CJSourceParser::AttachComments( spContext& ctx, wxChar* cur ) // find out wheather there is a new-line // between to adjecent comments - wxChar* prevLine = start; + char* prevLine = start; skip_to_prev_line(prevLine); if ( prevLine >= prevComEnd ) @@ -1249,7 +1249,7 @@ void CJSourceParser::AttachComments( spContext& ctx, wxChar* cur ) set_comment_text( pComment->m_Text, cur ); pComment->mStartsPar = 1; - pComment->mIsMultiline = ( *(cur+1) == _T('*') ); + pComment->mIsMultiline = ( *(cur+1) == '*' ); // mark this comment, so that it would not // get in the comments list of the next context @@ -1261,9 +1261,9 @@ void CJSourceParser::AttachComments( spContext& ctx, wxChar* cur ) clear_commets_queue(); } -void CJSourceParser::AddMacroNode( wxChar*& cur ) +void CJSourceParser::AddMacroNode( char*& cur ) { - wxChar* start = cur; + char* start = cur; int lineNo = get_line_no(); @@ -1290,9 +1290,9 @@ void CJSourceParser::AddMacroNode( wxChar*& cur ) // determine the type exactly and assign // a name to the context - if ( *start == _T('d') ) + if ( *start == 'd' ) { - if ( cmp_tokens_fast( start, _T("define"), 6 ) ) + if ( cmp_tokens_fast( start, "define", 6 ) ) { char* tok = start+6; @@ -1310,13 +1310,13 @@ void CJSourceParser::AddMacroNode( wxChar*& cur ) pPL->mDefType = SP_PREP_DEF_REDEFINE_SYMBOL; } } - else if ( *start == _T('i') ) + else if ( *start == 'i' ) { - if ( cmp_tokens_fast( start, _T("include"), 7 ) ) + if ( cmp_tokens_fast( start, "include", 7 ) ) { pPL->mDefType = SP_PREP_DEF_INCLUDE_FILE; } - else if ( *++start == _T('f') ) + else if ( *++start == 'f' ) { // either "#if" or "#ifdef" cur = start; @@ -1326,14 +1326,14 @@ void CJSourceParser::AddMacroNode( wxChar*& cur ) wxString condition = get_token_str( cur ); // currently, everything except '0' is true - if ( condition == _T("0") ) { + if ( condition == "0" ) { // skip until the following else or enif while ( cur < _gSrcEnd ) { skip_to_eol( cur ); skip_eol( cur ); get_next_token( cur ); - if ( *cur++ == _T('#') && *cur == _T('e') ) + if ( *cur++ == '#' && *cur == 'e' ) break; } } @@ -1341,7 +1341,7 @@ void CJSourceParser::AddMacroNode( wxChar*& cur ) // TODO parse the condition... } } - else if ( cmp_tokens_fast( start, _T("else"), 4 ) ) + else if ( cmp_tokens_fast( start, "else", 4 ) ) { // skip until "#endif" while ( cur < _gSrcEnd ) { @@ -1349,7 +1349,7 @@ void CJSourceParser::AddMacroNode( wxChar*& cur ) skip_eol( cur ); get_next_token( cur ); - if ( *cur++ == _T('#') && cmp_tokens_fast( cur, "endif", 5 ) ) + if ( *cur++ == '#' && cmp_tokens_fast( cur, "endif", 5 ) ) break; } } @@ -1876,7 +1876,7 @@ void CJSourceParser::ParseMemberVar( char*& cur ) // if comma, than variable list continues // otherwise the variable type reached - stop - if ( *cur == _T('=') ) + if ( *cur == '=' ) { // yes, we've mistaken, it was not a identifier, // but it's default value @@ -2189,10 +2189,10 @@ void CJSourceParser::AddClassNode( char*& cur ) clear_commets_queue(); } -void CJSourceParser::AddEnumNode( wxChar*& cur ) +void CJSourceParser::AddEnumNode( char*& cur ) { // now the cursor is at "enum" keyword - wxChar* start = cur; + char* start = cur; spEnumeration* pEnum = new spEnumeration(); mpCurCtx->AddMember( pEnum ); @@ -2226,13 +2226,13 @@ void CJSourceParser::AddEnumNode( wxChar*& cur ) clear_commets_queue(); } -void CJSourceParser::AddTypeDefNode( wxChar*& cur ) +void CJSourceParser::AddTypeDefNode( char*& cur ) { // now the cursor at the token next to "typedef" keyword if ( !get_next_token(cur) ) return; - wxChar* start = cur; + char* start = cur; spTypeDef* pTDef = new spTypeDef(); mpCurCtx->AddMember( pTDef ); @@ -2246,18 +2246,18 @@ void CJSourceParser::AddTypeDefNode( wxChar*& cur ) int tmpLnNo; store_line_no( tmpLnNo ); - wxChar* tok = cur-1; + char* tok = cur-1; skip_next_token_back( tok ); - wxChar* nameEnd = tok; + char* nameEnd = tok; skip_token_back( tok ); - wxChar* nameStart = tok; + char* nameStart = tok; skip_next_token_back( tok ); - wxChar* typeEnd = tok; + char* typeEnd = tok; // check if it's function prototype if ( *nameStart == ')' ) diff --git a/utils/HelpGen/src/cjparser.h b/utils/HelpGen/src/cjparser.h index 0151775c43..d8b8670c74 100644 --- a/utils/HelpGen/src/cjparser.h +++ b/utils/HelpGen/src/cjparser.h @@ -34,17 +34,17 @@ class CJSourceParser : public SourceParserBase { protected: // begining of the full-text area of the source file - wxChar* mpStart; + char* mpStart; // points to first character after the end // of teh full-text area - wxChar* mpEnd; + char* mpEnd; // current "privacy level" int mCurVis; // current parsing position int full-text area - wxChar* m_cur; + char* m_cur; // about the current class bool mIsVirtual; diff --git a/utils/HelpGen/src/docripper.cpp b/utils/HelpGen/src/docripper.cpp index bcb0e5d180..7248ea79c2 100644 --- a/utils/HelpGen/src/docripper.cpp +++ b/utils/HelpGen/src/docripper.cpp @@ -225,7 +225,7 @@ void RipperDocGen::AppendMulitilineStr( wxString& st, wxString& mlStr ) void RipperDocGen::AppendHighlightedSource( wxString& st, wxString source ) { // FIXME:: below should not be fixed :) - wxChar buf[1024*32]; + char buf[1024*32]; // DBG::: // ASSERT( source.length() + 1 < sizeof(buf) ); -- 2.45.2