Bruno Haible 053b5ef04d xgettext: PHP: Fix parsing of strings and heredocs with embedded expressions.
Reported by Gert Jan Schoneveld <gertjan@facilityapps.com> in
<https://lists.gnu.org/archive/html/bug-gettext/2025-08/msg00007.html>
and by Benoit Waldmann <benoit.waldmann@siagilus.fr>
at <https://savannah.gnu.org/bugs/index.php?item_id=67948>.

* gettext-tools/src/x-php.c (enum token_type_ty): New enum values
token_type_lbrace, token_type_rbrace.
(struct php_extractor): New field brace_nesting_depth.
(php_extractor_init_rest): Initialize it.
(extract_balanced): Forward-declare.
(process_dquote_or_heredoc): Change handling of embedded expressions.
(phase4_get): Recognize token_type_lbrace, token_type_rbrace.
(extract_balanced): Recurse also for token_type_lbrace.
(extract_php_input): Remove function.
(extract_php): Inline it here.
* gettext-tools/tests/xgettext-php-1: Add more tests of embedded expressions.
2026-01-28 13:50:21 +01:00
..
2015-10-14 15:00:09 +09:00
2025-06-21 23:49:24 +02:00
2025-06-22 00:16:28 +02:00
2025-06-22 01:08:15 +02:00
2025-03-07 12:42:54 +01:00
2025-02-02 03:41:44 +01:00
2020-04-27 00:23:15 +02:00
2018-11-25 02:10:23 +01:00
2025-08-05 07:39:14 +02:00
2018-10-21 20:30:31 +02:00
2018-10-21 20:30:38 +02:00
2018-10-21 20:30:38 +02:00
2018-10-21 20:30:49 +02:00
2018-10-21 22:01:26 +02:00
2018-11-25 02:10:23 +01:00
2018-10-21 20:30:55 +02:00
2025-07-03 17:41:15 +02:00
2025-07-03 17:41:15 +02:00
2025-07-03 17:41:15 +02:00
2025-07-03 17:41:15 +02:00
2025-07-03 17:41:15 +02:00
2025-08-05 08:43:59 +02:00
2025-07-03 17:41:15 +02:00
2025-07-03 17:41:15 +02:00
2025-07-03 17:41:15 +02:00
2025-07-28 10:16:38 +02:00
2025-07-03 17:41:15 +02:00
2025-07-03 17:41:15 +02:00
2025-07-03 17:41:15 +02:00
2025-07-03 17:41:15 +02:00
2025-07-03 17:41:15 +02:00
2025-07-03 17:41:15 +02:00
2024-12-16 20:39:16 +01:00
2025-07-03 17:41:15 +02:00
2025-07-03 17:41:15 +02:00
2025-07-03 17:41:15 +02:00
2025-07-03 17:41:15 +02:00
2025-07-03 17:41:15 +02:00
2025-07-03 17:41:15 +02:00
2025-07-03 17:41:15 +02:00
2025-07-03 17:41:15 +02:00
2025-08-05 07:39:14 +02:00
2015-06-05 16:11:39 +09:00
2024-09-16 00:47:22 +02:00
2022-01-02 15:43:41 +01:00
2018-11-04 19:29:21 +01:00
2016-12-15 22:51:00 +01:00
2018-11-25 02:10:23 +01:00
2018-11-25 02:10:23 +01:00
2025-07-03 08:48:44 +02:00
2024-10-13 18:20:51 +02:00
2024-10-13 18:20:51 +02:00
2024-10-13 18:20:51 +02:00
2024-10-13 18:28:39 +02:00
2024-10-13 18:28:39 +02:00
2024-10-13 18:28:39 +02:00
2024-10-13 18:28:39 +02:00
2024-10-13 18:28:39 +02:00
2024-10-13 18:28:39 +02:00
2024-10-13 18:28:39 +02:00
2018-11-25 02:10:23 +01:00
2018-11-25 02:10:23 +01:00
2018-11-25 02:10:23 +01:00
2018-11-25 02:10:23 +01:00
2018-11-25 02:10:23 +01:00
2020-07-08 09:21:26 +02:00
2018-11-25 02:10:28 +01:00
2018-11-25 02:10:23 +01:00
2018-11-25 02:10:23 +01:00
2018-10-28 11:52:43 +01:00
2018-10-28 11:52:43 +01:00
2018-10-28 11:52:43 +01:00
2025-03-07 12:42:54 +01:00
2025-03-07 12:42:54 +01:00
2025-03-07 12:42:54 +01:00
2025-03-07 12:42:54 +01:00
2025-03-07 12:42:54 +01:00
2025-04-23 18:54:41 +02:00
2025-03-07 12:42:54 +01:00
2025-03-07 12:42:54 +01:00
2025-03-07 12:42:54 +01:00
2025-03-07 12:42:54 +01:00
2025-03-07 12:42:54 +01:00
2025-03-07 12:42:54 +01:00
2025-03-07 12:42:54 +01:00
2025-03-07 12:42:54 +01:00
2025-03-07 12:42:54 +01:00
2025-03-07 12:42:54 +01:00
2025-03-07 12:42:54 +01:00
2025-03-07 12:42:54 +01:00
2025-03-07 12:42:54 +01:00
2025-03-07 12:42:54 +01:00
2019-12-24 17:37:07 +01:00
2025-03-11 11:55:02 +01:00
2018-10-28 11:52:43 +01:00
2018-10-28 11:52:43 +01:00
2019-12-24 17:37:07 +01:00
2019-12-24 17:37:07 +01:00
2019-12-24 17:37:07 +01:00
2025-01-28 22:13:12 +01:00
2025-01-28 22:13:12 +01:00
2025-03-04 22:09:57 +01:00
2025-01-28 22:13:12 +01:00
2025-01-28 22:13:12 +01:00
2025-01-28 22:13:12 +01:00
2025-01-28 22:13:12 +01:00
2019-12-24 17:37:07 +01:00
2025-03-11 11:55:02 +01:00
2025-03-11 11:55:02 +01:00
2025-03-11 11:55:02 +01:00
2025-03-11 11:55:02 +01:00
2025-03-11 11:55:02 +01:00
2025-03-11 11:55:02 +01:00
2025-03-11 11:55:02 +01:00
2019-12-24 17:37:07 +01:00
2024-08-17 01:50:27 +02:00