diff --git a/html/inc/host.inc b/html/inc/host.inc
index b46ef5ce91..4aeaac2ffb 100644
--- a/html/inc/host.inc
+++ b/html/inc/host.inc
@@ -272,7 +272,7 @@ function gpu_desc($x) {
$i = (int)$d[4];
$maj = (int)($i/100);
$min = $i%100;
- $str .= " driver: $maj.$min";
+ $str .= sprintf(" driver: %d.%02d", $maj, $min);
}
}
}
diff --git a/samples/wrapper/Makefile b/samples/wrapper/Makefile
index 6864b24c48..226a28d4cc 100644
--- a/samples/wrapper/Makefile
+++ b/samples/wrapper/Makefile
@@ -6,7 +6,7 @@ BOINC_API_DIR = $(BOINC_DIR)/api
BOINC_LIB_DIR = $(BOINC_DIR)/lib
BOINC_ZIP_DIR = $(BOINC_DIR)/zip
-CXXFLAGS = -g \
+CXXFLAGS = -g -O0 \
-Wall -W -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -fno-common \
-I$(BOINC_DIR) \
-I$(BOINC_LIB_DIR) \
diff --git a/samples/wrapper/job.xml b/samples/wrapper/job.xml
index 4bc0cdfa24..9df3a8462b 100644
--- a/samples/wrapper/job.xml
+++ b/samples/wrapper/job.xml
@@ -1,14 +1,15 @@
- worker
- stdin
- stdout
- 10
-
-
- worker
- stdin
- stdout
- 10
+ ./echo
+ Hello World
+ stdout_file
+ stderr_file
+
+ in.zip
+
+
+ out.zip
+ stderr.txt
+
diff --git a/samples/wrapper/wrapper.cpp b/samples/wrapper/wrapper.cpp
index ed88b08a86..4ba3af4904 100644
--- a/samples/wrapper/wrapper.cpp
+++ b/samples/wrapper/wrapper.cpp
@@ -400,6 +400,7 @@ int parse_unzip_input(XML_PARSER& xp) {
}
if (xp.parse_string("zipfilename", s)) {
unzip_filenames.push_back(s);
+ continue;
}
fprintf(stderr,
"%s unexpected tag in job.xml: %s\n",
@@ -938,16 +939,6 @@ int main(int argc, char** argv) {
}
}
- memset(&options, 0, sizeof(options));
- options.main_program = true;
- options.check_heartbeat = true;
- options.handle_process_control = true;
-
- boinc_init_options(&options);
- fprintf(stderr, "wrapper: starting\n");
-
- boinc_get_init_data(aid);
-
retval = parse_job_file();
if (retval) {
fprintf(stderr, "can't parse job file: %d\n", retval);
@@ -966,6 +957,20 @@ int main(int argc, char** argv) {
write_checkpoint(0, 0);
get_initial_file_list();
}
+
+ // do initialization after getting initial file list,
+ // in case we're supposed to zip stderr.txt
+ //
+ memset(&options, 0, sizeof(options));
+ options.main_program = true;
+ options.check_heartbeat = true;
+ options.handle_process_control = true;
+
+ boinc_init_options(&options);
+ fprintf(stderr, "wrapper: starting\n");
+
+ boinc_get_init_data(aid);
+
if (ntasks_completed > (int)tasks.size()) {
fprintf(stderr,
"Checkpoint file: ntasks_completed too large: %d > %d\n",