aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--json-rpc-shell.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/json-rpc-shell.c b/json-rpc-shell.c
index b11ce8c..a95e99e 100644
--- a/json-rpc-shell.c
+++ b/json-rpc-shell.c
@@ -3177,9 +3177,16 @@ process_edited_input (struct app_context *ctx)
print_error ("%s: %s", "input editing failed", e->message);
error_free (e);
}
- else if (!ctx->input->vtable->replace_line (ctx->input, input.str))
- print_error ("%s: %s", "input editing failed",
- "could not re-insert modified text");
+ else
+ {
+ // Strip trailing newlines, added automatically by editors
+ while (input.len && strchr ("\r\n", input.str[input.len - 1]))
+ input.str[--input.len] = 0;
+
+ if (!ctx->input->vtable->replace_line (ctx->input, input.str))
+ print_error ("%s: %s", "input editing failed",
+ "could not re-insert modified text");
+ }
if (unlink (ctx->editor_filename))
print_error ("could not unlink `%s': %s",