@ -55,7 +55,7 @@ var (
anySHA1Pattern = regexp . MustCompile ( ` https?://(?:\S+/) { 4,5}([0-9a-f] { 40})(/[-+~_%.a-zA-Z0-9/]+)?(#[-+~_%.a-zA-Z0-9]+)? ` )
anySHA1Pattern = regexp . MustCompile ( ` https?://(?:\S+/) { 4,5}([0-9a-f] { 40})(/[-+~_%.a-zA-Z0-9/]+)?(#[-+~_%.a-zA-Z0-9]+)? ` )
// comparePattern matches "http://domain/org/repo/compare/COMMIT1...COMMIT2#hash"
// comparePattern matches "http://domain/org/repo/compare/COMMIT1...COMMIT2#hash"
comparePattern = regexp . MustCompile ( ` https?://(?:\S+/) { 4,5}([0-9a-f] { 40})(\.\.\.?)([0-9a-f] { 40})?(#[-+~_%.a-zA-Z0-9]+)? ` )
comparePattern = regexp . MustCompile ( ` https?://(?:\S+/) { 4,5}([0-9a-f] { 7, 40})(\.\.\.?)([0-9a-f]{ 7, 40})?(#[-+~_%.a-zA-Z0-9]+)?` )
validLinksPattern = regexp . MustCompile ( ` ^[a-z][\w-]+:// ` )
validLinksPattern = regexp . MustCompile ( ` ^[a-z][\w-]+:// ` )
@ -946,6 +946,13 @@ func comparePatternProcessor(ctx *RenderContext, node *html.Node) {
return
return
}
}
// Ensure that every group (m[0]...m[7]) has a match
for i := 0 ; i < 8 ; i ++ {
if m [ i ] == - 1 {
return
}
}
urlFull := node . Data [ m [ 0 ] : m [ 1 ] ]
urlFull := node . Data [ m [ 0 ] : m [ 1 ] ]
text1 := base . ShortSha ( node . Data [ m [ 2 ] : m [ 3 ] ] )
text1 := base . ShortSha ( node . Data [ m [ 2 ] : m [ 3 ] ] )
textDots := base . ShortSha ( node . Data [ m [ 4 ] : m [ 5 ] ] )
textDots := base . ShortSha ( node . Data [ m [ 4 ] : m [ 5 ] ] )