--- a/mercurial/cext/pathencode.c Thu Jan 24 11:35:40 2019 -0500
+++ b/mercurial/cext/pathencode.c Thu Jan 24 10:21:59 2019 -0500
@@ -126,8 +126,9 @@
if (src[i] == 'g') {
state = DHGDI;
charcopy(dest, &destlen, destsize, src[i++]);
- } else
+ } else {
state = DDEFAULT;
+ }
break;
case DHGDI:
if (src[i] == '/') {
@@ -137,8 +138,9 @@
state = DDEFAULT;
break;
case DDEFAULT:
- if (src[i] == '.')
+ if (src[i] == '.') {
state = DDOT;
+ }
charcopy(dest, &destlen, destsize, src[i++]);
break;
}
@@ -153,8 +155,9 @@
PyObject *pathobj, *newobj;
char *path;
- if (!PyArg_ParseTuple(args, "O:encodedir", &pathobj))
+ if (!PyArg_ParseTuple(args, "O:encodedir", &pathobj)) {
return NULL;
+ }
if (PyBytes_AsStringAndSize(pathobj, &path, &len) == -1) {
PyErr_SetString(PyExc_TypeError, "expected a string");
@@ -235,15 +238,17 @@
if (src[i] == 'u') {
state = AU;
charcopy(dest, &destlen, destsize, src[i++]);
- } else
+ } else {
state = DEFAULT;
+ }
break;
case AU:
if (src[i] == 'x') {
state = THIRD;
i++;
- } else
+ } else {
state = DEFAULT;
+ }
break;
case THIRD:
state = DEFAULT;
@@ -262,8 +267,9 @@
if (src[i] == 'o') {
state = CO;
charcopy(dest, &destlen, destsize, src[i++]);
- } else
+ } else {
state = DEFAULT;
+ }
break;
case CO:
if (src[i] == 'm') {
@@ -272,8 +278,9 @@
} else if (src[i] == 'n') {
state = THIRD;
i++;
- } else
+ } else {
state = DEFAULT;
+ }
break;
case COMLPT:
switch (src[i]) {
@@ -314,43 +321,49 @@
if (src[i] == 'p') {
state = LP;
charcopy(dest, &destlen, destsize, src[i++]);
- } else
+ } else {
state = DEFAULT;
+ }
break;
case LP:
if (src[i] == 't') {
state = COMLPT;
i++;
- } else
+ } else {
state = DEFAULT;
+ }
break;
case N:
if (src[i] == 'u') {
state = NU;
charcopy(dest, &destlen, destsize, src[i++]);
- } else
+ } else {
state = DEFAULT;
+ }
break;
case NU:
if (src[i] == 'l') {
state = THIRD;
i++;
- } else
+ } else {
state = DEFAULT;
+ }
break;
case P:
if (src[i] == 'r') {
state = PR;
charcopy(dest, &destlen, destsize, src[i++]);
- } else
+ } else {
state = DEFAULT;
+ }
break;
case PR:
if (src[i] == 'n') {
state = THIRD;
i++;
- } else
+ } else {
state = DEFAULT;
+ }
break;
case LDOT:
switch (src[i]) {
@@ -397,18 +410,21 @@
if (src[i] == 'g') {
state = HGDI;
charcopy(dest, &destlen, destsize, src[i++]);
- } else
+ } else {
state = DEFAULT;
+ }
break;
case HGDI:
if (src[i] == '/') {
state = START;
- if (encodedir)
+ if (encodedir) {
memcopy(dest, &destlen, destsize, ".hg",
3);
+ }
charcopy(dest, &destlen, destsize, src[i++]);
- } else
+ } else {
state = DEFAULT;
+ }
break;
case SPACE:
switch (src[i]) {
@@ -427,8 +443,9 @@
case DEFAULT:
while (inset(onebyte, src[i])) {
charcopy(dest, &destlen, destsize, src[i++]);
- if (i == len)
+ if (i == len) {
goto done;
+ }
}
switch (src[i]) {
case '.':
@@ -456,9 +473,10 @@
charcopy(dest, &destlen, destsize, '_');
charcopy(dest, &destlen, destsize,
c == '_' ? '_' : c + 32);
- } else
+ } else {
escape3(dest, &destlen, destsize,
src[i++]);
+ }
break;
}
break;
@@ -498,12 +516,13 @@
Py_ssize_t i, destlen = 0;
for (i = 0; i < len; i++) {
- if (inset(onebyte, src[i]))
+ if (inset(onebyte, src[i])) {
charcopy(dest, &destlen, destsize, src[i]);
- else if (inset(lower, src[i]))
+ } else if (inset(lower, src[i])) {
charcopy(dest, &destlen, destsize, src[i] + 32);
- else
+ } else {
escape3(dest, &destlen, destsize, src[i]);
+ }
}
return destlen;
@@ -516,13 +535,15 @@
PyObject *ret;
if (!PyArg_ParseTuple(args, PY23("s#:lowerencode", "y#:lowerencode"),
- &path, &len))
+ &path, &len)) {
return NULL;
+ }
newlen = _lowerencode(NULL, 0, path, len);
ret = PyBytes_FromStringAndSize(NULL, newlen);
- if (ret)
+ if (ret) {
_lowerencode(PyBytes_AS_STRING(ret), newlen, path, len);
+ }
return ret;
}
@@ -551,8 +572,9 @@
Py_ssize_t destsize, destlen = 0, slop, used;
while (lastslash >= 0 && src[lastslash] != '/') {
- if (src[lastslash] == '.' && lastdot == -1)
+ if (src[lastslash] == '.' && lastdot == -1) {
lastdot = lastslash;
+ }
lastslash--;
}
@@ -570,12 +592,14 @@
/* If src contains a suffix, we will append it to the end of
the new string, so make room. */
destsize = 120;
- if (lastdot >= 0)
+ if (lastdot >= 0) {
destsize += len - lastdot - 1;
+ }
ret = PyBytes_FromStringAndSize(NULL, destsize);
- if (ret == NULL)
+ if (ret == NULL) {
return NULL;
+ }
dest = PyBytes_AS_STRING(ret);
memcopy(dest, &destlen, destsize, "dh/", 3);
@@ -587,30 +611,36 @@
char d = dest[destlen - 1];
/* After truncation, a directory name may end
in a space or dot, which are unportable. */
- if (d == '.' || d == ' ')
+ if (d == '.' || d == ' ') {
dest[destlen - 1] = '_';
- /* The + 3 is to account for "dh/" in the beginning */
- if (destlen > maxshortdirslen + 3)
+ /* The + 3 is to account for "dh/" in the
+ * beginning */
+ }
+ if (destlen > maxshortdirslen + 3) {
break;
+ }
charcopy(dest, &destlen, destsize, src[i]);
p = -1;
- } else if (p < dirprefixlen)
+ } else if (p < dirprefixlen) {
charcopy(dest, &destlen, destsize, src[i]);
+ }
}
/* Rewind to just before the last slash copied. */
- if (destlen > maxshortdirslen + 3)
+ if (destlen > maxshortdirslen + 3) {
do {
destlen--;
} while (destlen > 0 && dest[destlen] != '/');
+ }
if (destlen > 3) {
if (lastslash > 0) {
char d = dest[destlen - 1];
/* The last directory component may be
truncated, so make it safe. */
- if (d == '.' || d == ' ')
+ if (d == '.' || d == ' ') {
dest[destlen - 1] = '_';
+ }
}
charcopy(dest, &destlen, destsize, '/');
@@ -620,27 +650,32 @@
depends on the number of bytes left after accounting for
hash and suffix. */
used = destlen + 40;
- if (lastdot >= 0)
+ if (lastdot >= 0) {
used += len - lastdot - 1;
+ }
slop = maxstorepathlen - used;
if (slop > 0) {
Py_ssize_t basenamelen =
lastslash >= 0 ? len - lastslash - 2 : len - 1;
- if (basenamelen > slop)
+ if (basenamelen > slop) {
basenamelen = slop;
- if (basenamelen > 0)
+ }
+ if (basenamelen > 0) {
memcopy(dest, &destlen, destsize, &src[lastslash + 1],
basenamelen);
+ }
}
/* Add hash and suffix. */
- for (i = 0; i < 20; i++)
+ for (i = 0; i < 20; i++) {
hexencode(dest, &destlen, destsize, sha[i]);
+ }
- if (lastdot >= 0)
+ if (lastdot >= 0) {
memcopy(dest, &destlen, destsize, &src[lastdot],
len - lastdot - 1);
+ }
assert(PyBytes_Check(ret));
Py_SIZE(ret) = destlen;
@@ -677,13 +712,15 @@
shaobj = PyObject_CallFunction(shafunc, PY23("s#", "y#"), str, len);
- if (shaobj == NULL)
+ if (shaobj == NULL) {
return -1;
+ }
hashobj = PyObject_CallMethod(shaobj, "digest", "");
Py_DECREF(shaobj);
- if (hashobj == NULL)
+ if (hashobj == NULL) {
return -1;
+ }
if (!PyBytes_Check(hashobj) || PyBytes_GET_SIZE(hashobj) != 20) {
PyErr_SetString(PyExc_TypeError,
@@ -714,8 +751,9 @@
}
dirlen = _encodedir(dired, baselen, src, len);
- if (sha1hash(sha, dired, dirlen - 1) == -1)
+ if (sha1hash(sha, dired, dirlen - 1) == -1) {
return NULL;
+ }
lowerlen = _lowerencode(lowered, baselen, dired + 5, dirlen - 5);
auxlen = auxencode(auxed, baselen, lowered, lowerlen);
return hashmangle(auxed, auxlen, sha);
@@ -727,18 +765,20 @@
PyObject *pathobj, *newobj;
char *path;
- if (!PyArg_ParseTuple(args, "O:pathencode", &pathobj))
+ if (!PyArg_ParseTuple(args, "O:pathencode", &pathobj)) {
return NULL;
+ }
if (PyBytes_AsStringAndSize(pathobj, &path, &len) == -1) {
PyErr_SetString(PyExc_TypeError, "expected a string");
return NULL;
}
- if (len > maxstorepathlen)
+ if (len > maxstorepathlen) {
newlen = maxstorepathlen + 2;
- else
+ } else {
newlen = len ? basicencode(NULL, 0, path, len + 1) : 1;
+ }
if (newlen <= maxstorepathlen + 1) {
if (newlen == len + 1) {
@@ -754,8 +794,9 @@
basicencode(PyBytes_AS_STRING(newobj), newlen, path,
len + 1);
}
- } else
+ } else {
newobj = hashencode(path, len + 1);
+ }
return newobj;
}