string process_input(string str) {
    if( !(str = process_history(str)) ) return "";
    if( !(str = process_alias(str)) ) return "";
    tmp = parse_sentence(str);
    if( tmp == 1 ) return ""; /* complete success */
    if( stringp(tmp) ) {
        message("error", tmp, this_object());
        return "";
    }
    if( tmp == -1 ) {
        message("error", "That command exists, but you "
          "do not know how to use it.", this_object());
        return "";
    }
    else {
        message("error", "What?", this_object());
        return "";
    }
}