@@ -2009,26 +2009,52 @@ local({
20092009 year <- year [- suppressauth ]
20102010 }
20112011 }
2012- if (! is.null(before ))
2013- before <- paste0(before , " " )
2014- if (! is.null(after ))
2015- after <- paste0(" " , after )
2012+
2013+ n <- length(year )
2014+ before <- if (! any(ind <- nzchar(before )))
2015+ rep_len(" " , n )
2016+ else {
2017+ before [ind ] <- paste0(before [ind ], " " )
2018+ if (length(before ) == 1L )
2019+ c(before , rep_len(" " , n - 1L ))
2020+ else
2021+ rep_len(before , n )
2022+ }
2023+ after <- if (! any(ind <- nzchar(after )))
2024+ rep_len(" " , n )
2025+ else {
2026+ after [ind ] <- paste0(" , " , after [ind ])
2027+ if (length(after ) == 1L )
2028+ c(rep_len(" " , n - 1L ), after )
2029+ else
2030+ rep_len(after , n )
2031+ }
2032+ citesep <- paste0(bibpunct [3L ], " " )
20162033 if (textual ) {
2017- result <- paste0(bibpunct [1L ], before , year , after , bibpunct [2L ])
2034+ result <- paste0(bibpunct [1L ],
2035+ before , year , after ,
2036+ bibpunct [2L ])
20182037 if (mode == " super" )
20192038 result <- paste0(auth , " ^{" , result , " }" )
20202039 else
20212040 result <- paste0(auth , " " , result )
2022- result <- paste(result , collapse = paste0( bibpunct [ 3L ], " " ) )
2041+ result <- paste(result , collapse = citesep )
20232042 } else if (numeric ) {
2024- result <- paste(year , collapse = paste0(bibpunct [3L ], " " ))
2025- result <- paste0(bibpunct [1L ], before , result , after , bibpunct [2L ])
2043+ result <- paste0(bibpunct [1L ],
2044+ paste0(before ,
2045+ year ,
2046+ after ,
2047+ collapse = citesep ),
2048+ bibpunct [2L ])
20262049 if (mode == " super" )
20272050 result <- paste0(" ^{" , result , " }" )
20282051 } else {
2029- result <- paste0(auth , bibpunct [5L ], " " , year )
2030- result <- paste(result , collapse = paste0(bibpunct [3L ], " " ))
2031- result <- paste0(bibpunct [1L ], before , result , after , bibpunct [2L ])
2052+ result <- paste0(bibpunct [1L ],
2053+ paste0(before ,
2054+ auth , bibpunct [5L ], " " , year ,
2055+ after ,
2056+ collapse = citesep ),
2057+ bibpunct [2L ])
20322058 }
20332059 result
20342060 }
0 commit comments