mirror of
https://github.com/neovim/neovim.git
synced 2025-09-29 22:48:34 +00:00
refactor(memline): distinguish mutating uses of ml_get_buf()
ml_get_buf() takes a third parameters to indicate whether the caller wants to mutate the memline data in place. However the vast majority of the call sites is using this function just to specify a buffer but without any mutation. This makes it harder to grep for the places which actually perform mutation. Solution: Remove the bool param from ml_get_buf(). it now works like ml_get() except for a non-current buffer. Add a new ml_get_buf_mut() function for the mutating use-case, which can be grepped along with the other ml_replace() etc functions which can modify the memline.
This commit is contained in:
@@ -1601,7 +1601,7 @@ static void foldAddMarker(buf_T *buf, pos_T pos, const char *marker, size_t mark
|
||||
linenr_T lnum = pos.lnum;
|
||||
|
||||
// Allocate a new line: old-line + 'cms'-start + marker + 'cms'-end
|
||||
char *line = ml_get_buf(buf, lnum, false);
|
||||
char *line = ml_get_buf(buf, lnum);
|
||||
size_t line_len = strlen(line);
|
||||
size_t added = 0;
|
||||
|
||||
@@ -1661,7 +1661,7 @@ static void foldDelMarker(buf_T *buf, linenr_T lnum, char *marker, size_t marker
|
||||
}
|
||||
|
||||
char *cms = buf->b_p_cms;
|
||||
char *line = ml_get_buf(buf, lnum, false);
|
||||
char *line = ml_get_buf(buf, lnum);
|
||||
for (char *p = line; *p != NUL; p++) {
|
||||
if (strncmp(p, marker, markerlen) != 0) {
|
||||
continue;
|
||||
@@ -2874,7 +2874,7 @@ static void foldlevelIndent(fline_T *flp)
|
||||
linenr_T lnum = flp->lnum + flp->off;
|
||||
|
||||
buf_T *buf = flp->wp->w_buffer;
|
||||
char *s = skipwhite(ml_get_buf(buf, lnum, false));
|
||||
char *s = skipwhite(ml_get_buf(buf, lnum));
|
||||
|
||||
// empty line or lines starting with a character in 'foldignore': level
|
||||
// depends on surrounding lines
|
||||
@@ -3036,7 +3036,7 @@ static void foldlevelMarker(fline_T *flp)
|
||||
flp->start = 0;
|
||||
flp->lvl_next = flp->lvl;
|
||||
|
||||
char *s = ml_get_buf(flp->wp->w_buffer, flp->lnum + flp->off, false);
|
||||
char *s = ml_get_buf(flp->wp->w_buffer, flp->lnum + flp->off);
|
||||
while (*s) {
|
||||
if (*s == cstart
|
||||
&& strncmp(s + 1, startmarker, foldstartmarkerlen - 1) == 0) {
|
||||
|
Reference in New Issue
Block a user