diff --git a/src/cmd/printf/printf.c b/src/cmd/printf/printf.c index 5143a46..91553f2 100644 --- a/src/cmd/printf/printf.c +++ b/src/cmd/printf/printf.c @@ -35,6 +35,8 @@ #include #include #include +#include +#include #define PF(f, func) { \ if (fieldwidth) \ @@ -232,7 +234,7 @@ escape(fmt) register int value; int c; - for (store = fmt; c = *fmt; ++fmt, ++store) { + for (store = fmt; (c = *fmt); ++fmt, ++store) { if (c != '\\') { *store = c; continue; diff --git a/src/cmd/re/r.cmd.c b/src/cmd/re/r.cmd.c index c0fac3c..c1c1afb 100644 --- a/src/cmd/re/r.cmd.c +++ b/src/cmd/re/r.cmd.c @@ -7,6 +7,8 @@ #include "r.defs.h" #include +static char *searchkey; + static int insert_mode = 1; /* Insert mode */ static int clr_arg_area; /* Need to erase the arg area */ static int fname_cvt_flag; /* Disable filename conversion on "re -" */ diff --git a/src/cmd/re/r.defs.h b/src/cmd/re/r.defs.h index 1f23d97..08c0fc0 100644 --- a/src/cmd/re/r.defs.h +++ b/src/cmd/re/r.defs.h @@ -104,8 +104,8 @@ typedef struct { int nlines; /* Number of non-empty lines in file */ } file_t; -file_t file[MAXFILES]; /* Table of files */ -int curfile; +extern file_t file[MAXFILES]; /* Table of files */ +extern int curfile; /* * Workspace describes a generic file under edit. @@ -121,7 +121,7 @@ typedef struct { int cursorrow; /* Saved cursorline, when not active */ } workspace_t; -workspace_t *curwksp, *pickwksp; +extern workspace_t *curwksp, *pickwksp; /* * Window - a region on the display. @@ -146,12 +146,12 @@ typedef struct { char *rightbar; /* Symbols on right edge */ } window_t; -window_t *winlist[MAXWINLIST]; -int nwinlist; +extern window_t *winlist[MAXWINLIST]; +extern int nwinlist; -window_t *curwin; /* Current window */ -window_t wholescreen; /* The whole screen */ -window_t paramwin; /* Window to enter arguments */ +extern window_t *curwin; /* Current window */ +extern window_t wholescreen; /* The whole screen */ +extern window_t paramwin; /* Window to enter arguments */ /* * Copy-and-paste clipboard. @@ -162,7 +162,7 @@ typedef struct { int ncolumns; /* Number of columns */ } clipboard_t; -clipboard_t *pickbuf, *deletebuf; +extern clipboard_t *pickbuf, *deletebuf; /* * Control codes. @@ -200,19 +200,19 @@ clipboard_t *pickbuf, *deletebuf; #define CCQUIT 0177 /* terminate session ^X ^C */ #define CCINTRUP 0237 /* interrupt (journal) */ -int cursorline; /* physical position of */ -int cursorcol; /* cursor from (0,0)=ulhc of text in window */ +extern int cursorline; /* physical position of */ +extern int cursorcol; /* cursor from (0,0)=ulhc of text in window */ -int NCOLS, NLINES; /* size of the screen */ +extern int NCOLS, NLINES; /* size of the screen */ extern char *curspos, *cvtout[]; extern char cntlmotions[]; extern const char in0tab[]; /* input control codes */ -extern int keysym; /* Current input symbol, -1 - need more */ -char intrflag; /* INTR signal occured */ -int highlight_position; /* Highlight the current cursor position */ -int message_displayed; /* Arg area contains an error message */ +extern int keysym; /* Current input symbol, -1 - need more */ +extern char intrflag; /* INTR signal occured */ +extern int highlight_position; /* Highlight the current cursor position */ +extern int message_displayed; /* Arg area contains an error message */ /* Defaults. */ extern int defloffset, defroffset; @@ -226,33 +226,31 @@ extern char deffile[]; * param_c0, param_r0, param_c1, * param_r1 - coordinates of cursor-defined area */ -int param_len; -char *param_str, param_type; -int param_c0, param_r0, param_c1, param_r1; +extern int param_len; +extern char *param_str, param_type; +extern int param_c0, param_r0, param_c1, param_r1; /* * Current line. */ -char *cline; /* allocated array */ -int cline_max; /* allocated length */ -int cline_len; /* used length */ -int cline_incr; /* increment for reallocation */ -char cline_modified; /* line was modified */ -int clineno; /* line number in file */ +extern char *cline; /* allocated array */ +extern int cline_max; /* allocated length */ +extern int cline_len; /* used length */ +extern int cline_incr; /* increment for reallocation */ +extern char cline_modified; /* line was modified */ +extern int clineno; /* line number in file */ /* * File descriptors: */ -int tempfile; /* Temporary file */ -off_t tempseek; /* Offset in temporary file */ -int journal; /* Journaling file */ -int inputfile; /* Input file (stdin or journal) */ +extern int tempfile; /* Temporary file */ +extern off_t tempseek; /* Offset in temporary file */ +extern int journal; /* Journaling file */ +extern int inputfile; /* Input file (stdin or journal) */ -char *searchkey; +extern int userid, groupid; -int userid, groupid; - -char *tmpname; /* name of file, for do command */ +extern char *tmpname; /* name of file, for do command */ /* * Translation of control codes to escape sequences. diff --git a/src/cmd/re/r.display.c b/src/cmd/re/r.display.c index 476b503..7b5a250 100644 --- a/src/cmd/re/r.display.c +++ b/src/cmd/re/r.display.c @@ -6,6 +6,21 @@ */ #include "r.defs.h" +/* + * Global variables for param(). + * param_len - length of the parameter; + * param_str - string value of the parameter, + * param_type - type of the parameter, + * param_c0, param_r0, param_c1, + * param_r1 - coordinates of cursor-defined area + */ +int param_len; +char *param_str, param_type; +int param_c0, param_r0, param_c1, param_r1; + +int highlight_position; /* Highlight the current cursor position */ +int message_displayed; /* Arg area contains an error message */ + /* * Draw lines from lo to lf. * In case lo is negative: diff --git a/src/cmd/re/r.edit.c b/src/cmd/re/r.edit.c index 3c5bf8a..f16dcd4 100644 --- a/src/cmd/re/r.edit.c +++ b/src/cmd/re/r.edit.c @@ -22,6 +22,9 @@ static int buf_count; /* Number of valid bytes in read_buf */ static int buf_next; /* Next unread index in read_buf */ static int cline_read_offset; /* Offset of next unread symbol */ +file_t file[MAXFILES]; /* Table of files */ +int curfile; + /* * Setup for a cline_read routine to read a given file starting * from a given offset. diff --git a/src/cmd/re/r.gettc.c b/src/cmd/re/r.gettc.c index 44ba239..cb511fc 100644 --- a/src/cmd/re/r.gettc.c +++ b/src/cmd/re/r.gettc.c @@ -6,6 +6,22 @@ */ #include "r.defs.h" +int NCOLS, NLINES; /* size of the screen */ +char intrflag; /* INTR signal occured */ +int tempfile; /* Temporary file */ +off_t tempseek; /* Offset in temporary file */ +char *tmpname; /* name of file, for do command */ + +workspace_t *curwksp, *pickwksp; +clipboard_t *pickbuf, *deletebuf; + +window_t *curwin; /* Current window */ +window_t wholescreen; /* The whole screen */ +window_t paramwin; /* Window to enter arguments */ + +window_t *winlist[MAXWINLIST]; +int nwinlist; + /* * Output codes */ diff --git a/src/cmd/re/r.main.c b/src/cmd/re/r.main.c index a2b2b6f..296b2dc 100644 --- a/src/cmd/re/r.main.c +++ b/src/cmd/re/r.main.c @@ -29,15 +29,22 @@ char deffile[] = "/share/re.help"; /* Help file */ /* Initial values. */ int cline_max = 0; -int cline_incr = 20; /* Increment for line expand */ +int cline_incr = 20; /* Increment for line expand */ int clineno = -1; char cline_modified = 0; +char *cline; /* allocated array */ +int cline_len; /* used length */ int journal = -1; /* File descriptor for a journal */ int inputfile = 0; /* Journal or stdin */ int oldttmode; /* Saved access mode of /dev/tty */ +int userid, groupid; + +int cursorline; /* physical position of */ +int cursorcol; /* cursor from (0,0)=ulhc of text in window */ + static char *ttynm, *jname, *rfile; static clipboard_t pb, db; diff --git a/src/cmd/renice/renice.c b/src/cmd/renice/renice.c index 10cb52a..eb80d20 100644 --- a/src/cmd/renice/renice.c +++ b/src/cmd/renice/renice.c @@ -9,12 +9,35 @@ #include #include #include +#include + +int +donice(which, who, prio) + int which, who, prio; +{ + int oldprio; + + errno = 0, oldprio = getpriority(which, who); + if (oldprio == -1 && errno) { + fprintf(stderr, "renice: %d: ", who); + perror("getpriority"); + return (1); + } + if (setpriority(which, who, prio) < 0) { + fprintf(stderr, "renice: %d: ", who); + perror("setpriority"); + return (1); + } + printf("%d: old priority %d, new priority %d\n", who, oldprio, prio); + return (0); +} /* * Change the priority (nice) of processes * or groups of processes which are already * running. */ +int main(argc, argv) char **argv; { @@ -67,23 +90,3 @@ main(argc, argv) } exit(errs != 0); } - -donice(which, who, prio) - int which, who, prio; -{ - int oldprio; - - errno = 0, oldprio = getpriority(which, who); - if (oldprio == -1 && errno) { - fprintf(stderr, "renice: %d: ", who); - perror("getpriority"); - return (1); - } - if (setpriority(which, who, prio) < 0) { - fprintf(stderr, "renice: %d: ", who); - perror("setpriority"); - return (1); - } - printf("%d: old priority %d, new priority %d\n", who, oldprio, prio); - return (0); -} diff --git a/src/cmd/retroforth/Makefile b/src/cmd/retroforth/Makefile index 31b2768..04aed64 100644 --- a/src/cmd/retroforth/Makefile +++ b/src/cmd/retroforth/Makefile @@ -11,7 +11,8 @@ LIBS += -ltermcap all: $(BIN) $(BIN): ${SRCS} - ${LD} ${LDFLAGS} -o $(BIN).elf $(SRCS) ${LIBS} + ${CC} ${CFLAGS} -c -o $(OBJS) $(SRCS) + ${LD} ${LDFLAGS} -o $(BIN).elf $(OBJS) ${LIBS} ${SIZE} $(BIN).elf ${OBJDUMP} -S $(BIN).elf > $(BIN).dis ${ELF2AOUT} $(BIN).elf $@ && rm $(BIN).elf diff --git a/src/cmd/scm/Makefile b/src/cmd/scm/Makefile index a7e0b06..c4e5e40 100644 --- a/src/cmd/scm/Makefile +++ b/src/cmd/scm/Makefile @@ -2,7 +2,7 @@ TOPSRC = $(shell cd ../../..; pwd) include $(TOPSRC)/target.mk #include $(TOPSRC)/cross.mk -CFLAGS += -Os -Wall -Werror +CFLAGS += -Os -Wall -Werror -DNDEBUG OBJS = scm.o func.o TESTS = tests/*.scm diff --git a/src/elf32-mips.ld b/src/elf32-mips.ld index dae0110..5781b4a 100644 --- a/src/elf32-mips.ld +++ b/src/elf32-mips.ld @@ -21,7 +21,6 @@ SECTIONS /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = 0x7f008000); . = 0x7f008000; .interp : { *(.interp) } - /*.reginfo : { *(.reginfo) }*/ .note.gnu.build-id : { *(.note.gnu.build-id) } .dynamic : { *(.dynamic) } .hash : { *(.hash) } @@ -77,6 +76,7 @@ SECTIONS /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.mips16.fn.*) *(.mips16.call.*) + . = ALIGN(32*2 / 8); } =0 .fini : { @@ -163,10 +163,8 @@ SECTIONS SORT(CONSTRUCTORS) } .data1 : { *(.data1) } - .got.plt : { *(.got.plt) } . = .; _gp = ALIGN(16) + 0x7ff0; - .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets can access them all, and initialized data all before uninitialized, so we can shorten the on-disk segment size. */