diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | Src/Zle/complist.c | 8 | ||||
-rw-r--r-- | Src/Zle/zle_tricky.c | 7 |
3 files changed, 18 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog index 0c0ad4985..50c4c3090 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-08-10 Peter Stephenson <pws@csr.com> + + * 22597: Src/Zle/complist.c, Src/Zle/zle_tricky.c: back off + two hunks of 22594 which appeared to both unnecessary and + incorrect. + 2006-08-10 Barton E. Schaefer <schaefer@brasslantern.com> * 22595: Src/Zle/complist.c: paranoid bounds-checking on some diff --git a/Src/Zle/complist.c b/Src/Zle/complist.c index 8f1a24385..c90af8480 100644 --- a/Src/Zle/complist.c +++ b/Src/Zle/complist.c @@ -1055,8 +1055,12 @@ compprintfmt(char *fmt, int n, int dopr, int doesc, int ml, int *stop) if (stat && n) mfirstl = -1; - mlprinted = l + (cc ? ((cc-1) / columns) : 0); - return mlprinted; + /* + * *Not* subtracting 1 from cc at this point appears to be + * correct. C.f. printfmt in zle_tricky.c. + */ + mlprinted = l + (cc / columns); + return mlprinted; } /* This is like zputs(), but allows scrolling. */ diff --git a/Src/Zle/zle_tricky.c b/Src/Zle/zle_tricky.c index 768d7e34f..fbe04ca5d 100644 --- a/Src/Zle/zle_tricky.c +++ b/Src/Zle/zle_tricky.c @@ -2175,7 +2175,12 @@ printfmt(char *fmt, int n, int dopr, int doesc) putc(' ', shout); } } - return l + ((cc-1) / columns); + /* + * Experiments suggest that at this point not subtracting 1 from + * cc is correct, i.e. if just misses wrapping we still add 1. + * (Why?) + */ + return l + (cc / columns); } /* This is used to print expansions. */ |