From f515e8412f1d2f3e99603d552246a9c894735a79 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Mon, 22 Apr 2013 19:22:27 +0000 Subject: [PATCH] Update Doxygen-to-Docbook transform with the latest transform rules for functions, enums, structs, type definitions and variables. --- LUFA/StudioIntegration/Blob/LUFA.dll | Bin 379904 -> 381952 bytes .../HV1/helpcontentsetup.msha | 8 + .../HV1/lufa_docbook_transform.xsl | 155 ++++++++++++------ .../HV1/lufa_studio_help_styling.css | 8 + 4 files changed, 123 insertions(+), 48 deletions(-) diff --git a/LUFA/StudioIntegration/Blob/LUFA.dll b/LUFA/StudioIntegration/Blob/LUFA.dll index a96fa98abb62f418b30ac8108197b5f6b5745ddd..2a23ed65d5854b1dc6b944a37afd132941c53d7e 100644 GIT binary patch delta 7432 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 Po0ZAmV7|wa4W<4E2QFkN delta 5780 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 DP|wi2 diff --git a/LUFA/StudioIntegration/HV1/helpcontentsetup.msha b/LUFA/StudioIntegration/HV1/helpcontentsetup.msha index 8bf5543388..cb1c4b9eb9 100644 --- a/LUFA/StudioIntegration/HV1/helpcontentsetup.msha +++ b/LUFA/StudioIntegration/HV1/helpcontentsetup.msha @@ -1,3 +1,11 @@ + + LUFA Help diff --git a/LUFA/StudioIntegration/HV1/lufa_docbook_transform.xsl b/LUFA/StudioIntegration/HV1/lufa_docbook_transform.xsl index c1b6b2d842..dbbc64bd37 100644 --- a/LUFA/StudioIntegration/HV1/lufa_docbook_transform.xsl +++ b/LUFA/StudioIntegration/HV1/lufa_docbook_transform.xsl @@ -182,8 +182,14 @@
- <xsl:value-of select="@kind"/> - <xsl:text> </xsl:text> + <xsl:choose> + <xsl:when test="@kind = 'struct'"> + <xsl:text>Struct </xsl:text> + </xsl:when> + <xsl:when test="@kind = 'union'"> + <xsl:text>Union </xsl:text> + </xsl:when> + </xsl:choose> <xsl:value-of select="$name"/> @@ -194,7 +200,7 @@ - +
<xsl:value-of select="$name"/> @@ -204,8 +210,8 @@ - Data type - Field name + Type + Name Description @@ -217,6 +223,9 @@ + + [] + @@ -252,9 +261,34 @@ - - - + + + + + + ( + + + + void + + + + + + , + + + + + + + + + + + + ) @@ -276,7 +310,8 @@ - +
+ Members @@ -299,7 +334,7 @@ - +
@@ -317,27 +352,29 @@ - #define - - - ( - - - , - - - - ) - - - + + #define + + + ( + + + , + + + + ) + + - - - \ - + + + \ + - + + + @@ -348,29 +385,51 @@
- - <!-- Doxygen gets confused and thinks function pointer type definitions - are variables, so we need to map them to this common section and - check the definition to see which of the two it is. --> - <xsl:choose> - <xsl:when test="contains(definition,'typedef')"> + <!-- Doxygen gets confused and thinks function pointer type definitions + are variables, so we need to map them to this common section and + check the definition to see which of the two it is. --> + <xsl:choose> + <xsl:when test="contains(definition,'typedef')"> + <title> <xsl:text>Type </xsl:text> - </xsl:when> - <xsl:otherwise> - <xsl:text>Variable </xsl:text> - </xsl:otherwise> - </xsl:choose> + <xsl:value-of select="name"/> + - - + + + - - - + + + typedef + + + + + + + + - - - + + + <xsl:text>Variable </xsl:text> + <xsl:value-of select="name"/> + + + + + + + + + + + + + + +
diff --git a/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css b/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css index cfc835ef1c..892c0ef934 100644 --- a/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css +++ b/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css @@ -1,3 +1,11 @@ +/* + LUFA Library + Copyright (C) Dean Camera, 2013. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + .programlisting { display: block; margin-left: 15px;