(Fy_or_n_p): Echo the answer just once, at exit.
authorRichard M. Stallman <rms@gnu.org>
Tue, 13 Apr 1993 05:54:00 +0000 (05:54 +0000)
committerRichard M. Stallman <rms@gnu.org>
Tue, 13 Apr 1993 05:54:00 +0000 (05:54 +0000)
src/fns.c

index 14a2ce5..cca000c 100644 (file)
--- a/src/fns.c
+++ b/src/fns.c
@@ -1108,8 +1108,8 @@ Also accepts Space to mean yes, or Delete to mean no.")
 
   while (1)
     {
-      message ("%s(y or n) ", XSTRING (xprompt)->data);
       cursor_in_echo_area = 1;
+      message ("%s(y or n) ", XSTRING (xprompt)->data);
 
       obj = read_char (0, 0, 0, Qnil, 0);
       cursor_in_echo_area = 0;
@@ -1120,11 +1120,6 @@ Also accepts Space to mean yes, or Delete to mean no.")
       def = Flookup_key (map, key);
       answer_string = Fsingle_key_description (obj);
 
-      cursor_in_echo_area = -1;
-      message ("%s(y or n) %s", XSTRING (xprompt)->data,
-              XSTRING (answer_string)->data);
-      cursor_in_echo_area = ocech;
-
       if (EQ (def, intern ("skip")))
        {
          answer = 0;
@@ -1161,7 +1156,12 @@ Also accepts Space to mean yes, or Delete to mean no.")
     }
   UNGCPRO;
 
-  message ("%s(y or n) %c", XSTRING (xprompt)->data, answer ? 'y' : 'n');
+  if (! noninteractive)
+    {
+      cursor_in_echo_area = -1;
+      message ("%s(y or n) %c", XSTRING (xprompt)->data, answer ? 'y' : 'n');
+      cursor_in_echo_area = ocech;
+    }
 
   return answer ? Qt : Qnil;
 }