Mercurial > emacs
changeset 23595:e8bf0c9f869d
(Fbase64_decode_region): Fix previous change.
n
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Sat, 31 Oct 1998 05:12:07 +0000 |
parents | 05e90accc380 |
children | 8dcbcad4482c |
files | src/fns.c |
diffstat | 1 files changed, 8 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/fns.c Fri Oct 30 19:47:56 1998 +0000 +++ b/src/fns.c Sat Oct 31 05:12:07 1998 +0000 @@ -2990,15 +2990,20 @@ and delete the old. (Insert first in order to preserve markers.) */ /* We insert two spaces, then insert the decoded text in between them, at last, delete those extra two spaces. This is to avoid - byte combining. */ + byte combining while inserting. */ TEMP_SET_PT_BOTH (XFASTINT (beg), ibeg); insert_1_both (" ", 2, 2, 0, 1, 0); TEMP_SET_PT_BOTH (XFASTINT (beg) + 1, ibeg + 1); insert (decoded, decoded_length); inserted_chars = PT - (XFASTINT (beg) + 1); - del_range_both (PT, PT_BYTE, XFASTINT (end) + inserted_chars + 2, + /* At first delete the original text. This never cause byte + combining. */ + del_range_both (PT + 1, PT_BYTE + 1, XFASTINT (end) + inserted_chars + 2, iend + decoded_length + 2, 1); - del_range_both (XFASTINT (beg), ibeg, XFASTINT (beg) + 1, ibeg + 1, 1); + /* Next delete the extra spaces. This will cause byte combining + error. */ + del_range_both (PT, PT_BYTE, PT + 1, PT_BYTE + 1, 0); + del_range_both (XFASTINT (beg), ibeg, XFASTINT (beg) + 1, ibeg + 1, 0); inserted_chars = PT - XFASTINT (beg); /* If point was outside of the region, restore it exactly; else just