]> code.delx.au - gnu-emacs/blobdiff - doc/misc/ses.texi
Merge branch 'emacs-25-merge'
[gnu-emacs] / doc / misc / ses.texi
index 9b2a457a710e70e00a9b2a72ab2d5f41e99bd0a5..fe6d5ab5422e7068c8dd2e5ca64cb6a0a66eb106 100644 (file)
@@ -444,6 +444,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