Commit Graph

17 Commits

Author SHA1 Message Date
jkh
c4d4a99d31 General -Wall warning cleanup, part I.
Submitted-By: Kent Vander Velden <graphix@iastate.edu>
1996-07-12 18:57:58 +00:00
ache
e5b7520924 Remove _set_ospeed, it is done in tgetent now
Remove ospeed redefinition from header file
1995-08-05 21:48:16 +00:00
ache
c69710868e Eliminate ospeed switch with new _set_ospeed 1995-08-04 06:50:12 +00:00
rgrimes
f05428e4cd Remove trailing whitespace. 1995-05-30 05:51:47 +00:00
dfr
1b9498b875 Use __tty_fileno instead of STDERR_FILENO when detecting window size
changes
Reviewed by:	Bob Willcox <bob@obiwan.pmr.com>
1995-03-28 22:20:19 +00:00
ache
600ce2885e Finally move DB declaration under _CURSES_PRIVATE 1994-10-28 23:38:18 +00:00
ache
eed5b939fd After some thinking better place to fix appearse curses again, not
vi(1). Remove DB from curses.h and still implement it provide
this variable for programs that expect it in any case.
1994-10-28 23:27:00 +00:00
ache
1f66985bdc Rename cDB to DB back like old good BSD curses always does,
check ultrix for example. Real place for fix will be vi(1),
wait for next commit.
1994-10-28 23:18:26 +00:00
phk
c9a9505ff1 Renamed a variable from 'DB' to 'cDB', so the vi(1) will compile again.
Nice to see that people test their fixes before they commit :-(
1994-10-28 21:39:58 +00:00
ache
75c7aa84fb Previous commit was incompleted, yet one step required 1994-10-27 23:13:53 +00:00
ache
fc43e31616 Fix scroll bug bringed by vi(1), from phk's flame
(I still wait for apologies)
1994-10-27 22:36:56 +00:00
ache
dbd2b6665c Back out ospeed change (why all bugs discovered immediately _after_ commits
and no one before?)
1994-10-06 21:05:23 +00:00
ache
ee2f55bcfa Enable PC back, because it is ouside visible 1994-10-06 20:44:51 +00:00
ache
8ef9b59f42 ospeed/PC code ifdefed out, our libtermcap use usleep now 1994-10-06 20:36:34 +00:00
ache
b942ce9760 newwin.c
o __FULLINE added for AL/DL/CS optimization with __noqch.

refresh.c

o Attributes does not turned off before clearing screen, cause
  highlighted screen.
o Proper usage of 'affcnt' tputs parameter, affects terminals with
  padding.
o make AL/DL/CS optimize not only for __FULLWIN but for __FULLLINE.
  ATTENTION: original code works _only_for_ FULLWIN, i.e. if you
  use two FULLLINE windows like in 'talk', you have full slow repaint with
  original code, I enhance this thing. All other fixes marked
  with phrase 'wrong for non-full windows' or WFNFW is continue of this fix.
  I rewrite scroll code too for proper working (see below and tty.c
  changes).
o DEBUG code always use 'i' index from 0 to curscr->maxy instead of
  'i - win->begy', fixed
o check added into DEBUG to be shure that index inside current window.
o ->hash assigment code is WFNFW (forget win->begy).
o when CE usage required, and last spaces number counted, code don't check
  attributes, so last standouted space will be incorrectly cleared.
o cep (start pointer) forget to add win->begy/win->begx, code WFNFW.
o clsp (last space) wrong in two places at once: forget to add win->begy
  (WFNFW) and incorrectly use 'win->begx * __LDATASIZE' in pointer
  arithmetics.
o clsp check incorrect: was 'clsp < win->maxx * __LDATASIZE', need to
  be 'clsp < win->maxx
o Attributes does not turned off before clearing end of line, cause
  highlighted end of line.
o When find how many lines from the top/bottom of the screen are unchanged,
  code always forget '- win->begy', WFNFW.
o NO_JERKINESS code forgets to add win->begy, WFNFW.
o Curw & Curs changed in comment description
o In search for the largest block of text not changed forget to add
  '- win->begy' (several places), WFNFW.
o Forget to add '- win->begy' for non-dirty lines, WFNFW.
o touchline forget to add '- win->begy', WFNFW.
o rewrite scrolln():
	* remove win parameter, we deal with whole screen (curscr) now;
	* use NL or '\n' instead of sf, it is faster in any case;
	  (imagine: cat written on curses now use '\n' for scroll
	  like standard cat, no ugly escapes)
	* use dl (if present) instead of DL, if abs(n) == 1, the same
	  about al/sr, it is faster;
	* change win->maxy to 'curscr->maxy - 1', we deal with whole screen
	  here, WFNFW.
	* SF can be correctly issued only if cursor at bottom of scroll
	  region (whole screen region included too), fix this;
	* sr/SR can be correctly issued only if cursor at top of scroll
	  region (whole screen region included too), fix this;
	* use pre-calculaded (in setterm.c) __usecs variable to determine
	  usage of CS or AL/DL;
	* completely rewrite scroll region stuff using __set_scroll_region
	  from tty.c (see below);

tty.c

o Added __set_scroll_region function which set CS region and stays
  back in old position. Use SC/RC (save/restore cursor) if possible,
  else use HO and __mvcur.

o __startwin: added __set_scroll_region(whole screen) at program
  startup, if __usecs;

o endwin: added __set_scroll_region(whole screen) at program
  exit, if __usecs;

o Fix all tc{set/get}attrs to works properly, when stdin redirected,
  use /dev/tty in this case (needed for some applications).

setterm.c

o Add new variable __usecs, if (!AL/al || !Dl/dl) && CS && (SC && RC || HO)
  (save/restore cursor used in __set_scroll_region in tty.c).

o Set __noqch, if !__usecs && (!AL/al || !DL/dl).

o Proper ospeed initialization for tputs, i.e. if speed == B9600,
  ospeed = 13

curses.c

o Add __usecs variable that indicates usage of CS (if AL/DL absent).

curses.h

o Allow translation with applications which includes <sgtty.h>,
  undef BXXX manually to avoid redefinition and include termios
  to define proper ones.

o Define old-style names curx/begx/maxx/etc. for old applications.
  Define _tty like __baset too.

o Typedef SGTTY type for old applications (SGTTY == struct termios).

o wstandout/wstandend should be int and not char*, some old
  applications relay on this fact. See standout.c too.

o __FULLINE added indicated line width == terminal width, needed
  for refresh using AL/DL/CS with __noqch, see refresh.c changes.

o Add extern __usecs variable that indicates usage of CS (if AL/DL absent).

o Add __set_scroll_region() prototype, see tty.c and refresh.c changes
  for details.

o Change winch() character mask from 0177 to 0377, we don't need to
  strip high bit on national characters.

o Allow translate on systems with _BSD_VA_LIST_ undefined, such as
  FreeBSD 1.1.5.1

o __tty_fileno added to allows work with stdin redirected, see tty.c

o Privately declare tputs (..., void) and externally tputs(..., int),
  many applications require this. Maybe not nice thing, but needed.

o Remove _putchar definition and replace it to proper _putchar
  prototype, some old apps declares: 'extern int _putchar()'
  and don't even include curses.h in such modules. See putchar.c

cr_put.c

o __mvcur: if destline == destcol && outline == outcol do nothing,
  i.e. don't issue any escapes.

o Proper usage of 'affcnt' tputs parameter, affects terminals with
  padding.

cur_hash.c

o Change char->unsigned char for proper sum 8-bit national characters.

getch.c

o check for inp == EOF added, don't add EOF to window.

getstr.c

o check for EOF added, don't add EOF to str.

insertln.c

o add cast to (int) in comparation of y and win->cury, this produce
  big number (cast to (unsigned)) if y < 0

tstp.c

o Fix all tc{set/get}attrs to works properly, when stdin redirected,
  use /dev/tty in this case (needed for some applications).

o add tstp() function for compatibility, some applications wants it.

standout.c

o Some old applications relay in fact that wstandout/wstandend
  returns int instead of char*, change return type to OK/ERR.

putchar.c

o Add _putchar function (which calls __cputchar),
  some old apps declares: 'extern int _putchar()'
  and don't even include curses.h in such modules.
1994-08-28 21:47:13 +00:00
sef
75d40fe0bd Brought the 2.0 libcurses up-to-date with the current 4.4 stuff, as
distributed in keith bostic's nvi (got his permission first).  Most changes
are cosmetic, but a few errors (mostly in tty..c) were cleared up.

Reviewed by:	Sean Eric Fagan
1994-08-13 23:15:38 +00:00
rgrimes
be22b15ae2 BSD 4.4 Lite Lib Sources 1994-05-27 05:00:24 +00:00