aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorW. Trevor King <wking@drexel.edu>2009-07-18 09:47:46 -0400
committerW. Trevor King <wking@drexel.edu>2009-07-18 09:47:46 -0400
commit313a760feded62ba39910bf36fc4d62b56d07858 (patch)
treef0c9f3b169373ddfb4002fa0f1afa5cf7b47c8c4
parentd433366708c7b198d4a43254e502ed3fc64a6fa0 (diff)
downloadbugseverywhere-313a760feded62ba39910bf36fc4d62b56d07858.tar.gz
Allow external override of libbe.encoding.get_encoding().
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.
-rwxr-xr-xinterfaces/email/interactive/be-handle-mail5
-rw-r--r--libbe/encoding.py4
2 files changed, 7 insertions, 2 deletions
diff --git a/interfaces/email/interactive/be-handle-mail b/interfaces/email/interactive/be-handle-mail
index aa0c96a..42d85ac 100755
--- a/interfaces/email/interactive/be-handle-mail
+++ b/interfaces/email/interactive/be-handle-mail
@@ -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"]
diff --git a/libbe/encoding.py b/libbe/encoding.py
index d603602..4af864e 100644
--- a/libbe/encoding.py
+++ b/libbe/encoding.py
@@ -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