From 29c8f6b4af761eaba7505bb0a5213d981d8dea30 Mon Sep 17 00:00:00 2001 From: Oskar Eichler Date: Sat, 29 Aug 2026 23:15:16 +0200 Subject: [PATCH] Consume attached erb option arguments once --- libexec/erb | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/libexec/erb b/libexec/erb index 76635be..c3c0b1c 100755 --- a/libexec/erb +++ b/libexec/erb @@ -15,14 +15,17 @@ class ERB when /\A-(.)(.*)/ if $1 == '-' arg, @maybe_arg = arg.split(/=/, 2) + @maybe_arg_from_short = false return arg end raise 'unknown switch "-"' if $2[0] == ?- and $1 != 'T' if $2.size > 0 self.unshift "-#{$2}" @maybe_arg = $2 + @maybe_arg_from_short = true else @maybe_arg = nil + @maybe_arg_from_short = false end "-#{$1}" when /\A(\w+)=/ @@ -34,9 +37,17 @@ class ERB end def ARGV.req_arg - (@maybe_arg || self.shift || raise('missing argument')).tap { + begin + if @maybe_arg + self.shift if @maybe_arg_from_short + @maybe_arg + else + self.shift || raise('missing argument') + end + ensure @maybe_arg = nil - } + @maybe_arg_from_short = false + end end def trim_mode_opt(trim_mode, disable_percent)