From 01f40a89e2cac92f72b8a8f3eb7d66ba9f291438 Mon Sep 17 00:00:00 2001 From: Yihui Xie Date: Wed, 4 Apr 2012 22:48:05 -0500 Subject: [PATCH] restore working directory before knitting child documents; fixed #186 --- R/output.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/output.R b/R/output.R index 9cc974020e..29ded4a0ce 100644 --- a/R/output.R +++ b/R/output.R @@ -110,10 +110,11 @@ knit = function(input, output = NULL, tangle = FALSE, text = NULL) { optk = opts_knit$get(); on.exit(opts_knit$set(optk), add = TRUE) if (child_mode()) { + setwd(opts_knit$get('output.dir')) # always restore original working dir ## in child mode, input path needs to be adjusted if (!is_abs_path(input)) input = file.path(input_dir(), opts_knit$get('child.path'), input) - } + } else opts_knit$set(output.dir = getwd()) # record working directory in 1st run if (normal.input) opts_knit$set(input.dir = dirname(input)) # record input dir if (is.null(opts_knit$get('out.format'))) {