From 7cf3cd7f5bfadb04bc76645fa0b186e1a76854e8 Mon Sep 17 00:00:00 2001 From: David Bartley Date: Fri, 10 Aug 2007 16:42:08 -0400 Subject: [PATCH] Updated cow to return 1 on error (still needs work). Updated Makefile to check for error from cow. Fixed bug in events.xsl that prevents events from displaying on main page. Moved mirror_* variables into cscweb.xsl. Added news about mirror.cs. --- cow/main.c | 20 +++++++++++++++++--- cscweb.xsl | 4 ++++ default.mk.in | 6 +++--- news.xml | 3 +++ xsl/events.xsl | 2 +- xsl/media.xsl | 3 --- 6 files changed, 28 insertions(+), 10 deletions(-) diff --git a/cow/main.c b/cow/main.c index 01ed63c..077ffb2 100644 --- a/cow/main.c +++ b/cow/main.c @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -17,10 +18,13 @@ extern int xmlLoadExtDtdDefaultValue; void init_extensions(); +/* TODO: check for parse errors */ +static int error = 0; + /* output usage message. progname is the name of the executable. */ static void usage(const char* progname) { - printf("Usage: %s [options] stylesheet input\n", progname); + printf("Usage: %s [options] stylesheet input output\n", progname); printf(" --param name value : pass a parameter to the stylesheet\n"); } @@ -32,6 +36,7 @@ int main(int argc, char** argv) int nbparams = 0; xsltStylesheetPtr cur = NULL; xmlDocPtr doc, res; + FILE *out; maxparams = 16; params = (const char**)malloc(sizeof(char*) * maxparams * 2); @@ -59,7 +64,7 @@ int main(int argc, char** argv) return 1; } } - if (argNum == argc) { + if ((argc - argNum) != 3) { usage(argv[0]); return 1; } @@ -73,9 +78,18 @@ int main(int argc, char** argv) cur = xsltParseStylesheetFile((const xmlChar *)argv[argNum]); argNum++; doc = xmlParseFile(argv[argNum]); + argNum++; + if(!doc) + return 1; res = xsltApplyStylesheet(cur, doc, params); - xsltSaveResultToFile(stdout, res, cur); + if(!res || error) + return 1; + out = fopen(argv[argNum], "w"); + if(!out) + return 1; + xsltSaveResultToFile(out, res, cur); + fclose(out); xsltFreeStylesheet(cur); xmlFreeDoc(res); xmlFreeDoc(doc); diff --git a/cscweb.xsl b/cscweb.xsl index 55528f3..6a9abcb 100644 --- a/cscweb.xsl +++ b/cscweb.xsl @@ -18,6 +18,10 @@ + +http://csclub.uwaterloo.ca/files/ +http://mirror.cs.uwaterloo.ca/csclub/ + diff --git a/default.mk.in b/default.mk.in index 85f23d0..2fc755c 100644 --- a/default.mk.in +++ b/default.mk.in @@ -9,12 +9,12 @@ ifdef DEBUG endif all: $(OUTPUTS) - @for i in $(SUBDIRS) ; do (cd $$i && $(MAKE) && cd ..) ; done + @for i in $(SUBDIRS) ; do (cd $$i && ($(MAKE) || exit 1) && cd ..) ; done clean-recurse: clean - @for i in $(SUBDIRS) ; do (cd $$i && $(MAKE) clean-recurse && cd ..) ; done + @for i in $(SUBDIRS) ; do (cd $$i && ($(MAKE) clean-recurse || exit 1) && cd ..) ; done clean: rm -f *.html events.ics %.html: %.xml $(ROOT)/csc.dtd $(ROOT)/cscweb.xsl $(ROOT)/xsl/*.xsl $(ROOT)/events.xml $(ROOT)/news.xml $(ROOT)/menu.xml $(ROOT)/default.mk directory.xml $(ROOT)/cow/cow - $(ROOT)/cow/cow $(XSLTARGS) $(ROOT)/cscweb.xsl $< > $@ + $(ROOT)/cow/cow $(XSLTARGS) $(ROOT)/cscweb.xsl $< $@ || exit 1; diff --git a/news.xml b/news.xml index 249bdb0..dde8e1d 100644 --- a/news.xml +++ b/news.xml @@ -2,6 +2,9 @@ + + Our talks our now mirrored on mirror.cs for ResNet and on-campus users. + The executive has been elected for the Spring 2007 term. diff --git a/xsl/events.xsl b/xsl/events.xsl index 38efa74..d09e292 100644 --- a/xsl/events.xsl +++ b/xsl/events.xsl @@ -8,7 +8,7 @@ Upcoming Events - + diff --git a/xsl/media.xsl b/xsl/media.xsl index 88c8e8b..3e5fbf4 100644 --- a/xsl/media.xsl +++ b/xsl/media.xsl @@ -4,9 +4,6 @@ xmlns:csc="http://www.csclub.uwaterloo.ca/cow" extension-element-prefixes="csc"> -http://csclub.uwaterloo.ca/files/ -http://mirror.cs.uwaterloo.ca/csc/ -