From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Kenichi Handa Newsgroups: gmane.emacs.bugs Subject: bug#9389: 23.3.50; unencodable-char-position has buffer relocation problem Date: Sun, 11 Dec 2011 21:27:22 +0900 Message-ID: <87d3bv5m51.fsf@m17n.org> References: <20110828000802.B9D1B34803A@msa103.auone-net.jp> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1323606487 14596 80.91.229.12 (11 Dec 2011 12:28:07 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 11 Dec 2011 12:28:07 +0000 (UTC) Cc: 9389@debbugs.gnu.org To: Kazuhiro Ito Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Dec 11 13:28:02 2011 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RZiVd-0006wl-Fe for geb-bug-gnu-emacs@m.gmane.org; Sun, 11 Dec 2011 13:28:01 +0100 Original-Received: from localhost ([::1]:52049 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RZiVd-0004b0-0F for geb-bug-gnu-emacs@m.gmane.org; Sun, 11 Dec 2011 07:28:01 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:43060) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RZiVZ-0004av-VH for bug-gnu-emacs@gnu.org; Sun, 11 Dec 2011 07:27:58 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RZiVY-0004kH-Ef for bug-gnu-emacs@gnu.org; Sun, 11 Dec 2011 07:27:57 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:33222) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RZiVY-0004kA-Bn for bug-gnu-emacs@gnu.org; Sun, 11 Dec 2011 07:27:56 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1RZiWc-0007fE-CM for bug-gnu-emacs@gnu.org; Sun, 11 Dec 2011 07:29:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Kenichi Handa Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 11 Dec 2011 12:29:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 9389 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 9389-submit@debbugs.gnu.org id=B9389.132360653829447 (code B ref 9389); Sun, 11 Dec 2011 12:29:02 +0000 Original-Received: (at 9389) by debbugs.gnu.org; 11 Dec 2011 12:28:58 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RZiWX-0007es-QU for submit@debbugs.gnu.org; Sun, 11 Dec 2011 07:28:58 -0500 Original-Received: from mx1.aist.go.jp ([150.29.246.133]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RZiWU-0007eh-PV for 9389@debbugs.gnu.org; Sun, 11 Dec 2011 07:28:56 -0500 Original-Received: from rqsmtp2.aist.go.jp (rqsmtp2.aist.go.jp [150.29.254.123]) by mx1.aist.go.jp with ESMTP id pBBCRhkS027049; Sun, 11 Dec 2011 21:27:43 +0900 (JST) env-from (handa@m17n.org) Original-Received: from smtp2.aist.go.jp by rqsmtp2.aist.go.jp with ESMTP id pBBCRhwY008238; Sun, 11 Dec 2011 21:27:43 +0900 (JST) env-from (handa@m17n.org) Original-Received: by smtp2.aist.go.jp with ESMTP id pBBCRgTo010504; Sun, 11 Dec 2011 21:27:42 +0900 (JST) env-from (handa@m17n.org) In-Reply-To: <20110828000802.B9D1B34803A@msa103.auone-net.jp> (message from Kazuhiro Ito on Sun, 28 Aug 2011 09:07:25 +0900) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Sun, 11 Dec 2011 07:29:02 -0500 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:54887 Archived-At: In article <20110828000802.B9D1B34803A@msa103.auone-net.jp>, Kazuhiro Ito writes: > When I start precompiled Windows binary with -Q and evaluate below > code, I have unexpected result. > (with-temp-buffer > (insert (make-string 16 ?A)) > (insert #x80) > (unencodable-char-position 1 18 'ctext-unix)) > -> 13 (Emacs 23.1) > -> 5 (Emacs 23.3) > If I evaluate it twice, it returns expected result (17). > I think the cause of the problem is similar to bug#9318. > unencodable-char-position uses char_charset(), which could cause a > relocation of buffes. After using it, pointers must be updated as > needed. You are right. I've just installed the attached patch (which is a little bit different from yours). --- Kenichi Handa handa@m17n.org === modified file 'src/coding.c' --- src/coding.c 2011-12-08 05:54:20 +0000 +++ src/coding.c 2011-12-11 11:14:15 +0000 @@ -8756,6 +8756,7 @@ } positions = Qnil; + charset_map_loaded = 0; while (1) { int c; @@ -8783,6 +8784,16 @@ } from++; + if (charset_map_loaded && NILP (string)) + { + p = CHAR_POS_ADDR (from); + pend = CHAR_POS_ADDR (to); + if (from < GPT && to >= GPT) + stop = GPT_ADDR; + else + stop = pend; + charset_map_loaded = 0; + } } return (NILP (count) ? Fcar (positions) : Fnreverse (positions));