Allow external override of libbe.encoding.get_encoding().
authorW. Trevor King <wking@drexel.edu>
Sat, 18 Jul 2009 13:47:46 +0000 (09:47 -0400)
committerW. Trevor King <wking@drexel.edu>
Sat, 18 Jul 2009 13:47:46 +0000 (09:47 -0400)
The previous procmail encoding fix failed, because the becommand
execution checks libbe.encoding.get_encoding() on it's own, and got
the procmail encoding.  This one works.

interfaces/email/interactive/be-handle-mail
libbe/encoding.py

index aa0c96ae04e20b75be5010a8d55536f4d94ccd03..42d85ac525272a20a84a6b25c4c207ac959dd893 100755 (executable)
@@ -46,8 +46,9 @@ _THIS_DIR = os.path.abspath(os.path.dirname(__file__))
 BE_DIR = _THIS_DIR
 LOGPATH = os.path.join(_THIS_DIR, "be-handle-mail.log")
 LOGFILE = None
-#ENCODING = libbe.encoding.get_encoding()
-ENCODING = "utf-8"
+
+libbe.encoding.ENCODING = "utf-8" # force default encoding
+ENCODING = libbe.encoding.get_encoding()
 
 ALLOWED_COMMANDS = ["new", "comment", "list", "show", "help"]
 
index d6036022be583e247d211e6da897ef5e60f08565..4af864ecea39c0b2c340cd23ad9c5fc40f78fa6d 100644 (file)
@@ -19,11 +19,15 @@ import locale
 import sys
 import doctest
 
+ENCODING = None # override get_encoding() output by setting this
+
 def get_encoding():
     """
     Guess a useful input/output/filesystem encoding...  Maybe we need
     seperate encodings for input/output and filesystem?  Hmm...
     """
+    if ENCODING != None:
+        return ENCODING
     encoding = locale.getpreferredencoding() or sys.getdefaultencoding()
     if sys.platform != 'win32' or sys.version_info[:2] > (2, 3):
         encoding = locale.getlocale(locale.LC_TIME)[1] or encoding