aboutsummaryrefslogtreecommitdiffstats
path: root/src/buffer.c
diff options
context:
space:
mode:
authorTom Tromey2018-08-11 13:34:17 -0600
committerTom Tromey2018-08-11 13:34:17 -0600
commit78ec68e18f07a90a9ad400683b973ff51baa80e1 (patch)
tree638c986bf753e3ddab9992ba1ef0a10a3d4891f0 /src/buffer.c
parentba1c4f63e3d2adbe9b590a3c51c2a0808c84723f (diff)
parent79f59d41a3d2ef3b4a9a87265bf517206a5837ad (diff)
downloademacs-78ec68e18f07a90a9ad400683b973ff51baa80e1.tar.gz
emacs-78ec68e18f07a90a9ad400683b973ff51baa80e1.zip
Merge branch 'feature/bignum'
Diffstat (limited to 'src/buffer.c')
-rw-r--r--src/buffer.c204
1 files changed, 102 insertions, 102 deletions
diff --git a/src/buffer.c b/src/buffer.c
index 244c1851fab..ec6f4647119 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -849,7 +849,7 @@ CLONE nil means the indirect buffer's state is reset to default values. */)
849 clone_per_buffer_values (b->base_buffer, b); 849 clone_per_buffer_values (b->base_buffer, b);
850 bset_filename (b, Qnil); 850 bset_filename (b, Qnil);
851 bset_file_truename (b, Qnil); 851 bset_file_truename (b, Qnil);
852 bset_display_count (b, make_number (0)); 852 bset_display_count (b, make_fixnum (0));
853 bset_backed_up (b, Qnil); 853 bset_backed_up (b, Qnil);
854 bset_auto_save_file_name (b, Qnil); 854 bset_auto_save_file_name (b, Qnil);
855 set_buffer_internal_1 (b); 855 set_buffer_internal_1 (b);
@@ -939,7 +939,7 @@ reset_buffer (register struct buffer *b)
939 bset_file_format (b, Qnil); 939 bset_file_format (b, Qnil);
940 bset_auto_save_file_format (b, Qt); 940 bset_auto_save_file_format (b, Qt);
941 bset_last_selected_window (b, Qnil); 941 bset_last_selected_window (b, Qnil);
942 bset_display_count (b, make_number (0)); 942 bset_display_count (b, make_fixnum (0));
943 bset_display_time (b, Qnil); 943 bset_display_time (b, Qnil);
944 bset_enable_multibyte_characters 944 bset_enable_multibyte_characters
945 (b, BVAR (&buffer_defaults, enable_multibyte_characters)); 945 (b, BVAR (&buffer_defaults, enable_multibyte_characters));
@@ -1102,8 +1102,8 @@ is first appended to NAME, to speed up finding a non-existent buffer. */)
1102 { 1102 {
1103 char number[sizeof "-999999"]; 1103 char number[sizeof "-999999"];
1104 1104
1105 /* Use XINT instead of XFASTINT to work around GCC bug 80776. */ 1105 /* Use XFIXNUM instead of XFIXNAT to work around GCC bug 80776. */
1106 int i = XINT (Frandom (make_number (1000000))); 1106 int i = XFIXNUM (Frandom (make_fixnum (1000000)));
1107 eassume (0 <= i && i < 1000000); 1107 eassume (0 <= i && i < 1000000);
1108 1108
1109 AUTO_STRING_WITH_LEN (lnumber, number, sprintf (number, "-%d", i)); 1109 AUTO_STRING_WITH_LEN (lnumber, number, sprintf (number, "-%d", i));
@@ -1421,7 +1421,7 @@ text in that buffer is changed. It wraps around occasionally.
1421No argument or nil as argument means use current buffer as BUFFER. */) 1421No argument or nil as argument means use current buffer as BUFFER. */)
1422 (register Lisp_Object buffer) 1422 (register Lisp_Object buffer)
1423{ 1423{
1424 return make_number (BUF_MODIFF (decode_buffer (buffer))); 1424 return make_fixnum (BUF_MODIFF (decode_buffer (buffer)));
1425} 1425}
1426 1426
1427DEFUN ("buffer-chars-modified-tick", Fbuffer_chars_modified_tick, 1427DEFUN ("buffer-chars-modified-tick", Fbuffer_chars_modified_tick,
@@ -1436,7 +1436,7 @@ between these calls. No argument or nil as argument means use current
1436buffer as BUFFER. */) 1436buffer as BUFFER. */)
1437 (register Lisp_Object buffer) 1437 (register Lisp_Object buffer)
1438{ 1438{
1439 return make_number (BUF_CHARS_MODIFF (decode_buffer (buffer))); 1439 return make_fixnum (BUF_CHARS_MODIFF (decode_buffer (buffer)));
1440} 1440}
1441 1441
1442DEFUN ("rename-buffer", Frename_buffer, Srename_buffer, 1, 2, 1442DEFUN ("rename-buffer", Frename_buffer, Srename_buffer, 1, 2,
@@ -2203,7 +2203,7 @@ If the text under POSITION (which defaults to point) has the
2203 if (NILP (position)) 2203 if (NILP (position))
2204 XSETFASTINT (position, PT); 2204 XSETFASTINT (position, PT);
2205 else 2205 else
2206 CHECK_NUMBER (position); 2206 CHECK_FIXNUM (position);
2207 2207
2208 if (!NILP (BVAR (current_buffer, read_only)) 2208 if (!NILP (BVAR (current_buffer, read_only))
2209 && NILP (Vinhibit_read_only) 2209 && NILP (Vinhibit_read_only)
@@ -2233,16 +2233,16 @@ so the buffer is truly empty after this. */)
2233void 2233void
2234validate_region (register Lisp_Object *b, register Lisp_Object *e) 2234validate_region (register Lisp_Object *b, register Lisp_Object *e)
2235{ 2235{
2236 CHECK_NUMBER_COERCE_MARKER (*b); 2236 CHECK_FIXNUM_COERCE_MARKER (*b);
2237 CHECK_NUMBER_COERCE_MARKER (*e); 2237 CHECK_FIXNUM_COERCE_MARKER (*e);
2238 2238
2239 if (XINT (*b) > XINT (*e)) 2239 if (XFIXNUM (*b) > XFIXNUM (*e))
2240 { 2240 {
2241 Lisp_Object tem; 2241 Lisp_Object tem;
2242 tem = *b; *b = *e; *e = tem; 2242 tem = *b; *b = *e; *e = tem;
2243 } 2243 }
2244 2244
2245 if (! (BEGV <= XINT (*b) && XINT (*e) <= ZV)) 2245 if (! (BEGV <= XFIXNUM (*b) && XFIXNUM (*e) <= ZV))
2246 args_out_of_range_3 (Fcurrent_buffer (), *b, *e); 2246 args_out_of_range_3 (Fcurrent_buffer (), *b, *e);
2247} 2247}
2248 2248
@@ -2409,7 +2409,7 @@ results, see Info node `(elisp)Swapping Text'. */)
2409 && (EQ (XWINDOW (w)->contents, buf1) 2409 && (EQ (XWINDOW (w)->contents, buf1)
2410 || EQ (XWINDOW (w)->contents, buf2))) 2410 || EQ (XWINDOW (w)->contents, buf2)))
2411 Fset_marker (XWINDOW (w)->pointm, 2411 Fset_marker (XWINDOW (w)->pointm,
2412 make_number 2412 make_fixnum
2413 (BUF_BEGV (XBUFFER (XWINDOW (w)->contents))), 2413 (BUF_BEGV (XBUFFER (XWINDOW (w)->contents))),
2414 XWINDOW (w)->contents); 2414 XWINDOW (w)->contents);
2415 /* Blindly copied from pointm part. */ 2415 /* Blindly copied from pointm part. */
@@ -2417,14 +2417,14 @@ results, see Info node `(elisp)Swapping Text'. */)
2417 && (EQ (XWINDOW (w)->contents, buf1) 2417 && (EQ (XWINDOW (w)->contents, buf1)
2418 || EQ (XWINDOW (w)->contents, buf2))) 2418 || EQ (XWINDOW (w)->contents, buf2)))
2419 Fset_marker (XWINDOW (w)->old_pointm, 2419 Fset_marker (XWINDOW (w)->old_pointm,
2420 make_number 2420 make_fixnum
2421 (BUF_BEGV (XBUFFER (XWINDOW (w)->contents))), 2421 (BUF_BEGV (XBUFFER (XWINDOW (w)->contents))),
2422 XWINDOW (w)->contents); 2422 XWINDOW (w)->contents);
2423 if (MARKERP (XWINDOW (w)->start) 2423 if (MARKERP (XWINDOW (w)->start)
2424 && (EQ (XWINDOW (w)->contents, buf1) 2424 && (EQ (XWINDOW (w)->contents, buf1)
2425 || EQ (XWINDOW (w)->contents, buf2))) 2425 || EQ (XWINDOW (w)->contents, buf2)))
2426 Fset_marker (XWINDOW (w)->start, 2426 Fset_marker (XWINDOW (w)->start,
2427 make_number 2427 make_fixnum
2428 (XBUFFER (XWINDOW (w)->contents)->last_window_start), 2428 (XBUFFER (XWINDOW (w)->contents)->last_window_start),
2429 XWINDOW (w)->contents); 2429 XWINDOW (w)->contents);
2430 w = Fnext_window (w, Qt, Qt); 2430 w = Fnext_window (w, Qt, Qt);
@@ -2547,7 +2547,7 @@ current buffer is cleared. */)
2547 } 2547 }
2548 } 2548 }
2549 if (narrowed) 2549 if (narrowed)
2550 Fnarrow_to_region (make_number (begv), make_number (zv)); 2550 Fnarrow_to_region (make_fixnum (begv), make_fixnum (zv));
2551 } 2551 }
2552 else 2552 else
2553 { 2553 {
@@ -2628,7 +2628,7 @@ current buffer is cleared. */)
2628 TEMP_SET_PT (pt); 2628 TEMP_SET_PT (pt);
2629 2629
2630 if (narrowed) 2630 if (narrowed)
2631 Fnarrow_to_region (make_number (begv), make_number (zv)); 2631 Fnarrow_to_region (make_fixnum (begv), make_fixnum (zv));
2632 2632
2633 /* Do this first, so that chars_in_text asks the right question. 2633 /* Do this first, so that chars_in_text asks the right question.
2634 set_intervals_multibyte needs it too. */ 2634 set_intervals_multibyte needs it too. */
@@ -3212,17 +3212,17 @@ sort_overlays (Lisp_Object *overlay_vec, ptrdiff_t noverlays, struct window *w)
3212 sortvec[j].priority = 0; 3212 sortvec[j].priority = 0;
3213 sortvec[j].spriority = 0; 3213 sortvec[j].spriority = 0;
3214 } 3214 }
3215 else if (INTEGERP (tem)) 3215 else if (FIXNUMP (tem))
3216 { 3216 {
3217 sortvec[j].priority = XINT (tem); 3217 sortvec[j].priority = XFIXNUM (tem);
3218 sortvec[j].spriority = 0; 3218 sortvec[j].spriority = 0;
3219 } 3219 }
3220 else if (CONSP (tem)) 3220 else if (CONSP (tem))
3221 { 3221 {
3222 Lisp_Object car = XCAR (tem); 3222 Lisp_Object car = XCAR (tem);
3223 Lisp_Object cdr = XCDR (tem); 3223 Lisp_Object cdr = XCDR (tem);
3224 sortvec[j].priority = INTEGERP (car) ? XINT (car) : 0; 3224 sortvec[j].priority = FIXNUMP (car) ? XFIXNUM (car) : 0;
3225 sortvec[j].spriority = INTEGERP (cdr) ? XINT (cdr) : 0; 3225 sortvec[j].spriority = FIXNUMP (cdr) ? XFIXNUM (cdr) : 0;
3226 } 3226 }
3227 j++; 3227 j++;
3228 } 3228 }
@@ -3290,7 +3290,7 @@ record_overlay_string (struct sortstrlist *ssl, Lisp_Object str,
3290 ssl->buf[ssl->used].string = str; 3290 ssl->buf[ssl->used].string = str;
3291 ssl->buf[ssl->used].string2 = str2; 3291 ssl->buf[ssl->used].string2 = str2;
3292 ssl->buf[ssl->used].size = size; 3292 ssl->buf[ssl->used].size = size;
3293 ssl->buf[ssl->used].priority = (INTEGERP (pri) ? XINT (pri) : 0); 3293 ssl->buf[ssl->used].priority = (FIXNUMP (pri) ? XFIXNUM (pri) : 0);
3294 ssl->used++; 3294 ssl->used++;
3295 3295
3296 if (NILP (BVAR (current_buffer, enable_multibyte_characters))) 3296 if (NILP (BVAR (current_buffer, enable_multibyte_characters)))
@@ -3644,7 +3644,7 @@ fix_start_end_in_overlays (register ptrdiff_t start, register ptrdiff_t end)
3644 if (endpos < startpos) 3644 if (endpos < startpos)
3645 { 3645 {
3646 startpos = endpos; 3646 startpos = endpos;
3647 Fset_marker (OVERLAY_START (overlay), make_number (startpos), 3647 Fset_marker (OVERLAY_START (overlay), make_fixnum (startpos),
3648 Qnil); 3648 Qnil);
3649 } 3649 }
3650 3650
@@ -3692,7 +3692,7 @@ fix_start_end_in_overlays (register ptrdiff_t start, register ptrdiff_t end)
3692 if (endpos < startpos) 3692 if (endpos < startpos)
3693 { 3693 {
3694 startpos = endpos; 3694 startpos = endpos;
3695 Fset_marker (OVERLAY_START (overlay), make_number (startpos), 3695 Fset_marker (OVERLAY_START (overlay), make_fixnum (startpos),
3696 Qnil); 3696 Qnil);
3697 } 3697 }
3698 3698
@@ -3867,10 +3867,10 @@ for the rear of the overlay advance when text is inserted there
3867 if (MARKERP (end) && !EQ (Fmarker_buffer (end), buffer)) 3867 if (MARKERP (end) && !EQ (Fmarker_buffer (end), buffer))
3868 signal_error ("Marker points into wrong buffer", end); 3868 signal_error ("Marker points into wrong buffer", end);
3869 3869
3870 CHECK_NUMBER_COERCE_MARKER (beg); 3870 CHECK_FIXNUM_COERCE_MARKER (beg);
3871 CHECK_NUMBER_COERCE_MARKER (end); 3871 CHECK_FIXNUM_COERCE_MARKER (end);
3872 3872
3873 if (XINT (beg) > XINT (end)) 3873 if (XFIXNUM (beg) > XFIXNUM (end))
3874 { 3874 {
3875 Lisp_Object temp; 3875 Lisp_Object temp;
3876 temp = beg; beg = end; end = temp; 3876 temp = beg; beg = end; end = temp;
@@ -3987,10 +3987,10 @@ buffer. */)
3987 if (MARKERP (end) && !EQ (Fmarker_buffer (end), buffer)) 3987 if (MARKERP (end) && !EQ (Fmarker_buffer (end), buffer))
3988 signal_error ("Marker points into wrong buffer", end); 3988 signal_error ("Marker points into wrong buffer", end);
3989 3989
3990 CHECK_NUMBER_COERCE_MARKER (beg); 3990 CHECK_FIXNUM_COERCE_MARKER (beg);
3991 CHECK_NUMBER_COERCE_MARKER (end); 3991 CHECK_FIXNUM_COERCE_MARKER (end);
3992 3992
3993 if (XINT (beg) > XINT (end)) 3993 if (XFIXNUM (beg) > XFIXNUM (end))
3994 { 3994 {
3995 Lisp_Object temp; 3995 Lisp_Object temp;
3996 temp = beg; beg = end; end = temp; 3996 temp = beg; beg = end; end = temp;
@@ -4156,7 +4156,7 @@ If SORTED is non-nil, then sort them by decreasing priority. */)
4156 Lisp_Object *overlay_vec; 4156 Lisp_Object *overlay_vec;
4157 Lisp_Object result; 4157 Lisp_Object result;
4158 4158
4159 CHECK_NUMBER_COERCE_MARKER (pos); 4159 CHECK_FIXNUM_COERCE_MARKER (pos);
4160 4160
4161 if (!buffer_has_overlays ()) 4161 if (!buffer_has_overlays ())
4162 return Qnil; 4162 return Qnil;
@@ -4167,7 +4167,7 @@ If SORTED is non-nil, then sort them by decreasing priority. */)
4167 4167
4168 /* Put all the overlays we want in a vector in overlay_vec. 4168 /* Put all the overlays we want in a vector in overlay_vec.
4169 Store the length in len. */ 4169 Store the length in len. */
4170 noverlays = overlays_at (XINT (pos), 1, &overlay_vec, &len, 4170 noverlays = overlays_at (XFIXNUM (pos), 1, &overlay_vec, &len,
4171 NULL, NULL, 0); 4171 NULL, NULL, 0);
4172 4172
4173 if (!NILP (sorted)) 4173 if (!NILP (sorted))
@@ -4200,8 +4200,8 @@ end of the buffer. */)
4200 Lisp_Object *overlay_vec; 4200 Lisp_Object *overlay_vec;
4201 Lisp_Object result; 4201 Lisp_Object result;
4202 4202
4203 CHECK_NUMBER_COERCE_MARKER (beg); 4203 CHECK_FIXNUM_COERCE_MARKER (beg);
4204 CHECK_NUMBER_COERCE_MARKER (end); 4204 CHECK_FIXNUM_COERCE_MARKER (end);
4205 4205
4206 if (!buffer_has_overlays ()) 4206 if (!buffer_has_overlays ())
4207 return Qnil; 4207 return Qnil;
@@ -4211,7 +4211,7 @@ end of the buffer. */)
4211 4211
4212 /* Put all the overlays we want in a vector in overlay_vec. 4212 /* Put all the overlays we want in a vector in overlay_vec.
4213 Store the length in len. */ 4213 Store the length in len. */
4214 noverlays = overlays_in (XINT (beg), XINT (end), 1, &overlay_vec, &len, 4214 noverlays = overlays_in (XFIXNUM (beg), XFIXNUM (end), 1, &overlay_vec, &len,
4215 NULL, NULL); 4215 NULL, NULL);
4216 4216
4217 /* Make a list of them all. */ 4217 /* Make a list of them all. */
@@ -4232,10 +4232,10 @@ the value is (point-max). */)
4232 ptrdiff_t endpos; 4232 ptrdiff_t endpos;
4233 Lisp_Object *overlay_vec; 4233 Lisp_Object *overlay_vec;
4234 4234
4235 CHECK_NUMBER_COERCE_MARKER (pos); 4235 CHECK_FIXNUM_COERCE_MARKER (pos);
4236 4236
4237 if (!buffer_has_overlays ()) 4237 if (!buffer_has_overlays ())
4238 return make_number (ZV); 4238 return make_fixnum (ZV);
4239 4239
4240 len = 10; 4240 len = 10;
4241 overlay_vec = xmalloc (len * sizeof *overlay_vec); 4241 overlay_vec = xmalloc (len * sizeof *overlay_vec);
@@ -4243,7 +4243,7 @@ the value is (point-max). */)
4243 /* Put all the overlays we want in a vector in overlay_vec. 4243 /* Put all the overlays we want in a vector in overlay_vec.
4244 Store the length in len. 4244 Store the length in len.
4245 endpos gets the position where the next overlay starts. */ 4245 endpos gets the position where the next overlay starts. */
4246 noverlays = overlays_at (XINT (pos), 1, &overlay_vec, &len, 4246 noverlays = overlays_at (XFIXNUM (pos), 1, &overlay_vec, &len,
4247 &endpos, 0, 1); 4247 &endpos, 0, 1);
4248 4248
4249 /* If any of these overlays ends before endpos, 4249 /* If any of these overlays ends before endpos,
@@ -4260,7 +4260,7 @@ the value is (point-max). */)
4260 } 4260 }
4261 4261
4262 xfree (overlay_vec); 4262 xfree (overlay_vec);
4263 return make_number (endpos); 4263 return make_fixnum (endpos);
4264} 4264}
4265 4265
4266DEFUN ("previous-overlay-change", Fprevious_overlay_change, 4266DEFUN ("previous-overlay-change", Fprevious_overlay_change,
@@ -4274,14 +4274,14 @@ the value is (point-min). */)
4274 Lisp_Object *overlay_vec; 4274 Lisp_Object *overlay_vec;
4275 ptrdiff_t len; 4275 ptrdiff_t len;
4276 4276
4277 CHECK_NUMBER_COERCE_MARKER (pos); 4277 CHECK_FIXNUM_COERCE_MARKER (pos);
4278 4278
4279 if (!buffer_has_overlays ()) 4279 if (!buffer_has_overlays ())
4280 return make_number (BEGV); 4280 return make_fixnum (BEGV);
4281 4281
4282 /* At beginning of buffer, we know the answer; 4282 /* At beginning of buffer, we know the answer;
4283 avoid bug subtracting 1 below. */ 4283 avoid bug subtracting 1 below. */
4284 if (XINT (pos) == BEGV) 4284 if (XFIXNUM (pos) == BEGV)
4285 return pos; 4285 return pos;
4286 4286
4287 len = 10; 4287 len = 10;
@@ -4290,11 +4290,11 @@ the value is (point-min). */)
4290 /* Put all the overlays we want in a vector in overlay_vec. 4290 /* Put all the overlays we want in a vector in overlay_vec.
4291 Store the length in len. 4291 Store the length in len.
4292 prevpos gets the position of the previous change. */ 4292 prevpos gets the position of the previous change. */
4293 overlays_at (XINT (pos), 1, &overlay_vec, &len, 4293 overlays_at (XFIXNUM (pos), 1, &overlay_vec, &len,
4294 0, &prevpos, 1); 4294 0, &prevpos, 1);
4295 4295
4296 xfree (overlay_vec); 4296 xfree (overlay_vec);
4297 return make_number (prevpos); 4297 return make_fixnum (prevpos);
4298} 4298}
4299 4299
4300/* These functions are for debugging overlays. */ 4300/* These functions are for debugging overlays. */
@@ -4332,9 +4332,9 @@ for positions far away from POS). */)
4332 (Lisp_Object pos) 4332 (Lisp_Object pos)
4333{ 4333{
4334 ptrdiff_t p; 4334 ptrdiff_t p;
4335 CHECK_NUMBER_COERCE_MARKER (pos); 4335 CHECK_FIXNUM_COERCE_MARKER (pos);
4336 4336
4337 p = clip_to_bounds (PTRDIFF_MIN, XINT (pos), PTRDIFF_MAX); 4337 p = clip_to_bounds (PTRDIFF_MIN, XFIXNUM (pos), PTRDIFF_MAX);
4338 recenter_overlay_lists (current_buffer, p); 4338 recenter_overlay_lists (current_buffer, p);
4339 return Qnil; 4339 return Qnil;
4340} 4340}
@@ -4442,7 +4442,7 @@ report_overlay_modification (Lisp_Object start, Lisp_Object end, bool after,
4442 Lisp_Object prop, overlay; 4442 Lisp_Object prop, overlay;
4443 struct Lisp_Overlay *tail; 4443 struct Lisp_Overlay *tail;
4444 /* True if this change is an insertion. */ 4444 /* True if this change is an insertion. */
4445 bool insertion = (after ? XFASTINT (arg3) == 0 : EQ (start, end)); 4445 bool insertion = (after ? XFIXNAT (arg3) == 0 : EQ (start, end));
4446 4446
4447 overlay = Qnil; 4447 overlay = Qnil;
4448 tail = NULL; 4448 tail = NULL;
@@ -4470,18 +4470,18 @@ report_overlay_modification (Lisp_Object start, Lisp_Object end, bool after,
4470 ostart = OVERLAY_START (overlay); 4470 ostart = OVERLAY_START (overlay);
4471 oend = OVERLAY_END (overlay); 4471 oend = OVERLAY_END (overlay);
4472 endpos = OVERLAY_POSITION (oend); 4472 endpos = OVERLAY_POSITION (oend);
4473 if (XFASTINT (start) > endpos) 4473 if (XFIXNAT (start) > endpos)
4474 break; 4474 break;
4475 startpos = OVERLAY_POSITION (ostart); 4475 startpos = OVERLAY_POSITION (ostart);
4476 if (insertion && (XFASTINT (start) == startpos 4476 if (insertion && (XFIXNAT (start) == startpos
4477 || XFASTINT (end) == startpos)) 4477 || XFIXNAT (end) == startpos))
4478 { 4478 {
4479 prop = Foverlay_get (overlay, Qinsert_in_front_hooks); 4479 prop = Foverlay_get (overlay, Qinsert_in_front_hooks);
4480 if (!NILP (prop)) 4480 if (!NILP (prop))
4481 add_overlay_mod_hooklist (prop, overlay); 4481 add_overlay_mod_hooklist (prop, overlay);
4482 } 4482 }
4483 if (insertion && (XFASTINT (start) == endpos 4483 if (insertion && (XFIXNAT (start) == endpos
4484 || XFASTINT (end) == endpos)) 4484 || XFIXNAT (end) == endpos))
4485 { 4485 {
4486 prop = Foverlay_get (overlay, Qinsert_behind_hooks); 4486 prop = Foverlay_get (overlay, Qinsert_behind_hooks);
4487 if (!NILP (prop)) 4487 if (!NILP (prop))
@@ -4489,7 +4489,7 @@ report_overlay_modification (Lisp_Object start, Lisp_Object end, bool after,
4489 } 4489 }
4490 /* Test for intersecting intervals. This does the right thing 4490 /* Test for intersecting intervals. This does the right thing
4491 for both insertion and deletion. */ 4491 for both insertion and deletion. */
4492 if (XFASTINT (end) > startpos && XFASTINT (start) < endpos) 4492 if (XFIXNAT (end) > startpos && XFIXNAT (start) < endpos)
4493 { 4493 {
4494 prop = Foverlay_get (overlay, Qmodification_hooks); 4494 prop = Foverlay_get (overlay, Qmodification_hooks);
4495 if (!NILP (prop)) 4495 if (!NILP (prop))
@@ -4508,17 +4508,17 @@ report_overlay_modification (Lisp_Object start, Lisp_Object end, bool after,
4508 oend = OVERLAY_END (overlay); 4508 oend = OVERLAY_END (overlay);
4509 startpos = OVERLAY_POSITION (ostart); 4509 startpos = OVERLAY_POSITION (ostart);
4510 endpos = OVERLAY_POSITION (oend); 4510 endpos = OVERLAY_POSITION (oend);
4511 if (XFASTINT (end) < startpos) 4511 if (XFIXNAT (end) < startpos)
4512 break; 4512 break;
4513 if (insertion && (XFASTINT (start) == startpos 4513 if (insertion && (XFIXNAT (start) == startpos
4514 || XFASTINT (end) == startpos)) 4514 || XFIXNAT (end) == startpos))
4515 { 4515 {
4516 prop = Foverlay_get (overlay, Qinsert_in_front_hooks); 4516 prop = Foverlay_get (overlay, Qinsert_in_front_hooks);
4517 if (!NILP (prop)) 4517 if (!NILP (prop))
4518 add_overlay_mod_hooklist (prop, overlay); 4518 add_overlay_mod_hooklist (prop, overlay);
4519 } 4519 }
4520 if (insertion && (XFASTINT (start) == endpos 4520 if (insertion && (XFIXNAT (start) == endpos
4521 || XFASTINT (end) == endpos)) 4521 || XFIXNAT (end) == endpos))
4522 { 4522 {
4523 prop = Foverlay_get (overlay, Qinsert_behind_hooks); 4523 prop = Foverlay_get (overlay, Qinsert_behind_hooks);
4524 if (!NILP (prop)) 4524 if (!NILP (prop))
@@ -4526,7 +4526,7 @@ report_overlay_modification (Lisp_Object start, Lisp_Object end, bool after,
4526 } 4526 }
4527 /* Test for intersecting intervals. This does the right thing 4527 /* Test for intersecting intervals. This does the right thing
4528 for both insertion and deletion. */ 4528 for both insertion and deletion. */
4529 if (XFASTINT (end) > startpos && XFASTINT (start) < endpos) 4529 if (XFIXNAT (end) > startpos && XFIXNAT (start) < endpos)
4530 { 4530 {
4531 prop = Foverlay_get (overlay, Qmodification_hooks); 4531 prop = Foverlay_get (overlay, Qmodification_hooks);
4532 if (!NILP (prop)) 4532 if (!NILP (prop))
@@ -5082,41 +5082,41 @@ init_buffer_once (void)
5082 5082
5083 /* 0 means not a lisp var, -1 means always local, else mask. */ 5083 /* 0 means not a lisp var, -1 means always local, else mask. */
5084 memset (&buffer_local_flags, 0, sizeof buffer_local_flags); 5084 memset (&buffer_local_flags, 0, sizeof buffer_local_flags);
5085 bset_filename (&buffer_local_flags, make_number (-1)); 5085 bset_filename (&buffer_local_flags, make_fixnum (-1));
5086 bset_directory (&buffer_local_flags, make_number (-1)); 5086 bset_directory (&buffer_local_flags, make_fixnum (-1));
5087 bset_backed_up (&buffer_local_flags, make_number (-1)); 5087 bset_backed_up (&buffer_local_flags, make_fixnum (-1));
5088 bset_save_length (&buffer_local_flags, make_number (-1)); 5088 bset_save_length (&buffer_local_flags, make_fixnum (-1));
5089 bset_auto_save_file_name (&buffer_local_flags, make_number (-1)); 5089 bset_auto_save_file_name (&buffer_local_flags, make_fixnum (-1));
5090 bset_read_only (&buffer_local_flags, make_number (-1)); 5090 bset_read_only (&buffer_local_flags, make_fixnum (-1));
5091 bset_major_mode (&buffer_local_flags, make_number (-1)); 5091 bset_major_mode (&buffer_local_flags, make_fixnum (-1));
5092 bset_mode_name (&buffer_local_flags, make_number (-1)); 5092 bset_mode_name (&buffer_local_flags, make_fixnum (-1));
5093 bset_undo_list (&buffer_local_flags, make_number (-1)); 5093 bset_undo_list (&buffer_local_flags, make_fixnum (-1));
5094 bset_mark_active (&buffer_local_flags, make_number (-1)); 5094 bset_mark_active (&buffer_local_flags, make_fixnum (-1));
5095 bset_point_before_scroll (&buffer_local_flags, make_number (-1)); 5095 bset_point_before_scroll (&buffer_local_flags, make_fixnum (-1));
5096 bset_file_truename (&buffer_local_flags, make_number (-1)); 5096 bset_file_truename (&buffer_local_flags, make_fixnum (-1));
5097 bset_invisibility_spec (&buffer_local_flags, make_number (-1)); 5097 bset_invisibility_spec (&buffer_local_flags, make_fixnum (-1));
5098 bset_file_format (&buffer_local_flags, make_number (-1)); 5098 bset_file_format (&buffer_local_flags, make_fixnum (-1));
5099 bset_auto_save_file_format (&buffer_local_flags, make_number (-1)); 5099 bset_auto_save_file_format (&buffer_local_flags, make_fixnum (-1));
5100 bset_display_count (&buffer_local_flags, make_number (-1)); 5100 bset_display_count (&buffer_local_flags, make_fixnum (-1));
5101 bset_display_time (&buffer_local_flags, make_number (-1)); 5101 bset_display_time (&buffer_local_flags, make_fixnum (-1));
5102 bset_enable_multibyte_characters (&buffer_local_flags, make_number (-1)); 5102 bset_enable_multibyte_characters (&buffer_local_flags, make_fixnum (-1));
5103 5103
5104 /* These used to be stuck at 0 by default, but now that the all-zero value 5104 /* These used to be stuck at 0 by default, but now that the all-zero value
5105 means Qnil, we have to initialize them explicitly. */ 5105 means Qnil, we have to initialize them explicitly. */
5106 bset_name (&buffer_local_flags, make_number (0)); 5106 bset_name (&buffer_local_flags, make_fixnum (0));
5107 bset_mark (&buffer_local_flags, make_number (0)); 5107 bset_mark (&buffer_local_flags, make_fixnum (0));
5108 bset_local_var_alist (&buffer_local_flags, make_number (0)); 5108 bset_local_var_alist (&buffer_local_flags, make_fixnum (0));
5109 bset_keymap (&buffer_local_flags, make_number (0)); 5109 bset_keymap (&buffer_local_flags, make_fixnum (0));
5110 bset_downcase_table (&buffer_local_flags, make_number (0)); 5110 bset_downcase_table (&buffer_local_flags, make_fixnum (0));
5111 bset_upcase_table (&buffer_local_flags, make_number (0)); 5111 bset_upcase_table (&buffer_local_flags, make_fixnum (0));
5112 bset_case_canon_table (&buffer_local_flags, make_number (0)); 5112 bset_case_canon_table (&buffer_local_flags, make_fixnum (0));
5113 bset_case_eqv_table (&buffer_local_flags, make_number (0)); 5113 bset_case_eqv_table (&buffer_local_flags, make_fixnum (0));
5114 bset_minor_modes (&buffer_local_flags, make_number (0)); 5114 bset_minor_modes (&buffer_local_flags, make_fixnum (0));
5115 bset_width_table (&buffer_local_flags, make_number (0)); 5115 bset_width_table (&buffer_local_flags, make_fixnum (0));
5116 bset_pt_marker (&buffer_local_flags, make_number (0)); 5116 bset_pt_marker (&buffer_local_flags, make_fixnum (0));
5117 bset_begv_marker (&buffer_local_flags, make_number (0)); 5117 bset_begv_marker (&buffer_local_flags, make_fixnum (0));
5118 bset_zv_marker (&buffer_local_flags, make_number (0)); 5118 bset_zv_marker (&buffer_local_flags, make_fixnum (0));
5119 bset_last_selected_window (&buffer_local_flags, make_number (0)); 5119 bset_last_selected_window (&buffer_local_flags, make_fixnum (0));
5120 5120
5121 idx = 1; 5121 idx = 1;
5122 XSETFASTINT (BVAR (&buffer_local_flags, mode_line_format), idx); ++idx; 5122 XSETFASTINT (BVAR (&buffer_local_flags, mode_line_format), idx); ++idx;
@@ -5443,7 +5443,7 @@ syms_of_buffer (void)
5443{ 5443{
5444 staticpro (&last_overlay_modification_hooks); 5444 staticpro (&last_overlay_modification_hooks);
5445 last_overlay_modification_hooks 5445 last_overlay_modification_hooks
5446 = Fmake_vector (make_number (10), Qnil); 5446 = Fmake_vector (make_fixnum (10), Qnil);
5447 5447
5448 staticpro (&QSFundamental); 5448 staticpro (&QSFundamental);
5449 staticpro (&Vbuffer_alist); 5449 staticpro (&Vbuffer_alist);
@@ -5584,17 +5584,17 @@ Use the command `abbrev-mode' to change this variable. */);
5584 doc: /* Non-nil if searches and matches should ignore case. */); 5584 doc: /* Non-nil if searches and matches should ignore case. */);
5585 5585
5586 DEFVAR_PER_BUFFER ("fill-column", &BVAR (current_buffer, fill_column), 5586 DEFVAR_PER_BUFFER ("fill-column", &BVAR (current_buffer, fill_column),
5587 Qintegerp, 5587 Qfixnump,
5588 doc: /* Column beyond which automatic line-wrapping should happen. 5588 doc: /* Column beyond which automatic line-wrapping should happen.
5589Interactively, you can set the buffer local value using \\[set-fill-column]. */); 5589Interactively, you can set the buffer local value using \\[set-fill-column]. */);
5590 5590
5591 DEFVAR_PER_BUFFER ("left-margin", &BVAR (current_buffer, left_margin), 5591 DEFVAR_PER_BUFFER ("left-margin", &BVAR (current_buffer, left_margin),
5592 Qintegerp, 5592 Qfixnump,
5593 doc: /* Column for the default `indent-line-function' to indent to. 5593 doc: /* Column for the default `indent-line-function' to indent to.
5594Linefeed indents to this column in Fundamental mode. */); 5594Linefeed indents to this column in Fundamental mode. */);
5595 5595
5596 DEFVAR_PER_BUFFER ("tab-width", &BVAR (current_buffer, tab_width), 5596 DEFVAR_PER_BUFFER ("tab-width", &BVAR (current_buffer, tab_width),
5597 Qintegerp, 5597 Qfixnump,
5598 doc: /* Distance between tab stops (for display of tab characters), in columns. 5598 doc: /* Distance between tab stops (for display of tab characters), in columns.
5599NOTE: This controls the display width of a TAB character, and not 5599NOTE: This controls the display width of a TAB character, and not
5600the size of an indentation step. 5600the size of an indentation step.
@@ -5765,7 +5765,7 @@ If it is nil, that means don't auto-save this buffer. */);
5765Backing up is done before the first time the file is saved. */); 5765Backing up is done before the first time the file is saved. */);
5766 5766
5767 DEFVAR_PER_BUFFER ("buffer-saved-size", &BVAR (current_buffer, save_length), 5767 DEFVAR_PER_BUFFER ("buffer-saved-size", &BVAR (current_buffer, save_length),
5768 Qintegerp, 5768 Qfixnump,
5769 doc: /* Length of current buffer when last read in, saved or auto-saved. 5769 doc: /* Length of current buffer when last read in, saved or auto-saved.
57700 initially. 57700 initially.
5771-1 means auto-saving turned off until next real save. 5771-1 means auto-saving turned off until next real save.
@@ -5839,7 +5839,7 @@ In addition, a char-table has six extra slots to control the display of:
5839See also the functions `display-table-slot' and `set-display-table-slot'. */); 5839See also the functions `display-table-slot' and `set-display-table-slot'. */);
5840 5840
5841 DEFVAR_PER_BUFFER ("left-margin-width", &BVAR (current_buffer, left_margin_cols), 5841 DEFVAR_PER_BUFFER ("left-margin-width", &BVAR (current_buffer, left_margin_cols),
5842 Qintegerp, 5842 Qfixnump,
5843 doc: /* Width in columns of left marginal area for display of a buffer. 5843 doc: /* Width in columns of left marginal area for display of a buffer.
5844A value of nil means no marginal area. 5844A value of nil means no marginal area.
5845 5845
@@ -5847,7 +5847,7 @@ Setting this variable does not take effect until a new buffer is displayed
5847in a window. To make the change take effect, call `set-window-buffer'. */); 5847in a window. To make the change take effect, call `set-window-buffer'. */);
5848 5848
5849 DEFVAR_PER_BUFFER ("right-margin-width", &BVAR (current_buffer, right_margin_cols), 5849 DEFVAR_PER_BUFFER ("right-margin-width", &BVAR (current_buffer, right_margin_cols),
5850 Qintegerp, 5850 Qfixnump,
5851 doc: /* Width in columns of right marginal area for display of a buffer. 5851 doc: /* Width in columns of right marginal area for display of a buffer.
5852A value of nil means no marginal area. 5852A value of nil means no marginal area.
5853 5853
@@ -5855,7 +5855,7 @@ Setting this variable does not take effect until a new buffer is displayed
5855in a window. To make the change take effect, call `set-window-buffer'. */); 5855in a window. To make the change take effect, call `set-window-buffer'. */);
5856 5856
5857 DEFVAR_PER_BUFFER ("left-fringe-width", &BVAR (current_buffer, left_fringe_width), 5857 DEFVAR_PER_BUFFER ("left-fringe-width", &BVAR (current_buffer, left_fringe_width),
5858 Qintegerp, 5858 Qfixnump,
5859 doc: /* Width of this buffer's left fringe (in pixels). 5859 doc: /* Width of this buffer's left fringe (in pixels).
5860A value of 0 means no left fringe is shown in this buffer's window. 5860A value of 0 means no left fringe is shown in this buffer's window.
5861A value of nil means to use the left fringe width from the window's frame. 5861A value of nil means to use the left fringe width from the window's frame.
@@ -5864,7 +5864,7 @@ Setting this variable does not take effect until a new buffer is displayed
5864in a window. To make the change take effect, call `set-window-buffer'. */); 5864in a window. To make the change take effect, call `set-window-buffer'. */);
5865 5865
5866 DEFVAR_PER_BUFFER ("right-fringe-width", &BVAR (current_buffer, right_fringe_width), 5866 DEFVAR_PER_BUFFER ("right-fringe-width", &BVAR (current_buffer, right_fringe_width),
5867 Qintegerp, 5867 Qfixnump,
5868 doc: /* Width of this buffer's right fringe (in pixels). 5868 doc: /* Width of this buffer's right fringe (in pixels).
5869A value of 0 means no right fringe is shown in this buffer's window. 5869A value of 0 means no right fringe is shown in this buffer's window.
5870A value of nil means to use the right fringe width from the window's frame. 5870A value of nil means to use the right fringe width from the window's frame.
@@ -5881,12 +5881,12 @@ Setting this variable does not take effect until a new buffer is displayed
5881in a window. To make the change take effect, call `set-window-buffer'. */); 5881in a window. To make the change take effect, call `set-window-buffer'. */);
5882 5882
5883 DEFVAR_PER_BUFFER ("scroll-bar-width", &BVAR (current_buffer, scroll_bar_width), 5883 DEFVAR_PER_BUFFER ("scroll-bar-width", &BVAR (current_buffer, scroll_bar_width),
5884 Qintegerp, 5884 Qfixnump,
5885 doc: /* Width of this buffer's vertical scroll bars in pixels. 5885 doc: /* Width of this buffer's vertical scroll bars in pixels.
5886A value of nil means to use the scroll bar width from the window's frame. */); 5886A value of nil means to use the scroll bar width from the window's frame. */);
5887 5887
5888 DEFVAR_PER_BUFFER ("scroll-bar-height", &BVAR (current_buffer, scroll_bar_height), 5888 DEFVAR_PER_BUFFER ("scroll-bar-height", &BVAR (current_buffer, scroll_bar_height),
5889 Qintegerp, 5889 Qfixnump,
5890 doc: /* Height of this buffer's horizontal scroll bars in pixels. 5890 doc: /* Height of this buffer's horizontal scroll bars in pixels.
5891A value of nil means to use the scroll bar height from the window's frame. */); 5891A value of nil means to use the scroll bar height from the window's frame. */);
5892 5892
@@ -6156,7 +6156,7 @@ Setting this variable is very fast, much faster than scanning all the text in
6156the buffer looking for properties to change. */); 6156the buffer looking for properties to change. */);
6157 6157
6158 DEFVAR_PER_BUFFER ("buffer-display-count", 6158 DEFVAR_PER_BUFFER ("buffer-display-count",
6159 &BVAR (current_buffer, display_count), Qintegerp, 6159 &BVAR (current_buffer, display_count), Qfixnump,
6160 doc: /* A number incremented each time this buffer is displayed in a window. 6160 doc: /* A number incremented each time this buffer is displayed in a window.
6161The function `set-window-buffer' increments it. */); 6161The function `set-window-buffer' increments it. */);
6162 6162