[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#20266: Emacs doesn't respond when editing the attached c header file
From: |
Alan Mackenzie |
Subject: |
bug#20266: Emacs doesn't respond when editing the attached c header file. |
Date: |
7 Apr 2015 15:16:16 -0000 |
User-agent: |
tin/2.2.0-20131224 ("Lochindaal") (UNIX) (FreeBSD/10.1-RELEASE (amd64)) |
Hello, Netjune.
In article <mailman.71.1428315070.904.bug-gnu-emacs@gnu.org> you wrote:
> [-- text/plain, encoding 7bit, charset: us-ascii, 13 lines --]
> Emacs doesn't respond when editing the attached c header file.
> Emacs version: 24.4.
> ------------------------------------
> Run emacs with "emacs -Q test.h".
> M-x mark-whole-buffer
> M-x kill-ring-save
> M-x end-of-buffer
> M-x yank
> Then emacs doesn't respond for about 5 seconds.
> M-x scroll-down-command.
> Then emacs doesn't respond for about 5 seconds too.
Yes. This isn't good at all.
> M-x scroll-down-command.
> Then emacs doesn't respond for about 5 seconds too.
I can't actually reproduce this delay.
There is special handling on `yank' for some arcane mechanisms in Emacs,
and these simply waste time in CC Mode for no productive purpose. The
patch below should switch off this processing.
diff -r 5cc874770a5d cc-mode.el
--- a/cc-mode.el Tue Apr 07 10:25:37 2015 +0000
+++ b/cc-mode.el Tue Apr 07 14:58:37 2015 +0000
@@ -502,6 +502,7 @@
(make-local-variable 'adaptive-fill-mode)
(make-local-variable 'adaptive-fill-regexp)
(make-local-variable 'fill-paragraph-handle-comment)
+ (make-local-variable 'yank-handled-properties)
;; now set their values
(setq parse-sexp-ignore-comments t
@@ -511,6 +512,12 @@
comment-multi-line t
comment-line-break-function 'c-indent-new-comment-line)
+ ;; Prevent time-wasting activity on C-y.
+ (let ((yank-cat-handler (assq 'category yank-handled-properties)))
+ (when yank-cat-handler
+ (setq yank-handled-properties (remq yank-cat-handler
+ yank-handled-properties))))
+
;; For the benefit of adaptive file, which otherwise mis-fills.
(setq fill-paragraph-handle-comment nil)
Please try applying this patch to .../emacs/lisp/progmodes/cc-mode.el,
then recompiling that file with either:
(on the command line):
$ emacs -Q -batch -f batch-byte-compile .../path/to/cc-mode.el
, or (from within Emacs):
M-x byte-compile-file <CR> .../path/to/cc-mode.el.
Either load this file (with M-x load-file) or restart Emacs. Hopefully
the first problem (with M-x yank) will have gone away.
Could you please get back to me and confirm that the M-x yank delay has
gone, and let me know whether the delay on M-x scroll-down-command is
still a problem.
Thanks for taking the trouble to report this bug.
--
Alan Mackenzie (Nuremberg, Germany).