This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] manual: Document %m instead of %a for formatted input.
- From: OndÅej BÃlka <neleai at seznam dot cz>
- To: Ville Skytta <ville dot skytta at iki dot fi>
- Cc: libc-alpha at sourceware dot org
- Date: Tue, 11 Feb 2014 15:00:22 +0100
- Subject: [PATCH] manual: Document %m instead of %a for formatted input.
- Authentication-results: sourceware.org; auth=none
Hi, this is one of patches that sit in bugzilla. It is relatively
straightforward improvement, only thing that I changed here is ommiting
that %m is GNU extension.
Comments?
2013-12-30 Ville Skytta <ville.skytta@iki.fi>
* manual/stdio.texi (Dynamic String Input): Recommend %m modifier instead of %a.
---
manual/stdio.texi | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/manual/stdio.texi b/manual/stdio.texi
index 7957a2a..78bea79 100644
--- a/manual/stdio.texi
+++ b/manual/stdio.texi
@@ -3730,18 +3730,19 @@ input with a comprehensible error message, not with a crash.
@node Dynamic String Input
@subsection Dynamically Allocating String Conversions
-A GNU extension to formatted input lets you safely read a string with no
-maximum size. Using this feature, you don't supply a buffer; instead,
-@code{scanf} allocates a buffer big enough to hold the data and gives
-you its address. To use this feature, write @samp{a} as a flag
-character, as in @samp{%as} or @samp{%a[0-9a-z]}.
+A POSIX.1-2008 extension to formatted input lets you safely
+read a string with no maximum size. Using this feature, you don't
+supply a buffer; instead, @code{scanf} allocates a buffer big enough
+to hold the data and gives you its address. To use this feature,
+write @samp{m} as a flag character, as in @samp{%ms} or
+@samp{%m[0-9a-z]}.
The pointer argument you supply for where to store the input should have
type @code{char **}. The @code{scanf} function allocates a buffer and
stores its address in the word that the argument points to. You should
free the buffer with @code{free} when you no longer need it.
-Here is an example of using the @samp{a} flag with the @samp{%[@dots{}]}
+Here is an example of using the @samp{m} flag with the @samp{%[@dots{}]}
conversion specification to read a ``variable assignment'' of the form
@samp{@var{variable} = @var{value}}.
@@ -3749,7 +3750,7 @@ conversion specification to read a ``variable assignment'' of the form
@{
char *variable, *value;
- if (2 > scanf ("%a[a-zA-Z0-9] = %a[^\n]\n",
+ if (2 > scanf ("%m[a-zA-Z0-9] = %m[^\n]\n",
&variable, &value))
@{
invalid_input_error ();
--
1.8.3.1