summaryrefslogtreecommitdiff
path: root/src/editfns.c
diff options
context:
space:
mode:
authorKarl Heuer <kwzh@gnu.org>1994-10-22 04:46:14 +0000
committerKarl Heuer <kwzh@gnu.org>1994-10-22 04:46:14 +0000
commit5fbbc223a5a799949c050bb8a2c809a34744502e (patch)
treefbcfa0f6d7dc48c459a36e363192089829521a1b /src/editfns.c
parent33ba5bb66f5253077f7022dc56e411a890fc69f6 (diff)
downloademacs-5fbbc223a5a799949c050bb8a2c809a34744502e.tar.gz
(Finsert_buffer_substring): Use insert_from_buffer instead of insert.
Diffstat (limited to 'src/editfns.c')
-rw-r--r--src/editfns.c34
1 files changed, 5 insertions, 29 deletions
diff --git a/src/editfns.c b/src/editfns.c
index 1b54160d525..654c0da2713 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -38,6 +38,8 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) > (b) ? (a) : (b))
+extern void insert_from_buffer ();
+
/* Some static data, and a function to initialize it for each run */
Lisp_Object Vsystem_name;
@@ -1055,7 +1057,7 @@ They default to the beginning and the end of BUFFER.")
(buf, b, e)
Lisp_Object buf, b, e;
{
- register int beg, end, temp, len, opoint, start;
+ register int beg, end, temp;
register struct buffer *bp;
Lisp_Object buffer;
@@ -1082,36 +1084,10 @@ They default to the beginning and the end of BUFFER.")
if (beg > end)
temp = beg, beg = end, end = temp;
- /* Move the gap or create enough gap in the current buffer. */
-
- if (point != GPT)
- move_gap (point);
- if (GAP_SIZE < end - beg)
- make_gap (end - beg - GAP_SIZE);
-
- len = end - beg;
- start = beg;
- opoint = point;
-
- if (!(BUF_BEGV (bp) <= beg
- && beg <= end
- && end <= BUF_ZV (bp)))
+ if (!(BUF_BEGV (bp) <= beg && end <= BUF_ZV (bp)))
args_out_of_range (b, e);
- /* Now the actual insertion will not do any gap motion,
- so it matters not if BUF is the current buffer. */
- if (beg < BUF_GPT (bp))
- {
- insert (BUF_CHAR_ADDRESS (bp, beg), min (end, BUF_GPT (bp)) - beg);
- beg = min (end, BUF_GPT (bp));
- }
- if (beg < end)
- insert (BUF_CHAR_ADDRESS (bp, beg), end - beg);
-
- /* Only defined if Emacs is compiled with USE_TEXT_PROPERTIES */
- graft_intervals_into_buffer (copy_intervals (bp->intervals, start, len),
- opoint, len, current_buffer, 0);
-
+ insert_from_buffer (bp, beg, end - beg, 0);
return Qnil;
}