aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/command.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/api/command.c')
-rw-r--r--src/nvim/api/command.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/nvim/api/command.c b/src/nvim/api/command.c
index 4b93f09c61..b8892c9baa 100644
--- a/src/nvim/api/command.c
+++ b/src/nvim/api/command.c
@@ -496,18 +496,14 @@ String nvim_cmd(uint64_t channel_id, Dict(cmd) *cmd, Dict(cmd_opts) *opts, Arena
if (HAS_KEY(cmd, cmd, reg)) {
VALIDATE_MOD((ea.argt & EX_REGSTR), "register", cmd->cmd.data);
- VALIDATE_EXP((cmd->reg.size == 1),
- "reg", "single character", cmd->reg.data, {
- goto end;
- });
- char regname = cmd->reg.data[0];
+ int regname = utf_ptr2char(cmd->reg.data);
VALIDATE((regname != '='), "%s", "Cannot use register \"=", {
goto end;
});
VALIDATE(valid_yank_reg(regname,
(!IS_USER_CMDIDX(ea.cmdidx)
&& ea.cmdidx != CMD_put && ea.cmdidx != CMD_iput)),
- "Invalid register: \"%c", regname, {
+ "Invalid register: \"%s", cmd->reg.data, {
goto end;
});
ea.regname = (uint8_t)regname;
@@ -794,7 +790,7 @@ static void build_cmdline_str(char **cmdlinep, exarg_T *eap, CmdParseInfo *cmdin
// Command register.
if (eap->argt & EX_REGSTR && eap->regname) {
- kv_printf(cmdline, " %c", eap->regname);
+ kv_printf(cmdline, " %s", reg_to_mb(eap->regname));
}
eap->argc = argc;