Path: csiph.com!weretis.net!feeder6.news.weretis.net!news.linkpendium.com!news.linkpendium.com!panix!usenet.stanford.edu!not-for-mail From: Chris Carlen Newsgroups: gnu.bash.bug Subject: Locale not Obeyed by Parameter Expansion with Pattern Substitution Date: Sun, 17 Nov 2019 01:25:31 -0800 Lines: 44 Approved: bug-bash@gnu.org Message-ID: References: <0acc4767-e87f-f163-b39e-f137effdfea2.ref@sbcglobal.net> <0acc4767-e87f-f163-b39e-f137effdfea2@sbcglobal.net> NNTP-Posting-Host: lists.gnu.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: usenet.stanford.edu 1573998601 1338 209.51.188.17 (17 Nov 2019 13:50:01 GMT) X-Complaints-To: action@cs.stanford.edu To: bug-bash@gnu.org Envelope-to: bug-bash@gnu.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sbcglobal.net; s=s2048; t=1573982737; bh=J7cpzujRHK/BPBZND2A/BLzyoTqGWt8whiImwqd6Drw=; h=To:From:Subject:Date:References:From:Subject; b=KjpcPLAuHTqqV+GCPhG1IevKBx8vB09jpv/19rCkTnZRCxOoF/0XG5eam60VbMxWnFfgew1Q+XoyGamb2lYdvusnRZskMJIGtQ4w4vvNqgcUfNy9aeM2OaJNhd6A6w2savBgk3BazWEjEWxHS+wWMR7Hmh2KEdKXMPdaZoB9Ye8AJWXHt+tN5xcD+c2DtUnWPqApstF0rXrDHcTSMkZQx2zy98rIl1Lt7FXnbF8VbcoHQBIkOz7Vj55kaPuG+OSQnPZGUtnlr9cp7Nwvc/9v7u4M+3hnWkk+XpS4qQanSLnCYrBOjNpmBDnJJDQJCCFe5TOrkq82uNEWaJc2I0CN+A== X-YMail-OSG: Rn9.eBIVM1lTAX66BBMoaQeDylrM1VA0sfIrxd5IELR20GXTXRxcF.sccifH3CK OdySVYEIqSe.Vd45RoDC3_Z7ZfWyHYsGOOLT0W0lwZDxCoxVMInPbrsF0WVaY8QnmetPGoHgJhUT oPZiXFTuWFkeDEIV57ZJD2Xtnnubt5Tp758zxmbqalklbZ.fMKkd4tMr4jmkuwlbRjg5NZVdZ57L AboArQXiF7fn6F9h_Eq4ZwptSPWZY7895Cda0cAJPuUlXa3kQsq32LHo5KWHs1T9pRWwhRvrP52h dFIYT572JBY97qulexy9lxK7vmwVtnpOGnnX2Ne0RYi0vjLLCsYJZNLPjFkT9b3Afts5yoTFXU67 VLbi4DIuzzM1ofDOSYKq9xVcgSLXsQp5ZRbjq4Cdl2mNIJLIgNQ0cuGmKTAvLxXbvjsfwtxfC8Ri YER2RNEtmpGEH00SYYyOp0FRrYeLM8EdrWkRBgGWaaT2hITW_4ZaNgLjZBdqNh1DyFfTBqVNpUC7 T176xuTu48.qF5uGvHN5C4XcHG0yMAkad0mJO.hGlxTJu_UVytPrHtP55p6bncuJOQtBHGufdT8f BHaDZ_mgYMgexbr_rF7eOCcZ95Ok7e50_64u204JqycNvcxnkhg1BW_zDETJ9bJ7C9kmNYlCic3F XfnTexSx_89pARhzrdYZQCy57D55303b6cLWITsUtEI0OXPeps737TPCLPwP4WH_KsF.iH4OgZML UoOzhumpobl.W5KD9YQTd.zQC9X7sNhKK6w5xqFo39j_6SUI_pTCP8KOM8RuE5ERLZloyWHJyJDY GOwjfkw9U5Qbd6Y13stGbNMqCEkGVLxyjEheE6W_ZV9fGdYTCOUTfVfDnVrtQnWSoIsdN12sZiU9 pXpl_5ZuGjKGLXel1f7ZjgOtdm6x2AkNGgABdUHBMDjRYRYb8nOO_MdmDg9QmSykp2yBbi.NhJBx HRd1QkuGJtQNkTOLCq17H7.927IfAVu0T87RfOenZInRaBUwpshNjFTdGuIGEMgXfjPcLKbSLd.T SwmqodDCRSyXwcsr95hY22Md5XoxT6XaBm1vZsx4eXdYZM4e5KLqjmveoyYRxtJA8dQLr.kyY5pa p0gb_xdLgI4H5jzhnFl1P_jcitP8DZ0LgxW80tGCGuIuD4iLk_nR0xHcnxzdD63hWLuGac3II7o6 NUbcs_MhdjhIHIyvJmNdcSU8zhsvqOdH939T2aAezgPBCtEOzJMxg5XLM_OdPx4T3oDL4izQ_bp0 bunxbHOb6cpC8TkEpPVdHemO3FM89irPTmQEcHpZDhcpvz2cIfSH7sXXer5ZG3RJaMzZZNN5tkrA Vcnr2.hiYC9eizBE7uNqVIdDz9OeSUZqyWEsTM7DZ1HoJz9vb3F.uxz4S911KJwONG5x0XqMJTAs W7Ul1xYCYF_zgC3ar User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 Content-Language: en-GB X-Mailer: WebService/1.1.14728 hermes Apache-HttpAsyncClient/4.1.4 (Java/1.8.0_181) Content-Length: 1164 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 98.137.64.150 X-Mailman-Approved-At: Sun, 17 Nov 2019 08:50:00 -0500 X-BeenThere: bug-bash@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Bug reports for the GNU Bourne Again SHell List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: <0acc4767-e87f-f163-b39e-f137effdfea2@sbcglobal.net> X-Mailman-Original-References: <0acc4767-e87f-f163-b39e-f137effdfea2.ref@sbcglobal.net> Xref: csiph.com gnu.bash.bug:15600 Configuration Information [Automatically generated, do not change]: Machine: x86_64 OS: linux-gnu Compiler: gcc Compilation CFLAGS: -g -O2 -Wno-parentheses -Wno-format-security uname output: Linux safire 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux Machine Type: x86_64-pc-linux-gnu Bash Version: 5.0 Patch Level: 0 Release Status: release Description: UTF-8 multibyte char string split into bytes rather than characters. Repeat-By: #!/bin/bash shopt -s extglob LC_ALL="en_US.UTF-8" # E.g., normal/expected behavior: # Create a string: A=abc # Replace left virtual empty strings with spaces, putting separated # chars into positional parameters, then print them quoted: set -- ${A//?()/ } echo "${@@Q}" #-> 'a' 'b' 'c' # E.g., abnormal behavior: # write 'REVERSE PILCROW SIGN' to B, then repeat as above: printf -v B '\u204B' set -- ${B//?()/ } echo "${@@Q}" #-> $'\342' $'\201' $'\213' # NOTE: Since there is only one character (under the UTF-8 locale), # this should have set only the first positional parameter with the # character REVERSE PILCROW SIGN, not split it into bytes (AFAIK).