summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <[email protected]>2023-09-23 16:34:20 +0900
committerNobuyoshi Nakada <[email protected]>2023-09-23 16:34:20 +0900
commitd80002c902f128be11a567edafc6ef1a32ebb4d9 ()
treead8640d8cd414efec7ca8954e0ae86c39ce589ee
parent1da97292f86c30f863bfa1bc338b2d8e23124d2c (diff)
Improve VCS::GIT#format_changelog addessing [ci skip]
-rw-r--r--tool/lib/vcs.rb32
1 files changed, 20 insertions, 12 deletions
@@ -698,15 +698,22 @@ class VCS
fix = $1
s = s.lines
fix.each_line do |x|
case x
- when %r[^ +(\d+)s([#{LOG_FIX_REGEXP_SEPARATORS}])(.+)\2(.*)\2]o
- n = $1.to_i
- wrong = $3
- correct = $4
- begin
s[n][wrong] = correct
rescue IndexError
- message = ["format_changelog failed to replace #{wrong.dump} with #{correct.dump} at #$1\n"]
from = [1, n-2].max
to = [s.size-1, n+2].min
s.each_with_index do |e, i|
@@ -716,12 +723,13 @@ class VCS
end
raise message.join('')
end
- when %r[^( +)(\d+)i([#{LOG_FIX_REGEXP_SEPARATORS}])(.*)\3]o
- s[$2.to_i, 0] = "#{$1}#{$4}\n"
- when %r[^ +(\d+)(?:,(\d+))?d]
- n = $1.to_i
- e = $2
- s[n..(e ? e.to_i : n)] = []
end
end
s = s.join('')