mirror of
https://github.com/neovim/neovim.git
synced 2025-09-25 04:28:33 +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:
@@ -783,7 +783,7 @@ Integer nvim_buf_set_extmark(Buffer buffer, Integer ns_id, Integer line, Integer
|
||||
});
|
||||
line = buf->b_ml.ml_line_count;
|
||||
} else if (line < buf->b_ml.ml_line_count) {
|
||||
len = opts->ephemeral ? MAXCOL : strlen(ml_get_buf(buf, (linenr_T)line + 1, false));
|
||||
len = opts->ephemeral ? MAXCOL : strlen(ml_get_buf(buf, (linenr_T)line + 1));
|
||||
}
|
||||
|
||||
if (col == -1) {
|
||||
@@ -801,7 +801,7 @@ Integer nvim_buf_set_extmark(Buffer buffer, Integer ns_id, Integer line, Integer
|
||||
|
||||
if (col2 >= 0) {
|
||||
if (line2 >= 0 && line2 < buf->b_ml.ml_line_count) {
|
||||
len = opts->ephemeral ? MAXCOL : strlen(ml_get_buf(buf, (linenr_T)line2 + 1, false));
|
||||
len = opts->ephemeral ? MAXCOL : strlen(ml_get_buf(buf, (linenr_T)line2 + 1));
|
||||
} else if (line2 == buf->b_ml.ml_line_count) {
|
||||
// We are trying to add an extmark past final newline
|
||||
len = 0;
|
||||
|
Reference in New Issue
Block a user