Commit 0350982f authored by Lars Magne Ingebrigtsen's avatar Lars Magne Ingebrigtsen
Browse files

Fix EMACS_INT/int conversion errors in marker.c.

parent 6e48267a
2010-09-23 Lars Magne Ingebrigtsen <larsi@gnus.org>
* lisp.h: Change the definition of all marker.c functions that
take and return buffer stuff to be EMACS_INT instead of int.
* marker.c (buf_charpos_to_bytepos, CONSIDER, set_marker_both)
(buf_charpos_to_bytepos, bytepos_to_charpos)
(buf_bytepos_to_charpos, Fbuffer_has_markers_at)
(set_marker_restricted, set_marker_both): Convert int to EMACS_INT
for all buffer positions.
2010-09-23 Chong Yidong <cyd@stupidchicken.com>
* intervals.c (traverse_intervals, rotate_right, rotate_left)
......
......@@ -3054,17 +3054,17 @@ EXFUN (Fmarker_position, 1);
EXFUN (Fmarker_buffer, 1);
EXFUN (Fcopy_marker, 2);
EXFUN (Fset_marker, 3);
extern int marker_position (Lisp_Object);
extern int marker_byte_position (Lisp_Object);
extern EMACS_INT marker_position (Lisp_Object);
extern EMACS_INT marker_byte_position (Lisp_Object);
extern void clear_charpos_cache (struct buffer *);
extern int charpos_to_bytepos (int);
extern int buf_charpos_to_bytepos (struct buffer *, int);
extern int buf_bytepos_to_charpos (struct buffer *, int);
extern EMACS_INT charpos_to_bytepos (EMACS_INT);
extern EMACS_INT buf_charpos_to_bytepos (struct buffer *, EMACS_INT);
extern EMACS_INT buf_bytepos_to_charpos (struct buffer *, EMACS_INT);
extern void unchain_marker (struct Lisp_Marker *marker);
extern Lisp_Object set_marker_restricted (Lisp_Object, Lisp_Object, Lisp_Object);
extern Lisp_Object set_marker_both (Lisp_Object, Lisp_Object, int, int);
extern Lisp_Object set_marker_both (Lisp_Object, Lisp_Object, EMACS_INT, EMACS_INT);
extern Lisp_Object set_marker_restricted_both (Lisp_Object, Lisp_Object,
int, int);
EMACS_INT, EMACS_INT);
extern void syms_of_marker (void);
/* Defined in fileio.c */
......
......@@ -27,12 +27,12 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Record one cached position found recently by
buf_charpos_to_bytepos or buf_bytepos_to_charpos. */
static int cached_charpos;
static int cached_bytepos;
static EMACS_INT cached_charpos;
static EMACS_INT cached_bytepos;
static struct buffer *cached_buffer;
static int cached_modiff;
static void byte_char_debug_check (struct buffer *, int, int);
static void byte_char_debug_check (struct buffer *, EMACS_INT, EMACS_INT);
/* Nonzero means enable debugging checks on byte/char correspondences. */
......@@ -60,12 +60,12 @@ clear_charpos_cache (struct buffer *b)
#define CONSIDER(CHARPOS, BYTEPOS) \
{ \
int this_charpos = (CHARPOS); \
EMACS_INT this_charpos = (CHARPOS); \
int changed = 0; \
\
if (this_charpos == charpos) \
{ \
int value = (BYTEPOS); \
EMACS_INT value = (BYTEPOS); \
if (byte_debug_flag) \
byte_char_debug_check (b, charpos, value); \
return value; \
......@@ -90,7 +90,7 @@ clear_charpos_cache (struct buffer *b)
{ \
if (best_above - best_below == best_above_byte - best_below_byte) \
{ \
int value = best_below_byte + (charpos - best_below); \
EMACS_INT value = best_below_byte + (charpos - best_below); \
if (byte_debug_flag) \
byte_char_debug_check (b, charpos, value); \
return value; \
......@@ -99,9 +99,9 @@ clear_charpos_cache (struct buffer *b)
}
static void
byte_char_debug_check (struct buffer *b, int charpos, int bytepos)
byte_char_debug_check (struct buffer *b, EMACS_INT charpos, EMACS_INT bytepos)
{
int nchars = 0;
EMACS_INT nchars = 0;
if (bytepos > BUF_GPT_BYTE (b))
{
......@@ -118,18 +118,18 @@ byte_char_debug_check (struct buffer *b, int charpos, int bytepos)
abort ();
}
int
charpos_to_bytepos (int charpos)
EMACS_INT
charpos_to_bytepos (EMACS_INT charpos)
{
return buf_charpos_to_bytepos (current_buffer, charpos);
}
int
buf_charpos_to_bytepos (struct buffer *b, int charpos)
EMACS_INT
buf_charpos_to_bytepos (struct buffer *b, EMACS_INT charpos)
{
struct Lisp_Marker *tail;
int best_above, best_above_byte;
int best_below, best_below_byte;
EMACS_INT best_above, best_above_byte;
EMACS_INT best_below, best_below_byte;
if (charpos < BUF_BEG (b) || charpos > BUF_Z (b))
abort ();
......@@ -269,12 +269,12 @@ verify_bytepos (int charpos)
#define CONSIDER(BYTEPOS, CHARPOS) \
{ \
int this_bytepos = (BYTEPOS); \
EMACS_INT this_bytepos = (BYTEPOS); \
int changed = 0; \
\
if (this_bytepos == bytepos) \
{ \
int value = (CHARPOS); \
EMACS_INT value = (CHARPOS); \
if (byte_debug_flag) \
byte_char_debug_check (b, value, bytepos); \
return value; \
......@@ -299,7 +299,7 @@ verify_bytepos (int charpos)
{ \
if (best_above - best_below == best_above_byte - best_below_byte) \
{ \
int value = best_below + (bytepos - best_below_byte); \
EMACS_INT value = best_below + (bytepos - best_below_byte); \
if (byte_debug_flag) \
byte_char_debug_check (b, value, bytepos); \
return value; \
......@@ -307,18 +307,18 @@ verify_bytepos (int charpos)
} \
}
int
bytepos_to_charpos (int bytepos)
EMACS_INT
bytepos_to_charpos (EMACS_INT bytepos)
{
return buf_bytepos_to_charpos (current_buffer, bytepos);
}
int
buf_bytepos_to_charpos (struct buffer *b, int bytepos)
EMACS_INT
buf_bytepos_to_charpos (struct buffer *b, EMACS_INT bytepos)
{
struct Lisp_Marker *tail;
int best_above, best_above_byte;
int best_below, best_below_byte;
EMACS_INT best_above, best_above_byte;
EMACS_INT best_below, best_below_byte;
if (bytepos < BUF_BEG_BYTE (b) || bytepos > BUF_Z_BYTE (b))
abort ();
......@@ -470,7 +470,7 @@ Then it no longer slows down editing in any buffer.
Returns MARKER. */)
(Lisp_Object marker, Lisp_Object position, Lisp_Object buffer)
{
register int charno, bytepos;
register EMACS_INT charno, bytepos;
register struct buffer *b;
register struct Lisp_Marker *m;
......@@ -545,7 +545,7 @@ Returns MARKER. */)
Lisp_Object
set_marker_restricted (Lisp_Object marker, Lisp_Object pos, Lisp_Object buffer)
{
register int charno, bytepos;
register EMACS_INT charno, bytepos;
register struct buffer *b;
register struct Lisp_Marker *m;
......@@ -618,7 +618,7 @@ set_marker_restricted (Lisp_Object marker, Lisp_Object pos, Lisp_Object buffer)
character position and the corresponding byte position. */
Lisp_Object
set_marker_both (Lisp_Object marker, Lisp_Object buffer, int charpos, int bytepos)
set_marker_both (Lisp_Object marker, Lisp_Object buffer, EMACS_INT charpos, EMACS_INT bytepos)
{
register struct buffer *b;
register struct Lisp_Marker *m;
......@@ -666,7 +666,7 @@ set_marker_both (Lisp_Object marker, Lisp_Object buffer, int charpos, int bytepo
be outside the visible part. */
Lisp_Object
set_marker_restricted_both (Lisp_Object marker, Lisp_Object buffer, int charpos, int bytepos)
set_marker_restricted_both (Lisp_Object marker, Lisp_Object buffer, EMACS_INT charpos, EMACS_INT bytepos)
{
register struct buffer *b;
register struct Lisp_Marker *m;
......@@ -776,7 +776,7 @@ unchain_marker (register struct Lisp_Marker *marker)
/* Return the char position of marker MARKER, as a C integer. */
int
EMACS_INT
marker_position (Lisp_Object marker)
{
register struct Lisp_Marker *m = XMARKER (marker);
......@@ -790,12 +790,12 @@ marker_position (Lisp_Object marker)
/* Return the byte position of marker MARKER, as a C integer. */
int
EMACS_INT
marker_byte_position (Lisp_Object marker)
{
register struct Lisp_Marker *m = XMARKER (marker);
register struct buffer *buf = m->buffer;
register int i = m->bytepos;
register EMACS_INT i = m->bytepos;
if (!buf)
error ("Marker does not point anywhere");
......@@ -856,7 +856,7 @@ DEFUN ("buffer-has-markers-at", Fbuffer_has_markers_at, Sbuffer_has_markers_at,
(Lisp_Object position)
{
register struct Lisp_Marker *tail;
register int charno;
register EMACS_INT charno;
charno = XINT (position);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment