Bestaetigung bei EIngabe von Fehlern.

Auf Spielerwunsch wird nun erst eine Zusammenfassung
der Eingabe von bugs, idee, etc. angezeigt und um
eine Bestaetigung gebeten, bevor gespeichert wird.

Change-Id: I68c1cf3695cda26838204a6d128383af9b86f41d
diff --git a/std/player/base.c b/std/player/base.c
index 40669bf..128bf35 100644
--- a/std/player/base.c
+++ b/std/player/base.c
@@ -1378,7 +1378,6 @@
       if (!objectp(obj) || !present(obj))
         obj = environment(this_interactive());
     }
-    _notify("Vielen Dank fuer die Hilfe.\n", MA_UNKNOWN);
     smart_log(error_type, player_input, obj);
   }
   else
@@ -1431,6 +1430,44 @@
   return 1;
 }
 
+static void confirm_error(string answer, object obj, string str,
+                          string myname, string desc, mapping err)
+{
+  if (answer != "j" && answer != "ja")
+  {
+    _notify("Eingabe abgebrochen.\n", MA_UNKNOWN);
+    return;
+  }
+  if (!obj)
+  {
+    _notify(sprintf("Leider existiert das Objekt nicht mehr, an dem Du "
+            "D%s melden wolltest.", desc), MA_UNKNOWN);
+    return;
+  }
+
+  // ggf. will das Objekte selber loggen, dann wird nicht zentral geloggt.
+  if (obj->SmartLog(0, myname, str, strftime("%d. %b %Y")))
+  {
+    _notify(sprintf(
+       "Du hast an %s erfolgreich %s abgesetzt.\n"
+       "Hinweis: Das Objekt selber hat die Meldung protokolliert.",
+       (obj->IsRoom() ? "diesem Raum" : obj->name(WEM,1)),desc),
+       MA_UNKNOWN);
+  }
+  else
+  {
+    // Eintragung in die Fehler-DB
+    string hashkey = ({string})ERRORD->LogReportedError(err);
+    _notify(sprintf(
+          "Ein kleiner Fehlerteufel hat D%s an %s unter der ID %s "
+          "notiert.", desc,
+          (obj->IsRoom() ? "diesem Raum" : obj->name(WEM,1)),
+          hashkey || "N/A"),
+        MA_UNKNOWN);
+  }
+  _notify("Vielen Dank fuer die Hilfe.\n", MA_UNKNOWN);
+}
+
 /** Loggt eine Spielermeldung an Magier.
   * Loggt die Spielermeldung in das passende File unter /log/report/ oder im
   * vom Magier gewuenschten File. Hierbei werden Fehler, Ideen, MDs und Typos
@@ -1470,29 +1507,12 @@
       err[F_TYPE]=T_REPORTED_SYNTAX;
       break;
   }
-
-  // ggf. will das Objekte selber loggen, dann wird nicht zentral geloggt.
-  if (obj->SmartLog(0, myname, str, strftime("%d. %b %Y")))
-  {
-    ReceiveMsg(sprintf(
-          "Du hast an %s erfolgreich %s abgesetzt.\n"
-          "Hinweis: Das Objekt selber hat die Meldung protokolliert.",
-          (obj->IsRoom() ? "diesem Raum" : obj->name(WEM,1)),desc),
-        MT_NOTIFICATION | MSG_BS_LEAVE_LFS | MSG_DONT_BUFFER |
-        MSG_DONT_STORE | MSG_DONT_IGNORE, MA_UNKNOWN, 0, ME);
-  }
-  else
-  {
-    // Eintragung in die Fehler-DB
-    string hashkey = ({string})ERRORD->LogReportedError(err);
-    ReceiveMsg(sprintf(
-          "Ein kleiner Fehlerteufel hat D%s an %s unter der ID %s "
-          "notiert.", desc,
+  _notify(sprintf(
+          "Du hast %s an %s mit der Beschreibung \"%s\" eingegeben. "
+          "Moechtest Du dieses speichern?", desc,
           (obj->IsRoom() ? "diesem Raum" : obj->name(WEM,1)),
-          hashkey || "N/A"),
-        MT_NOTIFICATION | MSG_DONT_BUFFER | MSG_DONT_STORE | MSG_DONT_IGNORE,
-        MA_UNKNOWN, 0, ME);
-  }
+          str), MA_UNKNOWN);
+  input_to("confirm_error", INPUT_PROMPT, "]", obj, str, myname, desc, err);
 }
 
 /** Speichert den Spieler und loggt ihn aus (Spielerkommando 'ende').