refactor: remove all mentions to curbuf_lock

This commit is contained in:
Thomas Vigouroux
2021-07-08 07:51:41 +02:00
parent f8ed13c0dc
commit b35fefc57f
5 changed files with 18 additions and 15 deletions

View File

@@ -525,7 +525,8 @@ struct file_buffer {
int b_flags; // various BF_ flags int b_flags; // various BF_ flags
int b_locked; // Buffer is being closed or referenced, don't int b_locked; // Buffer is being closed or referenced, don't
// let autocommands wipe it out. // let autocommands wipe it out.
int b_ro_locked; // Replacement for curbuf_lock int b_ro_locked; // Non-zero when the buffer can't be changed.
// Used for FileChangedRO
// //
// b_ffname has the full path of the file (NULL for no name). // b_ffname has the full path of the file (NULL for no name).

View File

@@ -58,7 +58,7 @@
#define EX_SBOXOK 0x40000 // allowed in the sandbox #define EX_SBOXOK 0x40000 // allowed in the sandbox
#define EX_CMDWIN 0x80000 // allowed in cmdline window; when missing #define EX_CMDWIN 0x80000 // allowed in cmdline window; when missing
// disallows editing another buffer when // disallows editing another buffer when
// curbuf_lock is set // current buffer is locked
#define EX_MODIFY 0x100000 // forbidden in non-'modifiable' buffer #define EX_MODIFY 0x100000 // forbidden in non-'modifiable' buffer
#define EX_FLAGS 0x200000 // allow flags after count in argument #define EX_FLAGS 0x200000 // allow flags after count in argument
#define EX_FILES (EX_XFILE | EX_EXTRA) // multiple extra files allowed #define EX_FILES (EX_XFILE | EX_EXTRA) // multiple extra files allowed

View File

@@ -1518,7 +1518,7 @@ static char_u * do_one_cmd(char_u **cmdlinep,
goto doend; goto doend;
} }
// Disallow editing another buffer when "curbuf_lock" is set. // Disallow editing another buffer when "curbuf->b_ro_locked" is set.
// Do allow ":checktime" (it is postponed). // Do allow ":checktime" (it is postponed).
// Do allow ":edit" (check for an argument later). // Do allow ":edit" (check for an argument later).
// Do allow ":file" with no arguments (check for an argument later). // Do allow ":file" with no arguments (check for an argument later).
@@ -1601,7 +1601,7 @@ static char_u * do_one_cmd(char_u **cmdlinep,
else else
ea.arg = skipwhite(p); ea.arg = skipwhite(p);
// ":file" cannot be run with an argument when "curbuf_lock" is set // ":file" cannot be run with an argument when "curbuf->b_ro_locked" is set
if (ea.cmdidx == CMD_file && *ea.arg != NUL && curbuf_locked()) { if (ea.cmdidx == CMD_file && *ea.arg != NUL && curbuf_locked()) {
goto doend; goto doend;
} }
@@ -7344,16 +7344,18 @@ do_exedit(
old_curwin == NULL ? curwin : NULL); old_curwin == NULL ? curwin : NULL);
} else if ((eap->cmdidx != CMD_split && eap->cmdidx != CMD_vsplit) } else if ((eap->cmdidx != CMD_split && eap->cmdidx != CMD_vsplit)
|| *eap->arg != NUL) { || *eap->arg != NUL) {
/* Can't edit another file when "curbuf_lock" is set. Only ":edit" // Can't edit another file when "curbuf->b_ro_lockec" is set. Only ":edit"
* can bring us here, others are stopped earlier. */ // can bring us here, others are stopped earlier.
if (*eap->arg != NUL && curbuf_locked()) if (*eap->arg != NUL && curbuf_locked()) {
return; return;
}
n = readonlymode; n = readonlymode;
if (eap->cmdidx == CMD_view || eap->cmdidx == CMD_sview) if (eap->cmdidx == CMD_view || eap->cmdidx == CMD_sview) {
readonlymode = TRUE; readonlymode = true;
else if (eap->cmdidx == CMD_enew) } else if (eap->cmdidx == CMD_enew) {
readonlymode = FALSE; /* 'readonly' doesn't make sense in an readonlymode = false; // 'readonly' doesn't make sense
empty buffer */ // in an empty buffer
}
if (eap->cmdidx != CMD_balt && eap->cmdidx != CMD_badd) { if (eap->cmdidx != CMD_balt && eap->cmdidx != CMD_badd) {
setpcmark(); setpcmark();
} }

View File

@@ -2412,8 +2412,8 @@ char_u * get_text_locked_msg(void) {
} }
} }
/// Check if "curbuf_lock" or "allbuf_lock" is set and return TRUE when it is /// Check if "curbuf->b_ro_locked" or "allbuf_lock" is set and
/// and give an error message. /// return TRUE when it is and give an error message.
int curbuf_locked(void) int curbuf_locked(void)
{ {
if (curbuf->b_ro_locked > 0) { if (curbuf->b_ro_locked > 0) {

View File

@@ -2965,7 +2965,7 @@ func Test_cclose_in_autocmd()
" call test_override('starting', 0) " call test_override('starting', 0)
endfunc endfunc
" Check that ":file" without an argument is possible even when "curbuf_lock" " Check that ":file" without an argument is possible even when curbuf is locked
" is set. " is set.
func Test_file_from_copen() func Test_file_from_copen()
" Works without argument. " Works without argument.