/* Do not remove the headers from this file! see /USAGE for more info. */
// -Beek
inherit CMD;
inherit M_GRAMMAR;
//:COMMAND
//USAGE codesay <string>
//
//Displays the string formatted as LPC code.
//Useful when discussing/explaining snippets of code.
//
//>codesay void create() { ::create(); }
//
//You say:
// void create(){
// ::create();
// }
void create()
{
::create();
no_redirection();
}
private void main(string s) {
if (!s || s == "") {
write("Say what?\n");
return;
}
s = replace_string(s, ";", ";\n");
s = replace_string(s, "{", "{\n");
s = replace_string(s, "}", "}\n");
// Indent
write_file("/tmp/codesay", s, 1);
ed_start("/tmp/codesay");
ed_cmd("I");
ed_cmd("x");
s = read_file("/tmp/codesay");
// fix the fact that indentation uses tabs
s = "\n\t" + replace_string(s, "\n", "\n\t") + "\n";
tell(this_user(), "You say:" + s, NO_ANSI | MSG_INDENT);
tell_environment(this_body(),
this_body()->query_name() + " says:" + s,
NO_ANSI | MSG_INDENT,
({ this_body() }));
}