Hi Alan,

Alan Schmitt <alan.schm...@polytechnique.org> writes:

> I think I have found a small bug in ox-koma-letter, but to fix it I
> would like your input.
> The bug: if "from-address" is not specified in the file, then it will be
> set unconditionally to the empty string, even if it is specified in an
> lco file.

OK.  AFAIK it's OK to leave out the fromaddress and fromname.

> The reason of the bug is as follows.
> To set up the from address, we call this:
> #+begin_src emacs-lisp
>    (let ((from-address (org-koma-letter--determine-to-and-from info 'from)))
>      (and from-address (format "\\setkomavar{fromaddress}{%s}\n" 
> from-address)))
> #+end_src

How about:

   (let ((from-address (org-koma-letter--determine-to-and-from info 'from)))
     (and (org-string-nw-p from-address) (format 
"\\setkomavar{fromaddress}{%s}\n" from-address)))

Or more explicitly

   (let ((from-address (org-koma-letter--determine-to-and-from info 'from)))
     (when (org-string-nw-p from-address) (format 
"\\setkomavar{fromaddress}{%s}\n" from-address)))

> This uses this function:
> #+begin_src emacs-lisp
> (defun org-koma-letter--determine-to-and-from (info key)
>   "Given INFO determine KEY for the letter.
> KEY should be `to' or `from'.
> `ox-koma-letter' allows two ways to specify TO and FROM.  If both
> are present return the preferred one as determined by
> `org-koma-letter-prefer-special-headings'."
>   (let ((option (plist-get info (if (eq key 'to) :to-address :from-address)))
>       (headline (org-koma-letter--get-tagged-contents key)))
>     (replace-regexp-in-string
>      "\n" "\\\\\\\\\n"
>      (org-trim
>       (or (if (plist-get info :special-headings) (or headline option)
>           (or option headline))
>         ;; Fallback values.
>         (if (eq key 'to) "\\mbox{}" org-koma-letter-from-address))))))
> #+end_src

I guess org-koma-letter-from-address can be left empty, but for
instance 'to must have a value different from the empty string to not
create a LaTeX error.  As I said above, quick testing suggest this is
not necessary for fromaddress.

> As the empty string is considered as "true", we apply the format
> function in the first code block.

See below.

> I would suggest to have "org-koma-letter-from-address" begin "nil" as
> default. My question is: is it an allowed value for a string?

You can use org-string-nw-p to test is S is only white-space.  When
Nicolas cleaned the file he made all (or most?) defaults into strings,
so let's stick with that.

Let me know if your happy with this.


Summon the Mothership!

Reply via email to