diff options
author | David Kastrup <dak@gnu.org> | 2005-03-22 16:04:02 +0000 |
---|---|---|
committer | David Kastrup <dak@gnu.org> | 2005-03-22 16:04:02 +0000 |
commit | 36449382cfeaf193453e196577f3b09ccbf24c62 (patch) | |
tree | b0e31489dc49e598ace29830e0a483b5aaa0c923 /src/textprop.c | |
parent | 804db3ac663570d5f3b8479c22e08459a4f11f30 (diff) | |
download | emacs-36449382cfeaf193453e196577f3b09ccbf24c62.tar.gz |
(Fnext_char_property_change)
(Fprevious_char_property_change): allow marker as limit.
(Fnext_single_char_property_change)
(Fprevious_single_char_property_change): Check that limit is a
number in strings.
(Fnext_single_char_property_change): Coerce position to integer.
(Fprevious_single_char_property_change): Same here.
Diffstat (limited to 'src/textprop.c')
-rw-r--r-- | src/textprop.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/textprop.c b/src/textprop.c index 317f8fa6aa3..e6dd411dcc5 100644 --- a/src/textprop.c +++ b/src/textprop.c @@ -729,7 +729,7 @@ past position LIMIT; return LIMIT if nothing is found before LIMIT. */) temp = Fnext_overlay_change (position); if (! NILP (limit)) { - CHECK_NUMBER (limit); + CHECK_NUMBER_COERCE_MARKER (limit); if (XINT (limit) < XINT (temp)) temp = limit; } @@ -754,7 +754,7 @@ past position LIMIT; return LIMIT if nothing is found before LIMIT. */) temp = Fprevious_overlay_change (position); if (! NILP (limit)) { - CHECK_NUMBER (limit); + CHECK_NUMBER_COERCE_MARKER (limit); if (XINT (limit) > XINT (temp)) temp = limit; } @@ -787,7 +787,10 @@ past position LIMIT; return LIMIT if nothing is found before LIMIT. */) if (NILP (limit)) position = make_number (SCHARS (object)); else - position = limit; + { + CHECK_NUMBER (limit); + position = limit; + } } } else @@ -804,6 +807,8 @@ past position LIMIT; return LIMIT if nothing is found before LIMIT. */) Fset_buffer (object); } + CHECK_NUMBER_COERCE_MARKER (position); + initial_value = Fget_char_property (position, prop, object); if (NILP (limit)) @@ -856,7 +861,10 @@ back past position LIMIT; return LIMIT if nothing is found before LIMIT. */) if (NILP (limit)) position = make_number (SCHARS (object)); else - position = limit; + { + CHECK_NUMBER (limit); + position = limit; + } } } else @@ -872,6 +880,8 @@ back past position LIMIT; return LIMIT if nothing is found before LIMIT. */) Fset_buffer (object); } + CHECK_NUMBER_COERCE_MARKER (position); + if (NILP (limit)) XSETFASTINT (limit, BUF_BEGV (current_buffer)); else |