This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

1.3.6: sscanf bug (error with %n)


There seems to be a bug with trailing spaces and %n with sscanf strings.
In particular, %n fails if it is the last item in the format string and
it is preceeded with a space.

Here is some sample code:

#include <stdio.h>

main()
{
  char foo[] = " name 1111.1 ";

  char bar[8];
  float ff;
  int nc;
  int r;

  nc = 0;
  r = sscanf(foo, " %s %f %n", bar, &ff, &nc);
  printf ("  space got:%d count:%d\n", r, nc);

  nc = 0;
  r = sscanf(foo, " %s %f%n", bar, &ff, &nc);
  printf ("nospace got:%d count:%d\n", r, nc);
}

cygwin 1.3.6 outputs:

  space got:2 count:0
nospace got:2 count:12

The correct output should be:

  space got:2 count:13
nospace got:2 count:12

--
Bill Joye
wjoye@cfa.harvard.edu
Smithsonian Astrophysical Observatory
Harvard-Smithsonian Center for Astrophysics




--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]