emacs-devel
[Top][All Lists]
Advanced

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

Re: 23.0.60; emacs-report-bug fails silently


From: Florian Beck
Subject: Re: 23.0.60; emacs-report-bug fails silently
Date: Thu, 05 Jun 2008 16:28:53 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux)

Stefan Monnier <address@hidden> writes:

>>> That's odd.  From what you said earlier, it seems you're using the
>>> sendmail.el code to send the message.  And that code does (around line
>>> 1167):
>>> (exit-value (apply 'call-process-region args)))
>>> (or (null exit-value) (eq 0 exit-value)
>>> (error "Sending...failed with exit value %d" exit-value)))
>>> 
>>> so it should catch a non-0 exit status and signal an error for it.
>>> 
>>> Could you try and investigate, to see whether you're indeed running this
>>> code and why it doesn't get an exit-value of 75?
>
>> Yes, this code is run. As far as I can see the following happens:
>
>> * append((1 72 "/usr/sbin/sendmail" nil 0 nil "-oi") nil nil ("-oem" "-odb") 
>> ("-t") nil)
>
>> And then:
>
>> Debugger entered--returning value: nil
>>   call-process-region(1 72 "/usr/sbin/sendmail" "/tmp/emacsY9owP5" 0 nil 
>> "-oi" "-oem" "-odb" "-t")
>> * apply(call-process-region (1 72 "/usr/sbin/sendmail" nil 0 nil "-oi" 
>> "-oem" "-odb" "-t"))
>> * byte-code [snipped]
>> * sendmail-send-it()
>>   mail-send()
>>   mail-send-and-exit(nil)
>>   call-interactively(mail-send-and-exit nil nil)
>
> Can you do M-x trace-function-background RET call-process-region RET,
> then run the code, then look at the *trace-output* buffer to see what
> call-process-region returns?

1 -> call-process-region: start=1 end=77 program="/usr/sbin/sendmail" 
delete=nil buffer=0 display=nil args=("-oi" "-oem" "-odb" "-t")
1 <- call-process-region: nil

According to the docstring, call-process-region doesn't return the exit
value, because buffer=0.
This is because mail-interactive is nil by default.

>>> (or (null exit-value) (eq 0 exit-value)
>>> (error "Sending...failed with exit value %d" exit-value)))
>
>> is never run, because it belongs to the else branch of the enclosing
>> if statement.
>
> Hmm... which version of sendmail.el is that?  On the trunk and the
> Emacs-22 branch, this code is the body of the `let' that runs
> call-process-region, so it definitely should be run.

You are right, of course. Seems I got lost somewhere in the long list of 
bindings.

-- 
Florian Beck




reply via email to

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