]> code.delx.au - gnu-emacs/blobdiff - lispref/strings.texi
(Bindat Spec): Clarify using field names in
[gnu-emacs] / lispref / strings.texi
index 861e5b1c728e030967bd2af866ad4ca8b2a9e603..17a62b546b496133f5ea437924d6c4ed8420cbec 100644 (file)
@@ -700,8 +700,8 @@ in the copy with encodings of the corresponding @var{objects}.  The
 arguments @var{objects} are the computed values to be formatted.
 
 The characters in @var{string}, other than the format specifications,
-are copied directly into the output; if they have text properties,
-these are copied into the output also.
+are copied directly into the output, including their text properties,
+if any.
 @end defun
 
 @cindex @samp{%} in format
@@ -719,6 +719,17 @@ For example:
 @end group
 @end example
 
+  Since @code{format} interprets @samp{%} characters as format
+specifications, you should @emph{never} pass an arbitrary string as
+the first argument.  This is particularly true when the string is
+generated by some Lisp code.  Unless the string is @emph{known} to
+never include any @samp{%} characters, pass @code{"%s"}, described
+below, as the first argument, and the string as the second, like this:
+
+@example
+  (format "%s" @var{arbitrary-string})
+@end example
+
   If @var{string} contains more than one format specification, the
 format specifications correspond to successive values from
 @var{objects}.  Thus, the first format specification in @var{string}
@@ -810,7 +821,7 @@ operation} error.
 
 @cindex field width
 @cindex padding
-  All the specification characters allow an optional ``width'', which
+  All the specification characters allow an optional ``width,'' which
 is a digit-string between the @samp{%} and the character.  If the
 printed representation of the object contains fewer characters than
 this width, then it is padded.  The padding is on the left if the
@@ -881,7 +892,7 @@ A space character inserts a space for positive numbers (otherwise
 nothing is inserted for positive numbers).  This flag is ignored
 except for @samp{%d}, @samp{%e}, @samp{%f}, @samp{%g}.
 
-The flag @samp{#} indicates ``alternate form''.  For @samp{%o} it
+The flag @samp{#} indicates ``alternate form.''  For @samp{%o} it
 ensures that the result begins with a 0.  For @samp{%x} and @samp{%X}
 the result is prefixed with @samp{0x} or @samp{0X}. For @samp{%e},
 @samp{%f}, and @samp{%g} a decimal point is always shown even if the