├── Documentation ├── man │ ├── mpgl.1 │ ├── headerdoc.1 │ ├── hdxml2manxml.1 │ ├── xml2man.1 │ ├── gatherheaderdoc.1 │ └── headerdoc2html.1 ├── headerdoc.pdf ├── WhatsNewInHD8.pdf ├── Resources │ ├── Images │ │ ├── 1dot.gif │ │ ├── dash.gif │ │ ├── pdf.gif │ │ ├── bullet.gif │ │ ├── sm_dash.gif │ │ ├── spacer.gif │ │ ├── download.gif │ │ ├── indexpage.gif │ │ ├── pdf_logo.gif │ │ ├── sm_bullet.gif │ │ ├── e_indexpage.gif │ │ ├── graydiamond.gif │ │ ├── larg_bullet.gif │ │ ├── second_level.gif │ │ ├── vindexpage.gif │ │ ├── rate_page_icon.gif │ │ ├── show_toc_icon.gif │ │ ├── top_level_none.gif │ │ ├── top_level_open.gif │ │ ├── e_indexpage_range.gif │ │ ├── indexpage_range.gif │ │ ├── sm_opentriangle.gif │ │ ├── third_level_open.gif │ │ ├── top_level_closed.gif │ │ ├── vindexpage_range.gif │ │ ├── third_level_closed.gif │ │ └── top_level_closed_gray.gif │ └── JavaScript │ │ └── page.js ├── index.html ├── usage │ ├── chapter_2_section_4.html │ ├── chapter_3_section_4.html │ ├── chapter_2_section_3.html │ └── chapter_2_section_1.html ├── intro │ └── chapter_1_section_1.html ├── tags │ ├── chapter_3_section_7.html │ ├── chapter_2_section_7.html │ └── chapter_3_section_4.html └── gatherheaderdoc │ └── chapter_7_section_1.html ├── testsuite ├── Makefile ├── sources │ ├── copyright.h │ ├── linktest.h │ ├── meta.h │ ├── defun.h │ ├── availability.h │ ├── textblock.h │ ├── kr_c.c │ ├── javalinktest.java │ ├── overload.h │ ├── KernelFramework.hdoc │ ├── nestclass.h │ ├── tdefenum.h │ ├── enumsTest.h │ ├── mixed.h │ ├── bsh_function.bsh │ ├── sh_function.sh │ ├── ksh_function.ksh │ ├── functionTest.h │ ├── postfuncmod.h │ ├── ObjCProtocol.h │ ├── serialtest.java │ ├── operators.h │ ├── operators_spaces.h │ ├── template.h │ ├── fgroup.h │ ├── ObjCOneClass.h │ ├── ObjCTwoClasses.h │ ├── ObjCTwoClassesOneProtocol.h │ └── grouptest.h ├── mktestout.sh ├── diffhtml.sh ├── testHeaderDoc.sh ├── updateVerifiedOutput.sh ├── testLinkResolver.sh └── difftxt.sh ├── ExampleHeaders ├── copyright.h ├── linktest.h ├── meta.h ├── defun.h ├── availability.h ├── textblock.h ├── kr_c.c ├── linktest.java ├── overload.h ├── nestclass.h ├── classInARow.h ├── enumsTest.h ├── nameoverride.h ├── shell_sample │ ├── bsh_function.bsh │ ├── sh_function.sh │ └── ksh_function.ksh ├── functionTest.h ├── postfuncmod.h ├── Objective-C │ ├── CategoryTests │ │ ├── categoriesOnly │ │ │ ├── TrainsMisc.h │ │ │ └── Boats.h │ │ └── categoryWithOwningClass │ │ │ └── Trains.h │ ├── OneProtocol │ │ └── ObjCProtocol.h │ ├── OneClass │ │ └── ObjCOneClass.h │ ├── TwoClasses │ │ └── ObjCTwoClasses.h │ └── TwoClassesOneProtocol │ │ └── ObjCTwoClassesOneProtocol.h ├── template.h ├── fgroup.h ├── operators_spaces.h └── nestComments.h ├── dpkg └── control ├── FrameworkList ├── headerDoc2HTML.config-standard ├── README ├── xmlman ├── hdxml2manxml.mxml ├── Makefile ├── xml2man.mxml ├── example.mxml └── Syntax ├── headerDoc2HTML.config ├── headerDoc2HTML.config-xcodecolors ├── headerDoc2HTML.config-uglycolors ├── headerDoc2HTML.config-uglyblink ├── Modules └── HeaderDoc │ ├── Regen.pm │ ├── Availability.list │ ├── ClassArray.pm │ ├── ObjCProtocol.pm │ ├── DocReference.pm │ ├── ObjCClass.pm │ ├── MinorAPIElement.pm │ └── DBLookup.pm ├── processFramework.sh ├── Makefile └── exampletoctemplate.html /Documentation/man/mpgl.1: -------------------------------------------------------------------------------- 1 | .so man1/xml2man.1 2 | -------------------------------------------------------------------------------- /Documentation/man/headerdoc.1: -------------------------------------------------------------------------------- 1 | .so man1/headerdoc2html.1 2 | -------------------------------------------------------------------------------- /testsuite/Makefile: -------------------------------------------------------------------------------- 1 | 2 | runtests: 3 | ./testHeaderDoc.sh 4 | ./testLinkResolver.sh 5 | 6 | -------------------------------------------------------------------------------- /Documentation/headerdoc.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/headerdoc.pdf -------------------------------------------------------------------------------- /Documentation/WhatsNewInHD8.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/WhatsNewInHD8.pdf -------------------------------------------------------------------------------- /Documentation/Resources/Images/1dot.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/1dot.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/dash.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/dash.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/pdf.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/pdf.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/bullet.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/bullet.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/sm_dash.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/sm_dash.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/spacer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/spacer.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/download.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/download.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/indexpage.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/indexpage.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/pdf_logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/pdf_logo.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/sm_bullet.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/sm_bullet.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/e_indexpage.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/e_indexpage.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/graydiamond.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/graydiamond.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/larg_bullet.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/larg_bullet.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/second_level.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/second_level.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/vindexpage.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/vindexpage.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/rate_page_icon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/rate_page_icon.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/show_toc_icon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/show_toc_icon.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/top_level_none.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/top_level_none.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/top_level_open.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/top_level_open.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/e_indexpage_range.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/e_indexpage_range.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/indexpage_range.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/indexpage_range.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/sm_opentriangle.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/sm_opentriangle.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/third_level_open.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/third_level_open.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/top_level_closed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/top_level_closed.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/vindexpage_range.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/vindexpage_range.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/third_level_closed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/third_level_closed.gif -------------------------------------------------------------------------------- /Documentation/Resources/Images/top_level_closed_gray.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apple-oss-distributions/headerdoc/HEAD/Documentation/Resources/Images/top_level_closed_gray.gif -------------------------------------------------------------------------------- /ExampleHeaders/copyright.h: -------------------------------------------------------------------------------- 1 | /*! @header copytest 2 | @copyright Apple Computer 3 | */ 4 | 5 | /*! @function copyfunc 6 | This is a pointless function 7 | */ 8 | 9 | int copyfunc(int a); 10 | 11 | -------------------------------------------------------------------------------- /testsuite/sources/copyright.h: -------------------------------------------------------------------------------- 1 | /*! @header copytest 2 | @copyright Apple Computer 3 | */ 4 | 5 | /*! @function copyfunc 6 | This is a pointless function 7 | */ 8 | 9 | int copyfunc(int a); 10 | 11 | -------------------------------------------------------------------------------- /testsuite/mktestout.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | rm -rf test_output 4 | mkdir test_output 5 | for i in sources/* ; do 6 | echo "PROCESSING $i" 7 | ../headerDoc2HTML.pl -o test_output $i 8 | ../headerDoc2HTML.pl -X -o test_output $i 9 | done 10 | 11 | -------------------------------------------------------------------------------- /ExampleHeaders/linktest.h: -------------------------------------------------------------------------------- 1 | /*! @header foo.h 2 | @discussion For more information, see the index or {@link //apple_ref/occ//ObjCClassDeux/classTwoMethodFour:bogusOne:bogusTwo classTwoMethodFour documentation} if you'd like. 3 | */ 4 | -------------------------------------------------------------------------------- /testsuite/sources/linktest.h: -------------------------------------------------------------------------------- 1 | /*! @header foo.h 2 | @discussion For more information, see the index or {@link //apple_ref/occ//ObjCClassDeux/classTwoMethodFour:bogusOne:bogusTwo classTwoMethodFour documentation} if you'd like. 3 | */ 4 | -------------------------------------------------------------------------------- /ExampleHeaders/meta.h: -------------------------------------------------------------------------------- 1 | /*! @header copytest 2 | @copyright Apple Computer 3 | @meta http-equiv="refresh" content="1;http://www.apple.com/" 4 | */ 5 | 6 | /*! @function copyfunc 7 | This is a pointless function 8 | */ 9 | 10 | int copyfunc(int a); 11 | 12 | -------------------------------------------------------------------------------- /testsuite/sources/meta.h: -------------------------------------------------------------------------------- 1 | /*! @header copytest 2 | @copyright Apple Computer 3 | @meta http-equiv="refresh" content="1;http://www.apple.com/" 4 | */ 5 | 6 | /*! @function copyfunc 7 | This is a pointless function 8 | */ 9 | 10 | int copyfunc(int a); 11 | 12 | -------------------------------------------------------------------------------- /ExampleHeaders/defun.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | /*! @function foo 4 | @param a arg1 5 | @param b arg2 6 | */ 7 | 8 | #define foo(a, b) { printf(a, b) } 9 | 10 | /*! @function bar 11 | @param c arg3 12 | @param d arg4 13 | */ 14 | 15 | #define bar(c, d) { \ 16 | printf(c, d) \ 17 | } 18 | 19 | -------------------------------------------------------------------------------- /testsuite/sources/defun.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | /*! @function foo 4 | @param a arg1 5 | @param b arg2 6 | */ 7 | 8 | #define foo(a, b) { printf(a, b) } 9 | 10 | /*! @function bar 11 | @param c arg3 12 | @param d arg4 13 | */ 14 | 15 | #define bar(c, d) { \ 16 | printf(c, d) \ 17 | } 18 | 19 | -------------------------------------------------------------------------------- /ExampleHeaders/availability.h: -------------------------------------------------------------------------------- 1 | /*! @header foo.h 2 | @availability 10.2 and later 3 | @discussion foo discussion 4 | @cfbundleidentifier com.mycompany.mybundle 5 | */ 6 | 7 | /*! @function bar 8 | @availability 10.3 and later 9 | @updated 2003-07-22 10 | */ 11 | void bar(int a); 12 | 13 | -------------------------------------------------------------------------------- /ExampleHeaders/textblock.h: -------------------------------------------------------------------------------- 1 | /*! @header 2 | @discussion 3 | 4 | This is an example of how to use a textblock element. 5 | 6 |
 7 | 	@textblock
 8 | 	if (a<3) {
 9 | 		printf("a is less than 3.\n");
10 | 	}
11 | 	@/textblock
12 | 	
13 | 14 | For more information, reread this page. 15 | */ 16 | 17 | -------------------------------------------------------------------------------- /testsuite/sources/availability.h: -------------------------------------------------------------------------------- 1 | /*! @header foo.h 2 | @availability 10.2 and later 3 | @discussion foo discussion 4 | @cfbundleidentifier com.mycompany.mybundle 5 | */ 6 | 7 | /*! @function bar 8 | @availability 10.3 and later 9 | @updated 2003-07-22 10 | */ 11 | void bar(int a); 12 | 13 | -------------------------------------------------------------------------------- /ExampleHeaders/kr_c.c: -------------------------------------------------------------------------------- 1 | 2 | /*! @function ansifunc 3 | @discussion test of ANSI C and K&R C mixed. 4 | */ 5 | void ansifunc(int a, void b); 6 | 7 | /*! @function main 8 | @discussion doesn't do much 9 | */ 10 | 11 | main(a, b) 12 | int a; 13 | char *b; 14 | { 15 | int c; 16 | 17 | 18 | 19 | 20 | 21 | } 22 | -------------------------------------------------------------------------------- /testsuite/sources/textblock.h: -------------------------------------------------------------------------------- 1 | /*! @header 2 | @discussion 3 | 4 | This is an example of how to use a textblock element. 5 | 6 |
 7 | 	@textblock
 8 | 	if (a<3) {
 9 | 		printf("a is less than 3.\n");
10 | 	}
11 | 	@/textblock
12 | 	
13 | 14 | For more information, reread this page. 15 | */ 16 | 17 | -------------------------------------------------------------------------------- /testsuite/sources/kr_c.c: -------------------------------------------------------------------------------- 1 | 2 | /*! @function ansifunc 3 | @discussion test of ANSI C and K&R C mixed. 4 | */ 5 | void ansifunc(int a, void b); 6 | 7 | /*! @function main 8 | @discussion doesn't do much 9 | */ 10 | 11 | main(a, b) 12 | int a; 13 | char *b; 14 | { 15 | int c; 16 | 17 | 18 | 19 | 20 | 21 | } 22 | -------------------------------------------------------------------------------- /dpkg/control: -------------------------------------------------------------------------------- 1 | Package: headerdoc 2 | Maintainer: Darwin Developers 3 | Build-Depends: cctools, libsystem, files, zsh, gnumake, file-cmds, perl 4 | Description: Documentation generator 5 | HeaderDoc is a tool for generating HTML reference documentation from 6 | comments in C or C++ header files. 7 | -------------------------------------------------------------------------------- /ExampleHeaders/linktest.java: -------------------------------------------------------------------------------- 1 | 2 | /*! @class foo 3 | @discussion For more information, see the index, the index, or { @link foo The foo documentation }, or else maybe { @linkplain foo The plain foo docs }. Thanks. 4 | */ 5 | class foo 6 | { 7 | 8 | 9 | } 10 | 11 | -------------------------------------------------------------------------------- /ExampleHeaders/overload.h: -------------------------------------------------------------------------------- 1 | /*! @class overload_test 2 | */ 3 | 4 | class overload_test 5 | { 6 | /*! @function function 7 | @param a integer 8 | */ 9 | static int function(int a); 10 | 11 | /*! @function function 12 | @param a string 13 | @param b integer 14 | */ 15 | const char function(char *a, int b); 16 | 17 | } 18 | 19 | -------------------------------------------------------------------------------- /testsuite/sources/javalinktest.java: -------------------------------------------------------------------------------- 1 | 2 | /*! @class foo 3 | @discussion For more information, see the index, the index, or { @link foo The foo documentation }, or else maybe { @linkplain foo The plain foo docs }. Thanks. 4 | */ 5 | class foo 6 | { 7 | 8 | 9 | } 10 | 11 | -------------------------------------------------------------------------------- /testsuite/sources/overload.h: -------------------------------------------------------------------------------- 1 | /*! @class overload_test 2 | */ 3 | 4 | class overload_test 5 | { 6 | /*! @function function 7 | @param a integer 8 | */ 9 | static int function(int a); 10 | 11 | /*! @function function 12 | @param a string 13 | @param b integer 14 | */ 15 | const char function(char *a, int b); 16 | 17 | } 18 | 19 | -------------------------------------------------------------------------------- /Documentation/Resources/JavaScript/page.js: -------------------------------------------------------------------------------- 1 | function initialize_page() { // Called on page load to setup the page. announce_page_loaded(); } function announce_page_loaded() { // If we're in a frameset, tell the TOC frame this page was loaded, so it can track it. if (top.frames.length) { top.frames[0].page_loaded(document.location); } } -------------------------------------------------------------------------------- /testsuite/sources/KernelFramework.hdoc: -------------------------------------------------------------------------------- 1 | /*! @framework Device Drivers (Kernel/IOKit) 2 | @abstract 3 | @discussion The I/O Kit library provides the APIs and support for 4 | kernel-resident device drivers. It defines the base class for device 5 | drivers (IOService), several helper classes, and the families 6 | supporting many types of devices. The header files of the I/O Kit 7 | library are packaged in the Kernel framework 8 | */ 9 | -------------------------------------------------------------------------------- /ExampleHeaders/nestclass.h: -------------------------------------------------------------------------------- 1 | 2 | /*! @class outer 3 | @discussion outer class 4 | */ 5 | 6 | class outer 7 | { 8 | 9 | /*! @function outerfunc_1 */ 10 | void outerfunc_1(int b); 11 | 12 | /*! @class inner 13 | @discussion inner class 14 | */ 15 | class inner 16 | { 17 | 18 | /*! @function innerfunc */ 19 | char *innerfunc(int a); 20 | 21 | 22 | } 23 | 24 | /*! @function outerfunc_2 25 | */ 26 | long outerfunc_2(int c); 27 | 28 | 29 | } 30 | 31 | -------------------------------------------------------------------------------- /testsuite/sources/nestclass.h: -------------------------------------------------------------------------------- 1 | 2 | /*! @class outer 3 | @discussion outer class 4 | */ 5 | 6 | class outer 7 | { 8 | 9 | /*! @function outerfunc_1 */ 10 | void outerfunc_1(int b); 11 | 12 | /*! @class inner 13 | @discussion inner class 14 | */ 15 | class inner 16 | { 17 | 18 | /*! @function innerfunc */ 19 | char *innerfunc(int a); 20 | 21 | 22 | } 23 | 24 | /*! @function outerfunc_2 25 | */ 26 | long outerfunc_2(int c); 27 | 28 | 29 | } 30 | 31 | -------------------------------------------------------------------------------- /testsuite/diffhtml.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cd $2 4 | for i in $(find .) ; do 5 | NAME="$(echo $i | sed "s/^\.\///")" 6 | if [ -d $NAME ] ; then 7 | mkdir -p ../tmp/$NAME 8 | fi 9 | if [ -f $i ] ; then 10 | grep -v "\(Last Updated.*\)" ../$1/$i > ../tmp/$i-verified 11 | grep -v "\(Last Updated.*\)" ../$2/$i > ../tmp/$i-test 12 | diff -bBdu ../tmp/$i-verified ../tmp/$i-test > ../tmp/$i-diffhtml 13 | cat ../tmp/$i-diffhtml 14 | cat ../tmp/$i-diffhtml >> ../htmlchanges 15 | fi 16 | done 17 | 18 | -------------------------------------------------------------------------------- /FrameworkList: -------------------------------------------------------------------------------- 1 | /System/Library/Frameworks/Kernel.framework/Headers/IOKit kernel_iokit 2 | /System/Library/Frameworks/Kernel.framework/Headers/libkern libkern 3 | /System/Library/Frameworks/IOKit.framework/Versions/Current/Headers iokit_fw 4 | /System/Library/Frameworks/Security.framework/Headers/ SecurityFramework 5 | /System/Library/Frameworks/SystemConfiguration.framework/Headers/ sysconfig_fw 6 | /System/Library/Frameworks/ForceFeedback.framework/Headers/ force_feedback 7 | /usr/include/DNSServiceDiscovery/ DNSServiceDiscovery 8 | 9 | -------------------------------------------------------------------------------- /testsuite/sources/tdefenum.h: -------------------------------------------------------------------------------- 1 | /*! 2 | @typedef IOHIDOptionsType 3 | @abstract Options for opening a device via IOHIDLib. 4 | @constant kIOHIDOptionsTypeNone Default option. 5 | @constant kIOHIDOptionsTypeSeizeDevice Used to open exclusive 6 | communication with the device. This will prevent the system 7 | and other clients from receiving events from the device. 8 | */ 9 | enum IOHIDOptionsTypeEnum 10 | { 11 | kIOHIDOptionsTypeNone = 0x00, 12 | kIOHIDOptionsTypeSeizeDevice = 0x01 13 | }; 14 | typedef enum IOHIDOptionsTypeEnum IOHIDOptionsType; 15 | 16 | -------------------------------------------------------------------------------- /ExampleHeaders/classInARow.h: -------------------------------------------------------------------------------- 1 | 2 | /*! @class myclass 3 | This is a class test. 4 | */ 5 | class otherclass; 6 | class myclass 7 | { 8 | /*! @function func This is a test functon */ 9 | char *func(int a); 10 | 11 | } 12 | 13 | /*! @class classC 14 | This should document just the line that follows. 15 | */ 16 | class classC; 17 | class ThisShouldNeverAppear 18 | { 19 | /*! @function RootLevel 20 | This should (counterintuitively) show up as an ordinary C function, 21 | since the enclosing class is not marked up.... 22 | */ 23 | char *RootLevel(int a); 24 | 25 | } 26 | 27 | -------------------------------------------------------------------------------- /headerDoc2HTML.config-standard: -------------------------------------------------------------------------------- 1 | # Configuration file for HeaderDoc 2 | # $Revision: 1.1.2.1 $ 3 | ########################################################### 4 | copyrightOwner => 5 | defaultFrameName => index.html 6 | masterTOCName => masterTOC.html 7 | apiUIDPrefix => apple_ref 8 | ignorePrefixes => 9 | htmlHeader => 10 | dateFormat => M/D/Y 11 | textStyle => 12 | commentStyle => 13 | preprocessorStyle => 14 | funcNameStyle => 15 | stringStyle => 16 | charStyle => 17 | numberStyle => 18 | keywordStyle => 19 | typeStyle => 20 | paramStyle => 21 | varStyle => 22 | templateStyle => 23 | 24 | -------------------------------------------------------------------------------- /ExampleHeaders/enumsTest.h: -------------------------------------------------------------------------------- 1 | /*! @header Enums.h 2 | @discussion This header tests the supported types of enum declarations. 3 | */ 4 | 5 | /*! 6 | @enum Beverage Categories Complete 7 | @discussion Test of anonymous enum with English name of more than one word. 8 | @constant kSoda Sweet, carbonated, non-alcoholic beverages. 9 | @constant kBeer Light, grain-based, alcoholic beverages. 10 | @constant kMilk Dairy beverages. 11 | @constant kWater Unflavored, non-sweet, non-caloric, non-alcoholic beverages. 12 | */ 13 | enum { 14 | kSoda, 15 | kBeer, 16 | kMilk, 17 | kWater 18 | }; 19 | -------------------------------------------------------------------------------- /testsuite/sources/enumsTest.h: -------------------------------------------------------------------------------- 1 | /*! @header Enums.h 2 | @discussion This header tests the supported types of enum declarations. 3 | */ 4 | 5 | /*! 6 | @enum Beverage Categories Complete 7 | @discussion Test of anonymous enum with English name of more than one word. 8 | @constant kSoda Sweet, carbonated, non-alcoholic beverages. 9 | @constant kBeer Light, grain-based, alcoholic beverages. 10 | @constant kMilk Dairy beverages. 11 | @constant kWater Unflavored, non-sweet, non-caloric, non-alcoholic beverages. 12 | */ 13 | enum { 14 | kSoda, 15 | kBeer, 16 | kMilk, 17 | kWater 18 | }; 19 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | 2 | README for HeaderDoc 3 | 4 | HeaderDoc is a text processing engine designed to pull specially-formatted 5 | comments out of source code and header files. 6 | 7 | HeaderDoc comes pre-installed in Mac OS X. If you are installing on a 8 | non-Mac OS X computer, or if you are installing an updated version of 9 | HeaderDoc on a Mac OS X computer, you can quickly install by simply typing: 10 | 11 | sudo make realinstall 12 | 13 | For additional documentation on headerdoc, look at the HTML files in the 14 | Documentation directory and at the man pages for gatherheaderdoc and 15 | headerdoc2html. 16 | 17 | -------------------------------------------------------------------------------- /testsuite/sources/mixed.h: -------------------------------------------------------------------------------- 1 | 2 | /*! @struct foo 3 | @abstract test struct 4 | @attribute readable false 5 | @attributeblock accessibility 6 | This is a royal bloody mess 7 | that no one in their right minds should use. 8 | @attributelist other stuff 9 | people John, James, Ralph, Terry 10 | places Paris, Cairo, Luxembourg 11 | */ 12 | 13 | struct foo { 14 | int a = 3; 15 | char *b = "this is a test"; // this should be a comment 16 | char *c = "this is \" a test"; /* this should be, too */ 17 | char d = 'f'; /* this "should" // still 18 | be 'a' comment */ 19 | char e = '\''; 20 | } 21 | -------------------------------------------------------------------------------- /Documentation/man/hdxml2manxml.1: -------------------------------------------------------------------------------- 1 | .\" Automatically generated from mdocxml 2 | .Dd August 28, 2002 3 | .Dt "Document title" 1 4 | .Os Darwin 5 | .Sh NAME 6 | .Nm hdxml2manxml 7 | .Nd HeaderDoc XML to MPGL translator 8 | .Sh SYNOPSIS 9 | .Nm 10 | .Ar filename [ filename ... ] 11 | .Sh OPTIONS 12 | The available options are as follows: 13 | .Bl -tag -width XXXXXXXXXXXXXXXXXXXXXXXXXXXXX 14 | .It Ar "filename [ filename ... ]" 15 | the filename(s) to be processed 16 | .El 17 | .Sh ENVIRONMENT 18 | This tool was designed to translate from headerdoc's XML output to an mxml file for use with xml2man. 19 | .Sh SEE ALSO 20 | For more information on xml2man, see 21 | .Pp 22 | .Xr xml2man 1 , 23 | -------------------------------------------------------------------------------- /xmlman/hdxml2manxml.mxml: -------------------------------------------------------------------------------- 1 | 2 | August 28, 2002 3 | Document title 4 | Darwin 5 |
1
6 | 7 | hdxml2manxmlHeaderDoc XML to MPGL translator 8 | 9 | 10 | 11 | filename [ filename ... ]the filename(s) to be processed 12 | 13 | 14 | 15 | This tool was designed to translate from headerdoc's XML output to an mxml 16 | file for use with xml2man. 17 | 18 | 19 | 20 |

For more information on xml2man, see

21 | xml2man
1
,
22 |
23 | 24 |
25 | -------------------------------------------------------------------------------- /xmlman/Makefile: -------------------------------------------------------------------------------- 1 | 2 | DEBUG_CFLAGS= 3 | # DEBUG_CFLAGS="-g" 4 | 5 | # LOCALCFLAGS= -I/usr/local/include/libxml2 6 | LOCALCFLAGS= 7 | # LOCALLDFLAGS= -L/usr/local/lib 8 | LOCALLDFLAGS= 9 | 10 | CFLAGS= ${LOCALCFLAGS} -I/usr/include/libxml2 -Wall ${RC_CFLAGS} ${DEBUG_CFLAGS} 11 | LDFLAGS= ${LOCALLDFLAGS} -lxml2 -force_flat_namespace 12 | 13 | all: xml2man hdxml2manxml resolveLinks 14 | if [ "X${DEBUG_CFLAGS}" == "X" ] ; then \ 15 | echo "Stripping"; \ 16 | strip xml2man ; \ 17 | strip hdxml2manxml ; \ 18 | strip resolveLinks ; \ 19 | fi 20 | 21 | clean: 22 | rm -f xml2man hdxml2manxml resolveLinks 23 | 24 | xml2man: xml2man.c 25 | hdxml2manxml: hdxml2manxml.c 26 | resolveLinks: resolveLinks.c 27 | 28 | -------------------------------------------------------------------------------- /ExampleHeaders/nameoverride.h: -------------------------------------------------------------------------------- 1 | /*! @header OverrideHeaderName.h 2 | @abstract This tests header name override. 3 | @discussion 4 | If this shows up as "OverrideHeaderName.h", things worked. If it shows up as 5 | "nameoverride.h", then something is wrong. 6 | */ 7 | 8 | /*! @function anonymous_parameter_test 9 | @abstract Test of anonymous parameters (void *, void *). 10 | */ 11 | virtual IOReturn anonymous_parameter_test(void *command, void *data, void *, void *); 12 | 13 | /*! @function varargs_test 14 | @abstract Test of variable argument lists. 15 | @param foo Format string. 16 | @param ... additional parameters. 17 | */ 18 | virtual IOReturn varargs_test(const char *foo,...); 19 | 20 | -------------------------------------------------------------------------------- /testsuite/sources/bsh_function.bsh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #/*! @function formatmessage 4 | # @abstract formats a message in a dumb way 5 | # @param $1 The last word of the message 6 | # @param $2 The next-to-last word of the message 7 | # @param $3+ The rest of the message 8 | #*/ 9 | 10 | formatmessage() 11 | { 12 | LW=$1 13 | NLW=$2 14 | shift 15 | shift 16 | STRING=$@ 17 | echo "$STRING $NLW $LW" 18 | } 19 | 20 | # Here starteh the script. And yea, though the script be 21 | # short, it doth make thee laugh. 22 | 23 | formatmessage test. a This is 24 | formatmessage system. broadcast This is only a test of the emergency 25 | formatmessage "this station." watching If this had been an actual emergency, you would not be 26 | 27 | -------------------------------------------------------------------------------- /testsuite/sources/sh_function.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | #/*! @function formatmessage 4 | # @abstract formats a message in a dumb way 5 | # @param $1 The last word of the message 6 | # @param $2 The next-to-last word of the message 7 | # @param $3+ The rest of the message 8 | #*/ 9 | 10 | formatmessage() 11 | { 12 | LW=$1 13 | NLW=$2 14 | shift 15 | shift 16 | STRING=$@ 17 | echo "$STRING $NLW $LW" 18 | } 19 | 20 | # Here starteh the script. And yea, though the script be 21 | # short, it doth make thee laugh. 22 | 23 | formatmessage test. a This is 24 | formatmessage system. broadcast This is only a test of the emergency 25 | formatmessage "this station." watching If this had been an actual emergency, you would not be 26 | 27 | -------------------------------------------------------------------------------- /ExampleHeaders/shell_sample/bsh_function.bsh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #/*! @function formatmessage 4 | # @abstract formats a message in a dumb way 5 | # @param $1 The last word of the message 6 | # @param $2 The next-to-last word of the message 7 | # @param $3+ The rest of the message 8 | #*/ 9 | 10 | formatmessage() 11 | { 12 | LW=$1 13 | NLW=$2 14 | shift 15 | shift 16 | STRING=$@ 17 | echo "$STRING $NLW $LW" 18 | } 19 | 20 | # Here starteh the script. And yea, though the script be 21 | # short, it doth make thee laugh. 22 | 23 | formatmessage test. a This is 24 | formatmessage system. broadcast This is only a test of the emergency 25 | formatmessage "this station." watching If this had been an actual emergency, you would not be 26 | 27 | -------------------------------------------------------------------------------- /ExampleHeaders/shell_sample/sh_function.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | #/*! @function formatmessage 4 | # @abstract formats a message in a dumb way 5 | # @param $1 The last word of the message 6 | # @param $2 The next-to-last word of the message 7 | # @param $3+ The rest of the message 8 | #*/ 9 | 10 | formatmessage() 11 | { 12 | LW=$1 13 | NLW=$2 14 | shift 15 | shift 16 | STRING=$@ 17 | echo "$STRING $NLW $LW" 18 | } 19 | 20 | # Here starteh the script. And yea, though the script be 21 | # short, it doth make thee laugh. 22 | 23 | formatmessage test. a This is 24 | formatmessage system. broadcast This is only a test of the emergency 25 | formatmessage "this station." watching If this had been an actual emergency, you would not be 26 | 27 | -------------------------------------------------------------------------------- /testsuite/sources/ksh_function.ksh: -------------------------------------------------------------------------------- 1 | #!/bin/ksh 2 | 3 | #/*! @function formatmessage 4 | # @abstract formats a message in a dumb way 5 | # @param $1 The last word of the message 6 | # @param $2 The next-to-last word of the message 7 | # @param $3+ The rest of the message 8 | #*/ 9 | 10 | function formatmessage() 11 | { 12 | LW=$1 13 | NLW=$2 14 | shift 15 | shift 16 | STRING=$@ 17 | echo "$STRING $NLW $LW" 18 | } 19 | 20 | # Here starteh the script. And yea, though the script be 21 | # short, it doth make thee laugh. 22 | 23 | formatmessage test. a This is 24 | formatmessage system. broadcast This is only a test of the emergency 25 | formatmessage "this station." watching If this had been an actual emergency, you would not be 26 | 27 | -------------------------------------------------------------------------------- /testsuite/sources/functionTest.h: -------------------------------------------------------------------------------- 1 | /*! @header Function.h 2 | @abstract This header tests the supported types of functions declarations. 3 | @discussion 4 | While this header is important for parser testing purposes, a 5 | better example of how to document functions can be found in fgroup.h. 6 | */ 7 | 8 | /*! @function anonymous_parameter_test 9 | @abstract Test of anonymous parameters (void *, void *). 10 | */ 11 | virtual IOReturn anonymous_parameter_test(void *command, void *data, void *, void *); 12 | 13 | /*! @function varargs_test 14 | @abstract Test of variable argument lists. 15 | @param foo Format string. 16 | @param ... additional parameters. 17 | */ 18 | virtual IOReturn varargs_test(const char *foo,...); 19 | 20 | -------------------------------------------------------------------------------- /ExampleHeaders/shell_sample/ksh_function.ksh: -------------------------------------------------------------------------------- 1 | #!/bin/ksh 2 | 3 | #/*! @function formatmessage 4 | # @abstract formats a message in a dumb way 5 | # @param $1 The last word of the message 6 | # @param $2 The next-to-last word of the message 7 | # @param $3+ The rest of the message 8 | #*/ 9 | 10 | function formatmessage() 11 | { 12 | LW=$1 13 | NLW=$2 14 | shift 15 | shift 16 | STRING=$@ 17 | echo "$STRING $NLW $LW" 18 | } 19 | 20 | # Here starteh the script. And yea, though the script be 21 | # short, it doth make thee laugh. 22 | 23 | formatmessage test. a This is 24 | formatmessage system. broadcast This is only a test of the emergency 25 | formatmessage "this station." watching If this had been an actual emergency, you would not be 26 | 27 | -------------------------------------------------------------------------------- /Documentation/man/xml2man.1: -------------------------------------------------------------------------------- 1 | .\" Automatically generated from mdocxml 2 | .Dd August 28, 2002 3 | .Dt "XML2MAN" 1 4 | .Os Darwin 5 | .Sh NAME 6 | .Nm xml2man 7 | .Nd MPGL to mdoc (man page) translator 8 | .Sh SYNOPSIS 9 | .Nm 10 | .Ar filename 11 | .Ar output_filename 12 | .Sh OPTIONS 13 | The available options are as follows: 14 | .Bl -tag -width XXXXXXXXXXXXXXXXXXX 15 | .It Ar "filename" 16 | This is the filename 17 | .It Ar "output_filename" 18 | This is the filename 19 | .El 20 | .Sh ENVIRONMENT 21 | This program was designed to convert Man Page Generation Language (MPGL) XML files into mdoc-based manual pages. The MPGL is a fairly direct translation of mdoc to XML. 22 | .Pp 23 | .Sh SEE ALSO 24 | For more information on hdxml2manxml, see 25 | .Pp 26 | .Xr hdxml2manxml 1 , 27 | -------------------------------------------------------------------------------- /testsuite/testHeaderDoc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Generate test output. 4 | # 5 | ./mktestout.sh 6 | 7 | # copy master TOC (and other TOCs) 8 | cp verified_output/*.html test_output 9 | # cp verified_output/masterTOC.html test_output 10 | 11 | # Translate the HTML to text and diff it. 12 | # 13 | rm -f textchanges 14 | ./difftxt.sh verified_output test_output 15 | 16 | # Diff the raw HTML. 17 | # 18 | rm -f htmlchanges 19 | ./diffhtml.sh verified_output test_output 20 | 21 | # Move the results out of the way of other tests. 22 | # 23 | mv textchanges textchanges-hd 24 | mv htmlchanges htmlchanges-hd 25 | 26 | TEXTDIFF="$(cat textchanges-hd)"; 27 | HTMLDIFF="$(cat htmlchanges-hd)"; 28 | 29 | if [ "X$TEXTDIFF" == "X" ] ; then 30 | if [ "X$HTMLDIFF" == "X" ] ; then 31 | exit 0 32 | fi 33 | fi 34 | exit 1 35 | 36 | -------------------------------------------------------------------------------- /xmlman/xml2man.mxml: -------------------------------------------------------------------------------- 1 | 2 | August 28, 2002 3 | XML2MAN 4 | Darwin 5 |
1
6 | 7 | xml2manMPGL to mdoc (man page) translator 8 | 9 | 10 | 11 | filenameThis is the filename 12 | output_filenameThis is the filename 13 | 14 | 15 | 16 |

This program was designed to convert Man Page Generation Language (MPGL) XML 17 | files into mdoc-based manual pages. The MPGL is a fairly direct translation 18 | of mdoc to XML.

19 |
20 | 21 | 22 |

For more information on hdxml2manxml, see

23 | hdxml2manxml
1
,
24 |
25 | 26 |
27 | -------------------------------------------------------------------------------- /ExampleHeaders/functionTest.h: -------------------------------------------------------------------------------- 1 | /*! @header Function.h 2 | @abstract This header tests the supported types of functions declarations. 3 | @discussion 4 | While this header is important for parser testing purposes, a 5 | better example of how to document functions can be found in fgroup.h. 6 | */ 7 | 8 | /*! @function anonymous_parameter_test 9 | @abstract Test of anonymous parameters (void *, void *). 10 | */ 11 | virtual IOReturn anonymous_parameter_test(void *command, void *data, void *, void *); 12 | 13 | /*! @function varargs_test 14 | @abstract Test of variable argument lists. 15 | @param foo Format string. 16 | @param ... additional parameters. 17 | */ 18 | virtual IOReturn varargs_test(const char *foo,...); 19 | 20 | /*! @function arrayparam_test 21 | @param someArray This is a test of array parameters. 22 | */ 23 | void testFunc(char someArray[32]); 24 | 25 | -------------------------------------------------------------------------------- /headerDoc2HTML.config: -------------------------------------------------------------------------------- 1 | # Configuration file for HeaderDoc 2 | # $Revision: 1.5.4.1.2.20 $ 3 | ########################################################### 4 | copyrightOwner => 5 | defaultFrameName => index.html 6 | masterTOCName => masterTOC.html 7 | apiUIDPrefix => apple_ref 8 | ignorePrefixes => 9 | htmlHeader => 10 | dateFormat => M/D/Y 11 | textStyle => 12 | commentStyle => background:#ffffff; color:#236e25 13 | preprocessorStyle => background:#ffffff; color:#236e25 14 | funcNameStyle => background:#ffffff; color:#000000; 15 | stringStyle => background: #ffffff; color:#891315; 16 | charStyle => background: #ffffff; color:#0000ff; 17 | numberStyle => background: #ffffff; color:#0000ff; 18 | keywordStyle => background:#ffffff; color:#761550; 19 | typeStyle => background:#ffffff; color:#761550; 20 | paramStyle => background:#ffffff; color:#000000; 21 | varStyle => background:#ffffff; color:#000000; 22 | templateStyle => background:#ffffff; color:#761550; 23 | 24 | -------------------------------------------------------------------------------- /headerDoc2HTML.config-xcodecolors: -------------------------------------------------------------------------------- 1 | # Configuration file for HeaderDoc 2 | # $Revision: 1.1.2.1 $ 3 | ########################################################### 4 | copyrightOwner => 5 | defaultFrameName => index.html 6 | masterTOCName => masterTOC.html 7 | apiUIDPrefix => apple_ref 8 | ignorePrefixes => 9 | htmlHeader => 10 | dateFormat => M/D/Y 11 | textStyle => 12 | commentStyle => background:#ffffff; color:#236e25 13 | preprocessorStyle => background:#ffffff; color:#236e25 14 | funcNameStyle => background:#ffffff; color:#000000; 15 | stringStyle => background: #ffffff; color:#891315; 16 | charStyle => background: #ffffff; color:#0000ff; 17 | numberStyle => background: #ffffff; color:#0000ff; 18 | keywordStyle => background:#ffffff; color:#761550; 19 | typeStyle => background:#ffffff; color:#761550; 20 | paramStyle => background:#ffffff; color:#000000; 21 | varStyle => background:#ffffff; color:#000000; 22 | templateStyle => background:#ffffff; color:#761550; 23 | 24 | -------------------------------------------------------------------------------- /headerDoc2HTML.config-uglycolors: -------------------------------------------------------------------------------- 1 | # Configuration file for HeaderDoc 2 | # $Revision: 1.1.2.1 $ 3 | ########################################################### 4 | copyrightOwner => 5 | defaultFrameName => index.html 6 | masterTOCName => masterTOC.html 7 | apiUIDPrefix => apple_ref 8 | ignorePrefixes => 9 | htmlHeader => 10 | dateFormat => M/D/Y 11 | textStyle => 12 | commentStyle => background:#ff00ff; color:#236e25 13 | preprocessorStyle => background:#ffffff; color:#236e25 14 | funcNameStyle => background:#ffff80; color:#000080; 15 | stringStyle => background: #ffffff; color:#60ffff; 16 | charStyle => background: #ffffff; color:#ff6060; 17 | numberStyle => background: #303030; color:#6060ff; 18 | keywordStyle => background:#ff8080; color:#008080; 19 | typeStyle => background:#000000; color:#ffffff; 20 | paramStyle => background:#808080; color:#00ff00; 21 | varStyle => background:#ffffff; color:#ff0000; 22 | templateStyle => background:#ccccff; color:#008000; font-family: sand, comic sans ms, comic sans, script; font-weight: bold; text-decoration: underline; 23 | 24 | -------------------------------------------------------------------------------- /Documentation/man/gatherheaderdoc.1: -------------------------------------------------------------------------------- 1 | .\" $Apple: gatherheaderdoc.1,v 1.1 2003/06/13 10:53:00 dgatwood Exp $ 2 | .\" Copyright (c) 2003 Apple Computer, Inc. 3 | .\" All rights reserved. 4 | .\" 5 | .Dd June 13, 2003 6 | .Dt GATHERHEADERDOC 1 7 | .Os Darwin 8 | .Sh NAME 9 | .Nm gatherheaderdoc 10 | .Nd header documentation processor 11 | .Sh SYNOPSIS 12 | .Nm gatherheaderdoc 13 | .Ar directory 14 | .Sh DESCRIPTION 15 | .Nm Gatherheaderdoc 16 | processes the headerdoc output in 17 | .Ar directory 18 | and creates an index page that links to each header's 19 | documentation. 20 | 21 | .Pp 22 | .Sh FILES 23 | .Bl -tag -width /$HOME/Library/Preferences/com.apple.headerDoc2HTML.config -compact 24 | .It Pa /$HOME/Library/Preferences/com.apple.headerDoc2HTML.config 25 | .El 26 | .Sh SEE ALSO 27 | .Xr headerdoc2html 1 28 | .Pp 29 | 30 | For more information, see the headerdoc documentation. 31 | It can be found in 32 | 33 | .Pa /Developer/Documentation/DeveloperTools 34 | 35 | if you have the developer tools package installed, or at 36 | 37 | .Pa http://developer.apple.com 38 | 39 | in the developer tools documentation section. 40 | 41 | -------------------------------------------------------------------------------- /testsuite/updateVerifiedOutput.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This script should be run when the current output has been 4 | # certified to be entirely more correct than the previous output, 5 | # with no regressions. It makes the new output become the 6 | # baseline for future testing. 7 | 8 | 9 | # Generate the new test output 10 | # 11 | ./mktestout.sh 12 | rm -rf verified_output 13 | rm -rf temp1 temp2 14 | 15 | 16 | # Make a copy in temp1 and rename to temp2. 17 | # 18 | cp -r test_output temp1 19 | mv test_output temp2 20 | 21 | 22 | # Gather headerdoc comments and modify the tree for temp2. 23 | # Copy the masterTOC file into temp1. This simulates the 24 | # environment used by testLinkResolver. 25 | # 26 | ../gatherHeaderDoc.pl temp2 27 | cp temp2/masterTOC.html temp1 28 | 29 | 30 | # Generate the list of expected diffs that should be 31 | # caused by gatherHeaderDoc and resolvelinks 32 | # 33 | ./diffhtml.sh temp1 temp2 > /dev/null 34 | mv htmlchanges lr_expected_htmlchanges 35 | 36 | 37 | # Make temp1 (the one on which gatherHeaderDoc/resolveLinks has NOT 38 | # been run) the official certified source. 39 | # 40 | mv temp1 verified_output 41 | 42 | 43 | # Clean up.... 44 | # 45 | rm -rf temp2 46 | 47 | -------------------------------------------------------------------------------- /testsuite/testLinkResolver.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Copy the verified output to temp1 for testing. 4 | # We can't test on the output of the current HeaderDoc, 5 | # as that would make isolating bugs muhc harder. 6 | # 7 | rm -rf temp1 temp2 8 | cp -R verified_output temp1 9 | cp -R verified_output temp2 10 | 11 | # Run gatherHeaderDoc. 12 | # 13 | ../gatherHeaderDoc.pl temp2 14 | 15 | # Translate the HTML to text and diff it. 16 | # 17 | rm -f textchanges 18 | ./difftxt.sh temp1 temp2 19 | 20 | # Diff the raw HTML. 21 | # 22 | rm -f htmlchanges 23 | ./diffhtml.sh temp1 temp2 > /dev/null 24 | 25 | # Move the results out of the way of other tests. 26 | # 27 | mv textchanges textchanges-lr 28 | mv htmlchanges htmlchanges-lr 29 | 30 | # Of the HTML changes (there will be some), compare them 31 | # to the -expected- changes made by resolveLinks, and 32 | # report any differences in the diffs. 33 | # 34 | diff -u htmlchanges-lr lr_expected_htmlchanges > htmlchanges-lr-diffs 35 | cat htmlchanges-lr-diffs 36 | 37 | TEXTDIFF="$(cat textchanges-lr)"; 38 | HTMLDIFF="$(cat htmlchanges-lr-diffs)"; 39 | 40 | if [ "X$TEXTDIFF" == "X" ] ; then 41 | if [ "X$HTMLDIFF" == "X" ] ; then 42 | exit 0 43 | fi 44 | fi 45 | exit 1 46 | 47 | -------------------------------------------------------------------------------- /headerDoc2HTML.config-uglyblink: -------------------------------------------------------------------------------- 1 | # Configuration file for HeaderDoc 2 | # $Revision: 1.1.2.1 $ 3 | ########################################################### 4 | copyrightOwner => 5 | defaultFrameName => index.html 6 | masterTOCName => masterTOC.html 7 | apiUIDPrefix => apple_ref 8 | ignorePrefixes => 9 | htmlHeader => 10 | dateFormat => M/D/Y 11 | textStyle => 12 | commentStyle => background:#ff00ff; color:#236e25; text-decoration:blink; 13 | preprocessorStyle => background:#ffffff; color:#236e25; text-decoration:blink; 14 | funcNameStyle => background:#ffff80; color:#000080; text-decoration:blink; 15 | stringStyle => background: #ffffff; color:#60ffff; text-decoration:blink; 16 | charStyle => background: #ffffff; color:#ff6060; text-decoration:blink; 17 | numberStyle => background: #303030; color:#6060ff; text-decoration:blink; 18 | keywordStyle => background:#ff8080; color:#008080; text-decoration:blink; 19 | typeStyle => background:#000000; color:#ffffff; text-decoration:blink; 20 | paramStyle => background:#808080; color:#00ff00; text-decoration:blink; 21 | varStyle => background:#ffffff; color:#ff0000; text-decoration:blink; 22 | templateStyle => background:#ccccff; color:#008000; font-family: sand, comic sans ms, comic sans, script; font-weight: bold; text-decoration: underline; 23 | 24 | -------------------------------------------------------------------------------- /ExampleHeaders/postfuncmod.h: -------------------------------------------------------------------------------- 1 | /*! @function getParentIterator 2 | @abstract Returns an iterator over an registry entry's parent entries in a specified plane. 3 | @param plane The plane object. 4 | @result Returns an iterator over the parents of the registry entry, or zero if there is a resource failure. The iterator must be released when the iteration is finished. All objects returned by the iteration are retained while the iterator is valid, though they may no longer be attached during the iteration. */ 5 | 6 | virtual OSIterator * getParentIterator( const IORegistryPlane * plane ) 7 | const; 8 | virtual void applyToParents( IORegistryEntryApplierFunction applier, 9 | void * context, 10 | const IORegistryPlane * plane ) const; 11 | 12 | /*! @function getParentEntry 13 | @abstract Returns an registry entry's first parent entry in a plane. 14 | @discussion This function will return the parent to which a registry entry was first attached. Since the majority of registry entrys have only one provider, this is a useful simplification. 15 | @param plane The plane object. 16 | @result Returns the first parent of the registry entry, or zero if the entry is not attached into the registry in that plane. The parent is retained while the entry is attached, and should not be released by the caller. */ 17 | 18 | virtual IORegistryEntry * getParentEntry( const IORegistryPlane * plane ) const; 19 | -------------------------------------------------------------------------------- /testsuite/sources/postfuncmod.h: -------------------------------------------------------------------------------- 1 | /*! @function getParentIterator 2 | @abstract Returns an iterator over an registry entry's parent entries in a specified plane. 3 | @param plane The plane object. 4 | @result Returns an iterator over the parents of the registry entry, or zero if there is a resource failure. The iterator must be released when the iteration is finished. All objects returned by the iteration are retained while the iterator is valid, though they may no longer be attached during the iteration. */ 5 | 6 | virtual OSIterator * getParentIterator( const IORegistryPlane * plane ) 7 | const; 8 | virtual void applyToParents( IORegistryEntryApplierFunction applier, 9 | void * context, 10 | const IORegistryPlane * plane ) const; 11 | 12 | /*! @function getParentEntry 13 | @abstract Returns an registry entry's first parent entry in a plane. 14 | @discussion This function will return the parent to which a registry entry was first attached. Since the majority of registry entrys have only one provider, this is a useful simplification. 15 | @param plane The plane object. 16 | @result Returns the first parent of the registry entry, or zero if the entry is not attached into the registry in that plane. The parent is retained while the entry is attached, and should not be released by the caller. */ 17 | 18 | virtual IORegistryEntry * getParentEntry( const IORegistryPlane * plane ) const; 19 | -------------------------------------------------------------------------------- /ExampleHeaders/Objective-C/CategoryTests/categoriesOnly/TrainsMisc.h: -------------------------------------------------------------------------------- 1 | /* 2 | TrainsMisc.h 3 | Application Kit 4 | Copyright (c) 1994-1997, Apple Computer, Inc. 5 | All rights reserved. 6 | */ 7 | 8 | /*! @header TrainsMisc.h 9 | @discussion This header is used to exercise HeaderDoc's ability to generate documentation from Objective-C headers. It includes declarations for C API and Objective-C classes, protocols, categories, and methods. The code is definitely NOT part of Cocoa, although some declarations have been snagged from Cocoa headers. 10 | */ 11 | 12 | 13 | /*! 14 | @typedef NSTitlePosition 15 | Constants that represent title positions. 16 | @abstract Abstract for this API. 17 | @discussion Discussion that applies to the entire typedef'd enum. 18 | @constant NSNoTitle No title. 19 | @constant NSAboveTop Description of second constant. 20 | @constant NSAtTop Description of third constant. 21 | */ 22 | typedef enum _NSTitlePosition { 23 | NSNoTitle = 0, 24 | NSAboveTop = 1, 25 | NSAtTop = 2, 26 | NSBelowTop = 3, 27 | NSAboveBottom = 4, 28 | NSAtBottom = 5, 29 | NSBelowBottom = 6 30 | } NSTitlePosition; 31 | 32 | /*! 33 | @category Trains(Performance) 34 | @abstract The Performance category instruments the Train class for performance analysis. 35 | @discussion Methods declared in the Performance category of the Trains class are typically used during development--to analyze and improve performance. 36 | */ 37 | 38 | @interface Trains(Performance) 39 | /*! 40 | @method canYouGoAnyFaster 41 | @abstract Queries the Train for its capabilities 42 | */ 43 | - (BOOL)canYouGoAnyFaster; 44 | @end 45 | 46 | -------------------------------------------------------------------------------- /testsuite/sources/ObjCProtocol.h: -------------------------------------------------------------------------------- 1 | /* 2 | ObjCTestHeader.h 3 | Application Kit 4 | Copyright (c) 1994-1997, Apple Computer, Inc. 5 | All rights reserved. 6 | */ 7 | 8 | /*! @header ObjCTestHeader.h 9 | @discussion This header is used to exercise HeaderDoc's ability to generate documentation from Objective-C headers. It includes declarations for C API and Objective-C classes, protocols, categories, and methods. The code is definitely NOT part of Cocoa, although some declarations have been snagged from Cocoa headers. 10 | */ 11 | 12 | #import 13 | 14 | @class NSFont; 15 | 16 | /*! 17 | @typedef NSTitlePosition 18 | Constants that represent title positions. 19 | @abstract Abstract for this API. 20 | @discussion Discussion that applies to the entire typedef'd enum. 21 | @constant NSNoTitle No title. 22 | @constant NSAboveTop Description of second constant. 23 | @constant NSAtTop Description of third constant. 24 | */ 25 | typedef enum _NSTitlePosition { 26 | NSNoTitle = 0, 27 | NSAboveTop = 1, 28 | NSAtTop = 2, 29 | NSBelowTop = 3, 30 | NSAboveBottom = 4, 31 | NSAtBottom = 5, 32 | NSBelowBottom = 6 33 | } NSTitlePosition; 34 | 35 | /*! 36 | @protocol ObjCProtocolOne 37 | @abstract Protocol implemented by validator objects. 38 | @discussion All validator objects validate--in fact, they can't 39 | help themselves. That's what they do. 40 | */ 41 | 42 | @protocol NSUserInterfaceValidations 43 | /*! 44 | @method validateUserInterfaceItem: 45 | @abstract Validates the specified item. 46 | @param anItem The item to be validated. 47 | */ 48 | - (BOOL)validateUserInterfaceItem:(id )anItem; 49 | @end 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /ExampleHeaders/Objective-C/OneProtocol/ObjCProtocol.h: -------------------------------------------------------------------------------- 1 | /* 2 | ObjCTestHeader.h 3 | Application Kit 4 | Copyright (c) 1994-1997, Apple Computer, Inc. 5 | All rights reserved. 6 | */ 7 | 8 | /*! @header ObjCTestHeader.h 9 | @discussion This header is used to exercise HeaderDoc's ability to generate documentation from Objective-C headers. It includes declarations for C API and Objective-C classes, protocols, categories, and methods. The code is definitely NOT part of Cocoa, although some declarations have been snagged from Cocoa headers. 10 | */ 11 | 12 | #import 13 | 14 | @class NSFont; 15 | 16 | /*! 17 | @typedef NSTitlePosition 18 | Constants that represent title positions. 19 | @abstract Abstract for this API. 20 | @discussion Discussion that applies to the entire typedef'd enum. 21 | @constant NSNoTitle No title. 22 | @constant NSAboveTop Description of second constant. 23 | @constant NSAtTop Description of third constant. 24 | */ 25 | typedef enum _NSTitlePosition { 26 | NSNoTitle = 0, 27 | NSAboveTop = 1, 28 | NSAtTop = 2, 29 | NSBelowTop = 3, 30 | NSAboveBottom = 4, 31 | NSAtBottom = 5, 32 | NSBelowBottom = 6 33 | } NSTitlePosition; 34 | 35 | /*! 36 | @protocol ObjCProtocolOne 37 | @abstract Protocol implemented by validator objects. 38 | @discussion All validator objects validate--in fact, they can't 39 | help themselves. That's what they do. 40 | */ 41 | 42 | @protocol NSUserInterfaceValidations 43 | /*! 44 | @method validateUserInterfaceItem: 45 | @abstract Validates the specified item. 46 | @param anItem The item to be validated. 47 | */ 48 | - (BOOL)validateUserInterfaceItem:(id )anItem; 49 | @end 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /ExampleHeaders/Objective-C/CategoryTests/categoriesOnly/Boats.h: -------------------------------------------------------------------------------- 1 | /* 2 | Boats.h 3 | Application Kit 4 | Copyright (c) 1994-1997, Apple Computer, Inc. 5 | All rights reserved. 6 | */ 7 | 8 | /*! @header Boats.h 9 | @discussion This header is used to exercise HeaderDoc's ability to generate documentation from Objective-C headers. It includes declarations for C API and Objective-C classes, protocols, categories, and methods. The code is definitely NOT part of Cocoa, although some declarations have been snagged from Cocoa headers. 10 | */ 11 | 12 | #import 13 | 14 | @class NSFont; 15 | 16 | /*! 17 | @typedef NSTitlePosition 18 | Constants that represent title positions. 19 | @abstract Abstract for this API. 20 | @discussion Discussion that applies to the entire typedef'd enum. 21 | @constant NSNoTitle No title. 22 | @constant NSAboveTop Description of second constant. 23 | @constant NSAtTop Description of third constant. 24 | */ 25 | typedef enum _NSTitlePosition { 26 | NSNoTitle = 0, 27 | NSAboveTop = 1, 28 | NSAtTop = 2, 29 | NSBelowTop = 3, 30 | NSAboveBottom = 4, 31 | NSAtBottom = 5, 32 | NSBelowBottom = 6 33 | } NSTitlePosition; 34 | 35 | /*! 36 | @category Boats (BoatsCanFly) 37 | @abstract The BoatsCanFly category adds levitation methods to the Boat class. 38 | @discussion Methods declared in the BoatsCanFly category of the Boats class can only be used with properly equiped Boat objects. 39 | */ 40 | 41 | @interface Boats (BoatsCanFly) 42 | /*! 43 | @method levitateToHeight: 44 | @abstract Raises the boat specified number of centimeters 45 | @param height The number of centimeters to levitate. 46 | */ 47 | - (void)levitateToHeight:(float)height; 48 | @end 49 | 50 | -------------------------------------------------------------------------------- /testsuite/sources/serialtest.java: -------------------------------------------------------------------------------- 1 | 2 | /** This is an I/O Class */ 3 | class File implements java.io.Serializable { 4 | /** @serial 5 | This is a serial field description. 6 | */ 7 | int a; 8 | 9 | private String[] pathcomponents; 10 | // Define serializable fields with the ObjectStreamClass 11 | 12 | 13 | 14 | /** 15 | 16 | 17 | * @serialField path String 18 | 19 | 20 | * Path components separated by separator. 21 | 22 | 23 | */ 24 | 25 | 26 | private static final ObjectStreamField[] serialPersistentFields 27 | = new ObjectStreamField("path", String.class); 28 | 29 | /** 30 | 31 | 32 | * @serialData Default fields followed by separator character. 33 | 34 | 35 | */ 36 | 37 | 38 | private void writeObject(ObjectOutputStream s) 39 | throws IOException 40 | { 41 | ObjectOutputStream.PutField fields = s.putFields(); 42 | StringBuffer str = new StringBuffer(); 43 | for(int i = 0; i < pathcomponents; i++) { 44 | str.append(separator); 45 | str.append(pathcomponents[i]); 46 | } 47 | fields.put("path", str.toString()); 48 | s.writeFields(); 49 | s.writeChar(separatorChar); // Add the separator character 50 | } 51 | 52 | private void readObject(ObjectInputStream s) 53 | throws IOException 54 | { 55 | ObjectInputStream.GetField fields = s.readFields(); 56 | String path = (String)fields.get("path", null); 57 | char sep = s.readChar(); // read the previous separator char 58 | 59 | 60 | // parse path into components using the separator 61 | // and store into pathcomponents array. 62 | } 63 | } 64 | 65 | -------------------------------------------------------------------------------- /testsuite/sources/operators.h: -------------------------------------------------------------------------------- 1 | /*! @functiongroup Operators */ 2 | 3 | /*! 4 | @function operator<< 5 | @abstract Inequality operator 6 | @discussion All message contents, including the parameters, are checked. 7 | @result True if the messages are different. 8 | @param inOtherMessage The message to compare. 9 | */ 10 | bool 11 | operator<<( 12 | const Message &inOtherMessage) const 13 | { 14 | return !(*this == inOtherMessage); 15 | } 16 | 17 | /*! 18 | @function operator>> 19 | @abstract Inequality operator 20 | @discussion All message contents, including the parameters, are checked. 21 | @result True if the messages are different. 22 | @param inOtherMessage The message to compare. 23 | */ 24 | bool 25 | operator>>( 26 | const Message &inOtherMessage) const 27 | { 28 | return !(*this == inOtherMessage); 29 | } 30 | /*! 31 | @constant foo 32 | */ 33 | const int foo; 34 | 35 | /*! 36 | @function operator== 37 | @abstract Equality operator 38 | @discussion All message contents, including the parameters, are checked. 39 | @result True if the messages are identical. 40 | @param inOtherMessage The message to compare. 41 | */ 42 | bool 43 | operator==( 44 | const Message &inOtherMessage) const; 45 | /*! 46 | @function operator!= 47 | @abstract Inequality operator 48 | @discussion All message contents, including the parameters, are checked. 49 | @result True if the messages are different. 50 | @param inOtherMessage The message to compare. 51 | */ 52 | bool 53 | operator!=( 54 | const Message &inOtherMessage) const 55 | { 56 | return !(*this == inOtherMessage); 57 | } 58 | 59 | 60 | -------------------------------------------------------------------------------- /testsuite/sources/operators_spaces.h: -------------------------------------------------------------------------------- 1 | /*! @functiongroup Operators */ 2 | 3 | /*! 4 | @function operator << 5 | @abstract Inequality operator 6 | @discussion All message contents, including the parameters, are checked. 7 | @result True if the messages are different. 8 | @param inOtherMessage The message to compare. 9 | */ 10 | bool 11 | operator << ( 12 | const Message &inOtherMessage) const 13 | { 14 | return !(*this == inOtherMessage); 15 | } 16 | 17 | /*! 18 | @function operator >> 19 | @abstract Inequality operator 20 | @discussion All message contents, including the parameters, are checked. 21 | @result True if the messages are different. 22 | @param inOtherMessage The message to compare. 23 | */ 24 | bool 25 | operator >> ( 26 | const Message &inOtherMessage) const 27 | { 28 | return !(*this == inOtherMessage); 29 | } 30 | /*! 31 | @constant foo 32 | */ 33 | const int foo; 34 | 35 | /*! 36 | @function operator == 37 | @abstract Equality operator 38 | @discussion All message contents, including the parameters, are checked. 39 | @result True if the messages are identical. 40 | @param inOtherMessage The message to compare. 41 | */ 42 | bool 43 | operator == ( 44 | const Message &inOtherMessage) const; 45 | /*! 46 | @function operator != 47 | @abstract Inequality operator 48 | @discussion All message contents, including the parameters, are checked. 49 | @result True if the messages are different. 50 | @param inOtherMessage The message to compare. 51 | */ 52 | bool 53 | operator != ( 54 | const Message &inOtherMessage) const 55 | { 56 | return !(*this == inOtherMessage); 57 | } 58 | 59 | 60 | -------------------------------------------------------------------------------- /Documentation/index.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | Tools: HeaderDoc Unfettered 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 24 | 25 | 26 | 27 | 28 | 29 | 35 | 36 | <body bgcolor="#e6e6e6"><a name="//apple_ref/doc/uid/TP40001215" title="HeaderDoc Unfettered" turn_anchor="yes"></a> 37 | <h2>This document set is best viewed in a browser that supports frames. To access the first page <a href="intro/chapter_1_section_1.html">Click here</a></h2> 38 | </body> 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /testsuite/difftxt.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Uncomment if you're getting inexplicable hangs with "www". 4 | # (Why didn't it send the error message to stderr!?! 5 | # rm -f /tmp/w3c-cache/.lock 6 | 7 | LYNX="/sw/bin/lynx" 8 | LYNXB="/usr/local/bin/lynx" 9 | # WWW="/sw/bin/www -list" 10 | 11 | if [ ! -x "$LYNX" ] ; then 12 | if [ ! -x "$LYNXB" ] ; then 13 | echo "Sorry. The HeadaerDoc regression test suite requires" 14 | echo " lynx to be installed. You can obtain lynx from:" 15 | echo " http://lynx.isc.org" 16 | 17 | exit -1; 18 | fi 19 | LYNX="$LYNXB" 20 | fi 21 | 22 | HTMLTOTEXT="$LYNX -dump -nolist" 23 | # HTMLTOTEXT="$WWW" 24 | 25 | # LYNXPATTERN='^ *.*\. file:\/\/localhost' 26 | WWWPATTERN='^\[.*\] file:' 27 | # REFPATTERN="$LYNXPATTERN" 28 | 29 | cd $1 30 | FILES="$(find .)"; 31 | cd .. 32 | 33 | for i in $FILES ; do 34 | NAME="$(echo $i | sed "s/^\.\///")" 35 | # echo "PROCESSING $NAME"; 36 | if [ -d "$1/$NAME" ] ; then 37 | mkdir -p ./tmp/$NAME 38 | else 39 | if [ -f "$1/$NAME" ] ; then 40 | # echo "$NAME:" 41 | # echo $NAME ../tmp/$NAME-test ../$2/$NAME ../tmp/$NAME-test 42 | # echo "$HTMLTOTEXT $1/$NAME > ./tmp/$NAME-verified" 43 | 44 | # Convert to text and delete links references. 45 | mkdir -p "./tmp/$(dirname $NAME)" 46 | cp $1/$NAME ./tmp/$NAME 47 | $HTMLTOTEXT ./tmp/$NAME | grep -v "\(Last Updated .*\)" > ./tmp/$NAME-verified 48 | cp $2/$NAME ./tmp/$NAME 49 | $HTMLTOTEXT ./tmp/$NAME | grep -v "\(Last Updated .*\)" > ./tmp/$NAME-test 50 | diff -bBdu --ignore-all-space ./tmp/$NAME-verified ./tmp/$NAME-test > ./tmp/$NAME-txtdiff 51 | rm ./tmp/$NAME 52 | STRING="$(cat ./tmp/$NAME-txtdiff)" 53 | if [ "X$STRING" != "X" ] ; then 54 | echo "Diffing $NAME" 55 | cat "./tmp/$NAME-txtdiff" 56 | fi 57 | cat "./tmp/$NAME-txtdiff" >> textchanges 58 | # rm ./tmp/$NAME-verified ./tmp/$NAME-test 59 | else 60 | echo "Could not process file $1/NAME"; 61 | fi 62 | fi 63 | done 64 | 65 | -------------------------------------------------------------------------------- /xmlman/example.mxml: -------------------------------------------------------------------------------- 1 | 2 | August 28, 2002 3 | Document title 4 | Darwin 5 |
1
6 | 7 | foothis is a description 8 | barthis is also a description 9 | 10 | 11 | 12 | aattributesThis is the atts flag 13 | ddateThis is the date flag 14 | xThis is the -x flag 15 | filenameThis is the filename 16 | 17 | 18 | 19 |

Returns kIONotANumber if you can't count.

20 |

Returns kIOMoron if you REALLY can't count.

21 |
22 | 23 | 24 | TEXT 25 | 26 | 27 | 28 | /path/to/filenameThis is a waste of time 29 | /path/to/another/filenameThis is also a waste of time 30 | 31 | 32 | 33 | TEXT 34 | 35 | 36 | 37 | TEXT 38 | 39 | 40 | 41 | TEXT 42 | 43 | 44 | 45 |

This is a text container, really, but generally contains 46 | lines like this:

47 | foo
1
,
48 | bar
3
49 |
50 | 51 | 52 |

Here's a list of conformance:

53 |
    54 |
  • Single UNIX Specification
  • 55 |
  • POSIX
  • 56 |
57 | 58 |

Here's a definition list:

59 |
60 |
foo_aaa
61 |
This is foo
62 |
bar
63 |
This is bar
64 |
65 | 66 |
67 | 68 | 69 | This program should be history.... 70 | 71 | 72 | 73 |

Here are some bugs:

74 |

75 |

    76 |
  1. Bug one....
  2. 77 |
  3. Bug two....
  4. 78 |
  5. Bug three....
  6. 79 |
80 |

81 |

I think that pretty much covers it.

82 |
83 |
84 | -------------------------------------------------------------------------------- /ExampleHeaders/template.h: -------------------------------------------------------------------------------- 1 | /*! @header 2 | @updated 2999-10-10 3 | */ 4 | 5 | /*! @class Bar 6 | @discussion This is a test class. 7 | @updated 2003-04-01 8 | */ 9 | class Bar { 10 | public: 11 | /*! @functiongroup group_1 */ 12 | /*! @function foo 13 | @abstract Test method 14 | */ 15 | static int foo(int a, char *b) { if (a < 3) printf("%s\n", b); }; 16 | /*! @functiongroup group_2 */ 17 | /*! @method mymethod 18 | @abstract My method 19 | */ 20 | void mymethod(int b); 21 | 22 | /*! @struct foobar 23 | @abstract test foobar 24 | @updated 2003-02-01 25 | */ 26 | struct { 27 | int a; 28 | char *b; 29 | } foobar; 30 | 31 | /*! @var test 32 | @abstract test 33 | @updated 12-14-06 34 | */ 35 | int test; 36 | /*! @functiongroup group_1 */ 37 | /*! @function group1_test 38 | */ 39 | void group1_test(int a); 40 | 41 | private: 42 | 43 | /*! 44 | @var foovar 45 | @abstract This is a test abstract. 46 | @discussion This is a test discussion. 47 | @updated 2003-05-02 48 | */ 49 | int foovar; 50 | } ; 51 | 52 | /*! @template correlate 53 | @templatefield FOO this is the base data type 54 | @templatefield BAR this is the data type of correlated data 55 | @discussion This class does basic correlation of two data types 56 | */ 57 | template 58 | class correlate 59 | { 60 | public: 61 | /*! @function insert 62 | @discussion insert new entry 63 | */ 64 | bool insert(FOO, BAR); 65 | 66 | /*! @function commatest 67 | @abstract Watch for extra line breaks 68 | */ 69 | virtual bool CreateItemWithIdentifier(const ACFString &inIdentifier, 70 | const AEventParaneter &inConfigData, 71 | AEventParameter &outItem); 72 | 73 | /*! @function S3Handle 74 | @discussion Hmm. 75 | @templatefield FOO the foo type. 76 | */ 77 | template operator S3Handle() { return S3Handle(mData); }; 78 | } 79 | /*! @class test 80 | @discussion This had better not disappear. 81 | */ 82 | class test 83 | { 84 | public: 85 | int testint; 86 | } 87 | -------------------------------------------------------------------------------- /testsuite/sources/template.h: -------------------------------------------------------------------------------- 1 | /*! @header 2 | @updated 2999-10-10 3 | */ 4 | 5 | /*! @class Bar 6 | @discussion This is a test class. 7 | @updated 2003-04-01 8 | */ 9 | class Bar { 10 | public: 11 | /*! @functiongroup group_1 */ 12 | /*! @function foo 13 | @abstract Test method 14 | */ 15 | static int foo(int a, char *b) { if (a < 3) printf("%s\n", b); }; 16 | /*! @functiongroup group_2 */ 17 | /*! @method mymethod 18 | @abstract My method 19 | */ 20 | void mymethod(int b); 21 | 22 | /*! @struct foobar 23 | @abstract test foobar 24 | @updated 2003-02-01 25 | */ 26 | struct { 27 | int a; 28 | char *b; 29 | } foobar; 30 | 31 | /*! @var test 32 | @abstract test 33 | @updated 12-14-06 34 | */ 35 | int test; 36 | /*! @functiongroup group_1 */ 37 | /*! @function group1_test 38 | */ 39 | void group1_test(int a); 40 | 41 | private: 42 | 43 | /*! 44 | @var foovar 45 | @abstract This is a test abstract. 46 | @discussion This is a test discussion. 47 | @updated 2003-05-02 48 | */ 49 | int foovar; 50 | } ; 51 | 52 | /*! @template correlate 53 | @templatefield FOO this is the base data type 54 | @templatefield BAR this is the data type of correlated data 55 | @discussion This class does basic correlation of two data types 56 | */ 57 | template 58 | class correlate 59 | { 60 | public: 61 | /*! @function insert 62 | @discussion insert new entry 63 | */ 64 | bool insert(FOO, BAR); 65 | 66 | /*! @function commatest 67 | @abstract Watch for extra line breaks 68 | */ 69 | virtual bool CreateItemWithIdentifier(const ACFString &inIdentifier, 70 | const AEventParaneter &inConfigData, 71 | AEventParameter &outItem); 72 | 73 | /*! @function S3Handle 74 | @discussion Hmm. 75 | @templatefield FOO the foo type. 76 | */ 77 | template operator S3Handle() { return S3Handle(mData); }; 78 | } 79 | /*! @class test 80 | @discussion This had better not disappear. 81 | */ 82 | class test 83 | { 84 | public: 85 | int testint; 86 | } 87 | -------------------------------------------------------------------------------- /Documentation/man/headerdoc2html.1: -------------------------------------------------------------------------------- 1 | .\" $Apple: headerdoc2html.1,v 1.1 2003/06/13 10:53:00 dgatwood Exp $ 2 | .\" Copyright (c) 2003 Apple Computer, Inc. 3 | .\" All rights reserved. 4 | .\" 5 | .Dd June 13, 2003 6 | .Dt HEADERDOC2HTML 1 7 | .Os Darwin 8 | .Sh NAME 9 | .Nm headerdoc2html 10 | .Nd header documentation processor 11 | .Sh SYNOPSIS 12 | .Nm headerdoc2html 13 | .Op Fl HXdhquvx 14 | .Op Fl o Ar output_dir 15 | .Ar file 16 | .Op file ... 17 | .Sh DESCRIPTION 18 | .Nm Headerdoc2html 19 | processes the header 20 | .Ar file 21 | or files and generates HTML documentation based 22 | on specially-formatted comments. 23 | .Pp 24 | 25 | The options are as follows: 26 | .Bl -tag -width flag 27 | .It Fl H 28 | The 29 | .Fl H 30 | option turns on inclusion of the htmlHeader line, as specified in the config file. 31 | .It Fl X 32 | The 33 | .Fl X 34 | option switches from HTML to XML output 35 | .It Fl d 36 | The 37 | .Fl d 38 | option turns on extra debugging output. 39 | .It Fl h 40 | The 41 | .Fl h 42 | option causes headerdoc to output an XML 43 | file containing metadata about the resulting 44 | document. 45 | .It Fl q 46 | The 47 | .Fl q 48 | option causes headerdoc to be excessively quiet. 49 | .It Fl u 50 | The 51 | .Fl u 52 | option causes headerdoc to produce unsorted output. 53 | .It Fl v 54 | The 55 | .Fl v 56 | option causes headerdoc to print version information. 57 | .It Fl x 58 | The 59 | .Fl x 60 | option causes headerdoc to export fils in a format suitable for 61 | inclusion in a database. 62 | .El 63 | .Pp 64 | If no options are specified, headerdoc will produce directories 65 | containing its standard HTML output. 66 | .Pp 67 | .Sh FILES 68 | .Bl -tag -width /$HOME/Library/Preferences/com.apple.headerDoc2HTML.config -compact 69 | .It Pa /$HOME/Library/Preferences/com.apple.headerDoc2HTML.config 70 | .El 71 | .Sh SEE ALSO 72 | .Xr gatherheaderdoc 1 73 | .Pp 74 | 75 | For more information, see the headerdoc documentation. 76 | It can be found in 77 | 78 | .Pa /Developer/Documentation/DeveloperTools 79 | 80 | if you have the developer tools package installed, or at 81 | 82 | .Pa http://developer.apple.com 83 | 84 | in the developer tools documentation section. 85 | 86 | -------------------------------------------------------------------------------- /Modules/HeaderDoc/Regen.pm: -------------------------------------------------------------------------------- 1 | #! /usr/bin/perl 2 | # 3 | # Class name: Typedef 4 | # Synopsis: Holds typedef info parsed by headerDoc 5 | # 6 | # Author: Matt Morse (matt@apple.com) 7 | # Last Updated: $Date: 2004/06/10 22:12:16 $ 8 | # 9 | # Copyright (c) 1999-2004 Apple Computer, Inc. All rights reserved. 10 | # 11 | # @APPLE_LICENSE_HEADER_START@ 12 | # 13 | # This file contains Original Code and/or Modifications of Original Code 14 | # as defined in and that are subject to the Apple Public Source License 15 | # Version 2.0 (the 'License'). You may not use this file except in 16 | # compliance with the License. Please obtain a copy of the License at 17 | # http://www.opensource.apple.com/apsl/ and read it before using this 18 | # file. 19 | # 20 | # The Original Code and all software distributed under the License are 21 | # distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 22 | # EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 23 | # INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 24 | # FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 25 | # Please see the License for the specific language governing rights and 26 | # limitations under the License. 27 | # 28 | # @APPLE_LICENSE_HEADER_END@ 29 | # 30 | ###################################################################### 31 | package HeaderDoc::Regen; 32 | 33 | use HeaderDoc::Utilities qw(findRelativePath safeName getAPINameAndDisc printArray printHash linesFromFile); 34 | use HeaderDoc::HeaderElement; 35 | use HeaderDoc::MinorAPIElement; 36 | use HeaderDoc::APIOwner; 37 | use XML::Twig; 38 | 39 | use strict; 40 | use vars qw($VERSION @ISA); 41 | $VERSION = '1.20'; 42 | 43 | sub stringFromFile 44 | { 45 | my $name = shift; 46 | my @strings = &linesFromFile($name); 47 | my $ret = ""; 48 | 49 | foreach my $string (@strings) { $ret .= $string; } 50 | return $ret; 51 | } 52 | 53 | sub regenerate 54 | { 55 | my $self = shift; 56 | my $inpath = shift; 57 | my $outpath = shift; 58 | 59 | print "Would regenerate $inpath->$outpath if this did something.\n"; 60 | 61 | my $xmlfile = $inpath; 62 | $xmlfile =~ s/^(.*)\..*?$/$1.xml/o; 63 | 64 | if (!-f $xmlfile) { 65 | print "No XML file found for $inpath. Skipping.\n"; 66 | # } else { 67 | # print "found $xmlfile\n"; 68 | } 69 | my $xml_string = stringFromFile($xmlfile); 70 | # print "XS: $xml_string\n"; 71 | my $twig = XML::Twig->new(keep_encoding => 1, keep_spaces => 1); 72 | $twig->parse($xml_string); 73 | 74 | # Twig::New(); 75 | 76 | 77 | 78 | } 79 | 80 | 1; 81 | 82 | -------------------------------------------------------------------------------- /processFramework.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # 4 | # This script is used to process frameworks for the developer.apple.com 5 | # website. Since the script is also somewhat handy for anybody else 6 | # doing similar amounts of procesing, I'm including it here, though you 7 | # will probably want to change some of the options to headerDoc2HTML.pl 8 | # and gatherHeaderDoc.pl if you use it. 9 | # 10 | # The script is straightforward. It reads a file called 11 | # FrameworkList that contains lines in the form 12 | # 13 | # /path/to/headers MyFrameworkName 14 | # 15 | # and processes the directory "headers", storing results in a folder 16 | # called MyFrameworkName. The Master TOC file is named 17 | # MyFrameworkName.html instead of the usual masterTOC.html. 18 | # 19 | # Finally, the third argument is used to create an xml file that 20 | # is used to store metadata about the newly-generated documentation 21 | # directory. If you aren't in our group at Apple, that part 22 | # is probably not relevant to you, but it isn't worth maintaining 23 | # a separate version for such a tiny option. 24 | # 25 | 26 | FRAMEWORKS="$(cat FrameworkList)"; 27 | oldifs="$IFS" 28 | # NOTE: This is intentionally a string containing a newline. 29 | IFS=" 30 | " 31 | 32 | for frameworkline in $FRAMEWORKS ; do 33 | if [ "$frameworklineX" != "X" ] ; then 34 | framework="$(echo $frameworkline | cut -f1 -d' ')" 35 | frameworkName="$(echo $frameworkline | cut -f2 -d' ')" 36 | 37 | echo "FRAMEWORK: $framework" 38 | echo "FRAMEWORKNAME: $frameworkName" 39 | 40 | frameworkDir="$framework" 41 | # frameworkName=`basename $framework` 42 | outputDir="framework_output/$frameworkName" 43 | rm -rf $outputDir 44 | mkdir -p $outputDir 45 | echo "Processing $frameworkDir into $outputDir"; 46 | delete=0 47 | 48 | frameworkHDOC="frameworkHDOC/$frameworkName.hdoc" 49 | 50 | echo "HDOC FILE WOULD BE $frameworkHDOC" 51 | if [ -f "$frameworkHDOC" ] ; then 52 | mkdir copyframework; 53 | cp $frameworkHDOC copyframework; 54 | cp -R $frameworkDir copyframework; 55 | frameworkDir="copyframework" 56 | cat $frameworkHDOC 57 | delete=1 58 | fi 59 | # ls $frameworkDir 60 | 61 | ./headerDoc2HTML.pl -H -O -o $outputDir $frameworkDir 62 | ./gatherHeaderDoc.pl $outputDir $frameworkName.html 63 | 64 | if [ $delete == 1 ] ; then 65 | echo "Cleaning up." 66 | # echo "Will delete $frameworkDir"; 67 | # sleep 5; 68 | chmod -R u+w copyframework 69 | rm -rf copyframework 70 | fi 71 | 72 | 73 | fi 74 | done 75 | 76 | if [ -f "./breadcrumbtree.pl" ] ; then 77 | ./breadcrumbtree.pl framework_output 78 | fi 79 | 80 | IFS="$oldifs" 81 | 82 | -------------------------------------------------------------------------------- /ExampleHeaders/fgroup.h: -------------------------------------------------------------------------------- 1 | /*! @header Function.h 2 | @discussion This header tests the supported types of functions declarations. 3 | */ 4 | 5 | /*! @function _maintRequest 6 | @abstract Synchrounous implementation of $link addEventSource & $link removeEventSource functions. 7 | @discussion Test of unnamed parameters. */ 8 | virtual IOReturn _maintRequest(void *command, void *data, void *, void *); 9 | 10 | /*! @function test 11 | @abstract Test of vararg. 12 | @param foo Format string. 13 | @param ... additional parameters. */ 14 | virtual IOReturn test(const char *foo,...); 15 | 16 | 17 | /*! @functiongroup group_1 */ 18 | 19 | /*! @function _maintRequest1 20 | @abstract Synchrounous implementation of $link addEventSource & $link removeEventSource functions. 21 | @discussion Test of unnamed parameters. */ 22 | virtual IOReturn _maintRequest1(void *command, void *data, void *, void *); 23 | 24 | /*! @function test1 25 | @abstract Test of vararg. 26 | @param foo Format string. 27 | @param ... additional parameters. */ 28 | virtual IOReturn test(const char *foo,...); 29 | 30 | /*! @functiongroup group_2 31 | */ 32 | 33 | /*! @function _maintRequest2 34 | @abstract Synchrounous implementation of $link addEventSource & $link removeEventSource functions. 35 | @discussion Test of unnamed parameters. */ 36 | virtual IOReturn _maintRequest2(void *command, void *data, void *, void *); 37 | 38 | /*! @function test2 39 | @abstract Test of vararg. 40 | @param foo Format string. 41 | @param ... additional parameters. */ 42 | virtual IOReturn test(const char *foo,...); 43 | 44 | /*! @functiongroup group_0 */ 45 | 46 | /*! @function _maintRequest3 47 | @abstract Synchrounous implementation of $link addEventSource & $link removeEventSource functions. 48 | @discussion Test of unnamed parameters. */ 49 | virtual IOReturn _maintRequest3(void *command, void *data, void *, void *); 50 | 51 | /*! @function test3 52 | @abstract Test of vararg. 53 | @param foo Format string. 54 | @param ... additional parameters. */ 55 | virtual IOReturn test(const char *foo,...); 56 | 57 | /*! @functiongroup group_1 58 | */ 59 | 60 | /*! @function _maintRequest4 61 | @abstract Synchrounous implementation of $link addEventSource & $link removeEventSource functions. 62 | @discussion Test of unnamed parameters. */ 63 | virtual IOReturn _maintRequest4(void *command, void *data, void *, void *); 64 | 65 | /*! @function test4 66 | @abstract Test of vararg. 67 | @param foo Format string. 68 | @param ... additional parameters. */ 69 | virtual IOReturn test(const char *foo,...); 70 | 71 | -------------------------------------------------------------------------------- /testsuite/sources/fgroup.h: -------------------------------------------------------------------------------- 1 | /*! @header Function.h 2 | @discussion This header tests the supported types of functions declarations. 3 | */ 4 | 5 | /*! @function _maintRequest 6 | @abstract Synchrounous implementation of $link addEventSource & $link removeEventSource functions. 7 | @discussion Test of unnamed parameters. */ 8 | virtual IOReturn _maintRequest(void *command, void *data, void *, void *); 9 | 10 | /*! @function test 11 | @abstract Test of vararg. 12 | @param foo Format string. 13 | @param ... additional parameters. */ 14 | virtual IOReturn test(const char *foo,...); 15 | 16 | 17 | /*! @functiongroup group_1 */ 18 | 19 | /*! @function _maintRequest1 20 | @abstract Synchrounous implementation of $link addEventSource & $link removeEventSource functions. 21 | @discussion Test of unnamed parameters. */ 22 | virtual IOReturn _maintRequest1(void *command, void *data, void *, void *); 23 | 24 | /*! @function test1 25 | @abstract Test of vararg. 26 | @param foo Format string. 27 | @param ... additional parameters. */ 28 | virtual IOReturn test(const char *foo,...); 29 | 30 | /*! @functiongroup group_2 31 | */ 32 | 33 | /*! @function _maintRequest2 34 | @abstract Synchrounous implementation of $link addEventSource & $link removeEventSource functions. 35 | @discussion Test of unnamed parameters. */ 36 | virtual IOReturn _maintRequest2(void *command, void *data, void *, void *); 37 | 38 | /*! @function test2 39 | @abstract Test of vararg. 40 | @param foo Format string. 41 | @param ... additional parameters. */ 42 | virtual IOReturn test(const char *foo,...); 43 | 44 | /*! @functiongroup group_0 */ 45 | 46 | /*! @function _maintRequest3 47 | @abstract Synchrounous implementation of $link addEventSource & $link removeEventSource functions. 48 | @discussion Test of unnamed parameters. */ 49 | virtual IOReturn _maintRequest3(void *command, void *data, void *, void *); 50 | 51 | /*! @function test3 52 | @abstract Test of vararg. 53 | @param foo Format string. 54 | @param ... additional parameters. */ 55 | virtual IOReturn test(const char *foo,...); 56 | 57 | /*! @functiongroup group_1 58 | */ 59 | 60 | /*! @function _maintRequest4 61 | @abstract Synchrounous implementation of $link addEventSource & $link removeEventSource functions. 62 | @discussion Test of unnamed parameters. */ 63 | virtual IOReturn _maintRequest4(void *command, void *data, void *, void *); 64 | 65 | /*! @function test4 66 | @abstract Test of vararg. 67 | @param foo Format string. 68 | @param ... additional parameters. */ 69 | virtual IOReturn test(const char *foo,...); 70 | 71 | -------------------------------------------------------------------------------- /Modules/HeaderDoc/Availability.list: -------------------------------------------------------------------------------- 1 | AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER Introduced in Mac OS X 10.0. 2 | AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED Introduced in Mac OS X 10.0, and deprecated in Mac OS X 10.0. 3 | DEPRECATED_IN_MAC_OS_X_VERSION_10_0_AND_LATER Deprecated in Mac OS X 10.0. 4 | AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER Introduced in Mac OS X 10.1. 5 | AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED Introduced in Mac OS X 10.1, and deprecated in Mac OS X 10.1. 6 | AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_1 Introduced in Mac OS X 10.0, but later deprecated in Mac OS X 10.1. 7 | DEPRECATED_IN_MAC_OS_X_VERSION_10_1_AND_LATER Deprecated in Mac OS X 10.1. 8 | AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER Introduced in Mac OS X 10.2 9 | AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED Introduced in Mac OS X 10.2, and deprecated in Mac OS X 10.2. 10 | AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2 Introduced in Mac OS X 10.0, but later deprecated in Mac OS X 10.2. 11 | AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2 Introduced in Mac OS X 10.1, but later deprecated in Mac OS X 10.2. 12 | DEPRECATED_IN_MAC_OS_X_VERSION_10_2_AND_LATER Deprecated in Mac OS X 10.2 . 13 | AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER Introduced in Mac OS X 10.3. 14 | AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED Introduced in Mac OS X 10.3, and deprecated in Mac OS X 10.3. 15 | AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3 Introduced in Mac OS X 10.0, but later deprecated in Mac OS X 10.3. 16 | AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3 Introduced in Mac OS X 10.1, but later deprecated in Mac OS X 10.3. 17 | DEPRECATED_IN_MAC_OS_X_VERSION_10_3_AND_LATER Deprecated in Mac OS X 10.3. 18 | AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER Introduced in Mac OS X 10.4. 19 | AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED Introduced in Mac OS X 10.4, and deprecated in Mac OS X 10.4. 20 | AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4 Introduced in Mac OS X 10.0, but later deprecated in Mac OS X 10.4. 21 | AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4 Introduced in Mac OS X 10.1, but later deprecated in Mac OS X 10.4. 22 | AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4 Introduced in Mac OS X 10.2, but later deprecated in Mac OS X 10.4. 23 | AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4 Introduced in Mac OS X 10.3, but later deprecated in Mac OS X 10.4. 24 | DEPRECATED_IN_MAC_OS_X_VERSION_10_4_AND_LATER Deprecated in Mac OS X 10.4. 25 | 26 | -------------------------------------------------------------------------------- /xmlman/Syntax: -------------------------------------------------------------------------------- 1 | 2 | This is the documentation for the xmlman manpage generation language. 3 | The MPGL includes a subset of mdoc. Text is assumed unjustified. 4 | 5 | The "usage" section becomes the Synopsis and Description sections. 6 | Any desc field may contain either a chunk of raw text or it may contain 7 | a subset of XHTML: 8 | 9 |

Paragraph 10 |

indented block 11 | indented literal text or code 12 |
    unordered (bullet) list 13 |
      ordered (numbered) list 14 |
    1. list item (in a ul/ol) 15 | Literal text 16 | 17 | 18 | Also allowed are: 19 | 20 | Path name 21 | Function name 22 | Command name 23 | Operating System 24 | Man page cross-reference *** SEE EXAMPLE *** 25 | 26 | 27 | Here's an example: 28 | 29 | 30 | August 28, 2002 31 | Document title 32 | Darwin 33 |
      1
      34 | 35 | foothis is a description 36 | barthis is also a description 37 | 38 | 39 | 40 | aattributesThis is the atts flag 41 | ddateThis is the date flag 42 | xThis is the -x flag 43 | filenameThis is the filename 44 | 45 | 46 | 47 |

      Returns kIONotANumber if you can't count.

      48 |

      Returns kIOMoron if you REALLY can't count.

      49 |
      50 | 51 | 52 | TEXT 53 | 54 | 55 | 56 | /path/to/filenameThis is a waste of time 57 | /path/to/another/filenameThis is also a waste of time 58 | 59 | 60 | 61 | TEXT 62 | 63 | 64 | 65 | TEXT 66 | 67 | 68 | 69 | TEXT 70 | 71 | 72 | 73 |

      This is a text container, really, but generally contains 74 | lines like this:

      75 | foo
      1
      ,
      76 | bar
      3
      77 |
      78 | 79 | 80 |

      Here's a list of conformance:

      81 |
        82 |
      • Single UNIX Specification
      • 83 |
      • POSIX
      • 84 |
      85 |
      86 | 87 | 88 | This program should be history.... 89 | 90 | 91 | 92 |

      Here are some bugs:

      93 |

      94 |

        95 |
      1. Bug one....
      2. 96 |
      3. Bug two....
      4. 97 |
      5. Bug three....
      6. 98 |
      99 |

      100 |

      I think that pretty much covers it.

      101 |
      102 |
      103 | 104 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | ## 2 | # Makefile for headerdoc 3 | # Wilfredo Sanchez | wsanchez@apple.com 4 | ## 5 | 6 | 7 | bindir = /usr/bin 8 | # docsDir = /Developer/Documentation/DeveloperTools 9 | program1 = headerdoc2html 10 | program2 = gatherheaderdoc 11 | 12 | perl_libdir := $(shell perl -e 'require Config; print "$$Config::Config{'privlib'}\n";') 13 | startperl := $(shell perl -e 'require Config; print "$$Config::Config{'startperl'}\n";') 14 | 15 | all: 16 | echo ${perl_libdir} 17 | cd xmlman ; make all 18 | 19 | clean: 20 | cd xmlman ; make clean 21 | 22 | installsrc: 23 | mkdir -p "$(SRCROOT)" 24 | tar cf - . | (cd "$(SRCROOT)" && tar xpf -) 25 | 26 | installhdrs: 27 | 28 | build: 29 | 30 | clean: 31 | 32 | test: 33 | cd testsuite ; make ; make runtests ; cd .. 34 | 35 | realinstall: 36 | DSTROOT="" make installsub 37 | 38 | install: all 39 | @echo ; \ 40 | export DSTROOT="/tmp/headerdoc/Release" ; \ 41 | \ 42 | echo "WARNING: Make install by default installs in" ; \ 43 | echo "" ; \ 44 | echo " $$DSTROOT" ; \ 45 | echo "" ; \ 46 | echo "This is primarily intended for building packages." ; \ 47 | echo "If you want to actually install over your" ; \ 48 | echo "existing installation, cancel this make and run" ; \ 49 | echo "\"sudo make realinstall\" instead." ; \ 50 | \ 51 | sleep 5 ; \ 52 | make installsub 53 | 54 | installsub: 55 | 56 | @echo "Destination is: \"${DSTROOT}\"" 57 | 58 | umask 022 && install -d $(DSTROOT)$(perl_libdir)/HeaderDoc 59 | install -c -m 444 Modules/HeaderDoc/*.pm $(DSTROOT)$(perl_libdir)/HeaderDoc 60 | install -c -m 444 Modules/HeaderDoc/Availability.list $(DSTROOT)$(perl_libdir)/HeaderDoc 61 | if [ -f "Modules/HeaderDoc/LinkResolver.pm" ] ; then \ 62 | rm -f $(DSTROOT)$(perl_libdir)/HeaderDoc/LinkResolver.pm ; \ 63 | umask 022 && install -d $(DSTROOT)/AppleInternal/Library/Perl/HeaderDoc ; \ 64 | install -c -m 444 Modules/HeaderDoc/LinkResolver.pm $(DSTROOT)/AppleInternal/Library/Perl/HeaderDoc ; \ 65 | fi 66 | umask 022 && install -d $(DSTROOT)$(bindir) 67 | umask 022 && install -d $(DSTROOT)$(perl_libdir)/HeaderDoc/bin 68 | install -c -m 755 xmlman/xml2man $(DSTROOT)$(bindir)/xml2man 69 | install -c -m 755 xmlman/hdxml2manxml $(DSTROOT)$(bindir)/hdxml2manxml 70 | install -c -m 755 xmlman/resolveLinks $(DSTROOT)$(perl_libdir)/HeaderDoc//bin/resolveLinks 71 | install -c -m 755 headerDoc2HTML.pl $(DSTROOT)$(bindir)/$(program1) 72 | perl -i -pe 's|^#!/usr/bin/perl.*$$|$(startperl)|;' $(DSTROOT)$(bindir)/$(program1) 73 | chmod 555 $(DSTROOT)$(bindir)/$(program1) 74 | umask 022 && install -d $(DSTROOT)$(bindir) 75 | install -c -m 755 gatherHeaderDoc.pl $(DSTROOT)$(bindir)/$(program2) 76 | perl -i -pe 's|^#!/usr/bin/perl.*$$|$(startperl)|;' $(DSTROOT)$(bindir)/$(program2) 77 | chmod 555 $(DSTROOT)$(bindir)/$(program2) 78 | # umask 022 && install -d $(DSTROOT)$(docsDir)/HeaderDoc 79 | # install -c -m 444 Documentation/*.html $(DSTROOT)$(docsDir)/HeaderDoc 80 | umask 022 && install -d $(DSTROOT)/usr/share/man/man1 81 | install -c -m 444 Documentation/man/*.1 $(DSTROOT)/usr/share/man/man1 82 | cd xmlman ; make clean ; cd .. 83 | 84 | -------------------------------------------------------------------------------- /testsuite/sources/ObjCOneClass.h: -------------------------------------------------------------------------------- 1 | /* 2 | ObjCTestHeader.h 3 | Application Kit 4 | Copyright (c) 1994-1997, Apple Computer, Inc. 5 | All rights reserved. 6 | */ 7 | 8 | /*! @header ObjCTestHeader.h 9 | @discussion This header is used to exercise HeaderDoc's ability to generate documentation from Objective-C headers. It includes declarations for C API and Objective-C classes, protocols, categories, and methods. The code is definitely NOT part of Cocoa, although some declarations have been snagged from Cocoa headers. 10 | */ 11 | 12 | #import 13 | 14 | @class NSFont; 15 | 16 | /*! 17 | @typedef NSTitlePosition 18 | Constants that represent title positions. 19 | @abstract Abstract for this API. 20 | @discussion Discussion that applies to the entire typedef'd enum. 21 | @constant NSNoTitle No title. 22 | @constant NSAboveTop Description of second constant. 23 | @constant NSAtTop Description of third constant. 24 | */ 25 | typedef enum _NSTitlePosition { 26 | NSNoTitle = 0, 27 | NSAboveTop = 1, 28 | NSAtTop = 2, 29 | NSBelowTop = 3, 30 | NSAboveBottom = 4, 31 | NSAtBottom = 5, 32 | NSBelowBottom = 6 33 | } NSTitlePosition; 34 | 35 | typedef enum { 36 | NSBoxPrimary = 0, // default 37 | NSBoxSecondary = 1, 38 | NSBoxSeparator = 2, 39 | NSBoxOldStyle = 3 // use border type 40 | } NSBoxType; 41 | 42 | 43 | /*! 44 | @class ObjCClassOne 45 | @abstract NSBox provides a visual grouping element. 46 | @discussion An NSBox object is a simple NSView that can do two things: 47 | It can draw a border around itself, and it can title itself. 48 | */ 49 | 50 | @interface ObjCClassOne : NSObject 51 | { 52 | /*All instance variables are private*/ 53 | id _titleCell; 54 | id _contentView; 55 | NSSize _offsets; 56 | NSRect _borderRect; 57 | NSRect _titleRect; 58 | id _unused; 59 | } 60 | 61 | /*! 62 | @method classOneMethodOne 63 | @abstract Returns the receiver's border type. 64 | @discussion Returns the receiver's border type. Border types are defined 65 | in NSView.h. Currently, the following border types are defined: 66 | 67 | * NSNoBorder 68 | 69 | * NSLineBorder 70 | 71 | * NSBezelBorder 72 | 73 | * NSGrooveBorder 74 | 75 | By default, an NSBox's border type is NSGrooveBorder. 76 | */ 77 | - (NSBorderType)classOneMethodOne; 78 | 79 | 80 | /*! 81 | @method classOneMethodTwo 82 | @abstract Returns a constant representing the title position. 83 | */ 84 | - (NSTitlePosition)classOneMethodTwo; 85 | 86 | /*! 87 | @method dateWithString:calendarFormat: 88 | @abstract Creates and returns a calendar date initialized with the date 89 | specified in the string description. 90 | @discussion Test method three in class one. 91 | @param description A string specifying the date. 92 | @param format Conversion specifiers similar to those used in strftime(). 93 | @result Returns the newly initialized date object or nil on error. 94 | */ 95 | + (id)dateWithString:(NSString *)description calendarFormat:(NSString *)format; 96 | 97 | 98 | @end 99 | 100 | -------------------------------------------------------------------------------- /ExampleHeaders/Objective-C/OneClass/ObjCOneClass.h: -------------------------------------------------------------------------------- 1 | /* 2 | ObjCTestHeader.h 3 | Application Kit 4 | Copyright (c) 1994-1997, Apple Computer, Inc. 5 | All rights reserved. 6 | */ 7 | 8 | /*! @header ObjCTestHeader.h 9 | @discussion This header is used to exercise HeaderDoc's ability to generate documentation from Objective-C headers. It includes declarations for C API and Objective-C classes, protocols, categories, and methods. The code is definitely NOT part of Cocoa, although some declarations have been snagged from Cocoa headers. 10 | */ 11 | 12 | #import 13 | 14 | @class NSFont; 15 | 16 | /*! 17 | @typedef NSTitlePosition 18 | Constants that represent title positions. 19 | @abstract Abstract for this API. 20 | @discussion Discussion that applies to the entire typedef'd enum. 21 | @constant NSNoTitle No title. 22 | @constant NSAboveTop Description of second constant. 23 | @constant NSAtTop Description of third constant. 24 | */ 25 | typedef enum _NSTitlePosition { 26 | NSNoTitle = 0, 27 | NSAboveTop = 1, 28 | NSAtTop = 2, 29 | NSBelowTop = 3, 30 | NSAboveBottom = 4, 31 | NSAtBottom = 5, 32 | NSBelowBottom = 6 33 | } NSTitlePosition; 34 | 35 | typedef enum { 36 | NSBoxPrimary = 0, // default 37 | NSBoxSecondary = 1, 38 | NSBoxSeparator = 2, 39 | NSBoxOldStyle = 3 // use border type 40 | } NSBoxType; 41 | 42 | 43 | /*! 44 | @class ObjCClassOne 45 | @abstract NSBox provides a visual grouping element. 46 | @discussion An NSBox object is a simple NSView that can do two things: 47 | It can draw a border around itself, and it can title itself. 48 | */ 49 | 50 | @interface ObjCClassOne : NSObject 51 | { 52 | /*All instance variables are private*/ 53 | id _titleCell; 54 | id _contentView; 55 | NSSize _offsets; 56 | NSRect _borderRect; 57 | NSRect _titleRect; 58 | id _unused; 59 | } 60 | 61 | /*! 62 | @method classOneMethodOne 63 | @abstract Returns the receiver's border type. 64 | @discussion Returns the receiver's border type. Border types are defined 65 | in NSView.h. Currently, the following border types are defined: 66 | 67 | * NSNoBorder 68 | 69 | * NSLineBorder 70 | 71 | * NSBezelBorder 72 | 73 | * NSGrooveBorder 74 | 75 | By default, an NSBox's border type is NSGrooveBorder. 76 | */ 77 | - (NSBorderType)classOneMethodOne; 78 | 79 | 80 | /*! 81 | @method classOneMethodTwo 82 | @abstract Returns a constant representing the title position. 83 | */ 84 | - (NSTitlePosition)classOneMethodTwo; 85 | 86 | /*! 87 | @method dateWithString:calendarFormat: 88 | @abstract Creates and returns a calendar date initialized with the date 89 | specified in the string description. 90 | @discussion Test method three in class one. 91 | @param description A string specifying the date. 92 | @param format Conversion specifiers similar to those used in strftime(). 93 | @result Returns the newly initialized date object or nil on error. 94 | */ 95 | + (id)dateWithString:(NSString *)description calendarFormat:(NSString *)format; 96 | 97 | 98 | @end 99 | 100 | -------------------------------------------------------------------------------- /exampletoctemplate.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | This is my favorite title line 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
      18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 27 | 28 | 29 | 32 | 33 | 34 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 49 | 50 | 51 | 58 | 59 |

      26 |
      30 | 31 |

      35 |
      $$frameworkdiscussion@@
      46 |
      47 |
      48 |
      52 |

      Headers

      53 | 54 | $$headerlist cols=3 order=down atts=border="0" cellpadding="1" cellspacing="0" width="420"@@ 55 |

      Functions

      56 | $$functionlist cols=3 order=down atts=border="0" cellpadding="1" cellspacing="0" width="420"@@ 57 |
      60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 76 | 77 |
      70 |
      71 |

      This page is Copyright © 2004 Me.
      72 | All rights reserved.
      73 | All wrongs reversed.

      74 |
      75 |
      78 |
      79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /Modules/HeaderDoc/ClassArray.pm: -------------------------------------------------------------------------------- 1 | #! /usr/bin/perl -w 2 | # 3 | # Class name: ClassArray 4 | # Synopsis: Holds info about a class line array 5 | # 6 | # Author: David Gatwood (dgatwood@apple.com) 7 | # Last Updated: $Date: 2004/03/10 19:12:16 $ 8 | # 9 | # Copyright (c) 1999-2004 Apple Computer, Inc. All rights reserved. 10 | # 11 | # @APPLE_LICENSE_HEADER_START@ 12 | # 13 | # This file contains Original Code and/or Modifications of Original Code 14 | # as defined in and that are subject to the Apple Public Source License 15 | # Version 2.0 (the 'License'). You may not use this file except in 16 | # compliance with the License. Please obtain a copy of the License at 17 | # http://www.opensource.apple.com/apsl/ and read it before using this 18 | # file. 19 | # 20 | # The Original Code and all software distributed under the License are 21 | # distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 22 | # EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 23 | # INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 24 | # FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 25 | # Please see the License for the specific language governing rights and 26 | # limitations under the License. 27 | # 28 | # @APPLE_LICENSE_HEADER_END@ 29 | # 30 | ###################################################################### 31 | package HeaderDoc::ClassArray; 32 | 33 | use HeaderDoc::Utilities qw(findRelativePath safeName getAPINameAndDisc printArray printHash); 34 | 35 | # use HeaderDoc::HeaderElement; 36 | # use HeaderDoc::MinorAPIElement; 37 | # use HeaderDoc::APIOwner; 38 | 39 | # @ISA = qw( HeaderDoc::HeaderElement ); 40 | 41 | use strict; 42 | # use vars qw($VERSION @ISA); 43 | # $VERSION = '1.20'; 44 | 45 | sub new { 46 | my($param) = shift; 47 | my($class) = ref($param) || $param; 48 | my $self = {}; 49 | 50 | bless($self, $class); 51 | $self->_initialize(); 52 | return($self); 53 | } 54 | 55 | sub _initialize { 56 | my($self) = shift; 57 | 58 | # $self->SUPER::_initialize(); 59 | $self->{NAME} = ""; 60 | $self->{BRACECOUNT} = 0; 61 | $self->{LINEARRAY} = (); 62 | } 63 | 64 | sub getarray 65 | { 66 | my $self = shift; 67 | 68 | return @{ $self->{LINEARRAY} }; 69 | } 70 | 71 | sub pushlines 72 | { 73 | my $self = shift; 74 | my @lines = shift; 75 | 76 | foreach my $line (@lines) { 77 | $self->push($line); 78 | } 79 | } 80 | 81 | sub push 82 | { 83 | my $self = shift; 84 | my $line = shift; 85 | my $pushDebug = 0; 86 | 87 | if ($pushDebug) { 88 | my $bc = $self->bracecount(); 89 | print "pushing (bc=$bc) $line\n"; 90 | } 91 | 92 | push(@{ $self->{LINEARRAY} }, $line); 93 | return $line; 94 | } 95 | 96 | sub name { 97 | my $self = shift; 98 | if (@_) { 99 | $self->{NAME} = shift; 100 | } 101 | return $self->{NAME}; 102 | } 103 | 104 | sub bracecount { 105 | my $self = shift; 106 | return $self->{BRACECOUNT}; 107 | } 108 | 109 | sub bracecount_dec { 110 | my $self = shift; 111 | if (@_) { 112 | my $n = shift; 113 | $self->{BRACECOUNT} -= $n; 114 | } else { 115 | $self->{BRACECOUNT}--; 116 | } 117 | return $self->{BRACECOUNT}; 118 | } 119 | 120 | sub bracecount_inc { 121 | my $self = shift; 122 | if (@_) { 123 | my $n = shift; 124 | $self->{BRACECOUNT} += $n; 125 | } else { 126 | $self->{BRACECOUNT}++; 127 | } 128 | return $self->{BRACECOUNT}; 129 | } 130 | 131 | 1; 132 | 133 | -------------------------------------------------------------------------------- /Modules/HeaderDoc/ObjCProtocol.pm: -------------------------------------------------------------------------------- 1 | #! /usr/bin/perl -w 2 | # 3 | # Class name: ObjCProtocol 4 | # Synopsis: Holds comments pertaining to an ObjC protocol, as parsed by HeaderDoc 5 | # from an objC header 6 | # 7 | # Initial modifications: SKoT McDonald Aug 2001 8 | # 9 | # Based on CPPClass by Matt Morse (matt@apple.com) 10 | # Last Updated: $Date: 2004/06/10 22:12:16 $ 11 | # 12 | # Copyright (c) 1999-2004 Apple Computer, Inc. All rights reserved. 13 | # 14 | # @APPLE_LICENSE_HEADER_START@ 15 | # 16 | # This file contains Original Code and/or Modifications of Original Code 17 | # as defined in and that are subject to the Apple Public Source License 18 | # Version 2.0 (the 'License'). You may not use this file except in 19 | # compliance with the License. Please obtain a copy of the License at 20 | # http://www.opensource.apple.com/apsl/ and read it before using this 21 | # file. 22 | # 23 | # The Original Code and all software distributed under the License are 24 | # distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 25 | # EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 26 | # INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 27 | # FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 28 | # Please see the License for the specific language governing rights and 29 | # limitations under the License. 30 | # 31 | # @APPLE_LICENSE_HEADER_END@ 32 | # 33 | ###################################################################### 34 | BEGIN { 35 | foreach (qw(Mac::Files)) { 36 | $MOD_AVAIL{$_} = eval "use $_; 1"; 37 | } 38 | } 39 | package HeaderDoc::ObjCProtocol; 40 | 41 | use HeaderDoc::Utilities qw(findRelativePath safeName getAPINameAndDisc printArray printHash); 42 | use HeaderDoc::ObjCContainer; 43 | 44 | # Inheritance 45 | @ISA = qw( HeaderDoc::ObjCContainer ); 46 | 47 | use strict; 48 | use vars qw($VERSION @ISA); 49 | $VERSION = '1.20'; 50 | 51 | ################ Portability ################################### 52 | my $isMacOS; 53 | my $pathSeparator; 54 | if ($^O =~ /MacOS/io) { 55 | $pathSeparator = ":"; 56 | $isMacOS = 1; 57 | } else { 58 | $pathSeparator = "/"; 59 | $isMacOS = 0; 60 | } 61 | ################ General Constants ################################### 62 | my $debugging = 0; 63 | my $tracing = 0; 64 | my $outputExtension = ".html"; 65 | my $tocFrameName = "toc.html"; 66 | # my $theTime = time(); 67 | # my ($sec, $min, $hour, $dom, $moy, $year, @rest); 68 | # ($sec, $min, $hour, $dom, $moy, $year, @rest) = localtime($theTime); 69 | # $moy++; 70 | # $year += 1900; 71 | # my $dateStamp = "$moy/$dom/$year"; 72 | ###################################################################### 73 | 74 | sub _initialize { 75 | my($self) = shift; 76 | $self->SUPER::_initialize(); 77 | $self->tocTitlePrefix('Protocol:'); 78 | $self->{CLASS} = "HeaderDoc::ObjCProtocol"; 79 | } 80 | 81 | sub getMethodType { 82 | return "intfm"; 83 | } 84 | 85 | # we add the apple_ref markup to the navigator comment to identify 86 | # to Project Builder and other applications indexing the documentation 87 | # that this is the entry point for documentation for this protocol 88 | sub docNavigatorComment { 89 | my $self = shift; 90 | my $name = $self->name(); 91 | $name =~ s/;//sgo; 92 | my $uid = $self->apiuid("intf"); # "//apple_ref/occ/intf/$name"; 93 | my $navComment = ""; 94 | my $appleRef = ""; 95 | 96 | return "$navComment\n$appleRef"; 97 | } 98 | 99 | ################## Misc Functions ################################### 100 | sub objName { # used for sorting 101 | my $obj1 = $a; 102 | my $obj2 = $b; 103 | return ($obj1->name() cmp $obj2->name()); 104 | } 105 | 106 | 1; 107 | 108 | -------------------------------------------------------------------------------- /Modules/HeaderDoc/DocReference.pm: -------------------------------------------------------------------------------- 1 | #! /usr/bin/perl -w 2 | # 3 | # Class name: DocReference 4 | # Synopsis: Used by gatherHeaderDoc.pl to hold references to doc 5 | # for individual headers and classes 6 | # Author: Matt Morse (matt@apple.com) 7 | # Last Updated: $Date: 2004/06/02 22:39:14 $ 8 | # 9 | # Copyright (c) 1999-2004 Apple Computer, Inc. All rights reserved. 10 | # 11 | # @APPLE_LICENSE_HEADER_START@ 12 | # 13 | # This file contains Original Code and/or Modifications of Original Code 14 | # as defined in and that are subject to the Apple Public Source License 15 | # Version 2.0 (the 'License'). You may not use this file except in 16 | # compliance with the License. Please obtain a copy of the License at 17 | # http://www.opensource.apple.com/apsl/ and read it before using this 18 | # file. 19 | # 20 | # The Original Code and all software distributed under the License are 21 | # distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 22 | # EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 23 | # INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 24 | # FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 25 | # Please see the License for the specific language governing rights and 26 | # limitations under the License. 27 | # 28 | # @APPLE_LICENSE_HEADER_END@ 29 | # 30 | ###################################################################### 31 | package HeaderDoc::DocReference; 32 | 33 | use strict; 34 | use vars qw($VERSION @ISA); 35 | $VERSION = '1.00'; 36 | ################ General Constants ################################### 37 | my $debugging = 0; 38 | 39 | sub new { 40 | my($param) = shift; 41 | my($class) = ref($param) || $param; 42 | my $self = {}; 43 | 44 | bless($self, $class); 45 | $self->_initialize(); 46 | # Now grab any key => value pairs passed in 47 | my (%attributeHash) = @_; 48 | foreach my $key (keys(%attributeHash)) { 49 | my $ucKey = uc($key); 50 | $self->{$ucKey} = $attributeHash{$key}; 51 | } 52 | return ($self); 53 | } 54 | 55 | sub _initialize { 56 | my($self) = shift; 57 | $self->{OUTPUTFORMAT} = undef; 58 | $self->{UID} = undef; 59 | $self->{NAME} = undef; 60 | $self->{TYPE} = undef; # Header, CPPClass, etc 61 | $self->{PATH} = undef; 62 | $self->{LANGUAGE} = ""; 63 | } 64 | 65 | sub path { 66 | my $self = shift; 67 | 68 | if (@_) { 69 | $self->{PATH} = shift; 70 | } 71 | return $self->{PATH}; 72 | } 73 | 74 | 75 | sub language { 76 | my $self = shift; 77 | 78 | if (@_) { 79 | $self->{LANGUAGE} = shift; 80 | } 81 | return $self->{LANGUAGE}; 82 | } 83 | 84 | 85 | sub outputformat { 86 | my $self = shift; 87 | 88 | if (@_) { 89 | $self->{OUTPUTFORMAT} = shift; 90 | } 91 | return $self->{OUTPUTFORMAT}; 92 | } 93 | 94 | 95 | sub uid { 96 | my $self = shift; 97 | 98 | if (@_) { 99 | $self->{UID} = shift; 100 | } 101 | return $self->{UID}; 102 | } 103 | 104 | 105 | sub name { 106 | my $self = shift; 107 | 108 | if (@_) { 109 | $self->{NAME} = shift; 110 | } 111 | return $self->{NAME}; 112 | } 113 | 114 | 115 | sub shortname { 116 | my $self = shift; 117 | 118 | if (@_) { 119 | $self->{SHORTNAME} = shift; 120 | } 121 | return $self->{SHORTNAME}; 122 | } 123 | 124 | 125 | sub type { 126 | my $self = shift; 127 | 128 | if (@_) { 129 | $self->{TYPE} = shift; 130 | } 131 | return $self->{TYPE}; 132 | } 133 | 134 | 135 | sub printObject { 136 | my $self = shift; 137 | 138 | print "----- DocReference Object ------\n"; 139 | print "uid: $self->{UID}\n"; 140 | print "name: $self->{NAME}\n"; 141 | print "type: $self->{TYPE}\n"; 142 | print "path: $self->{PATH}\n"; 143 | print "language: $self->{LANGUAGE}\n"; 144 | print "\n"; 145 | } 146 | 147 | 1; 148 | -------------------------------------------------------------------------------- /Modules/HeaderDoc/ObjCClass.pm: -------------------------------------------------------------------------------- 1 | #! /usr/bin/perl -w 2 | # 3 | # Class name: ObjCClass 4 | # Synopsis: Container for doc declared in an Objective-C class. 5 | # 6 | # Initial modifications: SKoT McDonald Aug 2001 7 | # 8 | # Based on CPPClass by Matt Morse (matt@apple.com) 9 | # Last Updated: $Date: 2004/06/10 22:12:16 $ 10 | # 11 | # Copyright (c) 1999-2004 Apple Computer, Inc. All rights reserved. 12 | # 13 | # @APPLE_LICENSE_HEADER_START@ 14 | # 15 | # This file contains Original Code and/or Modifications of Original Code 16 | # as defined in and that are subject to the Apple Public Source License 17 | # Version 2.0 (the 'License'). You may not use this file except in 18 | # compliance with the License. Please obtain a copy of the License at 19 | # http://www.opensource.apple.com/apsl/ and read it before using this 20 | # file. 21 | # 22 | # The Original Code and all software distributed under the License are 23 | # distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 24 | # EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 25 | # INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 26 | # FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 27 | # Please see the License for the specific language governing rights and 28 | # limitations under the License. 29 | # 30 | # @APPLE_LICENSE_HEADER_END@ 31 | # 32 | ###################################################################### 33 | BEGIN { 34 | foreach (qw(Mac::Files)) { 35 | $MOD_AVAIL{$_} = eval "use $_; 1"; 36 | } 37 | } 38 | package HeaderDoc::ObjCClass; 39 | 40 | use HeaderDoc::Utilities qw(findRelativePath safeName getAPINameAndDisc printArray printHash); 41 | use HeaderDoc::ObjCContainer; 42 | 43 | # Inheritance 44 | @ISA = qw( HeaderDoc::ObjCContainer ); 45 | 46 | use strict; 47 | use vars qw($VERSION @ISA); 48 | $VERSION = '1.20'; 49 | 50 | ################ Portability ################################### 51 | my $isMacOS; 52 | my $pathSeparator; 53 | if ($^O =~ /MacOS/io) { 54 | $pathSeparator = ":"; 55 | $isMacOS = 1; 56 | } else { 57 | $pathSeparator = "/"; 58 | $isMacOS = 0; 59 | } 60 | ################ General Constants ################################### 61 | my $debugging = 0; 62 | my $tracing = 0; 63 | my $outputExtension = ".html"; 64 | my $tocFrameName = "toc.html"; 65 | # my $theTime = time(); 66 | # my ($sec, $min, $hour, $dom, $moy, $year, @rest); 67 | # ($sec, $min, $hour, $dom, $moy, $year, @rest) = localtime($theTime); 68 | # $moy++; 69 | # $year += 1900; 70 | # my $dateStamp = "$moy/$dom/$year"; 71 | ###################################################################### 72 | 73 | sub _initialize { 74 | my($self) = shift; 75 | $self->SUPER::_initialize(); 76 | $self->tocTitlePrefix('Class:'); 77 | $self->{CLASS} = "HeaderDoc::ObjCClass"; 78 | } 79 | 80 | sub getMethodType { 81 | my $self = shift; 82 | my $declaration = shift; 83 | my $methodType = ""; 84 | 85 | if ($declaration =~ /^\s*-/o) { 86 | $methodType = "instm"; 87 | } elsif ($declaration =~ /^\s*\+/o) { 88 | $methodType = "clm"; 89 | } else { 90 | # my $filename = $HeaderDoc::headerObject->filename(); 91 | my $filename = $self->filename(); 92 | my $linenum = $self->linenum(); 93 | print "$filename:$linenum:Unable to determine whether declaration is for an instance or class method[class].\n"; 94 | print "$filename:$linenum: '$declaration'\n"; 95 | } 96 | return $methodType; 97 | } 98 | 99 | # we add the apple_ref markup to the navigator comment to identify 100 | # to Project Builder and other applications indexing the documentation 101 | # that this is the entry point for documentation for this class 102 | sub docNavigatorComment { 103 | my $self = shift; 104 | my $name = $self->name(); 105 | $name =~ s/;//sgo; 106 | my $uid = $self->apiuid("cl"); # "//apple_ref/occ/cl/$name"; 107 | my $navComment = ""; 108 | my $appleRef = ""; 109 | 110 | return "$navComment\n$appleRef"; 111 | } 112 | 113 | ################## Misc Functions ################################### 114 | sub objName { # used for sorting 115 | my $obj1 = $a; 116 | my $obj2 = $b; 117 | return ($obj1->name() cmp $obj2->name()); 118 | } 119 | 120 | 121 | 1; 122 | -------------------------------------------------------------------------------- /ExampleHeaders/Objective-C/CategoryTests/categoryWithOwningClass/Trains.h: -------------------------------------------------------------------------------- 1 | /* 2 | Trains.h 3 | Application Kit 4 | Copyright (c) 1994-1997, Apple Computer, Inc. 5 | All rights reserved. 6 | */ 7 | 8 | /*! @header Trains.h 9 | @discussion This header is used to exercise HeaderDoc's ability to generate documentation from Objective-C headers. It includes declarations for C API and Objective-C classes, protocols, categories, and methods. The code is definitely NOT part of Cocoa, although some declarations have been snagged from Cocoa headers. 10 | */ 11 | 12 | #import 13 | 14 | @class NSFont; 15 | 16 | /*! 17 | @typedef NSTitlePosition 18 | Constants that represent title positions. 19 | @abstract Abstract for this API. 20 | @discussion Discussion that applies to the entire typedef'd enum. 21 | @constant NSNoTitle No title. 22 | @constant NSAboveTop Description of second constant. 23 | @constant NSAtTop Description of third constant. 24 | */ 25 | typedef enum _NSTitlePosition { 26 | NSNoTitle = 0, 27 | NSAboveTop = 1, 28 | NSAtTop = 2, 29 | NSBelowTop = 3, 30 | NSAboveBottom = 4, 31 | NSAtBottom = 5, 32 | NSBelowBottom = 6 33 | } NSTitlePosition; 34 | 35 | typedef enum { 36 | NSBoxPrimary = 0, // default 37 | NSBoxSecondary = 1, 38 | NSBoxSeparator = 2, 39 | NSBoxOldStyle = 3 // use border type 40 | } NSBoxType; 41 | 42 | 43 | /*! 44 | @class Trains 45 | @abstract NSBox provides a visual grouping element. 46 | @discussion An NSBox object is a simple NSView that can do two things: 47 | It can draw a border around itself, and it can title itself. 48 | */ 49 | 50 | @interface Trains : Vehicles 51 | { 52 | /*All instance variables are private*/ 53 | id _titleCell; 54 | id _contentView; 55 | NSSize _offsets; 56 | NSRect _borderRect; 57 | NSRect _titleRect; 58 | id _unused; 59 | } 60 | 61 | /*! 62 | @method trainsMethodOne 63 | @abstract Returns the receiver's border type. 64 | @discussion Returns the receiver's border type. Border types are defined 65 | in NSView.h. Currently, the following border types are defined: 66 | 67 | * NSNoBorder 68 | 69 | * NSLineBorder 70 | 71 | * NSBezelBorder 72 | 73 | * NSGrooveBorder 74 | 75 | By default, an Train's border type is NSGrooveBorder. 76 | */ 77 | - (NSBorderType)trainsMethodOne; 78 | 79 | 80 | /*! 81 | @method trainsMethodTwo 82 | @abstract Returns a constant representing the title position. 83 | */ 84 | - (NSTitlePosition)trainsMethodTwo; 85 | 86 | /*! 87 | @method dateWithString:calendarFormat: 88 | @abstract Creates and returns a calendar date initialized with the date 89 | specified in the string description. 90 | @discussion Test method three in class one. 91 | @param description A string specifying the date. 92 | @param format Conversion specifiers similar to those used in strftime(). 93 | @result Returns the newly initialized date object or nil on error. 94 | */ 95 | + (id)dateWithString:(NSString *)description calendarFormat:(NSString *)format; 96 | 97 | 98 | @end 99 | 100 | 101 | /*! 102 | @category Trains(TrainsCanFly) 103 | @abstract The TrainsCanFly category adds levitation methods to the Train class. 104 | @discussion Methods declared in the TrainsCanFly category of the Train class can only be used with properly equiped Train objects. 105 | */ 106 | 107 | @interface Trains(TrainsCanFly) 108 | /*! 109 | @method levitateToHeight: 110 | @abstract Raises the train specified number of centimeters 111 | @param height The number of centimeters to levitate. 112 | */ 113 | - (void)levitateToHeight:(float)height; 114 | @end 115 | 116 | /*! 117 | @category Trains(TrainsUnderWater) 118 | @abstract The TrainsUnderWater category adds submarine methods to the Train class. 119 | @discussion Methods declared in the TrainsUnderWater category of the Train class can only be used with properly equiped Train objects and appropriate infrastructure. 120 | */ 121 | 122 | @interface Trains(TrainsUnderWater) 123 | /*! 124 | @method enterChunnelOnTrack: 125 | @abstract Directs the train to Channel Tunnel 126 | @param num Track number. 127 | */ 128 | - (void)enterChunnelOnTrack:(int)num; 129 | @end 130 | 131 | -------------------------------------------------------------------------------- /Modules/HeaderDoc/MinorAPIElement.pm: -------------------------------------------------------------------------------- 1 | #! /usr/bin/perl -w 2 | # 3 | # Class name: MinorAPIElement 4 | # Synopsis: Class for parameters and members of structs, etc. Primary use 5 | # is to hold info for data export to Inside Mac Database 6 | # 7 | # Author: Matt Morse (matt@apple.com) 8 | # Last Updated: $Date: 2004/06/13 04:59:12 $ 9 | # 10 | # Copyright (c) 1999-2004 Apple Computer, Inc. All rights reserved. 11 | # 12 | # @APPLE_LICENSE_HEADER_START@ 13 | # 14 | # This file contains Original Code and/or Modifications of Original Code 15 | # as defined in and that are subject to the Apple Public Source License 16 | # Version 2.0 (the 'License'). You may not use this file except in 17 | # compliance with the License. Please obtain a copy of the License at 18 | # http://www.opensource.apple.com/apsl/ and read it before using this 19 | # file. 20 | # 21 | # The Original Code and all software distributed under the License are 22 | # distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 23 | # EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 24 | # INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 25 | # FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 26 | # Please see the License for the specific language governing rights and 27 | # limitations under the License. 28 | # 29 | # @APPLE_LICENSE_HEADER_END@ 30 | # 31 | ###################################################################### 32 | 33 | package HeaderDoc::MinorAPIElement; 34 | 35 | use HeaderDoc::Utilities qw(findRelativePath safeName getAPINameAndDisc convertCharsForFileMaker printArray printHash); 36 | use HeaderDoc::HeaderElement; 37 | @ISA = qw( HeaderDoc::HeaderElement ); 38 | 39 | use strict; 40 | use vars qw($VERSION @ISA); 41 | $VERSION = '1.20'; 42 | 43 | sub new { 44 | my($param) = shift; 45 | my($class) = ref($param) || $param; 46 | my $self = {}; 47 | 48 | bless($self, $class); 49 | $self->_initialize(); 50 | return ($self); 51 | } 52 | 53 | sub _initialize { 54 | my($self) = shift; 55 | $self->SUPER::_initialize(); 56 | # $self->{POSITION} = undef; 57 | # $self->{TYPE} = undef; 58 | $self->{USERDICTARRAY} = (); 59 | # $self->{HIDDEN} = 0; 60 | $self->{CLASS} = "HeaderDoc::MinorAPIElement"; 61 | } 62 | 63 | sub clone { 64 | my $self = shift; 65 | my $clone = undef; 66 | if (@_) { 67 | $clone = shift; 68 | } else { 69 | $clone = HeaderDoc::MinorAPIElement->new(); 70 | } 71 | 72 | $self->SUPER::clone($clone); 73 | 74 | # now clone stuff specific to function 75 | 76 | $clone->{POSITION} = $self->{POSITION}; 77 | $clone->{TYPE} = $self->{TYPE}; 78 | $clone->{HIDDEN} = $self->{HIDDEN}; 79 | $clone->{USERDICTARRAY} = $self->{USERDICTARRAY}; 80 | 81 | return $clone; 82 | } 83 | 84 | 85 | sub position { 86 | my $self = shift; 87 | 88 | if (@_) { 89 | $self->{POSITION} = shift; 90 | } 91 | return $self->{POSITION}; 92 | } 93 | 94 | sub hidden { 95 | my $self = shift; 96 | 97 | if (@_) { 98 | $self->{HIDDEN} = shift; 99 | } 100 | return $self->{HIDDEN}; 101 | } 102 | 103 | sub type { 104 | my $self = shift; 105 | 106 | if (@_) { 107 | $self->{TYPE} = shift; 108 | } 109 | return $self->{TYPE}; 110 | } 111 | 112 | # for miscellaneous data, such as the parameters within a typedef'd struct of callbacks 113 | # stored as an array to preserve order. 114 | sub userDictArray { 115 | my $self = shift; 116 | 117 | if (@_) { 118 | @{ $self->{USERDICTARRAY} } = @_; 119 | } 120 | ($self->{USERDICTARRAY}) ? return @{ $self->{USERDICTARRAY} } : return (); 121 | } 122 | 123 | sub addToUserDictArray { 124 | my $self = shift; 125 | 126 | if (@_) { 127 | foreach my $item (@_) { 128 | push (@{ $self->{USERDICTARRAY} }, $item); 129 | } 130 | } 131 | return @{ $self->{USERDICTARRAY} }; 132 | } 133 | 134 | 135 | sub addKeyAndValueInUserDict { 136 | my $self = shift; 137 | 138 | if (@_) { 139 | my $key = shift; 140 | my $value = shift; 141 | $self->{USERDICT}{$key} = $value; 142 | } 143 | return %{ $self->{USERDICT} }; 144 | } 145 | 146 | sub printObject { 147 | my $self = shift; 148 | my $dec = $self->declaration(); 149 | 150 | $self->SUPER::printObject(); 151 | print "position: $self->{POSITION}\n"; 152 | print "type: $self->{TYPE}\n"; 153 | } 154 | 155 | 1; 156 | -------------------------------------------------------------------------------- /ExampleHeaders/operators_spaces.h: -------------------------------------------------------------------------------- 1 | /*! @functiongroup Operators */ 2 | 3 | /*! 4 | @function operator << 5 | @abstract Inequality operator 6 | @discussion All message contents, including the parameters, are checked. 7 | @result True if the messages are different. 8 | @param inOtherMessage The message to compare. 9 | */ 10 | bool 11 | operator << ( 12 | const Message &inOtherMessage) const 13 | { 14 | return !(*this == inOtherMessage); 15 | } 16 | 17 | /*! 18 | @function operator >> 19 | @abstract Inequality operator 20 | @discussion All message contents, including the parameters, are checked. 21 | @result True if the messages are different. 22 | @param inOtherMessage The message to compare. 23 | */ 24 | bool 25 | operator >> ( 26 | const Message &inOtherMessage) const 27 | { 28 | return !(*this == inOtherMessage); 29 | } 30 | /*! 31 | @constant foo 32 | */ 33 | const int foo; 34 | 35 | /*! 36 | @function operator == 37 | @abstract Equality operator 38 | @discussion All message contents, including the parameters, are checked. 39 | @result True if the messages are identical. 40 | @param inOtherMessage The message to compare. 41 | */ 42 | bool 43 | operator == ( 44 | const Message &inOtherMessage) const; 45 | /*! 46 | @function operator != 47 | @abstract Inequality operator 48 | @discussion All message contents, including the parameters, are checked. 49 | @result True if the messages are different. 50 | @param inOtherMessage The message to compare. 51 | */ 52 | bool 53 | operator != ( 54 | const Message &inOtherMessage) const 55 | { 56 | return !(*this == inOtherMessage); 57 | } 58 | 59 | /*! 60 | @function operator + 61 | @abstract Addition operator 62 | @discussion All message contents, including the parameters, are checked. 63 | @result I dunno what this does.... 64 | @param inOtherMessage The message to compare. 65 | */ 66 | bool 67 | operator +( 68 | const Message &inOtherMessage) const 69 | { 70 | return !(*this == inOtherMessage); 71 | } 72 | 73 | /*! 74 | @function operator ++ 75 | @abstract Increment operator 76 | @discussion All message contents, including the parameters, are checked. 77 | @result I dunno what this does.... 78 | @param inOtherMessage The message to compare. 79 | */ 80 | bool 81 | operator ++( 82 | const Message &inOtherMessage) const 83 | { 84 | return !(*this == inOtherMessage); 85 | } 86 | 87 | /*! 88 | @function operator - 89 | @abstract Subtraction operator 90 | @discussion All message contents, including the parameters, are checked. 91 | @result I dunno what this does.... 92 | @param inOtherMessage The message to compare. 93 | */ 94 | bool 95 | operator -( 96 | const Message &inOtherMessage) const 97 | { 98 | return !(*this == inOtherMessage); 99 | } 100 | 101 | /*! 102 | @function operator -- 103 | @abstract Decrement operator 104 | @discussion All message contents, including the parameters, are checked. 105 | @result I dunno what this does.... 106 | @param inOtherMessage The message to compare. 107 | */ 108 | bool 109 | operator --( 110 | const Message &inOtherMessage) const 111 | { 112 | return !(*this == inOtherMessage); 113 | } 114 | 115 | /*! 116 | @function operator * 117 | @abstract Multiplication operator 118 | @discussion All message contents, including the parameters, are checked. 119 | @result I dunno what this does.... 120 | @param inOtherMessage The message to compare. 121 | */ 122 | bool 123 | operator *( 124 | const Message &inOtherMessage) const 125 | { 126 | return !(*this == inOtherMessage); 127 | } 128 | 129 | /*! 130 | @function operator / 131 | @abstract Division operator 132 | @discussion All message contents, including the parameters, are checked. 133 | @result I dunno what this does.... 134 | @param inOtherMessage The message to compare. 135 | */ 136 | bool 137 | operator /( 138 | const Message &inOtherMessage) const 139 | { 140 | return !(*this == inOtherMessage); 141 | } 142 | 143 | 144 | -------------------------------------------------------------------------------- /testsuite/sources/ObjCTwoClasses.h: -------------------------------------------------------------------------------- 1 | /* 2 | ObjCTestHeader.h 3 | Application Kit 4 | Copyright (c) 1994-1997, Apple Computer, Inc. 5 | All rights reserved. 6 | */ 7 | 8 | /*! @header ObjCTestHeader.h 9 | @discussion This header is used to exercise HeaderDoc's ability to generate documentation from Objective-C headers. It includes declarations for C API and Objective-C classes, protocols, categories, and methods. The code is definitely NOT part of Cocoa, although some declarations have been snagged from Cocoa headers. 10 | */ 11 | 12 | #import 13 | 14 | @class NSFont; 15 | 16 | /*! 17 | @typedef NSTitlePosition 18 | Constants that represent title positions. 19 | @abstract Abstract for this API. 20 | @discussion Discussion that applies to the entire typedef'd enum. 21 | @constant NSNoTitle No title. 22 | @constant NSAboveTop Description of second constant. 23 | @constant NSAtTop Description of third constant. 24 | */ 25 | typedef enum _NSTitlePosition { 26 | NSNoTitle = 0, 27 | NSAboveTop = 1, 28 | NSAtTop = 2, 29 | NSBelowTop = 3, 30 | NSAboveBottom = 4, 31 | NSAtBottom = 5, 32 | NSBelowBottom = 6 33 | } NSTitlePosition; 34 | 35 | typedef enum { 36 | NSBoxPrimary = 0, // default 37 | NSBoxSecondary = 1, 38 | NSBoxSeparator = 2, 39 | NSBoxOldStyle = 3 // use border type 40 | } NSBoxType; 41 | 42 | 43 | /*! 44 | @class ObjCClassAlpha 45 | @abstract ObjCClassAlpha provides a visual grouping element. 46 | @discussion An NSBox object is a simple NSView that can do two things: 47 | It can draw a border around itself, and it can title itself. 48 | */ 49 | 50 | @interface ObjCClassAlpha : NSObject 51 | { 52 | /*All instance variables are private*/ 53 | id _titleCell; 54 | id _contentView; 55 | NSSize _offsets; 56 | NSRect _borderRect; 57 | NSRect _titleRect; 58 | id _unused; 59 | } 60 | 61 | /*! 62 | @method classOneMethodOne 63 | @abstract Returns the receiver's border type. 64 | @discussion Returns the receiver's border type. Border types are defined 65 | in NSView.h. Currently, the following border types are defined: 66 | 67 | * NSNoBorder 68 | 69 | * NSLineBorder 70 | 71 | * NSBezelBorder 72 | 73 | * NSGrooveBorder 74 | 75 | By default, an NSBox's border type is NSGrooveBorder. 76 | */ 77 | - (NSBorderType)classOneMethodOne; 78 | 79 | /*! 80 | @method classOneMethodTwo 81 | @abstract Returns a constant representing the title position. 82 | */ 83 | - (NSTitlePosition)classOneMethodTwo; 84 | 85 | @end 86 | 87 | /*! 88 | @class ObjCClassBeta 89 | @abstract ObjCClassBeta provides a visual grouping element. 90 | @discussion An NSBox object is a simple NSView that can do two things: It can draw a border around itself, and it can title itself. 91 | */ 92 | 93 | @interface ObjCClassBeta : NSObject 94 | { 95 | /*All instance variables are private*/ 96 | struct __bFlags { 97 | NSBorderType borderType:2; 98 | NSTitlePosition titlePosition:3; 99 | unsigned int transparent:1; 100 | unsigned int boxType:2; 101 | unsigned int _RESERVED:24; 102 | } _bFlags; 103 | id _unused; 104 | } 105 | 106 | /*! 107 | @method classTwoMethodOne 108 | @abstract Returns the receiver's border type. 109 | @discussion Returns the receiver's border type. Border types are defined in NSView.h. Currently, the following border types are defined: 110 | 111 | * NSNoBorder 112 | 113 | * NSLineBorder 114 | 115 | * NSBezelBorder 116 | 117 | * NSGrooveBorder 118 | 119 | By default, an NSBox's border type is NSGrooveBorder. 120 | */ 121 | - (NSBorderType)classTwoMethodOne; 122 | 123 | /*! 124 | @method classTwoMethodTwo 125 | @abstract Returns a constant representing the title position. 126 | */ 127 | - (NSTitlePosition)classTwoMethodTwo; 128 | 129 | /*! 130 | @method classTwoMethodThree 131 | @abstract Sets the border type to aType, which must be a valid border type. 132 | @discussion Border types are defined in NSView.h. Currently, the following border types are defined: 133 | 134 | * NSNoBorder 135 | * NSLineBorder 136 | * NSBezelBorder 137 | * NSGrooveBorder 138 | 139 | By default, an NSBox's border type is NSGrooveBorder. 140 | 141 | @param aType The specified type. 142 | */ 143 | - (void)classTwoMethodThree:(NSBorderType)aType; 144 | 145 | /*! 146 | @method classTwoMethodFour:bogusOne:bogusTwo 147 | @abstract Sets the title position and includes two bogus args for 148 | testing purposes 149 | @param bogusOne Fictive at best. 150 | @param bogusTwo This argument is rarely used. 151 | */ 152 | - (void)classTwoMethodFour:(NSTitlePosition)aPosition bogusOne:(NSView *)bogusOne bogusTwo:(NSView *)bogusTwo; 153 | 154 | @end 155 | 156 | 157 | -------------------------------------------------------------------------------- /ExampleHeaders/Objective-C/TwoClasses/ObjCTwoClasses.h: -------------------------------------------------------------------------------- 1 | /* 2 | ObjCTestHeader.h 3 | Application Kit 4 | Copyright (c) 1994-1997, Apple Computer, Inc. 5 | All rights reserved. 6 | */ 7 | 8 | /*! @header ObjCTestHeader.h 9 | @discussion This header is used to exercise HeaderDoc's ability to generate documentation from Objective-C headers. It includes declarations for C API and Objective-C classes, protocols, categories, and methods. The code is definitely NOT part of Cocoa, although some declarations have been snagged from Cocoa headers. 10 | */ 11 | 12 | #import 13 | 14 | @class NSFont; 15 | 16 | /*! 17 | @typedef NSTitlePosition 18 | Constants that represent title positions. 19 | @abstract Abstract for this API. 20 | @discussion Discussion that applies to the entire typedef'd enum. 21 | @constant NSNoTitle No title. 22 | @constant NSAboveTop Description of second constant. 23 | @constant NSAtTop Description of third constant. 24 | */ 25 | typedef enum _NSTitlePosition { 26 | NSNoTitle = 0, 27 | NSAboveTop = 1, 28 | NSAtTop = 2, 29 | NSBelowTop = 3, 30 | NSAboveBottom = 4, 31 | NSAtBottom = 5, 32 | NSBelowBottom = 6 33 | } NSTitlePosition; 34 | 35 | typedef enum { 36 | NSBoxPrimary = 0, // default 37 | NSBoxSecondary = 1, 38 | NSBoxSeparator = 2, 39 | NSBoxOldStyle = 3 // use border type 40 | } NSBoxType; 41 | 42 | 43 | /*! 44 | @class ObjCClassAlpha 45 | @abstract ObjCClassAlpha provides a visual grouping element. 46 | @discussion An NSBox object is a simple NSView that can do two things: 47 | It can draw a border around itself, and it can title itself. 48 | */ 49 | 50 | @interface ObjCClassAlpha : NSObject 51 | { 52 | /*All instance variables are private*/ 53 | id _titleCell; 54 | id _contentView; 55 | NSSize _offsets; 56 | NSRect _borderRect; 57 | NSRect _titleRect; 58 | id _unused; 59 | } 60 | 61 | /*! 62 | @method classOneMethodOne 63 | @abstract Returns the receiver's border type. 64 | @discussion Returns the receiver's border type. Border types are defined 65 | in NSView.h. Currently, the following border types are defined: 66 | 67 | * NSNoBorder 68 | 69 | * NSLineBorder 70 | 71 | * NSBezelBorder 72 | 73 | * NSGrooveBorder 74 | 75 | By default, an NSBox's border type is NSGrooveBorder. 76 | */ 77 | - (NSBorderType)classOneMethodOne; 78 | 79 | /*! 80 | @method classOneMethodTwo 81 | @abstract Returns a constant representing the title position. 82 | */ 83 | - (NSTitlePosition)classOneMethodTwo; 84 | 85 | @end 86 | 87 | /*! 88 | @class ObjCClassBeta 89 | @abstract ObjCClassBeta provides a visual grouping element. 90 | @discussion An NSBox object is a simple NSView that can do two things: It can draw a border around itself, and it can title itself. 91 | */ 92 | 93 | @interface ObjCClassBeta : NSObject 94 | { 95 | /*All instance variables are private*/ 96 | struct __bFlags { 97 | NSBorderType borderType:2; 98 | NSTitlePosition titlePosition:3; 99 | unsigned int transparent:1; 100 | unsigned int boxType:2; 101 | unsigned int _RESERVED:24; 102 | } _bFlags; 103 | id _unused; 104 | } 105 | 106 | /*! 107 | @method classTwoMethodOne 108 | @abstract Returns the receiver's border type. 109 | @discussion Returns the receiver's border type. Border types are defined in NSView.h. Currently, the following border types are defined: 110 | 111 | * NSNoBorder 112 | 113 | * NSLineBorder 114 | 115 | * NSBezelBorder 116 | 117 | * NSGrooveBorder 118 | 119 | By default, an NSBox's border type is NSGrooveBorder. 120 | */ 121 | - (NSBorderType)classTwoMethodOne; 122 | 123 | /*! 124 | @method classTwoMethodTwo 125 | @abstract Returns a constant representing the title position. 126 | */ 127 | - (NSTitlePosition)classTwoMethodTwo; 128 | 129 | /*! 130 | @method classTwoMethodThree 131 | @abstract Sets the border type to aType, which must be a valid border type. 132 | @discussion Border types are defined in NSView.h. Currently, the following border types are defined: 133 | 134 | * NSNoBorder 135 | * NSLineBorder 136 | * NSBezelBorder 137 | * NSGrooveBorder 138 | 139 | By default, an NSBox's border type is NSGrooveBorder. 140 | 141 | @param aType The specified type. 142 | */ 143 | - (void)classTwoMethodThree:(NSBorderType)aType; 144 | 145 | /*! 146 | @method classTwoMethodFour:bogusOne:bogusTwo 147 | @abstract Sets the title position and includes two bogus args for 148 | testing purposes 149 | @param bogusOne Fictive at best. 150 | @param bogusTwo This argument is rarely used. 151 | */ 152 | - (void)classTwoMethodFour:(NSTitlePosition)aPosition bogusOne:(NSView *)bogusOne bogusTwo:(NSView *)bogusTwo; 153 | 154 | @end 155 | 156 | 157 | -------------------------------------------------------------------------------- /Documentation/usage/chapter_2_section_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | HeaderDoc Unfettered: Cocoa Front End 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
      23 | 24 | 25 | 26 | 47 |
      27 | 28 | 29 | 40 | 41 | 42 | 43 | 44 | < Previous PageNext Page > 45 | 46 |
      48 | 49 |
      50 | 51 |

      Cocoa Front End

      52 |

      Kyle Hammond has made a Cocoa front end available for HeaderDoc. 53 | Mac OS X users can download this from their website at http://www.isd.net/dsl03002/CocoaProgramming.html.

      54 | 55 |

      56 | 57 | 58 | 79 |
      59 | 60 | 61 | 72 | 73 | 74 | 75 | 76 | < Previous PageNext Page > 77 | 78 |
      80 | 81 |

      © 1999, 2004 Apple Computer, Inc. All Rights Reserved. (Last updated: 2004-05-27)

      82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /ExampleHeaders/nestComments.h: -------------------------------------------------------------------------------- 1 | /*! @header 2 | This header tests single-line and c-style headerdoc 3 | markup embedded in the body of a struct or other block. 4 | */ 5 | 6 | /*! 7 | @struct SimpleStruct 8 | @abstract Abstract for this API. 9 | @discussion Discussion that applies to the entire simple struct. 10 | */ 11 | 12 | struct _structTag { 13 | short firstField; /*! @field firstField 1 Description of first field */ 14 | unsigned long secondField; /*! @field secondField 1 Description of second field */ 15 | } SimpleStruct; 16 | 17 | 18 | /*! 19 | @typedef TypedefdSimpleStruct 20 | @abstract Abstract for this API. 21 | @discussion Discussion that applies to the entire typedef'd simple struct. 22 | */ 23 | 24 | typedef struct _structTag { 25 | short //! @field firstField 1 Description of first field 26 | firstField; 27 | unsigned long secondFieldX //! 1 Description of second field 28 | } TypedefdSimpleStruct; 29 | 30 | /*! 31 | @typedef TypedefdEnum 32 | @abstract Abstract for this API. 33 | @discussion Discussion that applies to the entire typedef'd enum. 34 | */ 35 | 36 | typedef enum { 37 | kCFCompareLessThan = -1, /*! @constant kCFCompareLessThan Description of first constant. */ 38 | kCFCompareEqualTo = 0, /*! @constant kCFCompareEqualTo Description of second constant. */ 39 | kCFCompareGreaterThan = 1 /*! Description of third constant. */ 40 | } TypedefdEnum; 41 | 42 | 43 | /*! 44 | @typedef simpleCallback 45 | @abstract Abstract for this API. 46 | @discussion Discussion that applies to the entire callback. 47 | @result Returns what it can when it is possible to do so. 48 | */ 49 | typedef long (*simpleCallback)( 50 | short inFirstParameter, /*! @param inFirstParameter Description of the callback's first parameter. */ 51 | unsigned long long *outSecondParameter /*! @param outSecondParameter Description of the callback's second parameter. */ 52 | ); 53 | 54 | 55 | /*! @typedef This is a TypedefdStructWithCallbacks 56 | @abstract Abstract for this API. 57 | @discussion Defines the basic interface for Command DescriptorBlock (CDB) commands, which you use 58 | to control SCSI Architectural Model (SAM) devices, including ATAPI, Firewire SBP2, and SCSI devices. 59 | 60 | @field firstField 1 Description of first field. 61 | 62 | @callback getPointers Gets the location of the data buffer for an I/O command. The buffer 63 | can be in one or more, possibly discontiguous, locations. 64 | 65 | The getPointers function has the following parameters: 66 | @param cmd A pointer to the CDB command interface instance for the current command. 67 | You must always pass this reference. 68 | 69 | @param outSGList A pointer to a pointer to a scatter/gather list (scatter for reading, gather for writing) 70 | containing one or more records that specify the ranges of virtual memory in the command's 71 | I/O buffer. Each element in a scatter/gather list describes the location and size of one buffer, 72 | allowing you to group multiple buffers of any size into a single virtual buffer for an 73 | I/O transaction. On return, the list specifies the I/O buffer for the command. 74 | 75 | @param outSGEntries On return, specifies the number of records in the scatter/gather list pointed to 76 | by the outSGList parameter. 77 | 78 | @param outTransferCount On return, the maximum data transfer count in bytes for the 79 | command. 80 | 81 | @param outIsWrite On return, specifies whether the command is a write command (true), 82 | or a read command (false) 83 | 84 | @field lastField Description of the struct's last field. 85 | */ 86 | typedef struct _someTag { 87 | IUNKNOWN_C_GUTS; 88 | short firstField; 89 | 90 | /* Set the data pointers */ 91 | /*! 92 | @callback setPointers Specifies the location of the data buffer for an I/O command, 93 | as well as the maximum data transfer count and data transfer direction. 94 | 95 | The setPointers function has the following parameters: 96 | @param cmd A pointer to the CDB command interface instance for the current command. 97 | You must always pass this reference. 98 | 99 | @param sgList A pointer to a scatter/gather list (scatter for reading, gather for writing) 100 | containing one or more records that specify the ranges of virtual memory in the command's 101 | I/O buffer. Each element in a scatter/gather list describes the location and size of one buffer, 102 | allowing you to group multiple buffers of any size into a single virtual buffer for an 103 | I/O transaction. You can pass NULL for this parameter (for a command that doesn't require 104 | a data buffer). 105 | 106 | @result An IOReturn structure which returns the return value in the structure returned. 107 | */ 108 | 109 | IOReturn (*setPointers)(void *cmd, 110 | IOVirtualRange *sgList); 111 | void (*getPointers)(void *cmd, IOVirtualRange **outSGList, int *outSGEntries, UInt32 *outTransferCount, Boolean *outIsWrite); 112 | 113 | unsigned long lastField; 114 | } TypedefdStructWithCallbacks; 115 | 116 | -------------------------------------------------------------------------------- /Documentation/usage/chapter_3_section_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Tools: HeaderDoc Unfettered: Cocoa Front End 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
      23 | 24 | 25 | 26 | 47 |
      27 | 28 | 29 | 40 | 41 | 42 | 43 | 44 | < Previous PageNext Page > 45 | 46 |
      48 | 49 |
      50 | 51 |

      Cocoa Front End

      52 |

      Kyle Hammond has made a Cocoa front end available for HeaderDoc. 53 | Mac OS X users can download this from their website at http://www.isd.net/dsl03002/CocoaProgramming.html.

      54 | 55 |

      56 | 57 | 58 | 79 |
      59 | 60 | 61 | 72 | 73 | 74 | 75 | 76 | < Previous PageNext Page > 77 | 78 |
      80 | 81 |

      © 1999, 2004 Apple Computer, Inc. All Rights Reserved. (Last updated: 2004-05-27)

      82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /testsuite/sources/ObjCTwoClassesOneProtocol.h: -------------------------------------------------------------------------------- 1 | /* 2 | ObjCTestHeader.h 3 | Application Kit 4 | Copyright (c) 1994-1997, Apple Computer, Inc. 5 | All rights reserved. 6 | */ 7 | 8 | /*! @header ObjCTestHeader.h 9 | @discussion This header is used to exercise HeaderDoc's ability to generate documentation from Objective-C headers. It includes declarations for C API and Objective-C classes, protocols, categories, and methods. The code is definitely NOT part of Cocoa, although some declarations have been snagged from Cocoa headers. 10 | */ 11 | 12 | #import 13 | 14 | @class NSFont; 15 | 16 | /*! 17 | @typedef NSTitlePosition 18 | Constants that represent title positions. 19 | @abstract Abstract for this API. 20 | @discussion Discussion that applies to the entire typedef'd enum. 21 | @constant NSNoTitle No title. 22 | @constant NSAboveTop Description of second constant. 23 | @constant NSAtTop Description of third constant. 24 | */ 25 | typedef enum _NSTitlePosition { 26 | NSNoTitle = 0, 27 | NSAboveTop = 1, 28 | NSAtTop = 2, 29 | NSBelowTop = 3, 30 | NSAboveBottom = 4, 31 | NSAtBottom = 5, 32 | NSBelowBottom = 6 33 | } NSTitlePosition; 34 | 35 | typedef enum { 36 | NSBoxPrimary = 0, // default 37 | NSBoxSecondary = 1, 38 | NSBoxSeparator = 2, 39 | NSBoxOldStyle = 3 // use border type 40 | } NSBoxType; 41 | 42 | 43 | /*! 44 | @class ObjCClassUn 45 | @abstract ObjCClassUn provides a visual grouping element. 46 | @discussion An NSBox object is a simple NSView that can do two things: 47 | It can draw a border around itself, and it can title itself. 48 | */ 49 | 50 | @interface ObjCClassUn : NSObject 51 | { 52 | /*All instance variables are private*/ 53 | id _titleCell; 54 | id _contentView; 55 | NSSize _offsets; 56 | NSRect _borderRect; 57 | NSRect _titleRect; 58 | id _unused; 59 | } 60 | 61 | /*! 62 | @method classOneMethodOne 63 | @abstract Returns the receiver's border type. 64 | @discussion Returns the receiver's border type. Border types are defined 65 | in NSView.h. Currently, the following border types are defined: 66 | 67 | * NSNoBorder 68 | 69 | * NSLineBorder 70 | 71 | * NSBezelBorder 72 | 73 | * NSGrooveBorder 74 | 75 | By default, an NSBox's border type is NSGrooveBorder. 76 | */ 77 | - (NSBorderType)classOneMethodOne; 78 | 79 | /*! 80 | @method classOneMethodTwo 81 | @abstract Returns a constant representing the title position. 82 | */ 83 | - (NSTitlePosition)classOneMethodTwo; 84 | 85 | @end 86 | 87 | /*! 88 | @class ObjCClassDeux 89 | @abstract ObjCClassDeux provides a visual grouping element. 90 | @discussion An NSBox object is a simple NSView that can do two things: It can draw a border around itself, and it can title itself. 91 | */ 92 | 93 | @interface ObjCClassDeux : NSObject 94 | { 95 | /*All instance variables are private*/ 96 | struct __bFlags { 97 | NSBorderType borderType:2; 98 | NSTitlePosition titlePosition:3; 99 | unsigned int transparent:1; 100 | unsigned int boxType:2; 101 | unsigned int _RESERVED:24; 102 | } _bFlags; 103 | id _unused; 104 | } 105 | 106 | /*! 107 | @method classTwoMethodOne 108 | @abstract Returns the receiver's border type. 109 | @discussion Returns the receiver's border type. Border types are defined in NSView.h. Currently, the following border types are defined: 110 | 111 | * NSNoBorder 112 | 113 | * NSLineBorder 114 | 115 | * NSBezelBorder 116 | 117 | * NSGrooveBorder 118 | 119 | By default, an NSBox's border type is NSGrooveBorder. 120 | */ 121 | - (NSBorderType)classTwoMethodOne; 122 | 123 | /*! 124 | @method classTwoMethodTwo 125 | @abstract Returns a constant representing the title position. 126 | */ 127 | - (NSTitlePosition)classTwoMethodTwo; 128 | 129 | /*! 130 | @method classTwoMethodThree 131 | @abstract Sets the border type to aType, which must be a valid border type. 132 | @discussion Border types are defined in NSView.h. Currently, the following border types are defined: 133 | 134 | * NSNoBorder 135 | * NSLineBorder 136 | * NSBezelBorder 137 | * NSGrooveBorder 138 | 139 | By default, an NSBox's border type is NSGrooveBorder. 140 | 141 | @param aType The specified type. 142 | */ 143 | - (void)classTwoMethodThree:(NSBorderType)aType; 144 | 145 | /*! 146 | @method classTwoMethodFour:bogusOne:bogusTwo 147 | @abstract Sets the title position and includes two bogus args for 148 | testing purposes 149 | @param bogusOne Fictive at best. 150 | @param bogusTwo This argument is rarely used. 151 | */ 152 | - (void)classTwoMethodFour:(NSTitlePosition)aPosition bogusOne:(NSView *)bogusOne bogusTwo:(NSView *)bogusTwo; 153 | 154 | @end 155 | 156 | /*! 157 | @protocol ObjCValidatorProtocol 158 | @abstract Protocol implemented by validator objects. 159 | @discussion All validator objects validate--in fact, they can't 160 | help themselves. That's what they do. 161 | */ 162 | 163 | @protocol ObjCValidatorProtocol 164 | /*! 165 | @method validateUserInterfaceItem: 166 | @abstract Validates the specified item. 167 | @param anItem The item to be validated. 168 | */ 169 | - (BOOL)validateUserInterfaceItem:(id )anItem; 170 | @end 171 | 172 | 173 | 174 | 175 | -------------------------------------------------------------------------------- /ExampleHeaders/Objective-C/TwoClassesOneProtocol/ObjCTwoClassesOneProtocol.h: -------------------------------------------------------------------------------- 1 | /* 2 | ObjCTestHeader.h 3 | Application Kit 4 | Copyright (c) 1994-1997, Apple Computer, Inc. 5 | All rights reserved. 6 | */ 7 | 8 | /*! @header ObjCTestHeader.h 9 | @discussion This header is used to exercise HeaderDoc's ability to generate documentation from Objective-C headers. It includes declarations for C API and Objective-C classes, protocols, categories, and methods. The code is definitely NOT part of Cocoa, although some declarations have been snagged from Cocoa headers. 10 | */ 11 | 12 | #import 13 | 14 | @class NSFont; 15 | 16 | /*! 17 | @typedef NSTitlePosition 18 | Constants that represent title positions. 19 | @abstract Abstract for this API. 20 | @discussion Discussion that applies to the entire typedef'd enum. 21 | @constant NSNoTitle No title. 22 | @constant NSAboveTop Description of second constant. 23 | @constant NSAtTop Description of third constant. 24 | */ 25 | typedef enum _NSTitlePosition { 26 | NSNoTitle = 0, 27 | NSAboveTop = 1, 28 | NSAtTop = 2, 29 | NSBelowTop = 3, 30 | NSAboveBottom = 4, 31 | NSAtBottom = 5, 32 | NSBelowBottom = 6 33 | } NSTitlePosition; 34 | 35 | typedef enum { 36 | NSBoxPrimary = 0, // default 37 | NSBoxSecondary = 1, 38 | NSBoxSeparator = 2, 39 | NSBoxOldStyle = 3 // use border type 40 | } NSBoxType; 41 | 42 | 43 | /*! 44 | @class ObjCClassUn 45 | @abstract ObjCClassUn provides a visual grouping element. 46 | @discussion An NSBox object is a simple NSView that can do two things: 47 | It can draw a border around itself, and it can title itself. 48 | */ 49 | 50 | @interface ObjCClassUn : NSObject 51 | { 52 | /*All instance variables are private*/ 53 | id _titleCell; 54 | id _contentView; 55 | NSSize _offsets; 56 | NSRect _borderRect; 57 | NSRect _titleRect; 58 | id _unused; 59 | } 60 | 61 | /*! 62 | @method classOneMethodOne 63 | @abstract Returns the receiver's border type. 64 | @discussion Returns the receiver's border type. Border types are defined 65 | in NSView.h. Currently, the following border types are defined: 66 | 67 | * NSNoBorder 68 | 69 | * NSLineBorder 70 | 71 | * NSBezelBorder 72 | 73 | * NSGrooveBorder 74 | 75 | By default, an NSBox's border type is NSGrooveBorder. 76 | */ 77 | - (NSBorderType)classOneMethodOne; 78 | 79 | /*! 80 | @method classOneMethodTwo 81 | @abstract Returns a constant representing the title position. 82 | */ 83 | - (NSTitlePosition)classOneMethodTwo; 84 | 85 | @end 86 | 87 | /*! 88 | @class ObjCClassDeux 89 | @abstract ObjCClassDeux provides a visual grouping element. 90 | @discussion An NSBox object is a simple NSView that can do two things: It can draw a border around itself, and it can title itself. 91 | */ 92 | 93 | @interface ObjCClassDeux : NSObject 94 | { 95 | /*All instance variables are private*/ 96 | struct __bFlags { 97 | NSBorderType borderType:2; 98 | NSTitlePosition titlePosition:3; 99 | unsigned int transparent:1; 100 | unsigned int boxType:2; 101 | unsigned int _RESERVED:24; 102 | } _bFlags; 103 | id _unused; 104 | } 105 | 106 | /*! 107 | @method classTwoMethodOne 108 | @abstract Returns the receiver's border type. 109 | @discussion Returns the receiver's border type. Border types are defined in NSView.h. Currently, the following border types are defined: 110 | 111 | * NSNoBorder 112 | 113 | * NSLineBorder 114 | 115 | * NSBezelBorder 116 | 117 | * NSGrooveBorder 118 | 119 | By default, an NSBox's border type is NSGrooveBorder. 120 | */ 121 | - (NSBorderType)classTwoMethodOne; 122 | 123 | /*! 124 | @method classTwoMethodTwo 125 | @abstract Returns a constant representing the title position. 126 | */ 127 | - (NSTitlePosition)classTwoMethodTwo; 128 | 129 | /*! 130 | @method classTwoMethodThree 131 | @abstract Sets the border type to aType, which must be a valid border type. 132 | @discussion Border types are defined in NSView.h. Currently, the following border types are defined: 133 | 134 | * NSNoBorder 135 | * NSLineBorder 136 | * NSBezelBorder 137 | * NSGrooveBorder 138 | 139 | By default, an NSBox's border type is NSGrooveBorder. 140 | 141 | @param aType The specified type. 142 | */ 143 | - (void)classTwoMethodThree:(NSBorderType)aType; 144 | 145 | /*! 146 | @method classTwoMethodFour:bogusOne:bogusTwo 147 | @abstract Sets the title position and includes two bogus args for 148 | testing purposes 149 | @param bogusOne Fictive at best. 150 | @param bogusTwo This argument is rarely used. 151 | */ 152 | - (void)classTwoMethodFour:(NSTitlePosition)aPosition bogusOne:(NSView *)bogusOne bogusTwo:(NSView *)bogusTwo; 153 | 154 | @end 155 | 156 | /*! 157 | @protocol ObjCValidatorProtocol 158 | @abstract Protocol implemented by validator objects. 159 | @discussion All validator objects validate--in fact, they can't 160 | help themselves. That's what they do. 161 | */ 162 | 163 | @protocol ObjCValidatorProtocol 164 | /*! 165 | @method validateUserInterfaceItem: 166 | @abstract Validates the specified item. 167 | @param anItem The item to be validated. 168 | */ 169 | - (BOOL)validateUserInterfaceItem:(id )anItem; 170 | @end 171 | 172 | 173 | 174 | 175 | -------------------------------------------------------------------------------- /Documentation/intro/chapter_1_section_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Tools: HeaderDoc Unfettered: Introduction to HeaderDoc: API Documentation From Header Files 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
      23 | 24 | 25 | 26 | 47 |
      27 | 28 | 29 | 40 | 41 | 42 | 43 | 44 | Next Page > 45 | 46 |
      48 | 49 |
      50 | 51 |

      Introduction to HeaderDoc: API Documentation 52 | From Header Files

      This document describes how to use the HeaderDoc 53 | tool. It also explains how to insert HeaderDoc comments into your 54 | headers and other files.

      55 | 56 | 57 | 58 | 59 | 60 |

      Contents:

      61 | 62 |
      63 | 64 | What is HeaderDoc? 65 | 66 |
      67 | 68 | Organization of this Document 69 | 70 |
      71 | 72 |
      73 | 74 | 75 | 76 |

      77 | 78 | 79 | 100 |
      80 | 81 | 82 | 93 | 94 | 95 | 96 | 97 | Next Page > 98 | 99 |
      101 | 102 |

      © 1999, 2004 Apple Computer, Inc. All Rights Reserved. (Last updated: 2004-05-27)

      103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /Modules/HeaderDoc/DBLookup.pm: -------------------------------------------------------------------------------- 1 | #! /usr/bin/perl -w 2 | # 3 | # Class name: DBLookup 4 | # Synopsis: Encapsulates the look-up tables and routines to get info 5 | # from database output. Since we need only one of these DBLookups 6 | # we implement only class methods 7 | # 8 | # Author: Matt Morse (matt@apple.com) 9 | # Last Updated: $Date: 2004/03/10 19:12:17 $ 10 | # 11 | # Copyright (c) 1999-2004 Apple Computer, Inc. All rights reserved. 12 | # 13 | # @APPLE_LICENSE_HEADER_START@ 14 | # 15 | # This file contains Original Code and/or Modifications of Original Code 16 | # as defined in and that are subject to the Apple Public Source License 17 | # Version 2.0 (the 'License'). You may not use this file except in 18 | # compliance with the License. Please obtain a copy of the License at 19 | # http://www.opensource.apple.com/apsl/ and read it before using this 20 | # file. 21 | # 22 | # The Original Code and all software distributed under the License are 23 | # distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 24 | # EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 25 | # INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 26 | # FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 27 | # Please see the License for the specific language governing rights and 28 | # limitations under the License. 29 | # 30 | # @APPLE_LICENSE_HEADER_END@ 31 | # 32 | ###################################################################### 33 | 34 | ## 35 | ## This module is slated to be removed in future releases. It was used 36 | ## for special purpose dumps of the documentation, and is no longer needed. 37 | ## If you rely on this module, please send a note to matt@apple.com and 38 | ## we can reconsider its future. 39 | ## 40 | 41 | 42 | package HeaderDoc::DBLookup; 43 | 44 | use strict; 45 | use vars qw($VERSION @ISA); 46 | $VERSION = '1.20'; 47 | 48 | ################ Portability ################################### 49 | my $isMacOS; 50 | my $pathSeparator; 51 | if ($^O =~ /MacOS/i) { 52 | $pathSeparator = ":"; 53 | $isMacOS = 1; 54 | } else { 55 | $pathSeparator = "/"; 56 | $isMacOS = 0; 57 | } 58 | 59 | ################ General Constants ################################### 60 | my $debugging = 0; 61 | 62 | # my $theTime = time(); 63 | # my ($sec, $min, $hour, $dom, $moy, $year, @rest); 64 | # ($sec, $min, $hour, $dom, $moy, $year, @rest) = localtime($theTime); 65 | # $moy++; 66 | # $year += 1900; 67 | # my $dateStamp = "$moy/$dom/$year"; 68 | ###################################################################### 69 | 70 | ################ Lookup Hashes ################################### 71 | my %datatypeNameToIDHash; 72 | my %functionNameToIDHash; 73 | ###################################################################### 74 | 75 | 76 | sub loadUsingFolderAndFiles { 77 | my($class) = shift; 78 | my $folder = shift; 79 | my $functionFilename = shift; 80 | my $typesFilename = shift; 81 | my $enumsFilename = shift; 82 | 83 | if (ref $class) { die "Class method called as object method" }; 84 | 85 | ###################### Read in lookup table of functionID to name ###################### 86 | my $functionTable = $folder.$pathSeparator.$functionFilename; 87 | open(FUNCIDS, "<$functionTable") || die "Can't open $functionTable.\n"; 88 | my @funcIDLines = ; 89 | close FUNCIDS; 90 | foreach my $line (@funcIDLines) { 91 | if ($line =~/^#/) {next;}; 92 | chomp $line; 93 | my ($funcID, $funcName); 94 | ($funcID, $funcName) = split (/\t/, $line); 95 | if (length($funcID)) { 96 | $functionNameToIDHash{$funcName} = $funcID; 97 | } 98 | } 99 | undef @funcIDLines; 100 | 101 | ###################### Read in lookup table of typeID to name ###################### 102 | my $typeTable = $folder.$pathSeparator.$typesFilename; 103 | open(TYPEIDS, "<$typeTable") || die "Can't open $typeTable.\n"; 104 | my @typeIDLines = ; 105 | close TYPEIDS; 106 | foreach my $line (@typeIDLines) { 107 | if ($line =~/^#/) {next;}; 108 | chomp $line; 109 | my ($typeID, $typeName); 110 | ($typeID, $typeName) = split (/\t/, $line); 111 | if (length($typeID)) { 112 | $datatypeNameToIDHash{$typeName} = $typeID; 113 | } 114 | } 115 | undef @typeIDLines; 116 | 117 | ###################### Read in lookup table of enumID to name ###################### 118 | ##### Add this to the types lookup since enums are often identified by the name of their first constant ##### 119 | my $enumTable = $folder.$pathSeparator.$enumsFilename; 120 | open(ENUMIDS, "<$enumTable") || die "Can't open $enumTable.\n"; 121 | my @enumIDLines = ; 122 | close ENUMIDS; 123 | foreach my $line (@enumIDLines) { 124 | if ($line =~/^#/) {next;}; 125 | chomp $line; 126 | my ($enumID, $enumName); 127 | ($enumID, $enumName) = split (/\t/, $line); 128 | if (length($enumID)) { 129 | $datatypeNameToIDHash{$enumName} = $enumID; 130 | } 131 | } 132 | undef @enumIDLines; 133 | } 134 | 135 | sub dataTypeNameToIDHash { 136 | return %datatypeNameToIDHash; 137 | } 138 | 139 | sub functionNameToIDHash { 140 | return %functionNameToIDHash; 141 | } 142 | 143 | sub functionIDForName { 144 | my $class = shift; 145 | my $name = shift; 146 | 147 | if (exists ($functionNameToIDHash{$name})) { 148 | return $functionNameToIDHash{$name}; 149 | } else { 150 | return "UNKNOWN_ID"; 151 | } 152 | } 153 | 154 | sub typeIDForName { 155 | my $class = shift; 156 | my $name = shift; 157 | 158 | if (exists ($datatypeNameToIDHash{$name})) { 159 | return $datatypeNameToIDHash{$name}; 160 | } else { 161 | return "UNKNOWN_ID"; 162 | } 163 | } 164 | 165 | 1; 166 | -------------------------------------------------------------------------------- /testsuite/sources/grouptest.h: -------------------------------------------------------------------------------- 1 | /* 2 | ObjCTestHeader.h 3 | Application Kit 4 | Copyright (c) 1994-1997, Apple Computer, Inc. 5 | All rights reserved. 6 | */ 7 | 8 | /*! @header ObjCTestHeader.h 9 | @discussion This header is used to exercise HeaderDoc's ability to generate documentation from Objective-C headers. It includes declarations for C API and Objective-C classes, protocols, categories, and methods. The code is definitely NOT part of Cocoa, although some declarations have been snagged from Cocoa headers. 10 | */ 11 | 12 | #import 13 | 14 | /*! @class NSFont 15 | @abstract This is a stupid placeholder just to prove we can. 16 | */ 17 | @class NSFont; 18 | 19 | /*! 20 | @typedef NSTitlePosition 21 | Constants that represent title positions. 22 | @abstract Abstract for this API. 23 | @discussion Discussion that applies to the entire typedef'd enum. 24 | @constant NSNoTitle No title. 25 | @constant NSAboveTop Description of second constant. 26 | @constant NSAtTop Description of third constant. 27 | */ 28 | typedef enum _NSTitlePosition { 29 | NSNoTitle = 0, 30 | NSAboveTop = 1, 31 | NSAtTop = 2, 32 | NSBelowTop = 3, 33 | NSAboveBottom = 4, 34 | NSAtBottom = 5, 35 | NSBelowBottom = 6 36 | } NSTitlePosition; 37 | 38 | typedef enum { 39 | NSBoxPrimary = 0, // default 40 | NSBoxSecondary = 1, 41 | NSBoxSeparator = 2, 42 | NSBoxOldStyle = 3 // use border type 43 | } NSBoxType; 44 | 45 | 46 | /*! 47 | @class ObjCClassUn 48 | @abstract ObjCClassUn provides a visual grouping element. 49 | @discussion An NSBox object is a simple NSView that can do two things: 50 | It can draw a border around itself, and it can title itself. 51 | */ 52 | 53 | @interface ObjCClassUn : NSObject 54 | { 55 | /*All instance variables are private*/ 56 | id _titleCell; 57 | id _contentView; 58 | NSSize _offsets; 59 | NSRect _borderRect; 60 | NSRect _titleRect; 61 | /*! @var _unused 62 | This is... um... unused. I know these are private, but somebody 63 | wanted this documentation anyway. 64 | */ 65 | id _unused; 66 | } 67 | 68 | /*! @methodgroup group_one */ 69 | /*! 70 | @method classOneMethodOne 71 | @abstract Returns the receiver's border type. 72 | @see foo 73 | @seealso bar 74 | @discussion Returns the receiver's border type. Border types are defined 75 | in NSView.h. Currently, the following border types are defined: 76 | 77 | * NSNoBorder 78 | 79 | * NSLineBorder 80 | 81 | * NSBezelBorder 82 | 83 | * NSGrooveBorder 84 | 85 | By default, an NSBox's border type is NSGrooveBorder. 86 | */ 87 | - (NSBorderType)classOneMethodOne; 88 | 89 | /*! @methodgroup group_two */ 90 | /*! 91 | @method classOneMethodTwo 92 | @abstract Returns a constant representing the title position. 93 | */ 94 | - (NSTitlePosition)classOneMethodTwo; 95 | /*! @methodgroup group_one */ 96 | /*! 97 | @method classOneMethodThree 98 | @abstract Returns a constant representing the title position. 99 | */ 100 | - (NSTitlePosition)classOneMethodThree; 101 | 102 | @end 103 | 104 | /*! 105 | @class ObjCClassDeux 106 | @abstract ObjCClassDeux provides a visual grouping element. 107 | @discussion An NSBox object is a simple NSView that can do two things: It can draw a border around itself, and it can title itself. 108 | */ 109 | 110 | @interface ObjCClassDeux : NSObject 111 | { 112 | /*All instance variables are private*/ 113 | struct __bFlags { 114 | NSBorderType borderType:2; 115 | NSTitlePosition titlePosition:3; 116 | unsigned int transparent:1; 117 | unsigned int boxType:2; 118 | unsigned int _RESERVED:24; 119 | } _bFlags; 120 | id _unused; 121 | } 122 | 123 | /*! 124 | @method classTwoMethodOne 125 | @abstract Returns the receiver's border type. 126 | @discussion Returns the receiver's border type. Border types are defined in NSView.h. Currently, the following border types are defined: 127 | 128 | * NSNoBorder 129 | 130 | * NSLineBorder 131 | 132 | * NSBezelBorder 133 | 134 | * NSGrooveBorder 135 | 136 | By default, an NSBox's border type is NSGrooveBorder. 137 | */ 138 | - (NSBorderType)classTwoMethodOne; 139 | 140 | /*! 141 | @method classTwoMethodTwo 142 | @abstract Returns a constant representing the title position. 143 | */ 144 | - (NSTitlePosition)classTwoMethodTwo; 145 | 146 | /*! 147 | @method classTwoMethodThree 148 | @abstract Sets the border type to aType, which must be a valid border type. 149 | @discussion Border types are defined in NSView.h. Currently, the following border types are defined: 150 | 151 | * NSNoBorder 152 | * NSLineBorder 153 | * NSBezelBorder 154 | * NSGrooveBorder 155 | 156 | By default, an NSBox's border type is NSGrooveBorder. 157 | 158 | @param aType The specified type. 159 | */ 160 | - (void)classTwoMethodThree:(NSBorderType)aType; 161 | 162 | /*! 163 | @method classTwoMethodFour:bogusOne:bogusTwo 164 | @abstract Sets the title position and includes two bogus args for 165 | testing purposes 166 | @param bogusOne Fictive at best. 167 | @param bogusTwo This argument is rarely used. 168 | */ 169 | - (void)classTwoMethodFour:(NSTitlePosition)aPosition bogusOne:(NSView *)bogusOne bogusTwo:(NSView *)bogusTwo; 170 | 171 | @end 172 | 173 | /*! 174 | @protocol ObjCValidatorProtocol 175 | @abstract Protocol implemented by validator objects. 176 | @discussion All validator objects validate--in fact, they can't 177 | help themselves. That's what they do. 178 | */ 179 | 180 | @protocol ObjCValidatorProtocol 181 | /*! 182 | @method validateUserInterfaceItem: 183 | @abstract Validates the specified item. 184 | @param anItem The item to be validated. 185 | */ 186 | - (BOOL)validateUserInterfaceItem:(id )anItem; 187 | @end 188 | 189 | 190 | 191 | 192 | -------------------------------------------------------------------------------- /Documentation/tags/chapter_3_section_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | HeaderDoc Unfettered: Tags Common to All API Types 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
      23 | 24 | 25 | 26 | 47 |
      27 | 28 | 29 | 40 | 41 | 42 | 43 | 44 | < Previous PageNext Page > 45 | 46 |
      48 | 49 |
      50 | 51 |

      Tags Common to All API Types

      52 |

      The @abstract, @updated, 53 | and @discussion tags can be used within any of 54 | the type-specific tags below. For example,:

      55 |
      /*!
       @enum Beverage Categories
       @abstract Constants to group beverage types.
       @discussion These constants (such as kSoda, kBeer, etc.) can be used...
       @updated 2003-04-15
      */
      56 |

      They are not required within any HeaderDoc comment, but can 57 | improve the formatting of the HTML output, and can help automate 58 | the importation of comments into the Inside Mac documentation database.

      59 |

      60 | 61 |

      62 | 63 | 64 | 85 |
      65 | 66 | 67 | 78 | 79 | 80 | 81 | 82 | < Previous PageNext Page > 83 | 84 |
      86 | 87 |

      © 1999, 2004 Apple Computer, Inc. All Rights Reserved. (Last updated: 2004-05-27)

      88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /Documentation/usage/chapter_2_section_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | HeaderDoc Unfettered: Running the Scripts using MacPerl 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
      23 | 24 | 25 | 26 | 47 |
      27 | 28 | 29 | 40 | 41 | 42 | 43 | 44 | < Previous PageNext Page > 45 | 46 |
      48 | 49 |
      50 | 51 |

      Running the Scripts using MacPerl

      52 |

      Most of HeaderDoc runs on Mac OS 9 and earlier assuming MacPerl 53 | is installed. (You can get MacPerl from the CPAN ports page.) Here's what you need to do to run HeaderDoc using 54 | MacPerl:

      55 |
      • Change the 56 | line endings in the scripts and modules (*.pm files) from UNIX to Macintosh. 57 | Many text editors (BBEdit, for example) let you easily change line 58 | ending types.

      • 59 |
      • Run MacPerl, open headerDoc2HTML.pl and gatherHeaderDoc.pl 60 | and save them as droplets. You might save them with a different 61 | names (say, the script names minus the “.pl” extensions) to 62 | preserve the original versions.

      • 63 |
      • Now, you can drag a header file or folder of header files 64 | on each droplet in turn, and the files will be processed in place.

      65 |
      Note: Some 66 | advanced features, including automatic linking, man page output, 67 | and XML output will not work in Mac OS 9, as these require libxml2, 68 | which is only available for UNIX-based and UNIX-like systems.
      69 | 70 |

      71 | 72 | 73 | 94 |
      74 | 75 | 76 | 87 | 88 | 89 | 90 | 91 | < Previous PageNext Page > 92 | 93 |
      95 | 96 |

      © 1999, 2004 Apple Computer, Inc. All Rights Reserved. (Last updated: 2004-05-27)

      97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | -------------------------------------------------------------------------------- /Documentation/gatherheaderdoc/chapter_7_section_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | HeaderDoc Unfettered: Using GatherHeaderDoc 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
      23 | 24 | 25 | 26 | 47 |
      27 | 28 | 29 | 40 | 41 | 42 | 43 | 44 | < Previous PageNext Page > 45 | 46 |
      48 | 49 |
      50 | 51 |

      Using GatherHeaderDoc

      GatherHeaderDoc is a post-processing script 52 | for HeaderDoc. Its primary purpose is to take a directory containing 53 | output from HeaderDoc and create a table of contents with links.

      54 |

      GatherHeaderDoc is highly configurable. You can configure 55 | it to insert custom breadcrumb links, use a custom TOC template, 56 | and even automatically insert “framework” information into the 57 | TOC template on a per-directory basis.

      58 | 59 | 60 | 61 | 62 | 63 |

      Contents:

      64 | 65 |
      66 | 67 | Running gatherHeaderDoc.pl 68 | 69 |
      70 | 71 | Creating a TOC Template File 72 | 73 |
      74 | 75 | Example gatherHeaderDoc Template 76 | 77 |
      78 | 79 |
      80 | 81 | 82 | 83 | 84 |

      85 | 86 | 87 | 108 |
      88 | 89 | 90 | 101 | 102 | 103 | 104 | 105 | < Previous PageNext Page > 106 | 107 |
      109 | 110 |

      © 1999, 2004 Apple Computer, Inc. All Rights Reserved. (Last updated: 2004-05-27)

      111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | -------------------------------------------------------------------------------- /Documentation/tags/chapter_2_section_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Tools: HeaderDoc Unfettered: Tags Common to All API Types 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
      23 | 24 | 25 | 26 | 47 |
      27 | 28 | 29 | 40 | 41 | 42 | 43 | 44 | < Previous PageNext Page > 45 | 46 |
      48 | 49 |
      50 | 51 |

      Tags Common to All API Types

      52 |

      The @abstract, @updated, 53 | and @discussion tags 54 | can be used within any of the type-specific tags below. For example:

      55 |
      /*!
       @enum Beverage Categories
       @abstract Constants to group beverage types.
       @discussion These constants (such as kSoda, kBeer, etc.) can be used...
       @updated 2003-04-15
      */
      56 |

      They are not required within any HeaderDoc comment, but can 57 | improve the formatting of the HTML output, and can help automate 58 | the importation of comments into the Inside Mac documentation database.

      59 |

      60 | 61 |

      62 | 63 | 64 | 85 |
      65 | 66 | 67 | 78 | 79 | 80 | 81 | 82 | < Previous PageNext Page > 83 | 84 |
      86 | 87 |

      © 1999, 2004 Apple Computer, Inc. All Rights Reserved. (Last updated: 2004-05-27)

      88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /Documentation/usage/chapter_2_section_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | HeaderDoc Unfettered: Using HeaderDoc 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
      23 | 24 | 25 | 26 | 47 |
      27 | 28 | 29 | 40 | 41 | 42 | 43 | 44 | < Previous PageNext Page > 45 | 46 |
      48 | 49 |
      50 | 51 |

      Using HeaderDoc

      HeaderDoc includes two scripts, headerDoc2HTML.pl which 52 | generates documentation for each header it encounters, and gatherHeaderDoc.pl which 53 | finds these islands of documentation and assembles a master table 54 | of contents linking them together.

      55 |

      This section describes headerDoc2HTML.pl. For information 56 | on GatherHeaderDoc, see “Using GatherHeaderDoc”.

      57 | 58 | 59 | 60 | 61 | 62 |

      Contents:

      63 | 64 |
      65 | 66 | Running headerDoc2HTML.pl 67 | 68 |
      69 | 70 | Running the Scripts using MacPerl 71 | 72 |
      73 | 74 | Cocoa Front End 75 | 76 |
      77 | 78 |
      79 | 80 | 81 | 82 | 83 |

      84 | 85 | 86 | 107 |
      87 | 88 | 89 | 100 | 101 | 102 | 103 | 104 | < Previous PageNext Page > 105 | 106 |
      108 | 109 |

      © 1999, 2004 Apple Computer, Inc. All Rights Reserved. (Last updated: 2004-05-27)

      110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | -------------------------------------------------------------------------------- /Documentation/tags/chapter_3_section_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | HeaderDoc Unfettered: Automatic Tagging 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
      23 | 24 | 25 | 26 | 47 |
      27 | 28 | 29 | 40 | 41 | 42 | 43 | 44 | < Previous PageNext Page > 45 | 46 |
      48 | 49 |
      50 | 51 |

      Automatic Tagging

      52 |

      Beginning in HeaderDoc 8, certain tags are often not needed. 53 | These include:

      54 |

      Numbered 55 | lists
      56 |
      It is no longer necessary to mark up numbered lists 57 | with <ol><li>. 58 | HeaderDoc will automatically detect numbered lists.
      59 |
      Declaration types
      60 |
      Declaration type tags such as @function, @class, 61 | and @typedef are no longer required unless you 62 | are trying to override HeaderDoc’s normal behavior (such as using @class or @interface to 63 | change the display of a typedef struct.
      64 |
      Availability macros
      65 |
      It is no longer necessary to ignore availability macros 66 | with @ignore. The file Availability.list in 67 | the HeaderDoc modules directory contains a mapping of availability 68 | macros to strings. When any macros described in this file appear 69 | in a declaration, the corresponding text will automatically be added 70 | to its documentation as an availability attribute.

      You can 71 | add your own availability macros by adding them to the Availability.list file 72 | or by adding an @availabilitymacro block in your headers.

      73 | 74 |

      75 | 76 | 77 | 98 |
      78 | 79 | 80 | 91 | 92 | 93 | 94 | 95 | < Previous PageNext Page > 96 | 97 |
      99 | 100 |

      © 1999, 2004 Apple Computer, Inc. All Rights Reserved. (Last updated: 2004-05-27)

      101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | --------------------------------------------------------------------------------