mirror of
https://github.com/php/php-src.git
synced 2024-11-23 09:54:15 +08:00
Trim trailing whitespace in source code files
This commit is contained in:
parent
edefd16fbc
commit
3362620b5f
@ -14,7 +14,7 @@ cache:
|
||||
- c:\build-cache
|
||||
|
||||
environment:
|
||||
PHP_BUILD_CACHE_BASE_DIR: c:\build-cache
|
||||
PHP_BUILD_CACHE_BASE_DIR: c:\build-cache
|
||||
PHP_BUILD_OBJ_DIR: c:\obj
|
||||
PHP_BUILD_CACHE_SDK_DIR: c:\build-cache\sdk
|
||||
PHP_BUILD_SDK_BRANCH: php-sdk-2.1.9beta1
|
||||
|
20
.gdbinit
20
.gdbinit
@ -5,7 +5,7 @@ end
|
||||
document set_ts
|
||||
set the ts resource, it is impossible for gdb to
|
||||
call ts_resource_ex while no process is running,
|
||||
but we could get the resource from the argument
|
||||
but we could get the resource from the argument
|
||||
of frame info.
|
||||
end
|
||||
|
||||
@ -153,7 +153,7 @@ end
|
||||
|
||||
define printzv
|
||||
set $ind = 1
|
||||
____printzv $arg0 0
|
||||
____printzv $arg0 0
|
||||
end
|
||||
|
||||
document printzv
|
||||
@ -190,7 +190,7 @@ define ____printzv_contents
|
||||
if $type == 6
|
||||
printf "string: %s", $zvalue->value.str->val
|
||||
end
|
||||
if $type == 7
|
||||
if $type == 7
|
||||
printf "array: "
|
||||
if ! $arg1
|
||||
set $ind = $ind + 1
|
||||
@ -287,7 +287,7 @@ define ____printzv
|
||||
if $arg1
|
||||
____printzv_contents $zcontents $arg1
|
||||
else
|
||||
____printzv_contents $zcontents 0
|
||||
____printzv_contents $zcontents 0
|
||||
end
|
||||
end
|
||||
|
||||
@ -340,7 +340,7 @@ define ____print_ht
|
||||
set $n = $n - 1
|
||||
end
|
||||
printf "[%d] ", $i
|
||||
if $p->key
|
||||
if $p->key
|
||||
printf "%s => ", $p->key->val
|
||||
else
|
||||
printf "%d => ", $p->h
|
||||
@ -389,7 +389,7 @@ document print_htptr
|
||||
end
|
||||
|
||||
define print_htstr
|
||||
set $ind = 0
|
||||
set $ind = 0
|
||||
____print_ht $arg0 2
|
||||
end
|
||||
|
||||
@ -543,10 +543,10 @@ define printzn
|
||||
if $znode->op_type == 1
|
||||
set $optype = "IS_CONST"
|
||||
end
|
||||
if $znode->op_type == 2
|
||||
if $znode->op_type == 2
|
||||
set $optype = "IS_TMP_VAR"
|
||||
end
|
||||
if $znode->op_type == 4
|
||||
if $znode->op_type == 4
|
||||
set $optype = "IS_VAR"
|
||||
end
|
||||
if $znode->op_type == 8
|
||||
@ -576,11 +576,11 @@ end
|
||||
|
||||
document printzn
|
||||
print type and content of znode.
|
||||
usage: printzn &opline->op1
|
||||
usage: printzn &opline->op1
|
||||
end
|
||||
|
||||
define printzops
|
||||
printf "op1 => "
|
||||
printf "op1 => "
|
||||
printzn &execute_data->opline.op1
|
||||
printf "op2 => "
|
||||
printzn &execute_data->opline.op2
|
||||
|
@ -20,7 +20,7 @@ addons:
|
||||
- libzip-dev
|
||||
|
||||
notifications:
|
||||
email:
|
||||
email:
|
||||
on_failure: change
|
||||
irc:
|
||||
template:
|
||||
@ -62,7 +62,7 @@ before_script:
|
||||
- . ./travis/ext/pgsql/setup.sh
|
||||
- . ./travis/ext/pdo_pgsql/setup.sh
|
||||
|
||||
# Run PHPs run-tests.php
|
||||
# Run PHPs run-tests.php
|
||||
script:
|
||||
- ./sapi/cli/php run-tests.php -p `pwd`/sapi/cli/php $(if [ $ENABLE_DEBUG == 0 ]; then echo "-d opcache.enable_cli=1 -d zend_extension=`pwd`/modules/opcache.so"; fi) -g "FAIL,XFAIL,BORK,WARN,LEAK,SKIP" --offline --show-diff --show-slow 1000 --set-timeout 120
|
||||
|
||||
|
@ -112,7 +112,7 @@ User Functions/Methods Naming Conventions
|
||||
of ``parent_*``::
|
||||
|
||||
A family of 'foo' functions, for example:
|
||||
|
||||
|
||||
Good:
|
||||
'foo_select_bar'
|
||||
'foo_insert_baz'
|
||||
|
26
LICENSE
26
LICENSE
@ -1,7 +1,7 @@
|
||||
--------------------------------------------------------------------
|
||||
--------------------------------------------------------------------
|
||||
The PHP License, version 3.01
|
||||
Copyright (c) 1999 - 2018 The PHP Group. All rights reserved.
|
||||
--------------------------------------------------------------------
|
||||
--------------------------------------------------------------------
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, is permitted provided that the following conditions
|
||||
@ -9,22 +9,22 @@ are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
|
||||
|
||||
3. The name "PHP" must not be used to endorse or promote products
|
||||
derived from this software without prior written permission. For
|
||||
written permission, please contact group@php.net.
|
||||
|
||||
|
||||
4. Products derived from this software may not be called "PHP", nor
|
||||
may "PHP" appear in their name, without prior written permission
|
||||
from group@php.net. You may indicate that your software works in
|
||||
conjunction with PHP by saying "Foo for PHP" instead of calling
|
||||
it "PHP Foo" or "phpfoo"
|
||||
|
||||
|
||||
5. The PHP Group may publish revised and/or new versions of the
|
||||
license from time to time. Each version will be given a
|
||||
distinguishing version number.
|
||||
@ -41,27 +41,27 @@ are met:
|
||||
"This product includes PHP software, freely available from
|
||||
<http://www.php.net/software/>".
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE PHP DEVELOPMENT TEAM ``AS IS'' AND
|
||||
THIS SOFTWARE IS PROVIDED BY THE PHP DEVELOPMENT TEAM ``AS IS'' AND
|
||||
ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PHP
|
||||
DEVELOPMENT TEAM OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
DEVELOPMENT TEAM OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
--------------------------------------------------------------------
|
||||
--------------------------------------------------------------------
|
||||
|
||||
This software consists of voluntary contributions made by many
|
||||
individuals on behalf of the PHP Group.
|
||||
|
||||
The PHP Group can be contacted via Email at group@php.net.
|
||||
|
||||
For more information on the PHP Group and the PHP project,
|
||||
For more information on the PHP Group and the PHP project,
|
||||
please see <http://www.php.net>.
|
||||
|
||||
PHP includes the Zend Engine, freely available at
|
||||
|
@ -62,7 +62,7 @@ php_lcov.info: lcov-test
|
||||
rm -rf lcov_data/$$dir ; \
|
||||
fi; \
|
||||
done
|
||||
@echo
|
||||
@echo
|
||||
@echo "Generating $@"
|
||||
@$(LTP) --directory lcov_data/ --capture --base-directory=lcov_data --output-file $@
|
||||
|
||||
|
28
NEWS
28
NEWS
@ -148,7 +148,7 @@ PHP NEWS
|
||||
(Andrew Nester, Laruence, Anatol)
|
||||
|
||||
- iconv:
|
||||
. Fixed bug #68180 (iconv_mime_decode can return extra characters in a
|
||||
. Fixed bug #68180 (iconv_mime_decode can return extra characters in a
|
||||
header). (cmb)
|
||||
. Fixed bug #63839 (iconv_mime_decode_headers function is skipping headers).
|
||||
(cmb)
|
||||
@ -267,7 +267,7 @@ PHP NEWS
|
||||
(cmb)
|
||||
|
||||
- Filter:
|
||||
. Added the 'add_slashes' sanitization mode (FILTER_SANITIZE_ADD_SLASHES).
|
||||
. Added the 'add_slashes' sanitization mode (FILTER_SANITIZE_ADD_SLASHES).
|
||||
(Kalle)
|
||||
. Fixed bug #76366 (References in sub-array for filtering breaks the filter).
|
||||
(ZiHang Gao)
|
||||
@ -277,7 +277,7 @@ PHP NEWS
|
||||
. Added fpm_get_status function. (Till Backhaus)
|
||||
. Fixed bug #69031 (Long messages into stdout/stderr are truncated
|
||||
incorrectly) - added new log related FPM configuration options:
|
||||
log_limit, log_buffering and decorate_workers_output. (Jakub Zelenka)
|
||||
log_limit, log_buffering and decorate_workers_output. (Jakub Zelenka)
|
||||
|
||||
- mbstring:
|
||||
. Fixed bug #76574 (use of undeclared identifiers INT_MAX and LONG_MAX). (cmb)
|
||||
@ -411,7 +411,7 @@ PHP NEWS
|
||||
|
||||
- Core:
|
||||
. Improved PHP GC. (Dmitry, Nikita)
|
||||
. Redesigned the old ext_skel program written in PHP, run:
|
||||
. Redesigned the old ext_skel program written in PHP, run:
|
||||
'php ext_skel.php' for all options. This means there are no dependencies,
|
||||
thus making it work on Windows out of the box. (Kalle)
|
||||
. Removed support for BeOS. (Kalle)
|
||||
@ -428,13 +428,13 @@ PHP NEWS
|
||||
. Fixed bug #75031 (support append mode in temp/memory streams). (adsr)
|
||||
. Fixed bug #74860 (Uncaught exceptions not being formatted properly when
|
||||
error_log set to "syslog"). (Philip Prindeville)
|
||||
. Fixed bug #75220 (Segfault when calling is_callable on parent).
|
||||
. Fixed bug #75220 (Segfault when calling is_callable on parent).
|
||||
(andrewnester)
|
||||
. Fixed bug #69954 (broken links and unused config items in distributed ini
|
||||
files). (petk)
|
||||
. Fixed bug #74922 (Composed class has fatal error with duplicate, equal const
|
||||
properties). (pmmaga)
|
||||
. Fixed bug #63911 (identical trait methods raise errors during composition).
|
||||
. Fixed bug #63911 (identical trait methods raise errors during composition).
|
||||
(pmmaga)
|
||||
. Fixed bug #75677 (Clang ignores fastcall calling convention on variadic
|
||||
function). (Li-Wen Hsu)
|
||||
@ -487,14 +487,14 @@ PHP NEWS
|
||||
. Fixed bug #75453 (Incorrect reflection for ibase_[p]connect). (villfa)
|
||||
|
||||
- intl:
|
||||
. Fixed bug #75317 (UConverter::setDestinationEncoding changes source instead
|
||||
. Fixed bug #75317 (UConverter::setDestinationEncoding changes source instead
|
||||
of destination). (andrewnester)
|
||||
|
||||
- JSON:
|
||||
. Added JSON_THROW_ON_ERROR flag. (Andrea)
|
||||
|
||||
- LDAP:
|
||||
. Added ldap_exop_refresh helper for EXOP REFRESH operation with dds overlay.
|
||||
. Added ldap_exop_refresh helper for EXOP REFRESH operation with dds overlay.
|
||||
(Come)
|
||||
. Added full support for sending and parsing ldap controls (Come)
|
||||
. Fixed bug #49876 (Fix LDAP path lookup on 64-bit distros). (dzuelke)
|
||||
@ -503,7 +503,7 @@ PHP NEWS
|
||||
. Fixed bug #75871 (use pkg-config where available). (pmmaga)
|
||||
|
||||
- litespeed:
|
||||
. Fixed bug #75248 (Binary directory doesn't get created when building
|
||||
. Fixed bug #75248 (Binary directory doesn't get created when building
|
||||
only litespeed SAPI). (petk)
|
||||
. Fixed bug #75251 (Missing program prefix and suffix). (petk)
|
||||
|
||||
@ -568,7 +568,7 @@ PHP NEWS
|
||||
to readline_info() if linked against libreadline. (krageon)
|
||||
|
||||
- Session:
|
||||
. Fixed bug #74941 (session fails to start after having headers sent).
|
||||
. Fixed bug #74941 (session fails to start after having headers sent).
|
||||
(morozov)
|
||||
|
||||
- SimpleXML:
|
||||
@ -580,7 +580,7 @@ PHP NEWS
|
||||
used). (Anton Artamonov)
|
||||
|
||||
- SPL:
|
||||
. Fixed bug #74977 (Appending AppendIterator leads to segfault).
|
||||
. Fixed bug #74977 (Appending AppendIterator leads to segfault).
|
||||
(Andrew Nester)
|
||||
. Fixed bug #75173 (incorrect behavior of AppendIterator::append in foreach
|
||||
loop). (jhdxr)
|
||||
@ -589,7 +589,7 @@ PHP NEWS
|
||||
. Fixed bug #75878 (RecursiveTreeIterator::setPostfix has wrong signature).
|
||||
(cmb)
|
||||
. Fixed bug #74519 (strange behavior of AppendIterator). (jhdxr)
|
||||
. Fixed bug #76131 (mismatch arginfo for splarray constructor).
|
||||
. Fixed bug #76131 (mismatch arginfo for splarray constructor).
|
||||
(carusogabriel)
|
||||
|
||||
- SQLite3:
|
||||
@ -597,11 +597,11 @@ PHP NEWS
|
||||
|
||||
- Standard:
|
||||
. Added is_countable() function. (Gabriel Caruso)
|
||||
. Fixed bug #75916 (DNS_CAA record results contain garbage). (Mike,
|
||||
. Fixed bug #75916 (DNS_CAA record results contain garbage). (Mike,
|
||||
Philip Sharp)
|
||||
. Fixed unserialize(), to disable creation of unsupported data structures
|
||||
through manually crafted strings. (Dmitry)
|
||||
. Fixed bug #75409 (accept EFAULT in addition to ENOSYS as indicator
|
||||
. Fixed bug #75409 (accept EFAULT in addition to ENOSYS as indicator
|
||||
that getrandom() is missing). (sarciszewski)
|
||||
. Fixed bug #74719 (fopen() should accept NULL as context). (Alexander Holman)
|
||||
. Fixed bug #69948 (path/domain are not sanitized in setcookie). (cmb)
|
||||
|
@ -11,8 +11,8 @@ HOW TO USE IT
|
||||
|
||||
and everything you need will be placed in directory ext/extension_name.
|
||||
|
||||
If you don't need to test the existence of any external header files,
|
||||
libraries or functions in them, the extension is ready to be compiled in
|
||||
If you don't need to test the existence of any external header files,
|
||||
libraries or functions in them, the extension is ready to be compiled in
|
||||
PHP. To compile the extension, run the following:
|
||||
|
||||
./buildconf; ./configure --enable-extension_name; make
|
||||
@ -24,7 +24,7 @@ HOW TO USE IT
|
||||
|
||||
SOURCE AND HEADER FILE NAME
|
||||
|
||||
The ext_skel.php script generates 'extension_name.c' and 'php_extension_name.h'
|
||||
The ext_skel.php script generates 'extension_name.c' and 'php_extension_name.h'
|
||||
as the main source and header files. Keep these names.
|
||||
|
||||
extension functions (User functions) must be named
|
||||
|
@ -1,6 +1,6 @@
|
||||
API adjustment to the old output control code:
|
||||
|
||||
Everything now resides beneath the php_output namespace,
|
||||
Everything now resides beneath the php_output namespace,
|
||||
and there's an API call for every output handler op.
|
||||
|
||||
Checking output control layers status:
|
||||
@ -131,7 +131,7 @@ Output handler hooks
|
||||
Open questions
|
||||
|
||||
Should the userland API be adjusted and unified?
|
||||
|
||||
|
||||
Many bits of the manual (and very first implementation) do not comply
|
||||
with the behaviour of the current (to be obsoleted) code, thus should
|
||||
the manual or the behaviour be adjusted?
|
||||
|
@ -49,11 +49,11 @@ See also https://wiki.php.net/rfc/zpp_improv#expose_zend_parse_arg_as_zend_parse
|
||||
|
||||
Type specifiers
|
||||
---------------
|
||||
The following list shows the type specifier, its meaning and the parameter
|
||||
The following list shows the type specifier, its meaning and the parameter
|
||||
types that need to be passed by address. All passed parameters are set
|
||||
if the PHP parameter is non optional and untouched if optional and the
|
||||
if the PHP parameter is non optional and untouched if optional and the
|
||||
parameter is not present. The only exception is O where the zend_class_entry*
|
||||
has to be provided on input and is used to verify the PHP parameter is an
|
||||
has to be provided on input and is used to verify the PHP parameter is an
|
||||
instance of that class.
|
||||
|
||||
a - array (zval*)
|
||||
@ -61,7 +61,7 @@ Type specifiers
|
||||
b - boolean (zend_bool)
|
||||
C - class (zend_class_entry*)
|
||||
d - double (double)
|
||||
f - function or array containing php method call info (returned as
|
||||
f - function or array containing php method call info (returned as
|
||||
zend_fcall_info and zend_fcall_info_cache)
|
||||
h - array (returned as HashTable*)
|
||||
H - array or HASH_OF(object) (returned as HashTable*)
|
||||
@ -95,9 +95,9 @@ Type specifiers
|
||||
|
||||
Note on 64bit compatibility
|
||||
---------------------------
|
||||
Please note that since version 7 PHP uses zend_long as integer type and
|
||||
zend_string with size_t as length, so make sure you pass zend_longs to "l"
|
||||
and size_t to strings length (i.e. for "s" you need to pass char * and size_t),
|
||||
Please note that since version 7 PHP uses zend_long as integer type and
|
||||
zend_string with size_t as length, so make sure you pass zend_longs to "l"
|
||||
and size_t to strings length (i.e. for "s" you need to pass char * and size_t),
|
||||
not the other way round!
|
||||
|
||||
Both mistakes might cause memory corruptions and segfaults:
|
||||
@ -110,7 +110,7 @@ Both mistakes might cause memory corruptions and segfaults:
|
||||
int num; /* XXX THIS IS WRONG!! Use zend_long instead. */
|
||||
zend_parse_parameters(ZEND_NUM_ARGS(), "l", &num)
|
||||
|
||||
If you're in doubt, use check_parameters.php script to the parameters
|
||||
If you're in doubt, use check_parameters.php script to the parameters
|
||||
and their types (it can be found in ./scripts/dev/ directory of PHP sources):
|
||||
|
||||
# php ./scripts/dev/check_parameters.php /path/to/your/sources/
|
||||
@ -159,7 +159,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS(), "a/!",
|
||||
/* Get either a set of 3 longs or a string. */
|
||||
zend_long l1, l2, l3;
|
||||
char *s;
|
||||
/*
|
||||
/*
|
||||
* The function expects a pointer to a size_t in this case, not a long
|
||||
* or any other type. If you specify a type which is larger
|
||||
* than a 'size_t', the upper bits might not be initialized
|
||||
|
@ -32,7 +32,7 @@ team (Bjori) on hand.
|
||||
6. Verify the tags to be extra sure everything was tagged properly.
|
||||
|
||||
7. Moving extensions from/to PECL requires write access to the destination.
|
||||
Most developers should have this.
|
||||
Most developers should have this.
|
||||
|
||||
Moving extensions from php-src to PECL
|
||||
- Checkout the pecl directory, most likely you want a sparse-root checkout
|
||||
@ -125,7 +125,7 @@ Getting the non stable release (alpha/beta/RC) announced
|
||||
|
||||
b. ``$PHP_x_RC_DATE`` = "06 September 2007"
|
||||
|
||||
3. Add a short notice to phpweb stating that there is a new release, and
|
||||
3. Add a short notice to phpweb stating that there is a new release, and
|
||||
highlight the major important things (security fixes) and when it is important
|
||||
to upgrade.
|
||||
|
||||
@ -140,7 +140,7 @@ to upgrade.
|
||||
|
||||
*Wait for web and qa sites to update with new information before sending announce*
|
||||
|
||||
5. Send **separate** emails **To** ``internals@lists.php.net`` and ``php-general@lists.php.net``
|
||||
5. Send **separate** emails **To** ``internals@lists.php.net`` and ``php-general@lists.php.net``
|
||||
lists pointing out "the location of the release" and "the possible release date of
|
||||
either the next RC, or the final release". Include in this information the verification
|
||||
information output by ``gen_verify_stub``.
|
||||
@ -194,7 +194,7 @@ can be influenced by defining the environment variable TAR_OPTIONS='--format=gnu
|
||||
``gpg -u YOUREMAIL --armor --detach-sign php-X.Y.Z.tar.xxx``
|
||||
|
||||
11. Commit and push all the tarballs and signature files to web/php-distributions.git,
|
||||
then update the git submodule reference in web/php.git:
|
||||
then update the git submodule reference in web/php.git:
|
||||
``git submodule init;
|
||||
git submodule update;
|
||||
cd distributions;
|
||||
@ -265,7 +265,7 @@ f.e. ``ChangeLog-5.php`` from the NEWS file
|
||||
IV. ``s/Fixed PECL bug #\([0-9]\+\)/<?php peclbugfix(\1); ?>/``
|
||||
|
||||
V. ``s/FR #\([0-9]\+\)/FR <?php bugl(\1); ?>/``
|
||||
|
||||
|
||||
e. You may want to try php-web/bin/news2html to automate this task
|
||||
|
||||
6. Add a short notice to phpweb stating that there is a new release, and
|
||||
@ -362,7 +362,7 @@ New Release Manager Checklist
|
||||
one or more of the previous RMs sign your key. Publish your public key to pgp.mit.edu with:
|
||||
`gpg --keyserver pgp.mit.edu --send-keys $KEYID`
|
||||
|
||||
3. Request karma to edit main/php_version.h. Possibly karma for other restricted parts of
|
||||
3. Request karma to edit main/php_version.h. Possibly karma for other restricted parts of
|
||||
php-src might come in question.
|
||||
|
||||
4. Request karma for web/qa.git and web/php.git for publishing release announcements.
|
||||
|
@ -20,7 +20,7 @@ PREPARING YOUR SYSTEM
|
||||
GNU libtool
|
||||
GNU m4
|
||||
|
||||
All of these are available from
|
||||
All of these are available from
|
||||
|
||||
ftp://ftp.gnu.org/pub/gnu/
|
||||
|
||||
@ -30,7 +30,7 @@ CONVERTING AN EXISTING EXTENSION
|
||||
extension, we will convert an embedded extension into a
|
||||
self-contained one. Install PHP and execute the following
|
||||
commands.
|
||||
|
||||
|
||||
$ mkdir /tmp/newext
|
||||
$ cd /tmp/newext
|
||||
|
||||
@ -53,7 +53,7 @@ CONVERTING AN EXISTING EXTENSION
|
||||
[--with-mysql=MYSQL-DIR]
|
||||
$ make install
|
||||
|
||||
The MySQL module will either use the embedded MySQL client
|
||||
The MySQL module will either use the embedded MySQL client
|
||||
library or the MySQL installation in MYSQL-DIR.
|
||||
|
||||
|
||||
@ -64,8 +64,8 @@ DEFINING THE NEW EXTENSION
|
||||
It consists of two source files "foo.c" and "bar.c"
|
||||
(and any arbitrary amount of header files, but that is not
|
||||
important here).
|
||||
|
||||
The demo extension does not reference any external
|
||||
|
||||
The demo extension does not reference any external
|
||||
libraries (that is important, because the user does not
|
||||
need to specify anything).
|
||||
|
||||
@ -75,7 +75,7 @@ DEFINING THE NEW EXTENSION
|
||||
|
||||
CREATING THE M4 CONFIGURATION FILE
|
||||
|
||||
The m4 configuration can perform additional checks. For a
|
||||
The m4 configuration can perform additional checks. For a
|
||||
self-contained extension, you do not need more than a few
|
||||
macro calls.
|
||||
|
||||
@ -94,7 +94,7 @@ fi
|
||||
The first argument of PHP_NEW_EXTENSION describes the name of the
|
||||
extension. The second names the source-code files. The third passes
|
||||
$ext_shared which is set by PHP_ARG_ENABLE/WITH to PHP_NEW_EXTENSION.
|
||||
|
||||
|
||||
Please use always PHP_ARG_ENABLE or PHP_ARG_WITH. Even if you do not
|
||||
plan to distribute your module with PHP, these facilities allow you
|
||||
to integrate your module easily into the main PHP module framework.
|
||||
@ -135,7 +135,7 @@ INSTALLING A SELF-CONTAINED EXTENSION
|
||||
ADDING SHARED MODULE SUPPORT TO A MODULE
|
||||
|
||||
In order to be useful, a self-contained extension must be loadable
|
||||
as a shared module. I will explain now how you can add shared module
|
||||
as a shared module. I will explain now how you can add shared module
|
||||
support to an existing module called foo.
|
||||
|
||||
1. In config.m4, use PHP_ARG_WITH/PHP_ARG_ENABLE. Then you will
|
||||
|
@ -27,7 +27,7 @@ The main functions are:
|
||||
PHPAPI size_t php_stream_read(php_stream * stream, char * buf, size_t count);
|
||||
PHPAPI size_t php_stream_write(php_stream * stream, const char * buf, size_t
|
||||
count);
|
||||
PHPAPI size_t php_stream_printf(php_stream * stream,
|
||||
PHPAPI size_t php_stream_printf(php_stream * stream,
|
||||
const char * fmt, ...);
|
||||
PHPAPI int php_stream_eof(php_stream * stream);
|
||||
PHPAPI int php_stream_getc(php_stream * stream);
|
||||
@ -62,7 +62,7 @@ Where:
|
||||
file/URL, use this option to arrange for the stream
|
||||
to be copied (if needed) into a stream that can
|
||||
be seek()ed.
|
||||
|
||||
|
||||
opened_path is used to return the path of the actual file opened,
|
||||
but if you used STREAM_MUST_SEEK, may not be valid. You are
|
||||
responsible for efree()ing opened_path. opened_path may be (and usually
|
||||
@ -94,7 +94,7 @@ PHPAPI php_stream *php_stream_sock_open_host(const char *host, unsigned short po
|
||||
PHPAPI php_stream *php_stream_sock_open_unix(const char *path, int persistent,
|
||||
struct timeval *timeout);
|
||||
Open a UNIX domain socket.
|
||||
|
||||
|
||||
|
||||
Stream Utilities
|
||||
================
|
||||
@ -245,7 +245,7 @@ PHPAPI php_stream * php_stream_fopen(const char * filename, const char * mode)
|
||||
{
|
||||
FILE * fp = fopen(filename, mode);
|
||||
php_stream * ret;
|
||||
|
||||
|
||||
if (fp) {
|
||||
ret = php_stream_alloc(&php_stream_stdio_ops, fp, 0, 0, mode);
|
||||
if (ret)
|
||||
@ -346,7 +346,7 @@ static size_t php_mysqlop_read(php_stream * stream, char * buf, size_t count)
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* pull out some data from the stream and put it in buf */
|
||||
... mysql_fetch_row(state->result) ...
|
||||
/* we could do something strange, like format the data as XML here,
|
||||
|
@ -128,7 +128,7 @@ How to create your PHP, PHP Documentation or PECL patch
|
||||
-------------------------------------------------------
|
||||
PHP and most PECL packages use Git for revision control. Some PECL
|
||||
packages use Subversion (SVN) Read http://www.php.net/git.php for help
|
||||
on using Git to get and build PHP source code. We recommend to look
|
||||
on using Git to get and build PHP source code. We recommend to look
|
||||
at our workflow on https://wiki.php.net/vcs/gitworkflow and our FAQ
|
||||
https://wiki.php.net/vcs/gitfaq.
|
||||
|
||||
|
@ -12,7 +12,7 @@ enforced. It is implemented as a SAPI hook and is called from the
|
||||
treat_data and post handler functions. To implement your own security
|
||||
policy you will need to write a standard PHP extension. There is also
|
||||
a powerful standard implementation in ext/filter that should suit most
|
||||
peoples' needs. However, if you want to implement your own security
|
||||
peoples' needs. However, if you want to implement your own security
|
||||
policy, read on.
|
||||
|
||||
A simple implementation might look like the following. This stores the
|
||||
|
@ -31,7 +31,7 @@ aclocal.m4: configure.ac acinclude.m4
|
||||
aclocal
|
||||
|
||||
$(config_h_in): configure.ac
|
||||
# explicitly remove target since autoheader does not seem to work
|
||||
# explicitly remove target since autoheader does not seem to work
|
||||
# correctly otherwise (timestamps are not updated)
|
||||
@rm -f $@
|
||||
autoheader
|
||||
|
@ -1,17 +1,17 @@
|
||||
dnl Copyright (c) 1999, 2000 Sascha Schumann. All rights reserved.
|
||||
dnl
|
||||
dnl
|
||||
dnl Redistribution and use in source and binary forms, with or without
|
||||
dnl modification, are permitted provided that the following conditions
|
||||
dnl are met:
|
||||
dnl
|
||||
dnl
|
||||
dnl 1. Redistributions of source code must retain the above copyright
|
||||
dnl notice, this list of conditions and the following disclaimer.
|
||||
dnl
|
||||
dnl
|
||||
dnl 2. Redistributions in binary form must reproduce the above copyright
|
||||
dnl notice, this list of conditions and the following disclaimer in
|
||||
dnl the documentation and/or other materials provided with the
|
||||
dnl distribution.
|
||||
dnl
|
||||
dnl
|
||||
dnl THIS SOFTWARE IS PROVIDED BY SASCHA SCHUMANN ``AS IS'' AND ANY
|
||||
dnl EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
dnl IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
@ -97,7 +97,7 @@ dnl -Kthread UDK cc (UnixWare)
|
||||
dnl -mt WorkShop cc (Solaris)
|
||||
dnl -mthreads gcc (AIX)
|
||||
dnl -pthread gcc (Linux, FreeBSD, NetBSD, OpenBSD)
|
||||
dnl -pthreads gcc (Solaris)
|
||||
dnl -pthreads gcc (Solaris)
|
||||
dnl -qthreaded AIX cc V5
|
||||
dnl -threads gcc (HP-UX)
|
||||
dnl
|
||||
@ -113,7 +113,7 @@ CFLAGS=$save_CFLAGS
|
||||
AC_CACHE_CHECK(for pthreads_cflags,ac_cv_pthreads_cflags,[
|
||||
ac_cv_pthreads_cflags=
|
||||
if test "$pthreads_working" != "yes"; then
|
||||
for flag in -kthread -pthread -pthreads -mthreads -Kthread -threads -mt -qthreaded; do
|
||||
for flag in -kthread -pthread -pthreads -mthreads -Kthread -threads -mt -qthreaded; do
|
||||
ac_save=$CFLAGS
|
||||
CFLAGS="$CFLAGS $flag"
|
||||
PTHREADS_CHECK_COMPILE
|
||||
|
10
UPGRADING
10
UPGRADING
@ -237,13 +237,13 @@ readline:
|
||||
if PHP is linked against libreadline (rather than libedit).
|
||||
|
||||
Standard:
|
||||
. The --with-password-argon2[=dir] configure argument now provides support for
|
||||
both Argon2i and Argon2id hashes in the password_hash(), password_verify(),
|
||||
. The --with-password-argon2[=dir] configure argument now provides support for
|
||||
both Argon2i and Argon2id hashes in the password_hash(), password_verify(),
|
||||
password_get_info(), and password_needs_rehash() functions. Passwords may be
|
||||
hashed and verified using the PASSWORD_ARGON2ID constant.
|
||||
Support for both Argon2i and Argon2id in the password_* functions now requires
|
||||
PHP be linked against libargon2 reference library >= 20161029.
|
||||
(RFC: https://wiki.php.net/rfc/argon2_password_hash_enhancements).
|
||||
(RFC: https://wiki.php.net/rfc/argon2_password_hash_enhancements).
|
||||
|
||||
========================================
|
||||
3. Changes in SAPI modules
|
||||
@ -447,8 +447,8 @@ JSON:
|
||||
. FILTER_VALIDATE_FLOAT now also supports a `thousand` option, which
|
||||
defines the set of allowed thousand separator chars. The default (`"',."`)
|
||||
is fully backward compatible with former PHP versions.
|
||||
. FILTER_SANITIZE_ADD_SLASHES has been added as an alias of the 'magic_quotes'
|
||||
filter (FILTER_SANITIZE_MAGIC_QUOTES). The 'magic_quotes' filter is subject
|
||||
. FILTER_SANITIZE_ADD_SLASHES has been added as an alias of the 'magic_quotes'
|
||||
filter (FILTER_SANITIZE_MAGIC_QUOTES). The 'magic_quotes' filter is subject
|
||||
to removal in future versions of PHP.
|
||||
|
||||
FTP:
|
||||
|
@ -175,7 +175,7 @@ PHP 7.3 INTERNALS UPGRADE NOTES
|
||||
aa. RETSIGTYPE has been removed from the generated php_config.h and should be
|
||||
replaced with void.
|
||||
|
||||
bb. php_setcookie() now expects an additional samesite argument, and the
|
||||
bb. php_setcookie() now expects an additional samesite argument, and the
|
||||
url_encode parameter has been moved to the end. The signature is now:
|
||||
int php_setcookie(zend_string *name, zend_string *value, time_t expires,
|
||||
zend_string *path, zend_string *domain, int secure,
|
||||
|
24
Zend/LICENSE
24
Zend/LICENSE
@ -1,25 +1,25 @@
|
||||
--------------------------------------------------------------------
|
||||
--------------------------------------------------------------------
|
||||
The Zend Engine License, Version 2.00
|
||||
Copyright (c) 1999-2006 Zend Technologies Ltd. All rights reserved.
|
||||
--------------------------------------------------------------------
|
||||
--------------------------------------------------------------------
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, is permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer in the documentation and/or other materials provided
|
||||
with the distribution.
|
||||
|
||||
|
||||
3. The names "Zend" and "Zend Engine" must not be used to endorse
|
||||
or promote products derived from this software without prior
|
||||
permission from Zend Technologies Ltd. For written permission,
|
||||
please contact license@zend.com.
|
||||
|
||||
please contact license@zend.com.
|
||||
|
||||
4. Zend Technologies Ltd. may publish revised and/or new versions
|
||||
of the license from time to time. Each version will be given a
|
||||
distinguishing version number.
|
||||
@ -40,9 +40,9 @@ are met:
|
||||
software must display the following acknowledgment:
|
||||
"The Zend Engine is freely available at http://www.zend.com"
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY ZEND TECHNOLOGIES LTD. ``AS IS'' AND
|
||||
THIS SOFTWARE IS PROVIDED BY ZEND TECHNOLOGIES LTD. ``AS IS'' AND
|
||||
ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ZEND
|
||||
TECHNOLOGIES LTD. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
@ -53,4 +53,4 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
||||
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
|
||||
--------------------------------------------------------------------
|
||||
--------------------------------------------------------------------
|
||||
|
@ -21,7 +21,7 @@ ZEND_VM_HANDLER(<OPCODE-NUMBER>, <OPCODE>, <OP1_TYPES>, <OP2_TYPES>)
|
||||
<OPCODE-NUMBER> is a opcode number (0, 1, ...)
|
||||
<OPCODE> is an opcode name (ZEN_NOP, ZEND_ADD, :)
|
||||
<OP1_TYPES> & <OP2_TYPES> are masks for allowed operand op_types. Specializer
|
||||
will generate code only for defined combination of types. You can use any
|
||||
will generate code only for defined combination of types. You can use any
|
||||
combination of the following op_types UNUSED, CONST, VAR, TMP and CV also
|
||||
you can use ANY mask to disable specialization according operand's op_type.
|
||||
<HANDLER'S CODE> is a handler's code itself. For most handlers it stills the
|
||||
@ -34,9 +34,9 @@ EXECUTE_DATA
|
||||
execute_data
|
||||
ZEND_VM_DISPATCH_TO_HANDLER(<OP>)
|
||||
return <OP>_helper(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)
|
||||
ZEND_VM_DISPATCH_TO_HELPER(<NAME>)
|
||||
ZEND_VM_DISPATCH_TO_HELPER(<NAME>)
|
||||
return <NAME>(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)
|
||||
ZEND_VM_DISPATCH_TO_HELPER_EX(<NAME>,<PARAM>,<VAL>)
|
||||
ZEND_VM_DISPATCH_TO_HELPER_EX(<NAME>,<PARAM>,<VAL>)
|
||||
return <NAME>(<VAL>, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)
|
||||
ZEND_VM_CONTINUE()
|
||||
return 0
|
||||
@ -72,7 +72,7 @@ FREE_OP<X>_VAR_PTR()
|
||||
FREE_VAR_PTR(free_op<X>)
|
||||
|
||||
|
||||
Executor's helpers can be defined without parameters or with one parameter.
|
||||
Executor's helpers can be defined without parameters or with one parameter.
|
||||
This is done with the following constructs:
|
||||
|
||||
ZEND_VM_HELPER(<HELPER-NAME>, <OP1_TYPES>, <OP2_TYPES>)
|
||||
@ -86,13 +86,13 @@ ZEND_VM_HELPER_EX(<HELPER-NAME>, <OP1_TYPES>, <OP2_TYPES>, <PARAM_SPEC>)
|
||||
}
|
||||
|
||||
Executor's code is generated by PHP script zend_vm_gen.php it uses zend_vm_def.h
|
||||
and zend_vm_execute.skl as input and produces zend_vm_opcodes.h and
|
||||
zend_vm_execute.h. The first file is a list of opcode definitions. It is
|
||||
and zend_vm_execute.skl as input and produces zend_vm_opcodes.h and
|
||||
zend_vm_execute.h. The first file is a list of opcode definitions. It is
|
||||
included from zend_compile.h. The second one is an executor code itself. It is
|
||||
included from zend_execute.c.
|
||||
|
||||
zend_vm_gen.php can produce different kind of executors. You can select
|
||||
different opcode threading model using --with-vm-kind=CALL|SWITCH|GOTO. You can
|
||||
zend_vm_gen.php can produce different kind of executors. You can select
|
||||
different opcode threading model using --with-vm-kind=CALL|SWITCH|GOTO. You can
|
||||
disable opcode specialization using --without-specializer. You can include or
|
||||
exclude old executor together with specialized one using --without-old-executor.
|
||||
At last you can debug executor using original zend_vm_def.h or generated file
|
||||
|
@ -5,18 +5,18 @@ if (function_exists("date_default_timezone_set")) {
|
||||
|
||||
function simple() {
|
||||
$a = 0;
|
||||
for ($i = 0; $i < 1000000; $i++)
|
||||
for ($i = 0; $i < 1000000; $i++)
|
||||
$a++;
|
||||
|
||||
$thisisanotherlongname = 0;
|
||||
for ($thisisalongname = 0; $thisisalongname < 1000000; $thisisalongname++)
|
||||
for ($thisisalongname = 0; $thisisalongname < 1000000; $thisisalongname++)
|
||||
$thisisanotherlongname++;
|
||||
}
|
||||
|
||||
/****/
|
||||
|
||||
function simplecall() {
|
||||
for ($i = 0; $i < 1000000; $i++)
|
||||
for ($i = 0; $i < 1000000; $i++)
|
||||
strlen("hallo");
|
||||
}
|
||||
|
||||
@ -26,14 +26,14 @@ function hallo($a) {
|
||||
}
|
||||
|
||||
function simpleucall() {
|
||||
for ($i = 0; $i < 1000000; $i++)
|
||||
for ($i = 0; $i < 1000000; $i++)
|
||||
hallo("hallo");
|
||||
}
|
||||
|
||||
/****/
|
||||
|
||||
function simpleudcall() {
|
||||
for ($i = 0; $i < 1000000; $i++)
|
||||
for ($i = 0; $i < 1000000; $i++)
|
||||
hallo2("hallo");
|
||||
}
|
||||
|
||||
|
@ -32,7 +32,7 @@ aclocal.m4: configure.ac acinclude.m4
|
||||
aclocal
|
||||
|
||||
$(config_h_in): configure.ac
|
||||
# explicitly remove target since autoheader does not seem to work
|
||||
# explicitly remove target since autoheader does not seem to work
|
||||
# correctly otherwise (timestamps are not updated)
|
||||
@rm -f $@
|
||||
autoheader
|
||||
|
@ -4,12 +4,12 @@ function hallo() {
|
||||
}
|
||||
|
||||
function simpleucall($n) {
|
||||
for ($i = 0; $i < $n; $i++)
|
||||
for ($i = 0; $i < $n; $i++)
|
||||
hallo();
|
||||
}
|
||||
|
||||
function simpleudcall($n) {
|
||||
for ($i = 0; $i < $n; $i++)
|
||||
for ($i = 0; $i < $n; $i++)
|
||||
hallo2();
|
||||
}
|
||||
|
||||
@ -17,7 +17,7 @@ function hallo2() {
|
||||
}
|
||||
|
||||
function simpleicall($n) {
|
||||
for ($i = 0; $i < $n; $i++)
|
||||
for ($i = 0; $i < $n; $i++)
|
||||
func_num_args();
|
||||
}
|
||||
|
||||
|
@ -128,7 +128,7 @@ static void zend_ini_add_string(zval *result, zval *op1, zval *op2)
|
||||
}
|
||||
}
|
||||
op1_len = (int)Z_STRLEN_P(op1);
|
||||
|
||||
|
||||
if (Z_TYPE_P(op2) != IS_STRING) {
|
||||
convert_to_string(op2);
|
||||
}
|
||||
|
@ -79,4 +79,3 @@ static void zend_vm_trace_init(void)
|
||||
}
|
||||
zend_hash_destroy(&vm_trace_ht);
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ if not exist "%SDK_RUNNER%" (
|
||||
|
||||
if not exist "%PHP_BUILD_CACHE_SDK_DIR%" (
|
||||
echo Cloning remote SDK repository
|
||||
git clone --branch %SDK_BRANCH% %SDK_REMOTE% "%PHP_BUILD_CACHE_SDK_DIR%" 2>&1
|
||||
git clone --branch %SDK_BRANCH% %SDK_REMOTE% "%PHP_BUILD_CACHE_SDK_DIR%" 2>&1
|
||||
)
|
||||
|
||||
for /f "tokens=*" %%a in ('type %PHP_BUILD_CACHE_SDK_DIR%\VERSION') do set GOT_SDK_VER=%%a
|
||||
@ -30,7 +30,7 @@ if NOT "%GOT_SDK_VER%" == "%PHP_BUILD_SDK_BRANCH:~8%" (
|
||||
echo Fetching remote SDK repository
|
||||
git --git-dir="%PHP_BUILD_CACHE_SDK_DIR%\.git" --work-tree="%PHP_BUILD_CACHE_SDK_DIR%" fetch --prune origin 2>&1
|
||||
echo Checkout SDK repository branch
|
||||
git --git-dir="%PHP_BUILD_CACHE_SDK_DIR%\.git" --work-tree="%PHP_BUILD_CACHE_SDK_DIR%" checkout --force %SDK_BRANCH%
|
||||
git --git-dir="%PHP_BUILD_CACHE_SDK_DIR%\.git" --work-tree="%PHP_BUILD_CACHE_SDK_DIR%" checkout --force %SDK_BRANCH%
|
||||
)
|
||||
|
||||
if not exist "%SDK_RUNNER%" (
|
||||
|
@ -33,16 +33,16 @@
|
||||
}
|
||||
|
||||
dif=i-1
|
||||
|
||||
|
||||
for (; i <= NF; i++)
|
||||
filenames[i-dif]=$i
|
||||
|
||||
|
||||
no_files=NF-dif
|
||||
|
||||
|
||||
for(i = 1; i <= no_files; i++) {
|
||||
if (system("test -r " filenames[i]) != 0)
|
||||
continue
|
||||
|
||||
|
||||
target=filenames[i]
|
||||
sub(srcdir "/", "", target)
|
||||
target2=target
|
||||
@ -51,7 +51,7 @@
|
||||
|
||||
for (e in used)
|
||||
delete used[e]
|
||||
|
||||
|
||||
cmdx=cmd " " filenames[i]
|
||||
done=0
|
||||
while ((cmdx | getline) > 0) {
|
||||
@ -64,10 +64,10 @@
|
||||
done=1
|
||||
printf(" \\\n\t" substr($3,2,length($3)-2))
|
||||
used[$3] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (done == 1)
|
||||
print "\n"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -77,7 +77,7 @@ function count(arr, n, i)
|
||||
END {
|
||||
# order it correctly
|
||||
out_count = 0;
|
||||
|
||||
|
||||
while (count(mods)) {
|
||||
for (i = 0; i <= mod_count - 1; i++) {
|
||||
if (i in mods) {
|
||||
|
@ -2,7 +2,7 @@ BEGIN {
|
||||
mode=0
|
||||
sources=""
|
||||
}
|
||||
|
||||
|
||||
mode == 0 && /^LTLIBRARY_SOURCES.*\\$/ {
|
||||
if (match($0, "[^=]*$")) {
|
||||
sources=substr($0, RSTART, RLENGTH-1)
|
||||
|
@ -1,4 +1,4 @@
|
||||
BCMATH FAQ:
|
||||
BCMATH FAQ:
|
||||
|
||||
1) Why BCMATH?
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
||||
current locale.
|
||||
</para>
|
||||
<para>
|
||||
When called with an integer argument these functions
|
||||
When called with an integer argument these functions
|
||||
behave exactly like their C counterparts.
|
||||
</para>
|
||||
<para>
|
||||
@ -19,7 +19,7 @@
|
||||
requested criteria.
|
||||
</para>
|
||||
<para>
|
||||
Passing anything else but a string or integer will
|
||||
Passing anything else but a string or integer will
|
||||
return false immediately.
|
||||
</para>
|
||||
</partintro>
|
||||
|
@ -18,7 +18,7 @@ if (PHP_CURL != "no") {
|
||||
SETUP_OPENSSL("curl", PHP_CURL) > 0 &&
|
||||
CHECK_LIB("winmm.lib", "curl", PHP_CURL) &&
|
||||
CHECK_LIB("wldap32.lib", "curl", PHP_CURL) &&
|
||||
(((PHP_ZLIB=="no") && (CHECK_LIB("zlib_a.lib;zlib.lib", "curl", PHP_CURL))) ||
|
||||
(((PHP_ZLIB=="no") && (CHECK_LIB("zlib_a.lib;zlib.lib", "curl", PHP_CURL))) ||
|
||||
(PHP_ZLIB_SHARED && CHECK_LIB("zlib.lib", "curl", PHP_CURL)) || (PHP_ZLIB == "yes" && (!PHP_ZLIB_SHARED))) &&
|
||||
!isNaN(ver_num) &&
|
||||
(ver_num <= parseInt("0x073b00") || ver_num > parseInt("0x073b00") &&
|
||||
|
@ -21,7 +21,7 @@
|
||||
echo $_COOKIE['foo'];
|
||||
break;
|
||||
case 'encoding':
|
||||
echo $_SERVER['HTTP_ACCEPT_ENCODING'];
|
||||
echo $_SERVER['HTTP_ACCEPT_ENCODING'];
|
||||
break;
|
||||
case 'contenttype':
|
||||
header('Content-Type: text/plain;charset=utf-8');
|
||||
|
@ -1,54 +1,54 @@
|
||||
These functions build the foundation for accessing Berkeley DB style
|
||||
databases.
|
||||
These functions build the foundation for accessing Berkeley DB style
|
||||
databases.
|
||||
|
||||
This is a general abstraction layer for several file-based databases. As
|
||||
such, functionality is limited to a common subset of features supported
|
||||
by modern databases such as Sleepycat Software's DB2. (This is not to be
|
||||
confused with IBM's DB2 software, which is supported through the ODBC
|
||||
functions.)
|
||||
such, functionality is limited to a common subset of features supported
|
||||
by modern databases such as Sleepycat Software's DB2. (This is not to be
|
||||
confused with IBM's DB2 software, which is supported through the ODBC
|
||||
functions.)
|
||||
|
||||
This extensions allows to work with the following databases:
|
||||
dbm DBM is the oldest (original) type of Berkeley DB style databases.
|
||||
You should avoid it, if possible. We do not support the
|
||||
compatibility functions built into DB2 and gdbm, because they are
|
||||
only compatible on the source code level, but cannot handle the
|
||||
original dbm format.
|
||||
ndbm NDBM is a newer type and more flexible than dbm. It still has
|
||||
most of the arbitrary limits of dbm (therefore it is deprecated).
|
||||
gdbm GDBM is the GNU database manager.
|
||||
You should avoid it, if possible. We do not support the
|
||||
compatibility functions built into DB2 and gdbm, because they are
|
||||
only compatible on the source code level, but cannot handle the
|
||||
original dbm format.
|
||||
ndbm NDBM is a newer type and more flexible than dbm. It still has
|
||||
most of the arbitrary limits of dbm (therefore it is deprecated).
|
||||
gdbm GDBM is the GNU database manager.
|
||||
db2 DB2 is Sleepycat Software's DB2. It's described as "a programmatic
|
||||
toolkit that provides high-performance built-in database support
|
||||
for both standalone and client/server applications.
|
||||
db3 DB3 is Sleepycat Software's DB3.
|
||||
toolkit that provides high-performance built-in database support
|
||||
for both standalone and client/server applications.
|
||||
db3 DB3 is Sleepycat Software's DB3.
|
||||
db4 DB4 is Sleepycat Software's DB4. This is available since PHP 5.0.
|
||||
cdb CDB is "a fast, reliable, lightweight package for creating and
|
||||
reading constant databases." It is from the author of qmail and
|
||||
can be found at http://cr.yp.to/cdb.html. Since it is constant,
|
||||
we support only reading operations. And since PHP 4.3.0 we support
|
||||
writing (not updating) through the internal cdb library.
|
||||
cdb_make Since PHP 4.3.0 we support creation (not updating) of cdb files
|
||||
when the bundled cdb library is used.
|
||||
flatfile This is available since PHP 4.3.0 for compatibility with the
|
||||
deprecated dbm extension only and should be avoided. However you
|
||||
may use this where files were created in this format. That happens
|
||||
when configure could not find any external library.
|
||||
inifile This is available since PHP 4.3.3 to be able to modify php.ini
|
||||
files from within PHP scripts. When working with ini files you
|
||||
can pass arrays of the form array(0=>group,1=>value_name) or
|
||||
strings of the form "[group]value_name" where group is optional.
|
||||
As the functions dba_firstkey() and dba_nextkey() return string
|
||||
representations of the key there is a new function dba_key_split()
|
||||
available since PHP 5 which allows to convert the string keys into
|
||||
array keys without losing FALSE.
|
||||
qdbm This is available since PHP 5.0.0. The qdbm library can be loaded
|
||||
from http://qdbm.sourceforge.net.
|
||||
cdb CDB is "a fast, reliable, lightweight package for creating and
|
||||
reading constant databases." It is from the author of qmail and
|
||||
can be found at http://cr.yp.to/cdb.html. Since it is constant,
|
||||
we support only reading operations. And since PHP 4.3.0 we support
|
||||
writing (not updating) through the internal cdb library.
|
||||
cdb_make Since PHP 4.3.0 we support creation (not updating) of cdb files
|
||||
when the bundled cdb library is used.
|
||||
flatfile This is available since PHP 4.3.0 for compatibility with the
|
||||
deprecated dbm extension only and should be avoided. However you
|
||||
may use this where files were created in this format. That happens
|
||||
when configure could not find any external library.
|
||||
inifile This is available since PHP 4.3.3 to be able to modify php.ini
|
||||
files from within PHP scripts. When working with ini files you
|
||||
can pass arrays of the form array(0=>group,1=>value_name) or
|
||||
strings of the form "[group]value_name" where group is optional.
|
||||
As the functions dba_firstkey() and dba_nextkey() return string
|
||||
representations of the key there is a new function dba_key_split()
|
||||
available since PHP 5 which allows to convert the string keys into
|
||||
array keys without losing FALSE.
|
||||
qdbm This is available since PHP 5.0.0. The qdbm library can be loaded
|
||||
from http://qdbm.sourceforge.net.
|
||||
|
||||
|
||||
After configuring and compiling PHP you must execute the following test
|
||||
from commandline:
|
||||
php run-tests.php ext/dba.
|
||||
This shows whether your combination of handlers works. Most problematic
|
||||
are dbm and ndbm which conflict with many installations. The reason for
|
||||
from commandline:
|
||||
php run-tests.php ext/dba.
|
||||
This shows whether your combination of handlers works. Most problematic
|
||||
are dbm and ndbm which conflict with many installations. The reason for
|
||||
this is that on several systems these libraries are part of more than one
|
||||
other library. The configuration test only prevents you from configuring
|
||||
other library. The configuration test only prevents you from configuring
|
||||
malfaunctioning single handlers but not combinations.
|
@ -1,10 +1,10 @@
|
||||
#! /bin/sh
|
||||
|
||||
# You can use this script if you want to use an external cdb lib. If you
|
||||
# compile php using --with-cdb the internal functions will be used and no
|
||||
# compile php using --with-cdb the internal functions will be used and no
|
||||
# external library is used so that this script is not necessary.
|
||||
#
|
||||
# cdb-0.75 lacks support for installing header files and creating a
|
||||
# cdb-0.75 lacks support for installing header files and creating a
|
||||
# library which programs can link against. This shell script fills
|
||||
# the gap.
|
||||
|
||||
|
@ -1,13 +1,13 @@
|
||||
<?php
|
||||
|
||||
function libxml_options_to_int($libxmlOptions) {
|
||||
|
||||
|
||||
$defined_constants = get_defined_constants(true);
|
||||
$env_array = explode('|', $libxmlOptions);
|
||||
$libxml_constants = array_intersect_key($defined_constants['libxml'], array_flip($env_array));
|
||||
|
||||
$sum = 0;
|
||||
foreach($libxml_constants as $value) {
|
||||
foreach($libxml_constants as $value) {
|
||||
$sum = $sum|$value;
|
||||
}
|
||||
|
||||
|
@ -4,7 +4,7 @@ include(dirname(__FILE__) . '/domdocumentload_utilities.php');
|
||||
$doc = new DOMDocument();
|
||||
|
||||
$libxml_options = libxml_options_to_int(getenv('LOAD_OPTIONS'));
|
||||
$result = $doc->loadXML(file_get_contents(dirname(__FILE__) . getenv('XML_FILE')),
|
||||
$result = $doc->loadXML(file_get_contents(dirname(__FILE__) . getenv('XML_FILE')),
|
||||
$libxml_options);
|
||||
|
||||
$expectedResult = (bool) getenv('EXPECTED_RESULT');
|
||||
|
@ -4,7 +4,7 @@ include(dirname(__FILE__) . '/domdocumentload_utilities.php');
|
||||
$doc = new DOMDocument();
|
||||
|
||||
$libxml_options = libxml_options_to_int(getenv('LOAD_OPTIONS'));
|
||||
$result = $doc->loadXML(file_get_contents(dirname(__FILE__) . getenv('XML_FILE')),
|
||||
$result = $doc->loadXML(file_get_contents(dirname(__FILE__) . getenv('XML_FILE')),
|
||||
$libxml_options);
|
||||
|
||||
$expectedResult = (bool) getenv('EXPECTED_RESULT');
|
||||
|
@ -5,4 +5,4 @@
|
||||
<from>Shane</from>
|
||||
<heading>Reminder</heading>
|
||||
<body>Don't forget the meeting tonight!</body>
|
||||
</note>
|
||||
</note>
|
||||
|
@ -14,8 +14,8 @@ if (PHP_GD != "no") {
|
||||
CHECK_HEADER_ADD_INCLUDE("png.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\libpng15") ||
|
||||
CHECK_HEADER_ADD_INCLUDE("png.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\libpng12")) &&
|
||||
(CHECK_LIB("libiconv_a.lib;libiconv.lib", "gd", PHP_GD) || CHECK_LIB("iconv_a.lib;iconv.lib", "gd", PHP_GD)) &&
|
||||
CHECK_HEADER_ADD_INCLUDE("iconv.h", "CFLAGS_GD", PHP_GD) &&
|
||||
(((PHP_ZLIB=="no") && (CHECK_LIB("zlib_a.lib;zlib.lib", "gd", PHP_GD) )) ||
|
||||
CHECK_HEADER_ADD_INCLUDE("iconv.h", "CFLAGS_GD", PHP_GD) &&
|
||||
(((PHP_ZLIB=="no") && (CHECK_LIB("zlib_a.lib;zlib.lib", "gd", PHP_GD) )) ||
|
||||
(PHP_ZLIB_SHARED && CHECK_LIB("zlib.lib", "gd", PHP_GD)) || (PHP_ZLIB == "yes" && (!PHP_ZLIB_SHARED))) &&
|
||||
CHECK_LIB("libXpm_a.lib", "gd", PHP_GD) &&
|
||||
CHECK_HEADER_ADD_INCLUDE("xpm.h", "CFLAGS_GD", PHP_GD + ";" + PHP_PHP_BUILD + "\\include\\X11")
|
||||
@ -77,7 +77,7 @@ if (PHP_GD != "no") {
|
||||
if (ICC_TOOLSET) {
|
||||
ADD_FLAG("LDFLAGS_GD", "/nodefaultlib:libcmt");
|
||||
}
|
||||
|
||||
|
||||
PHP_INSTALL_HEADERS("", "ext/gd ext/gd/libgd" );
|
||||
} else {
|
||||
WARNING("gd not enabled; libraries and headers not found");
|
||||
|
@ -15,5 +15,5 @@ $context = hash_init($algoname);
|
||||
hash_update($context, $message);
|
||||
$digest = hash_final($context);
|
||||
|
||||
hash(), hash_file(), and hash_final() each support an optional boolean parameter $raw_output which behaves in the same
|
||||
hash(), hash_file(), and hash_final() each support an optional boolean parameter $raw_output which behaves in the same
|
||||
manner as sha1()'s optional parameter.
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
/*
|
||||
This gives rather interesting results :)
|
||||
|
||||
|
||||
Measures on a Notebook P4M-1.7 256MB Windows 2000:
|
||||
sha1 0.556691
|
||||
tiger160,3 0.774469
|
||||
|
@ -1,7 +1,7 @@
|
||||
// vim:ft=javascript
|
||||
|
||||
ARG_ENABLE("hash", "enable hash support", "yes");
|
||||
ARG_WITH("mhash", "mhash support", "no");
|
||||
ARG_WITH("mhash", "mhash support", "no");
|
||||
|
||||
if (PHP_MHASH != "no") {
|
||||
if (PHP_HASH == "no") {
|
||||
@ -25,7 +25,7 @@ if (PHP_HASH != "no") {
|
||||
|
||||
|
||||
PHP_INSTALL_HEADERS("ext/hash/", "php_hash.h php_hash_md.h php_hash_sha.h php_hash_ripemd.h " +
|
||||
"php_hash_haval.h php_hash_tiger.h php_hash_gost.h php_hash_snefru.h " +
|
||||
"php_hash_haval.h php_hash_tiger.h php_hash_gost.h php_hash_snefru.h " +
|
||||
"php_hash_whirlpool.h php_hash_adler32.h php_hash_crc32.h php_hash_sha3.h ");
|
||||
} else {
|
||||
WARNING("hash not enabled; libraries and headers not found");
|
||||
|
@ -1,2 +1,2 @@
|
||||
Iconv
|
||||
Rui Hirokawa, Stig Bakken, Moriyoshi Koizumi
|
||||
Rui Hirokawa, Stig Bakken, Moriyoshi Koizumi
|
||||
|
@ -8,7 +8,7 @@ if (PHP_ICONV != "no") {
|
||||
CHECK_HEADER_ADD_INCLUDE("iconv.h", "CFLAGS_ICONV", PHP_ICONV)) {
|
||||
|
||||
EXTENSION("iconv", "iconv.c", PHP_ICONV_SHARED, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
|
||||
|
||||
|
||||
AC_DEFINE("HAVE_ICONV", 1, "Define if iconv extension is enabled");
|
||||
AC_DEFINE("HAVE_LIBICONV", 1, "Define if libiconv is available");
|
||||
AC_DEFINE("ICONV_ALIASED_LIBICONV", 1, "The iconv function is called iconv() in libiconv");
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
Many of the tests in this directory require a mail server to be running, if there is no mail server the test will skip and warn, see skipif.inc for details.
|
||||
|
||||
To make the tests run parameters in the skipif.inc and imap_include.inc file will need to be changed to match the local mailserver configuration.
|
||||
To make the tests run parameters in the skipif.inc and imap_include.inc file will need to be changed to match the local mailserver configuration.
|
||||
|
||||
|
||||
The tests have been checked using dovecot (on Linux 32 and 64 bit systems) and hMailServer on Windows. The tests are intended to be mailserver agnostic.
|
||||
|
@ -4,7 +4,7 @@ ARG_WITH("interbase", "InterBase support", "no");
|
||||
|
||||
if (PHP_INTERBASE != "no") {
|
||||
|
||||
if (CHECK_HEADER_ADD_INCLUDE("ibase.h", "CFLAGS_INTERBASE",
|
||||
if (CHECK_HEADER_ADD_INCLUDE("ibase.h", "CFLAGS_INTERBASE",
|
||||
PHP_PHP_BUILD + "\\include\\interbase;" + PHP_PHP_BUILD + "\\interbase\\include;" + PHP_INTERBASE) &&
|
||||
(CHECK_LIB("fbclient_ms.lib", "interbase", PHP_PHP_BUILD + "\\interbase\\lib_ms;" + PHP_INTERBASE) ||
|
||||
CHECK_LIB("gds32_ms.lib", "interbase", PHP_PHP_BUILD + "\\interbase\\lib_ms;" + PHP_INTERBASE))) {
|
||||
|
@ -28,7 +28,7 @@ void intl_error_set(intl_error* err, UErrorCode code, char* msg, int copyMsg);
|
||||
and by passing NULL as the first parameter. The last function is a combination
|
||||
of the first two. If the message is not a static buffer, copyMsg should be 1.
|
||||
This makes the message string be copied and freed when no longer needed. There's
|
||||
no way to pass ownership of the string without it being copied.
|
||||
no way to pass ownership of the string without it being copied.
|
||||
|
||||
|
||||
:: The last is ALSO stored in the object whose method call triggered the error,
|
||||
|
@ -97,18 +97,18 @@ if (PHP_INTL != "no") {
|
||||
transliterator_class.c \
|
||||
transliterator_methods.c",
|
||||
"intl");
|
||||
|
||||
|
||||
ADD_SOURCES(configure_module_dirname + "/timezone", "\
|
||||
timezone_class.cpp \
|
||||
timezone_methods.cpp",
|
||||
"intl");
|
||||
|
||||
|
||||
ADD_SOURCES(configure_module_dirname + "/calendar", "\
|
||||
calendar_methods.cpp \
|
||||
gregoriancalendar_methods.cpp \
|
||||
calendar_class.cpp",
|
||||
"intl");
|
||||
|
||||
|
||||
ADD_SOURCES(configure_module_dirname + "/breakiterator", "\
|
||||
breakiterator_class.cpp \
|
||||
breakiterator_methods.cpp \
|
||||
@ -117,7 +117,7 @@ if (PHP_INTL != "no") {
|
||||
codepointiterator_internal.cpp \
|
||||
codepointiterator_methods.cpp ",
|
||||
"intl");
|
||||
|
||||
|
||||
ADD_FLAG("LIBS_INTL", "icudt.lib icuin.lib icuio.lib");
|
||||
|
||||
/* Compat for ICU before 58.1.*/
|
||||
|
@ -380,7 +380,7 @@ PHP_FUNCTION( normalizer_get_raw_decomposition )
|
||||
intl_error_set_custom_msg(NULL, "Code point out of range", 0);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
decomposition_length = unorm2_getRawDecomposition(norm, codepoint, decomposition, 32, &status);
|
||||
if (decomposition_length == -1) {
|
||||
RETURN_NULL();
|
||||
|
@ -104,7 +104,7 @@ void php_json_scanner_init(php_json_scanner *s, char *str, size_t str_len, int o
|
||||
int php_json_scan(php_json_scanner *s)
|
||||
{
|
||||
ZVAL_NULL(&s->value);
|
||||
|
||||
|
||||
std:
|
||||
s->token = s->cursor;
|
||||
|
||||
|
@ -63,7 +63,7 @@ export LDAP_TEST_HOST=192.168.33.10
|
||||
|
||||
Now you can run the test-suite by calling "make test". To test only the LDAP-Tests, run "make test TESTS=ext/ldap"
|
||||
|
||||
CAVEAT: The current setup does not (yet) test secure connections.
|
||||
CAVEAT: The current setup does not (yet) test secure connections.
|
||||
|
||||
|
||||
========
|
||||
|
@ -146,7 +146,7 @@ such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
|
@ -10,12 +10,12 @@ version 1.3.2 August 20, 2011
|
||||
version 1.3.1 August 5, 2011
|
||||
|
||||
- added check for invalid/obsolete utf-8 encoding (rui).
|
||||
|
||||
|
||||
version 1.3.0 August 1, 2011
|
||||
|
||||
- added encoding conversion between Shift_JIS and Unicode (6.0 or PUA)
|
||||
- added encoding conversion between Shift_JIS and Unicode (6.0 or PUA)
|
||||
for pictogram characters defined by mobile phone carrier in Japan (rui).
|
||||
|
||||
|
||||
Detailed info:https://github.com/hirokawa/libmbfl/wiki/Introduction-to-libmbflhttps:--github.com-hirokawa-libmbfl-wiki-Introduction-to-libmbfl-_edit%23
|
||||
|
||||
- fixed encoding conversion of cp5022x for user defined area (rui).
|
||||
|
@ -1,5 +1,5 @@
|
||||
#!/usr/bin/perl
|
||||
# script to generate Shift_JIS encoded Emoji to/from Unicode conversion table.
|
||||
# script to generate Shift_JIS encoded Emoji to/from Unicode conversion table.
|
||||
# Rui Hirokawa <hirokawa@php.net>
|
||||
#
|
||||
# usage: mktbl.pl EmojiSources.txt
|
||||
@ -22,7 +22,7 @@ sub sjis2code {
|
||||
|
||||
# Shift_JIS -> JIS
|
||||
$c[0] = (($c[0]-($c[0]<160?112:176))<<1)-($c[1]<159?1:0);
|
||||
$c[1] -= ($c[1]<159?($c[1]>127?32:31):126);
|
||||
$c[1] -= ($c[1]<159?($c[1]>127?32:31):126);
|
||||
|
||||
$s = ($c[0] - 0x21)*94 + $c[1]-0x21;
|
||||
|
||||
@ -131,19 +131,19 @@ push(@r_docomo2_val, 0x00);
|
||||
push(@r_docomo3_key, 0x00);
|
||||
push(@r_docomo3_val, 0x00);
|
||||
|
||||
print OUT "int mb_tbl_code2uni_docomo_min = $docomo_min;\n";
|
||||
print OUT "int mb_tbl_code2uni_docomo_max = $docomo_max;\n\n";
|
||||
print OUT "int mb_tbl_code2uni_docomo_min = $docomo_min;\n";
|
||||
print OUT "int mb_tbl_code2uni_docomo_max = $docomo_max;\n\n";
|
||||
|
||||
print OUT "int mb_tbl_code2uni_docomo[] = {\n";
|
||||
print OUT &show_code(@docomo_v);
|
||||
print OUT "};\n\n";
|
||||
|
||||
print OUT "int mb_tbl_uni_docomo2code_min1 = $to_docomo_min1;\n";
|
||||
print OUT "int mb_tbl_uni_docomo2code_max1 = $to_docomo_max1;\n";
|
||||
print OUT "int mb_tbl_uni_docomo2code_min2 = $to_docomo_min2;\n";
|
||||
print OUT "int mb_tbl_uni_docomo2code_max2 = $to_docomo_max2;\n";
|
||||
print OUT "int mb_tbl_uni_docomo2code_min3 = $to_docomo_min3;\n";
|
||||
print OUT "int mb_tbl_uni_docomo2code_max3 = $to_docomo_max3;\n\n";
|
||||
print OUT "int mb_tbl_uni_docomo2code_min1 = $to_docomo_min1;\n";
|
||||
print OUT "int mb_tbl_uni_docomo2code_max1 = $to_docomo_max1;\n";
|
||||
print OUT "int mb_tbl_uni_docomo2code_min2 = $to_docomo_min2;\n";
|
||||
print OUT "int mb_tbl_uni_docomo2code_max2 = $to_docomo_max2;\n";
|
||||
print OUT "int mb_tbl_uni_docomo2code_min3 = $to_docomo_min3;\n";
|
||||
print OUT "int mb_tbl_uni_docomo2code_max3 = $to_docomo_max3;\n\n";
|
||||
|
||||
#print "DOCOMO reverse 1\n";
|
||||
|
||||
@ -238,10 +238,10 @@ push(@r_kddi2_val, 0x00);
|
||||
push(@r_kddi3_key, 0x00);
|
||||
push(@r_kddi3_val, 0x00);
|
||||
|
||||
print OUT "int mb_tbl_code2uni_kddi1_min = $kddi_min1;\n";
|
||||
print OUT "int mb_tbl_code2uni_kddi1_max = $kddi_max1;\n";
|
||||
print OUT "int mb_tbl_code2uni_kddi2_min = $kddi_min2;\n";
|
||||
print OUT "int mb_tbl_code2uni_kddi2_max = $kddi_max2;\n\n";
|
||||
print OUT "int mb_tbl_code2uni_kddi1_min = $kddi_min1;\n";
|
||||
print OUT "int mb_tbl_code2uni_kddi1_max = $kddi_max1;\n";
|
||||
print OUT "int mb_tbl_code2uni_kddi2_min = $kddi_min2;\n";
|
||||
print OUT "int mb_tbl_code2uni_kddi2_max = $kddi_max2;\n\n";
|
||||
|
||||
#print "KDDI 1\n";
|
||||
|
||||
@ -255,12 +255,12 @@ print OUT "int mb_tbl_code2uni_kddi2[] = {\n";
|
||||
print OUT &show_code(@kddi_v2);
|
||||
print OUT "};\n\n";
|
||||
|
||||
print OUT "int mb_tbl_uni_kddi2code_min1 = $to_kddi_min1;\n";
|
||||
print OUT "int mb_tbl_uni_kddi2code_max1 = $to_kddi_max1;\n";
|
||||
print OUT "int mb_tbl_uni_kddi2code_min2 = $to_kddi_min2;\n";
|
||||
print OUT "int mb_tbl_uni_kddi2code_max2 = $to_kddi_max2;\n";
|
||||
print OUT "int mb_tbl_uni_kddi2code_min3 = $to_kddi_min3;\n";
|
||||
print OUT "int mb_tbl_uni_kddi2code_max3 = $to_kddi_max3;\n\n";
|
||||
print OUT "int mb_tbl_uni_kddi2code_min1 = $to_kddi_min1;\n";
|
||||
print OUT "int mb_tbl_uni_kddi2code_max1 = $to_kddi_max1;\n";
|
||||
print OUT "int mb_tbl_uni_kddi2code_min2 = $to_kddi_min2;\n";
|
||||
print OUT "int mb_tbl_uni_kddi2code_max2 = $to_kddi_max2;\n";
|
||||
print OUT "int mb_tbl_uni_kddi2code_min3 = $to_kddi_min3;\n";
|
||||
print OUT "int mb_tbl_uni_kddi2code_max3 = $to_kddi_max3;\n\n";
|
||||
|
||||
#print "KDDI reverse 1\n";
|
||||
|
||||
@ -303,7 +303,7 @@ $sb_max3 = 10153+901;
|
||||
|
||||
if (1) {
|
||||
print "SoftBank\n";
|
||||
|
||||
|
||||
foreach $key (sort {hex($a) <=> hex($b)} keys(%softbank)) {
|
||||
$s = $key;
|
||||
$pos = $s % 94;
|
||||
@ -319,7 +319,7 @@ if (1) {
|
||||
$sb_v3[$key-$sb_min3] = $softbank{$key};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
$to_sb_min = 10263;
|
||||
@ -362,12 +362,12 @@ push(@r_sb3_key, 0x00);
|
||||
push(@r_sb3_val, 0x00);
|
||||
|
||||
|
||||
print OUT "int mb_tbl_code2uni_sb1_min = $sb_min1;\n";
|
||||
print OUT "int mb_tbl_code2uni_sb1_max = $sb_max1;\n";
|
||||
print OUT "int mb_tbl_code2uni_sb2_min = $sb_min2;\n";
|
||||
print OUT "int mb_tbl_code2uni_sb2_max = $sb_max2;\n";
|
||||
print OUT "int mb_tbl_code2uni_sb3_min = $sb_min3;\n";
|
||||
print OUT "int mb_tbl_code2uni_sb3_max = $sb_max3;\n\n";
|
||||
print OUT "int mb_tbl_code2uni_sb1_min = $sb_min1;\n";
|
||||
print OUT "int mb_tbl_code2uni_sb1_max = $sb_max1;\n";
|
||||
print OUT "int mb_tbl_code2uni_sb2_min = $sb_min2;\n";
|
||||
print OUT "int mb_tbl_code2uni_sb2_max = $sb_max2;\n";
|
||||
print OUT "int mb_tbl_code2uni_sb3_min = $sb_min3;\n";
|
||||
print OUT "int mb_tbl_code2uni_sb3_max = $sb_max3;\n\n";
|
||||
|
||||
#print "SoftBank 1\n";
|
||||
|
||||
@ -387,12 +387,12 @@ print OUT "int mb_tbl_code2uni_sb3[] = {\n";
|
||||
print OUT &show_code(@sb_v3);
|
||||
print OUT "};\n\n";
|
||||
|
||||
print OUT "int mb_tbl_uni_sb2code_min1 = $to_sb_min1;\n";
|
||||
print OUT "int mb_tbl_uni_sb2code_max1 = $to_sb_max1;\n";
|
||||
print OUT "int mb_tbl_uni_sb2code_min2 = $to_sb_min2;\n";
|
||||
print OUT "int mb_tbl_uni_sb2code_max2 = $to_sb_max2;\n";
|
||||
print OUT "int mb_tbl_uni_sb2code_min3 = $to_sb_min3;\n";
|
||||
print OUT "int mb_tbl_uni_sb2code_max3 = $to_sb_max3;\n\n";
|
||||
print OUT "int mb_tbl_uni_sb2code_min1 = $to_sb_min1;\n";
|
||||
print OUT "int mb_tbl_uni_sb2code_max1 = $to_sb_max1;\n";
|
||||
print OUT "int mb_tbl_uni_sb2code_min2 = $to_sb_min2;\n";
|
||||
print OUT "int mb_tbl_uni_sb2code_max2 = $to_sb_max2;\n";
|
||||
print OUT "int mb_tbl_uni_sb2code_min3 = $to_sb_min3;\n";
|
||||
print OUT "int mb_tbl_uni_sb2code_max3 = $to_sb_max3;\n\n";
|
||||
|
||||
#print "SB reverse 1\n";
|
||||
|
||||
|
@ -54,7 +54,7 @@ END {
|
||||
print ""
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
print "};"
|
||||
|
||||
if (IFNDEF_NAME) {
|
||||
|
@ -76,4 +76,4 @@ END {
|
||||
printf("{ 0x%04x, 0x%04x }", first, prev)
|
||||
}
|
||||
print "\n};\n"
|
||||
}
|
||||
}
|
||||
|
@ -867,7 +867,7 @@ expect {
|
||||
}
|
||||
close
|
||||
|
||||
set test "full-width katakanas to full-width hiragana"
|
||||
set test "full-width katakanas to full-width hiragana"
|
||||
spawn tests/conv_kana EUC-JP "c"
|
||||
expect_after {
|
||||
"\[^\r\n\]*\r\n" { fail $test }
|
||||
|
@ -505,7 +505,7 @@ function generateData(UnicodeData $data) {
|
||||
/* This file was generated from a modified version UCData's ucgendat.
|
||||
*
|
||||
* DO NOT EDIT THIS FILE!
|
||||
*
|
||||
*
|
||||
* Instead, compile ucgendat.c (bundled with PHP in ext/mbstring), download
|
||||
* the appropriate UnicodeData-x.x.x.txt and CompositionExclusions-x.x.x.txt
|
||||
* files from http://www.unicode.org/Public/ and run this program.
|
||||
|
@ -30,7 +30,7 @@ if (PHP_MYSQLI != "no") {
|
||||
PHP_INSTALL_HEADERS("ext/mysqli", "php_mysqli_structs.h");
|
||||
} else {
|
||||
if (CHECK_LIB("libmysql.lib", "mysqli", PHP_MYSQLI) &&
|
||||
CHECK_HEADER_ADD_INCLUDE("mysql.h", "CFLAGS_MYSQLI", PHP_MYSQLI +
|
||||
CHECK_HEADER_ADD_INCLUDE("mysql.h", "CFLAGS_MYSQLI", PHP_MYSQLI +
|
||||
"\\include;" + PHP_PHP_BUILD +
|
||||
"\\include\\mysql;" + PHP_MYSQLI)) {
|
||||
EXTENSION("mysqli", mysqli_source, PHP_MYSQLI_SHARED, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
|
||||
|
@ -4,7 +4,7 @@ ARG_WITH("mysqlnd", "Mysql Native Client Driver", "yes");
|
||||
if (PHP_MYSQLND != "no") {
|
||||
|
||||
if (CHECK_LIB("ws2_32.lib", "mysqlnd")) {
|
||||
mysqlnd_source =
|
||||
mysqlnd_source =
|
||||
"mysqlnd_alloc.c " +
|
||||
"mysqlnd_auth.c " +
|
||||
"mysqlnd_block_alloc.c " +
|
||||
|
@ -25,7 +25,7 @@ if (PHP_OPCACHE != "no") {
|
||||
|
||||
ADD_SOURCES(configure_module_dirname + "/Optimizer", "zend_optimizer.c pass1_5.c pass2.c pass3.c optimize_func_calls.c block_pass.c optimize_temp_vars_5.c nop_removal.c compact_literals.c zend_cfg.c zend_dfg.c dfa_pass.c zend_ssa.c zend_inference.c zend_func_info.c zend_call_graph.c sccp.c scdf.c dce.c escape_analysis.c compact_vars.c zend_dump.c", "opcache", "OptimizerObj");
|
||||
|
||||
|
||||
|
||||
ADD_FLAG('CFLAGS_OPCACHE', "/I " + configure_module_dirname);
|
||||
|
||||
}
|
||||
|
@ -272,7 +272,7 @@ Seal and open
|
||||
|
||||
// now we try to decrypt data for one of the recipients
|
||||
$fp = fopen("/src/openssl-0.9.6/demos/sign/key.pem", "r");
|
||||
// Get PEM coded key into $pkey
|
||||
// Get PEM coded key into $pkey
|
||||
$pkey = fread($fp, 8192);
|
||||
fclose($fp);
|
||||
// $key will be resource id for unpacked $pkey
|
||||
|
@ -1,8 +1,8 @@
|
||||
Process Control Module for PHP (pcntl)
|
||||
|
||||
This module will attempt to implement all features related to process spawning and
|
||||
control (fork(), waitpid(), signal(), WIF's, etc). This is extremely experimental,
|
||||
with hope to become stable on most UNIX's. I greatly apreciate any feedback, fixes,
|
||||
control (fork(), waitpid(), signal(), WIF's, etc). This is extremely experimental,
|
||||
with hope to become stable on most UNIX's. I greatly apreciate any feedback, fixes,
|
||||
and or suggestions on how to improve/better implement
|
||||
this functionality.
|
||||
|
||||
|
@ -6,7 +6,7 @@ if (PHP_PDO_FIREBIRD != "no") {
|
||||
|
||||
if ((CHECK_LIB("fbclient_ms.lib", "pdo_firebird", PHP_PHP_BUILD + "\\interbase\\lib_ms;" + PHP_PDO_FIREBIRD)
|
||||
|| CHECK_LIB("gds32_ms.lib", "pdo_firebird", PHP_PHP_BUILD + "\\interbase\\lib_ms;" + PHP_PDO_FIREBIRD)
|
||||
) && CHECK_HEADER_ADD_INCLUDE("ibase.h", "CFLAGS_PDO_FIREBIRD",
|
||||
) && CHECK_HEADER_ADD_INCLUDE("ibase.h", "CFLAGS_PDO_FIREBIRD",
|
||||
PHP_PHP_BUILD + "\\include\\interbase;" + PHP_PHP_BUILD + "\\interbase\\include;" + PHP_PDO_FIREBIRD)
|
||||
) {
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
||||
fputs(STDERR, "input doesn't look like a MySQL sql_state.h file\n");
|
||||
exit(3);
|
||||
}
|
||||
|
||||
|
||||
echo "/* DO NOT EDIT THIS FILE!!! It is auto generated by get_error_codes.php */\n";
|
||||
foreach ($codes as $code => $state) {
|
||||
echo "#ifdef $code\n";
|
||||
@ -23,5 +23,5 @@
|
||||
echo "#endif\n";
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
@ -20,7 +20,7 @@ if (PHP_PDO_OCI != "no") {
|
||||
pdo_oci_lib_paths += pdo_oci_dirs[i] + "\\lib\\msvc;";
|
||||
pdo_oci_inc_paths += pdo_oci_dirs[i] + "\\include;";
|
||||
}
|
||||
|
||||
|
||||
pdo_oci_inc_paths += PHP_PHP_BUILD + "\\include\\instantclient;"
|
||||
pdo_oci_lib_paths += PHP_PHP_BUILD + "\\lib\\instantclient;";
|
||||
|
||||
|
@ -35,7 +35,7 @@ http://pear.php.net/dtd/package-2.0.xsd">
|
||||
You require Oracle OCI 8 or higher client libraries (instantclient is also
|
||||
supported) installed on the machine where you intend to build and/or use this
|
||||
package.
|
||||
|
||||
|
||||
If you are running on windows, you can download the binary from here:
|
||||
http://pecl4win.php.net/ext.php/php_pdo_oci.dll
|
||||
</notes>
|
||||
|
@ -4,7 +4,7 @@ ARG_WITH("pdo-sqlite", "for pdo_sqlite support", "no");
|
||||
|
||||
if (PHP_PDO_SQLITE != "no") {
|
||||
EXTENSION("pdo_sqlite", "pdo_sqlite.c sqlite_driver.c sqlite_statement.c", null, "/DSQLITE_THREADSAFE=" + (PHP_ZTS == "yes" ? "1" : "0") + " /D SQLITE_ENABLE_FTS3=1 /D SQLITE_ENABLE_FTS4=1 /D SQLITE_ENABLE_FTS5=1 /D SQLITE_ENABLE_JSON1=1 /D SQLITE_ENABLE_COLUMN_METADATA=1 /D SQLITE_CORE=1 /I" + configure_module_dirname + "/../sqlite3/libsqlite /I" + configure_module_dirname);
|
||||
|
||||
|
||||
ADD_EXTENSION_DEP('pdo_sqlite', 'pdo');
|
||||
// If pdo_sqlite is static, and sqlite3 is also static, then we don't add a second copy of the sqlite3 libs
|
||||
if (PHP_PDO_SQLITE_SHARED || PHP_SQLITE3_SHARED || PHP_SQLITE3 == 'no') {
|
||||
|
@ -1,27 +1,27 @@
|
||||
==== About This Module ===
|
||||
PostgreSQL module provides access to PostgreSQL server from
|
||||
PostgreSQL module provides access to PostgreSQL server from
|
||||
PHP script. This module uses PostgreSQL C client lib called libpq.
|
||||
It is important that you use libpq that is later than backend
|
||||
(PostgreSQL Server) version. Otherwise, you may experience
|
||||
strange problems.
|
||||
It is important that you use libpq that is later than backend
|
||||
(PostgreSQL Server) version. Otherwise, you may experience
|
||||
strange problems.
|
||||
|
||||
Please send e-mail to yohgaki@php.net if you have comments for
|
||||
Please send e-mail to yohgaki@php.net if you have comments for
|
||||
pgsql module. I appreciate your feedback.
|
||||
|
||||
==== API Change ===
|
||||
Older PHP than 4.2.0, pg_loimport()/pg_loexport() connection
|
||||
Older PHP than 4.2.0, pg_loimport()/pg_loexport() connection
|
||||
parameter as last parameter, not like other functions. From 4.2.0,
|
||||
connection parameter became 1st parameter. Old syntax is preserved,
|
||||
connection parameter became 1st parameter. Old syntax is preserved,
|
||||
but it will raise NOTICE error message.
|
||||
|
||||
pg_connect()/pg_pconnect() has obsolete multi parameter syntax.
|
||||
This syntax will be deleted in 4.3.0 or later.
|
||||
|
||||
Omitting connectin parameter is NOT recommended. Connection
|
||||
Omitting connectin parameter is NOT recommended. Connection
|
||||
parameter may be required for future PHP version. Specify connection
|
||||
always if you don't want to rewrite code when it is changed.
|
||||
|
||||
==== Function Name Change ====
|
||||
==== Function Name Change ====
|
||||
Function names are going to be changed to confirm coding
|
||||
standard. MySQL module has been done this already. Function names will
|
||||
be changed as follows.
|
||||
@ -29,8 +29,8 @@ be changed as follows.
|
||||
pg_errormessage -> pg_error_message
|
||||
pg_cmdtuples -> pg_affected_rows
|
||||
pg_fieldnum -> pg_field_num
|
||||
and so on. Except pg_cmdtuples, under scores '_' will be added to
|
||||
names.
|
||||
and so on. Except pg_cmdtuples, under scores '_' will be added to
|
||||
names.
|
||||
|
||||
Older names will become aliases of new functions for backward
|
||||
compatibility.
|
||||
@ -39,14 +39,14 @@ Manual will be updated when this change is committed to CVS source.
|
||||
|
||||
==== Configure Option Notes ====
|
||||
You cannot specify PostgreSQL source directly to build PostgreSQL
|
||||
module with specific version. You need to install PostgreSQL
|
||||
module with specific version. You need to install PostgreSQL
|
||||
somewhere in your system to build PHP with PostgreSQL support.
|
||||
|
||||
==== Note For PostgreSQL 7.2 ====
|
||||
I've tested up to 7.2.2.
|
||||
|
||||
==== TODO List ===
|
||||
Make pg_convert() smater.
|
||||
Make pg_convert() smater.
|
||||
- Better regex
|
||||
- User defiend type support
|
||||
Support async connection.
|
||||
@ -57,7 +57,7 @@ WARNING: API/behavior may be changed without notice.
|
||||
|
||||
Async query can improve application performance
|
||||
*significantly*. Please test and report any failure to
|
||||
yohgaki@php.net
|
||||
yohgaki@php.net
|
||||
|
||||
There are some cases that async functions blocks process. Even if
|
||||
process was blocked, functions work as expected. (except it blocks
|
||||
@ -65,13 +65,13 @@ process) These are cases that process is blocked. Refer to libpq
|
||||
manual for details. Followings are common cases that async functions
|
||||
are blocked.
|
||||
|
||||
- If libpq is compile with USE_SSL, some async functions are
|
||||
- If libpq is compile with USE_SSL, some async functions are
|
||||
blocked.
|
||||
- If libpq under Win32 is *NOT* compiled with
|
||||
WIN32_NON_BLOCKING_CONNECTIONS, non-blocking connection will block.
|
||||
- If libpq under Win32 is *NOT* compiled with
|
||||
WIN32_NON_BLOCKING_CONNECTIONS, non-blocking connection will block.
|
||||
|
||||
Async function may also block if you have not retrive result and
|
||||
send or execute query. If there is result left on connection,
|
||||
Async function may also block if you have not retrive result and
|
||||
send or execute query. If there is result left on connection,
|
||||
pg_send_query() will block until last query is completed.
|
||||
|
||||
Garbages are cleaned when resource is cleaned up. There is no need to
|
||||
@ -84,7 +84,7 @@ API may be changed.
|
||||
NOTE: These functions are added in PHP 4.2.0 unless they are mentioned.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
bool pg_send_query(resource connection, string query)
|
||||
bool pg_send_query(resource connection, string query)
|
||||
|
||||
Sends async query to backend. Result may be retrieved with
|
||||
pg_get_result(). It does not accept multiple query, but it accepts
|
||||
@ -92,7 +92,7 @@ multiple queries at once. Each result may be retrieved separately by
|
||||
pg_get_result().
|
||||
|
||||
--------------------------------------------------------------------
|
||||
bool pg_cancel_query(resource connection)
|
||||
bool pg_cancel_query(resource connection)
|
||||
|
||||
Cancels currently executing async query already sent to PostgreSQL
|
||||
server. This function is useful when user request time consuming query
|
||||
@ -100,7 +100,7 @@ to server. It cannot cancel query executed by pg_exec(), since
|
||||
pg_exec() is a blocking function.
|
||||
|
||||
--------------------------------------------------------------------
|
||||
resource pg_get_result(resource conn)
|
||||
resource pg_get_result(resource conn)
|
||||
|
||||
Gets pgsql query result resource. Returned value can be fed to
|
||||
pg_result()/pg_fetch_*(). pg_get_result() may block if result is not
|
||||
@ -112,7 +112,7 @@ in connection, it returns false.
|
||||
--------------------------------------------------------------------
|
||||
bool pg_connection_busy(resource connection)
|
||||
|
||||
Returns connections is executing query or not.
|
||||
Returns connections is executing query or not.
|
||||
|
||||
--------------------------------------------------------------------
|
||||
int pg_connection_status(resource connection)
|
||||
@ -129,7 +129,7 @@ connection parameter. It's useful for error recovery.
|
||||
--------------------------------------------------------------------
|
||||
string pg_result_error(resource result)
|
||||
|
||||
Get error message associated with result
|
||||
Get error message associated with result
|
||||
|
||||
--------------------------------------------------------------------
|
||||
int pg_result_status(resource result)
|
||||
@ -166,7 +166,7 @@ Large Object Functions
|
||||
|
||||
--------------------------------------------------------------------
|
||||
int pg_lo_tell(resource large_object)
|
||||
Returns current position of large object
|
||||
Returns current position of large object
|
||||
|
||||
--------------------------------------------------------------------
|
||||
bool pg_lo_lseek(resource large_object, int offset[, int whence])
|
||||
@ -179,7 +179,7 @@ Notice message function
|
||||
--------------------------------------------------------------------
|
||||
|
||||
string pg_last_notice(resource connection)
|
||||
Returns the last notice set by the backend
|
||||
Returns the last notice set by the backend
|
||||
|
||||
This function is fully implemed in only in current CVS version.
|
||||
PHP 4.3.0 supposed to included fully implemented version.
|
||||
@ -201,35 +201,35 @@ array pg_convert(resource db, string table, array values)
|
||||
|
||||
--------------------------------------------------------------------
|
||||
bool pg_insert(resource db, string table, array values[, bool convert[, bool async]])
|
||||
Insert values (filed=>value) to table
|
||||
Insert values (filed=>value) to table
|
||||
|
||||
--------------------------------------------------------------------
|
||||
bool pg_update(resource db, string table, array fields, array ids[, bool convert[, bool async]])
|
||||
Update table using values (field=>value) and ids (id=>value)
|
||||
Update table using values (field=>value) and ids (id=>value)
|
||||
|
||||
--------------------------------------------------------------------
|
||||
bool pg_delete(resource db, string table, array ids[, bool convert[, bool async]])
|
||||
Delete records has ids (id=>value)
|
||||
Delete records has ids (id=>value)
|
||||
|
||||
--------------------------------------------------------------------
|
||||
array pg_select(resource db, string table, array ids[, bool convert])
|
||||
Select records that has ids (id=>value)
|
||||
Select records that has ids (id=>value)
|
||||
|
||||
--------------------------------------------------------------------
|
||||
array pg_get_notify([resource db[, notify]])
|
||||
Get notify message on the connection
|
||||
Get notify message on the connection
|
||||
|
||||
--------------------------------------------------------------------
|
||||
string pg_unescape_bytea(string bytea_data)
|
||||
Unescape bytea field data
|
||||
Unescape bytea field data
|
||||
|
||||
--------------------------------------------------------------------
|
||||
bool pg_ping(resource db)
|
||||
ping database connection and try to reset connection if it's
|
||||
broken
|
||||
broken
|
||||
|
||||
-------------------------------------------------------------------
|
||||
|
||||
Again, experimental functions are subject to be changed without
|
||||
Again, experimental functions are subject to be changed without
|
||||
notice.
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* File: mysql_users.php
|
||||
* Author: Yasuo Ohgaki <yohgaki@php.net>
|
||||
*
|
||||
*
|
||||
* This file contains example user defined functions that does
|
||||
* similar to MySQL functions. They can be implemented as module
|
||||
* functions, but there won't be many users need them.
|
||||
@ -12,11 +12,11 @@
|
||||
|
||||
/*
|
||||
* mysql_list_dbs()
|
||||
*
|
||||
* This function should be needed, since PostgreSQL connection
|
||||
*
|
||||
* This function should be needed, since PostgreSQL connection
|
||||
* binds database.
|
||||
*/
|
||||
function pg_list_dbs($db)
|
||||
function pg_list_dbs($db)
|
||||
{
|
||||
assert(is_resource($db));
|
||||
$query = '
|
||||
@ -24,7 +24,7 @@ SELECT
|
||||
d.datname as "Name",
|
||||
u.usename as "Owner",
|
||||
pg_encoding_to_char(d.encoding) as "Encoding"
|
||||
FROM
|
||||
FROM
|
||||
pg_database d LEFT JOIN pg_user u ON d.datdba = u.usesysid
|
||||
ORDER BY 1;
|
||||
';
|
||||
@ -35,7 +35,7 @@ ORDER BY 1;
|
||||
/*
|
||||
* mysql_list_tables()
|
||||
*/
|
||||
function pg_list_tables($db)
|
||||
function pg_list_tables($db)
|
||||
{
|
||||
assert(is_resource($db));
|
||||
$query = "
|
||||
@ -58,7 +58,7 @@ ORDER BY 1;
|
||||
*
|
||||
* See also pg_meta_data(). It returns field definition as array.
|
||||
*/
|
||||
function pg_list_fields($db, $table)
|
||||
function pg_list_fields($db, $table)
|
||||
{
|
||||
assert(is_resource($db));
|
||||
$query = "
|
||||
|
@ -1,15 +1,15 @@
|
||||
Test scripts assumes:
|
||||
Test scripts assumes:
|
||||
- PostgreSQL server is installed locally
|
||||
- there is a PostgreSQL account for the users running the test scripts
|
||||
- there is database named "test"
|
||||
|
||||
For instance, if your login name is 'testuser', you should have PostgreSQL
|
||||
user account named 'testuser' and grant that user access to the database
|
||||
For instance, if your login name is 'testuser', you should have PostgreSQL
|
||||
user account named 'testuser' and grant that user access to the database
|
||||
'test'.
|
||||
|
||||
If you have account and database, type "createdb test" from command prompt
|
||||
to create the database to execute the test scripts. By executing the above
|
||||
command as the same user running the tests you ensure that the user is
|
||||
If you have account and database, type "createdb test" from command prompt
|
||||
to create the database to execute the test scripts. By executing the above
|
||||
command as the same user running the tests you ensure that the user is
|
||||
granted access to the database.
|
||||
|
||||
If you find problems in PostgreSQL module, please mail to
|
||||
|
@ -21,9 +21,9 @@ define ____print_pharht
|
||||
set $temp = *(phar_archive_data*)$p->pDataPtr
|
||||
____print_str $temp.fname $temp.fname_len
|
||||
printf " => "
|
||||
|
||||
|
||||
if $arg1 == 0
|
||||
|
||||
|
||||
printf "%i (alias ", $temp.refcount
|
||||
____print_str $temp.alias $temp.alias_len
|
||||
printf ")\n"
|
||||
|
@ -11,7 +11,7 @@ file called a "phar" (PHP Archive) for easy distribution and installation.
|
||||
.P
|
||||
With the \fBphar\fP command you can create, update or extract PHP archives.
|
||||
.P
|
||||
Commands:
|
||||
Commands:
|
||||
add compress delete extract help help-list info list meta-del
|
||||
meta-get meta-set pack sign stub-get stub-set tree version
|
||||
|
||||
@ -39,7 +39,7 @@ Provide an \fIalias\fP name for the phar file.
|
||||
.TP
|
||||
.PD
|
||||
.B \-c \fIalgo\fP
|
||||
Compression algorithm (see
|
||||
Compression algorithm (see
|
||||
.SM
|
||||
.B COMPRESSION
|
||||
)
|
||||
@ -63,7 +63,7 @@ Required arguments:
|
||||
.TP 15
|
||||
.PD
|
||||
.B \-c \fIalgo\fP
|
||||
Compression algorithm (see
|
||||
Compression algorithm (see
|
||||
.SM
|
||||
.B COMPRESSION
|
||||
)
|
||||
@ -280,14 +280,14 @@ The hash mark itself '#!' and the newline character are optional.
|
||||
.TP
|
||||
.PD
|
||||
.B \-c \fIalgo\fP
|
||||
Compression algorithm (see
|
||||
Compression algorithm (see
|
||||
.SM
|
||||
.B COMPRESSION
|
||||
)
|
||||
.TP
|
||||
.PD
|
||||
.B \-h \fIhash\fP
|
||||
Selects the \fIhash\fP algorithm (see
|
||||
Selects the \fIhash\fP algorithm (see
|
||||
.SM
|
||||
.B HASH
|
||||
)
|
||||
@ -336,7 +336,7 @@ Specifies the phar \fIfile\fP to work on.
|
||||
.TP
|
||||
.PD
|
||||
.B \-h \fIhash\fP
|
||||
Selects the \fIhash\fP algorithm (see
|
||||
Selects the \fIhash\fP algorithm (see
|
||||
.SM
|
||||
.B HASH
|
||||
)
|
||||
@ -502,7 +502,7 @@ A List of active developers can be found here:
|
||||
.B http://www.php.net/credits.php
|
||||
.PD 1
|
||||
.P
|
||||
And last but not least PHP was developed with the help of a huge amount of
|
||||
And last but not least PHP was developed with the help of a huge amount of
|
||||
contributors all around the world.
|
||||
.SH VERSION INFORMATION
|
||||
This manpage describes \fBphar\fP, version @PHP_VERSION@.
|
||||
|
@ -127,7 +127,7 @@ class Extract_Phar
|
||||
} while (strlen($last) && strlen($m) < $L[1]);
|
||||
|
||||
if (strlen($m) < $L[1]) {
|
||||
die('ERROR: manifest length read was "' .
|
||||
die('ERROR: manifest length read was "' .
|
||||
strlen($m) .'" should be "' .
|
||||
$L[1] . '"');
|
||||
}
|
||||
|
@ -43,9 +43,9 @@ pspell_new() and specifying the custom dictionary as the first parameter.
|
||||
The parameter probably should begin with '/' because otherwise it will
|
||||
be relative to $HOME, which is probably set to "/root". This is probably not
|
||||
what you want because you need write access for nobody to be able to write
|
||||
to a dictionary. Once the dictionary is open, you can use
|
||||
pspell_add_to_personal() to add words to the wordlist and finally
|
||||
pspell_save_wordlist() to save it.
|
||||
to a dictionary. Once the dictionary is open, you can use
|
||||
pspell_add_to_personal() to add words to the wordlist and finally
|
||||
pspell_save_wordlist() to save it.
|
||||
|
||||
Note that at this moment pspell_save_wordlist() will return TRUE, even if
|
||||
there was an error. This will be changed once pspell library is fixed.
|
@ -8,7 +8,7 @@ IF _%1_==_AUTO_ (
|
||||
IF _%2_==__ (
|
||||
ECHO Usage %0 ^<basedir^> ^<depth^> ^[^hash_bits^]
|
||||
ECHO.
|
||||
ECHO Where ^<basedir^> is the session directory
|
||||
ECHO Where ^<basedir^> is the session directory
|
||||
ECHO ^<depth^> is the number of levels defined in session.save_path
|
||||
ECHO ^[hash_bits^] is the number of bits defined in session.hash_bits_per_character
|
||||
EXIT /B 1
|
||||
|
@ -9,32 +9,32 @@ Shared Memory Operations Extension to PHP
|
||||
offers high level features which are extremely bothersome for basic SHM
|
||||
we had in mind. After spending a day trying to reverse engineer and figure
|
||||
out the format of sysvshm we decided that it would be much easier to
|
||||
add our own extension to php for simple SHM operations, we were right :)).
|
||||
add our own extension to php for simple SHM operations, we were right :)).
|
||||
|
||||
the functions are:
|
||||
|
||||
|
||||
int shmop_open(int key, string flags, int mode, int size)
|
||||
|
||||
|
||||
key - the key of/for the shared memory block
|
||||
flags - 4 flags are avalible
|
||||
flags - 4 flags are avalible
|
||||
a for read only access (sets SHM_RDONLY)
|
||||
w for read & write access
|
||||
c create or open an existing segment (sets IPC_CREATE)
|
||||
n create a new segment and fail if one already exists under same name (sets IPC_CREATE|IPC_EXCL)
|
||||
(the n flag is mostly useful for security perpouses, so that you don't end up opening a faked segment
|
||||
(the n flag is mostly useful for security perpouses, so that you don't end up opening a faked segment
|
||||
if someone guesses your key)
|
||||
mode - acsess mode same as for a file (0644) for example
|
||||
size - size of the block in bytes
|
||||
|
||||
|
||||
returns an identifier
|
||||
|
||||
|
||||
|
||||
char shmop_read(int shmid, int start, int count)
|
||||
|
||||
shmid - shmid from which to read
|
||||
start - offset from which to start reading
|
||||
count - how many bytes to read
|
||||
|
||||
|
||||
returns the data read
|
||||
|
||||
int shmop_write(int shmid, string data, int offset)
|
||||
@ -42,28 +42,28 @@ int shmop_write(int shmid, string data, int offset)
|
||||
shmid - shmid from which to read
|
||||
data - string to put into shared memory
|
||||
offset - offset in shm to write from
|
||||
|
||||
|
||||
returns bytes written
|
||||
|
||||
|
||||
int shmop_size(int shmid)
|
||||
|
||||
shmid - shmid for which to return the size
|
||||
|
||||
|
||||
returns the size in bytes of the shm segment
|
||||
|
||||
|
||||
|
||||
|
||||
int shmop_delete(int shmid)
|
||||
|
||||
marks the segment for deletion, the segment will be deleted when all processes mapping it will detach
|
||||
|
||||
shmid - shmid which to mark for deletion
|
||||
|
||||
|
||||
returns 1 if all ok, zero on failure
|
||||
|
||||
|
||||
int shmop_close(int shmid)
|
||||
|
||||
shmid - shmid which to close
|
||||
|
||||
returns zero
|
||||
|
||||
|
||||
returns zero
|
||||
|
||||
|
||||
|
@ -8,12 +8,12 @@ SimpleXML objects follow four basic rules:
|
||||
4) string conversion allows to access TEXT data
|
||||
|
||||
When iterating properties then the extension always iterates over
|
||||
all nodes with that element name. Thus method children() must be
|
||||
all nodes with that element name. Thus method children() must be
|
||||
called to iterate over subnodes. But also doing the following:
|
||||
foreach ($obj->node_name as $elem) {
|
||||
// do something with $elem
|
||||
}
|
||||
always results in iteration of 'node_name' elements. So no further
|
||||
always results in iteration of 'node_name' elements. So no further
|
||||
check is needed to distinguish the number of nodes of that type.
|
||||
|
||||
When an elements TEXT data is being accessed through a property
|
||||
@ -29,6 +29,6 @@ TODO
|
||||
====
|
||||
|
||||
At the moment property access to multiple elements of the same
|
||||
name returns an array of SimpleXML objects. This should be an
|
||||
name returns an array of SimpleXML objects. This should be an
|
||||
object of a new type instead so that all kinds of linkage,
|
||||
assignment and deleting would work.
|
||||
|
@ -14,4 +14,4 @@
|
||||
</elem3>
|
||||
</elem2>
|
||||
</elem1>
|
||||
</sxe>
|
||||
</sxe>
|
@ -14,4 +14,4 @@
|
||||
</elem3>
|
||||
</elem2>
|
||||
</elem1>
|
||||
</sxe>
|
||||
</sxe>
|
@ -61,7 +61,7 @@ if test "$PHP_%EXTNAMECAPS%" != "no"; then
|
||||
|
||||
dnl # --with-%EXTNAME% -> check for lib and symbol presence
|
||||
dnl LIBNAME=%EXTNAMECAPS% # you may want to change this
|
||||
dnl LIBSYMBOL=%EXTNAMECAPS% # you most likely want to change this
|
||||
dnl LIBSYMBOL=%EXTNAMECAPS% # you most likely want to change this
|
||||
|
||||
dnl PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL,
|
||||
dnl [
|
||||
|
@ -31,7 +31,7 @@ On Linux/FreeBSD
|
||||
- Install package net-snmpd (name may differ based on your distribution).
|
||||
- Replace config file (by default this is /etc/snmp/snmpd.conf on Linux and
|
||||
/usr/local/etc/snmp/snmpd.conf on FreeBSD) with snmpd.conf supplied.
|
||||
|
||||
|
||||
Before launching daemon make sure that there is no file /var/net-snmp/snmpd.conf
|
||||
Delete it if exists. Ingoring to to so will fail SNMPv3 tests.
|
||||
|
||||
|
@ -198,7 +198,7 @@ class Interop_Client
|
||||
} else
|
||||
if (!$all) $sql .= "where status=1";
|
||||
$sql .= " order by endpointName";
|
||||
|
||||
|
||||
|
||||
$db_ep = $this->dbc->getAll($sql,NULL, DB_FETCHMODE_ASSOC );
|
||||
if (DB::isError($db_ep)) {
|
||||
@ -261,7 +261,7 @@ class Interop_Client
|
||||
$success = $result['fault']->faultcode;
|
||||
$pos = strpos($success,':');
|
||||
if ($pos !== false) {
|
||||
$success = substr($success,$pos+1);
|
||||
$success = substr($success,$pos+1);
|
||||
}
|
||||
$error = $result['fault']->faultstring;
|
||||
if (!$wire) $wire= $result['fault']->detail;
|
||||
@ -450,7 +450,7 @@ try {
|
||||
// compare header results
|
||||
$headers_ok = TRUE;
|
||||
if ($soap_test->headers || $soap_test->headers_expect) {
|
||||
$headers_ok = $this->compareResult($soap_test->headers_expect, $result_headers);
|
||||
$headers_ok = $this->compareResult($soap_test->headers_expect, $result_headers);
|
||||
}
|
||||
|
||||
# we need to decode what we sent so we can compare!
|
||||
@ -512,7 +512,7 @@ try {
|
||||
$res =$fault->faultcode;
|
||||
$pos = strpos($res,':');
|
||||
if ($pos !== false) {
|
||||
$res = substr($res,$pos+1);
|
||||
$res = substr($res,$pos+1);
|
||||
}
|
||||
}
|
||||
// save the wire
|
||||
|
@ -106,7 +106,7 @@ class SOAP_Test {
|
||||
$res = $fault->faultcode;
|
||||
$pos = strpos($res,':');
|
||||
if ($pos !== false) {
|
||||
$res = substr($res,$pos+1);
|
||||
$res = substr($res,$pos+1);
|
||||
}
|
||||
if ($html) {
|
||||
print "<font color=\"#ff0000\">FAILED: [$res] {$fault->faultstring}</font>\n";
|
||||
|
@ -1,7 +1,7 @@
|
||||
This is an extension that aims to implement some efficient data access
|
||||
This is an extension that aims to implement some efficient data access
|
||||
interfaces and classes. You'll find the classes documented using php
|
||||
code in the file spl.php or in the corresponding .inc file in the examples
|
||||
subdirectory. Based on the internal implementations or the files in the
|
||||
subdirectory. Based on the internal implementations or the files in the
|
||||
examples subdirectory there are also some .php files to experiment with.
|
||||
|
||||
For more information look at: http://php.net/manual/en/book.spl.php
|
||||
|
@ -11,7 +11,7 @@
|
||||
* If \<value\> is specified then \<key\> is set to \<value\> in \<file\>.
|
||||
* Else the value of \<key\> is printed only.
|
||||
*
|
||||
* Note: configure with --enable-dba
|
||||
* Note: configure with --enable-dba
|
||||
*/
|
||||
|
||||
if ($argc < 4) {
|
||||
|
@ -11,7 +11,7 @@
|
||||
* Show all groups in the ini file specified by \<file\>.
|
||||
* The regular expression \<regex\> is used to filter the by setting name.
|
||||
*
|
||||
* Note: configure with --enable-dba
|
||||
* Note: configure with --enable-dba
|
||||
*/
|
||||
|
||||
if ($argc < 3) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
|
||||
|
||||
/** @file findregex.php
|
||||
* @brief Program Find a specific file by name.
|
||||
* @ingroup Examples
|
||||
@ -33,4 +33,4 @@ foreach(new RegexFindFile($argv[1], $argv[2]) as $file)
|
||||
echo $file->getPathname()."\n";
|
||||
}
|
||||
|
||||
?>
|
||||
?>
|
@ -11,7 +11,7 @@
|
||||
* Show all groups in the ini file specified by \<file\>.
|
||||
* The regular expression \<regex\> is used to filter the result.
|
||||
*
|
||||
* Note: configure with --enable-dba
|
||||
* Note: configure with --enable-dba
|
||||
*/
|
||||
|
||||
if ($argc < 2) {
|
||||
|
@ -9,7 +9,7 @@
|
||||
*
|
||||
* Usage: php phar_create_from_dir.php \<archive\> \<directory\> [\<regex\>]
|
||||
*
|
||||
* Create phar archive \<archive\> using entries from \<directory\> that
|
||||
* Create phar archive \<archive\> using entries from \<directory\> that
|
||||
* optionally match \<regex\>.
|
||||
*/
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -188,10 +188,10 @@ foreach ($encodings as $e) {
|
||||
if (preg_match("/^0x([0-9A-Z]{2})\t0x([0-9A-Z]{2,})/i", $l, $matches))
|
||||
$map[] = array($matches[1], $matches[2]);
|
||||
}
|
||||
|
||||
|
||||
$mappy = array();
|
||||
foreach ($map as $v) { $mappy[hexdec($v[0])] = hexdec($v[1]); }
|
||||
|
||||
|
||||
$mstable = array("ident" => $e['ident']);
|
||||
/* calculate two-stage tables */
|
||||
for ($i = 0; $i < 4; $i++) {
|
||||
@ -200,7 +200,7 @@ foreach ($encodings as $e) {
|
||||
$mstable[$i][$j] = isset($mappy[$cp]) ? $mappy[$cp] : NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
echo
|
||||
"/* {{{ Stage 2 tables for {$e['name']} */\n\n";
|
||||
|
||||
@ -210,9 +210,9 @@ foreach ($encodings as $e) {
|
||||
$s2tables_idents[$i] = $encodings[$t[0]/5]["ident"];
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
$s2tables_idents[$i] = $e["ident"];
|
||||
|
||||
|
||||
echo "static const enc_to_uni_stage2 enc_to_uni_s2_{$e['ident']}_".
|
||||
sprintf("%02X", $i << 6)." = { {\n";
|
||||
for ($j = 0; $j < 64; $j++) {
|
||||
@ -225,10 +225,10 @@ foreach ($encodings as $e) {
|
||||
echo "0xFFFF,"; /* special value; indicates no mapping */
|
||||
}
|
||||
echo "\n} };\n\n";
|
||||
|
||||
|
||||
$prevStage2[] = $mstable[$i];
|
||||
}
|
||||
|
||||
|
||||
echo
|
||||
"/* end of stage 2 tables for {$e['name']} }}} */\n\n";
|
||||
|
||||
@ -331,23 +331,23 @@ foreach ($encodings as $e) {
|
||||
if (preg_match("/^0x([0-9A-Z]{2})\t0x([0-9A-Z]{2,})\s+#\s*(.*)$/i", $l, $matches))
|
||||
$map[] = array($matches[1], $matches[2], rtrim($matches[3]));
|
||||
}
|
||||
|
||||
|
||||
$mappy = array();
|
||||
foreach ($map as $v) {
|
||||
if (hexdec($v[0]) >= $e['range'][0] && hexdec($v[0]) <= $e['range'][1])
|
||||
$mappy[hexdec($v[1])] = array(hexdec($v[0]), strtolower($v[2]));
|
||||
}
|
||||
ksort($mappy);
|
||||
|
||||
|
||||
echo
|
||||
"static const uni_to_enc unimap_{$e['ident']}[] = {\n";
|
||||
|
||||
|
||||
foreach ($mappy as $k => $v) {
|
||||
echo "\t{ ", sprintf("0x%04X", $k), ", ", sprintf("0x%02X", $v[0]), " },\t/* ",
|
||||
$v[1], " */\n";
|
||||
}
|
||||
echo "};\n";
|
||||
|
||||
|
||||
echo
|
||||
"/* {{{ end of mappings *from* Unicode for {$e['name']} */\n\n";
|
||||
}
|
||||
@ -474,7 +474,7 @@ foreach ($multicp_rows as $k => $v) {
|
||||
$v['default'] = "gt";
|
||||
echo "\t{ {", sprintf("\"%-21s", $v["default"].'",'),
|
||||
"\t", sprintf("%02d", (count($v) - 1)), ",\t\t",
|
||||
sprintf("% 2d", strlen($v["default"])), '} },', "\n";
|
||||
sprintf("% 2d", strlen($v["default"])), '} },', "\n";
|
||||
} else {
|
||||
echo "\t{ {", sprintf("%-22s", 'NULL,'),
|
||||
"\t", sprintf("%02d", count($v)), ",\t\t0} },\n";
|
||||
@ -482,7 +482,7 @@ foreach ($multicp_rows as $k => $v) {
|
||||
unset($v["default"]);
|
||||
foreach ($v as $l => $w) {
|
||||
echo "\t{ {", sprintf("\"%-21s", $w.'",'), "\t", sprintf("0x%05s", $l), ",\t",
|
||||
sprintf("% 2d", strlen($w)), '} },', "\n";
|
||||
sprintf("% 2d", strlen($w)), '} },', "\n";
|
||||
}
|
||||
echo "};\n";
|
||||
}
|
||||
@ -559,7 +559,7 @@ for ($i = 0; $i < 0x1E; $i++) {
|
||||
else
|
||||
echo "{1, { {(void *)", sprintf("multi_cp_{$ident}_%05X",
|
||||
($i << 12) | ($k << 6) | $y ), ", 0} } },";
|
||||
|
||||
|
||||
}
|
||||
echo "\n};\n\n";
|
||||
}
|
||||
@ -683,7 +683,7 @@ echo
|
||||
// die("violated assumption for traverse_for_entities");
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//
|
||||
// $k++;
|
||||
//}
|
||||
//echo "\n};\n\n";
|
||||
|
@ -144,7 +144,7 @@ PHPAPI int strnatcmp_ex(char const *a, size_t a_len, char const *b, size_t b_len
|
||||
else if (ap == aend)
|
||||
return -1;
|
||||
else if (bp == bend)
|
||||
return 1;
|
||||
return 1;
|
||||
else {
|
||||
/* Keep on comparing from the current point. */
|
||||
ca = *ap; cb = *bp;
|
||||
|
@ -1,4 +1,4 @@
|
||||
; This file is named 0.ini so it should be the first line of
|
||||
; This file is named 0.ini so it should be the first line of
|
||||
; any scanned ini output
|
||||
|
||||
date.timezone = Antarctica/McMurdo
|
@ -1,5 +1,5 @@
|
||||
XMLReader represents a reader that provides non-cached,
|
||||
forward-only access to XML data. It is based upon the
|
||||
XMLReader represents a reader that provides non-cached,
|
||||
forward-only access to XML data. It is based upon the
|
||||
xmlTextReader api from libxml
|
||||
|
||||
This extension is designed to only work under PHP 5+.
|
||||
|
@ -1,5 +1,5 @@
|
||||
this extension is experimental,
|
||||
its functions may change their names
|
||||
or move to extension all together
|
||||
so do not rely to much on them
|
||||
its functions may change their names
|
||||
or move to extension all together
|
||||
so do not rely to much on them
|
||||
you have been warned!
|
||||
|
@ -1,4 +1,4 @@
|
||||
AC_DEFUN([XMLRPC_CHECKS],[
|
||||
AC_DEFUN([XMLRPC_CHECKS],[
|
||||
|
||||
AC_REQUIRE([AC_PROG_CC])
|
||||
AC_REQUIRE([AC_PROG_LN_S])
|
||||
|
@ -40,7 +40,7 @@ if (PHP_XSL != "no") {
|
||||
ADD_FLAG("LDFLAGS_XSL", "/nodefaultlib:msvcrt");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} else {
|
||||
WARNING("xsl not enabled; libraries and headers not found");
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user