runtime(spec): Recognize epoch when making spec changelog in ftplugin

closes: #15537

Signed-off-by: fundawang <fundawang@yeah.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
fundawang
2024-09-10 21:43:05 +02:00
committed by Christian Brabandt
parent 2241f0845f
commit e40157641c

View File

@ -2,8 +2,9 @@
" Filename: spec.vim " Filename: spec.vim
" Maintainer: Igor Gnatenko i.gnatenko.brain@gmail.com " Maintainer: Igor Gnatenko i.gnatenko.brain@gmail.com
" Former Maintainer: Gustavo Niemeyer <niemeyer@conectiva.com> (until March 2014) " Former Maintainer: Gustavo Niemeyer <niemeyer@conectiva.com> (until March 2014)
" Last Change: Mon Jun 01 21:15 MSK 2015 Igor Gnatenko " Last Change: 2015 Jun 01
" Update by Zdenek Dohnal, 2022 May 17 " Update by Zdenek Dohnal, 2022 May 17
" 2024 Sep 10 by Vim Project: add epoch support for spec changelog, #15537
if exists("b:did_ftplugin") if exists("b:did_ftplugin")
finish finish
@ -66,9 +67,11 @@ if !exists("*s:SpecChangelog")
endif endif
let line = 0 let line = 0
let name = "" let name = ""
let epoch = ""
let ver = "" let ver = ""
let rel = "" let rel = ""
let nameline = -1 let nameline = -1
let epochline = -1
let verline = -1 let verline = -1
let relline = -1 let relline = -1
let chgline = -1 let chgline = -1
@ -77,6 +80,9 @@ if !exists("*s:SpecChangelog")
if name == "" && linestr =~? '^Name:' if name == "" && linestr =~? '^Name:'
let nameline = line let nameline = line
let name = substitute(strpart(linestr,5), '^[ ]*\([^ ]\+\)[ ]*$','\1','') let name = substitute(strpart(linestr,5), '^[ ]*\([^ ]\+\)[ ]*$','\1','')
elseif epoch == "" && linestr =~? '^Epoch:'
let epochline = line
let epoch = substitute(strpart(linestr,6), '^[ ]*\([^ ]\+\)[ ]*$','\1','')
elseif ver == "" && linestr =~? '^Version:' elseif ver == "" && linestr =~? '^Version:'
let verline = line let verline = line
let ver = substitute(strpart(linestr,8), '^[ ]*\([^ ]\+\)[ ]*$','\1','') let ver = substitute(strpart(linestr,8), '^[ ]*\([^ ]\+\)[ ]*$','\1','')
@ -93,6 +99,7 @@ if !exists("*s:SpecChangelog")
if nameline != -1 && verline != -1 && relline != -1 if nameline != -1 && verline != -1 && relline != -1
let include_release_info = exists("g:spec_chglog_release_info") let include_release_info = exists("g:spec_chglog_release_info")
let name = s:ParseRpmVars(name, nameline) let name = s:ParseRpmVars(name, nameline)
let epoch = s:ParseRpmVars(epoch, epochline)
let ver = s:ParseRpmVars(ver, verline) let ver = s:ParseRpmVars(ver, verline)
let rel = s:ParseRpmVars(rel, relline) let rel = s:ParseRpmVars(rel, relline)
else else
@ -117,6 +124,9 @@ if !exists("*s:SpecChangelog")
if chgline != -1 if chgline != -1
let tmptime = v:lc_time let tmptime = v:lc_time
language time C language time C
if strlen(epoch)
let ver = epoch.":".ver
endif
let parsed_format = "* ".strftime(format)." - ".ver."-".rel let parsed_format = "* ".strftime(format)." - ".ver."-".rel
execute "language time" tmptime execute "language time" tmptime
let release_info = "+ ".name."-".ver."-".rel let release_info = "+ ".name."-".ver."-".rel