improved exception system.  now both name (load name) and filename are passed.

--HG--
branch : trunk
diff --git a/jinja2/exceptions.py b/jinja2/exceptions.py
index 2653952..147ddb9 100644
--- a/jinja2/exceptions.py
+++ b/jinja2/exceptions.py
@@ -35,10 +35,15 @@
 class TemplateSyntaxError(TemplateError):
     """Raised to tell the user that there is a problem with the template."""
 
-    def __init__(self, message, lineno, filename):
-        TemplateError.__init__(self, '%s (line %s)' % (message, lineno))
+    def __init__(self, message, lineno, name=None, filename=None):
+        if name is not None:
+            extra = '%s, line %d' % (name, lineno)
+        else:
+            extra = 'line %d' % lineno
+        TemplateError.__init__(self, '%s (%s)' % (message, extra))
         self.message = message
         self.lineno = lineno
+        self.name = name
         self.filename = filename