# HG changeset patch # User Pierre-Yves David # Date 1675354896 -3600 # Node ID a5bba73a1352ef8ddbd80ee9f75ff24e5a4242b8 # Parent 9342271eef31ae21d05dfe60ccd0254fbbb24cb6 safehasattr: pass attribute name as string instead of bytes This is a step toward replacing `util.safehasattr` usage with plain `hasattr`. The builtin function behave poorly in Python2 but this was fixed in Python3. These change are done one by one as they tend to have a small odd to trigger puzzling breackage. diff -r 9342271eef31 -r a5bba73a1352 mercurial/crecord.py --- a/mercurial/crecord.py Thu Feb 02 17:21:22 2023 +0100 +++ b/mercurial/crecord.py Thu Feb 02 17:21:36 2023 +0100 @@ -573,7 +573,7 @@ ui.write(_(b'starting interactive selection\n')) chunkselector = curseschunkselector(headerlist, ui, operation) origsigtstp = sentinel = object() - if util.safehasattr(signal, b'SIGTSTP'): + if util.safehasattr(signal, 'SIGTSTP'): origsigtstp = signal.getsignal(signal.SIGTSTP) try: with util.with_lc_ctype():