]> granicus.if.org Git - php/commitdiff
- Less GCC warnings; code less readable, yay!
authorGustavo André dos Santos Lopes <cataphract@php.net>
Wed, 31 Aug 2011 05:45:02 +0000 (05:45 +0000)
committerGustavo André dos Santos Lopes <cataphract@php.net>
Wed, 31 Aug 2011 05:45:02 +0000 (05:45 +0000)
- Fixed html_tables.h generaration in 64-bit archs.
- Closes bug #55394 - Patch to suppress initialization warnings in html.c
#signed/unsigned mismatches for another day
#regenerated tables on another commit

ext/standard/html.c
ext/standard/html_tables/html_table_gen.php

index 56b33d4fafd54e9dbb34689eb2216a4a3b316d5c..b9b4a977a7a9ed8834cd854598465a2f64b5d575 100644 (file)
@@ -271,7 +271,7 @@ static inline unsigned int get_next_char(
                                        MB_FAILURE(pos, 2);
                                }
                                pos += 2;
-                       } else if (c < 0x80 || c >= 0xA1 && c <= 0xDF) {
+                       } else if (c < 0x80 || (c >= 0xA1 && c <= 0xDF)) {
                                this_char = c;
                                pos += 1;
                        } else {
@@ -787,8 +787,8 @@ static inline int process_numeric_entity(const char **buf, unsigned *code_point)
                        
        /* strtol allows whitespace and other stuff in the beginning
                * we're not interested */
-       if (hexadecimal && !isxdigit(**buf) ||
-                       !hexadecimal && !isdigit(**buf)) {
+       if ((hexadecimal && !isxdigit(**buf)) ||
+                       (!hexadecimal && !isdigit(**buf))) {
                return FAILURE;
        }
 
@@ -821,9 +821,9 @@ static inline int process_named_entity_html(const char **buf, const char **start
         * sequence of 8-bit code units. If in the ranges below, it represents
         * necessarily a alpha character because none of the supported encodings
         * has an overlap with ASCII in the leading byte (only on the second one) */
-       while (**buf >= 'a' && **buf <= 'z' ||
-                       **buf >= 'A' && **buf <= 'Z' ||
-                       **buf >= '0' && **buf <= '9') {
+       while ((**buf >= 'a' && **buf <= 'z') ||
+                       (**buf >= 'A' && **buf <= 'Z') ||
+                       (**buf >= '0' && **buf <= '9')) {
                (*buf)++;
        }
 
index 05997f03754b314c57307852691e23ae3afcc086..7e7314fa3564f9f26756add5f66833935d892113 100644 (file)
@@ -25,7 +25,7 @@ $t = <<<CODE
    +----------------------------------------------------------------------+
    | PHP Version 5                                                        |
    +----------------------------------------------------------------------+
-   | Copyright (c) 1997-2010 The PHP Group                                |
+   | Copyright (c) 1997-%s The PHP Group                                |
    +----------------------------------------------------------------------+
    | This source file is subject to version 3.01 of the PHP license,      |
    | that is bundled with this package in the file LICENSE, and is        |
@@ -119,7 +119,7 @@ typedef struct {
 
 CODE;
 
-echo $t;
+echo sprintf($t, date("Y"));
 
 $encodings = array(
     array(
@@ -213,7 +213,7 @@ foreach ($encodings as $e) {
         $s2tables_idents[$i] = $e["ident"];
         
         echo "static const enc_to_uni_stage2 enc_to_uni_s2_{$e['ident']}_".
-            sprintf("%02X", $i << 6)." = {\n";
+            sprintf("%02X", $i << 6)." = { {\n";
         for ($j = 0; $j < 64; $j++) {
             if ($j == 0) echo "\t";
             elseif ($j % 6 == 0) echo "\n\t";
@@ -223,7 +223,7 @@ foreach ($encodings as $e) {
             else
                 echo "0xFFFF,"; /* special value; indicates no mapping */
         }
-        echo "\n};\n\n";
+        echo "\n} };\n\n";
         
         $prevStage2[] = $mstable[$i];
     }
@@ -235,11 +235,11 @@ foreach ($encodings as $e) {
 "/* {{{ Stage 1 table for {$e['name']} */\n";
 
     echo
-"static const enc_to_uni enc_to_uni_{$e['ident']} = {
+"static const enc_to_uni enc_to_uni_{$e['ident']} = { {
 \t&enc_to_uni_s2_{$s2tables_idents[0]}_00,
 \t&enc_to_uni_s2_{$s2tables_idents[1]}_40,
 \t&enc_to_uni_s2_{$s2tables_idents[2]}_80,
-\t&enc_to_uni_s2_{$s2tables_idents[3]}_C0,
+\t&enc_to_uni_s2_{$s2tables_idents[3]}_C0 }
 };
 ";
 
@@ -471,17 +471,17 @@ foreach ($multicp_rows as $k => $v) {
        if (key_exists("default", $v)) {
         if ($v['default'] == 'GT') /* hack to make > translate to &gt; not GT; */
             $v['default'] = "gt";
-               echo "\t{", sprintf("%02d", count($v) - 1),
+               echo "\t{ {", sprintf("%02d", count($v) - 1),
                        ",\t\t", sprintf("\"%-21s", $v["default"].'",'), "\t",
-            sprintf("% 2d", strlen($v["default"])), '},', "\n"; 
+            sprintf("% 2d", strlen($v["default"])), '} },', "\n"; 
        } else {
-               echo "\t{", sprintf("%02d", count($v)),
-                       ",\t\t", sprintf("%-22s", 'NULL'), ",\t0},\n"; 
+               echo "\t{ {", sprintf("%02d", count($v)),
+                       ",\t\t", sprintf("%-22s", 'NULL'), ",\t0} },\n"; 
        }
        unset($v["default"]);
        foreach ($v as $l => $w) {
-               echo "\t{", sprintf("0x%05s", $l), ",\t", sprintf("\"%-21s", $w.'",'), "\t",
-            sprintf("% 2d", strlen($w)), '},', "\n"; 
+               echo "\t{ {", sprintf("0x%05s", $l), ",\t", sprintf("\"%-21s", $w.'",'), "\t",
+            sprintf("% 2d", strlen($w)), '} },', "\n"; 
        }
        echo "};\n";
 }
@@ -495,22 +495,22 @@ if ($pass2 < 2)
 $t = <<<CODE
 static const entity_stage3_row empty_stage3_table[] = {
        /* 64 elements */
-       {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0},
-       {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0},
-       {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0},
-       {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0},
-       {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0},
-       {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0},
-       {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0},
-       {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0},
-       {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0},
-       {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0},
-       {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0},
-       {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0},
-       {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0},
-       {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0},
-       {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0},
-       {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0}, {0, NULL, 0},
+       {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } },
+       {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } },
+       {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } },
+       {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } },
+       {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } },
+       {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } },
+       {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } },
+       {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } },
+       {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } },
+       {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } },
+       {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } },
+       {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } },
+       {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } },
+       {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } },
+       {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } },
+       {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } },
 };
 
 CODE;
@@ -550,14 +550,14 @@ for ($i = 0; $i < 0x1E; $i++) {
                                elseif ($y % 4 == 0) echo "\n\t";
                                else echo " ";
                                if ($z === NULL)
-                                       echo "{0, NULL, 0},";
+                                       echo "{0, { {NULL, 0} } },";
                 elseif ($z === "QUOT") /* hack to translate " into &quote;, not &QUOT; */
-                    echo "{0, \"quot\", 4},";
+                    echo "{0, { {\"quot\", 4} } },";
                                elseif ($z !== "")
-                                       echo "{0, \"$z\", ", strlen($z), "},";
+                                       echo "{0, { {\"$z\", ", strlen($z), "} } },";
                                else
-                                       echo "{1, (void*)", sprintf("multi_cp_{$ident}_%05X",
-                                               ($i << 12) | ($k << 6) | $y ), "},";
+                                       echo "{1, { {(void *)", sprintf("multi_cp_{$ident}_%05X",
+                                               ($i << 12) | ($k << 6) | $y ), "} } },";
                                
                        }
                        echo "\n};\n\n";
@@ -712,7 +712,7 @@ typedef struct {
        const entity_ht_bucket *buckets; /* .num_elems elements */
 } entity_ht;
 
-static const entity_cp_map ht_bucket_empty[] = { NULL };
+static const entity_cp_map ht_bucket_empty[] = { {NULL, 0, 0, 0} };
 
 CODE;
 
@@ -726,9 +726,9 @@ function hashfun($str)
        $nKeyLength = strlen($str);
        $pos = 0;
 
-       /* variant with the hash unrolled eight times */
        for (; $nKeyLength > 0; $nKeyLength--) {
-               $hash = (int)(((int)(((int)($hash << 5)) + $hash)) + ord($str[$pos++]));
+               $hash = (int)(((int)(((int)($hash << 5)) + $hash)) + ord($str[$pos++]))
+                                & 0xFFFFFFFF;
        }
        return $hash;
 
@@ -762,7 +762,7 @@ for ($i = 0; $i < $numelems; $i++) {
                                $h[0], strlen($h[0]), hexdec($h[1]));
                }
        }
-       echo " {NULL} };\n";
+       echo " {NULL, 0, 0, 0} };\n";
 }
 echo "\n";