---
 MoinMoin/formatter/__init__.py    |    6 ++++++
 MoinMoin/formatter/dom_xml.py     |    4 ++++
 MoinMoin/formatter/text_html.py   |    4 ++++
 MoinMoin/formatter/text_plain.py  |    5 +++++
 MoinMoin/formatter/text_xml.py    |    6 ++++++
 MoinMoin/parser/text_moin_wiki.py |    6 ++++++
 6 files changed, 31 insertions(+)

--- moin.orig/MoinMoin/formatter/__init__.py	2007-04-02 19:08:17.000000000 +0200
+++ moin/MoinMoin/formatter/__init__.py	2007-04-02 19:10:43.000000000 +0200
@@ -230,6 +230,12 @@ class FormatterBase:
     def big(self, on, **kw):
         raise NotImplementedError
 
+    def endash(self, **kw):
+        raise NotImplementedError
+
+    def emdash(self, **kw):
+        raise NotImplementedError
+
     # special markup for syntax highlighting #############################
 
     def code_area(self, on, code_id, **kw):
--- moin.orig/MoinMoin/formatter/dom_xml.py	2007-04-02 19:11:19.000000000 +0200
+++ moin/MoinMoin/formatter/dom_xml.py	2007-04-02 19:18:09.000000000 +0200
@@ -380,4 +380,8 @@ class Formatter(FormatterBase):
     def code_token(self, on, tok_type):
         return self._set_tag('codetoken', on, type=tok_type)
 
+    def endash(self, **kw):
+        return '&#8211;'
 
+    def emdash(self, **kw):
+        return '&#8212;'
--- moin.orig/MoinMoin/formatter/text_html.py	2007-04-02 19:08:11.000000000 +0200
+++ moin/MoinMoin/formatter/text_html.py	2007-04-02 19:13:40.000000000 +0200
@@ -1362,4 +1362,8 @@ document.write('<a href="#" onclick="ret
             return self._open(tag, **kw)
         return self._close(tag)
 
+    def endash(self, **kw):
+        return '&ndash;'
 
+    def emdash(self, **kw):
+        return '&mdash;'
--- moin.orig/MoinMoin/formatter/text_plain.py	2007-04-02 19:11:19.000000000 +0200
+++ moin/MoinMoin/formatter/text_plain.py	2007-04-02 19:10:43.000000000 +0200
@@ -250,3 +250,8 @@ class Formatter(FormatterBase):
     def lang(self, on, lang_name):
         return ''
 
+    def endash(self, **kw):
+        return '--'
+
+    def emdash(self, **kw):
+        return '---'
--- moin.orig/MoinMoin/formatter/text_xml.py	2007-04-02 19:11:19.000000000 +0200
+++ moin/MoinMoin/formatter/text_xml.py	2007-04-02 19:17:22.000000000 +0200
@@ -212,3 +212,9 @@ class Formatter(FormatterBase):
 
     def code_token(self, on, tok_type):
         return ('<codetoken type="%s">' % tok_type, '</codetoken')[not on]
+
+    def endash(self, **kw):
+        return '&#8211;'
+
+    def emdash(self, **kw):
+        return '&#8212;'
--- moin.orig/MoinMoin/parser/text_moin_wiki.py	2007-04-02 19:19:04.000000000 +0200
+++ moin/MoinMoin/parser/text_moin_wiki.py	2007-04-02 19:25:27.000000000 +0200
@@ -79,6 +79,7 @@ class Parser:
 (?P<big>(\~\+ ?|\+\~))
 (?P<strike>(--\(|\)--))
 (?P<remark>(/\* ?| ?\*/))
+(?P<dash>-{2,3})
 (?P<rule>-{4,})
 (?P<comment>^\#\#.*$)
 (?P<macro>\[\[(%%(macronames)s)(?:\(.*?\))?\]\]))
@@ -319,6 +320,11 @@ class Parser:
             self.formatter.text(word[2:-2]) + \
             self.formatter.sub(0)
 
+    def _dash_repl(self, word):
+        if len(word) == 2:
+            return self.formatter.endash()
+        else:
+            return self.formatter.emdash()
 
     def _rule_repl(self, word):
         """Handle sequences of dashes."""
