Changeset 56533 in vbox
- Timestamp:
- Jun 18, 2015 6:15:51 PM (10 years ago)
- svn:sync-xref-src-repo-rev:
- 101155
- Location:
- trunk
- Files:
-
- 5 edited
- 3 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/manual/Makefile.kmk
r56527 r56533 101 101 # xsltproc with the catalog trick if applicable. 102 102 ifdef VBOX_XML_CATALOG 103 VBOX_XSLTPROC_WITH_CAT = $(REDIRECT) -E "XML_CATALOG_FILES=$(VBOX_XML_CATALOG)" -- $(VBOX_XSLTPROC) 104 VBOX_XMLLINT_WITH_CAT = $(REDIRECT) -E "XML_CATALOG_FILES=$(VBOX_XML_CATALOG)" -- $(VBOX_XMLLINT) 103 VBOX_XSLTPROC_WITH_CAT = $(REDIRECT) -E "XML_CATALOG_FILES=$(VBOX_XML_CATALOG)" -- \ 104 $(VBOX_XSLTPROC) --nonet --xinclude $(VBOX_XSLTPROC_OPTS) 105 VBOX_XMLLINT_WITH_CAT = $(REDIRECT) -E "XML_CATALOG_FILES=$(VBOX_XML_CATALOG)" -- \ 106 $(VBOX_XMLLINT) --nonet --xinclude --noout $(VBOX_XMLLINT_OPTS) 105 107 else 106 VBOX_XSLTPROC_WITH_CAT = $(VBOX_XSLTPROC) 107 VBOX_XMLLINT_WITH_CAT = $(VBOX_XMLLINT) 108 VBOX_XSLTPROC_WITH_CAT = $(VBOX_XSLTPROC) --nonet --xinclude $(VBOX_XSLTPROC_OPTS) 109 VBOX_XMLLINT_WITH_CAT = $(VBOX_XMLLINT) --nonet --xinclude --noout $(VBOX_XMLLINT_OPTS) 108 110 endif 109 111 … … 165 167 ## List of refentry files (manpages). 166 168 VBOX_MANUAL_XML_REFENTRY_FILES = \ 167 man_VBoxManage _debugvm.xml \168 man_VBoxManage _extpack.xml169 man_VBoxManage-debugvm.xml \ 170 man_VBoxManage-extpack.xml 169 171 170 172 … … 283 285 $(VBOX_MANUAL_XML_FILES_INCL_CHANGELOG) \ 284 286 $(VBOX_MANUAL_XML_REFENTRY_FILES) \ 287 $(addprefix user_,$(VBOX_MANUAL_XML_REFENTRY_FILES)) \ 288 $(patsubst man_%,%.1,$(basename $(VBOX_MANUAL_XML_REFENTRY_FILES))) \ 285 289 $(VBOX_MANUAL_LATEX_FILES_TARGET) \ 286 290 $(VBOX_MANUAL_PNG_FILES_$(lang)) \ … … 466 470 $(foreach lang,$(VBOX_MANUAL_LANGUAGES), \ 467 471 $(eval $$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/user_VBoxManage.xml: $(VBOX_PATH_MANUAL_SRC)/$(lang)/user_VBoxManage.xml \ 468 $$(addprefix $$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/ ,$$(filter man_VBoxManage%,$$(VBOX_MANUAL_XML_REFENTRY_FILES))) \472 $$(addprefix $$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/user_,$$(filter man_VBoxManage%,$$(VBOX_MANUAL_XML_REFENTRY_FILES))) \ 469 473 $$(addprefix $$(VBOX_PATH_MANUAL_OUTBASE)/overview_,$$(filter man_VBoxManage%,$$(VBOX_MANUAL_XML_REFENTRY_FILES))) \ 470 474 $(VBOX_PATH_MANUAL_OUTBASE)/user_VBoxManage_CommandsOverview.xml )) … … 474 478 $(VBOX_PATH_MANUAL_OUTBASE)/% : \ 475 479 $(VBOX_PATH_MANUAL_SRC)/% \ 476 $$(addprefix $$(@D)/ ,$$(filter man_VBoxManage%,$$(VBOX_MANUAL_XML_REFENTRY_FILES))) \480 $$(addprefix $$(@D)/user_,$$(filter man_VBoxManage%,$$(VBOX_MANUAL_XML_REFENTRY_FILES))) \ 477 481 $$(addprefix $$(@D)/overview_,$$(filter man_VBoxManage%,$$(VBOX_MANUAL_XML_REFENTRY_FILES))) \ 478 482 $(VBOX_PATH_MANUAL_OUTBASE)/user_VBoxManage_CommandsOverview.xml \ … … 510 514 $(QUIET)$(RM) -f [email protected] [email protected] 511 515 512 516 ## 513 517 # Morph man pages into manual sections. 514 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/,$(VBOX_MANUAL_XML_REFENTRY_FILES))): \ 515 $(VBOX_PATH_MANUAL_OUTBASE)/% : $(VBOX_PATH_MANUAL_SRC)/% \ 516 $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-sect1.xsl \ 517 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) \ 518 $(VBOX_VERSION_STAMP) | $$(dir $$@) 519 $(call MSG_GENERATE,,$@,$<) 520 $(QUIET)$(RM) -f $@ 521 $(QUIET)$(VBOX_XSLTPROC_WITH_CAT) --xinclude --nonet --output $@ \ 522 $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-sect1.xsl $< 518 # $(evalcall2 def_vbox_refentry_to_user_sect1) 519 # @param 1 The XSLT source file (relative to Makefile dir). 520 # @param 2 Optional output subdirectory. 521 define def_vbox_refentry_to_user_sect1 522 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/user_$(2): \ 523 $$(VBOX_PATH_MANUAL_SRC)/$(1)/$(2) \ 524 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-sect1.xsl \ 525 $$(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) \ 526 $$(VBOX_VERSION_STAMP) | $$(dir $$@) 527 $$(call MSG_GENERATE,,$$@,$$<) 528 $$(QUIET)$$(RM) -f "$$@" 529 $$(QUIET)$$(VBOX_XSLTPROC_WITH_CAT) --output $$@ $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-sect1.xsl $$< 530 endef 531 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(foreach file,$(VBOX_MANUAL_XML_REFENTRY_FILES) \ 532 , $(evalcall2 def_vbox_refentry_to_user_sect1,$(lang),$(file)))) 523 533 524 534 … … 537 547 | $$(dir $$@) 538 548 $(call MSG_GENERATE,,$@,$(filter %.xml,$^)) 539 $(QUIET)$(VBOX_XSLTPROC_WITH_CAT) -- xinclude --nonet --output "$@" $< $(filter %.xml,$^)549 $(QUIET)$(VBOX_XSLTPROC_WITH_CAT) --output "$@" $< $(filter %.xml,$^) 540 550 541 551 $(VBOX_PATH_MANUAL_OUTBASE)/user_VBoxManage_CommandsOverview.xml: $(MAKEFILE_CURRENT) | $$(dir $$@) … … 653 663 # pass current language to xsltproc in TARGETLANG variable (extract it from the 654 664 # current directory, should become "de_DE" or the like) 655 $(QUIET)$(VBOX_XSLTPROC_WITH_CAT) $(XSLTPROC_VERBOSE) --xinclude --nonet--stringparam TARGETLANG $(notdir $(@D)) \665 $(QUIET)$(VBOX_XSLTPROC_WITH_CAT) --stringparam TARGETLANG $(notdir $(@D)) \ 656 666 -o [email protected] $(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl $< 657 667 # for pretty quotes, replace " with `` or '' depending on whether it's at the start of a word; … … 682 692 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(MAKEFILE_CURRENT) | $$$$(dir $$$$@) 683 693 $$(call MSG_L1,Validating $$<) 684 $$(QUIET)$$(VBOX_XMLLINT_WITH_CAT) $$(VBOX_XMLLINT_OPTS) --dtdvalid $$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd \ 685 --xinclude --noout $$< 694 $$(QUIET)$$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $$< 686 695 $$(QUIET)$$(APPEND) -t "$$@" "done" 687 696 endef … … 718 727 $(QUIET)$(RM) -f $(addprefix $(@D/),$(VBOX_SDKREF_LATEX_FILES_TARGET)) 719 728 # generate TeX source from processed docbook and store it in SDKRef.tex.tmp 720 $(QUIET)$(VBOX_XSLTPROC_WITH_CAT) $(XSLTPROC_VERBOSE) --xinclude --nonet--stringparam TARGETLANG en_US \729 $(QUIET)$(VBOX_XSLTPROC_WITH_CAT) --stringparam TARGETLANG en_US \ 721 730 -o [email protected] $(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl $< 722 731 # for pretty quotes, replace " with `` or '' depending on whether it's at the start of a word; … … 734 743 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(MAKEFILE_CURRENT) 735 744 $(call MSG_L1,Validating $(filter %.xml,$^)) 736 $(QUIET)$(VBOX_XMLLINT_WITH_CAT) $(VBOX_XMLLINT_OPTS) --dtdvalid $(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd \ 737 --xinclude --noout $(filter %.xml,$^) 745 $(QUIET)$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $(filter %.xml,$^) 738 746 739 747 … … 799 807 $(QUIET)$(RM) -f $@ 800 808 $(QUIET)$(MKDIR) -p $(@D) 801 $(QUIET)$(VBOX_XSLTPROC_WITH_CAT) -- xinclude --nonet --output $(@D)/ \809 $(QUIET)$(VBOX_XSLTPROC_WITH_CAT) --output $(@D)/ \ 802 810 --stringparam htmlhelp.chm \ 803 811 $(subst /,\\,$(@D)/../VirtualBox.chm) \ … … 865 873 | $$(dir $$@) 866 874 $(call MSG_L1,xsltproc $<) 867 $(QUIET)$(VBOX_XSLTPROC_WITH_CAT) --xinclude --nonet $(XSLTPROC_VERBOSE)\875 $(QUIET)$(VBOX_XSLTPROC_WITH_CAT) \ 868 876 --output $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/UserManual.html \ 869 877 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/docbook-html-one-page-formatcfg.xsl \ … … 878 886 | $$(dir $$@) 879 887 $(call MSG_L1,xsltproc $<) 880 $(QUIET)$(VBOX_XSLTPROC_WITH_CAT) --xinclude --nonet $(XSLTPROC_VERBOSE)\888 $(QUIET)$(VBOX_XSLTPROC_WITH_CAT) \ 881 889 --output $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-chunks/index.html \ 882 890 --stringparam chunk.section.depth 0 \ … … 935 943 936 944 # 937 # VBoxManage man pages. 938 # 939 $(evalcall2 def_vbox_replace_paths_in_xslt,docbook-refentry-to-man.xsl,) 940 941 man-experiment: \ 942 $(VBOX_PATH_MANUAL_SRC)/en_US/man_VBoxManage_extpack.xml \ 943 $(VBOX_PATH_MANUAL_OUTBASE)/docbook-refentry-to-man.xsl \ 944 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) 945 $(VBOX_XSLTPROC_WITH_CAT) --xinclude --nonet --output z:/tmp/vboxmanage-extpack.1 \ 946 $(VBOX_PATH_MANUAL_OUTBASE)/docbook-refentry-to-man.xsl \ 947 $(VBOX_PATH_MANUAL_SRC)/en_US/man_VBoxManage_extpack.xml 948 949 $(evalcall2 def_vbox_replace_paths_in_xslt,docbook-refentry-to-C-help.xsl,) 950 $(evalcall2 def_vbox_replace_paths_in_xslt,docbook-refentry-to-H-help.xsl,) 951 952 # validate man page XML source 953 validateman: $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_MANUAL_XML_REFENTRY_FILES)) \ 954 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(MAKEFILE_CURRENT) 955 $(call MSG_L1,Validating $(filter %.xml,$^)) 956 $(QUIET)$(VBOX_XMLLINT_WITH_CAT) $(VBOX_XMLLINT_OPTS) --dtdvalid $(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd \ 957 --noout $(filter %.xml,$^) 945 # VBoxManage man pages (parts also required by VBoxManage build-in help). 946 # 947 $(evalcall2 def_vbox_replace_paths_in_xslt,docbook-refentry-to-manpage.xsl,) 948 949 ## 950 # Emits rules for preprocessing refentry sources (applying remarks element), 951 # and for producing the actual man pages. 952 # $(evalcall2 def_vbox_refentry_to_manpage) 953 # @param 1 The language 954 # @param 2 The file name (no path). 955 define def_vbox_refentry_to_manpage 956 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(2): \ 957 $$(VBOX_PATH_MANUAL_SRC)/$(1)/$(2) \ 958 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl \ 959 $$(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) \ 960 $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@) 961 $$(call MSG_GENERATE,,$$@,$$<) 962 $$(QUIET)$$(RM) -f "$$@" 963 $$(QUIET)$$(VBOX_XSLTPROC_WITH_CAT) --output $$@ \ 964 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl $$< 965 ifdef VBOX_WITH_XMLLINT 966 $$(QUIET)$$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $$@ 967 endif 968 969 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(patsubst man_%,%.1,$(basename $(2))): \ 970 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(2) \ 971 $$(VBOX_PATH_MANUAL_OUTBASE)/docbook-refentry-to-manpage.xsl \ 972 $$(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) \ 973 $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@) 974 $$(call MSG_GENERATE,,$$@,$$<) 975 $$(QUIET)$$(RM) -f "$$@" 976 $$(QUIET)$$(VBOX_XSLTPROC_WITH_CAT) --output $$@ $$(VBOX_PATH_MANUAL_OUTBASE)/docbook-refentry-to-manpage.xsl $$< 977 endef 978 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(foreach file,$(VBOX_MANUAL_XML_REFENTRY_FILES) \ 979 , $(evalcall2 def_vbox_refentry_to_manpage,$(lang),$(file)))) 980 981 982 # Handy aliases. 983 validate-manpages:: $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_XML_REFENTRY_FILES)) 984 man-experiment:: $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(foreach file,$(VBOX_MANUAL_XML_REFENTRY_FILES) \ 985 ,$$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/$(patsubst man_%,%.1,$(basename $(file))))) 958 986 959 987 … … 974 1002 $(VBOX_PATH_MANUAL_OUTBASE)/VBoxManageBuiltInHelp.h 975 1003 1004 $(evalcall2 def_vbox_replace_paths_in_xslt,docbook-refentry-to-C-help.xsl,) 1005 $(evalcall2 def_vbox_replace_paths_in_xslt,docbook-refentry-to-H-help.xsl,) 1006 976 1007 $(VBOX_PATH_MANUAL_OUTBASE)/VBoxManageBuiltInHelp.cpp: \ 977 1008 $(VBOX_PATH_MANUAL_OUTBASE)/docbook-refentry-to-C-help.xsl \ 978 $(addprefix $(VBOX_PATH_MANUAL_ SRC)/en_US/,$(filter man_VBoxManage_%,$(VBOX_MANUAL_XML_REFENTRY_FILES))) \979 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(MAKEFILE) 1009 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(filter man_VBoxManage-%,$(VBOX_MANUAL_XML_REFENTRY_FILES))) \ 1010 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(MAKEFILE) | $$(dir $$@) 980 1011 $(call MSG_GENERATE,,$@,$<) 981 1012 $(QUIET)$(APPEND) -tn "$@" \ … … 986 1017 '' 987 1018 $(foreach refentry,$(filter %.xml,$^) \ 988 ,$(NLTAB)$(QUIET)$(REDIRECT) -a+to "$@" -- $(VBOX_XSLTPROC_WITH_CAT) --xinclude --nonet$< $(refentry))1019 ,$(NLTAB)$(QUIET)$(REDIRECT) -a+to "$@" -- $(VBOX_XSLTPROC_WITH_CAT) $< $(refentry)) 989 1020 $(QUIET)$(APPEND) -n "$@" \ 990 1021 '' \ 991 1022 'PCREFENTRY g_apHelpEntries[] = ' \ 992 1023 '{' \ 993 $(foreach refentry,$(filter %.xml,$^), ' &g_$(tolower $(patsubst man_%,%,$(notdir $(basename $(refentry))))), ') \ 1024 $(foreach refentry,$(filter %.xml,$^) \ 1025 , ' &g_$(subst -,_,$(tolower $(patsubst man_%,%,$(notdir $(basename $(refentry)))))), ') \ 994 1026 '};' \ 995 1027 'const uint32_t g_cHelpEntries = RT_ELEMENTS(g_apHelpEntries);' \ … … 998 1030 $(VBOX_PATH_MANUAL_OUTBASE)/VBoxManageBuiltInHelp.h: \ 999 1031 $(VBOX_PATH_MANUAL_OUTBASE)/docbook-refentry-to-H-help.xsl \ 1000 $(addprefix $(VBOX_PATH_MANUAL_ SRC)/en_US/,$(filter man_VBoxManage_%,$(VBOX_MANUAL_XML_REFENTRY_FILES))) \1001 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(MAKEFILE) 1032 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(filter man_VBoxManage-%,$(VBOX_MANUAL_XML_REFENTRY_FILES))) \ 1033 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(MAKEFILE) | $$(dir $$@) 1002 1034 $(call MSG_GENERATE,,$@,$<) 1003 1035 $(QUIET)$(APPEND) -tn "$@" \ … … 1015 1047 ' HELP_CMD_VBOXMANAGE_INVALID = 0,' 1016 1048 $(foreach refentry,$(filter %.xml,$^) \ 1017 ,$(NLTAB)$(QUIET)$(REDIRECT) -a+to "$@" -- $(VBOX_XSLTPROC_WITH_CAT) --xinclude --nonet\1049 ,$(NLTAB)$(QUIET)$(REDIRECT) -a+to "$@" -- $(VBOX_XSLTPROC_WITH_CAT) \ 1018 1050 --stringparam 'g_sMode' 'cmd' $< $(refentry)) 1019 1051 $(QUIET)$(APPEND) -n "$@" \ … … 1021 1053 '} HELP_CMD_VBOXMANAGE;' 1022 1054 $(foreach refentry,$(filter %.xml,$^) \ 1023 ,$(NLTAB)$(QUIET)$(REDIRECT) -a+to "$@" -- $(VBOX_XSLTPROC_WITH_CAT) --xinclude --nonet\1055 ,$(NLTAB)$(QUIET)$(REDIRECT) -a+to "$@" -- $(VBOX_XSLTPROC_WITH_CAT) \ 1024 1056 --stringparam 'g_sMode' 'subcmd' $< $(refentry)) 1025 1057 $(QUIET)$(APPEND) -n "$@" \ -
trunk/doc/manual/docbook-refentry-to-C-help.xsl
r56466 r56533 165 165 <xsl:if test="text()"><xsl:message terminate="yes">cmdsynopsis with text is not supported.</xsl:message></xsl:if> 166 166 <xsl:text> 167 { </xsl:text><xsl:call-template name="calc-scope-cmdsynopsis"/><xsl:text> ,167 { </xsl:text><xsl:call-template name="calc-scope-cmdsynopsis"/><xsl:text> | REFENTRYSTR_FLAGS_SYNOPSIS, 168 168 "</xsl:text><xsl:call-template name="emit-indentation"/><xsl:apply-templates select="*|@*"/><xsl:text>" },</xsl:text> 169 169 </xsl:template> … … 171 171 <xsl:template match="sbr"> 172 172 <xsl:text>" }, 173 { REFENTRYSTR_SCOPE_SAME, 174 " </xsl:text><xsl:call-template name="emit-indentation"/> 173 { REFENTRYSTR_SCOPE_SAME | REFENTRYSTR_FLAGS_SYNOPSIS, 174 " </xsl:text><xsl:call-template name="emit-indentation"/> <!-- hardcoded in VBoxManageHelp.cpp too --> 175 </xsl:template> 176 177 <xsl:template match="cmdsynopsis/command"> 178 <xsl:text>" }, 179 { REFENTRYSTR_SCOPE_SAME | REFENTRYSTR_FLAGS_SYNOPSIS, 180 "</xsl:text><xsl:call-template name="emit-indentation"/> 181 <xsl:apply-templates select="node()|@*"/> 182 </xsl:template> 183 184 <xsl:template match="cmdsynopsis/command[1]" priority="2"> 185 <xsl:apply-templates select="node()|@*"/> 175 186 </xsl:template> 176 187 … … 234 245 <!-- Format the text in the section --> 235 246 <xsl:for-each select="./*[name() != 'title']"> 236 <xsl:choose> 237 <xsl:when test="self::remark[@scope = 'help-copy-synopsis']"> 238 <xsl:variable name="sSrcId" select="concat('synopsis-', @condition)"/> 239 <xsl:if test="not(/refentry/refsynopsisdiv/cmdsynopsis[@id = $sSrcId])"> 240 <xsl:message terminate="yes">Could not find any cmdsynopsis with id=<xsl:value-of select="$sSrcId"/> in refsynopsisdiv.</xsl:message> 241 </xsl:if> 242 <xsl:apply-templates select="/refentry/refsynopsisdiv/cmdsynopsis[@id = $sSrcId]"/> 243 </xsl:when> 244 <xsl:otherwise> 245 <xsl:apply-templates select="."/> 246 </xsl:otherwise> 247 </xsl:choose> 247 <xsl:apply-templates select="."/> 248 248 </xsl:for-each> 249 249 … … 447 447 448 448 <!-- 449 Fail on misplaced scoping remarks.449 Execute synopsis copy remark (avoids duplication for complicated xml). 450 450 --> 451 451 <xsl:template match="remark[@role = 'help-copy-synopsis']"> 452 <xsl:choose> 453 <xsl:when test="parent::refsect2"/> 454 <xsl:otherwise> 455 <xsl:message terminate="yes">Misplaced remark/@role=help-copy-synopsis element. 456 Only supported on: refsect2</xsl:message> 457 </xsl:otherwise> 458 </xsl:choose> 452 <xsl:message terminate="yes">remark/@role=help-copy-synopsis is not supported by this stylesheet. Must preprocess input!</xsl:message> 459 453 </xsl:template> 460 454 -
trunk/doc/manual/en_US/user_VBoxManage.xml
r56466 r56533 4522 4522 </sect1> 4523 4523 4524 <xi:include href=" man_VBoxManage_debugvm.xml" xpointer="element(/1)"4524 <xi:include href="user_man_VBoxManage-debugvm.xml" xpointer="element(/1)" 4525 4525 xmlns:xi="http://www.w3.org/2001/XInclude" /> 4526 4526 4527 <xi:include href=" man_VBoxManage_extpack.xml" xpointer="element(/1)"4527 <xi:include href="user_man_VBoxManage-extpack.xml" xpointer="element(/1)" 4528 4528 xmlns:xi="http://www.w3.org/2001/XInclude" /> 4529 4529 </chapter> -
trunk/include/VBox/refentry.h
r56231 r56533 43 43 #define REFENTRY_NBSP '\b' 44 44 45 /** @name REFENTRYSTR_SCOPE_XXX - Common string scoping .45 /** @name REFENTRYSTR_SCOPE_XXX - Common string scoping and flags. 46 46 * @{ */ 47 /** Same scope as previous string table entry. */ 47 /** Same scope as previous string table entry, flags are reset and can be 48 * ORed in. */ 48 49 #define REFENTRYSTR_SCOPE_SAME UINT64_C(0) 49 50 /** Global scope. */ 50 #define REFENTRYSTR_SCOPE_GLOBAL UINT64_MAX 51 #define REFENTRYSTR_SCOPE_GLOBAL UINT64_C(0x00ffffffffffffff) 52 /** Scope mask. */ 53 #define REFENTRYSTR_SCOPE_MASK UINT64_C(0x00ffffffffffffff) 54 /** Flags mask. */ 55 #define REFENTRYSTR_FLAGS_MASK UINT64_C(0xff00000000000000) 56 /** Command synopsis, special hanging indent rules applies. */ 57 #define REFENTRYSTR_FLAGS_SYNOPSIS RT_BIT_64(63) 51 58 /** @} */ 52 59 -
trunk/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp
r56479 r56533 44 44 enum HELP_CMD_VBOXMANAGE g_enmCurCommand = HELP_CMD_VBOXMANAGE_INVALID; 45 45 /** The scope maskt for the current subcommand. */ 46 uint64_t g_fCurSubcommandScope = UINT64_MAX; 47 46 uint64_t g_fCurSubcommandScope = REFENTRYSTR_SCOPE_GLOBAL; 47 /** String of spaces that can be used for indentation. */ 48 static const char g_szSpaces[] = " "; 48 49 49 50 /** … … 58 59 Assert(g_enmCurCommand == HELP_CMD_VBOXMANAGE_INVALID); 59 60 g_enmCurCommand = enmCommand; 60 g_fCurSubcommandScope = UINT64_MAX;61 g_fCurSubcommandScope = REFENTRYSTR_SCOPE_GLOBAL; 61 62 } 62 63 … … 104 105 * @param psz The string table string to print. 105 106 * @param cchMaxWidth The maximum output width. 106 */ 107 static uint32_t printString(PRTSTREAM pStrm, const char *psz, uint32_t cchMaxWidth) 107 * @param fFlags String flags that may affect formatting. 108 */ 109 static uint32_t printString(PRTSTREAM pStrm, const char *psz, uint32_t cchMaxWidth, uint64_t fFlags) 108 110 { 109 111 uint32_t cLinesWritten; … … 142 144 while (*psz == ' ') 143 145 cchIndent++, psz++; 146 Assert(cchIndent + 4 + 1 <= RT_ELEMENTS(g_szSpaces)); 147 144 148 if (cchIndent + 8 >= cchMaxWidth) 145 149 cchMaxWidth += cchIndent + 8; 146 150 147 151 /* Work our way thru the string, line by line. */ 152 uint32_t cchHangingIndent = 0; 148 153 cLinesWritten = 0; 149 154 do 150 155 { 151 RTStrmWrite(pStrm, pszIndent, cchIndent);152 size_t offLine = cchIndent;153 bool fPendingSpace = false;156 RTStrmWrite(pStrm, g_szSpaces, cchIndent + cchHangingIndent); 157 size_t offLine = cchIndent + cchHangingIndent; 158 bool fPendingSpace = false; 154 159 do 155 160 { … … 183 188 RTStrmPutCh(pStrm, '\n'); 184 189 cLinesWritten++; 190 191 /* Set up hanging indent if relevant. */ 192 if (fFlags & REFENTRYSTR_FLAGS_SYNOPSIS) 193 cchHangingIndent = 4; 185 194 } while (*psz != '\0'); 186 195 } … … 223 232 { 224 233 uint64_t fCurScope = pStrTab->paStrings[i].fScope; 225 if (fCurScope == REFENTRYSTR_SCOPE_SAME) 226 fCurScope = fPrevScope; 227 if (fCurScope & fScope) 234 if ((fCurScope & REFENTRYSTR_SCOPE_MASK) == REFENTRYSTR_SCOPE_SAME) 235 { 236 fCurScope &= ~REFENTRYSTR_SCOPE_MASK; 237 fCurScope |= (fPrevScope & REFENTRYSTR_SCOPE_MASK); 238 } 239 if (fCurScope & REFENTRYSTR_SCOPE_MASK & fScope) 228 240 { 229 241 const char *psz = pStrTab->paStrings[i].psz; … … 236 248 cLinesWritten++; 237 249 } 238 cLinesWritten += printString(pStrm, psz, cchWidth );250 cLinesWritten += printString(pStrm, psz, cchWidth, fCurScope & REFENTRYSTR_FLAGS_MASK); 239 251 } 240 252 else … … 255 267 * @returns Number of lines written. 256 268 * @param enmCommand The command. 257 * @param fSubcommandScope The subcommand scope, UINT64_MAX for all. 269 * @param fSubcommandScope The subcommand scope, REFENTRYSTR_SCOPE_GLOBAL 270 * for all. 258 271 * @param pStrm The output stream. 259 272 */ … … 301 314 * 302 315 * @param enmCommand The command. 303 * @param fSubcommandScope The subcommand scope, UINT64_MAX for all. 316 * @param fSubcommandScope The subcommand scope, REFENTRYSTR_SCOPE_GLOBAL 317 * for all. 304 318 * @param pStrm The output stream. 305 319 */ … … 343 357 { 344 358 Assert(g_enmCurCommand != HELP_CMD_VBOXMANAGE_INVALID); 345 Assert(g_fCurSubcommandScope == UINT64_MAX);359 Assert(g_fCurSubcommandScope == REFENTRYSTR_SCOPE_GLOBAL); 346 360 347 361 return errorSyntax("No subcommand specified"); … … 360 374 { 361 375 Assert(g_enmCurCommand != HELP_CMD_VBOXMANAGE_INVALID); 362 Assert(g_fCurSubcommandScope == UINT64_MAX);376 Assert(g_fCurSubcommandScope == REFENTRYSTR_SCOPE_GLOBAL); 363 377 364 378 /* check if help was requested. */ … … 387 401 { 388 402 Assert(g_enmCurCommand != HELP_CMD_VBOXMANAGE_INVALID); 389 Assert(g_fCurSubcommandScope != UINT64_MAX);403 Assert(g_fCurSubcommandScope != REFENTRYSTR_SCOPE_GLOBAL); 390 404 391 405 /* check if help was requested. */
Note:
See TracChangeset
for help on using the changeset viewer.