--- trunk/instrument.c 2008/10/03 23:52:10 241 +++ trunk/instrument.c 2008/10/26 05:28:03 361 @@ -162,11 +162,19 @@ fatal("not a directory: %s", destination); } if (! directory_is_empty(destination)) { - char * jscoverage_html = make_path(destination, "jscoverage.html"); - if (stat(jscoverage_html, &buf) == -1) { + char * expected_file = NULL; + if (jscoverage_mozilla) { + char * modules_directory = make_path(destination, "modules"); + expected_file = make_path(modules_directory, "jscoverage.jsm"); + free(modules_directory); + } + else { + expected_file = make_path(destination, "jscoverage.html"); + } + if (stat(expected_file, &buf) == -1) { fatal("refusing to overwrite directory: %s", destination); } - free(jscoverage_html); + free(expected_file); } } else if (errno == ENOENT) { @@ -176,9 +184,6 @@ fatal("cannot stat directory: %s", destination); } - /* copy the resources */ - jscoverage_copy_resources(destination); - /* finally: copy the directory */ struct DirListEntry * list = make_recursive_dir_list(source); for (struct DirListEntry * p = list; p != NULL; p = p->next) { @@ -216,5 +221,30 @@ free(s); free(d); } + + /* copy the resources */ + if (jscoverage_mozilla) { + char * chrome_directory = make_path(destination, "chrome"); + char * jscoverage_chrome_directory = make_path(chrome_directory, "jscoverage"); + mkdir_if_necessary(jscoverage_chrome_directory); + copy_resource("jscoverage.manifest", chrome_directory); + copy_resource("jscoverage.html", jscoverage_chrome_directory); + copy_resource("jscoverage.css", jscoverage_chrome_directory); + copy_resource("jscoverage.js", jscoverage_chrome_directory); + copy_resource("jscoverage-throbber.gif", jscoverage_chrome_directory); + copy_resource("jscoverage-highlight.css", jscoverage_chrome_directory); + copy_resource("jscoverage.xul", jscoverage_chrome_directory); + copy_resource("jscoverage-overlay.js", jscoverage_chrome_directory); + free(jscoverage_chrome_directory); + free(chrome_directory); + + char * modules_directory = make_path(destination, "modules"); + copy_resource("jscoverage.jsm", modules_directory); + free(modules_directory); + } + else { + jscoverage_copy_resources(destination); + } + free_dir_list(list); }