From 2c661f838e55e329f2302d09f93d137fdb28f30a Mon Sep 17 00:00:00 2001 From: Anton Leherbauer Date: Thu, 26 Aug 2010 08:49:26 +0000 Subject: [PATCH] Bug 323562 - Doxygen auto-comment does not work for plain C function declaration Patch from Marc-Andre Laperle --- .../doxygen/DoxygenMultilineAutoEditStrategy.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/text/doctools/doxygen/DoxygenMultilineAutoEditStrategy.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/text/doctools/doxygen/DoxygenMultilineAutoEditStrategy.java index d3b739d82fb..837a4a8c878 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/text/doctools/doxygen/DoxygenMultilineAutoEditStrategy.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/text/doctools/doxygen/DoxygenMultilineAutoEditStrategy.java @@ -34,7 +34,6 @@ import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier; import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration; import org.eclipse.cdt.core.dom.ast.IASTStandardFunctionDeclarator; import org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier.IASTEnumerator; -import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTDeclSpecifier; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFunctionDeclarator; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateDeclaration; import org.eclipse.cdt.ui.text.doctools.DefaultMultilineCommentAutoEditStrategy; @@ -184,11 +183,16 @@ public class DoxygenMultilineAutoEditStrategy extends DefaultMultilineCommentAut if(sdec.getDeclSpecifier() instanceof IASTCompositeTypeSpecifier) { return result; - } else if(sdec.getDeclSpecifier() instanceof ICPPASTDeclSpecifier) { + } else { IASTDeclarator[] dcs= sdec.getDeclarators(); - if(dcs.length == 1 && dcs[0] instanceof ICPPASTFunctionDeclarator) { - ICPPASTFunctionDeclarator fdecl= (ICPPASTFunctionDeclarator) dcs[0]; - boolean shouldDocument= documentDeclarations || (documentPureVirtuals && fdecl.isPureVirtual()); + if(dcs.length == 1 && dcs[0] instanceof IASTFunctionDeclarator) { + IASTFunctionDeclarator fdecl = (IASTFunctionDeclarator)dcs[0]; + boolean shouldDocument= documentDeclarations; + if(documentPureVirtuals && dcs[0] instanceof ICPPASTFunctionDeclarator) { + ICPPASTFunctionDeclarator cppfdecl= (ICPPASTFunctionDeclarator) dcs[0]; + shouldDocument = shouldDocument || cppfdecl.isPureVirtual(); + } + if(shouldDocument) { return documentFunction(fdecl, sdec.getDeclSpecifier()); }