m.pacey at lancaster.ac.uk
2007-Aug-13 14:28 UTC
[Rd] Change in grep functionality causes Rd_db to fail silently (PR#9846)
Full_Name: Mike Pacey Version: 2.5.1 OS: SUSE SE Linux 9.3 Submission from: (NULL) (194.80.32.10) Versions 2.5.0 and 2.5.1 currently fail "make check" on my system due to a silent failure in the call to Rd_db("base"): -----> ### Name: Rdutils > ### Title: Rd Utilities > ### Aliases: Rd_db Rd_parse > ### Keywords: utilities documentation > > ### ** Examples > > ## Build the Rd db for the (installed) base package. > db <- Rd_db("base") > ## Run Rd_parse on all entries in the Rd db. > db <- lapply(db, function(txt) Rd_parse(text = txt)) > ## Extract the metadata. > meta <- lapply(db, "[[", "meta") > > ## Keyword metadata per Rd file. > keywords <- lapply(meta, "[[", "keywords") > ## Tabulate the keyword entries. > kw_table <- sort(table(unlist(keywords)))Error in as.vector(x, mode) : invalid argument 'mode' Execution halted ---- Tracing through the call to Rd_db, a call is made to list_files_with_exts(). The functionality of the relevant section of that function in 2.4.0 is replicated here:> dir[1] "/usr/local/packages/R-2.4.0-acml/lib64/R/library/base/man"> files <- list.files(dir) > files[1] "base.Rd.gz"> patt[1] "\\.(Rd|rd|Rd.gz|rd.gz)$"> grep(patt, files, value = TRUE)[1] "base.Rd.gz" In 2.5.1, the behaviour of grep() seems to have changed:> dir[1] "/usr/local/packages/src/R-2.5.1/library/base/man"> files <- list.files(dir) > files[1] "base.Rd.gz"> patt[1] "\\.(Rd|rd|Rd.gz|rd.gz)$"> grep(patt, files, value = TRUE)character(0) The result is that the call to Rd_db fails to find the relevant documentation for the base package.