aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/lispref/strings.texi31
1 files changed, 28 insertions, 3 deletions
diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi
index 9436a96ead4..526b1fb4ebc 100644
--- a/doc/lispref/strings.texi
+++ b/doc/lispref/strings.texi
@@ -864,7 +864,8 @@ below, as the first argument, and the string as the second, like this:
864 (format "%s" @var{arbitrary-string}) 864 (format "%s" @var{arbitrary-string})
865@end example 865@end example
866 866
867 If @var{string} contains more than one format specification, the 867 If @var{string} contains more than one format specification and none
868of the format specifications contain an explicit field number, the
868format specifications correspond to successive values from 869format specifications correspond to successive values from
869@var{objects}. Thus, the first format specification in @var{string} 870@var{objects}. Thus, the first format specification in @var{string}
870uses the first such value, the second format specification uses the 871uses the first such value, the second format specification uses the
@@ -961,6 +962,25 @@ operation} error.
961@end group 962@end group
962@end example 963@end example
963 964
965@cindex field numbers in format spec
966 A specification can have a @dfn{field number}, which is a decimal
967number after the initial @samp{%}, followed by a literal dollar sign
968@samp{$}. If you provide a field number, then the argument to be
969printed corresponds to the given field number instead of the next
970argument. Field numbers start at 1.
971
972You can mix specifications with and without field numbers. A
973specification without a field number that follows a specification with
974a field number will convert the argument after the one specified by
975the field number:
976
977@example
978(format "First argument %2$s, then %s, then %1$s" 1 2 3)
979 @result{} "First argument 2, then 3, then 1"
980@end example
981
982You can't use field numbers in a @samp{%%} specification.
983
964@cindex field width 984@cindex field width
965@cindex padding 985@cindex padding
966 A specification can have a @dfn{width}, which is a decimal number 986 A specification can have a @dfn{width}, which is a decimal number
@@ -996,9 +1016,14 @@ is not truncated.
996@end group 1016@end group
997@end example 1017@end example
998 1018
1019If you want to use both a field number and a width, place the field
1020number before the width. For example, in @samp{%2$7s}, @samp{2} is
1021the field number and @samp{7} is the width.
1022
999@cindex flags in format specifications 1023@cindex flags in format specifications
1000 Immediately after the @samp{%} and before the optional width 1024 After the @samp{%} and before the optional width specifier, you can
1001specifier, you can also put certain @dfn{flag characters}. 1025also put certain @dfn{flag characters}. The flag characters need to
1026come directly after a potential field number.
1002 1027
1003 The flag @samp{+} inserts a plus sign before a positive number, so 1028 The flag @samp{+} inserts a plus sign before a positive number, so
1004that it always has a sign. A space character as flag inserts a space 1029that it always has a sign. A space character as flag inserts a space