solomon@speedy.cs.wisc.edu (Marvin Solomon) (05/08/88)
I set discovered the "pointnew" option in my .elmrc with the following
comment:
# start up by pointing to the first new message received, if possible
pointnew = OFF
I figured that's just what I wanted, but was dismayed to find that changing
it to "ON" made no difference! Upon searching the code, I discovered that
this option is silently ignored if your sorting order is anything other
than RECEIVED_DATE. I see no good reason for this restriction other than
that the algorithm for implementing the option only works for RECEIVED_DATE
order: While reading in the mailbox, the code sets "current" to the first
message with a "new" status. The following patch, while not exactly
elegant, makes "pointnew" work for any sorting order. After the mailbox
is sorted, I make an extra pass, looking for the first new message.
Insert this code near the end of newmbox.c, between the call
sort_mailbox(count, 1);
and the statement
return(count);
at the end of read_headers().
/* solomon@cs.wisc.edu 8 May 1988: For funky sorting modes, if
* option "pointnew" is selected, we have to find the new message
* that is first in SORTED order
*/
if (point_to_new && !rereading &&
sortby != RECEIVED_DATE) {
int i;
for (i=0; i<count; i++) {
if (header_table[i].status & NEW) {
current = i+1;
get_page(current); /* make sure we're ON that page! */
break;
}
}
}
Marvin Solomon
Computer Sciences Department
University of Wisconsin, Madison WI
solomon@cs.wisc.edu or seismo!uwvax!solomon