svn commit: r326635 - head/lib/libc/stdio

Stephen J. Kiernan stevek at FreeBSD.org
Wed Dec 6 21:12:25 UTC 2017


Author: stevek
Date: Wed Dec  6 21:12:24 2017
New Revision: 326635
URL: https://svnweb.freebsd.org/changeset/base/326635

Log:
  The function fwscanf() return value is wrong when encountering an early
  matching failure.
  
  According to the Open Group documentation for fwscanf:
  "Upon successful completion, these functions shall return the number of
  successfully matched and assigned input items; this number can be zero in
  the event of an early matching failure."
  
  Without this change, fwscanf would return EOF in the case of an early
  matching failure, instead of the proper return value of 0.
  
  This change aligns fwscanf(3) with the implementation in fscanf(3).
  
  PR:		202240
  Submitted by:	rajendra.sy at gmail.com
  Reviewed by:	jhb, cem
  Approved by:	sjg (mentor)
  MFC after:	2 weeks
  Differential Revision:	https://reviews.freebsd.org/D13288

Modified:
  head/lib/libc/stdio/vfwscanf.c

Modified: head/lib/libc/stdio/vfwscanf.c
==============================================================================
--- head/lib/libc/stdio/vfwscanf.c	Wed Dec  6 21:00:41 2017	(r326634)
+++ head/lib/libc/stdio/vfwscanf.c	Wed Dec  6 21:12:24 2017	(r326635)
@@ -494,7 +494,7 @@ literal:
 				goto input_failure;
 			if (wi != c) {
 				__ungetwc(wi, fp, locale);
-				goto input_failure;
+				goto match_failure;
 			}
 			nread++;
 			continue;


More information about the svn-src-all mailing list