kconfig2html: Improve expand/collapse TOC + misc bug-fixes

This commit is contained in:
Gregory Nutt
2013-04-23 11:01:18 -06:00
parent a8e2ff3420
commit 57d31176c0
3 changed files with 82 additions and 23 deletions
+5 -1
View File
@@ -4591,8 +4591,12 @@
at Documentation/NuttXConfigVariables.html (2014-4-22). at Documentation/NuttXConfigVariables.html (2014-4-22).
* arch/arm/src/lpc17xx/lpc17_adc.c: Only one ADC pin was configured. * arch/arm/src/lpc17xx/lpc17_adc.c: Only one ADC pin was configured.
Need to configure all that are in the ADC0 set. From MKannan Need to configure all that are in the ADC0 set. From MKannan
(2014-4-23). (2014-4-23).
* configs/zkit-arm-1769/src: ADC and SPI/USB MSC updates from * configs/zkit-arm-1769/src: ADC and SPI/USB MSC updates from
MKannan (2014-4-23). MKannan (2014-4-23).
* arm/src/armv7-m/ram_vectors.h and arm/src/armv7-m/up_ramvec_initialize.c: * arm/src/armv7-m/ram_vectors.h and arm/src/armv7-m/up_ramvec_initialize.c:
Fixes to RAM vector logic from Paul Y. Zhang (2014-4-23) Fixes to RAM vector logic from Paul Y. Zhang (2014-4-23)
* tools/kconfig2html.c: Improve behavior of Expand/Collapse
Table of Contents; Handle errors in parsing of strings and in
some uninitialized variables. Add an option to use jQuery.
* tools/mkconfigvar.sh: Fix make target.
+75 -21
View File
@@ -52,6 +52,8 @@
* Pre-processor Definitions * Pre-processor Definitions
****************************************************************************/ ****************************************************************************/
#undef USE_JQUERY
#define LINE_SIZE 1024 #define LINE_SIZE 1024
#define SCRATCH_SIZE 2048 #define SCRATCH_SIZE 2048
#define MAX_DEPENDENCIES 100 #define MAX_DEPENDENCIES 100
@@ -902,6 +904,15 @@ static char *get_token(void)
/* Search for the trailing quotation mark */ /* Search for the trailing quotation mark */
pend = findchar(pbegin + 1, '"'); pend = findchar(pbegin + 1, '"');
/* Did we find the trailing quotation mark */
if (pend)
{
/* Yes.. skip over it */
pend++;
}
} }
else else
{ {
@@ -950,22 +961,43 @@ static char *get_html_string(void)
pbegin = strchr(g_lnptr, '"'); pbegin = strchr(g_lnptr, '"');
if (pbegin) if (pbegin)
{ {
/* Skip over the quote */ /* We found the leading quote. Skip over the leading quote */
pbegin++; pbegin++;
}
else
{
/* The string is unquoted. The beginning of the string is here,
* skipping over any leading whitespace.
*/
/* Search for the trailing quotation mark */ pbegin = skip_space(g_lnptr);
}
pend = findchar(pbegin, '"');
if (pend) /* Search for the trailing quotation mark. If there is none, then
{ * the string goes to the end of the line.
/* Replace the final quote with a NUL */ */
*pend = '\0'; pend = findchar(pbegin, '"');
} if (pend)
{
/* Replace the final quote with a NUL. g_lnptr is set to to
* the next valid character after the terminating quote.
*/
*pend = '\0';
g_lnptr = pend + 1;
}
else
{
/* Use the rest of the line. g_lnptr is set to point at the
* terminating NUL.
*/
pend = pbegin + strlen(pbegin);
g_lnptr = pend;
} }
g_lnptr = pend + 1;
return htmlize_text(pbegin); return htmlize_text(pbegin);
} }
@@ -1561,6 +1593,7 @@ static inline char *process_config(FILE *stream, const char *configname,
/* Process each line in the configuration */ /* Process each line in the configuration */
help = false; help = false;
token = NULL;
while ((ptr = kconfig_line(stream)) != NULL) while ((ptr = kconfig_line(stream)) != NULL)
{ {
@@ -1734,7 +1767,7 @@ static inline char *process_config(FILE *stream, const char *configname,
} }
} }
/* Is this an internal configuration varaible with no description? /* Is this an internal configuration varaible with no description?
* If so, send the output to the appendix file. * If so, send the output to the appendix file.
*/ */
@@ -2108,30 +2141,34 @@ static inline char *process_menu(FILE *stream, const char *kconfigdir)
paranum = get_paranum(); paranum = get_paranum();
if (menu.m_name) if (menu.m_name)
{ {
output("<li><a href=\"#menu_%d\">%s Menu: %s</a></li>\n", output("<li><a name=\"menu_%d_toc\"><a href=\"#menu_%d\">%s Menu: %s</a></a></li>\n",
g_menu_number, paranum, menu.m_name); g_menu_number, g_menu_number, paranum, menu.m_name);
body("\n<h1><a name=\"menu_%d\">%s Menu: %s</a></h1>\n", body("\n<h1><a name=\"menu_%d\">%s Menu: %s</a></h1>\n",
g_menu_number, paranum, menu.m_name); g_menu_number, paranum, menu.m_name);
} }
else else
{ {
output("<li><a href=\"#menu_%d\">%s Menu</a></li>\n", output("<li><a name=\"menu_%d_toc\"><a href=\"#menu_%d\">%s Menu</a></a></li>\n",
g_menu_number, paranum); g_menu_number, g_menu_number, paranum);
body("\n<h1><a name=\"menu_%d\">%s Menu</a></h1>\n", body("\n<h1><a name=\"menu_%d\">%s Menu</a></h1>\n",
g_menu_number, paranum); g_menu_number, paranum);
} }
g_menu_number++;
/* Output logic to toggle the contents below the menu in the table of /* Output logic to toggle the contents below the menu in the table of
* contents. * contents.
*/ */
output("<a href=\"#\" onclick=\"toggle('toggle_%d', this)\">Expand</a>\n", #ifdef USE_JQUERY
g_toggle_number); output("<a id=\"link_%d\" href=\"#menu_%d_toc\" onclick=\"toggle('toggle_%d', 'link_%d')\">Expand</a>\n",
g_menu_number, g_toggle_number, g_toggle_number);
#else
output("<a href=\"#menu_%d_toc\" onclick=\"toggle('toggle_%d', this)\">Expand</a>\n",
g_menu_number, g_toggle_number);
#endif
output("<ul id=\"toggle_%d\" style=\"display:none\">\n", output("<ul id=\"toggle_%d\" style=\"display:none\">\n",
g_toggle_number); g_toggle_number);
g_menu_number++;
g_toggle_number++; g_toggle_number++;
/* Print the list of dependencies (if any) */ /* Print the list of dependencies (if any) */
@@ -2506,7 +2543,23 @@ int main(int argc, char **argv, char **envp)
output("</td>\n"); output("</td>\n");
output("</tr>\n"); output("</tr>\n");
output("</table>\n"); output("</table>\n");
#ifdef USE_JQUERY
output("<script src=\"http://code.jquery.com/jquery-1.9.1.js\"></script>\n");
output("<script type=\"text/javascript\">\n");
output("function toggle(list_id, link_id) {\n");
output(" var list = $('#' + list_id);\n");
output(" var link = $('#' + link_id);\n");
output(" if (list.is(\":visible\")) {\n");
output(" list.hide();\n");
output(" link.text('Expand');\n");
output(" } else {\n");
output(" list.show();\n");
output(" link.text('Collapse');\n");
output(" }\n");
output("}\n");
output("</script>\n");
#else
output("<script type=\"text/javascript\">\n"); output("<script type=\"text/javascript\">\n");
output("function toggle(id, link) {\n"); output("function toggle(id, link) {\n");
output(" var e = document.getElementById(id);\n"); output(" var e = document.getElementById(id);\n");
@@ -2519,6 +2572,7 @@ int main(int argc, char **argv, char **envp)
output(" }\n"); output(" }\n");
output("}\n"); output("}\n");
output("</script>\n"); output("</script>\n");
#endif
output("<hr><hr>\n"); output("<hr><hr>\n");
output("<table width =\"100%%\">\n"); output("<table width =\"100%%\">\n");
+2 -1
View File
@@ -36,6 +36,7 @@
# see the directories to tar up # see the directories to tar up
MYNAME=`basename $0` MYNAME=`basename $0`
KCONFIG2HTML_TARGET=kconfig2html
KCONFIG2HTML1=tools/kconfig2html KCONFIG2HTML1=tools/kconfig2html
KCONFIG2HTML2=tools/kconfig2html.exe KCONFIG2HTML2=tools/kconfig2html.exe
KCONFIG2MAKEFILE=Makefile.host KCONFIG2MAKEFILE=Makefile.host
@@ -81,7 +82,7 @@ else
if [ -x ${KCONFIG2HTML2} ]; then if [ -x ${KCONFIG2HTML2} ]; then
KCONFIG2HTML=${KCONFIG2HTML2} KCONFIG2HTML=${KCONFIG2HTML2}
else else
make -C ${KCONFIG2MAKEDIR} -f ${KCONFIG2MAKEFILE} ${KCONFIG2HTML1} || \ make -C ${KCONFIG2MAKEDIR} -f ${KCONFIG2MAKEFILE} ${KCONFIG2HTML_TARGET} || \
{ echo "ERROR: make ${KCONFIG2HTML1} failed" ; exit 1 ; } { echo "ERROR: make ${KCONFIG2HTML1} failed" ; exit 1 ; }
fi fi
fi fi