Article View: gnu.gcc.bug
Article #1034Internal compiler error on hppa1.1-bsd.
From: Tim Theisen
Date: Mon, 31 Aug 1992 16:53
Date: Mon, 31 Aug 1992 16:53
1706 lines
49426 bytes
49426 bytes
gcc 2.2.2 encounters and internal compiler error when invoked as follows:
$ gcc -v -c -O2 spinfo.c
Reading specs from /usr/gnu/lib/gcc-lib/hppa1.1-bsd/2.2.2/specs
gcc version 2.2.2
/usr/gnu/lib/gcc-lib/hppa1.1-bsd/2.2.2/cpp -lang-c -v -undef -D__GNUC__=2 -Dhppa -Dhp9000s800 -D__hp9000s800 -Dhp9k8 -Dunix -D_HPUX_SOURCE -Dhp9000 -Dhp800 -Dspectrum -DREVARGV -D__hppa__ -D__hp9000s800__ -D__hp9000s800 -D__hp9k8__ -D__unix__ -D___HPUX_SOURCE__ -D__hp9000__ -D__hp800__ -D__spectrum__ -D__REVARGV__ -D__hppa -D__hp9000s800 -D__hp9000s800 -D__hp9k8 -D__unix -D___HPUX_SOURCE -D__hp9000 -D__hp800 -D__spectrum -D__REVARGV -D__OPTIMIZE__ spinfo.c /usr/tmp/cc019387.i
GNU CPP version 2.2.2 (hp9000s800)
/usr/gnu/lib/gcc-lib/hppa1.1-bsd/2.2.2/cc1 /usr/tmp/cc019387.i -quiet -dumpbase spinfo.c -O2 -version -o /usr/tmp/cc019387.s
GNU C version 2.2.2 (hp9000s800) compiled by GNU C version 2.2.2.
spinfo.c: In function `compute_sp_bounds':
spinfo.c:1601: internal error--insn does not satisfy its constraints:
(insn 174 164 167 (set (reg:SI 112)
(reg:SI 77)) 32 {movsi+1} (insn_list:REG_DEP_ANTI 164 (nil))
(expr_list:REG_EQUAL (const_int 15)
(nil)))
gcc: Internal compiler error: program cc1 got fatal signal 4
Here is the input file (already preprocessed by cpp):
-----------------8<--- cut here -------- spinfo.c -----------
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
typedef unsigned short ushort;
typedef struct _physadr { int r[1]; } *physadr;
typedef struct label_t {
int lbl_rp;
int lbl_sp;
int lbl_s[17];
int lbl_ss[1];
double lbl_sf[10];
} label_t;
typedef u_int space_t;
typedef struct _uquad { u_long val[2]; } u_quad_t;
typedef struct _quad { long val[2]; } quad_t;
typedef long * qaddr_t;
typedef long daddr_t;
typedef char * caddr_t;
typedef u_long ino_t;
typedef long swblk_t;
typedef short dev_t;
typedef long off_t;
typedef u_short nlink_t;
typedef u_short uid_t;
typedef u_short gid_t;
typedef short pid_t;
typedef u_short mode_t;
typedef u_long fixpt_t;
typedef unsigned long clock_t;
typedef unsigned int size_t;
typedef int ptrdiff_t;
typedef unsigned short wchar_t;
typedef int ssize_t;
typedef long time_t;
typedef long fd_mask;
typedef struct fd_set {
fd_mask fds_bits[(((256 )+(( (sizeof(fd_mask) * 8 ) )-1))/( (sizeof(fd_mask) * 8 ) )) ];
} fd_set;
char *memchr (const void *, int, size_t) ;
int memcmp (const void *, const void *, size_t) ;
void *memcpy (void *, const void *, size_t) ;
char *memmove (void *, const void *, size_t) ;
char *memset (void *, int, size_t) ;
char *strcat (char *, const char *) ;
char *strchr (const char *, int) ;
int strcmp (const char *, const char *) ;
int strcoll (const char *, const char *) ;
char *strcpy (char *, const char *) ;
size_t strcspn (const char *, const char *) ;
char *strerror (int) ;
size_t strlen (const char *) ;
char *strncat (char *, const char *, size_t) ;
int strncmp (const char *, const char *, size_t) ;
char *strncpy (char *, const char *, size_t) ;
char *strpbrk (const char *, const char *) ;
char *strrchr (const char *, int) ;
size_t strspn (const char *, const char *) ;
char *strstr (const char *, const char *) ;
char *strtok (char *, const char *) ;
size_t strxfrm (char *, const char *, size_t) ;
int bcmp (const void *, const void *, size_t) ;
void bcopy (const void *, void *, size_t) ;
void bzero (void *, size_t) ;
int ffs (int) ;
char *index (const char *, int) ;
char *memccpy (void *, const void *, int, size_t) ;
char *rindex (const char *, int) ;
int strcasecmp (const char *, const char *) ;
char *strdup (const char *) ;
void strmode (int, char *) ;
int strncasecmp (const char *, const char *, size_t) ;
char *strsep (char **, const char *) ;
void swab (const void *, void *, size_t) ;
struct flock {
short l_type;
short l_whence;
off_t l_start;
off_t l_len;
pid_t l_pid;
};
int open (const char *, int, ...) ;
int creat (const char *, mode_t) ;
int fcntl (int, int, ...) ;
int flock (int, int) ;
struct timeval {
long tv_sec;
long tv_usec;
};
struct timezone {
int tz_minuteswest;
int tz_dsttime;
};
struct itimerval {
struct timeval it_interval;
struct timeval it_value;
};
struct clockinfo {
int hz;
int tick;
int phz;
int profhz;
};
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
long tm_gmtoff;
char *tm_zone;
};
extern struct tm *gmtime(), *localtime();
extern char *asctime(), *ctime();
int adjtime (const struct timeval *, struct timeval *) ;
int getitimer (int, struct itimerval *) ;
int gettimeofday (struct timeval *, struct timezone *) ;
int setitimer (int, const struct itimerval *, struct itimerval *) ;
int settimeofday (const struct timeval *, const struct timezone *) ;
int utimes (const char *, const struct timeval *) ;
void bcopy();
void bzero();
int bcmp();
typedef unsigned char *pointer;
typedef int Bool;
typedef unsigned long Atom;
typedef unsigned long XID;
extern char *NameForAtom ();
typedef long INT32;
typedef short INT16;
typedef signed char INT8;
typedef unsigned long CARD32;
typedef unsigned short CARD16;
typedef unsigned char CARD8;
typedef unsigned long BITS32;
typedef unsigned short BITS16;
typedef unsigned char BYTE;
typedef unsigned char BOOL;
typedef struct _xSegment {
INT16 x1 , y1 , x2 , y2 ;
} xSegment;
typedef struct _xPoint {
INT16 x , y ;
} xPoint;
typedef struct _xRectangle {
INT16 x , y ;
CARD16 width , height ;
} xRectangle;
typedef struct _xArc {
INT16 x , y ;
CARD16 width , height ;
INT16 angle1 , angle2 ;
} xArc;
typedef CARD16 KeyButMask;
typedef struct {
CARD8 byteOrder;
BYTE pad;
CARD16 majorVersion , minorVersion ;
CARD16 nbytesAuthProto ;
CARD16 nbytesAuthString ;
CARD16 pad2;
} xConnClientPrefix;
typedef struct {
BOOL success;
BYTE lengthReason;
CARD16 majorVersion ,
minorVersion ;
CARD16 length ;
} xConnSetupPrefix;
typedef struct {
CARD32 release ;
CARD32 ridBase ,
ridMask ;
CARD32 motionBufferSize ;
CARD16 nbytesVendor ;
CARD16 maxRequestSize ;
CARD8 numRoots;
CARD8 numFormats;
CARD8 imageByteOrder;
CARD8 bitmapBitOrder;
CARD8 bitmapScanlineUnit,
bitmapScanlinePad;
CARD8 minKeyCode, maxKeyCode;
CARD32 pad2 ;
} xConnSetup;
typedef struct {
CARD8 depth;
CARD8 bitsPerPixel;
CARD8 scanLinePad;
CARD8 pad1;
CARD32 pad2 ;
} xPixmapFormat;
typedef struct {
CARD8 depth;
CARD8 pad1;
CARD16 nVisuals ;
CARD32 pad2 ;
} xDepth;
typedef struct {
CARD32 visualID ;
CARD8 class;
CARD8 bitsPerRGB;
CARD16 colormapEntries ;
CARD32 redMask , greenMask , blueMask ;
CARD32 pad ;
} xVisualType;
typedef struct {
CARD32 windowId ;
CARD32 defaultColormap ;
CARD32 whitePixel , blackPixel ;
CARD32 currentInputMask ;
CARD16 pixWidth , pixHeight ;
CARD16 mmWidth , mmHeight ;
CARD16 minInstalledMaps , maxInstalledMaps ;
CARD32 rootVisualID ;
CARD8 backingStore;
BOOL saveUnders;
CARD8 rootDepth;
CARD8 nDepths;
} xWindowRoot;
typedef struct {
CARD32 time ;
INT16 x , y ;
} xTimecoord;
typedef struct {
CARD8 family;
BYTE pad;
CARD16 length ;
} xHostEntry;
typedef struct {
INT16 leftSideBearing ,
rightSideBearing ,
characterWidth ,
ascent ,
descent ;
CARD16 attributes ;
} xCharInfo;
typedef struct {
CARD32 name ;
CARD32 value ;
} xFontProp;
typedef struct {
CARD8 len;
INT8 delta;
} xTextElt;
typedef struct {
CARD32 pixel ;
CARD16 red , green , blue ;
CARD8 flags;
CARD8 pad;
} xColorItem;
typedef struct {
CARD16 red , green , blue , pad ;
} xrgb;
typedef CARD8 KEYCODE;
typedef struct {
BYTE type;
BYTE errorCode;
CARD16 sequenceNumber ;
CARD32 resourceID ;
CARD16 minorCode ;
CARD8 majorCode;
BYTE pad1;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
CARD32 pad7 ;
} xError;
typedef struct {
CARD8 reqType;
CARD8 data;
CARD16 length ;
} xReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 id ;
} xResourceReq;
typedef struct {
CARD8 reqType;
CARD8 depth;
CARD16 length ;
CARD32 wid , parent ;
INT16 x , y ;
CARD16 width , height , borderWidth ;
CARD16 class ;
CARD32 visual ;
CARD32 mask ;
} xCreateWindowReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 window ;
CARD32 valueMask ;
} xChangeWindowAttributesReq;
typedef struct {
CARD8 reqType;
BYTE mode;
CARD16 length ;
CARD32 window ;
} xChangeSaveSetReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 window , parent ;
INT16 x , y ;
} xReparentWindowReq;
typedef struct {
CARD8 reqType;
CARD8 pad;
CARD16 length ;
CARD32 window ;
CARD16 mask ;
CARD16 pad2 ;
} xConfigureWindowReq;
typedef struct {
CARD8 reqType;
CARD8 direction;
CARD16 length ;
CARD32 window ;
} xCirculateWindowReq;
typedef struct {
CARD8 reqType;
BOOL onlyIfExists;
CARD16 length ;
CARD16 nbytes ;
CARD16 pad ;
} xInternAtomReq;
typedef struct {
CARD8 reqType;
CARD8 mode;
CARD16 length ;
CARD32 window ;
CARD32 property , type ;
CARD8 format;
BYTE pad[3];
CARD32 nUnits ;
} xChangePropertyReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 window ;
CARD32 property ;
} xDeletePropertyReq;
typedef struct {
CARD8 reqType;
BOOL delete;
CARD16 length ;
CARD32 window ;
CARD32 property , type ;
CARD32 longOffset ;
CARD32 longLength ;
} xGetPropertyReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 window ;
CARD32 selection ;
CARD32 time ;
} xSetSelectionOwnerReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 requestor ;
CARD32 selection , target , property ;
CARD32 time ;
} xConvertSelectionReq;
typedef struct {
CARD8 reqType;
BOOL ownerEvents;
CARD16 length ;
CARD32 grabWindow ;
CARD16 eventMask ;
BYTE pointerMode, keyboardMode;
CARD32 confineTo ;
CARD32 cursor ;
CARD32 time ;
} xGrabPointerReq;
typedef struct {
CARD8 reqType;
BOOL ownerEvents;
CARD16 length ;
CARD32 grabWindow ;
CARD16 eventMask ;
BYTE pointerMode, keyboardMode;
CARD32 confineTo ;
CARD32 cursor ;
CARD8 button;
BYTE pad;
CARD16 modifiers ;
} xGrabButtonReq;
typedef struct {
CARD8 reqType;
CARD8 button;
CARD16 length ;
CARD32 grabWindow ;
CARD16 modifiers ;
CARD16 pad ;
} xUngrabButtonReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 cursor ;
CARD32 time ;
CARD16 eventMask ;
CARD16 pad2 ;
} xChangeActivePointerGrabReq;
typedef struct {
CARD8 reqType;
BOOL ownerEvents;
CARD16 length ;
CARD32 grabWindow ;
CARD32 time ;
BYTE pointerMode, keyboardMode;
CARD16 pad ;
} xGrabKeyboardReq;
typedef struct {
CARD8 reqType;
BOOL ownerEvents;
CARD16 length ;
CARD32 grabWindow ;
CARD16 modifiers ;
CARD8 key;
BYTE pointerMode, keyboardMode;
BYTE pad1, pad2, pad3;
} xGrabKeyReq;
typedef struct {
CARD8 reqType;
CARD8 key;
CARD16 length ;
CARD32 grabWindow ;
CARD16 modifiers ;
CARD16 pad ;
} xUngrabKeyReq;
typedef struct {
CARD8 reqType;
CARD8 mode;
CARD16 length ;
CARD32 time ;
} xAllowEventsReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 window ;
CARD32 start , stop ;
} xGetMotionEventsReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 srcWid , dstWid ;
INT16 srcX , srcY ;
} xTranslateCoordsReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 srcWid , dstWid ;
INT16 srcX , srcY ;
CARD16 srcWidth , srcHeight ;
INT16 dstX , dstY ;
} xWarpPointerReq;
typedef struct {
CARD8 reqType;
CARD8 revertTo;
CARD16 length ;
CARD32 focus ;
CARD32 time ;
} xSetInputFocusReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 fid ;
CARD16 nbytes ;
BYTE pad1, pad2;
} xOpenFontReq;
typedef struct {
CARD8 reqType;
BOOL oddLength;
CARD16 length ;
CARD32 fid ;
} xQueryTextExtentsReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD16 maxNames ;
CARD16 nbytes ;
} xListFontsReq;
typedef xListFontsReq xListFontsWithInfoReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD16 nFonts ;
BYTE pad1, pad2;
} xSetFontPathReq;
typedef struct {
CARD8 reqType;
CARD8 depth;
CARD16 length ;
CARD32 pid ;
CARD32 drawable ;
CARD16 width , height ;
} xCreatePixmapReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 gc ;
CARD32 drawable ;
CARD32 mask ;
} xCreateGCReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 gc ;
CARD32 mask ;
} xChangeGCReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 srcGC , dstGC ;
CARD32 mask ;
} xCopyGCReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 gc ;
CARD16 dashOffset ;
CARD16 nDashes ;
} xSetDashesReq;
typedef struct {
CARD8 reqType;
BYTE ordering;
CARD16 length ;
CARD32 gc ;
INT16 xOrigin , yOrigin ;
} xSetClipRectanglesReq;
typedef struct {
CARD8 reqType;
BOOL exposures;
CARD16 length ;
CARD32 window ;
INT16 x , y ;
CARD16 width , height ;
} xClearAreaReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 srcDrawable , dstDrawable ;
CARD32 gc ;
INT16 srcX , srcY , dstX , dstY ;
CARD16 width , height ;
} xCopyAreaReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 srcDrawable , dstDrawable ;
CARD32 gc ;
INT16 srcX , srcY , dstX , dstY ;
CARD16 width , height ;
CARD32 bitPlane ;
} xCopyPlaneReq;
typedef struct {
CARD8 reqType;
BYTE coordMode;
CARD16 length ;
CARD32 drawable ;
CARD32 gc ;
} xPolyPointReq;
typedef xPolyPointReq xPolyLineReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 drawable ;
CARD32 gc ;
} xPolySegmentReq;
typedef xPolySegmentReq xPolyArcReq;
typedef xPolySegmentReq xPolyRectangleReq;
typedef xPolySegmentReq xPolyFillRectangleReq;
typedef xPolySegmentReq xPolyFillArcReq;
typedef struct _FillPolyReq {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 drawable ;
CARD32 gc ;
BYTE shape;
BYTE coordMode;
CARD16 pad1 ;
} xFillPolyReq;
typedef struct _PutImageReq {
CARD8 reqType;
CARD8 format;
CARD16 length ;
CARD32 drawable ;
CARD32 gc ;
CARD16 width , height ;
INT16 dstX , dstY ;
CARD8 leftPad;
CARD8 depth;
CARD16 pad ;
} xPutImageReq;
typedef struct {
CARD8 reqType;
CARD8 format;
CARD16 length ;
CARD32 drawable ;
INT16 x , y ;
CARD16 width , height ;
CARD32 planeMask ;
} xGetImageReq;
typedef struct {
CARD8 reqType;
CARD8 pad;
CARD16 length ;
CARD32 drawable ;
CARD32 gc ;
INT16 x , y ;
} xPolyTextReq;
typedef xPolyTextReq xPolyText8Req;
typedef xPolyTextReq xPolyText16Req;
typedef struct {
CARD8 reqType;
BYTE nChars;
CARD16 length ;
CARD32 drawable ;
CARD32 gc ;
INT16 x , y ;
} xImageTextReq;
typedef xImageTextReq xImageText8Req;
typedef xImageTextReq xImageText16Req;
typedef struct {
CARD8 reqType;
BYTE alloc;
CARD16 length ;
CARD32 mid ;
CARD32 window ;
CARD32 visual ;
} xCreateColormapReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 mid ;
CARD32 srcCmap ;
} xCopyColormapAndFreeReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 cmap ;
CARD16 red , green , blue ;
CARD16 pad2 ;
} xAllocColorReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 cmap ;
CARD16 nbytes ;
BYTE pad1, pad2;
} xAllocNamedColorReq;
typedef struct {
CARD8 reqType;
BOOL contiguous;
CARD16 length ;
CARD32 cmap ;
CARD16 colors , planes ;
} xAllocColorCellsReq;
typedef struct {
CARD8 reqType;
BOOL contiguous;
CARD16 length ;
CARD32 cmap ;
CARD16 colors , red , green , blue ;
} xAllocColorPlanesReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 cmap ;
CARD32 planeMask ;
} xFreeColorsReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 cmap ;
} xStoreColorsReq;
typedef struct {
CARD8 reqType;
CARD8 flags;
CARD16 length ;
CARD32 cmap ;
CARD32 pixel ;
CARD16 nbytes ;
BYTE pad1, pad2;
} xStoreNamedColorReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 cmap ;
} xQueryColorsReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 cmap ;
CARD16 nbytes ;
BYTE pad1, pad2;
} xLookupColorReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 cid ;
CARD32 source , mask ;
CARD16 foreRed , foreGreen , foreBlue ;
CARD16 backRed , backGreen , backBlue ;
CARD16 x , y ;
} xCreateCursorReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 cid ;
CARD32 source , mask ;
CARD16 sourceChar , maskChar ;
CARD16 foreRed , foreGreen , foreBlue ;
CARD16 backRed , backGreen , backBlue ;
} xCreateGlyphCursorReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 cursor ;
CARD16 foreRed , foreGreen , foreBlue ;
CARD16 backRed , backGreen , backBlue ;
} xRecolorCursorReq;
typedef struct {
CARD8 reqType;
CARD8 class;
CARD16 length ;
CARD32 drawable ;
CARD16 width , height ;
} xQueryBestSizeReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD16 nbytes ;
BYTE pad1, pad2;
} xQueryExtensionReq;
typedef struct {
CARD8 reqType;
CARD8 numKeyPerModifier;
CARD16 length ;
} xSetModifierMappingReq;
typedef struct {
CARD8 reqType;
CARD8 nElts;
CARD16 length ;
} xSetPointerMappingReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD8 firstKeyCode;
CARD8 count;
CARD16 pad1 ;
} xGetKeyboardMappingReq;
typedef struct {
CARD8 reqType;
CARD8 keyCodes;
CARD16 length ;
CARD8 firstKeyCode;
CARD8 keySymsPerKeyCode;
CARD16 pad1 ;
} xChangeKeyboardMappingReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 mask ;
} xChangeKeyboardControlReq;
typedef struct {
CARD8 reqType;
INT8 percent;
CARD16 length ;
} xBellReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
INT16 accelNum , accelDenum ;
INT16 threshold ;
BOOL doAccel, doThresh;
} xChangePointerControlReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
INT16 timeout , interval ;
BYTE preferBlank, allowExpose;
CARD16 pad2 ;
} xSetScreenSaverReq;
typedef struct {
CARD8 reqType;
BYTE mode;
CARD16 length ;
CARD8 hostFamily;
BYTE pad;
CARD16 hostLength ;
} xChangeHostsReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
} xListHostsReq;
typedef struct {
CARD8 reqType;
BYTE mode;
CARD16 length ;
} xChangeModeReq;
typedef xChangeModeReq xSetAccessControlReq;
typedef xChangeModeReq xSetCloseDownModeReq;
typedef xChangeModeReq xForceScreenSaverReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 window ;
CARD16 nAtoms ;
INT16 nPositions ;
} xRotatePropertiesReq;
typedef unsigned long fsBitmapFormat;
typedef unsigned long fsBitmapFormatMask;
typedef struct _Font *FontPtr;
typedef struct _FontInfo *FontInfoPtr;
typedef struct _FontProp *FontPropPtr;
typedef struct _ExtentInfo *ExtentInfoPtr;
typedef struct _FontPathElement *FontPathElementPtr;
typedef struct _CharInfo *CharInfoPtr;
typedef struct _FontNames *FontNamesPtr;
typedef struct _FontResolution *FontResolutionPtr;
typedef int DrawDirection;
typedef char *closure;
extern int StartListFontsWithInfo( );
extern int ListFonts( );
extern FontNamesPtr MakeFontNamesRecord( );
extern void FreeFontNames();
extern int AddFontNamesName();
extern int FontToFSError();
extern FontResolutionPtr GetClientResolution();
typedef struct _FontPatternCache *FontPatternCachePtr;
extern FontPatternCachePtr MakeFontPatternCache ();
extern void FreeFontPatternCache ();
extern void EmtpyFontPatternCache ();
extern void CacheFontPattern ();
extern FontPtr FindCachedFontPattern ();
extern void RemoveCachedFontPattern ();
typedef enum {
Linear8Bit, TwoD8Bit, Linear16Bit, TwoD16Bit
} FontEncoding;
typedef struct _FontProp {
long name;
long value;
} FontPropRec;
typedef struct _FontResolution {
unsigned short x_resolution;
unsigned short y_resolution;
unsigned short point_size;
} FontResolutionRec;
typedef struct _ExtentInfo {
DrawDirection drawDirection;
int fontAscent;
int fontDescent;
int overallAscent;
int overallDescent;
int overallWidth;
int overallLeft;
int overallRight;
} ExtentInfoRec;
typedef struct _CharInfo {
xCharInfo metrics;
char *bits;
} CharInfoRec;
typedef struct _FontInfo {
unsigned short firstCol;
unsigned short lastCol;
unsigned short firstRow;
unsigned short lastRow;
unsigned short defaultCh;
unsigned int noOverlap:1;
unsigned int terminalFont:1;
unsigned int constantMetrics:1;
unsigned int constantWidth:1;
unsigned int inkInside:1;
unsigned int inkMetrics:1;
unsigned int allExist:1;
unsigned int drawDirection:2;
unsigned int cachable:1;
unsigned int anamorphic:1;
short maxOverlap;
short pad;
xCharInfo maxbounds;
xCharInfo minbounds;
xCharInfo ink_maxbounds;
xCharInfo ink_minbounds;
short fontAscent;
short fontDescent;
int nprops;
FontPropPtr props;
char *isStringProp;
} FontInfoRec;
typedef struct _Font {
int refcnt;
FontInfoRec info;
char bit;
char byte;
char glyph;
char scan;
fsBitmapFormat format;
int (*get_glyphs) ( );
int (*get_metrics) ( );
void (*unload_font) ( );
FontPathElementPtr fpe;
pointer svrPrivate;
pointer fontPrivate;
pointer fpePrivate;
int maxPrivate;
pointer *devPrivates;
} FontRec;
extern Bool _FontSetNewPrivate ( );
extern int AllocateFontPrivateIndex ();
typedef struct _FontNames {
int nnames;
int size;
int *length;
char **names;
} FontNamesRec;
typedef struct _FontPathElement {
int name_length;
char *name;
int type;
int refcount;
pointer private;
} FontPathElementRec;
typedef struct _FPEFunctions {
int (*name_check) ( );
int (*init_fpe) ( );
int (*reset_fpe) ( );
int (*free_fpe) ( );
int (*open_font) (
);
int (*close_font) ( );
int (*list_fonts) (
);
int (*start_list_fonts_with_info) (
);
int (*list_next_font_with_info) (
);
int (*wakeup_fpe) ( );
int (*client_died) ( );
} FPEFunctionsRec, FPEFunctions;
extern int InitFPETypes();
typedef struct _FontEntry *FontEntryPtr;
typedef struct _FontTable *FontTablePtr;
typedef struct _FontName *FontNamePtr;
typedef struct _FontScaled *FontScaledPtr;
typedef struct _FontScalableExtra *FontScalableExtraPtr;
typedef struct _FontScalableEntry *FontScalableEntryPtr;
typedef struct _FontScaleAliasEntry *FontScaleAliasEntryPtr;
typedef struct _FontBitmapEntry *FontBitmapEntryPtr;
typedef struct _FontAliasEntry *FontAliasEntryPtr;
typedef struct _FontBCEntry *FontBCEntryPtr;
typedef struct _FontDirectory *FontDirectoryPtr;
typedef struct _FontRenderer *FontRendererPtr;
extern FontEntryPtr FontFileFindNameInDir ();
extern FontDirectoryPtr FontFileMakeDir ();
extern FontRendererPtr FontFileMatchRenderer ();
extern char *SaveString ();
extern FontScaledPtr FontFileFindScaledInstance ();
typedef struct _FontScalable {
int pixel,
point,
x,
y,
width;
} FontScalableRec, *FontScalablePtr;
extern Bool FontParseXLFDName();
typedef struct _FontName {
char *name;
short length;
short ndashes;
} FontNameRec;
typedef struct _FontScaled {
FontScalableRec vals;
FontEntryPtr bitmap;
FontPtr pFont;
} FontScaledRec;
typedef struct _FontScalableExtra {
FontScalableRec defaults;
int numScaled;
int sizeScaled;
FontScaledPtr scaled;
pointer private;
} FontScalableExtraRec;
typedef struct _FontScalableEntry {
FontRendererPtr renderer;
char *fileName;
FontScalableExtraPtr extra;
} FontScalableEntryRec;
typedef struct _FontScaleAliasEntry {
char *resolved;
} FontScaleAliasEntryRec;
typedef struct _FontBitmapEntry {
FontRendererPtr renderer;
char *fileName;
FontPtr pFont;
} FontBitmapEntryRec;
typedef struct _FontAliasEntry {
char *resolved;
} FontAliasEntryRec;
typedef struct _FontBCEntry {
FontScalableRec vals;
FontEntryPtr entry;
} FontBCEntryRec;
typedef struct _FontEntry {
FontNameRec name;
int type;
union _FontEntryParts {
FontScalableEntryRec scalable;
FontBitmapEntryRec bitmap;
FontAliasEntryRec alias;
FontBCEntryRec bc;
} u;
} FontEntryRec;
typedef struct _FontTable {
int used;
int size;
FontEntryPtr entries;
Bool sorted;
} FontTableRec;
typedef struct _FontDirectory {
char *directory;
unsigned long dir_mtime;
unsigned long alias_mtime;
FontTableRec scalable;
FontTableRec nonScalable;
} FontDirectoryRec;
typedef struct _FontRenderer {
char *fileSuffix;
int fileSuffixLen;
int (*OpenBitmap)( );
int (*OpenScalable)( );
int (*GetInfoBitmap)( );
int (*GetInfoScalable)( );
int number;
} FontRendererRec;
typedef struct _FontRenders {
int number;
FontRendererPtr *renderers;
} FontRenderersRec, *FontRenderersPtr;
typedef struct _BitmapInstance {
FontScalableRec vals;
FontBitmapEntryPtr bitmap;
} BitmapInstanceRec, *BitmapInstancePtr;
typedef struct _BitmapScalablePrivate {
int numInstances;
BitmapInstancePtr instances;
} BitmapScalablePrivateRec, *BitmapScalablePrivatePtr;
typedef struct _BitmapSources {
FontPathElementPtr *fpe;
int size;
int count;
} BitmapSourcesRec, *BitmapSourcesPtr;
extern BitmapSourcesRec FontFileBitmapSources;
extern struct _iobuf {
int _cnt;
char *_ptr;
char *_base;
int _bufsiz;
short _flag;
char _file;
} _iob[];
struct _iobuf *fopen();
struct _iobuf *fdopen();
struct _iobuf *freopen();
struct _iobuf *popen();
long ftell();
char *fgets();
char *gets();
typedef signed char fix7;
typedef double real;
typedef unsigned char
ufix8,
boolean;
typedef short fix15;
typedef unsigned short
ufix16;
typedef long fix31;
typedef unsigned long
ufix32;
typedef
struct buff_tag
{
ufix8 *org;
ufix32 no_bytes;
}
buff_t;
typedef struct constr_tag
{
ufix8 *org;
ufix16 font_id;
fix15 xppo;
fix15 yppo;
boolean font_id_valid;
boolean data_valid;
boolean active;
}
constr_t;
typedef struct kern_tag
{
ufix8 *tkorg;
ufix8 *pkorg;
fix15 no_tracks;
fix15 no_pairs;
}
kern_t;
typedef struct specs_tag
{
buff_t *pfont;
fix31 xxmult;
fix31 xymult;
fix31 xoffset;
fix31 yxmult;
fix31 yymult;
fix31 yoffset;
ufix32 flags;
void *out_info;
}
specs_t;
typedef struct tcb_tag
{
fix15 xxmult;
fix15 xymult;
fix31 xoffset;
fix15 yxmult;
fix15 yymult;
fix31 yoffset;
fix15 xppo;
fix15 yppo;
fix15 xpos;
fix15 ypos;
ufix16 xtype;
ufix16 ytype;
ufix16 xmode;
ufix16 ymode;
fix15 mirror;
}
tcb_t;
typedef struct point_tag
{
fix15 x;
fix15 y;
}
point_t;
typedef struct band_tag
{
fix15 band_max;
fix15 band_min;
fix15 band_array_offset;
fix15 band_floor;
fix15 band_ceiling;
} band_t;
typedef struct bbox_tag
{
fix31 xmin;
fix31 xmax;
fix31 ymin;
fix31 ymax;
} bbox_t;
typedef ufix16 cdr_t;
typedef struct speedo_global_data
{
kern_t kern;
point_t Psw;
fix15 cb_offset;
point_t P0;
fix15 x_orus;
fix15 y_orus;
fix15 x_pix;
fix15 y_pix;
ufix8 x_int;
ufix8 y_int;
band_t y_band;
struct set_width_tag
{
fix31 x;
fix31 y;
} set_width;
boolean first_pass;
boolean extents_running;
fix15 x0_spxl;
fix15 y0_spxl;
fix15 y_pxl;
fix15 car[1000 ];
cdr_t cdr[1000 ];
ufix8 inttype[1000 ];
ufix8 leftedge;
ufix16 fracpix;
fix15 bmap_xmin;
fix15 bmap_xmax;
fix15 bmap_ymin;
fix15 bmap_ymax;
fix15 no_y_lists;
fix15 first_offset;
fix15 next_offset;
boolean intercept_oflo;
fix15 xmin;
fix15 xmax;
fix15 ymin;
fix15 ymax;
fix15 no_x_lists;
band_t x_band;
boolean x_scan_active;
ufix16 key32;
ufix8 key4;
ufix8 key6;
ufix8 key7;
ufix8 key8;
buff_t font;
buff_t *pfont;
fix31 font_buff_size;
ufix8 *pchar_dir;
fix15 first_char_idx;
fix15 no_chars_avail;
fix15 orus_per_em;
fix15 metric_resolution;
tcb_t tcb0;
boolean specs_valid;
fix15 depth_adj;
boolean curves_out;
fix15 output_mode;
fix15 thresh;
boolean normal;
fix15 multshift;
fix15 pixshift;
fix15 poshift;
fix15 mpshift;
fix31 multrnd;
fix15 pixrnd;
fix31 mprnd;
fix15 pixfix;
fix15 onepix;
boolean (*init_out)();
boolean (*begin_char)();
void (*begin_sub_char)();
void (*begin_contour)();
void (*curve)();
void (*line)();
void (*end_contour)();
void (*end_sub_char)();
boolean (*end_char)();
specs_t *pspecs;
specs_t specs;
ufix8 *font_org;
ufix8 *hdr2_org;
tcb_t tcb;
ufix8 Y_edge_org;
ufix8 Y_int_org;
fix31 rnd_xmin;
fix15 orus[ 256 ];
fix15 pix[ 256 ];
fix15 mult[ 256 ];
fix31 offset[ 256 ];
fix15 no_X_orus;
fix15 no_Y_orus;
ufix16 Y_constr_org;
constr_t constr;
boolean c_act[ 750 ];
fix15 c_pix[ 750 ];
boolean squeezing_compound;
fix31 clip_xmax;
fix31 clip_ymax;
fix31 clip_xmin;
fix31 clip_ymin;
} SPEEDO_GLOBALS;
extern SPEEDO_GLOBALS sp_globals;
boolean sp_make_char();
ufix16 sp_get_char_id();
fix31 sp_get_char_width();
fix15 sp_get_track_kern();
fix31 sp_get_pair_kern();
boolean sp_get_char_bbox();
static boolean sp_make_simp_char();
static boolean sp_make_comp_char();
static ufix8 *sp_get_char_org();
static fix15 sp_get_posn_arg();
static fix15 sp_get_scale_arg();
ufix8 *sp_read_bbox();
void sp_proc_outl_data();
static void sp_split_curve();
static ufix8 *sp_get_args();
boolean sp_init_black();
boolean sp_begin_char_black();
void sp_begin_contour_black();
void sp_line_black();
boolean sp_end_char_black();
static void sp_add_intercept_black();
static void sp_proc_intercepts_black();
void sp_init_char_out();
void sp_begin_sub_char_out();
void sp_curve_out();
void sp_end_contour_out();
void sp_end_sub_char_out();
void sp_init_intercepts_out();
void sp_restart_intercepts_out();
void sp_set_first_band_out();
void sp_reduce_band_size_out();
boolean sp_next_band_out();
void sp_reset();
void sp_set_key();
ufix16 sp_get_cust_no();
boolean sp_set_specs();
void sp_type_tcb();
static void sp_setup_tcb();
static fix15 sp_setup_mult();
static fix31 sp_setup_offset();
static boolean sp_setup_consts();
fix31 sp_read_long();
fix15 sp_read_word_u();
void sp_init_tcb();
void sp_scale_tcb();
ufix8 *sp_plaid_tcb();
ufix8 *sp_skip_interpolation_table();
ufix8 *sp_skip_control_zone();
static void sp_constr_update();
ufix8 *sp_read_oru_table();
static ufix8 *sp_setup_pix_table();
static ufix8 *sp_setup_int_table();
void sp_open_bitmap();
void sp_set_bitmap_bits();
void sp_close_bitmap();
buff_t *sp_load_char_data();
boolean sp_init_screen();
boolean sp_begin_char_screen();
void sp_begin_contour_screen();
void sp_line_screen();
void sp_curve_screen();
void sp_scan_curve_screen();
void sp_vert_line_screen();
void sp_end_contour_screen();
boolean sp_end_char_screen();
static void sp_add_intercept_screen();
static void sp_proc_intercepts_screen();
boolean sp_init_outline();
boolean sp_begin_char_outline();
void sp_begin_sub_char_outline();
void sp_begin_contour_outline();
void sp_curve_outline();
void sp_line_outline();
void sp_end_contour_outline();
void sp_end_sub_char_outline();
boolean sp_end_char_outline();
boolean sp_init_2d();
boolean sp_begin_char_2d();
void sp_begin_contour_2d();
void sp_line_2d();
boolean sp_end_char_2d();
static void sp_add_intercept_2d();
static void sp_proc_intercepts_2d();
static void sp_draw_vector_to_2d();
typedef struct _sp_master {
FontEntryPtr entry;
struct _iobuf *fp;
char *fname;
ufix8 *f_buffer;
ufix8 *c_buffer;
char *copyright;
ufix8 *key;
buff_t font;
buff_t char_data;
ufix16 mincharsize;
int first_char_id;
int num_chars;
int max_id;
int state;
int refcount;
int *enc;
int enc_size;
} SpeedoMasterFontRec, *SpeedoMasterFontPtr;
typedef struct _cur_font_stats {
fsBitmapFormat format;
ufix16 char_index;
ufix16 char_id;
fix15 bit_width,
bit_height;
fix15 cur_y;
int bpr;
fix15 last_y;
int trunc;
pointer bp;
int scanpad;
} CurrentFontValuesRec, *CurrentFontValuesPtr;
typedef struct _sp_font {
struct _sp_master *master;
specs_t specs;
FontEntryPtr entry;
FontScalableRec vals;
CharInfoPtr encoding;
CharInfoPtr pDefault;
pointer bitmaps;
} SpeedoFontRec, *SpeedoFontPtr;
extern SpeedoFontPtr cur_spf;
extern int open_sp_font();
extern void close_sp_font();
extern void close_master_file();
extern void sp_reset_master();
extern void SpeedoErr();
extern void make_sp_standard_props();
extern void make_sp_header();
extern void compute_sp_bounds();
extern void compute_sp_props();
extern int build_all_sp_bitmaps();
extern unsigned long compute_sp_data_size();
extern int bics_map[];
extern int bics_map_size;
enum scaleType {
atom, pixel_size, point_size, resolution_x, resolution_y, average_width,
scaledX, scaledY, unscaled, scaledXoverY, uncomputed
};
typedef struct _fontProp {
char *name;
long atom;
enum scaleType type;
} fontProp;
static fontProp fontNamePropTable[] = {
"FOUNDRY", 0, atom,
"FAMILY_NAME", 0, atom,
"WEIGHT_NAME", 0, atom,
"SLANT", 0, atom,
"SETWIDTH_NAME", 0, atom,
"ADD_STYLE_NAME", 0, atom,
"PIXEL_SIZE", 0, pixel_size,
"POINT_SIZE", 0, point_size,
"RESOLUTION_X", 0, resolution_x,
"RESOLUTION_Y", 0, resolution_y,
"SPACING", 0, atom,
"AVERAGE_WIDTH", 0, average_width,
"CHARSET_REGISTRY", 0, atom,
"CHARSET_ENCODING", 0, atom,
};
static fontProp extraProps[] = {
"FONT", 0, atom,
"COPYRIGHT", 0, atom,
};
void
make_sp_standard_props()
{
int i;
fontProp *t;
i = sizeof(fontNamePropTable) / sizeof(fontProp);
for (t = fontNamePropTable; i; i--, t++)
t->atom = MakeAtom(t->name, (unsigned) strlen(t->name), 1 );
i = sizeof(extraProps) / sizeof(fontProp);
for (t = extraProps; i; i--, t++)
t->atom = MakeAtom(t->name, (unsigned) strlen(t->name), 1 );
}
void
make_sp_header(spf, pinfo)
SpeedoFontPtr spf;
FontInfoPtr pinfo;
{
int pixel_size;
SpeedoMasterFontPtr spmf = spf->master;
pinfo->firstCol = spmf->first_char_id & 0xff;
pinfo->firstRow = spmf->first_char_id >> 8;
pinfo->lastCol = spmf->max_id & 0xff;
pinfo->lastRow = spmf->max_id >> 8;
pinfo->defaultCh = 0;
pinfo->inkMetrics = 0;
pinfo->allExist = 0;
pinfo->drawDirection = 0 ;
pinfo->cachable = 1;
pinfo->anamorphic = 0;
if (spf->specs.xxmult != spf->specs.yymult)
pinfo->anamorphic = 1 ;
pixel_size = spf->vals.pixel * 120 / 100;
pinfo->fontAscent = pixel_size * 764 / 1000;
pinfo->fontDescent = pixel_size - pinfo->fontAscent;
}
static void
adjust_min_max(minc, maxc, tmp)
xCharInfo *minc,
*maxc,
*tmp;
{
if (minc->ascent > ( tmp)->ascent) minc->ascent = ( tmp)->ascent; if (maxc->ascent < ( tmp)->ascent) maxc->ascent = ( tmp)->ascent; ;
if (minc->descent > ( tmp)->descent) minc->descent = ( tmp)->descent; if (maxc->descent < ( tmp)->descent) maxc->descent = ( tmp)->descent; ;
if (minc->leftSideBearing > ( tmp)->leftSideBearing) minc->leftSideBearing = ( tmp)->leftSideBearing; if (maxc->leftSideBearing < ( tmp)->leftSideBearing) maxc->leftSideBearing = ( tmp)->leftSideBearing; ;
if (minc->rightSideBearing > ( tmp)->rightSideBearing) minc->rightSideBearing = ( tmp)->rightSideBearing; if (maxc->rightSideBearing < ( tmp)->rightSideBearing) maxc->rightSideBearing = ( tmp)->rightSideBearing; ;
if (minc->characterWidth > ( tmp)->characterWidth) minc->characterWidth = ( tmp)->characterWidth; if (maxc->characterWidth < ( tmp)->characterWidth) maxc->characterWidth = ( tmp)->characterWidth; ;
}
void
compute_sp_bounds(spf, pinfo, flags)
SpeedoFontPtr spf;
FontInfoPtr pinfo;
unsigned long flags;
{
int i,
id,
index,
maxOverlap,
overlap;
xCharInfo minchar,
maxchar,
tmpchar;
bbox_t bbox;
fix31 width;
double pix_width,
total_width = 0.0;
SpeedoMasterFontPtr spmf = spf->master;
int firstChar;
firstChar = spmf->first_char_id;
minchar.ascent = minchar.descent =
minchar.leftSideBearing = minchar.rightSideBearing =
minchar.characterWidth = 32767;
minchar.attributes = 0;
maxchar.ascent = maxchar.descent =
maxchar.leftSideBearing = maxchar.rightSideBearing =
maxchar.characterWidth = -32767;
maxchar.attributes = 0;
maxOverlap = -32767;
for (i = 0; i < spmf->num_chars; i++) {
index = spmf->enc[i * 2 + 1];
width = sp_get_char_width(index);
pix_width = width * (spf->specs.xxmult / 65536L) +
((ufix32) width * ((ufix32) spf->specs.xxmult & 0xffff))
/ 65536L;
width = (pix_width * 720L) / (spf->specs.yymult);
pix_width /= 65536L;
(void) sp_get_char_bbox(index, &bbox);
bbox.ymax = (bbox.ymax + 32768L) >> 16;
bbox.ymin = (bbox.ymin + 32768L) >> 16;
bbox.xmin = (bbox.xmin + 32768L) >> 16;
bbox.xmax = (bbox.xmax + 32768L) >> 16;
tmpchar.ascent = bbox.ymax;
tmpchar.descent = -bbox.ymin;
tmpchar.leftSideBearing = bbox.xmin;
tmpchar.rightSideBearing = bbox.xmax;
tmpchar.characterWidth = (int) (pix_width + 0.5);
tmpchar.attributes = 0;
adjust_min_max(&minchar, &maxchar, &tmpchar);
overlap = tmpchar.rightSideBearing - tmpchar.characterWidth;
if (maxOverlap < overlap)
maxOverlap = overlap;
total_width += pix_width;
if (flags & 0x1 ) {
id = spmf->enc[i * 2] - firstChar;
;
spf->encoding[id].metrics = tmpchar;
}
}
spf->vals.width = total_width / spmf->num_chars * 10;
pinfo->maxbounds = maxchar;
pinfo->minbounds = minchar;
pinfo->ink_maxbounds = maxchar;
pinfo->ink_minbounds = minchar;
pinfo->maxOverlap = maxOverlap;
}
void
compute_sp_props(spf, fontname, pinfo)
SpeedoFontPtr spf;
char *fontname;
FontInfoPtr pinfo;
{
FontPropPtr pp;
int i,
nprops;
fontProp *fpt;
char *is_str;
char *ptr1,
*ptr2;
nprops = pinfo->nprops = ((sizeof(fontNamePropTable) / sizeof(fontProp)) + (sizeof(extraProps) / sizeof(fontProp)) ) ;
pinfo->isStringProp = (char *) Xalloc ((unsigned) sizeof(char) * nprops) ;
pinfo->props = (FontPropPtr) Xalloc ((unsigned) sizeof(FontPropRec) * nprops) ;
if (!pinfo->isStringProp || !pinfo->props) {
Xfree ((pointer) pinfo->isStringProp) ;
pinfo->isStringProp = (char *) 0;
Xfree ((pointer) pinfo->props) ;
pinfo->props = (FontPropPtr) 0;
return;
}
bzero(pinfo->isStringProp, (sizeof(char) * nprops));
ptr2 = fontname;
for (i = (sizeof(fontNamePropTable) / sizeof(fontProp)) , pp = pinfo->props, fpt = fontNamePropTable,
is_str = pinfo->isStringProp;
i;
i--, pp++, fpt++, is_str++) {
ptr1 = ptr2 + 1;
if (*ptr1 == '-')
ptr2 = ptr1;
else {
if (i > 1)
ptr2 = index(ptr1 + 1, '-');
else
ptr2 = index(ptr1 + 1, '\0');
}
pp->name = fpt->atom;
switch (fpt->type) {
case atom:
*is_str = 1 ;
pp->value = MakeAtom(ptr1, ptr2 - ptr1, 1 );
break;
case pixel_size:
pp->value = spf->vals.pixel;
break;
case point_size:
pp->value = spf->vals.point;
break;
case resolution_x:
pp->value = spf->vals.x;
break;
case resolution_y:
pp->value = spf->vals.y;
break;
case average_width:
pp->value = spf->vals.width;
break;
}
}
for (i = 0, fpt = extraProps; i < (sizeof(extraProps) / sizeof(fontProp)) ; i++, is_str++, pp++, fpt++) {
pp->name = fpt->atom;
switch (i) {
case 0 :
*is_str = 1 ;
pp->value = MakeAtom(fontname, strlen(fontname), 1 );
break;
case 1 :
*is_str = 1 ;
pp->value = MakeAtom(spf->master->copyright,
strlen(spf->master->copyright), 1 );
break;
}
}
}
-------------------------------------------------------------
Good Luck! ...Tim
Tim Theisen Systems Programmer
Internet: tim@cs.wisc.edu Department of Computer Sciences
UUCP: uwvax!tim University of Wisconsin-Madison
Phone: (608)262-0438 1210 West Dayton Street
FAX: (608)262-9777 Madison, WI 53706
Technical Details
Message-ID:
<9209010253.AA26334@appenzell.cs.wisc.edu>Path:
arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!cs.wisc.edu!timShow Full Headers
Complete Article Headers
Newsgroups: gnu.gcc.bug Path: arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!cs.wisc.edu!tim From: tim@cs.wisc.edu (Tim Theisen) Subject: Internal compiler error on hppa1.1-bsd. Message-ID: <9209010253.AA26334@appenzell.cs.wisc.edu> Sender: gnulists@ai.mit.edu Organization: University of Wisconsin-Madison, Department of Computer Sciences Distribution: gnu Date: Mon, 31 Aug 1992 16:53:14 GMT Approved: bug-gcc@prep.ai.mit.edu Lines: 1707