<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/php-git.git/ext/mbstring/php_unicode.h, branch php-7.3.3RC1</title>
<subtitle>git.php.net: repository/php-src.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/'/>
<entry>
<title>Sync leading and final newlines in source code files</title>
<updated>2018-10-14T10:55:24+00:00</updated>
<author>
<name>Peter Kokot</name>
<email>peterkokot@gmail.com</email>
</author>
<published>2018-10-14T10:55:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=1c850bfcca97e0456a716a1889b5cf6c5e477cd8'/>
<id>1c850bfcca97e0456a716a1889b5cf6c5e477cd8</id>
<content type='text'>
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines.

According to POSIX, a line is a sequence of zero or more non-' &lt;newline&gt;'
characters plus a terminating '&lt;newline&gt;' character. [1] Files should
normally have at least one final newline character.

C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."

Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines.

According to POSIX, a line is a sequence of zero or more non-' &lt;newline&gt;'
characters plus a terminating '&lt;newline&gt;' character. [1] Files should
normally have at least one final newline character.

C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."

Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed bug #76319</title>
<updated>2018-05-25T09:33:13+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2018-05-25T09:33:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=9d63f4dec1d180f2a9533d8b7b6b5c445917aee2'/>
<id>9d63f4dec1d180f2a9533d8b7b6b5c445917aee2</id>
<content type='text'>
While at it, also make sure that mbstring case conversion takes
into account the specified substitution character and substitution
mode.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While at it, also make sure that mbstring case conversion takes
into account the specified substitution character and substitution
mode.
</pre>
</div>
</content>
</entry>
<entry>
<title>year++</title>
<updated>2018-01-02T04:57:58+00:00</updated>
<author>
<name>Xinchen Hui</name>
<email>laruence@gmail.com</email>
</author>
<published>2018-01-02T04:57:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=a6519d051463f211fc1a23661e5dc4814bfbcf83'/>
<id>a6519d051463f211fc1a23661e5dc4814bfbcf83</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed bug #65544 and #71298</title>
<updated>2017-07-28T12:57:08+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2017-07-28T12:57:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=f4a1d9c8211fa7878af14d0bd94b2deaab19ae21'/>
<id>f4a1d9c8211fa7878af14d0bd94b2deaab19ae21</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement full case mapping</title>
<updated>2017-07-28T10:32:50+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2017-07-27T20:48:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=582a65b06f3de125887cab02d5c561168fcf94bc'/>
<id>582a65b06f3de125887cab02d5c561168fcf94bc</id>
<content type='text'>
Implement full case mapping according to SpecialCasing.txt and
also full case folding according to CaseFolding.txt (F). There
are a number of caveats:

* Only language-agnostic and unconditional full case mapping
  is implemented. The only language-agnostic conditional case
  mapping rule relates to Greek sigma in final position
  (Final_Sigma). Correctly handling this requires both arbitrary
  lookahead and lookbehind, which would require some larger
  changes to how the case mapping is implemented. This is a
  possible future extension.
* The only language-specific handling that is implemented is
  for Turkish dotted/undotted Is, if the ISO-8859-9 encoding
  is used. This matches the previous behavior and makes sure
  that no codepoints not supported by the encoding are
  produced. A future extension would be to also handle the
  Turkish mappings specified by SpecialCasing.txt based on
  the mbfl internal language.
* Full case folding is implemented, but case-insensitive mb_*
  operations continue to use simple case folding. The reason is
  that full case folding of the haystack string may change the
  position at which a match occurred. This would have to be
  mapped back into the position in the original string.
* mb_convert_case() exposes both the full and the simple case
  mapping / folding, where full is the default. The constants
  are:

   * MB_CASE_LOWER (used by mb_strtolower)
   * MB_CASE_UPPER (used by mb_strtolower)
   * MB_CASE_TITLE
   * MB_CASE_FOLD
   * MB_CASE_LOWER_SIMPLE
   * MB_CASE_UPPER_SIMPLE
   * MB_CASE_TITLE_SIMPLE
   * MB_CASE_FOLD_SIMPLE (used by case-insensitive operations)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implement full case mapping according to SpecialCasing.txt and
also full case folding according to CaseFolding.txt (F). There
are a number of caveats:

* Only language-agnostic and unconditional full case mapping
  is implemented. The only language-agnostic conditional case
  mapping rule relates to Greek sigma in final position
  (Final_Sigma). Correctly handling this requires both arbitrary
  lookahead and lookbehind, which would require some larger
  changes to how the case mapping is implemented. This is a
  possible future extension.
* The only language-specific handling that is implemented is
  for Turkish dotted/undotted Is, if the ISO-8859-9 encoding
  is used. This matches the previous behavior and makes sure
  that no codepoints not supported by the encoding are
  produced. A future extension would be to also handle the
  Turkish mappings specified by SpecialCasing.txt based on
  the mbfl internal language.
* Full case folding is implemented, but case-insensitive mb_*
  operations continue to use simple case folding. The reason is
  that full case folding of the haystack string may change the
  position at which a match occurred. This would have to be
  mapped back into the position in the original string.
* mb_convert_case() exposes both the full and the simple case
  mapping / folding, where full is the default. The constants
  are:

   * MB_CASE_LOWER (used by mb_strtolower)
   * MB_CASE_UPPER (used by mb_strtolower)
   * MB_CASE_TITLE
   * MB_CASE_FOLD
   * MB_CASE_LOWER_SIMPLE
   * MB_CASE_UPPER_SIMPLE
   * MB_CASE_TITLE_SIMPLE
   * MB_CASE_FOLD_SIMPLE (used by case-insensitive operations)
</pre>
</div>
</content>
</entry>
<entry>
<title>Use case-folding for case insensitive comparisons</title>
<updated>2017-07-28T10:32:50+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2017-07-27T18:39:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=9ac7c1e71d956ddac63b042be6ad8b105e584c10'/>
<id>9ac7c1e71d956ddac63b042be6ad8b105e584c10</id>
<content type='text'>
Instead of using lowercasing.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of using lowercasing.
</pre>
</div>
</content>
</entry>
<entry>
<title>Drop implementation-specific character properties</title>
<updated>2017-07-28T10:32:50+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2017-07-25T16:59:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=cedfc2f426745ff7538e633f11e935db2f2a1115'/>
<id>cedfc2f426745ff7538e633f11e935db2f2a1115</id>
<content type='text'>
No point in keeping around non-standard character properties if
we're not using them and most are not even being populated.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
No point in keeping around non-standard character properties if
we're not using them and most are not even being populated.
</pre>
</div>
</content>
</entry>
<entry>
<title>Optimize php_unicode_is_lower/upper for ASCII</title>
<updated>2017-07-20T11:58:40+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2017-07-20T09:48:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=79c26d597fd8245c30ee74faf05b8d6f9ece3fef'/>
<id>79c26d597fd8245c30ee74faf05b8d6f9ece3fef</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Directly accept encoding in php_unicode_convert_case()</title>
<updated>2017-07-19T21:59:42+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2017-07-19T21:50:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=9c73be898d4e5aa2e64b21da14797ec9ad202134'/>
<id>9c73be898d4e5aa2e64b21da14797ec9ad202134</id>
<content type='text'>
As a side-effect mb_strtolower() and mb_strtoupper() now correctly
handle a NULL encoding parameter by using the internal encoding.
This is what caused the two test changes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As a side-effect mb_strtolower() and mb_strtoupper() now correctly
handle a NULL encoding parameter by using the internal encoding.
This is what caused the two test changes.
</pre>
</div>
</content>
</entry>
<entry>
<title>Optimize php_unicode_is_prop()</title>
<updated>2017-07-19T21:59:42+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2017-07-19T21:06:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=4cf22cbb2d3b777cceb0087cdfd2a571aaf76850'/>
<id>4cf22cbb2d3b777cceb0087cdfd2a571aaf76850</id>
<content type='text'>
Do not try to extract the properties from a bitmask. Instead make
the function variadic and pass all properties individually.

Also add a php_unicode_is_prop1() function to check only a single
property.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Do not try to extract the properties from a bitmask. Instead make
the function variadic and pass all properties individually.

Also add a php_unicode_is_prop1() function to check only a single
property.
</pre>
</div>
</content>
</entry>
</feed>
