From 8a1326a8109857af330863a863fe7e58aa860358 Mon Sep 17 00:00:00 2001
From: Nikos Kouremenos <kourem@gmail.com>
Date: Fri, 21 Oct 2005 13:21:31 +0000
Subject: [PATCH] sys.getfilesystemencoding() can return None to some systems
 (eg. OpenBSD). Thanks Jolan for patches

---
 src/common/logger.py    |  5 ++++-
 src/common/optparser.py |  7 +++++--
 src/config.py           | 10 ++++++++--
 src/vcard.py            |  5 ++++-
 4 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/src/common/logger.py b/src/common/logger.py
index f326101889..577d7a4d67 100644
--- a/src/common/logger.py
+++ b/src/common/logger.py
@@ -36,7 +36,10 @@ if os.name == 'nt':
 		# win9x, ./logs
 		LOGPATH = 'Logs'
 
-LOGPATH = LOGPATH.decode(sys.getfilesystemencoding())
+try:
+	LOGPATH = LOGPATH.decode(sys.getfilesystemencoding())
+except:
+	pass
 
 class Logger:
 	def __init__(self):
diff --git a/src/common/optparser.py b/src/common/optparser.py
index 0dc670e6cf..c73abc947d 100644
--- a/src/common/optparser.py
+++ b/src/common/optparser.py
@@ -86,8 +86,11 @@ class OptionsParser:
 	
 	def write(self):
 		(base_dir, filename) = os.path.split(self.__filename)
-		base_dir = base_dir.decode(sys.getfilesystemencoding())
-		filename = filename.decode(sys.getfilesystemencoding())
+		try:
+			base_dir = base_dir.decode(sys.getfilesystemencoding())
+			filename = filename.decode(sys.getfilesystemencoding())
+		except:
+			pass
 		self.__tempfile = os.path.join(base_dir, '.' + filename)
 		try:
 			fd = open(self.__tempfile, 'w')
diff --git a/src/config.py b/src/config.py
index fd8b7f1442..5fa231849c 100644
--- a/src/config.py
+++ b/src/config.py
@@ -989,7 +989,10 @@ class PreferencesWindow:
 			if response != gtk.RESPONSE_OK:
 				break
 			file = dialog.get_filename()
-			file = file.decode(sys.getfilesystemencoding())
+			try:
+				file = file.decode(sys.getfilesystemencoding())
+			except:
+				pass
 			if os.path.exists(file):
 				break
 		dialog.destroy()
@@ -2116,7 +2119,10 @@ class ManageEmoticonsWindow:
 			response = dialog.run()
 			if response == gtk.RESPONSE_OK:
 				file = dialog.get_filename()
-				file = file.decode(sys.getfilesystemencoding())
+				try:
+					file = file.decode(sys.getfilesystemencoding())
+				except:
+					pass
 				if self.image_is_ok(file):
 					ok = True
 			else:
diff --git a/src/vcard.py b/src/vcard.py
index 3eca0660fd..abc3219571 100644
--- a/src/vcard.py
+++ b/src/vcard.py
@@ -166,7 +166,10 @@ class VcardWindow:
 			response = dialog.run()
 			if response == gtk.RESPONSE_OK:
 				f = dialog.get_filename()
-				f = f.decode(sys.getfilesystemencoding())
+				try:
+					f = f.decode(sys.getfilesystemencoding())
+				except:
+					pass
 				if self.image_is_ok(f):
 					ok = True
 			else:
-- 
GitLab