GNU bug report logs -
#24861
[PATCH] Fix annoying "Parsing...done" message in c++-mode
Previous Next
Reported by: Hong Xu <hong <at> topbug.net>
Date: Wed, 2 Nov 2016 18:46:01 UTC
Severity: wishlist
Tags: patch
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 24861 in the body.
You can then email your comments to 24861 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#24861
; Package
emacs
.
(Wed, 02 Nov 2016 18:46:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Hong Xu <hong <at> topbug.net>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Wed, 02 Nov 2016 18:46:01 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
This patch adds a customizable variable cpp-message-min-time-interval to
avoid over messaging.
[cpp-message.patch (text/x-diff, inline)]
diff --git a/lisp/progmodes/cpp.el b/lisp/progmodes/cpp.el
index 7d641ab47f09..1dd179d9103f 100644
--- a/lisp/progmodes/cpp.el
+++ b/lisp/progmodes/cpp.el
@@ -104,6 +104,12 @@ cpp-edit-list
(const :tag "Both branches writable" both))))
:group 'cpp)
+(defcustom cpp-message-min-time-interval 1
+ "The minimum time interval in seconds that cpp-mode should
+print messages. No message will be printed if set to 0."
+ :type 'integer
+ :group 'cpp)
+
(defvar cpp-overlay-list nil)
;; List of cpp overlays active in the current buffer.
(make-variable-buffer-local 'cpp-overlay-list)
@@ -278,7 +284,7 @@ cpp-highlight-buffer
(cpp-parse-close from to))
(t
(cpp-parse-error "Parser error"))))))))
- (message "Parsing...done"))
+ (cpp-progress-message "Parsing...done"))
(if cpp-state-stack
(save-excursion
(goto-char (nth 3 (car cpp-state-stack)))
@@ -823,10 +829,10 @@ cpp-progress-time
;; Last time we issued a progress message.
(defun cpp-progress-message (&rest args)
- ;; Report progress at most once a second. Take same ARGS as `message'.
+ "Report progress at most once a second. Take same ARGS as `message'."
(let ((time (nth 1 (current-time))))
- (if (= time cpp-progress-time)
- ()
+ (when (>= (- time cpp-progress-time)
+ cpp-message-min-time-interval)
(setq cpp-progress-time time)
(apply 'message args))))
Information forwarded
to
bug-gnu-emacs <at> gnu.org, bug-cc-mode <at> gnu.org
:
bug#24861
; Package
emacs,cc-mode
.
(Wed, 02 Nov 2016 20:10:01 GMT)
Full text and
rfc822 format available.
Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
The attachment is an updated version of the patch.
[cpp-message.patch (text/x-diff, inline)]
diff --git a/lisp/progmodes/cpp.el b/lisp/progmodes/cpp.el
index 7d641ab47f09..75ed7827adf8 100644
--- a/lisp/progmodes/cpp.el
+++ b/lisp/progmodes/cpp.el
@@ -104,6 +104,13 @@ cpp-edit-list
(const :tag "Both branches writable" both))))
:group 'cpp)
+(defcustom cpp-message-min-time-interval 1
+ "The minimum time interval in seconds that cpp-mode should
+print messages. No message will be printed if set to
+`most-positive-fixnum'."
+ :type 'integer
+ :group 'cpp)
+
(defvar cpp-overlay-list nil)
;; List of cpp overlays active in the current buffer.
(make-variable-buffer-local 'cpp-overlay-list)
@@ -278,7 +285,7 @@ cpp-highlight-buffer
(cpp-parse-close from to))
(t
(cpp-parse-error "Parser error"))))))))
- (message "Parsing...done"))
+ (cpp-progress-message "Parsing...done"))
(if cpp-state-stack
(save-excursion
(goto-char (nth 3 (car cpp-state-stack)))
@@ -823,10 +830,10 @@ cpp-progress-time
;; Last time we issued a progress message.
(defun cpp-progress-message (&rest args)
- ;; Report progress at most once a second. Take same ARGS as `message'.
+ "Report progress at most once a second. Take same ARGS as `message'."
(let ((time (nth 1 (current-time))))
- (if (= time cpp-progress-time)
- ()
+ (when (>= (- time cpp-progress-time)
+ cpp-message-min-time-interval)
(setq cpp-progress-time time)
(apply 'message args))))
Information forwarded
to
bug-gnu-emacs <at> gnu.org, bug-cc-mode <at> gnu.org
:
bug#24861
; Package
emacs,cc-mode
.
(Wed, 02 Nov 2016 20:23:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 24861 <at> debbugs.gnu.org (full text, mbox):
> From: Hong Xu <hong <at> topbug.net>
> Date: Wed, 02 Nov 2016 13:09:15 -0700
>
> +(defcustom cpp-message-min-time-interval 1
> + "The minimum time interval in seconds that cpp-mode should
> +print messages. No message will be printed if set to
> +`most-positive-fixnum'."
Please avoid using passive tense as much as possible (in the last
sentence).
Also, I think it's accepted practice to use nil as the value which
disables a periodic feature.
(Not that I understand why this particular message needs to be
customizable.)
Thanks.
Information forwarded
to
bug-gnu-emacs <at> gnu.org, bug-cc-mode <at> gnu.org
:
bug#24861
; Package
emacs,cc-mode
.
(Wed, 02 Nov 2016 22:06:01 GMT)
Full text and
rfc822 format available.
Message #14 received at 24861 <at> debbugs.gnu.org (full text, mbox):
On Nov 02 2016, Hong Xu <hong <at> topbug.net> wrote:
> diff --git a/lisp/progmodes/cpp.el b/lisp/progmodes/cpp.el
> index 7d641ab47f09..75ed7827adf8 100644
> --- a/lisp/progmodes/cpp.el
> +++ b/lisp/progmodes/cpp.el
> @@ -104,6 +104,13 @@ cpp-edit-list
> (const :tag "Both branches writable" both))))
> :group 'cpp)
>
> +(defcustom cpp-message-min-time-interval 1
> + "The minimum time interval in seconds that cpp-mode should
The first line of a doc string should be a full sentence.
Andreas.
--
Andreas Schwab, schwab <at> linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
Information forwarded
to
bug-gnu-emacs <at> gnu.org, bug-cc-mode <at> gnu.org
:
bug#24861
; Package
emacs,cc-mode
.
(Wed, 02 Nov 2016 23:35:02 GMT)
Full text and
rfc822 format available.
Message #17 received at 24861 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On 2016-11-02 Wed 13:21 GMT-0700, Eli Zaretskii <eliz <at> gnu.org> wrote:
> (Not that I understand why this particular message needs to be
> customizable.)
Because the messages by cpp.el is so frequent that it often competes
with other useful information. I've added some explanation in the
docstring.
The attachment is a new version.
[cpp-message.patch (text/x-diff, inline)]
diff --git a/lisp/progmodes/cpp.el b/lisp/progmodes/cpp.el
index 7d641ab47f09..a0705023b448 100644
--- a/lisp/progmodes/cpp.el
+++ b/lisp/progmodes/cpp.el
@@ -104,6 +104,15 @@ cpp-edit-list
(const :tag "Both branches writable" both))))
:group 'cpp)
+(defcustom cpp-message-min-time-interval 1
+ "Indicate the minimum time interval in seconds that `cc-mode'
+should print messages. If set to nil, `cc-mode' will print no
+message. This may be useful to set when the message `cc-mode'
+prints too many messages that competes with other information in
+the echo area."
+ :type 'integer
+ :group 'cpp)
+
(defvar cpp-overlay-list nil)
;; List of cpp overlays active in the current buffer.
(make-variable-buffer-local 'cpp-overlay-list)
@@ -278,7 +287,7 @@ cpp-highlight-buffer
(cpp-parse-close from to))
(t
(cpp-parse-error "Parser error"))))))))
- (message "Parsing...done"))
+ (cpp-progress-message "Parsing...done"))
(if cpp-state-stack
(save-excursion
(goto-char (nth 3 (car cpp-state-stack)))
@@ -823,12 +832,14 @@ cpp-progress-time
;; Last time we issued a progress message.
(defun cpp-progress-message (&rest args)
- ;; Report progress at most once a second. Take same ARGS as `message'.
- (let ((time (nth 1 (current-time))))
- (if (= time cpp-progress-time)
- ()
- (setq cpp-progress-time time)
- (apply 'message args))))
+ "Report progress at most once a second. Take same ARGS as
+`message'."
+ (when cpp-message-min-time-interval
+ (let ((time (nth 1 (current-time))))
+ (when (>= (- time cpp-progress-time)
+ cpp-message-min-time-interval)
+ (setq cpp-progress-time time)
+ (apply 'message args)))))
(provide 'cpp)
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org, bug-cc-mode <at> gnu.org
:
bug#24861
; Package
emacs,cc-mode
.
(Wed, 02 Nov 2016 23:40:02 GMT)
Full text and
rfc822 format available.
Message #20 received at 24861 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On 2016-11-02 Wed 13:21 GMT-0700, Eli Zaretskii <eliz <at> gnu.org> wrote:
> (Not that I understand why this particular message needs to be
> customizable.)
Also note that this patch does NOT ONLY customize this particular
message: it affects all messages printed by `cpp-progress-message'.
Hong
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org, bug-cc-mode <at> gnu.org
:
bug#24861
; Package
emacs,cc-mode
.
(Thu, 03 Nov 2016 16:40:02 GMT)
Full text and
rfc822 format available.
Message #23 received at 24861 <at> debbugs.gnu.org (full text, mbox):
[[[ To any NSA and FBI agents reading my email: please consider ]]]
[[[ whether defending the US Constitution against all enemies, ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]
> Please avoid using passive tense as much as possible (in the last
> sentence).
Thank you for reminding people of this point.
--
Dr Richard Stallman
President, Free Software Foundation (gnu.org, fsf.org)
Internet Hall-of-Famer (internethalloffame.org)
Skype: No way! See stallman.org/skype.html.
Information forwarded
to
bug-gnu-emacs <at> gnu.org, bug-cc-mode <at> gnu.org
:
bug#24861
; Package
emacs,cc-mode
.
(Thu, 03 Nov 2016 18:15:01 GMT)
Full text and
rfc822 format available.
Message #26 received at 24861 <at> debbugs.gnu.org (full text, mbox):
> From: Hong Xu <hong <at> topbug.net>
> Cc: 24861 <at> debbugs.gnu.org
> Cc: Andreas Schwab <schwab <at> linux-m68k.org>
> Date: Wed, 02 Nov 2016 16:34:22 -0700
>
> On 2016-11-02 Wed 13:21 GMT-0700, Eli Zaretskii <eliz <at> gnu.org> wrote:
>
> > (Not that I understand why this particular message needs to be
> > customizable.)
>
> Because the messages by cpp.el is so frequent that it often competes
> with other useful information.
Yes, but we have lots of similar messages in other places. A search
for a call to 'message' that displays "SOMETHING...done" turns up more
than 270 hits. Why is this particular package being singled out?
Also, what useful information does it conceal? Can you show a use
case where this happens?
> I've added some explanation in the docstring.
That should not be necessary, such explanations should be in comments
and commit log messages.
Thanks.
Information forwarded
to
bug-gnu-emacs <at> gnu.org, bug-cc-mode <at> gnu.org
:
bug#24861
; Package
emacs,cc-mode
.
(Thu, 03 Nov 2016 18:45:02 GMT)
Full text and
rfc822 format available.
Message #29 received at 24861 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On 2016-11-03 Thu 11:15 GMT-0700, Eli Zaretskii <eliz <at> gnu.org> wrote:
>> From: Hong Xu <hong <at> topbug.net>
>> Cc: 24861 <at> debbugs.gnu.org
>> Cc: Andreas Schwab <schwab <at> linux-m68k.org>
>> Date: Wed, 02 Nov 2016 16:34:22 -0700
>>
>> On 2016-11-02 Wed 13:21 GMT-0700, Eli Zaretskii <eliz <at> gnu.org> wrote:
>>
>> > (Not that I understand why this particular message needs to be
>> > customizable.)
>>
>> Because the messages by cpp.el is so frequent that it often competes
>> with other useful information.
>
> Yes, but we have lots of similar messages in other places. A search
> for a call to 'message' that displays "SOMETHING...done" turns up more
> than 270 hits. Why is this particular package being singled out?
It was not me who singled out this particular package; it was singled
out before, with the frequency hard coded to be 1 second. I just made it
more flexible and correct a misused plain `message'.
>
> Also, what useful information does it conceal? Can you show a use
> case where this happens?
I've never seen how these information can be useful (ideally I would say
concealing all these cpp-progress-message unless some debug option is
turned on), but I'm probably not qualified enough to make such
assertion.
One annoying case is that I've set up to show the syntax error at point,
but the "Parsing...done" message frequently comes in the way before I
can read the message.
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org, bug-cc-mode <at> gnu.org
:
bug#24861
; Package
emacs,cc-mode
.
(Wed, 16 Nov 2016 00:04:02 GMT)
Full text and
rfc822 format available.
Message #32 received at 24861 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On 2016-11-03 Thu 11:43 GMT-0800, Hong Xu <hong <at> topbug.net> wrote:
> On 2016-11-03 Thu 11:15 GMT-0700, Eli Zaretskii <eliz <at> gnu.org> wrote:
>
>>> From: Hong Xu <hong <at> topbug.net>
>>> Cc: 24861 <at> debbugs.gnu.org
>>> Cc: Andreas Schwab <schwab <at> linux-m68k.org>
>>> Date: Wed, 02 Nov 2016 16:34:22 -0700
>>>
>>> On 2016-11-02 Wed 13:21 GMT-0700, Eli Zaretskii <eliz <at> gnu.org> wrote:
>>>
>>> > (Not that I understand why this particular message needs to be
>>> > customizable.)
>>>
>>> Because the messages by cpp.el is so frequent that it often competes
>>> with other useful information.
>>
>> Yes, but we have lots of similar messages in other places. A search
>> for a call to 'message' that displays "SOMETHING...done" turns up more
>> than 270 hits. Why is this particular package being singled out?
>
> It was not me who singled out this particular package; it was singled
> out before, with the frequency hard coded to be 1 second. I just made it
> more flexible and correct a misused plain `message'.
>
>>
>> Also, what useful information does it conceal? Can you show a use
>> case where this happens?
>
> I've never seen how these information can be useful (ideally I would say
> concealing all these cpp-progress-message unless some debug option is
> turned on), but I'm probably not qualified enough to make such
> assertion.
>
> One annoying case is that I've set up to show the syntax error at point,
> but the "Parsing...done" message frequently comes in the way before I
> can read the message.
Can you still consider this patch?
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org, bug-cc-mode <at> gnu.org
:
bug#24861
; Package
emacs,cc-mode
.
(Fri, 18 Nov 2016 09:40:02 GMT)
Full text and
rfc822 format available.
Message #35 received at 24861 <at> debbugs.gnu.org (full text, mbox):
> From: Hong Xu <hong <at> topbug.net>
> Cc: 24861 <at> debbugs.gnu.org
> Date: Tue, 15 Nov 2016 16:03:19 -0800
>
> Can you still consider this patch?
I'm okay with accepting this for the master branch, but the patch
needs some more work to fix the following issues:
. The first line of each doc string should be a complete sentence.
. The doc string of cpp-progress-message should mention
cpp-message-min-time-interval.
. The defcustom you are adding should have a :version tag.
. The calculation in cpp-progress-message should be fixed to
calculate the time difference between the current time and the time
of the previous progress message, and compare that with the value
of cpp-message-min-time-interval. The old code just looked at the
2nd member of the list returned by current-time, but that is no
longer TRT when you need to compare the time difference, because
that member can go back to zero. You need to use time-subtract.
. Last, but not least: please include ChangeLog-style commit log
message for the changes.
Thanks.
Information forwarded
to
bug-gnu-emacs <at> gnu.org, bug-cc-mode <at> gnu.org
:
bug#24861
; Package
emacs,cc-mode
.
(Fri, 18 Nov 2016 19:56:02 GMT)
Full text and
rfc822 format available.
Message #38 received at 24861 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On 11/18/2016 01:39 AM, Eli Zaretskii wrote:
>> From: Hong Xu <hong <at> topbug.net>
>> Cc: 24861 <at> debbugs.gnu.org
>> Date: Tue, 15 Nov 2016 16:03:19 -0800
>>
>> Can you still consider this patch?
>
> I'm okay with accepting this for the master branch, but the patch
> needs some more work to fix the following issues:
>
> . The first line of each doc string should be a complete sentence.
> . The doc string of cpp-progress-message should mention
> cpp-message-min-time-interval.
> . The defcustom you are adding should have a :version tag.
> . The calculation in cpp-progress-message should be fixed to
> calculate the time difference between the current time and the time
> of the previous progress message, and compare that with the value
> of cpp-message-min-time-interval. The old code just looked at the
> 2nd member of the list returned by current-time, but that is no
> longer TRT when you need to compare the time difference, because
> that member can go back to zero. You need to use time-subtract.
> . Last, but not least: please include ChangeLog-style commit log
> message for the changes.
>
Allow users to customize the maximum frequency that
`cpp-progress-message' prints messages.
* progmodes/cpp.el (cpp-message-min-time-interval)
(cpp-progress-message): Add variable
`cpp-message-min-time-interval' to indicate the minimum time
interval in seconds that `cpp-progress-message' prints messages.
* progmodes/cpp.el (cpp-progress-time): Initialize to '(0 0 0 0) instead of
0 and improve the documentation.
* progmodes/cpp.el (cpp-highlight-buffer): Use
`cpp-progress-message' instead of `message'.
Thanks.
[cpp-message.patch (text/x-patch, attachment)]
[signature.asc (application/pgp-signature, attachment)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org, bug-cc-mode <at> gnu.org
:
bug#24861
; Package
emacs,cc-mode
.
(Sat, 19 Nov 2016 07:51:01 GMT)
Full text and
rfc822 format available.
Message #41 received at 24861 <at> debbugs.gnu.org (full text, mbox):
> Cc: 24861 <at> debbugs.gnu.org
> From: Hong Xu <hong <at> topbug.net>
> Date: Fri, 18 Nov 2016 11:55:28 -0800
>
> Allow users to customize the maximum frequency that
> `cpp-progress-message' prints messages.
>
> * progmodes/cpp.el (cpp-message-min-time-interval)
> (cpp-progress-message): Add variable
> `cpp-message-min-time-interval' to indicate the minimum time
> interval in seconds that `cpp-progress-message' prints messages.
>
> * progmodes/cpp.el (cpp-progress-time): Initialize to '(0 0 0 0) instead of
> 0 and improve the documentation.
>
> * progmodes/cpp.el (cpp-highlight-buffer): Use
> `cpp-progress-message' instead of `message'.
Thanks, but there are still left-overs:
> +(defcustom cpp-message-min-time-interval 1.0
> + "Indicate the minimum time interval in seconds that
> +`cpp-progress-message' should print messages.
This should be one line, so the sentence should be shorter to fit. If
you drop the redundant "Indicate the" part, it will come close.
> -(defvar cpp-progress-time 0)
> -;; Last time we issued a progress message.
> +(defvar cpp-progress-time '(0 0 0 0)
You could leave it at 0, no need to have a list here.
> + "Indicate the last time `cpp-progress-message' issued a
> + progress message.")
This should be a single line. Once again, please drop the uneeded
"Indicate" part.
> (defun cpp-progress-message (&rest args)
> - ;; Report progress at most once a second. Take same ARGS as `message'.
> - (let ((time (nth 1 (current-time))))
> - (if (= time cpp-progress-time)
> - ()
> - (setq cpp-progress-time time)
> - (apply 'message args))))
> + "Report progress by printing messages at most once every
> +`cpp-message-min-time-interval' seconds for functions whose names
> +start with \"cpp-\". If `cpp-message-min-time-interval' is nil,
> +it prints no message. The ARGS are the same as in `message'."
The first sentence of the doc string should take only one line.
Information forwarded
to
bug-gnu-emacs <at> gnu.org, bug-cc-mode <at> gnu.org
:
bug#24861
; Package
emacs,cc-mode
.
(Sun, 20 Nov 2016 00:21:01 GMT)
Full text and
rfc822 format available.
Message #44 received at 24861 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On 2016-11-18 Fri 23:50 GMT-0800, Eli Zaretskii <eliz <at> gnu.org> wrote:
>> Cc: 24861 <at> debbugs.gnu.org
>> From: Hong Xu <hong <at> topbug.net>
>> Date: Fri, 18 Nov 2016 11:55:28 -0800
>>
>> Allow users to customize the maximum frequency that
>> `cpp-progress-message' prints messages.
>>
>> * progmodes/cpp.el (cpp-message-min-time-interval)
>> (cpp-progress-message): Add variable
>> `cpp-message-min-time-interval' to indicate the minimum time
>> interval in seconds that `cpp-progress-message' prints messages.
>>
>> * progmodes/cpp.el (cpp-progress-time): Initialize to '(0 0 0 0) instead of
>> 0 and improve the documentation.
>>
>> * progmodes/cpp.el (cpp-highlight-buffer): Use
>> `cpp-progress-message' instead of `message'.
>
> Thanks, but there are still left-overs:
>
>> +(defcustom cpp-message-min-time-interval 1.0
>> + "Indicate the minimum time interval in seconds that
>> +`cpp-progress-message' should print messages.
>
> This should be one line, so the sentence should be shorter to fit. If
> you drop the redundant "Indicate the" part, it will come close.
>
>> -(defvar cpp-progress-time 0)
>> -;; Last time we issued a progress message.
>> +(defvar cpp-progress-time '(0 0 0 0)
>
> You could leave it at 0, no need to have a list here.
>
>> + "Indicate the last time `cpp-progress-message' issued a
>> + progress message.")
>
> This should be a single line. Once again, please drop the uneeded
> "Indicate" part.
>
>> (defun cpp-progress-message (&rest args)
>> - ;; Report progress at most once a second. Take same ARGS as `message'.
>> - (let ((time (nth 1 (current-time))))
>> - (if (= time cpp-progress-time)
>> - ()
>> - (setq cpp-progress-time time)
>> - (apply 'message args))))
>> + "Report progress by printing messages at most once every
>> +`cpp-message-min-time-interval' seconds for functions whose names
>> +start with \"cpp-\". If `cpp-message-min-time-interval' is nil,
>> +it prints no message. The ARGS are the same as in `message'."
>
> The first sentence of the doc string should take only one line.
Thanks, updated.
Allow users to customize the maximum frequency that `cpp-progress-message' prints messages.
* progmodes/cpp.el (cpp-message-min-time-interval)
(cpp-progress-message): Add variable
`cpp-message-min-time-interval' to indicate the minimum time
interval in seconds that `cpp-progress-message' prints messages.
* progmodes/cpp.el (cpp-progress-time): Improve the documentation.
* progmodes/cpp.el (cpp-highlight-buffer): Use
`cpp-progress-message' instead of `message' to print messages.
[cpp-message.patch (text/x-diff, inline)]
diff --git a/lisp/progmodes/cpp.el b/lisp/progmodes/cpp.el
index 7d641ab47f09..fc8c271cc5ec 100644
--- a/lisp/progmodes/cpp.el
+++ b/lisp/progmodes/cpp.el
@@ -104,6 +104,13 @@ cpp-edit-list
(const :tag "Both branches writable" both))))
:group 'cpp)
+(defcustom cpp-message-min-time-interval 1.0
+ "The minimum time interval in seconds that `cpp-progress-message' prints messages.
+If it is set to nil, `cpp-progress-message' prints no message."
+ :type 'float
+ :group 'cpp
+ :version "26.1")
+
(defvar cpp-overlay-list nil)
;; List of cpp overlays active in the current buffer.
(make-variable-buffer-local 'cpp-overlay-list)
@@ -278,7 +285,7 @@ cpp-highlight-buffer
(cpp-parse-close from to))
(t
(cpp-parse-error "Parser error"))))))))
- (message "Parsing...done"))
+ (cpp-progress-message "Parsing...done"))
(if cpp-state-stack
(save-excursion
(goto-char (nth 3 (car cpp-state-stack)))
@@ -819,16 +826,21 @@ cpp-face-name
;;; Utilities:
-(defvar cpp-progress-time 0)
-;; Last time we issued a progress message.
+(defvar cpp-progress-time 0
+ "The last time `cpp-progress-message' issued a progress message.")
(defun cpp-progress-message (&rest args)
- ;; Report progress at most once a second. Take same ARGS as `message'.
- (let ((time (nth 1 (current-time))))
- (if (= time cpp-progress-time)
- ()
- (setq cpp-progress-time time)
- (apply 'message args))))
+ "Report progress by printing messages used by \"cpp-\" functions.
+It prints messages at most once every
+`cpp-message-min-time-interval' seconds. If
+`cpp-message-min-time-interval' is nil, it prints no message.
+The ARGS are the same as in `message'."
+ (when cpp-message-min-time-interval
+ (let ((time (current-time)))
+ (when (>= (float-time (time-subtract time cpp-progress-time))
+ cpp-message-min-time-interval)
+ (setq cpp-progress-time time)
+ (apply 'message args)))))
(provide 'cpp)
[signature.asc (application/pgp-signature, inline)]
Reply sent
to
Eli Zaretskii <eliz <at> gnu.org>
:
You have taken responsibility.
(Fri, 25 Nov 2016 10:55:01 GMT)
Full text and
rfc822 format available.
Notification sent
to
Hong Xu <hong <at> topbug.net>
:
bug acknowledged by developer.
(Fri, 25 Nov 2016 10:55:02 GMT)
Full text and
rfc822 format available.
Message #49 received at 24861-done <at> debbugs.gnu.org (full text, mbox):
> From: Hong Xu <hong <at> topbug.net>
> Cc: 24861 <at> debbugs.gnu.org
> Date: Sat, 19 Nov 2016 16:20:10 -0800
>
> Thanks, updated.
Thanks, pushed to master.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Fri, 23 Dec 2016 12:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 8 years and 176 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.