[prev in list] [next in list] [prev in thread] [next in thread]
List: php-doc-cvs
Subject: [DOC-CVS] [doc-en] master: Fix #81383: Locale::lookup / locale_lookup incorrectly returns null inste
From: "Adrien Crivelli via Christoph M. Becker" <noreply () php ! net>
Date: 2021-08-27 12:41:32
Message-ID: 4w8DufP6ityGBlwGTAzMHU05x5iCGVjlhpfzGxw () main ! php ! net
[Download RAW message or body]
Author: Adrien Crivelli (PowerKiKi)
Committer: Christoph M. Becker (cmb69)
Date: 2021-08-27T14:41:52+02:00
Commit: https://github.com/php/doc-en/commit/235297daeda99773f68ee59e2efff048e98c1dc5
Raw diff: https://github.com/php/doc-en/commit/235297daeda99773f68ee59e2efff048e98c1dc5.diff
Fix #81383: Locale::lookup / locale_lookup incorrectly returns null instead of \
default
INTL_MAX_LOCALE_LEN limits the length of accepted locale. Anything
longer than that will result in a failure and the value returned
will either be `null` or `false`. So documentation must reflect that
in the return types.
Co-authored-by: Christoph M. Becker <cmbecker69@gmx.de>
Closes GH-883.
Changed paths:
M language-snippets.ent
M reference/intl/locale/accept-from-http.xml
M reference/intl/locale/canonicalize.xml
M reference/intl/locale/filter-matches.xml
M reference/intl/locale/get-all-variants.xml
M reference/intl/locale/get-keywords.xml
M reference/intl/locale/get-primary-language.xml
M reference/intl/locale/get-region.xml
M reference/intl/locale/lookup.xml
M reference/intl/locale/parse-locale.xml
Diff:
diff --git a/language-snippets.ent b/language-snippets.ent
index e59c05dd5ea..de717575cf2 100644
--- a/language-snippets.ent
+++ b/language-snippets.ent
@@ -1010,6 +1010,8 @@ Passing untrusted data to this parameter is \
<emphasis>insecure</emphasis>, unles
<!ENTITY intl.codepoint.example 'Testing different code points'>
+<!ENTITY intl.locale-len.return '<para xmlns="http://docbook.org/ns/docbook">Returns \
&null; when the length of <parameter>locale</parameter> exceeds \
<constant>INTL_MAX_LOCALE_LEN</constant>.</para>'> +
<!ENTITY intl.property.parameter '<para xmlns="http://docbook.org/ns/docbook">The \
Unicode property to lookup (see the <literal>IntlChar::PROPERTY_*</literal> \
constants).</para>'>
<!ENTITY intl.property.example 'Testing different properties'>
diff --git a/reference/intl/locale/accept-from-http.xml \
b/reference/intl/locale/accept-from-http.xml index b84ba84c049..4553ec4c86a 100644
--- a/reference/intl/locale/accept-from-http.xml
+++ b/reference/intl/locale/accept-from-http.xml
@@ -15,7 +15,7 @@
<methodsynopsis>
<modifier>public</modifier>
<modifier>static</modifier>
- <type>string</type>
+ <type class="union"><type>string</type><type>false</type></type>
<methodname>Locale::acceptFromHttp</methodname>
<methodparam><type>string</type><parameter>header</parameter></methodparam>
</methodsynopsis>
@@ -23,7 +23,7 @@
&style.procedural;
</para>
<methodsynopsis>
- <type>string</type>
+ <type class="union"><type>string</type><type>false</type></type>
<methodname>locale_accept_from_http</methodname>
<methodparam><type>string</type><parameter>header</parameter></methodparam>
</methodsynopsis>
@@ -55,6 +55,10 @@
<para>
The corresponding locale identifier.
</para>
+ <para>
+ Returns &false; when the length of <parameter>header</parameter> exceeds
+ <constant>INTL_MAX_LOCALE_LEN</constant>.
+ </para>
</refsect1>
<refsect1 role="examples">
diff --git a/reference/intl/locale/canonicalize.xml \
b/reference/intl/locale/canonicalize.xml index 501d6a46bab..af7d971e24a 100644
--- a/reference/intl/locale/canonicalize.xml
+++ b/reference/intl/locale/canonicalize.xml
@@ -11,7 +11,9 @@
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
- <modifier>public</modifier> <modifier>static</modifier> \
<type>string</type><methodname>Locale::canonicalize</methodname> + \
<modifier>public</modifier> <modifier>static</modifier> + <type \
class="union"><type>string</type><type>null</type></type> + \
<methodname>Locale::canonicalize</methodname> \
<methodparam><type>string</type><parameter>locale</parameter></methodparam> \
</methodsynopsis> <para>
@@ -29,7 +31,7 @@
<term><parameter>locale</parameter></term>
<listitem>
<para>
-
+
</para>
</listitem>
</varlistentry>
@@ -39,8 +41,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
-
+ Canonicalized locale string.
</para>
+ &intl.locale-len.return;
</refsect1>
diff --git a/reference/intl/locale/filter-matches.xml \
b/reference/intl/locale/filter-matches.xml index ab72498c4ee..30feb51cc3d 100644
--- a/reference/intl/locale/filter-matches.xml
+++ b/reference/intl/locale/filter-matches.xml
@@ -15,7 +15,7 @@
<methodsynopsis>
<modifier>public</modifier>
<modifier>static</modifier>
- <type>bool</type>
+ <type class="union"><type>bool</type><type>null</type></type>
<methodname>Locale::filterMatches</methodname>
<methodparam><type>string</type><parameter>langtag</parameter></methodparam>
<methodparam><type>string</type><parameter>locale</parameter></methodparam>
@@ -25,7 +25,7 @@
&style.procedural;
</para>
<methodsynopsis>
- <type>bool</type>
+ <type class="union"><type>bool</type><type>null</type></type>
<methodname>locale_filter_matches</methodname>
<methodparam><type>string</type><parameter>langtag</parameter></methodparam>
<methodparam><type>string</type><parameter>locale</parameter></methodparam>
@@ -62,7 +62,7 @@
<listitem>
<para>
If true, the arguments will be converted to canonical form before
- matching.
+ matching.
</para>
</listitem>
</varlistentry>
@@ -76,6 +76,7 @@
<para>
&true; if $locale matches $langtag &false; otherwise.
</para>
+ &intl.locale-len.return;
</refsect1>
<refsect1 role="examples">
@@ -85,9 +86,9 @@
<programlisting role="php">
<![CDATA[
<?php
-echo (locale_filter_matches('de-DEVA','de-DE', false)) ? "Matches" : "Does not \
match"; +echo (locale_filter_matches('de-DEVA','de-DE', false)) ? "Matches" : "Does \
not match"; echo '; ';
-echo (locale_filter_matches('de-DE_1996','de-DE', false)) ? "Matches" : "Does not \
match"; +echo (locale_filter_matches('de-DE_1996','de-DE', false)) ? "Matches" : \
"Does not match"; ?>
]]>
</programlisting>
@@ -97,9 +98,9 @@ echo (locale_filter_matches('de-DE_1996','de-DE', false)) ? \
"Matches" : "Does no <programlisting role="php">
<![CDATA[
<?php
-echo (Locale::filterMatches('de-DEVA','de-DE', false)) ? "Matches" : "Does not \
match"; +echo (Locale::filterMatches('de-DEVA','de-DE', false)) ? "Matches" : "Does \
not match"; echo '; ';
-echo (Locale::filterMatches('de-DE-1996','de-DE', false)) ? "Matches" : "Does not \
match"; +echo (Locale::filterMatches('de-DE-1996','de-DE', false)) ? "Matches" : \
"Does not match"; ?>
]]>
</programlisting>
diff --git a/reference/intl/locale/get-all-variants.xml \
b/reference/intl/locale/get-all-variants.xml index cd05ef1734c..b841075af79 100644
--- a/reference/intl/locale/get-all-variants.xml
+++ b/reference/intl/locale/get-all-variants.xml
@@ -15,7 +15,7 @@
<methodsynopsis>
<modifier>public</modifier>
<modifier>static</modifier>
- <type>array</type>
+ <type class="union"><type>array</type><type>null</type></type>
<methodname>Locale::getAllVariants</methodname>
<methodparam><type>string</type><parameter>locale</parameter></methodparam>
</methodsynopsis>
@@ -23,7 +23,7 @@
&style.procedural;
</para>
<methodsynopsis>
- <type>array</type>
+ <type class="union"><type>array</type><type>null</type></type>
<methodname>locale_get_all_variants</methodname>
<methodparam><type>string</type><parameter>locale</parameter></methodparam>
</methodsynopsis>
@@ -52,9 +52,10 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
- The <type>array</type> containing the list of all variants subtag for the locale
+ The <type>array</type> containing the list of all variants subtag for the locale
or &null; if not present
</para>
+ &intl.locale-len.return;
</refsect1>
<refsect1 role="examples">
diff --git a/reference/intl/locale/get-keywords.xml \
b/reference/intl/locale/get-keywords.xml index c546cdea969..5832058b05f 100644
--- a/reference/intl/locale/get-keywords.xml
+++ b/reference/intl/locale/get-keywords.xml
@@ -15,7 +15,7 @@
<methodsynopsis>
<modifier>public</modifier>
<modifier>static</modifier>
- <type>array</type>
+ <type class="union"><type>array</type><type>null</type></type>
<methodname>Locale::getKeywords</methodname>
<methodparam><type>string</type><parameter>locale</parameter></methodparam>
</methodsynopsis>
@@ -23,7 +23,7 @@
&style.procedural;
</para>
<methodsynopsis>
- <type>array</type>
+ <type class="union"><type>array</type><type>null</type></type>
<methodname>locale_get_keywords</methodname>
<methodparam><type>string</type><parameter>locale</parameter></methodparam>
</methodsynopsis>
@@ -54,6 +54,7 @@
<para>
Associative <type>array</type> containing the keyword-value pairs for this locale
</para>
+ &intl.locale-len.return;
</refsect1>
<refsect1 role="examples">
@@ -66,7 +67,7 @@
$keywords_arr = locale_get_keywords('de_DE@currency=EUR;collation=PHONEBOOK');
if ($keywords_arr) {
foreach ($keywords_arr as $key => $value) {
- echo "$key = $value\n";
+ echo "$key = $value\n";
}
}
?>
@@ -81,7 +82,7 @@ if ($keywords_arr) {
$keywords_arr = Locale::getKeywords('de_DE@currency=EUR;collation=PHONEBOOK');
if ($keywords_arr) {
foreach ($keywords_arr as $key => $value) {
- echo "$key = $value\n";
+ echo "$key = $value\n";
}
}
?>
diff --git a/reference/intl/locale/get-primary-language.xml \
b/reference/intl/locale/get-primary-language.xml index f25d63a86a9..97d49898119 \
100644
--- a/reference/intl/locale/get-primary-language.xml
+++ b/reference/intl/locale/get-primary-language.xml
@@ -15,7 +15,7 @@
<methodsynopsis>
<modifier>public</modifier>
<modifier>static</modifier>
- <type>string</type>
+ <type class="union"><type>string</type><type>null</type></type>
<methodname>Locale::getPrimaryLanguage</methodname>
<methodparam><type>string</type><parameter>locale</parameter></methodparam>
</methodsynopsis>
@@ -23,7 +23,7 @@
&style.procedural;
</para>
<methodsynopsis>
- <type>string</type>
+ <type class="union"><type>string</type><type>null</type></type>
<methodname>locale_get_primary_language</methodname>
<methodparam><type>string</type><parameter>locale</parameter></methodparam>
</methodsynopsis>
@@ -52,8 +52,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
- The language code associated with the language or &null; in case of error.
+ The language code associated with the language.
</para>
+ &intl.locale-len.return;
</refsect1>
<refsect1 role="examples">
diff --git a/reference/intl/locale/get-region.xml \
b/reference/intl/locale/get-region.xml index 1ecf758dae3..eba93917d91 100644
--- a/reference/intl/locale/get-region.xml
+++ b/reference/intl/locale/get-region.xml
@@ -15,7 +15,7 @@
<methodsynopsis>
<modifier>public</modifier>
<modifier>static</modifier>
- <type>string</type>
+ <type class="union"><type>string</type><type>null</type></type>
<methodname>Locale::getRegion</methodname>
<methodparam><type>string</type><parameter>locale</parameter></methodparam>
</methodsynopsis>
@@ -23,7 +23,7 @@
&style.procedural;
</para>
<methodsynopsis>
- <type>string</type>
+ <type class="union"><type>string</type><type>null</type></type>
<methodname>locale_get_region</methodname>
<methodparam><type>string</type><parameter>locale</parameter></methodparam>
</methodsynopsis>
@@ -54,6 +54,7 @@
<para>
The region subtag for the locale or &null; if not present
</para>
+ &intl.locale-len.return;
</refsect1>
<refsect1 role="examples">
diff --git a/reference/intl/locale/lookup.xml b/reference/intl/locale/lookup.xml
index fb1d90ddb2d..9fd6ae7b800 100644
--- a/reference/intl/locale/lookup.xml
+++ b/reference/intl/locale/lookup.xml
@@ -15,7 +15,7 @@
<methodsynopsis>
<modifier>public</modifier>
<modifier>static</modifier>
- <type>string</type>
+ <type class="union"><type>string</type><type>null</type></type>
<methodname>Locale::lookup</methodname>
<methodparam><type>array</type><parameter>langtag</parameter></methodparam>
<methodparam><type>string</type><parameter>locale</parameter></methodparam>
@@ -26,7 +26,7 @@
&style.procedural;
</para>
<methodsynopsis>
- <type>string</type>
+ <type class="union"><type>string</type><type>null</type></type>
<methodname>locale_lookup</methodname>
<methodparam><type>array</type><parameter>langtag</parameter></methodparam>
<methodparam><type>string</type><parameter>locale</parameter></methodparam>
@@ -34,9 +34,9 @@
<methodparam choice="opt"><type>string</type><parameter>default</parameter></methodparam>
</methodsynopsis>
<para>
- Searches the items in <parameter>langtag</parameter> for the best match to
+ Searches the items in <parameter>langtag</parameter> for the best match to
the language range specified in <parameter>locale</parameter> according to
- RFC 4647's lookup algorithm.
+ RFC 4647's lookup algorithm.
</para>
</refsect1>
@@ -48,7 +48,7 @@
<term><parameter>langtag</parameter></term>
<listitem>
<para>
- An <type>array</type> containing a list of language tags to compare to
+ An <type>array</type> containing a list of language tags to compare to
<parameter>locale</parameter>. Maximum 100 items allowed.
</para>
</listitem>
@@ -90,6 +90,7 @@
<para>
The closest matching language tag or default value.
</para>
+ &intl.locale-len.return;
</refsect1>
<refsect1 role="examples">
diff --git a/reference/intl/locale/parse-locale.xml \
b/reference/intl/locale/parse-locale.xml index d6acbe7fc0c..a615d07f5a2 100644
--- a/reference/intl/locale/parse-locale.xml
+++ b/reference/intl/locale/parse-locale.xml
@@ -15,7 +15,7 @@
<methodsynopsis>
<modifier>public</modifier>
<modifier>static</modifier>
- <type>array</type>
+ <type class="union"><type>array</type><type>null</type></type>
<methodname>Locale::parseLocale</methodname>
<methodparam><type>string</type><parameter>locale</parameter></methodparam>
</methodsynopsis>
@@ -23,7 +23,7 @@
&style.procedural;
</para>
<methodsynopsis>
- <type>array</type>
+ <type class="union"><type>array</type><type>null</type></type>
<methodname>locale_parse</methodname>
<methodparam><type>string</type><parameter>locale</parameter></methodparam>
</methodsynopsis>
--
PHP Documentation Commits Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic