From 638acca9b3760d1067f399d6c62602d3ac255f7c Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 1 Sep 2016 07:47:35 +0530 Subject: [PATCH] Linux: Fix calibre not working when the username is non-ASCII. Fixes #1619056 [Calibre doesn't allow non-ascii usernames](https://bugs.launchpad.net/calibre/+bug/1619056) --- src/calibre/utils/ipc/__init__.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/calibre/utils/ipc/__init__.py b/src/calibre/utils/ipc/__init__.py index dcbee7efac..45d5f5ea4a 100644 --- a/src/calibre/utils/ipc/__init__.py +++ b/src/calibre/utils/ipc/__init__.py @@ -9,7 +9,9 @@ __docformat__ = 'restructuredtext en' import os, errno from threading import Thread +from calibre import force_unicode from calibre.constants import iswindows, get_windows_username, islinux +from calibre.utils.filenames import ascii_filename ADDRESS = VADDRESS = None @@ -32,7 +34,6 @@ def gui_socket_address(): except: user = None if user: - from calibre.utils.filenames import ascii_filename user = ascii_filename(user).replace(' ', '_') if user: ADDRESS += '-' + user[:100] + 'x' @@ -41,7 +42,7 @@ def gui_socket_address(): if not user: user = os.path.basename(os.path.expanduser('~')) if islinux: - ADDRESS = (u'\0%s-calibre-gui.socket' % user).encode('ascii') + ADDRESS = (u'\0%s-calibre-gui.socket' % ascii_filename(force_unicode(user))).encode('ascii') else: from tempfile import gettempdir tmp = gettempdir() @@ -59,7 +60,6 @@ def viewer_socket_address(): except: user = None if user: - from calibre.utils.filenames import ascii_filename user = ascii_filename(user).replace(' ', '_') if user: VADDRESS += '-' + user[:100] + 'x' @@ -68,7 +68,7 @@ def viewer_socket_address(): if not user: user = os.path.basename(os.path.expanduser('~')) if islinux: - VADDRESS = (u'\0%s-calibre-viewer.socket' % user).encode('ascii') + VADDRESS = (u'\0%s-calibre-viewer.socket' % ascii_filename(force_unicode(user))).encode('ascii') else: from tempfile import gettempdir tmp = gettempdir()