--- main.c.orig 2004-07-28 11:17:52.000000000 -0700 +++ main.c 2004-07-28 11:32:26.000000000 -0700 @@ -32,6 +32,7 @@ public int quitting; public int secure; public int dohelp; +public int more_mode = 0; #if LOGFILE public int logfile = -1; @@ -68,6 +69,7 @@ { IFILE ifile; char *s; + extern char *__progname; #ifdef __EMX__ _response(&argc, &argv); @@ -108,6 +110,9 @@ * Process command line arguments and LESS environment arguments. * Command line arguments override environment arguments. */ + if (strcmp(__progname, "more") == 0) + more_mode = 1; + is_tty = isatty(1); get_term(); init_cmds(); @@ -115,7 +120,16 @@ init_charset(); init_line(); init_option(); - s = lgetenv("LESS"); + + if (more_mode) { + scan_option("-E"); + scan_option("-m"); + scan_option("-G"); + scan_option("-f"); + s = lgetenv("MORE"); + } else { + s = lgetenv("LESS"); + } if (s != NULL) scan_option(save(s)); @@ -214,7 +228,7 @@ quit(QUIT_OK); } - if (missing_cap && !know_dumb) + if (missing_cap && !know_dumb && !more_mode) error("WARNING: terminal is not fully functional", NULL_PARG); init_mark(); open_getchr();