diff --git a/fulltests/woman_in_red.svg b/fulltests/woman_in_red.svg
new file mode 100644
index 0000000..f5c5cc8
--- /dev/null
+++ b/fulltests/woman_in_red.svg
@@ -0,0 +1,347 @@
+
+
+
\ No newline at end of file
diff --git a/scour.py b/scour.py
index 1c3b333..b201733 100755
--- a/scour.py
+++ b/scour.py
@@ -1325,7 +1325,11 @@ def parseListOfPoints(s):
points = []
while i < len(nums):
x = SVGLength(nums[i])
- y = SVGLength(nums[i+1])
+ # if we had an odd number of points, return empty
+ if i == len(nums)-1: return []
+ else: y = SVGLength(nums[i+1])
+
+ # if the coordinates were not unitless, return empty
if x.units != Unit.NONE or y.units != Unit.NONE: return []
points.append( (str(x.value),str(y.value)) )
i += 2
diff --git a/scra.py b/scra.py
new file mode 100644
index 0000000..ab480dd
--- /dev/null
+++ b/scra.py
@@ -0,0 +1,86 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# Scour Web
+#
+# Copyright 2009 Jeff Schiller
+#
+# This file is part of Scour, http://www.codedread.com/scour/
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from mod_python import apache
+from mod_python import util
+from scour import scourString
+from optparse import OptionParser
+
+def form(req):
+ return """
+
+
+ Scrape Your SVG Files
+
+
+
+
+
+ """
+
+# defaults
+class ScourOptions:
+ simple_colors = True
+ style_to_xml = True
+ group_collapse = True
+ strip_ids = False
+ digits = 5
+
+# params are the form elements (if a checkbox is unchecked it will not be present)
+def fetch(req, indoc,**params):
+ req.content_type = "image/svg+xml"
+ options = ScourOptions()
+
+ # interpret form options
+ if not params.has_key('convertStyleToXml'):
+ options.style_to_xml = False
+ if not params.has_key('collapseGroups'):
+ options.group_collapse = False
+ if params.has_key('stripIds'):
+ options.strip_ids = True
+ if not params.has_key('simplifyColors'):
+ options.simple_colors = False
+ options.digits = int(params['digits'])
+
+ req.write(scourString(indoc,options))
+
diff --git a/web.py b/web.py
deleted file mode 100644
index 3b61ff7..0000000
--- a/web.py
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-# Scour Web
-#
-# Copyright 2009 Jeff Schiller
-#
-# This file is part of Scour, http://www.codedread.com/scour/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from mod_python import apache
-from scour import scourString
-
-def form(req):
- return """
-
-
- Scour it!
-
-
-