diff options
author | Karl Heuer <kwzh@gnu.org> | 1994-10-22 04:46:14 +0000 |
---|---|---|
committer | Karl Heuer <kwzh@gnu.org> | 1994-10-22 04:46:14 +0000 |
commit | 5fbbc223a5a799949c050bb8a2c809a34744502e (patch) | |
tree | fbcfa0f6d7dc48c459a36e363192089829521a1b /src/editfns.c | |
parent | 33ba5bb66f5253077f7022dc56e411a890fc69f6 (diff) | |
download | emacs-5fbbc223a5a799949c050bb8a2c809a34744502e.tar.gz |
(Finsert_buffer_substring): Use insert_from_buffer instead of insert.
Diffstat (limited to 'src/editfns.c')
-rw-r--r-- | src/editfns.c | 34 |
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; } |