Mercurial > emacs
changeset 110506:2cac83f5f8bc
Fix use of int instead of EMACS_INT in editfns.c.
editfns.c (transpose_markers, update_buffer_properties)
(buildmark, clip_to_bounds, Fgoto_char, overlays_around)
(get_pos_property, Fconstrain_to_field)
(Fline_beginning_position, Fline_end_position, Fprevious_char)
(Fchar_after, Fchar_before, Finsert_char)
(Finsert_buffer_substring, Fcompare_buffer_substrings)
(Fsubst_char_in_region, Fformat, Ftranspose_regions): Use
EMACS_INT for buffer and string position variables.
lisp.h (clip_to_bounds): Adjust prototype.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Thu, 23 Sep 2010 13:10:21 -0400 |
parents | e67da919e2b5 |
children | 875202ac5b45 b799d38f522a |
files | src/ChangeLog src/editfns.c src/lisp.h |
diffstat | 3 files changed, 50 insertions(+), 33 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Thu Sep 23 11:46:54 2010 -0400 +++ b/src/ChangeLog Thu Sep 23 13:10:21 2010 -0400 @@ -1,5 +1,16 @@ 2010-09-23 Eli Zaretskii <eliz@gnu.org> + * editfns.c (transpose_markers, update_buffer_properties) + (buildmark, clip_to_bounds, Fgoto_char, overlays_around) + (get_pos_property, Fconstrain_to_field) + (Fline_beginning_position, Fline_end_position, Fprevious_char) + (Fchar_after, Fchar_before, Finsert_char) + (Finsert_buffer_substring, Fcompare_buffer_substrings) + (Fsubst_char_in_region, Fformat, Ftranspose_regions): Use + EMACS_INT for buffer and string position variables. + + * lisp.h (clip_to_bounds): Adjust prototype. + * intervals.c (traverse_intervals, rotate_right, rotate_left) (balance_an_interval, split_interval_right, split_interval_left) (find_interval, next_interval, update_interval)
--- a/src/editfns.c Thu Sep 23 11:46:54 2010 -0400 +++ b/src/editfns.c Thu Sep 23 13:10:21 2010 -0400 @@ -96,7 +96,7 @@ static int tm_diff (struct tm *, struct tm *); static void find_field (Lisp_Object, Lisp_Object, Lisp_Object, EMACS_INT *, Lisp_Object, EMACS_INT *); -static void update_buffer_properties (int, int); +static void update_buffer_properties (EMACS_INT, EMACS_INT); static Lisp_Object region_limit (int); static size_t emacs_memftimeu (char *, size_t, const char *, size_t, const struct tm *, int); @@ -107,7 +107,8 @@ int, int, Lisp_Object *); static Lisp_Object subst_char_in_region_unwind (Lisp_Object); static Lisp_Object subst_char_in_region_unwind_1 (Lisp_Object); -static void transpose_markers (int, int, int, int, int, int, int, int); +static void transpose_markers (EMACS_INT, EMACS_INT, EMACS_INT, EMACS_INT, + EMACS_INT, EMACS_INT, EMACS_INT, EMACS_INT); Lisp_Object Vbuffer_access_fontify_functions; Lisp_Object Qbuffer_access_fontify_functions; @@ -246,7 +247,7 @@ } static Lisp_Object -buildmark (int charpos, int bytepos) +buildmark (EMACS_INT charpos, EMACS_INT bytepos) { register Lisp_Object mark; mark = Fmake_marker (); @@ -272,7 +273,7 @@ } int -clip_to_bounds (int lower, int num, int upper) +clip_to_bounds (EMACS_INT lower, EMACS_INT num, EMACS_INT upper) { if (num < lower) return lower; @@ -289,7 +290,7 @@ The return value is POSITION. */) (register Lisp_Object position) { - int pos; + EMACS_INT pos; if (MARKERP (position) && current_buffer == XMARKER (position)->buffer) @@ -365,11 +366,11 @@ of length LEN. */ static int -overlays_around (int pos, Lisp_Object *vec, int len) +overlays_around (EMACS_INT pos, Lisp_Object *vec, int len) { Lisp_Object overlay, start, end; struct Lisp_Overlay *tail; - int startpos, endpos; + EMACS_INT startpos, endpos; int idx = 0; for (tail = current_buffer->overlays_before; tail; tail = tail->next) @@ -437,7 +438,7 @@ return Fget_text_property (position, prop, object); else { - int posn = XINT (position); + EMACS_INT posn = XINT (position); int noverlays; Lisp_Object *overlay_vec, tem; struct buffer *obuf = current_buffer; @@ -723,7 +724,7 @@ (Lisp_Object new_pos, Lisp_Object old_pos, Lisp_Object escape_from_edge, Lisp_Object only_in_line, Lisp_Object inhibit_capture_property) { /* If non-zero, then the original point, before re-positioning. */ - int orig_point = 0; + EMACS_INT orig_point = 0; int fwd; Lisp_Object prev_old, prev_new; @@ -820,7 +821,7 @@ This function does not move point. */) (Lisp_Object n) { - int orig, orig_byte, end; + EMACS_INT orig, orig_byte, end; int count = SPECPDL_INDEX (); specbind (Qinhibit_point_motion_hooks, Qt); @@ -861,8 +862,8 @@ This function does not move point. */) (Lisp_Object n) { - int end_pos; - int orig = PT; + EMACS_INT end_pos; + EMACS_INT orig = PT; if (NILP (n)) XSETFASTINT (n, 1); @@ -1134,7 +1135,7 @@ XSETFASTINT (temp, 0); else if (!NILP (current_buffer->enable_multibyte_characters)) { - int pos = PT_BYTE; + EMACS_INT pos = PT_BYTE; DEC_POS (pos); XSETFASTINT (temp, FETCH_CHAR (pos)); } @@ -1188,7 +1189,7 @@ If POS is out of range, the value is nil. */) (Lisp_Object pos) { - register int pos_byte; + register EMACS_INT pos_byte; if (NILP (pos)) { @@ -1221,7 +1222,7 @@ (Lisp_Object pos) { register Lisp_Object val; - register int pos_byte; + register EMACS_INT pos_byte; if (NILP (pos)) { @@ -2270,7 +2271,8 @@ { register unsigned char *string; register int strlen; - register int i, n; + register int i; + register EMACS_INT n; int len; unsigned char str[MAX_MULTIBYTE_LENGTH]; @@ -2281,6 +2283,8 @@ len = CHAR_STRING (XFASTINT (character), str); else str[0] = XFASTINT (character), len = 1; + if (MOST_POSITIVE_FIXNUM / len < XINT (count)) + error ("Maximum buffer size would be exceeded"); n = XINT (count) * len; if (n <= 0) return Qnil; @@ -2404,7 +2408,7 @@ in the current buffer, if necessary. */ static void -update_buffer_properties (int start, int end) +update_buffer_properties (EMACS_INT start, EMACS_INT end) { /* If this buffer has some access functions, call them, specifying the range of the buffer being accessed. */ @@ -2485,7 +2489,7 @@ They default to the values of (point-min) and (point-max) in BUFFER. */) (Lisp_Object buffer, Lisp_Object start, Lisp_Object end) { - register int b, e, temp; + register EMACS_INT b, e, temp; register struct buffer *bp, *obuf; Lisp_Object buf; @@ -2538,13 +2542,13 @@ determines whether case is significant or ignored. */) (Lisp_Object buffer1, Lisp_Object start1, Lisp_Object end1, Lisp_Object buffer2, Lisp_Object start2, Lisp_Object end2) { - register int begp1, endp1, begp2, endp2, temp; + register EMACS_INT begp1, endp1, begp2, endp2, temp; register struct buffer *bp1, *bp2; register Lisp_Object trt = (!NILP (current_buffer->case_fold_search) ? current_buffer->case_canon_table : Qnil); - int chars = 0; - int i1, i2, i1_byte, i2_byte; + EMACS_INT chars = 0; + EMACS_INT i1, i2, i1_byte, i2_byte; /* Find the first buffer and its substring. */ @@ -2710,7 +2714,7 @@ if 0 we haven't found it yet. if < 0 we've found it and we've run the before-change-function. if > 0 we've actually performed it and the value is its position. */ - int changed = 0; + EMACS_INT changed = 0; unsigned char fromstr[MAX_MULTIBYTE_LENGTH], tostr[MAX_MULTIBYTE_LENGTH]; unsigned char *p; int count = SPECPDL_INDEX (); @@ -2719,7 +2723,7 @@ #define COMBINING_AFTER 2 #define COMBINING_BOTH (COMBINING_BEFORE | COMBINING_AFTER) int maybe_byte_combining = COMBINING_NO; - int last_changed = 0; + EMACS_INT last_changed = 0; int multibyte_p = !NILP (current_buffer->enable_multibyte_characters); restart: @@ -3514,7 +3518,7 @@ (int nargs, register Lisp_Object *args) { register int n; /* The number of the next arg to substitute */ - register int total; /* An estimate of the final length */ + register EMACS_INT total; /* An estimate of the final length */ char *buf, *p; register unsigned char *format, *end, *format_start; int nchars; @@ -3608,7 +3612,7 @@ while (format != end) if (*format++ == '%') { - int thissize = 0; + EMACS_INT thissize = 0; EMACS_INT actual_width = 0; unsigned char *this_format_start = format - 1; int field_width = 0; @@ -4023,7 +4027,8 @@ if (CONSP (props)) { - int bytepos = 0, position = 0, translated = 0, argn = 1; + EMACS_INT bytepos = 0, position = 0, translated = 0; + int argn = 1; Lisp_Object list; /* Adjust the bounds of each text property @@ -4041,7 +4046,7 @@ for (list = props; CONSP (list); list = XCDR (list)) { Lisp_Object item; - int pos; + EMACS_INT pos; item = XCAR (list); @@ -4177,11 +4182,12 @@ It's the caller's job to ensure that START1 <= END1 <= START2 <= END2. */ static void -transpose_markers (int start1, int end1, int start2, int end2, - int start1_byte, int end1_byte, - int start2_byte, int end2_byte) +transpose_markers (EMACS_INT start1, EMACS_INT end1, + EMACS_INT start2, EMACS_INT end2, + EMACS_INT start1_byte, EMACS_INT end1_byte, + EMACS_INT start2_byte, EMACS_INT end2_byte) { - register int amt1, amt1_byte, amt2, amt2_byte, diff, diff_byte, mpos; + register EMACS_INT amt1, amt1_byte, amt2, amt2_byte, diff, diff_byte, mpos; register struct Lisp_Marker *marker; /* Update point as if it were a marker. */ @@ -4278,7 +4284,7 @@ /* Swap the regions if they're reversed. */ if (start2 < end1) { - register int glumph = start1; + register EMACS_INT glumph = start1; start1 = start2; start2 = glumph; glumph = end1;
--- a/src/lisp.h Thu Sep 23 11:46:54 2010 -0400 +++ b/src/lisp.h Thu Sep 23 13:10:21 2010 -0400 @@ -2991,7 +2991,7 @@ EXFUN (Fuser_login_name, 1); EXFUN (Fsystem_name, 0); EXFUN (Fcurrent_time, 0); -extern int clip_to_bounds (int, int, int); +extern int clip_to_bounds (EMACS_INT, EMACS_INT, EMACS_INT); extern Lisp_Object make_buffer_string (EMACS_INT, EMACS_INT, int); extern Lisp_Object make_buffer_string_both (EMACS_INT, EMACS_INT, EMACS_INT, EMACS_INT, int);