get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/1.1/patches/2227399/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2227399,
    "url": "http://patchwork.ozlabs.org/api/1.1/patches/2227399/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/glibc/patch/f5ce925d786638e616ef665c5f49980958675283.1776957778.git.vivien@planete-kraus.eu/",
    "project": {
        "id": 41,
        "url": "http://patchwork.ozlabs.org/api/1.1/projects/41/?format=api",
        "name": "GNU C Library",
        "link_name": "glibc",
        "list_id": "libc-alpha.sourceware.org",
        "list_email": "libc-alpha@sourceware.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": ""
    },
    "msgid": "<f5ce925d786638e616ef665c5f49980958675283.1776957778.git.vivien@planete-kraus.eu>",
    "date": "2026-04-23T16:04:02",
    "name": "[v22,4/9] posix: let the getopt caller choose the textdomain for translation",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "cef871adc7e2a7a7798ecc37e51f8737337097bd",
    "submitter": {
        "id": 90948,
        "url": "http://patchwork.ozlabs.org/api/1.1/people/90948/?format=api",
        "name": "Vivien Kraus",
        "email": "vivien@planete-kraus.eu"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/glibc/patch/f5ce925d786638e616ef665c5f49980958675283.1776957778.git.vivien@planete-kraus.eu/mbox/",
    "series": [
        {
            "id": 501215,
            "url": "http://patchwork.ozlabs.org/api/1.1/series/501215/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/glibc/list/?series=501215",
            "date": "2026-04-23T16:03:58",
            "name": "Support translated long option names in getopt and argp",
            "version": 22,
            "mbox": "http://patchwork.ozlabs.org/series/501215/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2227399/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2227399/checks/",
    "tags": {},
    "headers": {
        "Return-Path": "<libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "libc-alpha@sourceware.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@legolas.ozlabs.org",
            "libc-alpha@sourceware.org"
        ],
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n secure) header.d=planete-kraus.eu header.i=@planete-kraus.eu\n header.a=rsa-sha1 header.s=albinoniA header.b=vEPcmhzz;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org\n (client-ip=38.145.34.32; helo=vm01.sourceware.org;\n envelope-from=libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org;\n receiver=patchwork.ozlabs.org)",
            "sourceware.org;\n\tdkim=pass (2048-bit key,\n secure) header.d=planete-kraus.eu header.i=@planete-kraus.eu\n header.a=rsa-sha1 header.s=albinoniA header.b=vEPcmhzz",
            "sourceware.org; dmarc=pass (p=reject dis=none)\n header.from=planete-kraus.eu",
            "sourceware.org;\n spf=pass smtp.mailfrom=planete-kraus.eu",
            "server2.sourceware.org;\n arc=none smtp.remote-ip=2a00:5881:4008:2810::309"
        ],
        "Received": [
            "from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g1gtv1JyHz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 02:06:15 +1000 (AEST)",
            "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 583184BBF6D4\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 16:06:13 +0000 (GMT)",
            "from planete-kraus.eu (planete-kraus.eu\n [IPv6:2a00:5881:4008:2810::309])\n by sourceware.org (Postfix) with ESMTPS id BBC4C4B8A6BF\n for <libc-alpha@sourceware.org>; Thu, 23 Apr 2026 16:05:50 +0000 (GMT)",
            "from planete-kraus.eu (localhost [127.0.0.1])\n by planete-kraus.eu (OpenSMTPD) with ESMTP id 74f0defd;\n Thu, 23 Apr 2026 16:05:42 +0000 (UTC)",
            "by planete-kraus.eu (OpenSMTPD) with ESMTPSA id 1f57b6bd\n (TLSv1.3:TLS_CHACHA20_POLY1305_SHA256:256:NO);\n Thu, 23 Apr 2026 16:05:40 +0000 (UTC)"
        ],
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 sourceware.org 583184BBF6D4",
            "OpenDKIM Filter v2.11.0 sourceware.org BBC4C4B8A6BF"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org BBC4C4B8A6BF",
        "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org BBC4C4B8A6BF",
        "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776960351; cv=none;\n b=N5XRh1wosxVyj1l0yTozUgEJJ6i32nBi9k6Fc4b3m5B8UgeCPuzafqtjmK1Iszt0yRk6GS6WsEXupmuW/NgeN34PaGBLjqkQN+dd7wVaLFB+kQUanQWzeWcXCYl6xK27BzvtnupkNzNaoyyoFNJR/4JUNn8uwA+aqJQUju2c5Zc=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776960351; c=relaxed/simple;\n bh=NMcMsHbHULVSPirFE/HLRgnZymx18YTMD8aFuw0gTXc=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=LX0/LLSRNbMgGWRvFCEef938V7eF7G/gTO47IcdYqyTRTM03gSBtW3VB/6FKTJHyfJzohj9FDMS3AOoKoiH2dEFUYKd3j9bdiUFg8vn1It3JBtFh8CrZvqvcZZ4/gyX2NPOIJZ3BTgD8ggQYN2sp7cjjJSZHrPnngjmzqi3yW8o=",
        "ARC-Authentication-Results": "i=1; server2.sourceware.org",
        "DKIM-Signature": "v=1; a=rsa-sha1; c=relaxed; d=planete-kraus.eu; h=from\n :to:cc:subject:date:message-id:in-reply-to:references\n :mime-version:content-transfer-encoding; s=albinoniA; bh=glAiG7k\n ZQcjLAKraBTQ475yvyTk=; b=vEPcmhzznVmWu6FloOSLLXt80iPqfOQQBiA5q+4\n dcgmZKqHeSWmtJ1SQu511AtE60RQH66V376wV4J0ZUlUKTxj//hJUpM+0jQ34JuK\n q9/AwYRtn0S9zOn1thK6Tdc78efmh9IakiK9Z+XzBc/4HKHeRn69SZmqhuAlqDAH\n s8fLsgdg7IC99kCd7qhQ2y+sQuwRRz6JPFqn8tSz4b4iNscSTYcHfnC4vP262VAR\n 26YIp7gphIms/jSdfsLJGbrgh3Os50mIjh+8LwjMHBAyzKxa1/rJ6IkS1upVenPq\n +sGdyfDyz146VnOOGXdiBA7bcvP0nu1H0Vp567Aof2aKing==",
        "From": "Vivien Kraus <vivien@planete-kraus.eu>",
        "To": "adhemerval.zanella@linaro.org,\n\tlibc-alpha@sourceware.org",
        "Cc": "Vivien Kraus <vivien@planete-kraus.eu>",
        "Subject": "[PATCH v22 4/9] posix: let the getopt caller choose the textdomain\n for translation",
        "Date": "Thu, 23 Apr 2026 18:04:02 +0200",
        "Message-ID": "\n <f5ce925d786638e616ef665c5f49980958675283.1776957778.git.vivien@planete-kraus.eu>",
        "X-Mailer": "git-send-email 2.52.0",
        "In-Reply-To": "<cover.1776957777.git.vivien@planete-kraus.eu>",
        "References": "<cover.1776957777.git.vivien@planete-kraus.eu>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "libc-alpha@sourceware.org",
        "X-Mailman-Version": "2.1.30",
        "Precedence": "list",
        "List-Id": "Libc-alpha mailing list <libc-alpha.sourceware.org>",
        "List-Unsubscribe": "<https://sourceware.org/mailman/options/libc-alpha>,\n <mailto:libc-alpha-request@sourceware.org?subject=unsubscribe>",
        "List-Archive": "<https://sourceware.org/pipermail/libc-alpha/>",
        "List-Post": "<mailto:libc-alpha@sourceware.org>",
        "List-Help": "<mailto:libc-alpha-request@sourceware.org?subject=help>",
        "List-Subscribe": "<https://sourceware.org/mailman/listinfo/libc-alpha>,\n <mailto:libc-alpha-request@sourceware.org?subject=subscribe>",
        "Errors-To": "libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org"
    },
    "content": "Using the same solution as for the option translation context, a new\nopttextdomain variable is defined.\n\nNote that all options in the call to getopt_long are looked up in the\nsame domain.\n---\n manual/argp.texi        |  7 +++++--\n manual/getopt.texi      |  7 ++++++-\n posix/bits/getopt_ext.h |  3 ++-\n posix/getopt.c          | 34 ++++++++++++++++++++++------------\n posix/getopt1.c         | 31 ++++++++++++++++++++++++-------\n posix/getopt_int.h      |  9 +++++----\n posix/tstgetoptl.c      | 13 ++++++++++---\n 7 files changed, 74 insertions(+), 30 deletions(-)",
    "diff": "diff --git a/manual/argp.texi b/manual/argp.texi\nindex 97456ef20e..50d67b6c55 100644\n--- a/manual/argp.texi\n+++ b/manual/argp.texi\n@@ -208,8 +208,11 @@ messages.  @xref{Argp Help Filtering}.\n If non-zero, the strings used in the argp library are translated using\n the domain described by this string.  If zero, the current default\n domain is used.  The long option names are always translated with the\n-current default domain, and with the @samp{\"command-line option\"}\n-disambiguation string.\n+current default domain (not this one), and with the\n+@samp{\"command-line option\"} disambiguation string.  This is because\n+all the option names, including those defined in sub-parsers, must be\n+in the same textdomain for @command{getopt} to process the options\n+correctly.\n \n @end table\n @end deftp\ndiff --git a/manual/getopt.texi b/manual/getopt.texi\nindex fe45ae55a3..bd58e1b7d8 100644\n--- a/manual/getopt.texi\n+++ b/manual/getopt.texi\n@@ -238,7 +238,7 @@ was seen.\n @end table\n @end deftp\n \n-@deftypefun int getopt_long_enable_translations (const char *@var{msgctxt})\n+@deftypefun int getopt_long_enable_translations (const char *@var{msgctxt}, const char *@var{textdomain})\n @deftypefunx void getopt_long_disable_translations (void)\n @standards{GNU, getopt.h}\n @c FIXME: I copied that from getopt_long, but I don't understand\n@@ -263,6 +263,11 @@ should be a non-NULL string to disambiguate option name translations.\n Passing NULL, or calling @code{getopt_long_disable_translations()},\n will disable option name translation.\n \n+Option names may be translated in a textdomain that is not currently\n+the default (@pxref{Interface to gettext, , The Interface, gettext,\n+the GNU Gettext manual}).  If this is @code{NULL} (the default), the\n+translation will be searched in the current text domain.\n+\n @code{getopt_long_enable_translations} returns 0 on success, or -1 and\n sets errno.\n @end deftypefun\ndiff --git a/posix/bits/getopt_ext.h b/posix/bits/getopt_ext.h\nindex 8f065bbe9f..f40cb5046e 100644\n--- a/posix/bits/getopt_ext.h\n+++ b/posix/bits/getopt_ext.h\n@@ -71,7 +71,8 @@ extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv,\n \t\t\t     const char *__shortopts,\n \t\t             const struct option *__longopts, int *__longind)\n        __THROW __nonnull ((2, 3));\n-extern int getopt_long_enable_translations (const char *__msgctxt)\n+extern int getopt_long_enable_translations (const char *__msgctxt,\n+\t\t\t\t\t    const char *__textdomain)\n        __attribute_warn_unused_result__;\n extern void getopt_long_disable_translations (void);\n \ndiff --git a/posix/getopt.c b/posix/getopt.c\nindex 6717449b5c..ae823eec29 100644\n--- a/posix/getopt.c\n+++ b/posix/getopt.c\n@@ -185,19 +185,23 @@ exchange (char **argv, struct _getopt_data *d)\n /* Return true iff translation_context is not NULL, a translation for\n    opt_name has been found and it matches the substring from argument,\n    length argument_length.\n+\n+   The translate function pointer is like dpgettext.\n */\n static bool\n match_translated_option_name (char *(*translate) (const char *, const char *,\n-\t\t\t\t\t\t  char **),\n+\t\t\t\t\t\t  const char *, char **),\n \t\t\t      const char *argument, size_t argument_length,\n \t\t\t      const char *translation_context,\n+\t\t\t      const char *opt_textdomain,\n \t\t\t      const char *opt_name)\n {\n   const char *translated = opt_name;\n   char *translation_buffer = NULL;\n   bool matches = false;\n   if (translate != NULL)\n-    translated = translate (translation_context, opt_name, &translation_buffer);\n+    translated = translate (opt_textdomain, translation_context,\n+\t\t\t    opt_name, &translation_buffer);\n \n   if (strncmp (translated, argument, argument_length) != 0)\n     matches = false;\n@@ -222,7 +226,7 @@ process_long_option (int argc, char **argv, const char *optstring,\n \t\t     int long_only, struct _getopt_data *d,\n \t\t     int print_errors, const char *prefix,\n \t\t     char *(*translate) (const char *, const char *,\n-\t\t\t\t\t char **))\n+\t\t\t\t\t const char *, char **))\n {\n   char *nameend;\n   size_t namelen;\n@@ -254,9 +258,9 @@ process_long_option (int argc, char **argv, const char *optstring,\n       /* Didn't find an exact match, try with translated option\n \t names.  */\n       for (p = longopts, option_index = 0; p->name; p++, option_index++)\n-\tif (match_translated_option_name (translate,\n-\t\t\t\t\t  d->__nextchar, namelen,\n-\t\t\t\t\t  d->optctxt, p->name))\n+\tif (match_translated_option_name (translate, d->__nextchar, namelen,\n+\t\t\t\t\t  d->optctxt, d->opttextdomain,\n+\t\t\t\t\t  p->name))\n \t  {\n \t    /* Exact match found with translation.  */\n \t    pfound = p;\n@@ -389,7 +393,8 @@ process_long_option (int argc, char **argv, const char *optstring,\n \t{\n \t  if (print_errors)\n \t    {\n-\t      translated_option_name = translate (d->optctxt, pfound->name,\n+\t      translated_option_name = translate (d->opttextdomain, d->optctxt,\n+\t\t\t\t\t\t  pfound->name,\n \t\t\t\t\t\t  &translation_buffer);\n \t      if (strcmp (translated_option_name, pfound->name) != 0)\n \t\t/* Print both names of the option.  */\n@@ -418,7 +423,8 @@ process_long_option (int argc, char **argv, const char *optstring,\n \t    {\n \t      /* Same dichotomy as when the option does not allow an\n \t\t argument.  */\n-\t      translated_option_name = translate (d->optctxt, pfound->name,\n+\t      translated_option_name = translate (d->opttextdomain, d->optctxt,\n+\t\t\t\t\t\t  pfound->name,\n \t\t\t\t\t\t  &translation_buffer);\n \t      if (strcmp (translated_option_name, pfound->name) != 0)\n \t\tfprintf (stderr,\n@@ -542,7 +548,8 @@ int\n _getopt_internal_r (int argc, char **argv, const char *optstring,\n \t\t    const struct option *longopts, int *longind,\n \t\t    int long_only, struct _getopt_data *d, int posixly_correct,\n-\t\t    char *(*translate) (const char *, const char *, char **))\n+\t\t    char *(*translate) (const char *, const char *,\n+\t\t\t\t\tconst char *, char **))\n {\n   int print_errors = d->opterr;\n \n@@ -778,14 +785,17 @@ int\n _getopt_internal (int argc, char **argv, const char *optstring,\n \t\t  const struct option *longopts, int *longind, int long_only,\n \t\t  int posixly_correct,\n-\t\t  char *(*translate) (const char *, const char *, char **),\n-\t\t  const char *ctxt)\n+\t\t  char *(*translate) (const char *, const char *,\n+\t\t\t\t      const char *, char **),\n+\t\t  const char *ctxt,\n+\t\t  const char *domain)\n {\n   int result;\n \n   getopt_data.optind = optind;\n   getopt_data.opterr = opterr;\n   getopt_data.optctxt = ctxt;\n+  getopt_data.opttextdomain = domain;\n \n   result = _getopt_internal_r (argc, argv, optstring, longopts,\n \t\t\t       longind, long_only, &getopt_data,\n@@ -808,7 +818,7 @@ _getopt_internal (int argc, char **argv, const char *optstring,\n   {\t\t\t\t\t\t\t\t\\\n     return _getopt_internal (argc, (char **)argv, optstring,\t\\\n \t\t\t     NULL, NULL, 0, POSIXLY_CORRECT,\t\\\n-\t\t\t     NULL, NULL);\t\t\t\\\n+\t\t\t     NULL, NULL, NULL);\t\t\t\\\n   }\n \n #ifdef _LIBC\ndiff --git a/posix/getopt1.c b/posix/getopt1.c\nindex 87fe067655..cc844a0508 100644\n--- a/posix/getopt1.c\n+++ b/posix/getopt1.c\n@@ -36,9 +36,15 @@\n \n char *optctxt = NULL;\n \n+/* Callers store the textdomain in which the option names are to be\n+   looked up.  */\n+\n+char *opttextdomain = NULL;\n+\n /* FIXME: use pgettext_expr.  */\n static char *\n-do_translate (const char *context, const char *msgid, char **allocated)\n+do_translate (const char *domain, const char *context, const char *msgid,\n+\t      char **allocated)\n {\n   char *full_msgid;\n   const char *translated = msgid;\n@@ -51,7 +57,7 @@ do_translate (const char *context, const char *msgid, char **allocated)\n       *allocated = full_msgid;\n       if (output_length >= 0)\n \t{\n-\t  translated = __dcgettext (NULL, full_msgid, LC_MESSAGES);\n+\t  translated = __dcgettext (domain, full_msgid, LC_MESSAGES);\n \t  if (strcmp (translated, full_msgid) == 0)\n \t    {\n \t      /* No translation for this context and message, so drop\n@@ -72,7 +78,8 @@ getopt_long (int argc, char *__getopt_argv_const *argv, const char *options,\n \t     const struct option *long_options, int *opt_index)\n {\n   return _getopt_internal (argc, (char **) argv, options, long_options,\n-\t\t\t   opt_index, 0, 0, do_translate, optctxt);\n+\t\t\t   opt_index, 0, 0, do_translate,\n+\t\t\t   optctxt, opttextdomain);\n }\n \n int\n@@ -95,7 +102,8 @@ getopt_long_only (int argc, char *__getopt_argv_const *argv,\n \t\t  const struct option *long_options, int *opt_index)\n {\n   return _getopt_internal (argc, (char **) argv, options, long_options,\n-\t\t\t   opt_index, 1, 0, do_translate, optctxt);\n+\t\t\t   opt_index, 1, 0, do_translate,\n+\t\t\t   optctxt, opttextdomain);\n }\n \n int\n@@ -111,18 +119,27 @@ static void\n disable_translations (void)\n {\n   free (optctxt);\n+  free (opttextdomain);\n   optctxt = NULL;\n+  opttextdomain = NULL;\n }\n \n int\n-getopt_long_enable_translations (const char *msgctxt)\n+getopt_long_enable_translations (const char *msgctxt, const char *textdomain)\n {\n   disable_translations ();\n   if (msgctxt != NULL)\n     {\n       optctxt = __strdup (msgctxt);\n-      if (optctxt == NULL)\n-\treturn -1;\n+      if (textdomain)\n+\topttextdomain = __strdup (textdomain);\n+      if (optctxt == NULL\n+\t  || (textdomain != NULL && opttextdomain == NULL))\n+\t{\n+\t  /* strdup failure */\n+\t  disable_translations ();\n+\t  return -1;\n+\t}\n     }\n   return 0;\n }\ndiff --git a/posix/getopt_int.h b/posix/getopt_int.h\nindex fcfec242c1..a770776dc1 100644\n--- a/posix/getopt_int.h\n+++ b/posix/getopt_int.h\n@@ -24,14 +24,14 @@\n \n /* The translate argument here is optional (can be NULL), it is used\n    to avoid depending on the gettext functions in the posix getopt\n-   function.  */\n+   function.  It is like dpgettext.  */\n extern int _getopt_internal (int ___argc, char **___argv,\n \t\t\t     const char *__shortopts,\n \t\t\t     const struct option *__longopts, int *__longind,\n \t\t\t     int __long_only, int __posixly_correct,\n \t\t\t     char *(*translate) (const char *, const char *,\n-\t\t\t\t\t\t char **),\n-\t\t\t     const char *__optctxt);\n+\t\t\t\t\t\t const char *, char **),\n+\t\t\t     const char *__optctxt, const char *__optdomain);\n \n \f\n /* Reentrant versions which can handle parsing multiple argument\n@@ -74,6 +74,7 @@ struct _getopt_data\n   int optopt;\n   char *optarg;\n   const char *optctxt;\n+  const char *opttextdomain;\n \n   /* Internal members.  */\n \n@@ -111,7 +112,7 @@ extern int _getopt_internal_r (int ___argc, char **___argv,\n \t\t\t       int __long_only, struct _getopt_data *__data,\n \t\t\t       int __posixly_correct,\n \t\t\t       char *(*translate) (const char *, const char *,\n-\t\t\t\t\t\t   char **));\n+\t\t\t\t\t\t   const char *, char **));\n \n extern int _getopt_long_r (int ___argc, char **___argv,\n \t\t\t   const char *__shortopts,\ndiff --git a/posix/tstgetoptl.c b/posix/tstgetoptl.c\nindex 1e970ad407..ad5755ddbd 100644\n--- a/posix/tstgetoptl.c\n+++ b/posix/tstgetoptl.c\n@@ -49,8 +49,12 @@ prepare_localedir (void)\n   TEST_VERIFY_EXIT (bindtextdomain (\"tstgetoptl\", OBJPFX \"domaindir\") != NULL);\n   TEST_VERIFY_EXIT (textdomain (\"tstgetoptl\") != NULL);\n   /* Check that the catalog is OK: */\n-  TEST_COMPARE_STRING (gettext (TRANSLATION_CONTEXT \"\\004\" \"color\"), \"colour\");\n-  TEST_COMPARE_STRING (gettext (TRANSLATION_CONTEXT \"\\004\" \"flavor\"), \"flavour\");\n+  TEST_COMPARE_STRING (dgettext (\"tstgetoptl\",\n+\t\t\t\t TRANSLATION_CONTEXT \"\\004\" \"color\"),\n+\t\t       \"colour\");\n+  TEST_COMPARE_STRING (dgettext (\"tstgetoptl\",\n+\t\t\t\t TRANSLATION_CONTEXT \"\\004\" \"flavor\"),\n+\t\t       \"flavour\");\n }\n \n static char **\n@@ -70,6 +74,7 @@ static void\n do_my_test (bool with_optctxt)\n {\n   static const char *translation_context = TRANSLATION_CONTEXT;\n+  static const char *translation_textdomain = \"tstgetoptl\";\n   int argc;\n   char **argv = prepare_argv (&argc);\n   static const struct option options[] =\n@@ -91,7 +96,9 @@ do_my_test (bool with_optctxt)\n   bool found_flavor = false;\n \n   if (with_optctxt)\n-    TEST_VERIFY_EXIT (getopt_long_enable_translations (translation_context) == 0);\n+    TEST_VERIFY_EXIT (getopt_long_enable_translations (translation_context,\n+\t\t\t\t\t\t       translation_textdomain)\n+\t\t      == 0);\n   else\n     getopt_long_disable_translations ();\n   optind = 0;\n",
    "prefixes": [
        "v22",
        "4/9"
    ]
}