#include "commands.h"
#include "buffer.h"
+#include "keyboard.h"
Lisp_Object Qstring_lessp;
"Concatenate all the arguments and make the result a list.\n\
The result is a list whose elements are the elements of all the arguments.\n\
Each argument may be a list, vector or string.\n\
-The last argument is not copied if it is a list.")
+The last argument is not copied, just used as the tail of the new list.")
(nargs, args)
int nargs;
Lisp_Object *args;
while (!NILP (tail))
{
tem = Fcar (tail);
- if (Fequal (elt, tem))
+ if (! NILP (Fequal (elt, tem)))
{
if (NILP (prev))
list = Fcdr (tail);
message ("%s(y or n) ", XSTRING (xprompt)->data);
cursor_in_echo_area = 1;
- obj = read_char (0);
+ obj = read_char (0, 0, 0, Qnil, 0);
if (XTYPE (obj) == Lisp_Int)
ans = XINT (obj);
else
if (ans == 7 || ans == '\035')
Vquit_flag = Qt;
QUIT;
+
+ /* If we don't clear this, then the next call to read_char will
+ return quit_char again, and we'll enter an infinite loop. */
+ Vquit_flag = Qnil;
if (ans >= 0)
ans = DOWNCASE (ans);
if (ans == 'y' || ans == ' ')
GCPRO1 (prompt);
while (1)
{
- ans = Fdowncase (Fread_minibuffer (prompt, Qnil));
+ ans = Fdowncase (Fread_string (prompt, Qnil));
if (XSTRING (ans)->size == 3 && !strcmp (XSTRING (ans)->data, "yes"))
{
UNGCPRO;
Fding (Qnil);
Fdiscard_input ();
message ("Please answer yes or no.");
- Fsleep_for (make_number (2));
+ Fsleep_for (make_number (2), Qnil);
}
UNGCPRO;
}