|
authors <- as.person(eval(parse(text=description$`Authors@R`))) |
parse()ing the text from Authors@R does not work if that field contains non-ASCII characters and the DESCRIPTION file is not in the native encoding of the system processing the package (UTF-8). Typical examples are "latin1" packages with accented characters in author names, e.g.:
res <- process_package("https://cran.r-project.org/src/contrib/flexrsurv_1.4.1.tar.gz", "flexrsurv", "cran")
Proper handling of package descriptions is provided by the desc package. However, a simple fix to just support packages in latin1 encoding in addition to UTF-8 is to mark the Encoding() in get_description() as in utils:::.read_description():
get_description <- function(pkg_folder) {
desc_path <- file.path(pkg_folder, "DESCRIPTION")
out <- read.dcf(desc_path)[1, ]
if (identical(out[["Encoding"]], "latin1")) {
Encoding(out) <- "latin1"
}
as.list(out)
}
This might fix datacamp/rdocumentation-app#386.
r-package-parser/R/processing.R
Line 36 in cb48a03
parse()ing the text from Authors@R does not work if that field contains non-ASCII characters and the DESCRIPTION file is not in the native encoding of the system processing the package (UTF-8). Typical examples are "latin1" packages with accented characters in author names, e.g.:Proper handling of package descriptions is provided by the desc package. However, a simple fix to just support packages in latin1 encoding in addition to UTF-8 is to mark the
Encoding()inget_description()as inutils:::.read_description():This might fix datacamp/rdocumentation-app#386.