🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.gcc.bug
Article #6330

Infinite hang bug in gcc 2.7.2, sparc-solaris with -finline-functions

#6330
From: Jeremy Fitzhardinge
Date: Wed, 20 Dec 1995 00:00
6549 lines
98064 bytes
Hi,

I've found a bug in gcc-2.7.2 on a sparc-solaris machine.  When invoked
as follows:
: suede:6; gcc -c -O -finline-functions -pipe  -I/usr/openwin/include '-DBINDIR
="/usr/openwin/bin/"' PSdevstr.c -v
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2/2.7.2/specs
gcc version 2.7.2
 /usr/local/lib/gcc-lib/sparc-sun-solaris2/2.7.2/cpp -lang-c -v -I/usr/openwin/include -undef -D__GNUC__=2 -D__GNUC_MINOR__=7 -Dsun -Dsparc -Dunix -D__svr4__ -D__SVR4 -D__GCC_NEW_VARARGS__ -D__sun__ -D__sparc__ -D__unix__ -D__svr4__ -D__SVR4 -D__GCC_NEW_VARARGS__ -D__sun -D__sparc -D__unix -Asystem(unix) -Asystem(svr4) -Acpu(sparc) -Amachine(sparc) -D__OPTIMIZE__ -DBINDIR="/usr/openwin/bin/" PSdevstr.c |
 /usr/local/lib/gcc-lib/sparc-sun-solaris2/2.7.2/cc1 -quiet -dumpbase PSdevstr.c -O -version -finline-functions -o - |
 /usr/ccs/bin/as -V -Qy -s -o PSdevstr.o -
GNU CPP version 2.7.2 (sparc)
#include "..." search starts here:
#include <...> search starts here:
 /usr/openwin/include
 /usr/local/include
 /usr/local/sparc-sun-solaris2/include
 /usr/local/lib/gcc-lib/sparc-sun-solaris2/2.7.2/include
 /usr/include
End of search list.
GNU C version 2.7.2 (sparc) compiled by GNU C version 2.7.2.
/usr/ccs/bin/as: SC3.1 dev 09 May 1994
^C

it hangs forever with about 16MB of virtual memory allocated.  It compiles the
source file without problem without -finline-functions. 
uname -a says:
SunOS suede.sw.oz.au 5.4 Generic_101945-11 sun4m sparc

The preprocessed source follows.

	J


# 1 "PSdevstr.c"
 

 
 
  
  
 
 
 
 
  
 
  
 
 
 
 
 



static char *id_string="$Id: PSdevstr.c,v 1.1 1995/02/08 11:11:14 sander Exp $";



 






















 






 






 



#define INCLUDE_DRAW
#define POSTSCRIPT_DEVICE

#define draw_main      ps_draw_main
#define draw_one_node  ps_draw_one_node
#define gs_stringw     ps_stringw
#define gs_stringh     ps_stringh
#define gs_boxw        ps_boxw
#define gs_boxh        ps_boxh

#define gs_printstr          ps_printstr         
#define gs_calcstringsize    ps_calcstringsize  
#define gs_setto             ps_setto          
#define gs_setshrink         ps_setshrink        
#define gs_calctextboxsize   ps_calctextboxsize 
#define gs_anchornode        ps_anchornode        
#define gs_textbox           ps_textbox        
#define gs_reverttextbox     ps_reverttextbox 
#define gs_halfreverttextbox ps_halfreverttextbox  
#define gs_stringbox         ps_stringbox         
#define gs_calcrhombsize     ps_calcrhombsize 
#define gs_rhomb             ps_rhomb        
#define gs_revertrhomb       ps_revertrhomb 
#define gs_halfrevertrhomb   ps_halfrevertrhomb  
#define gs_calctrianglesize  ps_calctrianglesize 
#define gs_triangle          ps_triangle        
#define gs_reverttriangle    ps_reverttriangle 
#define gs_halfreverttriangle ps_halfreverttriangle  
#define gs_calcellipsesize   ps_calcellipsesize 
#define gs_ellipse           ps_ellipse        
#define gs_revertellipse     ps_revertellipse 
#define gs_halfrevertellipse ps_halfrevertellipse  
#define gs_solidarrow        ps_solidarrow       
#define gs_dashedarrow       ps_dashedarrow     
#define gs_dottedarrow       ps_dottedarrow    
#define gs_line              ps_line
#define gs_rectangle         ps_rectangle
#define gs_actbackground     ps_actbackground

#define mystretch            ps_mystretch
#define myshrink             ps_myshrink
#define myxpos               ps_myxpos
#define myypos               ps_myypos
#define gs_stlimit           ps_stlimit
#define gs_shlimit           ps_shlimit


 







 
# 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2/2.7.2/include/stdio.h" 1 3
 
 

 
 
 

 




#define	_STDIO_H

#pragma ident	"@(#)stdio.h	1.34	94/06/07 SMI"	

# 1 "/usr/include/sys/feature_tests.h" 1 3
 
 

 
 
 


#define	_SYS_FEATURE_TESTS_H

#pragma ident	"@(#)feature_tests.h	1.6	93/07/09 SMI"





 
















# 17 "/usr/local/lib/gcc-lib/sparc-sun-solaris2/2.7.2/include/stdio.h" 2 3







#define	_SIZE_T
typedef unsigned int	size_t;


typedef long	fpos_t;





#define __NULL_TYPE (void *)

#define NULL (__NULL_TYPE 0)


#define	BUFSIZ	1024


 















#define	_NFILE	20	









#define	_SBFSIZ	8	

#define	_IOFBF		0000	
#define	_IOLBF		0100	
#define	_IONBF		0004	
#define	_IOEOF		0020	
#define	_IOERR		0040	

#define	_IOREAD		0001	
#define	_IOWRT		0002	
#define	_IORW		0200	
#define	_IOMYBUF	0010	


#define	EOF	(-1)


#define	FOPEN_MAX	_NFILE
#define	FILENAME_MAX    1024	

#define	SEEK_SET	0
#define	SEEK_CUR	1
#define	SEEK_END	2
#define	TMP_MAX		17576	




#define	L_ctermid	9
#define	L_cuserid	9





#define	P_tmpdir	"/var/tmp/"









#define	L_tmpnam	25	


#define	stdin	(&__iob[0])
#define	stdout	(&__iob[1])
#define	stderr	(&__iob[2])






typedef struct	 
{




	int		_cnt;	 
	unsigned char	*_ptr;	 

	unsigned char	*_base;	 
	unsigned char	_flag;	 
	unsigned char	_file;	 
} FILE;


extern FILE		__iob[20 ];



extern FILE		*_lastbuf;
extern unsigned char	*_bufendtab[];

extern unsigned char	 _sibuf[], _sobuf[];




extern int	remove(const char *);
extern int	rename(const char *, const char *);
extern FILE	*tmpfile(void);
extern char	*tmpnam(char *);



extern int	fclose(FILE *);
extern int	fflush(FILE *);
extern FILE	*fopen(const char *, const char *);
extern FILE	*freopen(const char *, const char *, FILE *);
extern void	setbuf(FILE *, char *);
extern int	setvbuf(FILE *, char *, int, size_t);
 
extern int	fprintf(FILE *, const char *, ...);
 
extern int	fscanf(FILE *, const char *, ...);
 
extern int	printf(const char *, ...);
 
extern int	scanf(const char *, ...);
 
extern int	sprintf(char *, const char *, ...);
 
extern int	sscanf(const char *, const char *, ...);





extern int	vfprintf(FILE *, const char *, void *);
extern int	vprintf(const char *, void *);
extern int	vsprintf(char *, const char *, void *);

extern int	fgetc(FILE *);
extern char	*fgets(char *, int, FILE *);
extern int	fputc(int, FILE *);
extern int	fputs(const char *, FILE *);
extern int	getc(FILE *);
extern int	getchar(void);
extern char	*gets(char *);
extern int	putc(int, FILE *);
extern int	putchar(int);
extern int	puts(const char *);
extern int	ungetc(int, FILE *);
extern size_t	fread(void *, size_t, size_t, FILE *);
#pragma int_to_unsigned fread
extern size_t	fwrite(const void *, size_t, size_t, FILE *);
#pragma int_to_unsigned fwrite
extern int	fgetpos(FILE *, fpos_t *);
extern int	fseek(FILE *, long, int);
extern int	fsetpos(FILE *, const fpos_t *);
extern long	ftell(FILE *);
extern void	rewind(FILE *);
extern void	clearerr(FILE *);
extern int	feof(FILE *);
extern int	ferror(FILE *);
extern void	perror(const char *);





extern int	__filbuf(FILE *);
extern int	__flsbuf(int, FILE *);

 








# 244 "/usr/local/lib/gcc-lib/sparc-sun-solaris2/2.7.2/include/stdio.h" 3

#define	getc(p)		(--(p)->_cnt < 0 ? __filbuf(p) : (int)*(p)->_ptr++)
#define	putc(x, p)	(--(p)->_cnt < 0 ? __flsbuf((unsigned char) (x), (p)) : (int)(*(p)->_ptr++ = (x)))

#define	getchar()	getc(stdin)
#define	putchar(x)	putc((x), stdout)
#define	clearerr(p)	((void)((p)->_flag &= ~(_IOERR | _IOEOF)))
#define	feof(p)		((p)->_flag & _IOEOF)
#define	ferror(p)	((p)->_flag & _IOERR)




 





extern FILE	*fdopen(int, const char *);
extern char	*ctermid(char *);
extern int	fileno(FILE *);

 








#define	fileno(p)	((p)->_file)




 



extern FILE	*popen(const char *, const char *);
extern char	*cuserid(char *);
extern char	*tempnam(const char *, const char *);
extern int	getopt(int, char *const *, const char *);

extern int	getsubopt(char **, char *const *, char **);

extern char	*optarg;
extern int	optind, opterr, optopt;
extern int	getw(FILE *);
extern int	putw(int, FILE *);
extern int	pclose(FILE *);



# 341 "/usr/local/lib/gcc-lib/sparc-sun-solaris2/2.7.2/include/stdio.h" 3







# 123 "PSdevstr.c" 2

# 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2/2.7.2/include/stdlib.h" 1 3
 
 

 
 
 


#define	_STDLIB_H

#pragma ident	"@(#)stdlib.h	1.25	95/01/13 SMI"	












typedef	struct {
	int	quot;
	int	rem;
} div_t;

typedef struct {
	long	quot;
	long	rem;
} ldiv_t;


typedef struct {
	long long	quot;
	long long	rem;
} lldiv_t;











#define	_UID_T
typedef long	uid_t;






#define	EXIT_FAILURE	1
#define	EXIT_SUCCESS    0
#define	RAND_MAX	32767


#define	_WCHAR_T



typedef long int wchar_t;




extern unsigned char	__ctype[];

#define	MB_CUR_MAX	__ctype[520]

extern double atof(const char *);
extern int atoi(const char *);
extern long int atol(const char *);
extern double strtod(const char *, char **);
extern long int strtol(const char *, char **, int);
extern unsigned long int strtoul(const char *, char **, int);

extern int rand(void);
extern void srand(unsigned int);




extern void *calloc(size_t, size_t);
extern void free(void *);
extern void *malloc(size_t);
extern void *realloc(void *, size_t);

extern void abort(void);
extern int atexit(void (*)(void));
extern void exit(int);
extern char *getenv(const char *);
extern int system(const char *);

extern void *bsearch(const void *, const void *, size_t, size_t,
	int (*)(const void *, const void *));
extern void qsort(void *, size_t, size_t,
	int (*)(const void *, const void *));

extern int abs(int);
extern div_t div(int, int);
extern long int labs(long);
extern ldiv_t ldiv(long, long);

extern int mbtowc(wchar_t *, const char *, size_t);
extern int mblen(const char *, size_t);
extern int wctomb(char *, wchar_t);

extern size_t mbstowcs(wchar_t *, const char *, size_t);
extern size_t wcstombs(char *, const wchar_t *, size_t);





extern double drand48(void);
extern double erand48(unsigned short *);
extern long jrand48(unsigned short *);
extern void lcong48(unsigned short *);
extern long lrand48(void);
extern long mrand48(void);
extern long nrand48(unsigned short *);
extern unsigned short *seed48(unsigned short *);
extern void srand48(long);
extern int putenv(const char *);
extern void setkey(const char *);






extern void swab(const char *, char *, int);





extern long a64l(const char *);
extern int dup2(int, int);
extern char *ecvt(double, int, int *, int *);
extern char *fcvt(double, int, int *, int *);
extern char *qecvt(long double, int, int *, int *);
extern char *qfcvt(long double, int, int *, int *);
extern char *qgcvt(long double, int, char *);
extern char *getcwd(char *, size_t);
extern char *getlogin(void);
extern int getopt(int, char *const *, const char *);
extern int getsubopt(char **, char *const *, char **);
extern char *optarg;
extern int optind, opterr, optopt;
extern char *getpass(const char *);
extern int getpw(uid_t, char *);
extern char *gcvt(double, int, char *);
extern int isatty(int);
extern char *l64a(long);
extern void *memalign(size_t, size_t);
extern char *mktemp(char *);
extern char *realpath(char *, char *);
extern char *ttyname(int);
extern int ttyslot(void);
extern void *valloc(size_t);
extern char *ptsname(int);
extern int  grantpt(int);
extern int  unlockpt(int);


extern long long atoll(const char *);
extern long long llabs(long long);
extern lldiv_t lldiv(long long, long long);
extern char *lltostr(long long, char *);
extern long long strtoll(const char *, char **, int);
extern unsigned long long strtoull(const char *, char **, int);
extern char *ulltostr(unsigned long long, char *);




# 280 "/usr/local/lib/gcc-lib/sparc-sun-solaris2/2.7.2/include/stdlib.h" 3







# 124 "PSdevstr.c" 2

# 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2/2.7.2/include/math.h" 1 3
 




#define	_MATH_H





#pragma ident	"@(#)math.h	2.3	93/09/07"



#define	__P(p)	p







 


typedef union _h_val {
  	unsigned long _i[2];
	double _d;
} _h_val;


extern const _h_val __huge_val;





#define	HUGE_VAL __huge_val._d



 


#define	M_E		2.7182818284590452354
#define	M_LOG2E		1.4426950408889634074
#define	M_LOG10E	0.43429448190325182765
#define	M_LN2		0.69314718055994530942
#define	M_LN10		2.30258509299404568402
#define	M_PI		3.14159265358979323846
#define	M_PI_2		1.57079632679489661923
#define	M_PI_4		0.78539816339744830962
#define	M_1_PI		0.31830988618379067154
#define	M_2_PI		0.63661977236758134308
#define	M_2_SQRTPI	1.12837916709551257390
#define	M_SQRT2		1.41421356237309504880
#define	M_SQRT1_2	0.70710678118654752440

extern int signgam;

#define	MAXFLOAT	((float)3.40282346638528860e+38)


 


enum version {libm_ieee = -1, c_issue_4, ansi_1, strict_ansi};


extern const enum version _lib_version;




struct exception {
	int type;
	char *name;
	double arg1;
	double arg2;
	double retval;
};

#define	HUGE		MAXFLOAT

#define	_ABS(x)		((x) < 0 ? -(x) : (x))

#define	_REDUCE(TYPE, X, XN, C1, C2)	{ double x1 = (double)(TYPE)X, x2 = X - x1; X = x1 - (XN) * (C1); X += x2; X -= (XN) * (C2); }



#define	DOMAIN		1
#define	SING		2
#define	OVERFLOW	3
#define	UNDERFLOW	4
#define	TLOSS		5
#define	PLOSS		6

#define	_POLY1(x, c)	((c)[0] * (x) + (c)[1])
#define	_POLY2(x, c)	(_POLY1((x), (c)) * (x) + (c)[2])
#define	_POLY3(x, c)	(_POLY2((x), (c)) * (x) + (c)[3])
#define	_POLY4(x, c)	(_POLY3((x), (c)) * (x) + (c)[4])
#define	_POLY5(x, c)	(_POLY4((x), (c)) * (x) + (c)[5])
#define	_POLY6(x, c)	(_POLY5((x), (c)) * (x) + (c)[6])
#define	_POLY7(x, c)	(_POLY6((x), (c)) * (x) + (c)[7])
#define	_POLY8(x, c)	(_POLY7((x), (c)) * (x) + (c)[8])
#define	_POLY9(x, c)	(_POLY8((x), (c)) * (x) + (c)[9])



 


extern double acos  (double)  ;
extern double asin  (double)  ;
extern double atan  (double)  ;
extern double atan2  (double, double)  ;
extern double cos  (double)  ;
extern double sin  (double)  ;
extern double tan  (double)  ;

extern double cosh  (double)  ;
extern double sinh  (double)  ;
extern double tanh  (double)  ;

extern double exp  (double)  ;
extern double frexp  (double, int *)  ;
extern double ldexp  (double, int)  ;
extern double log  (double)  ;
extern double log10  (double)  ;
extern double modf  (double, double *)  ;

extern double pow  (double, double)  ;
extern double sqrt  (double)  ;

extern double ceil  (double)  ;
extern double fabs  (double)  ;
extern double floor  (double)  ;
extern double fmod  (double, double)  ;


 


extern double erf  (double)  ;
extern double erfc  (double)  ;
extern double gamma  (double)  ;
extern double hypot  (double, double)  ;
extern int isnan  (double)  ;
extern double j0  (double)  ;
extern double j1  (double)  ;
extern double jn  (int, double)  ;
extern double lgamma  (double)  ;
extern double y0  (double)  ;
extern double y1  (double)  ;
extern double yn  (int, double)  ;


 


extern double acosh  (double)  ;
extern double asinh  (double)  ;
extern double atanh  (double)  ;
extern double cbrt  (double)  ;
extern double logb  (double)  ;
extern double nextafter  (double, double)  ;
extern double remainder  (double, double)  ;
extern double scalb  (double, double)  ;

extern int matherr  (struct exception *)  ;

 


extern double significand  (double)  ;

 


extern double copysign  (double, double)  ;
extern int ilogb  (double)  ;
extern double rint  (double)  ;
extern double scalbn  (double, int)  ;

 


extern double expm1  (double)  ;
extern double log1p  (double)  ;

 








 


extern float modff  (float, float *)  ;

# 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2/2.7.2/include/floatingpoint.h" 1 3
 
 

 
 
 


#define _FLOATINGPOINT_H





#pragma ident	"@(#)floatingpoint.h	2.3 93/09/07 SunPro"

 




 












# 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2/2.7.2/include/sys/ieeefp.h" 1 3
 




#define _SYS_IEEEFP_H

#pragma ident	"@(#)ieeefp.h	2.3 93/09/07 SunPro"





 



enum fp_direction_type {	 
	fp_nearest	= 0,
	fp_tozero	= 1,
	fp_positive	= 2,
	fp_negative	= 3
};

enum fp_precision_type {	 
	fp_extended	= 0,
	fp_single	= 1,
	fp_double	= 2,
	fp_precision_3	= 3
};

enum fp_exception_type {	 
	fp_inexact	= 0,
	fp_division	= 1,
	fp_underflow	= 2,
	fp_overflow	= 3,
	fp_invalid	= 4
};


# 64 "/usr/local/lib/gcc-lib/sparc-sun-solaris2/2.7.2/include/sys/ieeefp.h" 3


enum fp_class_type {		 
	fp_zero		= 0,
	fp_subnormal	= 1,
	fp_normal	= 2,
	fp_infinity   	= 3,
	fp_quiet	= 4,
	fp_signaling	= 5
};






# 35 "/usr/local/lib/gcc-lib/sparc-sun-solaris2/2.7.2/include/floatingpoint.h" 2 3












#define N_IEEE_EXCEPTION 5	

typedef int sigfpe_code_type;	 

typedef void (*sigfpe_handler_type)();	 

#define SIGFPE_DEFAULT (void (*)())0	
#define SIGFPE_IGNORE  (void (*)())1  	
#define SIGFPE_ABORT   (void (*)())2  	

extern sigfpe_handler_type sigfpe  (sigfpe_code_type, sigfpe_handler_type)  ;

 


typedef float single;			


#define _EXTENDED
typedef unsigned extended[3];


typedef long double quadruple;	 

typedef unsigned fp_exception_field_type;
				 



 


#define DECIMAL_STRING_LENGTH 512	

typedef char decimal_string[512 ];	
				 

typedef struct {
	enum fp_class_type fpclass;
	int	sign;
	int	exponent;
	decimal_string ds;	 


	int	more;		 


	int 	ndigits;	 


} decimal_record;

enum decimal_form {
	fixed_form,		 


	floating_form		 

};

typedef struct {
	enum fp_direction_type rd;	
				 
	enum decimal_form df;	 

	int ndigits;		 
} decimal_mode;

enum decimal_string_form {	 
	invalid_form,		 
	whitespace_form,	 
	fixed_int_form,		 
	fixed_intdot_form,	 
	fixed_dotfrac_form,	 
	fixed_intdotfrac_form,	 
	floating_int_form,	 	
	floating_intdot_form,	 
	floating_dotfrac_form,	 
	floating_intdotfrac_form, 
	inf_form,		 
	infinity_form,		 
	nan_form,		 
	nanstring_form		 
};

extern void single_to_decimal  (single *, decimal_mode *, decimal_record *,
				fp_exception_field_type *)  ;
extern void double_to_decimal  (double *, decimal_mode *, decimal_record *,
				fp_exception_field_type *)  ;
extern void extended_to_decimal  (extended *, decimal_mode *,
				decimal_record *, fp_exception_field_type *)  ;
extern void quadruple_to_decimal  (quadruple *, decimal_mode *,
				decimal_record *, fp_exception_field_type *)  ;

extern void decimal_to_single  (single *, decimal_mode *, decimal_record *,
				fp_exception_field_type *)  ;
extern void decimal_to_double  (double *, decimal_mode *, decimal_record *,
				fp_exception_field_type *)  ;
extern void decimal_to_extended  (extended *, decimal_mode *,
				decimal_record *, fp_exception_field_type *)  ;
extern void decimal_to_quadruple  (quadruple *, decimal_mode *,
				decimal_record *, fp_exception_field_type *)  ;

extern void string_to_decimal  (char **, int, int, decimal_record *,
				enum decimal_string_form *, char **)  ;
extern void func_to_decimal  (char **, int, int, decimal_record *,
				enum decimal_string_form *, char **,
				int (*)(void), int *, int (*)(int))  ;
extern void file_to_decimal  (char **, int, int, decimal_record *,
				enum decimal_string_form *, char **,
				FILE *, int *)  ;

extern char *seconvert  (single *, int, int *, int *, char *)  ;
extern char *sfconvert  (single *, int, int *, int *, char *)  ;
extern char *sgconvert  (single *, int, int, char *)  ;
extern char *econvert  (double, int, int *, int *, char *)  ;
extern char *fconvert  (double, int, int *, int *, char *)  ;
extern char *gconvert  (double, int, int, char *)  ;
extern char *qeconvert  (quadruple *, int, int *, int *, char *)  ;
extern char *qfconvert  (quadruple *, int, int *, int *, char *)  ;
extern char *qgconvert  (quadruple *, int, int, char *)  ;

extern char *ecvt  (double, int, int *, int *)  ;
extern char *fcvt  (double, int, int *, int *)  ;
extern char *gcvt  (double, int, char *)  ;

 



extern double atof  (const char *)  ;
extern double strtod  (const char *, char **)  ;






# 206 "/usr/local/lib/gcc-lib/sparc-sun-solaris2/2.7.2/include/math.h" 2 3










# 125 "PSdevstr.c" 2

# 1 "globals.h" 1
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 






















 



































 





#define	GLOBALS_H

 

 







 




 
 
#define ANSI_C

 








 





#define USR_SIGNAL
 


 








 
#define OWN_QUICKSORT


 





 
 
 
 
#define X11


 





 
#define ALIGN  8
#define IALIGN (ALIGN-1)



 







 

 
#define MEMBLOCKSIZE 1048576


 




#define VCG_DEFAULT_FONT "-*-courier-*-*-*--14-*-*-*-*-*-*-*"



 











#define NOINPUTFOCUS



 


















 


 
#define CHECK_ASSERTIONS


 



 


 







 

 

# 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2/2.7.2/include/limits.h" 1 3
 


 


#define _GCC_LIMITS_H_


 
# 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2/2.7.2/include/syslimits.h" 1 3
 
 

 
 
 


#define	_LIMITS_H

#pragma ident	"@(#)limits.h	1.22	94/06/08 SMI"	







 


#define	CHAR_BIT	8		
#define	SCHAR_MIN	(-128)		
#define	SCHAR_MAX	127		
#define	UCHAR_MAX	255		

#define	MB_LEN_MAX	5

#define	CHAR_MIN	SCHAR_MIN	
#define	CHAR_MAX	SCHAR_MAX	

#define	SHRT_MIN	(-32768)	
#define	SHRT_MAX	32767		
#define	USHRT_MAX	65535		
#define	INT_MIN		(-2147483647-1)	
#define	INT_MAX		2147483647	
#define	UINT_MAX	4294967295U	
#define	LONG_MIN	(-2147483647L-1L)	
#define	LONG_MAX	2147483647L	
#define	ULONG_MAX	4294967295UL 	




#define	SSIZE_MAX	INT_MAX		

 



#define	ARG_MAX		1048320	

#define	LINK_MAX	32767	


#define	MAX_CANON	256	



#define	MAX_INPUT	512	


#define	NGROUPS_MAX	16	


#define	PATH_MAX	1024	


#define	PIPE_BUF	5120	





 




#define	_POSIX_AIO_LISTIO_MAX	    2
#define	_POSIX_AIO_MAX		    1
#define	_POSIX_ARG_MAX		 4096
#define	_POSIX_CHILD_MAX	    6
#define	_POSIX_DELAYTIMER_MAX	   32
#define	_POSIX_LINK_MAX		    8
#define	_POSIX_MAX_CANON	  255
#define	_POSIX_MAX_INPUT	  255
#define	_POSIX_MQ_OPEN_MAX	    8
#define	_POSIX_MQ_PRIO_MAX	   32
#define	_POSIX_NAME_MAX		   14
#define	_POSIX_NGROUPS_MAX	    0
#define	_POSIX_OPEN_MAX		   16
#define	_POSIX_PATH_MAX		  255
#define	_POSIX_PIPE_BUF		  512
#define	_POSIX_RTSIG_MAX	    8
#define	_POSIX_SEM_NSEMS_MAX	  256
#define	_POSIX_SEM_VALUE_MAX	32767
#define	_POSIX_SIGQUEUE_MAX	   32
#define	_POSIX_SSIZE_MAX	32767
#define	_POSIX_STREAM_MAX	    8
#define	_POSIX_TIMER_MAX	   32
#define	_POSIX_TZNAME_MAX	    3

 



#define	_POSIX2_BC_BASE_MAX		  99
#define	_POSIX2_BC_DIM_MAX		2048
#define	_POSIX2_BC_SCALE_MAX		  99
#define	_POSIX2_BC_STRING_MAX		1000
#define	_POSIX2_COLL_WEIGHTS_MAX	   2
#define	_POSIX2_EXPR_NEST_MAX		  32
#define	_POSIX2_LINE_MAX		2048
#define	_POSIX2_RE_DUP_MAX		 255

#define	BC_BASE_MAX		_POSIX2_BC_BASE_MAX
#define	BC_DIM_MAX		_POSIX2_BC_DIM_MAX
#define	BC_SCALE_MAX		_POSIX2_BC_SCALE_MAX
#define	BC_STRING_MAX		_POSIX2_BC_STRING_MAX
#define	COLL_WEIGHTS_MAX	_POSIX2_COLL_WEIGHTS_MAX
#define	EXPR_NEST_MAX		_POSIX2_EXPR_NEST_MAX
#define	LINE_MAX		_POSIX2_LINE_MAX
#define	RE_DUP_MAX		_POSIX2_RE_DUP_MAX







#define	PASS_MAX	8	

#define	NL_ARGMAX	9	
				 
#define	NL_LANGMAX	14	
#define	NL_MSGMAX	32767	
#define	NL_NMAX		1	
#define	NL_SETMAX	255	
#define	NL_TEXTMAX	2048	
#define	NZERO		20	

#define	WORD_BIT	32	
#define	LONG_BIT	32	


#define	DBL_DIG		15	


#define	DBL_MAX		1.7976931348623157E+308	

						 

#define	DBL_MIN		2.2250738585072014E-308	

						 

#define	FLT_DIG		6		


#define	FLT_MAX		3.402823466E+38F  


#define	FLT_MIN		1.175494351E-38F  







#define	FCHR_MAX	1048576		
#define	PID_MAX		30000		

 
















#define	CHILD_MAX	25	

#define	OPEN_MAX	64	


#define	PIPE_MAX	5120	

#define	STD_BLK		1024	
#define	UID_MAX		60002	
#define	USI_MAX		4294967295	
#define	SYSPID_MAX	1	


#define	SYS_NMLN	257	



extern long _sysconf(int);	 
#define	CLK_TCK	_sysconf(3)	


#define	LOGNAME_MAX	8	

 


#define	LLONG_MIN	(-9223372036854775807LL-1LL)
#define	LLONG_MAX	9223372036854775807LL
#define	ULLONG_MAX	18446744073709551615ULL








# 11 "/usr/local/lib/gcc-lib/sparc-sun-solaris2/2.7.2/include/limits.h" 2 3





 
#define _LIMITS_H___
#define _MACH_MACHLIMITS_H_

 

#define CHAR_BIT 8

 




 

#define SCHAR_MIN (-128)

#define SCHAR_MAX 127

 

#define UCHAR_MAX 255

 







#define CHAR_MIN (-128)

#define CHAR_MAX 127


 

#define SHRT_MIN (-32768)

#define SHRT_MAX 32767

 

#define USHRT_MAX 65535

 

#define __INT_MAX__ 2147483647


#define INT_MIN (-INT_MAX-1)

#define INT_MAX __INT_MAX__

 

#define UINT_MAX (INT_MAX * 2U + 1)

 


#define __LONG_MAX__ 2147483647L


#define LONG_MIN (-LONG_MAX-1)

#define LONG_MAX __LONG_MAX__

 

#define ULONG_MAX (LONG_MAX * 2UL + 1)


 

#define __LONG_LONG_MAX__ 9223372036854775807LL


#define LONG_LONG_MIN (-LONG_LONG_MAX-1)

#define LONG_LONG_MAX __LONG_LONG_MAX__

 

#define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1)




 









# 249 "globals.h" 2




#define MAXINT  INT_MAX







#define MININT  INT_MIN







#define MAXLONG LONG_MAX







#define MINLONG LONG_MIN






 


#define	_PP(x) x








 








 












#define FAST_X11_DRAWING


 




#define debugmessage(a,b) 


# 338 "globals.h"


 












#define assert(ex)  {if (!(ex)) { FPRINTF(stderr,"Assertion failed: file \"%s\", line %d\n", __FILE__, __LINE__); FPRINTF(stderr,"This is a bug! Please contact sander@cs.uni-sb.de !\n"); exit(1);}}










 

#define PRINTF  (void)printf
#define FPRINTF (void)fprintf
#define SPRINTF (void)sprintf
#define FCLOSE  (void)fclose
#define FFLUSH  (void)fflush
#define FREE    (void)free

 


# 398 "globals.h"



#define gstoint(x) ((int)(x))









 



# 126 "PSdevstr.c" 2


void    ps_line       (int fx,int fy,int tx,int ty,int c)  ;
void    ps_thickline  (int fx,int fy,int tx,int ty,int t,int c)  ;


# 1 "drawstr.c" 1
 

 
 
  
  
 
 
 
 
  
  
 
  
  
 
 
 









 






















 






 



























 




# 1 "main.h" 1
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


 

 






















 







































































#define MAIN_H

 

 




 
extern FILE     *yyin;

void   line_directive  (char *text)  ;
char  *my_itoa         (int x)  ;
void   syntaxerror     (int line,int pos,char *mesge)  ;
void   warning         (int line,int pos,char *mesge)  ;

#define SYERR(x,m) syntaxerror(xfirst_line(x),xfirst_column(x),m)

 
void gs_wait_message	 (int c)  ;

 

 



extern char short_banner[];
extern char version_str[];
extern char date_str[];
extern char revision_str[];

 



int  main 		 (int argc, char *argv[])  ;
void Fatal_error	 (char *x, char *y)  ;
void parse_part		 (void)  ;
void visualize_part	 (void)  ;
void relayout		 (void)  ;

 
 



# 91 "drawstr.c" 2

# 1 "options.h" 1
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


 

 






















 











#define OPTIONS_H

 

 



 

 



extern int  gblargi;
extern int  gblargc;
extern char **gblargv;

extern int grabinputfocus;

extern char *Xmydiplayname;
extern char *Xmygeometry;
extern int  Xmyborderwidth;
extern char *Xmybackingstore;

extern int multiple_files;
extern int silent;
extern int nr_max_errors;
extern int fastflag;
extern int supress_nodes;
extern int supress_edges;
extern int summarize_double_edges;
extern int hide_single_nodes;
extern int layout_flag;

#define TREE_LAYOUT 20

extern int crossing_heuristics;
extern int local_unwind;
extern int near_edge_layout;
extern int fine_tune_layout;
extern int edge_label_phase;
extern int min_baryiterations;
extern int max_baryiterations;
extern int skip_baryphase2;
extern int max_mediumshifts;
extern int min_mediumshifts;
extern int nwdumping_phase;
extern int max_centershifts;
extern int min_centershifts;
extern int prio_phase;
extern int straight_phase;
extern int max_straighttune;
extern int max_edgebendings;
extern int manhatten_edges;
extern int one_line_manhatten;
extern int layout_downfactor; 
extern int layout_upfactor; 
extern int layout_nearfactor; 

extern int G_spline;
extern int G_flat_factor;

extern int touch_file;

extern int    exfile;
extern char   exfilename[800];
extern int    extype;
extern int    expaper;
extern int    excolor;
extern int    exori;
extern int    expapernum;
extern int    exxdpi;
extern int    exydpi;
extern float  exscaling;
extern float  exwidth;
extern float  exheight;
extern float  exleftm;
extern float  exrightm;
extern float  extopm;
extern float  exbottomm;
extern int    exbbox;

extern int      cmap_size;
extern int      cmap_changed;
extern unsigned char origredmap[];
extern unsigned char origgreenmap[];
extern unsigned char origbluemap[];
extern unsigned char redmap[];
extern unsigned char greenmap[];
extern unsigned char bluemap[];




extern int maxDepth;

extern int ScreenWidth;
extern int ScreenHeight;
extern int colored;

extern long V_xmin;
extern long V_xmax;
extern long V_ymin;
extern long V_ymax;
extern long V_xmin_initial;
extern long V_ymin_initial;



extern char Dataname[];
extern char filename[];

#define MAXCLASS  16

extern int G_timelimit;
extern int G_xymax_final;
extern char *G_title;
extern long G_x, G_y;
extern int G_width, G_height;
extern int G_width_set, G_height_set;
extern int G_xmax, G_ymax;
extern int G_xbase, G_ybase;
extern int G_xspace, G_yspace;
extern int G_orientation;
extern int G_folding;
extern int G_invisible[];
extern int G_color;
extern int G_displayel;
extern int G_dirtyel;
extern int G_shrink, G_stretch;
extern int G_yalign;
extern int G_portsharing;
extern int G_arrowmode;
extern int G_dspace;

extern int G_xraster;
extern int G_yraster;
extern int G_dxraster;


extern char    *fold_elabel;
extern int     fold_lstyle;
extern int     fold_thick;
extern int     fold_ecolor;
extern int     fold_elcolor;
extern int     fold_arrows;
extern int     fold_barrows;
extern int     fold_arrowc;
extern int     fold_barrowc;
extern int     fold_arrsty;
extern int     fold_barrsty;

extern int 	max_eprio;

extern int  info_name_available;
extern char *info_names[3];
extern int  max_nr_classes;
extern int  class_name_available;
extern char **class_names;

extern int grabinputfocus;
extern int locFlag;



 



int  scanOptions		 (int argc, char *argv[])  ;
void print_version_copyright	 (void)  ;
void print_basic_help		 (void)  ;
void print_help			 (void)  ;


 
 



# 92 "drawstr.c" 2

# 1 "alloc.h" 1
 
 
 
 
 
 
 
 
 
 
 
   
 
 
 
 
 
 


 

 






















 

































































#define ALLOC_H 

 

 



 



 





#define COFFSET		60

 

#define	CMAPSIZE 	256 	
#define	BASECMAPSIZE 	32 	

 

#define	COLOR(c)	(c)

#define BLACK		31
#define BLUE		1
#define RED		2
#define GREEN		3
#define YELLOW		4
#define MAGENTA		5
#define CYAN		6
#define WHITE		0
#define DARKGREY	7
#define DARKBLUE	8
#define DARKRED		9
#define DARKGREEN	10
#define DARKYELLOW	11
#define DARKMAGENTA	12
#define DARKCYAN	13
#define GOLD		14
#define LIGHTGREY	15
#define LIGHTBLUE	16
#define LIGHTRED	17
#define LIGHTGREEN	18
#define LIGHTYELLOW	19
#define LIGHTMAGENTA	20
#define LIGHTCYAN	21
#define LILAC		22
#define TURQUOISE	23
#define AQUAMARINE	24
#define KHAKI		25
#define PURPLE		26
#define YELLOWGREEN	27
#define PINK		28
#define ORANGE		29
#define ORCHID		30

 

#define	TOP_TO_BOTTOM	0
#define	LEFT_TO_RIGHT	1
#define	RIGHT_TO_LEFT	2
#define	BOTTOM_TO_TOP	3

 

#define AL_TOP    0
#define AL_CENTER 1
#define AL_BOTTOM 2

 

#define NO	0
#define YES	1

 

#define CENTER	0
#define	LEFT	1
#define	RIGHT	2

 

#define	SOLID	   0
#define	DOTTED	   1
#define	DASHED	   2
#define	UNVISIBLE  3

 

#define	ASNONE 	   0
#define	ASSOLID	   1
#define	ASLINE 	   2
#define	ASNONESPEC 3

 

#define AMFIXED 0
#define AMFREE  1

 

#define BOX      0
#define RHOMB    1
#define ELLIPSE  2
#define TRIANGLE 3

 

#define	NO_ORI		0
#define	ORI_NORTH	1
#define	ORI_NORTHEAST	2
#define	ORI_NORTHWEST	3
#define	ORI_SOUTH	4
#define ORI_SOUTHEAST	5
#define	ORI_SOUTHWEST	6
#define	ORI_EAST	7
#define	ORI_WEST	8

 

 



 



 








































 
 

typedef struct connect {
	struct gnode	*target;         
	struct gedge	*edge;           
	struct gnode	*target2;        
	struct gedge	*edge2;          
	struct connect	*internal_next;  
} *CONNECT;

#define	CTARGET(x)	((x)->target)
#define CEDGE(x)	((x)->edge)
#define	CTARGET2(x)	((x)->target2)
#define CEDGE2(x)	((x)->edge2)
#define CINTERN(x)	((x)->internal_next)



 

 










































 






typedef struct gnode {	

	 




	long 	refnum;

	 

	char 	*title;
	char	*label;
	char	*info1;
	char	*info2;
	char	*info3;
	int	width;
	int	height;
	long	sxloc;
	long 	syloc;
	char	textmode;
	char	borderwidth;
	char	folding;
	char	color;
	char	textcolor;
	char	bordercolor;
	char	status;
	char 	shape;
	int	shrink;
	int	stretch;
	int	level;
	int	nhorder;

	 

	struct	gnlist	*subgraph;    
	struct	gnode	*root;        
	struct	gnode	*regionrepl;  
				      
	struct	gnlist	*region;      
	struct 	gnode  	*regroot;     

	 

	long	xloc;
	long 	yloc;

	 

	struct 	gnode 	*next;	      
	struct 	gnode	*before;     

	char	in_nodelist;	     
	char	invisible;           

	 




	char	markiert;                
	char	revert;                  
	char    anchordummy;	     
	int	tiefe;		     
	int	position;            
	float	bary;                

	 








	long	weights;		 
	long	weightp;		 

	 





	long	dfsnum;			 

	int	indegree;		 
	int	outdegree;		 

	 



	struct 	dllist	*Vpointer; 	 

	 








	struct	adjedge	*tmpadj;      	 
	struct	adjedge	*pred;	       	 
	struct	adjedge	*succ;	       	 
	struct	adjedge	*savepred;     	 
	struct	adjedge	*savesucc;     	 
	struct	gedge	*predleft;     	 
	struct	gedge	*predright;    	 
	struct	gedge	*succleft;	 
	struct	gedge	*succright;	 

	struct	connect	*connection;	 
					 

	 






	struct 	gnode 	*internal_next; 
} *GNODE;

#define	NREFNUM(x)	((x)->refnum)
#define	NTITLE(x)	((x)->title)
#define	NLABEL(x)	((x)->label)
#define	NINFO1(x)	((x)->info1)
#define	NINFO2(x)	((x)->info2)
#define	NINFO3(x)	((x)->info3)
#define NTEXTMODE(x)	((x)->textmode)
#define NWIDTH(x)	((x)->width)
#define	NHEIGHT(x)	((x)->height)
#define	NSTATE(x)	((x)->status)
#define	NSHAPE(x)	((x)->shape)
#define NBORDERW(x)	((x)->borderwidth)
#define	NSX(x)		((x)->sxloc)
#define NSY(x)		((x)->syloc)
#define	NX(x)		((x)->xloc)
#define NY(x)		((x)->yloc)
#define	NFOLDING(x)	((x)->folding)
#define NCOLOR(x)	((x)->color)
#define	NTCOLOR(x)	((x)->textcolor)
#define	NBCOLOR(x)	((x)->bordercolor)
#define	NSHRINK(x)	((x)->shrink)
#define	NSTRETCH(x)	((x)->stretch)
#define	NLEVEL(x)	((x)->level)
#define	NHORDER(x)	((x)->nhorder)
#define	NSGRAPH(x)	((x)->subgraph)
#define	NROOT(x)	((x)->root)
#define NREGREPL(x)	((x)->regionrepl)
#define NREGION(x)	((x)->region)
#define	NREGROOT(x)	((x)->regroot)
#define	NNEXT(x)	((x)->next)
#define NBEFORE(x)	((x)->before)
#define NINLIST(x)	((x)->in_nodelist)
#define	NINVISIBLE(x)	((x)->invisible)
#define	NTIEFE(x)	((x)->tiefe)
#define	NPOS(x)		((x)->position)
#define	NMARK(x)	((x)->markiert)
#define	NREVERT(x)	((x)->revert)
#define	NANCHORNODE(x)	((x)->anchordummy)
#define	NBARY(x)	((x)->bary)
#define	NLOWPT(x)	((x)->weights)
#define	NOPENSCC(x)	((x)->weightp)
#define	NWEIGHTS(x)	((x)->weights)
#define	NWEIGHTP(x)	((x)->weightp)
#define	NDFS(x)		((x)->dfsnum)
#define	NHIGHPRIO(x)	((x)->dfsnum)
#define	NINDEG(x)	((x)->indegree)
#define	NOUTDEG(x)	((x)->outdegree)
#define	NVPTR(x)	((x)->Vpointer)
#define	NTMPADJ(x)	((x)->tmpadj)
#define	NPRED(x)	((x)->pred)
#define NSUCC(x)	((x)->succ)
#define	NSVPRED(x)	((x)->savepred)
#define NSVSUCC(x)	((x)->savesucc)
#define	NPREDL(x)	((x)->predleft)
#define	NPREDR(x)	((x)->predright)
#define	NSUCCL(x)	((x)->succleft)
#define	NSUCCR(x)	((x)->succright)
#define NCONNECT(x)	((x)->connection)
#define NINTERN(x)	((x)->internal_next)

#define	NCONTAR(x)	(CTARGET(NCONNECT(x)))
#define NCONEDG(x)	(CEDGE(NCONNECT(x)))
#define	NCONTAR2(x)	(CTARGET2(NCONNECT(x)))
#define NCONEDG2(x)	(CEDGE2(NCONNECT(x)))

 



#define NOREVERT  0
#define AREVERT   1
#define BREVERT   2


 

 





typedef struct gnlist {
	struct gnode 	*node;            
	struct gnlist 	*next;            
	struct gnlist	*internal_next;   
} *GNLIST;

#define	GNNODE(x)	((x)->node)
#define	GNNEXT(x)	((x)->next)
#define	GNINTERN(x)	((x)->internal_next)

 


 





































typedef struct gedge {
	struct	gnode	*start;     
	long	sxloc;              
	long	syloc;
	long	btxloc;		    
	long	btyloc;		    
	long	bbxloc;		    
	long	bbyloc;
	struct	gnode	*end;        	
	long	exloc;              
	long	eyloc;
	char	orientation; 	          
	char	orientation2; 	          

	 

	char	linestyle;
	char	thickness;
	char	*label;
	int	priority;
	int	horder;
	char	eclass;
	char	color;
	char 	arrowstyle1;	
	char 	arrowstyle2;	
	char	arrowsize1;
	char	arrowcolor1;
	char	arrowsize2;
	char	arrowcolor2;
	char	labelcolor;





	signed char    anchor;





	 

	char	kantenart;	     
	char	invisible;	     

	 




	long	weights;           
	long	weightp;	   

	struct	gnode	*labelnode;   	

	 

	struct	gedge	*next;		  
	struct 	gedge	*before; 	  
	struct	gedge	*internal_next;   
} *GEDGE;

#define	ESTART(x)	((x)->start)
#define	EEND(x)		((x)->end)
#define	ESTARTX(x)	((x)->sxloc)
#define ESTARTY(x)	((x)->syloc)
#define	ETBENDX(x)	((x)->btxloc)
#define ETBENDY(x)	((x)->btyloc)
#define	EBBENDX(x)	((x)->bbxloc)
#define EBBENDY(x)	((x)->bbyloc)
#define	EENDX(x)	((x)->exloc)
#define	EENDY(x)	((x)->eyloc)
#define EORI(x)		((x)->orientation)
#define EORI2(x)	((x)->orientation2)
#define	ELABEL(x)	((x)->label)
#define	ELABELCOL(x)	((x)->labelcolor)
#define	ELSTYLE(x)	((x)->linestyle)
#define	ETHICKNESS(x)	((x)->thickness)
#define	ECLASS(x)	((x)->eclass)
#define	EPRIO(x)	((x)->priority)
#define	EHORDER(x)	((x)->horder)
#define ECOLOR(x)	((x)->color)
#define	EARROWSTYLE(x)	((x)->arrowstyle1)
#define	EARROWBSTYLE(x)	((x)->arrowstyle2)
#define	EARROWSIZE(x)	((x)->arrowsize1)
#define	EARROWBSIZE(x)	((x)->arrowsize2)
#define	EARROWCOL(x)	((x)->arrowcolor1)
#define	EARROWBCOL(x)	((x)->arrowcolor2)
#define	EANCHOR(x)	((x)->anchor)
#define	ELNODE(x)	((x)->labelnode)
#define	ENEXT(x)	((x)->next)
#define	EBEFORE(x)	((x)->before)
#define EART(x)		((x)->kantenart)
#define	EINVISIBLE(x)	((x)->invisible)
#define	EWEIGHTS(x)	((x)->weights)
#define	EWEIGHTP(x)	((x)->weightp)
#define EINTERN(x)	((x)->internal_next)



 

 






typedef struct adjedge {
	struct gedge 	*kante;            
	struct adjedge	*next;
	struct adjedge	*internal_next;
} *ADJEDGE;

 

#define AKANTE(x)	((x)->kante)
#define	ANEXT(x)	((x)->next)
#define	AINTERN(x)	((x)->internal_next)

 

#define	SOURCE(x)	(ESTART(AKANTE(x)))
#define	TARGET(x)	(EEND(AKANTE(x)))
#define	ESOURCEX(x)	(ESTARTX(AKANTE(x)))
#define	ESOURCEY(x)	(ESTARTY(AKANTE(x)))
#define ETARGETX(x)	(EENDX(AKANTE(x)))
#define	ETARGETY(x)	(EENDY(AKANTE(x)))
#define	EKIND(x)	(EART(AKANTE(x)))
#define	NSOURTIEFE(x)	(NTIEFE(ESTART(AKANTE(x))))
#define	NTARTIEFE(x)	(NTIEFE(EEND(AKANTE(x))))

 

 









 







typedef struct depth_entry {
	int	anz;		      
	int	actx;		      
	int 	cross;		      
	GNODE   refnode;	      
	struct	gnlist	*predlist;     
	struct	gnlist	*succlist;    
	char	resort_necessary;     
				      
} DEPTH;

#define	TANZ(x)		((x).anz)
#define	TPRED(x)	((x).predlist)
#define	TSUCC(x)	((x).succlist)
#define	TCROSS(x)	((x).cross)
#define	TACTX(x)	((x).actx)
#define	TREFN(x)	((x).refnode)
#define	TRESNEEDED(x)	((x).resort_necessary)


 

 






typedef	struct dllist {
	struct	gnode	*node;		 
	int		dlinfo;		 
	int		dlx;		 
	struct	dllist	*pred;           
	struct	dllist	*succ;           
} *DLLIST;

#define	DPRED(x)	((x)->pred)
#define	DSUCC(x)	((x)->succ)
#define	DNODE(x)	((x)->node)
#define	DNX(x)		((x)->dlx)
#define	DINFO(x)	((x)->dlinfo)

 


 

 



extern int nodeanz;
extern int dummyanz;
extern GNODE nodelist;
extern GNODE nodelistend;
extern GNODE tmpnodelist;
extern GNODE graphlist;
extern GNODE graphlistend;
extern GNODE invis_nodes;
extern GNODE labellist;
extern GNODE labellistend;
extern GNODE dummylist;
extern int edgeanz;
extern GEDGE edgelist;
extern GEDGE edgelistend;
extern GEDGE tmpedgelist;
extern GEDGE hedgelist;
extern GEDGE hedgelistend;
extern GEDGE invis_edges;
extern ADJEDGE near_edge_list;
extern ADJEDGE bent_near_edge_list;
extern ADJEDGE back_edge_list;






 




char *myalloc 		 (int x)  ;
void free_memory 	 (void)  ;

GNODE nodealloc		 (GNODE refnode)  ;
GNODE graphalloc	 (GNODE refnode)  ;
void  nodedefaults	 (GNODE node)  ;
void  foldnodedefaults	 (GNODE node)  ;
void  inherit_foldnode_attributes	 (GNODE fn, GNODE y)  ;
void  copy_nodeattributes		 (GNODE fn, GNODE y)  ;

GNODE tmpnodealloc	 (int textm,int width,int height,int borderw,int fold,int color,int textc,int borderc, int shrink,int stretch,int horder)  ;
void 	free_node	 (GNODE v)  ;
void 	free_tmpnodes    (void)  ;
GNODE   search_xy_node	 (long x,long y)  ;
void check_graph_consistency  (void)  ;


GNLIST  nodelist_alloc		 (GNODE v)  ;
GNLIST  tmpnodelist_alloc 	 (void)  ;
GNLIST  foldnodelist_alloc 	 (void)  ;
void free_regionnodelist	 ( GNLIST r)  ;
void free_foldnodelists		 (void)  ;

GEDGE edgealloc 	 (GEDGE refedge)  ;
void  edgedefaults	 (GEDGE edge)  ;
void  foldedgedefaults	 (GEDGE edge)  ;
void  inherit_foldedge_attributes	 (GEDGE fn, GEDGE y)  ;
void  copy_edgeattributes		 (GEDGE fn, GEDGE y)  ;

GEDGE tmpedgealloc  (int lstyle,int thick,int xclass,int prio,int ecolor,int elcol,int arrows,int barrows,int arrowsty,int barrowsty,int arrowc,int barrowc,int horder)  ;
void near_edge_insert        (GEDGE e)  ;
void bentnear_edge_insert    (GEDGE e)  ;
void back_edge_insert        (GEDGE e)  ;
ADJEDGE prededgealloc 	     (GNODE node,GEDGE edge)  ;
ADJEDGE succedgealloc 	     (GNODE node,GEDGE edge)  ;

CONNECT	connectalloc	 (GNODE node)  ;

DLLIST 	dllist_alloc	 (GNODE  node, DLLIST pred)  ;
void    dllist_free	 (DLLIST x)  ;
void    dllist_free_all	 (DLLIST x)  ;

void	free_all_lists 	  (void)  ;
void    reinit_all_lists  (void)  ;

 



# 93 "drawstr.c" 2

# 1 "grprint.h" 1
 

 
 
  
  
 
 
 
 
  
 
  
  
 
 
 


 

 






















 




























#define GRPRINT_H

 

 



int  	print_graph	 ( char *fname)  ;
char 	*color_text	 ( int c)  ;
char 	*textmode_text	 ( int t)  ;
char 	*shape_text	 ( int t)  ;
char 	*linestyle_text	 ( int t)  ;

int 	print_pbm_or_ppm
   (char *fname,int a,int b,int c,int d)  ;
int 	print_pbm	
   (char *fn,int a,int b,int c,int d,int l,int t,int r,int st,int sh)  ;
int 	print_ppm	
   (char *fn,int a,int b,int c,int d,int l,int t,int r,int st,int sh)  ;


 




# 94 "drawstr.c" 2

# 1 "fisheye.h" 1
 

 
 
 
 
 
 
 
 
 
   
 
 
 
 
 
 

 

 





















 










#define FISHEYE_H

 

 



 

 



extern long gfocus_x, gfocus_y;
extern long fe_scaling;
extern long gfishdist;
extern int fisheye_view;

#define CSNF_VIEW   1
#define CSCF_VIEW   2
#define PSCF_VIEW   3
#define FCSCF_VIEW  4
#define FPSCF_VIEW  5


 



void init_fe  (int s1,int s2,int s3,int s4,int sfx,int sfy)  ;
void exit_fe  (void)  ;

void set_fe_scaling     (int stretch, int shrink)  ;
void change_fe_scaling  (int stretch, int shrink)  ;
int normal_fe_focus     (void)  ;
int set_fe_xfocus       (long fx)  ;
int set_fe_yfocus       (long fy)  ;
int incr_fe_focus       (long dfx, long dfy)  ;
int  change_fe_winsize  (int sxmin, int sxmax, int symin, int symax)  ;
int  set_gfishdist      (long gd)  ;
void fe_g_to_s 	        (long x, long y, int  *resx, int  *resy)  ;
void fe_s_to_g          (int  x, int  y, long *resx, long *resy)  ;

 
 



# 95 "drawstr.c" 2

# 1 "drawlib.h" 1
 

 
 
  
  
 
 
 
 
  
  
 
  
  
 
 
 
 

 

 






















 









































#define DRAWLIB_H

 

 




 



extern int 	ps_actbackground ;
extern int 	ps_stringw ; 
extern int 	ps_stringh ; 
extern int	ps_boxw ;
extern int	ps_boxh ;


 



void 	ps_printstr 		 (char *s,int c)  ;
void 	ps_calcstringsize 	 (char *s)  ;
void 	ps_setto 		 (int x,int y)  ;
void 	ps_setshrink 		 (int a,int b)  ;
void 	ps_calctextboxsize 	 (GNODE v)  ;
void 	ps_textbox 		 (GNODE v)  ;
void 	ps_reverttextbox 	 (GNODE v)  ;
void 	ps_halfreverttextbox 	 (GNODE v)  ;
void 	ps_stringbox 		 (GNODE v)  ;
void 	ps_calcrhombsize 	 (GNODE v)  ;
void 	ps_rhomb 		 (GNODE v)  ;
void 	ps_revertrhomb 		 (GNODE v)  ;
void 	ps_halfrevertrhomb 	 (GNODE v)  ;
void 	ps_calctrianglesize 	 (GNODE v)  ;
void 	ps_triangle 		 (GNODE v)  ;
void 	ps_reverttriangle 	 (GNODE v)  ;
void 	ps_halfreverttriangle 	 (GNODE v)  ;
void 	ps_calcellipsesize 	 (GNODE v)  ;
void 	ps_ellipse 		 (GNODE v)  ;
void 	ps_revertellipse 	 (GNODE v)  ;
void 	ps_halfrevertellipse 	 (GNODE v)  ;
void 	ps_anchornode 		 (GNODE v)  ;
void	ps_solidarrow 		 (GEDGE e)  ;
void	ps_dashedarrow 		 (GEDGE e)  ;
void	ps_dottedarrow 		 (GEDGE e)  ;









 
 



# 96 "drawstr.c" 2

# 1 "drawstr.h" 1
 

 
 
  
  
 
 
 
 
  
  
 
  
  
 
 
 

 


 






















 







#define DRAWSTR_H

 

 



 



extern int ps_mystretch ;
extern int ps_myshrink ;
extern int ps_myxpos ;
extern int ps_myypos ;
extern int ps_stlimit ;
extern int ps_shlimit ;
extern int ps_stringw ; 
extern int ps_stringh ; 


 



void ps_printstr 	 (char *s, int c)  ;
void ps_calcstringsize    (char *s)  ;
void ps_setto 		 (int x,int y)  ;
void ps_setshrink 	 (int a,int b)  ;

 




# 97 "drawstr.c" 2






 



 








 






 

static void	mysetto 	 (int x,int y)  ;
static void	mymoveto	 (int x,int y,int c)  ;
static void	myoutchar	 (int c, int col,int underline)  ;


# 139 "drawstr.c"




 
 
 

 


 





int	ps_mystretch  = 1;
int	ps_myshrink   = 1;


 









int 	ps_stlimit  = 1;
int	ps_shlimit  = 3;


 

 

static int 	mythick = 1;



 







int ps_myxpos , ps_myypos ;
static int myaktxpos, myaktypos;


 



 




static void mysetto(int x,int y)




{
	int s= ps_mystretch ;
	int t= ps_myshrink ;
	myaktxpos = ps_myxpos +(s*x)/t;
	myaktypos = ps_myypos +(s*y)/t;
}


 





static void mymoveto(int x,int y,int c)




{
	int s= ps_mystretch ;
	int t= ps_myshrink ;
	int a = ps_myxpos +(s*x)/t;
	int b = ps_myypos +(s*y)/t;
	int tt= (mythick*s)/t;

	if (tt>1) {




		ps_thickline(myaktxpos,myaktypos,a,b,tt,c);
# 251 "drawstr.c"


	}
	else ps_line (myaktxpos,myaktypos,a,b,c);
	myaktxpos = a;
	myaktypos = b;
}


 
 
 


 





# 1 "drawchr.h" 1

 

 
 
  
  
 
 
 
 
  
  
 
  
  
 
 
 


 

 






















 






 


















 


#define DRAWCHR_H

 

 






static void myasciichar(int c, int col)





{
	switch(c) {
	case ' ':
		break; 
	case '!': 
		mysetto(3,2); 
		mymoveto(3,8,col);
		mysetto(3,11); 
		mymoveto(3,11,col);
		break;
	case '"': 
		mysetto(2,2); 
		mymoveto(2,4,col);
		mysetto(5,2); 
		mymoveto(5,4,col);
		break;
	case '#': 
		mysetto(1,11); 
		mymoveto(3,2,col);
		mysetto(1,5); 
		mymoveto(7,5,col);
		mysetto(0,9); 
		mymoveto(6,9,col);
		mysetto(4,11); 
		mymoveto(6,2,col);
		break;
	case '$': 
		mysetto(5,4); 
		mymoveto(5,3,col);
		mymoveto(4,2,col); 
		mymoveto(2,2,col); 
		mymoveto(1,3,col);
		mymoveto(1,4,col); 
		mymoveto(3,6,col); 
		mymoveto(4,6,col);
		mymoveto(5,8,col); 
		mymoveto(5,10,col); 
		mymoveto(4,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col); 
		mymoveto(1,9,col);
		mysetto(3,1); 
		mymoveto(3,12,col);
		break;
	case '%': 
		mysetto(0,3); 
		mymoveto(1,2,col); 
		mymoveto(2,2,col);
		mymoveto(3,3,col); 
		mymoveto(3,4,col); 
		mymoveto(2,5,col);
		mymoveto(1,5,col); 
		mymoveto(0,4,col); 
		mymoveto(0,3,col);
		mysetto(3,9); 
		mymoveto(4,8,col); 
		mymoveto(5,8,col);
		mymoveto(6,9,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(4,11,col); 
		mymoveto(3,10,col); 
		mymoveto(3,9,col);
		mysetto(6,2); 
		mymoveto(1,11,col);
		break;
	case '&': 
		mysetto(6,7); 
		mymoveto(3,11,col);
		mymoveto(1,11,col); 
		mymoveto(0,10,col);
		mymoveto(0,7,col); 
		mymoveto(4,4,col);
		mymoveto(4,3,col); 
		mymoveto(3,2,col);
		mymoveto(2,2,col); 
		mymoveto(1,3,col);
		mymoveto(1,4,col); 
		mymoveto(2,5,col);
		mymoveto(4,9,col); 
		mymoveto(4,10,col);
		mymoveto(6,11,col);
		break;
	case '\'': 
		mysetto(4,2); 
		mymoveto(4,3,col); 
		mymoveto(2,5,col);
		break;
	case '(': 
		mysetto(5,1); 
		mymoveto(2,4,col);
		mymoveto(2,9,col); 
		mymoveto(5,12,col); 
		break;
	case ')': 
		mysetto(2,1); 
		mymoveto(5,4,col);
		mymoveto(5,9,col); 
		mymoveto(2,12,col); 
		break;
	case '*': 
		mysetto(1,5); 
		mymoveto(2,6,col);
		mymoveto(4,6,col); 
		mymoveto(5,7,col);
		mysetto(3,4); 
		mymoveto(3,8,col);
		mysetto(1,7); 
		mymoveto(2,6,col);
		mymoveto(4,6,col); 
		mymoveto(5,5,col);
		break;
	case '+': 
		mysetto(0,7); 
		mymoveto(6,7,col);
		mysetto(3,10); 
		mymoveto(3,4,col);
		break;
	case ',': 
		mysetto(4,10); 
		mymoveto(5,10,col);
		mymoveto(5,11,col); 
		mymoveto(4,11,col); 
		mymoveto(4,10,col);
		mysetto(5,11); 
		mymoveto(5,12,col); 
		mymoveto(3,14,col);
		break;
	case '-': 
		mysetto(1,7); 
		mymoveto(6,7,col);
		break;
	case '.': 
		mysetto(4,10); 
		mymoveto(5,10,col);
		mymoveto(5,11,col); 
		mymoveto(4,11,col); 
		mymoveto(4,10,col);
		break;
	case '/': 
		mysetto(0,12); 
		mymoveto(6,1,col);
		break;
	case '0': 
		mysetto(2,10); 
		mymoveto(2,3,col);
		mymoveto(3,2,col); 
		mymoveto(5,2,col);
		mymoveto(6,3,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(3,11,col); 
		mymoveto(2,10,col);
		break;
	case '1': 
		mysetto(2,11); 
		mymoveto(6,11,col);
		mysetto(4,11); 
		mymoveto(4,2,col); 
		mymoveto(2,4,col);
		break;
	case '2': 
		mysetto(1,4); 
		mymoveto(1,3,col);
		mymoveto(2,2,col); 
		mymoveto(5,2,col);
		mymoveto(6,3,col); 
		mymoveto(6,4,col); 
		mymoveto(1,11,col);
		mymoveto(6,11,col);
		break;
	case '3': 
		mysetto(1,4); 
		mymoveto(1,3,col);
		mymoveto(2,2,col); 
		mymoveto(5,2,col);
		mymoveto(6,3,col); 
		mymoveto(6,5,col); 
		mymoveto(5,6,col);
		mymoveto(3,6,col);
		mysetto(5,6); 
		mymoveto(6,7,col); 
		mymoveto(6,10,col);
		mymoveto(5,11,col); 
		mymoveto(2,11,col); 
		mymoveto(1,10,col);
		mymoveto(1,9,col);
		break;
	case '4': 
		mysetto(5,11); 
		mymoveto(5,2,col);
		mymoveto(0,8,col); 
		mymoveto(6,8,col);
		break;
	case '5': 
		mysetto(6,2); 
		mymoveto(1,2,col); 
		mymoveto(1,6,col);
		mymoveto(5,6,col); 
		mymoveto(6,7,col); 
		mymoveto(6,10,col);
		mymoveto(5,11,col); 
		mymoveto(2,11,col); 
		mymoveto(1,10,col);
		mymoveto(1,9,col);
		break;
	case '6': 
		mysetto(6,3); 
		mymoveto(5,2,col); 
		mymoveto(2,2,col);
		mymoveto(1,3,col); 
		mymoveto(1,10,col); 
		mymoveto(2,11,col);
		mymoveto(5,11,col); 
		mymoveto(6,10,col); 
		mymoveto(6,7,col);
		mymoveto(5,6,col); 
		mymoveto(1,6,col);
		break;
	case '7': 
		mysetto(1,3); 
		mymoveto(1,2,col); 
		mymoveto(6,2,col);
		mymoveto(4,10,col); 
		mymoveto(4,11,col);
		break;
	case '8': 
		mysetto(1,5); 
		mymoveto(1,3,col);
		mymoveto(2,2,col); 
		mymoveto(5,2,col);
		mymoveto(6,3,col); 
		mymoveto(6,5,col); 
		mymoveto(5,6,col);
		mymoveto(2,6,col);  
		mymoveto(1,5,col);
		mysetto(5,6); 
		mymoveto(6,7,col); 
		mymoveto(6,10,col);
		mymoveto(5,11,col); 
		mymoveto(2,11,col); 
		mymoveto(1,10,col);
		mymoveto(1,7,col); 
		mymoveto(2,6,col);
		break;
	case '9': 
		mysetto(1,10); 
		mymoveto(2,11,col);
		mymoveto(5,11,col); 
		mymoveto(6,10,col);
		mymoveto(6,3,col); 
		mymoveto(5,2,col); 
		mymoveto(2,2,col);
		mymoveto(1,3,col);  
		mymoveto(1,6,col);  
		mymoveto(2,7,col);
		mymoveto(6,7,col);
		break;
	case ':': 
		mysetto(4,5); 
		mymoveto(5,5,col);
		mymoveto(5,6,col); 
		mymoveto(4,6,col); 
		mymoveto(4,5,col);
		mysetto(4,10); 
		mymoveto(5,10,col);
		mymoveto(5,11,col); 
		mymoveto(4,11,col); 
		mymoveto(4,10,col);
		break;
	case ';': 
		mysetto(4,5); 
		mymoveto(5,5,col);
		mymoveto(5,6,col); 
		mymoveto(4,6,col); 
		mymoveto(4,5,col);
		mysetto(4,10); 
		mymoveto(5,10,col);
		mymoveto(5,11,col); 
		mymoveto(4,11,col); 
		mymoveto(4,10,col);
		mysetto(5,11); 
		mymoveto(5,12,col); 
		mymoveto(3,14,col);
		break;
	case '<': 
		mysetto(6,1); 
		mymoveto(1,6,col);
		mymoveto(6,11,col); 
		break;
	case '=': 
		mysetto(1,5); 
		mymoveto(6,5,col);
		mysetto(1,9); 
		mymoveto(6,9,col);
		break;
	case '>': 
		mysetto(1,1); 
		mymoveto(6,6,col);
		mymoveto(1,11,col); 
		break;
	case '?': 
		mysetto(1,4); 
		mymoveto(1,3,col); 
		mymoveto(2,2,col);
		mymoveto(5,2,col); 
		mymoveto(6,3,col); 
		mymoveto(6,4,col);
		mymoveto(4,7,col); 
		mymoveto(4,8,col); 
		mysetto(4,11);
		mymoveto(4,11,col);
		break;
	case '@': 
		mysetto(6,10); 
		mymoveto(5,11,col);
		mymoveto(3,11,col); 
		mymoveto(1,9,col); 
		mymoveto(1,4,col);
		mymoveto(3,2,col); 
		mymoveto(4,2,col); 
		mymoveto(6,4,col);
		mymoveto(6,7,col); 
		mymoveto(5,8,col); 
		mymoveto(4,8,col);
		mymoveto(3,7,col); 
		mymoveto(3,6,col); 
		mymoveto(4,5,col);
		mymoveto(5,5,col); 
		mymoveto(6,6,col);
		break;
	case 'A': 
		mysetto(1,11); 
		mymoveto(1,8,col); 
		mymoveto(3,2,col);
		mymoveto(4,2,col); 
		mymoveto(6,8,col); 
		mymoveto(6,11,col);
		mysetto(1,8); 
		mymoveto(6,8,col);
		break;
	case 'B': 
		mysetto(1,11); 
		mymoveto(1,2,col); 
		mymoveto(4,2,col);
		mymoveto(5,3,col); 
		mymoveto(5,5,col); 
		mymoveto(4,6,col);
		mymoveto(1,6,col);
		mysetto(4,6); 
		mymoveto(6,8,col); 
		mymoveto(6,10,col);
		mymoveto(5,11,col); 
		mymoveto(1,11,col);
		break;
	case 'C': 
		mysetto(6,4); 
		mymoveto(6,3,col); 
		mymoveto(5,2,col);
		mymoveto(2,2,col);
		mymoveto(1,3,col); 
		mymoveto(1,10,col); 
		mymoveto(2,11,col);
		mymoveto(5,11,col); 
		mymoveto(6,10,col); 
		mymoveto(6,9,col);
		break;
	case 'D': 
		mysetto(1,2); 
		mymoveto(1,11,col); 
		mymoveto(4,11,col);
		mymoveto(6,9,col); 
		mymoveto(6,4,col); 
		mymoveto(4,2,col);
		mymoveto(1,2,col);
		break;
	case 'E': 
		mysetto(1,2); 
		mymoveto(1,11,col); 
		mymoveto(6,11,col);
		mysetto(1,2); 
		mymoveto(6,2,col);
		mysetto(1,6); 
		mymoveto(5,6,col);
		break;
	case 'F': 
		mysetto(1,2); 
		mymoveto(1,11,col);
		mysetto(1,2); 
		mymoveto(6,2,col);
		mysetto(1,6); 
		mymoveto(5,6,col);
		break;
	case 'G': 
		mysetto(6,4); 
		mymoveto(6,3,col); 
		mymoveto(5,2,col);
		mymoveto(2,2,col);
		mymoveto(1,3,col); 
		mymoveto(1,10,col); 
		mymoveto(2,11,col);
		mymoveto(4,11,col); 
		mymoveto(6,10,col);
		mysetto(6,11); 
		mymoveto(6,7,col);
		mymoveto(4,7,col);
		break;
	case 'H': 
		mysetto(1,2); 
		mymoveto(1,11,col);
		mysetto(6,2); 
		mymoveto(6,11,col);
		mysetto(1,6); 
		mymoveto(6,6,col);
		break;
	case 'I': 
		mysetto(1,2); 
		mymoveto(5,2,col);
		mysetto(3,2); 
		mymoveto(3,11,col);
		mysetto(1,11); 
		mymoveto(5,11,col);
		break;
	case 'J': 
		mysetto(3,2); 
		mymoveto(6,2,col);
		mysetto(5,2); 
		mymoveto(5,10,col);
		mymoveto(4,11,col); 
		mymoveto(2,11,col);
		mymoveto(1,10,col); 
		mymoveto(1,9,col);
		break;
	case 'K': 
		mysetto(1,2); 
		mymoveto(1,11,col);
		mysetto(1,7); 
		mymoveto(6,2,col);
		mysetto(1,7); 
		mymoveto(6,11,col);
		break;
	case 'L': 
		mysetto(1,2); 
		mymoveto(1,11,col); 
		mymoveto(6,11,col);
		break;
	case 'M': 
		mysetto(0,11); 
		mymoveto(0,2,col); 
		mymoveto(3,9,col);
		mymoveto(6,2,col); 
		mymoveto(6,11,col);
		break;
	case 'N': 
		mysetto(1,11); 
		mymoveto(1,2,col); 
		mymoveto(6,11,col);
		mymoveto(6,2,col);
		break;
	case 'O': 
		mysetto(1,10); 
		mymoveto(1,3,col);
		mymoveto(2,2,col); 
		mymoveto(5,2,col);
		mymoveto(6,3,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col);
		break;
	case 'P': 
		mysetto(1,2); 
		mymoveto(1,11,col);
		mysetto(1,2); 
		mymoveto(5,2,col); 
		mymoveto(6,3,col);
		mymoveto(6,5,col); 
		mymoveto(5,6,col); 
		mymoveto(1,6,col);
		break;
	case 'Q': 
		mysetto(1,10); 
		mymoveto(1,3,col);
		mymoveto(2,2,col); 
		mymoveto(5,2,col);
		mymoveto(6,3,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col);
		mysetto(2,11); 
		mymoveto(5,14,col); 
		mymoveto(6,14,col);
		break;
	case 'R': 
		mysetto(1,2); 
		mymoveto(1,11,col);
		mysetto(1,2); 
		mymoveto(5,2,col); 
		mymoveto(6,3,col);
		mymoveto(6,5,col); 
		mymoveto(5,6,col); 
		mymoveto(1,6,col);
		mysetto(3,6); 
		mymoveto(6,11,col);
		break;
	case 'S': 
		mysetto(6,4); 
		mymoveto(6,3,col);
		mymoveto(5,2,col); 
		mymoveto(2,2,col); 
		mymoveto(1,3,col);
		mymoveto(1,4,col); 
		mymoveto(3,6,col); 
		mymoveto(4,6,col);
		mymoveto(6,8,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col); 
		mymoveto(1,9,col);
		break;
	case 'T': 
		mysetto(0,2); 
		mymoveto(6,2,col);
		mysetto(3,2); 
		mymoveto(3,11,col);
		break;
	case 'U': 
		mysetto(1,2); 
		mymoveto(1,10,col); 
		mymoveto(2,11,col);
		mymoveto(5,11,col); 
		mymoveto(6,10,col); 
		mymoveto(6,2,col);
		break;
	case 'V': 
		mysetto(1,2); 
		mymoveto(3,11,col); 
		mymoveto(4,11,col);
		mymoveto(6,2,col);
		break;
	case 'W': 
		mysetto(0,2); 
		mymoveto(2,11,col);
		mymoveto(3,5,col); 
		mymoveto(4,11,col); 
		mymoveto(6,2,col);
		break;
	case 'X': 
		mysetto(1,2); 
		mymoveto(1,3,col);
		mymoveto(6,10,col); 
		mymoveto(6,11,col);
		mysetto(1,11); 
		mymoveto(1,10,col);
		mymoveto(6,3,col); 
		mymoveto(6,2,col);
		break;
	case 'Y': 
		mysetto(0,2); 
		mymoveto(3,7,col); 
		mymoveto(6,2,col);
		mysetto(3,7); 
		mymoveto(3,11,col);
		break;
	case 'Z': 
		mysetto(1,2); 
		mymoveto(6,2,col);
		mymoveto(6,4,col); 
		mymoveto(1,9,col); 
		mymoveto(1,11,col);
		mymoveto(6,11,col);
		break;
	case '[': 
		mysetto(5,1); 
		mymoveto(2,1,col);
		mymoveto(2,13,col); 
		mymoveto(5,13,col);
		break;
	case '\\': 
		mysetto(0,1); 
		mymoveto(6,12,col);
		break;
	case ']': 
		mysetto(2,1); 
		mymoveto(5,1,col);
		mymoveto(5,13,col); 
		mymoveto(2,13,col);
		break;
	case '^': 
		mysetto(1,5); 
		mymoveto(3,3,col);
		mymoveto(4,3,col); 
		mymoveto(6,5,col);
		break;
	case '_': 
		mysetto(0,12); 
		mymoveto(6,12,col); 
		break;
	case '`': 
		mysetto(2,2); 
		mymoveto(2,3,col); 
		mymoveto(4,5,col);
		break;
	case 'a': 
		mysetto(1,6); 
		mymoveto(2,5,col); 
		mymoveto(4,5,col);
		mymoveto(5,6,col); 
		mymoveto(5,10,col); 
		mymoveto(6,11,col);
		mysetto(5,10); 
		mymoveto(4,11,col); 
		mymoveto(2,11,col);
		mymoveto(1,10,col); 
		mymoveto(1,9,col); 
		mymoveto(2,8,col);
		mymoveto(5,8,col);
		break;
	case 'b': 
		mysetto(1,2); 
		mymoveto(1,11,col);
		mysetto(1,6); 
		mymoveto(2,5,col); 
		mymoveto(5,5,col);
		mymoveto(6,6,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col);
		break;
	case 'c': 
		mysetto(6,6); 
		mymoveto(5,5,col); 
		mymoveto(2,5,col);
		mymoveto(1,6,col); 
		mymoveto(1,10,col); 
		mymoveto(2,11,col);
		mymoveto(5,11,col); 
		mymoveto(6,10,col);
		break;
	case 'd': 
		mysetto(6,2); 
		mymoveto(6,11,col);
		mysetto(6,6); 
		mymoveto(5,5,col); 
		mymoveto(2,5,col);
		mymoveto(1,6,col); 
		mymoveto(1,10,col); 
		mymoveto(2,11,col);
		mymoveto(5,11,col); 
		mymoveto(6,10,col);
		break;
	case 'e': 
		mysetto(1,8); 
		mymoveto(6,8,col); 
		mymoveto(6,6,col);
		mymoveto(5,5,col); 
		mymoveto(2,5,col);
		mymoveto(1,6,col); 
		mymoveto(1,10,col); 
		mymoveto(2,11,col);
		mymoveto(5,11,col); 
		mymoveto(6,10,col);
		break;
	case 'f': 
		mysetto(1,6); 
		mymoveto(5,6,col);
		mysetto(3,11); 
		mymoveto(3,3,col); 
		mymoveto(4,2,col);
		mymoveto(5,2,col); 
		mymoveto(6,3,col);
		break;
	case 'g': 
		mysetto(6,6); 
		mymoveto(5,5,col); 
		mymoveto(2,5,col);
		mymoveto(1,6,col); 
		mymoveto(1,10,col); 
		mymoveto(2,11,col);
		mymoveto(5,11,col); 
		mymoveto(6,10,col);
		mysetto(6,5); 
		mymoveto(6,13,col); 
		mymoveto(5,14,col);
		mymoveto(2,14,col); 
		mymoveto(1,13,col);
		break;
	case 'h': 
		mysetto(1,2); 
		mymoveto(1,11,col);
		mysetto(1,6); 
		mymoveto(2,5,col); 
		mymoveto(5,5,col);
		mymoveto(6,6,col); 
		mymoveto(6,11,col);
		break;
	case 'i': 
		mysetto(4,2); 
		mymoveto(4,1,col);
		mysetto(2,5); 
		mymoveto(4,5,col); 
		mymoveto(4,11,col);
		break;
	case 'j': 
		mysetto(5,2); 
		mymoveto(5,1,col);
		mysetto(3,5); 
		mymoveto(5,5,col); 
		mymoveto(5,13,col);
		mymoveto(4,14,col); 
		mymoveto(2,14,col);
		mymoveto(1,13,col);
		break;
	case 'k': 
		mysetto(1,2); 
		mymoveto(1,11,col);
		mysetto(1,9); 
		mymoveto(2,9,col); 
		mymoveto(5,6,col);
		mysetto(2,9); 
		mymoveto(6,11,col);
		break;
	case 'l': 
		mysetto(2,2); 
		mymoveto(4,2,col); 
		mymoveto(4,11,col);
		break;
	case 'm': 
		mysetto(0,11); 
		mymoveto(0,5,col);
		mymoveto(2,5,col); 
		mymoveto(3,6,col); 
		mymoveto(3,11,col);
		mysetto(3,6); 
		mymoveto(4,5,col); 
		mymoveto(5,5,col);
		mymoveto(6,6,col); 
		mymoveto(6,11,col);
		break;
	case 'n': 
		mysetto(1,11); 
		mymoveto(1,5,col);
		mysetto(1,6); 
		mymoveto(2,5,col); 
		mymoveto(5,5,col);
		mymoveto(6,6,col); 
		mymoveto(6,11,col);
		break;
	case 'o': 
		mysetto(1,6); 
		mymoveto(2,5,col); 
		mymoveto(5,5,col);
		mymoveto(6,6,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col); 
		mymoveto(1,6,col);
		break;
	case 'p': 
		mysetto(1,6); 
		mymoveto(2,5,col); 
		mymoveto(5,5,col);
		mymoveto(6,6,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col); 
		mymoveto(1,5,col);
		mymoveto(1,15,col);
		break;
	case 'q': 
		mysetto(1,6); 
		mymoveto(2,5,col); 
		mymoveto(5,5,col);
		mymoveto(6,6,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col); 
		mymoveto(1,6,col);
		mysetto(6,5); 
		mymoveto(6,15,col);
		break;
	case 'r': 
		mysetto(1,11); 
		mymoveto(1,5,col);
		mysetto(1,6); 
		mymoveto(2,5,col); 
		mymoveto(5,5,col);
		mymoveto(6,6,col);
		break;
	case 's': 
		mysetto(6,6); 
		mymoveto(5,5,col); 
		mymoveto(2,5,col);
		mymoveto(1,6,col); 
		mymoveto(1,7,col); 
		mymoveto(2,8,col);
		mymoveto(5,8,col); 
		mymoveto(6,9,col); 
		mymoveto(6,10,col);
		mymoveto(5,11,col); 
		mymoveto(2,11,col); 
		mymoveto(1,10,col);
		break;
	case 't': 
		mysetto(1,5); 
		mymoveto(4,5,col);
		mysetto(3,3); 
		mymoveto(3,10,col); 
		mymoveto(4,11,col);
		mymoveto(5,11,col); 
		mymoveto(6,10,col);
		break;
	case 'u': 
		mysetto(6,5); 
		mymoveto(6,11,col);
		mysetto(6,10); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col); 
		mymoveto(1,5,col);
		break;
	case 'v': 
		mysetto(1,5);
		mymoveto(4,11,col); 
		mymoveto(6,5,col);
		break;
	case 'w': 
		mysetto(0,5); 
		mymoveto(0,10,col); 
		mymoveto(1,11,col);
		mymoveto(2,11,col); 
		mymoveto(3,10,col); 
		mymoveto(3,7,col);
		mysetto(3,10); 
		mymoveto(4,11,col); 
		mymoveto(5,11,col);
		mymoveto(6,10,col); 
		mymoveto(6,5,col);
		break;
	case 'x': 
		mysetto(1,5); 
		mymoveto(1,6,col); 
		mymoveto(6,10,col);
		mymoveto(6,11,col);
		mysetto(1,11); 
		mymoveto(1,10,col); 
		mymoveto(6,6,col);
		mymoveto(6,5,col);
		break;
	case 'y': 
		mysetto(1,5); 
		mymoveto(4,12,col);
		mysetto(6,5); 
		mymoveto(4,12,col); 
		mymoveto(2,15,col);
		mymoveto(1,14,col);
		break;
	case 'z': 
		mysetto(1,5); 
		mymoveto(6,5,col); 
		mymoveto(1,11,col);
		mymoveto(6,11,col);
		break;
	case '{': 
		mysetto(6,1); 
		mymoveto(4,1,col); 
		mymoveto(3,2,col);
		mymoveto(3,6,col); 
		mymoveto(2,7,col); 
		mymoveto(1,7,col);
		mymoveto(2,7,col); 
		mymoveto(3,8,col); 
		mymoveto(3,12,col);
		mymoveto(4,13,col); 
		mymoveto(6,13,col);
		break;
	case '|': 
		mysetto(3,1); 
		mymoveto(3,12,col);
		break;
	case '}': 
		mysetto(1,1); 
		mymoveto(3,1,col); 
		mymoveto(4,2,col);
		mymoveto(4,6,col); 
		mymoveto(5,7,col); 
		mymoveto(6,7,col);
		mymoveto(5,7,col); 
		mymoveto(4,8,col); 
		mymoveto(4,12,col);
		mymoveto(3,13,col); 
		mymoveto(1,13,col);
		break;
	case '~': 
		mysetto(1,4); 
		mymoveto(2,3,col); 
		mymoveto(3,3,col);
		mymoveto(4,4,col); 
		mymoveto(5,4,col); 
		mymoveto(6,3,col);
		break;
	}
}

 

 








static void myisochar(int c, int col)





{
	switch(c) {
	case '\020':    
		mysetto(2,5); 
		mymoveto(4,5,col); 
		mymoveto(4,11,col);
		break;
	case '\021':    
		mysetto(2,1); 
		mymoveto(4,2,col); 
		break;
	case '\022':    
	case '\064':    
		mysetto(4,1); 
		mymoveto(2,2,col); 
		break;
	case '\023':    
		mysetto(2,2); 
		mymoveto(3,1,col); 
		mymoveto(4,2,col); 
		break;
	case '\024':    
		mysetto(1,2); 
		mymoveto(2,1,col); 
		mymoveto(4,2,col); 
		mymoveto(5,1,col); 
		break;
	case '\025':    
	case '\057':    
		mysetto(1,1); 
		mymoveto(5,1,col); 
		break;
	case '\026':    
		mysetto(1,1); 
		mymoveto(2,2,col); 
		mymoveto(4,2,col); 
		mymoveto(5,1,col); 
		break;
	case '\027':    
		mysetto(4,1); 
		mymoveto(4,2,col); 
		break;
	case '\030':    
	case '\050':    
		mysetto(2,1); 
		mymoveto(2,2,col); 
		mysetto(4,1); 
		mymoveto(4,2,col); 
		break;
	case '\032':    
	case '\060':    
		mysetto(2,1); 
		mymoveto(3,1,col); 
		mymoveto(4,2,col); 
		mymoveto(4,3,col); 
		mymoveto(3,4,col); 
		mymoveto(2,4,col); 
		mymoveto(1,3,col); 
		mymoveto(1,2,col); 
		mymoveto(2,1,col); 
		break;
	case '\033':    
	case '\070':    
		mysetto(3,11); 
		mymoveto(3,13,col); 
		mymoveto(4,13,col); 
		mymoveto(5,14,col); 
		mymoveto(4,15,col); 
		mymoveto(3,15,col); 
		break;
	case '\035':    
		mysetto(3,1); 
		mymoveto(1,2,col); 
		mysetto(5,1); 
		mymoveto(3,2,col); 
		break;
	case '\036':    
		mysetto(4,11); 
		mymoveto(3,13,col); 
		mymoveto(3,14,col); 
		mymoveto(5,14,col); 
		break;
	case '\037':    
		mysetto(2,1); 
		mymoveto(3,2,col); 
		mymoveto(4,1,col); 
		break;
	case '\040':    
		break;
	case '\041':    
		mysetto(3,14); 
		mymoveto(3,8,col);
		mysetto(3,5); 
		mymoveto(3,5,col);
		break;
	case '\042':    
		mysetto(6,6); 
		mymoveto(5,5,col); 
		mymoveto(2,5,col);
		mymoveto(1,6,col); 
		mymoveto(1,10,col); 
		mymoveto(2,11,col);
		mymoveto(5,11,col); 
		mymoveto(6,10,col);
		mysetto(4,4); 
		mymoveto(2,12,col);
		break;
	case '\043':    
		mysetto(6,4); 
		mymoveto(6,3,col); 
		mymoveto(5,2,col);
		mymoveto(3,2,col);
		mymoveto(2,3,col); 
		mymoveto(3,7,col); 
		mymoveto(1,11,col); 
		mymoveto(2,10,col); 
		mymoveto(5,11,col); 
		mymoveto(6,10,col); 
		mysetto(1,7); 
		mymoveto(5,7,col); 
		break;
	case '\044':    
		mysetto(1,5); 
		mymoveto(2,4,col); 
		mymoveto(4,4,col);
		mymoveto(5,5,col); 
		mymoveto(5,7,col); 
		mymoveto(4,8,col);
		mymoveto(2,8,col); 
		mymoveto(1,7,col); 
		mymoveto(1,5,col);
		mysetto(0,3); 
		mymoveto(1,4,col);
		mysetto(0,9); 
		mymoveto(1,8,col);
		mysetto(6,3); 
		mymoveto(5,4,col);
		mysetto(6,9); 
		mymoveto(5,8,col);
		break;
	case '\045':    
		mysetto(0,2); 
		mymoveto(3,7,col); 
		mymoveto(6,2,col);
		mysetto(3,7); 
		mymoveto(3,11,col);
		mysetto(0,7); 
		mymoveto(6,7,col);
		mysetto(0,9); 
		mymoveto(6,9,col);
		break;
	case '\046':    
		mysetto(3,1); 
		mymoveto(3,5,col);
		mysetto(3,7); 
		mymoveto(3,11,col);
		break;
	case '\047':    
		mysetto(6,3); 
		mymoveto(5,2,col);
		mymoveto(3,2,col);
		mymoveto(2,3,col);
		mymoveto(2,4,col);
		mymoveto(6,8,col);
		mymoveto(6,9,col);
		mymoveto(5,10,col);
		mymoveto(3,10,col);
		mysetto(4,6); 
		mymoveto(2,6,col);
		mymoveto(1,7,col);
		mymoveto(1,8,col);
		mymoveto(5,12,col);
		mymoveto(5,13,col);
		mymoveto(4,14,col);
		mymoveto(2,14,col);
		mymoveto(1,13,col);
		break;
	case '\051':    
		mysetto(0,4); 
		mymoveto(1,3,col);
		mymoveto(5,3,col);
		mymoveto(6,4,col);
		mymoveto(6,10,col);
		mymoveto(5,11,col);
		mymoveto(1,11,col);
		mymoveto(0,10,col);
		mymoveto(0,4,col);
		mysetto(4,5); 
		mymoveto(3,5,col);
		mymoveto(2,6,col);
		mymoveto(2,8,col);
		mymoveto(3,9,col);
		mymoveto(4,9,col);
		break;
	case '\052':    
		mysetto(2,2); 
		mymoveto(3,2,col);
		mymoveto(4,3,col); 
		mymoveto(4,6,col); 
		mymoveto(5,7,col);
		mysetto(4,6); 
		mymoveto(3,7,col); 
		mymoveto(2,7,col);
		mymoveto(1,6,col); 
		mymoveto(1,5,col); 
		mymoveto(2,4,col);
		mymoveto(4,4,col);
		mysetto(1,9); 
		mymoveto(5,9,col);
		break;
	case '\053':    
		mysetto(4,5); 
		mymoveto(1,8,col);
		mymoveto(4,11,col); 
		mysetto(6,5); 
		mymoveto(3,8,col);
		mymoveto(6,11,col); 
		break;
	case '\054':    
		mysetto(1,5); 
		mymoveto(6,5,col);
		mymoveto(6,9,col); 
		break;
	case '\055':    
		mysetto(1,8); 
		mymoveto(6,8,col);
		break;
	case '\056':    
		mysetto(0,4); 
		mymoveto(1,3,col);
		mymoveto(5,3,col);
		mymoveto(6,4,col);
		mymoveto(6,10,col);
		mymoveto(5,11,col);
		mymoveto(1,11,col);
		mymoveto(0,10,col);
		mymoveto(0,4,col);
		mysetto(2,9); 
		mymoveto(2,5,col);
		mymoveto(3,5,col);
		mymoveto(4,6,col);
		mymoveto(3,7,col);
		mymoveto(2,7,col);
		mymoveto(4,9,col);
		break;
	case '\061':    
		mysetto(0,6); 
		mymoveto(6,6,col);
		mysetto(3,9); 
		mymoveto(3,3,col);
		mysetto(0,11); 
		mymoveto(6,11,col);
		break;
	case '\062':    
		mysetto(2,3); 
		mymoveto(3,2,col); 
		mymoveto(4,2,col);
		mymoveto(5,3,col); 
		mymoveto(5,4,col); 
		mymoveto(2,8,col);
		mymoveto(5,8,col);
		break;
	case '\063':    
		mysetto(2,3); 
		mymoveto(3,2,col); 
		mymoveto(4,2,col);
		mymoveto(5,3,col); 
		mymoveto(5,4,col); 
		mymoveto(4,5,col); 
		mymoveto(3,5,col); 
		mysetto(4,5); 
		mymoveto(5,6,col);
		mymoveto(5,7,col);
		mymoveto(4,8,col);
		mymoveto(3,8,col);
		mymoveto(2,7,col);
		break;
	case '\065':    
		mysetto(6,5); 
		mymoveto(6,11,col);
		mysetto(6,10); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col); 
		mymoveto(1,5,col);
		mysetto(1,10); 
		mymoveto(1,14,col);
		break;
	case '\066':    
		mysetto(6,11); 
		mymoveto(6,2,col);
		mysetto(4,11); 
		mymoveto(4,2,col);
		mymoveto(2,2,col);
		mymoveto(1,3,col);
		mymoveto(1,4,col);
		mymoveto(2,5,col);
		mymoveto(4,5,col);
		break;
	case '\067':    
		mysetto(4,6); 
		mymoveto(5,6,col);
		mymoveto(5,7,col); 
		mymoveto(4,7,col); 
		mymoveto(4,6,col);
		break;
	case '\071':    
		mysetto(2,3); 
		mymoveto(3,2,col); 
		mymoveto(3,8,col);
		mysetto(2,8); 
		mymoveto(4,8,col);
		break;
	case '\072':    
		mysetto(2,2); 
		mymoveto(4,2,col);
		mymoveto(5,3,col); 
		mymoveto(5,6,col); 
		mymoveto(4,7,col);
		mymoveto(2,7,col);
		mymoveto(1,6,col);
		mymoveto(1,3,col);
		mymoveto(2,2,col);
		mysetto(1,9); 
		mymoveto(5,9,col);
		break;
	case '\073':    
		mysetto(1,5); 
		mymoveto(4,8,col);
		mymoveto(1,11,col); 
		mysetto(3,5); 
		mymoveto(6,8,col);
		mymoveto(3,11,col); 
		break;
	case '\074':    
		mysetto(0,3); 
		mymoveto(1,2,col); 
		mymoveto(1,8,col);
		mysetto(0,8); 
		mymoveto(2,8,col);
		mysetto(0,11); 
		mymoveto(6,2,col);
		mysetto(5,13); 
		mymoveto(5,7,col);
		mymoveto(2,11,col);
		mymoveto(6,11,col);
		break;
	case '\075':    
		mysetto(0,3); 
		mymoveto(1,2,col); 
		mymoveto(1,8,col);
		mysetto(0,8); 
		mymoveto(2,8,col);
		mysetto(0,11); 
		mymoveto(6,2,col);
		mysetto(3,8); 
		mymoveto(4,7,col); 
		mymoveto(5,7,col);
		mymoveto(6,8,col); 
		mymoveto(6,9,col); 
		mymoveto(3,13,col);
		mymoveto(6,13,col);
		break;
	case '\076':    
		mysetto(0,2); 
		mymoveto(1,1,col); 
		mymoveto(2,1,col);
		mymoveto(3,2,col); 
		mymoveto(3,3,col); 
		mymoveto(2,4,col); 
		mymoveto(0,4,col); 
		mymoveto(2,4,col); 
		mymoveto(3,5,col);
		mymoveto(3,6,col);
		mymoveto(2,7,col);
		mymoveto(1,7,col);
		mymoveto(0,6,col);
		mysetto(0,11); 
		mymoveto(6,2,col);
		mysetto(5,13); 
		mymoveto(5,7,col);
		mymoveto(2,11,col);
		mymoveto(6,11,col);
		break;
	case '\077':    
		mysetto(6,12); 
		mymoveto(6,13,col); 
		mymoveto(5,14,col);
		mymoveto(2,14,col); 
		mymoveto(1,13,col); 
		mymoveto(1,12,col);
		mymoveto(3,9,col); 
		mymoveto(3,8,col); 
		mysetto(3,4);
		mymoveto(3,4,col);
		break;
	case '\100':    
		mysetto(1,11); 
		mymoveto(1,8,col); 
		mymoveto(3,2,col);
		mymoveto(4,2,col); 
		mymoveto(6,8,col); 
		mymoveto(6,11,col);
		mysetto(1,8); 
		mymoveto(6,8,col);
		mysetto(2,0); 
		mymoveto(4,1,col); 
		break;
	case '\101':    
		mysetto(1,11); 
		mymoveto(1,8,col); 
		mymoveto(3,2,col);
		mymoveto(4,2,col); 
		mymoveto(6,8,col); 
		mymoveto(6,11,col);
		mysetto(1,8); 
		mymoveto(6,8,col);
		mysetto(5,0); 
		mymoveto(3,1,col); 
		break;
	case '\102':    
		mysetto(1,11); 
		mymoveto(1,8,col); 
		mymoveto(3,2,col);
		mymoveto(4,2,col); 
		mymoveto(6,8,col); 
		mymoveto(6,11,col);
		mysetto(1,8); 
		mymoveto(6,8,col);
		mysetto(2,1); 
		mymoveto(3,0,col); 
		mymoveto(4,1,col); 
		break;
	case '\103':    
		mysetto(1,11); 
		mymoveto(1,8,col); 
		mymoveto(3,2,col);
		mymoveto(4,2,col); 
		mymoveto(6,8,col); 
		mymoveto(6,11,col);
		mysetto(1,8); 
		mymoveto(6,8,col);
		mysetto(1,1); 
		mymoveto(2,0,col); 
		mymoveto(4,1,col); 
		mymoveto(5,0,col); 
		break;
	case '\104':    
		mysetto(1,11); 
		mymoveto(1,8,col); 
		mymoveto(3,2,col);
		mymoveto(4,2,col); 
		mymoveto(6,8,col); 
		mymoveto(6,11,col);
		mysetto(1,8); 
		mymoveto(6,8,col);
		mysetto(2,0); 
		mymoveto(2,1,col); 
		mysetto(5,0); 
		mymoveto(5,1,col); 
		break;
	case '\105':    
		mysetto(1,11); 
		mymoveto(1,8,col); 
		mymoveto(3,2,col);
		mymoveto(4,2,col); 
		mymoveto(6,8,col); 
		mymoveto(6,11,col);
		mysetto(1,8); 
		mymoveto(6,8,col);
		mysetto(3,0); 
		mymoveto(4,0,col);
		mymoveto(4,1,col);
		mymoveto(3,1,col);
		mymoveto(3,0,col);
		break;
	case '\106':    
		mysetto(1,11); 
		mymoveto(1,8,col); 
		mymoveto(3,2,col);
		mymoveto(4,2,col); 
		mysetto(1,8); 
		mymoveto(4,8,col);
		mysetto(4,2); 
		mymoveto(4,11,col); 
		mymoveto(6,11,col);
		mysetto(4,2); 
		mymoveto(6,2,col);
		mysetto(4,6); 
		mymoveto(5,6,col);
		break;
	case '\107':    
		mysetto(6,4); 
		mymoveto(6,3,col); 
		mymoveto(5,2,col);
		mymoveto(2,2,col);
		mymoveto(1,3,col); 
		mymoveto(1,10,col); 
		mymoveto(2,11,col);
		mymoveto(5,11,col); 
		mymoveto(6,10,col); 
		mymoveto(6,9,col);
		mysetto(3,11); 
		mymoveto(3,13,col); 
		mymoveto(4,13,col); 
		mymoveto(5,14,col); 
		mymoveto(4,15,col); 
		mymoveto(3,15,col); 
		break;
	case '\110':    
		mysetto(1,2); 
		mymoveto(1,11,col); 
		mymoveto(6,11,col);
		mysetto(1,2); 
		mymoveto(6,2,col);
		mysetto(1,6); 
		mymoveto(5,6,col);
		mysetto(2,0); 
		mymoveto(4,1,col); 
		break;
	case '\111':    
		mysetto(1,2); 
		mymoveto(1,11,col); 
		mymoveto(6,11,col);
		mysetto(1,2); 
		mymoveto(6,2,col);
		mysetto(1,6); 
		mymoveto(5,6,col);
		mysetto(3,1); 
		mymoveto(5,0,col); 
		break;
	case '\112':    
		mysetto(1,2); 
		mymoveto(1,11,col); 
		mymoveto(6,11,col);
		mysetto(1,2); 
		mymoveto(6,2,col);
		mysetto(1,6); 
		mymoveto(5,6,col);
		mysetto(2,1); 
		mymoveto(3,0,col); 
		mymoveto(4,1,col); 
		break;
	case '\113':    
		mysetto(1,2); 
		mymoveto(1,11,col); 
		mymoveto(6,11,col);
		mysetto(1,2); 
		mymoveto(6,2,col);
		mysetto(1,6); 
		mymoveto(5,6,col);
		mysetto(2,0); 
		mymoveto(2,0,col); 
		mysetto(5,0); 
		mymoveto(5,0,col); 
		break;
	case '\114':    
		mysetto(1,2); 
		mymoveto(5,2,col);
		mysetto(3,2); 
		mymoveto(3,11,col);
		mysetto(1,11); 
		mymoveto(5,11,col);
		mysetto(2,0); 
		mymoveto(4,1,col); 
		break;
	case '\115':    
		mysetto(1,2); 
		mymoveto(5,2,col);
		mysetto(3,2); 
		mymoveto(3,11,col);
		mysetto(1,11); 
		mymoveto(5,11,col);
		mysetto(2,1); 
		mymoveto(4,0,col); 
		break;
	case '\116':    
		mysetto(1,2); 
		mymoveto(5,2,col);
		mysetto(3,2); 
		mymoveto(3,11,col);
		mysetto(1,11); 
		mymoveto(5,11,col);
		mysetto(2,1); 
		mymoveto(3,0,col); 
		mymoveto(4,1,col); 
		break;
	case '\117':    
		mysetto(1,2); 
		mymoveto(5,2,col);
		mysetto(3,2); 
		mymoveto(3,11,col);
		mysetto(1,11); 
		mymoveto(5,11,col);
		mysetto(2,0); 
		mymoveto(2,0,col); 
		mysetto(4,0); 
		mymoveto(4,0,col); 
		break;
	case '\120':    
		mysetto(1,2); 
		mymoveto(1,11,col); 
		mymoveto(4,11,col);
		mymoveto(6,9,col); 
		mymoveto(6,4,col); 
		mymoveto(4,2,col);
		mymoveto(1,2,col);
		mysetto(0,6); 
		mymoveto(2,6,col);
		break;
	case '\121':    
		mysetto(1,11); 
		mymoveto(1,2,col); 
		mymoveto(6,11,col);
		mymoveto(6,2,col);
		mysetto(1,1); 
		mymoveto(2,0,col); 
		mymoveto(4,1,col); 
		mymoveto(5,0,col); 
		break;
	case '\122':    
		mysetto(1,10); 
		mymoveto(1,3,col);
		mymoveto(2,2,col); 
		mymoveto(5,2,col);
		mymoveto(6,3,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col);
		mysetto(2,0); 
		mymoveto(4,1,col); 
		break;
	case '\123':    
		mysetto(1,10); 
		mymoveto(1,3,col);
		mymoveto(2,2,col); 
		mymoveto(5,2,col);
		mymoveto(6,3,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col);
		mysetto(3,1); 
		mymoveto(5,0,col); 
		break;
	case '\124':    
		mysetto(1,10); 
		mymoveto(1,3,col);
		mymoveto(2,2,col); 
		mymoveto(5,2,col);
		mymoveto(6,3,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col);
		mysetto(2,1); 
		mymoveto(3,0,col); 
		mymoveto(4,1,col); 
		break;
	case '\125':    
		mysetto(1,10); 
		mymoveto(1,3,col);
		mymoveto(2,2,col); 
		mymoveto(5,2,col);
		mymoveto(6,3,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col);
		mysetto(1,1); 
		mymoveto(2,0,col); 
		mymoveto(4,1,col); 
		mymoveto(5,0,col); 
		break;
	case '\126':    
		mysetto(1,10); 
		mymoveto(1,3,col);
		mymoveto(2,2,col); 
		mymoveto(5,2,col);
		mymoveto(6,3,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col);
		mysetto(2,0); 
		mymoveto(2,1,col); 
		mysetto(5,0); 
		mymoveto(5,1,col); 
		break;
	case '\127':    
		mysetto(1,4); 
		mymoveto(6,10,col);
		mysetto(6,4); 
		mymoveto(1,10,col);
		break;
	case '\130':    
		mysetto(1,10); 
		mymoveto(1,3,col);
		mymoveto(2,2,col); 
		mymoveto(5,2,col);
		mymoveto(6,3,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col);
		mysetto(0,12); 
		mymoveto(6,1,col); 
		break;
	case '\131':    
		mysetto(1,2); 
		mymoveto(1,10,col); 
		mymoveto(2,11,col);
		mymoveto(5,11,col); 
		mymoveto(6,10,col); 
		mymoveto(6,2,col);
		mysetto(2,0); 
		mymoveto(4,1,col); 
		break;
	case '\132':    
		mysetto(1,2); 
		mymoveto(1,10,col); 
		mymoveto(2,11,col);
		mymoveto(5,11,col); 
		mymoveto(6,10,col); 
		mymoveto(6,2,col);
		mysetto(3,1); 
		mymoveto(5,0,col); 
		break;
	case '\133':    
		mysetto(1,2); 
		mymoveto(1,10,col); 
		mymoveto(2,11,col);
		mymoveto(5,11,col); 
		mymoveto(6,10,col); 
		mymoveto(6,2,col);
		mysetto(2,1); 
		mymoveto(3,0,col); 
		mymoveto(4,1,col); 
		break;
	case '\134':    
		mysetto(1,2); 
		mymoveto(1,10,col); 
		mymoveto(2,11,col);
		mymoveto(5,11,col); 
		mymoveto(6,10,col); 
		mymoveto(6,2,col);
		mysetto(2,0); 
		mymoveto(2,1,col); 
		mysetto(5,0); 
		mymoveto(5,1,col); 
		break;
	case '\135':    
		mysetto(0,2); 
		mymoveto(3,7,col); 
		mymoveto(6,2,col);
		mysetto(3,7); 
		mymoveto(3,11,col);
		mysetto(2,1); 
		mymoveto(4,0,col); 
		break;
	case '\136':    
		mysetto(1,7); 
		mymoveto(5,7,col);
		mymoveto(6,8,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(1,11,col); 
		mymoveto(1,5,col);
		mymoveto(1,15,col);
		break;
	case '\137':    
		mysetto(1,12); 
		mymoveto(1,3,col);
		mymoveto(2,2,col); 
		mymoveto(4,2,col);
		mymoveto(5,3,col); 
		mymoveto(5,4,col); 
		mymoveto(3,6,col);
		mymoveto(2,6,col);
		mymoveto(6,7,col); 
		mymoveto(6,10,col);
		mymoveto(5,11,col); 
		mymoveto(2,11,col); 
		break;
	case '\140':    
		mysetto(1,6); 
		mymoveto(2,5,col); 
		mymoveto(4,5,col);
		mymoveto(5,6,col); 
		mymoveto(5,10,col); 
		mymoveto(6,11,col);
		mysetto(5,10); 
		mymoveto(4,11,col); 
		mymoveto(2,11,col);
		mymoveto(1,10,col); 
		mymoveto(1,9,col); 
		mymoveto(2,8,col);
		mymoveto(5,8,col);
		mysetto(2,2); 
		mymoveto(4,3,col); 
		break;
	case '\141':    
		mysetto(1,6); 
		mymoveto(2,5,col); 
		mymoveto(4,5,col);
		mymoveto(5,6,col); 
		mymoveto(5,10,col); 
		mymoveto(6,11,col);
		mysetto(5,10); 
		mymoveto(4,11,col); 
		mymoveto(2,11,col);
		mymoveto(1,10,col); 
		mymoveto(1,9,col); 
		mymoveto(2,8,col);
		mymoveto(5,8,col);
		mysetto(3,3); 
		mymoveto(5,2,col); 
		break;
	case '\142':    
		mysetto(1,6); 
		mymoveto(2,5,col); 
		mymoveto(4,5,col);
		mymoveto(5,6,col); 
		mymoveto(5,10,col); 
		mymoveto(6,11,col);
		mysetto(5,10); 
		mymoveto(4,11,col); 
		mymoveto(2,11,col);
		mymoveto(1,10,col); 
		mymoveto(1,9,col); 
		mymoveto(2,8,col);
		mymoveto(5,8,col);
		mysetto(2,3); 
		mymoveto(3,2,col); 
		mymoveto(4,3,col); 
		break;
	case '\143':    
		mysetto(1,6); 
		mymoveto(2,5,col); 
		mymoveto(4,5,col);
		mymoveto(5,6,col); 
		mymoveto(5,10,col); 
		mymoveto(6,11,col);
		mysetto(5,10); 
		mymoveto(4,11,col); 
		mymoveto(2,11,col);
		mymoveto(1,10,col); 
		mymoveto(1,9,col); 
		mymoveto(2,8,col);
		mymoveto(5,8,col);
		mysetto(1,3); 
		mymoveto(2,2,col); 
		mymoveto(4,3,col); 
		mymoveto(5,2,col); 
		break;
	case '\144':    
		mysetto(1,6); 
		mymoveto(2,5,col); 
		mymoveto(4,5,col);
		mymoveto(5,6,col); 
		mymoveto(5,10,col); 
		mymoveto(6,11,col);
		mysetto(5,10); 
		mymoveto(4,11,col); 
		mymoveto(2,11,col);
		mymoveto(1,10,col); 
		mymoveto(1,9,col); 
		mymoveto(2,8,col);
		mymoveto(5,8,col);
		mysetto(2,2); 
		mymoveto(2,3,col); 
		mysetto(5,2); 
		mymoveto(5,3,col); 
		break;
	case '\145':    
		mysetto(1,6); 
		mymoveto(2,5,col); 
		mymoveto(4,5,col);
		mymoveto(5,6,col); 
		mymoveto(5,10,col); 
		mymoveto(6,11,col);
		mysetto(5,10); 
		mymoveto(4,11,col); 
		mymoveto(2,11,col);
		mymoveto(1,10,col); 
		mymoveto(1,9,col); 
		mymoveto(2,8,col);
		mymoveto(5,8,col);
		mysetto(2,1); 
		mymoveto(3,1,col); 
		mymoveto(4,2,col); 
		mymoveto(4,3,col); 
		mymoveto(3,4,col); 
		mymoveto(2,4,col); 
		mymoveto(1,3,col); 
		mymoveto(1,2,col); 
		mymoveto(2,1,col); 
		break;
	case '\146':    
		mysetto(0,6); 
		mymoveto(1,5,col); 
		mymoveto(2,5,col);
		mymoveto(3,6,col); 
		mymoveto(3,10,col); 
		mymoveto(2,11,col); 
		mymoveto(1,11,col);
		mymoveto(0,10,col); 
		mymoveto(0,9,col); 
		mymoveto(1,8,col);
		mymoveto(3,8,col);
		mysetto(3,8); 
		mymoveto(6,8,col); 
		mymoveto(6,6,col);
		mymoveto(5,5,col); 
		mymoveto(4,5,col);
		mymoveto(3,6,col); 
		mymoveto(3,10,col); 
		mymoveto(4,11,col);
		mymoveto(5,11,col); 
		mymoveto(6,10,col);
		break;
	case '\147':    
		mysetto(6,6); 
		mymoveto(5,5,col); 
		mymoveto(2,5,col);
		mymoveto(1,6,col); 
		mymoveto(1,10,col); 
		mymoveto(2,11,col);
		mymoveto(5,11,col); 
		mymoveto(6,10,col);
		mysetto(3,11); 
		mymoveto(3,13,col); 
		mymoveto(4,13,col); 
		mymoveto(5,14,col); 
		mymoveto(4,15,col); 
		mymoveto(3,15,col); 
		break;
	case '\150':    
		mysetto(1,8); 
		mymoveto(6,8,col); 
		mymoveto(6,6,col);
		mymoveto(5,5,col); 
		mymoveto(2,5,col);
		mymoveto(1,6,col); 
		mymoveto(1,10,col); 
		mymoveto(2,11,col);
		mymoveto(5,11,col); 
		mymoveto(6,10,col);
		mysetto(2,2); 
		mymoveto(4,3,col); 
		break;
	case '\151':    
		mysetto(1,8); 
		mymoveto(6,8,col); 
		mymoveto(6,6,col);
		mymoveto(5,5,col); 
		mymoveto(2,5,col);
		mymoveto(1,6,col); 
		mymoveto(1,10,col); 
		mymoveto(2,11,col);
		mymoveto(5,11,col); 
		mymoveto(6,10,col);
		mysetto(3,3); 
		mymoveto(5,2,col); 
		break;
	case '\152':    
		mysetto(1,8); 
		mymoveto(6,8,col); 
		mymoveto(6,6,col);
		mymoveto(5,5,col); 
		mymoveto(2,5,col);
		mymoveto(1,6,col); 
		mymoveto(1,10,col); 
		mymoveto(2,11,col);
		mymoveto(5,11,col); 
		mymoveto(6,10,col);
		mysetto(2,3); 
		mymoveto(3,2,col); 
		mymoveto(4,3,col); 
		break;
	case '\153':    
		mysetto(1,8); 
		mymoveto(6,8,col); 
		mymoveto(6,6,col);
		mymoveto(5,5,col); 
		mymoveto(2,5,col);
		mymoveto(1,6,col); 
		mymoveto(1,10,col); 
		mymoveto(2,11,col);
		mymoveto(5,11,col); 
		mymoveto(6,10,col);
		mysetto(2,2); 
		mymoveto(2,3,col); 
		mysetto(5,2); 
		mymoveto(5,3,col); 
		break;
	case '\154':    
		mysetto(2,5); 
		mymoveto(4,5,col); 
		mymoveto(4,11,col);
		mysetto(3,2); 
		mymoveto(5,3,col); 
		break;
	case '\155':    
		mysetto(2,5); 
		mymoveto(4,5,col); 
		mymoveto(4,11,col);
		mysetto(3,3); 
		mymoveto(5,2,col); 
		break;
	case '\156':    
		mysetto(2,5); 
		mymoveto(4,5,col); 
		mymoveto(4,11,col);
		mysetto(3,3); 
		mymoveto(4,2,col); 
		mymoveto(5,3,col); 
		break;
	case '\157':    
		mysetto(2,5); 
		mymoveto(4,5,col); 
		mymoveto(4,11,col);
		mysetto(3,2); 
		mymoveto(3,3,col); 
		mysetto(5,2); 
		mymoveto(5,3,col); 
		break;
	case '\160':    
		mysetto(1,6); 
		mymoveto(2,5,col); 
		mymoveto(5,5,col);
		mymoveto(6,6,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col); 
		mymoveto(1,6,col);
		mysetto(5,5);
		mymoveto(1,2,col);
		mysetto(1,4);
		mymoveto(3,2,col);
		break;
	case '\161':    
		mysetto(1,11); 
		mymoveto(1,5,col);
		mysetto(1,6); 
		mymoveto(2,5,col); 
		mymoveto(5,5,col);
		mymoveto(6,6,col); 
		mymoveto(6,11,col);
		mysetto(2,3); 
		mymoveto(3,2,col); 
		mymoveto(5,3,col); 
		mymoveto(6,2,col); 
		break;
	case '\162':    
		mysetto(1,6); 
		mymoveto(2,5,col); 
		mymoveto(5,5,col);
		mymoveto(6,6,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col); 
		mymoveto(1,6,col);
		mysetto(2,2); 
		mymoveto(4,3,col); 
		break;
	case '\163':    
		mysetto(1,6); 
		mymoveto(2,5,col); 
		mymoveto(5,5,col);
		mymoveto(6,6,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col); 
		mymoveto(1,6,col);
		mysetto(3,3); 
		mymoveto(5,2,col); 
		break;
	case '\164':    
		mysetto(1,6); 
		mymoveto(2,5,col); 
		mymoveto(5,5,col);
		mymoveto(6,6,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col); 
		mymoveto(1,6,col);
		mysetto(2,3); 
		mymoveto(3,2,col); 
		mymoveto(4,3,col); 
		break;
	case '\165':    
		mysetto(1,6); 
		mymoveto(2,5,col); 
		mymoveto(5,5,col);
		mymoveto(6,6,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col); 
		mymoveto(1,6,col);
		mysetto(2,3); 
		mymoveto(3,2,col); 
		mymoveto(5,3,col); 
		mymoveto(6,2,col); 
		break;
	case '\166':    
		mysetto(1,6); 
		mymoveto(2,5,col); 
		mymoveto(5,5,col);
		mymoveto(6,6,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col); 
		mymoveto(1,6,col);
		mysetto(2,2); 
		mymoveto(2,3,col); 
		mysetto(5,2); 
		mymoveto(5,3,col); 
		break;
	case '\167':    
		mysetto(1,7); 
		mymoveto(5,7,col);
		mysetto(3,5); 
		mymoveto(3,5,col);
		mysetto(3,9); 
		mymoveto(3,9,col);
		break;
	case '\170':    
		mysetto(1,6); 
		mymoveto(2,5,col); 
		mymoveto(5,5,col);
		mymoveto(6,6,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col); 
		mymoveto(1,6,col);
		mysetto(0,12); 
		mymoveto(6,4,col); 
		break;
	case '\171':    
		mysetto(6,5); 
		mymoveto(6,11,col);
		mysetto(6,10); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col); 
		mymoveto(1,5,col);
		mysetto(2,2); 
		mymoveto(4,3,col); 
		break;
	case '\172':    
		mysetto(6,5); 
		mymoveto(6,11,col);
		mysetto(6,10); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col); 
		mymoveto(1,5,col);
		mysetto(3,3); 
		mymoveto(5,2,col); 
		break;
	case '\173':    
		mysetto(6,5); 
		mymoveto(6,11,col);
		mysetto(6,10); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col); 
		mymoveto(1,5,col);
		mysetto(2,3); 
		mymoveto(3,2,col); 
		mymoveto(4,3,col); 
		break;
	case '\174':    
		mysetto(6,5); 
		mymoveto(6,11,col);
		mysetto(6,10); 
		mymoveto(5,11,col);
		mymoveto(2,11,col); 
		mymoveto(1,10,col); 
		mymoveto(1,5,col);
		mysetto(2,2); 
		mymoveto(2,3,col); 
		mysetto(5,2); 
		mymoveto(5,3,col); 
		break;
	case '\175':    
		mysetto(1,5); 
		mymoveto(4,12,col);
		mysetto(6,5); 
		mymoveto(4,12,col); 
		mymoveto(2,15,col);
		mymoveto(1,14,col);
		mysetto(2,3); 
		mymoveto(4,2,col); 
		break;
	case '\176':    
		mysetto(1,2); 
		mymoveto(1,5,col); 
		mymoveto(5,5,col);
		mymoveto(6,6,col); 
		mymoveto(6,10,col); 
		mymoveto(5,11,col);
		mymoveto(1,11,col); 
		mymoveto(1,5,col);
		mymoveto(1,15,col);
		break;
	case '\177':    
		mysetto(1,5); 
		mymoveto(4,12,col);
		mysetto(6,5); 
		mymoveto(4,12,col); 
		mymoveto(2,15,col);
		mymoveto(1,14,col);
		mysetto(2,2); 
		mymoveto(2,3,col); 
		mysetto(5,2); 
		mymoveto(5,3,col); 
		break;
	}
}



 



# 271 "drawstr.c" 2





 













static void myoutchar(int c, int col, int underline)






{
# 310 "drawstr.c"


	if (c<128) myasciichar(c,   col);
	else	   myisochar(c-128, col);

	if (underline) {
		int oldthick;

		oldthick = mythick;
		mythick = 1;
		mysetto(0,14); 
		mymoveto(8,14,col); 
		mythick = oldthick;
	}
}



 
 
 

 





#define MAXCHARS 20000



void ps_printstr (char *s, int c)





{
	int	mx,my;		 
	int 	xcnt, ycnt;	 
	int 	i;		 
	int 	actcolor,underline;
	int 	cc;

	if (ps_myshrink ==0)		return;
	if (ps_stlimit * ps_myshrink > ps_shlimit * ps_mystretch )	return;

	i = xcnt = ycnt = 0;
	mx = ps_myxpos ;    
	my = ps_myypos ;

	actcolor = c;
	underline = 0;
	mythick   = 1;





	while (*s) { 

		ps_myxpos  = mx + (xcnt *  8 * ps_mystretch ) / ps_myshrink ;
		ps_myypos  = my + (ycnt * 16 * ps_mystretch ) / ps_myshrink ;

		 
		if ( my + ((ycnt+1) * 16 * ps_mystretch ) / ps_myshrink  >= V_ymax) 
			return;

		 
		switch (*s) {
		case '\n':  
			xcnt = 0;
			ycnt++;
			break;
		case '\t':  
			xcnt += 8;
			break;
		case '\r':  
		case '\v':  
			break;

		case '\a':  
			(void)printf ("\a");(void)fflush ((&__iob[1]) );
			break;

		case '\b':  
			xcnt--;
			break;
		case '\f':  


			s++;
			if (!*s) return;
			if   (*s=='u') underline = 1;
			else if (*s=='n') { underline = 0; mythick = 1; }

			else if (*s=='b') { mythick = 2; }
			else if (*s=='B') { mythick = 3; }




			else if (*s=='i') { 
				s++;
				if (!*s) return;
				cc = *s-'0';
				s++;
				if (!*s) return;
				cc = cc*10+(*s-'0');
				s++;
				if (!*s) return;
				cc = cc*10+(*s-'0');
				if (   (ps_myypos  >=V_ymin) && (ps_myxpos  >=V_xmin) 
				    && (mx+((xcnt+1)*8* ps_mystretch )/ ps_myshrink  
						< V_xmax))
					 myoutchar(cc,actcolor,underline);
				xcnt++;
			}
			else {  actcolor = *s-'0';
				s++;
				if (!*s) return;
				actcolor = actcolor*10 + (*s-'0');
			}
			if (actcolor<0)          actcolor = c;
			if (actcolor>=cmap_size) actcolor = c;
			if (!colored)	         actcolor = c;
			break;
		default:  
			if (   (ps_myypos  >=V_ymin) && (ps_myxpos  >=V_xmin) 
			    && (mx+((xcnt+1)*8* ps_mystretch )/ ps_myshrink  < V_xmax))
				 myoutchar(*s,actcolor,underline);
			xcnt++;
		}
		i++;
		if (i> 20000 ) return;
		s++;
	}

	ps_myxpos  = mx + (xcnt *  8 * ps_mystretch ) / ps_myshrink ;
	ps_myypos  = my + (ycnt * 16 * ps_mystretch ) / ps_myshrink ;





}


 








int ps_stringw ; 
int ps_stringh ; 



void ps_calcstringsize (char *s)




{
	int	a,b,c;
	char	*ss;   

	b = 1;
	a = c = 0;
	ss = s;  
	while(*ss) {
		switch (*ss) {
		case '\n':  
			b++;
			if (c>a) a=c;
			c=0;
			break;
		case '\t':  
			c += 8;
			break;
		case '\r':  
		case '\v':  

		case '\a':  

			break;
		case '\b':  
			c--;
			break;
		case '\f':  


			ss++;
			if (!*ss) {
				if (c>a) a=c;
				ps_stringw  = (a*8* ps_mystretch )/ ps_myshrink ; 
				ps_stringh  = (b*16* ps_mystretch )/ ps_myshrink ; 
				return;
			} 
			if   (*ss=='u') break;
			else if (*ss=='n') break;
			else if (*ss=='b')  break; 
			else if (*ss=='B')  break;
			else if (*ss=='i') { 
				ss++;
				if (!*ss) {
					if (c>a) a=c;
					ps_stringw  =(a*8* ps_mystretch )/ ps_myshrink ; 
					ps_stringh  =(b*16* ps_mystretch )/ ps_myshrink ; 
					return;
				} 
				ss++;
				if (!*ss) {
					if (c>a) a=c;
					ps_stringw  =(a*8* ps_mystretch )/ ps_myshrink ; 
					ps_stringh  =(b*16* ps_mystretch )/ ps_myshrink ; 
					return;
				} 
				ss++;
				if (!*ss) {
					if (c>a) a=c;
					ps_stringw  =(a*8* ps_mystretch )/ ps_myshrink ; 
					ps_stringh  =(b*16* ps_mystretch )/ ps_myshrink ; 
					return;
				}
				c++; 
			}
			else {  ss++;
				if (!*ss) {
					if (c>a) a=c;
					ps_stringw  = (a*8* ps_mystretch )/ ps_myshrink ; 
					ps_stringh  = (b*16* ps_mystretch )/ ps_myshrink ; 
					return;
				}
				break;
			}
			break;
		default: c++; 
		}
		ss++;  
	}
	if (c>a) a=c;
	ps_stringw  = (a*8* ps_mystretch )/ ps_myshrink ; 
	ps_stringh  = (b*16* ps_mystretch )/ ps_myshrink ; 
}
 

 




void ps_setto (int x,int y)




{
	ps_myxpos  = x;
	ps_myypos  = y;
}


 




void ps_setshrink (int a,int b)




{
	ps_mystretch  = a;
	ps_myshrink   = b;
}


# 132 "PSdevstr.c" 2

# 1 "PSdev.h" 1
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


 

 






















 










#define PSDEV_H

 

 




void print_all_ps  (char *fn,int a,int b,int c,int d)  ;

 




# 133 "PSdevstr.c" 2



 
Technical Details
Message-ID: <9512202258.ZM4315@suede.sw.oz.au>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: 113d02,f854d00d0a522005,start
X-Google-Attributes: gid113d02,public
From: jeremy@suede.sw.oz.AU (Jeremy Fitzhardinge)
Subject: Infinite hang bug in gcc 2.7.2, sparc-solaris with -finline-functions
Date: 1995/12/20
Message-ID: <9512202258.ZM4315@suede.sw.oz.au>
X-Deja-AN: 122393814
distribution: gnu
sender: daemon@cis.ohio-state.edu
organization: GNUs Not Usenet
newsgroups: gnu.gcc.bug