nlopess         Sun Jul 23 19:27:39 2006 UTC

  Modified files:              
    /phpdoc/scripts     xml_proto.php 
  Log:
  also upgrade parse_desc(). the http pecl extension should be parsable by now
  
http://cvs.php.net/viewvc.cgi/phpdoc/scripts/xml_proto.php?r1=1.42&r2=1.43&diff_format=u
Index: phpdoc/scripts/xml_proto.php
diff -u phpdoc/scripts/xml_proto.php:1.42 phpdoc/scripts/xml_proto.php:1.43
--- phpdoc/scripts/xml_proto.php:1.42   Sun Jul 23 19:08:44 2006
+++ phpdoc/scripts/xml_proto.php        Sun Jul 23 19:27:39 2006
@@ -16,7 +16,7 @@
   | Authors:   Brad House <[EMAIL PROTECTED]>                             |
   +----------------------------------------------------------------------+
  
-  $Id: xml_proto.php,v 1.42 2006/07/23 19:08:44 nlopess Exp $
+  $Id: xml_proto.php,v 1.43 2006/07/23 19:27:39 nlopess Exp $
 */
 
 /*
@@ -407,42 +407,18 @@
 
 function parse_desc($func_num, $data)
 {
-  $len=0;
-  $i=0;
-  $c=0;
-  $temp="";
-  $temp_len=0;
-  $spaces=0;
-
-  $len=strlen($data);
-  for ($i=0; $i<$len; $i++) {
-    $c=substr($data, $i, 1);
-    switch ($c) {
-      case '\r':
-      case '\n':
-      case ' ':
-        if (!$spaces) {
-          $spaces=1;
-          $temp .= ' ';
-          $temp_len++;
-        }
-        break;
-
-      default:
-        if ($c != '\r' && $c != '\n') {
-          $spaces=0;
-          $temp .= $c;
-          $temp_len++;
-        }
-        break;
-    }
+  // require at least 5 chars for the description (to skip empty or '*' lines)
+  if (!preg_match('/(.{5,})/', $data, $match)) {
+    echo "Not a proper description definition: $data\n";
+    return;
   }
-  function_add_purpose($func_num, $temp);
+  $data = trim($match[1], "* \t\r\n");
+  function_add_purpose($func_num, $data);
 }
 
 function parse_proto($proto)
 {
-  if 
(!preg_match('/proto\s+([a-zA-Z]+)\s+([a-zA-Z0-9:_-]+)\s*\((.+)\)\s+(.+)/', 
$proto, $match)) {
+  if 
(!preg_match('/proto\s+(?:(?:static|final|protected)\s+)?([a-zA-Z]+)\s+([a-zA-Z0-9:_-]+)\s*\((.*)\)\s+([\000-\377]+)/',
 $proto, $match)) {
     echo "Not a proper proto definition: $proto\n";
     return;
   }
@@ -453,10 +429,7 @@
   parse_desc($func_number, $match[4]);
 
   // now parse the arguments
-  if (!preg_match_all('/(?:(\[),\s*)?([a-zA-Z]+)\s+(&?[a-zA-Z0-9:_-]+)/', 
$match[3], $match, PREG_SET_ORDER)) {
-    echo "Not a proper proto definition: $proto\n";
-    return;
-  }
+  preg_match_all('/(?:(\[),\s*)?([a-zA-Z]+)\s+(&?[a-zA-Z0-9:_-]+)/', 
$match[3], $match, PREG_SET_ORDER);
 
   foreach ($match as $arg) {
     function_add_arg($func_number, $arg[2], $arg[3], $arg[1]);

Reply via email to