summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2011-06-15 23:48:01 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2011-06-15 23:48:01 -0700
commit9956144405558933e130f39fb631b21985fba998 (patch)
treed70d08c3345ab7bcb9a8166ed02c9705becb0ff1 /src
parent28177adde9132702ed05b411a12c95f05dc2ba89 (diff)
* insdel.c, lisp.h (buffer_overflow): New function.
(insert_from_buffer_1, replace_range, replace_range_2): * insdel.c (make_gap_larger): * editfns.c (Finsert_char): * fileio.c (Finsert_file_contents): Use it, to normalize wording.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog6
-rw-r--r--src/editfns.c2
-rw-r--r--src/fileio.c4
-rw-r--r--src/insdel.c14
-rw-r--r--src/lisp.h1
5 files changed, 20 insertions, 7 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index ed94ce5599..f7f1833228 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,11 @@
2011-06-16 Paul Eggert <eggert@cs.ucla.edu>
+ * insdel.c, lisp.h (buffer_overflow): New function.
+ (insert_from_buffer_1, replace_range, replace_range_2):
+ * insdel.c (make_gap_larger):
+ * editfns.c (Finsert_char):
+ * fileio.c (Finsert_file_contents): Use it, to normalize wording.
+
* buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
2011-06-15 Paul Eggert <eggert@cs.ucla.edu>
diff --git a/src/editfns.c b/src/editfns.c
index 9678d4da6a..dec0133951 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -2344,7 +2344,7 @@ from adjoining text, if those properties are sticky. */)
else
str[0] = c, len = 1;
if (BUF_BYTES_MAX / len < XINT (count))
- error ("Maximum buffer size would be exceeded");
+ buffer_overflow ();
n = XINT (count) * len;
if (n <= 0)
return Qnil;
diff --git a/src/fileio.c b/src/fileio.c
index fd5277cbd5..4458a3a480 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -3264,7 +3264,7 @@ variable `last-coding-system-used' to the coding system actually used. */)
platform that allows file sizes greater than the maximum off_t value. */
if (! not_regular
&& ! (0 <= st.st_size && st.st_size <= BUF_BYTES_MAX))
- error ("Maximum buffer size exceeded");
+ buffer_overflow ();
/* Prevent redisplay optimizations. */
current_buffer->clip_changed = 1;
@@ -3808,7 +3808,7 @@ variable `last-coding-system-used' to the coding system actually used. */)
/* Make sure point-max won't overflow after this insertion. */
XSETINT (temp, total);
if (total != XINT (temp))
- error ("Maximum buffer size exceeded");
+ buffer_overflow ();
}
else
/* For a special file, all we can do is guess. */
diff --git a/src/insdel.c b/src/insdel.c
index c0cccc65d6..875274df8e 100644
--- a/src/insdel.c
+++ b/src/insdel.c
@@ -391,6 +391,12 @@ adjust_markers_for_replace (EMACS_INT from, EMACS_INT from_byte,
}
+void
+buffer_overflow (void)
+{
+ error ("Maximum buffer size exceeded");
+}
+
/* Make the gap NBYTES_ADDED bytes longer. */
static void
@@ -408,7 +414,7 @@ make_gap_larger (EMACS_INT nbytes_added)
if (total_size < 0
/* Don't allow a buffer size that won't fit in a Lisp integer. */
|| total_size != XINT (make_number (total_size)))
- error ("Buffer exceeds maximum size");
+ buffer_overflow ();
}
enlarge_buffer_text (current_buffer, nbytes_added);
@@ -1105,7 +1111,7 @@ insert_from_buffer_1 (struct buffer *buf,
/* Make sure point-max won't overflow after this insertion. */
XSETINT (temp, outgoing_nbytes + Z);
if (outgoing_nbytes + Z != XINT (temp))
- error ("Maximum buffer size exceeded");
+ buffer_overflow ();
/* Do this before moving and increasing the gap,
because the before-change hooks might move the gap
@@ -1350,7 +1356,7 @@ replace_range (EMACS_INT from, EMACS_INT to, Lisp_Object new,
/* Make sure point-max won't overflow after this insertion. */
XSETINT (temp, Z_BYTE - nbytes_del + insbytes);
if (Z_BYTE - nbytes_del + insbytes != XINT (temp))
- error ("Maximum buffer size exceeded");
+ buffer_overflow ();
GCPRO1 (new);
@@ -1495,7 +1501,7 @@ replace_range_2 (EMACS_INT from, EMACS_INT from_byte,
/* Make sure point-max won't overflow after this insertion. */
XSETINT (temp, Z_BYTE - nbytes_del + insbytes);
if (Z_BYTE - nbytes_del + insbytes != XINT (temp))
- error ("Maximum buffer size exceeded");
+ buffer_overflow ();
/* Make sure the gap is somewhere in or next to what we are deleting. */
if (from > GPT)
diff --git a/src/lisp.h b/src/lisp.h
index 83534e5543..75827deda1 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -2635,6 +2635,7 @@ extern void init_image (void);
extern Lisp_Object Qinhibit_modification_hooks;
extern void move_gap (EMACS_INT);
extern void move_gap_both (EMACS_INT, EMACS_INT);
+extern void buffer_overflow (void) NO_RETURN;
extern void make_gap (EMACS_INT);
extern EMACS_INT copy_text (const unsigned char *, unsigned char *,
EMACS_INT, int, int);