2 Commits

Autor SHA1 Mensagem Data
hermanv b74a0da062 Add support for UTS #46, along the lines of Zend, to idn_to_ascii.
Removes the output errorCode parameter (that is not currently used anywhere, except in testing code that gets but ignores it). Adds the options, variant and
idna_info parameters that are present in the Zend version of idn_to_ascii. Implement the new functionality required by these parameters by using the UTS #46 API, if
present.
2013-02-19 07:48:43 -08:00
ptarjan e663cfb0fd make test filters consistent
Summary:
Here are all the lines in filters: https://phabricator.fb.com/P1981345

About 1/2 of them are removing the path. I thought about doing it by default but the easiest still seemed like an opt-in symlink. I re-used another script someone else wrote so if it misses some edge case lets just fix that script. I don't like the name of it since it is hard to remembrer what to symlink, but I guess ##ls##ing isn't too bad.

Done with:

    grep -l "^sed -e 's/[\]/\.\*hphp/hphp/g'$" * | xargs -I{} ln -sf filepath.filter {}
    grep -l "^sed -e 's, in \[^ \]\*hphp/, in hphp/,'$" * | xargs -I{} ln -sf filepath.filter {}
    grep -l "^sed -e 's/in [\]/\.\*hphp/in hphp/g'$" * | xargs -I{} ln -sf filepath.filter {}
    grep -l "^sed -e 's, \[^ \]\*hphp/, hphp/,g'$" * | xargs -I{} ln -sf filepath.filter {}
    grep -l "^sed -e 's/ in [\]/\.\*hphp\.\*$//g'$" * | xargs -I{} ln -sf filepath.filter {}
    grep -l "^sed -e 's, \[^ \]\*\(hphp/\.\*[\])\$, [\]1,g'$" * | xargs -I{} ln -sf filepath.filter {}
    grep -l "^sed -e 's, \[^ \]\*[\](hphp/\.\*[\])\$, [\]1,g'$" * | xargs -I{} ln -sf filepath.filter {}

then i did the rest by hand with:

    vim `find . -type f -name '*.filter'`

and then took all the test output as gospel (after looking it over of course):

    for i in `ls *.out`; do j=`echo $i | sed s/out/exp/`; mv $i $j; done

Test Plan:
make verify_quick

  $ grep sed `find . -type f -name '*.filter' ` | grep -v filepath
  ./closure.filter:sed -r -e 's,(Closure\$)([^$]*\$){3}[0-9_]*,\1,g'
  ./backup_cycle_collector.php.filter:exec sed -e 's/cpu\ time.*//g'
  ./perfctr.php.filter:sed -e '/int(.*/d'
  ./reflection.php.filter:sed -e 's/^\([ ]*object([^)]\+)\)#[0-9]\+/\1/g' | sed -e 's/^string.*"\/.*hphp/"hphp/g'
  ./Setprofile.php.filter:sed -e 's/.*hphp\//hphp\//g' -e 's/.*systemlib.*//g' -e 's/string(..) "[0-9]\+_[0-9]\+"/string() "XX_X"/'
  ./builtin_call.php.filter:sed -e '/SlowTimer/d'
  ./serialize.php.filter:sed -e 's/^\(object([^)]\+)\)#[0-9]\+/\1/g'
  ./properties.php.filter:sed -e 's/^\(object([^)]\+)\)#[0-9]\+/\1/g'
  ./PropU.php.filter:sed -e 's/^\(object([^)]\+)\)#[0-9]\+/\1/g'
  ./destructed_this.php.filter:exec sed -e's/.*string.*//g'
  ./bitop_types.php.filter:sed -e 's,to int in string on line [0-9]*,to int,g'
  ./debug_backtrace.php.filter:sed -e 's/string(.*) ".*\/hphp/string() "hphp/g'
  ./resurrect.php.filter:sed -e 's/^\(object([^)]\+)\)#[0-9]\+/\1/g'
  ./objiter.php.filter:sed -e 's/^\(object([^)]\+)\)#[0-9]\+/\1/g'
  ./magic-get-set.php.filter:sed -e 's/^\(object([^)]\+)\)#[0-9]\+/\1/g'
  ./clone.php.filter:sed -e 's/^\(object([^)]\+)\)#[0-9]\+/\1/g'
  ./setprofile_throw.php.filter:exec sed -e 's/hook threw.*//g'

Reviewers: jdelong, andrewparoski, mwilliams

Reviewed By: mwilliams

CC: hphp-diffs@lists, ps, mwilliams, ottoni, smith

Differential Revision: https://phabricator.fb.com/D708806
2013-02-19 07:02:21 -08:00
206 arquivos alterados com 642 adições e 605 exclusões
+70 -6
Ver Arquivo
@@ -90,6 +90,71 @@ be located by the compiled program at runtime, perhaps with ldconfig or any
other ways.
<h2>How to modify existing non-separable extension functions/classes</h2>
All commands and directories are from src/ in this guide.
1. Update IDL
Change the function/class prototypes in the corresponding IDL file.
Follow existing ones for formats. Most of them are straightforward.
Possible types are listed in idl/base.php.
NOTE regarding the "NeedsActRec" flag:
A function that examines the state of the current or previous
frames in its call stack must have the "NeedsActRec" flag set
in its "flags" field. Examples of use of the frame state include
examining the arguments of the function, looking up the invocation
context for the function (e.g., for permissions check), etc.
2. Update headers and implementation.
Edit runtime/ext/ext_[name].h and runtime/ext/ext_[name].cpp to
reflect the desired modifications in signature and behavior.
3. Auto-generate files from IDL
Run
EXT=[name] make -C idl update
For example,
EXT=string make -C idl update
This will modify several files with the new signatures.
4. Unit tests
The "EXT=name make -C idl update" does the following for test files:
creates test/test_ext_[name].h -- entry points for this unit test, don't modify
updates test/test_ext.inc -- to invoke the test, don't modify
creates idl/test_ext_[name].cpp -- A template to be modified.
You can probably delete these and modify the existing unit tests.
5. Compile the php to c compiler (so that we can use it to bootstrap hhvm)
make -j (if you compile using make) (unset USE_HHVM)
or
fbconfig -r hphp (if you haven't done so already)
fbmake --fast dbg -j (if you compile using fbmake)
6. Use the new php compiler to generate the marshalling code
make -C system (if you compile using make)
or
./tools/remake_system.sh (if you use fbmake)
7. Compile hhvm
make -j (if you compile using make) (export USE_HHVM=1)
or
fbmake --fast dbg -j (if you compile using fbmake)
<h2>How to add new non-separable extension functions/classes</h2>
All commands and directories are from src/ in this guide.
@@ -162,14 +227,13 @@ unit test function like this,
void TestExt[Name]::test_ext_[function] () { ... }
6. How to modify existing extension functions/classes
Modify the IDL file. Then run
6. After compiling once, do this to update the compiler with the latest functions:
EXT=existing make -C idl update
make -C system (if you compile using make)
Follow all steps after step 3 at above.
or
./tools/remake_system.sh (if you use fbmake)
7. After compiling once, do this to update compiler with the latest functions:
make -C system
+43 -6
Ver Arquivo
@@ -390,10 +390,22 @@ DefineFunction(
'desc' => "Domain to convert. In PHP 5 must be UTF-8 encoded.",
),
array(
'name' => "errorcode",
'name' => "options",
'type' => Int64,
'value' => "0",
'desc' => "Conversion options - combination of IDNA_* constants (except IDNA_ERROR_* constants). ",
),
array(
'name' => "variant",
'type' => Int64,
'value' => "0",
'desc' => "Either INTL_IDNA_VARIANT_2003 for IDNA 2003 or INTL_IDNA_VARIANT_UTS46 for UTS #46.",
),
array(
'name' => "idna_info",
'type' => Variant | Reference,
'value' => "null",
'desc' => "Conversion options - combination of IDNA_* constants.",
'desc' => "This parameter can be used only if INTL_IDNA_VARIANT_UTS46 was used for variant. In that case, it will be filled with an array with the keys 'result', the possibly illegal result of the transformation, 'isTransitionalDifferent', a boolean indicating whether the usage of the transitional mechanisms of UTS #46 either has or would have changed the result and 'errors', which is an int representing a bitset of the error constants IDNA_ERROR_*. ",
),
),
'taint_observer' => array(
@@ -415,9 +427,22 @@ DefineFunction(
'type' => String,
),
array(
'name' => "errorcode",
'name' => "options",
'type' => Int64,
'value' => "0",
'desc' => "Conversion options - combination of IDNA_* constants (except IDNA_ERROR_* constants). ",
),
array(
'name' => "variant",
'type' => Int64,
'value' => "0",
'desc' => "Either INTL_IDNA_VARIANT_2003 for IDNA 2003 or INTL_IDNA_VARIANT_UTS46 for UTS #46.",
),
array(
'name' => "idna_info",
'type' => Variant | Reference,
'value' => "null",
'desc' => "This parameter can be used only if INTL_IDNA_VARIANT_UTS46 was used for variant. In that case, it will be filled with an array with the keys 'result', the possibly illegal result of the transformation, 'isTransitionalDifferent', a boolean indicating whether the usage of the transitional mechanisms of UTS #46 either has or would have changed the result and 'errors', which is an int representing a bitset of the error constants IDNA_ERROR_*. ",
),
),
'taint_observer' => array(
@@ -442,10 +467,22 @@ DefineFunction(
'desc' => "Domain to convert in IDNA ASCII-compatible format.",
),
array(
'name' => "errorcode",
'name' => "options",
'type' => Int64,
'value' => "0",
'desc' => "Conversion options - combination of IDNA_* constants (except IDNA_ERROR_* constants). ",
),
array(
'name' => "variant",
'type' => Int64,
'value' => "0",
'desc' => "Either INTL_IDNA_VARIANT_2003 for IDNA 2003 or INTL_IDNA_VARIANT_UTS46 for UTS #46.",
),
array(
'name' => "idna_info",
'type' => Variant | Reference,
'value' => "null",
'desc' => "Conversion options - combination of IDNA_* constants.",
'desc' => "This parameter can be used only if INTL_IDNA_VARIANT_UTS46 was used for variant. In that case, it will be filled with an array with the keys 'result', the possibly illegal result of the transformation, 'isTransitionalDifferent', a boolean indicating whether the usage of the transitional mechanisms of UTS #46 either has or would have changed the result and 'errors', which is an int representing a bitset of the error constants IDNA_ERROR_*. ",
),
),
'taint_observer' => array(
@@ -825,7 +862,7 @@ DefineFunction(
DefineFunction(
array(
'name' => "setstrength",
'desc' => "Procedural style bool collator_set_strength ( Collator \$coll , int \$strength ) The » ICU Collation Service supports many levels of comparison (named \"Levels\", but also known as \"Strengths\"). Having these categories enables ICU to sort strings precisely according to local conventions. However, by allowing the levels to be selectively employed, searching for a string in text can be performed with various matching conditions.\n\n\n\nPrimary Level: Typically, this is used to denote differences between base characters (for example, \"a\" < \"b\"). It is the strongest difference. For example, dictionaries are divided into different sections by base character. This is also called the level1 strength.\n\nSecondary Level: Accents in the characters are considered secondary differences (for example, \"as\" < \"às\" < \"at\"). Other differences between letters can also be considered secondary differences, depending on the language. A secondary difference is ignored when there is a primary difference anywhere in the strings. This is also called the level2 strength.\n\nNote: In some languages (such as Danish), certain accented letters are considered to be separate base characters. In most languages, however, an accented letter only has a secondary difference from the unaccented version of that letter.\n\nTertiary Level: Upper and lower case differences in characters are distinguished at the tertiary level (for example, \"ao\" < \"Ao\" < \"aò\"). In addition, a variant of a letter differs from the base form on the tertiary level (such as \"A\" and \" \"). Another example is the difference between large and small Kana. A tertiary difference is ignored when there is a primary or secondary difference anywhere in the strings. This is also called the level3 strength.\n\nQuaternary Level: When punctuation is ignored (see Ignoring Punctuations ) at level 13, an additional level can be used to distinguish words with and without punctuation (for example, \"ab\" < \"a-b\" < \"aB\"). This difference is ignored when there is a primary, secondary or tertiary difference. This is also known as the level4 strength. The quaternary level should only be used if ignoring punctuation is required or when processing Japanese text (see Hiragana processing).\n\nIdentical Level: When all other levels are equal, the identical level is used as a tiebreaker. The Unicode code point values of the NFD form of each string are compared at this level, just in case there is no difference at levels 14. For example, Hebrew cantillation marks are only distinguished at this level. This level should be used sparingly, as only code point values differences between two strings is an extremely rare occurrence. Using this level substantially decreases the performance for both incremental comparison and sort key generation (as well as increasing the sort key length). It is also known as level 5 strength.\n\nFor example, people may choose to ignore accents or ignore accents and case when searching for text. Almost all characters are distinguished by the first three levels, and in most locales the default value is thus Tertiary. However, if Alternate is set to be Shifted, then the Quaternary strength can be used to break ties among whitespace, punctuation, and symbols that would otherwise be ignored. If very fine distinctions among characters are required, then the Identical strength can be used (for example, Identical Strength distinguishes between the Mathematical Bold Small A and the Mathematical Italic Small A.). However, using levels higher than Tertiary the Identical strength result in significantly longer sort keys, and slower string comparison performance for equal strings.",
'desc' => "Procedural style bool collator_set_strength ( Collator \$coll , int \$strength ) The ICU Collation Service supports many levels of comparison (named \"Levels\", but also known as \"Strengths\"). Having these categories enables ICU to sort strings precisely according to local conventions. However, by allowing the levels to be selectively employed, searching for a string in text can be performed with various matching conditions.\n\n\n\nPrimary Level: Typically, this is used to denote differences between base characters (for example, \"a\" < \"b\"). It is the strongest difference. For example, dictionaries are divided into different sections by base character. This is also called the level1 strength.\n\nSecondary Level: Accents in the characters are considered secondary differences. Other differences between letters can also be considered secondary differences, depending on the language. A secondary difference is ignored when there is a primary difference anywhere in the strings. This is also called the level2 strength.\n\nNote: In some languages (such as Danish), certain accented letters are considered to be separate base characters. In most languages, however, an accented letter only has a secondary difference from the unaccented version of that letter.\n\nTertiary Level: Upper and lower case differences in characters are distinguished at the tertiary level. In addition, a variant of a letter differs from the base form on the tertiary level (such as \"A\" and \" \"). Another example is the difference between large and small Kana. A tertiary difference is ignored when there is a primary or secondary difference anywhere in the strings. This is also called the level3 strength.\n\nQuaternary Level: When punctuation is ignored (see Ignoring Punctuations ) at level 13, an additional level can be used to distinguish words with and without punctuation (for example, \"ab\" < \"a-b\" < \"aB\"). This difference is ignored when there is a primary, secondary or tertiary difference. This is also known as the level4 strength. The quaternary level should only be used if ignoring punctuation is required or when processing Japanese text (see Hiragana processing).\n\nIdentical Level: When all other levels are equal, the identical level is used as a tiebreaker. The Unicode code point values of the NFD form of each string are compared at this level, just in case there is no difference at levels 14. For example, Hebrew cantillation marks are only distinguished at this level. This level should be used sparingly, as only code point values differences between two strings is an extremely rare occurrence. Using this level substantially decreases the performance for both incremental comparison and sort key generation (as well as increasing the sort key length). It is also known as level 5 strength.\n\nFor example, people may choose to ignore accents or ignore accents and case when searching for text. Almost all characters are distinguished by the first three levels, and in most locales the default value is thus Tertiary. However, if Alternate is set to be Shifted, then the Quaternary strength can be used to break ties among whitespace, punctuation, and symbols that would otherwise be ignored. If very fine distinctions among characters are required, then the Identical strength can be used (for example, Identical Strength distinguishes between the Mathematical Bold Small A and the Mathematical Italic Small A.). However, using levels higher than Tertiary the Identical strength result in significantly longer sort keys, and slower string comparison performance for equal strings.",
'flags' => HasDocComment,
'return' => array(
'type' => Boolean,
+76 -14
Ver Arquivo
@@ -31,6 +31,10 @@
#include <system/lib/systemlib.h>
#ifdef UIDNA_INFO_INITIALIZER
#define HAVE_46_API 1 /* has UTS#46 API (introduced in ICU 4.6) */
#endif
namespace HPHP {
IMPLEMENT_DEFAULT_EXTENSION(idn);
///////////////////////////////////////////////////////////////////////////////
@@ -733,13 +737,66 @@ Variant c_Normalizer::ti_normalize(const char* cls , CStrRef input,
///////////////////////////////////////////////////////////////////////////////
enum IdnVariant {
INTL_IDN_VARIANT_2003 = 0,
INTL_IDN_VARIANT_UTS46
};
enum {
INTL_IDN_TO_ASCII = 0,
INTL_IDN_TO_UTF8
};
static Variant php_intl_idn_to(CStrRef domain, VRefParam errorcode, int mode) {
long option = 0;
#ifdef HAVE_46_API
static Variant php_intl_idn_to_46(CStrRef domain, int64 options, IdnVariant idn_variant, VRefParam idna_info, int mode) {
int32_t converted_capacity;
char *converted = NULL;
int32_t converted_len;
UIDNA *uts46;
UIDNAInfo info = UIDNA_INFO_INITIALIZER;
UErrorCode status;
// Get UIDNA instance which implements UTS #46.
uts46 = uidna_openUTS46(options, &status);
SCOPE_EXIT { uidna_close(uts46); };
if (U_FAILURE(status)) return false;
// Call the appropriate IDN function
status = U_ZERO_ERROR;
converted_capacity = 255; // no domain name may exceed this
String result(converted_capacity, ReserveString); // reserves converted_capacity+1 characters.
converted = result.mutableSlice().ptr;
if (mode == INTL_IDN_TO_ASCII) {
converted_len = uidna_nameToASCII_UTF8(uts46, (char*)domain.data(), domain.size(),
converted, converted_capacity, &info, &status);
} else {
converted_len = uidna_nameToUnicodeUTF8(uts46, (char*)domain.data(), domain.size(),
converted, converted_capacity, &info, &status);
}
if (U_FAILURE(status) || converted_len > converted_capacity) return false;
if (info.errors == 0) {
result.setSize(converted_len);
} else {
result.setSize(0);
}
// Set up the array returned in idna_info.
Array arr;
arr.set("result", result);
arr.set("isTransitionalDifferent", info.isTransitionalDifferent);
arr.set("errors", (long)info.errors);
idna_info = arr; // As in Zend, the previous value of idn_variant is overwritten, not modified.
if (info.errors == 0) {
return result;
} else {
return false;
}
}
#endif
static Variant php_intl_idn_to(CStrRef domain, int64 options, IdnVariant idn_variant, VRefParam idna_info, int mode) {
UChar* ustring = NULL;
int ustring_len = 0;
UErrorCode status;
@@ -748,13 +805,21 @@ static Variant php_intl_idn_to(CStrRef domain, VRefParam errorcode, int mode) {
UChar* converted = NULL;
int32_t converted_ret_len;
if (idn_variant != INTL_IDN_VARIANT_2003) {
#ifdef HAVE_46_API
if (idn_variant == INTL_IDN_VARIANT_UTS46) {
return php_intl_idn_to_46(domain, options, idn_variant, ref(idna_info), mode);
}
#endif
return false;
}
// Convert the string to UTF-16
status = U_ZERO_ERROR;
intl_convert_utf8_to_utf16(&ustring, &ustring_len,
(char*)domain.data(), domain.size(), &status);
if (U_FAILURE(status)) {
free(ustring);
errorcode = status;
return false;
}
@@ -767,17 +832,16 @@ static Variant php_intl_idn_to(CStrRef domain, VRefParam errorcode, int mode) {
// If the malloc failed, bail out
if (!converted) {
free(ustring);
errorcode = U_MEMORY_ALLOCATION_ERROR;
return false;
}
if (mode == INTL_IDN_TO_ASCII) {
converted_ret_len = uidna_IDNToASCII(ustring,
ustring_len, converted, converted_len,
(int32_t)option, &parse_error, &status);
(int32_t)options, &parse_error, &status);
} else {
converted_ret_len = uidna_IDNToUnicode(ustring,
ustring_len, converted, converted_len,
(int32_t)option, &parse_error, &status);
(int32_t)options, &parse_error, &status);
}
if (status != U_BUFFER_OVERFLOW_ERROR)
break;
@@ -789,7 +853,6 @@ static Variant php_intl_idn_to(CStrRef domain, VRefParam errorcode, int mode) {
free(ustring);
if (U_FAILURE(status)) {
free(converted);
errorcode = status;
return false;
}
@@ -800,7 +863,6 @@ static Variant php_intl_idn_to(CStrRef domain, VRefParam errorcode, int mode) {
free(converted);
if (U_FAILURE(status)) {
free(converted_utf8);
errorcode = status;
return false;
}
@@ -808,16 +870,16 @@ static Variant php_intl_idn_to(CStrRef domain, VRefParam errorcode, int mode) {
return String(converted_utf8, converted_utf8_len, AttachString);
}
Variant f_idn_to_ascii(CStrRef domain, VRefParam errorcode /* = null */) {
return php_intl_idn_to(domain, ref(errorcode), INTL_IDN_TO_ASCII);
Variant f_idn_to_ascii(CStrRef domain, int64 options /* = 0 */, int64 variant /* = 0 */, VRefParam idna_info /* = null */) {
return php_intl_idn_to(domain, options, (IdnVariant)variant, idna_info, INTL_IDN_TO_ASCII);
}
Variant f_idn_to_unicode(CStrRef domain, VRefParam errorcode /* = null */) {
return php_intl_idn_to(domain, ref(errorcode), INTL_IDN_TO_UTF8);
Variant f_idn_to_unicode(CStrRef domain, int64 options /* = 0 */, int64 variant /* = 0 */, VRefParam idna_info /* = null */) {
return php_intl_idn_to(domain, options, (IdnVariant)variant, idna_info, INTL_IDN_TO_UTF8);
}
Variant f_idn_to_utf8(CStrRef domain, VRefParam errorcode /* = null */) {
return php_intl_idn_to(domain, ref(errorcode), INTL_IDN_TO_UTF8);
Variant f_idn_to_utf8(CStrRef domain, int64 options /* = 0 */, int64 variant /* = 0 */, VRefParam idna_info /* = null */) {
return php_intl_idn_to(domain, options, (IdnVariant)variant, idna_info, INTL_IDN_TO_UTF8);
}
///////////////////////////////////////////////////////////////////////////////
+96 -45
Ver Arquivo
@@ -772,23 +772,40 @@ TypedValue* fg_collator_sort(HPHP::VM::ActRec *ar) {
/*
HPHP::Variant HPHP::f_idn_to_ascii(HPHP::String const&, HPHP::VRefParamValue const&)
_ZN4HPHP14f_idn_to_asciiERKNS_6StringERKNS_14VRefParamValueE
HPHP::Variant HPHP::f_idn_to_ascii(HPHP::String const&, long, long, HPHP::VRefParamValue const&)
_ZN4HPHP14f_idn_to_asciiERKNS_6StringEllRKNS_14VRefParamValueE
(return value) => rax
_rv => rdi
domain => rsi
errorcode => rdx
options => rdx
variant => rcx
idna_info => r8
*/
TypedValue* fh_idn_to_ascii(TypedValue* _rv, Value* domain, TypedValue* errorcode) asm("_ZN4HPHP14f_idn_to_asciiERKNS_6StringERKNS_14VRefParamValueE");
TypedValue* fh_idn_to_ascii(TypedValue* _rv, Value* domain, long options, long variant, TypedValue* idna_info) asm("_ZN4HPHP14f_idn_to_asciiERKNS_6StringEllRKNS_14VRefParamValueE");
TypedValue * fg1_idn_to_ascii(TypedValue* rv, HPHP::VM::ActRec* ar, int64_t count) __attribute__((noinline,cold));
TypedValue * fg1_idn_to_ascii(TypedValue* rv, HPHP::VM::ActRec* ar, int64_t count) {
TypedValue* args UNUSED = ((TypedValue*)ar) - 1;
tvCastToStringInPlace(args-0);
VRefParamValue defVal1 = null;
fh_idn_to_ascii((rv), (Value*)(args-0), (count > 1) ? (args-1) : (TypedValue*)(&defVal1));
switch (count) {
default: // count >= 4
case 3:
if ((args-2)->m_type != KindOfInt64) {
tvCastToInt64InPlace(args-2);
}
case 2:
if ((args-1)->m_type != KindOfInt64) {
tvCastToInt64InPlace(args-1);
}
case 1:
break;
}
if (!IS_STRING_TYPE((args-0)->m_type)) {
tvCastToStringInPlace(args-0);
}
VRefParamValue defVal3 = null;
fh_idn_to_ascii((rv), (Value*)(args-0), (count > 1) ? (long)(args[-1].m_data.num) : (long)(0), (count > 2) ? (long)(args[-2].m_data.num) : (long)(0), (count > 3) ? (args-3) : (TypedValue*)(&defVal3));
if (rv->m_type == KindOfUninit) rv->m_type = KindOfNull;
return rv;
}
@@ -797,27 +814,27 @@ TypedValue* fg_idn_to_ascii(HPHP::VM::ActRec *ar) {
TypedValue rv;
int64_t count = ar->numArgs();
TypedValue* args UNUSED = ((TypedValue*)ar) - 1;
if (count >= 1LL && count <= 2LL) {
if (IS_STRING_TYPE((args-0)->m_type)) {
VRefParamValue defVal1 = null;
fh_idn_to_ascii((&(rv)), (Value*)(args-0), (count > 1) ? (args-1) : (TypedValue*)(&defVal1));
if (count >= 1LL && count <= 4LL) {
if ((count <= 2 || (args-2)->m_type == KindOfInt64) && (count <= 1 || (args-1)->m_type == KindOfInt64) && IS_STRING_TYPE((args-0)->m_type)) {
VRefParamValue defVal3 = null;
fh_idn_to_ascii((&(rv)), (Value*)(args-0), (count > 1) ? (long)(args[-1].m_data.num) : (long)(0), (count > 2) ? (long)(args[-2].m_data.num) : (long)(0), (count > 3) ? (args-3) : (TypedValue*)(&defVal3));
if (rv.m_type == KindOfUninit) rv.m_type = KindOfNull;
frame_free_locals_no_this_inl(ar, 2);
frame_free_locals_no_this_inl(ar, 4);
memcpy(&ar->m_r, &rv, sizeof(TypedValue));
return &ar->m_r;
} else {
fg1_idn_to_ascii(&rv, ar, count);
frame_free_locals_no_this_inl(ar, 2);
frame_free_locals_no_this_inl(ar, 4);
memcpy(&ar->m_r, &rv, sizeof(TypedValue));
return &ar->m_r;
}
} else {
throw_wrong_arguments_nr("idn_to_ascii", count, 1, 2, 1);
throw_wrong_arguments_nr("idn_to_ascii", count, 1, 4, 1);
}
rv.m_data.num = 0LL;
rv._count = 0;
rv.m_type = KindOfNull;
frame_free_locals_no_this_inl(ar, 2);
frame_free_locals_no_this_inl(ar, 4);
memcpy(&ar->m_r, &rv, sizeof(TypedValue));
return &ar->m_r;
return &ar->m_r;
@@ -826,23 +843,40 @@ TypedValue* fg_idn_to_ascii(HPHP::VM::ActRec *ar) {
/*
HPHP::Variant HPHP::f_idn_to_unicode(HPHP::String const&, HPHP::VRefParamValue const&)
_ZN4HPHP16f_idn_to_unicodeERKNS_6StringERKNS_14VRefParamValueE
HPHP::Variant HPHP::f_idn_to_unicode(HPHP::String const&, long, long, HPHP::VRefParamValue const&)
_ZN4HPHP16f_idn_to_unicodeERKNS_6StringEllRKNS_14VRefParamValueE
(return value) => rax
_rv => rdi
domain => rsi
errorcode => rdx
options => rdx
variant => rcx
idna_info => r8
*/
TypedValue* fh_idn_to_unicode(TypedValue* _rv, Value* domain, TypedValue* errorcode) asm("_ZN4HPHP16f_idn_to_unicodeERKNS_6StringERKNS_14VRefParamValueE");
TypedValue* fh_idn_to_unicode(TypedValue* _rv, Value* domain, long options, long variant, TypedValue* idna_info) asm("_ZN4HPHP16f_idn_to_unicodeERKNS_6StringEllRKNS_14VRefParamValueE");
TypedValue * fg1_idn_to_unicode(TypedValue* rv, HPHP::VM::ActRec* ar, int64_t count) __attribute__((noinline,cold));
TypedValue * fg1_idn_to_unicode(TypedValue* rv, HPHP::VM::ActRec* ar, int64_t count) {
TypedValue* args UNUSED = ((TypedValue*)ar) - 1;
tvCastToStringInPlace(args-0);
VRefParamValue defVal1 = null;
fh_idn_to_unicode((rv), (Value*)(args-0), (count > 1) ? (args-1) : (TypedValue*)(&defVal1));
switch (count) {
default: // count >= 4
case 3:
if ((args-2)->m_type != KindOfInt64) {
tvCastToInt64InPlace(args-2);
}
case 2:
if ((args-1)->m_type != KindOfInt64) {
tvCastToInt64InPlace(args-1);
}
case 1:
break;
}
if (!IS_STRING_TYPE((args-0)->m_type)) {
tvCastToStringInPlace(args-0);
}
VRefParamValue defVal3 = null;
fh_idn_to_unicode((rv), (Value*)(args-0), (count > 1) ? (long)(args[-1].m_data.num) : (long)(0), (count > 2) ? (long)(args[-2].m_data.num) : (long)(0), (count > 3) ? (args-3) : (TypedValue*)(&defVal3));
if (rv->m_type == KindOfUninit) rv->m_type = KindOfNull;
return rv;
}
@@ -851,27 +885,27 @@ TypedValue* fg_idn_to_unicode(HPHP::VM::ActRec *ar) {
TypedValue rv;
int64_t count = ar->numArgs();
TypedValue* args UNUSED = ((TypedValue*)ar) - 1;
if (count >= 1LL && count <= 2LL) {
if (IS_STRING_TYPE((args-0)->m_type)) {
VRefParamValue defVal1 = null;
fh_idn_to_unicode((&(rv)), (Value*)(args-0), (count > 1) ? (args-1) : (TypedValue*)(&defVal1));
if (count >= 1LL && count <= 4LL) {
if ((count <= 2 || (args-2)->m_type == KindOfInt64) && (count <= 1 || (args-1)->m_type == KindOfInt64) && IS_STRING_TYPE((args-0)->m_type)) {
VRefParamValue defVal3 = null;
fh_idn_to_unicode((&(rv)), (Value*)(args-0), (count > 1) ? (long)(args[-1].m_data.num) : (long)(0), (count > 2) ? (long)(args[-2].m_data.num) : (long)(0), (count > 3) ? (args-3) : (TypedValue*)(&defVal3));
if (rv.m_type == KindOfUninit) rv.m_type = KindOfNull;
frame_free_locals_no_this_inl(ar, 2);
frame_free_locals_no_this_inl(ar, 4);
memcpy(&ar->m_r, &rv, sizeof(TypedValue));
return &ar->m_r;
} else {
fg1_idn_to_unicode(&rv, ar, count);
frame_free_locals_no_this_inl(ar, 2);
frame_free_locals_no_this_inl(ar, 4);
memcpy(&ar->m_r, &rv, sizeof(TypedValue));
return &ar->m_r;
}
} else {
throw_wrong_arguments_nr("idn_to_unicode", count, 1, 2, 1);
throw_wrong_arguments_nr("idn_to_unicode", count, 1, 4, 1);
}
rv.m_data.num = 0LL;
rv._count = 0;
rv.m_type = KindOfNull;
frame_free_locals_no_this_inl(ar, 2);
frame_free_locals_no_this_inl(ar, 4);
memcpy(&ar->m_r, &rv, sizeof(TypedValue));
return &ar->m_r;
return &ar->m_r;
@@ -880,23 +914,40 @@ TypedValue* fg_idn_to_unicode(HPHP::VM::ActRec *ar) {
/*
HPHP::Variant HPHP::f_idn_to_utf8(HPHP::String const&, HPHP::VRefParamValue const&)
_ZN4HPHP13f_idn_to_utf8ERKNS_6StringERKNS_14VRefParamValueE
HPHP::Variant HPHP::f_idn_to_utf8(HPHP::String const&, long, long, HPHP::VRefParamValue const&)
_ZN4HPHP13f_idn_to_utf8ERKNS_6StringEllRKNS_14VRefParamValueE
(return value) => rax
_rv => rdi
domain => rsi
errorcode => rdx
options => rdx
variant => rcx
idna_info => r8
*/
TypedValue* fh_idn_to_utf8(TypedValue* _rv, Value* domain, TypedValue* errorcode) asm("_ZN4HPHP13f_idn_to_utf8ERKNS_6StringERKNS_14VRefParamValueE");
TypedValue* fh_idn_to_utf8(TypedValue* _rv, Value* domain, long options, long variant, TypedValue* idna_info) asm("_ZN4HPHP13f_idn_to_utf8ERKNS_6StringEllRKNS_14VRefParamValueE");
TypedValue * fg1_idn_to_utf8(TypedValue* rv, HPHP::VM::ActRec* ar, int64_t count) __attribute__((noinline,cold));
TypedValue * fg1_idn_to_utf8(TypedValue* rv, HPHP::VM::ActRec* ar, int64_t count) {
TypedValue* args UNUSED = ((TypedValue*)ar) - 1;
tvCastToStringInPlace(args-0);
VRefParamValue defVal1 = null;
fh_idn_to_utf8((rv), (Value*)(args-0), (count > 1) ? (args-1) : (TypedValue*)(&defVal1));
switch (count) {
default: // count >= 4
case 3:
if ((args-2)->m_type != KindOfInt64) {
tvCastToInt64InPlace(args-2);
}
case 2:
if ((args-1)->m_type != KindOfInt64) {
tvCastToInt64InPlace(args-1);
}
case 1:
break;
}
if (!IS_STRING_TYPE((args-0)->m_type)) {
tvCastToStringInPlace(args-0);
}
VRefParamValue defVal3 = null;
fh_idn_to_utf8((rv), (Value*)(args-0), (count > 1) ? (long)(args[-1].m_data.num) : (long)(0), (count > 2) ? (long)(args[-2].m_data.num) : (long)(0), (count > 3) ? (args-3) : (TypedValue*)(&defVal3));
if (rv->m_type == KindOfUninit) rv->m_type = KindOfNull;
return rv;
}
@@ -905,27 +956,27 @@ TypedValue* fg_idn_to_utf8(HPHP::VM::ActRec *ar) {
TypedValue rv;
int64_t count = ar->numArgs();
TypedValue* args UNUSED = ((TypedValue*)ar) - 1;
if (count >= 1LL && count <= 2LL) {
if (IS_STRING_TYPE((args-0)->m_type)) {
VRefParamValue defVal1 = null;
fh_idn_to_utf8((&(rv)), (Value*)(args-0), (count > 1) ? (args-1) : (TypedValue*)(&defVal1));
if (count >= 1LL && count <= 4LL) {
if ((count <= 2 || (args-2)->m_type == KindOfInt64) && (count <= 1 || (args-1)->m_type == KindOfInt64) && IS_STRING_TYPE((args-0)->m_type)) {
VRefParamValue defVal3 = null;
fh_idn_to_utf8((&(rv)), (Value*)(args-0), (count > 1) ? (long)(args[-1].m_data.num) : (long)(0), (count > 2) ? (long)(args[-2].m_data.num) : (long)(0), (count > 3) ? (args-3) : (TypedValue*)(&defVal3));
if (rv.m_type == KindOfUninit) rv.m_type = KindOfNull;
frame_free_locals_no_this_inl(ar, 2);
frame_free_locals_no_this_inl(ar, 4);
memcpy(&ar->m_r, &rv, sizeof(TypedValue));
return &ar->m_r;
} else {
fg1_idn_to_utf8(&rv, ar, count);
frame_free_locals_no_this_inl(ar, 2);
frame_free_locals_no_this_inl(ar, 4);
memcpy(&ar->m_r, &rv, sizeof(TypedValue));
return &ar->m_r;
}
} else {
throw_wrong_arguments_nr("idn_to_utf8", count, 1, 2, 1);
throw_wrong_arguments_nr("idn_to_utf8", count, 1, 4, 1);
}
rv.m_data.num = 0LL;
rv._count = 0;
rv.m_type = KindOfNull;
frame_free_locals_no_this_inl(ar, 2);
frame_free_locals_no_this_inl(ar, 4);
memcpy(&ar->m_r, &rv, sizeof(TypedValue));
return &ar->m_r;
return &ar->m_r;
+18 -12
Ver Arquivo
@@ -201,40 +201,46 @@ sort_flag => rcx
TypedValue* fh_collator_sort(TypedValue* _rv, TypedValue* obj, TypedValue* arr, long sort_flag) asm("_ZN4HPHP15f_collator_sortERKNS_7VariantERKNS_14VRefParamValueEl");
/*
HPHP::Variant HPHP::f_idn_to_ascii(HPHP::String const&, HPHP::VRefParamValue const&)
_ZN4HPHP14f_idn_to_asciiERKNS_6StringERKNS_14VRefParamValueE
HPHP::Variant HPHP::f_idn_to_ascii(HPHP::String const&, long, long, HPHP::VRefParamValue const&)
_ZN4HPHP14f_idn_to_asciiERKNS_6StringEllRKNS_14VRefParamValueE
(return value) => rax
_rv => rdi
domain => rsi
errorcode => rdx
options => rdx
variant => rcx
idna_info => r8
*/
TypedValue* fh_idn_to_ascii(TypedValue* _rv, Value* domain, TypedValue* errorcode) asm("_ZN4HPHP14f_idn_to_asciiERKNS_6StringERKNS_14VRefParamValueE");
TypedValue* fh_idn_to_ascii(TypedValue* _rv, Value* domain, long options, long variant, TypedValue* idna_info) asm("_ZN4HPHP14f_idn_to_asciiERKNS_6StringEllRKNS_14VRefParamValueE");
/*
HPHP::Variant HPHP::f_idn_to_unicode(HPHP::String const&, HPHP::VRefParamValue const&)
_ZN4HPHP16f_idn_to_unicodeERKNS_6StringERKNS_14VRefParamValueE
HPHP::Variant HPHP::f_idn_to_unicode(HPHP::String const&, long, long, HPHP::VRefParamValue const&)
_ZN4HPHP16f_idn_to_unicodeERKNS_6StringEllRKNS_14VRefParamValueE
(return value) => rax
_rv => rdi
domain => rsi
errorcode => rdx
options => rdx
variant => rcx
idna_info => r8
*/
TypedValue* fh_idn_to_unicode(TypedValue* _rv, Value* domain, TypedValue* errorcode) asm("_ZN4HPHP16f_idn_to_unicodeERKNS_6StringERKNS_14VRefParamValueE");
TypedValue* fh_idn_to_unicode(TypedValue* _rv, Value* domain, long options, long variant, TypedValue* idna_info) asm("_ZN4HPHP16f_idn_to_unicodeERKNS_6StringEllRKNS_14VRefParamValueE");
/*
HPHP::Variant HPHP::f_idn_to_utf8(HPHP::String const&, HPHP::VRefParamValue const&)
_ZN4HPHP13f_idn_to_utf8ERKNS_6StringERKNS_14VRefParamValueE
HPHP::Variant HPHP::f_idn_to_utf8(HPHP::String const&, long, long, HPHP::VRefParamValue const&)
_ZN4HPHP13f_idn_to_utf8ERKNS_6StringEllRKNS_14VRefParamValueE
(return value) => rax
_rv => rdi
domain => rsi
errorcode => rdx
options => rdx
variant => rcx
idna_info => r8
*/
TypedValue* fh_idn_to_utf8(TypedValue* _rv, Value* domain, TypedValue* errorcode) asm("_ZN4HPHP13f_idn_to_utf8ERKNS_6StringERKNS_14VRefParamValueE");
TypedValue* fh_idn_to_utf8(TypedValue* _rv, Value* domain, long options, long variant, TypedValue* idna_info) asm("_ZN4HPHP13f_idn_to_utf8ERKNS_6StringEllRKNS_14VRefParamValueE");
} // !HPHP
+3 -3
Ver Arquivo
@@ -45,9 +45,9 @@ Variant f_collator_set_attribute(CVarRef obj, int64 attr, int64 val);
Variant f_collator_set_strength(CVarRef obj, int64 strength);
Variant f_collator_sort_with_sort_keys(CVarRef obj, VRefParam arr);
Variant f_collator_sort(CVarRef obj, VRefParam arr, int64 sort_flag = q_Collator$$SORT_REGULAR);
Variant f_idn_to_ascii(CStrRef domain, VRefParam errorcode = null);
Variant f_idn_to_unicode(CStrRef domain, VRefParam errorcode = null);
Variant f_idn_to_utf8(CStrRef domain, VRefParam errorcode = null);
Variant f_idn_to_ascii(CStrRef domain, int64 options = 0, int64 variant = 0, VRefParam idna_info = null);
Variant f_idn_to_unicode(CStrRef domain, int64 options = 0, int64 variant = 0, VRefParam idna_info = null);
Variant f_idn_to_utf8(CStrRef domain, int64 options = 0, int64 variant = 0, VRefParam idna_info = null);
extern const int64 q_Collator$$SORT_REGULAR;
extern const int64 q_Collator$$SORT_NUMERIC;
extern const int64 q_Collator$$SORT_STRING;
+6 -6
Ver Arquivo
@@ -105,22 +105,22 @@ inline Variant x_collator_sort(CVarRef obj, VRefParam arr, int64 sort_flag = q_C
return f_collator_sort(obj, arr, sort_flag);
}
inline Variant x_idn_to_ascii(CStrRef domain, VRefParam errorcode = null) {
inline Variant x_idn_to_ascii(CStrRef domain, int64 options = 0, int64 variant = 0, VRefParam idna_info = null) {
FUNCTION_INJECTION_BUILTIN(idn_to_ascii);
TAINT_OBSERVER(TAINT_BIT_MUTATED, TAINT_BIT_NONE);
return f_idn_to_ascii(domain, errorcode);
return f_idn_to_ascii(domain, options, variant, idna_info);
}
inline Variant x_idn_to_unicode(CStrRef domain, VRefParam errorcode = null) {
inline Variant x_idn_to_unicode(CStrRef domain, int64 options = 0, int64 variant = 0, VRefParam idna_info = null) {
FUNCTION_INJECTION_BUILTIN(idn_to_unicode);
TAINT_OBSERVER(TAINT_BIT_MUTATED, TAINT_BIT_NONE);
return f_idn_to_unicode(domain, errorcode);
return f_idn_to_unicode(domain, options, variant, idna_info);
}
inline Variant x_idn_to_utf8(CStrRef domain, VRefParam errorcode = null) {
inline Variant x_idn_to_utf8(CStrRef domain, int64 options = 0, int64 variant = 0, VRefParam idna_info = null) {
FUNCTION_INJECTION_BUILTIN(idn_to_utf8);
TAINT_OBSERVER(TAINT_BIT_MUTATED, TAINT_BIT_NONE);
return f_idn_to_utf8(domain, errorcode);
return f_idn_to_utf8(domain, options, variant, idna_info);
}
+13 -7
Ver Arquivo
@@ -1505,9 +1505,11 @@ const char* g_class_map[] __attribute__((weak)) = {
NULL,
NULL,
(const char *)0x10006040, "idn_to_ascii", "", (const char *)0, (const char *)0,
"/**\n * ( excerpt from http://php.net/manual/en/function.idn-to-ascii.php )\n *\n * This function converts Unicode domain name to IDNA ASCII-compatible\n * format.\n *\n * @domain string Domain to convert. In PHP 5 must be UTF-8 encoded.\n * @errorcode mixed Conversion options - combination of IDNA_*\n * constants.\n *\n * @return mixed Domain name encoded in ASCII-compatible form.\n */",
"/**\n * ( excerpt from http://php.net/manual/en/function.idn-to-ascii.php )\n *\n * This function converts Unicode domain name to IDNA ASCII-compatible\n * format.\n *\n * @domain string Domain to convert. In PHP 5 must be UTF-8 encoded.\n * @options int Conversion options - combination of IDNA_* constants\n * (except IDNA_ERROR_* constants).\n * @variant int Either INTL_IDNA_VARIANT_2003 for IDNA 2003 or\n * INTL_IDNA_VARIANT_UTS46 for UTS #46.\n * @idna_info mixed This parameter can be used only if\n * INTL_IDNA_VARIANT_UTS46 was used for variant. In\n * that case, it will be filled with an array with the\n * keys 'result', the possibly illegal result of the\n * transformation, 'isTransitionalDifferent', a boolean\n * indicating whether the usage of the transitional\n * mechanisms of UTS #46 either has or would have\n * changed the result and 'errors', which is an int\n * representing a bitset of the error constants\n * IDNA_ERROR_*.\n *\n * @return mixed Domain name encoded in ASCII-compatible form.\n */",
(const char *)0xffffffff, (const char *)0x2000, "domain", "", (const char *)0x14, "", "", NULL,
(const char *)0x2800, "errorcode", "", (const char *)0xffffffff, "N;", "null", NULL,
(const char *)0x2000, "options", "", (const char *)0xa, "i:0;", "0", NULL,
(const char *)0x2000, "variant", "", (const char *)0xa, "i:0;", "0", NULL,
(const char *)0x2800, "idna_info", "", (const char *)0xffffffff, "N;", "null", NULL,
NULL,
NULL,
NULL,
@@ -4311,9 +4313,11 @@ const char* g_class_map[] __attribute__((weak)) = {
NULL,
NULL,
(const char *)0x10006040, "idn_to_unicode", "", (const char *)0, (const char *)0,
"/**\n * ( excerpt from http://php.net/manual/en/function.idn-to-unicode.php )\n *\n *\n * @domain string\n * @errorcode mixed\n *\n * @return mixed\n */",
"/**\n * ( excerpt from http://php.net/manual/en/function.idn-to-unicode.php )\n *\n *\n * @domain string\n * @options int Conversion options - combination of IDNA_* constants\n * (except IDNA_ERROR_* constants).\n * @variant int Either INTL_IDNA_VARIANT_2003 for IDNA 2003 or\n * INTL_IDNA_VARIANT_UTS46 for UTS #46.\n * @idna_info mixed This parameter can be used only if\n * INTL_IDNA_VARIANT_UTS46 was used for variant. In\n * that case, it will be filled with an array with the\n * keys 'result', the possibly illegal result of the\n * transformation, 'isTransitionalDifferent', a boolean\n * indicating whether the usage of the transitional\n * mechanisms of UTS #46 either has or would have\n * changed the result and 'errors', which is an int\n * representing a bitset of the error constants\n * IDNA_ERROR_*.\n *\n * @return mixed\n */",
(const char *)0xffffffff, (const char *)0x2000, "domain", "", (const char *)0x14, "", "", NULL,
(const char *)0x2800, "errorcode", "", (const char *)0xffffffff, "N;", "null", NULL,
(const char *)0x2000, "options", "", (const char *)0xa, "i:0;", "0", NULL,
(const char *)0x2000, "variant", "", (const char *)0xa, "i:0;", "0", NULL,
(const char *)0x2800, "idna_info", "", (const char *)0xffffffff, "N;", "null", NULL,
NULL,
NULL,
NULL,
@@ -6510,9 +6514,11 @@ const char* g_class_map[] __attribute__((weak)) = {
NULL,
NULL,
(const char *)0x10006040, "idn_to_utf8", "", (const char *)0, (const char *)0,
"/**\n * ( excerpt from http://php.net/manual/en/function.idn-to-utf8.php )\n *\n * This function converts Unicode domain name from IDNA ASCII-compatible\n * format to plain Unicode.\n *\n * @domain string Domain to convert in IDNA ASCII-compatible format.\n * @errorcode mixed Conversion options - combination of IDNA_*\n * constants.\n *\n * @return mixed Domain name in Unicode. In PHP5, domain name will be\n * in UTF-8.\n */",
"/**\n * ( excerpt from http://php.net/manual/en/function.idn-to-utf8.php )\n *\n * This function converts Unicode domain name from IDNA ASCII-compatible\n * format to plain Unicode.\n *\n * @domain string Domain to convert in IDNA ASCII-compatible format.\n * @options int Conversion options - combination of IDNA_* constants\n * (except IDNA_ERROR_* constants).\n * @variant int Either INTL_IDNA_VARIANT_2003 for IDNA 2003 or\n * INTL_IDNA_VARIANT_UTS46 for UTS #46.\n * @idna_info mixed This parameter can be used only if\n * INTL_IDNA_VARIANT_UTS46 was used for variant. In\n * that case, it will be filled with an array with the\n * keys 'result', the possibly illegal result of the\n * transformation, 'isTransitionalDifferent', a boolean\n * indicating whether the usage of the transitional\n * mechanisms of UTS #46 either has or would have\n * changed the result and 'errors', which is an int\n * representing a bitset of the error constants\n * IDNA_ERROR_*.\n *\n * @return mixed Domain name in Unicode. In PHP5, domain name will be\n * in UTF-8.\n */",
(const char *)0xffffffff, (const char *)0x2000, "domain", "", (const char *)0x14, "", "", NULL,
(const char *)0x2800, "errorcode", "", (const char *)0xffffffff, "N;", "null", NULL,
(const char *)0x2000, "options", "", (const char *)0xa, "i:0;", "0", NULL,
(const char *)0x2000, "variant", "", (const char *)0xa, "i:0;", "0", NULL,
(const char *)0x2800, "idna_info", "", (const char *)0xffffffff, "N;", "null", NULL,
NULL,
NULL,
NULL,
@@ -22344,7 +22350,7 @@ const char* g_class_map[] __attribute__((weak)) = {
NULL,
NULL,
(const char *)0x10006040, "setstrength", "", (const char *)0, (const char *)0,
"/**\n * ( excerpt from http://php.net/manual/en/collator.setstrength.php )\n *\n * Procedural style bool collator_set_strength ( Collator $coll , int\n * $strength ) The \273 ICU Collation Service supports many levels of\n * comparison (named \"Levels\", but also known as \"Strengths\"). Having these\n * categories enables ICU to sort strings precisely according to local\n * conventions. However, by allowing the levels to be selectively employed,\n * searching for a string in text can be performed with various matching\n * conditions.\n *\n *\n *\n * Primary Level: Typically, this is used to denote differences between\n * base characters (for example, \"a\" < \"b\"). It is the strongest\n * difference. For example, dictionaries are divided into different\n * sections by base character. This is also called the level1 strength.\n *\n * Secondary Level: Accents in the characters are considered secondary\n * differences (for example, \"as\" < \"\303\240s\" < \"at\"). Other differences\n * between letters can also be considered secondary differences, depending\n * on the language. A secondary difference is ignored when there is a\n * primary difference anywhere in the strings. This is also called the\n * level2 strength.\n *\n * Note: In some languages (such as Danish), certain accented letters are\n * considered to be separate base characters. In most languages, however,\n * an accented letter only has a secondary difference from the unaccented\n * version of that letter.\n *\n * Tertiary Level: Upper and lower case differences in characters are\n * distinguished at the tertiary level (for example, \"ao\" < \"Ao\" < \"a\303\262\").\n * In addition, a variant of a letter differs from the base form on the\n * tertiary level (such as \"A\" and \" \"). Another example is the difference\n * between large and small Kana. A tertiary difference is ignored when\n * there is a primary or secondary difference anywhere in the strings. This\n * is also called the level3 strength.\n *\n * Quaternary Level: When punctuation is ignored (see Ignoring\n * Punctuations ) at level 13, an additional level can be used to\n * distinguish words with and without punctuation (for example, \"ab\" <\n * \"a-b\" < \"aB\"). This difference is ignored when there is a primary,\n * secondary or tertiary difference. This is also known as the level4\n * strength. The quaternary level should only be used if ignoring\n * punctuation is required or when processing Japanese text (see Hiragana\n * processing).\n *\n * Identical Level: When all other levels are equal, the identical level\n * is used as a tiebreaker. The Unicode code point values of the NFD form\n * of each string are compared at this level, just in case there is no\n * difference at levels 14. For example, Hebrew cantillation marks are only\n * distinguished at this level. This level should be used sparingly, as\n * only code point values differences between two strings is an extremely\n * rare occurrence. Using this level substantially decreases the\n * performance for both incremental comparison and sort key generation (as\n * well as increasing the sort key length). It is also known as level 5\n * strength.\n *\n * For example, people may choose to ignore accents or ignore accents and\n * case when searching for text. Almost all characters are distinguished by\n * the first three levels, and in most locales the default value is thus\n * Tertiary. However, if Alternate is set to be Shifted, then the\n * Quaternary strength can be used to break ties among whitespace,\n * punctuation, and symbols that would otherwise be ignored. If very fine\n * distinctions among characters are required, then the Identical strength\n * can be used (for example, Identical Strength distinguishes between the\n * Mathematical Bold Small A and the Mathematical Italic Small A.).\n * However, using levels higher than Tertiary the Identical strength result\n * in significantly longer sort keys, and slower string comparison\n * performance for equal strings.\n *\n * @strength int Collator object.\n *\n * @return bool Returns TRUE on success or FALSE on failure.\n */",
"/**\n * ( excerpt from http://php.net/manual/en/collator.setstrength.php )\n *\n * Procedural style bool collator_set_strength ( Collator $coll , int\n * $strength ) The ICU Collation Service supports many levels of comparison\n * (named \"Levels\", but also known as \"Strengths\"). Having these categories\n * enables ICU to sort strings precisely according to local conventions.\n * However, by allowing the levels to be selectively employed, searching\n * for a string in text can be performed with various matching conditions.\n *\n *\n *\n * Primary Level: Typically, this is used to denote differences between\n * base characters (for example, \"a\" < \"b\"). It is the strongest\n * difference. For example, dictionaries are divided into different\n * sections by base character. This is also called the level1 strength.\n *\n * Secondary Level: Accents in the characters are considered secondary\n * differences. Other differences between letters can also be considered\n * secondary differences, depending on the language. A secondary difference\n * is ignored when there is a primary difference anywhere in the strings.\n * This is also called the level2 strength.\n *\n * Note: In some languages (such as Danish), certain accented letters are\n * considered to be separate base characters. In most languages, however,\n * an accented letter only has a secondary difference from the unaccented\n * version of that letter.\n *\n * Tertiary Level: Upper and lower case differences in characters are\n * distinguished at the tertiary level. In addition, a variant of a letter\n * differs from the base form on the tertiary level (such as \"A\" and \" \").\n * Another example is the difference between large and small Kana. A\n * tertiary difference is ignored when there is a primary or secondary\n * difference anywhere in the strings. This is also called the level3\n * strength.\n *\n * Quaternary Level: When punctuation is ignored (see Ignoring\n * Punctuations ) at level 13, an additional level can be used to\n * distinguish words with and without punctuation (for example, \"ab\" <\n * \"a-b\" < \"aB\"). This difference is ignored when there is a primary,\n * secondary or tertiary difference. This is also known as the level4\n * strength. The quaternary level should only be used if ignoring\n * punctuation is required or when processing Japanese text (see Hiragana\n * processing).\n *\n * Identical Level: When all other levels are equal, the identical level\n * is used as a tiebreaker. The Unicode code point values of the NFD form\n * of each string are compared at this level, just in case there is no\n * difference at levels 14. For example, Hebrew cantillation marks are only\n * distinguished at this level. This level should be used sparingly, as\n * only code point values differences between two strings is an extremely\n * rare occurrence. Using this level substantially decreases the\n * performance for both incremental comparison and sort key generation (as\n * well as increasing the sort key length). It is also known as level 5\n * strength.\n *\n * For example, people may choose to ignore accents or ignore accents and\n * case when searching for text. Almost all characters are distinguished by\n * the first three levels, and in most locales the default value is thus\n * Tertiary. However, if Alternate is set to be Shifted, then the\n * Quaternary strength can be used to break ties among whitespace,\n * punctuation, and symbols that would otherwise be ignored. If very fine\n * distinctions among characters are required, then the Identical strength\n * can be used (for example, Identical Strength distinguishes between the\n * Mathematical Bold Small A and the Mathematical Italic Small A.).\n * However, using levels higher than Tertiary the Identical strength result\n * in significantly longer sort keys, and slower string comparison\n * performance for equal strings.\n *\n * @strength int Collator object.\n *\n * @return bool Returns TRUE on success or FALSE on failure.\n */",
(const char *)0x9, (const char *)0x2000, "strength", "", (const char *)0xa, "", "", NULL,
NULL,
NULL,
+24 -12
Ver Arquivo
@@ -2142,11 +2142,15 @@ Variant i_pixelgetblack(void *extra, CArrRef params) {
return invoke_func_few_handler(extra, params, &ifa_pixelgetblack);
}
Variant ifa_idn_to_ascii(void *extra, int count, INVOKE_FEW_ARGS_IMPL_ARGS) {
if (UNLIKELY(count < 1 || count > 2)) return throw_wrong_arguments("idn_to_ascii", count, 1, 2, 1);
if (UNLIKELY(count < 1 || count > 4)) return throw_wrong_arguments("idn_to_ascii", count, 1, 4, 1);
CVarRef arg0(a0);
if (count <= 1) return (x_idn_to_ascii(arg0));
VRefParam arg1(vref(a1));
return (x_idn_to_ascii(arg0, arg1));
CVarRef arg1(a1);
if (count <= 2) return (x_idn_to_ascii(arg0, arg1));
CVarRef arg2(a2);
if (count <= 3) return (x_idn_to_ascii(arg0, arg1, arg2));
VRefParam arg3(vref(a3));
return (x_idn_to_ascii(arg0, arg1, arg2, arg3));
}
Variant i_idn_to_ascii(void *extra, CArrRef params) {
return invoke_func_few_handler(extra, params, &ifa_idn_to_ascii);
@@ -6201,11 +6205,15 @@ Variant i_posix_getuid(void *extra, CArrRef params) {
return invoke_func_few_handler(extra, params, &ifa_posix_getuid);
}
Variant ifa_idn_to_unicode(void *extra, int count, INVOKE_FEW_ARGS_IMPL_ARGS) {
if (UNLIKELY(count < 1 || count > 2)) return throw_wrong_arguments("idn_to_unicode", count, 1, 2, 1);
if (UNLIKELY(count < 1 || count > 4)) return throw_wrong_arguments("idn_to_unicode", count, 1, 4, 1);
CVarRef arg0(a0);
if (count <= 1) return (x_idn_to_unicode(arg0));
VRefParam arg1(vref(a1));
return (x_idn_to_unicode(arg0, arg1));
CVarRef arg1(a1);
if (count <= 2) return (x_idn_to_unicode(arg0, arg1));
CVarRef arg2(a2);
if (count <= 3) return (x_idn_to_unicode(arg0, arg1, arg2));
VRefParam arg3(vref(a3));
return (x_idn_to_unicode(arg0, arg1, arg2, arg3));
}
Variant i_idn_to_unicode(void *extra, CArrRef params) {
return invoke_func_few_handler(extra, params, &ifa_idn_to_unicode);
@@ -9214,11 +9222,15 @@ Variant i_override_function(void *extra, CArrRef params) {
return invoke_func_few_handler(extra, params, &ifa_override_function);
}
Variant ifa_idn_to_utf8(void *extra, int count, INVOKE_FEW_ARGS_IMPL_ARGS) {
if (UNLIKELY(count < 1 || count > 2)) return throw_wrong_arguments("idn_to_utf8", count, 1, 2, 1);
if (UNLIKELY(count < 1 || count > 4)) return throw_wrong_arguments("idn_to_utf8", count, 1, 4, 1);
CVarRef arg0(a0);
if (count <= 1) return (x_idn_to_utf8(arg0));
VRefParam arg1(vref(a1));
return (x_idn_to_utf8(arg0, arg1));
CVarRef arg1(a1);
if (count <= 2) return (x_idn_to_utf8(arg0, arg1));
CVarRef arg2(a2);
if (count <= 3) return (x_idn_to_utf8(arg0, arg1, arg2));
VRefParam arg3(vref(a3));
return (x_idn_to_utf8(arg0, arg1, arg2, arg3));
}
Variant i_idn_to_utf8(void *extra, CArrRef params) {
return invoke_func_few_handler(extra, params, &ifa_idn_to_utf8);
@@ -22079,7 +22091,7 @@ extern const CallInfo ci_magickrollimage = {(void*)&i_magickrollimage, (void*)&i
extern const CallInfo ci_get_headers = {(void*)&i_get_headers, (void*)&ifa_get_headers, 2, 0, 0x0000000000000000L};
extern const CallInfo ci_inclued_get_data = {(void*)&i_inclued_get_data, (void*)&ifa_inclued_get_data, 0, 0, 0x0000000000000000L};
extern const CallInfo ci_pixelgetblack = {(void*)&i_pixelgetblack, (void*)&ifa_pixelgetblack, 1, 0, 0x0000000000000000L};
extern const CallInfo ci_idn_to_ascii = {(void*)&i_idn_to_ascii, (void*)&ifa_idn_to_ascii, 2, 0, 0x0000000000000002L};
extern const CallInfo ci_idn_to_ascii = {(void*)&i_idn_to_ascii, (void*)&ifa_idn_to_ascii, 4, 0, 0x0000000000000008L};
extern const CallInfo ci_magickgetimageblob = {(void*)&i_magickgetimageblob, (void*)&ifa_magickgetimageblob, 1, 0, 0x0000000000000000L};
extern const CallInfo ci_imagecolorsforindex = {(void*)&i_imagecolorsforindex, (void*)&ifa_imagecolorsforindex, 2, 0, 0x0000000000000000L};
extern const CallInfo ci_diskfreespace = {(void*)&i_diskfreespace, (void*)&ifa_diskfreespace, 1, 0, 0x0000000000000000L};
@@ -22477,7 +22489,7 @@ extern const CallInfo ci_imap_set_quota = {(void*)&i_imap_set_quota, (void*)&ifa
extern const CallInfo ci_xbox_schedule_thread_reset = {(void*)&i_xbox_schedule_thread_reset, (void*)&ifa_xbox_schedule_thread_reset, 0, 0, 0x0000000000000000L};
extern const CallInfo ci_mysql_query = {(void*)&i_mysql_query, (void*)&ifa_mysql_query, 2, 0, 0x0000000000000000L};
extern const CallInfo ci_posix_getuid = {(void*)&i_posix_getuid, (void*)&ifa_posix_getuid, 0, 0, 0x0000000000000000L};
extern const CallInfo ci_idn_to_unicode = {(void*)&i_idn_to_unicode, (void*)&ifa_idn_to_unicode, 2, 0, 0x0000000000000002L};
extern const CallInfo ci_idn_to_unicode = {(void*)&i_idn_to_unicode, (void*)&ifa_idn_to_unicode, 4, 0, 0x0000000000000008L};
extern const CallInfo ci_imap_check = {(void*)&i_imap_check, (void*)&ifa_imap_check, 1, 0, 0x0000000000000000L};
extern const CallInfo ci_magickgetimagesize = {(void*)&i_magickgetimagesize, (void*)&ifa_magickgetimagesize, 1, 0, 0x0000000000000000L};
extern const CallInfo ci_openssl_private_encrypt = {(void*)&i_openssl_private_encrypt, (void*)&ifa_openssl_private_encrypt, 4, 0, 0x0000000000000002L};
@@ -22791,7 +22803,7 @@ extern const CallInfo ci_ob_clean = {(void*)&i_ob_clean, (void*)&ifa_ob_clean, 0
extern const CallInfo ci_magickgetimagechannelmean = {(void*)&i_magickgetimagechannelmean, (void*)&ifa_magickgetimagechannelmean, 2, 0, 0x0000000000000000L};
extern const CallInfo ci_curl_error = {(void*)&i_curl_error, (void*)&ifa_curl_error, 1, 0, 0x0000000000000000L};
extern const CallInfo ci_override_function = {(void*)&i_override_function, (void*)&ifa_override_function, 3, 0, 0x0000000000000000L};
extern const CallInfo ci_idn_to_utf8 = {(void*)&i_idn_to_utf8, (void*)&ifa_idn_to_utf8, 2, 0, 0x0000000000000002L};
extern const CallInfo ci_idn_to_utf8 = {(void*)&i_idn_to_utf8, (void*)&ifa_idn_to_utf8, 4, 0, 0x0000000000000008L};
extern const CallInfo ci_asio_exit_context = {(void*)&i_asio_exit_context, (void*)&ifa_asio_exit_context, 0, 0, 0x0000000000000000L};
extern const CallInfo ci_magickadaptivethresholdimage = {(void*)&i_magickadaptivethresholdimage, (void*)&ifa_magickadaptivethresholdimage, 4, 0, 0x0000000000000000L};
extern const CallInfo ci_imagecolortransparent = {(void*)&i_imagecolortransparent, (void*)&ifa_imagecolortransparent, 2, 0, 0x0000000000000000L};
+18 -18
Ver Arquivo
Diff do arquivo suprimido porque uma ou mais linhas são muito longas
+15 -14
Ver Arquivo
@@ -116,44 +116,45 @@ bool TestExtIntl::test_collator_sort() {
}
bool TestExtIntl::test_idn_to_ascii() {
Variant errorcode;
VS(f_idn_to_ascii("www.m\xc3\xa5nsjonasson.se", errorcode),
VS(f_idn_to_ascii("www.m\xc3\xa5nsjonasson.se"),
"www.xn--mnsjonasson-x8a.se");
VS(f_idn_to_ascii("www.facebook.com", errorcode),
VS(f_idn_to_ascii("www.facebook.com"),
"www.facebook.com");
VS(f_idn_to_ascii("www.xn--m\xc3\xa5nsjonasson.se", errorcode),
VS(f_idn_to_ascii("www.xn--m\xc3\xa5nsjonasson.se"),
false);
VS(f_idn_to_ascii("www.12345678901234567890123456789"
"012345678901234m\xc3\xa5nsjonasson.se", errorcode),
"012345678901234m\xc3\xa5nsjonasson.se"),
"www.xn--123456789012345678901234567890123456789"
"01234mnsjonasson-5we.se");
VS(f_idn_to_ascii("www.12345678901234567890123456789"
"0123456789012345m\xc3\xa5nsjonasson.se", errorcode),
"0123456789012345m\xc3\xa5nsjonasson.se"),
false);
VS(f_idn_to_ascii("\u1937ai\u18ed-\u18f0.tk", 1),
"xn--ai--youq53b.tk")
VS(f_idn_to_ascii("\u1937ai\u18ed-\u18f0.tk", 0),
false)
return Count(true);
}
bool TestExtIntl::test_idn_to_unicode() {
Variant errorcode;
VS(f_idn_to_unicode("www.xn--mnsjonasson-x8a.se", errorcode),
VS(f_idn_to_unicode("www.xn--mnsjonasson-x8a.se"),
"www.m\xc3\xa5nsjonasson.se");
VS(f_idn_to_unicode("www.facebook.com", errorcode),
VS(f_idn_to_unicode("www.facebook.com"),
"www.facebook.com");
VS(f_idn_to_unicode("www.xn--12345678901234567890123456789"
"012345678901234mnsjonasson-5we.se", errorcode),
"012345678901234mnsjonasson-5we.se"),
"www.12345678901234567890123456789"
"012345678901234m\xc3\xa5nsjonasson.se");
return Count(true);
}
bool TestExtIntl::test_idn_to_utf8() {
Variant errorcode;
VS(f_idn_to_utf8("www.xn--mnsjonasson-x8a.se", errorcode),
VS(f_idn_to_utf8("www.xn--mnsjonasson-x8a.se"),
"www.m\xc3\xa5nsjonasson.se");
VS(f_idn_to_utf8("www.facebook.com", errorcode),
VS(f_idn_to_utf8("www.facebook.com"),
"www.facebook.com");
VS(f_idn_to_utf8("www.xn--12345678901234567890123456789"
"012345678901234mnsjonasson-5we.se", errorcode),
"012345678901234mnsjonasson-5we.se"),
"www.12345678901234567890123456789"
"012345678901234m\xc3\xa5nsjonasson.se");
return Count(true);
+1 -1
Ver Arquivo
@@ -1,2 +1,2 @@
#!/bin/bash
sed -e 's/ in \/.*hphp/ in hphp/g' -e 's/^\(object([^)]\+)\)#[0-9]\+/\1/g'
./test/vm/filepath.filter | sed -e 's/^\(object([^)]\+)\)#[0-9]\+/\1/g'
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/ in \/.*hphp/ in hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
+1 -1
Ver Arquivo
@@ -1,2 +1,2 @@
#!/bin/bash
sed -e 's/ \/.*hphp/ hphp/g' | sed -e 's/ $/ <-- trailing whitespace/g'
./test/vm/filepath.filter | sed -e 's/ $/ <-- trailing whitespace/g'
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's,/.*hphp,hphp,g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/in \/.*hphp/in hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
+1 -1
Ver Arquivo
@@ -1,2 +1,2 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g' | sed -e 's/^\(object([^)]\+)\)#[0-9]\+/\1/g'
./test/vm/filepath.filter | sed -e 's/^\(object([^)]\+)\)#[0-9]\+/\1/g'
-3
Ver Arquivo
@@ -1,3 +0,0 @@
#!/bin/bash
sed -e 's, in [^ ]*hphp/, in hphp/,'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-3
Ver Arquivo
@@ -1,3 +0,0 @@
#!/bin/bash
sed -e 's, [^ ]*\(hphp/.*\)$, \1,g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-3
Ver Arquivo
@@ -1,3 +0,0 @@
#!/bin/bash
sed -e 's, [^ ]*\(hphp/.*\)$, \1,g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's,/.*hphp,hphp,g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-3
Ver Arquivo
@@ -1,3 +0,0 @@
#!/bin/bash
sed -e 's, [^ ]*hphp/, hphp/,g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-3
Ver Arquivo
@@ -1,3 +0,0 @@
#!/bin/bash
sed -e 's, [^ ]*hphp/, hphp/,g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
@@ -1,3 +0,0 @@
#!/bin/bash
sed -e 's, [^ ]*\(hphp/.*\)$, \1,g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's, in [^ ]*hphp/, in hphp/,'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's, in [^ ]*hphp/, in hphp/,'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's, in [^ ]*hphp/, in hphp/,'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-3
Ver Arquivo
@@ -1,3 +0,0 @@
#!/bin/bash
sed -e 's, [^ ]*hphp/, hphp/,g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-3
Ver Arquivo
@@ -1,3 +0,0 @@
#!/bin/bash
sed -e 's, [^ ]*hphp/, hphp/,g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-3
Ver Arquivo
@@ -1,3 +0,0 @@
#!/bin/bash
sed -e 's, [^ ]*hphp/, hphp/,g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
+20 -20
Ver Arquivo
@@ -1,46 +1,46 @@
Test begin
HipHop Notice: Use of undefined constant CN - assumed 'CN'
HipHop Notice: Use of undefined constant CN - assumed 'CN' in hphp/test/vm/constants.php on line 16
string(2) "CN"
HipHop Notice: Use of undefined constant CB - assumed 'CB'
HipHop Notice: Use of undefined constant CB - assumed 'CB' in hphp/test/vm/constants.php on line 17
string(2) "CB"
HipHop Notice: Use of undefined constant CI - assumed 'CI'
HipHop Notice: Use of undefined constant CI - assumed 'CI' in hphp/test/vm/constants.php on line 18
string(2) "CI"
HipHop Notice: Use of undefined constant CD - assumed 'CD'
HipHop Notice: Use of undefined constant CD - assumed 'CD' in hphp/test/vm/constants.php on line 19
string(2) "CD"
HipHop Notice: Use of undefined constant CS - assumed 'CS'
HipHop Notice: Use of undefined constant CS - assumed 'CS' in hphp/test/vm/constants.php on line 20
string(2) "CS"
Enter f()
HipHop Notice: Use of undefined constant CN - assumed 'CN'
HipHop Notice: Use of undefined constant CN - assumed 'CN' in hphp/test/vm/constants.php on line 5
string(2) "CN"
HipHop Notice: Use of undefined constant CB - assumed 'CB'
HipHop Notice: Use of undefined constant CB - assumed 'CB' in hphp/test/vm/constants.php on line 6
string(2) "CB"
HipHop Notice: Use of undefined constant CI - assumed 'CI'
HipHop Notice: Use of undefined constant CI - assumed 'CI' in hphp/test/vm/constants.php on line 7
string(2) "CI"
HipHop Notice: Use of undefined constant CD - assumed 'CD'
HipHop Notice: Use of undefined constant CD - assumed 'CD' in hphp/test/vm/constants.php on line 8
string(2) "CD"
HipHop Notice: Use of undefined constant CS - assumed 'CS'
HipHop Notice: Use of undefined constant CS - assumed 'CS' in hphp/test/vm/constants.php on line 9
string(2) "CS"
Leave f()
HipHop Notice: Use of undefined constant CN - assumed 'CN'
HipHop Notice: Use of undefined constant CN - assumed 'CN' in hphp/test/vm/constants.php on line 22
string(2) "CN"
HipHop Notice: Use of undefined constant CB - assumed 'CB'
HipHop Notice: Use of undefined constant CB - assumed 'CB' in hphp/test/vm/constants.php on line 23
string(2) "CB"
HipHop Notice: Use of undefined constant CI - assumed 'CI'
HipHop Notice: Use of undefined constant CI - assumed 'CI' in hphp/test/vm/constants.php on line 24
string(2) "CI"
HipHop Notice: Use of undefined constant CD - assumed 'CD'
HipHop Notice: Use of undefined constant CD - assumed 'CD' in hphp/test/vm/constants.php on line 25
string(2) "CD"
HipHop Notice: Use of undefined constant CS - assumed 'CS'
HipHop Notice: Use of undefined constant CS - assumed 'CS' in hphp/test/vm/constants.php on line 26
string(2) "CS"
Enter f()
HipHop Notice: Use of undefined constant CN - assumed 'CN'
HipHop Notice: Use of undefined constant CN - assumed 'CN' in hphp/test/vm/constants.php on line 5
string(2) "CN"
HipHop Notice: Use of undefined constant CB - assumed 'CB'
HipHop Notice: Use of undefined constant CB - assumed 'CB' in hphp/test/vm/constants.php on line 6
string(2) "CB"
HipHop Notice: Use of undefined constant CI - assumed 'CI'
HipHop Notice: Use of undefined constant CI - assumed 'CI' in hphp/test/vm/constants.php on line 7
string(2) "CI"
HipHop Notice: Use of undefined constant CD - assumed 'CD'
HipHop Notice: Use of undefined constant CD - assumed 'CD' in hphp/test/vm/constants.php on line 8
string(2) "CD"
HipHop Notice: Use of undefined constant CS - assumed 'CS'
HipHop Notice: Use of undefined constant CS - assumed 'CS' in hphp/test/vm/constants.php on line 9
string(2) "CS"
Leave f()
NULL
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/ in \/.*hphp.*$//g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
@@ -1,4 +0,0 @@
#!/bin/bash
sed -e 's, [^ ]*\(hphp/[^ (]*\), \1,g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
+1 -1
Ver Arquivo
@@ -3,7 +3,7 @@ Going to enable
Enabled
Done enabling
array(1) {
["hphp/test/vm/coverage.php"]=>
hphp/test/vm/coverage.php"]=>
array(27) {
[4]=>
int(4)
-3
Ver Arquivo
@@ -1,3 +0,0 @@
#!/bin/bash
sed -e 's,"[^ ]*hphp/,"hphp/,g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter
-2
Ver Arquivo
@@ -1,2 +0,0 @@
#!/bin/bash
sed -e 's/\/.*hphp/hphp/g'
+1
Ver Arquivo
@@ -0,0 +1 @@
filepath.filter

Alguns arquivos não foram exibidos porque demasiados arquivos foram alterados neste diff Mostrar Mais