]> granicus.if.org Git - graphviz/commitdiff
script binding documentation fixes
authorellson <devnull@localhost>
Fri, 28 Oct 2005 16:55:15 +0000 (16:55 +0000)
committerellson <devnull@localhost>
Fri, 28 Oct 2005 16:55:15 +0000 (16:55 +0000)
tclpkg/gv/gv_doc_writer.tcl

index 9aebcef41b16bebdde44ddcb04bfb66ced7e27ee..06d444f7f3243f820653b4b80b8fef55efefb8c2 100755 (executable)
@@ -4,37 +4,6 @@ source gv_doc_langs.tcl
 
 set TEMPLATE gv_doc_template.tcl
 
-set fn gv.i
-set f [open $fn r]
-set t [read $f [file size $fn]]
-close $f
-
-regsub -all {.*%inline %\{} $t {} t
-regsub -all {%\}} $t {} t
-regsub -all {extern} $t {} t
-regsub -all {/\*.*?\*/} $t {} t
-regsub -all {//.*?} $t {} t
-
-foreach rec [split $t \n] {
-       set rec [string trim $rec " \t;)"]
-       if {[string length $rec] == 0} {continue}
-       set i 0
-       set params {}
-       foreach type_name [split $rec "(,"] {
-               set type_name [string trim $type_name]
-               regsub -all {[ \t]+(\**)} $type_name {\1 } type_name
-               foreach {type name} $type_name {break}
-               if {! $i} {
-                       set func $name
-                       set functype $type
-               } {
-                       lappend params $type $name
-               }
-               incr i
-       }
-       lappend FUNC($func) $functype $params
-}
-
 proc gv_doc_synopsis {} {
        global SYNOPSIS
        return [join $SYNOPSIS "\n.br\n"]
@@ -45,23 +14,62 @@ proc gv_doc_usage {} {
        return [join $USAGE "\n.P\n"]
 }
 
-proc gv_doc_command {cmd} {
-       global FUNC TYPES nameprefix paramstart paramsep paramend
-       
+proc gv_doc_commands {} {
+       global TYPES nameprefix paramstart paramsep paramend
+
+       set fn gv.i
+       set f [open $fn r]
+       set t [read $f [file size $fn]]
+       close $f
+
+       regsub -all {.*%inline %\{} $t {} t
+       regsub -all {%\}} $t {} t
+       regsub -all {extern} $t {} t
+
        set res {}
-       foreach {functype params} $FUNC($cmd) {
+       foreach rec [split $t \n] {
+               set rec [string trim $rec " \t;)"]
+               if {[string length $rec] == 0} {continue}
+               if {[regsub -- {/\*\*\* (.*) \*/} $rec {\1} c]} {
+                       lappend res .TP $c .br
+                       continue
+               }
+               if {[regsub -- {/\*\* (.*) \*/} $rec {\1} c]} {
+                       lappend res .TP "\\fB$c\\fR" .br
+                       continue
+               }
+               if {[regsub -- {/\*.*\*/} $rec {} c]} {
+                       continue
+               }
+               if {[regsub -- {//} $rec {} c]} {
+                       continue
+               }
+               set i 0
+               set params {}
+               foreach type_name [split $rec "(,"] {
+                       set type_name [string trim $type_name]
+                       regsub -all {[ \t]+(\**)} $type_name {\1 } type_name
+                       foreach {type name} $type_name {break}
+                       if {! $i} {
+                               set func $name
+                               set functype $type
+                       } {
+                               lappend params $type $name
+                       }
+                       incr i
+               }
                set par {}
                foreach {paramtype param} $params {
                        if {[info exists TYPES([list $paramtype $param])]} {
-                               lappend par $TYPES([list $paramtype $param])
+                               lappend par "$TYPES([list $paramtype $param])"
                        } {
                                lappend par "$TYPES($paramtype) $param"
                        }
                }
                if {[string length $TYPES($functype)]} {
-                       lappend res "$TYPES($functype) \\fB$nameprefix$cmd\\fR $paramstart[join $par $paramsep]$paramend" .br
+                       lappend res "\\fI$TYPES($functype)\\fR \\fB$nameprefix$func\\fR \\fI$paramstart[join $par $paramsep]$paramend\\fR" .br
                } {
-                       lappend res "\\fB$nameprefix$cmd\\fR $paramstart[join $par $paramsep]$paramend" .br
+                       lappend res "\\fB$nameprefix$func\\fR \\fI$paramstart[join $par $paramsep]$paramend\\fR" .br
                }
                        
        }
@@ -79,4 +87,6 @@ foreach lang [array names LANGS] {
        puts $f [subst [read $ft [file size $TEMPLATE]]]
        close $ft
        close $f
+       array unset PROPS
+       array unset TYPES
 }