From patchwork Sat Feb 5 02:56:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Carlos O'Donell X-Patchwork-Id: 50822 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B95453858412 for ; Sat, 5 Feb 2022 02:58:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B95453858412 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1644029890; bh=qv+uz5EB4zce8AryVvrptBgRBiNiBnRkqWKkMvltCt0=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=reJSSFI4VZ5ArYRHgO6oBsNyxPfj4fGzpXwBxT8p2sxm+HqlhzYiySm20/a0Lxt8G Ovueq0um4Kt0ksjKkOsFmo7uDGMlOtsURB4G84+FMRCxdbacW+uz5fZ7s54MrOHXNz JaUchvY4/lm8ynWFEvue2slqH0dzo7m0nXe7n3dM= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id 698173858412 for ; Sat, 5 Feb 2022 02:57:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 698173858412 Received: from mail-il1-f199.google.com (mail-il1-f199.google.com [209.85.166.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-311-HR9STUK2MKCCa2YouvU5Kg-1; Fri, 04 Feb 2022 21:57:07 -0500 X-MC-Unique: HR9STUK2MKCCa2YouvU5Kg-1 Received: by mail-il1-f199.google.com with SMTP id v11-20020a92c6cb000000b002bae0085284so5342397ilm.11 for ; Fri, 04 Feb 2022 18:57:07 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=qv+uz5EB4zce8AryVvrptBgRBiNiBnRkqWKkMvltCt0=; b=7mJhFEjn/FOWmPICOkArbBhEoefK6Ic/C+/yKvkTHH7ezmmF2aXOfdq3VS9XprvNay w4XTDCXIEOnr6Upp9//8cWv2I+JdO3bxn6QO/c6BchDde/w7N2Uoa8sHI96mRs9zFY5W jMJD5tc8dJFzAxHuon6ypai1iQ3jpnvaUBg0rHX+G7e93jaz47CmRU7+BLx4zUMIX+Ym Qoq++oh6uxpJDzf7fCFlQbZj/3HmIj2PPKwa3DrjMaJj2KLtsTCoco7fFXhwHdOVLBV5 zH0h43buQowteegKFNnR+s5mS5mPHiE7kx9bdVtjmUM6OXnseeOoC0rrR4BJMEtmfM8w B/cg== X-Gm-Message-State: AOAM5317RJG5ugjIj1rXB+RUh3CWUdGFxuP/nDFsGv60BN3XYgSmLV6k FHZmMMI0k0XOC4ov8Rz1unQXEbIfVa+cMxN9fQ/+KX4Aib0vLvXJtC9PEGZAR8FD1Q+fIi3hGok tijc3dm1kGHPmNbMdCSTmRkHenASyELOe7zUaa+EOq7Oc+nKGc4EhhlyeTCkDieQ3mG/O/w== X-Received: by 2002:a05:6e02:1a83:: with SMTP id k3mr1084712ilv.60.1644029826094; Fri, 04 Feb 2022 18:57:06 -0800 (PST) X-Google-Smtp-Source: ABdhPJzS3+ZjxfQHuXSmIeY60BtpiPNDnDoDbWqn9sS1285xuycPYulqrC/YoiyrF13jr5ZKztyahQ== X-Received: by 2002:a05:6e02:1a83:: with SMTP id k3mr1084702ilv.60.1644029825648; Fri, 04 Feb 2022 18:57:05 -0800 (PST) Received: from athas.redhat.com (135-23-175-80.cpe.pppoe.ca. [135.23.175.80]) by smtp.gmail.com with ESMTPSA id g1sm1997577iob.34.2022.02.04.18.57.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Feb 2022 18:57:05 -0800 (PST) To: libc-alpha@sourceware.org, fweimer@redhat.com Subject: [PATCH 1/2] localedef: Update LC_MONETARY handling (Bug 28845) Date: Fri, 4 Feb 2022 21:56:59 -0500 Message-Id: <20220205025700.3728228-2-carlos@redhat.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220205025700.3728228-1-carlos@redhat.com> References: <20220205025700.3728228-1-carlos@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Carlos O'Donell via Libc-alpha From: Carlos O'Donell Reply-To: Carlos O'Donell Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" ISO C17, POSIX Issue 7, and ISO 30112 all allow the char* types to be empty strings i.e. "", integer or char values to be -1 or CHAR_MAX respectively, with the exception of decimal_point which must be non-empty in ISO C. We include a broad comment talking about harmonizing ISO C, POSIX, ISO 30112, and the default C/POSIX locale for glibc. We reorder all setting based on locale/categories.def order. We soften all missing definitions from errors to warnings when defaults exist. Given that ISO C, POSIX and ISO 30112 allow the empty string we change LC_MONETARY handling of mon_decimal_point to allow the empty string. If mon_decimal_point is not defined at all then we pick the existing legacy glibc default value of i.e. ".". We also set the default for mon_thousands_sep_wc at the same time as mon_thousands_sep, but this is not a change in behaviour, it is always either a matching value or L'\0', but if in the future we change the default to a non-empty string we would need to update both at the same time. Tested on x86_64 and i686 without regressions. Tested with install-locale-archive target. Tested with install-locale-files target. --- locale/programs/ld-monetary.c | 172 +++++++++++++++++++++++++++------- 1 file changed, 136 insertions(+), 36 deletions(-) diff --git a/locale/programs/ld-monetary.c b/locale/programs/ld-monetary.c index 3b0412b405..665b80f5a6 100644 --- a/locale/programs/ld-monetary.c +++ b/locale/programs/ld-monetary.c @@ -196,21 +196,99 @@ No definition for %s category found"), "LC_MONETARY"); } } + /* Generally speaking there are 3 standards the define the default, + warning, and error behaviour of LC_MONETARY. They are ISO/IEC TR 30112, + ISO/IEC 9899:2018 (ISO C17), and POSIX.1-2017. Within 30112 we have the + definition of a standard i18n FDCC-set, which for LC_MONETARY has the + following default values: + int_curr_symbol "" + currency_symbol "" + mon_decimal_point "" i.e. "," + mon_thousand_sep "" + mon_grouping -1 + positive_sign "" + negative_sign "" i.e. "." + int_frac_digits -1 + frac_digits -1 + p_cs_precedes -1 + p_sep_by_space -1 + n_cs_precedes -1 + n_sep_by_space -1 + p_sign_posn -1 + n_sign_posn -1 + Under 30112 a keyword that is not provided implies an empty string "" + for string values or a -1 for integer values, and indicates the value + is unspecified with no default implied. No errors are considered. + For POSIX Issue 7 we have: + https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html + and again values not provided default to "" or -1, and indicate the value + is not available to the locale. For the POSIX locale the values of + LC_MONETARY should be: + int_curr_symbol "" + currency_symbol "" + mon_decimal_point "" + mon_thousands_sep "" + mon_grouping -1 + positive_sign "" + negative_sign "" + int_frac_digits -1 + frac_digits -1 + p_cs_precedes -1 + p_sep_by_space -1 + n_cs_precedes -1 + n_sep_by_space -1 + p_sign_posn -1 + n_sign_posn -1 + int_p_cs_precedes -1 + int_p_sep_by_space -1 + int_n_cs_precedes -1 + int_n_sep_by_space -1 + int_p_sign_posn -1 + int_n_sign_posn -1 + Like with 30112, POSIX also considers no error if the keywords are + missing, only that if the cateory as a whole is missing the referencing + of the category results in unspecified behaviour. + For ISO C17 there is no default value provided, but the localeconv + specification in 7.11.2.1 admits that members of char * type may point + to "" to indicate a value is not available or is of length zero. + The exception is decimal_point (not mon_decimal_point) which must be a + defined non-empty string. The values of char, which are generally + mapped to integer values in 30112 and POSIX, must be non-negative + numbers that map to CHAR_MAX when a value is not available in the + locale. + In ISO C17 for the "C" locale all values are empty strings "", or + CHAR_MAX, with the exception of decimal_point which is "." (defined + in LC_NUMERIC). + + Lastly, we must consider the legacy C/POSIX locale that implemented + as a builtin in glibc and wether a default value mapping to the + C/POSIX locale may benefit the user from a compatibility perspective. + + Thus given 30112, POSIX, ISO C, and the builtin C/POSIX locale we + need to pick appropriate defaults below. */ + + /* The members of LC_MONETARY are handled in the order of their definition + in locale/categories.def. Please keep them in that order. */ + + /* The purpose of TEST_ELEM is to define a default value for the fields + in the category if the field was not defined in the cateory. If the + category was present but we didn't see a definition for the field then + we also issue a warning, otherwise the only warning you get is the one + earlier when a default category is created (completely missing category). + This missing field warning is glibc-specific since no standard requires + this warning, but we consider it valuable to print a warning for all + missing fields in the category. */ #define TEST_ELEM(cat, initval) \ if (monetary->cat == NULL) \ { \ if (! nothing) \ - record_error (0, 0, _("%s: field `%s' not defined"), \ - "LC_MONETARY", #cat); \ + record_warning (_("%s: field `%s' not defined"), \ + "LC_MONETARY", #cat); \ monetary->cat = initval; \ } + /* Keyword: int_curr_symbol. */ TEST_ELEM (int_curr_symbol, ""); - TEST_ELEM (currency_symbol, ""); - TEST_ELEM (mon_thousands_sep, ""); - TEST_ELEM (positive_sign, ""); - TEST_ELEM (negative_sign, ""); - /* The international currency symbol must come from ISO 4217. */ if (monetary->int_curr_symbol != NULL) { @@ -247,41 +325,59 @@ not correspond to a valid name in ISO 4217 [--no-warnings=intcurrsym]"), } } - /* The decimal point must not be empty. This is not said explicitly - in POSIX but ANSI C (ISO/IEC 9899) says in 4.4.2.1 it has to be - != "". */ + /* Keyword: currency_symbol */ + TEST_ELEM (currency_symbol, ""); + + /* Keyword: mon_decimal_point */ + /* ISO C17 7.11.2.1.3 explicitly allows mon_decimal_point to be the + empty string e.g. "". This indicates the value is not available in the + current locale or is of zero length. However, if the value was never + defined then we issue a warning and use a glibc-specific default. ISO + 30112 in the i18n FDCC-Set uses ",", and POSIX Issue 7 in the + POSIX locale uses "". It is specific to glibc that the default is + "."; we retain this existing behaviour for backwards compatibility. */ if (monetary->mon_decimal_point == NULL) { if (! nothing) - record_error (0, 0, _("%s: field `%s' not defined"), - "LC_MONETARY", "mon_decimal_point"); + record_warning (_("%s: field `%s' not defined, using defaults"), + "LC_MONETARY", "mon_decimal_point"); monetary->mon_decimal_point = "."; monetary->mon_decimal_point_wc = L'.'; } - else if (monetary->mon_decimal_point[0] == '\0' && ! be_quiet && ! nothing) + + /* Keyword: mon_thousands_sep */ + if (monetary->mon_thousands_sep == NULL) { - record_error (0, 0, _("\ -%s: value for field `%s' must not be an empty string"), - "LC_MONETARY", "mon_decimal_point"); + if (! nothing) + record_warning (_("%s: field `%s' not defined, using defaults"), + "LC_MONETARY", "mon_thousands_sep"); + monetary->mon_thousands_sep = ""; + monetary->mon_thousands_sep_wc = L'\0'; } + /* Keyword: mon_grouping */ if (monetary->mon_grouping_len == 0) { if (! nothing) - record_error (0, 0, _("%s: field `%s' not defined"), - "LC_MONETARY", "mon_grouping"); - + record_warning (_("%s: field `%s' not defined"), + "LC_MONETARY", "mon_grouping"); monetary->mon_grouping = (char *) "\177"; monetary->mon_grouping_len = 1; } + /* Keyword: positive_sign */ + TEST_ELEM (positive_sign, ""); + + /* Keyword: negative_sign */ + TEST_ELEM (negative_sign, ""); + #undef TEST_ELEM #define TEST_ELEM(cat, min, max, initval) \ if (monetary->cat == -2) \ { \ if (! nothing) \ - record_error (0, 0, _("%s: field `%s' not defined"), \ - "LC_MONETARY", #cat); \ + record_warning (_("%s: field `%s' not defined"), \ + "LC_MONETARY", #cat); \ monetary->cat = initval; \ } \ else if ((monetary->cat < min || monetary->cat > max) \ @@ -300,16 +396,11 @@ not correspond to a valid name in ISO 4217 [--no-warnings=intcurrsym]"), TEST_ELEM (p_sign_posn, -1, 4, -1); TEST_ELEM (n_sign_posn, -1, 4, -1); - /* The non-POSIX.2 extensions are optional. */ - if (monetary->duo_int_curr_symbol == NULL) - monetary->duo_int_curr_symbol = monetary->int_curr_symbol; - if (monetary->duo_currency_symbol == NULL) - monetary->duo_currency_symbol = monetary->currency_symbol; - - if (monetary->duo_int_frac_digits == -2) - monetary->duo_int_frac_digits = monetary->int_frac_digits; - if (monetary->duo_frac_digits == -2) - monetary->duo_frac_digits = monetary->frac_digits; + /* Keyword: crncystr */ + monetary->crncystr = (char *) xmalloc (strlen (monetary->currency_symbol) + + 2); + monetary->crncystr[0] = monetary->p_cs_precedes ? '-' : '+'; + strcpy (&monetary->crncystr[1], monetary->currency_symbol); #undef TEST_ELEM #define TEST_ELEM(cat, alt, min, max) \ @@ -327,6 +418,17 @@ not correspond to a valid name in ISO 4217 [--no-warnings=intcurrsym]"), TEST_ELEM (int_p_sign_posn, p_sign_posn, -1, 4); TEST_ELEM (int_n_sign_posn, n_sign_posn, -1, 4); + /* The non-POSIX.2 extensions are optional. */ + if (monetary->duo_int_curr_symbol == NULL) + monetary->duo_int_curr_symbol = monetary->int_curr_symbol; + if (monetary->duo_currency_symbol == NULL) + monetary->duo_currency_symbol = monetary->currency_symbol; + + if (monetary->duo_int_frac_digits == -2) + monetary->duo_int_frac_digits = monetary->int_frac_digits; + if (monetary->duo_frac_digits == -2) + monetary->duo_frac_digits = monetary->frac_digits; + TEST_ELEM (duo_p_cs_precedes, p_cs_precedes, -1, 1); TEST_ELEM (duo_p_sep_by_space, p_sep_by_space, -1, 2); TEST_ELEM (duo_n_cs_precedes, n_cs_precedes, -1, 1); @@ -349,17 +451,15 @@ not correspond to a valid name in ISO 4217 [--no-warnings=intcurrsym]"), if (monetary->duo_valid_to == 0) monetary->duo_valid_to = 99991231; + /* Keyword: conversion_rate */ if (monetary->conversion_rate[0] == 0) { monetary->conversion_rate[0] = 1; monetary->conversion_rate[1] = 1; } - /* Create the crncystr entry. */ - monetary->crncystr = (char *) xmalloc (strlen (monetary->currency_symbol) - + 2); - monetary->crncystr[0] = monetary->p_cs_precedes ? '-' : '+'; - strcpy (&monetary->crncystr[1], monetary->currency_symbol); + /* A value for monetary-decimal-point-wc was set when + monetary_decimal_point was set, likewise for monetary-thousands-sep-wc. */ } From patchwork Sat Feb 5 02:57:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Carlos O'Donell X-Patchwork-Id: 50823 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id EFD2C3858423 for ; Sat, 5 Feb 2022 02:58:52 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EFD2C3858423 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1644029933; bh=m7By2KlYsboZYJsMy0wHQlOMxqHrVysJXqjc6dW7DRM=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=mNAwWqC32MjB7vgEDQB/zYmzhN1ogYESbfYlH3Ix5Cew2vzmyfCtBax52IrrB2GO4 J40ulNdzCseBhxDp4lGZUyWXtKWW640ndNw94qOLGImGDvaXnynoXhr8i31m/z2Rp3 rtFQ0tHn9+lEgxywd7CH/4KFHNF34lmr+gIjf+8s= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id F32A73858410 for ; Sat, 5 Feb 2022 02:57:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org F32A73858410 Received: from mail-io1-f71.google.com (mail-io1-f71.google.com [209.85.166.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-250-y8ml7-AOP9iKeIO9BTEZKA-1; Fri, 04 Feb 2022 21:57:10 -0500 X-MC-Unique: y8ml7-AOP9iKeIO9BTEZKA-1 Received: by mail-io1-f71.google.com with SMTP id n20-20020a6bed14000000b0060faa0aefd3so5236141iog.20 for ; Fri, 04 Feb 2022 18:57:10 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=m7By2KlYsboZYJsMy0wHQlOMxqHrVysJXqjc6dW7DRM=; b=BirOdRSBhoPjp4XFt03gL34VjyEgyPm/jSdIp9x74tQaUaG5kXUNGZv0COQWPE8ciF 3NnL8kRvmgVyp4dZ/SQ/wUuppslWBdLdBQaQf7E3bx27jB2afPV45JndoWx577IfhRTD CLzSIbK5/XsdZoFY5SAq9nKsEaQyDC99VdG19XpgO5KSrbANc02mD/62tL+f2XarEiA5 wya57E/np9PBSynC3ribkQsYosyPdGLz/F8AUbqGP3BEmjaLbx7fGPVb/OKgJvCK2W+x V1ez/xrnZQvr1o8OBfjpbg3vZ8cjZmCScDh8nkmS1B66R1OuMYs1julGH4CeomE3+gFt BoJg== X-Gm-Message-State: AOAM533/bFZ0C4mehjaKU14AWLHGdBaQVNQxvr0CFe2qKnDpRKHvZ1WX P9SyDrTUNSONrPG+46GGPMWrWVE3Kp/eChkGHThCrEZTxHAyZNZNIydVneXOr0kmBgoWciPmKFc 8fNLu5IiwBI/03irwnJWrY0/GgWFkudYlJNaCZZifi+t3IjAbeOZscfNnZMZpXLSr/qTA3w== X-Received: by 2002:a02:a581:: with SMTP id b1mr1051205jam.36.1644029829760; Fri, 04 Feb 2022 18:57:09 -0800 (PST) X-Google-Smtp-Source: ABdhPJzHAI3BN5wuhjTlPXEJShXXCtSYZq9FMzO3FAknHPpY2MEtY0FpkGVLtFiHS81dSYL1HtXqzg== X-Received: by 2002:a02:a581:: with SMTP id b1mr1051190jam.36.1644029829529; Fri, 04 Feb 2022 18:57:09 -0800 (PST) Received: from athas.redhat.com (135-23-175-80.cpe.pppoe.ca. [135.23.175.80]) by smtp.gmail.com with ESMTPSA id g1sm1997577iob.34.2022.02.04.18.57.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Feb 2022 18:57:08 -0800 (PST) To: libc-alpha@sourceware.org, fweimer@redhat.com Subject: [PATCH 2/2] localedata: Do not generate output if warnings were present. Date: Fri, 4 Feb 2022 21:57:00 -0500 Message-Id: <20220205025700.3728228-3-carlos@redhat.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220205025700.3728228-1-carlos@redhat.com> References: <20220205025700.3728228-1-carlos@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Carlos O'Donell via Libc-alpha From: Carlos O'Donell Reply-To: Carlos O'Donell Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" With LC_MONETARY parsing fixed we can now generate locales without forcing output with '-c'. Removing '-c' from localedef invocation is the equivalent of using -Werror for localedef. The glibc locale sources should always be clean and free from warnings. We remove '-c' from both test locale generation and the targets used for installing locales e.g. install-locale-archive, and install-locale-files. Tested on x86_64 and i686 without regressions. Tested with install-locale-archive target. Tested with install-locale-files target. --- localedata/Makefile | 3 +-- localedata/gen-locale.sh | 10 ++++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/localedata/Makefile b/localedata/Makefile index 9ae2e5c161..45acfde237 100644 --- a/localedata/Makefile +++ b/localedata/Makefile @@ -468,11 +468,10 @@ define build-one-locale endef $(INSTALL-SUPPORTED-LOCALE-ARCHIVE): install-locales-dir - @flags="-c"; \ $(build-one-locale) $(INSTALL-SUPPORTED-LOCALE-FILES): install-locales-dir - @flags="-c --no-archive --no-hard-links"; \ + @flags="--no-archive --no-hard-links"; \ $(build-one-locale) tst-setlocale-ENV = LC_ALL=ja_JP.EUC-JP diff --git a/localedata/gen-locale.sh b/localedata/gen-locale.sh index 7fce35f212..8053c816a6 100644 --- a/localedata/gen-locale.sh +++ b/localedata/gen-locale.sh @@ -54,8 +54,14 @@ modifier=`echo $locfile|sed 's|[^.]*[.]\([^@ ]*\)\(@[^ ]*\)\?/LC_CTYPE|\2|'` echo "Generating locale $locale.$charmap: this might take a while..." -# Run quietly and force output. -flags="--quiet -c" +# Do not force output with '-c', all locales should compile without +# warning or errors. There is likewise no need to run quietly with +# '--quiet' since all locales should compile without additional +# diagnostics. If there are messages printed then we want to see +# them, fix them, and the associated error or warning. During +# development it may be beneficialy to put '--quiet -c' here to allow +# you to develop in-progress locales. +flags="" # For SJIS the charmap is SHIFT_JIS. We just want the locale to have # a slightly nicer name instead of using "*.SHIFT_SJIS", but that