]> code.delx.au - gnu-emacs/blobdiff - src/callint.c
(LD_SWITCH_SYSTEM_TEMACS): Define this instead of LD_SWITCH_SYSTEM.
[gnu-emacs] / src / callint.c
index 5cedc443933b501f102875556ef1a0be5ef9dacb..7a579fcb20e293d2249548f3e0ac2ce728dad981 100644 (file)
@@ -92,6 +92,7 @@ e -- Parametrized event (i.e., one that's a list) that invoked this command.\n\
      This skips events that are integers or symbols.\n\
 f -- Existing file name.\n\
 F -- Possibly nonexistent file name.\n\
+i -- Ignored, i.e. always nil.  Does not do I/O.\n\
 k -- Key sequence (downcase the last event if needed to get a definition).\n\
 K -- Key sequence to be redefined (do not downcase the last event).\n\
 m -- Value of mark as number.  Does not do I/O.\n\
@@ -105,6 +106,8 @@ S -- Any symbol.\n\
 v -- Variable name: symbol that is user-variable-p.\n\
 x -- Lisp expression read but not evaluated.\n\
 X -- Lisp expression read and evaluated.\n\
+z -- Coding system.\n\
+Z -- Coding system, nil if no prefix arg.\n\
 In addition, if the string begins with `*'\n\
  then an error is signaled if the buffer is read-only.\n\
  This happens before reading any arguments.\n\
@@ -290,11 +293,11 @@ Otherwise, this is done only if an arg is read using the minibuffer.")
   else if (string == 0)
     {
       Lisp_Object input;
-      i = num_input_chars;
+      i = num_input_events;
       input = specs;
       /* Compute the arg values using the user's expression.  */
       specs = Feval (specs);
-      if (i != num_input_chars || !NILP (record_flag))
+      if (i != num_input_events || !NILP (record_flag))
        {
          /* We should record this command on the command history.  */
          Lisp_Object values, car;
@@ -462,7 +465,8 @@ Otherwise, this is done only if an arg is read using the minibuffer.")
        {
        case 'a':               /* Symbol defined as a function */
          visargs[i] = Fcompleting_read (build_string (callint_message),
-                                        Vobarray, Qfboundp, Qt, Qnil, Qnil);
+                                        Vobarray, Qfboundp, Qt,
+                                        Qnil, Qnil, Qnil);
          /* Passing args[i] directly stimulates compiler bug */
          teml = visargs[i];
          args[i] = Fintern (teml, Qnil);
@@ -495,7 +499,8 @@ Otherwise, this is done only if an arg is read using the minibuffer.")
 
        case 'C':               /* Command: symbol with interactive function */
          visargs[i] = Fcompleting_read (build_string (callint_message),
-                                        Vobarray, Qcommandp, Qt, Qnil, Qnil);
+                                        Vobarray, Qcommandp,
+                                        Qt, Qnil, Qnil, Qnil);
          /* Passing args[i] directly stimulates compiler bug */
          teml = visargs[i];
          args[i] = Fintern (teml, Qnil);
@@ -523,6 +528,10 @@ Otherwise, this is done only if an arg is read using the minibuffer.")
                                     Qnil, Qnil, Qnil, Qnil);
          break;
 
+       case 'i':               /* Ignore an argument -- Does not do I/O */
+         varies[i] = -1;
+         break;
+
        case 'k':               /* Key sequence. */
          {
            int speccount1 = specpdl_ptr - specpdl;
@@ -583,12 +592,12 @@ Otherwise, this is done only if an arg is read using the minibuffer.")
                if (!  first)
                  {
                    message ("Please enter a number.");
-                   sit_for (1, 0, 0, 0);
+                   sit_for (1, 0, 0, 0, 0);
                  }
                first = 0;
 
                tem = Fread_from_minibuffer (build_string (callint_message),
-                                            Qnil, Qnil, Qnil, Qnil);
+                                            Qnil, Qnil, Qnil, Qnil, Qnil);
                if (! STRINGP (tem) || XSTRING (tem)->size == 0)
                  args[i] = Qnil;
                else
@@ -625,12 +634,13 @@ Otherwise, this is done only if an arg is read using the minibuffer.")
          break;
 
        case 's':               /* String read via minibuffer.  */
-         args[i] = Fread_string (build_string (callint_message), Qnil, Qnil);
+         args[i] = Fread_string (build_string (callint_message),
+                                 Qnil, Qnil, Qnil);
          break;
 
        case 'S':               /* Any symbol.  */
          visargs[i] = Fread_string (build_string (callint_message),
-                                    Qnil, Qnil);
+                                    Qnil, Qnil, Qnil);
          /* Passing args[i] directly stimulates compiler bug */
          teml = visargs[i];
          args[i] = Fintern (teml, Qnil);
@@ -638,7 +648,7 @@ Otherwise, this is done only if an arg is read using the minibuffer.")
 
        case 'v':               /* Variable name: symbol that is
                                   user-variable-p. */
-         args[i] = Fread_variable (build_string (callint_message));
+         args[i] = Fread_variable (build_string (callint_message), Qnil);
          visargs[i] = last_minibuf_string;
          break;
 
@@ -652,6 +662,26 @@ Otherwise, this is done only if an arg is read using the minibuffer.")
          visargs[i] = last_minibuf_string;
          break;
 
+       case 'Z':               /* Coding-system symbol, or ignore the
+                                  argument if no prefix */
+         if (NILP (prefix_arg))
+           {
+             args[i] = Qnil;
+             varies[i] = -1;
+           }
+         else 
+           {
+             args[i]
+               = Fread_non_nil_coding_system (build_string (callint_message));
+             visargs[i] = last_minibuf_string;
+           }
+         break;
+
+       case 'z':               /* Coding-system symbol or nil */
+         args[i] = Fread_coding_system (build_string (callint_message));
+         visargs[i] = last_minibuf_string;
+         break;
+
          /* We have a case for `+' so we get an error
             if anyone tries to define one here.  */
        case '+':