#include <config.h>
-#include <setjmp.h>
#include "lisp.h"
+#include "character.h"
#include "buffer.h"
#include "commands.h"
#include "keyboard.h"
#include "window.h"
#include "keymap.h"
-#include "character.h"
Lisp_Object Qminus, Qplus;
Lisp_Object Qcall_interactively;
= {"", "point", "mark", "region-beginning", "region-end"};
static void
-check_mark (int for_region)
+check_mark (bool for_region)
{
Lisp_Object tem;
tem = Fmarker_buffer (BVAR (current_buffer, mark));
if (CONSP (elt))
{
Lisp_Object presflag, carelt;
- carelt = Fcar (elt);
+ carelt = XCAR (elt);
/* If it is (if X Y), look at Y. */
if (EQ (carelt, Qif)
&& EQ (Fnthcdr (make_number (3), elt), Qnil))
Lisp_Object teml;
Lisp_Object up_event;
Lisp_Object enable;
- int speccount = SPECPDL_INDEX ();
+ ptrdiff_t speccount = SPECPDL_INDEX ();
/* The index of the next element of this_command_keys to examine for
the 'e' interactive code. */
- int next_event;
+ ptrdiff_t next_event;
Lisp_Object prefix_arg;
char *string;
signed char *varies;
ptrdiff_t i, nargs;
- int foo;
- int arg_from_tty = 0;
+ ptrdiff_t mark;
+ bool arg_from_tty = 0;
struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5;
- int key_count;
- int record_then_fail = 0;
+ ptrdiff_t key_count;
+ bool record_then_fail = 0;
Lisp_Object save_this_command, save_last_command;
Lisp_Object save_this_original_command, save_real_this_command;
save_this_command = Vthis_command;
save_this_original_command = Vthis_original_command;
- save_real_this_command = real_this_command;
+ save_real_this_command = Vreal_this_command;
save_last_command = KVAR (current_kboard, Vlast_command);
if (NILP (keys))
key_count = ASIZE (keys);
}
- /* Save this now, since use of minibuffer will clobber it. */
+ /* Save this now, since use of minibuffer will clobber it. */
prefix_arg = Vcurrent_prefix_arg;
if (SYMBOLP (function))
The feature is not fully implemented. */
filter_specs = Qnil;
- /* If k or K discard an up-event, save it here so it can be retrieved with U */
+ /* If k or K discard an up-event, save it here so it can be retrieved with
+ U. */
up_event = Qnil;
/* Set SPECS to the interactive form, or barf if not interactive. */
{
/* Make a copy of string so that if a GC relocates specs,
`string' will still be valid. */
- string = (char *) alloca (SBYTES (specs) + 1);
+ string = alloca (SBYTES (specs) + 1);
memcpy (string, SSDATA (specs), SBYTES (specs) + 1);
}
else
Vthis_command = save_this_command;
Vthis_original_command = save_this_original_command;
- real_this_command= save_real_this_command;
- KVAR (current_kboard, Vlast_command) = save_last_command;
+ Vreal_this_command = save_real_this_command;
+ kset_last_command (current_kboard, save_last_command);
temporarily_switch_to_single_kboard (NULL);
return unbind_to (speccount, apply1 (function, specs));
}
- /* Here if function specifies a string to control parsing the defaults */
+ /* Here if function specifies a string to control parsing the defaults. */
/* Set next_event to point to the first event with parameters. */
for (next_event = 0; next_event < key_count; next_event++)
}
if (min (MOST_POSITIVE_FIXNUM,
- min (PTRDIFF_MAX, SIZE_MAX) / sizeof (Lisp_Object))
+ min (PTRDIFF_MAX, SIZE_MAX) / word_size)
< nargs)
memory_full (SIZE_MAX);
- args = (Lisp_Object *) alloca (nargs * sizeof (Lisp_Object));
- visargs = (Lisp_Object *) alloca (nargs * sizeof (Lisp_Object));
- varies = (signed char *) alloca (nargs);
+ args = alloca (nargs * sizeof *args);
+ visargs = alloca (nargs * sizeof *visargs);
+ varies = alloca (nargs * sizeof *varies);
for (i = 0; i < nargs; i++)
{
case 'k': /* Key sequence. */
{
- int speccount1 = SPECPDL_INDEX ();
+ ptrdiff_t speccount1 = SPECPDL_INDEX ();
specbind (Qcursor_in_echo_area, Qt);
/* Prompt in `minibuffer-prompt' face. */
Fput_text_property (make_number (0),
case 'K': /* Key sequence to be defined. */
{
- int speccount1 = SPECPDL_INDEX ();
+ ptrdiff_t speccount1 = SPECPDL_INDEX ();
specbind (Qcursor_in_echo_area, Qt);
/* Prompt in `minibuffer-prompt' face. */
Fput_text_property (make_number (0),
goto have_prefix_arg;
case 'n': /* Read number from minibuffer. */
{
- int first = 1;
+ bool first = 1;
do
{
Lisp_Object str;
check_mark (1);
set_marker_both (point_marker, Qnil, PT, PT_BYTE);
/* visargs[i+1] = Qnil; */
- foo = marker_position (BVAR (current_buffer, mark));
+ mark = marker_position (BVAR (current_buffer, mark));
/* visargs[i] = Qnil; */
- args[i] = PT < foo ? point_marker : BVAR (current_buffer, mark);
+ args[i] = PT < mark ? point_marker : BVAR (current_buffer, mark);
varies[i] = 3;
- args[++i] = PT > foo ? point_marker : BVAR (current_buffer, mark);
+ args[++i] = PT > mark ? point_marker : BVAR (current_buffer, mark);
varies[i] = 4;
break;
Vthis_command = save_this_command;
Vthis_original_command = save_this_original_command;
- real_this_command= save_real_this_command;
- KVAR (current_kboard, Vlast_command) = save_last_command;
+ Vreal_this_command = save_real_this_command;
+ kset_last_command (current_kboard, save_last_command);
{
Lisp_Object val;
callint_message = Qnil;
staticpro (&callint_message);
- preserved_fns = pure_cons (intern_c_string ("region-beginning"),
- pure_cons (intern_c_string ("region-end"),
- pure_cons (intern_c_string ("point"),
- pure_cons (intern_c_string ("mark"), Qnil))));
+ preserved_fns = listn (CONSTYPE_PURE, 4,
+ intern_c_string ("region-beginning"),
+ intern_c_string ("region-end"),
+ intern_c_string ("point"),
+ intern_c_string ("mark"));
DEFSYM (Qlist, "list");
DEFSYM (Qlet, "let");