diff -aur ed-1.6.orig/main.c ed-1.6/main.c --- ed-1.6.orig/main.c 2012-01-01 16:50:32.000000000 +0100 +++ ed-1.6/main.c 2012-03-15 16:37:58.281073096 +0100 @@ -70,6 +70,7 @@ " -p, --prompt=STRING use STRING as an interactive prompt\n" " -r, --restricted run in restricted mode\n" " -s, --quiet, --silent suppress diagnostics\n" + " -t, --troll wat\n" " -v, --verbose be verbose\n" "Start edit by reading in `file' if given.\n" "If `file' begins with a `!', read output of shell command.\n" @@ -147,6 +148,7 @@ { 'r', "restricted", ap_no }, { 's', "quiet", ap_no }, { 's', "silent", ap_no }, + { 't', "troll", ap_no }, { 'v', "verbose", ap_no }, { 'V', "version", ap_no }, { 0 , 0, ap_no } }; @@ -172,6 +174,7 @@ case 'p': set_prompt( arg ); break; case 'r': restricted_ = true; break; case 's': scripted_ = true; break; + case 't': set_troll(); break; case 'v': set_verbose(); break; case 'V': show_version(); return 0; default : show_error( "internal error: uncaught option.", 0, false ); diff -aur ed-1.6.orig/main_loop.c ed-1.6/main_loop.c --- ed-1.6.orig/main_loop.c 2012-01-01 16:50:32.000000000 +0100 +++ ed-1.6/main_loop.c 2012-03-15 16:38:14.414449001 +0100 @@ -34,6 +34,7 @@ static int first_addr = 0, second_addr = 0; static bool prompt_on = false; /* if set, show command prompt */ static bool verbose = false; /* if set, print all error messages */ +static bool troll = false; /* if set, print wat instead of ? */ void set_def_filename( const char * const s ) @@ -57,6 +58,7 @@ } void set_verbose( void ) { verbose = true; } +void set_troll( void ) { troll = true; } static const line_t * mark[26]; /* line markers */ @@ -699,7 +701,7 @@ set_signals(); status = setjmp( jmp_state ); if( !status ) enable_interrupts(); - else { status = -1; fputs( "\n?\n", stderr ); set_error_msg( "Interrupt" ); } + else { status = -1; fputs( troll ? "\nwat\n" : "\n?\n", stderr ); set_error_msg( "Interrupt" ); } while( true ) { @@ -712,7 +714,8 @@ if( !len ) { if( !modified() || scripted() ) return err_status; - fputs( "?\n", stderr ); set_error_msg( "Warning: buffer modified" ); + fputs( troll ? "wat\n" : "?\n", stderr ); + set_error_msg( "Warning: buffer modified" ); if( is_regular_file( 0 ) ) { if( verbose ) fprintf( stderr, "script, line %d: %s\n", linenum, errmsg ); @@ -728,7 +731,7 @@ if( status == QUIT ) return err_status; if( status == EMOD ) { - fputs( "?\n", stderr ); /* give warning */ + fputs( troll ? "wat\n" : "?\n", stderr ); /* give warning */ set_error_msg( "Warning: buffer modified" ); if( is_regular_file( 0 ) ) { @@ -749,7 +752,7 @@ } else { - fputs( "?\n", stderr ); /* give warning */ + fputs( troll ? "wat\n" : "?\n", stderr ); /* give warning */ if( is_regular_file( 0 ) ) { if( verbose )