Date: Sat, 27 Dec 2008 13:41:13 GMT From: Ed Schouten <ed@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 155322 for review Message-ID: <200812271341.mBRDfChN040252@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=155322 Change 155322 by ed@ed_dull on 2008/12/27 13:40:50 Several improvements to libteken: - Change the Makefile to a BSD makefile, using <bsd.prog.mk> - Make the source code build with WARNS set to 6. There were a lot of places where we did comparisons, which required signing (because of subtraction). I've converted the statements to work without this. Affected files ... .. //depot/projects/mpsafetty/sys/dev/syscons/teken/Makefile#2 edit .. //depot/projects/mpsafetty/sys/dev/syscons/teken/teken.c#10 edit .. //depot/projects/mpsafetty/sys/dev/syscons/teken/teken_demo.c#2 edit .. //depot/projects/mpsafetty/sys/dev/syscons/teken/teken_subr.h#19 edit Differences ... ==== //depot/projects/mpsafetty/sys/dev/syscons/teken/Makefile#2 (text+ko) ==== @@ -1,20 +1,13 @@ -CFLAGS=-O2 -Wall -Werror -Wmissing-prototypes -Wstrict-prototypes -g -LDFLAGS=-lutil -lncurses -OBJS=teken.o teken_demo.o +# $FreeBSD$ -all: teken_demo +PROG= teken_demo +SRCS= teken_demo.c teken.c teken_state.h +CLEANFILES= teken_state.h +LDADD= -lncurses -lutil +NO_MAN= +WARNS?= 6 -teken_demo: $(OBJS) - $(CC) -o teken_demo $(LDFLAGS) $(OBJS) +teken_state.h: gensequences sequences + awk -f gensequences sequences > ${.TARGET} -teken_state.h: sequences gensequences - awk -f gensequences < sequences > teken_state.h - -teken.o: teken.c teken.h teken_state.h teken_subr.h teken_subr_compat.h - $(CC) $(CFLAGS) -c teken.c - -teken_demo.o: teken_demo.c teken.h - $(CC) $(CFLAGS) -c teken_demo.c - -clean: - -rm -f teken_demo *.o teken_state.h teken.log +.include <bsd.prog.mk> ==== //depot/projects/mpsafetty/sys/dev/syscons/teken/teken.c#10 (text+ko) ==== @@ -26,6 +26,7 @@ * $FreeBSD$ */ +#include <sys/cdefs.h> #if defined(__FreeBSD__) && defined(_KERNEL) #include <sys/param.h> #include <sys/lock.h> @@ -208,7 +209,6 @@ switch (c) { case '\0': - teken_subr_null_character(t); break; case '\a': teken_subr_bell(t); ==== //depot/projects/mpsafetty/sys/dev/syscons/teken/teken_demo.c#2 (text+ko) ==== @@ -73,7 +73,7 @@ #define NROWS 24 struct pixel buffer[NCOLS][NROWS]; -static int pt; +static int ptfd; static void printchar(const teken_pos_t *p) @@ -111,21 +111,21 @@ } static void -test_bell(void *s) +test_bell(void *s __unused) { beep(); } static void -test_cursor(void *s, const teken_pos_t *p) +test_cursor(void *s __unused, const teken_pos_t *p) { move(p->tp_row, p->tp_col); } static void -test_putchar(void *s, const teken_pos_t *p, teken_char_t c, +test_putchar(void *s __unused, const teken_pos_t *p, teken_char_t c, const teken_attr_t *a) { @@ -147,7 +147,7 @@ } static void -test_copy(void *s, const teken_rect_t *r, const teken_pos_t *p) +test_copy(void *s __unused, const teken_rect_t *r, const teken_pos_t *p) { int nrow, ncol, x, y; /* Has to be signed - >= 0 comparison */ teken_pos_t d; @@ -214,7 +214,7 @@ } static void -test_param(void *s, int cmd, int value) +test_param(void *s __unused, int cmd, int value) { switch (cmd) { @@ -228,10 +228,10 @@ } static void -test_respond(void *s, const void *buf, size_t len) +test_respond(void *s __unused, const void *buf, size_t len) { - write(pt, buf, len); + write(ptfd, buf, len); } static void @@ -260,7 +260,7 @@ } int -main(int argc, char *argv[]) +main(int argc __unused, char *argv[] __unused) { struct winsize ws; teken_t t; @@ -274,7 +274,7 @@ tp.tp_row = ws.ws_row = NROWS; tp.tp_col = ws.ws_col = NCOLS; - switch (forkpty(&pt, NULL, NULL, &ws)) { + switch (forkpty(&ptfd, NULL, NULL, &ws)) { case -1: perror("forkpty"); exit(1); @@ -300,14 +300,12 @@ redraw_border(); FD_ZERO(&rfds); - FD_SET(STDIN_FILENO, &rfds); - FD_SET(pt, &rfds); for (;;) { FD_SET(STDIN_FILENO, &rfds); - FD_SET(pt, &rfds); + FD_SET(ptfd, &rfds); - if (select(pt + 1, &rfds, NULL, NULL, NULL) < 0) { + if (select(ptfd + 1, &rfds, NULL, NULL, NULL) < 0) { if (errno == EINTR) { redraw_all(); refresh(); @@ -320,11 +318,11 @@ bl = read(STDIN_FILENO, b, sizeof b); if (bl <= 0) break; - write(pt, b, bl); + write(ptfd, b, bl); } - if (FD_ISSET(pt, &rfds)) { - bl = read(pt, b, sizeof b); + if (FD_ISSET(ptfd, &rfds)) { + bl = read(ptfd, b, sizeof b); if (bl <= 0) break; teken_input(&t, b, bl); ==== //depot/projects/mpsafetty/sys/dev/syscons/teken/teken_subr.h#19 (text+ko) ==== @@ -251,7 +251,7 @@ { teken_assert(t->t_cursor.tp_row < t->t_scrollreg.ts_end); - if (nrows >= t->t_scrollreg.ts_end - t->t_cursor.tp_row) + if (t->t_cursor.tp_row + nrows >= t->t_scrollreg.ts_end) t->t_cursor.tp_row = t->t_scrollreg.ts_end - 1; else t->t_cursor.tp_row += nrows; @@ -263,7 +263,7 @@ teken_subr_cursor_forward(teken_t *t, unsigned int ncols) { - if (ncols >= t->t_winsize.tp_col - t->t_cursor.tp_col) + if (t->t_cursor.tp_col + ncols >= t->t_winsize.tp_col) t->t_cursor.tp_col = t->t_winsize.tp_col - 1; else t->t_cursor.tp_col += ncols; @@ -332,7 +332,7 @@ teken_subr_cursor_up(teken_t *t, unsigned int nrows) { - if (nrows > ((int)t->t_cursor.tp_row - t->t_scrollreg.ts_begin)) + if (t->t_scrollreg.ts_begin + nrows >= t->t_cursor.tp_row) t->t_cursor.tp_row = t->t_scrollreg.ts_begin; else t->t_cursor.tp_row -= nrows; @@ -349,14 +349,14 @@ tr.tr_end.tp_row = t->t_cursor.tp_row + 1; tr.tr_end.tp_col = t->t_winsize.tp_col; - if (ncols < (t->t_winsize.tp_col - t->t_cursor.tp_col)) { + if (t->t_cursor.tp_col + ncols >= t->t_winsize.tp_col) { + tr.tr_begin.tp_col = t->t_cursor.tp_col; + } else { /* Copy characters to the left. */ tr.tr_begin.tp_col = t->t_cursor.tp_col + ncols; teken_funcs_copy(t, &tr, &t->t_cursor); tr.tr_begin.tp_col = t->t_winsize.tp_col - ncols; - } else { - tr.tr_begin.tp_col = t->t_cursor.tp_col; } /* Blank trailing columns. */ @@ -372,14 +372,14 @@ tr.tr_end.tp_row = t->t_scrollreg.ts_end; tr.tr_end.tp_col = t->t_winsize.tp_col; - if (nrows < ((int)t->t_scrollreg.ts_end - t->t_cursor.tp_row)) { + if (t->t_cursor.tp_row + nrows >= t->t_scrollreg.ts_end) { + tr.tr_begin.tp_row = t->t_cursor.tp_row; + } else { /* Copy rows up. */ tr.tr_begin.tp_row = t->t_cursor.tp_row + nrows; teken_funcs_copy(t, &tr, &t->t_cursor); tr.tr_begin.tp_row = t->t_scrollreg.ts_end - nrows; - } else { - tr.tr_begin.tp_row = t->t_cursor.tp_row; } /* Blank trailing rows. */ @@ -387,7 +387,7 @@ } static void -teken_subr_device_control_string(teken_t *t) +teken_subr_device_control_string(teken_t *t __unused) { teken_printf("device control string???\n"); @@ -407,14 +407,14 @@ } static void -teken_subr_double_height_double_width_line_top(teken_t *t) +teken_subr_double_height_double_width_line_top(teken_t *t __unused) { teken_printf("double height double width top\n"); } static void -teken_subr_double_height_double_width_line_bottom(teken_t *t) +teken_subr_double_height_double_width_line_bottom(teken_t *t __unused) { teken_printf("double height double width bottom\n"); @@ -428,10 +428,10 @@ tr.tr_begin = t->t_cursor; tr.tr_end.tp_row = t->t_cursor.tp_row + 1; - if (ncols < (t->t_winsize.tp_col - t->t_cursor.tp_col)) + if (t->t_cursor.tp_col + ncols >= t->t_winsize.tp_col) + tr.tr_end.tp_col = t->t_winsize.tp_col - 1; + else tr.tr_end.tp_col = t->t_cursor.tp_col + ncols; - else - tr.tr_end.tp_col = t->t_winsize.tp_col - 1; teken_funcs_fill(t, &tr, BLANK, &t->t_curattr); } @@ -550,7 +550,9 @@ tr.tr_begin = t->t_cursor; tr.tr_end.tp_row = t->t_cursor.tp_row + 1; - if (ncols < (t->t_winsize.tp_col - t->t_cursor.tp_col)) { + if (t->t_cursor.tp_col + ncols >= t->t_winsize.tp_col) { + tr.tr_end.tp_col = t->t_winsize.tp_col; + } else { teken_pos_t tp; /* Copy characters to the right. */ @@ -560,8 +562,6 @@ teken_funcs_copy(t, &tr, &tp); tr.tr_end.tp_col = t->t_cursor.tp_col + ncols; - } else { - tr.tr_end.tp_col = t->t_winsize.tp_col; } /* Blank current location. */ @@ -577,7 +577,9 @@ tr.tr_begin.tp_col = 0; tr.tr_end.tp_col = t->t_winsize.tp_col; - if (nrows < ((int)t->t_scrollreg.ts_end - t->t_cursor.tp_row)) { + if (t->t_cursor.tp_row + nrows >= t->t_scrollreg.ts_end) { + tr.tr_end.tp_row = t->t_scrollreg.ts_end; + } else { teken_pos_t tp; /* Copy lines down. */ @@ -587,8 +589,6 @@ teken_funcs_copy(t, &tr, &tp); tr.tr_end.tp_row = t->t_cursor.tp_row + nrows; - } else { - tr.tr_end.tp_row = t->t_scrollreg.ts_end; } /* Blank current location. */ @@ -633,11 +633,6 @@ } static void -teken_subr_null_character(teken_t *t) -{ -} - -static void teken_subr_pan_down(teken_t *t, unsigned int nrows) { @@ -859,7 +854,7 @@ } static void -teken_subr_scs(teken_t *t) +teken_subr_scs(teken_t *t __unused) { teken_printf("scs???\n"); @@ -1046,21 +1041,21 @@ } static void -teken_subr_single_height_double_width_line(teken_t *t) +teken_subr_single_height_double_width_line(teken_t *t __unused) { teken_printf("single height double width???\n"); } static void -teken_subr_single_height_single_width_line(teken_t *t) +teken_subr_single_height_single_width_line(teken_t *t __unused) { teken_printf("single height single width???\n"); } static void -teken_subr_string_terminator(teken_t *t) +teken_subr_string_terminator(teken_t *t __unused) { teken_printf("string terminator???\n");
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200812271341.mBRDfChN040252>