[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Changes to m4/doc/m4.texinfo,v
From: |
Eric Blake |
Subject: |
Changes to m4/doc/m4.texinfo,v |
Date: |
Tue, 31 Oct 2006 14:14:19 +0000 |
CVSROOT: /sources/m4
Module name: m4
Changes by: Eric Blake <ericb> 06/10/31 14:14:19
Index: doc/m4.texinfo
===================================================================
RCS file: /sources/m4/m4/doc/m4.texinfo,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -b -r1.74 -r1.75
--- doc/m4.texinfo 27 Oct 2006 17:03:51 -0000 1.74
+++ doc/m4.texinfo 31 Oct 2006 14:14:18 -0000 1.75
@@ -4853,29 +4853,36 @@
@cindex translating characters
@cindex characters, translating
+Character translation is done with @code{translit}:
+
@deffn {Builtin (m4)} translit (@var{string}, @var{chars}, @var{replacement})
-Character translation is done with @code{translit}, which expands to
address@hidden, with each character that occurs in @var{chars} translated
-into the character from @var{replacement} with the same index.
+Expands to @var{string}, with each character that occurs in
address@hidden translated into the character from @var{replacement} with
+the same index.
If @var{replacement} is shorter than @var{chars}, the excess characters
-are deleted from the expansion. If @var{replacement} is omitted, all
-characters in @var{string}, that are present in @var{chars} are deleted
-from the expansion.
+of @var{chars} are deleted from the expansion; if @var{chars} is
+shorter, the excess characters in @var{replacement} are silently
+ignored. If @var{replacement} is omitted, all characters in
address@hidden that are present in @var{chars} are deleted from the
+expansion. If a character appears more than once in @var{chars}, only
+the first instance is used in making the translation. Only a single
+translation pass is made, even if characters in @var{replacement} also
+appear in @var{chars}.
-Both @var{chars} and @var{replacement} can contain character-ranges,
+As a @acronym{GNU} extension, both @var{chars} and @var{replacement} can
+contain character-ranges,
e.g., @samp{a-z} (meaning all lowercase letters) or @samp{0-9} (meaning
all digits). To include a dash @samp{-} in @var{chars} or
@var{replacement}, place it first or last.
-The builtin macro @code{translit} is recognized only when given
-arguments.
address@hidden deffn
-
-It is not an error for the last character in the range to be `smaller'
+It is not an error for the last character in the range to be `larger'
than the first. In that case, the range runs backwards, i.e.,
@samp{9-0} means the string @samp{9876543210}.
+The macro @code{translit} is recognized only with parameters.
address@hidden deffn
+
@example
translit(`GNUs not Unix', `A-Z')
@result{}s not nix
@@ -4883,12 +4890,25 @@
@result{}GNUS NOT UNIX
translit(`GNUs not Unix', `A-Z', `z-a')
@result{}tmfs not fnix
+translit(`abcdef', `aabdef', `bcged')
address@hidden
@end example
The first example deletes all uppercase letters, the second converts
lowercase to uppercase, and the third `mirrors' all uppercase letters,
while converting them to lowercase. The two first cases are by far the
-most common.
+most common. The final example shows that @samp{a} is mapped to
address@hidden, not @samp{c}; the resulting @samp{b} is not further remapped
+to @samp{g}; the @samp{d} and @samp{e} are swapped, and the @samp{f} is
+discarded.
+
+Omitting @var{chars} evokes a warning, but still produces output.
+
address@hidden
+translit(`abc')
address@hidden:stdin:1: Warning: translit: too few arguments: 1 < 2
address@hidden
address@hidden example
@node Patsubst
@section Substituting text by regular expression
- Changes to m4/doc/m4.texinfo,v, (continued)
- Changes to m4/doc/m4.texinfo,v, Eric Blake, 2006/10/14
- Changes to m4/doc/m4.texinfo,v, Eric Blake, 2006/10/16
- Changes to m4/doc/m4.texinfo,v, Eric Blake, 2006/10/19
- Changes to m4/doc/m4.texinfo,v, Eric Blake, 2006/10/20
- Changes to m4/doc/m4.texinfo,v, Eric Blake, 2006/10/21
- Changes to m4/doc/m4.texinfo,v, Eric Blake, 2006/10/21
- Changes to m4/doc/m4.texinfo,v, Eric Blake, 2006/10/21
- Changes to m4/doc/m4.texinfo,v, Eric Blake, 2006/10/23
- Changes to m4/doc/m4.texinfo,v, Eric Blake, 2006/10/25
- Changes to m4/doc/m4.texinfo,v, Eric Blake, 2006/10/27
- Changes to m4/doc/m4.texinfo,v,
Eric Blake <=