From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.devel Subject: Re: Buffer-local variables affect general-purpose functions Date: Wed, 26 Mar 2014 12:32:05 -0700 Organization: UCLA Computer Science Department Message-ID: <53332B35.8050109@cs.ucla.edu> References: <831txozsqa.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1395862345 11464 80.91.229.3 (26 Mar 2014 19:32:25 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 26 Mar 2014 19:32:25 +0000 (UTC) To: Eli Zaretskii , emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Mar 26 20:32:34 2014 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1WStYv-0001ep-SX for ged-emacs-devel@m.gmane.org; Wed, 26 Mar 2014 20:32:33 +0100 Original-Received: from localhost ([::1]:49901 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WStYv-0002ak-HZ for ged-emacs-devel@m.gmane.org; Wed, 26 Mar 2014 15:32:33 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:47783) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WStYl-0002Iw-7n for emacs-devel@gnu.org; Wed, 26 Mar 2014 15:32:30 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WStYd-0006z1-Um for emacs-devel@gnu.org; Wed, 26 Mar 2014 15:32:23 -0400 Original-Received: from smtp.cs.ucla.edu ([131.179.128.62]:49699) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WStYV-0006xu-TX; Wed, 26 Mar 2014 15:32:08 -0400 Original-Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 56F3D39E8013; Wed, 26 Mar 2014 12:32:06 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Original-Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JQPcEp08E9+h; Wed, 26 Mar 2014 12:32:05 -0700 (PDT) Original-Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id C4F6139E8008; Wed, 26 Mar 2014 12:32:05 -0700 (PDT) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 In-Reply-To: <831txozsqa.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 131.179.128.62 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:171010 Archived-At: Eli Zaretskii wrote: > do we want to do something about that? Yes, and we should start by removing the backwards-compatibility hacks in question. Whether the current buffer is unibyte should not affect the behavior of general-purpose functions on characters. Elisp code that blindly extracts bytes from unibyte buffers or strings, and treats these bytes as characters, is broken anyway. It needs to be fixed to convert bytes to characters (using 'unibyte-char-to-multibyte', say) before it gives them to general-purpose character functions like 'downcase' and 'char-equal'. Years ago, when these backwards-compatibility hacks were put in, it made sense to have them, because unibyte non-ASCII locales were widespread and converting code to multibyte was a hassle. But nowadays the vast majority of non-ASCII usage is multibyte and these hacks cause more trouble than they're worth -- not just core dumps such as Bug#17011, but subtle behavioral problems not easily diagnosed. It's time for the hacks to go.