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
This commit is contained in:
Vadim Zeitlin 2007-09-30 00:58:14 +00:00
parent 09e89ab1b6
commit 7262371cd7
4 changed files with 48 additions and 52 deletions

View File

@ -55,10 +55,6 @@
#pragma hdrstop #pragma hdrstop
#endif #endif
#if wxUSE_UNICODE
#error "HelpGen doesn't build in Unicode mode"
#endif
#ifndef WX_PRECOMP #ifndef WX_PRECOMP
#include "wx/string.h" #include "wx/string.h"
#include "wx/log.h" #include "wx/log.h"
@ -82,10 +78,10 @@
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// return the label for the given function name (i.e. argument of \label) // 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 // 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) // [un]quote special TeX characters (in place)
static void TeXFilter(wxString* str); static void TeXFilter(wxString* str);
@ -385,7 +381,7 @@ protected:
// returns the length of 'match' if the string 'str' starts with it or 0 // returns the length of 'match' if the string 'str' starts with it or 0
// otherwise // 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 // skip spaces: returns pointer to first non space character (also
// updates the value of m_line) // updates the value of m_line)
@ -1068,7 +1064,7 @@ void HelpGenVisitor::VisitClass( spClass& cl )
baseHeaderName.erase(0, 3); baseHeaderName.erase(0, 3);
for ( index = 0; index < WXSIZEOF(headers); index++ ) { for ( index = 0; index < WXSIZEOF(headers); index++ ) {
if ( Stricmp(baseHeaderName, headers[index]) == 0 ) if ( wxStricmp(baseHeaderName, headers[index]) == 0 )
break; break;
} }

View File

@ -38,7 +38,7 @@
// statics used by inline'ed C helper-functions // statics used by inline'ed C helper-functions
static char* _gSrcStart = 0; static char* _gSrcStart = 0;
static char* _gSrcEnd = 0; static char* _gSrcEnd = 0;
static wxChar* _gLastSuppresedComment = 0; static char* _gLastSuppresedComment = 0;
static int _gLineNo = 0; static int _gLineNo = 0;
// FOR NOW:: comments queue is static // FOR NOW:: comments queue is static
@ -382,13 +382,13 @@ static inline bool get_next_token( char*& cur )
return true; return true;
} }
static inline void skip_preprocessor_dir( wxChar*& cur ) static inline void skip_preprocessor_dir( char*& cur )
{ {
do do
{ {
skip_to_eol(cur); skip_to_eol(cur);
if ( *(cur-1) != _T('\\') ) if ( *(cur-1) != '\\' )
break; break;
if ( cur < _gSrcEnd ) if ( cur < _gSrcEnd )
@ -899,8 +899,8 @@ static void arrange_indirection_tokens_between( wxString& type,
{ {
// TBD:: FIXME:: return value of operators ! // TBD:: FIXME:: return value of operators !
while ( identifier[0u] == _T('*') || while ( identifier[0u] == '*' ||
identifier[0u] == _T('&') identifier[0u] == '&'
) )
{ {
type += identifier[0u]; type += identifier[0u];
@ -931,33 +931,33 @@ static bool is_keyword( char* cur )
return i == __gMultiLangMap.end() ? false : true; 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 ) wxString* pStr )
{ {
char saved = *end; char saved = *end;
*end = _T('\0'); *end = '\0';
*pStr = start; *pStr = start;
*end = saved; *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 // to avoid poluting the queue with this comment
_gLastSuppresedComment = start; _gLastSuppresedComment = start;
skip_comments( end ); skip_comments( end );
if ( *(end-1) == _T('/') ) if ( *(end-1) == '/' )
end -= 2; end -= 2;
start += 2; start += 2;
// skip multiple leading '/''s or '*''s // skip multiple leading '/''s or '*''s
while( *start == _T('/') && start < end ) ++start; while( *start == '/' && start < end ) ++start;
while( *start == _T('*') && start < end ) ++start; while( *start == '*' && start < end ) ++start;
get_string_between( start, end, &text ); get_string_between( start, end, &text );
@ -1064,13 +1064,13 @@ spFile* CJSourceParser::Parse( char* start, char* end )
continue; continue;
} }
if ( *m_cur >= _T('0') && *m_cur <= _T('9') ) if ( *m_cur >= '0' && *m_cur <= '9' )
{ {
skip_token( m_cur ); skip_token( m_cur );
continue; continue;
} }
if ( *m_cur == _T('}') ) if ( *m_cur == '}' )
{ {
if ( mCurCtxType != SP_CTX_CLASS ) if ( mCurCtxType != SP_CTX_CLASS )
{ {
@ -1186,13 +1186,13 @@ spFile* CJSourceParser::Parse( char* start, char* end )
} while( 1 ); } while( 1 );
} }
void CJSourceParser::AttachComments( spContext& ctx, wxChar* cur ) void CJSourceParser::AttachComments( spContext& ctx, char* cur )
{ {
if ( !mCommentsOn ) return; if ( !mCommentsOn ) return;
MCommentListT& lst = ctx.GetCommentList(); MCommentListT& lst = ctx.GetCommentList();
wxChar* prevComEnd = 0; char* prevComEnd = 0;
int tmpLnNo; int tmpLnNo;
store_line_no( tmpLnNo ); store_line_no( tmpLnNo );
@ -1205,9 +1205,9 @@ void CJSourceParser::AttachComments( spContext& ctx, wxChar* cur )
lst.push_back( pComment ); lst.push_back( pComment );
// find the end of comment // 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 // first comment in the queue and multiline
// comments are always treated as a begining // 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 // find out wheather there is a new-line
// between to adjecent comments // between to adjecent comments
wxChar* prevLine = start; char* prevLine = start;
skip_to_prev_line(prevLine); skip_to_prev_line(prevLine);
if ( prevLine >= prevComEnd ) if ( prevLine >= prevComEnd )
@ -1249,7 +1249,7 @@ void CJSourceParser::AttachComments( spContext& ctx, wxChar* cur )
set_comment_text( pComment->m_Text, cur ); set_comment_text( pComment->m_Text, cur );
pComment->mStartsPar = 1; pComment->mStartsPar = 1;
pComment->mIsMultiline = ( *(cur+1) == _T('*') ); pComment->mIsMultiline = ( *(cur+1) == '*' );
// mark this comment, so that it would not // mark this comment, so that it would not
// get in the comments list of the next context // get in the comments list of the next context
@ -1261,9 +1261,9 @@ void CJSourceParser::AttachComments( spContext& ctx, wxChar* cur )
clear_commets_queue(); clear_commets_queue();
} }
void CJSourceParser::AddMacroNode( wxChar*& cur ) void CJSourceParser::AddMacroNode( char*& cur )
{ {
wxChar* start = cur; char* start = cur;
int lineNo = get_line_no(); int lineNo = get_line_no();
@ -1290,9 +1290,9 @@ void CJSourceParser::AddMacroNode( wxChar*& cur )
// determine the type exactly and assign // determine the type exactly and assign
// a name to the context // 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; char* tok = start+6;
@ -1310,13 +1310,13 @@ void CJSourceParser::AddMacroNode( wxChar*& cur )
pPL->mDefType = SP_PREP_DEF_REDEFINE_SYMBOL; 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; pPL->mDefType = SP_PREP_DEF_INCLUDE_FILE;
} }
else if ( *++start == _T('f') ) else if ( *++start == 'f' )
{ {
// either "#if" or "#ifdef" // either "#if" or "#ifdef"
cur = start; cur = start;
@ -1326,14 +1326,14 @@ void CJSourceParser::AddMacroNode( wxChar*& cur )
wxString condition = get_token_str( cur ); wxString condition = get_token_str( cur );
// currently, everything except '0' is true // currently, everything except '0' is true
if ( condition == _T("0") ) { if ( condition == "0" ) {
// skip until the following else or enif // skip until the following else or enif
while ( cur < _gSrcEnd ) { while ( cur < _gSrcEnd ) {
skip_to_eol( cur ); skip_to_eol( cur );
skip_eol( cur ); skip_eol( cur );
get_next_token( cur ); get_next_token( cur );
if ( *cur++ == _T('#') && *cur == _T('e') ) if ( *cur++ == '#' && *cur == 'e' )
break; break;
} }
} }
@ -1341,7 +1341,7 @@ void CJSourceParser::AddMacroNode( wxChar*& cur )
// TODO parse the condition... // TODO parse the condition...
} }
} }
else if ( cmp_tokens_fast( start, _T("else"), 4 ) ) else if ( cmp_tokens_fast( start, "else", 4 ) )
{ {
// skip until "#endif" // skip until "#endif"
while ( cur < _gSrcEnd ) { while ( cur < _gSrcEnd ) {
@ -1349,7 +1349,7 @@ void CJSourceParser::AddMacroNode( wxChar*& cur )
skip_eol( cur ); skip_eol( cur );
get_next_token( cur ); get_next_token( cur );
if ( *cur++ == _T('#') && cmp_tokens_fast( cur, "endif", 5 ) ) if ( *cur++ == '#' && cmp_tokens_fast( cur, "endif", 5 ) )
break; break;
} }
} }
@ -1876,7 +1876,7 @@ void CJSourceParser::ParseMemberVar( char*& cur )
// if comma, than variable list continues // if comma, than variable list continues
// otherwise the variable type reached - stop // otherwise the variable type reached - stop
if ( *cur == _T('=') ) if ( *cur == '=' )
{ {
// yes, we've mistaken, it was not a identifier, // yes, we've mistaken, it was not a identifier,
// but it's default value // but it's default value
@ -2189,10 +2189,10 @@ void CJSourceParser::AddClassNode( char*& cur )
clear_commets_queue(); clear_commets_queue();
} }
void CJSourceParser::AddEnumNode( wxChar*& cur ) void CJSourceParser::AddEnumNode( char*& cur )
{ {
// now the cursor is at "enum" keyword // now the cursor is at "enum" keyword
wxChar* start = cur; char* start = cur;
spEnumeration* pEnum = new spEnumeration(); spEnumeration* pEnum = new spEnumeration();
mpCurCtx->AddMember( pEnum ); mpCurCtx->AddMember( pEnum );
@ -2226,13 +2226,13 @@ void CJSourceParser::AddEnumNode( wxChar*& cur )
clear_commets_queue(); clear_commets_queue();
} }
void CJSourceParser::AddTypeDefNode( wxChar*& cur ) void CJSourceParser::AddTypeDefNode( char*& cur )
{ {
// now the cursor at the token next to "typedef" keyword // now the cursor at the token next to "typedef" keyword
if ( !get_next_token(cur) ) return; if ( !get_next_token(cur) ) return;
wxChar* start = cur; char* start = cur;
spTypeDef* pTDef = new spTypeDef(); spTypeDef* pTDef = new spTypeDef();
mpCurCtx->AddMember( pTDef ); mpCurCtx->AddMember( pTDef );
@ -2246,18 +2246,18 @@ void CJSourceParser::AddTypeDefNode( wxChar*& cur )
int tmpLnNo; int tmpLnNo;
store_line_no( tmpLnNo ); store_line_no( tmpLnNo );
wxChar* tok = cur-1; char* tok = cur-1;
skip_next_token_back( tok ); skip_next_token_back( tok );
wxChar* nameEnd = tok; char* nameEnd = tok;
skip_token_back( tok ); skip_token_back( tok );
wxChar* nameStart = tok; char* nameStart = tok;
skip_next_token_back( tok ); skip_next_token_back( tok );
wxChar* typeEnd = tok; char* typeEnd = tok;
// check if it's function prototype // check if it's function prototype
if ( *nameStart == ')' ) if ( *nameStart == ')' )

View File

@ -34,17 +34,17 @@ class CJSourceParser : public SourceParserBase
{ {
protected: protected:
// begining of the full-text area of the source file // begining of the full-text area of the source file
wxChar* mpStart; char* mpStart;
// points to first character after the end // points to first character after the end
// of teh full-text area // of teh full-text area
wxChar* mpEnd; char* mpEnd;
// current "privacy level" // current "privacy level"
int mCurVis; int mCurVis;
// current parsing position int full-text area // current parsing position int full-text area
wxChar* m_cur; char* m_cur;
// about the current class // about the current class
bool mIsVirtual; bool mIsVirtual;

View File

@ -225,7 +225,7 @@ void RipperDocGen::AppendMulitilineStr( wxString& st, wxString& mlStr )
void RipperDocGen::AppendHighlightedSource( wxString& st, wxString source ) void RipperDocGen::AppendHighlightedSource( wxString& st, wxString source )
{ {
// FIXME:: below should not be fixed :) // FIXME:: below should not be fixed :)
wxChar buf[1024*32]; char buf[1024*32];
// DBG::: // DBG:::
// ASSERT( source.length() + 1 < sizeof(buf) ); // ASSERT( source.length() + 1 < sizeof(buf) );