public inbox for glibc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "carlos at redhat dot com" <sourceware-bugzilla@sourceware.org>
To: glibc-bugs@sourceware.org
Subject: [Bug locale/28847] Empty mon_decimal_point in LC_MONETARY results in non-empty mon_decimal_point_wc
Date: Tue, 01 Feb 2022 17:09:47 +0000	[thread overview]
Message-ID: <bug-28847-131-RQKk1elbpb@http.sourceware.org/bugzilla/> (raw)
In-Reply-To: <bug-28847-131@http.sourceware.org/bugzilla/>

https://sourceware.org/bugzilla/show_bug.cgi?id=28847

Carlos O'Donell <carlos at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
   Target Milestone|---                         |2.35
         Resolution|---                         |FIXED

--- Comment #1 from Carlos O'Donell <carlos at redhat dot com> ---
Fixed in glibc 2.35.

commit 1d8e3a2c6636cf0b1b8fa2f869cef6ec10726933
Author: Carlos O'Donell <carlos@redhat.com>
Date:   Mon Jan 31 00:34:41 2022 -0500

    localedef: Fix handling of empty mon_decimal_point (Bug 28847)

    The handling of mon_decimal_point is incorrect when it comes to
    handling the empty "" value.  The existing parser in monetary_read()
    will correctly handle setting the non-wide-character value and the
    wide-character value e.g. STR_ELEM_WC(mon_decimal_point) if they are
    set in the locale definition.  However, in monetary_finish() we have
    conflicting TEST_ELEM() which sets a default value (if the locale
    definition doesn't include one), and subsequent code which looks for
    mon_decimal_point to be NULL to issue a specific error message and set
    the defaults. The latter is unused because TEST_ELEM() always sets a
    default.  The simplest solution is to remove the TEST_ELEM() check,
    and allow the existing check to look to see if mon_decimal_point is
    NULL and set an appropriate default.  The final fix is to move the
    setting of mon_decimal_point_wc so it occurs only when
    mon_decimal_point is being set to a default, keeping both values
    consistent. There is no way to tell the difference between
    mon_decimal_point_wc having been set to the empty string and not
    having been defined at all, for that distinction we must use
    mon_decimal_point being NULL or "", and so we must logically set
    the default together with mon_decimal_point.

    Lastly, there are more fixes similar to this that could be made to
    ld-monetary.c, but we avoid that in order to fix just the code
    required for mon_decimal_point, which impacts the ability for C.UTF-8
    to set mon_decimal_point to "", since without this fix we end up with
    an inconsistent setting of mon_decimal_point set to "", but
    mon_decimal_point_wc set to "." which is incorrect.

    Tested on x86_64 and i686 without regression.
    Reviewed-by: Florian Weimer <fweimer@redhat.com>

-- 
You are receiving this mail because:
You are on the CC list for the bug.

  reply	other threads:[~2022-02-01 17:09 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-01 16:11 [Bug locale/28847] New: " carlos at redhat dot com
2022-02-01 17:09 ` carlos at redhat dot com [this message]
2022-02-04  9:35 ` [Bug locale/28847] " xry111 at mengyan1223 dot wang
2022-02-04  9:37 ` xry111 at mengyan1223 dot wang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-28847-131-RQKk1elbpb@http.sourceware.org/bugzilla/ \
    --to=sourceware-bugzilla@sourceware.org \
    --cc=glibc-bugs@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).