summaryrefslogtreecommitdiff
path: root/src/textprop.c
diff options
context:
space:
mode:
authorDavid Kastrup <dak@gnu.org>2005-03-22 16:04:02 +0000
committerDavid Kastrup <dak@gnu.org>2005-03-22 16:04:02 +0000
commit36449382cfeaf193453e196577f3b09ccbf24c62 (patch)
treeb0e31489dc49e598ace29830e0a483b5aaa0c923 /src/textprop.c
parent804db3ac663570d5f3b8479c22e08459a4f11f30 (diff)
downloademacs-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.c18
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