From 0350982fc522fc98d2a9807fd1c27b7de352f6b2 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Thu, 23 Sep 2010 21:12:18 +0200 Subject: [PATCH] Fix EMACS_INT/int conversion errors in marker.c. --- src/ChangeLog | 11 +++++++++ src/lisp.h | 14 ++++++------ src/marker.c | 62 +++++++++++++++++++++++++-------------------------- 3 files changed, 49 insertions(+), 38 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index eb6d82ee92e..199495a6c13 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,14 @@ +2010-09-23 Lars Magne Ingebrigtsen + + * 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 * intervals.c (traverse_intervals, rotate_right, rotate_left) diff --git a/src/lisp.h b/src/lisp.h index ee510e8edc9..16c92e9afe5 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -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 */ diff --git a/src/marker.c b/src/marker.c index b5ea80562df..34d8bc4e65b 100644 --- a/src/marker.c +++ b/src/marker.c @@ -27,12 +27,12 @@ along with GNU Emacs. If not, see . */ /* 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); -- 2.39.5