From: Richard R. <sf...@ol...> - 2003-12-30 14:56:49
|
On Tue, Dec 30, 2003 at 10:55:18PM +1100, Nigel Stewart and Fiona Smith wrote: > > > const char *fps = getenv( "GLUT_FPS" ); > > if( fps ) > > { > >- int interval; > >- sscanf( fps, "%d", &interval ); > >- > >- if( interval <= 0 ) > >- fgState.FPSInterval = 5000; /* 5000 millisecond default > >*/ > >- else > >- fgState.FPSInterval = interval; > >+ sscanf( fps, "%d", &fgState.FPSInterval ); > >+ if( fgState.FPSInterval <= 0 ) > >+ fgState.FPSInterval = 5000; /* 5000 milliseconds */ > > } > > } > > > >...what was gained by that? (The old code is marked by '+', the new by > >'-'.) > > gcc was complaining about GLuint fgState.FPSInterval > being treated as a signed integer in the sscanf > control string. In fact, the code was broken > a GLuint will never be negative and the 5000 > millisecond default would never be applied. Okay. (I personally think that gcc has no business guessing at what sscanf() does. It's not as if the standard library is part of the *language*. (^& But, fixing the code brokeness is good, in any case. Thanks for the explanation. -- "I probably don't know what I'm talking about." http://www.olib.org/~rkr/ |