Article View: gnu.gcc.bug
Article #6330Infinite hang bug in gcc 2.7.2, sparc-solaris with -finline-functions
From: Jeremy Fitzhardinge
Date: Wed, 20 Dec 1995 00:00
Date: Wed, 20 Dec 1995 00:00
6549 lines
98064 bytes
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-mailShow 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