Fix exception when getting function name for debug_keyboard action dispatch

Fixes #1401
This commit is contained in:
Kovid Goyal 2019-02-23 08:00:21 +05:30
parent aed504efdc
commit e44b331cc3
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 12 additions and 4 deletions

View File

@ -34,8 +34,8 @@ from .rgb import Color, color_from_int
from .session import create_session
from .tabs import SpecialWindow, SpecialWindowInstance, TabManager
from .utils import (
get_editor, get_primary_selection, is_path_in_temp_dir, log_error,
open_url, parse_address_spec, remove_socket_file, safe_print,
func_name, get_editor, get_primary_selection, is_path_in_temp_dir,
log_error, open_url, parse_address_spec, remove_socket_file, safe_print,
set_primary_selection, single_instance, startup_notification_handler
)
@ -577,7 +577,7 @@ class Boss:
f = getattr(self, key_action.func, None)
if f is not None:
if self.args.debug_keyboard:
print('Keypress matched action:', f.__name__)
print('Keypress matched action:', func_name(f))
passthrough = f(*key_action.args)
if passthrough is not True:
return True
@ -592,7 +592,7 @@ class Boss:
if f is not None:
passthrough = f(*key_action.args)
if self.args.debug_keyboard:
print('Keypress matched action:', f.__name__)
print('Keypress matched action:', func_name(f))
if passthrough is not True:
return True
return False

View File

@ -449,3 +449,11 @@ def is_path_in_temp_dir(path):
if q and path.startswith(q):
return True
return False
def func_name(f):
if hasattr(f, '__name__'):
return f.__name__
if hasattr(f, 'func') and hasattr(f.func, '__name__'):
return f.func.__name__
return str(f)