com php-src: separated zpp and macro replacement: compat/PECL _PORTING compat/replace.php

From: Date: Wed, 29 Jan 2014 12:39:02 +0000
Subject: com php-src: separated zpp and macro replacement: compat/PECL _PORTING compat/replace.php
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-75846@lists.php.net to get a copy of this message
Commit: 7554d079453d1af9f577f3eabae93475b0d29ab3 Author: Anatol Belski <ab@php.net> Wed, 29 Jan 2014 13:39:02 +0100 Parents: 9fedc08613b8fac017d3fc824c5da7559fb0d7b2 Branches: str_size_and_int64 Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=7554d079453d1af9f577f3eabae93475b0d29ab3 Log: separated zpp and macro replacement Changed paths: M compat/PECL_PORTING M compat/replace.php

diff --git a/compat/PECL_PORTING b/compat/PECL_PORTING index 380c4fd..0e51a31 100644 --- a/compat/PECL_PORTING +++ b/compat/PECL_PORTING @@ -105,9 +105,12 @@ II. Porting steps save a lot of time while porting. To mention are also the following options - --zpp will replace "lLsp" with "iISP" at appropriate places only - --zpp-compat will replace things like - "slO" with (PHP_NEED_STRSIZE_COMPAT ? "slO" : "SiO") + --macros replace old vs. new macro/function names + --zpp replace "lLsp" with "iISP" at appropriate places only + --zpp-compat replace things like + "slO" with (PHP_NEED_STRSIZE_COMPAT ? "slO" : "SiO") + + The macro and zpp options are separated and don't have to be used together. The PHP_NEED_STRSIZE_COMPAT is defined in the compat.h for versions lower than <str_size_and_int64>. diff --git a/compat/replace.php b/compat/replace.php index 2009229..e7938aa 100644 --- a/compat/replace.php +++ b/compat/replace.php @@ -7,7 +7,7 @@ /* Options stuff*/ $shortopts = NULL; -$longopts = array('type:', 'custom:', 'help::', 'reverse', 'zpp', 'zpp-compat'); +$longopts = array('type:', 'custom:', 'help::', 'reverse', 'zpp', 'zpp-compat', 'macros'); $options = getopt($shortopts, $longopts); @@ -17,18 +17,22 @@ $fname = (count($argv) < 2) ? NULL : $argv[count($argv)-1]; $reverse_replace = isset($options['reverse']); $replace_zpp = isset($options['zpp']); $replace_zpp_compat = isset($options['zpp-compat']); +$replace_macros = isset($options['macros']); /* Options validation */ if (isset($options['help'])) { print_usage(0); } else if (!in_array($repl_type, array('ext', 'zend_ext'))) { print_error("Invalid replacement type '$repl_type'"); +} else if (!$replace_macros && !($replace_zpp || $replace_zpp_compat)) { + echo "No replacement options specified, nothing to do." . PHP_EOL . PHP_EOL; + print_usage(3); +} else if ($replace_zpp && $replace_zpp_compat) { + print_error("--zpp and --zpp-compat cannot be used at the same time"); } else if (!$fname || !file_exists($fname)) { print_error("Invalid filename '$fname'"); /*} else if (!is_null($custom_defs_fname) && !file_exists($custom_defs_fname)) { print_error("Invalid custom replacement definitions file");*/ -} else if ($replace_zpp && $replace_zpp_compat) { - print_error("--zpp and --zpp-compat cannot be used at the same time"); } else if (!is_null($custom_defs_fname)) { /* XXX uncomment the above when it's implemented */ print_error("Processing of custom replacement definitions is not implemented yet, feel free to supply a patch"); @@ -39,67 +43,69 @@ if (isset($options['help'])) { $file_contents = file_get_contents($fname); /* simple macro replacements */ -$replacements = array( - /*'ZEND_SIZE_MAX_LONG' => 'ZEND_SIZE_MAX', - 'ZEND_SIZE_MAX_INT' => 'ZEND_SIZE_MAX',*/ - 'MAX_LENGTH_OF_LONG' => 'MAX_LENGTH_OF_ZEND_INT', - 'Z_STRLEN' => 'Z_STRSIZE', - 'Z_LVAL' => 'Z_IVAL', - 'IS_LONG' => 'IS_INT', - 'ZVAL_LONG' => 'ZVAL_INT', - 'RETVAL_LONG' => 'RETVAL_INT', - 'RETURN_LONG' => 'RETURN_INT', - 'LITERAL_LONG' => 'LITERAL_INT', - 'REGISTER_LONG_CONSTANT' => 'REGISTER_INT_CONSTANT', - 'REGISTER_NS_LONG_CONSTANT' => 'REGISTER_NS_INT_CONSTANT', - 'REGISTER_MAIN_LONG_CONSTANT' => 'REGISTER_MAIN_INT_CONSTANT', - 'HASH_KEY_IS_LONG' => 'HASH_KEY_IS_INT', - 'convert_to_long' => 'convert_to_int', - 'add_assoc_long' => 'add_assoc_int', - 'add_property_long' => 'add_property_int', - 'zendi_convert_to_long' => 'zendi_convert_to_int', - 'zend_ini_long' => 'zend_ini_int', - 'ZEND_SIGNED_MULTIPLY_LONG' => 'ZEND_SIGNED_MULTIPLY_INT', - 'zend_update_property_long' => 'zend_update_property_int', - 'SET_VAR_LONG' => 'SET_VAR_INT', - 'zend_declare_class_constant_long' => 'zend_declare_class_constant_int', - 'add_get_index_long' => 'add_get_index_int', - 'add_next_index_long' => 'add_next_index_int', - 'zend_declare_class_constant_long' => 'zend_declare_class_constant_int', - 'zend_update_static_property_long' => 'zend_update_static_property_int', - 'zend_register_long_constant' => 'zend_register_int_constant', - 'add_index_long' => 'add_index_int', - 'zend_declare_property_long' => 'zend_declare_property_int', - 'ZEND_MM_LONG_CONST' => 'ZEND_MM_INT_CONST', - 'REGISTER_PDO_CLASS_CONST_LONG' => 'REGISTER_PDO_CLASS_CONST_INT', - 'PDO_LONG_PARAM_CHECK' => 'PDO_INT_PARAM_CHECK', - 'REGISTER_XMLREADER_CLASS_CONST_LONG' => 'REGISTER_XMLREADER_CLASS_CONST_INT', - 'CALENDAR_DECL_LONG_CONST' => 'CALENDAR_DECL_INT_CONST', - 'TIMEZONE_DECL_LONG_CONST' => 'TIMEZONE_DECL_INT_CONST', - 'BREAKITER_DECL_LONG_CONST' => 'BREAKITER_DECL_INT_CONST', - 'REGISTER_SPL_CLASS_CONST_LONG' => 'REGISTER_SPL_CLASS_CONST_INT', - 'REGISTER_REFLECTION_CLASS_CONST_LONG' => 'REGISTER_REFLECTION_CLASS_CONST_INT', - 'REGISTER_PHAR_CLASS_CONST_LONG' => 'REGISTER_PHAR_CLASS_CONST_INT', - 'MAKE_LONG_ZVAL_INCREF' => 'MAKE_INT_ZVAL_INCREF', - 'MYSQLI_RETURN_INT_LONG' => 'MYSQLI_RETURN_INT_INT', - 'MYSQLI_MAP_PROPERTY_FUNC_LONG' => 'MYSQLI_MAP_PROPERTY_FUNC_INT', - 'REGISTER_ZIP_CLASS_CONST_LONG' => 'REGISTER_ZIP_CLASS_CONST_INT', - 'REGISTER_SNMP_CLASS_CONST_LONG' => 'REGISTER_SNMP_CLASS_CONST_INT', - 'PHP_SNMP_LONG_PROPERTY_READER_FUNCTION' => 'PHP_SNMP_INT_PROPERTY_READER_FUNCTION', - 'ISC_LONG_MIN' => 'ISC_INT_MIN', - 'ISC_LONG_MAX' => 'ISC_INT_MAX', - 'long_min_digits' => 'int_min_digits', - 'zend_dval_to_lval' => 'zend_dval_to_ival', - 'ZEND_DVAL_TO_LVAL_CAST_OK' => 'ZEND_DVAL_TO_IVAL_CAST_OK', - 'smart_str_append_long' => 'smart_str_append_int', - 'cfg_get_long' => 'cfg_get_int', - 'pdo_attr_lval' => 'pdo_attr_ival', -); - -if ($reverse_replace) { - $file_contents = str_replace(array_values($replacements), array_keys($replacements), $file_contents); -} else { - $file_contents = str_replace(array_keys($replacements), array_values($replacements), $file_contents); +if ($replace_macros) { + $replacements = array( + /*'ZEND_SIZE_MAX_LONG' => 'ZEND_SIZE_MAX', + 'ZEND_SIZE_MAX_INT' => 'ZEND_SIZE_MAX',*/ + 'MAX_LENGTH_OF_LONG' => 'MAX_LENGTH_OF_ZEND_INT', + 'Z_STRLEN' => 'Z_STRSIZE', + 'Z_LVAL' => 'Z_IVAL', + 'IS_LONG' => 'IS_INT', + 'ZVAL_LONG' => 'ZVAL_INT', + 'RETVAL_LONG' => 'RETVAL_INT', + 'RETURN_LONG' => 'RETURN_INT', + 'LITERAL_LONG' => 'LITERAL_INT', + 'REGISTER_LONG_CONSTANT' => 'REGISTER_INT_CONSTANT', + 'REGISTER_NS_LONG_CONSTANT' => 'REGISTER_NS_INT_CONSTANT', + 'REGISTER_MAIN_LONG_CONSTANT' => 'REGISTER_MAIN_INT_CONSTANT', + 'HASH_KEY_IS_LONG' => 'HASH_KEY_IS_INT', + 'convert_to_long' => 'convert_to_int', + 'add_assoc_long' => 'add_assoc_int', + 'add_property_long' => 'add_property_int', + 'zendi_convert_to_long' => 'zendi_convert_to_int', + 'zend_ini_long' => 'zend_ini_int', + 'ZEND_SIGNED_MULTIPLY_LONG' => 'ZEND_SIGNED_MULTIPLY_INT', + 'zend_update_property_long' => 'zend_update_property_int', + 'SET_VAR_LONG' => 'SET_VAR_INT', + 'zend_declare_class_constant_long' => 'zend_declare_class_constant_int', + 'add_get_index_long' => 'add_get_index_int', + 'add_next_index_long' => 'add_next_index_int', + 'zend_declare_class_constant_long' => 'zend_declare_class_constant_int', + 'zend_update_static_property_long' => 'zend_update_static_property_int', + 'zend_register_long_constant' => 'zend_register_int_constant', + 'add_index_long' => 'add_index_int', + 'zend_declare_property_long' => 'zend_declare_property_int', + 'ZEND_MM_LONG_CONST' => 'ZEND_MM_INT_CONST', + 'REGISTER_PDO_CLASS_CONST_LONG' => 'REGISTER_PDO_CLASS_CONST_INT', + 'PDO_LONG_PARAM_CHECK' => 'PDO_INT_PARAM_CHECK', + 'REGISTER_XMLREADER_CLASS_CONST_LONG' => 'REGISTER_XMLREADER_CLASS_CONST_INT', + 'CALENDAR_DECL_LONG_CONST' => 'CALENDAR_DECL_INT_CONST', + 'TIMEZONE_DECL_LONG_CONST' => 'TIMEZONE_DECL_INT_CONST', + 'BREAKITER_DECL_LONG_CONST' => 'BREAKITER_DECL_INT_CONST', + 'REGISTER_SPL_CLASS_CONST_LONG' => 'REGISTER_SPL_CLASS_CONST_INT', + 'REGISTER_REFLECTION_CLASS_CONST_LONG' => 'REGISTER_REFLECTION_CLASS_CONST_INT', + 'REGISTER_PHAR_CLASS_CONST_LONG' => 'REGISTER_PHAR_CLASS_CONST_INT', + 'MAKE_LONG_ZVAL_INCREF' => 'MAKE_INT_ZVAL_INCREF', + 'MYSQLI_RETURN_INT_LONG' => 'MYSQLI_RETURN_INT_INT', + 'MYSQLI_MAP_PROPERTY_FUNC_LONG' => 'MYSQLI_MAP_PROPERTY_FUNC_INT', + 'REGISTER_ZIP_CLASS_CONST_LONG' => 'REGISTER_ZIP_CLASS_CONST_INT', + 'REGISTER_SNMP_CLASS_CONST_LONG' => 'REGISTER_SNMP_CLASS_CONST_INT', + 'PHP_SNMP_LONG_PROPERTY_READER_FUNCTION' => 'PHP_SNMP_INT_PROPERTY_READER_FUNCTION', + 'ISC_LONG_MIN' => 'ISC_INT_MIN', + 'ISC_LONG_MAX' => 'ISC_INT_MAX', + 'long_min_digits' => 'int_min_digits', + 'zend_dval_to_lval' => 'zend_dval_to_ival', + 'ZEND_DVAL_TO_LVAL_CAST_OK' => 'ZEND_DVAL_TO_IVAL_CAST_OK', + 'smart_str_append_long' => 'smart_str_append_int', + 'cfg_get_long' => 'cfg_get_int', + 'pdo_attr_lval' => 'pdo_attr_ival', + ); + + if ($reverse_replace) { + $file_contents = str_replace(array_values($replacements), array_keys($replacements), $file_contents); + } else { + $file_contents = str_replace(array_keys($replacements), array_values($replacements), $file_contents); + } } /* zpp spec replacements */ @@ -173,9 +179,15 @@ function print_usage($code = 0) echo "Usage: replace.php [OPTIONS] file" . PHP_EOL; echo " --custom Path to custom replacement definitions file, optional." . PHP_EOL; echo " --reverse Replace the new names with the old ones, so reverse, optional." . PHP_EOL; - echo " --zpp Along with macro names replace the zpp format specs, optional." . PHP_EOL; + echo " --macros Replace old vs. new macro names, optional." . PHP_EOL; + echo " --zpp Replace the zpp format specs, optional." . PHP_EOL; echo " --zpp-compat Same as --zpp but will add both old and new specs for compat, optional." . PHP_EOL; - echo " --help This help." . PHP_EOL; + echo " --help This help." . PHP_EOL; + echo PHP_EOL; + echo "Example: " . PHP_EOL; + echo " php replace.php --zpp --macros path/to/file" . PHP_EOL; + echo " php replace.php --zpp --macros --reverse path/to/file" . PHP_EOL; + echo " php replace.php --zpp--compat --macros path/to/file" . PHP_EOL; echo PHP_EOL; exit($code);
« previous php.cvs (#75846) next »