Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site cadre.ARPA Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!think!harvard!seismo!rochester!cmu-cs-pt!cadre!km From: km@cadre.ARPA (Ken Mitchum) Newsgroups: net.micro.pc,net.micro,net.sources Subject: faster paging in JOVE Message-ID: <513@cadre.ARPA> Date: Tue, 17-Sep-85 17:45:34 EDT Article-I.D.: cadre.513 Posted: Tue Sep 17 17:45:34 1985 Date-Received: Fri, 20-Sep-85 04:05:17 EDT Distribution: net Organization: Decision Systems Lab., University of Pittsburgh Lines: 80 Xref: watmath net.micro.pc:5330 net.micro:12020 net.sources:3479 After a summer off doing what I'm paid to do, I have again returned to Jove. I have made many changes, which I will try to document on the net at some point. Here is an easy one you might want: ---------------------------------------------------------------------------- 1) The commands "next-page" and "prev-page" work very slowly in the Jove/msdos as originally written, especially when using the 43 line screen. The problem is that line inserts/deletes, while being quicker than screen rewrites in most situations, are actually slower to figure out while moving to the next page. The real solution is to recode DoIDline() in disp.c. However, the following kludge works just as well, and takes little brains: A) Partway through DoIDline() in disp.c, replace the following lines: if (!CanScroll) CanScroll =1; return; /* We should never have been called! */ with: if (!CanScroll) { #ifndef UNIX CanScroll =1; #endif return; /* We should never have been called! */ } B) Replace the functions NextPage() and PrevPage() in draw.c with these versions: NextPage() { LINE *newline; if (exp_p) UpScroll(); else { newline = next_line(curwind->w_top, curwind->w_height + curwind->w_height/3); curwind->w_line = newline; DotTo(newline, 0); #ifndef UNIX CanScroll = 0; #endif } } PrevPage() { LINE *newline; if (exp_p) DownScroll(); else { newline = prev_line(curwind->w_top, curwind->w_height/3); curwind->w_line = newline; DotTo(newline, 0); #ifndef UNIX CanScroll = 0; #endif } } --------------------------------------------------------------------- 2) I have rewritten "temp.c" and am in the process of extending Jove's line storage to a virtual scheme using both memory and a tempfile. The result requires more memory, but is faster, particularly when using Jove with a floppy-based system. In addition, there is no code from "vi" involved. I will post information on this in the future. -Ken Mitchum (km@cadre.arpa) Brought to you by Super Global Mega Corp .com