🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Doug Berry Thu, 20 Aug 1992 12:48
gcc 2.2.2 and Ultrix 4.2c on ghostscript2.5
#973
Author: Doug Berry
Date: Thu, 20 Aug 1992 12:48
2602 lines
26382 bytes
I've had a problem with the compiler

I made the compiler by doing 
  configure decstation
here's gcc -v
-------------------%<-----------------------
Reading specs from /usr/local/lib/gcc-lib/decstation/2.2.2/specs
gcc version 2.2.2
-------------------%<-----------------------
i was making ghostscript2.5 on a DECstation 5000/25 running
Ultrix 4.2c when...

gcc  -g -O  -I/usr/local/lib/gcc-lib/include -c gsmain.c
pid 3074 (cc1) was killed on an unaligned access, at pc 0x46e40c
gcc: Internal compiler error: program cc1 got fatal signal 10
make: *** [gsmain.o] Error 1
-------------------%<-----------------------
here is output from gcc -E -I/usr/local/lib/gcc-lib/include gsmain.c
-------------------%<-----------------------
# 1 "gsmain.c"
 


















 
 
# 1 "memory_.h" 1
 


















 
 

 
 













# 57 "memory_.h"




# 1 "/usr/include/memory.h" 1 3
 
extern void
	*memccpy(),
	*memchr(),
	*memcpy(),
	*memmove(),
	*memset();
extern int memcmp();
# 61 "memory_.h" 2






 
 
 
 
 
 




extern void memswab2(), memswab4();


 
 
 
 



extern void memflip8x8();

# 22 "gsmain.c" 2

# 1 "string_.h" 1
 


















 
 










# 1 "/usr/local/lib/gcc-lib/decstation/2.2.2/include/string.h" 1 3
 



 


























 














typedef	unsigned int	size_t;		 


 


		



 




extern char
	*strcat( char *__s1, const char *__s2 ),	
	*strchr( const char *__s, int __c ),
	*strcpy( char *__s1, const char *__s2 ),
	*strerror( int __n ),		
	*strncat( char *__s1, const char *__s2, size_t __n ),
	*strncpy( char *__s1, const char *__s2, size_t __n ),
	*strpbrk(const char *__s1, const char *__s2 ),	
	*strrchr( const char *__s, int __c ),
	*strstr( const char *__s, const char *__t ),
	*strtok( char *__s1, const char *__s2 );	

extern int
	memcmp( const void *__s1, const void *__s2, size_t __n ),
	strcmp( const char *__s1, const char *__s2 ),
	strcoll( const char *__s1, const char *__s2 ),
	strncmp( const char *__s1, const char *__s2, size_t __n );

extern void
	*memchr( const void *__s, int __c, size_t __n ),	
	*memcpy( void *__s1, const void *__s2, size_t __n ),
	*memmove( void *__s1, const void *__s2, size_t __n ),
	*memset( void *__s, int __c, size_t __n );

extern size_t
	strcspn( const char *__s1, const char *__s2 ),
	strlen( const char *__s ),
	strspn( const char *__s1, const char *__s2 ),
	strxfrm( char *__to, const char *__from, size_t __maxsize  );

# 125 "/usr/local/lib/gcc-lib/decstation/2.2.2/include/string.h" 3

# 32 "string_.h" 2



# 23 "gsmain.c" 2

# 1 "ghost.h" 1
 


















 
 
# 1 "gx.h" 1
 


















 
 
# 1 "gs.h" 1
 


















 
 
# 1 "/usr/local/lib/gcc-lib/decstation/2.2.2/include/stdio.h" 1 3
 
 


























 



























































# 1 "/usr/local/lib/gcc-lib/decstation/2.2.2/include/ansi_compat.h" 1 3
 



 





















 

















# 116 "/usr/local/lib/gcc-lib/decstation/2.2.2/include/ansi_compat.h" 3

# 89 "/usr/local/lib/gcc-lib/decstation/2.2.2/include/stdio.h" 2 3













			 




extern	struct	_iobuf {
	int	_cnt;
	char	*_ptr;
	char	*_base;
	int	_bufsiz;
	short	_flag;
	short	_file;
} _iob[3 ];
typedef	struct _iobuf	FILE;

typedef	long	fpos_t;

















 




		



 



extern int 	getc( FILE *__stream );
extern int	getchar( void );
extern int	putc( int __c, FILE *__stream);
extern int	putchar( int __c);
extern int	feof( FILE *__stream );
extern int	ferror( FILE *__stream );
extern int	fileno( FILE *__stream );
extern int	_filbuf( FILE *p);
extern int	_flsbuf( unsigned char x , FILE *p);
















typedef char *va_list;

 



extern void	clearerr( FILE *__stream); 
extern int	fclose( FILE *__stream );
extern FILE *	fdopen( int __filedes, char *__type );
extern int	fflush( FILE *__stream );
extern int	fgetc( FILE *__stream );
extern int	fgetpos( FILE *__stream, fpos_t *__pos );
extern char *	fgets( char *__s, int __n, FILE *__stream );
extern FILE *	fopen( const char *__filename, const char *__type );
extern int	fprintf( FILE *__stream, const char *__format, ... );
extern int	fputc( int __c, FILE *__stream );
extern int	fputs( const char *__s, FILE *__stream );
extern size_t	fread( void *__ptr, size_t __size,
			size_t __nitems, FILE *__stream ); 
extern FILE *	freopen( const char *__filename, const char *__type,
			FILE *__stream );
extern int	fscanf( FILE *__stream, const char *__format, ... );
extern int	fseek( FILE *__stream, long __offset, int __ptrname );
extern int	fsetpos( FILE *__stream, const fpos_t *__pos );
extern long	ftell( FILE *__stream );
extern size_t	fwrite( const void *__ptr, size_t __size,
			size_t __nitems, FILE *__stream );
extern char *	gets( char *__s );	
extern void	perror( const char *__s );
extern FILE  *	popen(const char *__command, const char *__type );
extern int	printf( const char *__format, ... );	
extern int	puts( const char *__s );	
extern int	remove( const char *__filename );
extern int	rename( const char *__from, const char *__to );
extern void	rewind( FILE *__stream );
extern int	scanf( const char *__format, ... );	
extern void	setbuf( FILE *__stream, char *__buf );
extern int	setvbuf( FILE *__stream, char *__buf,
			int __type, size_t __size );
extern int	sscanf( const char *__s, const char *__format, ... );
extern FILE *	tmpfile( void );	
extern char *	tmpnam( char *__s );
extern int	ungetc( int __c, FILE *__stream );
extern int	vfprintf( FILE *__stream, const char *__format, va_list __ap );
extern int	vprintf( const char *__format, va_list __ap );
extern int	vsprintf( char *__s, const char *__format, va_list __ap);


extern char *	tempnam( const char *__dir, const char *__pfx);
extern int	putw( int __w, FILE *__stream );
extern int	getw(FILE *__stream);
extern int	pclose( FILE *__stream );


# 299 "/usr/local/lib/gcc-lib/decstation/2.2.2/include/stdio.h" 3



 
extern int	sprintf( char *__s, const char *__format, ... );



















# 22 "gs.h" 2

# 1 "std.h" 1
 


















 
 




 
# 1 "arch.h" 1
 












# 27 "std.h" 2



 

























 
 




 
 
 







 




 
 









 



 
 


 
typedef unsigned char byte;
typedef unsigned char uchar;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong;

 
 
 
 




# 1 "/usr/local/lib/gcc-lib/decstation/2.2.2/include/sys/types.h" 1 3
 

 



























 















































# 1 "/usr/local/lib/gcc-lib/decstation/2.2.2/include/ansi_compat.h" 1 3
 



 





















 

















# 116 "/usr/local/lib/gcc-lib/decstation/2.2.2/include/ansi_compat.h" 3

# 79 "/usr/local/lib/gcc-lib/decstation/2.2.2/include/sys/types.h" 2 3




 



 


 


 


typedef	unsigned char	u_char;
typedef	unsigned short	u_short;
typedef	unsigned int	u_int;
typedef	unsigned int	uint_ ;		 
typedef	unsigned long	u_long;
typedef	unsigned short	ushort_ ;		 

typedef	volatile char		v_char;
typedef	volatile short		v_short;
typedef	volatile long		v_long;
typedef	volatile unsigned char	vu_char;
typedef	volatile unsigned short	vu_short;
typedef	volatile unsigned long	vu_long;

typedef

	signed

		char	s_char;









typedef	struct	_physadr { int r[1]; } *physadr;
 



typedef	struct	label_t	{
	int	val[12];
} label_t;


typedef	struct	_quad { long val[2]; } quad;
typedef	long	daddr_t;
typedef	char *	caddr_t;
typedef u_long	gno_t;
typedef short	cnt_t;			 
typedef	long	swblk_t;
typedef long	paddr_t;		 
typedef	long	audit_ID_t;


typedef	short	dev_t;
typedef short	gid_t;			 
typedef	unsigned long	ino_t;
typedef unsigned short	mode_t;		 
typedef short	nlink_t;		 
typedef	int	off_t;


typedef int	pid_t;			 

typedef short	uid_t;			 


typedef int	time_t;












typedef int	clock_t;			 

typedef long	key_t;			 




 











 









 

typedef long	fd_mask;






typedef	struct fd_set {
	fd_mask	fds_bits[(((4096	 )+(( (sizeof(fd_mask) * 8		)	)-1))/( (sizeof(fd_mask) * 8		)	)) ];
} fd_set;








# 111 "std.h" 2






 
 





 
 




# 138 "std.h"


 
 



typedef char *ptr_ord_t;

 








 







 




 
 
 
 
 
 
typedef double floatp;

 
 






 



















# 219 "std.h"


 
 
 
 
 
typedef char *(*proc_alloc_t)(unsigned num_elements, unsigned element_size, const char *client_name );
typedef void (*proc_free_t)(char *data, unsigned num_elements, unsigned element_size, const char *client_name );

 
 
 
 

 























































































# 23 "gs.h" 2


 
extern FILE *gs_stdin, *gs_stdout, *gs_stderr;

 
 














 
 
 













 
typedef struct gs_point_s {
	double x, y;
} gs_point;
typedef struct gs_int_point_s {
	int x, y;
} gs_int_point;
 
 
 
 
typedef struct gs_rect_s {
	gs_point p, q;			 
} gs_rect;
typedef struct gs_int_rect_s {
	gs_int_point p, q;
} gs_int_rect;

 
 
typedef struct gs_state_s gs_state;

 
 
typedef struct {
	proc_alloc_t alloc;
	proc_free_t free;
} gs_memory_procs;
 
 
char *gs_malloc(uint, uint, const char * );
void gs_free(char *, uint, uint, const char * );
# 22 "gx.h" 2

# 1 "gdebug.h" 1
 


















 
 

 
extern char gs_debug[128];
 








 






 
# 65 "gdebug.h"












# 23 "gx.h" 2


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


# 22 "ghost.h" 2

# 1 "iref.h" 1
 


















 
 

 
typedef struct ref_s ref;

 



typedef enum {
	t_array,			 
	t_boolean,			 
	t_condition,			 
	t_dictionary,			 
	t_file,				 
	t_fontID,			 
	t_gstate,			 
	t_integer,			 
	t_lock,				 
	t_mark,				 
	t_name,				 
	t_null,				 
	t_operator,			 
	t_real,				 
	t_save,				 
	t_string,			 
 
	t_mixedarray,			 
	t_shortarray,			 
 






	t_device,			 
	t_oparray,			 
	t_next_index		 
} ref_type;
 






 





 






 








 












 
 
 

					 


					 









 


 
typedef struct dict_s dict;
typedef struct name_s name;
 
 
typedef int (*dummy_op_proc_p)();


 
 



struct stream_s;
struct gs_font_s;
struct gs_color_s;
struct gs_condition_s;
struct gs_lock_s;
struct gx_device_s;
struct gstate_obj_s;
struct vm_save_s;
struct tas_s {
	ushort type_attrs;
	ushort rsize;
};
struct ref_s {

	struct tas_s tas;




 






















	union v {			 
		long intval;
		ushort index;		 
		float realval;
		byte *bytes;
		const byte *const_bytes;
		struct ref_s *refs;
		const struct ref_s *const_refs;
		name *pname;
		const name *const_pname;
		dict *pdict;
		const dict *const_pdict;
		const ushort   *packed;
		dummy_op_proc_p opproc;
		struct stream_s *pfile;
		struct gs_font_s *pfont;
		struct gs_condition_s *pcond;
		struct gs_lock_s *plock;
		struct gx_device_s *pdevice;
		struct gs_state_s *pgstate;
		struct vm_save_s *psave;
	} value;
};
# 23 "ghost.h" 2

# 24 "gsmain.c" 2

# 1 "gp.h" 1
 


















 
 

 





 

 





extern void gp_init(void );

 



extern void gp_exit(void );

 

 



extern void gp_get_clock(long *pdt );

 

 







typedef struct gx_device_s gx_device;


 
extern void gp_console_puts(const char *, uint );

 
extern int gp_make_console_current(gx_device * );

 
extern int gp_make_graphics_current(gx_device * );

 

 





extern FILE *gp_open_printer(char *fname );

 
extern void gp_close_printer(FILE *pfile, const char *fname );

 

 
extern const char gp_file_name_list_separator;

 
extern const char gp_scratch_file_name_prefix[];

 
extern const int gp_file_names_ignore_case;

 
 
 
extern const char gp_fmode_binary_suffix[];
 
 
extern const char gp_fmode_rb[];
extern const char gp_fmode_wb[];

 
 
extern FILE *gp_open_scratch_file(const char *prefix, char *fname,
				     const char *mode );

 
 
extern int gp_file_name_is_absolute(const char *fname, uint len );

 
 
extern const char *
	gp_file_name_concat_string(const char *prefix, uint plen,
				      const char *fname, uint len );

 

 
 
typedef struct file_status_s {
	long size_pages;
	long size_bytes;
	long time_referenced;
	long time_created;
} file_status;
extern int gp_file_status(const char *fname, file_status *pstatus );

 

struct file_enum_s;	 
typedef struct file_enum_s file_enum;

 









extern file_enum *gp_enumerate_files_init(const char *pat, uint patlen,
					     proc_alloc_t palloc,
					     proc_free_t pfree );

 






extern uint gp_enumerate_files_next(file_enum *pfen, char *ptr, uint maxlen );

 





extern void gp_enumerate_files_close(file_enum *pfen );
# 25 "gsmain.c" 2

# 1 "gsmatrix.h" 1
 


















 
 




 
 

 
 
 







struct gs_matrix_s {
	long _xx  ; float xx;	long _xy  ; float xy;	long _yx  ; float yx;	long _yy  ; float yy;	long _tx  ; float tx;	long _ty  ; float ty ;
};


typedef struct gs_matrix_s gs_matrix;

 




 



 
void	gs_make_identity(gs_matrix * );
int	gs_make_translation(floatp, floatp, gs_matrix * ),
	gs_make_scaling(floatp, floatp, gs_matrix * ),
	gs_make_rotation(floatp, gs_matrix * );

 
int	gs_matrix_multiply(const gs_matrix *, const gs_matrix *, gs_matrix * ),
	gs_matrix_invert(const gs_matrix *, gs_matrix * ),
	gs_matrix_rotate(const gs_matrix *, floatp, gs_matrix * );

 
int	gs_point_transform(floatp, floatp, const gs_matrix *, gs_point * ),
	gs_point_transform_inverse(floatp, floatp, const gs_matrix *, gs_point * ),
	gs_distance_transform(floatp, floatp, const gs_matrix *, gs_point * ),
	gs_distance_transform_inverse(floatp, floatp, const gs_matrix *, gs_point * ),
	gs_bbox_transform_inverse(gs_rect *, gs_matrix *, gs_rect * );


# 26 "gsmain.c" 2

# 1 "gxdevice.h" 1
 


















 
 

# 1 "gxbitmap.h" 1
 


















 
 




 





typedef unsigned long gx_bitmap_id;


 













typedef struct gx_bitmap_s {
	byte *data;
	int raster;			 
	gs_int_point size;		 
	gx_bitmap_id id;
	ushort rep_width, rep_height;	 
} gx_bitmap;


# 23 "gxdevice.h" 2


 

 
typedef unsigned long gx_color_index;
 



 
typedef unsigned short gx_color_value;
 
 







 
typedef struct gx_device_color_info_s {
	int num_components;		 
					 
	int depth;			 
	gx_color_value max_gray;	 
	gx_color_value max_rgb;		 
					 
	gx_color_value dither_gray;	 
	gx_color_value dither_rgb;	 
					 
} gx_device_color_info;




 
typedef struct gx_device_procs_s gx_device_procs;

 

# 76 "gxdevice.h"

 
struct gx_device_s {
	int params_size;	gx_device_procs *procs;	const char *dname;	int width;	int height;	float x_pixels_per_inch;	float y_pixels_per_inch;	float l_margin, b_margin, r_margin, t_margin;	gx_device_color_info color_info;	int is_open			;
};





 


typedef struct gs_prop_item_s gs_prop_item;


 
 
 

struct gx_device_procs_s {



	int (*open_device)(gx_device *dev ) ;



	void (*get_initial_matrix)(gx_device *dev, gs_matrix *pmat ) ;



	int (*sync_output)(gx_device *dev ) ;



	int (*output_page)(gx_device *dev, int num_copies, int flush ) ;



	int (*close_device)(gx_device *dev ) ;




	gx_color_index (*map_rgb_color)(gx_device *dev, gx_color_value red, gx_color_value green, gx_color_value blue ) ;




	int (*map_color_rgb)(gx_device *dev, gx_color_index color, gx_color_value rgb[3] ) ;




	int (*fill_rectangle)(gx_device *dev, int x, int y, int width, int height, gx_color_index color ) ;






	int (*tile_rectangle)(gx_device *dev, const gx_bitmap *tile, int x, int y, int width, int height, gx_color_index color0, gx_color_index color1, int phase_x, int phase_y ) ;






	int (*copy_mono)(gx_device *dev, const unsigned char *data, int data_x, int raster, gx_bitmap_id id, int x, int y, int width, int height, gx_color_index color0, gx_color_index color1 ) ;





	int (*copy_color)(gx_device *dev, const unsigned char *data, int data_x, int raster, gx_bitmap_id id, int x, int y, int width, int height ) ;




	int (*draw_line)(gx_device *dev, int x0, int y0, int x1, int y1, gx_color_index color ) ;




	int (*get_bits)(gx_device *dev, int y, unsigned char *data, unsigned int size, int pad_to_word ) ;



	int (*get_props)(gx_device *dev, gs_prop_item *plist ) ;
    


	int (*put_props)(gx_device *dev, gs_prop_item *plist, int count ) ;
    
};

 
 
extern unsigned int gx_device_bytes_per_scan_line(const gx_device *dev, int pad_to_word );

 
 
extern int gx_device_adjust_resolution(gx_device *dev, int actual_width, int actual_height );

 
int gx_default_open_device(gx_device *dev ) ;
void gx_default_get_initial_matrix(gx_device *dev, gs_matrix *pmat ) ;
int gx_default_sync_output(gx_device *dev ) ;
int gx_default_output_page(gx_device *dev, int num_copies, int flush ) ;
int gx_default_close_device(gx_device *dev ) ;
gx_color_index gx_default_map_rgb_color(gx_device *dev, gx_color_value red, gx_color_value green, gx_color_value blue ) ;
int gx_default_map_color_rgb(gx_device *dev, gx_color_index color, gx_color_value rgb[3] ) ;
int gx_default_tile_rectangle(gx_device *dev, const gx_bitmap *tile, int x, int y, int width, int height, gx_color_index color0, gx_color_index color1, int phase_x, int phase_y ) ;
int gx_default_copy_color(gx_device *dev, const unsigned char *data, int data_x, int raster, gx_bitmap_id id, int x, int y, int width, int height ) ;
int gx_default_draw_line(gx_device *dev, int x0, int y0, int x1, int y1, gx_color_index color ) ;
int gx_default_get_bits(gx_device *dev, int y, unsigned char *data, unsigned int size, int pad_to_word ) ;
int gx_default_get_props(gx_device *dev, gs_prop_item *plist ) ;
int gx_default_put_props(gx_device *dev, gs_prop_item *plist, int count ) ;
# 27 "gsmain.c" 2

# 1 "gserrors.h" 1
 


















 
 

 
 
 
 














# 28 "gsmain.c" 2

# 1 "estack.h" 1
 


















 
 

 





typedef ref   *es_ptr;
typedef const ref   *const_es_ptr;
extern es_ptr esbot, esp, estop;
 








extern es_ptr esfile;


 














 





 
 





 



 




# 29 "gsmain.c" 2

# 1 "main.h" 1
 


















 
 

 
extern char *gs_lib_env_path;
extern uint gs_memory_chunk_size;
extern int gs_user_errors;

 
extern	void	gs_init0(FILE *, FILE *, FILE *, int ),
		gs_init1(void ),
		gs_init2(void );
extern	void	gs_add_lib_path(const char * );
 
 
 
 
extern	int	gs_run_file(const char *, int, int * ),
		gs_run_string(const char *, int, int * );
extern	void	gs_debug_dump_stack(int code );
extern	void	gs_finit(void ),
		gs_exit(int );
# 30 "gsmain.c" 2

# 1 "ostack.h" 1
 


















 
 

 





typedef ref   *os_ptr;
typedef const ref   *const_os_ptr;
extern os_ptr osbot, osp, ostop;

 


# 31 "gsmain.c" 2

# 1 "store.h" 1
 


















 
 

 
































 


# 67 "store.h"

	 
	 




 



extern int alloc_save_new_mask;		 
extern int alloc_save_test_mask;	 
extern int alloc_save_change(ref *ptr, const char *client_name );








 
 
 


extern ref *alloc_refs(uint num_refs, const char *client_name );
extern void alloc_free_refs(ref *ptr, uint num_refs, const char *client_name );




























 



















# 32 "gsmain.c" 2


 

uint gs_memory_chunk_size = 20000;
int gs_user_errors;

 
const char **gs_lib_paths;
static  int gs_lib_count;
char *gs_lib_env_path;

 
 
extern const char *gs_lib_default_path;
extern const char *gs_init_file;
extern ref gs_init_file_array[];
 
extern int gs_log_errors;
extern FILE *gs_debug_out;

 

 
static  int init1_done, init2_done;

 



 
void
gs_init0(FILE *in, FILE *out, FILE *err, int max_lib_paths)
{	 
	gs_stdin = in;
	gs_stdout = out;
	gs_stderr = err;
	gs_debug_out = gs_stdout;
	 
	 
	 
	 
	gp_init();
	 
	gs_lib_env_path = 0;
	gs_lib_paths =
		(const char **)gs_malloc(max_lib_paths + 3, sizeof(char *),
					 "gs_lib_paths array");
	gs_lib_count = 0;
	gs_user_errors = 1;
	gs_log_errors = 0;
	 
	memset(gs_debug, 0, 128);
	init1_done = init2_done = 0;
}

 
void
gs_init1()
{	if ( !init1_done )
	   {	alloc_init(gs_malloc, gs_free, gs_memory_chunk_size);
		{ extern void name_init(void ); name_init(); } 
		{ extern void obj_init(void ); obj_init(); } 		 
		{ extern void scan_init(void ); scan_init(); } 		 
		init1_done = 1;
	   }
}

 
void
gs_init2()
{	gs_init1();
	if ( !init2_done )
	   {	int code, exit_code;
		{ extern void gs_init(void ); gs_init(); } 
		{ extern void zop_init(void ); zop_init(); } 
		interp_init(1);		 
		{ extern void op_init(void ); op_init(); } 	 
		 
		{	ref *ifp = gs_init_file_array;
			ref ifa;
			for ( ; ifp->value.bytes != 0; ifp++ )
			  ((ifp)->tas.rsize = ( strlen((const char *)ifp->value.bytes))) ;
			(((&ifa)->value. refs = (
				  gs_init_file_array), ((&ifa)->tas.type_attrs = ((  t_array) << 7 ) + (  (0x10 +0x20 ) )) ) , ((&ifa)->tas.rsize = ( 
				  ifp - gs_init_file_array)) ) ;
			initial_enter_name("INITFILES", &ifa);
		}
		 
		code = gs_run_file(gs_init_file, gs_user_errors, &exit_code);
		if ( code < 0 )
		{	if ( code != (-100)  )
				gs_debug_dump_stack(code);
			gs_exit((exit_code ? exit_code : 2));
		}
		init2_done = 1;
	   }
   }

 
void
gs_add_lib_path(const char *lpath)
{	gs_lib_paths[gs_lib_count] = lpath;
	gs_lib_count++;
}

 

 
static  void
set_lib_paths()
{	const char **ppath = &gs_lib_paths[gs_lib_count];
	if ( gs_lib_env_path != 0 ) *ppath++ = gs_lib_env_path;
	if ( gs_lib_default_path != 0 ) *ppath++ = gs_lib_default_path;
	*ppath = 0;
}

 
static  int
run_open(const char *file_name, ref *pfile)
{	 
	 

	byte fn[200 ];
	uint len;
	return lib_file_open(file_name, strlen(file_name), fn, 200 ,
			     &len, pfile);
}
int
gs_run_file(const char *file_name, int user_errors, int *pexit_code)
{	ref initial_file;
	set_lib_paths();
	if ( run_open(file_name, &initial_file) < 0 )
	   {	(  fprintf(gs_stderr  , "Can't find initialization file %s\n",  file_name)) ;
		return gs_log_error((-100) , "gsmain.c", 166)  ;
	   }
	((&initial_file)->tas.type_attrs |= ( 0x20  + 0x40 )) ;
	return gs_interpret(&initial_file, user_errors, pexit_code);
}

int
gs_run_string(const char *str, int user_errors, int *pexit_code)
{	ref stref;
	set_lib_paths();
	(((&stref)->value. const_bytes = ( (byte *)str), ((&stref)->tas.type_attrs = ((  t_string) << 7 ) + (  0x40  + (0x10 +0x20 ) )) ) , ((&stref)->tas.rsize = ( 
		  strlen(str))) ) ;
	return gs_interpret(&stref, gs_user_errors, pexit_code);
}

 

 
extern gx_device *gx_device_list[];
void gs_malloc_release(void );
void file_close_all(void );
int gs_closedevice(gx_device * );
void gp_exit(void );
void gs_finit()
{	gx_device **pdev = gx_device_list;
	fflush(gs_stderr );			 
	for ( ; *pdev != 0; pdev++ )
	  gs_closedevice(*pdev);
	 
	file_close_all();
	 
	gs_malloc_release();
	 
	gp_exit();
}
void
gs_exit(int code)
{	gs_finit();
	exit(code);
}

 

 
extern void debug_print_ref(const ref * );
extern void debug_dump_refs(const ref *, uint, const char * );
extern ref error_object;

 
void
gs_debug_dump_stack(int code)
{	zflush(osp);	 
	fprintf(gs_stderr  , "\nUnexpected interpreter error %d!\nError object: ",  code) ;
	debug_print_ref(&error_object);
	fputc('\n', gs_stderr  ) ;
	debug_dump_refs(osbot, osp + 1 - osbot, "Operand stack");
	debug_dump_refs(esbot, esp + 1 - esbot, "Execution stack");
}

 
int
gs_log_error(int err, const char   *file, int line)
{	if ( gs_log_errors )
	  { if ( file == 0  )
	      fprintf(gs_stderr  , "Returning error %d\n",  err) ;
	    else
	      fprintf(gs_stderr  , "%s(%d): returning error %d\n", 
		       (char *)file,  line,  err) ;
	  }
	return err;
}
-------------------%<-----------------------

I hope this helps...
doug
-- 
  uucp:  ...utzoo!sis!doug            phone: +1 416 845 9430 x2140
  else:  doug.berry@sheridanc.on.ca
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads