tli@sargas.usc.edu (Tony Li) (07/03/89)
Attached is a patch which at least lets 1.3 compile correctly with gcc. Note that you'll have to configure ux-gcc-x.mak for your site. Tony -----------------------------------cut here----------------------------------- *** /tmp/,RCSt1a16670 Mon Jul 3 02:59:29 1989 --- gs.c Mon Jul 3 00:12:57 1989 *************** *** 165,171 { stream st; stream *s = &st; int code; ! sread_string(s, str, strlen(str)); code = scan_token(s, 0, pr); if ( code < 0 ) printf("scan_token returns %d\n", code); --- 165,171 ----- { stream st; stream *s = &st; int code; ! sread_string(s, (byte *) str, strlen(str)); code = scan_token(s, 0, pr); if ( code < 0 ) printf("scan_token returns %d\n", code); *** /tmp/,RCSt1a16676 Mon Jul 3 02:59:32 1989 --- gschar.c Mon Jul 3 02:33:25 1989 *************** *** 27,33 #include "gzstate.h" /* must precede gzdevice */ #include "gzdevice.h" /* must precede gxchar */ #include "gxdevmem.h" - #include "gxfont.h" #include "gxchar.h" #include "gxpath.h" #include "gzcolor.h" --- 27,32 ----- #include "gzstate.h" /* must precede gzdevice */ #include "gzdevice.h" /* must precede gxchar */ #include "gxdevmem.h" #include "gxchar.h" #include "gxfont.h" #include "gxpath.h" *************** *** 29,34 #include "gxdevmem.h" #include "gxfont.h" #include "gxchar.h" #include "gxpath.h" #include "gzcolor.h" --- 28,34 ----- #include "gzdevice.h" /* must precede gxchar */ #include "gxdevmem.h" #include "gxchar.h" + #include "gxfont.h" #include "gxpath.h" #include "gzcolor.h" *************** *** 367,375 /* Continuation procedures for show (all varieties) */ #define show_fast_move(wxy, pgs)\ gx_path_add_relative_point(pgs->path, wxy.x, wxy.y) ! int show_update(P1(register gs_show_enum *penum)); ! int show_move(P1(register gs_show_enum *penum)); ! int show_proceed(P1(register gs_show_enum *penum)); private int continue_show_update(register gs_show_enum *penum) { int code = show_update(penum); --- 367,375 ----- /* Continuation procedures for show (all varieties) */ #define show_fast_move(wxy, pgs)\ gx_path_add_relative_point(pgs->path, wxy.x, wxy.y) ! private int show_update(P1(register gs_show_enum *penum)); ! private int show_move(P1(register gs_show_enum *penum)); ! private int show_proceed(P1(register gs_show_enum *penum)); private int continue_show_update(register gs_show_enum *penum) { int code = show_update(penum); *************** *** 494,502 } /* Continuation procedures for stringwidth */ ! int stringwidth_update(P1(register gs_show_enum *penum)); ! int stringwidth_move(P1(register gs_show_enum *penum)); ! int stringwidth_proceed(P1(register gs_show_enum *penum)); private int continue_stringwidth_update(register gs_show_enum *penum) { int code = stringwidth_update(penum); --- 494,502 ----- } /* Continuation procedures for stringwidth */ ! private int stringwidth_update(P1(register gs_show_enum *penum)); ! private int stringwidth_move(P1(register gs_show_enum *penum)); ! private int stringwidth_proceed(P1(register gs_show_enum *penum)); private int continue_stringwidth_update(register gs_show_enum *penum) { int code = stringwidth_update(penum); *** /tmp/,RCSt1a16684 Mon Jul 3 02:59:36 1989 --- gscoord.c Mon Jul 3 01:51:09 1989 *************** *** 38,44 #endif #define ensure_inverse_valid(pgs)\ if ( !pgs->inverse_valid )\ ! { int code = gs_matrix_invert(&pgs->ctm, &pgs->ctm_inverse);\ print_inverse(pgs);\ if ( code < 0 ) return code;\ pgs->inverse_valid = 1;\ --- 38,44 ----- #endif #define ensure_inverse_valid(pgs)\ if ( !pgs->inverse_valid )\ ! { int code = gs_matrix_invert((gs_matrix *)&pgs->ctm, &pgs->ctm_inverse);\ print_inverse(pgs);\ if ( code < 0 ) return code;\ pgs->inverse_valid = 1;\ *************** *** 90,96 gs_translate(gs_state *pgs, floatp dx, floatp dy) { gs_point pt; int code; ! if ( (code = gs_distance_transform((float)dx, (float)dy, &pgs->ctm, &pt)) < 0 ) return code; pgs->ctm.tx += pt.x; pgs->ctm.ty += pt.y; --- 90,96 ----- gs_translate(gs_state *pgs, floatp dx, floatp dy) { gs_point pt; int code; ! if ( (code = gs_distance_transform(dx, dy, (gs_matrix *)&pgs->ctm, &pt)) < 0 ) return code; pgs->ctm.tx += pt.x; pgs->ctm.ty += pt.y; *************** *** 120,126 int gs_rotate(gs_state *pgs, floatp ang) ! { int code = gs_matrix_rotate(&pgs->ctm, (float)ang, &pgs->ctm); pgs->inverse_valid = 0, pgs->char_tm_valid = 0; #ifdef DEBUG if ( gs_debug['x'] ) --- 120,127 ----- int gs_rotate(gs_state *pgs, floatp ang) ! { int code = gs_matrix_rotate((gs_matrix *)&pgs->ctm, ! (float)ang, (gs_matrix *)&pgs->ctm); pgs->inverse_valid = 0, pgs->char_tm_valid = 0; #ifdef DEBUG if ( gs_debug['x'] ) *************** *** 131,137 int gs_concat(gs_state *pgs, gs_matrix *pmat) ! { int code = gs_matrix_multiply(pmat, &pgs->ctm, &pgs->ctm); update_ctm(pgs); #ifdef DEBUG if ( gs_debug['x'] ) --- 132,139 ----- int gs_concat(gs_state *pgs, gs_matrix *pmat) ! { int code = gs_matrix_multiply(pmat, (gs_matrix *)&pgs->ctm, ! (gs_matrix *)&pgs->ctm); update_ctm(pgs); #ifdef DEBUG if ( gs_debug['x'] ) *************** *** 144,150 int gs_transform(gs_state *pgs, floatp x, floatp y, gs_point *pt) ! { return gs_point_transform((float)x, (float)y, &pgs->ctm, pt); } int --- 146,153 ----- int gs_transform(gs_state *pgs, floatp x, floatp y, gs_point *pt) ! { return gs_point_transform((float)x, (float)y, ! (gs_matrix *)&pgs->ctm, pt); } int *************** *** 149,155 int gs_dtransform(gs_state *pgs, floatp dx, floatp dy, gs_point *pt) ! { return gs_distance_transform((float)dx, (float)dy, &pgs->ctm, pt); } int --- 152,159 ----- int gs_dtransform(gs_state *pgs, floatp dx, floatp dy, gs_point *pt) ! { return gs_distance_transform((float)dx, (float)dy, ! (gs_matrix *)&pgs->ctm, pt); } int *** /tmp/,RCSt1a16690 Mon Jul 3 02:59:39 1989 --- gsfont.c Mon Jul 3 01:55:19 1989 *************** *** 26,31 #include "gxmatrix.h" #include "gzstate.h" /* must precede gxdevice */ #include "gxdevice.h" /* must precede gxfont */ #include "gxfont.h" /* Size of cache structures */ --- 26,32 ----- #include "gxmatrix.h" #include "gzstate.h" /* must precede gxdevice */ #include "gxdevice.h" /* must precede gxfont */ + #include "gschar.h" #include "gxfont.h" /* Size of cache structures */ *** /tmp/,RCSt1a16695 Mon Jul 3 02:59:41 1989 --- gsimage.c Mon Jul 3 01:56:32 1989 *************** *** 116,122 return_error(gs_error_undefinedresult); if ( height == 0 ) return 0; /* empty image */ if ( (code = gs_matrix_invert(pmat, &mat)) < 0 || ! (code = gs_matrix_multiply(&mat, &pgs->ctm, &mat)) < 0 ) return code; buffer = (byte *)malloc(bsize); if ( buffer == 0 ) return_error(gs_error_VMerror); --- 116,123 ----- return_error(gs_error_undefinedresult); if ( height == 0 ) return 0; /* empty image */ if ( (code = gs_matrix_invert(pmat, &mat)) < 0 || ! (code = gs_matrix_multiply(&mat, ! (gs_matrix *)&pgs->ctm, &mat)) < 0 ) return code; buffer = (byte *)malloc(bsize); if ( buffer == 0 ) return_error(gs_error_VMerror); *** /tmp/,RCSt1a16703 Mon Jul 3 02:59:45 1989 --- gsmain.c Mon Jul 3 00:22:21 1989 *************** *** 152,158 /* Close the device and exit */ void gs_exit(int code) ! { (*gx_device_default_p->procs->close_device)(gx_device_default_p); exit(code); } --- 152,159 ----- /* Close the device and exit */ void gs_exit(int code) ! { extern gx_device *gx_device_default_p; ! (*gx_device_default_p->procs->close_device)(gx_device_default_p); exit(code); } *** /tmp/,RCSt1a16708 Mon Jul 3 02:59:47 1989 --- gspath2.c Mon Jul 3 02:07:16 1989 *************** *** 73,79 dbox[1] = fixed2float(fbox.ymin); dbox[2] = fixed2float(fbox.xmax); dbox[3] = fixed2float(fbox.ymax); ! return gs_bbox_transform_inverse(dbox, &pgs->ctm, box); } /* ------ Enumerators ------ */ --- 73,79 ----- dbox[1] = fixed2float(fbox.ymin); dbox[2] = fixed2float(fbox.xmax); dbox[3] = fixed2float(fbox.ymax); ! return gs_bbox_transform_inverse(dbox, (gs_matrix *)&pgs->ctm, box); } /* ------ Enumerators ------ */ *** /tmp/,RCSt1a16713 Mon Jul 3 02:59:48 1989 --- gxcache.c Mon Jul 3 02:44:51 1989 *************** *** 28,34 #include "gzdevice.h" /* requires gsstate.h */ #include "gzcolor.h" #include "gxdevmem.h" - #include "gxfont.h" #include "gxchar.h" /* Define the size of the cache structures */ --- 28,33 ----- #include "gzdevice.h" /* requires gsstate.h */ #include "gzcolor.h" #include "gxdevmem.h" #include "gxchar.h" #include "gxfont.h" *************** *** 30,35 #include "gxdevmem.h" #include "gxfont.h" #include "gxchar.h" /* Define the size of the cache structures */ int cached_char_sizeof = sizeof(cached_char); --- 29,35 ----- #include "gzcolor.h" #include "gxdevmem.h" #include "gxchar.h" + #include "gxfont.h" /* Define the size of the cache structures */ int cached_char_sizeof = sizeof(cached_char); *************** *** 36,42 int cached_fm_pair_sizeof = sizeof(cached_fm_pair); /* Forward references */ ! void zap_cache(P1(gs_font_dir *)); /* Allocate storage for caching a rendered character, */ /* and set up the memory device. */ --- 36,42 ----- int cached_fm_pair_sizeof = sizeof(cached_fm_pair); /* Forward references */ ! private void zap_cache(P1(gs_font_dir *)); /* Allocate storage for caching a rendered character, */ /* and set up the memory device. */ *** /tmp/,RCSt1a16718 Mon Jul 3 02:59:50 1989 --- gxchar.h Mon Jul 3 02:31:01 1989 *************** *** 83,88 show_width_status width_set; int (*continue_proc)(P1(struct gs_show_enum_s *)); /* continuation procedure */ }; /* Cached character procedures (in gxfont.c) */ cached_char * gx_alloc_char_bits(P4(struct gs_font_dir_s *, --- 83,89 ----- show_width_status width_set; int (*continue_proc)(P1(struct gs_show_enum_s *)); /* continuation procedure */ }; + struct gs_font_dir_s; /* Cached character procedures (in gxfont.c) */ cached_char * gx_alloc_char_bits(P4(struct gs_font_dir_s *, *** /tmp/,RCSt1a16723 Mon Jul 3 02:59:51 1989 --- gxdevice.h Mon Jul 3 00:20:05 1989 *************** *** 32,37 /* Structure for device procedures */ typedef struct gx_device_procs_s gx_device_procs; struct gx_device_procs_s { int (*open_device)(P1(struct gx_device_s *)); --- 32,56 ----- /* Structure for device procedures */ typedef struct gx_device_procs_s gx_device_procs; + + /* Structure for generic device description */ + #define gx_device_common\ + int params_size; /* size of this structure */\ + gx_device_procs *procs;\ + gs_matrix initial_matrix; /* initial transformation */\ + int width; /* width in pixels */\ + int height; /* height in pixels */\ + int has_color; /* true if device supports color */\ + unsigned short max_rgb_value; /* max r, g, b value */\ + int bits_per_color_pixel; /* for copy_color */\ + int bits_from_MSB; /* true if bit-big-endian */\ + int is_open /* true if device has been opened */ + + /* A generic device */ + struct gx_device_s { + gx_device_common; + }; + struct gx_device_procs_s { int (*open_device)(P1(struct gx_device_s *)); *************** *** 101,119 (P10(struct gx_device_s *, gx_bitmap *, int, int, int, int, int, int, gx_color_index, gx_color_index)); - /* Structure for generic device description */ - #define gx_device_common\ - int params_size; /* size of this structure */\ - gx_device_procs *procs;\ - gs_matrix initial_matrix; /* initial transformation */\ - int width; /* width in pixels */\ - int height; /* height in pixels */\ - int has_color; /* true if device supports color */\ - unsigned short max_rgb_value; /* max r, g, b value */\ - int bits_per_color_pixel; /* for copy_color */\ - int bits_from_MSB; /* true if bit-big-endian */\ - int is_open /* true if device has been opened */ - /* A generic device */ - struct gx_device_s { - gx_device_common; - }; --- 120,122 ----- (P10(struct gx_device_s *, gx_bitmap *, int, int, int, int, int, int, gx_color_index, gx_color_index)); *** /tmp/,RCSt1a16728 Mon Jul 3 02:59:53 1989 --- interp.c Mon Jul 3 00:27:37 1989 *************** *** 31,36 /* Forward references */ private int interp(P1(ref *pref)); /* Configuration parameters */ #define max_ostack 500 --- 31,37 ----- /* Forward references */ private int interp(P1(ref *pref)); + private op_proc interp_exit; /* Configuration parameters */ #define max_ostack 500 *** /tmp/,RCSt1a16734 Mon Jul 3 02:59:57 1989 --- ux-gcc-x.mak Mon Jul 3 02:56:29 1989 *************** *** 33,39 # Add -DBSD4_2 for 4.2bsd systems. # Add -DSYSV for System V. ! CFLAGS=-O -ansi # Define platform flags for ld. # The following are appropriate for Sun OS4.0. --- 33,39 ----- # Add -DBSD4_2 for 4.2bsd systems. # Add -DSYSV for System V. ! CFLAGS=-O -I/usr/usc/include # Define platform flags for ld. # The following are appropriate for Sun OS4.0. *************** *** 38,44 # Define platform flags for ld. # The following are appropriate for Sun OS4.0. ! LDPLAT=-Bstatic # ---------------------------- End of options --------------------------- # --- 38,44 ----- # Define platform flags for ld. # The following are appropriate for Sun OS4.0. ! LDPLAT=-Bstatic -L/usr/usc/X11/lib # ---------------------------- End of options --------------------------- # *************** *** 49,54 # Define the compilation rules. .c.o: $(GCC) $(CFLAGS) $(CCDEBUG) -c $*.c --- 49,55 ----- # Define the compilation rules. + GCC=gcc .c.o: $(GCC) $(CFLAGS) $(CCDEBUG) -c $*.c *************** *** 108,110 $(PLATBSD) $(DEVFORUNIX) gs: $(GSUNIX) cc $(CFLAGS) $(LDPLAT) -X -o gs $(GSUNIX) -lX11 -lm --- 109,114 ----- $(PLATBSD) $(DEVFORUNIX) gs: $(GSUNIX) cc $(CFLAGS) $(LDPLAT) -X -o gs $(GSUNIX) -lX11 -lm + + clean: + rm -rf gs *.o *** /tmp/,RCSt1a16746 Mon Jul 3 03:00:02 1989 --- zchar.c Mon Jul 3 01:10:52 1989 *************** *** 58,64 zshow(register ref *op) { int code = setup_show(op, finish_show); if ( code < 0 ) return code; ! if ( (code = gs_show_n_init(senum, igs, op->value.bytes, op->size)) < 0 ) { free_show(); return code; } --- 58,64 ----- zshow(register ref *op) { int code = setup_show(op, finish_show); if ( code < 0 ) return code; ! if ( (code = gs_show_n_init(senum, igs, (char *)op->value.bytes, op->size)) < 0 ) { free_show(); return code; } *************** *** 75,81 (code = setup_show(op, finish_show)) < 0 ) return code; ! if ( (code = gs_ashow_n_init(senum, igs, axy[0], axy[1], op->value.bytes, op->size)) < 0 ) { free_show(); return code; } --- 75,81 ----- (code = setup_show(op, finish_show)) < 0 ) return code; ! if ( (code = gs_ashow_n_init(senum, igs, axy[0], axy[1], (char *)op->value.bytes, op->size)) < 0 ) { free_show(); return code; } *************** *** 94,100 (code = setup_show(op, finish_show)) < 0 ) return code; ! if ( (code = gs_widthshow_n_init(senum, igs, cxy[0], cxy[1], (char)op[-1].value.intval, op->value.bytes, op->size)) < 0 ) { free_show(); return code; } --- 94,103 ----- (code = setup_show(op, finish_show)) < 0 ) return code; ! if ( (code = gs_widthshow_n_init(senum, igs, cxy[0], cxy[1], ! (char)op[-1].value.intval, ! (char *)op->value.bytes, ! op->size)) < 0 ) { free_show(); return code; } *************** *** 114,120 (code = setup_show(op, finish_show)) < 0 ) return code; ! if ( (code = gs_awidthshow_n_init(senum, igs, cxy[0], cxy[1], (char)op[-3].value.intval, axy[0], axy[1], op->value.bytes, op->size)) < 0 ) { free_show(); return code; } --- 117,127 ----- (code = setup_show(op, finish_show)) < 0 ) return code; ! if ( (code = gs_awidthshow_n_init(senum, igs, cxy[0], cxy[1], ! (char)op[-3].value.intval, ! axy[0], axy[1], ! (char *)op->value.bytes, ! op->size)) < 0 ) { free_show(); return code; } *************** *** 128,134 { int code; check_proc(op[-1]); if ( (code = setup_show(op, finish_show)) < 0 ) return code; ! if ( (code = gs_kshow_n_init(senum, igs, op->value.bytes, op->size)) < 0 ) { free_show(); return code; } --- 135,141 ----- { int code; check_proc(op[-1]); if ( (code = setup_show(op, finish_show)) < 0 ) return code; ! if ( (code = gs_kshow_n_init(senum, igs, (char *)op->value.bytes, op->size)) < 0 ) { free_show(); return code; } *************** *** 149,155 zstringwidth(register ref *op) { int code = setup_show(op, finish_stringwidth); if ( code < 0 ) return code; ! if ( (code = gs_stringwidth_n_init(senum, igs, op->value.bytes, op->size)) < 0 ) { free_show(); return code; } --- 156,162 ----- zstringwidth(register ref *op) { int code = setup_show(op, finish_stringwidth); if ( code < 0 ) return code; ! if ( (code = gs_stringwidth_n_init(senum, igs, (char *)op->value.bytes, op->size)) < 0 ) { free_show(); return code; } *************** *** 175,181 check_type(*op, t_boolean); code = setup_show(op - 1, finish_show); if ( code < 0 ) return code; ! if ( (code = gs_charpath_n_init(senum, igs, op[-1].value.bytes, op[-1].size, op->value.index)) < 0 ) { free_show(); return code; } --- 182,188 ----- check_type(*op, t_boolean); code = setup_show(op - 1, finish_show); if ( code < 0 ) return code; ! if ( (code = gs_charpath_n_init(senum, igs, (char *)op[-1].value.bytes, op[-1].size, op->value.index)) < 0 ) { free_show(); return code; } *** /tmp/,RCSt1a16756 Mon Jul 3 03:00:08 1989 --- zfont.c Mon Jul 3 01:39:17 1989 *************** *** 22,29 #include "ghost.h" #include "errors.h" #include "oper.h" ! #include "gsmatrix.h" ! #include "gxdevice.h" /* for gxfont.h */ #include "gxfont.h" #include "alloc.h" #include "font.h" --- 22,33 ----- #include "ghost.h" #include "errors.h" #include "oper.h" ! #include "gserrors.h" ! #include "gxfixed.h" ! #include "gxmatrix.h" ! #include "gzstate.h" /* must precede gxdevice */ ! #include "gxdevice.h" /* must precede gxfont */ ! #include "gschar.h" #include "gxfont.h" #include "alloc.h" #include "font.h" Tony Li - USC University Computing Services Internet: tli@usc.edu Uucp: usc!tli Bitnet: tli@gamera, tli@ramoth This is a test. This is a only a test. In the event of a real life you would have been given instructions.