From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28779 invoked by alias); 29 May 2009 20:59:17 -0000 Received: (qmail 28757 invoked by uid 22791); 29 May 2009 20:59:15 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL,BAYES_00,SPF_SOFTFAIL X-Spam-Check-By: sourceware.org Received: from mtaout6.012.net.il (HELO mtaout6.012.net.il) (84.95.2.16) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 29 May 2009 20:59:07 +0000 Received: from conversion-daemon.i-mtaout6.012.net.il by i-mtaout6.012.net.il (HyperSendmail v2007.08) id <0KKF00600B8ZQL00@i-mtaout6.012.net.il> for gdb-patches@sourceware.org; Fri, 29 May 2009 23:59:04 +0300 (IDT) Received: from HOME-C4E4A596F7 ([84.228.115.215]) by i-mtaout6.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0KKF00LOFBMFNCF0@i-mtaout6.012.net.il>; Fri, 29 May 2009 23:59:04 +0300 (IDT) Date: Fri, 29 May 2009 20:59:00 -0000 From: Eli Zaretskii Subject: Re: [RFA] Fix documentation of snprintf and vsnprintf In-reply-to: <4A204AA1.8050109@gmail.com> To: Dave Korn Cc: dj@redhat.com, dave.korn.cygwin@googlemail.com, gcc-patches@gcc.gnu.org, gdb-patches@sourceware.org Reply-to: Eli Zaretskii Message-id: <83prdr4odf.fsf@gnu.org> References: <83ab54szfc.fsf@gnu.org> <83tz343zik.fsf@gnu.org> <200905291958.n4TJw3Rn012146@greed.delorie.com> <4A204814.8050107@gmail.com> <200905292033.n4TKXqmV013383@greed.delorie.com> <4A204AA1.8050109@gmail.com> X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-05/txt/msg00633.txt.bz2 > Date: Fri, 29 May 2009 21:50:41 +0100 > From: Dave Korn > CC: Dave Korn , eliz@gnu.org, > gcc-patches@gcc.gnu.org, gdb-patches@sourceware.org > > DJ Delorie wrote: > >> Also, how about that proposed variation to the wording? > >> > >> http://gcc.gnu.org/ml/gcc-patches/2009-05/msg01524.html > > > > When it comes to documentation, I'm willing to trust Eli's judgement. > > Sorry for piggybacking, that question was directed at Eli! Here's the modified version: --- libiberty/snprintf.c~0 2005-05-10 21:33:34.000000000 +0300 +++ libiberty/snprintf.c 2009-05-29 23:51:35.453125000 +0300 @@ -27,13 +27,15 @@ @deftypefn Supplemental int snprintf (char *@var{buf}, size_t @var{n}, const char *@var{format}, ...) -This function is similar to sprintf, but it will print at most @var{n} -characters. On error the return value is -1, otherwise it returns the -number of characters that would have been printed had @var{n} been -sufficiently large, regardless of the actual value of @var{n}. Note -some pre-C99 system libraries do not implement this correctly so users -cannot generally rely on the return value if the system version of -this function is used. +This function is similar to @code{sprintf}, but it will write to +@var{buf} at most @code{@var{n}-1} bytes of text, followed by a +terminating null byte, for a total of @var{n} bytes. +On error the return value is -1, otherwise it returns the number of +bytes, not including the terminating null byte, that would have been +written had @var{n} been sufficiently large, regardless of the actual +value of @var{n}. Note some pre-C99 system libraries do not implement +this correctly so users cannot generally rely on the return value if +the system version of this function is used. @end deftypefn --- libiberty/vsnprintf.c~ 2009-05-23 16:36:07.265625000 +0300 +++ libiberty/vsnprintf.c 2009-05-29 23:52:35.203125000 +0300 @@ -27,8 +27,9 @@ @deftypefn Supplemental int vsnprintf (char *@var{buf}, size_t @var{n}, const char *@var{format}, va_list @var{ap}) -This function is similar to @code{vsprintf}, but it will write at most -@var{n} bytes (including the terminating null byte) to @var{buf}. +This function is similar to @code{vsprintf}, but it will write to +@var{buf} at most @code{@var{n}-1} bytes of text, followed by a +terminating null byte, for a total of @var{n} bytes. On error the return value is -1, otherwise it returns the number of bytes, not including the terminating null byte, that would have been written had @var{n} been sufficiently large, regardless of the actual