On Aug 13, 2012, at 2:22 PM, nobody wrote: > On Mon, Aug 13, 2012 at 10:49:26AM -0400, Simon Urbanek wrote: >> I suspect that your runtime/libc is defining fgetc as a macro which breaks >> any code that uses it as an identifier. Ideally, your runtime should be >> fixed to use a proper function, but you could probably work around it with >> something like >> >> static char * fix_fgets(char *s, int n, FILE *stream) { return fgets(s, n, >> stream); } >> #undef fgets >> static char * fgets(char *s, int n, FILE *stream) { return fix_fgets(s, n, >> stream); } >> >> Cheers, >> Simon > > like this? :http://bpaste.net/show/40047/ > if so, then i get this err msg: > connections.c:385:15: error: static declaration of 'fgets' follows non-static > declaration > /usr/include/stdio.h:544:14: note: previous declaration of 'fgets' was here > connections.c: In function 'Rconn_fgetc': > connections.c:3192:11: error: expected identifier before '(' token > connections.c:3194:15: error: expected identifier before '(' token > > and here is how it's declared in stdio.h on my system: > > /* Get a newline-terminated string of finite length from STREAM. > > This function is a possible cancellation point and therefore not > marked with __THROW. */ > extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) > __wur; > >
Ouch - never mind then - try simply #undef fgets in that case but since I don't have access to the system you have I can't really give you much better advice :/ ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel