From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.bugs Subject: bug#10934: 24.0.94; cperl system abbrevs fix Date: Sun, 04 Mar 2012 09:48:42 -0500 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1330872598 9096 80.91.229.3 (4 Mar 2012 14:49:58 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 4 Mar 2012 14:49:58 +0000 (UTC) Cc: 10934@debbugs.gnu.org To: Leo Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Mar 04 15:49:57 2012 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1S4Cl2-00065x-GS for geb-bug-gnu-emacs@m.gmane.org; Sun, 04 Mar 2012 15:49:56 +0100 Original-Received: from localhost ([::1]:34555 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S4Cl1-0004tT-ME for geb-bug-gnu-emacs@m.gmane.org; Sun, 04 Mar 2012 09:49:55 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:52482) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S4Cky-0004tO-Pv for bug-gnu-emacs@gnu.org; Sun, 04 Mar 2012 09:49:54 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S4Ckw-0003hT-Ku for bug-gnu-emacs@gnu.org; Sun, 04 Mar 2012 09:49:52 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:53888) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S4Ckw-0003hP-HS for bug-gnu-emacs@gnu.org; Sun, 04 Mar 2012 09:49:50 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1S4Cl7-0000gc-Sx for bug-gnu-emacs@gnu.org; Sun, 04 Mar 2012 09:50:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Monnier Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 04 Mar 2012 14:50:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 10934 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 10934-submit@debbugs.gnu.org id=B10934.13308725922619 (code B ref 10934); Sun, 04 Mar 2012 14:50:01 +0000 Original-Received: (at 10934) by debbugs.gnu.org; 4 Mar 2012 14:49:52 +0000 Original-Received: from localhost ([127.0.0.1]:60720 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1S4Ckx-0000g0-Sv for submit@debbugs.gnu.org; Sun, 04 Mar 2012 09:49:52 -0500 Original-Received: from ironport2-out.teksavvy.com ([206.248.154.183]:6457) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1S4Ckb-0000fR-7g for 10934@debbugs.gnu.org; Sun, 04 Mar 2012 09:49:40 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AicFAKU/KE9FxJvl/2dsb2JhbACBX5x7eYhwnhmGGQSGUJRJhAs X-IronPort-AV: E=Sophos;i="4.73,1,1325480400"; d="scan'208";a="165836156" Original-Received: from 69-196-155-229.dsl.teksavvy.com (HELO pastel.home) ([69.196.155.229]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 04 Mar 2012 09:48:44 -0500 Original-Received: by pastel.home (Postfix, from userid 20848) id 496065931F; Sun, 4 Mar 2012 09:48:42 -0500 (EST) In-Reply-To: (Leo's message of "Sun, 04 Mar 2012 12:31:33 +0800") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.94 (gnu/linux) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list 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:57487 Archived-At: > In cperl-mode it uses a hack to avoid having programmably-defined > abbrevs written to the abbrev file. This is not safe i.e. those abbrevs > can still be saved to disk, and users might be tricked to edit them but > lose their editing because they are redefined by cperl-mode. > I think the following patch is due. Thanks for the patch. But cperl-mode maintainership is a bit delicate, so I prefer to minimize the difference between our version and the upstream version. IOW, please try and find a patch that is acceptable to Ilya (I suspect that he'll want the patch to be backward-compatible). Stefan PS: The whole define-abbrev-table (c|sh)ould be moved to the toplevel. > commit 0d5a31c8fc9faf708e98bee32913bc2dfe31bf7d > Date: Fri Apr 16 21:09:01 2010 +0100 > Fix cperl-mode abbrevs > See http://permalink.gmane.org/gmane.emacs.devel/123752. > --- > lisp/progmodes/cperl-mode.el | 44 ++++++++++++++++++++---------------------- > 1 file changed, 21 insertions(+), 23 deletions(-) > Modified lisp/progmodes/cperl-mode.el > diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el > index eb881d01..3a332b24 100644 > --- a/lisp/progmodes/cperl-mode.el > +++ b/lisp/progmodes/cperl-mode.el > @@ -1714,29 +1714,27 @@ (defun cperl-mode () > [(control c) (control h) f]))) > (setq major-mode cperl-use-major-mode) > (setq mode-name "CPerl") > - (let ((prev-a-c abbrevs-changed)) > - (define-abbrev-table 'cperl-mode-abbrev-table '( > - ("if" "if" cperl-electric-keyword 0) > - ("elsif" "elsif" cperl-electric-keyword 0) > - ("while" "while" cperl-electric-keyword 0) > - ("until" "until" cperl-electric-keyword 0) > - ("unless" "unless" cperl-electric-keyword 0) > - ("else" "else" cperl-electric-else 0) > - ("continue" "continue" cperl-electric-else 0) > - ("for" "for" cperl-electric-keyword 0) > - ("foreach" "foreach" cperl-electric-keyword 0) > - ("formy" "formy" cperl-electric-keyword 0) > - ("foreachmy" "foreachmy" cperl-electric-keyword 0) > - ("do" "do" cperl-electric-keyword 0) > - ("=pod" "=pod" cperl-electric-pod 0) > - ("=over" "=over" cperl-electric-pod 0) > - ("=head1" "=head1" cperl-electric-pod 0) > - ("=head2" "=head2" cperl-electric-pod 0) > - ("pod" "pod" cperl-electric-pod 0) > - ("over" "over" cperl-electric-pod 0) > - ("head1" "head1" cperl-electric-pod 0) > - ("head2" "head2" cperl-electric-pod 0))) > - (setq abbrevs-changed prev-a-c)) > + (define-abbrev-table 'cperl-mode-abbrev-table > + '(("if" "if" cperl-electric-keyword 0 t) > + ("elsif" "elsif" cperl-electric-keyword 0 t) > + ("while" "while" cperl-electric-keyword 0 t) > + ("until" "until" cperl-electric-keyword 0 t) > + ("unless" "unless" cperl-electric-keyword 0 t) > + ("else" "else" cperl-electric-else 0 t) > + ("continue" "continue" cperl-electric-else 0 t) > + ("for" "for" cperl-electric-keyword 0 t) > + ("foreach" "foreach" cperl-electric-keyword 0 t) > + ("formy" "formy" cperl-electric-keyword 0 t) > + ("foreachmy" "foreachmy" cperl-electric-keyword 0 t) > + ("do" "do" cperl-electric-keyword 0 t) > + ("=pod" "=pod" cperl-electric-pod 0 t) > + ("=over" "=over" cperl-electric-pod 0 t) > + ("=head1" "=head1" cperl-electric-pod 0 t) > + ("=head2" "=head2" cperl-electric-pod 0 t) > + ("pod" "pod" cperl-electric-pod 0 t) > + ("over" "over" cperl-electric-pod 0 t) > + ("head1" "head1" cperl-electric-pod 0 t) > + ("head2" "head2" cperl-electric-pod 0 t))) > (setq local-abbrev-table cperl-mode-abbrev-table) > (if (cperl-val 'cperl-electric-keywords) > (abbrev-mode 1))