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: Fri, 06 Mar 2009 13:48:40 +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 1236315896 11305 80.91.229.12 (6 Mar 2009 05:04:56 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 6 Mar 2009 05:04:56 +0000 (UTC) Cc: 2435@emacsbugs.donarmstrong.com To: Chong Yidong Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Mar 06 06:06:12 2009 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1LfSFF-0001io-CB for geb-bug-gnu-emacs@m.gmane.org; Fri, 06 Mar 2009 06:05:38 +0100 Original-Received: from localhost ([127.0.0.1]:37996 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LfSDr-0000Lf-Sd for geb-bug-gnu-emacs@m.gmane.org; Fri, 06 Mar 2009 00:03:47 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LfSDn-0000Jt-0Z for bug-gnu-emacs@gnu.org; Fri, 06 Mar 2009 00:03:43 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LfSDm-0000JO-AQ for bug-gnu-emacs@gnu.org; Fri, 06 Mar 2009 00:03:42 -0500 Original-Received: from [199.232.76.173] (port=57315 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LfSDm-0000JE-3f for bug-gnu-emacs@gnu.org; Fri, 06 Mar 2009 00:03:42 -0500 Original-Received: from rzlab.ucr.edu ([138.23.92.77]:41680) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1LfSDl-0008JE-LU for bug-gnu-emacs@gnu.org; Fri, 06 Mar 2009 00:03:41 -0500 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 n2653dJj016080; Thu, 5 Mar 2009 21:03:39 -0800 Original-Received: (from debbugs@localhost) by rzlab.ucr.edu (8.13.8/8.13.8/Submit) id n264t30l013772; Thu, 5 Mar 2009 20:55:03 -0800 X-Loop: owner@emacsbugs.donarmstrong.com Resent-From: Kenichi Handa Resent-To: bug-submit-list@donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Fri, 06 Mar 2009 04:55: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.123631488112379 (code B ref 2435); Fri, 06 Mar 2009 04:55:03 +0000 Original-Received: (at 2435) by emacsbugs.donarmstrong.com; 6 Mar 2009 04:48:01 +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 n264lvUn012373 for <2435@emacsbugs.donarmstrong.com>; Thu, 5 Mar 2009 20:47:59 -0800 Original-Received: from rqsmtp1.aist.go.jp (rqsmtp1.aist.go.jp [150.29.254.115]) by mx1.aist.go.jp with ESMTP id n264lupC011093; Fri, 6 Mar 2009 13:47:56 +0900 (JST) env-from (handa@m17n.org) Original-Received: from smtp3.aist.go.jp by rqsmtp1.aist.go.jp with ESMTP id n264lu9q018472; Fri, 6 Mar 2009 13:47:56 +0900 (JST) env-from (handa@m17n.org) Original-Received: by smtp3.aist.go.jp with ESMTP id n264ltLS011015; Fri, 6 Mar 2009 13:47:55 +0900 (JST) env-from (handa@m17n.org) Original-Received: from handa by etlken with local (Exim 4.69) (envelope-from ) id 1LfRzE-0000uk-Oh; Fri, 06 Mar 2009 13:48:40 +0900 In-reply-to: <877i33cmto.fsf@cyd.mit.edu> (message from Chong Yidong on Thu, 05 Mar 2009 23:11:31 -0500) X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 3) Resent-Date: Fri, 06 Mar 2009 00:03:42 -0500 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:26030 Archived-At: In article <877i33cmto.fsf@cyd.mit.edu>, Chong Yidong writes: > Kenichi Handa writes: > > We should take care of re_search_2 and re_match_2_internal > > too. > > > > If the problem is only the call of openp in > > load_charset_map_from_file, and building various Lisp object > > is ok, we can change load_charset_map_from_file to open a > > charset map by itself without using openp. > Not using openp would be troublesome. How about binding > file-name-handler-alist to nil inside load_charset_map_from_file? That > prevents find-file-name-handler from performing the regexp compilation > and string search. That's a good idea if "building various Lisp object is ok" is true. Stefan, what do you think? --- Kenichi Handa handa@m17n.org *** charset.c.~1.169.~ 2009-01-30 21:29:36.000000000 +0900 --- charset.c 2009-03-06 13:44:24.000000000 +0900 *************** *** 494,499 **** --- 494,509 ---- extern void add_to_log P_ ((char *, Lisp_Object, Lisp_Object)); + extern Lisp_Object Vfile_name_handler_alist; + + static Lisp_Object + load_charset_map_from_file_restore (arg) + Lisp_Object arg; + { + Vfile_name_handler_alist = arg; + return Qnil; + } + static void load_charset_map_from_file (charset, mapfile, control_flag) struct charset *charset; *************** *** 508,518 **** --- 518,533 ---- 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)); + record_unwind_protect (load_charset_map_from_file_restore, + Vfile_name_handler_alist); + Vfile_name_handler_alist = Qnil; fd = openp (Vcharset_map_path, mapfile, suffixes, NULL, Qnil); + unbind_to (count, Qnil); if (fd < 0 || ! (fp = fdopen (fd, "r"))) {