Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!munnari!mulga!jz
From: jz@mulga.oz (Justin Zobel)
Newsgroups: comp.sources.bugs
Subject: vmail bug+fix
Message-ID: <2441@mulga.oz>
Date: Thu, 26-Nov-87 18:42:05 EST
Article-I.D.: mulga.2441
Posted: Thu Nov 26 18:42:05 1987
Date-Received: Sun, 29-Nov-87 20:53:23 EST
Organization: Comp Sci, Melbourne Uni, Australia
Lines: 63

The commands 'p' and 'n' dump core if used to page past the end of the
folder list.  Following is a fix.

									jz


*** page.c.orig	Thu Nov  5 11:14:46 1987
--- page.c	Thu Nov  5 11:23:21 1987
***************
*** 174,180 ****
  
  	for( ; count > 0 ; count--) {
  			/* skip other pages of current folder */
! 		for(f=p ; p->next->name == f->name ; p=p->next)
  			;
  		if(p->next == (folder) NULL) {
  			addstatus("last folder", true);
--- 174,180 ----
  
  	for( ; count > 0 ; count--) {
  			/* skip other pages of current folder */
! 		for(f=p ; p->next && p->next->name == f->name ; p=p->next)
  			;
  		if(p->next == (folder) NULL) {
  			addstatus("last folder", true);
***************
*** 219,227 ****
  
  	for( ; count > 0 ; count--) {
  			/* skip other pages of current folder */
! 		for(f=p ; p->prev->name == f->name ; p=p->prev)
  			;
! 		if(curflr->prev == (folder) NULL) {
  			addstatus("first folder", true);
  			break;
  		} else {
--- 219,227 ----
  
  	for( ; count > 0 ; count--) {
  			/* skip other pages of current folder */
! 		for(f=p ; p->prev && p->prev->name == f->name ; p=p->prev)
  			;
! 		if(p->prev == (folder) NULL) {
  			addstatus("first folder", true);
  			break;
  		} else {
***************
*** 243,249 ****
  			addstatus("can't go back that many folders", true);
  		else {
  				/* skip other pages of current folder */
! 			for(f=p ; p->prev->name == f->name ; p=p->prev)
  				;
  			alternate = curflr;
  			curflr = p;
--- 243,249 ----
  			addstatus("can't go back that many folders", true);
  		else {
  				/* skip other pages of current folder */
! 			for(f=p ; p->prev && p->prev->name == f->name ; p=p->prev)
  				;
  			alternate = curflr;
  			curflr = p;