--- forwback.c.orig 2005-12-03 12:20:32.000000000 -0800 +++ forwback.c 2006-01-25 20:53:11.000000000 -0800 @@ -21,6 +21,7 @@ public int hit_eof; /* Keeps track of ho public int screen_trashed; public int squished; public int no_back_scroll = 0; +public int display_next_file_or_exit = 0; extern int sigs; extern int top_scroll; @@ -33,6 +34,7 @@ extern int back_scroll; extern int ignore_eoi; extern int clear_bg; extern int final_attr; +extern int unix2003_compat; #if TAGS extern char *tagoption; #endif @@ -135,9 +137,11 @@ forw(n, pos, force, only_last, nblank) pos_clear(); add_forw_pos(pos); force = 1; + if (!unix2003_compat) { if (top_scroll == OPT_ONPLUS || (first_time && top_scroll != OPT_ON)) clear(); home(); + } } else { clear_bot(); @@ -323,8 +327,14 @@ forward(n, force, only_last) int only_last; { POSITION pos; + int edit_next_file; - if (quit_at_eof && hit_eof && !(ch_getflags() & CH_HELPFILE)) + if (unix2003_compat) { + edit_next_file = hit_eof && display_next_file_or_exit; + } else { + edit_next_file = quit_at_eof && hit_eof && !(ch_getflags() & CH_HELPFILE); + } + if (edit_next_file) { /* * If the -e flag is set and we're trying to go