[comp.sys.amiga] Lattice 3.10 printf/scanf format string bug?

west@calgary.UUCP (02/23/87)

My brother wrote a very simple program which is bug
free, as far as I can tell.

It does weird things, like not reading floating point
input, and actually printing

%lf

to the screen.  This is not possible without double %%'s.
(Unless there is a bug in Lattice).  The scanf statement
returns 0 too, so it is fried as well!

code:

#include <stdio.h>
#include <ctype.h>

union stuffing
{
	double db;
	char c[8];
};

main()
{
union stuffing t;
unsigned char test[80];
int i,again = 1;


while(again){
	t.db = 0.0;
	printf("input decimal number ");
	scanf("%lf",&(t.db));	/* the contents of t is unchanged! */
	printf("\n");
	printf("%d,%lf\n",0,t.db); /* output of this line tends to be:
				      0,%lf			*/
	printf("\n");
	
	printf("bytes");
	
	for (i =0;i<=7;i++){
	printf("%o ",t.c[i]);
	}
	printf("\n");

	for (i =0;i<=7;i++){
	printf("%u ",t.c[i]);
	}
	printf("\n");

	
	printf("again(y/n)?");
	scanf("%s",test);
	if (test[0] == 'n') again = 0;
	}
}

We applied amfix001 and amfix002 to lc.lib, lcmffp.lib and lc2.
These fixes keep the system from crashing now, but this weird
%lf bug still persists.

Is this a known bug?  Is something else wrong that we can fix,
or should Lattice be informed?

Hints and suggestions welcomed (intelligent hints only, please :-)  )

Darrin West.
-- 
Darrin West, Master's Unit (read: student).	..![ubc-vision,ihnp4]!
Department of Computer Science			alberta!calgary!west
University of Calgary.				Can you say '88 Winter Games?
Brain fault (cortex dumped)