diff options
| author | Eli Zaretskii | 2010-09-23 11:46:54 -0400 |
|---|---|---|
| committer | Eli Zaretskii | 2010-09-23 11:46:54 -0400 |
| commit | e79123aa347e2d9fe33b357965d93ad1ebb89b4c (patch) | |
| tree | 958d781660085e7f702b6cad75cdf559258c39a2 /src/intervals.c | |
| parent | 579c18d04a042e78bc85c1aef081e612acd6e757 (diff) | |
| download | emacs-e79123aa347e2d9fe33b357965d93ad1ebb89b4c.tar.gz emacs-e79123aa347e2d9fe33b357965d93ad1ebb89b4c.zip | |
Fix uses of int instead of EMACS_INT in intervals.c.
intervals.c (traverse_intervals, rotate_right, rotate_left)
(balance_an_interval, split_interval_right, split_interval_left)
(find_interval, next_interval, update_interval)
(adjust_intervals_for_insertion, delete_node, delete_interval)
(interval_deletion_adjustment, adjust_intervals_for_deletion)
(offset_intervals, merge_interval_right, merge_interval_left)
(graft_intervals_into_buffer, adjust_for_invis_intang)
(move_if_not_intangible, get_local_map, copy_intervals)
(copy_intervals_to_string, compare_string_intervals)
(set_intervals_multibyte_1): Use EMACS_INT for buffer positions
and EMACS_UINT for interval tree size.
intervals.h (traverse_intervals, split_interval_right)
(split_interval_left, find_interval, offset_intervals)
(graft_intervals_into_buffer, copy_intervals)
(copy_intervals_to_string, move_if_not_intangible, get_local_map)
(update_interval): Adjust prototypes.
Diffstat (limited to 'src/intervals.c')
| -rw-r--r-- | src/intervals.c | 117 |
1 files changed, 64 insertions, 53 deletions
diff --git a/src/intervals.c b/src/intervals.c index 4d7d92fb70a..e1f4861538a 100644 --- a/src/intervals.c +++ b/src/intervals.c | |||
| @@ -222,7 +222,8 @@ traverse_intervals_noorder (INTERVAL tree, void (*function) (INTERVAL, Lisp_Obje | |||
| 222 | Pass FUNCTION two args: an interval, and ARG. */ | 222 | Pass FUNCTION two args: an interval, and ARG. */ |
| 223 | 223 | ||
| 224 | void | 224 | void |
| 225 | traverse_intervals (INTERVAL tree, int position, void (*function) (INTERVAL, Lisp_Object), Lisp_Object arg) | 225 | traverse_intervals (INTERVAL tree, EMACS_UINT position, |
| 226 | void (*function) (INTERVAL, Lisp_Object), Lisp_Object arg) | ||
| 226 | { | 227 | { |
| 227 | while (!NULL_INTERVAL_P (tree)) | 228 | while (!NULL_INTERVAL_P (tree)) |
| 228 | { | 229 | { |
| @@ -316,7 +317,7 @@ rotate_right (INTERVAL interval) | |||
| 316 | { | 317 | { |
| 317 | INTERVAL i; | 318 | INTERVAL i; |
| 318 | INTERVAL B = interval->left; | 319 | INTERVAL B = interval->left; |
| 319 | int old_total = interval->total_length; | 320 | EMACS_UINT old_total = interval->total_length; |
| 320 | 321 | ||
| 321 | /* Deal with any Parent of A; make it point to B. */ | 322 | /* Deal with any Parent of A; make it point to B. */ |
| 322 | if (! ROOT_INTERVAL_P (interval)) | 323 | if (! ROOT_INTERVAL_P (interval)) |
| @@ -363,7 +364,7 @@ rotate_left (INTERVAL interval) | |||
| 363 | { | 364 | { |
| 364 | INTERVAL i; | 365 | INTERVAL i; |
| 365 | INTERVAL B = interval->right; | 366 | INTERVAL B = interval->right; |
| 366 | int old_total = interval->total_length; | 367 | EMACS_UINT old_total = interval->total_length; |
| 367 | 368 | ||
| 368 | /* Deal with any parent of A; make it point to B. */ | 369 | /* Deal with any parent of A; make it point to B. */ |
| 369 | if (! ROOT_INTERVAL_P (interval)) | 370 | if (! ROOT_INTERVAL_P (interval)) |
| @@ -402,7 +403,7 @@ rotate_left (INTERVAL interval) | |||
| 402 | static INTERVAL | 403 | static INTERVAL |
| 403 | balance_an_interval (INTERVAL i) | 404 | balance_an_interval (INTERVAL i) |
| 404 | { | 405 | { |
| 405 | register int old_diff, new_diff; | 406 | register EMACS_INT old_diff, new_diff; |
| 406 | 407 | ||
| 407 | while (1) | 408 | while (1) |
| 408 | { | 409 | { |
| @@ -502,11 +503,11 @@ balance_intervals (INTERVAL tree) | |||
| 502 | it is still a root after this operation. */ | 503 | it is still a root after this operation. */ |
| 503 | 504 | ||
| 504 | INTERVAL | 505 | INTERVAL |
| 505 | split_interval_right (INTERVAL interval, int offset) | 506 | split_interval_right (INTERVAL interval, EMACS_INT offset) |
| 506 | { | 507 | { |
| 507 | INTERVAL new = make_interval (); | 508 | INTERVAL new = make_interval (); |
| 508 | int position = interval->position; | 509 | EMACS_UINT position = interval->position; |
| 509 | int new_length = LENGTH (interval) - offset; | 510 | EMACS_UINT new_length = LENGTH (interval) - offset; |
| 510 | 511 | ||
| 511 | new->position = position + offset; | 512 | new->position = position + offset; |
| 512 | SET_INTERVAL_PARENT (new, interval); | 513 | SET_INTERVAL_PARENT (new, interval); |
| @@ -547,10 +548,10 @@ split_interval_right (INTERVAL interval, int offset) | |||
| 547 | it is still a root after this operation. */ | 548 | it is still a root after this operation. */ |
| 548 | 549 | ||
| 549 | INTERVAL | 550 | INTERVAL |
| 550 | split_interval_left (INTERVAL interval, int offset) | 551 | split_interval_left (INTERVAL interval, EMACS_INT offset) |
| 551 | { | 552 | { |
| 552 | INTERVAL new = make_interval (); | 553 | INTERVAL new = make_interval (); |
| 553 | int new_length = offset; | 554 | EMACS_INT new_length = offset; |
| 554 | 555 | ||
| 555 | new->position = interval->position; | 556 | new->position = interval->position; |
| 556 | interval->position = interval->position + offset; | 557 | interval->position = interval->position + offset; |
| @@ -613,11 +614,11 @@ interval_start_pos (INTERVAL source) | |||
| 613 | will update this cache based on the result of find_interval. */ | 614 | will update this cache based on the result of find_interval. */ |
| 614 | 615 | ||
| 615 | INTERVAL | 616 | INTERVAL |
| 616 | find_interval (register INTERVAL tree, register int position) | 617 | find_interval (register INTERVAL tree, register EMACS_INT position) |
| 617 | { | 618 | { |
| 618 | /* The distance from the left edge of the subtree at TREE | 619 | /* The distance from the left edge of the subtree at TREE |
| 619 | to POSITION. */ | 620 | to POSITION. */ |
| 620 | register int relative_position; | 621 | register EMACS_UINT relative_position; |
| 621 | 622 | ||
| 622 | if (NULL_INTERVAL_P (tree)) | 623 | if (NULL_INTERVAL_P (tree)) |
| 623 | return NULL_INTERVAL; | 624 | return NULL_INTERVAL; |
| @@ -670,7 +671,7 @@ INTERVAL | |||
| 670 | next_interval (register INTERVAL interval) | 671 | next_interval (register INTERVAL interval) |
| 671 | { | 672 | { |
| 672 | register INTERVAL i = interval; | 673 | register INTERVAL i = interval; |
| 673 | register int next_position; | 674 | register EMACS_UINT next_position; |
| 674 | 675 | ||
| 675 | if (NULL_INTERVAL_P (i)) | 676 | if (NULL_INTERVAL_P (i)) |
| 676 | return NULL_INTERVAL; | 677 | return NULL_INTERVAL; |
| @@ -745,7 +746,7 @@ previous_interval (register INTERVAL interval) | |||
| 745 | To speed up the process, we assume that the ->position of | 746 | To speed up the process, we assume that the ->position of |
| 746 | I and all its parents is already uptodate. */ | 747 | I and all its parents is already uptodate. */ |
| 747 | INTERVAL | 748 | INTERVAL |
| 748 | update_interval (register INTERVAL i, int pos) | 749 | update_interval (register INTERVAL i, EMACS_INT pos) |
| 749 | { | 750 | { |
| 750 | if (NULL_INTERVAL_P (i)) | 751 | if (NULL_INTERVAL_P (i)) |
| 751 | return NULL_INTERVAL; | 752 | return NULL_INTERVAL; |
| @@ -864,13 +865,14 @@ adjust_intervals_for_insertion (tree, position, length) | |||
| 864 | this text, and make it have the merged properties of both ends. */ | 865 | this text, and make it have the merged properties of both ends. */ |
| 865 | 866 | ||
| 866 | static INTERVAL | 867 | static INTERVAL |
| 867 | adjust_intervals_for_insertion (INTERVAL tree, int position, int length) | 868 | adjust_intervals_for_insertion (INTERVAL tree, |
| 869 | EMACS_INT position, EMACS_INT length) | ||
| 868 | { | 870 | { |
| 869 | register INTERVAL i; | 871 | register INTERVAL i; |
| 870 | register INTERVAL temp; | 872 | register INTERVAL temp; |
| 871 | int eobp = 0; | 873 | int eobp = 0; |
| 872 | Lisp_Object parent; | 874 | Lisp_Object parent; |
| 873 | int offset; | 875 | EMACS_INT offset; |
| 874 | 876 | ||
| 875 | if (TOTAL_LENGTH (tree) == 0) /* Paranoia */ | 877 | if (TOTAL_LENGTH (tree) == 0) /* Paranoia */ |
| 876 | abort (); | 878 | abort (); |
| @@ -1228,7 +1230,7 @@ static INTERVAL | |||
| 1228 | delete_node (register INTERVAL i) | 1230 | delete_node (register INTERVAL i) |
| 1229 | { | 1231 | { |
| 1230 | register INTERVAL migrate, this; | 1232 | register INTERVAL migrate, this; |
| 1231 | register int migrate_amt; | 1233 | register EMACS_UINT migrate_amt; |
| 1232 | 1234 | ||
| 1233 | if (NULL_INTERVAL_P (i->left)) | 1235 | if (NULL_INTERVAL_P (i->left)) |
| 1234 | return i->right; | 1236 | return i->right; |
| @@ -1261,7 +1263,7 @@ void | |||
| 1261 | delete_interval (register INTERVAL i) | 1263 | delete_interval (register INTERVAL i) |
| 1262 | { | 1264 | { |
| 1263 | register INTERVAL parent; | 1265 | register INTERVAL parent; |
| 1264 | int amt = LENGTH (i); | 1266 | EMACS_UINT amt = LENGTH (i); |
| 1265 | 1267 | ||
| 1266 | if (amt > 0) /* Only used on zero-length intervals now. */ | 1268 | if (amt > 0) /* Only used on zero-length intervals now. */ |
| 1267 | abort (); | 1269 | abort (); |
| @@ -1311,10 +1313,11 @@ delete_interval (register INTERVAL i) | |||
| 1311 | Do this by recursing down TREE to the interval in question, and | 1313 | Do this by recursing down TREE to the interval in question, and |
| 1312 | deleting the appropriate amount of text. */ | 1314 | deleting the appropriate amount of text. */ |
| 1313 | 1315 | ||
| 1314 | static int | 1316 | static EMACS_UINT |
| 1315 | interval_deletion_adjustment (register INTERVAL tree, register int from, register int amount) | 1317 | interval_deletion_adjustment (register INTERVAL tree, register EMACS_UINT from, |
| 1318 | register EMACS_UINT amount) | ||
| 1316 | { | 1319 | { |
| 1317 | register int relative_position = from; | 1320 | register EMACS_UINT relative_position = from; |
| 1318 | 1321 | ||
| 1319 | if (NULL_INTERVAL_P (tree)) | 1322 | if (NULL_INTERVAL_P (tree)) |
| 1320 | return 0; | 1323 | return 0; |
| @@ -1322,9 +1325,9 @@ interval_deletion_adjustment (register INTERVAL tree, register int from, registe | |||
| 1322 | /* Left branch */ | 1325 | /* Left branch */ |
| 1323 | if (relative_position < LEFT_TOTAL_LENGTH (tree)) | 1326 | if (relative_position < LEFT_TOTAL_LENGTH (tree)) |
| 1324 | { | 1327 | { |
| 1325 | int subtract = interval_deletion_adjustment (tree->left, | 1328 | EMACS_UINT subtract = interval_deletion_adjustment (tree->left, |
| 1326 | relative_position, | 1329 | relative_position, |
| 1327 | amount); | 1330 | amount); |
| 1328 | tree->total_length -= subtract; | 1331 | tree->total_length -= subtract; |
| 1329 | CHECK_TOTAL_LENGTH (tree); | 1332 | CHECK_TOTAL_LENGTH (tree); |
| 1330 | return subtract; | 1333 | return subtract; |
| @@ -1333,7 +1336,7 @@ interval_deletion_adjustment (register INTERVAL tree, register int from, registe | |||
| 1333 | else if (relative_position >= (TOTAL_LENGTH (tree) | 1336 | else if (relative_position >= (TOTAL_LENGTH (tree) |
| 1334 | - RIGHT_TOTAL_LENGTH (tree))) | 1337 | - RIGHT_TOTAL_LENGTH (tree))) |
| 1335 | { | 1338 | { |
| 1336 | int subtract; | 1339 | EMACS_UINT subtract; |
| 1337 | 1340 | ||
| 1338 | relative_position -= (tree->total_length | 1341 | relative_position -= (tree->total_length |
| 1339 | - RIGHT_TOTAL_LENGTH (tree)); | 1342 | - RIGHT_TOTAL_LENGTH (tree)); |
| @@ -1348,9 +1351,9 @@ interval_deletion_adjustment (register INTERVAL tree, register int from, registe | |||
| 1348 | else | 1351 | else |
| 1349 | { | 1352 | { |
| 1350 | /* How much can we delete from this interval? */ | 1353 | /* How much can we delete from this interval? */ |
| 1351 | int my_amount = ((tree->total_length | 1354 | EMACS_UINT my_amount = ((tree->total_length |
| 1352 | - RIGHT_TOTAL_LENGTH (tree)) | 1355 | - RIGHT_TOTAL_LENGTH (tree)) |
| 1353 | - relative_position); | 1356 | - relative_position); |
| 1354 | 1357 | ||
| 1355 | if (amount > my_amount) | 1358 | if (amount > my_amount) |
| 1356 | amount = my_amount; | 1359 | amount = my_amount; |
| @@ -1372,12 +1375,13 @@ interval_deletion_adjustment (register INTERVAL tree, register int from, registe | |||
| 1372 | buffer position, i.e. origin 1). */ | 1375 | buffer position, i.e. origin 1). */ |
| 1373 | 1376 | ||
| 1374 | static void | 1377 | static void |
| 1375 | adjust_intervals_for_deletion (struct buffer *buffer, int start, int length) | 1378 | adjust_intervals_for_deletion (struct buffer *buffer, |
| 1379 | EMACS_INT start, EMACS_INT length) | ||
| 1376 | { | 1380 | { |
| 1377 | register int left_to_delete = length; | 1381 | register EMACS_INT left_to_delete = length; |
| 1378 | register INTERVAL tree = BUF_INTERVALS (buffer); | 1382 | register INTERVAL tree = BUF_INTERVALS (buffer); |
| 1379 | Lisp_Object parent; | 1383 | Lisp_Object parent; |
| 1380 | int offset; | 1384 | EMACS_UINT offset; |
| 1381 | 1385 | ||
| 1382 | GET_INTERVAL_OBJECT (parent, tree); | 1386 | GET_INTERVAL_OBJECT (parent, tree); |
| 1383 | offset = (BUFFERP (parent) ? BUF_BEG (XBUFFER (parent)) : 0); | 1387 | offset = (BUFFERP (parent) ? BUF_BEG (XBUFFER (parent)) : 0); |
| @@ -1423,7 +1427,7 @@ adjust_intervals_for_deletion (struct buffer *buffer, int start, int length) | |||
| 1423 | of LENGTH. */ | 1427 | of LENGTH. */ |
| 1424 | 1428 | ||
| 1425 | INLINE void | 1429 | INLINE void |
| 1426 | offset_intervals (struct buffer *buffer, int start, int length) | 1430 | offset_intervals (struct buffer *buffer, EMACS_INT start, EMACS_INT length) |
| 1427 | { | 1431 | { |
| 1428 | if (NULL_INTERVAL_P (BUF_INTERVALS (buffer)) || length == 0) | 1432 | if (NULL_INTERVAL_P (BUF_INTERVALS (buffer)) || length == 0) |
| 1429 | return; | 1433 | return; |
| @@ -1446,7 +1450,7 @@ offset_intervals (struct buffer *buffer, int start, int length) | |||
| 1446 | INTERVAL | 1450 | INTERVAL |
| 1447 | merge_interval_right (register INTERVAL i) | 1451 | merge_interval_right (register INTERVAL i) |
| 1448 | { | 1452 | { |
| 1449 | register int absorb = LENGTH (i); | 1453 | register EMACS_UINT absorb = LENGTH (i); |
| 1450 | register INTERVAL successor; | 1454 | register INTERVAL successor; |
| 1451 | 1455 | ||
| 1452 | /* Zero out this interval. */ | 1456 | /* Zero out this interval. */ |
| @@ -1502,7 +1506,7 @@ merge_interval_right (register INTERVAL i) | |||
| 1502 | INTERVAL | 1506 | INTERVAL |
| 1503 | merge_interval_left (register INTERVAL i) | 1507 | merge_interval_left (register INTERVAL i) |
| 1504 | { | 1508 | { |
| 1505 | register int absorb = LENGTH (i); | 1509 | register EMACS_UINT absorb = LENGTH (i); |
| 1506 | register INTERVAL predecessor; | 1510 | register INTERVAL predecessor; |
| 1507 | 1511 | ||
| 1508 | /* Zero out this interval. */ | 1512 | /* Zero out this interval. */ |
| @@ -1598,7 +1602,7 @@ reproduce_tree_obj (INTERVAL source, Lisp_Object parent) | |||
| 1598 | static INTERVAL | 1602 | static INTERVAL |
| 1599 | make_new_interval (intervals, start, length) | 1603 | make_new_interval (intervals, start, length) |
| 1600 | INTERVAL intervals; | 1604 | INTERVAL intervals; |
| 1601 | int start, length; | 1605 | EMACS_INT start, length; |
| 1602 | { | 1606 | { |
| 1603 | INTERVAL slot; | 1607 | INTERVAL slot; |
| 1604 | 1608 | ||
| @@ -1670,11 +1674,13 @@ make_new_interval (intervals, start, length) | |||
| 1670 | text... */ | 1674 | text... */ |
| 1671 | 1675 | ||
| 1672 | void | 1676 | void |
| 1673 | graft_intervals_into_buffer (INTERVAL source, int position, int length, struct buffer *buffer, int inherit) | 1677 | graft_intervals_into_buffer (INTERVAL source, EMACS_INT position, |
| 1678 | EMACS_INT length, struct buffer *buffer, | ||
| 1679 | int inherit) | ||
| 1674 | { | 1680 | { |
| 1675 | register INTERVAL under, over, this, prev; | 1681 | register INTERVAL under, over, this, prev; |
| 1676 | register INTERVAL tree; | 1682 | register INTERVAL tree; |
| 1677 | int over_used; | 1683 | EMACS_UINT over_used; |
| 1678 | 1684 | ||
| 1679 | tree = BUF_INTERVALS (buffer); | 1685 | tree = BUF_INTERVALS (buffer); |
| 1680 | 1686 | ||
| @@ -1921,7 +1927,8 @@ set_point (EMACS_INT charpos) | |||
| 1921 | if the invisible property comes from an overlay. */ | 1927 | if the invisible property comes from an overlay. */ |
| 1922 | 1928 | ||
| 1923 | static int | 1929 | static int |
| 1924 | adjust_for_invis_intang (int pos, int test_offs, int adj, int test_intang) | 1930 | adjust_for_invis_intang (EMACS_INT pos, EMACS_INT test_offs, EMACS_INT adj, |
| 1931 | int test_intang) | ||
| 1925 | { | 1932 | { |
| 1926 | Lisp_Object invis_propval, invis_overlay; | 1933 | Lisp_Object invis_propval, invis_overlay; |
| 1927 | Lisp_Object test_pos; | 1934 | Lisp_Object test_pos; |
| @@ -2183,7 +2190,7 @@ set_point_both (EMACS_INT charpos, EMACS_INT bytepos) | |||
| 2183 | segment that reaches all the way to point. */ | 2190 | segment that reaches all the way to point. */ |
| 2184 | 2191 | ||
| 2185 | void | 2192 | void |
| 2186 | move_if_not_intangible (int position) | 2193 | move_if_not_intangible (EMACS_INT position) |
| 2187 | { | 2194 | { |
| 2188 | Lisp_Object pos; | 2195 | Lisp_Object pos; |
| 2189 | Lisp_Object intangible_propval; | 2196 | Lisp_Object intangible_propval; |
| @@ -2290,10 +2297,11 @@ get_property_and_range (EMACS_INT pos, Lisp_Object prop, Lisp_Object *val, | |||
| 2290 | POSITION must be in the accessible part of BUFFER. */ | 2297 | POSITION must be in the accessible part of BUFFER. */ |
| 2291 | 2298 | ||
| 2292 | Lisp_Object | 2299 | Lisp_Object |
| 2293 | get_local_map (register int position, register struct buffer *buffer, Lisp_Object type) | 2300 | get_local_map (register EMACS_INT position, register struct buffer *buffer, |
| 2301 | Lisp_Object type) | ||
| 2294 | { | 2302 | { |
| 2295 | Lisp_Object prop, lispy_position, lispy_buffer; | 2303 | Lisp_Object prop, lispy_position, lispy_buffer; |
| 2296 | int old_begv, old_zv, old_begv_byte, old_zv_byte; | 2304 | EMACS_INT old_begv, old_zv, old_begv_byte, old_zv_byte; |
| 2297 | 2305 | ||
| 2298 | /* Perhaps we should just change `position' to the limit. */ | 2306 | /* Perhaps we should just change `position' to the limit. */ |
| 2299 | if (position > BUF_ZV (buffer) || position < BUF_BEGV (buffer)) | 2307 | if (position > BUF_ZV (buffer) || position < BUF_BEGV (buffer)) |
| @@ -2343,10 +2351,10 @@ get_local_map (register int position, register struct buffer *buffer, Lisp_Objec | |||
| 2343 | The new interval tree has no parent and has a starting-position of 0. */ | 2351 | The new interval tree has no parent and has a starting-position of 0. */ |
| 2344 | 2352 | ||
| 2345 | INTERVAL | 2353 | INTERVAL |
| 2346 | copy_intervals (INTERVAL tree, int start, int length) | 2354 | copy_intervals (INTERVAL tree, EMACS_INT start, EMACS_INT length) |
| 2347 | { | 2355 | { |
| 2348 | register INTERVAL i, new, t; | 2356 | register INTERVAL i, new, t; |
| 2349 | register int got, prevlen; | 2357 | register EMACS_UINT got, prevlen; |
| 2350 | 2358 | ||
| 2351 | if (NULL_INTERVAL_P (tree) || length <= 0) | 2359 | if (NULL_INTERVAL_P (tree) || length <= 0) |
| 2352 | return NULL_INTERVAL; | 2360 | return NULL_INTERVAL; |
| @@ -2384,7 +2392,8 @@ copy_intervals (INTERVAL tree, int start, int length) | |||
| 2384 | /* Give STRING the properties of BUFFER from POSITION to LENGTH. */ | 2392 | /* Give STRING the properties of BUFFER from POSITION to LENGTH. */ |
| 2385 | 2393 | ||
| 2386 | INLINE void | 2394 | INLINE void |
| 2387 | copy_intervals_to_string (Lisp_Object string, struct buffer *buffer, int position, int length) | 2395 | copy_intervals_to_string (Lisp_Object string, struct buffer *buffer, |
| 2396 | EMACS_INT position, EMACS_INT length) | ||
| 2388 | { | 2397 | { |
| 2389 | INTERVAL interval_copy = copy_intervals (BUF_INTERVALS (buffer), | 2398 | INTERVAL interval_copy = copy_intervals (BUF_INTERVALS (buffer), |
| 2390 | position, length); | 2399 | position, length); |
| @@ -2402,8 +2411,8 @@ int | |||
| 2402 | compare_string_intervals (Lisp_Object s1, Lisp_Object s2) | 2411 | compare_string_intervals (Lisp_Object s1, Lisp_Object s2) |
| 2403 | { | 2412 | { |
| 2404 | INTERVAL i1, i2; | 2413 | INTERVAL i1, i2; |
| 2405 | int pos = 0; | 2414 | EMACS_INT pos = 0; |
| 2406 | int end = SCHARS (s1); | 2415 | EMACS_INT end = SCHARS (s1); |
| 2407 | 2416 | ||
| 2408 | i1 = find_interval (STRING_INTERVALS (s1), 0); | 2417 | i1 = find_interval (STRING_INTERVALS (s1), 0); |
| 2409 | i2 = find_interval (STRING_INTERVALS (s2), 0); | 2418 | i2 = find_interval (STRING_INTERVALS (s2), 0); |
| @@ -2411,9 +2420,9 @@ compare_string_intervals (Lisp_Object s1, Lisp_Object s2) | |||
| 2411 | while (pos < end) | 2420 | while (pos < end) |
| 2412 | { | 2421 | { |
| 2413 | /* Determine how far we can go before we reach the end of I1 or I2. */ | 2422 | /* Determine how far we can go before we reach the end of I1 or I2. */ |
| 2414 | int len1 = (i1 != 0 ? INTERVAL_LAST_POS (i1) : end) - pos; | 2423 | EMACS_INT len1 = (i1 != 0 ? INTERVAL_LAST_POS (i1) : end) - pos; |
| 2415 | int len2 = (i2 != 0 ? INTERVAL_LAST_POS (i2) : end) - pos; | 2424 | EMACS_INT len2 = (i2 != 0 ? INTERVAL_LAST_POS (i2) : end) - pos; |
| 2416 | int distance = min (len1, len2); | 2425 | EMACS_INT distance = min (len1, len2); |
| 2417 | 2426 | ||
| 2418 | /* If we ever find a mismatch between the strings, | 2427 | /* If we ever find a mismatch between the strings, |
| 2419 | they differ. */ | 2428 | they differ. */ |
| @@ -2437,7 +2446,9 @@ compare_string_intervals (Lisp_Object s1, Lisp_Object s2) | |||
| 2437 | START_BYTE ... END_BYTE in bytes. */ | 2446 | START_BYTE ... END_BYTE in bytes. */ |
| 2438 | 2447 | ||
| 2439 | static void | 2448 | static void |
| 2440 | set_intervals_multibyte_1 (INTERVAL i, int multi_flag, int start, int start_byte, int end, int end_byte) | 2449 | set_intervals_multibyte_1 (INTERVAL i, int multi_flag, |
| 2450 | EMACS_INT start, EMACS_INT start_byte, | ||
| 2451 | EMACS_INT end, EMACS_INT end_byte) | ||
| 2441 | { | 2452 | { |
| 2442 | /* Fix the length of this interval. */ | 2453 | /* Fix the length of this interval. */ |
| 2443 | if (multi_flag) | 2454 | if (multi_flag) |
| @@ -2455,11 +2466,11 @@ set_intervals_multibyte_1 (INTERVAL i, int multi_flag, int start, int start_byte | |||
| 2455 | /* Recursively fix the length of the subintervals. */ | 2466 | /* Recursively fix the length of the subintervals. */ |
| 2456 | if (i->left) | 2467 | if (i->left) |
| 2457 | { | 2468 | { |
| 2458 | int left_end, left_end_byte; | 2469 | EMACS_INT left_end, left_end_byte; |
| 2459 | 2470 | ||
| 2460 | if (multi_flag) | 2471 | if (multi_flag) |
| 2461 | { | 2472 | { |
| 2462 | int temp; | 2473 | EMACS_INT temp; |
| 2463 | left_end_byte = start_byte + LEFT_TOTAL_LENGTH (i); | 2474 | left_end_byte = start_byte + LEFT_TOTAL_LENGTH (i); |
| 2464 | left_end = BYTE_TO_CHAR (left_end_byte); | 2475 | left_end = BYTE_TO_CHAR (left_end_byte); |
| 2465 | 2476 | ||
| @@ -2488,11 +2499,11 @@ set_intervals_multibyte_1 (INTERVAL i, int multi_flag, int start, int start_byte | |||
| 2488 | } | 2499 | } |
| 2489 | if (i->right) | 2500 | if (i->right) |
| 2490 | { | 2501 | { |
| 2491 | int right_start_byte, right_start; | 2502 | EMACS_INT right_start_byte, right_start; |
| 2492 | 2503 | ||
| 2493 | if (multi_flag) | 2504 | if (multi_flag) |
| 2494 | { | 2505 | { |
| 2495 | int temp; | 2506 | EMACS_INT temp; |
| 2496 | 2507 | ||
| 2497 | right_start_byte = end_byte - RIGHT_TOTAL_LENGTH (i); | 2508 | right_start_byte = end_byte - RIGHT_TOTAL_LENGTH (i); |
| 2498 | right_start = BYTE_TO_CHAR (right_start_byte); | 2509 | right_start = BYTE_TO_CHAR (right_start_byte); |