Version: 3.2.0 (using KDE 3.4.0 Level "b" , SUSE 9.3) Compiler: gcc version 3.3.5 20050117 (prerelease) (SUSE Linux) OS: Linux (i686) release 2.6.11.4-20a-default In my project i did: Project Options-> C++ Specific->Code Completion and i pressed the Add button. I chose "Custom Directory PCS importer" , and i typed "C/C++" (without the quotes) as the Database Name. I chose /usr/include as the dir to parse. KDevelop crashed. I restarted it and i did the same things but i typed "C_C++" as the DB name and KDevelop worked ok. So i believe the problem is with the '/'.
Created attachment 11116 [details] backtrace
I haven't tested, but it sounds very plausible. IIRC, the name used for the database is simply used as the database file name. '/' will surely break that.
SVN commit 557193 by mattr: fix bug 106025. Patch by Bernd Buschinski. Thanks for the patch! BUG: 106025 CCMAIL: b.buschinski@web.de M +1 -1 parser.cpp --- branches/kdevelop/3.4/lib/cppparser/parser.cpp #557192:557193 @@ -4282,7 +4282,7 @@ bool Parser::parseWinDeclSpec( GroupAST::Node & node ) { - if( lex->lookAhead(0) == Token_identifier && lex->lookAhead(0).text() == "__declspec" && lex->lookAhead(1) == '(' ){ + if( lex->lookAhead(0) == Token_identifier && lex->lookAhead(0).text() == "__declspec" && lex->lookAhead(1) == '(' && lex->lookAhead(2) != ')'){ int start = lex->index(); nextToken(); nextToken(); // skip '('
SVN commit 566385 by mattr: Patch from Bernd Buschinski. "another tyr to fix bug 106025" Thanks for the patch! CCBUG: 106025 M +3 -3 ccconfigwidget.cpp M +1 -1 createpcsdialog.cpp --- branches/kdevelop/3.4/languages/cpp/ccconfigwidget.cpp #566384:566385 @@ -160,7 +160,7 @@ { Catalog* c = *it; QFileInfo dbInfo( c->dbName() ); - QCheckListItem* item = new QCheckListItem( advancedOptions, dbInfo.baseName(), QCheckListItem::CheckBox ); + QCheckListItem* item = new QCheckListItem( advancedOptions, KURL::decode_string( dbInfo.baseName() ), QCheckListItem::CheckBox ); item->setOn( c->enabled() ); m_catalogs[ item ] = c; @@ -219,7 +219,7 @@ QString question = i18n( "Are you sure you want to remove the \"%1\" database?" ).arg( db ); KStandardDirs *dirs = m_pPart->instance() ->dirs(); - QString dbName = dirs->saveLocation( "data", "kdevcppsupport/pcs" ) + db + ".db"; + QString dbName = dirs->saveLocation( "data", "kdevcppsupport/pcs" ) + KURL::encode_string_no_slash( db ) + ".db"; #if KDE_VERSION >= KDE_MAKE_VERSION(3,3,0) @@ -238,7 +238,7 @@ void CCConfigWidget::catalogRegistered( Catalog * c ) { QFileInfo dbInfo( c->dbName() ); - QCheckListItem* item = new QCheckListItem( advancedOptions, dbInfo.baseName(), QCheckListItem::CheckBox ); + QCheckListItem* item = new QCheckListItem( advancedOptions, KURL::decode_string( dbInfo.baseName() ), QCheckListItem::CheckBox ); item->setOn( c->enabled() ); m_catalogs[ item ] = c; --- branches/kdevelop/3.4/languages/cpp/createpcsdialog.cpp #566384:566385 @@ -327,7 +327,7 @@ KStandardDirs *dirs = m_part->instance() ->dirs(); - QString dbName = dirs->saveLocation( "data", "kdevcppsupport/pcs" ) + filename_edit->text() + ".db"; + QString dbName = dirs->saveLocation( "data", "kdevcppsupport/pcs" ) + KURL::encode_string_no_slash(filename_edit->text()) + ".db"; kdDebug( 9007 ) << "================================> dbName = " << dbName << endl; m_part->removeCatalog( dbName );
Moving all the bugs from the CPP Parser. It was not well defined the difference between it and C++ Language Support and people kept reporting in both places indistinctively