summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2006-06-16 15:18:03 +0000
committerRichard M. Stallman <rms@gnu.org>2006-06-16 15:18:03 +0000
commit76f008da70bce146ca1827bd68f9339f5d1b3004 (patch)
tree2664fc48c7e346f369b87c3cb207dba95a7ef250
parentac2c512030ddd83b1bb8d9dbf05caabe5bf52f14 (diff)
downloademacs-76f008da70bce146ca1827bd68f9339f5d1b3004.tar.gz
(Using Interactive): Explain problem of markers, etc., in command-history.
-rw-r--r--lispref/commands.texi14
1 files changed, 14 insertions, 0 deletions
diff --git a/lispref/commands.texi b/lispref/commands.texi
index a75c0c89fec..e494d0dfc5a 100644
--- a/lispref/commands.texi
+++ b/lispref/commands.texi
@@ -233,6 +233,20 @@ reading the keyboard input:
(let ((string (read-string "Foo: " nil 'my-history)))
(list (region-beginning) (region-end) string)))
@end smallexample
+
+@strong{Warning:} the argument values should not include any data
+types that can't be printed and then read. Some facilities save
+@code{command-history} in a file to be read in the subsequent
+sessions; if a command's arguments contain a data type that prints
+using @samp{#<@dots{}>} syntax, those facilities won't work.
+
+There are, however, a few exceptions: it is ok to use a limited set of
+expressions such as @code{(point)}, @code{(mark)},
+@code{(region-beginning)}, and @code{(region-end)}, because Emacs
+recognizes them specially and puts the expression (rather than its
+value) into the command history. To see whether the expression you
+wrote is one of these exceptions, run the command, then examine
+@code{(car command-history)}.
@end itemize
@cindex examining the @code{interactive} form