php-src/unicode-progress.txt
Marcus Boerger 688125c252 - Update unicode progress on SPL, looks like nearly done, actually all is
unicode safe by now but a few things need to be added and a few problems
  be clarified.
# I wonder why my keyboard has space issues...it should be out of Us by now
2007-01-19 10:19:50 +00:00

977 lines
23 KiB
Plaintext

Extension Upgrade Tracking
==========================
ext/standard
------------
Status: In Progress
array.c
-------
error_log()
Params API, what encoding to use for the message, handling email
option
string.c
--------
parse_str()
Params API. How do we deal with encoding of the data?
sscanf()
Params API. Rest - no idea yet.
wordwrap()
Upgrade, do wordwrapping on codepoint (or glyph ?) level, maybe use
additional whitespace chars instead of just space.
ext/filter
------------
Status: To be discussed
The unicode support must be discussed with the filter maintainers
and Andrei (sapi maintainers too?). Please mail them and the list prior
to any work or commits.
ext/gd
------------
Status: In Progress
A preliminary version has been commited by Sara. Pierre is working on the
migration of the GD extension for php6.
ext/openssl
------------
Status: In Progress
(Pierre)
ext/spl
------------
Status: In progress
zend_filehandle needs to operate on zstr. Once we have that we can finalize
the internal c-function spl_autoload().
RegExIterator might need to deal with regex provided in unicode.
SplFileObject needs toeithe deal withunicode files or a derived class must
be created for that. Either way streams cannot deal with unicode line
endings.
ext/zip
------------
Status: done.
Both the new OO and the old procedural API are unicode ready.
Custom encoding for the entry names (ISO-*, ANSI, etc.) will
be supported in later version. Binary strings are used now.
The use is responsible of the encoding of the entry names.
Completed
=========
ext/bcmath
----------
Completed:
bcadd()
bcsub()
bcmul()
bcdiv()
bcmod()
bcpowmod()
bcpow()
bcsqrt()
bccomp()
bcscale()
ext/bz2
-------
TBD:
bz2_filter.c
Completed:
bzread()
bzopen()
bzerrno()
bzerrstr()
bzerror()
bzcompress()
bzdecompress()
ext/gettext
------------
Completed:
textdomain()
gettext()
_()
dgettext()
dcgettext()
bindtextdomain()
ngettext()
dngettext()
dcngettext()
bind_textdomain_codeset()
ext/gmp
-------
Completed:
gmp_abs()
gmp_add()
gmp_and()
gmp_clrbit()
gmp_cmp()
gmp_com()
gmp_divexact()
gmp_div_q()
gmp_div_qr()
gmp_div_r()
gmp_fact()
gmp_gcd()
gmp_gcdext()
gmp_hamdist()
gmp_init()
gmp_intval()
gmp_invert()
gmp_jacobi()
gmp_legendre()
gmp_mod()
gmp_mul()
gmp_neg()
gmp_nextprime()
gmp_or()
gmp_perfect_square()
gmp_popcount()
gmp_pow()
gmp_powm()
gmp_prob_prime()
gmp_random()
gmp_scan0()
gmp_scan1()
gmp_setbit()
gmp_sign()
gmp_sqrt()
gmp_sqrtrem()
gmp_strval()
gmp_sub()
gmp_xor()
ext/hash
--------
Completed:
hash()
hash_file()
hash_hmac()
hash_hmac_file()
hash_init()
hash_update()
hash_update_stream()
hash_update_file()
hash_final()
hash_algos()
ext/json
--------
Completed:
json_encode()
json_decode()
ext/mcrypt
------------
Completed:
mcrypt_ecb()
mcrypt_cbc()
mcrypt_cfb()
mcrypt_ofb()
mcrypt_get_key_size()
mcrypt_get_block_size()
mcrypt_get_cipher_name()
mcrypt_create_iv()
mcrypt_list_algorithms()
mcrypt_list_modes()
mcrypt_get_iv_size()
mcrypt_encrypt()
mcrypt_decrypt()
mcrypt_module_open()
mcrypt_generic_init()
mcrypt_generic()
mdecrypt_generic()
mcrypt_generic_end()
mcrypt_generic_deinit()
mcrypt_enc_self_test()
mcrypt_enc_is_block_algorithm_mode()
mcrypt_enc_is_block_algorithm()
mcrypt_enc_is_block_mode()
mcrypt_enc_get_block_size()
mcrypt_enc_get_key_size()
mcrypt_enc_get_supported_key_sizes()
mcrypt_enc_get_iv_size()
mcrypt_enc_get_algorithms_name()
mcrypt_enc_get_modes_name()
mcrypt_module_self_test()
mcrypt_module_is_block_algorithm_mode()
mcrypt_module_is_block_algorithm()
mcrypt_module_is_block_mode()
mcrypt_module_get_algo_block_size()
mcrypt_module_get_algo_key_size()
mcrypt_module_get_supported_key_sizes()
mcrypt_module_close()
ext/mhash
------------
Completed:
mhash_count()
mhash_get_block_size()
mhash_get_hash_name()
mhash_keygen_count()
mhash_get_keygen_name()
mhash_keygen_uses_hash()
mhash_keygen_uses_salt()
mhash_get_keygen_salt_size()
mhash_keygen_uses_count()
mhash()
mhash_keygen()
mhash_keygen_s2k()
ext/mysqli
----------
TBD:
mysqli_embedded_server_start()
mysqli_embedded_server_end()
mysqli_disable_reads_from_master()
mysqli_disable_rpl_parse()
mysqli_enable_reads_from_master()
mysqli_enable_rpl_parse()
mysqli_master_query()
mysqli_rpl_parse_enabled()
mysqli_rpl_probe()
mysqli_rpl_query_type()
mysqli_send_query()
mysqli_slave_query()
Completed:
mysqli_affected_rows()
mysqli_autocommit()
mysqli_change_user()
mysqli_character_set_name()
mysqli_close()
mysqli_commit()
mysqli_connect()
mysqli_connect_errno()
mysqli_connect_error()
mysqli_data_seek()
mysqli_debug()
mysqli_dump_debug_info()
mysqli_errno()
mysqli_error()
mysqli_fetch_array
mysqli_fetch_assoc
mysqli_fetch_field
mysqli_fetch_field_direct
mysqli_fetch_fields
mysqli_fetch_lengths
mysqli_fetch_object
mysqli_fetch_row
mysqli_field_count()
mysqli_field_seek()
mysqli_field_tell()
mysqli_free_result()
mysqli_get_charset()
mysqli_get_client_info()
mysqli_get_client_version()
mysqli_get_host_info
mysqli_get_proto_info()
mysqli_get_server_info()
mysqli_get_server_version()
mysqli_get_warnings()
mysqli_info()
mysqli_init()
mysqli_insert_id()
mysqli_kill()
mysqli_more_results()
mysqli_multi_query()
mysqli_next_result()
mysqli_num_fields()
mysqli_num_rows()
mysqli_options()
mysqli_ping()
mysqli_prepare()
mysqli_query()
mysqli_real_connect()
mysqli_real_escape_string()
mysqli_real_query()
mysqli_report()
mysqli_rollback()
mysqli_select_db()
mysqli_set_charset()
mysqli_set_local_infile_default()
mysqli_set_local_infile_handler()
mysqli_sqlstate()
mysqli_ssl_set()
mysqli_stat()
mysqli_stmt_affected_rows()
mysqli_stmt_attr_get()
mysqli_stmt_attr_set()
mysqli_stmt_bind_param()
mysqli_stmt_bind_result()
mysqli_stmt_close()
mysqli_stmt_data_seek()
mysqli_stmt_errno()
mysqli_stmt_error()
mysqli_stmt_execute()
mysqli_stmt_fetch()
mysqli_stmt_field_count()
mysqli_stmt_free_result()
mysqli_stmt_get_warnings()
mysqli_stmt_init()
mysqli_stmt_insert_id()
mysqli_stmt_num_rows()
mysqli_stmt_param_count()
mysqli_stmt_prepare()
mysqli_stmt_reset()
mysqli_stmt_result_metadata()
mysqli_stmt_send_long_data()
mysqli_stmt_sqlstate()
mysqli_stmt_store_result()
mysqli_store_result()
mysqli_thread_id()
mysqli_thread_safe()
mysqli_use_result()
mysqli_warning_count
ext/reflection
--------------
TBD:
`grep -E 'FIXME|UTODO'`
Completed:
ReflectionClass::__construct()
ReflectionClass::getConstant()
ReflectionClass::getConstants()
ReflectionClass::getConstructor()
ReflectionClass::getDefaultProperties()
ReflectionClass::getDocComment()
ReflectionClass::getEndLine()
ReflectionClass::getExtension()
ReflectionClass::getExtensionName()
ReflectionClass::getFileName()
ReflectionClass::getInterfaceNames()
ReflectionClass::getInterfaces()
ReflectionClass::getMethod()
ReflectionClass::getMethods()
ReflectionClass::getModifiers()
ReflectionClass::getName()
ReflectionClass::getParentClass()
ReflectionClass::getProperties()
ReflectionClass::getProperty()
ReflectionClass::getStartLine()
ReflectionClass::getStaticProperties()
ReflectionClass::getStaticPropertyValue()
ReflectionClass::hasConstant()
ReflectionClass::hasMethod()
ReflectionClass::hasProperty()
ReflectionClass::implementsInterface()
ReflectionClass::isAbstract()
ReflectionClass::isFinal()
ReflectionClass::isInstance()
ReflectionClass::isInstantiable()
ReflectionClass::isInterface()
ReflectionClass::isInternal()
ReflectionClass::isIterateable()
ReflectionClass::isSubclassOf()
ReflectionClass::isUserDefined()
ReflectionClass::newInstance()
ReflectionClass::newInstanceArgs()
ReflectionClass::setStaticPropertyValue()
ReflectionClass::__toString()
ReflectionExtension::__construct()
ReflectionExtension::getClasses()
ReflectionExtension::getClassNames()
ReflectionExtension::getConstants()
ReflectionExtension::getDependencies()
ReflectionExtension::getFunctions()
ReflectionExtension::getINIEntries()
ReflectionExtension::getName()
ReflectionExtension::getVersion()
ReflectionExtension::__toString()
ReflectionFunction::__construct()
ReflectionFunction::getDocComment()
ReflectionFunction::getEndLine()
ReflectionFunction::getExtension()
ReflectionFunction::getExtensionName()
ReflectionFunction::getFileName()
ReflectionFunction::getName()
ReflectionFunction::getNumberOfParameters()
ReflectionFunction::getNumberOfRequiredParameters()
ReflectionFunction::getParameters()
ReflectionFunction::getStartLine()
ReflectionFunction::getStaticVariables()
ReflectionFunction::invoke()
ReflectionFunction::invokeArgs()
ReflectionFunction::isDeprecated()
ReflectionFunction::isDisabled()
ReflectionFunction::isInternal()
ReflectionFunction::isUserDefined()
ReflectionFunction::returnsReference()
ReflectionFunction::__toString()
ReflectionMethod::__construct()
ReflectionMethod::getDeclaringClass()
ReflectionMethod::getModifiers()
ReflectionMethod::getPrototype()
ReflectionMethod::invoke()
ReflectionMethod::invokeArgs()
ReflectionMethod::isAbstract()
ReflectionMethod::isConstructor()
ReflectionMethod::isDestructor()
ReflectionMethod::isFinal()
ReflectionMethod::isPrivate()
ReflectionMethod::isProtected()
ReflectionMethod::isPublic()
ReflectionMethod::isStatic()
ReflectionMethod::__toString()
ReflectionObject::__construct()
ReflectionParameter::allowsNull()
ReflectionParameter::__construct()
ReflectionParameter::getClass()
ReflectionParameter::getDeclaringClass()
ReflectionParameter::getDeclaringFunction()
ReflectionParameter::getDefaultValue()
ReflectionParameter::getName()
ReflectionParameter::getPosition()
ReflectionParameter::isArray()
ReflectionParameter::isDefaultValueAvailable()
ReflectionParameter::isOptional()
ReflectionParameter::isPassedByReference()
ReflectionParameter::__toString()
ReflectionProperty::__construct()
ReflectionProperty::getDeclaringClass()
ReflectionProperty::getDefaultValue()
ReflectionProperty::getDocComment()
ReflectionProperty::getModifiers()
ReflectionProperty::getName()
ReflectionProperty::getValue()
ReflectionProperty::isDefault()
ReflectionProperty::isPrivate()
ReflectionProperty::isProtected()
ReflectionProperty::isPublic()
ReflectionProperty::isStatic()
ReflectionProperty::setValue()
ReflectionProperty::__toString()
ext/simplexml
-------------
TBD:
SimpleXMLElement::getDocNamespaces()
SimpleXMLElement::getNamespaces()
Completed:
SimpleXMLElement::addAttribute()
SimpleXMLElement::addChild()
SimpleXMLElement::asXML()
SimpleXMLElement::attributes()
SimpleXMLElement::children()
SimpleXMLElement::getName()
SimpleXMLElement::registerXPathNamespace()
SimpleXMLElement::xpath()
simplexml_import_dom()
simplexml_load_file()
simplexml_load_string()
ext/soap
--------
TBD:
SoapServer::setObject()
Completed:
is_soap_fault()
SoapClient::__call()
SoapClient::__doRequest()
SoapClient::__getCookies()
SoapClient::__getFunctions()
SoapClient::__getLastRequest()
SoapClient::__getLastRequestHeaders()
SoapClient::__getLastResponse()
SoapClient::__getLastResponseHeaders()
SoapClient::__getTypes()
SoapClient::__setCookie()
SoapClient::__setLocation()
SoapClient::__setSoapHeaders()
SoapClient::SoapClient()
SoapFault::SoapFault()
SoapFault::__toString()
SoapHeader::SoapHeader()
SoapParam::SoapParam()
SoapServer::addFunction()
SoapServer::getFunctions()
SoapServer::handle()
SoapServer::setClass()
SoapServer::setPersistence()
SoapServer::SoapServer()
SoapVar::SoapVar()
ext/standard
------------
array.c
-------
array_change_key_case()
array_chunk()
array_combine()
array_count_values()
array_fill()
array_filter()
array_flip()
array_key_exists()
array_keys()
array_map()
array_merge()
array_merge_recursive()
array_multisort()
array_product()
array_push(), array_pop(), array_shift(), array_unshift()
array_pad()
array_rand()
array_reduce()
array_reverse()
array_search()
array_slice()
array_splice()
array_sum()
array_values()
array_unique()
array_walk()
array_walk_recursive()
compact()
count()
extract()
getopt()
in_array()
min()
max()
natsort(), natcasesort()
range()
shuffle()
end(), prev(), next(), reset(), current(), key()
sort(), rsort()
asort(), arsort()
ksort(), krsort()
usort(), uasort(), uksort()
array_diff(), array_udiff()
array_diff_assoc(), array_diff_uassoc(),
array_udiff_assoc(), array_udiff_uassoc()
array_diff_key(), array_diff_ukey()
array_intersect(), array_uintersect()
array_intersect_assoc(), array_uintersect_assoc()
array_intersect_uassoc(), array_uintersect_uassoc()
array_intersect_key(), array_intersect_ukey()
info.c
------
phpinfo()
phpversion()
phpcredits()
php_logo_guid()
php_real_logo_guid()
php_egg_logo_guid()
zend_logo_guid()
php_sapi_name()
php_uname()
php_ini_scanned_files()
string.c
--------
addcslashes()
addslashes()
basename()
bin2hex()
chr()
chunk_split()
count_chars()
dirname()
explode()
hebrev(), hebrevc()
implode()
levenshtein()
localeconv()
metaphone()
money_format()
nl_langinfo()
nl2br()
ord()
pathinfo()
quotemeta()
range()
similar_text()
str_pad()
str_repeat()
str_replace()
stri_replace()
str_rot13()
str_shuffle()
str_split()
str_word_count()
strcoll()
strcspn()
strip_tags()
stripcslashes()
stripslashes()
stripos()
stristr()
strnatcmp(), strnatcasecmp()
strpbrk()
strpos()
strrchr()
strripos()
strrev()
strrpos()
strspn()
strstr()
strtok()
strtolower()
strtoupper()
strtr()
substr()
substr_compare()
substr_count()
substr_replace()
trim()
ucfirst()
ucwords()
ext/spl
-----------
Completed:
php_spl.c
class_implements()
class_parents()
spl_autoload()
spl_autoload_call()
spl_autoload_extensions()
spl_autoload_functions()
spl_autoload_register()
spl_autoload_unregister()
spl_classes()
spl_object_hash()
spl_array.c
class ArrayObject
class ArrayIterator
class RecursiveArrayIterator
spl_directory.c
class SplFileInfo
class DirectoryIterator
class RecursiveDirectoryIterator
class SplFileObject
class SplTempFileObject
spl_exceptions.c
class BadFunctionCallException
class BadMethodCallException
class DomainException
class InvalidArgumentException
class LengthException
class LogicException
class OutOfBoundsException
class OutOfRangeException
class OverflowException
class RangeException
class RuntimeException
class UnderflowException
class UnexpectedValueException
spl_iterators.c
iterator_to_array()
iterator_count()
iterator_apply()
class RecursiveIteratorIterator
class AppendIterator
class ArrayIterator
class ArrayObject
class CachingIterator
class DirectoryIterator
class EmptyIterator
class FilterIterator
class InfiniteIterator
class IteratorIterator
class LimitIterator
class NoRewindIterator
class ParentIterator
class RecursiveCachingIterator
class RecursiveFilterIterator
class RecursiveIteratorIterator
class RecursiveRegexIterator
class RegexIterator
spl_observer.c
class SplObjectStorage
spl_sxe.c
class SimpleXMLIteraotr
ext/sysvmsg
-----------
Completed:
msg_get_queue()
msg_send()
msg_receive()
msg_remove_queue()
msg_stat_queue()
msg_set_queue()
ext/sysvsem
-----------
Completed:
sem_get()
sem_acquire()
sem_release()
sem_remove()
ext/sysvshm
-----------
Completed:
shm_attach()
shm_remove()
shm_detach()
shm_put_var()
shm_has_var()
shm_get_var()
shm_remove_var()
ext/tidy
--------
TBD:
tidy_get_body()
tidy_get_head()
tidy_get_html()
tidy_get_root()
tidy_parse_file()
tidy_repair_file()
tidy_repair_string()
Completed:
tidy_access_count()
tidy_clean_repair()
tidy_config_count()
tidy_diagnose()
tidy_error_count()
tidy_get_config()
tidy_get_error_buffer()
tidy_get_html_ver()
tidy_getopt()
tidy_get_opt_doc()
tidy_get_output()
tidy_get_release()
tidy_get_status()
tidy_is_xhtml()
tidy_is_xml()
tidy_parse_string()
tidy_warning_count()
tidyNode::getParent()
tidyNode::hasChildren()
tidyNode::hasSiblings()
tidyNode::isAsp()
tidyNode::isComment()
tidyNode::isHtml()
tidyNode::isJste()
tidyNode::isPhp()
tidyNode::isText()
ext/xml
-------
TBD:
xml_parse()
xml_parse_into_struct()
xml_parser_create()
xml_parser_create_ns()
xml_parser_set_option()
Completed:
utf8_decode()
utf8_encode()
xml_error_string()
xml_get_current_byte_index()
xml_get_current_column_number()
xml_get_current_line_number()
xml_get_error_code()
xml_parser_free()
xml_parser_get_option()
xml_set_character_data_handler()
xml_set_default_handler()
xml_set_element_handler()
xml_set_end_namespace_decl_handler()
xml_set_external_entity_ref_handler()
xml_set_notation_decl_handler()
xml_set_object()
xml_set_processing_instruction_handler()
xml_set_start_namespace_decl_handler()
xml_set_unparsed_entity_decl_handler()
ext/xmlreader
-------------
Completed:
XMLReader::close()
XMLReader::expand()
XMLReader::getAttribute()
XMLReader::getAttributeNo()
XMLReader::getAttributeNs()
XMLReader::getParserProperty()
XMLReader::isValid()
XMLReader::lookupNamespace()
XMLReader::moveToAttribute()
XMLReader::moveToAttributeNo()
XMLReader::moveToAttributeNs()
XMLReader::moveToElement()
XMLReader::moveToFirstAttribute()
XMLReader::moveToNextAttribute()
XMLReader::next()
XMLReader::open()
XMLReader::read()
XMLReader::readInnerXml()
XMLReader::readOuterXml()
XMLReader::readString()
XMLReader::setParserProperty()
XMLReader::setRelaxNGSchema()
XMLReader::setRelaxNGSchemaSource()
XMLReader::setSchema()
XMLReader::XML()
ext/xmlwriter
-------------
Completed:
xmlwriter_end_attribute()
xmlwriter_end_cdata()
xmlwriter_end_comment()
xmlwriter_end_document()
xmlwriter_end_dtd()
xmlwriter_end_dtd_attlist()
xmlwriter_end_dtd_element()
xmlwriter_end_dtd_entity()
xmlwriter_end_element()
xmlwriter_end_pi()
xmlwriter_flush()
xmlwriter_full_end_element()
xmlwriter_open_memory()
xmlwriter_open_uri()
xmlwriter_output_memory()
xmlwriter_set_indent()
xmlwriter_set_indent_string()
xmlwriter_start_attribute()
xmlwriter_start_attribute_ns()
xmlwriter_start_cdata()
xmlwriter_start_comment()
xmlwriter_start_document()
xmlwriter_start_dtd()
xmlwriter_start_dtd_attlist()
xmlwriter_start_dtd_element()
xmlwriter_start_dtd_entity()
xmlwriter_start_element()
xmlwriter_start_element_ns()
xmlwriter_start_pi()
xmlwriter_text()
xmlwriter_write_attribute()
xmlwriter_write_attribute_ns()
xmlwriter_write_cdata()
xmlwriter_write_comment()
xmlwriter_write_dtd()
xmlwriter_write_dtd_attlist()
xmlwriter_write_dtd_element()
xmlwriter_write_dtd_entity()
xmlwriter_write_element()
xmlwriter_write_element_ns()
xmlwriter_write_pi()
xmlwriter_write_raw()
ext/xsl
-------
Completed:
xsl_xsltprocessor_get_parameter()
xsl_xsltprocessor_has_exslt_support()
xsl_xsltprocessor_import_stylesheet()
xsl_xsltprocessor_register_php_functions()
xsl_xsltprocessor_remove_parameter()
xsl_xsltprocessor_set_parameter()
xsl_xsltprocessor_transform_to_doc()
xsl_xsltprocessor_transform_to_uri()
xsl_xsltprocessor_transform_to_xml()
ext/zlib
--------
TBD:
zlib_filter.c
zlib_fopen_wrapper.c
Completed:
gzcompress()
gzuncompress()
gzdeflate()
gzinflate()
gzencode()
gzdecode()
zlib_encode()
zlib_decode()
zlib_get_coding_type()
readgzfile()
gzrewind()
gzclose()
gzeof()
gzgetc()
gzgets()
gzgetss()
gzread()
gzopen()
gzpassthru()
gzseek()
gztell()
gzwrite()
gzputs()
gzfile()
gzcompress()
gzuncompress()
Zend Engine
-----------
Status: In Progress
TBD:
debug_backtrace()
Completed:
class_exists()
create_function()
debug_print_backtrace()
define()
defined()
each()
error_reporting()
extension_loaded()
func_get_arg()
func_get_args()
func_num_args()
function_exists()
get_class()
get_class_methods()
get_class_vars()
get_declared_classes()
get_declared_interfaces()
get_defined_constants()
get_defined_functions()
get_defined_vars()
get_extension_funcs()
get_included_files()
get_loaded_extensions()
get_object_vars()
get_parent_class()
get_resource_type()
interface_exists()
is_a()
is_subclass_of()
method_exists()
property_exists()
restore_error_handler()
restore_exception_handler()
set_error_handler()
set_exception_handler()
strcasecmp()
strcmp()
strlen()
strncasecmp()
strncmp()
trigger_error()
zend_thread_id()
zend_version()
vim: set et ts=4 sts=4: