/* ok... This will be ye old standard inherit me if you want me editorS
 * There will be a cloneable version in /obj
 */
#include "ed.h"
int start_ed();
private string my_bit;
int begin_editing(string str) {
  if (str)
    my_bit = str;
  else
    my_bit = "";
  write("Write your text in the following lines.  A \"**\" on a line "
        "by itself will save the text you have entered.  A \"~q\" "
        "will abort your text and a \"~e\" will drop you into ed, "
        "warning don't use ed unless you know what you are doing.\n");
  write("] ");
  input_to("ed_get_line");
}
int ed_get_line(string str) {
  if (!my_bit)
    my_bit = "";
  if (str == "**") {
    this_object()->ed_end_it_all(my_bit);
    write_file(CHANGE_LOG, "ed: "+TMP_FILE+" changed by "+this_player()->query_cap_name()+".\n");
    my_bit = 0;
  } else if (str == "~q") {
    my_bit = 0;
    this_object()->ed_end_it_all(0);
  } else if (str == "~e")
    start_ed();
  else {
    my_bit += str + "\n";
    write("] ");
    input_to("ed_get_line");
  }
  return 1;
}
void exit_ed() {
  my_bit = read_file(TMP_FILE);
  if (!rm(TMP_FILE))
    log_file(LOG_FILE, "ed: couldn't rm "+TMP_FILE+"\n");
  write("Back into the text enterer.\n");
  write("] ");
  input_to("ed_get_line");
}
start_ed() {
  write("Entering ed....  Use 'q' to quit, 'x' to save and exit, 'Q' to quit "
        "without saveing changes and 'h' for help.\n");
  write_file(TMP_FILE, my_bit);
  ed(TMP_FILE, "exit_ed");
}