mercurial/__init__.py
author Gregory Szorc <gregory.szorc@gmail.com>
Sat, 02 Nov 2019 14:17:48 -0700
branchstable
changeset 43394 d359dfc15aca
parent 43106 d783f945a701
child 48875 6000f5b25c9b
permissions -rw-r--r--
fsmonitor: handle unicode keys in tuples In Python 3, keys in the bset tuple are typically str, not bytes. PyBytes_AsString() would return NULL. But we weren't checking the return value and this would lead to a segfault. This commit makes the code type and Python version aware. The Python version specific code is to allow us to utilize a modern API for converting str -> char* without having to allocate an extra PyObject. FWIW I wanted to assume that keys were always str. However, there appear to be some bytes keys in some cases. I haven't debugged this further. Differential Revision: https://phab.mercurial-scm.org/D7210

# __init__.py - Startup and module loading logic for Mercurial.
#
# Copyright 2015 Gregory Szorc <gregory.szorc@gmail.com>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.

from __future__ import absolute_import

# Allow 'from mercurial import demandimport' to keep working.
import hgdemandimport

demandimport = hgdemandimport