Hi Richard, Replacement script made it pretty simple I guess. :-) But sizeof("key")+1 should just be sizeof("key") (which == strlen("key")+1).
Are there any uses of add_u_assoc_* with hard-coded keys? These changes make things look a little messy, you think? The string is in 2 places, etc... (Maybe why it wasn't done in the first place?) Seems like that ZEND_STRS() macro you mentioned would work well. Or maybe cleanest would be some new add_static_assoc_* macros (and _u versions if needed), or some other naming convention, that uses sizeof() instead of strlen()+1. What do the main devs think? Matt ----- Original Message ----- From: "Richard Quadling" Sent: Saturday, July 22, 2006 > Hi. Sorry about the delay. Had a blonde moment. > > I've used a small script to process the CVS. There are 420 changes!!! > > I've used the following regexps for a search/replace ... > > $s_search = '`add_assoc_(bool|double|long|null|resource|rt_stringl|rt_string|stringl|str ing|unicodel|unicode|zval)*\(([^,]*), > "(.*?)",`i'; > $s_replace = 'add_assoc_$1_ex($2, "$3", sizeof("$3")+1,'; > > Everything SEEMS to look ok. Until I've got MS VC Express Edition > compiling ok, this patch is UNTESTED!! (Sorry about that). > > Files changed. > > php-src/ext/bz2/bz2.c > php-src/ext/calendar/calendar.c > php-src/ext/curl/multi.c > php-src/ext/curl/streams.c > php-src/ext/date/php_date.c > php-src/ext/dbase/dbase.c > php-src/ext/exif/exif.c > php-src/ext/fbsql/php_fbsql.c > php-src/ext/fdf/fdf.c > php-src/ext/gd/gd.c > php-src/ext/gmp/gmp.c > php-src/ext/hwapi/hwapi.cpp > php-src/ext/iconv/iconv.c > php-src/ext/interbase/ibase_blobs.c > php-src/ext/interbase/ibase_query.c > php-src/ext/interbase/ibase_service.c > php-src/ext/ldap/ldap.c > php-src/ext/mbstring/mbstring.c > php-src/ext/oci8/oci8_interface.c > php-src/ext/openssl/openssl.c > php-src/ext/pdo/pdo_stmt.c > php-src/ext/pdo_mysql/mysql_statement.c > php-src/ext/pdo_pgsql/pgsql_statement.c > php-src/ext/pdo_sqlite/sqlite_statement.c > php-src/ext/pgsql/pgsql.c > php-src/ext/posix/posix.c > php-src/ext/session/session.c > php-src/ext/soap/php_http.c > php-src/ext/sockets/sockets.c > php-src/ext/standard/basic_functions.c > php-src/ext/standard/datetime.c > php-src/ext/standard/dns.c > php-src/ext/standard/file.c > php-src/ext/standard/html.c > php-src/ext/standard/image.c > php-src/ext/standard/microtime.c > php-src/ext/standard/proc_open.c > php-src/ext/standard/streamsfuncs.c > php-src/ext/standard/string.c > php-src/ext/standard/url.c > php-src/ext/sysvmsg/sysvmsg.c > php-src/main/output.c > php-src/main/streams/filter.c > php-src/main/streams/memory.c > php-src/main/streams/xp_socket.c > > > Patch is available at > http://rquadling.phpnet.us/add_assoc_xxx__to__add_assoc_xxx_ex__diff.txt > > Regards, > > Richard Quadling. -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php