mirror of
https://github.com/neovim/neovim.git
synced 2025-10-17 15:21:47 +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:
@@ -971,7 +971,7 @@ void getvcol(win_T *wp, pos_T *pos, colnr_T *start, colnr_T *cursor, colnr_T *en
|
||||
int ts = (int)wp->w_buffer->b_p_ts;
|
||||
|
||||
colnr_T vcol = 0;
|
||||
char *line = ptr = ml_get_buf(wp->w_buffer, pos->lnum, false); // start of the line
|
||||
char *line = ptr = ml_get_buf(wp->w_buffer, pos->lnum); // start of the line
|
||||
|
||||
if (pos->col == MAXCOL) {
|
||||
// continue until the NUL
|
||||
@@ -1141,7 +1141,7 @@ void getvvcol(win_T *wp, pos_T *pos, colnr_T *start, colnr_T *cursor, colnr_T *e
|
||||
colnr_T endadd = 0;
|
||||
|
||||
// Cannot put the cursor on part of a wide character.
|
||||
char *ptr = ml_get_buf(wp->w_buffer, pos->lnum, false);
|
||||
char *ptr = ml_get_buf(wp->w_buffer, pos->lnum);
|
||||
|
||||
if (pos->col < (colnr_T)strlen(ptr)) {
|
||||
int c = utf_ptr2char(ptr + pos->col);
|
||||
|
Reference in New Issue
Block a user