help-gnu-emacs
[Top][All Lists]
Advanced

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

very mysterious behaviour from rmail-output-to-rmail-file


From: Florian von Savigny
Subject: very mysterious behaviour from rmail-output-to-rmail-file
Date: Sat, 01 Jan 2005 20:48:32 +0100
User-agent: Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (gnu/linux)

I'm trying to debug a function I have written which is meant to be
called in rmail buffers and basically should sort a message
somewhere. The directory of that somewhere should be returned by
another function which works well on its own:

(defun rmail-output-to-afile ()
  (interactive)
  (rmail-output-to-rmail-file (concat 
                               (nth 1 (current-contract))
                               "/putmail")))

"(current-contract)" returns a two-element list, of a directory name
(without its path) and the full path of this directory - hence, "(nth
1 ..."  returns that full path. This works fine, and up till today I
thought that if an expression returns something, it returns
it. Somehow I seem to have hit upon a proof to the contrary - consider
yourself:

(nth 1 (current-contract)) 

by itself returns (as I explained)

"/home/uebersetzer/auftraege/20040203.hau45147ess"

If this literal value is substituted for (nth 1 (current-contract)) in
the function definition, rmail-output-to-afile outputs the current
message to "/home/uebersetzer/auftraege/20040203.hau45147ess/putmail",
first asking whether it should create the file if it isn't there. This
is what I expect the function to do.

But if the function definition is left as above, it will only go as
far as asking whether it should create the file (if it isn't already
there). Then, it will emit the error "Wrong type argument: stringp,
nil", and stop.

The backtrace says:

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  
rmail-output-to-rmail-file("/home/uebersetzer/auftraege/20040203.hau45147ess/putmail")
  rmail-output-to-afile()
* call-interactively(rmail-output-to-afile)
  execute-extended-command(nil)
  call-interactively(execute-extended-command)


This is either a no-brainer, or a deep mystery. To me, it's the
latter. Can anybody help me?

Thanks a lot!

-- 


Florian v. Savigny

If you are going to reply in private, please be patient, as I only
check for mail something like once a week. - Si vous allez répondre
personellement, patientez s.v.p., car je ne lis les courriels
qu'environ une fois par semaine.

reply via email to

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