emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] scratch/flymake-refactor d4ebec4 2/4: Allow running flymak


From: João Távora
Subject: [Emacs-diffs] scratch/flymake-refactor d4ebec4 2/4: Allow running flymake-tests.el from interactive sessions
Date: Tue, 22 Aug 2017 21:38:17 -0400 (EDT)

branch: scratch/flymake-refactor
commit d4ebec4bfd2f0ef7f48a340e29c77f2846a249c6
Author: João Távora <address@hidden>
Commit: João Távora <address@hidden>

    Allow running flymake-tests.el from interactive sessions
    
    * test/lisp/progmodes/flymake-tests.el (flymake-tests-data-directory):
    Expand to reasonable value if no
    EMACS_TEST_DIRECTORY. (flymake-tests--current-face): Work around
    "weirdness" of bug 17647 with read-event.
---
 test/lisp/progmodes/flymake-tests.el | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/test/lisp/progmodes/flymake-tests.el 
b/test/lisp/progmodes/flymake-tests.el
index 9bf6e7a..a5ad317 100644
--- a/test/lisp/progmodes/flymake-tests.el
+++ b/test/lisp/progmodes/flymake-tests.el
@@ -26,7 +26,11 @@
 (require 'flymake)
 
 (defvar flymake-tests-data-directory
-  (expand-file-name "lisp/progmodes/flymake-resources" (getenv 
"EMACS_TEST_DIRECTORY"))
+  (expand-file-name "lisp/progmodes/flymake-resources"
+                    (or (getenv "EMACS_TEST_DIRECTORY")
+                        (expand-file-name "../../.."
+                                          (or load-file-name
+                                              buffer-file-name))))
   "Directory containing flymake test data.")
 
 
@@ -42,7 +46,16 @@
           (goto-char (point-min))
           (flymake-mode 1)
           ;; Weirdness here...  http://debbugs.gnu.org/17647#25
+          ;; ... meaning `sleep-for', and even
+          ;; `accept-process-output', won't suffice as ways to get
+          ;; process filters and sentinels to run, though they do work
+          ;; fine in a non-interactive batch session. The only thing
+          ;; that will indeed unblock pending process output is
+          ;; reading an input event, so, as a workaround, use a dummy
+          ;; `read-event' with a very short timeout.
+          (unless noninteractive (read-event "" nil 0.1))
           (while (and flymake-is-running (< (setq i (1+ i)) 10))
+            (unless noninteractive (read-event "" nil 0.1))
             (sleep-for (+ 0.5 flymake-no-changes-timeout)))
           (flymake-goto-next-error)
           (face-at-point))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]