return (leading_matches(), rest())
+def merge_dict(*xs):
+ result = {}
+ for x in xs:
+ result.update(x)
+ return result
+
+
def lines_until_sentinel(f, sentinel, ex_type):
# sentinel must end with \n and must contain only one \n
while True:
global _username
if not _username:
uid = os.getuid()
- _username = pwd_from_uid(uid)[0] or 'user%d' % uid
+ _username = pwd_from_uid(uid).pw_name or b'user%d' % uid
return _username
uid = os.getuid()
entry = pwd_from_uid(uid)
if entry:
- _userfullname = entry[4].split(',')[0] or entry[0]
+ _userfullname = entry.pw_gecos.split(b',')[0] or entry.pw_name
if not _userfullname:
- _userfullname = 'user%d' % uid
+ _userfullname = b'user%d' % uid
return _userfullname
if chunk_count < 1:
chunk_count = 1
result = bytearray(page_count)
- for ci in xrange(chunk_count):
+ for ci in compat.range(chunk_count):
pos = _fmincore_chunk_size * ci;
msize = min(_fmincore_chunk_size, st.st_size - pos)
try:
while len(l) % ncols:
l.append('')
rows = len(l) // ncols
- for s in range(0, len(l), rows):
+ for s in compat.range(0, len(l), rows):
cols.append(l[s:s+rows])
out = ''
for row in zip(*cols):
return x
-_some_invalid_save_parts_rx = re.compile(r'[[ ~^:?*\\]|\.\.|//|@{')
+_some_invalid_save_parts_rx = re.compile(r'[\[ ~^:?*\\]|\.\.|//|@{')
def valid_save_name(name):
# Enforce a superset of the restrictions in git-check-ref-format(1)