diff --git a/xC.c b/xC.c index 75e5ea8..d65e85a 100644 --- a/xC.c +++ b/xC.c @@ -13887,22 +13887,27 @@ build_editor_command (struct app_context *ctx, const char *filename) { case 'F': str_append (&argument, filename); - break; + continue; case 'L': str_append_printf (&argument, "%zu", line_one_based); - break; + continue; case 'C': str_append_printf (&argument, "%zu", column + 1); - break; + continue; case 'B': str_append_printf (&argument, "%d", cursor + 1); - break; + continue; case '%': case ' ': str_append_c (&argument, *editor); - break; - default: - print_warning ("unknown substitution variable"); + continue; + } + + const char *p = editor; + if (soft_assert (utf8_decode (&p, strlen (p)) > 0)) + { + log_global_error (ctx, "Unknown substitution variable: %#&s", + xstrndup (editor, p - editor)); } } if (argument.len)