Russ Cox 50ababbd55 acme: fix bufread crash due to typing-point scrolling
Acme tracks the most recent typing insertion point and
the home and end keys stop there on their way
up to the top or down to the bottom of the file.
That point should be iq1, and it should be adjusted
properly so that it's always between 0 and t->file->b.nc inclusive.
(This is all code from an external contributor, years old at this
point but new since Plan 9.)

Somehow, sometimes iq1 ends up a little beyond b.nc,
and when passed to textbacknl it crashes acme in bufread.
I can't see how that can happen but if it does, avoid the crash.

It's tempting to pull the insertion point code out entirely
but this is a little less invasive and should fix things for now.

TBR=rsc
https://codereview.appspot.com/107730043
2014-06-03 00:16:48 -04:00
2012-03-05 16:36:31 -05:00
2014-02-27 23:17:47 -05:00
2005-07-18 22:52:05 +00:00
2005-09-13 01:24:50 +00:00
2012-11-26 00:13:04 -05:00
2014-02-24 01:21:48 -05:00
2005-02-13 22:09:54 +00:00
2009-04-30 07:28:37 -07:00
2007-11-27 15:39:06 -05:00
2004-04-21 23:43:46 +00:00
2005-01-13 04:56:07 +00:00
2005-01-27 19:28:22 +00:00
2007-11-27 15:39:06 -05:00
2008-05-10 13:38:21 -04:00
2005-11-25 13:18:11 +00:00
2009-04-30 08:30:49 -07:00
2005-11-25 13:18:11 +00:00
2013-08-13 12:46:38 -04:00
2005-11-28 16:36:57 +00:00
2005-08-31 04:00:14 +00:00

This is a port of many Plan 9 libraries and programs to Unix.

* Installation

To install, run ./INSTALL.  It builds mk and then uses mk to
run the rest of the installation.  

For more details, see install(1), at install.txt in this directory
and at http://swtch.com/plan9port/man/man1/install.html.

* Documentation

See http://swtch.com/plan9port/man/ for more documentation.
(Documentation is also in this tree, but you need to run
a successful install first.  After that, "9 man 1 intro".)

Intro(1) contains a list of man pages that describe new features
or differences from Plan 9.

* Helping out

If you'd like to help out, great!  The TODO file contains a small list.

If you port this code to other architectures, please share your changes
so others can benefit.

Please use diff -u or CVS (see below) to prepare patches.

* CVS

You can use CVS to keep your local copy up-to-date as we make 
changes and fix bugs.  See the cvs(1) man page here ("9 man cvs")
for details on using cvs.

* Contact

Russ Cox <rsc@swtch.com>
Languages
C 91.6%
Roff 1.4%
C++ 1.3%
Yacc 1.2%
Shell 1.2%
Other 3%