diff options
author | Vincent Belaïche <vincentb1@users.sourceforge.net> | 2015-12-30 12:37:54 +0100 |
---|---|---|
committer | Vincent Belaïche <vincentb1@users.sourceforge.net> | 2015-12-30 17:42:03 +0100 |
commit | 209e30bac2d73c2e6f1c46b0d7281b474527cfa4 (patch) | |
tree | 763e169916fb9b8835e6f7305561a4de8e6a85f9 /doc/misc/ses.texi | |
parent | e8702794d46ae032803bf54ffbd71ebde215179c (diff) | |
download | emacs-209e30bac2d73c2e6f1c46b0d7281b474527cfa4.tar.gz |
Don't fake empty cells value by "" when printing with a lambda.
When using a lambda expression printer function the user should be
free to format differently a really empty cell, ie. containing nil,
from a cell containing an empty string "".
* ses.el (ses-call-printer): Replace `(or value "")' by just `value'
in the case of a lambda expression printer function.
* ses.texi (Printer functions): Add example and description about
lambda expression printer function handling all the possible values,
including unexpected ones.
Diffstat (limited to 'doc/misc/ses.texi')
-rw-r--r-- | doc/misc/ses.texi | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/doc/misc/ses.texi b/doc/misc/ses.texi index 2f92e3ea836..4cb4188f690 100644 --- a/doc/misc/ses.texi +++ b/doc/misc/ses.texi @@ -443,6 +443,36 @@ printer function. Then, if you call again @code{"%.3f"} all the cells using printer @samp{foo} will be reprinted accordingly. +When you define a printer function with a lambda expression taking one +argument, please take care that the returned value is a string, or a +list containing a string, even when the input argument has an +unexpected value. Here is an example: + +@example +(lambda (val) + (cond + ((null val) "") + ((and (numberp val) (>= val 0)) (format "%.1f" val)) + (t (ses-center-span (format "%S" val) ?#)))) +@end example + +This example will: +@itemize +@item +When the cell is empty (ie.@: when @code{val} is @code{nil}), print an +empty string @code{""} +@item +When the cell value is a non negative number, format the the value in +fixed-point notation with one decimal after point +@item +Otherwise, handle the value as erroneous by printing it as an +s-expression (using @code{prin1}), centered and surrounded by @code{#} +filling. +@end itemize + + + + @node Clearing cells @section Clearing cells @cindex clearing commands |