aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/change.c44
-rw-r--r--src/nvim/misc1.c33
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.