aboutsummaryrefslogtreecommitdiff
path: root/plumb/basic
AgeCommit message (Collapse)AuthorFilesLines
2018-11-13plumb/basic: avoid wrap around in file:1:2 (#158)Martin Kühl1-2/+2
Fixes #122, #140. As reported in #122, `file:1:1` moves to the end of the file, and `file:1:2` fails with “address out of range”. I’ll use file:2:3 as an example so we can tell the line and column number apart. What’s happening is this: plumb/basic matches `2:3` using twocolonaddr (from plumb/fileaddr), then sets addr to `2-#1+#3` (the 1 is constant and was introduced because column numbers are 1-based). Acme interprets this in three steps: 1. find the range (q0, q1) that contains line 2 2. create the range (q2, q2) where q2 = q0 - 1 3. create the range (q3, q3) where q3 = q2 + 3 The second step has a branch where if q0 == 0 and 1 > 0 (remember that 1 is constant and comes form plumb/basic), q0 is set to the end of the file. This makes addressing things at the end of the file easier. The problem then is that if we select line 1, which starts at the beginning of the file, q0 is always 0 and the branch in step 2) will always be used. `1:1` is interpreted as `1-#1+#1` which starts at 0, wraps around to the end of the file, then moves 1 character backwards and then forwards again, ending at the end of the file. `1:2` is interpretes as `1-#1+#2` which starts at 0, wraps around to the end od the file, then moves 1 character backwards and tries moving 2 characters forwards beyond the end of the file, resulting in the out of range error. In #140 @rsc proposed transforming `:X:Y` into `:X-#0+#Y-#1` instead since that avoids wrapping around by not moving backwards at first. This change modifies `plumb/basic` to do that.
2018-11-12plumb: allow @ in file namesRuss Cox1-9/+9
Helps Go module download cache, Upspin, maybe others.
2013-10-22acme: scroll a directory window when navigating if:Rob Pike1-2/+11
- the cursor is on the last line - the navigation would put the cursor over the tag of the following text R=rsc CC=smckean83 https://codereview.appspot.com/15280045
2011-08-31plumb: character offsets start at 1, not 0Russ Cox1-1/+1
x:10:1 is the beginning of line 10 R=rsc http://codereview.appspot.com/4960049
2010-10-27plumb: column numbers in file addressRuss Cox1-0/+9
R=rsc http://codereview.appspot.com/2776042
2009-05-17plumb: change inferno module path to /usr/inferno/module (Anthony Sorace)Russ Cox1-2/+2
2008-04-17plumbing: move email rule below file rules (Bengt Kleberg)Russ Cox1-7/+7
2007-04-03plumb all urls, not just images (TheWhiteTiger)rsc1-11/+1
2006-07-05allow _ - / in header file namesrsc1-4/+4
2006-06-06use 9 page instead of pagersc1-4/+4
2005-01-11add $plan9 variablersc1-7/+6
2004-08-22call wmail to send mail.rsc1-1/+2
2004-08-11plumbing foo.html now sends it to the editor --rsc1-5/+24
this is more in keeping with plan 9 behavior. plumbing file:foo.html adds the appropriate full path and sends it to the web browser.
2004-06-10use psvrsc1-1/+1
2004-06-09plumb urls and html to web browsersrsc1-10/+9
2004-05-14More little bug fixesrsc1-1/+1
2004-04-21small fixesrsc1-3/+2
2004-04-19push man pages through nobs.rsc1-1/+1
2004-03-02Remove a debugging print, more cleanup.rsc1-1/+1
2004-03-02Little tweaks and documentation.rsc1-4/+7
2003-12-11Add support for user-level 9P servers/clients and various bug fixes to go ↵rsc1-14/+12
with them.
2003-12-04.rsc1-2/+22
2003-12-02B that knows about address syntax,rsc1-3/+3
change plumber to use it.
2003-12-02More X11 snarf tweaks.rsc1-3/+5
Will we ever finish?
2003-11-23add plumbing files.rsc1-0/+105