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.
--- 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():