home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!mcsun!fuug!kiae!demos!newsserv
- From: "Andrew A. Chernov, Black Mage" <ache@astral.msk.su>
- Newsgroups: comp.unix.bsd
- Subject: [386bsd] Patch for curses library, make it clean 8-bit
- Date: Fri, 08 Jan 93 18:06:29 +0300
- Distribution: world
- Organization: Ha-oh-lahm Yetzirah
- Message-ID: <WHrXPJh8b6@astral.msk.su>
- Sender: news-service@newcom.kiae.su
- Reply-To: ache@astral.msk.su
- Lines: 864
-
- Standard curses library use eight bit for standout mode, so
- 8-bit characters displays like highlighted 7-bit characters.
-
- This patch produce library which is fully compatible with all curses
- programs and add 8-bit chars to all input/display functions.
-
- *** addbytes.c.was Sun Apr 21 00:13:50 1991
- --- addbytes.c Fri Jan 8 15:46:02 1993
- ***************
- *** 37,49 ****
-
- # include "curses.ext"
-
- /*
- * This routine adds the character to the current position
- *
- */
- ! waddbytes(win, bytes, count)
- reg WINDOW *win;
- ! reg char *bytes;
- reg int count;
- {
- #define SYNCH_OUT() {win->_cury = y; win->_curx = x;}
- --- 37,65 ----
-
- # include "curses.ext"
-
- + waddbytes(win, bytes, count)
- + reg WINDOW *win;
- + reg char *bytes;
- + int count;
- + {
- + chtype c;
- + reg int i;
- +
- + for (i = 0; i < count; i++) {
- + c = (unsigned char) *bytes++;
- + if (_waddbytes(win, &c, 1) == ERR)
- + return ERR;
- + }
- + return OK;
- + }
- +
- /*
- * This routine adds the character to the current position
- *
- */
- ! _waddbytes(win, bytes, count)
- reg WINDOW *win;
- ! reg chtype *bytes;
- reg int count;
- {
- #define SYNCH_OUT() {win->_cury = y; win->_curx = x;}
- ***************
- *** 52,69 ****
- reg int newx;
-
- SYNCH_IN();
- - # ifdef FULLDEBUG
- - fprintf(outf, "ADDBYTES('%c') at (%d, %d)\n", c, y, x);
- - # endif
- while (count--) {
- ! register int c;
- ! static char blanks[] = " ";
-
- c = *bytes++;
- switch (c) {
- case '\t':
- SYNCH_IN();
- ! if (waddbytes(win, blanks, 8-(x%8)) == ERR) {
- return ERR;
- }
- SYNCH_OUT();
- --- 68,82 ----
- reg int newx;
-
- SYNCH_IN();
- while (count--) {
- ! register chtype c;
- ! static chtype blanks[] = {' ',' ',' ',' ',' ',' ',' ',' '};
-
- c = *bytes++;
- switch (c) {
- case '\t':
- SYNCH_IN();
- ! if (_waddbytes(win, blanks, 8-(x%8)) == ERR) {
- return ERR;
- }
- SYNCH_OUT();
- *** addch.c.was Sun Apr 21 00:13:50 1991
- --- addch.c Fri Jan 8 15:40:46 1993
- ***************
- *** 43,49 ****
- */
- waddch(win, c)
- WINDOW *win;
- ! char c;
- {
- ! return waddbytes(win, &c, 1);
- }
- --- 43,49 ----
- */
- waddch(win, c)
- WINDOW *win;
- ! chtype c;
- {
- ! return _waddbytes(win, &c, 1);
- }
- *** addstr.c.was Sun Apr 21 00:13:50 1991
- --- addstr.c Fri Jan 8 17:22:38 1993
- ***************
- *** 43,52 ****
- */
- waddstr(win,str)
- reg WINDOW *win;
- ! reg char *str;
- {
- # ifdef DEBUG
- fprintf(outf, "WADDSTR(\"%s\")\n", str);
- # endif
- ! return waddbytes(win, str, strlen(str));
- }
- --- 43,59 ----
- */
- waddstr(win,str)
- reg WINDOW *win;
- ! char *str;
- {
- + chtype c;
- + reg char *s;
- # ifdef DEBUG
- fprintf(outf, "WADDSTR(\"%s\")\n", str);
- # endif
- ! for (s = str; *s;) {
- ! c = (unsigned char) *s++;
- ! if (_waddbytes(win, &c, 1) == ERR)
- ! return ERR;
- ! }
- ! return OK;
- }
- *** box.c.was Sun Apr 21 00:13:50 1991
- --- box.c Fri Jan 8 17:00:54 1993
- ***************
- *** 44,54 ****
- */
- box(win, vert, hor)
- reg WINDOW *win;
- ! char vert, hor; {
-
- reg int i;
- reg int endy, endx;
- ! reg char *fp, *lp;
-
- endx = win->_maxx;
- endy = win->_maxy - 1;
- --- 44,54 ----
- */
- box(win, vert, hor)
- reg WINDOW *win;
- ! chtype vert, hor; {
-
- reg int i;
- reg int endy, endx;
- ! reg chtype *fp, *lp;
-
- endx = win->_maxx;
- endy = win->_maxy - 1;
- *** clrtobot.c.was Sun Apr 21 00:13:51 1991
- --- clrtobot.c Fri Jan 8 15:51:42 1993
- ***************
- *** 45,51 ****
- reg WINDOW *win; {
-
- reg int y;
- ! reg char *sp, *end, *maxx;
- reg int startx, minx;
-
- startx = win->_curx;
- --- 45,51 ----
- reg WINDOW *win; {
-
- reg int y;
- ! reg chtype *sp, *end, *maxx;
- reg int startx, minx;
-
- startx = win->_curx;
- *** clrtoeol.c.was Sun Apr 21 00:13:51 1991
- --- clrtoeol.c Fri Jan 8 15:53:06 1993
- ***************
- *** 44,52 ****
- wclrtoeol(win)
- reg WINDOW *win; {
-
- ! reg char *sp, *end;
- reg int y, x;
- ! reg char *maxx;
- reg int minx;
-
- y = win->_cury;
- --- 44,52 ----
- wclrtoeol(win)
- reg WINDOW *win; {
-
- ! reg chtype *sp, *end;
- reg int y, x;
- ! reg chtype *maxx;
- reg int minx;
-
- y = win->_cury;
- *** cr_put.c.was Sun Apr 21 00:13:51 1991
- --- cr_put.c Fri Jan 8 16:46:36 1993
- ***************
- *** 180,185 ****
- --- 180,186 ----
- {
- register int i, j, k;
- register int soutcol, soutline;
- + chtype ch;
-
- plodcnt = plodflg = cnt;
- soutcol = outcol;
- ***************
- *** 373,381 ****
- if (plodflg) /* avoid a complex calculation */
- plodcnt--;
- else {
- ! i = curscr->_y[outline][outcol];
- ! if ((i&_STANDOUT) == (curscr->_flags&_STANDOUT))
- ! _putchar(i & 0177);
- else
- goto nondes;
- }
- --- 374,382 ----
- if (plodflg) /* avoid a complex calculation */
- plodcnt--;
- else {
- ! ch = curscr->_y[outline][outcol];
- ! if ((ch&_STANDOUT) == (curscr->_flags&_STANDOUT))
- ! _putchar(ch);
- else
- goto nondes;
- }
- *** curses.h.was Sun Apr 21 00:13:52 1991
- --- curses.h Fri Jan 8 17:03:22 1993
- ***************
- *** 44,49 ****
- --- 44,51 ----
- #define bool char
- #define reg register
-
- + typedef unsigned short chtype;
- +
- #define TRUE (1)
- #define FALSE (0)
- #define ERR (0)
- ***************
- *** 55,61 ****
- #define _FLUSH 010
- #define _FULLLINE 020
- #define _IDLINE 040
- ! #define _STANDOUT 0200
- #define _NOCHANGE -1
-
- #define _puts(s) tputs(s, 0, _putchar)
- --- 57,63 ----
- #define _FLUSH 010
- #define _FULLLINE 020
- #define _IDLINE 040
- ! #define _STANDOUT 0400
- #define _NOCHANGE -1
-
- #define _puts(s) tputs(s, 0, _putchar)
- ***************
- *** 92,98 ****
- bool _clear;
- bool _leave;
- bool _scroll;
- ! char **_y;
- short *_firstch;
- short *_lastch;
- struct _win_st *_nextp, *_orig;
- --- 94,100 ----
- bool _clear;
- bool _leave;
- bool _scroll;
- ! chtype **_y;
- short *_firstch;
- short *_lastch;
- struct _win_st *_nextp, *_orig;
- ***************
- *** 127,133 ****
- #define addch(ch) VOID(waddch(stdscr, ch))
- #define getch() VOID(wgetch(stdscr))
- #define addbytes(da,co) VOID(waddbytes(stdscr, da,co))
- ! #define addstr(str) VOID(waddbytes(stdscr, str, strlen(str)))
- #define getstr(str) VOID(wgetstr(stdscr, str))
- #define move(y, x) VOID(wmove(stdscr, y, x))
- #define clear() VOID(wclear(stdscr))
- --- 129,135 ----
- #define addch(ch) VOID(waddch(stdscr, ch))
- #define getch() VOID(wgetch(stdscr))
- #define addbytes(da,co) VOID(waddbytes(stdscr, da,co))
- ! #define addstr(str) VOID(waddstr(stdscr, str))
- #define getstr(str) VOID(wgetstr(stdscr, str))
- #define move(y, x) VOID(wmove(stdscr, y, x))
- #define clear() VOID(wclear(stdscr))
- ***************
- *** 151,157 ****
- #define mvwaddbytes(win,y,x,da,co) \
- VOID(wmove(win,y,x)==ERR?ERR:waddbytes(win,da,co))
- #define mvwaddstr(win,y,x,str) \
- ! VOID(wmove(win,y,x)==ERR?ERR:waddbytes(win,str,strlen(str)))
- #define mvwgetstr(win,y,x,str) VOID(wmove(win,y,x)==ERR?ERR:wgetstr(win,str))
- #define mvwinch(win,y,x) VOID(wmove(win,y,x) == ERR ? ERR : winch(win))
- #define mvwdelch(win,y,x) VOID(wmove(win,y,x) == ERR ? ERR : wdelch(win))
- --- 153,159 ----
- #define mvwaddbytes(win,y,x,da,co) \
- VOID(wmove(win,y,x)==ERR?ERR:waddbytes(win,da,co))
- #define mvwaddstr(win,y,x,str) \
- ! VOID(wmove(win,y,x)==ERR?ERR:waddstr(win,str))
- #define mvwgetstr(win,y,x,str) VOID(wmove(win,y,x)==ERR?ERR:wgetstr(win,str))
- #define mvwinch(win,y,x) VOID(wmove(win,y,x) == ERR ? ERR : winch(win))
- #define mvwdelch(win,y,x) VOID(wmove(win,y,x) == ERR ? ERR : wdelch(win))
- ***************
- *** 174,180 ****
- #define scrollok(win,bf) (win->_scroll = bf)
- #define flushok(win,bf) (bf ? (win->_flags |= _FLUSH):(win->_flags &= ~_FLUSH))
- #define getyx(win,y,x) y = win->_cury, x = win->_curx
- ! #define winch(win) (win->_y[win->_cury][win->_curx] & 0177)
-
- #define raw() (_tty.sg_flags|=RAW, _pfast=_rawmode=TRUE, \
- ioctl(_tty_ch, TIOCSETP, &_tty))
- --- 176,182 ----
- #define scrollok(win,bf) (win->_scroll = bf)
- #define flushok(win,bf) (bf ? (win->_flags |= _FLUSH):(win->_flags &= ~_FLUSH))
- #define getyx(win,y,x) y = win->_cury, x = win->_curx
- ! #define winch(win) (win->_y[win->_cury][win->_curx] & 0xFF)
-
- #define raw() (_tty.sg_flags|=RAW, _pfast=_rawmode=TRUE, \
- ioctl(_tty_ch, TIOCSETP, &_tty))
- *** delch.c.was Sun Apr 21 00:13:52 1991
- --- delch.c Fri Jan 8 15:56:16 1993
- ***************
- *** 45,53 ****
- wdelch(win)
- reg WINDOW *win; {
-
- ! reg char *temp1, *temp2;
- ! reg char *end;
- ! reg int lch;
-
- end = &win->_y[win->_cury][win->_maxx - 1];
- temp1 = &win->_y[win->_cury][win->_curx];
- --- 45,52 ----
- wdelch(win)
- reg WINDOW *win; {
-
- ! reg chtype *temp1, *temp2;
- ! reg chtype *end;
-
- end = &win->_y[win->_cury][win->_maxx - 1];
- temp1 = &win->_y[win->_cury][win->_curx];
- *** deleteln.c.was Sun Apr 21 00:13:52 1991
- --- deleteln.c Fri Jan 8 16:00:59 1993
- ***************
- *** 45,53 ****
- wdeleteln(win)
- reg WINDOW *win;
- {
- ! reg char *temp;
- reg int y;
- ! reg char *end;
- reg int x;
-
- # ifdef DEBUG
- --- 45,53 ----
- wdeleteln(win)
- reg WINDOW *win;
- {
- ! reg chtype *temp;
- reg int y;
- ! reg chtype *end;
- reg int x;
-
- # ifdef DEBUG
- ***************
- *** 58,64 ****
- if (win->_orig == NULL)
- win->_y[y] = win->_y[y + 1];
- else
- ! bcopy(win->_y[y + 1], win->_y[y], win->_maxx);
- touchline(win, y, 0, win->_maxx - 1);
- }
- if (win->_orig == NULL)
- --- 58,64 ----
- if (win->_orig == NULL)
- win->_y[y] = win->_y[y + 1];
- else
- ! bcopy(win->_y[y + 1], win->_y[y], win->_maxx * sizeof(chtype));
- touchline(win, y, 0, win->_maxx - 1);
- }
- if (win->_orig == NULL)
- *** erase.c.was Sun Apr 21 00:13:53 1991
- --- erase.c Fri Jan 8 16:03:21 1993
- ***************
- *** 45,51 ****
- reg WINDOW *win; {
-
- reg int y;
- ! reg char *sp, *end, *start, *maxx;
- reg int minx;
-
- # ifdef DEBUG
- --- 45,51 ----
- reg WINDOW *win; {
-
- reg int y;
- ! reg chtype *sp, *end, *start, *maxx;
- reg int minx;
-
- # ifdef DEBUG
- *** getch.c.was Sun Apr 21 00:13:53 1991
- --- getch.c Fri Jan 8 16:06:46 1993
- ***************
- *** 45,51 ****
- reg WINDOW *win; {
-
- reg bool weset = FALSE;
- ! reg char inp;
-
- if (!win->_scroll && (win->_flags&_FULLWIN)
- && win->_curx == win->_maxx - 1 && win->_cury == win->_maxy - 1)
- --- 45,51 ----
- reg WINDOW *win; {
-
- reg bool weset = FALSE;
- ! reg int inp;
-
- if (!win->_scroll && (win->_flags&_FULLWIN)
- && win->_curx == win->_maxx - 1 && win->_cury == win->_maxy - 1)
- ***************
- *** 58,70 ****
- weset++;
- }
- inp = getchar();
- # ifdef DEBUG
- fprintf(outf,"WGETCH got '%s'\n",unctrl(inp));
- # endif
- if (_echoit) {
- mvwaddch(curscr, win->_cury + win->_begy,
- ! win->_curx + win->_begx, inp);
- ! waddch(win, inp);
- }
- if (weset)
- nocbreak();
- --- 58,72 ----
- weset++;
- }
- inp = getchar();
- + if (inp != EOF) {
- # ifdef DEBUG
- fprintf(outf,"WGETCH got '%s'\n",unctrl(inp));
- # endif
- if (_echoit) {
- mvwaddch(curscr, win->_cury + win->_begy,
- ! win->_curx + win->_begx, (unsigned char) inp);
- ! waddch(win, (unsigned char) inp);
- ! }
- }
- if (weset)
- nocbreak();
- *** getstr.c.was Sun Apr 21 00:13:54 1991
- --- getstr.c Fri Jan 8 16:09:33 1993
- ***************
- *** 44,56 ****
- wgetstr(win,str)
- reg WINDOW *win;
- reg char *str; {
-
- ! while ((*str = wgetch(win)) != ERR && *str != '\n')
- ! str++;
- ! if (*str == ERR) {
- *str = '\0';
- return ERR;
- - }
- - *str = '\0';
- return OK;
- }
- --- 44,55 ----
- wgetstr(win,str)
- reg WINDOW *win;
- reg char *str; {
- + int c;
-
- ! while ((c = wgetch(win)) != ERR && c != EOF && c != '\n')
- ! *str++ = c;
- *str = '\0';
- + if (c == ERR)
- return ERR;
- return OK;
- }
- *** insch.c.was Sun Apr 21 00:13:54 1991
- --- insch.c Fri Jan 8 16:11:22 1993
- ***************
- *** 44,53 ****
- */
- winsch(win, c)
- reg WINDOW *win;
- ! char c; {
-
- ! reg char *temp1, *temp2;
- ! reg char *end;
-
- end = &win->_y[win->_cury][win->_curx];
- temp1 = &win->_y[win->_cury][win->_maxx - 1];
- --- 44,53 ----
- */
- winsch(win, c)
- reg WINDOW *win;
- ! chtype c; {
-
- ! reg chtype *temp1, *temp2;
- ! reg chtype *end;
-
- end = &win->_y[win->_cury][win->_curx];
- temp1 = &win->_y[win->_cury][win->_maxx - 1];
- *** insertln.c.was Sun Apr 21 00:13:55 1991
- --- insertln.c Fri Jan 8 16:00:59 1993
- ***************
- *** 45,53 ****
- winsertln(win)
- reg WINDOW *win; {
-
- ! reg char *temp;
- reg int y;
- ! reg char *end;
- reg int x;
-
- #ifdef DEBUG
- --- 45,53 ----
- winsertln(win)
- reg WINDOW *win; {
-
- ! reg chtype *temp;
- reg int y;
- ! reg chtype *end;
- reg int x;
-
- #ifdef DEBUG
- ***************
- *** 59,65 ****
- if (win->_orig == NULL)
- win->_y[y] = win->_y[y - 1];
- else
- ! bcopy(win->_y[y - 1], win->_y[y], win->_maxx);
- touchline(win, y, 0, win->_maxx - 1);
- }
- if (win->_orig == NULL)
- --- 59,65 ----
- if (win->_orig == NULL)
- win->_y[y] = win->_y[y - 1];
- else
- ! bcopy(win->_y[y - 1], win->_y[y], win->_maxx * sizeof(chtype));
- touchline(win, y, 0, win->_maxx - 1);
- }
- if (win->_orig == NULL)
- *** newwin.c.was Sun Apr 21 00:13:56 1991
- --- newwin.c Fri Jan 8 16:18:59 1993
- ***************
- *** 55,61 ****
- int num_lines, num_cols, begy, begx;
- {
- reg WINDOW *win;
- ! reg char *sp;
- reg int i, by, bx, nl, nc;
- reg int j;
-
- --- 55,61 ----
- int num_lines, num_cols, begy, begx;
- {
- reg WINDOW *win;
- ! reg chtype *sp;
- reg int i, by, bx, nl, nc;
- reg int j;
-
- ***************
- *** 87,93 ****
- win->_lastch[i] = _NOCHANGE;
- }
- for (i = 0; i < nl; i++)
- ! if ((win->_y[i] = malloc(nc * sizeof win->_y[0])) == NULL) {
- for (j = 0; j < i; j++)
- free(win->_y[j]);
- free(win->_firstch);
- --- 87,93 ----
- win->_lastch[i] = _NOCHANGE;
- }
- for (i = 0; i < nl; i++)
- ! if ((win->_y[i] = (chtype *) malloc(nc * sizeof(chtype))) == NULL) {
- for (j = 0; j < i; j++)
- free(win->_y[j]);
- free(win->_firstch);
- ***************
- *** 188,194 ****
- # ifdef DEBUG
- fprintf(outf, "MAKENEW: nl = %d\n", nl);
- # endif
- ! if ((win->_y = (char **) malloc(nl * sizeof win->_y[0])) == NULL) {
- free(win);
- return NULL;
- }
- --- 188,194 ----
- # ifdef DEBUG
- fprintf(outf, "MAKENEW: nl = %d\n", nl);
- # endif
- ! if ((win->_y = (chtype **) malloc(nl * sizeof(chtype *))) == NULL) {
- free(win);
- return NULL;
- }
- *** overlay.c.was Sun Apr 21 00:13:56 1991
- --- overlay.c Fri Jan 8 16:21:04 1993
- ***************
- *** 36,42 ****
- #endif /* not lint */
-
- # include "curses.ext"
- - # include <ctype.h>
-
- # define min(a,b) (a < b ? a : b)
- # define max(a,b) (a > b ? a : b)
- --- 36,41 ----
- ***************
- *** 48,54 ****
- overlay(win1, win2)
- reg WINDOW *win1, *win2; {
-
- ! reg char *sp, *end;
- reg int x, y, endy, endx, starty, startx;
- reg int y1,y2;
-
- --- 47,53 ----
- overlay(win1, win2)
- reg WINDOW *win1, *win2; {
-
- ! reg chtype *sp, *end;
- reg int x, y, endy, endx, starty, startx;
- reg int y1,y2;
-
- ***************
- *** 70,76 ****
- end = &win1->_y[y1][endx - win1->_begx];
- x = startx - win2->_begx;
- for (sp = &win1->_y[y1][startx - win1->_begx]; sp < end; sp++) {
- ! if (!isspace(*sp))
- mvwaddch(win2, y2, x, *sp);
- x++;
- }
- --- 69,75 ----
- end = &win1->_y[y1][endx - win1->_begx];
- x = startx - win2->_begx;
- for (sp = &win1->_y[y1][startx - win1->_begx]; sp < end; sp++) {
- ! if (*sp != ' ')
- mvwaddch(win2, y2, x, *sp);
- x++;
- }
- *** overwrite.c.was Sun Apr 21 00:13:56 1991
- --- overwrite.c Fri Jan 8 16:00:59 1993
- ***************
- *** 48,54 ****
- overwrite(win1, win2)
- reg WINDOW *win1, *win2; {
-
- - reg char *sp, *end;
- reg int x, y, endy, endx, starty, startx;
-
- # ifdef DEBUG
- --- 48,53 ----
- ***************
- *** 66,72 ****
- x = endx - startx;
- for (y = starty; y < endy; y++) {
- bcopy(&win1->_y[y - win1->_begy][startx - win1->_begx],
- ! &win2->_y[y - win2->_begy][startx - win2->_begx], x);
- touchline(win2, y, startx - win2->_begx, endx - win2->_begx);
- }
- }
- --- 65,71 ----
- x = endx - startx;
- for (y = starty; y < endy; y++) {
- bcopy(&win1->_y[y - win1->_begy][startx - win1->_begx],
- ! &win2->_y[y - win2->_begy][startx - win2->_begx], x * sizeof(chtype));
- touchline(win2, y, startx - win2->_begx, endx - win2->_begx);
- }
- }
- *** printw.c.was Sun Apr 21 00:13:56 1991
- --- printw.c Fri Jan 8 16:23:10 1993
- ***************
- *** 111,117 ****
- register int c = n;
-
- while (--c >= 0) {
- ! if (waddch(win, *buf++) == ERR)
- return (-1);
- }
- return n;
- --- 111,117 ----
- register int c = n;
-
- while (--c >= 0) {
- ! if (waddch(win, (unsigned char) *buf++) == ERR)
- return (-1);
- }
- return n;
- *** refresh.c.was Sun Apr 21 00:13:57 1991
- --- refresh.c Fri Jan 8 16:36:09 1993
- ***************
- *** 169,177 ****
- reg WINDOW *win;
- short wy;
- {
- ! reg char *nsp, *csp, *ce;
- reg short wx, lch, y;
- reg int nlsp, clsp; /* last space in lines */
-
- wx = win->_firstch[wy] - win->_ch_off;
- if (wx >= win->_maxx)
- --- 169,179 ----
- reg WINDOW *win;
- short wy;
- {
- ! reg chtype *nsp, *csp, *ce;
- reg short wx, lch, y;
- reg int nlsp, clsp; /* last space in lines */
- + char *ce_tcap;
- + static chtype blank[] = {' ','\0'};
-
- wx = win->_firstch[wy] - win->_ch_off;
- if (wx >= win->_maxx)
- ***************
- *** 186,192 ****
- y = wy + win->_begy;
-
- if (curwin)
- ! csp = " ";
- else
- csp = &curscr->_y[wy + win->_begy][wx + win->_begx];
-
- --- 188,194 ----
- y = wy + win->_begy;
-
- if (curwin)
- ! csp = blank;
- else
- csp = &curscr->_y[wy + win->_begy][wx + win->_begx];
-
- ***************
- *** 199,207 ****
- }
-
- if (!curwin)
- ! ce = CE;
- else
- ! ce = NULL;
-
- while (wx <= lch) {
- if (*nsp != *csp) {
- --- 201,209 ----
- }
-
- if (!curwin)
- ! ce_tcap = CE;
- else
- ! ce_tcap = NULL;
-
- while (wx <= lch) {
- if (*nsp != *csp) {
- ***************
- *** 212,218 ****
- ly = y;
- lx = wx + win->_begx;
- while (*nsp != *csp && wx <= lch) {
- ! if (ce != NULL && wx >= nlsp && *nsp == ' ') {
- /*
- * check for clear to end-of-line
- */
- --- 214,220 ----
- ly = y;
- lx = wx + win->_begx;
- while (*nsp != *csp && wx <= lch) {
- ! if (ce_tcap != NULL && wx >= nlsp && *nsp == ' ') {
- /*
- * check for clear to end-of-line
- */
- ***************
- *** 235,241 ****
- *csp++ = ' ';
- return OK;
- }
- ! ce = NULL;
- }
- /*
- * enter/exit standout mode as appropriate
- --- 237,243 ----
- *csp++ = ' ';
- return OK;
- }
- ! ce_tcap = NULL;
- }
- /*
- * enter/exit standout mode as appropriate
- ***************
- *** 260,268 ****
- curscr->_flags &= ~_STANDOUT;
- }
- if (!curwin)
- ! _putchar((*csp = *nsp) & 0177);
- else
- ! _putchar(*nsp & 0177);
- if (win->_flags&_FULLWIN && !curwin)
- scroll(curscr);
- ly = win->_begy+win->_cury;
- --- 262,270 ----
- curscr->_flags &= ~_STANDOUT;
- }
- if (!curwin)
- ! _putchar((*csp = *nsp));
- else
- ! _putchar(*nsp);
- if (win->_flags&_FULLWIN && !curwin)
- scroll(curscr);
- ly = win->_begy+win->_cury;
- ***************
- *** 274,285 ****
- return ERR;
- }
- if (!curwin)
- ! _putchar((*csp++ = *nsp) & 0177);
- else
- ! _putchar(*nsp & 0177);
- # ifdef FULLDEBUG
- fprintf(outf,
- ! "MAKECH:putchar(%c)\n", *nsp & 0177);
- # endif
- if (UC && (*nsp & _STANDOUT)) {
- _putchar('\b');
- --- 276,287 ----
- return ERR;
- }
- if (!curwin)
- ! _putchar((*csp++ = *nsp));
- else
- ! _putchar(*nsp);
- # ifdef FULLDEBUG
- fprintf(outf,
- ! "MAKECH:putchar(%c)\n", *nsp);
- # endif
- if (UC && (*nsp & _STANDOUT)) {
- _putchar('\b');
- --
- In-This-Life: Andrew A. Chernov | "Hay mas dicha, mas contento
- Internet: ache@astral.msk.su | "Que adorar una hermosura
- Organization: The RELCOM Corp., | "Brujuleada entre los lejos
- Moscow, Russia | "De lo imposible?!" (Calderon)
-
-