Subject: Re: bug#26169: 25.1; ses.el string cell recalculate message

From: Lars Ingebrigtsen <[email-masked]>
Date: Thu, 20 Aug 2020 18:22:11 +0200

Kevin Ryde <[email-masked]> writes:

> In debian packaged emacs 25.1.1, starting "emacs -Q /tmp/foo.ses"
>
>    " Ret            # create a cell with a string
>    hello Ret        # the string content
>    C-p              # move point to that cell
>    c                # ses-recalculate-cell
>    =>
>    Format specifier doesn't match argument type: A1
>
> I expected recalc on a string cell to leave it unchanged.
> The message looks like a caught error, but I don't know if it's
> something bad or merely unsightly.  The same happens in emacs 24.
>
> Occasionally I've had c on a string cell clear it to nil.  I'll see if I
> can make something reproducable for that, if it could be related.

I had a peek at ses.el (a package I don't use regularly), and something
like the following fixes the problem, but is probably totally the wrong
solution.

I've Cc'd the maintainer on this -- Vincent?

diff --git a/lisp/ses.el b/lisp/ses.el
index 96b219fc60..e396cc72ac 100644
--- a/lisp/ses.el
+++ b/lisp/ses.el
@@ -1231,7 +1231,9 @@ ses-print-cell
                     (ses--col col))
                 (ses-call-printer (or printer
                                       (ses-col-printer col)
-                                      ses--default-printer)
+                                      (if (stringp value)
+                                          "%7s"
+                                        ses--default-printer))
                                   value)))
 	(if (consp ses-call-printer-return)
 	    ;; Printer returned an error.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no