Patch for the bugs:

http://bugs.php.net/bug.php?id=49006
http://bugs.php.net/bug.php?id=49005
Index: phpdotnet/phd/Package/Default/Manpage.php
===================================================================
--- phpdotnet/phd/Package/Default/Manpage.php   (revision 284228)
+++ phpdotnet/phd/Package/Default/Manpage.php   (working copy)
@@ -100,7 +100,7 @@
         'paramdef'              => 'format_suppressed_tags',
         'parameter'             => array(
             /* DEFAULT */          'format_suppressed_tags',
-            'methodparam'       => 'format_suppressed_tags',
+            'methodparam'       => 'format_parameter_method',
             'code'              => '\\fI',
         ),
         'productname'           => 'format_suppressed_tags',
@@ -303,7 +303,7 @@
     }
 
     public function format_parameter_text($value, $tag) {
-        return "\n\\fI$" . $value . "\\fP";
+        return "\n\\fI" . ((isset($value[0]) && $value[0] == "$") ? "" : "$") 
. $value . "\\fP";
     }
 
     public function format_parameter_term_text($value, $tag) {
@@ -379,7 +379,8 @@
                 "optional" => $opt,
                 "type" => "",
                 "name" => "",
-                "initializer" => "");
+                "initializer" => "",
+                "reference" => false);
         }
         return "";
     }
@@ -390,7 +391,8 @@
                 "optional" => false,
                 "type" => "void",
                 "name" => "",
-                "initializer" => "");
+                "initializer" => "",
+                "reference" => false);
         }
         return "";
     }
@@ -400,6 +402,13 @@
         return "";
     }
 
+    public function format_parameter_method($open, $name, $attrs, $props) {
+        if ($open && isset($attrs[Reader::XMLNS_DOCBOOK]["role"]) && 
$attrs[Reader::XMLNS_DOCBOOK]["role"] == "reference") {
+            
$this->cchunk['methodsynopsis']['params'][count($this->cchunk['methodsynopsis']['params'])-1]['reference']
 = true;
+        }
+        return "";
+    }
+
     public function format_parameter_method_text($value, $tag) {
         
$this->cchunk['methodsynopsis']['params'][count($this->cchunk['methodsynopsis']['params'])-1]['name']
 = $value;
         return "";
@@ -430,9 +439,14 @@
             return "\n.br";
         $params = array();
         // write the formatted synopsis
-        foreach ($this->cchunk['methodsynopsis']['params'] as $parameter)
-            array_push( $params, ($parameter['optional'] ? "[" : "") . 
$parameter['type'] .
-                ($parameter['name'] ? " \\fI$" . $parameter['name'] . "\\fP" : 
"") . ($parameter['initializer'] ? " = " . $parameter['initializer'] : "") . 
($parameter['optional'] ? "]" : "") );
+        foreach ($this->cchunk['methodsynopsis']['params'] as $parameter) {
+            array_push($params, ($parameter['optional'] ? "[" : "") 
+                        . $parameter['type'] 
+                        . ($parameter['reference'] ? " \\fI&\\fP" : " ") 
+                        . ($parameter['name'] ? "\\fI$" . $parameter['name'] . 
"\\fP" : "") 
+                        . ($parameter['initializer'] ? " = " . 
$parameter['initializer'] : "") 
+                        . ($parameter['optional'] ? "]" : "") );
+        }
         $ret = "\n(" . join($params, ", ") . ")";
         $this->cchunk['methodsynopsis']['params'] = array();
 

Reply via email to