info-gnus-english
[Top][All Lists]
Advanced

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

Re: Script output in mail-source directory :prescript


From: Timo Lilja
Subject: Re: Script output in mail-source directory :prescript
Date: Wed, 26 Apr 2006 08:56:04 +0300
User-agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux)

Lars Magne Ingebrigtsen <larsi@gnus.org> writes:

>Timo Lilja <timo.lilja@hut.fi> writes:
>
>> Now, the problem is that if the get-mail-script has a non-zero exit or
>> produces some output, nothing is shown in the Emacs buffers.
>
>Try the following patch:
[...]

Nope, It didn't work for me but I modified it a bit and now it works:

--- orig.mail-source.el 2005-03-18 06:35:29.000000000 +0200
+++ mail-source.el      2006-04-26 08:48:59.000000000 +0300
@@ -667,12 +667,23 @@
     (sleep-for delay)))
 
 (defun mail-source-call-script (script)
-  (let ((background nil))
+  (let ((background nil)
+       (stderr (get-buffer-create " *mail-source-stderr*"))
+       result)
     (when (string-match "& *$" script)
       (setq script (substring script 0 (match-beginning 0))
            background 0))
-    (call-process shell-file-name nil background nil
-                 shell-command-switch script)))
+    (setq result
+         (call-process shell-file-name nil stderr nil
+                       shell-command-switch script))
+    (if (and result
+              (not (zerop result)))
+        (progn
+          (split-window-vertically)
+          (other-window 1)
+          (switch-to-buffer stderr)
+          (message "Mail source error: %s" (buffer-string)))
+      (kill-buffer stderr))))
 
 ;;;
 ;;; Different fetchers

>
>Index: mail-source.el
>===================================================================
>RCS file: /usr/local/cvsroot/gnus/lisp/mail-source.el,v
>retrieving revision 7.15
>retrieving revision 7.16
>diff -c -r7.15 -r7.16
>*** mail-source.el     8 Feb 2006 04:17:15 -0000       7.15
>--- mail-source.el     23 Apr 2006 14:09:14 -0000      7.16
>***************
>*** 678,689 ****
>      (sleep-for delay)))
>  
>  (defun mail-source-call-script (script)
>!   (let ((background nil))
>      (when (string-match "& *$" script)
>        (setq script (substring script 0 (match-beginning 0))
>           background 0))
>!     (call-process shell-file-name nil background nil
>!                shell-command-switch script)))
>  
>  ;;;
>  ;;; Different fetchers
>--- 678,697 ----
>      (sleep-for delay)))
>  
>  (defun mail-source-call-script (script)
>!   (let ((background nil)
>!      (stderr (get-buffer-create " *mail-source-stderr*"))
>!      result)
>      (when (string-match "& *$" script)
>        (setq script (substring script 0 (match-beginning 0))
>           background 0))
>!     (setq result
>!        (call-process shell-file-name nil background nil
>!                      shell-command-switch script))
>!     (when (and result
>!             (not (zerop result)))
>!       (set-buffer stderr)
>!       (message "Mail source error: %s" (buffer-string)))
>!     (kill-buffer stderr)))
>  
>  ;;;
>  ;;; Different fetchers
>
>-- 
>(domestic pets only, the antidote for overdose, milk.)
>  larsi@gnus.org * Lars Magne Ingebrigtsen

-- 
Timo Lilja

"It's a 106 miles to Chicago. We've got a full tank of gas, 
half a pack of cigarettes, it's dark, and we're wearing sunglasses."


reply via email to

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