8695 Commits

Author SHA1 Message Date
Bruno Haible
673ca474f5 xgettext: Perl: Add unit test for bug.
* gettext-tools/tests/xgettext-perl-11: New file.
* gettext-tools/tests/Makefile.am (TESTS): Add it.
2025-07-07 09:16:01 +02:00
Bruno Haible
80d0903beb xgettext: Perl: Fix a memory leak (regression 2003-06-27).
* gettext-tools/src/x-perl.c (phase2_getc): Free the result of
from_current_source_encoding.
2025-07-07 09:07:39 +02:00
Bruno Haible
f98de965a0 xgettext: Perl: Fix bug with comment lines longer than 1024 (regr. 2024-09-26).
Reported by Alyssa Ross <hi@alyssa.is> in
<https://lists.gnu.org/archive/html/bug-gettext/2025-07/msg00009.html>.

* gettext-tools/src/x-perl.c (phase2_getc): Move the sb_free call until after
the savable_comment_add call.
2025-07-07 09:02:41 +02:00
Bruno Haible
8a76b0b1c9 doc: More precisions about POSIX printf portability.
* gettext-tools/doc/lang-sh.texi (The printf approach): Add more details.
Based on info given by Jörg Schilling in 2020.
2025-07-04 10:26:09 +02:00
Bruno Haible
a0130a04b0 Prepare for prerelease.
* gettext-tools/po/POTFILES.in: Update file list.
2025-07-04 08:49:38 +02:00
Bruno Haible
7c70492939 Update to the newest gnulib. 2025-07-04 08:36:28 +02:00
Bruno Haible
0c0bd837fa xgettext: Warn when a message contains an URL or email address.
Reported by Arsen Arsenović <arsen@aarsen.me>
at <https://savannah.gnu.org/bugs/?67000>.

* gettext-tools/src/xg-check.c: Include c-strstr.h.
(SIZEOF): New macro.
(string_has_url, message_has_url, string_has_email, message_has_email,
url_check_message): New functions.
(xgettext_check_message_list): Invoke url_check_message.
* gettext-tools/tests/xgettext-20: New file.
* gettext-tools/tests/Makefile.am (TESTS): Add it.
* NEWS: Mention the change.
2025-07-04 04:00:23 +02:00
Bruno Haible
475c199fc9 msgcat, msgen, xgettext: Tweak processing order.
* gettext-tools/src/msgcat.c (main): Sort the list of messages as the last
processing step before writing the PO file.
* gettext-tools/src/msgen.c (main): Likewise.
* gettext-tools/src/xgettext.c (main): Likewise.
2025-07-03 18:56:11 +02:00
Bruno Haible
94906022d9 xgettext: Check msgid and msgid_plural for compatibility as format strings.
* gettext-tools/src/if-error.h: Include <stdarg.h>.
(if_verror): New declaration.
* gettext-tools/src/if-error.c (if_verror): New function, extracted from
if_error.
(if_error): Invoke it.
* gettext-tools/src/xg-check.h (xgettext_check_message_list): Renamed from
syntax_check_message_list.
* gettext-tools/src/xg-check.c: Include format.h, if-error.h.
(struct formatstring_error_logger_locals): New type.
(formatstring_error_logger, format_check_message): New functions.
(xgettext_check_message_list): Renamed from syntax_check_message_list. Invoke
also format_check_message.
* gettext-tools/src/xgettext.c (main): Invoke xgettext_check_message_list
instead of syntax_check_message_list.
* gettext-tools/tests/xgettext-19: New file.
* gettext-tools/tests/Makefile.am (TESTS): Add it.
* NEWS: Mention the change.
2025-07-03 17:41:22 +02:00
Bruno Haible
92eed46803 Lisp, Scheme support: Fix format string checking.
* gettext-tools/src/format-lisp.c (format_check): Allow missing arguments if
!equality.
* gettext-tools/src/format-scheme.c (format_check): Likewise.
2025-07-03 17:41:22 +02:00
Bruno Haible
1b64c53623 Lua support: Fix format string checking.
* gettext-tools/src/format-lua.c (format_check): Allow missing arguments if
!equality. Report all argument type mismatches at once.
2025-07-03 17:41:15 +02:00
Bruno Haible
f405ab69d9 tests: Strengthen tests.
* gettext-tools/tests/lang-bash: Invoke msgfmt with option '-c'.
* gettext-tools/tests/lang-c: Likewise.
* gettext-tools/tests/lang-c++: Likewise.
* gettext-tools/tests/lang-c++20: Likewise.
* gettext-tools/tests/lang-c++26: Likewise.
* gettext-tools/tests/lang-c++-boost: Likewise.
* gettext-tools/tests/lang-clisp: Likewise.
* gettext-tools/tests/lang-csharp: Likewise.
* gettext-tools/tests/lang-d: Likewise.
* gettext-tools/tests/lang-elisp: Likewise.
* gettext-tools/tests/lang-gawk: Likewise.
* gettext-tools/tests/lang-go: Likewise.
* gettext-tools/tests/lang-guile: Likewise.
* gettext-tools/tests/lang-java: Likewise.
* gettext-tools/tests/lang-javascript: Likewise.
* gettext-tools/tests/lang-librep: Likewise.
* gettext-tools/tests/lang-lua: Likewise.
* gettext-tools/tests/lang-modula2: Likewise.
* gettext-tools/tests/lang-objc: Likewise.
* gettext-tools/tests/lang-pascal: Likewise.
* gettext-tools/tests/lang-perl-1: Likewise.
* gettext-tools/tests/lang-perl-2: Likewise.
* gettext-tools/tests/lang-php: Likewise.
* gettext-tools/tests/lang-python-1: Likewise.
* gettext-tools/tests/lang-python-2: Likewise.
* gettext-tools/tests/lang-ruby: Likewise.
* gettext-tools/tests/lang-rust: Likewise.
* gettext-tools/tests/lang-sh-1: Likewise.
* gettext-tools/tests/lang-sh-2: Likewise.
* gettext-tools/tests/lang-sh-3: Likewise.
* gettext-tools/tests/lang-smalltalk: Likewise.
* gettext-tools/tests/lang-tcl: Likewise.
* gettext-tools/tests/lang-vala: Likewise.
2025-07-03 17:41:15 +02:00
Bruno Haible
d3f5b62c65 Python: Fix compilation error (regression 2025-06-24).
* gettext-tools/src/format-python-brace.c (parse_directive): Pass NULL, not
false.
2025-07-03 17:41:15 +02:00
Bruno Haible
0de73d2694 Modula-2 support: Fix possible crash during format string checking.
* gettext-tools/src/format-modula2.c (format_check): Fix error message. Fix loop
bound.
2025-07-03 17:40:37 +02:00
Bruno Haible
62e3b84b92 xgettext: Fix bug with syntax-checks on messages from Perl source code.
* gettext-tools/src/x-perl.c (extract_perl): Don't free logical_file_name,
because it is referenced by the 'pos' field of the returned messages, and
xg-check.c accesses and prints it.
2025-07-03 15:48:48 +02:00
Bruno Haible
762db318fc xgettext: Fix handling of syntax-checks with multi-domain POT files.
* gettext-tools/src/xgettext.c (main): Consider the total number of errors.
2025-07-03 11:19:38 +02:00
Bruno Haible
efb20317fb msggrep: Add new options -W and -S.
Reported at <https://savannah.gnu.org/bugs/?40489>.

* gettext-tools/src/msggrep.c (workflow_flags, sticky_flags): New variables.
(main): Initialize them. Handle the options -W and -S.
(usage): Document the -W and -S options.
(is_message_selected_no_invert): Return true if one of the specified workflow
flags or one of the specified sticky flags is set.
* gettext-tools/tests/msggrep-12: New file.
* gettext-tools/tests/Makefile.am (TESTS): Add it.
* gettext-tools/doc/msggrep.texi: Document the -W and -S options.
* NEWS: Mention the change.
2025-07-03 08:48:44 +02:00
Bruno Haible
310e42a7a7 msggrep: Finish documenting the -X option (left-over from 2006-03-17).
* gettext-tools/doc/msggrep.texi: Mention the -X option in the summary.
2025-07-03 07:55:01 +02:00
Bruno Haible
86274f8321 Update NEWS after 0.25.1 release.
* NEWS: Mention 0.25.1 release.
2025-07-02 03:50:58 +02:00
Bruno Haible
027f0c7047 Merge from 0.25.x branch: Prepare for 0.25.1 release.
* gettext-tools/misc/autopoint.in: Accept versions 0.23.2, 0.24.2, 0.25.1.
* gettext-tools/configure.ac (ARCHIVE_VERSION): Bump to 0.25.1.
* NEWS: Update.
2025-07-02 01:12:21 +02:00
Bruno Haible
81e3adea05 autopoint: Don't fail if no gettext version is specified, part 2.
* gettext-tools/misc/autopoint.in (func_trace_sed): Recognize also macro calls
without arguments.
* gettext-tools/tests/autopoint-1: Remove unneeded parentheses in macro call.
2025-07-01 22:44:09 +02:00
Bruno Haible
f451794c99 autopoint: Update unit test, part 2.
* gettext-tools/tests/autopoint-1: Remove debugging trace.
2025-07-01 16:56:49 +02:00
Bruno Haible
4b4a1bee4b autopoint: Update unit test.
* gettext-tools/tests/autopoint-1: Update for new autopoint behaviour.
2025-07-01 16:50:52 +02:00
Bruno Haible
d0e209799a Fix an autoreconf failure in packages that only need AM_NLS.
Rationale: https://lists.gnu.org/archive/html/bug-gettext/2025-06/msg00009.html

* gettext-tools/m4/Makefile.am (aclocaldir, aclocal_DATA): New variables.
* PACKAGING: Update.
2025-07-01 15:46:15 +02:00
Bruno Haible
dda9128815 autopoint: Don't fail if no gettext version is specified.
Rationale: https://lists.gnu.org/archive/html/bug-gettext/2025-06/msg00009.html

* gettext-tools/misc/autopoint.in: Instead of failing with "Missing version",
use version 0.23.1. Set omitintl=yes if there is no AM_GNU_GETTEXT invocation.
2025-07-01 15:46:15 +02:00
Bruno Haible
8d373b0656 Support reading PO files with '#=' lines.
* gettext-tools/src/read-catalog-abstract.c
(catalog_reader_seen_generic_comment): Treat '=' like ','.
* gettext-tools/src/read-catalog.c (default_comment_special): Allow several
calls to this method to make side effects on dcatr.
* gettext-tools/src/read-catalog-special.h: Update comment.
* gettext-tools/src/read-catalog-special.c: Likewise.
* gettext-tools/tests/msgcat-24: New file.
* gettext-tools/tests/Makefile.am (TESTS): Add it.
2025-06-30 13:50:51 +02:00
Bruno Haible
c97fababab doc: Document the short-term PO file format evolution.
* gettext-tools/doc/gettext.texi (PO File Format Evolution): New section.
2025-06-30 13:50:43 +02:00
Bruno Haible
98cf2d1e31 doc: Structure the "PO Files" chapter.
* gettext-tools/doc (PO Files): Split into sections. Introduce workflow flags
and sticky flags. Mention the 'no-wrap' flag.
2025-06-30 13:50:39 +02:00
Bruno Haible
eff9937e4f Simplify code: The syntax-check flags are only used inside xgettext.
* gettext-tools/src/message.h: Improve comments regarding do_syntax_check.
* gettext-tools/src/msgl-cat.c (catenate_msgdomain_list): Don't manipulate
do_syntax_check field.
* gettext-tools/src/msgmerge.c (message_merge): Likewise.
* gettext-tools/src/read-catalog-special.h (parse_comment_special): Change 'scp'
parameter to a pointer.
* gettext-tools/src/read-catalog-special.c (parse_comment_special): Support a
null 'scp' argument.
* gettext-tools/src/read-catalog.h (DEFAULT_CATALOG_READER_TY): Remove
do_syntax_check field.
* gettext-tools/src/read-catalog.c (default_constructor,
default_copy_comment_state, default_reset_comment_state,
default_comment_special): Don't reference do_syntax_check field.
2025-06-30 13:49:13 +02:00
Bruno Haible
eb92bff15a examples: Extend the hello-sh example, part 2.
* gettext-tools/examples/hello-sh/hello-2.sh: New file, based on
gettext-tools/examples/hello-sh/hello-1.sh.
* gettext-tools/examples/hello-sh/hello-3.sh: New file, based on
gettext-tools/examples/hello-sh/hello-2.sh.
2025-06-29 09:08:45 +02:00
Bruno Haible
35fee570e4 Tweak last commit.
* gettext-tools/src/msgcmp.c (main): Tweak whitespace.
2025-06-29 00:15:04 +02:00
Bruno Haible
3703298b8b Refactor: Use gnulib's 'options' module.
* autogen.sh (GNULIB_MODULES_RUNTIME_FOR_SRC, GNULIB_MODULES_TOOLS_FOR_SRC): Add
'options'. Remove 'getopt-gnu'.
* gettext-runtime/src/envsubst.c: Include options.h instead of <getopt.h>.
(long_options): Remove variable.
(main): Define options array here. Call start_options, get_next_option instead
of getopt_long().
* gettext-runtime/src/gettext.c: Likewise.
* gettext-runtime/src/ngettext.c: Likewise.
* gettext-runtime/src/printf_gettext.c: Likewise.
* gettext-runtime/src/printf_ngettext.c: Likewise.
* gettext-tools/src/cldr-plurals.c: Likewise.
* gettext-tools/src/hostname.c: Likewise.
* gettext-tools/src/msgattrib.c: Likewise.
* gettext-tools/src/msgcat.c: Likewise.
* gettext-tools/src/msgcmp.c: Likewise.
* gettext-tools/src/msgcomm.c: Likewise.
* gettext-tools/src/msgconv.c: Likewise.
* gettext-tools/src/msgen.c: Likewise.
* gettext-tools/src/msgexec.c: Likewise.
* gettext-tools/src/msgfilter.c: Likewise.
* gettext-tools/src/msgfmt.c: Likewise.
* gettext-tools/src/msggrep.c: Likewise.
* gettext-tools/src/msginit.c: Likewise.
* gettext-tools/src/msgmerge.c: Likewise.
* gettext-tools/src/msgunfmt.c: Likewise.
* gettext-tools/src/msguniq.c: Likewise.
* gettext-tools/src/recode-sr-latin.c: Likewise.
* gettext-tools/src/urlget.c: Likewise.
* gettext-tools/src/xgettext.c: Likewise.
* gettext-tools/tests/tstgettext.c: Likewise.
* gettext-tools/tests/tstngettext.c: Likewise.
2025-06-28 23:48:03 +02:00
Bruno Haible
3028a28da5 Update to the newest gnulib. 2025-06-28 23:40:06 +02:00
Bruno Haible
836374b49a Adhere to GNU Coding Style.
* gettext-runtime/src/envsubst.c (main): Use common 'switch' indentation.
* gettext-tools/src/hostname.c (main): Likewise.
* gettext-tools/src/recode-sr-latin.c (main): Likewise.
* gettext-tools/src/urlget.c (main): Likewise.
* gettext-tools/tests/tstgettext.c (main): Likewise.
* gettext-tools/tests/tstngettext.c (main): Likewise.
2025-06-28 23:38:03 +02:00
Bruno Haible
8750e7ebb5 xgettext: Remove undocumented no-op option '-W'.
This was a regression from 2015-01-29.

* gettext-tools/src/xgettext.c (main): Remove short option '-W'.
2025-06-28 10:19:51 +02:00
Bruno Haible
8caa0b51ba msgconv, msgen, msgfilter, msggrep, msgmerge: The option '-n' takes no argument.
This was a regression from 2014-03-24.

* gettext-tools/src/msgconv.c (main): Change "n:" to "n" in getopt_long
argument.
* gettext-tools/src/msgen.c (main): Likewise.
* gettext-tools/src/msgfilter.c (main): Likewise.
* gettext-tools/src/msggrep.c (main): Likewise.
* gettext-tools/src/msgmerge.c (main): Likewise.
2025-06-28 10:18:22 +02:00
Bruno Haible
b719e5bfd2 Shell: Document two more approaches.
* gettext-tools/doc/lang-sh.texi (sh): Tweaks.
(sh - Three approaches): New subsubsection.
(The gettext.sh approach): New subsubsection, incorporating the "gettext.sh"
subsubsection.
(The printf approach, The printf_gettext approach): New subsubsections.
(Preparing for gettext.sh): Renamed from "Preparing Shell Scripts".
(Preparing for printf, Preparing for printf_gettext): New subsubsections.
* gettext-tools/doc/gettext.texi: Update detailed node list.
* NEWS: Mention the change.
2025-06-27 23:19:00 +02:00
Bruno Haible
f1fc656bcc examples: Extend the hello-sh example.
* gettext-tools/examples/hello-sh/hello-1.sh: Renamed from
gettext-tools/examples/hello-sh/hello.sh.
* gettext-tools/examples/hello-sh/hello-2.sh: New file, based on
gettext-tools/examples/hello-sh/hello-1.sh.
* gettext-tools/examples/hello-sh/hello-3.sh: New file, based on
gettext-tools/examples/hello-sh/hello-2.sh.
* gettext-tools/examples/hello-sh/configure.ac: Update AC_CONFIG_SRCDIR
invocation and AC_CONFIG_FILES invocations.
* gettext-tools/examples/hello-sh/Makefile.am (bin_SCRIPTS): Remove hello.
Add hello-1, hello-2, hello-3.
* gettext-tools/examples/hello-sh/po/Makefile.am (POTFILES): Remove hello.sh.
Add hello-1.sh, hello-2.sh, hello-3.sh.
* gettext-tools/examples/po/Makefile.am (POTFILES): Update accordingly.
* gettext-tools/examples/Makefile.am (EXAMPLESFILES): Update file list.
2025-06-27 23:18:54 +02:00
Bruno Haible
702435bc02 Shell: Add another unit test.
* gettext-tools/tests/lang-sh-3: New file, based on
gettext-tools/tests/lang-sh-2.
* gettext-tools/tests/Makefile.am (TESTS): Add it.
2025-06-27 23:18:50 +02:00
Bruno Haible
3a763e6a6b build: Use module 'kwset' from gnulib.
* autogen.sh (GNULIB_MODULES_TOOLS_FOR_LIBGREP): Add kwset.
(GNULIB_MODULES_TOOLS_FOR_SRC_COMMON_DEPENDENCIES): Update.
* gettext-tools/libgrep/m-fgrep.c (Fcompile, Fexecute): Update for changed kwset
API.
* gettext-tools/libgrep/kwset.h: Remove file.
* gettext-tools/libgrep/kwset.c: Remove file.
* gettext-tools/libgrep/Makefile.am (libgrep_a_SOURCES): Remove kwset.h,
kwset.c.
2025-06-27 00:04:45 +02:00
Bruno Haible
af0d135964 Update to the newest gnulib. 2025-06-26 23:16:55 +02:00
Bruno Haible
a121288fc3 build: Update regarding current gnulib.
* autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC_COMMON_DEPENDENCIES): Update.
2025-06-26 23:16:55 +02:00
Bruno Haible
110552bc0a build: Fix "make distcheck" failure.
* gettext-runtime/man/*.x: Add copyright and license header.
2025-06-25 06:57:36 +02:00
Bruno Haible
f0bdc7524e xgettext: Shell: Recognize printf_gettext, printf_ngettext invocations.
* gettext-tools/src/x-sh.c (init_keywords, init_flag_table_sh): Add knowledge
about printf_gettext and printf_ngettext.
(read_command): Recognize '-c' option of printf_gettext and printf_ngettext.
* gettext-tools/tests/xgettext-sh-1: Add test cases with printf_gettext and
printf_ngettext.
* gettext-tools/doc/xgettext.texi: Document it.
2025-06-25 04:16:09 +02:00
Bruno Haible
22546c9c06 gettext-runtime: New programs 'printf_gettext', 'printf_ngettext'.
* autogen.sh (GNULIB_MODULES_RUNTIME_FOR_SRC): Add c-ctype, c-strtold,
fzprintf-posix, mbrtoc32, mbszero, quote, stdint-h, strtoimax, strtold,
strtoumax, xstrtold.
* gettext-runtime/src/printf-command.h: New file.
* gettext-runtime/src/printf-command.c: New file.
* gettext-runtime/src/printf_gettext.c: New file.
* gettext-runtime/src/Makefile.am (bin_PROGRAMS): Add printf_gettext,
printf_ngettext.
(noinst_LIBRARIES, libgrtsrc_a_SOURCES): New variables.
(printf_gettext_SOURCES, printf_gettext_CFLAGS, printf_gettext_LDFLAGS): New
variables.
(printf_ngettext_SOURCES, printf_ngettext_CFLAGS, printf_ngettext_LDFLAGS): New
variables.
(LDADD): Add libgrtsrc.a.
* gettext-runtime/po/POTFILES.in: Add src/printf-command.c,
src/printf_gettext.c, src/printf_ngettext.c.
* gettext-runtime/man/printf_gettext.x: New file.
* gettext-runtime/man/printf_ngettext.x: New file.
* gettext-runtime/man/Makefile.am (man_aux): Add printf_gettext.x,
printf_ngettext.x.
(man_MAN1GEN): Add printf_gettext.1, printf_ngettext.1.
(man_MAN1IN): Add printf_gettext.1.in, printf_ngettext.1.in.
(man_HTML1GEN): Add printf_gettext.1.html, printf_ngettext.1.html.
(man_HTML1IN): Add printf_gettext.1.html.in, printf_ngettext.1.html.in.
(printf_gettext.1, rintf_ngettext.1, printf_gettext.1.in, printf_ngettext.1.in):
Add dependencies.
(printf_gettext.1.html, printf_ngettext.1.html, printf_gettext.1.html.in,
printf_ngettext.1.html.in): Likewise.
* gettext-runtime/Makefile.am (distdir1): Depend on man/printf_gettext.1 and
man/printf_ngettext.1.
(man/printf_gettext.1, man/printf_ngettext.1): Depend on gen-man1.
(gen-man1): Make src/printf_gettext, src/printf_ngettext and printf_gettext.1,
printf_ngettext.1.
* gettext-runtime/doc/rt-printf_gettext.texi: New file.
* gettext-runtime/doc/rt-printf_ngettext.texi: New file.
* gettext-runtime/doc/Makefile.am (EXTRA_DIST): Add them.
* gettext-tools/doc/lang-sh.texi (printf_gettext Invocation,
printf_ngettext Invocation): New subsubsections.
* gettext-tools/doc/gettext.texi (@direntry): Add printf_gettext, .
* gettext-tools/doc/Makefile.am (gettext_TEXINFOS): Add rt-printf_gettext.texi,
rt-printf_ngettext.texi.
* gettext-runtime/NEWS: Mention the new programs.
* NEWS: Likewise.
* PACKAGING: Add the printf_gettext and printf_ngettext programs and their
documentation.
2025-06-25 04:16:03 +02:00
Bruno Haible
adf6e5709b gettext-runtime: Improve --help output.
* gettext-runtime/src/gettext.c (usage): Add section title
"Options and arguments".
* gettext-runtime/src/ngettext.c (usage): Likewise.
* gettext-runtime/doc/rt-gettext.texi: Add section titles
"Options and arguments" and "Informative output".
* gettext-runtime/doc/rt-ngettext.texi: Likewise.
2025-06-25 04:15:58 +02:00
Bruno Haible
338edb5ccc C++: Add another unit test.
* gettext-tools/tests/lang-c++-boost: New file, based on
gettext-tools/tests/lang-c++26.
* gettext-tools/tests/Makefile.am (TESTS): Add it.
* gettext-tools/doc/lang-c.texi: Mention how to use C++ with the Boost library.
* HACKING: Mention the Boost library.
2025-06-24 12:28:55 +02:00
Bruno Haible
fb7d214543 Shell: Add another unit test.
* gettext-tools/tests/lang-sh-1: Renamed from gettext-tools/tests/lang-sh.
* gettext-tools/tests/lang-sh-2: New file, based on
gettext-tools/tests/lang-sh-1.
* gettext-tools/tests/Makefile.am (TESTS): Remove lang-sh. Add lang-sh-1,
lang-sh-2.
2025-06-24 11:34:38 +02:00
Bruno Haible
b013095ee1 Python: Add another unit test.
* gettext-tools/tests/lang-python-2: New file, based on
gettext-tools/tests/lang-python-1.
* gettext-tools/tests/Makefile.am (TESTS): Add it.
2025-06-24 11:34:38 +02:00
Bruno Haible
51ec1c4157 Python: Update python-brace-format, assuming Python >= 3.1.
* gettext-tools/src/format-python-brace.c (struct toplevel_counters): New type.
(parse_directive): Take a 'struct toplevel_counters *' parameter. Allow empty
argument names at the top-level. But reject format strings with both absolute
argument numbers and unnamed arguments at the top-level.
(parse_upto): Take a 'struct toplevel_counters *' parameter.
(format_parse): Pass a 'struct toplevel_counters *' to parse_upto.
* gettext-tools/tests/format-python-brace-1: Update.
* gettext-tools/tests/format-python-brace-2: Add another test case.
* gettext-tools/doc/lang-python.texi: Add more examples of formatting with
positions.
2025-06-24 11:34:38 +02:00