summaryrefslogtreecommitdiff
path: root/src/callint.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/callint.c')
-rw-r--r--src/callint.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/callint.c b/src/callint.c
index 6e835d51b18..35e1047bc70 100644
--- a/src/callint.c
+++ b/src/callint.c
@@ -160,12 +160,14 @@ char *callint_argfuns[]
= {"", "point", "mark", "region-beginning", "region-end"};
static void
-check_mark ()
+check_mark (for_region)
+ int for_region;
{
Lisp_Object tem;
tem = Fmarker_buffer (current_buffer->mark);
if (NILP (tem) || (XBUFFER (tem) != current_buffer))
- error ("The mark is not set now");
+ error (for_region ? "The mark is not set now, so there is no region"
+ : "The mark is not set now");
if (!NILP (Vtransient_mark_mode) && NILP (Vmark_even_if_inactive)
&& NILP (current_buffer->mark_active))
Fsignal (Qmark_inactive, Qnil);
@@ -609,7 +611,7 @@ supply if the command inquires which events were used to invoke it. */)
break;
case 'm': /* Value of mark. Does not do I/O. */
- check_mark ();
+ check_mark (0);
/* visargs[i] = Qnil; */
args[i] = current_buffer->mark;
varies[i] = 2;
@@ -664,7 +666,7 @@ supply if the command inquires which events were used to invoke it. */)
break;
case 'r': /* Region, point and mark as 2 args. */
- check_mark ();
+ check_mark (1);
set_marker_both (point_marker, Qnil, PT, PT_BYTE);
/* visargs[i+1] = Qnil; */
foo = marker_position (current_buffer->mark);