Re: [Doxygen-users] Doxygen and C function names with modifiers with arguments
Brought to you by:
dimitri
From: Leonardo P. S. <Leo...@on...> - 2019-07-23 15:41:37
|
Ron, Thanks for your reply, I definitively got closer to what I need. There’s an odd behaviour when expanding the macro. I’m using this function: /** * A C function with a modifier * @param param A parameter * @return zero. */ int chess_storage(x0) firmware_function(unsigned long int chess_storage(a0) param); If I use a PREDEFINED as suggested: PREDEFINED = chess_storage(x)=chess_storage_##x I get the documentation as int chess_storage_ firmware_function<regular__c_8h.html#a10ebc6e9e9d0553d708d2daddb03c294> (unsigned long int chess_storage_ param) But if I use this macro: #define chess_storage( x ) chess_storage_##x And EXPAND_AS_DEFINED = chess_storage I get the correct concatenation: int chess_storage_x0 firmware_function<regular__c_8h.html#adbbb22277ff4bb26c338cf1bbb34b76a> (unsigned long int chess_storage_a0 param) Any ideas as to why Doxygen is not concatenating? Thank you very much, Leonardo From: Ron W [mailto:ron...@gm...] Sent: July-19-19 9:14 PM To: doxygen-users <dox...@li...> Subject: Re: [Doxygen-users] Doxygen and C function names with modifiers with arguments [External Email]: This email arrived from an external source - Please exercise caution when opening any attachments or clicking on links. On Fri, Jul 19, 2019 at 8:03 AM <dox...@li...<mailto:dox...@li...>> wrote: Date: Thu, 18 Jul 2019 21:09:12 +0000 From: Leonardo Pereira Santos <Leo...@on...<mailto:Leo...@on...>> Subject: [Doxygen-users] Doxygen and C function names with modifiers with arguments Because the directive has a parameter, Doxygens interprets the directive as the function name. The usual solution would be to use PREDEFINED directive in the Doxyfile as suggested here<http://doxygen.10944.n7.nabble.com/Is-it-possible-to-force-doxygen-to-ignore-compiler-specific-keywords-td2857.html<https://urldefense.proofpoint.com/v2/url?u=http-3A__doxygen.10944.n7.nabble.com_Is-2Dit-2Dpossible-2Dto-2Dforce-2Ddoxygen-2Dto-2Dignore-2Dcompiler-2Dspecific-2Dkeywords-2Dtd2857.html&d=DwMFaQ&c=MHZppzMdXMt3JYjCV71UsQ&r=k8KpFgIlnqWJ_UCMIorh7Kaa71fn5J46EO16Eh-Dgx5RVhccwhWRNbrzEpx0RhhR&m=g-riXF1SYJAuGArmVPDklJZABzcPz0dJfJ6jg0cJHdI&s=LKy49M3L0BEk3AMMp4aDgRAMUNmba3b3B1QnrsryYZM&e=>> to completely ignore the storage modifier: PREDEFINED = chess_storage(x)= Not currently able to test this, but maybe this would work: PREDEFINED = chess_storage(x))=chess_storage_##x If not, you may need to create your own preprocessor to handle this case. |