]> granicus.if.org Git - php/commit
intl: report more information about message pattern parse errors
authorPhilip Hofstetter <phofstetter@sensational.ch>
Fri, 9 Oct 2020 09:55:33 +0000 (11:55 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Mon, 12 Oct 2020 14:42:41 +0000 (16:42 +0200)
commit74cf2eb83fc664cbad2d619fd2662bee770d8f81
treedcdb7249cafa83980040846b550b415c7b3c36b1
parent216d6a024aeee19a7bd532d0ddaad2a4aff7e097
intl: report more information about message pattern parse errors

The message patterns can be pretty complex, so reporting a generic
U_PARSE_ERROR without any additional information makes it needlessly
hard to fix erroneous patterns.

This commit makes use of the additional UParseError* parameter to
umsg_open to retrieve more details about the parse error to report that
to the user via intl_get_error_message()

Additional improve error reporting from the IntlMessage constructor.
Previously, all possible failures when calling IntlMessage::__construct()
would be masked away with a generic "Constructor failed" message.
This would include invalid patterns.

This commit makes sure that the underlying error that caused the
constructor failure is reported as part of the IntlException error
message.

Closes GH-6325.
ext/intl/msgformat/msgformat.c
ext/intl/msgformat/msgformat_format.c
ext/intl/tests/msgfmt_fail2.phpt