From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id ANpqC+q1o2C4AAAAgWs5BA (envelope-from ) for ; Tue, 18 May 2021 14:41:14 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id kF0BB+q1o2ByAgAAbx9fmQ (envelope-from ) for ; Tue, 18 May 2021 12:41:14 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 8CBCC11AF3 for ; Tue, 18 May 2021 14:41:13 +0200 (CEST) Received: from localhost ([::1]:58962 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liz27-0002Xi-RV for larch@yhetil.org; Tue, 18 May 2021 08:41:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48318) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liysn-0001Qy-8n for emacs-orgmode@gnu.org; Tue, 18 May 2021 08:31:36 -0400 Received: from ciao.gmane.io ([116.202.254.214]:43708) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liysl-0007Kb-IV for emacs-orgmode@gnu.org; Tue, 18 May 2021 08:31:33 -0400 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1liysj-0004PY-Nu for emacs-orgmode@gnu.org; Tue, 18 May 2021 14:31:29 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: emacs-orgmode@gnu.org From: Maxim Nikulin Subject: Re: bug#47885: [PATCH] org-table-import: Make it more smarter for interactive use Date: Tue, 18 May 2021 19:31:16 +0700 Message-ID: References: <87czuq9958.fsf@gmail.com> <8735vmelfs.fsf@nicolasgoaziou.fr> <87k0oyfj4y.fsf@gmail.com> <87im4h9irn.fsf@nicolasgoaziou.fr> <87zgxpwqa7.fsf@gmail.com> <875z07jx6n.fsf@nicolasgoaziou.fr> <87tunqby9a.fsf@gmail.com> <875yzq77w8.fsf@gmail.com> <87o8dd74dv.fsf@gmail.com> <87a6osfig3.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 In-Reply-To: <87a6osfig3.fsf@gmail.com> Content-Language: en-US Received-SPF: pass client-ip=116.202.254.214; envelope-from=geo-emacs-orgmode@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 28 X-Spam_score: 2.8 X-Spam_bar: ++ X-Spam_report: (2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FORGED_MUA_MOZILLA=2.309, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, NICE_REPLY_A=-0.001, NML_ADSP_CUSTOM_MED=0.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1621341673; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=gUNxF46uukWqTX9kVmgVqD2aqanxLdkiNp/3qIcKilY=; b=tLXObfxSjUm4lxdOtB89Oc3x44UP4Db6MW7dxhpbXhJfHDwPxSWvNFuHZz/3rAnN5v87pA lIfizVzJatHL5IOTczt5uS+8XOIdQoabr7LL0saZPxt97+rjGGBiyx7Q3UDNBYRtsODCaG MkLDNsFvS426yGBmhLlLPKnvHjFM2oYwIa1Rzblr+8P3y0oGO/OKBK2pz6ZUqPavKKXM5u xIlYc90kPDSIG8tsYmyi3mMA43p/OlZikul6ixFhTG7maPEm565yt65YiwWwC4DnPIWs57 2QlzyKVp/F7/T5b6QFOU3yWGgAcvYSORcgQQqLo/q6NeinLZZzm3gbooFqeMAg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1621341673; a=rsa-sha256; cv=none; b=Fc+C+82gJtQ7WaZI4bHAlICAr/DWNPR4gNzafsL8Dg5CCioOt7ZBOUSA0z7EGeQ4PtJURR LO42XtbOykZfYTGeYXgcEaXlQqmCWUoRJ9D/ST/36WvZnMEPMdjas4UJ+kapoMOlXz4Jmx 9P/CUPTmBek7Bhb0Ql0wJaB3dzM4XLHkMVpHK6sHgsbJWyafA/ni93nlnbc3koSUBi9SJA duHcD2Zd6frFZS3vsAoLAocs+q0aSuyzttUwf4qFsJKOHzU8d2vSOA3p0xkJwsfaW1dpG2 JohMMIZiWnflYHPvJqjE6FVKI+Qaq6IF8BGSuv6CpdKkutt0VzkOxUjsJ63ALg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Migadu-Spam-Score: -1.84 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Migadu-Queue-Id: 8CBCC11AF3 X-Spam-Score: -1.84 X-Migadu-Scanner: scn0.migadu.com X-TUID: uc25DIfuCjE8 It seems, there is no reliable way to work with numbers in a locale-aware way in emacs. I am still against hard-coded list of locales. Requirement to customize a variable is rather inconvenient. Considering such properties as a part of translation is a little better but I prefer to avoid it. The question may be risen in emacs-devel but I am unsure if I will participate in discussion. On 18/05/2021 17:24, Utkarsh Singh wrote: > On 2021-05-16, 23:24 +0700, Maxim Nikulin wrote: > >> On 14/05/2021 21:54, Utkarsh Singh wrote: >>> On 2021-05-13, 00:08 +0700, Maxim Nikulin wrote: >>> >>>> Comma is decimal separator for es_ES, de_DE, ru_RU, etc. The point is >>>> that order in which separator candidates are tried should depend on >>>> active locale. >>>> >>> I am willing to work on this problem but before this can you identify >>> any other locale with similar problem or a resource from where I can >>> information's about locale. >> >> I do not think list of locales should be hard coded. I am not familiar >> with elisp enough to tell you if locale properties such as decimal >> separator are exposed through some function. I expect, it is quite >> probable. As a last measure, some number, e.g. 0.5 or 1.5 could be >> formatted using a locale-aware function and result string could be >> checked if it contains ",". > > Can you test this function: > > (defun org-table--comma-as-decimal-sep () > "Return nil or 2 if separator is dot or comma respectively." > (string-search "," (format "%f" 10))) No, it does not work. `format' always uses dot. It is reasonable when e.g. during writing a config file or during data exchange when locales must be ignored. I was too optimistic. I did not expect that support of locales are so poor in Emcacs. I do not see any traces of localeconv(3) in sources that would allow to get value of decimal_point directly. Numbers are forced to use "C" locale and I have not noticed any way to override it. Initial settings: http://git.savannah.gnu.org/cgit/emacs.git/tree/src/emacs.c#n1490 http://git.savannah.gnu.org/cgit/emacs.git/tree/src/emacs.c#n2861 setlocale (LC_NUMERIC, "C"); > To test I am using: > $ LANG=de_DE.UTF-8 emacs -Q > > But I am getting this as warning: > (process:1787): Gtk-WARNING **: 15:40:49.375: Locale not supported by C library. > Using the fallback 'C' locale. You get this error due to you have not generated this locale. On debian & ubuntu dpkg-reconfigure locales allows to select desired locales and performs all necessary actions.