/* A highly advanced more command
* Fudge
*/
void main( string arg ) {
string file;
string *tmp;
string *lines;
int i;
int where;
if( arg == "" ) {
arg = this_environment()->file_name();
}
file = normalize_path( arg, this_player()->query_env( "cwd" ) );
if( file_exists( file ) < 1 ) {
write( arg + ": File not found." );
return;
}
tmp = explode( read_file( file ), "\n" );
lines = ({ });
for( i = 0; i < sizeof( tmp ); i++ ) {
if( strlen( tmp[i] ) > 79 ) {
/* Big line. Break it up. */
where = 0;
while( where < strlen( tmp[i] ) ) {
if( where + 79 < strlen( tmp[i] ) ) {
lines += ({ tmp[i][where..where+78] });
where += 79;
} else {
lines += ({ tmp[i][where..] });
where = strlen(tmp[i]);
}
}
} else {
lines += ({ tmp[i] }) ;
}
}
this_player()->more( lines, 0 );
}