#include "blockinput.h"
#include "region-cache.h"
-static void insert_from_string_1 (Lisp_Object string,
- ptrdiff_t pos, ptrdiff_t pos_byte,
- ptrdiff_t nchars, ptrdiff_t nbytes,
- int inherit, int before_markers);
-static void insert_from_buffer_1 (struct buffer *buf,
- ptrdiff_t from, ptrdiff_t nchars,
- int inherit);
-static void gap_left (ptrdiff_t charpos, ptrdiff_t bytepos, int newgap);
-static void gap_right (ptrdiff_t charpos, ptrdiff_t bytepos);
+static void insert_from_string_1 (Lisp_Object, ptrdiff_t, ptrdiff_t, ptrdiff_t,
+ ptrdiff_t, bool, bool);
+static void insert_from_buffer_1 (struct buffer *, ptrdiff_t, ptrdiff_t, bool);
+static void gap_left (ptrdiff_t, ptrdiff_t, bool);
+static void gap_right (ptrdiff_t, ptrdiff_t);
/* List of elements of the form (BEG-UNCHANGED END-UNCHANGED CHANGE-AMOUNT)
describing changes which happened while combine_after_change_calls
- was nonzero. We use this to decide how to call them
+ was non-nil. We use this to decide how to call them
once the deferral ends.
In each element.
static void
check_markers (void)
{
- register struct Lisp_Marker *tail;
- int multibyte = ! NILP (BVAR (current_buffer, enable_multibyte_characters));
+ struct Lisp_Marker *tail;
+ bool multibyte = ! NILP (BVAR (current_buffer, enable_multibyte_characters));
for (tail = BUF_MARKERS (current_buffer); tail; tail = tail->next)
{
if (tail->buffer->text != current_buffer->text)
- abort ();
+ emacs_abort ();
if (tail->charpos > Z)
- abort ();
+ emacs_abort ();
if (tail->bytepos > Z_BYTE)
- abort ();
+ emacs_abort ();
if (multibyte && ! CHAR_HEAD_P (FETCH_BYTE (tail->bytepos)))
- abort ();
+ emacs_abort ();
}
}
/* Move the gap to a position less than the current GPT.
BYTEPOS describes the new position as a byte position,
and CHARPOS is the corresponding char position.
- If NEWGAP is nonzero, then don't update beg_unchanged and end_unchanged. */
+ If NEWGAP, then don't update beg_unchanged and end_unchanged. */
static void
-gap_left (ptrdiff_t charpos, ptrdiff_t bytepos, int newgap)
+gap_left (ptrdiff_t charpos, ptrdiff_t bytepos, bool newgap)
{
- register unsigned char *to, *from;
- register ptrdiff_t i;
+ unsigned char *to, *from;
+ ptrdiff_t i;
ptrdiff_t new_s1;
if (!newgap)
static void
adjust_markers_for_insert (ptrdiff_t from, ptrdiff_t from_byte,
- ptrdiff_t to, ptrdiff_t to_byte, int before_markers)
+ ptrdiff_t to, ptrdiff_t to_byte, bool before_markers)
{
struct Lisp_Marker *m;
- int adjusted = 0;
+ bool adjusted = 0;
ptrdiff_t nchars = to - from;
ptrdiff_t nbytes = to_byte - from_byte;
ptrdiff_t
copy_text (const unsigned char *from_addr, unsigned char *to_addr,
- ptrdiff_t nbytes, int from_multibyte, int to_multibyte)
+ ptrdiff_t nbytes, bool from_multibyte, bool to_multibyte)
{
if (from_multibyte == to_multibyte)
{
void
insert_1 (const char *string, ptrdiff_t nbytes,
- int inherit, int prepare, int before_markers)
+ bool inherit, bool prepare, bool before_markers)
{
insert_1_both (string, chars_in_text ((unsigned char *) string, nbytes),
nbytes, inherit, prepare, before_markers);
void
insert_1_both (const char *string,
ptrdiff_t nchars, ptrdiff_t nbytes,
- int inherit, int prepare, int before_markers)
+ bool inherit, bool prepare, bool before_markers)
{
if (nchars == 0)
return;
#ifdef BYTE_COMBINING_DEBUG
if (count_combining_before (string, nbytes, PT, PT_BYTE)
|| count_combining_after (string, nbytes, PT, PT_BYTE))
- abort ();
+ emacs_abort ();
#endif
/* Record deletion of the surrounding text that combines with
void
insert_from_string (Lisp_Object string, ptrdiff_t pos, ptrdiff_t pos_byte,
- ptrdiff_t length, ptrdiff_t length_byte, int inherit)
+ ptrdiff_t length, ptrdiff_t length_byte, bool inherit)
{
ptrdiff_t opoint = PT;
insert_from_string_before_markers (Lisp_Object string,
ptrdiff_t pos, ptrdiff_t pos_byte,
ptrdiff_t length, ptrdiff_t length_byte,
- int inherit)
+ bool inherit)
{
ptrdiff_t opoint = PT;
static void
insert_from_string_1 (Lisp_Object string, ptrdiff_t pos, ptrdiff_t pos_byte,
ptrdiff_t nchars, ptrdiff_t nbytes,
- int inherit, int before_markers)
+ bool inherit, bool before_markers)
{
struct gcpro gcpro1;
ptrdiff_t outgoing_nbytes = nbytes;
the text that has been stored by copy_text. */
if (count_combining_before (GPT_ADDR, outgoing_nbytes, PT, PT_BYTE)
|| count_combining_after (GPT_ADDR, outgoing_nbytes, PT, PT_BYTE))
- abort ();
+ emacs_abort ();
#endif
record_insert (PT, nchars);
void
insert_from_buffer (struct buffer *buf,
- ptrdiff_t charpos, ptrdiff_t nchars, int inherit)
+ ptrdiff_t charpos, ptrdiff_t nchars, bool inherit)
{
ptrdiff_t opoint = PT;
static void
insert_from_buffer_1 (struct buffer *buf,
- ptrdiff_t from, ptrdiff_t nchars, int inherit)
+ ptrdiff_t from, ptrdiff_t nchars, bool inherit)
{
ptrdiff_t chunk, chunk_expanded;
ptrdiff_t from_byte = buf_charpos_to_bytepos (buf, from);
the text that has been stored by copy_text. */
if (count_combining_before (GPT_ADDR, outgoing_nbytes, PT, PT_BYTE)
|| count_combining_after (GPT_ADDR, outgoing_nbytes, PT, PT_BYTE))
- abort ();
+ emacs_abort ();
#endif
record_insert (PT, nchars);
#ifdef BYTE_COMBINING_DEBUG
if (count_combining_before (GPT_ADDR, len_byte, from, from_byte)
|| count_combining_after (GPT_ADDR, len_byte, from, from_byte))
- abort ();
+ emacs_abort ();
#endif
if (STRINGP (prev_text))
}
\f
/* Replace the text from character positions FROM to TO with NEW,
- If PREPARE is nonzero, call prepare_to_modify_buffer.
+ If PREPARE, call prepare_to_modify_buffer.
If INHERIT, the newly inserted text should inherit text properties
from the surrounding non-deleted text. */
void
replace_range (ptrdiff_t from, ptrdiff_t to, Lisp_Object new,
- int prepare, int inherit, int markers)
+ bool prepare, bool inherit, bool markers)
{
ptrdiff_t inschars = SCHARS (new);
ptrdiff_t insbytes = SBYTES (new);
the text that has been stored by copy_text. */
if (count_combining_before (GPT_ADDR, outgoing_insbytes, from, from_byte)
|| count_combining_after (GPT_ADDR, outgoing_insbytes, from, from_byte))
- abort ();
+ emacs_abort ();
#endif
if (! EQ (BVAR (current_buffer, undo_list), Qt))
Note that this does not yet handle markers quite right.
- If MARKERS is nonzero, relocate markers.
+ If MARKERS, relocate markers.
Unlike most functions at this level, never call
prepare_to_modify_buffer and never call signal_after_change. */
replace_range_2 (ptrdiff_t from, ptrdiff_t from_byte,
ptrdiff_t to, ptrdiff_t to_byte,
const char *ins, ptrdiff_t inschars, ptrdiff_t insbytes,
- int markers)
+ bool markers)
{
ptrdiff_t nbytes_del, nchars_del;
the text that has been stored by copy_text. */
if (count_combining_before (GPT_ADDR, insbytes, from, from_byte)
|| count_combining_after (GPT_ADDR, insbytes, from, from_byte))
- abort ();
+ emacs_abort ();
#endif
GAP_SIZE -= insbytes;
RET_STRING says to return the deleted text. */
Lisp_Object
-del_range_1 (ptrdiff_t from, ptrdiff_t to, int prepare, int ret_string)
+del_range_1 (ptrdiff_t from, ptrdiff_t to, bool prepare, bool ret_string)
{
ptrdiff_t from_byte, to_byte;
Lisp_Object deletion;
/* Like del_range_1 but args are byte positions, not char positions. */
void
-del_range_byte (ptrdiff_t from_byte, ptrdiff_t to_byte, int prepare)
+del_range_byte (ptrdiff_t from_byte, ptrdiff_t to_byte, bool prepare)
{
ptrdiff_t from, to;
void
del_range_both (ptrdiff_t from, ptrdiff_t from_byte,
- ptrdiff_t to, ptrdiff_t to_byte, int prepare)
+ ptrdiff_t to, ptrdiff_t to_byte, bool prepare)
{
/* Make args be valid */
if (from_byte < BEGV_BYTE)
/* Delete a range of text, specified both as character positions
and byte positions. FROM and TO are character positions,
while FROM_BYTE and TO_BYTE are byte positions.
- If RET_STRING is true, the deleted area is returned as a string. */
+ If RET_STRING, the deleted area is returned as a string. */
Lisp_Object
del_range_2 (ptrdiff_t from, ptrdiff_t from_byte,
- ptrdiff_t to, ptrdiff_t to_byte, int ret_string)
+ ptrdiff_t to, ptrdiff_t to_byte, bool ret_string)
{
- register ptrdiff_t nbytes_del, nchars_del;
+ ptrdiff_t nbytes_del, nchars_del;
Lisp_Object deletion;
check_markers ();
#ifdef BYTE_COMBINING_DEBUG
if (count_combining_before (BUF_BYTE_ADDRESS (current_buffer, to_byte),
Z_BYTE - to_byte, from, from_byte))
- abort ();
+ emacs_abort ();
#endif
if (ret_string || ! EQ (BVAR (current_buffer, undo_list), Qt))
and warns the next redisplay that it should pay attention to that
area.
- If PRESERVE_CHARS_MODIFF is non-zero, do not update CHARS_MODIFF.
+ If PRESERVE_CHARS_MODIFF, do not update CHARS_MODIFF.
Otherwise set CHARS_MODIFF to the new value of MODIFF. */
void
modify_region (struct buffer *buffer, ptrdiff_t start, ptrdiff_t end,
- int preserve_chars_modiff)
+ bool preserve_chars_modiff)
{
struct buffer *old_buffer = current_buffer;
return Qnil;
}
- record_unwind_protect (Fset_buffer, Fcurrent_buffer ());
+ record_unwind_current_buffer ();
Fset_buffer (combine_after_change_buffer);