Commit Graph

29 Commits

Author SHA1 Message Date
ache
3b7b6171d8 tputs: (char) -> (int) 1994-12-10 23:02:33 +00:00
ache
43a20f003f Fix tputs declaration 1994-12-09 21:59:06 +00:00
ache
1d76dd7613 Fix scroll bug bringed by 'vi <several_small_files>'
and :n command then. :prev bug still exists because it syscons
bug itself, I work on it.
1994-11-21 14:16:31 +00:00
ache
2c9c58ec9d Add const to termcap prototypes to help libg++ 2.6.1 compiling,
this change must not affect other curses pgms
1994-11-04 15:14:03 +00:00
ache
600ce2885e Finally move DB declaration under _CURSES_PRIVATE 1994-10-28 23:38:18 +00:00
ache
872e368581 Continue previous fix still 1994-10-28 23:27:57 +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
79950c0308 Missed one reference to the DB variable. 1994-10-28 21:53:17 +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
9e3f379638 SHARED_LDADD --> LDADD
cmp redirection removed
1994-10-12 01:57: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
82086688f2 Disable direct ioctls to /dev/tty, search only stdin/stdout
and don't return error, if non-terminals. This fix allows curses
to work into full duplex pipes under control of main program,
like good old curses does.
1994-10-03 12:58:05 +00:00
ache
b035e6b806 Fix bug in %i format, second argument not incremented 1994-09-24 14:16:04 +00:00
ache
58acd4e66c Fix bug with scroll region parameters (x changed to y) 1994-09-24 14:15:16 +00:00
ache
a96fe421a5 Attention to all cc hackers, here workaround for gcc 2.6.0
optimizer bug (old code works without -O and don't works with -O)
old !(x & y) != !(a & b) changed to !!(x & y) != !!(a & b)
1994-09-22 03:58:43 +00:00
ache
445e6edeb6 Fix mvcur typo bug from my previous fix 1994-09-22 03:09:04 +00:00
ache
e7c03dbddd Subwin code forget to subtract orig->beg{x,y} cause SEGV
Submitted by: derek@free.org & ache
1994-09-12 11:41:29 +00:00
ache
8069160004 Bug fixed:
when refreshing standouted line curses outputs SO for all characters
Submitted by: ZW6T-KND@j.asahi-net.or.jp
1994-09-07 16:52:33 +00:00
ache
95e0de101d SHARED_LDADD added 1994-08-28 21:48:11 +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
dd3aeac1b0 More stuff from the latest curses. Really minor this time.
Reviewed by:	Sean Eric Fagan
1994-08-13 23:23:53 +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
wollman
ac2dffffaf Make it work with our make macros. 1994-08-05 01:42:04 +00:00
rgrimes
be22b15ae2 BSD 4.4 Lite Lib Sources 1994-05-27 05:00:24 +00:00