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#2435: Bug 2435 Date: Mon, 09 Mar 2009 10:12:01 +0900 Message-ID: References: <87fxhvcmvf.fsf@cyd.mit.edu> <87zlg2a7b9.fsf@cyd.mit.edu> <87ab81293z.fsf@cyd.mit.edu> <877i34shq2.fsf@cyd.mit.edu> <877i33cmto.fsf@cyd.mit.edu> Reply-To: Kenichi Handa , 2435@emacsbugs.donarmstrong.com NNTP-Posting-Host: lo.gmane.org X-Trace: ger.gmane.org 1236568870 4719 80.91.229.12 (9 Mar 2009 03:21:10 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 9 Mar 2009 03:21:10 +0000 (UTC) Cc: cyd@stupidchicken.com, 2435@emacsbugs.donarmstrong.com To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Mar 09 04:22:27 2009 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from terminus-est.gnu.org ([66.92.78.210] helo=lists.gnu.org) by lo.gmane.org with esmtp (Exim 4.50) id 1LgW4Q-0002es-5m for geb-bug-gnu-emacs@m.gmane.org; Mon, 09 Mar 2009 04:22:26 +0100 Original-Received: from localhost ([127.0.0.1]:37469 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LgW33-0003Pr-Hx for geb-bug-gnu-emacs@m.gmane.org; Sun, 08 Mar 2009 23:21:01 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LgW2o-000388-2v for bug-gnu-emacs@gnu.org; Sun, 08 Mar 2009 23:20:46 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LgW2m-00034u-3W for bug-gnu-emacs@gnu.org; Sun, 08 Mar 2009 23:20:45 -0400 Original-Received: from [199.232.76.173] (port=33685 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LgW2l-00034O-QC for bug-gnu-emacs@gnu.org; Sun, 08 Mar 2009 23:20:43 -0400 Original-Received: from mx20.gnu.org ([199.232.41.8]:38726) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1LgW2k-0007VB-O8 for bug-gnu-emacs@gnu.org; Sun, 08 Mar 2009 23:20:43 -0400 Original-Received: from rzlab.ucr.edu ([138.23.92.77]) by mx20.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LgUHO-00066v-71 for bug-gnu-emacs@gnu.org; Sun, 08 Mar 2009 21:27:42 -0400 Original-Received: from rzlab.ucr.edu (rzlab.ucr.edu [127.0.0.1]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id n291NebZ000467; Sun, 8 Mar 2009 18:23:40 -0700 Original-Received: (from debbugs@localhost) by rzlab.ucr.edu (8.13.8/8.13.8/Submit) id n291K3bV031817; Sun, 8 Mar 2009 18:20:03 -0700 X-Loop: owner@emacsbugs.donarmstrong.com Resent-From: Kenichi Handa Resent-To: bug-submit-list@donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Mon, 09 Mar 2009 01:20:03 +0000 Resent-Message-ID: Resent-Sender: owner@emacsbugs.donarmstrong.com X-Emacs-PR-Message: followup 2435 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Original-Received: via spool by 2435-submit@emacsbugs.donarmstrong.com id=B2435.123656112330423 (code B ref 2435); Mon, 09 Mar 2009 01:20:03 +0000 Original-Received: (at 2435) by emacsbugs.donarmstrong.com; 9 Mar 2009 01:12:03 +0000 X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. Original-Received: from mx1.aist.go.jp (mx1.aist.go.jp [150.29.246.133]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id n291Bw7o030417 for <2435@emacsbugs.donarmstrong.com>; Sun, 8 Mar 2009 18:12:00 -0700 Original-Received: from rqsmtp2.aist.go.jp (rqsmtp2.aist.go.jp [150.29.254.123]) by mx1.aist.go.jp with ESMTP id n291BvG4016291; Mon, 9 Mar 2009 10:11:57 +0900 (JST) env-from (handa@m17n.org) Original-Received: from smtp2.aist.go.jp by rqsmtp2.aist.go.jp with ESMTP id n291BuC2004021; Mon, 9 Mar 2009 10:11:57 +0900 (JST) env-from (handa@m17n.org) Original-Received: by smtp2.aist.go.jp with ESMTP id n291Bu9e001351; Mon, 9 Mar 2009 10:11:56 +0900 (JST) env-from (handa@m17n.org) Original-Received: from handa by etlken with local (Exim 4.69) (envelope-from ) id 1LgU2D-00013e-2T; Mon, 09 Mar 2009 10:12:01 +0900 In-reply-to: (message from Stefan Monnier on Sat, 07 Mar 2009 18:07:19 -0500) X-detected-kernel: by mx20.gnu.org: Linux 2.6 (newer, 3) X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) Resent-Date: Sun, 08 Mar 2009 23:20:45 -0400 X-BeenThere: bug-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:26163 Archived-At: In article , Stefan Monnier writes: >>> AFAIK building objects is perfectly fine, yes. >>> I wonder why you use record_unwind_protect rather than specbind, tho. > > Don't we need record_unwind_protect for the case that quit > > is signaled in emacs_open that is called from openp? > specbind does the same thing (except that it's specially designed for > the job at hand of temporarily modifying a variable). Ah! I see. Ok, I've just installed this change. 2009-03-09 Kenichi Handa * charset.c (Qfile_name_handler_alist): Extern it. (load_charset_map_from_file): Temporarily bind `file-name-handler-alist' to nil while calling openp. Index: charset.c =================================================================== RCS file: /cvsroot/emacs/emacs/src/charset.c,v retrieving revision 1.169 retrieving revision 1.170 diff -u -r1.169 -r1.170 --- charset.c 4 Feb 2009 01:55:07 -0000 1.169 +++ charset.c 9 Mar 2009 01:09:23 -0000 1.170 @@ -477,6 +477,7 @@ return n; } +extern Lisp_Object Qfile_name_handler_alist; /* Return a mapping vector for CHARSET loaded from MAPFILE. Each line of MAPFILE has this form @@ -490,7 +491,10 @@ The returned vector has this form: [ CODE1 CHAR1 CODE2 CHAR2 .... ] where CODE1 is a code-point or a cons of code-points specifying a - range. */ + range. + + Note that this funciton uses `openp' to open MAPFILE but ignores + `file-name-handler-alist to avoid running any Lisp codes. */ extern void add_to_log P_ ((char *, Lisp_Object, Lisp_Object)); @@ -508,11 +512,14 @@ Lisp_Object suffixes; struct charset_map_entries *head, *entries; int n_entries; + int count = SPECPDL_INDEX (); suffixes = Fcons (build_string (".map"), Fcons (build_string (".TXT"), Qnil)); + specbind (Qfile_name_handler_alist, Qnil); fd = openp (Vcharset_map_path, mapfile, suffixes, NULL, Qnil); + unbind_to (count, Qnil); if (fd < 0 || ! (fp = fdopen (fd, "r"))) { --- Kenichi Handa handa@m17n.org