Hallo dear Hackers, hi Peter, I found a bug in GPC (my version: 970401/linux/i586)? I wrote the following little program: { -- the buggy program - see below ----------------} {Warning getchar may be implemented as a macro to getc(stdin), so this may be, this will not work for you } program test1(input,output); function getchar:integer; C; var k:integer; begin k:=getchar; while (k<>-1) do begin writeln(k); k:=getchar; end; end. {--- The same as C-Source -- works ok. ---} #include <stdio.h> void main() { int k; k=getchar; while (k!=-1) { printf("%i\n",k); k=getchar; } } { --------------------------------------- } Ok. Compiling test1.pas - no errors. Running test1 Enter an 'N' press return you will see '78 10' - thats right. Now the following: echo "N">data test1 <data Now you will see '10' - thats wrong. test1 has eaten up the first char. (Doing the same with the compiled C-Source gives '78 10', the correct result.) It does not even help to compile a readkey.o from a C-Source and use the Readkey procedure from that. Obviously Gpc-Runtime does something strange at startup. In real live my stdin will be connected to a socket so that's not easy to be worked around. Quick responses appreciated. thanks Sven
participants (1)
-
Sven Engelhardt