diff options
author | Daniel Hahler <git@thequod.de> | 2019-06-09 19:10:26 +0200 |
---|---|---|
committer | Daniel Hahler <git@thequod.de> | 2019-08-07 14:21:23 +0200 |
commit | 75598927f2856d0df13abb7d939ecc5c96d0ddc6 (patch) | |
tree | 1ec530e370b771f373d8231fd1f8d4865f925ae3 /src | |
parent | c0f71ef826df3844e963b4933c5cfd5492583ddb (diff) | |
download | rneovim-75598927f2856d0df13abb7d939ecc5c96d0ddc6.tar.gz rneovim-75598927f2856d0df13abb7d939ecc5c96d0ddc6.tar.bz2 rneovim-75598927f2856d0df13abb7d939ecc5c96d0ddc6.zip |
move ins_str
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/change.c | 44 | ||||
-rw-r--r-- | src/nvim/misc1.c | 33 |
2 files changed, 22 insertions, 55 deletions
diff --git a/src/nvim/change.c b/src/nvim/change.c index 03ecf2539f..21d944fd96 100644 --- a/src/nvim/change.c +++ b/src/nvim/change.c @@ -644,32 +644,32 @@ void ins_char_bytes(char_u *buf, size_t charlen) * Note: Does NOT handle Replace mode. * Caller must have prepared for undo. */ - void -ins_str(char_u *s) +void ins_str(char_u *s) { - char_u *oldp, *newp; - int newlen = (int)STRLEN(s); - int oldlen; - colnr_T col; - linenr_T lnum = curwin->w_cursor.lnum; + char_u *oldp, *newp; + int newlen = (int)STRLEN(s); + int oldlen; + colnr_T col; + linenr_T lnum = curwin->w_cursor.lnum; - if (virtual_active() && curwin->w_cursor.coladd > 0) - coladvance_force(getviscol()); + if (virtual_active() && curwin->w_cursor.coladd > 0) + coladvance_force(getviscol()); - col = curwin->w_cursor.col; - oldp = ml_get(lnum); - oldlen = (int)STRLEN(oldp); + col = curwin->w_cursor.col; + oldp = ml_get(lnum); + oldlen = (int)STRLEN(oldp); - newp = alloc_check((unsigned)(oldlen + newlen + 1)); - if (newp == NULL) - return; - if (col > 0) - mch_memmove(newp, oldp, (size_t)col); - mch_memmove(newp + col, s, (size_t)newlen); - mch_memmove(newp + col + newlen, oldp + col, (size_t)(oldlen - col + 1)); - ml_replace(lnum, newp, FALSE); - inserted_bytes(lnum, col, newlen); - curwin->w_cursor.col += newlen; + newp = (char_u *)xmalloc((size_t)oldlen + (size_t)newlen + 1); + if (col > 0) { + memmove(newp, oldp, (size_t)col); + } + memmove(newp + col, s, (size_t)newlen); + int bytes = oldlen - col + 1; + assert(bytes >= 0); + memmove(newp + col + newlen, oldp + col, (size_t)bytes); + ml_replace(lnum, newp, false); + changed_bytes(lnum, col); + curwin->w_cursor.col += newlen; } /* diff --git a/src/nvim/misc1.c b/src/nvim/misc1.c index bcb1b47e2d..cfcbfdb003 100644 --- a/src/nvim/misc1.c +++ b/src/nvim/misc1.c @@ -1398,39 +1398,6 @@ void ins_char(int c) ins_char_bytes(buf, n); } -/* - * Insert a string at the cursor position. - * Note: Does NOT handle Replace mode. - * Caller must have prepared for undo. - */ -void ins_str(char_u *s) -{ - char_u *oldp, *newp; - int newlen = (int)STRLEN(s); - int oldlen; - colnr_T col; - linenr_T lnum = curwin->w_cursor.lnum; - - if (virtual_active() && curwin->w_cursor.coladd > 0) - coladvance_force(getviscol()); - - col = curwin->w_cursor.col; - oldp = ml_get(lnum); - oldlen = (int)STRLEN(oldp); - - newp = (char_u *)xmalloc((size_t)oldlen + (size_t)newlen + 1); - if (col > 0) { - memmove(newp, oldp, (size_t)col); - } - memmove(newp + col, s, (size_t)newlen); - int bytes = oldlen - col + 1; - assert(bytes >= 0); - memmove(newp + col + newlen, oldp + col, (size_t)bytes); - ml_replace(lnum, newp, false); - changed_bytes(lnum, col); - curwin->w_cursor.col += newlen; -} - // Delete one character under the cursor. // If "fixpos" is true, don't leave the cursor on the NUL after the line. // Caller must have prepared for undo. |