mirror of
https://github.com/neovim/neovim.git
synced 2025-09-14 15:28:17 +00:00
eval: Add s flag, use p_fs by default, error out on unknown flag
This commit is contained in:
@@ -17421,20 +17421,24 @@ static void f_writefile(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
|
||||
bool binary = false;
|
||||
bool append = false;
|
||||
bool do_fsync = true;
|
||||
bool do_fsync = !!p_fs;
|
||||
if (argvars[2].v_type != VAR_UNKNOWN) {
|
||||
const char *const flags = tv_get_string_chk(&argvars[2]);
|
||||
if (flags == NULL) {
|
||||
return;
|
||||
}
|
||||
if (strchr(flags, 'b')) {
|
||||
binary = true;
|
||||
}
|
||||
if (strchr(flags, 'a')) {
|
||||
append = true;
|
||||
}
|
||||
if (strchr(flags, 'S')) {
|
||||
do_fsync = false;
|
||||
for (const char *p = flags; *p; p++) {
|
||||
switch (*p) {
|
||||
case 'b': { binary = true; break; }
|
||||
case 'a': { append = true; break; }
|
||||
case 's': { do_fsync = true; break; }
|
||||
case 'S': { do_fsync = false; break; }
|
||||
default: {
|
||||
// Using %s, p and not %c, *p to preserve multibyte characters
|
||||
emsgf(_("E5060: Unknown flag: %s"), p);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user