[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnugo-devel] cygwin sscanf problem in gtp.c
From: |
Trevor Morris |
Subject: |
[gnugo-devel] cygwin sscanf problem in gtp.c |
Date: |
Fri, 26 Oct 2001 10:02:23 -0400 |
Here's a test file that shows how gtp.c fails.
In short, the " %s %n" construct isn't working as expected. In the
last sscanf, 1 is returned, but n is not set. This causes very
bad behavior in gtp.c (line 97, etc.) [specifically p += n].
Is this specific to cygwin, or do other platforms have this problem
too?
const char *db = "dragon_data black\n";
const char *d1 = "dragon_data\n";
char command[1024];
int n=-1,r;
dump(const char *s, char*command) {
printf("%d %d '%s' '%s'\n", r, n, command, s);
n = -1 ;
}
main() {
r = sscanf(d1, " %s%n", command, &n);
dump(d1, command);
r = sscanf(db, " %s%n", command, &n);
dump(db, command);
r = sscanf(d1, " %s%n", command, &n);
dump(d1, command);
r = sscanf(d1, " %s %n", command, &n);
dump(d1, command);
r = sscanf(db, " %s %n", command, &n);
dump(db, command);
r = sscanf(d1, " %s %n", command, &n);
dump(d1, command);
}
cygwin (gcc) output:
1 11 'dragon_data' 'dragon_data
'
1 11 'dragon_data' 'dragon_data black
'
1 11 'dragon_data' 'dragon_data
'
1 -1 'dragon_data' 'dragon_data
'
1 12 'dragon_data' 'dragon_data black
'
1 -1 'dragon_data' 'dragon_data
'
VC output:
1 11 'dragon_data' 'dragon_data
'
1 11 'dragon_data' 'dragon_data black
'
1 11 'dragon_data' 'dragon_data
'
1 12 'dragon_data' 'dragon_data
'
1 12 'dragon_data' 'dragon_data black
'
1 12 'dragon_data' 'dragon_data
'
- [gnugo-devel] cygwin sscanf problem in gtp.c,
Trevor Morris <=