liebman@xrxns.UUCP (Chris Liebman) (08/28/87)
I just blew the dust off of an old archive tape and loaded in the public domain curses/terminfo package that Pavel Curtis posted to the net a Loooooooong time ago. Bad news, on my 68020 4.3bsd box I get core dumping problems when I run compile. I have not looked into this yet and I thought I would post this to see if anyone has patches (to the original posting) or a newer version. Here is the RCS ident stuff of what I have: $Header: RCS/comp_error.v Revision 2.1 82/10/25 14:45:31 pavel Exp$ $Header: RCS/comp_hash.v Revision 2.1 82/10/25 14:45:34 pavel Exp$ $Header: RCS/comp_main.v Revision 2.1 82/10/25 14:45:37 pavel Exp$ $Header: comp_parse.c,v 3.1 84/12/13 11:19:32 john Exp $ $Header: RCS/comp_scan.v Revision 2.1 82/10/25 14:45:55 pavel Exp$ $Header: RCS/compiler.v Revision 2.1 82/10/25 14:46:04 pavel Exp$ $Header: RCS/curses.v Revision 2.1 82/10/25 14:46:08 pavel Exp$ $Header: RCS/dump.v Revision 2.1 82/10/25 14:46:20 pavel Exp$ $Header: RCS/lib_addch.v Revision 2.1 82/10/25 14:46:23 pavel Exp$ $Header: RCS/lib_addstr.v Revision 2.1 82/10/25 14:46:26 pavel Exp$ $Header: RCS/lib_beep.v Revision 2.1 82/10/25 14:46:29 pavel Exp$ $Header: RCS/lib_box.v Revision 2.1 82/10/25 14:46:31 pavel Exp$ $Header: RCS/lib_clear.v Revision 2.1 82/10/25 14:46:34 pavel Exp$ $Header: RCS/lib_clrbot.v Revision 2.1 82/10/25 14:46:37 pavel Exp$ $Header: RCS/lib_clreol.v Revision 2.1 82/10/25 14:46:42 pavel Exp$ $Header: RCS/lib_delch.v Revision 2.1 82/10/25 14:46:52 pavel Exp$ $Header: RCS/lib_deleteln.v Revision 2.1 82/10/25 14:46:55 pavel Exp$ $Header: RCS/lib_delwin.v Revision 2.1 82/10/25 14:47:01 pavel Exp$ $Header: lib_doupdate.c,v 3.1 84/12/13 11:20:28 john Exp $ $Header: RCS/lib_endwin.v Revision 2.1 82/10/25 14:47:13 pavel Exp$ $Header: RCS/lib_erase.v Revision 2.2 82/11/03 12:27:41 pavel Exp$ $Header: RCS/lib_fixterm.v Revision 2.1 82/10/25 14:47:22 pavel Exp$ $Header: RCS/lib_getch.v Revision 2.1 82/10/25 14:47:29 pavel Exp$ $Header: RCS/lib_getstr.v Revision 2.1 82/10/25 14:47:33 pavel Exp$ $Header: RCS/lib_initscr.v Revision 2.1 82/10/25 14:47:36 pavel Exp$ $Header: RCS/lib_insch.v Revision 2.1 82/10/25 14:47:39 pavel Exp$ $Header: RCS/lib_insertln.v Revision 2.1 82/10/25 14:47:44 pavel Exp$ $Header: RCS/lib_longname.v Revision 2.1 82/10/25 14:47:49 pavel Exp$ $Header: RCS/lib_move.v Revision 2.1 82/10/25 14:47:51 pavel Exp$ $Header: RCS/lib_mvcur.v Revision 2.1 82/10/25 14:47:54 pavel Exp$ $Header: RCS/lib_mvwin.v Revision 2.1 82/10/25 14:48:10 pavel Exp$ $Header: RCS/lib_newterm.v Revision 2.1 82/10/25 14:48:14 pavel Exp$ $Header: RCS/lib_options.v Revision 2.1 82/10/25 14:48:24 pavel Exp$ $Header: RCS/lib_overlay.v Revision 2.2 82/10/28 18:10:11 pavel Exp$ $Header: RCS/lib_printw.v Revision 2.1 82/10/25 14:48:38 pavel Exp$ $Header: RCS/lib_raw.v Revision 2.1 82/10/25 14:48:42 pavel Exp$ $Header: lib_refresh.c,v 3.1 84/12/13 11:20:51 john Exp $ $Header: RCS/lib_scanw.v Revision 2.1 82/10/25 14:48:51 pavel Exp$ $Header: RCS/lib_scroll.v Revision 2.1 82/10/25 14:48:54 pavel Exp$ $Header: RCS/lib_scrreg.v Revision 2.1 82/10/25 14:49:00 pavel Exp$ $Header: RCS/lib_set_term.v Revision 2.1 82/10/25 14:49:06 pavel Exp$ $Header: RCS/lib_setup.v Revision 2.1 82/10/25 14:49:09 pavel Exp$ $Header: RCS/lib_touchwin.v Revision 2.1 82/10/25 14:49:13 pavel Exp$ $Header: RCS/lib_tparm.v Revision 2.1 82/10/25 14:49:19 pavel Exp$ $Header: lib_tputs.c,v 3.1 84/12/13 11:21:03 john Exp $ $Header: RCS/lib_trace.v Revision 2.1 82/10/25 14:49:35 pavel Exp$ $Header: RCS/lib_tstp.v Revision 2.1 82/10/25 14:49:39 pavel Exp$ $Header: RCS/lib_unctrl.v Revision 2.1 82/10/25 14:49:42 pavel Exp$ $Header: RCS/lib_vidattr.v Revision 2.1 82/10/25 14:49:45 pavel Exp$ $Header: RCS/object.v Revision 2.1 82/10/25 14:49:50 pavel Exp$ $Header: read_entry.c,v 3.1 84/12/13 11:21:14 john Exp $ $Header: RCS/terminfo.v Revision 2.1 82/10/25 14:49:59 pavel Exp$ $Header: RCS/unctrl.v Revision 2.1 82/10/25 14:50:04 pavel Exp$ Thanks in advance. Chris Liebman -- ------------ UUCP: ..!rochester!rocksanne!xrxns!liebman ARPA: liebman.lsbgegpcad@Xerox.Com ATT: 1-703-729-8000 Ex# 5187
john@frog.UUCP (John Woods, Software) (09/02/87)
In article <225@xrxns.UUCP>, liebman@xrxns.UUCP (Chris Liebman) writes: > I just blew the dust off of an old archive tape and loaded in the > public domain curses/terminfo package that Pavel Curtis posted to the net > a Loooooooong time ago. Bad news, on my 68020 4.3bsd box I get core > dumping problems when I run compile. I just recently did the same, with similar results. Here are the changes I made to (A) make it work, and (B) make lint somewhat happier with it. I don't know that these changes are either necessary or sufficient, but they appeared both in my testing. (Except for the changes to dump.c to use '\E' on output rather than '^[', which was neither). If anyone has more changes, I'd be quite happy to see them. My intent is to implement the System V Release 3 features in this terminfo package. (Yes, some of us are enslaved to AT&T, rather than to UCB...) *** comp_parse.c Wed Sep 2 11:31:33 1987 --- /src/lib/pcurses.dir/=src/comp_parse.c Wed Sep 2 11:14:06 1987 *************** *** 621,627 || fwrite(string_table, sizeof(char), next_free, fp) != next_free) return(-1); ! } --- 621,627 ----- || fwrite(string_table, sizeof(char), next_free, fp) != next_free) return(-1); ! return 0; /* jfw */ } *************** *** 799,802 } } } --- 799,803 ----- } } + return 0; /* jfw */ } *** comp_scan.c Wed Sep 2 11:31:41 1987 --- /src/lib/pcurses.dir/=src/comp_scan.c Wed Sep 2 11:14:11 1987 *************** *** 93,99 { long number; int type; ! register char ch; static char buffer[1024]; register char *ptr; int dot_flag = FALSE; --- 93,100 ----- { long number; int type; ! /* register char ch; */ ! int ch; /* jfw */ static char buffer[1024]; register char *ptr; int dot_flag = FALSE; *************** *** 340,346 register int count = 0; int number; int i; ! char ch; while ((ch = next_char()) != ',' && ch != EOF) { --- 341,347 ----- register int count = 0; int number; int i; ! /* char */int ch; while ((ch = next_char()) != ',' && ch != EOF) { *************** *** 397,403 case 'r': *(ptr++) = '\r'; break; ! case 'b': *(ptr++) = '\008'; break; case 's': *(ptr++) = ' '; break; --- 398,404 ----- case 'r': *(ptr++) = '\r'; break; ! /* was 008 */ case 'b': *(ptr++) = '\010'; break; case 's': *(ptr++) = ' '; break; *** dump.c Wed Sep 2 11:32:11 1987 --- /src/lib/pcurses.dir/=src/dump.c Wed Sep 2 11:14:28 1987 *************** *** 81,87 if (cur_column > 9 && cur_column + strlen(BoolNames[i]) + 2 > 79) { ! printf("\n\t"); cur_column = 9; } printf("%s, ", BoolNames[i]); --- 81,87 ----- if (cur_column > 9 && cur_column + strlen(BoolNames[i]) + 2 > 79) { ! printf("\n\t"); cur_column = 9; } printf("%s, ", BoolNames[i]); *************** *** 108,117 { if (_first_term.Strings[i]) { ! sprintf(buffer, "%s=%s, ", StrNames[i], ! _first_term.Strings[i]); ! expand(buffer); ! if (cur_column > 9 && cur_column + strlen(buffer) > 79) { printf("\n\t"); cur_column = 9; --- 108,117 ----- { if (_first_term.Strings[i]) { ! sprintf(buffer, "%s=%s", StrNames[i], ! _first_term.Strings[i]); ! expand(buffer); ! if (cur_column > 9 && cur_column + strlen(buffer) > 77) { printf("\n\t"); cur_column = 9; *************** *** 116,123 printf("\n\t"); cur_column = 9; } ! printf("%s", buffer); ! cur_column += strlen(buffer); } } --- 116,123 ----- printf("\n\t"); cur_column = 9; } ! printf("%s, ", buffer); ! cur_column += strlen(buffer) + 2; } } *************** *** 121,127 } } ! putchar('\n'); } } --- 121,127 ----- } } ! putchar('\n'); } } *************** *** 128,133 typedef unsigned char uchar; expand(str) uchar *str; { --- 128,136 ----- typedef unsigned char uchar; + static char escapes[] = "\033\n\r\t\b\f \\:,"; + static char maps[] = "Enrtbfs\\:,"; + expand(str) uchar *str; { *************** *** 133,139 { char buffer[1024]; int bufp; ! uchar *ptr; bufp = 0; ptr = str; --- 136,143 ----- { char buffer[1024]; int bufp; ! uchar *ptr, *p; ! extern uchar *index(); bufp = 0; ptr = str; *************** *** 139,145 ptr = str; while (*str) { ! if (*str < ' ') { buffer[bufp++] = '^'; buffer[bufp++] = *str + '@'; --- 143,153 ----- ptr = str; while (*str) { ! if ((p = index(escapes,*str)) != NULL) { ! sprintf(&buffer[bufp],"\\%c",maps[p-escapes]); ! bufp += 2; ! } ! else if (*str < ' ') { buffer[bufp++] = '^'; buffer[bufp++] = *str + '@'; *** lib_addch.c Wed Sep 2 11:32:12 1987 --- /src/lib/pcurses.dir/=src/lib_addch.c Wed Sep 2 12:53:24 1987 *************** *** 51,57 { int x, y; int newx; ! chtype ch = c; #ifdef UNDEFINED if (_tracing) --- 51,57 ----- { int x, y; int newx; ! chtype ch = c & A_CHARTEXT; #ifdef UNDEFINED if (_tracing) *** lib_addstr.c Wed Sep 2 11:32:12 1987 --- /src/lib/pcurses.dir/=src/lib_addstr.c Wed Sep 2 11:14:31 1987 *************** *** 46,52 waddstr(win, str) WINDOW *win; ! char *str; { #ifdef TRACE if (_tracing) --- 46,52 ----- waddstr(win, str) WINDOW *win; ! unsigned char *str; { #ifdef TRACE if (_tracing) *** lib_delwin.c Wed Sep 2 11:32:22 1987 --- /src/lib/pcurses.dir/=src/lib_delwin.c Wed Sep 2 11:14:43 1987 *************** *** 57,64 if (! (win->_flags & _SUBWIN)) { for (i = 0; i <= win->_maxy && win->_line[i]; i++) ! cfree(win->_line[i]); ! } cfree(win->_numchngd); cfree(win->_firstchar); --- 57,68 ----- if (! (win->_flags & _SUBWIN)) { for (i = 0; i <= win->_maxy && win->_line[i]; i++) ! free(win->_line[i]); ! } ! ! free(win->_numchngd); ! free(win->_firstchar); ! free(win->_lastchar); ! free(win->_line); ! free(win); ! } *************** *** 60,68 cfree(win->_line[i]); } - cfree(win->_numchngd); - cfree(win->_firstchar); - cfree(win->_lastchar); - cfree(win->_line); - cfree(win); - } --- 67,68 ----- free(win); } *** lib_doupdate.c Wed Sep 2 11:32:56 1987 --- /src/lib/pcurses.dir/=src/lib_doupdate.c Wed Sep 2 11:14:59 1987 *************** *** 88,94 doupdate() { int i; ! int (*oldsig)(); #ifdef TRACE if (_tracing) --- 88,96 ----- doupdate() { int i; ! #ifdef SIGTSTP ! int (*oldsig)(); ! #endif #ifdef TRACE if (_tracing) *************** *** 95,101 _tracef("doupdate() called"); #endif ! oldsig = signal(SIGTSTP, SIG_IGN); if (curscr->_clear) { --- 97,105 ----- _tracef("doupdate() called"); #endif ! #ifdef SIGTSTP ! oldsig = signal(SIGTSTP, SIG_IGN); ! #endif if (curscr->_clear) { *************** *** 132,138 fflush(SP->_ofp); ! signal(SIGTSTP, oldsig); } --- 136,144 ----- fflush(SP->_ofp); ! #ifdef SIGTSTP ! signal(SIGTSTP, oldsig); ! #endif } *** lib_getch.c Wed Sep 2 11:32:34 1987 --- /src/lib/pcurses.dir/=src/lib_getch.c Wed Sep 2 12:55:16 1987 *************** *** 124,130 kgetch() { struct try *ptr; ! char ch; char buffer[10]; /* Assume no sequences longer than 10 */ char *bufp = buffer; int (*oldsig)(); --- 124,130 ----- kgetch() { struct try *ptr; ! int ch; /* jfw: was char */ char buffer[10]; /* Assume no sequences longer than 10 */ char *bufp = buffer; int (*oldsig)(); *** lib_insch.c Wed Sep 2 11:32:37 1987 --- /src/lib/pcurses.dir/=src/lib_insch.c Wed Sep 2 12:56:06 1987 *************** *** 51,56 chtype *temp1, *temp2; chtype *end; #ifdef TRACE if (_tracing) _tracef("winsch(%o,'%c') called", win, c); --- 51,57 ----- chtype *temp1, *temp2; chtype *end; + c &= A_CHARTEXT; #ifdef TRACE if (_tracing) _tracef("winsch(%o,'%c') called", win, c); *** lib_newterm.c Wed Sep 2 11:32:43 1987 --- /src/lib/pcurses.dir/=src/lib_newterm.c Wed Sep 2 11:14:55 1987 *************** *** 108,114 newscr->_clear = TRUE; curscr->_clear = FALSE; ! signal(SIGTSTP, tstp); if (stdscr == NULL) if ((stdscr = newwin(lines, columns, 0, 0)) == ERR) --- 108,116 ----- newscr->_clear = TRUE; curscr->_clear = FALSE; ! #ifdef SIGTSTP ! signal(SIGTSTP, tstp); ! #endif if (stdscr == NULL) if ((stdscr = newwin(lines, columns, 0, 0)) == ERR) *** lib_newwin.c Wed Sep 2 11:32:45 1987 --- /src/lib/pcurses.dir/=src/lib_newwin.c Wed Sep 2 11:14:55 1987 *************** *** 75,86 == NULL) { for (j = 0; j < i; j++) ! cfree(win->_line[j]); ! ! cfree(win->_firstchar); ! cfree(win->_lastchar); ! cfree(win->_line); ! cfree(win); return(ERR); } --- 75,86 ----- == NULL) { for (j = 0; j < i; j++) ! free(win->_line[j]); ! ! free(win->_firstchar); ! free(win->_lastchar); ! free(win->_line); ! free(win); return(ERR); } *************** *** 161,167 if ((win->_line = (chtype **) calloc(num_lines, sizeof (chtype *))) == NULL) { ! cfree(win); return(ERR); } --- 161,167 ----- if ((win->_line = (chtype **) calloc(num_lines, sizeof (chtype *))) == NULL) { ! free(win); return(ERR); } *************** *** 168,175 if ((win->_firstchar = calloc(num_lines, sizeof(short))) == NULL) { ! cfree(win); ! cfree(win->_line); return(ERR); } --- 168,175 ----- if ((win->_firstchar = calloc(num_lines, sizeof(short))) == NULL) { ! free(win); ! free(win->_line); return(ERR); } *************** *** 176,184 if ((win->_lastchar = calloc(num_lines, sizeof(short))) == NULL) { ! cfree(win); ! cfree(win->_line); ! cfree(win->_firstchar); return(ERR); } --- 176,184 ----- if ((win->_lastchar = calloc(num_lines, sizeof(short))) == NULL) { ! free(win); ! free(win->_line); ! free(win->_firstchar); return(ERR); } *************** *** 185,194 if ((win->_numchngd = calloc(num_lines, sizeof(short))) == NULL) { ! cfree(win); ! cfree(win->_line); ! cfree(win->_firstchar); ! cfree(win->_lastchar); return(ERR); } --- 185,194 ----- if ((win->_numchngd = calloc(num_lines, sizeof(short))) == NULL) { ! free(win); ! free(win->_line); ! free(win->_firstchar); ! free(win->_lastchar); return(ERR); } *** lib_scanw.c Wed Sep 2 11:33:05 1987 --- /src/lib/pcurses.dir/=src/lib_scanw.c Wed Sep 2 11:15:03 1987 *************** *** 78,83 char *fmt; int args; { return(move(y, x) == OK ? sscanw(stdscr, fmt, &args) : ERR); } --- 78,85 ----- char *fmt; int args; { + /* is this right? jfw */ + #define sscanw sscans return(move(y, x) == OK ? sscanw(stdscr, fmt, &args) : ERR); } *************** *** 103,108 ** will have to modify this routine to use the interface that your ** "sscanf" uses. */ static sscans(win, fmt, args) --- 105,123 ----- ** will have to modify this routine to use the interface that your ** "sscanf" uses. */ + #ifdef unos + static Getc(bufp) unsigned char **bufp; { + unsigned char c = **bufp; + if (c == 0) return EOF; + (*bufp)++; + return c; + } + static Peekc(bufp) unsigned char **bufp; { + unsigned char c = **bufp; + if (c == 0) return EOF; + return c; + } + #endif static sscans(win, fmt, args) *************** *** 110,115 char *fmt; int *args; { char buf[100]; FILE junk; --- 125,131 ----- char *fmt; int *args; { + #ifndef unos char buf[100]; FILE junk; *************** *** 122,125 junk._cnt = strlen(buf); return(_doscan(&junk, fmt, args)); ! } --- 138,145 ----- junk._cnt = strlen(buf); return(_doscan(&junk, fmt, args)); ! #else ! unsigned char buf[256], *bufp = buf; if (wgetstr(win, buf) == ERR) return(ERR); *************** *** 124,125 return(_doscan(&junk, fmt, args)); } --- 141,148 ----- #else unsigned char buf[256], *bufp = buf; + if (wgetstr(win, buf) == ERR) + return(ERR); + return gscanfl(Getc, Peekc, &bufp, fmt, args); + #endif + } *** lib_tparm.c Wed Sep 2 11:33:18 1987 --- /src/lib/pcurses.dir/=src/lib_tparm.c Wed Sep 2 11:15:09 1987 *************** *** 26,31 * tparm.c * * $Log: RCS/lib_tparm.v $ * Revision 2.1 82/10/25 14:49:19 pavel * Added Copyright Notice * --- 26,34 ----- * tparm.c * * $Log: RCS/lib_tparm.v $ + * Revision 2.2 87/08/28 22:35:44 jfw + * Lint objects to npush(npop()), with good reason (evaluation order undef.d)! + * * Revision 2.1 82/10/25 14:49:19 pavel * Added Copyright Notice * *************** *** 253,259 break; case '+': ! npush(npop() + npop()); break; case '-': --- 256,263 ----- break; case '+': ! /* npush(npop() + npop()); */ ! y = npop(); x = npop(); npush(y + x); break; case '-': *************** *** 263,269 break; case '*': ! npush(npop() * npop()); break; case '/': --- 267,274 ----- break; case '*': ! /* npush(npop() * npop()); */ ! y = npop(); x = npop(); npush(y * x); break; case '/': *************** *** 279,285 break; case '&': ! npush(npop() & npop()); break; case '|': --- 284,291 ----- break; case '&': ! /* npush(npop() & npop()); */ ! y = npop(); x = npop(); npush(y & x); break; case '|': *************** *** 283,289 break; case '|': ! npush(npop() | npop()); break; case '^': --- 289,296 ----- break; case '|': ! /* npush(npop() | npop()); */ ! y = npop(); x = npop(); npush(y | x); break; case '^': *************** *** 287,293 break; case '^': ! npush(npop() ^ npop()); break; case '=': --- 294,301 ----- break; case '^': ! /* npush(npop() ^ npop()); */ ! y = npop(); x = npop(); npush(y ^ x); break; case '=': *************** *** 309,315 break; case '!': ! npush(! npop()); break; case '~': --- 317,324 ----- break; case '!': ! /* npush(! npop()); */ ! y = npop(); npush(!y); break; case '~': *************** *** 313,319 break; case '~': ! npush(~ npop()); break; case 'i': --- 322,329 ----- break; case '~': ! /* npush(~ npop()); */ ! y = npop(); npush(~y); break; case 'i': *** lib_trace.c Wed Sep 2 11:33:23 1987 --- /src/lib/pcurses.dir/=src/lib_trace.c Wed Sep 2 11:15:09 1987 *************** *** 99,104 char buffer[256]; char *bufp = buffer; while (*fmt) { if (*fmt == '%') --- 99,105 ----- char buffer[256]; char *bufp = buffer; + if (!_tracing) return; while (*fmt) { if (*fmt == '%') *** lib_tstp.c Wed Sep 2 11:33:24 1987 --- /src/lib/pcurses.dir/=src/lib_tstp.c Wed Sep 2 11:15:10 1987 *************** *** 45,51 #include "curses.priv.h" #include <signal.h> ! static outc(ch) char ch; --- 45,51 ----- #include "curses.priv.h" #include <signal.h> ! #ifdef SIGTSTP static outc(ch) char ch; *************** *** 52,58 { putc(ch, SP->_ofp); } ! tstp() { --- 52,58 ----- { putc(ch, SP->_ofp); } ! #endif tstp() { *************** *** 56,61 tstp() { #ifdef TRACE if (_tracing) _tracef("tstp() called"); --- 56,62 ----- tstp() { + #ifdef SIGTSTP #ifdef TRACE if (_tracing) _tracef("tstp() called"); *************** *** 70,73 flushinp(); tputs(enter_ca_mode, 1, outc); wrefresh(curscr); } --- 71,75 ----- flushinp(); tputs(enter_ca_mode, 1, outc); wrefresh(curscr); + #endif /* TSTP */ } *** read_entry.c Wed Sep 2 11:33:29 1987 --- /src/lib/pcurses.dir/=src/read_entry.c Wed Sep 2 11:15:13 1987 *************** *** 134,140 if ((header.name_size + header.bool_count) % 2 != 0) read(fd, &ch, 1); ! if (must_swap()) read(fd, ptr->Numbers, min(NUMCOUNT, header.num_count * 2)); else { --- 134,140 ----- if ((header.name_size + header.bool_count) % 2 != 0) read(fd, &ch, 1); ! if (!must_swap()) read(fd, ptr->Numbers, min(NUMCOUNT, header.num_count * 2)); else { *************** *** 143,148 read(fd, bytebuf, 2); if (bytebuf[0] == 0377 && bytebuf[1] == 0377) ptr->Numbers[i] = -1; else ptr->Numbers[i] = bytebuf[0] + 256 * bytebuf[1]; } --- 143,150 ----- read(fd, bytebuf, 2); if (bytebuf[0] == 0377 && bytebuf[1] == 0377) ptr->Numbers[i] = -1; + else if (bytebuf[0] == 0376 && bytebuf[1] == 0377) + ptr->Numbers[i] = -2; else ptr->Numbers[i] = bytebuf[0] + 256 * bytebuf[1]; } *************** *** 183,189 for (i = 0; i < numread / 2; i++) { ptr->Strings[i + cur_string] = ! (offset_buf[i].byte[0] == 0377 && offset_buf[i].byte[1] == 0377) ? 0 : ((offset_buf[i].byte[0] + 256*offset_buf[i].byte[1]) --- 185,192 ----- for (i = 0; i < numread / 2; i++) { ptr->Strings[i + cur_string] = ! ((offset_buf[i].byte[0] == 0377 || ! offset_buf[i].byte[0] == 0376) && offset_buf[i].byte[1] == 0377) ? 0 : ((offset_buf[i].byte[0] + 256*offset_buf[i].byte[1]) *************** *** 195,201 for (i = 0; i < numread / 2; i++) { ptr->Strings[i + cur_string] = ! (offset_buf[i].number == -1) ? 0 : --- 198,205 ----- for (i = 0; i < numread / 2; i++) { ptr->Strings[i + cur_string] = ! (offset_buf[i].number == -1 || ! offset_buf[i].number == -2) ? 0 : *************** *** 244,245 return(test.byte[1]); } --- 248,250 ----- return(test.byte[1]); } -- John Woods, Charles River Data Systems, Framingham MA, (617) 626-1101 ...!decvax!frog!john, ...!mit-eddie!jfw, jfw@eddie.mit.edu ROBOTS!! Underpaid robots from hyper-space INSPECTED my DELICATE WASHABLES!!
agnew@trwrc.UUCP (R.A. Agnew) (09/04/87)
In article <1596@frog.UUCP> john@frog.UUCP (John Woods, Software) writes: > >My intent is to implement the System V Release 3 features in this terminfo package. > Is there anything in V.3 that would make terminfo/curses/tic etc. incompatible with V.2?
rlk@chinet.UUCP (Richard Klappal) (09/10/87)
In article <225@xrxns.UUCP> liebman.lsbgegpcad@Xerox.Com (Chris Liebman) writes: >I just blew the dust off of an old archive tape and loaded in the >public domain curses/terminfo package that Pavel Curtis posted to the net >a Loooooooong time ago. Bad news, on my 68020 4.3bsd box I get core >dumping problems when I run compile. I have not looked into this yet >and I thought I would post this to see if anyone has patches (to the original I don't have the exact fix in front of me, but check all of the comparisons that determine whether or not byte swapping is needed. One of them has the resulting then/else code reversed, meaning that for the one section, byte-swapping takes place when it shouldn't, and vice versa. Fix that and it should work. I have it working (as far as I have tested) on my 68000 based Fortune V7/BSD4.? system. -- --- UUCP: ..!ihnp4!chinet!uklpl!rlk || MCIMail: rklappal || Compuserve: 74106,1021 ..!ihnp4!ihu1h!rlk ---