--- byte.c 2008-01-30 22:31:40.000000000 -0500 +++ byte.c 2015-01-23 18:55:19.000000000 -0500 @@ -21,6 +21,6 @@ #include "scm.h" -char s_make_bytes[] = "make-bytes"; -SCM scm_make_bytes(k, n) +static const char s_make_bytes[] = "make-bytes"; +static SCM scm_make_bytes(k, n) SCM k, n; { @@ -39,5 +39,5 @@ } #define s_bytes (s_make_bytes+5) -SCM scm_bytes(ints) +static SCM scm_bytes(ints) SCM ints; { @@ -55,6 +55,6 @@ return res; } -static char s_bt_ref[] = "byte-ref"; -SCM scm_byte_ref(str, k) +static const char s_bt_ref[] = "byte-ref"; +static SCM scm_byte_ref(str, k) SCM str, k; { @@ -64,6 +64,6 @@ return MAKINUM(UCHARS(str)[INUM(k)]); } -static char s_bt_set[] = "byte-set!"; -SCM scm_byte_set(str, k, n) +static const char s_bt_set[] = "byte-set!"; +static SCM scm_byte_set(str, k, n) SCM str, k, n; { @@ -75,6 +75,6 @@ return UNSPECIFIED; } -static char s_bytes2list[] = "bytes->list"; -SCM scm_bytes2list(str) +static const char s_bytes2list[] = "bytes->list"; +static SCM scm_bytes2list(str) SCM str; { @@ -87,6 +87,6 @@ return res; } -static char s_bt_reverse[] = "bytes-reverse!"; -SCM scm_bytes_reverse(str) +static const char s_bt_reverse[] = "bytes-reverse!"; +static SCM scm_bytes_reverse(str) SCM str; { @@ -103,6 +103,6 @@ return str; } -static char s_write_byte[] = "write-byte"; -SCM scm_write_byte(chr, port) +static const char s_write_byte[] = "write-byte"; +static SCM scm_write_byte(chr, port) SCM chr, port; { @@ -114,6 +114,6 @@ return UNSPECIFIED; } -static char s_read_byte[] = "read-byte"; -SCM scm_read_byte(port) +static const char s_read_byte[] = "read-byte"; +static SCM scm_read_byte(port) SCM port; { @@ -126,6 +126,6 @@ } -static char s_sub_rd[] = "subbytes-read!"; -SCM scm_subbytes_read(sstr, start, args) +static const char s_sub_rd[] = "subbytes-read!"; +static SCM scm_subbytes_read(sstr, start, args) SCM sstr, start, args; { @@ -173,6 +173,6 @@ } -static char s_sub_wr[] = "subbytes-write"; -SCM scm_subbytes_write(sstr, start, args) +static const char s_sub_wr[] = "subbytes-write"; +static SCM scm_subbytes_write(sstr, start, args) SCM sstr, start, args; { --- bytenumb.c 2013-03-24 19:37:38.000000000 -0400 +++ bytenumb.c 2015-01-23 18:55:19.000000000 -0500 @@ -27,5 +27,5 @@ #include "scm.h" -int get_bytes_length(obj) +static int get_bytes_length(obj) SCM obj; { @@ -47,8 +47,8 @@ } -static char s_wrong_length[] = "wrong length"; +static const char s_wrong_length[] = "wrong length"; static SCM list_of_0; -char * get_bytes(obj, minlen, s_name) +static void * get_bytes(obj, minlen, s_name) SCM obj; int minlen; @@ -60,13 +60,15 @@ obj, ARG1, s_name); { +#ifndef RECKLESS int byvlen = get_bytes_length(obj); +#endif ASRTER((minlen < 0) ? byvlen >= -minlen : byvlen == minlen, MAKINUM(byvlen), s_wrong_length, s_name); - return (char*)scm_addr(cons(obj, list_of_0), s_name); + return scm_addr(cons(obj, list_of_0), s_name); } } -static char s_bytes_to_integer[] = "bytes->integer"; -SCM scm_bytes_to_integer(sbyts, sn) +static const char s_bytes_to_integer[] = "bytes->integer"; +static SCM scm_bytes_to_integer(sbyts, sn) SCM sbyts; SCM sn; @@ -76,5 +78,5 @@ { int cnt = abs(n); - char *byts = get_bytes(sbyts, -cnt, s_bytes_to_integer); + const unsigned char *byts = get_bytes(sbyts, -cnt, s_bytes_to_integer); int iu = 0, id = cnt - sizeof(BIGDIG); sizet ndigs = (cnt + sizeof(BIGDIG) - 1) / sizeof(BIGDIG); @@ -88,5 +90,5 @@ for (; j < sizeof(BIGDIG); j++) { dig = (dig<<8) + - (0xFF ^ ((id + j >= 0) ? (((unsigned char *)byts)[id + j]) : 255)); + (0xFF ^ ((id + j >= 0) ? byts[id + j] : 255)); /* printf("byts[%d + %d] = %lx\n", id, j, 0xFF & dig); */ } @@ -102,5 +104,5 @@ for (; j < sizeof(BIGDIG); j++) { dig = (dig<<8) + - ((id + j >= 0) ? (((unsigned char *)byts)[id + j]) : 0); + ((id + j >= 0) ? byts[id + j] : 0); } digs[iu] = dig; @@ -112,6 +114,6 @@ } -static char s_integer_to_bytes[] = "integer->bytes"; -SCM scm_integer_to_bytes(sn, slen) +static const char s_integer_to_bytes[] = "integer->bytes"; +static SCM scm_integer_to_bytes(sn, slen) SCM sn; SCM slen; @@ -150,5 +152,5 @@ sizet j = sizeof(BIGDIG); dig = (iu < ndigs) ? digs[iu] : 0; - dig = dig ^ ((1 << (8 * sizeof(BIGDIG))) - 1); + dig = dig ^ ((1UL << (8 * sizeof(BIGDIG))) - 1); /* printf("j = %d; id = %d; iu = %d; dig = %04x; borrow = %d\n", j, id, iu, dig, borrow); */ for (; 0 < j-- && 0 <= id;) { @@ -156,5 +158,5 @@ int dg = (0xFF & dig) + borrow; borrow = dg >> 8; - ((unsigned char *)byts)[id--] = dg; + byts[id--] = dg; dig = (dig)>>8; } @@ -167,5 +169,5 @@ for (; 0 < j-- && 0 <= id;) { /* printf("byts[%d] = %02x\n", id, 0xFF & dig); */ - ((unsigned char *)byts)[id--] = 0xFF & dig; + byts[id--] = 0xFF & dig; dig = (dig>>8); } @@ -177,23 +179,23 @@ } -static char s_bytes_to_ieee_float[] = "bytes->ieee-float"; -SCM scm_bytes_to_ieee_float(sbyts) +static const char s_bytes_to_ieee_float[] = "bytes->ieee-float"; +static SCM scm_bytes_to_ieee_float(sbyts) SCM sbyts; { - char *byts = get_bytes(sbyts, 4, s_bytes_to_ieee_float); + const unsigned char *byts = get_bytes(sbyts, 4, s_bytes_to_ieee_float); int len = LENGTH(sbyts); - int s = (1<<(7)) & ((((unsigned char*)(byts))[0])); - int e = ((0x7f&((((unsigned char*)(byts))[0])))<<1) - + ((0x80&((((unsigned char*)(byts))[1])))>>7); - float f = (((unsigned char*)(byts))[ -1 + (len)]); + int s = (1<<(7)) & (((byts)[0])); + int e = ((0x7f&(((byts))[0]))<<1) + + ((0x80&((((byts))[1])))>>7); + float f = (((byts))[ -1 + (len)]); int idx = -2 + (len); while (!((idx)<=1)) { { int T_idx = -1 + (idx); - f = ((((unsigned char*)(byts))[idx])) + ((f) / 0x100); + f = ((((byts))[idx])) + ((f) / 0x100); idx = T_idx; } } - f = ((0x7f&((((unsigned char*)(byts))[1]))) + ((f) / 0x100)) / 0x80; + f = ((0x7f&((((byts))[1]))) + ((f) / 0x100)) / 0x80; if ((0<(e)) && ((e)<0xff)) @@ -207,23 +209,23 @@ } -static char s_bytes_to_ieee_double[] = "bytes->ieee-double"; -SCM scm_bytes_to_ieee_double(sbyts) +static const char s_bytes_to_ieee_double[] = "bytes->ieee-double"; +static SCM scm_bytes_to_ieee_double(sbyts) SCM sbyts; { - char *byts = get_bytes(sbyts, 8, s_bytes_to_ieee_double); + const unsigned char *byts = get_bytes(sbyts, 8, s_bytes_to_ieee_double); int len = LENGTH(sbyts); - int s = (1<<(7)) & ((((unsigned char*)(byts))[0])); - int e = ((0x7f&((((unsigned char*)(byts))[0])))<<4) - + ((0xf0&((((unsigned char*)(byts))[1])))>>4); - double f = (((unsigned char*)(byts))[ -1 + (len)]); + int s = (1<<(7)) & ((((byts))[0])); + int e = ((0x7f&((((byts))[0])))<<4) + + ((0xf0&((((byts))[1])))>>4); + double f = (((byts))[ -1 + (len)]); int idx = -2 + (len); while (!((idx)<=1)) { { int T_idx = -1 + (idx); - f = ((((unsigned char*)(byts))[idx])) + ((f) / 0x100); + f = ((((byts))[idx])) + ((f) / 0x100); idx = T_idx; } } - f = ((0xf&((((unsigned char*)(byts))[1]))) + ((f) / 0x100)) / 0x10; + f = ((0xf&((((byts))[1]))) + ((f) / 0x100)) / 0x10; if ((0<(e)) && ((e)<0x7ff)) @@ -237,6 +239,6 @@ } -static char s_ieee_float_to_bytes[] = "ieee-float->bytes"; -SCM scm_ieee_float_to_bytes(in_flt) +static const char s_ieee_float_to_bytes[] = "ieee-float->bytes"; +static SCM scm_ieee_float_to_bytes(in_flt) SCM in_flt; { @@ -318,6 +320,6 @@ } -static char s_ieee_double_to_bytes[] = "ieee-double->bytes"; -SCM scm_ieee_double_to_bytes(in_flt) +static const char s_ieee_double_to_bytes[] = "ieee-double->bytes"; +static SCM scm_ieee_double_to_bytes(in_flt) SCM in_flt; { @@ -398,18 +400,18 @@ } -static char s_integer_byte_collate_M[] = "integer-byte-collate!"; -SCM scm_integer_byte_collate_M(byte_vector) +static const char s_integer_byte_collate_M[] = "integer-byte-collate!"; +static SCM scm_integer_byte_collate_M(byte_vector) SCM byte_vector; { - char* bv = get_bytes(byte_vector, -1, s_integer_byte_collate_M); + unsigned char* bv = get_bytes(byte_vector, -1, s_integer_byte_collate_M); bv[0] = 0x80^(bv[0]); return byte_vector; } -static char s_ieee_byte_collate_M[] = "ieee-byte-collate!"; -SCM scm_ieee_byte_collate_M(byte_vector) +static const char s_ieee_byte_collate_M[] = "ieee-byte-collate!"; +static SCM scm_ieee_byte_collate_M(byte_vector) SCM byte_vector; { - char* byv = get_bytes(byte_vector, 4, s_ieee_byte_collate_M); + unsigned char* byv = get_bytes(byte_vector, 4, s_ieee_byte_collate_M); int byvlen = get_bytes_length(byte_vector); if (0x80&(byv[0])) { @@ -425,9 +427,9 @@ } -static char s_ieee_byte_decollate_M[] = "ieee-byte-decollate!"; -SCM scm_ieee_byte_decollate_M(byte_vector) +static const char s_ieee_byte_decollate_M[] = "ieee-byte-decollate!"; +static SCM scm_ieee_byte_decollate_M(byte_vector) SCM byte_vector; { - char* byv = get_bytes(byte_vector, 4, s_ieee_byte_collate_M); + unsigned char* byv = get_bytes(byte_vector, 4, s_ieee_byte_collate_M); int byvlen = get_bytes_length(byte_vector); if (!(0x80&(byv[0]))) { --- continue.h 2008-02-19 00:12:54.000000000 -0500 +++ continue.h 2015-01-26 23:02:16.000000000 -0500 @@ -70,5 +66,9 @@ #ifdef sparc -# define FLUSH_REGISTER_WINDOWS asm("ta 3") +# ifdef __sparcv9 +# define FLUSH_REGISTER_WINDOWS asm("flushw") +# else +# define FLUSH_REGISTER_WINDOWS asm("ta 3") +# endif #else # define FLUSH_REGISTER_WINDOWS /* empty */ @@ -142,4 +138,6 @@ extern long thrown_value; +void init_storage P((STACKITEM *start, long init_heap_size)); +void mark_locations P((const STACKITEM x[], sizet n)); long stack_size P((STACKITEM *start)); CONTINUATION *make_root_continuation P((STACKITEM *stack_base)); --- crs.c 2009-10-21 15:41:30.000000000 -0400 +++ crs.c 2015-01-23 18:55:19.000000000 -0500 @@ -43,5 +43,5 @@ #define WIN(obj) ((WINDOW*)CDR(obj)) #define WINP(obj) (tc16_window==TYP16(obj)) -int freewindow(win) +static int freewindow(win) WINDOW *win; { @@ -50,9 +50,9 @@ return 0; } -int bwaddch(c, win) int c; WINDOW *win; {waddch(win, c);return c;} -int bwaddstr(str, win) char *str; WINDOW *win; {waddstr(win, str);return 0;} -sizet bwwrite(str, siz, num, win) +static int bwaddch(c, win) int c; WINDOW *win; {waddch(win, c);return c;} +static int bwaddstr(str, win) const char *str; WINDOW *win; {waddstr(win, str);return 0;} +static sizet bwwrite(str, siz, num, win) sizet siz, num; - char *str; WINDOW *win; + const char *str; WINDOW *win; { sizet i = 0, prod = siz*num; @@ -74,5 +74,5 @@ freewindow}; -SCM mkwindow(win) +static SCM mkwindow(win) WINDOW *win; { @@ -85,6 +85,6 @@ } -SCM *loc_stdscr = 0; -SCM linitscr() +static SCM *loc_stdscr = NULL; +static SCM linitscr(void) { WINDOW *win; @@ -96,5 +96,5 @@ return *loc_stdscr = mkwindow(win); } -SCM lendwin() +static SCM lendwin(void) { if (IMP(*loc_stdscr)) return BOOL_F; @@ -102,7 +102,7 @@ } -static char s_newwin[] = "newwin", s_subwin[] = "subwin", s_mvwin[] = "mvwin", +static const char s_newwin[] = "newwin", s_subwin[] = "subwin", s_mvwin[] = "mvwin", s_overlay[] = "overlay", s_overwrite[] = "overwrite"; -SCM lnewwin(lines, cols, args) +static SCM lnewwin(lines, cols, args) SCM lines, cols, args; { @@ -121,5 +121,5 @@ } -SCM lmvwin(win, y, x) +static SCM lmvwin(win, y, x) SCM win, y, x; { @@ -130,5 +130,5 @@ } -SCM lsubwin(win, lines, args) +static SCM lsubwin(win, lines, args) SCM win, lines, args; { @@ -150,5 +150,5 @@ } -SCM loverlay(srcwin, dstwin) +static SCM loverlay(srcwin, dstwin) SCM srcwin, dstwin; { @@ -158,5 +158,5 @@ } -SCM loverwrite(srcwin, dstwin) +static SCM loverwrite(srcwin, dstwin) SCM srcwin, dstwin; { @@ -166,7 +166,7 @@ } -static char s_wmove[] = "wmove", s_wadd[] = "wadd", s_winsch[] = "winsch", +static const char s_wmove[] = "wmove", s_wadd[] = "wadd", s_winsch[] = "winsch", s_box[] = "box"; -SCM lwmove(win, y, x) +static SCM lwmove(win, y, x) SCM win, y, x; { @@ -177,5 +177,5 @@ } -SCM lwadd(win, obj) +static SCM lwadd(win, obj) SCM win, obj; { @@ -189,5 +189,5 @@ } -SCM lwinsch(win, obj) +static SCM lwinsch(win, obj) SCM win, obj; { @@ -199,5 +199,5 @@ } -SCM lbox(win, vertch, horch) +static SCM lbox(win, vertch, horch) SCM win, vertch, horch; { @@ -217,6 +217,6 @@ } -static char s_getyx[] = "getyx", s_winch[] = "winch", s_unctrl[] = "unctrl"; -SCM lgetyx(win) +static const char s_getyx[] = "getyx", s_winch[] = "winch", s_unctrl[] = "unctrl"; +static SCM lgetyx(win) SCM win; { @@ -227,5 +227,5 @@ } -SCM lwinch(win) +static SCM lwinch(win) SCM win; { @@ -234,16 +234,16 @@ } -SCM lunctrl(c) +static SCM lunctrl(c) SCM c; { ASRTER(ICHRP(c), c, ARG1, s_unctrl); { - char *str = unctrl(ICHR(c)); + const char *str = unctrl(ICHR(c)); return makfrom0str(str); } } -static char s_owidth[] = "output-port-width"; -static char s_oheight[] = "output-port-height"; -SCM owidth(arg) +static const char s_owidth[] = "output-port-width"; +static const char s_oheight[] = "output-port-height"; +static SCM owidth(arg) SCM arg; { @@ -256,20 +256,21 @@ return MAKINUM(80); } -SCM oheight(arg) +static SCM oheight(arg) SCM arg; { if (UNBNDP(arg)) arg = cur_outp; ASRTER(NIMP(arg) && OPOUTPORTP(arg), arg, ARG1, s_owidth); - if (NIMP(*loc_stdscr)) + if (NIMP(*loc_stdscr)) { if (WINP(arg)) return MAKINUM(WIN(arg)->_maxy+1); else return MAKINUM(LINES); + } return MAKINUM(24); } -SCM lrefresh() +static SCM lrefresh() { return MAKINUM(wrefresh(curscr)); } -#define SUBR0(lname, name) SCM lname(){name();return UNSPECIFIED;} +#define SUBR0(lname, name) static SCM lname(){name();return UNSPECIFIED;} SUBR0(lnl, nl) SUBR0(lnonl, nonl) @@ -283,5 +284,5 @@ SUBR0(lresetty, resetty) -static char s_nonl[] = "nonl", s_nocbreak[] = "nocbreak", +static const char s_nonl[] = "nonl", s_nocbreak[] = "nocbreak", s_noecho[] = "noecho", s_noraw[] = "noraw"; @@ -302,6 +303,6 @@ {0, 0}}; -#define SUBRW(ln, n, s_n, sn) static char s_n[]=sn;\ - SCM ln(w)SCM w;\ +#define SUBRW(ln, n, s_n, sn) static const char s_n[]=sn;\ + static SCM ln(w)SCM w;\ {ASRTER(NIMP(w) && WINP(w), w, ARG1, sn);\ return ERR==n(WIN(w))?BOOL_F:BOOL_T;} @@ -336,6 +337,6 @@ {0, 0}}; -#define SUBROPT(ln, n, s_n, sn) static char s_n[]=sn;\ - SCM ln(w, b)SCM w, b;\ +#define SUBROPT(ln, n, s_n, sn) static const char s_n[]=sn;\ + static SCM ln(w, b)SCM w, b;\ {ASRTER(NIMP(w) && WINP(w), w, ARG1, sn);\ return ERR==n(WIN(w), BOOL_F != b)?BOOL_F:BOOL_T;} @@ -347,6 +348,6 @@ /* SUBROPT(lclearok, clearok, s_clearok, "clearok") */ -static char s_clearok[] = "clearok"; -SCM lclearok(w, b) SCM w, b; +static const char s_clearok[] = "clearok"; +static SCM lclearok(w, b) SCM w, b; { if (BOOL_T==w) return ERR==clearok(curscr, BOOL_F != b)?BOOL_F:BOOL_T; --- debug.c 2008-01-30 22:31:48.000000000 -0500 +++ debug.c 2015-01-23 18:55:19.000000000 -0500 @@ -291,5 +291,8 @@ int writing; { - SCM env, linum = UNDEFINED; + SCM env; +#ifdef CAUTIOUS + SCM linum = UNDEFINED; +#endif proc = CODE(proc); lputs("#b ? b : a) -I32 *long_subarray(ra, start, end) - I32 *ra; int start, end; +static const void *I32_subarray(_ra, start, end) + const void *_ra; int start, end; { + const I32 *ra = _ra; return &(ra[start]); } -short *short_subarray(ra, start, end) - short *ra; int start, end; +static const void *short_subarray(_ra, start, end) + const void *_ra; int start, end; { + const short *ra = _ra; return &(ra[start]); } -char *char_subarray(ra, start, end) - char *ra; int start, end; +static const void *char_subarray(_ra, start, end) + const void *_ra; int start, end; { + const char *ra = _ra; return &(ra[start]); } -int long_array_refsEql_P(a, x, m, b, y, n) +static int long_array_refsEql_P(a, x, m, b, y, n) I32 *a; int x, m; I32 *b; int y, n; { return (a[x])==(b[y]); } -int long_array_refs_revEql_P(a, x, m, b, y, n) - I32 *a; int x, m; I32 *b; int y, n; +static int long_array_refs_revEql_P(a, x, m, b, y, n) + const I32 *a; int x, m; const I32 *b; int y, n; { /* if (x > m) printf("long x(%d) > m(%d)\n", x, m); */ @@ -94,11 +106,11 @@ return a[(m)-(x)-1]==b[(n)-(y)-1]; } -int short_array_refsEql_P(a, x, m, b, y, n) - short *a; int x, m; short *b; int y, n; +static int short_array_refsEql_P(a, x, m, b, y, n) + const short *a; int x, m; const short *b; int y, n; { return (a[x])==(b[y]); } -int short_array_refs_revEql_P(a, x, m, b, y, n) - short *a; int x, m; short *b; int y, n; +static int short_array_refs_revEql_P(a, x, m, b, y, n) + const short *a; int x, m; const short *b; int y, n; { /* if (x > m) printf("short x(%d) > m(%d)\n", x, m); */ @@ -106,11 +118,11 @@ return a[(m)-(x)-1]==b[(n)-(y)-1]; } -int char_array_refsEql_P(a, x, m, b, y, n) - char *a; int x, m; char *b; int y, n; +static int char_array_refsEql_P(a, x, m, b, y, n) + const char *a; int x, m; const char *b; int y, n; { return (a[x])==(b[y]); } -int char_array_refs_revEql_P(a, x, m, b, y, n) - char *a; int x, m; char *b; int y, n; +static int char_array_refs_revEql_P(a, x, m, b, y, n) + const char *a; int x, m; const char *b; int y, n; { /* if (x > m) printf("char x(%d) > m(%d)\n", x, m); */ @@ -120,5 +132,5 @@ fp_procs long_procs = - {long_subarray, + {I32_subarray, long_array_refsEql_P, long_array_refs_revEql_P}; @@ -136,7 +148,7 @@ int fpoff; I32 *cc; - void *a; + const void *a; int m; - void *b; + const void *b; int n; int_function array_refsEql_P; @@ -189,7 +201,7 @@ int fpoff; int k; - void *a; + const void *a; int m; - void *b; + const void *b; int n; int_function array_refsEql_P; @@ -228,6 +240,6 @@ int diff_mid_split(n, rr, cc, cost) int n; - I32 *rr; - I32 *cc; + const I32 *rr; + const I32 *cc; int cost; { @@ -276,8 +288,8 @@ int fpoff; I32 *ccrr; - void *a; + const void *a; int start_a; int end_a; - void *b; + const void *b; int start_b; int end_b; @@ -285,5 +297,5 @@ int edx; int epo; - fp_procs *procs; + const fp_procs *procs; int p_lim; { @@ -320,8 +332,8 @@ int fpoff; I32 *ccrr; - void *a; + const void *a; int start_a; int end_a; - void *b; + const void *b; int start_b; int end_b; @@ -329,5 +341,5 @@ int edx; int epo; - fp_procs *procs; + const fp_procs *procs; int p_lim; { @@ -370,8 +382,8 @@ int fpoff; I32 *ccrr; - void *a; + const void *a; int start_a; int end_a; - void *b; + const void *b; int start_b; int end_b; @@ -379,5 +391,5 @@ int edx; int epo; - fp_procs *procs; + const fp_procs *procs; int p_lim; { @@ -450,6 +462,6 @@ } -void check_cost(name, est, cost) - unsigned char *name; +static void check_cost(name, est, cost) + const char *name; int est; int cost; @@ -464,7 +476,7 @@ /* Return the fp_procs appropriate for SCM array prototype */ -fp_procs *raprot2procs(prot, s_name) +static fp_procs *raprot2procs(prot, s_name) SCM prot; - char *s_name; + const char *s_name; { fp_procs *procs; @@ -481,17 +493,17 @@ static SCM list_of_0; -void* array2addr(RA, prot, pos, s_name) +static void* array2addr(RA, prot, pos, s_name) SCM RA, prot; - char *pos; - char s_name[]; + intptr_t pos; + const char s_name[]; { ASRTER(BOOL_T==arrayp(RA, UNDEFINED) && array_prot(RA)==prot, RA, - pos, s_name); + (const char *)pos, s_name); return scm_addr(cons(RA, list_of_0), s_name); } /* A not longer than B (M <= N) */ -static char s_d2es[] = "diff2edits!"; -static char s_incomp[] = "incompatible array types"; +static const char s_d2es[] = "diff2edits!"; +static const char s_incomp[] = "incompatible array types"; SCM diff2edits(Edits, Fp, Args) SCM Edits, Fp, Args; /* Ccrr, A, B; */ @@ -533,5 +545,5 @@ /* A not longer than B (M <= N) */ -static char s_d2el[] = "diff2editlen"; +static const char s_d2el[] = "diff2editlen"; SCM diff2editlen(Fp, A, Args) SCM Fp, A, Args; /* B, P_lim */ @@ -573,5 +585,5 @@ } -static char s_Idiffer[] = "Idiffer.scm"; +static const char s_Idiffer[] = "Idiffer.scm"; void init_differ() { --- dynl.c 2013-04-06 21:49:18.000000000 -0400 +++ dynl.c 2015-01-23 18:55:19.000000000 -0500 @@ -45,5 +45,5 @@ } -static char s_link[] = "dyn:link", s_call[] = "dyn:call"; +static const char s_link[] = "dyn:link", s_call[] = "dyn:call"; SCM l_dyn_link(fname) SCM fname; @@ -82,5 +82,5 @@ return BOOL_T; } -static char s_main_call[] = "dyn:main-call"; +static const char s_main_call[] = "dyn:main-call"; SCM l_dyn_main_call(symb, shl, args) SCM symb, shl, args; @@ -113,5 +113,5 @@ } -static char s_unlink[] = "dyn:unlink"; +static const char s_unlink[] = "dyn:unlink"; SCM l_dyn_unlink(fname) SCM fname; @@ -165,5 +165,5 @@ static smobfuns shlsmob = {mark0, free0, prinshl}; -static char s_link[] = "dyn:link", s_call[] = "dyn:call"; +static const char s_link[] = "dyn:link", s_call[] = "dyn:call"; SCM l_dyn_link(fname) SCM fname; @@ -207,5 +207,5 @@ } -static char s_main_call[] = "dyn:main-call"; +static const char s_main_call[] = "dyn:main-call"; SCM l_dyn_main_call(symb, shl, args) SCM symb, shl, args; @@ -235,5 +235,5 @@ } -static char s_unlink[] = "dyn:unlink"; +static const char s_unlink[] = "dyn:unlink"; SCM l_dyn_unlink(shl) SCM shl; @@ -288,5 +288,5 @@ return(x);} -static char s_dynl[] = "vms:dynamic-link-call"; +static const char s_dynl[] = "vms:dynamic-link-call"; SCM dynl(dir, symbol, fname) SCM dir, symbol, fname; @@ -340,5 +340,5 @@ # endif -sizet frshl(ptr) +static sizet frshl(ptr) CELLPTR ptr; { @@ -352,5 +352,5 @@ } -int prinshl(exp, port, writing) +static int prinshl(exp, port, writing) SCM exp; SCM port; int writing; { @@ -363,6 +363,6 @@ static smobfuns shlsmob = {mark0, frshl, prinshl}; -static char s_link[] = "dyn:link", s_call[] = "dyn:call"; -SCM l_dyn_link(fname) +static const char s_link[] = "dyn:link", s_call[] = "dyn:call"; +static SCM l_dyn_link(fname) SCM fname; { @@ -393,5 +393,5 @@ } -SCM l_dyn_call(symb, shl) +static SCM l_dyn_call(symb, shl) SCM symb, shl; { @@ -419,6 +419,6 @@ return BOOL_T; } -static char s_main_call[] = "dyn:main-call"; -SCM l_dyn_main_call(symb, shl, args) +static const char s_main_call[] = "dyn:main-call"; +static SCM l_dyn_main_call(symb, shl, args) SCM symb, shl, args; { @@ -453,6 +453,6 @@ } -static char s_unlink[] = "dyn:unlink"; -SCM l_dyn_unlink(shl) +static const char s_unlink[] = "dyn:unlink"; +static SCM l_dyn_unlink(shl) SCM shl; { @@ -490,5 +490,5 @@ # define SHL(obj) ((void*)CDR(obj)) -sizet frshl(ptr) +static sizet frshl(ptr) CELLPTR ptr; { @@ -502,5 +502,5 @@ } -int prinshl(exp, port, writing) +static int prinshl(exp, port, writing) SCM exp; SCM port; int writing; { @@ -513,6 +513,6 @@ static smobfuns shlsmob = {mark0, frshl, prinshl}; -static char s_link[] = "dyn:link", s_call[] = "dyn:call"; -SCM l_dyn_link(fname) +static const char s_link[] = "dyn:link", s_call[] = "dyn:call"; +static SCM l_dyn_link(fname) SCM fname; { @@ -545,5 +545,5 @@ } -SCM l_dyn_call(symb, shl) +static SCM l_dyn_call(symb, shl) SCM symb, shl; { @@ -574,6 +574,6 @@ return BOOL_T; } -static char s_main_call[] = "dyn:main-call"; -SCM l_dyn_main_call(symb, shl, args) +static const char s_main_call[] = "dyn:main-call"; +static SCM l_dyn_main_call(symb, shl, args) SCM symb, shl, args; { @@ -610,6 +610,6 @@ } -static char s_unlink[] = "dyn:unlink"; -SCM l_dyn_unlink(shl) +static const char s_unlink[] = "dyn:unlink"; +static SCM l_dyn_unlink(shl) SCM shl; { @@ -646,5 +646,5 @@ # include # define SHL(obj) ((HINSTANCE)(CDR(obj))) -int prinshl(exp, port, writing) +static int prinshl(exp, port, writing) SCM exp; SCM port; int writing; { @@ -658,6 +658,6 @@ static smobfuns shlsmob = {mark0, free0, prinshl}; -static char s_link[] = "dyn:link"; -SCM scm_dyn_link(fname) +static const char s_link[] = "dyn:link"; +static SCM scm_dyn_link(fname) SCM fname; { @@ -677,6 +677,6 @@ } -static char s_unlink[] = "dyn:unlink"; -SCM scm_dyn_unlink(shl) +static const char s_unlink[] = "dyn:unlink"; +static SCM scm_dyn_unlink(shl) SCM shl; { @@ -689,6 +689,6 @@ } -static char s_call[] = "dyn:call"; -SCM scm_dyn_call(symb, shl) +static const char s_call[] = "dyn:call"; +static SCM scm_dyn_call(symb, shl) SCM symb, shl; { @@ -705,6 +705,6 @@ } -static char s_main_call[] = "dyn:main-call"; -SCM scm_dyn_main_call(symb, shl, args) +static const char s_main_call[] = "dyn:main-call"; +static SCM scm_dyn_main_call(symb, shl, args) SCM symb, shl, args; { --- edline.c 2008-01-30 22:31:53.000000000 -0500 +++ edline.c 2015-01-23 18:55:19.000000000 -0500 @@ -20,11 +20,11 @@ #include "scm.h" +#include +#include -char *readline P((const char *prompt)); -void add_history P((char *p)); /* Reads on stdin/stdout only */ -static char s_readline[] = "read-edited-line"; -SCM lreadline(prompt) +static const char s_readline[] = "read-edited-line"; +static SCM lreadline(prompt) SCM prompt; { @@ -41,6 +41,6 @@ return res; } -static char s_add_history[] = "add-history"; -SCM ladd_history(line) +static const char s_add_history[] = "add-history"; +static SCM ladd_history(line) SCM line; { @@ -49,15 +49,15 @@ return UNSPECIFIED; } -static char s_def_inport[] = "default-input-port"; -SCM def_inport() +static const char s_def_inport[] = "default-input-port"; +static SCM def_inport() { return def_inp; } -static char s_def_outport[] = "default-output-port"; -SCM def_outport() +static const char s_def_outport[] = "default-output-port"; +static SCM def_outport() { return def_outp; } -static char s_Iedline[] = "Iedline.scm"; +static const char s_Iedline[] = "Iedline.scm"; void init_edline() { --- eval.c 2013-04-06 21:52:40.000000000 -0400 +++ eval.c 2015-01-27 02:14:16.000000000 -0500 @@ -92,37 +92,33 @@ transformers. */ -SCM nconc2copy P((SCM x)); -SCM scm_cp_list P((SCM x, int minlen)); -SCM scm_v2lst P((long argc, SCM *argv, SCM end)); -SCM renamed_ident P((SCM id, SCM env)); -SCM eqv P((SCM x, SCM y)); -SCM scm_multi_set P((SCM syms, SCM vals)); -SCM eval_args P((SCM x)); -SCM m_quote P((SCM xorig, SCM env, SCM ctxt)); -SCM m_begin P((SCM xorig, SCM env, SCM ctxt)); -SCM m_if P((SCM xorig, SCM env, SCM ctxt)); -SCM m_set P((SCM xorig, SCM env, SCM ctxt)); -SCM m_and P((SCM xorig, SCM env, SCM ctxt)); -SCM m_or P((SCM xorig, SCM env, SCM ctxt)); -SCM m_cond P((SCM xorig, SCM env, SCM ctxt)); -SCM m_case P((SCM xorig, SCM env, SCM ctxt)); -SCM m_lambda P((SCM xorig, SCM env, SCM ctxt)); -SCM m_letstar P((SCM xorig, SCM env, SCM ctxt)); -SCM m_do P((SCM xorig, SCM env, SCM ctxt)); -SCM m_quasiquote P((SCM xorig, SCM env, SCM ctxt)); -SCM m_delay P((SCM xorig, SCM env, SCM ctxt)); -SCM m_define P((SCM xorig, SCM env, SCM ctxt)); -SCM m_letrec P((SCM xorig, SCM env, SCM ctxt)); -SCM m_let P((SCM xorig, SCM env, SCM ctxt)); -SCM m_apply P((SCM xorig, SCM env, SCM ctxt)); -SCM m_syn_quote P((SCM xorig, SCM env, SCM ctxt)); -SCM m_let_syntax P((SCM xorig, SCM env, SCM ctxt)); -SCM m_letrec_syntax P((SCM xorig, SCM env, SCM ctxt)); -SCM m_the_macro P((SCM xorig, SCM env, SCM ctxt)); -void scm_dynthrow P((SCM cont, SCM arg1, SCM arg2, SCM rest)); -void scm_egc P((void)); -void scm_estk_grow P((void)); -void scm_estk_shrink P((void)); -int badargsp P((SCM formals, SCM args)); +static SCM nconc2copy P((SCM x)); +static SCM scm_cp_list P((SCM x, int minlen)); +static SCM scm_v2lst P((long argc, SCM *argv, SCM end)); +static SCM scm_multi_set P((SCM syms, SCM vals)); +static SCM eval_args P((SCM x)); +static SCM m_quote P((SCM xorig, SCM env, SCM ctxt)); +static SCM m_begin P((SCM xorig, SCM env, SCM ctxt)); +static SCM m_if P((SCM xorig, SCM env, SCM ctxt)); +static SCM m_set P((SCM xorig, SCM env, SCM ctxt)); +static SCM m_and P((SCM xorig, SCM env, SCM ctxt)); +static SCM m_or P((SCM xorig, SCM env, SCM ctxt)); +static SCM m_cond P((SCM xorig, SCM env, SCM ctxt)); +static SCM m_case P((SCM xorig, SCM env, SCM ctxt)); +static SCM m_lambda P((SCM xorig, SCM env, SCM ctxt)); +static SCM m_letstar P((SCM xorig, SCM env, SCM ctxt)); +static SCM m_do P((SCM xorig, SCM env, SCM ctxt)); +static SCM m_quasiquote P((SCM xorig, SCM env, SCM ctxt)); +static SCM m_delay P((SCM xorig, SCM env, SCM ctxt)); +static SCM m_define P((SCM xorig, SCM env, SCM ctxt)); +static SCM m_letrec P((SCM xorig, SCM env, SCM ctxt)); +static SCM m_let P((SCM xorig, SCM env, SCM ctxt)); +static SCM m_apply P((SCM xorig, SCM env, SCM ctxt)); +#ifdef MACRO +static SCM m_syn_quote P((SCM xorig, SCM env, SCM ctxt)); +static SCM m_let_syntax P((SCM xorig, SCM env, SCM ctxt)); +static SCM m_letrec_syntax P((SCM xorig, SCM env, SCM ctxt)); +static SCM m_the_macro P((SCM xorig, SCM env, SCM ctxt)); +#endif +static int badargsp P((SCM formals, SCM args)); static SCM *lookupcar P((SCM vloc)); @@ -132,5 +128,9 @@ static SCM evalatomcar P((SCM x, int no_error)); static SCM evalcar P((SCM x)); +#ifdef MACRO static SCM id2sym P((SCM id)); +static int topdenote_eq P((SCM sym, SCM id, SCM env)); +static int prinid P((SCM exp, SCM port, int writing)); +#endif static SCM iqq P((SCM form)); static SCM m_body P((SCM xorig, SCM env, SCM ctxt)); @@ -151,8 +151,6 @@ static SCM m_expr P((SCM x, SCM env, SCM ctxt)); static void checked_define P((SCM name, SCM val, const char *what)); -static int topdenote_eq P((SCM sym, SCM id, SCM env)); static int constant_p P((SCM x)); static int prinenv P((SCM exp, SCM port, int writing)); -static int prinid P((SCM exp, SCM port, int writing)); static int prinmacro P((SCM exp, SCM port, int writing)); static int prinprom P((SCM exp, SCM port, int writing)); @@ -238,5 +236,5 @@ #ifdef MACRO long tc16_ident; /* synthetic macro identifier */ -static char s_escaped[] = "escaped synthetic identifier"; +static const char s_escaped[] = "escaped synthetic identifier"; # define KEYWORDP(x) (NIMP(x) && IM_KEYWORD==CAR(x)) # define KEYWORD_MACRO CDR @@ -317,5 +315,5 @@ SCM x; { - register CELLPTR ptr; + CELLPTR ptr; if (NCELLP(x)) return 0; ptr = (CELLPTR)SCM2PTR(x); @@ -377,9 +375,9 @@ #endif /* CAREFUL_INTS */ -SCM *ilookup(iloc) +static SCM *ilookup(iloc) SCM iloc; { - register int ir = IFRAME(iloc); - register SCM er, *eloc; + int ir = IFRAME(iloc); + SCM er, *eloc; #ifdef SCM_PROFILE ilookup_cases[ir<10 ? ir : 9] @@ -398,9 +396,9 @@ return &CAR(*eloc); } -SCM *farlookup(farloc) +static SCM *farlookup(farloc) SCM farloc; { - register int ir; - register SCM er; + int ir; + SCM er; SCM x = CDR(farloc); DEFER_INTS_EGC; @@ -417,7 +415,9 @@ } -char s_badenv[] = "damaged environment"; -static char s_lookup[] = "scm_env_lookup", +const char s_badenv[] = "damaged environment"; +static const char s_lookup[] = "scm_env_lookup", +#ifdef MACRO s_badkey[] = "Use of keyword as variable", +#endif s_unbnd[] = "unbound variable: ", s_wtap[] = "Wrong type to apply: ", @@ -861,6 +861,6 @@ } -static char s_values[] = "values"; -static char s_call_wv[] = "call-with-values"; +static const char s_values[] = "values"; +static const char s_call_wv[] = "call-with-values"; SCM scm_values(arg1, arg2, rest, what) SCM arg1, arg2, rest; @@ -877,15 +877,15 @@ * some memoized forms have different syntax */ -static char s_expression[] = "missing or extra expression"; -static char s_test[] = "bad test"; -static char s_body[] = "bad body"; -static char s_bindings[] = "bad bindings"; -static char s_variable[] = "bad variable"; -static char s_bad_else_clause[] = "bad ELSE clause"; -static char s_clauses[] = "bad or missing clauses"; -static char s_formals[] = "bad formals"; -static char s_expr[] = "bad expression"; +static const char s_expression[] = "missing or extra expression"; +static const char s_test[] = "bad test"; +static const char s_body[] = "bad body"; +static const char s_bindings[] = "bad bindings"; +static const char s_variable[] = "bad variable"; +static const char s_bad_else_clause[] = "bad ELSE clause"; +static const char s_clauses[] = "bad or missing clauses"; +static const char s_formals[] = "bad formals"; +static const char s_expr[] = "bad expression"; #define ASSYNT(_cond, _arg, _pos, _subr)\ - if (!(_cond))scm_experr(_arg, (char *)_pos, _subr); + if (!(_cond))scm_experr(_arg, (const char *)_pos, _subr); /* These symbols are needed by the reader, in repl.c */ @@ -1157,5 +1157,5 @@ { SCM v1, vs; - char *opstr = ISYMCHARS(op) + 2; + const char *opstr = ISYMCHARS(op) + 2; int argc = 0; vars = scm_check_linum(vars, 0L); @@ -1218,6 +1218,6 @@ static int env_depth() { - register int depth = 0; - register SCM env; + int depth = 0; + SCM env; DEFER_INTS_EGC; env = scm_env; @@ -1231,5 +1231,5 @@ int depth; { - register SCM env; + SCM env; DEFER_INTS_EGC; env = scm_env; @@ -1253,5 +1253,5 @@ #endif -static char s_nullenv_p[] = "scm_nullenv_p"; +static const char s_nullenv_p[] = "scm_nullenv_p"; int scm_nullenv_p(env) SCM env; @@ -1468,7 +1468,6 @@ } -extern char s_redefining[]; #ifndef RECKLESS -char s_built_in_syntax[] = "built-in syntax "; +static const char s_built_in_syntax[] = "built-in syntax "; # define s_syntax (&s_built_in_syntax[9]) #endif @@ -1993,6 +1992,6 @@ #endif -char s_map[] = "map", s_for_each[] = "for-each", s_eval[] = "@eval"; -char s_call_cc[] = "call-with-current-continuation"; /* s_apply[] = "apply"; */ +const char s_map[] = "map", s_for_each[] = "for-each", s_eval[] = "@eval"; +const char s_call_cc[] = "call-with-current-continuation"; /* s_apply[] = "apply"; */ /* static int checking_defines_p(ctxt) SCM ctxt; */ @@ -2055,9 +2054,9 @@ } -SCM scm_apply_cxr(proc, arg1) +static SCM scm_apply_cxr(proc, arg1) SCM proc, arg1; { - double y; #ifdef FLOATS + double y; if (SUBRF(proc)) { if (INUMP(arg1)) { @@ -2821,6 +2820,6 @@ } -static char s_proc_doc[] = "procedure-documentation"; -SCM l_proc_doc(proc) +static const char s_proc_doc[] = "procedure-documentation"; +static SCM l_proc_doc(proc) SCM proc; { @@ -3169,5 +3168,5 @@ int argc; { - register SCM z; + SCM z; NEWCELL(z); SETCODE(z, code); @@ -3186,5 +3185,5 @@ SCM code; { - register SCM z; + SCM z; NEWCELL(z); CDR(z) = code; @@ -3210,5 +3209,5 @@ const char *what; { - register SCM z; + SCM z; ASRTER(scm_arity_check(code, (MAC_PRIMITIVE & flags ? 3L : 2L), (char *)0), code, ARG1, what); @@ -3218,5 +3217,5 @@ return z; } -static char s_makacro[] = "procedure->syntax"; +static const char s_makacro[] = "procedure->syntax"; SCM makacro(code) SCM code; @@ -3224,5 +3223,5 @@ return makro(code, MAC_ACRO, s_makacro); } -static char s_makmacro[] = "procedure->macro"; +static const char s_makmacro[] = "procedure->macro"; SCM makmacro(code) SCM code; @@ -3230,5 +3229,5 @@ return makro(code, MAC_MACRO, s_makmacro); } -static char s_makmmacro[] = "procedure->memoizing-macro"; +static const char s_makmmacro[] = "procedure->memoizing-macro"; SCM makmmacro(code) SCM code; @@ -3236,5 +3235,5 @@ return makro(code, MAC_MMACRO, s_makmmacro); } -static char s_makidmacro[] = "procedure->identifier-macro"; +static const char s_makidmacro[] = "procedure->identifier-macro"; SCM makidmacro(code) SCM code; @@ -3251,6 +3250,6 @@ (BEGIN #F) will be returned instead of #F if #F is the result. */ -static char s_macroexpand1[] = "@macroexpand1"; -SCM scm_macroexpand1(x, env) +static const char s_macroexpand1[] = "@macroexpand1"; +static SCM scm_macroexpand1(x, env) SCM x, env; { @@ -3276,6 +3275,6 @@ } -static char s_eval_syntax[] = "eval-syntax"; -SCM scm_eval_syntax(x, env) +static const char s_eval_syntax[] = "eval-syntax"; +static SCM scm_eval_syntax(x, env) SCM x, env; { @@ -3403,6 +3402,6 @@ } -static char s_definedp[] = "defined?"; -SCM definedp(xorig, env, ctxt) +static const char s_definedp[] = "defined?"; +static SCM definedp(xorig, env, ctxt) SCM xorig, env, ctxt; { @@ -3422,5 +3421,5 @@ #ifdef MACRO -static char s_identp[] = "identifier?"; +static const char s_identp[] = "identifier?"; SCM identp(obj) SCM obj; @@ -3429,5 +3428,5 @@ } -static char s_ident_eqp[] = "identifier-equal?"; +static const char s_ident_eqp[] = "identifier-equal?"; SCM ident_eqp(id1, id2, env) SCM id1, id2, env; @@ -3454,5 +3453,5 @@ } -static char s_ident2sym[] = "identifier->symbol"; +static const char s_ident2sym[] = "identifier->symbol"; SCM ident2sym(id) SCM id; @@ -3463,5 +3462,5 @@ } -static char s_renamed_ident[] = "renamed-identifier"; +static const char s_renamed_ident[] = "renamed-identifier"; SCM renamed_ident(id, env) SCM id, env; @@ -3500,5 +3499,5 @@ } -static char s_syn_quote[] = "syntax-quote"; +static const char s_syn_quote[] = "syntax-quote"; SCM m_syn_quote(xorig, env, ctxt) SCM xorig, env, ctxt; @@ -3508,6 +3507,6 @@ } -static char s_defsyntax[] = "defsyntax"; -SCM m_defsyntax(xorig, env, ctxt) +static const char s_defsyntax[] = "defsyntax"; +static SCM m_defsyntax(xorig, env, ctxt) SCM xorig, env, ctxt; { @@ -3541,5 +3540,5 @@ return cons2(IM_LET_SYNTAX, env, m_body(body, env, ctxt)); } -static char s_letrec_syntax[] = "letrec-syntax"; +static const char s_letrec_syntax[] = "letrec-syntax"; SCM m_letrec_syntax(xorig, env, ctxt) SCM xorig, env, ctxt; @@ -3564,5 +3563,5 @@ } -static char s_the_macro[] = "the-macro"; +static const char s_the_macro[] = "the-macro"; SCM m_the_macro(xorig, env, ctxt) SCM xorig, env, ctxt; @@ -3624,5 +3623,5 @@ #endif -SCM make_synt(name, flags, fcn) +static SCM make_synt(name, flags, fcn) const char *name; long flags; @@ -3638,10 +3637,10 @@ return CAR(symcell); } -SCM make_specfun(name, typ, flags) - char *name; +static SCM make_specfun(name, typ, flags) + const char *name; int typ, flags; { SCM symcell = sysintern(name, UNDEFINED); - register SCM z; + SCM z; NEWCELL(z); CAR(z) = (long)typ | ((long)flags)<<16; --- findexec.c 2012-12-18 23:00:10.000000000 -0500 +++ findexec.c 2015-01-23 18:55:19.000000000 -0500 @@ -132,4 +132,6 @@ # endif +#include "scm.h" + static char *copy_of(s) register const char *s; @@ -154,6 +156,6 @@ const char *name; { - char *search; - register char *p; + const char *search; + const char *p; char tbuf[MAXPATHLEN]; @@ -173,6 +175,6 @@ } - if (((search = (char *) getenv("DLDPATH")) == 0) && - ((search = (char *) getenv("PATH")) == 0)) + if (((search = getenv("DLDPATH")) == 0) && + ((search = getenv("PATH")) == 0)) search = DEFAULT_PATH; --- gmalloc.c 2008-01-30 22:44:00.000000000 -0500 +++ gmalloc.c 2015-01-23 18:55:19.000000000 -0500 @@ -1622,5 +1622,5 @@ #endif #else -#ifndef __osf__ /* declared in */ +#ifndef __FreeBSD__ /* declared in */ #ifndef hpux /* declared in */ #ifndef __svr4__ /* declared in */ --- gsubr.c 2008-01-30 22:32:00.000000000 -0500 +++ gsubr.c 2015-01-23 18:55:19.000000000 -0500 @@ -31,35 +31,7 @@ static SCM f_gsubr_apply; -SCM make_gsubr(name, req, opt, rst, fcn) - const char *name; - int req, opt, rst; - SCM (*fcn)(); -{ - switch GSUBR_MAKTYPE(req, opt, rst) { - case GSUBR_MAKTYPE(0, 0, 0): return make_subr(name, tc7_subr_0, fcn); - case GSUBR_MAKTYPE(1, 0, 0): return make_subr(name, tc7_subr_1, fcn); - case GSUBR_MAKTYPE(0, 1, 0): return make_subr(name, tc7_subr_1o, fcn); - case GSUBR_MAKTYPE(1, 1, 0): return make_subr(name, tc7_subr_2o, fcn); - case GSUBR_MAKTYPE(2, 0, 0): return make_subr(name, tc7_subr_2, fcn); - case GSUBR_MAKTYPE(3, 0, 0): return make_subr(name, tc7_subr_3, fcn); - case GSUBR_MAKTYPE(0, 0, 1): return make_subr(name, tc7_lsubr, fcn); - case GSUBR_MAKTYPE(2, 0, 1): return make_subr(name, tc7_lsubr_2, fcn); - default: - { - SCM symcell = sysintern(name, UNDEFINED); - SCM z = scm_maksubr(name, tc7_subr_0, fcn); - SCM cclo = makcclo(f_gsubr_apply, 3L); - ASRTER(GSUBR_MAX >= req + opt + rst, MAKINUM(req + opt + rst), - OUTOFRANGE, "make_gsubr"); - GSUBR_PROC(cclo) = z; - GSUBR_TYPE(cclo) = MAKINUM(GSUBR_MAKTYPE(req, opt, rst)); - CDR(symcell) = cclo; - return cclo; - } - } -} -char s_gsubr_apply[] = " gsubr-apply"; -SCM gsubr_apply(args) +static const char s_gsubr_apply[] = " gsubr-apply"; +static SCM gsubr_apply(args) SCM args; { @@ -69,5 +41,4 @@ int i, n = GSUBR_REQ(typ) + GSUBR_OPT(typ) + GSUBR_REST(typ); SCM v[10]; - if (n > 10) wta(self, "internal programming error", s_gsubr_apply); args = CDR(args); for (i = 0; i < GSUBR_REQ(typ); i++) { @@ -101,9 +72,8 @@ case 9: return (*fcn)(v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7], v[8]); case 10: return (*fcn)(v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7], v[8], v[9]); + default: wta(self, "internal programming error", s_gsubr_apply); } } -SCM_DLL_EXPORT void init_gsubr P((void)); - void init_gsubr() { --- ioext.c 2010-04-01 15:05:09.000000000 -0400 +++ ioext.c 2015-01-23 18:55:19.000000000 -0500 @@ -35,5 +35,4 @@ # include # endif -SCM stat2scm P((struct stat *stat_temp)); /* int mkdir P((const char *path, mode_t mode)); */ #endif @@ -107,6 +106,6 @@ #endif -static char s_read_line[] = "read-line"; -SCM read_line(port) +static const char s_read_line[] = "read-line"; +static SCM read_line(port) SCM port; { @@ -136,6 +135,6 @@ } } -static char s_read_line1[] = "read-line!"; -SCM read_line1(str, port) +static const char s_read_line1[] = "read-line!"; +static SCM read_line1(str, port) SCM str, port; { @@ -166,6 +165,6 @@ } } -static char s_write_line[] = "write-line"; -SCM l_write_line(obj, port) +static const char s_write_line[] = "write-line"; +static SCM l_write_line(obj, port) SCM obj, port; { @@ -174,6 +173,6 @@ } -static char s_reopen_file[] = "reopen-file"; -SCM reopen_file(filename, modes, port) +static const char s_reopen_file[] = "reopen-file"; +static SCM reopen_file(filename, modes, port) SCM filename, modes, port; { @@ -205,6 +204,6 @@ #ifndef MCH_AMIGA # ifndef macintosh -static char s_dup[]="duplicate-port"; -SCM l_dup(oldpt, modes) +static const char s_dup[]="duplicate-port"; +static SCM l_dup(oldpt, modes) SCM oldpt, modes; { @@ -239,6 +238,6 @@ return newpt; } -static char s_dup2[]="redirect-port!"; -SCM l_dup2(into_pt, from_pt) +static const char s_dup2[]="redirect-port!"; +static SCM l_dup2(into_pt, from_pt) SCM into_pt, from_pt; { @@ -257,11 +256,11 @@ # ifndef vms -static char s_opendir[]="opendir"; -static char s_readdir[]="readdir"; -static char s_rewinddir[]="rewinddir"; -static char s_closedir[]="closedir"; +static const char s_opendir[]="opendir"; +static const char s_readdir[]="readdir"; +static const char s_rewinddir[]="rewinddir"; +static const char s_closedir[]="closedir"; # ifndef _WIN32 # include -SCM l_opendir(dirname) +static SCM l_opendir(dirname) SCM dirname; { @@ -279,5 +278,5 @@ } -SCM l_readdir(port) +static SCM l_readdir(port) SCM port; { @@ -292,5 +291,5 @@ } -SCM l_rewinddir(port) +static SCM l_rewinddir(port) SCM port; { @@ -300,5 +299,5 @@ } -SCM l_closedir(port) +static SCM l_closedir(port) SCM port; { @@ -314,5 +313,5 @@ } -int dir_print(sexp, port, writing) +static int dir_print(sexp, port, writing) SCM sexp; SCM port; int writing; { @@ -320,5 +319,5 @@ return !0; } -sizet dir_free(p) +static sizet dir_free(p) CELLPTR p; { @@ -334,5 +333,5 @@ }; -SCM l_opendir(dirname) +static SCM l_opendir(dirname) SCM dirname; { @@ -362,5 +361,5 @@ } -SCM l_readdir(port) +static SCM l_readdir(port) SCM port; { @@ -382,5 +381,5 @@ } -SCM l_rewinddir(port) +static SCM l_rewinddir(port) SCM port; { @@ -396,5 +395,5 @@ } -SCM l_closedir(port) +static SCM l_closedir(port) SCM port; { @@ -429,5 +428,5 @@ return 0; } -SCM dir_mark(ptr) +static SCM dir_mark(ptr) SCM ptr; { @@ -439,6 +438,6 @@ # endif /* vms */ -static char s_mkdir[] = "mkdir"; -SCM l_mkdir(path, mode) +static const char s_mkdir[] = "mkdir"; +static SCM l_mkdir(path, mode) SCM path, mode; { @@ -455,8 +454,8 @@ } # ifdef vms -static char s_dot_dir[] = ".DIR"; +static const char s_dot_dir[] = ".DIR"; # endif -static char s_rmdir[] = "rmdir"; -SCM l_rmdir(path) +static const char s_rmdir[] = "rmdir"; +static SCM l_rmdir(path) SCM path; { @@ -473,6 +472,6 @@ #ifndef THINK_C -static char s_chdir[] = "chdir"; -SCM lchdir(str) +static const char s_chdir[] = "chdir"; +static SCM lchdir(str) SCM str; { @@ -486,5 +485,5 @@ # include # endif -SCM l_getcwd() +static SCM l_getcwd() { char *ans; @@ -500,6 +499,6 @@ # ifndef __MWERKS__ -static char s_chmod[] = "chmod"; -SCM l_chmod(pathname, mode) +static const char s_chmod[] = "chmod"; +static SCM l_chmod(pathname, mode) SCM pathname, mode; { @@ -522,6 +521,6 @@ # endif # endif -static char s_utime[] = "utime"; -SCM l_utime(pathname, acctime, modtime) +static const char s_utime[] = "utime"; +static SCM l_utime(pathname, acctime, modtime) SCM pathname, acctime, modtime; { @@ -537,6 +536,6 @@ # ifndef __MWERKS__ -static char s_umask[] = "umask"; -SCM l_umask(mode) +static const char s_umask[] = "umask"; +static SCM l_umask(mode) SCM mode; { @@ -548,6 +547,6 @@ #endif /* THINK_C */ -static char s_ren_fil[] = "rename-file"; -SCM ren_fil(oldname, newname) +static const char s_ren_fil[] = "rename-file"; +static SCM ren_fil(oldname, newname) SCM oldname, newname; { @@ -570,6 +569,6 @@ #endif } -static char s_copy_file[] = "copy-file"; -SCM scm_copy_file(oldname, newname) +static const char s_copy_file[] = "copy-file"; +static SCM scm_copy_file(oldname, newname) SCM oldname, newname; { @@ -618,6 +617,6 @@ } -static char s_fileno[] = "fileno"; -SCM l_fileno(port) +static const char s_fileno[] = "fileno"; +static SCM l_fileno(port) SCM port; { @@ -634,6 +633,6 @@ # define R_OK 04 # endif -static char s_access[] = "access"; -SCM l_access(pathname, mode) +static const char s_access[] = "access"; +static SCM l_access(pathname, mode) SCM pathname, mode; { @@ -653,8 +652,6 @@ # endif /* __MWERKS__ */ -SCM stat2scm P((struct stat *stat_temp)); - -char s_stat[] = "stat"; -SCM l_stat(str) +static const char s_stat[] = "stat"; +static SCM l_stat(str) SCM str; { @@ -677,5 +674,5 @@ # ifdef MCH_AMIGA SCM stat2scm(stat_temp) - struct stat *stat_temp; + const struct stat *stat_temp; { SCM ans = make_vector(MAKINUM(3), UNSPECIFIED); @@ -688,5 +685,5 @@ # else SCM stat2scm(stat_temp) - struct stat *stat_temp; + const struct stat *stat_temp; { SCM ans = make_vector(MAKINUM(11), UNSPECIFIED); @@ -708,5 +705,5 @@ # include # endif -SCM l_getpid() +static SCM l_getpid() { return MAKINUM((unsigned long)getpid()); @@ -722,8 +719,8 @@ # include # endif -char s_execv[] = "execv"; -char s_execvp[] = "execvp"; -SCM i_execv(modes, path, args) - char * modes; +const char s_execv[] = "execv"; +const char s_execvp[] = "execvp"; +static SCM i_execv(modes, path, args) + const char * modes; SCM path, args; { @@ -743,26 +740,26 @@ return MAKINUM(errno); } -SCM lexec(path, arg0, args) +static SCM lexec(path, arg0, args) SCM path, arg0, args; { return i_execv("", path, cons(arg0, args)); } -SCM lexecp(path, arg0, args) +static SCM lexecp(path, arg0, args) SCM path, arg0, args; { return i_execv("p", path, cons(arg0, args)); } -SCM lexecv(path, args) +static SCM lexecv(path, args) SCM path, args; { return i_execv("", path, args); } -SCM lexecvp(path, args) +static SCM lexecvp(path, args) SCM path, args; { return i_execv("p", path, args); } -static char s_putenv[] = "putenv"; -SCM l_putenv(str) +static const char s_putenv[] = "putenv"; +static SCM l_putenv(str) SCM str; { @@ -819,5 +816,5 @@ #include /* for O_RDONLY, O_RDWR, O_EXCL */ #ifdef O_EXCL -SCM scm_try_create_file(fname, modes, perms) +static SCM scm_try_create_file(fname, modes, perms) SCM fname, modes, perms; { @@ -865,6 +862,4 @@ {0, 0}}; -SCM_DLL_EXPORT void init_ioext P((void)); - void init_ioext() { --- posix.c 2008-01-30 22:32:26.000000000 -0500 +++ posix.c 2015-01-23 18:55:19.000000000 -0500 @@ -46,6 +46,6 @@ #endif -static char s_chown[] = "chown"; -SCM l_chown(path, owner, group) +static const char s_chown[] = "chown"; +static SCM l_chown(path, owner, group) SCM path, owner, group; { @@ -58,6 +58,6 @@ } -static char s_link[] = "link"; -SCM l_link(oldpath, newpath) +static const char s_link[] = "link"; +static SCM l_link(oldpath, newpath) SCM oldpath, newpath; { @@ -69,5 +69,5 @@ } -SCM l_pipe() +static SCM l_pipe() { int fd[2], ret; @@ -96,6 +96,6 @@ } -char s_op_pipe[] = "open-pipe"; -SCM open_pipe(pipestr, modes) +const char s_op_pipe[] = "open-pipe"; +static SCM open_pipe(pipestr, modes) SCM pipestr, modes; { @@ -118,6 +118,6 @@ } -static char scm_s_getgroups[] = "getgroups"; -SCM scm_getgroups() +static const char scm_s_getgroups[] = "getgroups"; +static SCM scm_getgroups() { SCM grps, ans; @@ -147,6 +147,6 @@ before access to that structure is completed */ -static char s_pwinfo[] = "getpw"; -SCM l_pwinfo(user) +static const char s_pwinfo[] = "getpw"; +static SCM l_pwinfo(user) SCM user; { @@ -173,6 +173,6 @@ } #include -static char s_grinfo[] = "getgr"; -SCM l_grinfo(name) +static const char s_grinfo[] = "getgr"; +static SCM l_grinfo(name) SCM name; { @@ -192,8 +192,8 @@ ve[ 1] = makfrom0str(entry->gr_passwd); ve[ 2] = ulong2num((unsigned long)entry->gr_gid); - ve[ 3] = makfromstrs(-1, entry->gr_mem); + ve[ 3] = makfromstrs(-1, (const char * const *)entry->gr_mem); return ans; } -SCM l_setgr(arg) +static SCM l_setgr(arg) SCM arg; { @@ -202,5 +202,5 @@ return UNSPECIFIED; } -SCM l_setpw(arg) +static SCM l_setpw(arg) SCM arg; { @@ -210,6 +210,6 @@ } -static char s_kill[] = "kill"; -SCM l_kill(pid, sig) +static const char s_kill[] = "kill"; +static SCM l_kill(pid, sig) SCM pid, sig; { @@ -220,6 +220,6 @@ return MAKINUM(0L+i); } -static char s_waitpid[] = "waitpid"; -SCM l_waitpid(pid, options) +static const char s_waitpid[] = "waitpid"; +static SCM l_waitpid(pid, options) SCM pid, options; { @@ -231,23 +231,23 @@ } -SCM l_getppid() +static SCM l_getppid() { return MAKINUM(0L+getppid()); } -SCM l_getuid() +static SCM l_getuid() { return MAKINUM(0L+getuid()); } -SCM l_getgid() +static SCM l_getgid() { return MAKINUM(0L+getgid()); } #ifndef LACK_E_IDs -SCM l_geteuid() +static SCM l_geteuid() { return MAKINUM(0L+geteuid()); } -SCM l_getegid() +static SCM l_getegid() { return MAKINUM(0L+getegid()); @@ -255,6 +255,6 @@ #endif -static char s_setuid[] = "setuid"; -SCM l_setuid(id) +static const char s_setuid[] = "setuid"; +static SCM l_setuid(id) SCM id; { @@ -262,6 +262,6 @@ return setuid(INUM(id)) ? BOOL_F : BOOL_T; } -static char s_setgid[] = "setgid"; -SCM l_setgid(id) +static const char s_setgid[] = "setgid"; +static SCM l_setgid(id) SCM id; { @@ -271,6 +271,6 @@ #ifndef LACK_E_IDs -static char s_seteuid[] = "seteuid"; -SCM l_seteuid(id) +static const char s_seteuid[] = "seteuid"; +static SCM l_seteuid(id) SCM id; { @@ -278,6 +278,6 @@ return seteuid(INUM(id)) ? BOOL_F : BOOL_T; } -static char s_setegid[] = "setegid"; -SCM l_setegid(id) +static const char s_setegid[] = "setegid"; +static SCM l_setegid(id) SCM id; { @@ -287,6 +287,6 @@ #endif -static char s_ttyname[] = "ttyname"; -SCM l_ttyname(port) +static const char s_ttyname[] = "ttyname"; +static SCM l_ttyname(port) SCM port; { @@ -299,5 +299,5 @@ } -SCM l_fork() +static SCM l_fork() { long pid = 0L + fork(); @@ -306,5 +306,5 @@ #include -SCM l_uname() +static SCM l_uname() { struct utsname buf; --- ramap.c 2013-03-12 23:30:27.000000000 -0400 +++ ramap.c 2015-01-23 18:55:19.000000000 -0500 @@ -21,8 +21,8 @@ #include "scm.h" -SCM sc2array P((SCM s, SCM ra, SCM prot)); +static SCM sc2array P((SCM s, SCM ra, SCM prot)); typedef struct { - char *name; + const char *name; SCM sproc; int (* vproc)(); @@ -64,5 +64,5 @@ 0 --> no match. */ -int ra_matchp(ra0, ras) +static int ra_matchp(ra0, ras) SCM ra0, ras; { @@ -137,6 +137,6 @@ } -static char s_ra_mismatch[] = "array shape mismatch"; -int ramapc(cproc, data, ra0, lra, what) +static const char s_ra_mismatch[] = "array shape mismatch"; +static int ramapc(cproc, data, ra0, lra, what) int (*cproc)(); SCM data, ra0, lra; @@ -258,5 +258,5 @@ } -SCM array_fill(ra, fill) +static SCM array_fill(ra, fill) SCM ra, fill; { @@ -265,6 +265,6 @@ } -static char s_sarray_copy[] = "serial-array:copy!"; -static char s_array_copy[] = "array:copy!"; +static const char s_sarray_copy[] = "serial-array:copy!"; +static const char s_array_copy[] = "array:copy!"; static int racp(src, dst) SCM dst, src; @@ -466,5 +466,5 @@ return 1; } -SCM array_copy(dst, src) +static SCM array_copy(dst, src) SCM dst; SCM src; @@ -479,5 +479,5 @@ } -SCM ra2contig(ra, copy) +static SCM ra2contig(ra, copy) SCM ra; int copy; @@ -511,6 +511,6 @@ } -static char s_ura_rd[] = "uniform-array-read!"; -SCM ura_read(ra, port) +static const char s_ura_rd[] = "uniform-array-read!"; +static SCM ura_read(ra, port) SCM ra, port; { @@ -525,6 +525,6 @@ } -static char s_ura_wr[] = "uniform-array-write"; -SCM ura_write(ra, port) +static const char s_ura_wr[] = "uniform-array-write"; +static SCM ura_write(ra, port) SCM ra, port; { @@ -535,5 +535,5 @@ } -static char s_sc2array[] = "scalar->array"; +static const char s_sc2array[] = "scalar->array"; SCM sc2array(s, ra, prot) SCM s, ra, prot; @@ -604,5 +604,5 @@ /* Functions callable by ARRAY-MAP! */ -int ra_eqp(ra0, ras) +static int ra_eqp(ra0, ras) SCM ra0, ras; { @@ -725,20 +725,20 @@ return 1; } -int ra_lessp(ra0, ras) +static int ra_lessp(ra0, ras) SCM ra0, ras; { return ra_compare(ra0, CAR(ras), CAR(CDR(ras)), 0); } -int ra_leqp(ra0, ras) +static int ra_leqp(ra0, ras) SCM ra0, ras; { return ra_compare(ra0, CAR(CDR(ras)), CAR(ras), 1); } -int ra_grp(ra0, ras) +static int ra_grp(ra0, ras) SCM ra0, ras; { return ra_compare(ra0, CAR(CDR(ras)), CAR(ras), 0); } -int ra_greqp(ra0, ras) +static int ra_greqp(ra0, ras) SCM ra0, ras; { @@ -746,5 +746,5 @@ } -int ra_sum(ra0, ras) +static int ra_sum(ra0, ras) SCM ra0, ras; { @@ -832,5 +832,5 @@ } -int ra_difference(ra0, ras) +static int ra_difference(ra0, ras) SCM ra0, ras; { @@ -963,5 +963,5 @@ } -int ra_product(ra0, ras) +static int ra_product(ra0, ras) SCM ra0, ras; { @@ -1052,5 +1052,5 @@ return 1; } -int ra_divide(ra0, ras) +static int ra_divide(ra0, ras) SCM ra0, ras; { @@ -1209,5 +1209,8 @@ ra1 = ARRAY_V(ra1); switch TYP7(ra0) { - default: gencase: + default: +#ifdef FLOATS + gencase: +#endif for (; n-- > 0; i0 += inc0, i1 += inc1) { e1 = cvref(ra1, i1, e1); @@ -1369,7 +1372,7 @@ {0, 0, 0}}; -static char s_sarray_map[] = "serial-array-map!"; +static const char s_sarray_map[] = "serial-array-map!"; # define s_array_map (s_sarray_map + 7) -SCM array_map(ra0, proc, lra) +static SCM array_map(ra0, proc, lra) SCM ra0, proc, lra; { @@ -1413,12 +1416,13 @@ case tc7_asubr: if (NULLP(lra)) { - SCM prot, fill = SUBRF(proc)(UNDEFINED, UNDEFINED); + SCM fill = SUBRF(proc)(UNDEFINED, UNDEFINED); +# ifdef FLOATS + SCM prot; if (INUMP(fill)) { prot = array_prot(ra0); -# ifdef FLOATS if (NIMP(prot) && INEXP(prot)) fill = makdbl((double)INUM(fill), 0.0); -# endif } +# endif array_fill(ra0, fill); } @@ -1496,6 +1500,6 @@ return 1; } -static char s_array_for_each[] = "array-for-each"; -SCM array_for_each(proc, ra0, lra) +static const char s_array_for_each[] = "array-for-each"; +static SCM array_for_each(proc, ra0, lra) SCM proc, ra0, lra; { @@ -1523,6 +1527,6 @@ } -static char s_array_index_for_each[] = "array-index-for-each"; -SCM scm_array_index_for_each(ra, proc) +static const char s_array_index_for_each[] = "array-index-for-each"; +static SCM scm_array_index_for_each(ra, proc) SCM ra, proc; { @@ -1594,6 +1598,6 @@ } -static char s_array_imap[] = "array-index-map!"; -SCM array_imap(ra, proc) +static const char s_array_imap[] = "array-index-map!"; +static SCM array_imap(ra, proc) SCM ra, proc; { @@ -1666,5 +1670,6 @@ } -SCM array_equal P((SCM ra0, SCM ra1)); +static SCM array_equal(SCM ra0, SCM ra1); /* Forward declaration */ + static int raeql_1(ra0, as_equal, ra1) SCM ra0, as_equal, ra1; @@ -1794,6 +1799,6 @@ return (raeql(ra0, BOOL_T, ra1) ? BOOL_T : BOOL_F); } -static char s_array_equalp[] = "array-equal?"; -SCM array_equal(ra0, ra1) +static const char s_array_equalp[] = "array-equal?"; +static SCM array_equal(ra0, ra1) SCM ra0, ra1; { @@ -1846,6 +1851,4 @@ } -SCM_DLL_EXPORT void init_ramap P((void)); - void init_ramap() { --- record.c 2008-10-30 11:55:09.000000000 -0400 +++ record.c 2015-01-23 18:55:19.000000000 -0500 @@ -56,12 +56,12 @@ #endif -static char s_record[] = "record"; -static char s_recordp[] = "record?"; -SCM recordp(obj) +static const char s_record[] = "record"; +static const char s_recordp[] = "record?"; +static SCM recordp(obj) SCM obj; { return (NIMP(obj) && RECP(obj) ? BOOL_T : BOOL_F); } -SCM rec_pred1(cclo, obj) +static SCM rec_pred1(cclo, obj) SCM cclo, obj; { @@ -71,6 +71,6 @@ } static SCM f_rec_pred1; -static char s_rec_pred[] = "record-predicate"; -SCM rec_pred(rtd) +static const char s_rec_pred[] = "record-predicate"; +static SCM rec_pred(rtd) SCM rtd; { @@ -81,6 +81,6 @@ } -static char s_rec_rtd[] = "record-type-descriptor"; -SCM rec_rtd(rec) +static const char s_rec_rtd[] = "record-type-descriptor"; +static SCM rec_rtd(rec) SCM rec; { @@ -90,6 +90,6 @@ static SCM f_rec_constr1; -static char s_rec_constr[] = "record-constructor"; -SCM rec_constr(rtd, flds) +static const char s_rec_constr[] = "record-constructor"; +static SCM rec_constr(rtd, flds) SCM rtd, flds; { @@ -130,5 +130,6 @@ SCM arg, rtd; int i; - char *pos, *what; + intptr_t pos; + const char *what; { SCM recname = RTD_NAME(rtd); @@ -143,9 +144,9 @@ else mesg = st_append(cons2(mesg, recname, EOL)); - wta(arg, pos, CHARS(mesg)); + wta(arg, (char *)pos, CHARS(mesg)); } #endif -static char s_rec_constr1[] = "record constructor: "; -SCM rec_constr1(args) +static const char s_rec_constr1[] = "record constructor: "; +static SCM rec_constr1(args) SCM args; { @@ -193,6 +194,6 @@ return cclo; } -static char s_rec_accessor1[] = "record accessor: "; -SCM rec_accessor1(cclo, rec) +static const char s_rec_accessor1[] = "record accessor: "; +static SCM rec_accessor1(cclo, rec) SCM cclo, rec; { @@ -204,6 +205,6 @@ return VELTS(rec)[i]; } -static char s_rec_modifier1[] = "record modifier: "; -SCM rec_modifier1(cclo, rec, val) +static const char s_rec_modifier1[] = "record modifier: "; +static SCM rec_modifier1(cclo, rec, val) SCM cclo, rec, val; { @@ -217,6 +218,6 @@ } static SCM f_rec_accessor1; -static char s_rec_accessor[] = "record-accessor"; -SCM rec_accessor(rtd, field) +static const char s_rec_accessor[] = "record-accessor"; +static SCM rec_accessor(rtd, field) SCM rtd, field; { @@ -224,13 +225,13 @@ } static SCM f_rec_modifier1; -static char s_rec_modifier[] = "record-modifier"; -SCM rec_modifier(rtd, field) +static const char s_rec_modifier[] = "record-modifier"; +static SCM rec_modifier(rtd, field) SCM rtd, field; { return makrecclo(f_rec_modifier1, rtd, field, s_rec_accessor); } -SCM *loc_makrtd; -static char s_makrectyp[] = "make-record-type"; -SCM makrectyp(name, fields) +static SCM *loc_makrtd; +static const char s_makrectyp[] = "make-record-type"; +static SCM makrectyp(name, fields) SCM name, fields; { @@ -247,6 +248,6 @@ } -static char s_rec_prinset[] = "record-printer-set!"; -SCM rec_prinset(rtd, printer) +static const char s_rec_prinset[] = "record-printer-set!"; +static SCM rec_prinset(rtd, printer) SCM rtd, printer; { @@ -276,5 +277,8 @@ int writing; { - SCM names, printer = RTD_PRINTER(REC_RTD(exp)); +#ifdef SCM_SHOW_RECORD_FIELDS + SCM names; +#endif + SCM printer = RTD_PRINTER(REC_RTD(exp)); SCM argv[3]; if (NIMP(printer)) { @@ -293,5 +297,7 @@ } } +#ifdef SCM_SHOW_RECORD_FIELDS names = RTD_FIELDS(REC_RTD(exp)); +#endif lputs("#s(", port); scm_iprin1(RTD_NAME(REC_RTD(exp)), port, 0); @@ -316,5 +322,5 @@ static SCM f_rtdprin1; -SCM rec_rtdprin1(rtd, port, writing_p) +static SCM rec_rtdprin1(rtd, port, writing_p) SCM rtd, port, writing_p; { @@ -332,5 +338,5 @@ } -SCM recequal(rec0, rec1) +static SCM recequal(rec0, rec1) SCM rec0, rec1; { @@ -356,6 +362,4 @@ {0, 0}}; -SCM_DLL_EXPORT void init_record P((void)); - void init_record() { --- repl.c 2013-04-06 21:53:18.000000000 -0400 +++ repl.c 2015-01-27 01:03:08.000000000 -0500 @@ -21,8 +21,4 @@ #include "scm.h" #include "setjump.h" -void igc P((const char *what, SCM basecont)); -void unexec P((char *new_name, char *a_name, unsigned data_start, - unsigned bss_start, unsigned entry_address)); -void scm_fill_freelist P((void)); #ifdef __CYGWIN__ @@ -30,10 +26,6 @@ #endif -#ifdef __NetBSD__ -# include -# include -#endif - -#ifdef __OpenBSD__ +#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || \ + defined(__DragonFlyBSD__) # include # include @@ -62,8 +54,12 @@ #endif +#ifdef CAN_DUMP +static const char s_unexec[] = "unexec"; +#endif + unsigned char upcase[CHAR_CODE_LIMIT]; unsigned char downcase[CHAR_CODE_LIMIT]; -unsigned char lowers[] = "abcdefghijklmnopqrstuvwxyz"; -unsigned char uppers[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; +static const unsigned char lowers[] = "abcdefghijklmnopqrstuvwxyz"; +static const unsigned char uppers[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; void init_tables() { @@ -77,5 +73,5 @@ #ifdef EBCDIC -char *charnames[] = { +const char *charnames[] = { "nul","soh","stx","etx", "pf", "ht", "lc","del", 0 , 0 ,"smm", "vt", "ff", "cr", "so", "si", @@ -87,5 +83,5 @@ 0 , 0 , 0 , 0 ,"dc4","nak", 0 ,"sub", "space", s_newline, "tab", "backspace", "return", "page", "null"}; -char charnums[] = +const char charnums[] = "\000\001\002\003\004\005\006\007\ \010\011\012\013\014\015\016\017\ @@ -99,5 +95,5 @@ #endif /* def EBCDIC */ #ifdef ASCII -char *charnames[] = { +const char *charnames[] = { "nul","soh","stx","etx","eot","enq","ack","bel", "bs", "ht", "nl", "vt", "np", "cr", "so", "si", @@ -105,5 +101,5 @@ "can", "em","sub","esc", "fs", "gs", "rs", "us", "space", s_newline, "tab", "backspace", "return", "page", "null", "del"}; -char charnums[] = +const char charnums[] = "\000\001\002\003\004\005\006\007\ \010\011\012\013\014\015\016\017\ @@ -112,5 +108,5 @@ \n\t\b\r\f\0\177"; #endif /* def ASCII */ -char *isymnames[] = { +const char *isymnames[] = { /* Special Forms */ /* NUM_ISPCSYMS ISPCSYMS here */ @@ -128,19 +124,19 @@ }; -static char s_read_char[] = "read-char", s_peek_char[] = "peek-char"; -char s_write[] = "write", s_newline[] = "newline"; -static char s_display[] = "display", s_write_char[] = "write-char"; -static char s_freshline[] = "freshline"; +static const char s_read_char[] = "read-char", s_peek_char[] = "peek-char"; +const char s_write[] = "write", s_newline[] = "newline"; +static const char s_display[] = "display", s_write_char[] = "write-char"; +static const char s_freshline[] = "freshline"; -static char s_eofin[] = "end of file in "; -static char s_unknown_sharp[] = "unknown # object"; +static const char s_eofin[] = "end of file in "; +static const char s_unknown_sharp[] = "unknown # object"; static SCM scm_lread1 P((SCM port, int flgs, const char *what)); static SCM scm_lreadr P((SCM tok_buf, SCM port, int flgs)); static SCM scm_lreadpr P((SCM tok_buf, SCM port, int flgs)); -static SCM scm_lreadparen P((SCM tok_buf, SCM port, int flgs, char *name)); +static SCM scm_lreadparen P((SCM tok_buf, SCM port, int flgs, const char *name)); static SCM scm_lread_rec P((SCM tok_buf, SCM port)); static sizet scm_read_token P((int ic, SCM tok_buf, SCM port, int flgs)); -static void err_head P((char *str)); +static void err_head P((const char *str)); extern int case_sensitize_symbols; /* 0 or 8 */ @@ -155,5 +151,5 @@ void scm_ipruk(hdr, ptr, port) - char *hdr; + const char *hdr; SCM ptr; SCM port; @@ -173,6 +169,6 @@ } -void scm_iprlist(hdr, exp, tlr, port, writing) - char *hdr, tlr; +static void scm_iprlist(hdr, exp, tlr, port, writing) + const char *hdr, tlr; SCM exp; SCM port; @@ -383,5 +379,5 @@ } -static char s_char_readyp[]="char-ready?"; +static const char s_char_readyp[]="char-ready?"; #ifdef __IBMC__ @@ -452,5 +448,5 @@ #endif /* perhaps should undefine MSDOS from __IBMC__ here */ -SCM char_readyp(port) +static SCM char_readyp(port) SCM port; { @@ -476,6 +472,6 @@ # define timet long #endif -static char s_wfi[] = "wait-for-input"; -SCM wait_for_input(args) +static const char s_wfi[] = "wait-for-input"; +static SCM wait_for_input(args) SCM args; { @@ -616,6 +612,6 @@ ; } -static char s_force_output[] = "force-output"; -SCM scm_force_output(port) +static const char s_force_output[] = "force-output"; +static SCM scm_force_output(port) SCM port; { @@ -626,5 +622,5 @@ } -SCM scm_write(obj, port) +static SCM scm_write(obj, port) SCM obj, port; { @@ -660,5 +656,5 @@ return UNSPECIFIED; } -SCM scm_freshline(port) +static SCM scm_freshline(port) SCM port; { @@ -716,5 +712,5 @@ } sizet lfwrite(ptr, size, nitems, port) - char *ptr; + const char *ptr; sizet size; sizet nitems; @@ -843,9 +839,9 @@ /* Top-level readers */ static SCM p_read_for_load, p_read; -static char s_read[] = "read"; -static char s_read_for_load[] = "read-for-load"; +static const char s_read[] = "read"; +static const char s_read_for_load[] = "read-for-load"; #ifndef MEMOIZE_LOCALS static SCM p_read_numbered; -static char s_read_numbered[] = "read-numbered"; +static const char s_read_numbered[] = "read-numbered"; #endif SCM scm_read(port) @@ -855,5 +851,5 @@ } -SCM scm_read_for_load(port) +static SCM scm_read_for_load(port) SCM port; { @@ -1134,5 +1130,5 @@ SCM port; int flgs; - char *name; + const char *name; { SCM lst, fst, @@ -1162,6 +1158,6 @@ with an atomic test-and-set instruction can use it here (and not DEFER_INTS). */ -char s_swapcar[] = "swap-car!"; -SCM swapcar(pair, value) +static const char s_swapcar[] = "swap-car!"; +static SCM swapcar(pair, value) SCM pair, value; { @@ -1174,8 +1170,8 @@ return ret; } -char s_tryarb[] = "try-arbiter"; -char s_relarb[] = "release-arbiter"; +static const char s_tryarb[] = "try-arbiter"; +static const char s_relarb[] = "release-arbiter"; long tc16_arbiter; -SCM tryarb(arb) +static SCM tryarb(arb) SCM arb; { @@ -1202,5 +1198,5 @@ SCM name; { - register SCM z; + SCM z; NEWCELL(z); CDR(z) = name; @@ -1218,12 +1214,12 @@ } -static char s_tryload[] = "try-load"; +static const char s_tryload[] = "try-load"; #define s_load (&s_tryload[4]) -struct errdesc {char *msg;char *s_response;short parent_err;}; +struct errdesc {const char *msg; const char *s_response; short parent_err;}; struct errdesc errmsgs[] = { - {"Wrong number of args", 0, 0}, - {"numerical overflow", 0, FPE_SIGNAL}, - {"Argument out of range", 0, FPE_SIGNAL}, + {"Wrong number of args", NULL, 0}, + {"numerical overflow", NULL, FPE_SIGNAL}, + {"Argument out of range", NULL, FPE_SIGNAL}, {"Could not allocate", "out-of-storage", 0}, {"Thrashing", "thrashing", 0}, @@ -1232,6 +1228,6 @@ {"user interrupt", "user-interrupt", 0}, {"arithmetic error", "arithmetic-error", 0}, - {"bus error", 0, 0}, - {"segment violation", 0, 0}, + {"bus error", NULL, 0}, + {"segment violation", NULL, 0}, {"alarm", "alarm-interrupt", 0}, {"virtual alarm", "virtual-alarm-interrupt", 0}, @@ -1240,5 +1236,5 @@ void (* deferred_proc) P((void)) = 0; -char *errjmp_bad = "init"; +const char *errjmp_bad = "init"; VOLATILE int ints_disabled = 1; unsigned long SIG_deferred = 0; @@ -1248,5 +1244,5 @@ static int errobj_codep; static SCM err_exp, err_env; -static char *err_pos, *err_s_subr; +static const char *err_pos, *err_s_subr; static cell tmp_errobj = {(SCM)UNDEFINED, (SCM)EOL}; static cell tmp_loadpath = {(SCM)BOOL_F, (SCM)EOL}; @@ -1266,7 +1262,7 @@ { SCM proc; - char *name = errmsgs[i-WNA].s_response; + const char *name = errmsgs[i-WNA].s_response; if (errjmp_bad || errjmp_recursive) - wta(UNDEFINED, (char *)i, ""); /* sends it to def_err_response */ + wta(UNDEFINED, (char *)(intptr_t)i, ""); /* sends it to def_err_response */ /* NEWCELL does not defer interrupts; so be careful to maintain the freelist integrity. */ @@ -1321,8 +1317,7 @@ SCM exitval = MAKINUM(EXIT_FAILURE); /* INUM return value */ -extern char s_unexec[]; SCM scm_top_level(initpath, toplvl_fun) - char *initpath; - SCM (*toplvl_fun)(); + const char *initpath; + SCM (*toplvl_fun)(void); { SCM ret; @@ -1342,5 +1337,5 @@ default: { - char *name = errmsgs[i-WNA].s_response; + const char *name = errmsgs[i-WNA].s_response; if (name) { SCM proc = CDR(intern(name, (sizet)strlen(name))); @@ -1354,5 +1349,5 @@ case 0: exitval = MAKINUM(EXIT_SUCCESS); - errjmp_bad = (char *)0; + errjmp_bad = NULL; errjmp_recursive = 0; if (NIMP(sys_errp) && OPOUTPORTP(sys_errp)) lfflush(sys_errp); @@ -1382,5 +1377,5 @@ reset_toplvl: ints_disabled = 1; - errjmp_bad = (char *)0; + errjmp_bad = NULL; errjmp_recursive = 0; if (NIMP(sys_errp) && OPOUTPORTP(sys_errp)) lfflush(sys_errp); @@ -1442,5 +1437,5 @@ } -SCM line_num() +static SCM line_num() { if (IMP(loadports)) @@ -1448,5 +1443,5 @@ return scm_port_line(CAR(loadports)); } -static char s_port_line[] = "port-line"; +static const char s_port_line[] = "port-line"; SCM scm_port_line(port) SCM port; @@ -1466,5 +1461,5 @@ return MAKINUM(lnum); } -static char s_port_col[] = "port-column"; +static const char s_port_col[] = "port-column"; SCM scm_port_col(port) SCM port; @@ -1487,5 +1482,5 @@ } -static char s_file_position[] = "file-position"; +static const char s_file_position[] = "file-position"; SCM scm_file_position(port, pos) SCM port, pos; @@ -1530,6 +1525,6 @@ } -static char s_port_filename[] = "port-filename"; -SCM scm_port_filename(port) +static const char s_port_filename[] = "port-filename"; +static SCM scm_port_filename(port) SCM port; { @@ -1549,7 +1544,7 @@ extern char s_heap[]; void growth_mon(obj, size, units, grewp) - char *obj; + const char *obj; long size; - char *units; + const char *units; int grewp; { @@ -1648,7 +1643,7 @@ scm_init_brk = (unsigned long)sbrk(0); } -void scm_brk_report() +static void scm_brk_report() { - unsigned long scm_curbrk = (unsigned long)sbrk(0), + intptr_t scm_curbrk = (unsigned long)sbrk(0), dif1 = ((dumped ? scm_dumped_brk : scm_curbrk) - scm_init_brk)/1024, dif2 = (scm_curbrk - scm_dumped_brk)/1024; @@ -1798,11 +1793,11 @@ longjump(CONT(rootcont)->jmpbuf, COOKIE(-1)); } -SCM abrt() +static SCM abrt() { if (errjmp_bad) exit(EXIT_FAILURE); longjump(CONT(rootcont)->jmpbuf, COOKIE(-2)); } -char s_restart[] = "restart"; -SCM restart() +static const char s_restart[] = "restart"; +static SCM restart() { /* ASRTER(!dumped, UNDEFINED, "dumped can't", s_restart); */ @@ -1811,5 +1806,4 @@ #ifdef CAN_DUMP -char s_unexec[] = "unexec"; SCM scm_unexec(newpath) SCM newpath; @@ -1904,6 +1898,6 @@ return BOOL_T; } -static char s_eval_string[] = "eval-string"; -static char s_load_string[] = "load-string"; +static const char s_eval_string[] = "eval-string"; +static const char s_load_string[] = "load-string"; static SCM i_eval_string = 0; SCM scm_eval_string(str) @@ -1969,5 +1963,5 @@ static void err_head(str) - char *str; + const char *str; { SCM lps; @@ -1993,5 +1987,5 @@ } void scm_warn(str1, str2, obj) - char *str1, *str2; + const char *str1, *str2; SCM obj; { @@ -2010,5 +2004,5 @@ } -SCM lerrno(arg) +static SCM lerrno(arg) SCM arg; { @@ -2020,6 +2014,6 @@ return MAKINUM(old); } -static char s_perror[] = "perror"; -SCM lperror(arg) +static const char s_perror[] = "perror"; +static SCM lperror(arg) SCM arg; { @@ -2075,8 +2069,8 @@ else if (WNA > (long)err_pos) { lputs("Wrong type in arg", cur_errp); - lputc((long)err_pos <= ARGn ? ' ' : '1' + (int)err_pos - ARG1, cur_errp); + lputc((long)err_pos <= ARGn ? ' ' : '1' + (intptr_t)err_pos - ARG1, cur_errp); } #endif - else lputs(errmsgs[((int)err_pos)-WNA].msg, cur_errp); + else lputs(errmsgs[((intptr_t)err_pos)-WNA].msg, cur_errp); lputs(((long)err_pos==WNA)?" given ":" ", cur_errp); err_pos = 0; @@ -2137,5 +2131,5 @@ longjump(CONT(rootcont)->jmpbuf, (~0x1fL) & (long)pos || (WNA > (long)pos) ? - COOKIE(1) : COOKIE((int)pos)); + COOKIE(1) : COOKIE((intptr_t)pos)); /* will do error processing at stack base */ } @@ -2160,20 +2154,20 @@ #endif } -SCM cur_input_port() +static SCM cur_input_port() { return cur_inp; } -SCM cur_output_port() +static SCM cur_output_port() { return cur_outp; } -SCM cur_error_port() +static SCM cur_error_port() { return cur_errp; } -char s_cur_inp[] = "set-current-input-port"; -char s_cur_outp[] = "set-current-output-port"; -char s_cur_errp[] = "set-current-error-port"; -SCM set_inp(port) +static const char s_cur_inp[] = "set-current-input-port"; +static const char s_cur_outp[] = "set-current-output-port"; +static const char s_cur_errp[] = "set-current-error-port"; +static SCM set_inp(port) SCM port; { @@ -2186,5 +2180,5 @@ return oinp; } -SCM set_outp(port) +static SCM set_outp(port) SCM port; { @@ -2197,5 +2191,5 @@ return ooutp; } -SCM set_errp(port) +static SCM set_errp(port) SCM port; { @@ -2208,6 +2202,6 @@ return oerrp; } -static char s_isatty[] = "isatty?"; -SCM l_isatty(port) +static const char s_isatty[] = "isatty?"; +static SCM l_isatty(port) SCM port; { @@ -2270,5 +2264,5 @@ static smobfuns arbsmob = {markcdr, free0, prinarb}; -char s_ccl[] = "char-code-limit"; +const char s_ccl[] = "char-code-limit"; void init_repl( iverbose ) --- rgx.c 2013-03-14 00:42:23.000000000 -0400 +++ rgx.c 2015-01-23 18:55:19.000000000 -0500 @@ -21,5 +21,5 @@ #include "scm.h" #ifdef __FreeBSD__ -# include "gnuregex.h" +# include "gnu/regex.h" #else # include "regex.h" @@ -31,7 +31,4 @@ #endif -static char rcsid[] = - "$Id: rgx.c,v 1.20 2013/03/14 04:42:23 jaffer Exp $"; - #ifdef HAVE_ALLOCA # include @@ -54,17 +51,17 @@ /* forward function defs */ -SCM lregsearch(); -SCM lregsearchv(); +static SCM lregsearch(); +static SCM lregsearchv(); /* Posix regexp bindings. */ -static char s_regex[] = "regex"; -static char s_regcomp[] = "regcomp", s_regerror[] = "regerror"; -static char s_regexec[] = "regexec", s_regmatp[] = "regmatch?"; -static char s_regsearch[] = "regsearch", s_regmatch[] = "regmatch"; -static char s_regsearchv[] = "regsearchv", s_regmatchv[] = "regmatchv"; -static char s_stringsplit[] = "string-split"; -static char s_stringsplitv[] = "string-splitv"; -static char s_stringedit[] = "string-edit"; +static const char s_regex[] = "regex"; +static const char s_regcomp[] = "regcomp", s_regerror[] = "regerror"; +static const char s_regexec[] = "regexec", s_regmatp[] = "regmatch?"; +static const char s_regsearch[] = "regsearch", s_regmatch[] = "regmatch"; +static const char s_regsearchv[] = "regsearchv", s_regmatchv[] = "regmatchv"; +static const char s_stringsplit[] = "string-split"; +static const char s_stringsplitv[] = "string-splitv"; +static const char s_stringedit[] = "string-edit"; #define s_error &s_regerror[3] @@ -95,5 +92,5 @@ } regex_info; -sizet fregex(ptr) +static sizet fregex(ptr) CELLPTR ptr; { @@ -108,5 +105,5 @@ } -int prinregex(exp, port, writing) +static int prinregex(exp, port, writing) SCM exp; SCM port; int writing; { @@ -119,5 +116,5 @@ } -SCM markregex(ptr) +static SCM markregex(ptr) SCM ptr; { @@ -129,5 +126,5 @@ static smobfuns rgxsmob = {markregex, fregex, prinregex}; -SCM lregerror(scode) +static SCM lregerror(scode) SCM scode; { @@ -155,5 +152,5 @@ } -SCM lregcomp(pattern, flags) +static SCM lregcomp(pattern, flags) SCM pattern, flags; { @@ -273,5 +270,5 @@ } -SCM lregexec(prog, str) +static SCM lregexec(prog, str) SCM prog, str; { @@ -307,5 +304,5 @@ } -SCM lregmatp(prog, str) +static SCM lregmatp(prog, str) SCM prog, str; { @@ -334,5 +331,5 @@ #define SEARCH 1 -SCM lregsearchmatch(prog, str, args, search, vector) +static SCM lregsearchmatch(prog, str, args, search, vector) SCM prog, str, args; int vector, search; @@ -446,5 +443,5 @@ } -SCM lregsearch(prog, str, args) +static SCM lregsearch(prog, str, args) SCM prog, str, args; { @@ -452,5 +449,5 @@ } -SCM lregsearchv(prog, str, args) +static SCM lregsearchv(prog, str, args) SCM prog, str, args; { @@ -458,5 +455,5 @@ } -SCM lregmatch(prog, str, args) +static SCM lregmatch(prog, str, args) SCM prog, str, args; { @@ -464,5 +461,5 @@ } -SCM lregmatchv(prog, str, args) +static SCM lregmatchv(prog, str, args) SCM prog, str, args; { @@ -470,5 +467,5 @@ } -SCM stringsplitutil(prog, str, vector) +static SCM stringsplitutil(prog, str, vector) SCM prog, str; int vector; @@ -528,5 +525,5 @@ } -SCM lstringsplit(prog, str) +static SCM lstringsplit(prog, str) SCM prog, str; { @@ -534,5 +531,5 @@ } -SCM lstringsplitv(prog, str) +static SCM lstringsplitv(prog, str) SCM prog, str; { @@ -560,5 +557,5 @@ /* (string-edit []) */ -SCM lstringedit(prog, editspec, args) +static SCM lstringedit(prog, editspec, args) SCM prog, editspec, args; { --- rope.c 2013-03-24 21:58:34.000000000 -0400 +++ rope.c 2015-01-23 18:55:19.000000000 -0500 @@ -59,5 +59,5 @@ unsigned char num2uchar(num, pos, s_caller) SCM num; - char *pos, *s_caller; + const char *pos, *s_caller; { unsigned long res = INUM(num); @@ -67,5 +67,5 @@ unsigned short num2ushort(num, pos, s_caller) SCM num; - char *pos, *s_caller; + const char *pos, *s_caller; { unsigned long res = INUM(num); @@ -75,5 +75,5 @@ unsigned long num2ulong(num, pos, s_caller) SCM num; - char *pos, *s_caller; + const char *pos, *s_caller; { unsigned long res; @@ -106,5 +106,5 @@ long num2long(num, pos, s_caller) SCM num; - char *pos, *s_caller; + const char *pos, *s_caller; { long res; @@ -138,5 +138,5 @@ short num2short(num, pos, s_caller) SCM num; - char *pos, *s_caller; + const char *pos, *s_caller; { long lres = INUM((long)num); @@ -147,5 +147,5 @@ signed char num2char(num, pos, s_caller) SCM num; - char *pos, *s_caller; + const char *pos, *s_caller; { long lres = INUM((long)num); @@ -157,5 +157,5 @@ double num2dbl(num, pos, s_caller) SCM num; - char *pos, *s_caller; + const char *pos, *s_caller; { if (INUMP(num)) return (double)INUM(num); @@ -235,5 +235,5 @@ /* Hooks to call SCM from C */ SCM scm_evstr(str) - char *str; + const char *str; { SCM lsym; @@ -244,5 +244,5 @@ } void scm_ldstr(str) - char *str; + const char *str; { SCM lsym; @@ -253,5 +253,5 @@ } int scm_ldfile(path) - char *path; + const char *path; { SCM name = makfrom0str(path); @@ -260,5 +260,5 @@ } int scm_ldprog(path) - char *path; + const char *path; { SCM name = makfrom0str(path); @@ -270,5 +270,4 @@ /* Get byte address of SCM array */ #ifdef ARRAYS -long aind P((SCM ra, SCM args, const char *what)); void* scm_addr(args, s_name) SCM args; --- sc2.c 2008-01-30 22:32:35.000000000 -0500 +++ sc2.c 2015-01-23 18:55:19.000000000 -0500 @@ -21,6 +21,6 @@ #include "scm.h" -static char s_last_pair[] = "last-pair"; -SCM last_pair(sx) +static const char s_last_pair[] = "last-pair"; +static SCM last_pair(sx) SCM sx; { @@ -40,6 +40,6 @@ } -static char s_subml[] = "substring-move-left!"; -SCM subml(str1, start1, args) +static const char s_subml[] = "substring-move-left!"; +static SCM subml(str1, start1, args) SCM str1, start1, args; { @@ -63,6 +63,6 @@ return UNSPECIFIED; } -static char s_submr[] = "substring-move-right!"; -SCM submr(str1, start1, args) +static const char s_submr[] = "substring-move-right!"; +static SCM submr(str1, start1, args) SCM str1, start1, args; { @@ -86,6 +86,6 @@ return UNSPECIFIED; } -static char s_subfl[] = "substring-fill!"; -SCM subfl(str, start, args) +static const char s_subfl[] = "substring-fill!"; +static SCM subfl(str, start, args) SCM str, start, args; { @@ -107,6 +107,6 @@ } -static char s_strnullp[] = "string-null?"; -SCM strnullp(str) +static const char s_strnullp[] = "string-null?"; +static SCM strnullp(str) SCM str; { @@ -116,6 +116,6 @@ } -static char s_appendb[] = "append!"; -SCM appendb(args) +static const char s_appendb[] = "append!"; +static SCM appendb(args) SCM args; { @@ -138,6 +138,4 @@ {0, 0}}; -SCM_DLL_EXPORT void init_sc2 P((void)); - void init_sc2() { --- scl.c 2015-01-02 22:43:33.000000000 -0500 +++ scl.c 2015-01-23 18:55:19.000000000 -0500 @@ -35,5 +35,7 @@ static sizet pdbl2str P((double f, char *a, sizet ch)); static sizet iflo2str P((SCM flt, char *str)); +#if defined(FLOATS) && defined(BIGDIG) && !defined(DBL_DIG) static void safe_add_1 P((double f, double *fsum)); +#endif static long scm_twos_power P((SCM n)); static double mantexp2dbl P((SCM manstr, int expo)); @@ -42,35 +44,37 @@ static SCM ilog P((unsigned long m, SCM b, SCM k, unsigned long *n)); -static char s_makrect[] = "make-rectangular", s_makpolar[] = "make-polar", +static const char s_makrect[] = "make-rectangular", s_makpolar[] = "make-polar", s_magnitude[] = "magnitude", s_angle[] = "angle", s_real_part[] = "real-part", s_imag_part[] = "imag-part", s_in2ex[] = "inexact->exact",s_ex2in[] = "exact->inexact"; -static char s_expt[] = "real-expt", s_atan2[] = "$atan2"; +static const char s_expt[] = "real-expt", s_atan2[] = "$atan2"; #endif -static char s_memv[] = "memv", s_assv[] = "assv"; +static const char s_memv[] = "memv", s_assv[] = "assv"; SCM sys_protects[NUM_PROTECTS]; sizet num_protects = NUM_PROTECTS; -char s_inexactp[] = "inexact?"; -static char s_zerop[] = "zero?", s_abs[] = "abs", +const char s_inexactp[] = "inexact?"; +static const char s_zerop[] = "zero?", s_abs[] = "abs", s_positivep[] = "positive?", s_negativep[] = "negative?"; -static char s_lessp[] = "<", s_grp[] = ">"; -static char s_leqp[] = "<=", s_greqp[] = ">="; +static const char s_lessp[] = "<", s_grp[] = ">"; +static const char s_leqp[] = "<=", s_greqp[] = ">="; #define s_eqp (&s_leqp[1]) -static char s_max[] = "max", s_min[] = "min"; -char s_sum[] = "+", s_difference[] = "-", s_product[] = "*", +static const char s_max[] = "max", s_min[] = "min"; +const char s_sum[] = "+", s_difference[] = "-", s_product[] = "*", s_divide[] = "/"; -static char s_number2string[] = "number->string", +static const char s_number2string[] = "number->string", s_str2number[] = "string->number"; -static char s_list_tail[] = "list-tail"; -static char s_str2list[] = "string->list"; -static char s_st_copy[] = "string-copy", s_st_fill[] = "string-fill!"; -static char s_vect2list[] = "vector->list", s_ve_fill[] = "vector-fill!"; -static char str_inf0[] = "inf.0", str_nan0[] = "nan.0", str_0[] = "0.0"; -static char s_intexpt[] = "integer-expt", s_cintlog[] = "ceiling-integer-log"; -static char s_dfloat_parts[] = "double-float-parts"; +static const char s_list_tail[] = "list-tail"; +static const char s_str2list[] = "string->list"; +static const char s_st_copy[] = "string-copy", s_st_fill[] = "string-fill!"; +static const char s_vect2list[] = "vector->list", s_ve_fill[] = "vector-fill!"; +#if defined(FLOATS) && defined(BIGDIG) +static const char str_inf0[] = "inf.0", str_nan0[] = "nan.0", str_0[] = "0.0"; +static const char s_dfloat_parts[] = "double-float-parts"; +#endif +static const char s_intexpt[] = "integer-expt", s_cintlog[] = "ceiling-integer-log"; #define s_intlog (&s_cintlog[8]) @@ -81,5 +85,5 @@ are representable exactly as doubles. */ -int inf2str(f, a) +static int inf2str(f, a) double f; char *a; @@ -114,5 +118,5 @@ /* There are also temporary strings used in number->string conversion. */ -void strrecy(str) +static void strrecy(str) SCM str; { @@ -209,5 +213,7 @@ while ((dp+1 < ch) && (point+9999)%3) { a[dp] = a[dp+1]; a[++dp] = '.'; point--; } # endif /* ENGNOT */ - while ('0'==a[--ch]); ch++; + while ('0'==a[--ch]) + ; + ch++; if (point != 0) { a[ch++] = 'e'; @@ -521,5 +527,5 @@ #ifdef BIGDIG SCM istr2int(str, len, radix) - char *str; + const char *str; long len; register int radix; @@ -579,5 +585,5 @@ #else SCM istr2int(str, len, radix) - register char *str; + const char *str; long len; register int radix; @@ -743,7 +749,7 @@ SCM istr2flo(str, len, radix) - register char *str; - register long len; - register long radix; + const char *str; + long len; + long radix; { register int c, i = 0, j = 0; @@ -951,5 +957,5 @@ SCM istring2number(str, len, radix) - char *str; + const char *str; long len; long radix; @@ -1070,5 +1076,5 @@ return BOOL_F; } -SCM assv(x, alist) /* m.borza 12.2.91 */ +static SCM assv(x, alist) /* m.borza 12.2.91 */ SCM x, alist; { @@ -1088,5 +1094,5 @@ #endif -SCM list_tail(lst, k) +static SCM list_tail(lst, k) SCM lst, k; { @@ -1118,5 +1124,5 @@ return makfromstr(CHARS(str), (sizet)LENGTH(str)); } -SCM string_fill(str, chr) +static SCM string_fill(str, chr) SCM str, chr; { @@ -1141,5 +1147,5 @@ return res; } -SCM vector_fill(v, fill) +static SCM vector_fill(v, fill) SCM v, fill; { @@ -1228,5 +1234,5 @@ } #ifdef FLOATS -SCM scm_complex_p(obj) +static SCM scm_complex_p(obj) SCM obj; { @@ -1236,5 +1242,5 @@ # ifdef BIGDIG -static char twostab[] = {4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0}; +static const char twostab[] = {4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0}; static long scm_twos_power(n) SCM n; @@ -1287,5 +1293,5 @@ } # endif -SCM realp(x) +static SCM realp(x) SCM x; { @@ -1298,5 +1304,5 @@ return BOOL_F; } -SCM scm_rationalp(x) +static SCM scm_rationalp(x) SCM x; { @@ -1313,5 +1319,5 @@ return BOOL_F; } -SCM intp(x) +static SCM intp(x) SCM x; { @@ -1331,5 +1337,5 @@ #endif /* FLOATS */ -SCM inexactp(x) +static SCM inexactp(x) SCM x; { @@ -1586,6 +1592,8 @@ } -static char s_exactprob[] = "not representable as inexact"; -SCM scm_max(x, y) +#if defined(BIGDIG) && defined(FLOATS) +static const char s_exactprob[] = "not representable as inexact"; +#endif +static SCM scm_max(x, y) SCM x, y; { @@ -1671,5 +1679,5 @@ } -SCM scm_min(x, y) +static SCM scm_min(x, y) SCM x, y; { @@ -2361,5 +2369,5 @@ } -SCM ilog(m, b, k, n) +static SCM ilog(m, b, k, n) unsigned long m; SCM b, k; @@ -2378,5 +2386,5 @@ } -SCM scm_intlog(base, k) +static SCM scm_intlog(base, k) SCM base, k; { @@ -2393,12 +2401,6 @@ # define eqv eqp #endif -SCM scm_cintlog(base, k) - SCM base, k; -{ - SCM il = scm_intlog(base, k); - return (BOOL_T==eqv(k, scm_intexpt(base, il))) ? il : sum(MAKINUM(1L), il); -} -SCM scm_intexpt(z1, z2) +static SCM scm_intexpt(z1, z2) SCM z1, z2; { @@ -2504,4 +2506,11 @@ } +static SCM scm_cintlog(base, k) + SCM base, k; +{ + SCM il = scm_intlog(base, k); + return (BOOL_T==eqv(k, scm_intexpt(base, il))) ? il : sum(MAKINUM(1L), il); +} + #ifdef FLOATS # ifndef HAVE_ATANH @@ -2544,7 +2553,7 @@ struct dpair {double x, y;}; -void two_doubles(z1, z2, sstring, xy) +static void two_doubles(z1, z2, sstring, xy) SCM z1, z2; - char *sstring; + const char *sstring; struct dpair *xy; { @@ -2585,5 +2594,5 @@ } -SCM expt(z1, z2) +static SCM expt(z1, z2) SCM z1, z2; { @@ -2592,5 +2601,5 @@ return makdbl(pow(xy.x, xy.y), 0.0); } -SCM latan2(z1, z2) +static SCM latan2(z1, z2) SCM z1, z2; { @@ -2599,5 +2608,5 @@ return makdbl(atan2(xy.x, xy.y), 0.0); } -SCM makrect(z1, z2) +static SCM makrect(z1, z2) SCM z1, z2; { @@ -2606,5 +2615,5 @@ return makdbl(xy.x, xy.y); } -SCM makpolar(z1, z2) +static SCM makpolar(z1, z2) SCM z1, z2; { @@ -2614,5 +2623,5 @@ } -SCM real_part(z) +static SCM real_part(z) SCM z; { @@ -2632,5 +2641,5 @@ return z; } -SCM imag_part(z) +static SCM imag_part(z) SCM z; { @@ -2663,5 +2672,5 @@ } -SCM scm_magnitude(z) +static SCM scm_magnitude(z) SCM z; { @@ -2691,5 +2700,5 @@ } -SCM angle(z) +static SCM angle(z) SCM z; { @@ -2713,5 +2722,5 @@ -SCM ex2in(z) +static SCM ex2in(z) SCM z; { @@ -2724,5 +2733,5 @@ badz: wta(z, (char *)ARG1, s_ex2in); } -SCM in2ex(z) +static SCM in2ex(z) SCM z; { @@ -2757,6 +2766,6 @@ } #else /* ~FLOATS */ -static char s_trunc[] = "truncate"; -SCM numident(x) +static const char s_trunc[] = "truncate"; +static SCM numident(x) SCM x; { @@ -2837,5 +2846,5 @@ sizet j = i - (dbl_mant_dig + BITSPERDIG - 1)/BITSPERDIG; BIGDIG *digits = BDIGITS(quo); - if (j < 0) j = 0; + if (i <= dbl_mant_dig + BITSPERDIG) j = 0; while (i-- > j) ans = digits[i] + ldexp(ans, BITSPERDIG); bex += j * BITSPERDIG; @@ -2915,5 +2924,5 @@ } -SCM scm_dfloat_parts(f) +static SCM scm_dfloat_parts(f) SCM f; { @@ -2928,6 +2937,6 @@ return scm_values(dbl2big(mant), MAKINUM(expt), EOL, s_dfloat_parts); } -static char s_make_dfloat[] = "make-double-float"; -SCM scm_make_dfloat(mant, expt) +static const char s_make_dfloat[] = "make-double-float"; +static SCM scm_make_dfloat(mant, expt) SCM mant, expt; { @@ -3014,6 +3023,5 @@ } -static char s_hashv[] = "hashv", s_hashq[] = "hashq"; -extern char s_obunhash[]; +static const char s_hashv[] = "hashv", s_hashq[] = "hashq"; #define s_hash (&s_obunhash[9]) @@ -3164,5 +3172,5 @@ #endif -#ifdef FLOATS +#if defined(FLOATS) && defined(BIGDIG) && !defined(DBL_DIG) static void safe_add_1(f, fsum) double f, *fsum; --- scm.c 2014-11-18 17:04:42.000000000 -0500 +++ scm.c 2015-01-23 18:55:19.000000000 -0500 @@ -25,4 +25,5 @@ #endif #include "scm.h" +#include "continue.h" #include "patchlvl.h" @@ -58,33 +59,5 @@ #endif -void init_sbrk P((void)); - -void init_dynl P((void)); -void init_edline P((void)); -void init_eval P((void)); -void init_features P((void)); -void init_gsubr P((void)); -void init_io P((void)); -void init_ioext P((void)); -void init_posix P((void)); -void init_ramap P((void)); -void init_record P((void)); -void init_rgx P((void)); -void init_rope P((void)); -void init_repl P((int iverbose)); -void init_sc2 P((void)); -void init_scl P((void)); -void init_signals P((void)); -void init_socket P((void)); -void init_subrs P((void)); -void init_tables P((void)); -void init_time P((void)); -void init_types P((void)); -void init_unif P((void)); -void init_debug P((void)); -void reset_time P((void)); -void final_repl P((void)); - -void init_banner() +static void init_banner() { fputs("SCM version "SCMVERSION", Copyright (C) 1990-2006 \ @@ -162,5 +135,6 @@ void process_signals() { - int i, n; + intptr_t i; + int n; unsigned long mask = 1L; /* printf("process_signals; output_deferred=%d\n", output_deferred); fflush(stdout); */ @@ -249,5 +223,5 @@ -static char s_unksig[] = "unknown signal"; +static const char s_unksig[] = "unknown signal"; static SIGRETTYPE err_signal(sig) int sig; @@ -264,5 +238,5 @@ { int oerr = errno; - int i = NUM_SIGNALS; + intptr_t i = NUM_SIGNALS; while (i--) if (sig == sigdesc[i].signo) break; @@ -315,6 +289,6 @@ #endif #ifdef SIGALRM -static char s_alarm[] = "alarm"; -SCM lalarm(i) +static const char s_alarm[] = "alarm"; +static SCM lalarm(i) SCM i; { @@ -326,9 +300,9 @@ # ifdef SIGPROF # include -static char s_setitimer[] = "setitimer"; +static const char s_setitimer[] = "setitimer"; static struct {SCM sym; int which;} setitimer_tab[3] = { {UNDEFINED, 0}, {UNDEFINED, 0}, {UNDEFINED, 0}}; /* VALUE and INTERVAL are milliseconds */ -SCM scm_setitimer(which, value, interval) +static SCM scm_setitimer(which, value, interval) SCM which, value, interval; { @@ -364,5 +338,5 @@ # endif # ifndef AMIGA -SCM l_pause() +static SCM l_pause(void) { pause(); @@ -380,6 +354,6 @@ #ifndef AMIGA # ifndef _Windows -static char s_sleep[] = "sleep"; -SCM l_sleep(i) +static const char s_sleep[] = "sleep"; +static SCM l_sleep(i) SCM i; { @@ -442,6 +416,6 @@ #endif /* int raise P((int sig)); */ -static char s_raise[] = "raise"; -SCM l_raise(sig) +static const char s_raise[] = "raise"; +static SCM l_raise(sig) SCM sig; { @@ -468,5 +442,5 @@ } } -static char s_ticks[] = "ticks"; +static const char s_ticks[] = "ticks"; SCM lticks(i) SCM i; @@ -485,12 +459,4 @@ int dumped = 0; /* Is this an invocation of unexec exe? */ -#ifdef SHORT_ALIGN -typedef short STACKITEM; -#else -typedef long STACKITEM; -#endif -/* See scm.h for definition of P */ -void init_storage P((STACKITEM *stack_start_ptr, long init_heap_size)); - void init_scm(iverbose, buf0stdin, init_heap_size) int iverbose; @@ -666,5 +632,5 @@ int argc; const char * const *argv; - char *script_arg; + const char *script_arg; int iverbose; int buf0stdin; @@ -780,5 +746,5 @@ const char dirsep[] = DIRSEP; -SCM softtype() +static SCM softtype() { #ifdef nosve @@ -843,8 +809,8 @@ } -char *execpath = 0; -char s_no_execpath[] = "no execpath"; +char *execpath = NULL; +const char s_no_execpath[] = "no execpath"; #define s_execpath (s_no_execpath+3) -SCM scm_execpath(newpath) +static SCM scm_execpath(newpath) SCM newpath; { @@ -870,5 +836,5 @@ const char *script_arg; { - char *exepath = 0; + char *exepath = NULL; #ifndef macintosh # ifdef HAVE_UNIX @@ -904,6 +870,6 @@ #ifndef _Windows -char s_system[] = "system"; -SCM lsystem(cmd) +const char s_system[] = "system"; +static SCM lsystem(cmd) SCM cmd; { @@ -922,7 +888,6 @@ extern char **environ; /* The Linux man page says this declaration is necessary. */ -char s_getenv[] = "getenv"; -char *getenv(); -SCM scm_getenv(nam) +static const char s_getenv[] = "getenv"; +static SCM scm_getenv(nam) SCM nam; { @@ -949,6 +914,6 @@ # include # include -char s_ed[] = "ed"; -SCM ed(fname) +static const char s_ed[] = "ed"; +static SCM ed(fname) SCM fname; { @@ -1009,5 +974,5 @@ SCM *loc_features; void add_feature(str) - char* str; + const char* str; { *loc_features = cons(CAR(sysintern(str, UNDEFINED)), *loc_features); --- scm.h 2014-11-22 21:34:19.000000000 -0500 +++ scm.h 2015-01-27 01:33:21.000000000 -0500 @@ -95,5 +95,5 @@ typedef struct { - char *name; + const char *name; SCM (*mark)P((SCM ptr)); int (*free)P((FILE *p)); @@ -130,5 +130,5 @@ #ifdef FLOATS -typedef struct {char *string;double (*cproc)P((double));} dblproc; +typedef struct {const char *string;double (*cproc)P((double));} dblproc; # ifdef SINGLES # ifdef CDR_DOUBLES @@ -176,5 +176,5 @@ #define MAKSPCSYM2(work, look) ((127L & (work)) | ((127L<<9) & (look))) -SCM_EXPORT char *isymnames[]; +SCM_EXPORT const char *isymnames[]; #define NUM_ISPCSYM 14 #define IM_AND MAKSPCSYM(0) @@ -321,5 +321,5 @@ #define SCM_ESTK_PARENT_WRITABLEP(v) (VELTS(v)[1]) #define SCM_ESTK_PARENT_INDEX(v) (VELTS(v)[2]) -SCM_EXPORT long tc16_env, tc16_ident; +SCM_EXPORT long tc16_env, tc16_ident, tc16_promise; #define ENVP(x) (tc16_env==TYP16(x)) #define SCM_ENV_FORMALS CAR @@ -408,5 +408,5 @@ #define SETNUMDIGS(x, v, t) CAR(x) = MAKE_NUMDIGS(v, t) -#define SNAME(x) ((char *)(subrs[NUMDIGS(x)].name)) +#define SNAME(x) ((const char *)(subrs[NUMDIGS(x)].name)) #define SUBRF(x) (((subr *)(SCM2PTR(x)))->cproc) #define DSUBRF(x) (((dsubr *)(SCM2PTR(x)))->dproc) @@ -597,5 +597,4 @@ #define tc16_sfport (tc7_port + 3*256L) SCM_EXPORT long tc16_dir; -SCM_EXPORT long tc16_clport; SCM_EXPORT SCM sys_protects[]; @@ -649,5 +648,5 @@ SCM_EXPORT SCM *loc_errobj; SCM_EXPORT SCM loadport; -SCM_EXPORT char *errjmp_bad; +SCM_EXPORT const char *errjmp_bad; SCM_EXPORT VOLATILE int ints_disabled; SCM_EXPORT int output_deferred, gc_hook_pending, gc_hook_active; @@ -658,5 +657,5 @@ SCM_EXPORT int dumped; SCM_EXPORT char *execpath; -SCM_EXPORT char s_no_execpath[]; +SCM_EXPORT const char s_no_execpath[]; SCM_EXPORT int scm_verbose; #define verbose (scm_verbose+0) @@ -666,20 +665,19 @@ /* strings used in several source files */ -SCM_EXPORT char s_write[], s_newline[], s_system[]; -SCM_EXPORT char s_make_string[], s_make_vector[], s_list[], s_op_pipe[]; +SCM_EXPORT const char s_write[], s_newline[], s_system[]; +SCM_EXPORT const char s_make_string[], s_make_vector[], s_list[], s_op_pipe[]; +SCM_EXPORT const char s_inexactp[], s_redefining[], s_obunhash[]; #define s_string (s_make_string+5) #define s_vector (s_make_vector+5) #define s_pipe (s_op_pipe+5) -SCM_EXPORT char s_make_sh_array[]; -SCM_EXPORT char s_array_fill[]; -#define s_array (s_make_sh_array+12) -SCM_EXPORT char s_ccl[]; +SCM_EXPORT const char s_array_fill[]; +SCM_EXPORT const char s_ccl[]; #define s_limit (s_ccl+10) -SCM_EXPORT char s_close_port[]; +SCM_EXPORT const char s_close_port[]; #define s_port_type (s_close_port+6) -SCM_EXPORT char s_call_cc[]; +SCM_EXPORT const char s_call_cc[]; #define s_cont (s_call_cc+18) -SCM_EXPORT char s_try_create_file[]; -SCM_EXPORT char s_badenv[]; +SCM_EXPORT const char s_try_create_file[]; +SCM_EXPORT const char s_badenv[]; SCM_EXPORT void (*init_user_scm) P((void)); @@ -702,22 +700,21 @@ SCM_EXPORT SCM obhash P((SCM obj)); SCM_EXPORT SCM obunhash P((SCM obj)); -SCM_EXPORT unsigned long strhash P((unsigned char *str, sizet len, unsigned long n)); +SCM_EXPORT unsigned long strhash P((const unsigned char *str, sizet len, unsigned long n)); SCM_EXPORT unsigned long hasher P((SCM obj, unsigned long n, sizet d)); SCM_EXPORT SCM lroom P((SCM args)); SCM_EXPORT void lfflush P((SCM port)); -SCM_EXPORT SCM scm_force_output P((SCM port)); SCM_EXPORT void scm_init_gra P((scm_gra *gra, sizet eltsize, sizet len, sizet maxlen, const char *what)); -SCM_EXPORT int scm_grow_gra P((scm_gra *gra, char *elt)); +SCM_EXPORT int scm_grow_gra P((scm_gra *gra, const char *elt)); SCM_EXPORT void scm_trim_gra P((scm_gra *gra)); SCM_EXPORT void scm_free_gra P((scm_gra *gra)); -SCM_EXPORT long newsmob P((smobfuns *smob)); -SCM_EXPORT long newptob P((ptobfuns *ptob)); +SCM_EXPORT long newsmob P((const smobfuns *smob)); +SCM_EXPORT long newptob P((const ptobfuns *ptob)); SCM_EXPORT SCM scm_port_entry P((FILE *stream, long ptype, long flags)); SCM_EXPORT SCM scm_open_ports P((void)); -SCM_EXPORT void prinport P((SCM exp, SCM port, char *type)); +SCM_EXPORT void prinport P((SCM exp, SCM port, const char *type)); SCM_EXPORT SCM repl P((void)); SCM_EXPORT void repl_report P((void)); -SCM_EXPORT void growth_mon P((char *obj, long size, char *units, int grewp)); +SCM_EXPORT void growth_mon P((const char *obj, long size, const char *units, int grewp)); SCM_EXPORT void gc_start P((const char *what)); SCM_EXPORT void gc_end P((void)); @@ -735,27 +732,19 @@ SCM_EXPORT SCM scm_stack_trace P((SCM contin)); SCM_EXPORT SCM scm_scope_trace P((SCM env)); -SCM_EXPORT SCM scm_frame_trace P((SCM contin, SCM nf)); -SCM_EXPORT SCM scm_frame2env P((SCM contin, SCM nf)); -SCM_EXPORT SCM scm_frame_eval P((SCM contin, SCM nf, SCM expr)); SCM_EXPORT void scm_iprin1 P((SCM exp, SCM port, int writing)); SCM_EXPORT void scm_intprint P((long n, int radix, SCM port)); -SCM_EXPORT void scm_iprlist P((char *hdr, SCM exp, int tlr, SCM port, int writing)); SCM_EXPORT SCM scm_env_lookup P((SCM var, SCM stenv)); SCM_EXPORT SCM scm_env_rlookup P((SCM addr, SCM stenv, const char *what)); SCM_EXPORT SCM scm_env_getprop P((SCM prop, SCM env)); SCM_EXPORT SCM scm_env_addprop P((SCM prop, SCM val, SCM env)); -SCM_EXPORT long num_frames P((SCM estk, int i)); -SCM_EXPORT SCM *estk_frame P((SCM estk, int i, int nf)); -SCM_EXPORT SCM *cont_frame P((SCM contin, int nf)); -SCM_EXPORT SCM stacktrace1 P((SCM estk, int i)); SCM_EXPORT void scm_princode P((SCM code, SCM env, SCM port, int writing)); SCM_EXPORT void scm_princlosure P((SCM proc, SCM port, int writing)); SCM_EXPORT void lputc P((int c, SCM port)); SCM_EXPORT void lputs P((const char *s, SCM port)); -SCM_EXPORT sizet lfwrite P((char *ptr, sizet size, sizet nitems, SCM port)); +SCM_EXPORT sizet lfwrite P((const char *ptr, sizet size, sizet nitems, SCM port)); SCM_EXPORT int lgetc P((SCM port)); SCM_EXPORT void lungetc P((int c, SCM port)); SCM_EXPORT char *grow_tok_buf P((SCM tok_buf)); -SCM_EXPORT long mode_bits P((char *modes, char *cmodes)); +SCM_EXPORT long mode_bits P((const char *modes, char *cmodes)); SCM_EXPORT long time_in_msec P((long x)); SCM_EXPORT SCM my_time P((void)); @@ -764,10 +753,43 @@ SCM_EXPORT void final_scm P((int)); + +SCM_EXPORT void init_byte P((void)); +SCM_EXPORT void init_bytenumb P((void)); +SCM_EXPORT void init_crs P((void)); +SCM_EXPORT void init_debug P((void)); +SCM_EXPORT void init_differ P((void)); +SCM_EXPORT void init_dynl P((void)); +SCM_EXPORT void init_edline P((void)); +SCM_EXPORT void init_eval P((void)); +SCM_EXPORT void init_features P((void)); +SCM_EXPORT void init_gsubr P((void)); +SCM_EXPORT void init_io P((void)); +SCM_EXPORT void init_ioext P((void)); +SCM_EXPORT void init_posix P((void)); +SCM_EXPORT void init_ramap P((void)); +SCM_EXPORT void init_record P((void)); +SCM_EXPORT void init_repl P((int iverbose)); +SCM_EXPORT void init_rgx P((void)); +SCM_EXPORT void init_rope P((void)); SCM_EXPORT void init_sbrk P((void)); +SCM_EXPORT void init_sc2 P((void)); +SCM_EXPORT void init_scl P((void)); +SCM_EXPORT void init_socket P((void)); +SCM_EXPORT void init_subrs P((void)); +SCM_EXPORT void init_tables P((void)); +SCM_EXPORT void init_time P((void)); +SCM_EXPORT void init_types P((void)); +SCM_EXPORT void init_unif P((void)); +SCM_EXPORT void init_unix P((void)); + +SCM_EXPORT void reset_time P((void)); +SCM_EXPORT void final_repl P((void)); SCM_EXPORT int init_buf0 P((FILE *inport)); -SCM_EXPORT void scm_init_from_argv P((int argc, const char * const *argv, char *script_arg, + +SCM_EXPORT void scm_init_from_argv P((int argc, const char * const *argv, + const char *script_arg, int iverbose, int buf0stdin)); SCM_EXPORT void init_signals P((void)); -SCM_EXPORT SCM scm_top_level P((char *initpath, SCM (*toplvl_fun)())); +SCM_EXPORT SCM scm_top_level P((const char *initpath, SCM (*toplvl_fun)(void))); SCM_EXPORT void restore_signals P((void)); SCM_EXPORT void free_storage P((void)); @@ -780,5 +802,5 @@ SCM_EXPORT void unignore_signals P((void)); -SCM_EXPORT void add_feature P((char *str)); +SCM_EXPORT void add_feature P((const char *str)); SCM_EXPORT int raprin1 P((SCM exp, SCM port, int writing)); SCM_EXPORT SCM markcdr P((SCM ptr)); @@ -786,9 +808,10 @@ SCM_EXPORT SCM equal0 P((SCM ptr1, SCM ptr2)); SCM_EXPORT sizet free0 P((CELLPTR ptr)); -SCM_EXPORT void scm_warn P((char *str1, char *str2, SCM obj)); -SCM_EXPORT void everr P((SCM exp, SCM env, SCM arg, const char *pos, const char *s_subr, int codep)); -SCM_EXPORT void wta P((SCM arg, const char *pos, const char *s_subr)); +SCM_EXPORT void scm_warn P((const char *str1, const char *str2, SCM obj)); +SCM_EXPORT void everr P((SCM exp, SCM env, SCM arg, const char *pos, const char *s_subr, int codep)) +__attribute__((noreturn)); +SCM_EXPORT void wta P((SCM arg, const char *pos, const char *s_subr)) __attribute__((noreturn)); SCM_EXPORT void scm_experr P((SCM arg, const char *pos, const char *s_subr)); -SCM_EXPORT SCM intern P((char *name, sizet len)); +SCM_EXPORT SCM intern P((const char *name, sizet len)); SCM_EXPORT SCM sysintern P((const char *name, SCM val)); SCM_EXPORT SCM sym2vcell P((SCM sym)); @@ -796,12 +819,8 @@ SCM_EXPORT SCM scm_maksubr P((const char *name, int type, SCM (*fcn)())); SCM_EXPORT SCM make_subr P((const char *name, int type, SCM (*fcn)())); -SCM_EXPORT SCM make_synt P((const char *name, long flags, SCM (*fcn)())); -SCM_EXPORT SCM make_gsubr P((const char *name, int req, int opt, int rst, - SCM (*fcn)())); SCM_EXPORT SCM closure P((SCM code, int nargs)); SCM_EXPORT SCM makprom P((SCM code)); SCM_EXPORT SCM force P((SCM x)); SCM_EXPORT SCM makarb P((SCM name)); -SCM_EXPORT SCM tryarb P((SCM arb)); SCM_EXPORT SCM relarb P((SCM arb)); SCM_EXPORT SCM ceval P((SCM x, SCM static_env, SCM env)); @@ -816,25 +835,15 @@ SCM_EXPORT SCM cons2 P((SCM w, SCM x, SCM y)); SCM_EXPORT SCM resizuve P((SCM vect, SCM len)); -SCM_EXPORT SCM lnot P((SCM x)); SCM_EXPORT SCM booleanp P((SCM obj)); SCM_EXPORT SCM eq P((SCM x, SCM y)); SCM_EXPORT SCM equal P((SCM x, SCM y)); -SCM_EXPORT SCM consp P((SCM x)); SCM_EXPORT SCM cons P((SCM x, SCM y)); -SCM_EXPORT SCM nullp P((SCM x)); -SCM_EXPORT SCM setcar P((SCM pair, SCM value)); -SCM_EXPORT SCM setcdr P((SCM pair, SCM value)); -SCM_EXPORT SCM listp P((SCM x)); SCM_EXPORT SCM list P((SCM objs)); SCM_EXPORT SCM length P((SCM x)); SCM_EXPORT SCM append P((SCM args)); SCM_EXPORT SCM reverse P((SCM lst)); -SCM_EXPORT SCM list_ref P((SCM lst, SCM k)); SCM_EXPORT SCM memq P((SCM x, SCM lst)); -SCM_EXPORT SCM member P((SCM x, SCM lst)); SCM_EXPORT SCM memv P((SCM x, SCM lst)); SCM_EXPORT SCM assq P((SCM x, SCM alist)); -SCM_EXPORT SCM assoc P((SCM x, SCM alist)); -SCM_EXPORT SCM symbolp P((SCM x)); SCM_EXPORT SCM symbol2string P((SCM s)); SCM_EXPORT SCM string2symbol P((SCM s)); @@ -842,5 +851,4 @@ SCM_EXPORT SCM numberp P((SCM x)); SCM_EXPORT SCM exactp P((SCM x)); -SCM_EXPORT SCM inexactp P((SCM x)); SCM_EXPORT SCM eqp P((SCM x, SCM y)); SCM_EXPORT SCM eqv P((SCM x, SCM y)); @@ -854,6 +862,4 @@ SCM_EXPORT SCM oddp P((SCM n)); SCM_EXPORT SCM evenp P((SCM n)); -SCM_EXPORT SCM scm_max P((SCM x, SCM y)); -SCM_EXPORT SCM scm_min P((SCM x, SCM y)); SCM_EXPORT SCM sum P((SCM x, SCM y)); SCM_EXPORT SCM difference P((SCM x, SCM y)); @@ -864,15 +870,12 @@ SCM_EXPORT SCM scm_iabs P((SCM x)); SCM_EXPORT SCM scm_abs P((SCM x)); -SCM_EXPORT SCM lremainder P((SCM x, SCM y)); SCM_EXPORT SCM modulo P((SCM x, SCM y)); -SCM_EXPORT SCM lgcd P((SCM x, SCM y)); -SCM_EXPORT SCM llcm P((SCM n1, SCM n2)); SCM_EXPORT SCM number2string P((SCM x, SCM radix)); -SCM_EXPORT SCM istring2number P((char *str, long len, long radix)); +SCM_EXPORT SCM istring2number P((const char *str, long len, long radix)); SCM_EXPORT SCM string2number P((SCM str, SCM radix)); -SCM_EXPORT SCM istr2flo P((char *str, long len, long radix)); +SCM_EXPORT SCM istr2flo P((const char *str, long len, long radix)); SCM_EXPORT SCM mkbig P((sizet nlen, int sign)); SCM_EXPORT void bigrecy P((SCM bgnm)); -SCM_EXPORT SCM mkstrport P((SCM pos, SCM str, long modes, char *caller)); +SCM_EXPORT SCM mkstrport P((SCM pos, SCM str, long modes, const char *caller)); SCM_EXPORT SCM mksafeport P((int maxlen, SCM port)); SCM_EXPORT int reset_safeport P((SCM sfp, int maxlen, SCM port)); @@ -887,48 +890,23 @@ SCM_EXPORT SCM uve_write P((SCM v, SCM port)); SCM_EXPORT SCM raequal P((SCM ra0, SCM ra1)); -SCM_EXPORT SCM array_equal P((SCM u, SCM v)); SCM_EXPORT SCM array_rank P((SCM ra)); +SCM_EXPORT SCM array_dims P((SCM ra)); +SCM_EXPORT SCM dims2ura P((SCM dims, SCM prot, SCM fill)); SCM_EXPORT int rafill P((SCM ra, SCM fill, SCM ignore)); -SCM_EXPORT SCM uve_fill P((SCM uve, SCM fill)); -SCM_EXPORT SCM array_fill P((SCM ra, SCM fill)); SCM_EXPORT SCM array_prot P((SCM ra)); -SCM_EXPORT SCM array_rank P((SCM ra)); SCM_EXPORT SCM array_contents P((SCM ra, SCM strict)); SCM_EXPORT int bigprint P((SCM exp, SCM port, int writing)); SCM_EXPORT int floprint P((SCM sexp, SCM port, int writing)); -SCM_EXPORT SCM istr2int P((char *str, long len, int radix)); -SCM_EXPORT SCM istr2bve P((char *str, long len)); -SCM_EXPORT void scm_ipruk P((char *hdr, SCM ptr, SCM port)); -SCM_EXPORT SCM charp P((SCM x)); -SCM_EXPORT SCM char_lessp P((SCM x, SCM y)); -SCM_EXPORT SCM chci_eq P((SCM x, SCM y)); -SCM_EXPORT SCM chci_lessp P((SCM x, SCM y)); -SCM_EXPORT SCM char_alphap P((SCM chr)); -SCM_EXPORT SCM char_nump P((SCM chr)); -SCM_EXPORT SCM char_whitep P((SCM chr)); -SCM_EXPORT SCM char_upperp P((SCM chr)); -SCM_EXPORT SCM char_lowerp P((SCM chr)); -SCM_EXPORT SCM char2int P((SCM chr)); -SCM_EXPORT SCM int2char P((SCM n)); -SCM_EXPORT SCM char_upcase P((SCM chr)); -SCM_EXPORT SCM char_downcase P((SCM chr)); -SCM_EXPORT SCM stringp P((SCM x)); +SCM_EXPORT SCM istr2int P((const char *str, long len, int radix)); +SCM_EXPORT SCM istr2bve P((const char *str, long len)); +SCM_EXPORT void scm_ipruk P((const char *hdr, SCM ptr, SCM port)); SCM_EXPORT SCM string P((SCM chrs)); SCM_EXPORT SCM make_string P((SCM k, SCM chr)); SCM_EXPORT SCM string2list P((SCM str)); -SCM_EXPORT SCM st_length P((SCM str)); -SCM_EXPORT SCM st_ref P((SCM str, SCM k)); -SCM_EXPORT SCM st_set P((SCM str, SCM k, SCM chr)); SCM_EXPORT SCM st_equal P((SCM s1, SCM s2)); -SCM_EXPORT SCM stci_equal P((SCM s1, SCM s2)); -SCM_EXPORT SCM st_lessp P((SCM s1, SCM s2)); -SCM_EXPORT SCM stci_lessp P((SCM s1, SCM s2)); SCM_EXPORT SCM substring P((SCM str, SCM start, SCM end)); SCM_EXPORT SCM st_append P((SCM args)); -SCM_EXPORT SCM vectorp P((SCM x)); SCM_EXPORT SCM vector_length P((SCM v)); SCM_EXPORT SCM vector P((SCM l)); -SCM_EXPORT SCM vector_ref P((SCM v, SCM k)); -SCM_EXPORT SCM vector_set P((SCM v, SCM k, SCM obj)); SCM_EXPORT SCM make_vector P((SCM k, SCM fill)); SCM_EXPORT SCM vector2list P((SCM v)); @@ -952,12 +930,6 @@ SCM_EXPORT SCM scm_check_linum P((SCM x, SCM *linum)); SCM_EXPORT SCM scm_add_linum P((SCM linum, SCM x)); -SCM_EXPORT SCM input_portp P((SCM x)); -SCM_EXPORT SCM output_portp P((SCM x)); -SCM_EXPORT SCM cur_input_port P((void)); -SCM_EXPORT SCM cur_output_port P((void)); SCM_EXPORT SCM i_setbuf0 P((SCM port)); -SCM_EXPORT SCM try_open_file P((SCM filename, SCM modes)); SCM_EXPORT SCM open_file P((SCM filename, SCM modes)); -SCM_EXPORT SCM open_pipe P((SCM pipestr, SCM modes)); SCM_EXPORT SCM close_port P((SCM port)); SCM_EXPORT SCM scm_file_position P((SCM port, SCM pos)); @@ -969,5 +941,4 @@ SCM_EXPORT SCM eof_objectp P((SCM x)); SCM_EXPORT int scm_io_error P((SCM port, const char *what)); -SCM_EXPORT SCM scm_write P((SCM obj, SCM port)); SCM_EXPORT SCM scm_display P((SCM obj, SCM port)); SCM_EXPORT SCM scm_newline P((SCM port)); @@ -977,5 +948,4 @@ SCM_EXPORT void scm_line_msg P((SCM file, SCM linum, SCM port)); SCM_EXPORT void scm_err_line P((const char *what, SCM file, SCM linum, SCM port)); -SCM_EXPORT SCM scm_getenv P((SCM nam)); SCM_EXPORT SCM prog_args P((void)); SCM_EXPORT SCM makacro P((SCM code)); @@ -997,5 +967,5 @@ #ifdef CAREFUL_INTS SCM_EXPORT void ints_viol P((ints_infot *info, int sense)); -SCM_EXPORT void ints_warn P((char *s1, char* s2, char *fname, int linum)); +SCM_EXPORT void ints_warn P((const char *s1, const char* s2, const char *fname, int linum)); #endif SCM_EXPORT void add_final P((void (*final)(void))); @@ -1007,18 +977,12 @@ SCM_EXPORT SCM scm_load_string P((SCM str)); SCM_EXPORT SCM scm_unexec P((const SCM pathname)); -SCM_EXPORT SCM scm_logbitp P((SCM index, SCM j1)); -SCM_EXPORT SCM scm_logtest P((SCM x, SCM y)); -SCM_EXPORT SCM scm_logxor P((SCM x, SCM y)); -SCM_EXPORT SCM scm_logand P((SCM x, SCM y)); -SCM_EXPORT SCM scm_logior P((SCM x, SCM y)); -SCM_EXPORT SCM scm_lognot P((SCM n)); -SCM_EXPORT SCM scm_intexpt P((SCM z1, SCM z2)); -SCM_EXPORT SCM scm_intlog P((SCM base, SCM k)); -SCM_EXPORT SCM scm_cintlog P((SCM base, SCM k)); -SCM_EXPORT SCM scm_ash P((SCM n, SCM cnt)); -SCM_EXPORT SCM scm_bitfield P((SCM n, SCM start, SCM end)); -SCM_EXPORT SCM scm_logcount P((SCM n)); -SCM_EXPORT SCM scm_intlength P((SCM n)); -SCM_EXPORT SCM scm_copybit P((SCM index, SCM j1, SCM bit)); +SCM_EXPORT SCM scm_logbitp P((SCM index, SCM j1)); +SCM_EXPORT SCM scm_logtest P((SCM x, SCM y)); +SCM_EXPORT SCM scm_logxor P((SCM x, SCM y)); +SCM_EXPORT SCM scm_logand P((SCM x, SCM y)); +SCM_EXPORT SCM scm_logior P((SCM x, SCM y)); +SCM_EXPORT SCM scm_lognot P((SCM n)); +SCM_EXPORT SCM scm_ash P((SCM n, SCM cnt)); +SCM_EXPORT SCM scm_intlength P((SCM n)); SCM_EXPORT SCM scm_bitif P((SCM mask, SCM n0, SCM n1)); SCM_EXPORT SCM scm_copybitfield P((SCM to, SCM start, SCM rest)); @@ -1027,11 +991,11 @@ SCM_EXPORT SCM long2num P((long n)); SCM_EXPORT SCM ulong2num P((unsigned long n)); -SCM_EXPORT unsigned char num2uchar P((SCM num, char *pos, char *s_caller)); -SCM_EXPORT signed char num2char P((SCM num, char *pos, char *s_caller)); -SCM_EXPORT unsigned short num2ushort P((SCM num, char *pos, char *s_caller)); -SCM_EXPORT short num2short P((SCM num, char *pos, char *s_caller)); -SCM_EXPORT unsigned long num2ulong P((SCM num, char *pos, char *s_caller)); -SCM_EXPORT long num2long P((SCM num, char *pos, char *s_caller)); -SCM_EXPORT double num2dbl P((SCM num, char *pos, char *s_caller)); +SCM_EXPORT unsigned char num2uchar P((SCM num, const char *pos, const char *s_caller)); +SCM_EXPORT signed char num2char P((SCM num, const char *pos, const char *s_caller)); +SCM_EXPORT unsigned short num2ushort P((SCM num, const char *pos, const char *s_caller)); +SCM_EXPORT short num2short P((SCM num, const char *pos, const char *s_caller)); +SCM_EXPORT unsigned long num2ulong P((SCM num, const char *pos, const char *s_caller)); +SCM_EXPORT long num2long P((SCM num, const char *pos, const char *s_caller)); +SCM_EXPORT double num2dbl P((SCM num, const char *pos, const char *s_caller)); SCM_EXPORT SCM makfromstr P((const char *src, sizet len)); SCM_EXPORT SCM makfromstrs P((int argc, const char * const *argv)); @@ -1039,8 +1003,8 @@ SCM_EXPORT char **makargvfrmstrs P((SCM args, const char *s_v)); SCM_EXPORT void must_free_argv P((char **argv)); -SCM_EXPORT SCM scm_evstr P((char *str)); -SCM_EXPORT void scm_ldstr P((char *str)); -SCM_EXPORT int scm_ldfile P((char *path)); -SCM_EXPORT int scm_ldprog P((char *path)); +SCM_EXPORT SCM scm_evstr P((const char *str)); +SCM_EXPORT void scm_ldstr P((const char *str)); +SCM_EXPORT int scm_ldfile P((const char *path)); +SCM_EXPORT int scm_ldprog P((const char *path)); SCM_EXPORT void* scm_addr P((SCM args, const char *name)); SCM_EXPORT void* scm_base_addr P((SCM v, const char *name)); @@ -1061,9 +1025,8 @@ SCM_EXPORT SCM normbig P((SCM b)); SCM_EXPORT SCM copybig P((SCM b, int sign)); -SCM_EXPORT SCM addbig P((BIGDIG *x, sizet nx, int xsgn, SCM bigy, int sgny)); -SCM_EXPORT SCM mulbig P((BIGDIG *x, sizet nx, BIGDIG *y, sizet ny, int sgn)); +SCM_EXPORT SCM addbig P((const BIGDIG *x, sizet nx, int xsgn, SCM bigy, int sgny)); +SCM_EXPORT SCM mulbig P((const BIGDIG *x, sizet nx, const BIGDIG *y, sizet ny, int sgn)); SCM_EXPORT UBIGLONG divbigdig P((BIGDIG *ds, sizet h, BIGDIG div)); -SCM_EXPORT SCM divbigint P((SCM x, long z, int sgn, int mode)); -SCM_EXPORT SCM divbigbig P((BIGDIG *x, sizet nx, BIGDIG *y, sizet ny, int sgn, +SCM_EXPORT SCM divbigbig P((const BIGDIG *x, sizet nx, BIGDIG *y, sizet ny, int sgn, int mode)); SCM_EXPORT long pseudolong P((long x)); @@ -1077,6 +1040,6 @@ SCM_EXPORT char * scm_try_path P((char *path)); SCM_EXPORT char * script_find_executable P((const char *command)); -SCM_EXPORT char ** script_process_argv P((int argc, const char **argv)); -SCM_EXPORT int script_count_argv P((const char **argv)); +SCM_EXPORT const char * const * script_process_argv P((int argc, const char * const *argv)); +SCM_EXPORT int script_count_argv P((const char * const *argv)); SCM_EXPORT char * find_impl_file P((const char *exec_path, const char *generic_name, const char *initname, const char *sep)); @@ -1085,4 +1048,6 @@ SCM_EXPORT void scm_ecache_report P((void)); SCM_EXPORT void scm_estk_reset P((sizet size)); +SCM_EXPORT void scm_estk_grow P((void)); +SCM_EXPORT void scm_estk_shrink P((void)); SCM_EXPORT void scm_env_cons P((SCM x, SCM y)); SCM_EXPORT void scm_env_cons2 P((SCM w, SCM x, SCM y)); @@ -1091,4 +1056,5 @@ SCM_EXPORT void scm_extend_env P((void)); SCM_EXPORT void scm_egc P((void)); +SCM_EXPORT void scm_dynthrow P((SCM cont, SCM arg1, SCM arg2, SCM rest)); /* Global state for environment cache */ @@ -1109,8 +1075,15 @@ # define ASRTGO(_cond, _label) ; #else -# define ASRTER(_cond, _arg, _pos, _subr) if (SCM_EXPECT_FALSE(!(_cond))) wta(_arg, (char *)(_pos), _subr); +# define ASRTER(_cond, _arg, _pos, _subr) if (SCM_EXPECT_FALSE(!(_cond))) wta(_arg, (const char *)(_pos), _subr); # define ASRTGO(_cond, _label) if (SCM_EXPECT_FALSE(!(_cond))) goto _label; #endif +SCM_EXPORT void igc P((const char *what, SCM basecont)); +SCM_EXPORT void unexec P((const char *new_name, const char *a_name, unsigned data_start, + unsigned bss_start, unsigned entry_address)); +SCM_EXPORT void scm_fill_freelist P((void)); +struct stat; +SCM_EXPORT SCM stat2scm P((const struct stat *stat_temp)); + #define ARGn 1L #define ARG1 2L --- scmmain.c 2013-04-06 21:52:41.000000000 -0400 +++ scmmain.c 2015-01-23 18:55:19.000000000 -0500 @@ -19,9 +19,4 @@ /* Author: Aubrey Jaffer */ -/* added by Dai Inukai 2001-03-21*/ -#ifdef __FreeBSD__ -# include -#endif - #ifdef _WIN32 # include @@ -47,5 +42,5 @@ #endif -char *scm_find_implpath(execpath) +static char *scm_find_implpath(execpath) const char *execpath; { @@ -84,14 +79,11 @@ int main(argc, argv) int argc; - const char **argv; + const char * const *argv; { - char *script_arg = 0; /* location of SCSH style script file or 0. */ - char *implpath = 0, **nargv; + const char *script_arg = NULL; /* location of SCSH style script file or 0. */ + char *implpath = NULL; + const char * const * nargv; int nargc, iverbose = 0, buf0stdin; SCM retval; -/* added by Dai Inukai 2001-03-21 */ -#ifdef __FreeBSD__ - fp_prec_t fpspec; -#endif #ifdef WINSIGNALS @@ -111,9 +103,5 @@ init_sbrk(); /* Do this before malloc()s. */ #endif -/* added by Dai Inukai 2001-03-21 */ -#ifdef __FreeBSD__ - fpspec = fpsetprec(FP_PE); /* IEEE 64 bit FP mantissa*/ -#endif - execpath = 0; /* even when dumped */ + execpath = NULL; /* even when dumped */ if ((nargv = script_process_argv(argc, argv))) { /* SCSH style scripts */ script_arg = argv[2]; /* Save for scm_find_execpath() call */ @@ -152,10 +140,4 @@ if (execpath) free(execpath); execpath = 0; -/* added by Dai Inukai 2001-03-27 */ -#ifdef __FreeBSD__ - fpspec = fpsetprec(fpspec); /* Set back to FP_PD which is 53 bit FP. */ - /* This may not be needed because the */ - /* kernel is set to FP_PD by default. */ -#endif return (int)INUM(retval); } --- script.c 2008-01-30 22:32:55.000000000 -0500 +++ script.c 2015-01-23 18:55:19.000000000 -0500 @@ -54,10 +54,10 @@ { long len = strlen(str1); - str1 = (char *)realloc(str1, (sizet)(len + n + 1)); + str1 = realloc(str1, (sizet)(len + n + 1)); if (!str1) return 0L; strncat(str1 + len, str2, n); return str1; } - str1 = (char *)malloc((sizet)(n + 1)); + str1 = malloc((sizet)(n + 1)); if (!str1) return 0L; str1[0] = 0; @@ -81,5 +81,5 @@ } -char *scm_sep_init_try(path, sep, initname) +static char *scm_sep_init_try(path, sep, initname) char *path; const char *sep, *initname; @@ -147,6 +147,6 @@ { char *sepptr = strrchr(exec_path, sep[0]); - char *extptr = exec_path + strlen(exec_path); - char *path = 0; + const char *extptr = exec_path + strlen(exec_path); + char *path = NULL; #ifdef _WIN32 @@ -189,5 +189,5 @@ if (!strcmp(sepptr, "exe") || !strcmp(sepptr, "bin") || !strcmp(sepptr, "EXE") || !strcmp(sepptr, "BIN")) { - char *peer; + const char *peer; /* Look for initname in peer directory "lib". */ @@ -279,10 +279,10 @@ } -char *script_read_arg(f) +static const char *script_read_arg(f) FILE *f; { sizet tlen = 1; int tind = 0, qted = 0, chr; - char *tbuf = (char *)malloc((1 + tlen) * sizeof(char)); + char *tbuf = malloc((1 + tlen) * sizeof(char)); if (!tbuf) return 0L; while (1) switch (chr = getc(f)) { @@ -337,5 +337,5 @@ } -int script_meta_arg_P(arg) +static int script_meta_arg_P(arg) const char *arg; { @@ -352,12 +352,12 @@ } -char **script_process_argv(argc, argv) +const char * const *script_process_argv(argc, argv) int argc; - const char **argv; + const char * const *argv; { int nargc = argc, argi = 1, nargi = 1; - char *narg, **nargv; - if (!(argc > 2 && script_meta_arg_P(argv[1]))) return 0L; - if (!(nargv = (char **)malloc((1 + nargc) * sizeof(char *)))) return 0L; + const char *narg, **nargv; + if (!(argc > 2 && script_meta_arg_P(argv[1]))) return NULL; + if (!(nargv = malloc((1 + nargc) * sizeof(char *)))) return NULL; nargv[0] = argv[0]; while (((argi+1) < argc) && (script_meta_arg_P(argv[argi]))) { @@ -366,10 +366,10 @@ nargc--; /* to compensate for replacement of '\\' */ while (1) switch (getc(f)) { - case EOF: return 0L; + case EOF: return NULL; default: continue; case '\n': goto found_args; } found_args: while ((narg = script_read_arg(f))) - if (!(nargv = (char **)realloc(nargv, (1 + ++nargc) * sizeof(char *)))) + if (!(nargv = realloc(nargv, (1 + ++nargc) * sizeof(char *)))) return 0L; else nargv[nargi++] = narg; @@ -383,5 +383,5 @@ int script_count_argv(argv) - const char **argv; + const char * const *argv; { int argc = 0; --- socket.c 2008-01-30 22:32:57.000000000 -0500 +++ socket.c 2015-01-23 18:55:19.000000000 -0500 @@ -54,6 +54,6 @@ #endif /* STDC_HEADERS */ -static char s_inetaddr[] = "inet:string->address"; -SCM l_inetaddr (host) +static const char s_inetaddr[] = "inet:string->address"; +static SCM l_inetaddr (host) SCM host; { @@ -72,6 +72,6 @@ } -static char s_inetstr[] = "inet:address->string"; -SCM l_inetstr (inetid) +static const char s_inetstr[] = "inet:address->string"; +static SCM l_inetstr (inetid) SCM inetid; { @@ -83,6 +83,6 @@ } -static char s_network[] = "inet:network"; -SCM l_network (host) +static const char s_network[] = "inet:network"; +static SCM l_network (host) SCM host; { @@ -93,6 +93,6 @@ #ifndef __CYGWIN__ -static char s_lna[] = "inet:local-network-address"; -SCM l_lna (host) +static const char s_lna[] = "inet:local-network-address"; +static SCM l_lna (host) SCM host; { @@ -103,6 +103,6 @@ #endif -static char s_makaddr[] = "inet:make-address"; -SCM l_makaddr (net, lna) +static const char s_makaddr[] = "inet:make-address"; +static SCM l_makaddr (net, lna) SCM net, lna; { @@ -115,6 +115,6 @@ #ifndef __CYGWIN__ -static char s_hostinfo[] = "gethost"; -SCM l_hostinfo(name) +static const char s_hostinfo[] = "gethost"; +static SCM l_hostinfo(name) SCM name; { @@ -124,5 +124,5 @@ struct hostent *entry; struct in_addr inad; - const char **argv; + const char * const *argv; int i = 0; # ifndef linux @@ -145,12 +145,13 @@ if (!entry) return BOOL_F; ve[ 0] = makfrom0str(entry->h_name); - ve[ 1] = makfromstrs(-1, entry->h_aliases); + ve[ 1] = makfromstrs(-1, (const char * const *)entry->h_aliases); ve[ 2] = MAKINUM(entry->h_addrtype + 0L); ve[ 3] = MAKINUM(entry->h_length + 0L); if (sizeof(struct in_addr) != entry->h_length) {ve[ 4] = BOOL_F; return ans;} - for (argv = entry->h_addr_list; argv[i]; i++); + for (argv = (const char * const *)entry->h_addr_list; argv[i]; i++) + ; while (i--) { - inad = *(struct in_addr *)argv[i]; + inad = *(const struct in_addr *)argv[i]; lst = cons(ulong2num(ntohl(inad.s_addr)), lst); } @@ -158,6 +159,6 @@ return ans; } -static char s_netinfo[] = "getnet"; -SCM l_netinfo(name) +static const char s_netinfo[] = "getnet"; +static SCM l_netinfo(name) SCM name; { @@ -182,5 +183,5 @@ if (!entry) return BOOL_F; ve[ 0] = makfrom0str(entry->n_name); - ve[ 1] = makfromstrs(-1, entry->n_aliases); + ve[ 1] = makfromstrs(-1, (const char * const *)entry->n_aliases); ve[ 2] = MAKINUM(entry->n_addrtype + 0L); ve[ 3] = ulong2num(entry->n_net + 0L); @@ -188,6 +189,6 @@ } #endif -static char s_protoinfo[] = "getproto"; -SCM l_protoinfo(name) +static const char s_protoinfo[] = "getproto"; +static SCM l_protoinfo(name) SCM name; { @@ -212,10 +213,10 @@ if (!entry) return BOOL_F; ve[ 0] = makfrom0str(entry->p_name); - ve[ 1] = makfromstrs(-1, entry->p_aliases); + ve[ 1] = makfromstrs(-1, (const char * const *)entry->p_aliases); ve[ 2] = MAKINUM(entry->p_proto + 0L); return ans; } -static char s_servinfo[] = "getserv"; -SCM l_servinfo(args) +static const char s_servinfo[] = "getserv"; +static SCM l_servinfo(args) SCM args; { @@ -245,5 +246,5 @@ if (!entry) return BOOL_F; ve[ 0] = makfrom0str(entry->s_name); - ve[ 1] = makfromstrs(-1, entry->s_aliases); + ve[ 1] = makfromstrs(-1, (const char * const *)entry->s_aliases); ve[ 2] = MAKINUM(ntohs(entry->s_port) + 0L); ve[ 3] = makfrom0str(entry->s_proto); @@ -251,5 +252,5 @@ } -SCM l_sethost(arg) +static SCM l_sethost(arg) SCM arg; { @@ -259,5 +260,5 @@ } #ifndef __CYGWIN__ -SCM l_setnet(arg) +static SCM l_setnet(arg) SCM arg; { @@ -267,5 +268,5 @@ } #endif -SCM l_setproto(arg) +static SCM l_setproto(arg) SCM arg; { @@ -274,5 +275,5 @@ return UNSPECIFIED; } -SCM l_setserv(arg) +static SCM l_setserv(arg) SCM arg; { @@ -282,6 +283,6 @@ } -static char s_socket[] = "make-stream-socket"; -SCM l_socket(fam, proto) +static const char s_socket[] = "make-stream-socket"; +static SCM l_socket(fam, proto) SCM fam, proto; { @@ -316,6 +317,6 @@ return port; } -static char s_socketpair[] = "make-stream-socketpair"; -SCM l_socketpair(fam, proto) +static const char s_socketpair[] = "make-stream-socketpair"; +static SCM l_socketpair(fam, proto) SCM fam, proto; { @@ -349,6 +350,6 @@ } -static char s_shutdown[] = "socket:shutdown"; -SCM l_shutdown(port, how) +static const char s_shutdown[] = "socket:shutdown"; +static SCM l_shutdown(port, how) SCM port, how; { @@ -369,7 +370,7 @@ return port; } -static char s_unkfam[] = "unknown-family"; -static char s_connect[] = "socket:connect"; -SCM l_connect (sockpt, address, arg) +static const char s_unkfam[] = "unknown-family"; +static const char s_connect[] = "socket:connect"; +static SCM l_connect (sockpt, address, arg) SCM sockpt, address, arg; { @@ -414,6 +415,6 @@ } -static char s_bind[] = "socket:bind"; -SCM l_bind(sockpt, address) +static const char s_bind[] = "socket:bind"; +static SCM l_bind(sockpt, address) SCM sockpt, address; { @@ -450,6 +451,6 @@ } -static char s_listen[] = "socket:listen"; -SCM l_listen(port, backlog) +static const char s_listen[] = "socket:listen"; +static SCM l_listen(port, backlog) SCM port, backlog; { @@ -468,9 +469,10 @@ } -static char s_accept[] = "socket:accept"; -SCM l_accept(sockpt) +static const char s_accept[] = "socket:accept"; +static SCM l_accept(sockpt) SCM sockpt; { - int newsd, sadlen; + int newsd; + socklen_t sadlen; struct sockaddr sad; FILE *newfd; @@ -499,5 +501,5 @@ } -int sknm_print(exp, port, writing) +static int sknm_print(exp, port, writing) SCM exp; SCM port; int writing; { @@ -521,5 +523,5 @@ return !0; } -sizet sknm_free(p) +static sizet sknm_free(p) CELLPTR p; { @@ -530,6 +532,6 @@ static smobfuns sknm_smob = {mark0, sknm_free, sknm_print, 0}; -char s_sknm_family[] = "socket-name:family"; -SCM l_sknm_family(snm) +const char s_sknm_family[] = "socket-name:family"; +static SCM l_sknm_family(snm) SCM snm; { @@ -537,6 +539,6 @@ return MAKINUM(((struct sockaddr *)CDR(snm))->sa_family + 0L); } -char s_sknm_port_num[] = "socket-name:port-number"; -SCM l_sknm_port_num(snm) +const char s_sknm_port_num[] = "socket-name:port-number"; +static SCM l_sknm_port_num(snm) SCM snm; { @@ -550,6 +552,6 @@ } } -char s_sknm_addr[] = "socket-name:address"; -SCM l_sknm_addr(snm) +const char s_sknm_addr[] = "socket-name:address"; +static SCM l_sknm_addr(snm) SCM snm; { @@ -566,12 +568,12 @@ } -SCM maksknm(sad) - struct sockaddr *sad; +static SCM maksknm(sad) + struct sockaddr_in *sad; { SCM sknm; - struct sockaddr *msknm; + struct sockaddr_in *msknm; DEFER_INTS; sknm = must_malloc_cell(0L+sizeof(struct sockaddr), (SCM)tc16_sknm, "sknm"); - msknm = (struct sockaddr *)CDR(sknm); + msknm = (struct sockaddr_in *)CDR(sknm); *msknm = *sad; ALLOW_INTS; @@ -579,10 +581,11 @@ } -static char s_getpeername[] = "getpeername"; -SCM l_getpeername(sockpt) +static const char s_getpeername[] = "getpeername"; +static SCM l_getpeername(sockpt) SCM sockpt; { struct sockaddr_in sad; - int sts, sadlen = sizeof(sad); + int sts; + socklen_t sadlen = sizeof(sad); bzero((char *) &sad, sizeof(sad)); ASRTER(NIMP(sockpt) && OPFPORTP(sockpt), sockpt, ARG1, s_getpeername); @@ -593,11 +596,12 @@ return maksknm(&sad); } -static char s_getsockname[] = "getsockname"; -SCM l_getsockname(sockpt) +static const char s_getsockname[] = "getsockname"; +static SCM l_getsockname(sockpt) SCM sockpt; { struct sockaddr_in sad; - int sts, sadlen = sizeof(sad); - bzero((char *) &sad, sizeof(sad)); + int sts; + socklen_t sadlen = sizeof(sad); + bzero(&sad, sizeof(sad)); ASRTER(NIMP(sockpt) && OPFPORTP(sockpt), sockpt, ARG1, s_getsockname); SYSCALL(sts = getsockname(fileno(STREAM(sockpt)), --- subr.c 2014-05-02 20:06:08.000000000 -0400 +++ subr.c 2015-01-23 18:55:19.000000000 -0500 @@ -25,14 +25,13 @@ #define s_append (s_st_append+7) -char s_make_string[] = "make-string"; -char s_list[] = "list"; +const char s_make_string[] = "make-string"; +const char s_list[] = "list"; -static char s_setcar[] = "set-car!", s_setcdr[] = "set-cdr!", +static const char s_setcar[] = "set-car!", s_setcdr[] = "set-cdr!", s_reverse[] = "reverse", s_list_ref[] = "list-ref"; -static char s_memq[] = "memq", s_member[] = "member", +static const char s_memq[] = "memq", s_member[] = "member", s_assq[] = "assq", s_assoc[] = "assoc"; -static char s_symbol2string[] = "symbol->string", +static const char s_symbol2string[] = "symbol->string", s_str2symbol[] = "string->symbol"; -extern char s_inexactp[]; #define s_exactp (s_inexactp+2) static char s_oddp[] = "odd?", s_evenp[] = "even?"; @@ -64,5 +63,9 @@ s_ve_ref[] = "vector-ref", s_ve_set[] = "vector-set!"; -SCM lnot(x) +#ifdef BIGDIG +static SCM divbigint(SCM x, long z, int sgn, int mode); /* Forward declaration */ +#endif + +static SCM lnot(x) SCM x; { @@ -83,5 +86,5 @@ } -SCM consp(x) +static SCM consp(x) SCM x; { @@ -89,5 +92,5 @@ return CONSP(x) ? BOOL_T : BOOL_F; } -SCM setcar(pair, value) +static SCM setcar(pair, value) SCM pair, value; { @@ -96,5 +99,5 @@ return UNSPECIFIED; } -SCM setcdr(pair, value) +static SCM setcdr(pair, value) SCM pair, value; { @@ -103,5 +106,5 @@ return UNSPECIFIED; } -SCM nullp(x) +static SCM nullp(x) SCM x; { @@ -127,5 +130,5 @@ return -1; } -SCM listp(x) +static SCM listp(x) SCM x; { @@ -184,5 +187,5 @@ return res; } -SCM list_ref(lst, k) +static SCM list_ref(lst, k) SCM lst, k; { @@ -209,5 +212,5 @@ return BOOL_F; } -SCM member(x, lst) +static SCM member(x, lst) SCM x, lst; { @@ -232,5 +235,5 @@ return BOOL_F; } -SCM assoc(x, alist) +static SCM assoc(x, alist) SCM x, alist; { @@ -246,6 +249,5 @@ } -extern long tc16_promise; -SCM promisep(x) +static SCM promisep(x) SCM x; { @@ -253,5 +255,5 @@ } -SCM symbolp(x) +static SCM symbolp(x) SCM x; { @@ -475,5 +477,5 @@ return MAKINUM(z); } -SCM lremainder(x, y) +static SCM lremainder(x, y) SCM x, y; { @@ -553,5 +555,5 @@ } -SCM lgcd(x, y) +static SCM lgcd(x, y) SCM x, y; { @@ -611,5 +613,5 @@ return MAKINUM(u); } -SCM llcm(n1, n2) +static SCM llcm(n1, n2) SCM n1, n2; { @@ -662,11 +664,11 @@ #ifdef BIGDIG -SCM scm_big_ior P((BIGDIG *x, sizet nx, int xsgn, SCM bigy)); -SCM scm_big_and P((BIGDIG *x, sizet nx, int xsgn, SCM bigy, int zsgn)); -SCM scm_big_xor P((BIGDIG *x, sizet nx, int xsgn, SCM bigy)); -SCM scm_big_test P((BIGDIG *x, sizet nx, int xsgn, SCM bigy)); -SCM scm_big_ash P((SCM x, int cnt)); +static SCM scm_big_ior P((const BIGDIG *x, sizet nx, int xsgn, SCM bigy)); +static SCM scm_big_and P((const BIGDIG *x, sizet nx, int xsgn, SCM bigy, int zsgn)); +static SCM scm_big_xor P((const BIGDIG *x, sizet nx, int xsgn, SCM bigy)); +static SCM scm_big_test P((const BIGDIG *x, sizet nx, int xsgn, SCM bigy)); +static SCM scm_big_ash P((SCM x, int cnt)); -SCM scm_copy_big_dec(b, sign) +static SCM scm_copy_big_dec(b, sign) SCM b; int sign; @@ -687,6 +689,6 @@ } -SCM scm_copy_smaller(x, nx, zsgn) - BIGDIG *x; +static SCM scm_copy_smaller(x, nx, zsgn) + const BIGDIG *x; sizet nx; int zsgn; @@ -706,5 +708,5 @@ SCM scm_big_ior(x, nx, xsgn, bigy) - BIGDIG *x; + const BIGDIG *x; SCM bigy; sizet nx; /* Assumes nx <= NUMDIGS(bigy) */ @@ -738,5 +740,5 @@ SCM scm_big_xor(x, nx, xsgn, bigy) - BIGDIG *x; + const BIGDIG *x; SCM bigy; sizet nx; /* Assumes nx <= NUMDIGS(bigy) */ @@ -770,5 +772,5 @@ SCM scm_big_and(x, nx, xsgn, bigy, zsgn) - BIGDIG *x; + const BIGDIG *x; SCM bigy; sizet nx; /* Assumes nx <= NUMDIGS(bigy) */ @@ -814,5 +816,5 @@ SCM scm_big_test(x, nx, xsgn, bigy) - BIGDIG *x; + const BIGDIG *x; SCM bigy; sizet nx; /* Assumes nx <= NUMDIGS(bigy) */ @@ -1221,5 +1223,5 @@ } -SCM scm_copybit(index, j1, bit) +static SCM scm_copybit(index, j1, bit) SCM index, j1, bit; { @@ -1296,8 +1298,10 @@ } -SCM scm_bitfield(n, start, end) +static SCM scm_bitfield(n, start, end) SCM n, start, end; { +#ifdef BIGDIG int sign; +#endif int istart = INUM(start); int iend = INUM(end); @@ -1388,6 +1392,6 @@ } -char logtab[] = {0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4}; -SCM scm_bitwise_bit_count(n) +static const char logtab[] = {0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4}; +static SCM scm_bitwise_bit_count(n) SCM n; { @@ -1421,5 +1425,5 @@ } -SCM scm_logcount(n) +static SCM scm_logcount(n) SCM n; { @@ -1445,5 +1449,5 @@ } -char ilentab[] = {0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4}; +static const char ilentab[] = {0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4}; SCM scm_intlength(n) SCM n; @@ -1475,10 +1479,10 @@ } -SCM charp(x) +static SCM charp(x) SCM x; { return ICHRP(x) ? BOOL_T : BOOL_F; } -SCM char_lessp(x, y) +static SCM char_lessp(x, y) SCM x, y; { @@ -1487,5 +1491,5 @@ return (ICHR(x) < ICHR(y)) ? BOOL_T : BOOL_F; } -SCM char_leqp(x, y) +static SCM char_leqp(x, y) SCM x, y; { @@ -1494,5 +1498,5 @@ return (ICHR(x) <= ICHR(y)) ? BOOL_T : BOOL_F; } -SCM char_grp(x, y) +static SCM char_grp(x, y) SCM x, y; { @@ -1501,5 +1505,5 @@ return (ICHR(x) > ICHR(y)) ? BOOL_T : BOOL_F; } -SCM char_geqp(x, y) +static SCM char_geqp(x, y) SCM x, y; { @@ -1508,5 +1512,5 @@ return (ICHR(x) >= ICHR(y)) ? BOOL_T : BOOL_F; } -SCM chci_eq(x, y) +static SCM chci_eq(x, y) SCM x, y; { @@ -1515,5 +1519,5 @@ return (upcase[ICHR(x)]==upcase[ICHR(y)]) ? BOOL_T : BOOL_F; } -SCM chci_lessp(x, y) +static SCM chci_lessp(x, y) SCM x, y; { @@ -1522,5 +1526,5 @@ return (upcase[ICHR(x)] < upcase[ICHR(y)]) ? BOOL_T : BOOL_F; } -SCM chci_leqp(x, y) +static SCM chci_leqp(x, y) SCM x, y; { @@ -1529,5 +1533,5 @@ return (upcase[ICHR(x)] <= upcase[ICHR(y)]) ? BOOL_T : BOOL_F; } -SCM chci_grp(x, y) +static SCM chci_grp(x, y) SCM x, y; { @@ -1536,5 +1540,5 @@ return (upcase[ICHR(x)] > upcase[ICHR(y)]) ? BOOL_T : BOOL_F; } -SCM chci_geqp(x, y) +static SCM chci_geqp(x, y) SCM x, y; { @@ -1543,5 +1547,5 @@ return (upcase[ICHR(x)] >= upcase[ICHR(y)]) ? BOOL_T : BOOL_F; } -SCM char_alphap(chr) +static SCM char_alphap(chr) SCM chr; { @@ -1549,5 +1553,5 @@ return (isascii(ICHR(chr)) && isalpha(ICHR(chr))) ? BOOL_T : BOOL_F; } -SCM char_nump(chr) +static SCM char_nump(chr) SCM chr; { @@ -1555,5 +1559,5 @@ return (isascii(ICHR(chr)) && isdigit(ICHR(chr))) ? BOOL_T : BOOL_F; } -SCM char_whitep(chr) +static SCM char_whitep(chr) SCM chr; { @@ -1561,5 +1565,5 @@ return (isascii(ICHR(chr)) && isspace(ICHR(chr))) ? BOOL_T : BOOL_F; } -SCM char_upperp(chr) +static SCM char_upperp(chr) SCM chr; { @@ -1567,5 +1571,5 @@ return (isascii(ICHR(chr)) && isupper(ICHR(chr))) ? BOOL_T : BOOL_F; } -SCM char_lowerp(chr) +static SCM char_lowerp(chr) SCM chr; { @@ -1573,5 +1577,5 @@ return (isascii(ICHR(chr)) && islower(ICHR(chr))) ? BOOL_T : BOOL_F; } -SCM char2int(chr) +static SCM char2int(chr) SCM chr; { @@ -1579,5 +1583,5 @@ return MAKINUM(ICHR(chr)); } -SCM int2char(n) +static SCM int2char(n) SCM n; { @@ -1587,5 +1591,5 @@ return MAKICHR(INUM(n)); } -SCM char_upcase(chr) +static SCM char_upcase(chr) SCM chr; { @@ -1593,5 +1597,5 @@ return MAKICHR(upcase[ICHR(chr)]); } -SCM char_downcase(chr) +static SCM char_downcase(chr) SCM chr; { @@ -1600,5 +1604,5 @@ } -SCM stringp(x) +static SCM stringp(x) SCM x; { @@ -1637,5 +1641,5 @@ return res; } -SCM st_length(str) +static SCM st_length(str) SCM str; { @@ -1643,5 +1647,5 @@ return MAKINUM(LENGTH(str)); } -SCM st_ref(str, k) +static SCM st_ref(str, k) SCM str, k; { @@ -1651,5 +1655,5 @@ return MAKICHR(UCHARS(str)[INUM(k)]); } -SCM st_set(str, k, chr) +static SCM st_set(str, k, chr) SCM str, k, chr; { @@ -1675,5 +1679,5 @@ return BOOL_T; } -SCM stci_equal(s1, s2) +static SCM stci_equal(s1, s2) SCM s1, s2; { @@ -1689,5 +1693,5 @@ return BOOL_T; } -SCM st_lessp(s1, s2) +static SCM st_lessp(s1, s2) SCM s1, s2; { @@ -1709,20 +1713,20 @@ return (LENGTH(s2) != len) ? BOOL_T : BOOL_F; } -SCM st_leqp(s1, s2) +static SCM st_leqp(s1, s2) SCM s1, s2; { return BOOL_NOT(st_lessp(s2, s1)); } -SCM st_grp(s1, s2) +static SCM st_grp(s1, s2) SCM s1, s2; { return st_lessp(s2, s1); } -SCM st_geqp(s1, s2) +static SCM st_geqp(s1, s2) SCM s1, s2; { return BOOL_NOT(st_lessp(s1, s2)); } -SCM stci_lessp(s1, s2) +static SCM stci_lessp(s1, s2) SCM s1, s2; { @@ -1744,15 +1748,15 @@ return (LENGTH(s2) != len) ? BOOL_T : BOOL_F; } -SCM stci_leqp(s1, s2) +static SCM stci_leqp(s1, s2) SCM s1, s2; { return BOOL_NOT(stci_lessp(s2, s1)); } -SCM stci_grp(s1, s2) +static SCM stci_grp(s1, s2) SCM s1, s2; { return stci_lessp(s2, s1); } -SCM stci_geqp(s1, s2) +static SCM stci_geqp(s1, s2) SCM s1, s2; { @@ -1796,5 +1800,5 @@ } -SCM vectorp(x) +static SCM vectorp(x) SCM x; { @@ -1820,5 +1824,5 @@ return res; } -SCM vector_ref(v, k) +static SCM vector_ref(v, k) SCM v, k; { @@ -1828,5 +1832,5 @@ return VELTS(v)[((long) INUM(k))]; } -SCM vector_set(v, k, obj) +static SCM vector_set(v, k, obj) SCM v, k, obj; { @@ -1837,5 +1841,5 @@ return UNSPECIFIED; } -char s_make_vector[] = "make-vector"; +const char s_make_vector[] = "make-vector"; SCM make_vector(k, fill) SCM k, fill; @@ -1860,6 +1864,6 @@ } #ifdef BIGDIG -char s_big_OVFLOW[] = "numerical overflow; NUMDIGS_MAX <"; -char s_bignum[] = "bignum"; +static const char s_big_OVFLOW[] = "numerical overflow; NUMDIGS_MAX <"; +static const char s_bignum[] = "bignum"; SCM mkbig(nlen, sign) sizet nlen; @@ -1894,5 +1898,5 @@ return b; } -char s_adjbig[] = "adjbig"; +static const char s_adjbig[] = "adjbig"; SCM adjbig(b, nlen) SCM b; @@ -1918,5 +1922,7 @@ # endif BIGDIG *zds = BDIGITS(b); - while (nlen-- && !zds[nlen]); nlen++; + while (nlen-- && !zds[nlen]) + ; + nlen++; if (nlen * BITSPERDIG/CHAR_BIT <= sizeof(SCM)) if (INUMP(b = big2inum(b, (sizet)nlen))) return b; @@ -2005,5 +2011,5 @@ SCM addbig(x, nx, xsgn, bigy, sgny) - BIGDIG *x; + const BIGDIG *x; SCM bigy; sizet nx; /* Assumes nx <= NUMDIGS(bigy) */ @@ -2053,5 +2059,5 @@ SCM mulbig(x, nx, y, ny, sgn) - BIGDIG *x, *y; + const BIGDIG *x, *y; sizet nx, ny; int sgn; @@ -2075,4 +2081,5 @@ return normbig(z); } + UBIGLONG divbigdig(ds, h, div) BIGDIG *ds; @@ -2088,5 +2095,5 @@ return t2; } -SCM divbigint(x, z, sgn, mode) +static SCM divbigint(x, z, sgn, mode) SCM x; long z; @@ -2115,8 +2122,7 @@ } -static SCM scm_copy_big_ash1 P((BIGDIG *xds, sizet xlen, BIGDIG dscl)); /* Make a copy of 2*xds and divide by dscl if dscl > 0 */ -SCM scm_copy_big_ash1 (xds, xlen, dscl) - BIGDIG *xds; +static SCM scm_copy_big_ash1 (xds, xlen, dscl) + const BIGDIG *xds; sizet xlen; BIGDIG dscl; @@ -2140,5 +2146,6 @@ SCM divbigbig(x, xlen, y, ylen, sgn, mode) - BIGDIG *x, *y; + const BIGDIG *x; + BIGDIG *y; sizet xlen, ylen; int sgn, mode; --- sys.c 2014-04-24 23:01:53.000000000 -0400 +++ sys.c 2015-01-27 01:32:50.000000000 -0500 @@ -26,7 +26,6 @@ #endif -void igc P((const char *what, SCM basecont)); -SCM *loc_open_file; /* for open-file callback */ -SCM *loc_try_create_file; +static SCM *loc_open_file; /* for open-file callback */ +static SCM *loc_try_create_file; /* ttyname() etc. should be defined in . But unistd.h is @@ -64,15 +63,15 @@ static void gc_sweep P((int contin_bad)); -char s_nogrow[] = "could not grow", s_heap[] = "heap", +const char s_nogrow[] = "could not grow", s_heap[] = "heap", s_hplims[] = "hplims", s_try_create_file[] = "try-create-file"; -static char s_segs[] = "segments", s_numheaps[] = "number of heaps"; -static char s_input_portp[] = "input-port?", +static const char s_segs[] = "segments", s_numheaps[] = "number of heaps"; +static const char s_input_portp[] = "input-port?", s_output_portp[] = "output-port?"; #define s_portp (&s_input_portp[6]) -static char s_port_closedp[] = "port-closed?"; -static char s_try_open_file[] = "try-open-file"; +static const char s_port_closedp[] = "port-closed?"; +static const char s_try_open_file[] = "try-open-file"; #define s_open_file (&s_try_open_file[4]) -char s_close_port[] = "close-port"; +const char s_close_port[] = "close-port"; #ifdef __IBMC__ @@ -127,5 +126,6 @@ which are allowed by ANSI C. */ long mode_bits(modes, cmodes) - char *modes, *cmodes; + const char *modes; + char *cmodes; { int iout = 0; @@ -150,8 +150,8 @@ } -SCM try_open_file(filename, modes) +static SCM try_open_file(filename, modes) SCM filename, modes; { - register SCM port; + SCM port; FILE *f; char cmodes[4]; @@ -187,5 +187,5 @@ } -long tc16_clport; +static long tc16_clport; SCM close_port(port) SCM port; @@ -213,5 +213,5 @@ return ret; } -SCM scm_portp(x) +static SCM scm_portp(x) SCM x; { @@ -219,5 +219,5 @@ return PORTP(x) ? BOOL_T : BOOL_F; } -SCM input_portp(x) +static SCM input_portp(x) SCM x; { @@ -225,5 +225,5 @@ return INPORTP(x) ? BOOL_T : BOOL_F; } -SCM output_portp(x) +static SCM output_portp(x) SCM x; { @@ -231,5 +231,5 @@ return OUTPORTP(x) ? BOOL_T : BOOL_F; } -SCM port_closedp(port) +static SCM port_closedp(port) SCM port; { @@ -238,5 +238,5 @@ return BOOL_F; } -SCM scm_port_type(port) +static SCM scm_port_type(port) SCM port; { @@ -261,5 +261,5 @@ #ifdef L_tmpnam -SCM ltmpnam() +static SCM ltmpnam() { char name[L_tmpnam]; @@ -291,7 +291,7 @@ # endif /* AMIGA */ -char template[] = TEMPTEMPLATE; +static const char template[] = TEMPTEMPLATE; # define TEMPLEN (sizeof template/sizeof(char) - 1) -SCM ltmpnam() +static SCM ltmpnam() { SCM name; @@ -319,6 +319,6 @@ # define remove unlink #endif -static char s_del_fil[] = "delete-file"; -SCM del_fil(str) +static const char s_del_fil[] = "delete-file"; +static SCM del_fil(str) SCM str; { @@ -334,5 +334,5 @@ void prinport(exp, port, type) - SCM exp; SCM port; char *type; + SCM exp; SCM port; const char *type; { int filn = fileno(STREAM(exp)); @@ -391,7 +391,7 @@ return c; } -sizet stwrite(str, siz, num, p) +static sizet stwrite(str, siz, num, p) sizet siz, num; - char *str; SCM p; + const char *str; SCM p; { sizet ind = INUM(CAR(p)); @@ -406,5 +406,5 @@ } static int stputs(s, p) - char *s; SCM p; + const char *s; SCM p; { stwrite(s, 1, strlen(s), p); @@ -437,5 +437,5 @@ return c; } -int noop0(stream) +static int noop0(stream) FILE *stream; { @@ -446,5 +446,5 @@ SCM str; long modes; - char *caller; + const char *caller; { SCM z; @@ -460,7 +460,7 @@ return z; } -static char s_cwos[] = "call-with-output-string"; -static char s_cwis[] = "call-with-input-string"; -SCM cwos(proc) +static const char s_cwos[] = "call-with-output-string"; +static const char s_cwis[] = "call-with-input-string"; +static SCM cwos(proc) SCM proc; { @@ -471,5 +471,5 @@ return resizuve(CDR(CDR(p)), CAR(CDR(p))); } -SCM cwis(str, proc) +static SCM cwis(str, proc) SCM str, proc; { @@ -557,5 +557,5 @@ return c; } -sizet sfwrite(str, siz, num, p) +static sizet sfwrite(str, siz, num, p) sizet siz, num; const void *str; SCM p; @@ -573,5 +573,5 @@ return 0; } -int sfflush(stream) +static int sfflush(stream) SCM stream; { @@ -601,6 +601,6 @@ return BOOL_F==f ? EOF : 0; } -static char s_mksfpt[] = "make-soft-port"; -SCM mksfpt(pv, modes) +static const char s_mksfpt[] = "make-soft-port"; +static SCM mksfpt(pv, modes) SCM pv, modes; { @@ -614,10 +614,10 @@ for (i = 0; i < 5; i++) { ASRTGO(FALSEP(VELTS(pv)[i]) || - scm_arity_check(VELTS(pv)[i], arities[i], (char *)0), + scm_arity_check(VELTS(pv)[i], arities[i], NULL), badarg); } #endif ASRTER(NIMP(modes) && (STRINGP(modes) || SYMBOLP(modes)), modes, ARG2, s_mksfpt); - flags = mode_bits(CHARS(modes), (char *)0); + flags = mode_bits(CHARS(modes), NULL); ASRTER(flags, modes, ARG2, s_mksfpt); DEFER_INTS; @@ -649,5 +649,5 @@ static sizet clwrite(str, siz, num, p) sizet siz, num; - char *str; FILE *p; + const void *str; FILE *p; { return 0; @@ -689,5 +689,5 @@ static sizet syswrite(str, siz, num, p) sizet siz, num; - char *str; FILE *p; + const char *str; FILE *p; { sizet src, dst = errbuf_end; @@ -757,5 +757,5 @@ A setjmp must be done before each use of the safeport. */ -static char s_msp[] = "mksafeport"; +static const char s_msp[] = "mksafeport"; int tc16_safeport; SCM mksafeport(maxlen, port) @@ -895,5 +895,5 @@ scm_gra finals_gra; -static char s_final[] = "final"; +static const char s_final[] = "final"; /* statically allocated ports for diagnostic messages */ @@ -948,5 +948,5 @@ static SCM gc_finalizers = EOL, gc_finalizers_pending = EOL; -static char s_add_finalizer[] = "add-finalizer"; +static const char s_add_finalizer[] = "add-finalizer"; SCM scm_add_finalizer(value, finalizer) SCM value, finalizer; @@ -965,5 +965,5 @@ } -static char s_estk[] = "environment stack"; +static const char s_estk[] = "environment stack"; static cell ecache_v[ECACHE_SIZE]; SCM scm_egc_roots[ECACHE_SIZE/20]; @@ -1063,6 +1063,6 @@ SCM x, y; { - register SCM z; - register int i; + SCM z; + int i; DEFER_INTS_EGC; i = scm_ecache_index; @@ -1082,5 +1082,5 @@ { SCM z1, z2; - register int i; + int i; DEFER_INTS_EGC; i = scm_ecache_index; @@ -1103,5 +1103,5 @@ { SCM z1, z2; - register int i; + int i; DEFER_INTS_EGC; i = scm_ecache_index; @@ -1128,5 +1128,5 @@ { SCM z1, z2; - register int i; + int i; DEFER_INTS_EGC; i = scm_ecache_index; @@ -1150,5 +1150,5 @@ { SCM z; - register int i; + int i; DEFER_INTS_EGC; i = scm_ecache_index; @@ -1163,9 +1163,11 @@ scm_ecache_index = i; } + +#if 0 void old_scm_extend_env(names) SCM names; { SCM z1, z2; - register int i; + int i; DEFER_INTS_EGC; i = scm_ecache_index; @@ -1183,6 +1185,8 @@ scm_ecache_index = i; } -char s_obunhash[] = "object-unhash", s_cache_gc[] = "cache_gc"; -char s_recursive[] = "recursive"; +#endif + +const char s_obunhash[] = "object-unhash"; +static const char s_recursive[] = "recursive", s_cache_gc[] = "cache_gc"; #define s_gc (s_cache_gc+6) static iproc subr0s[] = { @@ -1212,5 +1216,5 @@ {0, 0}}; -SCM dynwind P((SCM thunk1, SCM thunk2, SCM thunk3)); +static SCM dynwind P((SCM thunk1, SCM thunk2, SCM thunk3)); void init_io() { @@ -1232,5 +1236,5 @@ } -void grew_lim(nm) +static void grew_lim(nm) long nm; { @@ -1263,6 +1267,6 @@ else grew_lim(mtrigger + mtrigger/2); } - if (where) SYSCALL(ptr = (char *)realloc(where, size);); - else SYSCALL(ptr = (char *)malloc(size);); + if (where) SYSCALL(ptr = realloc(where, size);); + else SYSCALL(ptr = malloc(size);); ASRTER(ptr, MAKINUM(size), NALLOC, what); if (nm > mltrigger) { @@ -1395,14 +1399,15 @@ } wta(sym, "uninterned symbol? ", ""); + return -1; } /* intern() and sysintern() return a pair; CAR is the symbol, CDR is the value. */ SCM intern(name, len) - char *name; + const char *name; sizet len; { SCM lsym, z; - register sizet i = len; - register unsigned char *tmp = (unsigned char *)name; + sizet i = len; + const unsigned char *tmp = (const unsigned char *)name; sizet hash = strhash(tmp, i, (unsigned long)symhash_dim); /* printf("intern %s len=%d\n",name,len); fflush(stdout); */ @@ -1413,5 +1418,5 @@ tmp = UCHARS(z); if (LENGTH(z) != len) goto trynext; - for (i = len;i--;) if (((unsigned char *)name)[i] != tmp[i]) goto trynext; + for (i = len;i--;) if (((const unsigned char *)name)[i] != tmp[i]) goto trynext; ALLOW_INTS; return CAR(lsym); @@ -1436,6 +1441,6 @@ SCM lsym, z; sizet len = strlen(name); - register sizet i = len; - register unsigned char *tmp = (unsigned char *)name; + sizet i = len; + const unsigned char *tmp = (const unsigned char *)name; sizet hash = strhash(tmp, i, (unsigned long)symhash_dim); for (lsym = VELTS(symhash)[hash];NIMP(lsym);lsym = CDR(lsym)) { @@ -1444,5 +1449,5 @@ tmp = UCHARS(z); if (LENGTH(z) != len) goto trynext; - for (i = len;i--;) if (((unsigned char *)name)[i] != tmp[i]) goto trynext; + for (i = len;i--;) if (((const unsigned char *)name)[i] != tmp[i]) goto trynext; lsym = CAR(lsym); if (!UNBNDP(val)) CDR(lsym) = val; @@ -1464,5 +1469,5 @@ SCM x, y; { - register SCM z; + SCM z; NEWCELL(z); CAR(z) = x; @@ -1473,5 +1478,5 @@ SCM w, x, y; { - register SCM z; + SCM z; NEWCELL(z); CAR(z) = x; @@ -1486,5 +1491,5 @@ SCM w, x, y; { - register SCM z; + SCM z; NEWCELL(z); CAR(z) = w; @@ -1511,5 +1516,5 @@ } -char s_redefining[] = "redefining "; +const char s_redefining[] = "redefining "; scm_gra subrs_gra; SCM scm_maksubr(name, type, fcn) @@ -1520,9 +1525,9 @@ subr_info info; int isubr; - register SCM z; + SCM z; info.name = name; for (isubr = subrs_gra.len; 0 < isubr--;) { if (0==strcmp(((char **)subrs_gra.elts)[isubr], name)) { - scm_warn(s_redefining, (char *)name, UNDEFINED); + scm_warn(s_redefining, name, UNDEFINED); goto foundit; } @@ -1536,5 +1541,5 @@ while (*++p != 'r') switch (*p) { - default: wta(UNDEFINED, "bad cxr name", (char *)name); + default: wta(UNDEFINED, "bad cxr name", name); case 'a': code = (code<<2) + 1; continue; case 'd': code = (code<<2) + 2; continue; @@ -1555,5 +1560,5 @@ #ifdef CCLO -char s_comp_clo[] = "compiled-closure"; +static const char s_comp_clo[] = "compiled-closure"; SCM makcclo(proc, len) SCM proc; @@ -1601,5 +1606,5 @@ } -SCM dynwind(thunk1, thunk2, thunk3) +static SCM dynwind(thunk1, thunk2, thunk3) SCM thunk1, thunk2, thunk3; { @@ -1612,5 +1617,5 @@ return ans; } -void downd(to, delta) +static void downd(to, delta) SCM to; long delta; @@ -1640,11 +1645,12 @@ SCM scm_make_cont() { - SCM cont, estk, *from; + SCM cont, estk; CONTINUATION *ncont; - sizet n; +#ifndef CHEAP_CONTINUATIONS + SCM *from = VELTS(scm_estk); + sizet n = scm_estk_ptr - from + SCM_ESTK_FRLEN; +#endif VERIFY_INTS("scm_make_cont", 0L); NEWCELL(cont); - from = VELTS(scm_estk); - n = scm_estk_ptr - from + SCM_ESTK_FRLEN; #ifdef CHEAP_CONTINUATIONS estk = scm_estk; @@ -1678,5 +1684,5 @@ return cont; } -static char s_sstale[] = "strangely stale"; +static const char s_sstale[] = "strangely stale"; void scm_dynthrow(tocont, arg1, arg2, rest) SCM tocont; @@ -1758,6 +1764,6 @@ scm_cell_p() in "rope.c", which means that changes to these routines must be coordinated. */ - register CELLPTR ptr = (CELLPTR)SCM2PTR(obj); - register sizet i = 0, j = hplim_ind; + CELLPTR ptr = (CELLPTR)SCM2PTR(obj); + sizet i = 0, j = hplim_ind; do { if (PTR_GT(hplims[i++], ptr)) break; @@ -1774,5 +1780,5 @@ unsigned long strhash(str, len, n) - unsigned char *str; + const unsigned char *str; sizet len; unsigned long n; @@ -1794,5 +1800,5 @@ static void fixconfig(s1, s2, s) - char *s1, *s2; + const char *s1, *s2; int s; { @@ -1823,11 +1829,11 @@ }} } -sizet init_heap_seg(seg_org, size) +static sizet init_heap_seg(seg_org, size) CELLPTR seg_org; sizet size; { - register CELLPTR ptr = seg_org; + CELLPTR ptr = seg_org; #ifdef POINTERS_MUNGED - register SCM scmptr; + SCM scmptr; #else # define scmptr ptr @@ -1918,5 +1924,5 @@ int scm_grow_gra(gra, elt) scm_gra *gra; - char *elt; + const char *elt; { int i; @@ -1964,6 +1970,6 @@ mallocated -= gra->maxlen*gra->eltsize; } -void gra_report1(gra) - scm_gra *gra; +static void gra_report1(gra) + const scm_gra *gra; { scm_intprint((long)gra->len, -10, cur_errp); @@ -1986,17 +1992,17 @@ scm_gra smobs_gra; long newsmob(smob) - smobfuns *smob; + const smobfuns *smob; { - return tc7_smob + 256*scm_grow_gra(&smobs_gra, (char *)smob); + return tc7_smob + 256*scm_grow_gra(&smobs_gra, (const char *)smob); } scm_gra ptobs_gra; long newptob(ptob) - ptobfuns *ptob; + const ptobfuns *ptob; { - return tc7_port + 256*scm_grow_gra(&ptobs_gra, (char *)ptob); + return tc7_port + 256*scm_grow_gra(&ptobs_gra, (const char *)ptob); } -port_info *scm_port_table = 0; +port_info *scm_port_table = NULL; static sizet scm_port_table_len = 0; -static char s_port_table[] = "port table"; +static const char s_port_table[] = "port table"; SCM scm_port_entry(stream, ptype, flags) FILE *stream; @@ -2073,5 +2079,5 @@ } -static char remsg[] = "remove\n#define ", addmsg[] = "add\n#define ", +static const char remsg[] = "remove\n#define ", addmsg[] = "add\n#define ", rdmsg[] = "reduce"; void init_storage(stack_start_ptr, init_heap_size) @@ -2249,5 +2255,5 @@ Cambridge, MA 02138 */ -char s_cells[] = "cells"; +static const char s_cells[] = "cells"; SCM gc_for_newcell() { @@ -2285,6 +2291,5 @@ } -static char s_bad_type[] = "unknown type in "; -void mark_locations P((STACKITEM x[], sizet n)); +static const char s_bad_type[] = "unknown type in "; static void mark_syms P((SCM v)); static void mark_sym_values P((SCM v)); @@ -2357,5 +2363,5 @@ int j = num_protects; long oheap_cells = heap_cells; - STACKITEM * stackbase = IMP(basecont) ? 0 : CONT(basecont)->stkbse; + STACKITEM * stackbase = IMP(basecont) ? NULL : CONT(basecont)->stkbse; #ifdef DEBUG_GMALLOC int err = check_frag_blocks(); @@ -2419,5 +2425,5 @@ egc_sweep(); estk_pool = EOL; - errjmp_bad = (char *)0; + errjmp_bad = NULL; gc_end(); if (oheap_cells != heap_cells) { @@ -2430,5 +2436,5 @@ } -static char s_not_free[] = "not freed"; +static const char s_not_free[] = "not freed"; void free_storage() { @@ -2488,10 +2494,10 @@ } -static char s_gc_sym[] = "mark_syms", s_wrong_length[] = "wrong length"; +static const char s_gc_sym[] = "mark_syms", s_wrong_length[] = "wrong length"; void gc_mark(p) SCM p; { - register long i; - register SCM ptr = p; + long i; + SCM ptr = p; CHECK_STACK; gc_mark_loop: @@ -2619,15 +2625,19 @@ code is duplicated by obunhash() in "sys.c" and scm_cell_p() in "rope.c", which means that changes to these routines must be - coordinated. */ + coordinated. + XXX Actually, the old code ran from x[-1:n-1] (down)... It now runs + XXX up from 0 to n-1, as seems to be correct. Is it? +*/ void mark_locations(x, n) - STACKITEM x[]; + const STACKITEM x[]; sizet n; { - register long m = n; - register int i, j; - register CELLPTR ptr; - while(0 <= --m) if (CELLP(*(SCM **)&x[m])) { - ptr = (CELLPTR)SCM2PTR((SCM)(*(SCM **)&x[m])); + int i, j; + CELLPTR ptr; + for (; n; x++, n--) { + if (NCELLP(*x)) + continue; + ptr = (CELLPTR)SCM2PTR((SCM)(*x)); i = 0; j = hplim_ind; @@ -2638,5 +2648,5 @@ && PTR_LE(hplims[i++], ptr) && PTR_GT(hplims[--j], ptr)) continue; - /* if (NFREEP(*(SCM **)&x[m])) */ gc_mark(*(SCM *)&x[m]); + gc_mark(*x); break; } while(i # include -# include # define USE_GETTIMEOFDAY #endif @@ -169,10 +168,6 @@ #endif -#ifndef LACK_FTIME -# ifdef HAVE_UNIX -# ifndef GO32 +#if !defined(LACK_FTIME) && defined(HAVE_UNIX) && !defined(GO32) && !defined(USE_GETTIMEOFDAY) # include -# endif -# endif #endif @@ -307,5 +302,5 @@ #else /* LACK_FTIME */ # ifdef USE_GETTIMEOFDAY -int scm_ftime(time_buffer) +static int scm_ftime(time_buffer) struct timeval *time_buffer; { @@ -377,5 +372,5 @@ } -SCM curtime() +static SCM curtime() { timet timv = time((timet*)0); --- unexec.c 2008-01-30 22:44:09.000000000 -0500 +++ unexec.c 2015-01-23 18:55:19.000000000 -0500 @@ -371,5 +371,5 @@ */ unexec (new_name, a_name, data_start, bss_start, entry_address) - char *new_name, *a_name; + const char *new_name, *a_name; unsigned data_start, bss_start, entry_address; { @@ -417,6 +417,6 @@ int new, a_out; unsigned data_start, bss_start, entry_address; - char *a_name; - char *new_name; + const char *a_name; + const char *new_name; { int tem; --- unexelf.c 2008-01-30 22:44:11.000000000 -0500 +++ unexelf.c 2015-01-23 18:55:19.000000000 -0500 @@ -403,7 +403,10 @@ Instead we read the whole file, modify it, and write it out. */ +#include "scm.h" + #ifndef emacs -#define fatal(a, b, c) fprintf (stderr, a, b, c), exit (1) +#define fatal(...) fprintf (stderr, __VA_ARGS__), exit (1) #include +#include /* Where exit(3) is declared */ #else #include @@ -608,7 +611,7 @@ static int find_section (name, section_names, file_name, old_file_h, old_section_h, noerror) - char *name; - char *section_names; - char *file_name; + const char *name; + const char *section_names; + const char *file_name; ElfW(Ehdr) *old_file_h; ElfW(Shdr) *old_section_h; @@ -649,5 +652,5 @@ void unexec (new_name, old_name, data_start, bss_start, entry_address) - char *new_name, *old_name; + const char *new_name, *old_name; unsigned data_start, bss_start, entry_address; { @@ -680,5 +683,7 @@ int old_bss_index, old_sbss_index; int old_data_index, new_data2_index; +#if defined (__sony_news) && defined (_SYSTYPE_SYSV) || defined(__sgi) int old_mdebug_index; +#endif struct stat stat_buf; int old_file_size; @@ -709,8 +714,8 @@ MAP_ANON | MAP_PRIVATE, mmap_fd, 0); if (old_base == MAP_FAILED) - fatal ("Can't allocate buffer for %s\n", old_name, 0); + fatal("Can't allocate buffer for %s\n", old_name); if (read (old_file, old_base, stat_buf.st_size) != stat_buf.st_size) - fatal ("Didn't read all of %s: errno %d\n", old_name, errno); + fatal("Didn't read all of %s: errno %d\n", old_name, errno); /* Get pointers to headers & section names */ @@ -724,6 +729,8 @@ /* Find the mdebug section, if any. */ +#if defined (__sony_news) && defined (_SYSTYPE_SYSV) || defined(__sgi) old_mdebug_index = find_section (".mdebug", old_section_names, old_name, old_file_h, old_section_h, 1); +#endif /* Find the old .bss section. Figure out parameters of the new @@ -780,5 +787,5 @@ if ((unsigned) new_bss_addr < (unsigned) old_bss_addr + old_bss_size) - fatal (".bss shrank when undumping???\n", 0, 0); + fatal (".bss shrank when undumping???\n"); /* Set the output file to the right size. Allocate a buffer to hold @@ -798,5 +805,5 @@ MAP_ANON | MAP_PRIVATE, mmap_fd, 0); if (new_base == MAP_FAILED) - fatal ("Can't allocate buffer for %s\n", old_name, 0); + fatal ("Can't allocate buffer for %s\n", old_name); new_file_h = (ElfW(Ehdr) *) new_base; @@ -853,5 +860,5 @@ ? old_bss_addr : round_up (old_bss_addr, alignment))) - fatal ("Program segment above .bss in %s\n", old_name, 0); + fatal ("Program segment above .bss in %s\n", old_name); if (NEW_PROGRAM_H (n).p_type == PT_LOAD @@ -863,5 +870,5 @@ } if (n < 0) - fatal ("Couldn't find segment next to .bss in %s\n", old_name, 0); + fatal ("Couldn't find segment next to .bss in %s\n", old_name); /* Make sure that the size includes any padding before the old .bss @@ -893,5 +900,5 @@ break; if (old_data_index == old_file_h->e_shnum) - fatal ("Can't find .data in %s.\n", old_name, 0); + fatal ("Can't find .data in %s.\n", old_name); /* Walk through all section headers, insert the new data2 section right --- unif.c 2010-10-17 22:44:29.000000000 -0400 +++ unif.c 2015-01-27 00:55:00.000000000 -0500 @@ -114,6 +114,5 @@ # ifdef FLOATS # ifdef SINGLES -SCM makflo (x) - float x; +SCM makflo (float x) { SCM z; @@ -254,5 +253,5 @@ } } -static char s_array_dims[] = "array-dimensions"; +static const char s_array_dims[] = "array-dimensions"; SCM array_dims(ra) SCM ra; @@ -278,5 +277,5 @@ } } -static char s_bad_ind[] = "Bad array index"; +static const char s_bad_ind[] = "Bad array index"; long aind(ra, args, what) SCM ra, args; @@ -323,7 +322,7 @@ } -static char s_bad_spec[] = "Bad array dimension"; +static const char s_bad_spec[] = "Bad array dimension"; /* Increments will still need to be set. */ -SCM shap2ra(args, what) +static SCM shap2ra(args, what) SCM args; const char *what; @@ -358,5 +357,5 @@ } -char s_array_fill[] = "array-fill!"; +const char s_array_fill[] = "array-fill!"; int rafill(ra, fill, ignore) SCM ra, fill, ignore; @@ -487,5 +486,5 @@ } -static char s_dims2ura[] = "dimensions->uniform-array"; +static const char s_dims2ura[] = "dimensions->uniform-array"; SCM dims2ura(dims, prot, fill) SCM dims, prot, fill; @@ -545,5 +544,5 @@ } -void ra_set_contp(ra) +static void ra_set_contp(ra) SCM ra; { @@ -560,6 +559,7 @@ CAR(ra) |= ARRAY_CONTIGUOUS; } -char s_make_sh_array[] = "make-shared-array"; -SCM make_sh_array(oldra, mapfunc, dims) +static const char s_make_sh_array[] = "make-shared-array"; +#define s_array (s_make_sh_array+12) +static SCM make_sh_array(oldra, mapfunc, dims) SCM oldra; SCM mapfunc; @@ -660,6 +660,6 @@ /* args are RA . DIMS */ -static char s_trans_array[] = "transpose-array"; -SCM trans_array(args) +static const char s_trans_array[] = "transpose-array"; +static SCM trans_array(args) SCM args; { @@ -723,6 +723,6 @@ /* args are RA . AXES */ -static char s_encl_array[] = "enclose-array"; -SCM encl_array(axes) +static const char s_encl_array[] = "enclose-array"; +static SCM encl_array(axes) SCM axes; { @@ -781,6 +781,6 @@ } -static char s_array_inbp[] = "array-in-bounds?"; -SCM array_inbp(args) +static const char s_array_inbp[] = "array-in-bounds?"; +static SCM array_inbp(args) SCM args; { @@ -823,5 +823,5 @@ } } -static char s_aref[] = "array-ref"; +static const char s_aref[] = "array-ref"; SCM aref(v, args) SCM v, args; @@ -1026,5 +1026,5 @@ } -static char s_aset[] = "array-set!"; +static const char s_aset[] = "array-set!"; SCM aset(v, obj, args) SCM v, obj, args; @@ -1115,5 +1115,5 @@ } -static char s_array_contents[] = "array-contents"; +static const char s_array_contents[] = "array-contents"; SCM array_contents(ra, strict) SCM ra, strict; @@ -1152,5 +1152,5 @@ } -static char s_uve_rd[] = "uniform-vector-read!"; +static const char s_uve_rd[] = "uniform-vector-read!"; SCM uve_read(v, port) SCM v, port; @@ -1225,5 +1225,5 @@ } -static char s_uve_wr[] = "uniform-vector-write"; +static const char s_uve_wr[] = "uniform-vector-write"; SCM uve_write(v, port) SCM v, port; @@ -1288,7 +1288,7 @@ } -static char cnt_tab[16] = {0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4}; -static char s_count[] = "bit-count"; -SCM lcount(item, seq) +static const char cnt_tab[16] = {0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4}; +static const char s_count[] = "bit-count"; +static SCM lcount(item, seq) SCM item, seq; { @@ -1349,6 +1349,6 @@ } } -static char s_uve_pos[] = "bit-position"; -SCM bit_position(item, v, k) +static const char s_uve_pos[] = "bit-position"; +static SCM bit_position(item, v, k) SCM item, v, k; { @@ -1418,6 +1418,6 @@ } -static char s_bit_set[] = "bit-set*!"; -SCM bit_set(v, kv, obj) +static const char s_bit_set[] = "bit-set*!"; +static SCM bit_set(v, kv, obj) SCM v, kv, obj; { @@ -1460,6 +1460,6 @@ } -static char s_bit_count[] = "bit-count*"; -SCM bit_count(v, kv, obj) +static const char s_bit_count[] = "bit-count*"; +static SCM bit_count(v, kv, obj) SCM v, kv, obj; { @@ -1506,6 +1506,6 @@ } -static char s_bit_inv[] = "bit-invert!"; -SCM bit_inv(v) +static const char s_bit_inv[] = "bit-invert!"; +static SCM bit_inv(v) SCM v; { @@ -1523,6 +1523,6 @@ } -static char s_strup[] = "string-upcase!"; -SCM strup(v) +static const char s_strup[] = "string-upcase!"; +static SCM strup(v) SCM v; { @@ -1541,6 +1541,6 @@ } -static char s_strdown[] = "string-downcase!"; -SCM strdown(v) +static const char s_strdown[] = "string-downcase!"; +static SCM strdown(v) SCM v; { @@ -1560,6 +1560,6 @@ # include -static char s_strcap[] = "string-capitalize!"; -SCM strcap(v) +static const char s_strcap[] = "string-capitalize!"; +static SCM strcap(v) SCM v; { @@ -1588,5 +1588,5 @@ SCM istr2bve(str, len) - char *str; + const char *str; long len; { @@ -1634,6 +1634,6 @@ } -static char s_array2list[] = "array->list"; -SCM array2list(v) +static const char s_array2list[] = "array->list"; +static SCM array2list(v) SCM v; { @@ -1716,6 +1716,6 @@ static int l2ra P((SCM lst, SCM ra, sizet base, sizet k)); -static char s_bad_ralst[] = "Bad array contents list"; -static char s_list2ura[] = "list->uniform-array"; +static const char s_bad_ralst[] = "Bad array contents list"; +static const char s_list2ura[] = "list->uniform-array"; SCM list2ura(ndim, prot, lst) SCM ndim; @@ -1729,8 +1729,10 @@ int k = INUM(ndim); ASRTER(INUMP(ndim) && k >= 0, ndim, ARG1, s_list2ura); - for (; --k >= 0 ; (NIMP(row) && (row = CAR(row)))) { + while (--k >= 0) { n = ilength(row); ASRTER(n>=0, lst, ARG3, s_list2ura); shp = cons(MAKINUM(n), shp); + if (NIMP(row)) + row = CAR(row); } ra = dims2ura(reverse(shp), prot, EOL); @@ -1978,5 +1980,5 @@ } -static char s_array_prot[] = "array-prototype"; +static const char s_array_prot[] = "array-prototype"; SCM array_prot(ra) SCM ra; @@ -2015,6 +2017,6 @@ position in an integer element. */ -static char s_logaref[] = "logaref"; -SCM scm_logaref(args) +static const char s_logaref[] = "logaref"; +static SCM scm_logaref(args) SCM args; { @@ -2051,6 +2053,6 @@ } -static char s_logaset[] = "logaset!"; -SCM scm_logaset(ra, obj, args) +static const char s_logaset[] = "logaset!"; +static SCM scm_logaset(ra, obj, args) SCM ra, obj, args; { @@ -2175,5 +2177,5 @@ SCM istr2bve(str, len) - char *str; + const char *str; long len; { @@ -2181,10 +2183,4 @@ } -SCM array_equal(ra0, ra1) - SCM ra0, ra1; -{ - return BOOL_F; -} - void init_unif() { --- unix.c 2008-01-30 22:33:13.000000000 -0500 +++ unix.c 2015-01-23 18:55:19.000000000 -0500 @@ -26,13 +26,11 @@ #include -extern SCM stat2scm P((struct stat *stat_temp)); - -SCM scm_mknod P((SCM path, SCM mode, SCM dev)); -SCM scm_acct P((SCM path)); -SCM scm_nice P((SCM incr)); -SCM scm_sync P((void)); -SCM scm_symlink P((SCM oldpath, SCM newpath)); -SCM scm_readlink P((SCM path)); -SCM scm_lstat P((SCM str)); +static SCM scm_mknod P((SCM path, SCM mode, SCM dev)); +static SCM scm_acct P((SCM path)); +static SCM scm_nice P((SCM incr)); +static SCM scm_sync P((void)); +static SCM scm_symlink P((SCM oldpath, SCM newpath)); +static SCM scm_readlink P((SCM path)); +static SCM scm_lstat P((SCM str)); #ifndef STDC_HEADERS --- x.c 2013-03-12 23:30:26.000000000 -0400 +++ x.c 2015-01-23 18:55:19.000000000 -0500 @@ -335,5 +335,5 @@ xcm->dpy = DISPLAY(xcm->display)->dpy; xcm->cm = cmp; - XSaveContext(XDISPLAY(sdpy), (XID)cmp, xtc_cmp, z); + XSaveContext(XDISPLAY(sdpy), (XID)cmp, xtc_cmp, (char *)(intptr_t)z); ALLOW_INTS; return z; @@ -583,5 +583,5 @@ CAR(s_ccc) = tc16_xccc; SETCDR(s_ccc, ccc); - XSaveContext(ccc->dpy, (XID)ccc, xtc_ccc, s_ccc); + XSaveContext(ccc->dpy, (XID)ccc, xtc_ccc, (char *)(intptr_t)s_ccc); ALLOW_INTS; } @@ -630,5 +630,5 @@ SCM dat; XPoint *ipr; - char *pos, *s_caller; + const char *pos, *s_caller; { SCM x, y; @@ -710,5 +710,5 @@ int scm2xpointslen(sara, s_caller) SCM sara; - char *s_caller; + const char *s_caller; { array_dim *adm; @@ -728,5 +728,5 @@ SCM optidx; struct display_screen *dspscn; - char *s_caller; + const char *s_caller; { ASRTGO(NIMP(dat), badarg); @@ -762,5 +762,5 @@ Pixmap thepxmap(obj, s_caller) SCM obj; - char *s_caller; + const char *s_caller; { if (FALSEP(obj) || (INUM0==obj)) return 0L; @@ -771,5 +771,5 @@ Font thefont(obj, s_caller) SCM obj; - char *s_caller; + const char *s_caller; { ASRTER(NIMP(obj) && FONTP(obj), obj, ARGn, s_caller); @@ -778,5 +778,5 @@ Colormap thecmap(obj, s_caller) SCM obj; - char *s_caller; + const char *s_caller; { if (FALSEP(obj) || (INUM0==obj)) return 0L; @@ -786,5 +786,5 @@ Cursor thecsr(obj, s_caller) SCM obj; - char *s_caller; + const char *s_caller; { if (FALSEP(obj) || (INUM0==obj)) return 0L; @@ -794,5 +794,5 @@ Bool thebool(obj, s_caller) SCM obj; - char *s_caller; + const char *s_caller; { SCM val = thevalue(obj); @@ -802,5 +802,5 @@ int theint(obj, s_caller) SCM obj; - char *s_caller; + const char *s_caller; { SCM val = thevalue(obj); @@ -810,5 +810,5 @@ int theuint(obj, s_caller) SCM obj; - char *s_caller; + const char *s_caller; { SCM val = thevalue(obj); @@ -819,5 +819,5 @@ static int args2valmask(oargs, s_caller) SCM oargs; - char *s_caller; + const char *s_caller; { SCM args = oargs; @@ -840,5 +840,5 @@ SCM sval, args = oargs; int attr, len, attr_mask = 0; -/* (void)memset((char *)vlu, 0, sizeof(XGCValues)); */ +/* (void)memset(vlu, 0, sizeof(XGCValues)); */ if (!(len = ilength(args))) return 0; ASRTER(len > 0 && (! (len & 1)), oargs, WNA, s_gc); @@ -984,8 +984,9 @@ return (display ? make_xdisplay(display) : BOOL_F); } + +static int (*previous_after_function)(); /* Might be useful under debugger? */ SCM x_display_debug(sd, si) SCM sd, si; { - int (*previous_after_function)(); struct display_screen dspscn; scm2display_screen(sd, UNDEFINED, &dspscn, s_x_display_debug); @@ -1289,5 +1290,5 @@ if (NNULLP(sargs)) contig = thebool(CAR(sargs), s_x_alloc_color_cells); sts = XAllocColorPlanes(xcm->dpy, xcm->cm, contig, - VELTS(pxra), npixels, + (unsigned long *)VELTS(pxra), npixels, xclr.red, xclr.green, xclr.blue, &rmask_return, &gmask_return, &bmask_return); @@ -1302,5 +1303,6 @@ plra = make_uve(nplanes, MAKINUM(32L)); /* Uniform vector of long */ sts = XAllocColorCells(xcm->dpy, xcm->cm, contig, - VELTS(plra), nplanes, VELTS(pxra), npixels); + (unsigned long *)VELTS(plra), nplanes, + (unsigned long *)VELTS(pxra), npixels); if (!sts) return BOOL_F; return cons2(pxra, plra, EOL); @@ -1321,5 +1323,5 @@ planes = theuint(CAR(sargs), s_x_free_color_cells); case 3: - XFreeColors(xcm->dpy, xcm->cm, VELTS(spxls), INUM(spxls), planes); + XFreeColors(xcm->dpy, xcm->cm, (unsigned long *)VELTS(spxls), INUM(spxls), planes); return UNSPECIFIED; } @@ -1907,5 +1909,5 @@ int format; unsigned long nitems; - unsigned char* data; + const void* data; { SCM datum = EOL; @@ -1918,19 +1920,19 @@ case XA_CARDINAL: switch (format) { - case 8: datum = MAKINUM(((unsigned char *)data)[cnt]); break; - case 16: datum = MAKINUM(((unsigned short *)data)[cnt]); break; - case 32: datum = ulong2num(((unsigned long *)data)[cnt]); break; + case 8: datum = MAKINUM(((const unsigned char *)data)[cnt]); break; + case 16: datum = MAKINUM(((const unsigned short *)data)[cnt]); break; + case 32: datum = ulong2num(((const unsigned long *)data)[cnt]); break; default: return MAKINUM(format); } break; case XA_INTEGER: switch (format) { - case 8: datum = MAKINUM(((char *)data)[cnt]); break; - case 16: datum = MAKINUM(((short *)data)[cnt]); break; - case 32: datum = long2num(((long *)data)[cnt]); break; + case 8: datum = MAKINUM(((const char *)data)[cnt]); break; + case 16: datum = MAKINUM(((const short *)data)[cnt]); break; + case 32: datum = long2num(((const long *)data)[cnt]); break; default: return MAKINUM(format); } break; case XA_STRING: switch (format) { - case 8: return makfrom0str(data); + case 8: return makfrom0str((const char *)data); default: return MAKINUM(format); } break; @@ -2052,5 +2054,5 @@ SCM sdbl, sgc, sargs; int (*proc)(); - char *s_caller; + const char *s_caller; { XPoint position; @@ -2113,5 +2115,5 @@ SCM sdbl, sgc, sargs; int funcod; - char *s_caller; + const char *s_caller; { XPoint pos[2]; @@ -2228,5 +2230,5 @@ static struct { int type; - char *name; + const char *name; } event_names[] = { #undef SCM_EVENT_FIELDS @@ -2234,5 +2236,5 @@ }; -static char *x__event_name(type) +static const char *x__event_name(type) int type; { @@ -2340,5 +2342,5 @@ } -char *xvisualclass2name(class) +const char *xvisualclass2name(class) int class; { --- x.h 2002-01-28 22:31:55.000000000 -0500 +++ x.h 2015-01-23 18:55:19.000000000 -0500 @@ -11,16 +11,16 @@ SCM make_xevent(XEvent *e); size_t x_free_xevent(CELLPTR ptr); -void scm2XPoint(int signp, SCM dat, XPoint *ipr, char *pos, char *s_caller); +void scm2XPoint(int signp, SCM dat, XPoint *ipr, const char *pos, const char *s_caller); int scm2XColor(SCM s_dat, XColor *xclr); -int scm2xpointslen(SCM sara, char *s_caller); -void scm2display_screen(SCM dat, SCM optidx, struct display_screen *dspscn, char *s_caller); +int scm2xpointslen(SCM sara, const char *s_caller); +void scm2display_screen(SCM dat, SCM optidx, struct display_screen *dspscn, const char *s_caller); SCM thevalue(SCM obj); -Pixmap thepxmap(SCM obj, char *s_caller); -Font thefont(SCM obj, char *s_caller); -Colormap thecmap(SCM obj, char *s_caller); -Cursor thecsr(SCM obj, char *s_caller); -int thebool(SCM obj, char *s_caller); -int theint(SCM obj, char *s_caller); -int theuint(SCM obj, char *s_caller); +Pixmap thepxmap(SCM obj, const char *s_caller); +Font thefont(SCM obj, const char *s_caller); +Colormap thecmap(SCM obj, const char *s_caller); +Cursor thecsr(SCM obj, const char *s_caller); +int thebool(SCM obj, const char *s_caller); +int theint(SCM obj, const char *s_caller); +int theuint(SCM obj, const char *s_caller); SCM x_open_display(SCM dpy_name); SCM x_display_debug(SCM sd, SCM si); @@ -78,14 +78,14 @@ SCM x_default_visual(SCM sdpy, SCM sscr); SCM x_default_ccc(SCM sdpy, SCM sscr); -SCM x_propdata2scm(Atom type, int format, unsigned long nitems, unsigned char *data); +SCM x_propdata2scm(Atom type, int format, unsigned long nitems, const void *data); SCM x_get_window_property(SCM swin, SCM sprop, SCM sargs); SCM x_list_properties(SCM swin); SCM x_clear_area(SCM swin, SCM spos, SCM sargs); SCM x_fill_rectangle(SCM swin, SCM sgc, SCM sargs); -void xldraw_string(SCM sdbl, SCM sgc, SCM sargs, int (*proc)(void), char *s_caller); +void xldraw_string(SCM sdbl, SCM sgc, SCM sargs, int (*proc)(), const char *s_caller); SCM x_draw_string(SCM sdbl, SCM sgc, SCM sargs); SCM x_image_string(SCM sdbl, SCM sgc, SCM sargs); SCM x_draw_points(SCM sdbl, SCM sgc, SCM sargs); -SCM xldraw_lines(SCM sdbl, SCM sgc, SCM sargs, int funcod, char *s_caller); +SCM xldraw_lines(SCM sdbl, SCM sgc, SCM sargs, int funcod, const char *s_caller); SCM x_draw_segments(SCM sdbl, SCM sgc, SCM sargs); SCM x_draw_lines(SCM sdbl, SCM sgc, SCM sargs); @@ -95,5 +95,5 @@ SCM x_event_ref(SCM sevent, SCM sfield); SCM x_event_keysym(SCM sevent); -char *xvisualclass2name(int class); +const char *xvisualclass2name(int class); void x_scm_final(void); void init_x(void);