On Sun, Aug 24, 2014 at 9:14 AM, Scott Kostyshak <skost...@princeton.edu> wrote: > On Tue, May 20, 2014 at 5:55 AM, Scott Kostyshak <skost...@princeton.edu> > wrote: >> Regarding the following extract of ?options: >> ‘editor’: a non-empty string, or a function that is called with a >> file path as argument. >> >> edit.default currently calls the function with three arguments: name, >> file, and title. For example, running the following > > To be clear with what I view as problematic, note in the above that > the documentation says the function is called with a file path as an > argument, suggesting one argument; but in practice it is called with > three arguments. > >> vimCmd <- 'vim -c "set ft=r"' >> vimEdit <- function(file_) system(paste(vimCmd, file_)) >> options(editor = vimEdit) >> myls <- edit(ls) >> >> gives "Error in editor(name, file, title) : unused arguments (file, title)". >> >> The attached patch changes edit.default to call the editor function >> with just the file path. There is at least one inconsistent behavior >> that this patch causes in its current form. It does not obey the >> following (from ?edit): >> Calling ‘edit()’, with no arguments, will result in the temporary >> file being reopened for further editing. >> >> I see two ways to address this: (1) add a getEdFile() function to >> utils/edit.R that calls a function getEd() defined in edit.c that >> returns DefaultFileName; or (2) this patch could be rewritten in C in >> a new function in edit.c. >> >> Is there any interest in this patch? >> If not, would there be interest in an update of the docs, either >> ?options (stating the possibility that if 'editor' is a function, it >> might be called with 'name', 'file', and 'title' arguments) or ?edit >> ? > > Any interest in this patch? If not, would a patch for the > documentation be considered?
Given that edit() itself is called with the three arguments, it seems more general to pass them to the editor function, and I don't see the need for a special case. You can always write your function as vimEdit <- function(file_, ...) system(paste(vimCmd, file_)) I will clarify the documentation. Best, -Deepayan ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel