Commit graph

229 commits

Author SHA1 Message Date
Christoph M. Becker
9b1c02c2df Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Fix #77594: ob_tidyhandler is never reset
2020-11-22 14:04:59 +01:00
Christoph M. Becker
221345a013 Fix #77594: ob_tidyhandler is never reset
We reset to original INI value on request shutdown.

Closes GH-6425.
2020-11-22 14:02:29 +01:00
Nikita Popov
6de6f2a4e9 Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Don't crash on uninitialized tidy object
2020-10-22 16:05:57 +02:00
Nikita Popov
85d9a1ca6e Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Don't crash on uninitialized tidy object
2020-10-22 16:05:34 +02:00
Nikita Popov
d4bf0799b8 Don't crash on uninitialized tidy object
"Uninitialized" here means that the object was created ordinarily
-- no constructor skipping involved. Most tidy methods seem to
handle this fine, but these three need to be guarded.
2020-10-22 16:04:22 +02:00
Christoph M. Becker
c774619118 Merge branch 'PHP-7.4' into master
* PHP-7.4:
  Fix #77040: tidyNode::isHtml() is completely broken
2020-10-07 17:50:24 +02:00
Christoph M. Becker
ff3878adeb Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fix #77040: tidyNode::isHtml() is completely broken
2020-10-07 17:48:12 +02:00
Christoph M. Becker
e68acd031d Fix #77040: tidyNode::isHtml() is completely broken
The documentation of `tidyNode::isHtml()` states that this method
"checks if a node is part of a HTML document".  That is, of course,
nonsense, since a tidyNode is "an HTML node in an HTML file, as
detected by tidy."

What this method is actually supposed to do is to check whether a node
is an element (unless it is the root element).  This has been broken by
commit d8eeb8e[1], which assumed that `enum TidyNodeType` would
represent flags of a bitmask, what it does not.

[1] <http://git.php.net/?p=php-src.git;a=commit;h=d8eeb8e28673236bca3f066ded75037a5bdf6378>

Closes GH-6290.
2020-10-07 17:43:56 +02:00
Máté Kocsis
c98d47696f
Consolidate new union type ZPP macro names
They will now follow the canonical order of types. Older macros are
left intact due to maintaining BC.

Closes GH-6112
2020-09-11 11:00:18 +02:00
Máté Kocsis
628db3f3b5
Fix UNKNOWN default values in various extensions
Closes GH-6075
2020-09-07 19:02:02 +02:00
Máté Kocsis
f7fbc6333f
Add more precise type info for stubs
Closes GH-6005
2020-09-01 16:35:56 +02:00
Máté Kocsis
7476d2c188
Promote warnings to exceptions in ext/tidy
Closes GH-6051
2020-09-01 14:18:02 +02:00
Max Semenik
2b5de6f839
Remove proto comments from C files
Closes GH-5758
2020-07-06 21:13:34 +02:00
George Peter Banyard
bc9497695e Fix [-Wundef] warning in Tidy extension 2020-05-18 00:37:18 +02:00
Máté Kocsis
c5fb4f0794
Generate function entries from stubs for a couple of extensions
Migrates ext/standard, ext/tidy, ext/tokenizer,
ext/xml, ext/xml_reader, and ext/xml_writer. Closes GH-5381.
2020-04-14 11:49:02 +02:00
Máté Kocsis
1b93cfee0c
Use RETURN_THROWS() after zend_parse_method_parameters() 2020-01-02 23:01:37 +01:00
Máté Kocsis
345703724c
Use RETURN_THROWS() during ZPP in most of the extensions
Except for some bigger ones: reflection, sodium, spl
2019-12-31 11:46:11 +01:00
Gabriel Caruso
5d6e923d46
Remove mention of PHP major version in Copyright headers
Closes GH-4732.
2019-09-25 14:51:43 +02:00
Christoph M. Becker
3213e1e776 Just return on ZPP exception
No need to return FALSE.
2019-09-22 16:39:02 +02:00
Christoph M. Becker
5356bad8c6 Remove unused parameter
The `$use_include_path` parameter doesn't make sense for
`tidy_repair_string()`, and actually unused, so we remove it.
2019-09-22 16:28:42 +02:00
Christoph M. Becker
7f36328bf0 Add ext/tidy stubs 2019-09-22 16:18:33 +02:00
Christoph M. Becker
6072fe4342 Properly use zend_parse_method_parameters()
`zend_parse_method_parameters()` is meant for dual (procedural and OO)
APIs; there is no need to attempt to get "this" first, and to dispatch
to `zend_parse_parameters()` and `zend_parse_method_parameters()`,
respectively.
2019-09-22 16:18:33 +02:00
Nikita Popov
452076de44 Merge branch 'PHP-7.4' 2019-06-19 17:27:29 +02:00
Nikita Popov
608097a901 Fix various instances of memcpy null ub 2019-06-19 17:27:09 +02:00
Tyson Andre
c7d339a9d0 Indicate that tidy's object methods expect 0 args
This prevents subclasses from being written with incompatible
implementations, e.g. expecting more required args.
2019-02-19 09:41:47 +01:00
Nikita Popov
879cd04913 Merge branch 'PHP-7.4' 2019-02-18 17:51:41 +01:00
Tyson Andre
8588a45851 Fix arginfo for tidy's global functions
See https://secure.php.net/tidy_getopt , etc.

I can't find any other obvious incorrect reflection.
2019-02-18 17:49:02 +01:00
Dmitry Stogov
91ef4124e5 Refactor zend_object_handlers API to pass zend_object* and zend_string* insted of zval(s). 2019-02-04 13:20:25 +03:00
Peter Kokot
92ac598aab Remove local variables
This patch removes the so called local variables defined per
file basis for certain editors to properly show tab width, and
similar settings. These are mainly used by Vim and Emacs editors
yet with recent changes the once working definitions don't work
anymore in Vim without custom plugins or additional configuration.
Neither are these settings synced across the PHP code base.

A simpler and better approach is EditorConfig and fixing code
using some code style fixing tools in the future instead.

This patch also removes the so called modelines for Vim. Modelines
allow Vim editor specifically to set some editor configuration such as
syntax highlighting, indentation style and tab width to be set in the
first line or the last 5 lines per file basis. Since the php test
files have syntax highlighting already set in most editors properly and
EditorConfig takes care of the indentation settings, this patch removes
these as well for the Vim 6.0 and newer versions.

With the removal of local variables for certain editors such as
Emacs and Vim, the footer is also probably not needed anymore when
creating extensions using ext_skel.php script.

Additionally, Vim modelines for setting php syntax and some editor
settings has been removed from some *.phpt files.  All these are
mostly not relevant for phpt files neither work properly in the
middle of the file.
2019-02-03 21:03:00 +01:00
Zeev Suraski
0cf7de1c70 Remove yearly range from copyright notice 2019-01-30 11:03:12 +02:00
Christoph M. Becker
0d6490598d Add TIDY_TAG_* constants supported by libtidy 5
Cf. <http://api.html-tidy.org/tidy/tidylib_api_5.0.0/tidyenum_8h.html#ae5b597c0999422ff383f08ab595ef5e8a16d20becf3c3cb022ddabccc83d8c314>.
2018-10-27 16:17:09 +02:00
Tyson Andre
dcd4b32185 Fix arginfo for tidy::__construct()
This was split out of PR #3439

Previously, the arginfo was wrong for these methods.
getNumberOfRequiredParameters() was 4 for that method.
Compare with http://php.net/manual/en/tidy.construct.php)

This fixes the arginfo added to PHP 7.3 in 97353cda99
2018-08-13 16:09:32 +02:00
Peter Kokot
cf6b24ccda Sync tidy phpinfo extension version
This patch removes the tidy extension Git ident attribute blob name from
the phpinfo output to be synced with other extensions versioning system
and replaces table header with normal row in the first tidy info table.
2018-06-04 17:10:49 +02:00
Dmitry Stogov
f2b4ec4bdc Export standard object handlers, to avoid indirect access 2018-05-31 11:57:22 +03:00
Dmitry Stogov
5eb1f92f31 Use zend_string_release_ex() instread of zend_string_release() in places, where we sure about string persistence. 2018-05-28 16:27:12 +03:00
Gabriel Caruso
701437a948
Remove return types from some magic method in protos
__construct, __destruct, __wakeup does not have return types defined.
2018-03-09 12:04:46 +01:00
Gabriel Caruso
97353cda99
Fixes for #74707 some methods of tidy class didn't have arginfo declared 2018-02-12 09:30:23 +01:00
Gabriel Caruso
78ed55d7b7 Fixed bug #74707
Several tidy functions receive a tidy object as mandatory parameter
2018-02-10 19:10:01 +01:00
Gabriel Caruso
affc20f891 Use bool instead of boolean in proto 2018-02-04 17:00:24 +01:00
Anatol Belski
9edf2e9f96 Show the tidyp name, if it was used 2018-01-25 18:55:54 +01:00
David Carlier
e7da9685cf Tidy extension update to be able to either use tidy or tidyp at configure time 2018-01-25 18:28:55 +01:00
Xinchen Hui
a6519d0514 year++ 2018-01-02 12:57:58 +08:00
Nikita Popov
b2b2b437af Add _IS_NUMBER as cast_object() target type
convert_scalar_to_number() will now call cast_object() with an
_IS_NUMBER argument, in which case the cast handler should return
either an integer or floating point number, whichever is more
appropriate.

Previously convert_scalar_to_number() unconditionally converted
objects to integers instead.

Fixes bug #53033.
Fixes bug #54973.
Fixes bug #73108.
2017-12-26 12:39:06 +01:00
Dmitry Stogov
6a9d2b2190 Cleanup type conversion 2017-12-07 19:24:55 +03:00
Nikita Popov
b72b1a4e4d Add zend_object_alloc() API
Using ecalloc() to create objects is expensive, because the
dynamic-size memset() is unreasonably slow. Make sure we only
zero the main object structure with known size, as the properties
are intialized separately anyway.

Technically we do not need to zero the embedded zend_object
structure either, but as long as the memset argument is constant,
a couple more bytes don't really matter.
2017-11-25 17:12:37 +01:00
Sammy Kaye Powers
9e29f841ce Update copyright headers to 2017 2017-01-02 09:30:12 -06:00
Anatol Belski
b204b3abd1 further normalizations, uint vs uint32_t
fix merge mistake

yet one more replacement run
2016-11-26 17:29:01 +01:00
Anatol Belski
1223f7f91b show libtidy version in the info, if available 2016-07-11 19:18:57 +02:00
Michael Orlitzky
a552ac5bd5 ext/tidy: add support for the new tidy-html5 library.
Our existing libtidy support is based on the legacy "HTML tidy"
project. That project now has a successor called tidy-html5, where all
new features and bugfixes happen. Of particular note are the fixes for
two security vulnerabilities, CVE-2015-5522 and CVE-2015-5523.

The API is largely unchanged in the new project (which is truly the
successor of the original -- not a fork), and so it is almost a
drop-in replacement as far as PHP is concerned. However, one file has
changed in the new project: "buffio.h" has been moved to
"tidybuffio.h".

This commit detects the presence of tidybuffio.h at build time, and
then adjusts the import statement in tidy.c accordingly. The result is
a build that works against either the legacy project or the new
tidy-html5 project, although the test suite for the tidy extension now
fails. Those failures are not critical and will be fixed.

Gentoo-Bug: 561452
Gentoo-Bug: 585474
PHP-Bug: 72379
2016-07-11 14:05:43 +02:00
Aaron Piotrowski
771e5cc247 Replace zend_ce_error with NULL and replace more E_ERROR with thrown Error 2016-06-13 09:02:17 -05:00