cleanup: use clang-tidy to add missing {} around one-line statements
I find this easier to read. Cleanup performed like this:
hg files 'set:(**.c or **.cc or **.h) and not "listfile:contrib/clang-format-ignorelist"' | while read f ; do
clang-tidy -fix -checks=readability-braces-around-statements $f -- $(python-config --cflags) -Imercurial/cext -Imercurial
done
make format-c
I had to revert chg/chg.c as it's got a construct that seems to confuse
clang-tidy, so I'll work on that file later if this change is acceptable. I
only tackle files that are under clang-format's authority because otherwise
I'd have to do a bunch of manual formatting. A few files didn't get edited
because clang-tidy couldn't find some headers. Again, I'll figure that out
later assuming this change is accepted.
No check-code rule added for now because writing the regex sounds hard. In a
perfect world I guess we could write a test that uses clang-tidy on these
files, but I think clang-tidy is pretty rarely installed. :/
Differential Revision: https://phab.mercurial-scm.org/D5675
--- a/contrib/chg/hgclient.c Thu Jan 24 11:35:40 2019 -0500
+++ b/contrib/chg/hgclient.c Thu Jan 24 10:21:59 2019 -0500
@@ -84,8 +84,9 @@
static void enlargecontext(context_t *ctx, size_t newsize)
{
- if (newsize <= ctx->maxdatasize)
+ if (newsize <= ctx->maxdatasize) {
return;
+ }
newsize = defaultdatasize *
((newsize + defaultdatasize - 1) / defaultdatasize);
@@ -117,22 +118,25 @@
uint32_t datasize_n;
rsize = recv(hgc->sockfd, &datasize_n, sizeof(datasize_n), 0);
- if (rsize != sizeof(datasize_n))
+ if (rsize != sizeof(datasize_n)) {
abortmsg("failed to read data size");
+ }
/* datasize denotes the maximum size to write if input request */
hgc->ctx.datasize = ntohl(datasize_n);
enlargecontext(&hgc->ctx, hgc->ctx.datasize);
- if (isupper(hgc->ctx.ch) && hgc->ctx.ch != 'S')
+ if (isupper(hgc->ctx.ch) && hgc->ctx.ch != 'S') {
return; /* assumes input request */
+ }
size_t cursize = 0;
while (cursize < hgc->ctx.datasize) {
rsize = recv(hgc->sockfd, hgc->ctx.data + cursize,
hgc->ctx.datasize - cursize, 0);
- if (rsize < 1)
+ if (rsize < 1) {
abortmsg("failed to read data block");
+ }
cursize += rsize;
}
}
@@ -143,8 +147,9 @@
const char *const endp = p + datasize;
while (p < endp) {
ssize_t r = send(sockfd, p, endp - p, 0);
- if (r < 0)
+ if (r < 0) {
abortmsgerrno("cannot communicate");
+ }
p += r;
}
}
@@ -186,8 +191,9 @@
ctx->datasize += n;
}
- if (ctx->datasize > 0)
+ if (ctx->datasize > 0) {
--ctx->datasize; /* strip last '\0' */
+ }
}
/* Extract '\0'-separated list of args to new buffer, terminated by NULL */
@@ -205,8 +211,9 @@
args[nargs] = s;
nargs++;
s = memchr(s, '\0', e - s);
- if (!s)
+ if (!s) {
break;
+ }
s++;
}
args[nargs] = NULL;
@@ -225,8 +232,9 @@
static void handlereadlinerequest(hgclient_t *hgc)
{
context_t *ctx = &hgc->ctx;
- if (!fgets(ctx->data, ctx->datasize, stdin))
+ if (!fgets(ctx->data, ctx->datasize, stdin)) {
ctx->data[0] = '\0';
+ }
ctx->datasize = strlen(ctx->data);
writeblock(hgc);
}
@@ -239,8 +247,9 @@
ctx->data[ctx->datasize] = '\0'; /* terminate last string */
const char **args = unpackcmdargsnul(ctx);
- if (!args[0] || !args[1] || !args[2])
+ if (!args[0] || !args[1] || !args[2]) {
abortmsg("missing type or command or cwd in system request");
+ }
if (strcmp(args[0], "system") == 0) {
debugmsg("run '%s' at '%s'", args[1], args[2]);
int32_t r = runshellcmd(args[1], args + 3, args[2]);
@@ -252,8 +261,9 @@
writeblock(hgc);
} else if (strcmp(args[0], "pager") == 0) {
setuppager(args[1], args + 3);
- if (hgc->capflags & CAP_ATTACHIO)
+ if (hgc->capflags & CAP_ATTACHIO) {
attachio(hgc);
+ }
/* unblock the server */
static const char emptycmd[] = "\n";
sendall(hgc->sockfd, emptycmd, sizeof(emptycmd) - 1);
@@ -296,9 +306,10 @@
handlesystemrequest(hgc);
break;
default:
- if (isupper(ctx->ch))
+ if (isupper(ctx->ch)) {
abortmsg("cannot handle response (ch = %c)",
ctx->ch);
+ }
}
}
}
@@ -308,8 +319,9 @@
unsigned int flags = 0;
while (s < e) {
const char *t = strchr(s, ' ');
- if (!t || t > e)
+ if (!t || t > e) {
t = e;
+ }
const cappair_t *cap;
for (cap = captable; cap->flag; ++cap) {
size_t n = t - s;
@@ -346,11 +358,13 @@
const char *const dataend = ctx->data + ctx->datasize;
while (s < dataend) {
const char *t = strchr(s, ':');
- if (!t || t[1] != ' ')
+ if (!t || t[1] != ' ') {
break;
+ }
const char *u = strchr(t + 2, '\n');
- if (!u)
+ if (!u) {
u = dataend;
+ }
if (strncmp(s, "capabilities:", t - s + 1) == 0) {
hgc->capflags = parsecapabilities(t + 2, u);
} else if (strncmp(s, "pgid:", t - s + 1) == 0) {
@@ -367,8 +381,9 @@
{
int r = snprintf(hgc->ctx.data, hgc->ctx.maxdatasize, "chg[worker/%d]",
(int)getpid());
- if (r < 0 || (size_t)r >= hgc->ctx.maxdatasize)
+ if (r < 0 || (size_t)r >= hgc->ctx.maxdatasize) {
abortmsg("insufficient buffer to write procname (r = %d)", r);
+ }
hgc->ctx.datasize = (size_t)r;
writeblockrequest(hgc, "setprocname");
}
@@ -380,8 +395,9 @@
sendall(hgc->sockfd, chcmd, sizeof(chcmd) - 1);
readchannel(hgc);
context_t *ctx = &hgc->ctx;
- if (ctx->ch != 'I')
+ if (ctx->ch != 'I') {
abortmsg("unexpected response for attachio (ch = %c)", ctx->ch);
+ }
static const int fds[3] = {STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO};
struct msghdr msgh;
@@ -399,23 +415,27 @@
memcpy(CMSG_DATA(cmsg), fds, sizeof(fds));
msgh.msg_controllen = cmsg->cmsg_len;
ssize_t r = sendmsg(hgc->sockfd, &msgh, 0);
- if (r < 0)
+ if (r < 0) {
abortmsgerrno("sendmsg failed");
+ }
handleresponse(hgc);
int32_t n;
- if (ctx->datasize != sizeof(n))
+ if (ctx->datasize != sizeof(n)) {
abortmsg("unexpected size of attachio result");
+ }
memcpy(&n, ctx->data, sizeof(n));
n = ntohl(n);
- if (n != sizeof(fds) / sizeof(fds[0]))
+ if (n != sizeof(fds) / sizeof(fds[0])) {
abortmsg("failed to send fds (n = %d)", n);
+ }
}
static void chdirtocwd(hgclient_t *hgc)
{
- if (!getcwd(hgc->ctx.data, hgc->ctx.maxdatasize))
+ if (!getcwd(hgc->ctx.data, hgc->ctx.maxdatasize)) {
abortmsgerrno("failed to getcwd");
+ }
hgc->ctx.datasize = strlen(hgc->ctx.data);
writeblockrequest(hgc, "chdir");
}
@@ -440,8 +460,9 @@
hgclient_t *hgc_open(const char *sockname)
{
int fd = socket(AF_UNIX, SOCK_STREAM, 0);
- if (fd < 0)
+ if (fd < 0) {
abortmsgerrno("cannot create socket");
+ }
/* don't keep fd on fork(), so that it can be closed when the parent
* process get terminated. */
@@ -456,34 +477,39 @@
{
const char *split = strrchr(sockname, '/');
if (split && split != sockname) {
- if (split[1] == '\0')
+ if (split[1] == '\0') {
abortmsg("sockname cannot end with a slash");
+ }
size_t len = split - sockname;
char sockdir[len + 1];
memcpy(sockdir, sockname, len);
sockdir[len] = '\0';
bakfd = open(".", O_DIRECTORY);
- if (bakfd == -1)
+ if (bakfd == -1) {
abortmsgerrno("cannot open cwd");
+ }
int r = chdir(sockdir);
- if (r != 0)
+ if (r != 0) {
abortmsgerrno("cannot chdir %s", sockdir);
+ }
basename = split + 1;
}
}
- if (strlen(basename) >= sizeof(addr.sun_path))
+ if (strlen(basename) >= sizeof(addr.sun_path)) {
abortmsg("sockname is too long: %s", basename);
+ }
strncpy(addr.sun_path, basename, sizeof(addr.sun_path));
addr.sun_path[sizeof(addr.sun_path) - 1] = '\0';
/* real connect */
int r = connect(fd, (struct sockaddr *)&addr, sizeof(addr));
if (r < 0) {
- if (errno != ENOENT && errno != ECONNREFUSED)
+ if (errno != ENOENT && errno != ECONNREFUSED) {
abortmsgerrno("cannot connect to %s", sockname);
+ }
}
if (bakfd != -1) {
fchdirx(bakfd);
@@ -501,16 +527,21 @@
initcontext(&hgc->ctx);
readhello(hgc);
- if (!(hgc->capflags & CAP_RUNCOMMAND))
+ if (!(hgc->capflags & CAP_RUNCOMMAND)) {
abortmsg("insufficient capability: runcommand");
- if (hgc->capflags & CAP_SETPROCNAME)
+ }
+ if (hgc->capflags & CAP_SETPROCNAME) {
updateprocname(hgc);
- if (hgc->capflags & CAP_ATTACHIO)
+ }
+ if (hgc->capflags & CAP_ATTACHIO) {
attachio(hgc);
- if (hgc->capflags & CAP_CHDIR)
+ }
+ if (hgc->capflags & CAP_CHDIR) {
chdirtocwd(hgc);
- if (hgc->capflags & CAP_SETUMASK2)
+ }
+ if (hgc->capflags & CAP_SETUMASK2) {
forwardumask(hgc);
+ }
return hgc;
}
@@ -555,16 +586,18 @@
size_t argsize)
{
assert(hgc);
- if (!(hgc->capflags & CAP_VALIDATE))
+ if (!(hgc->capflags & CAP_VALIDATE)) {
return NULL;
+ }
packcmdargs(&hgc->ctx, args, argsize);
writeblockrequest(hgc, "validate");
handleresponse(hgc);
/* the server returns '\0' if it can handle our request */
- if (hgc->ctx.datasize <= 1)
+ if (hgc->ctx.datasize <= 1) {
return NULL;
+ }
/* make sure the buffer is '\0' terminated */
enlargecontext(&hgc->ctx, hgc->ctx.datasize + 1);
@@ -599,8 +632,9 @@
void hgc_attachio(hgclient_t *hgc)
{
assert(hgc);
- if (!(hgc->capflags & CAP_ATTACHIO))
+ if (!(hgc->capflags & CAP_ATTACHIO)) {
return;
+ }
attachio(hgc);
}
@@ -613,8 +647,9 @@
void hgc_setenv(hgclient_t *hgc, const char *const envp[])
{
assert(hgc && envp);
- if (!(hgc->capflags & CAP_SETENV))
+ if (!(hgc->capflags & CAP_SETENV)) {
return;
+ }
packcmdargs(&hgc->ctx, envp, /*argsize*/ -1);
writeblockrequest(hgc, "setenv");
}
--- a/contrib/chg/procutil.c Thu Jan 24 11:35:40 2019 -0500
+++ b/contrib/chg/procutil.c Thu Jan 24 10:21:59 2019 -0500
@@ -25,8 +25,9 @@
static void forwardsignal(int sig)
{
assert(peerpid > 0);
- if (kill(peerpid, sig) < 0)
+ if (kill(peerpid, sig) < 0) {
abortmsgerrno("cannot kill %d", peerpid);
+ }
debugmsg("forward signal %d", sig);
}
@@ -34,8 +35,9 @@
{
/* prefer kill(-pgid, sig), fallback to pid if pgid is invalid */
pid_t killpid = peerpgid > 1 ? -peerpgid : peerpid;
- if (kill(killpid, sig) < 0)
+ if (kill(killpid, sig) < 0) {
abortmsgerrno("cannot kill %d", killpid);
+ }
debugmsg("forward signal %d to %d", sig, killpid);
}
@@ -43,28 +45,36 @@
{
sigset_t unblockset, oldset;
struct sigaction sa, oldsa;
- if (sigemptyset(&unblockset) < 0)
+ if (sigemptyset(&unblockset) < 0) {
goto error;
- if (sigaddset(&unblockset, sig) < 0)
+ }
+ if (sigaddset(&unblockset, sig) < 0) {
goto error;
+ }
memset(&sa, 0, sizeof(sa));
sa.sa_handler = SIG_DFL;
sa.sa_flags = SA_RESTART;
- if (sigemptyset(&sa.sa_mask) < 0)
+ if (sigemptyset(&sa.sa_mask) < 0) {
goto error;
+ }
forwardsignal(sig);
- if (raise(sig) < 0) /* resend to self */
+ if (raise(sig) < 0) { /* resend to self */
goto error;
- if (sigaction(sig, &sa, &oldsa) < 0)
+ }
+ if (sigaction(sig, &sa, &oldsa) < 0) {
goto error;
- if (sigprocmask(SIG_UNBLOCK, &unblockset, &oldset) < 0)
+ }
+ if (sigprocmask(SIG_UNBLOCK, &unblockset, &oldset) < 0) {
goto error;
+ }
/* resent signal will be handled before sigprocmask() returns */
- if (sigprocmask(SIG_SETMASK, &oldset, NULL) < 0)
+ if (sigprocmask(SIG_SETMASK, &oldset, NULL) < 0) {
goto error;
- if (sigaction(sig, &oldsa, NULL) < 0)
+ }
+ if (sigaction(sig, &oldsa, NULL) < 0) {
goto error;
+ }
return;
error:
@@ -73,19 +83,22 @@
static void handlechildsignal(int sig UNUSED_)
{
- if (peerpid == 0 || pagerpid == 0)
+ if (peerpid == 0 || pagerpid == 0) {
return;
+ }
/* if pager exits, notify the server with SIGPIPE immediately.
* otherwise the server won't get SIGPIPE if it does not write
* anything. (issue5278) */
- if (waitpid(pagerpid, NULL, WNOHANG) == pagerpid)
+ if (waitpid(pagerpid, NULL, WNOHANG) == pagerpid) {
kill(peerpid, SIGPIPE);
+ }
}
void setupsignalhandler(pid_t pid, pid_t pgid)
{
- if (pid <= 0)
+ if (pid <= 0) {
return;
+ }
peerpid = pid;
peerpgid = (pgid <= 1 ? 0 : pgid);
@@ -98,42 +111,52 @@
* - SIGINT: usually generated by the terminal */
sa.sa_handler = forwardsignaltogroup;
sa.sa_flags = SA_RESTART;
- if (sigemptyset(&sa.sa_mask) < 0)
+ if (sigemptyset(&sa.sa_mask) < 0) {
+ goto error;
+ }
+ if (sigaction(SIGHUP, &sa, NULL) < 0) {
goto error;
- if (sigaction(SIGHUP, &sa, NULL) < 0)
+ }
+ if (sigaction(SIGINT, &sa, NULL) < 0) {
goto error;
- if (sigaction(SIGINT, &sa, NULL) < 0)
- goto error;
+ }
/* terminate frontend by double SIGTERM in case of server freeze */
sa.sa_handler = forwardsignal;
sa.sa_flags |= SA_RESETHAND;
- if (sigaction(SIGTERM, &sa, NULL) < 0)
+ if (sigaction(SIGTERM, &sa, NULL) < 0) {
goto error;
+ }
/* notify the worker about window resize events */
sa.sa_flags = SA_RESTART;
- if (sigaction(SIGWINCH, &sa, NULL) < 0)
+ if (sigaction(SIGWINCH, &sa, NULL) < 0) {
goto error;
+ }
/* forward user-defined signals */
- if (sigaction(SIGUSR1, &sa, NULL) < 0)
+ if (sigaction(SIGUSR1, &sa, NULL) < 0) {
goto error;
- if (sigaction(SIGUSR2, &sa, NULL) < 0)
+ }
+ if (sigaction(SIGUSR2, &sa, NULL) < 0) {
goto error;
+ }
/* propagate job control requests to worker */
sa.sa_handler = forwardsignal;
sa.sa_flags = SA_RESTART;
- if (sigaction(SIGCONT, &sa, NULL) < 0)
+ if (sigaction(SIGCONT, &sa, NULL) < 0) {
goto error;
+ }
sa.sa_handler = handlestopsignal;
sa.sa_flags = SA_RESTART;
- if (sigaction(SIGTSTP, &sa, NULL) < 0)
+ if (sigaction(SIGTSTP, &sa, NULL) < 0) {
goto error;
+ }
/* get notified when pager exits */
sa.sa_handler = handlechildsignal;
sa.sa_flags = SA_RESTART;
- if (sigaction(SIGCHLD, &sa, NULL) < 0)
+ if (sigaction(SIGCHLD, &sa, NULL) < 0) {
goto error;
+ }
return;
@@ -147,26 +170,34 @@
memset(&sa, 0, sizeof(sa));
sa.sa_handler = SIG_DFL;
sa.sa_flags = SA_RESTART;
- if (sigemptyset(&sa.sa_mask) < 0)
+ if (sigemptyset(&sa.sa_mask) < 0) {
goto error;
+ }
- if (sigaction(SIGHUP, &sa, NULL) < 0)
+ if (sigaction(SIGHUP, &sa, NULL) < 0) {
goto error;
- if (sigaction(SIGTERM, &sa, NULL) < 0)
+ }
+ if (sigaction(SIGTERM, &sa, NULL) < 0) {
goto error;
- if (sigaction(SIGWINCH, &sa, NULL) < 0)
+ }
+ if (sigaction(SIGWINCH, &sa, NULL) < 0) {
goto error;
- if (sigaction(SIGCONT, &sa, NULL) < 0)
+ }
+ if (sigaction(SIGCONT, &sa, NULL) < 0) {
goto error;
- if (sigaction(SIGTSTP, &sa, NULL) < 0)
+ }
+ if (sigaction(SIGTSTP, &sa, NULL) < 0) {
goto error;
- if (sigaction(SIGCHLD, &sa, NULL) < 0)
+ }
+ if (sigaction(SIGCHLD, &sa, NULL) < 0) {
goto error;
+ }
/* ignore Ctrl+C while shutting down to make pager exits cleanly */
sa.sa_handler = SIG_IGN;
- if (sigaction(SIGINT, &sa, NULL) < 0)
+ if (sigaction(SIGINT, &sa, NULL) < 0) {
goto error;
+ }
peerpid = 0;
return;
@@ -180,22 +211,27 @@
pid_t setuppager(const char *pagercmd, const char *envp[])
{
assert(pagerpid == 0);
- if (!pagercmd)
+ if (!pagercmd) {
return 0;
+ }
int pipefds[2];
- if (pipe(pipefds) < 0)
+ if (pipe(pipefds) < 0) {
return 0;
+ }
pid_t pid = fork();
- if (pid < 0)
+ if (pid < 0) {
goto error;
+ }
if (pid > 0) {
close(pipefds[0]);
- if (dup2(pipefds[1], fileno(stdout)) < 0)
+ if (dup2(pipefds[1], fileno(stdout)) < 0) {
goto error;
+ }
if (isatty(fileno(stderr))) {
- if (dup2(pipefds[1], fileno(stderr)) < 0)
+ if (dup2(pipefds[1], fileno(stderr)) < 0) {
goto error;
+ }
}
close(pipefds[1]);
pagerpid = pid;
@@ -222,16 +258,18 @@
void waitpager(void)
{
- if (pagerpid == 0)
+ if (pagerpid == 0) {
return;
+ }
/* close output streams to notify the pager its input ends */
fclose(stdout);
fclose(stderr);
while (1) {
pid_t ret = waitpid(pagerpid, NULL, 0);
- if (ret == -1 && errno == EINTR)
+ if (ret == -1 && errno == EINTR) {
continue;
+ }
break;
}
}
--- a/contrib/chg/util.c Thu Jan 24 11:35:40 2019 -0500
+++ b/contrib/chg/util.c Thu Jan 24 10:21:59 2019 -0500
@@ -25,8 +25,9 @@
static inline void fsetcolor(FILE *fp, const char *code)
{
- if (!colorenabled)
+ if (!colorenabled) {
return;
+ }
fprintf(fp, "\033[%sm", code);
}
@@ -35,8 +36,9 @@
fsetcolor(stderr, "1;31");
fputs("chg: abort: ", stderr);
vfprintf(stderr, fmt, args);
- if (no != 0)
+ if (no != 0) {
fprintf(stderr, " (errno = %d, %s)", no, strerror(no));
+ }
fsetcolor(stderr, "");
fputc('\n', stderr);
exit(255);
@@ -82,8 +84,9 @@
void debugmsg(const char *fmt, ...)
{
- if (!debugmsgenabled)
+ if (!debugmsgenabled) {
return;
+ }
va_list args;
va_start(args, fmt);
@@ -98,32 +101,37 @@
void fchdirx(int dirfd)
{
int r = fchdir(dirfd);
- if (r == -1)
+ if (r == -1) {
abortmsgerrno("failed to fchdir");
+ }
}
void fsetcloexec(int fd)
{
int flags = fcntl(fd, F_GETFD);
- if (flags < 0)
+ if (flags < 0) {
abortmsgerrno("cannot get flags of fd %d", fd);
- if (fcntl(fd, F_SETFD, flags | FD_CLOEXEC) < 0)
+ }
+ if (fcntl(fd, F_SETFD, flags | FD_CLOEXEC) < 0) {
abortmsgerrno("cannot set flags of fd %d", fd);
+ }
}
void *mallocx(size_t size)
{
void *result = malloc(size);
- if (!result)
+ if (!result) {
abortmsg("failed to malloc");
+ }
return result;
}
void *reallocx(void *ptr, size_t size)
{
void *result = realloc(ptr, size);
- if (!result)
+ if (!result) {
abortmsg("failed to realloc");
+ }
return result;
}
@@ -144,30 +152,37 @@
memset(&newsa, 0, sizeof(newsa));
newsa.sa_handler = SIG_IGN;
newsa.sa_flags = 0;
- if (sigemptyset(&newsa.sa_mask) < 0)
+ if (sigemptyset(&newsa.sa_mask) < 0) {
goto done;
- if (sigaction(SIGINT, &newsa, &oldsaint) < 0)
+ }
+ if (sigaction(SIGINT, &newsa, &oldsaint) < 0) {
goto done;
+ }
doneflags |= F_SIGINT;
- if (sigaction(SIGQUIT, &newsa, &oldsaquit) < 0)
+ if (sigaction(SIGQUIT, &newsa, &oldsaquit) < 0) {
goto done;
+ }
doneflags |= F_SIGQUIT;
- if (sigaddset(&newsa.sa_mask, SIGCHLD) < 0)
+ if (sigaddset(&newsa.sa_mask, SIGCHLD) < 0) {
goto done;
- if (sigprocmask(SIG_BLOCK, &newsa.sa_mask, &oldmask) < 0)
+ }
+ if (sigprocmask(SIG_BLOCK, &newsa.sa_mask, &oldmask) < 0) {
goto done;
+ }
doneflags |= F_SIGMASK;
pid_t pid = fork();
- if (pid < 0)
+ if (pid < 0) {
goto done;
+ }
if (pid == 0) {
sigaction(SIGINT, &oldsaint, NULL);
sigaction(SIGQUIT, &oldsaquit, NULL);
sigprocmask(SIG_SETMASK, &oldmask, NULL);
- if (cwd && chdir(cwd) < 0)
+ if (cwd && chdir(cwd) < 0) {
_exit(127);
+ }
const char *argv[] = {"sh", "-c", cmd, NULL};
if (envp) {
execve("/bin/sh", (char **)argv, (char **)envp);
@@ -176,25 +191,32 @@
}
_exit(127);
} else {
- if (waitpid(pid, &status, 0) < 0)
+ if (waitpid(pid, &status, 0) < 0) {
goto done;
+ }
doneflags |= F_WAITPID;
}
done:
- if (doneflags & F_SIGINT)
+ if (doneflags & F_SIGINT) {
sigaction(SIGINT, &oldsaint, NULL);
- if (doneflags & F_SIGQUIT)
+ }
+ if (doneflags & F_SIGQUIT) {
sigaction(SIGQUIT, &oldsaquit, NULL);
- if (doneflags & F_SIGMASK)
+ }
+ if (doneflags & F_SIGMASK) {
sigprocmask(SIG_SETMASK, &oldmask, NULL);
+ }
/* no way to report other errors, use 127 (= shell termination) */
- if (!(doneflags & F_WAITPID))
+ if (!(doneflags & F_WAITPID)) {
return 127;
- if (WIFEXITED(status))
+ }
+ if (WIFEXITED(status)) {
return WEXITSTATUS(status);
- if (WIFSIGNALED(status))
+ }
+ if (WIFSIGNALED(status)) {
return -WTERMSIG(status);
+ }
return 127;
}
--- a/mercurial/bdiff.c Thu Jan 24 11:35:40 2019 -0500
+++ b/mercurial/bdiff.c Thu Jan 24 10:21:59 2019 -0500
@@ -35,15 +35,19 @@
/* count the lines */
i = 1; /* extra line for sentinel */
- for (p = a; p < plast; p++)
- if (*p == '\n')
+ for (p = a; p < plast; p++) {
+ if (*p == '\n') {
i++;
- if (p == plast)
+ }
+ }
+ if (p == plast) {
i++;
+ }
*lr = l = (struct bdiff_line *)calloc(i, sizeof(struct bdiff_line));
- if (!l)
+ if (!l) {
return -1;
+ }
/* build the line array and calculate hashes */
hash = 0;
@@ -90,18 +94,21 @@
struct pos *h = NULL;
/* build a hash table of the next highest power of 2 */
- while (buckets < bn + 1)
+ while (buckets < bn + 1) {
buckets *= 2;
+ }
/* try to allocate a large hash table to avoid collisions */
for (scale = 4; scale; scale /= 2) {
h = (struct pos *)calloc(buckets, scale * sizeof(struct pos));
- if (h)
+ if (h) {
break;
+ }
}
- if (!h)
+ if (!h) {
return 0;
+ }
buckets = buckets * scale - 1;
@@ -115,9 +122,11 @@
for (i = 0; i < bn; i++) {
/* find the equivalence class */
for (j = b[i].hash & buckets; h[j].pos != -1;
- j = (j + 1) & buckets)
- if (!cmp(b + i, b + h[j].pos))
+ j = (j + 1) & buckets) {
+ if (!cmp(b + i, b + h[j].pos)) {
break;
+ }
+ }
/* add to the head of the equivalence class */
b[i].n = h[j].pos;
@@ -133,15 +142,18 @@
for (i = 0; i < an; i++) {
/* find the equivalence class */
for (j = a[i].hash & buckets; h[j].pos != -1;
- j = (j + 1) & buckets)
- if (!cmp(a + i, b + h[j].pos))
+ j = (j + 1) & buckets) {
+ if (!cmp(a + i, b + h[j].pos)) {
break;
+ }
+ }
a[i].e = j; /* use equivalence class for quick compare */
- if (h[j].len <= t)
+ if (h[j].len <= t) {
a[i].n = h[j].pos; /* point to head of match list */
- else
+ } else {
a[i].n = -1; /* too popular */
+ }
}
/* discard hash tables */
@@ -158,16 +170,18 @@
/* window our search on large regions to better bound
worst-case performance. by choosing a window at the end, we
reduce skipping overhead on the b chains. */
- if (a2 - a1 > 30000)
+ if (a2 - a1 > 30000) {
a1 = a2 - 30000;
+ }
half = (a1 + a2 - 1) / 2;
bhalf = (b1 + b2 - 1) / 2;
for (i = a1; i < a2; i++) {
/* skip all lines in b after the current block */
- for (j = a[i].n; j >= b2; j = b[j].n)
+ for (j = a[i].n; j >= b2; j = b[j].n) {
;
+ }
/* loop through all lines match a[i] in b */
for (; j >= b1; j = b[j].n) {
@@ -179,8 +193,9 @@
break;
}
/* previous line mismatch? */
- if (a[i - k].e != b[j - k].e)
+ if (a[i - k].e != b[j - k].e) {
break;
+ }
}
pos[j].pos = i;
@@ -212,8 +227,9 @@
}
/* expand match to include subsequent popular lines */
- while (mi + mk < a2 && mj + mk < b2 && a[mi + mk].e == b[mj + mk].e)
+ while (mi + mk < a2 && mj + mk < b2 && a[mi + mk].e == b[mj + mk].e) {
mk++;
+ }
*omi = mi;
*omj = mj;
@@ -230,18 +246,21 @@
while (1) {
/* find the longest match in this chunk */
k = longest_match(a, b, pos, a1, a2, b1, b2, &i, &j);
- if (!k)
+ if (!k) {
return l;
+ }
/* and recurse on the remaining chunks on either side */
l = recurse(a, b, pos, a1, i, b1, j, l);
- if (!l)
+ if (!l) {
return NULL;
+ }
l->next =
(struct bdiff_hunk *)malloc(sizeof(struct bdiff_hunk));
- if (!l->next)
+ if (!l->next) {
return NULL;
+ }
l = l->next;
l->a1 = i;
@@ -271,14 +290,16 @@
/* generate the matching block list */
curr = recurse(a, b, pos, 0, an, 0, bn, base);
- if (!curr)
+ if (!curr) {
return -1;
+ }
/* sentinel end hunk */
curr->next =
(struct bdiff_hunk *)malloc(sizeof(struct bdiff_hunk));
- if (!curr->next)
+ if (!curr->next) {
return -1;
+ }
curr = curr->next;
curr->a1 = curr->a2 = an;
curr->b1 = curr->b2 = bn;
@@ -291,10 +312,11 @@
for (curr = base->next; curr; curr = curr->next) {
struct bdiff_hunk *next = curr->next;
- if (!next)
+ if (!next) {
break;
+ }
- if (curr->a2 == next->a1 || curr->b2 == next->b1)
+ if (curr->a2 == next->a1 || curr->b2 == next->b1) {
while (curr->a2 < an && curr->b2 < bn &&
next->a1 < next->a2 && next->b1 < next->b2 &&
!cmp(a + curr->a2, b + curr->b2)) {
@@ -303,10 +325,12 @@
curr->b2++;
next->b1++;
}
+ }
}
- for (curr = base->next; curr; curr = curr->next)
+ for (curr = base->next; curr; curr = curr->next) {
count++;
+ }
return count;
}
--- a/mercurial/cext/base85.c Thu Jan 24 11:35:40 2019 -0500
+++ b/mercurial/cext/base85.c Thu Jan 24 10:21:59 2019 -0500
@@ -24,8 +24,9 @@
unsigned i;
memset(b85dec, 0, sizeof(b85dec));
- for (i = 0; i < sizeof(b85chars); i++)
+ for (i = 0; i < sizeof(b85chars); i++) {
b85dec[(int)(b85chars[i])] = i + 1;
+ }
}
static PyObject *b85encode(PyObject *self, PyObject *args)
@@ -37,19 +38,22 @@
unsigned int acc, val, ch;
int pad = 0;
- if (!PyArg_ParseTuple(args, PY23("s#|i", "y#|i"), &text, &len, &pad))
+ if (!PyArg_ParseTuple(args, PY23("s#|i", "y#|i"), &text, &len, &pad)) {
return NULL;
+ }
- if (pad)
+ if (pad) {
olen = ((len + 3) / 4 * 5) - 3;
- else {
+ } else {
olen = len % 4;
- if (olen)
+ if (olen) {
olen++;
+ }
olen += len / 4 * 5;
}
- if (!(out = PyBytes_FromStringAndSize(NULL, olen + 3)))
+ if (!(out = PyBytes_FromStringAndSize(NULL, olen + 3))) {
return NULL;
+ }
dst = PyBytes_AsString(out);
@@ -58,8 +62,9 @@
for (i = 24; i >= 0; i -= 8) {
ch = *text++;
acc |= ch << i;
- if (--len == 0)
+ if (--len == 0) {
break;
+ }
}
for (i = 4; i >= 0; i--) {
val = acc % 85;
@@ -69,8 +74,9 @@
dst += 5;
}
- if (!pad)
+ if (!pad) {
_PyBytes_Resize(&out, olen);
+ }
return out;
}
@@ -84,15 +90,18 @@
int c;
unsigned int acc;
- if (!PyArg_ParseTuple(args, PY23("s#", "y#"), &text, &len))
+ if (!PyArg_ParseTuple(args, PY23("s#", "y#"), &text, &len)) {
return NULL;
+ }
olen = len / 5 * 4;
i = len % 5;
- if (i)
+ if (i) {
olen += i - 1;
- if (!(out = PyBytes_FromStringAndSize(NULL, olen)))
+ }
+ if (!(out = PyBytes_FromStringAndSize(NULL, olen))) {
return NULL;
+ }
dst = PyBytes_AsString(out);
@@ -100,8 +109,9 @@
while (i < len) {
acc = 0;
cap = len - i - 1;
- if (cap > 4)
+ if (cap > 4) {
cap = 4;
+ }
for (j = 0; j < cap; i++, j++) {
c = b85dec[(int)*text++] - 1;
if (c < 0) {
@@ -136,10 +146,12 @@
cap = olen < 4 ? olen : 4;
olen -= cap;
- for (j = 0; j < 4 - cap; j++)
+ for (j = 0; j < 4 - cap; j++) {
acc *= 85;
- if (cap && cap < 4)
+ }
+ if (cap && cap < 4) {
acc += 0xffffff >> (cap - 1) * 8;
+ }
for (j = 0; j < cap; j++) {
acc = (acc << 8) | (acc >> 24);
*dst++ = acc;
--- a/mercurial/cext/bdiff.c Thu Jan 24 11:35:40 2019 -0500
+++ b/mercurial/cext/bdiff.c Thu Jan 24 10:21:59 2019 -0500
@@ -29,22 +29,26 @@
l.next = NULL;
- if (!PyArg_ParseTuple(args, "SS:bdiff", &sa, &sb))
+ if (!PyArg_ParseTuple(args, "SS:bdiff", &sa, &sb)) {
return NULL;
+ }
an = bdiff_splitlines(PyBytes_AsString(sa), PyBytes_Size(sa), &a);
bn = bdiff_splitlines(PyBytes_AsString(sb), PyBytes_Size(sb), &b);
- if (!a || !b)
+ if (!a || !b) {
goto nomem;
+ }
count = bdiff_diff(a, an, b, bn, &l);
- if (count < 0)
+ if (count < 0) {
goto nomem;
+ }
rl = PyList_New(count);
- if (!rl)
+ if (!rl) {
goto nomem;
+ }
for (h = l.next; h; h = h->next) {
m = Py_BuildValue("iiii", h->a1, h->a2, h->b1, h->b2);
@@ -72,8 +76,10 @@
l.next = NULL;
- if (!PyArg_ParseTuple(args, PY23("s*s*:bdiff", "y*y*:bdiff"), &ba, &bb))
+ if (!PyArg_ParseTuple(args, PY23("s*s*:bdiff", "y*y*:bdiff"), &ba,
+ &bb)) {
return NULL;
+ }
if (!PyBuffer_IsContiguous(&ba, 'C') || ba.ndim > 1) {
PyErr_SetString(PyExc_ValueError, "bdiff input not contiguous");
@@ -98,8 +104,9 @@
lmax = la > lb ? lb : la;
for (ia = ba.buf, ib = bb.buf; li < lmax && *ia == *ib;
++li, ++ia, ++ib) {
- if (*ia == '\n')
+ if (*ia == '\n') {
lcommon = li + 1;
+ }
}
/* we can almost add: if (li == lmax) lcommon = li; */
@@ -119,8 +126,9 @@
/* calculate length of output */
la = lb = 0;
for (h = l.next; h; h = h->next) {
- if (h->a1 != la || h->b1 != lb)
+ if (h->a1 != la || h->b1 != lb) {
len += 12 + bl[h->b1].l - bl[lb].l;
+ }
la = h->a2;
lb = h->b2;
}
@@ -129,8 +137,9 @@
result = PyBytes_FromStringAndSize(NULL, len);
- if (!result)
+ if (!result) {
goto cleanup;
+ }
/* build binary patch */
rb = PyBytes_AsString(result);
@@ -151,8 +160,9 @@
}
cleanup:
- if (_save)
+ if (_save) {
PyEval_RestoreThread(_save);
+ }
PyBuffer_Release(&ba);
PyBuffer_Release(&bb);
free(al);
@@ -174,20 +184,23 @@
Py_ssize_t i, rlen, wlen = 0;
char *w;
- if (!PyArg_ParseTuple(args, "Sb:fixws", &s, &allws))
+ if (!PyArg_ParseTuple(args, "Sb:fixws", &s, &allws)) {
return NULL;
+ }
r = PyBytes_AsString(s);
rlen = PyBytes_Size(s);
w = (char *)PyMem_Malloc(rlen ? rlen : 1);
- if (!w)
+ if (!w) {
goto nomem;
+ }
for (i = 0; i != rlen; i++) {
c = r[i];
if (c == ' ' || c == '\t' || c == '\r') {
- if (!allws && (wlen == 0 || w[wlen - 1] != ' '))
+ if (!allws && (wlen == 0 || w[wlen - 1] != ' ')) {
w[wlen++] = ' ';
+ }
} else if (c == '\n' && !allws && wlen > 0 &&
w[wlen - 1] == ' ') {
w[wlen - 1] = '\n';
@@ -207,8 +220,9 @@
const char *source, Py_ssize_t len)
{
PyObject *sliced = PyBytes_FromStringAndSize(source, len);
- if (sliced == NULL)
+ if (sliced == NULL) {
return false;
+ }
PyList_SET_ITEM(list, destidx, sliced);
return true;
}
@@ -232,19 +246,22 @@
++nelts;
}
}
- if ((result = PyList_New(nelts + 1)) == NULL)
+ if ((result = PyList_New(nelts + 1)) == NULL) {
goto abort;
+ }
nelts = 0;
for (i = 0; i < size - 1; ++i) {
if (text[i] == '\n') {
if (!sliceintolist(result, nelts++, text + start,
- i - start + 1))
+ i - start + 1)) {
goto abort;
+ }
start = i + 1;
}
}
- if (!sliceintolist(result, nelts++, text + start, size - start))
+ if (!sliceintolist(result, nelts++, text + start, size - start)) {
goto abort;
+ }
return result;
abort:
Py_XDECREF(result);
@@ -257,8 +274,9 @@
PyObject *rl = (PyObject *)priv;
PyObject *m = Py_BuildValue("LLLL", a1, a2, b1, b2);
int r;
- if (!m)
+ if (!m) {
return -1;
+ }
r = PyList_Append(rl, m);
Py_DECREF(m);
return r;
@@ -282,15 +300,17 @@
};
if (!PyArg_ParseTuple(args, PY23("s#s#", "y#y#"), &a.ptr, &la, &b.ptr,
- &lb))
+ &lb)) {
return NULL;
+ }
a.size = la;
b.size = lb;
rl = PyList_New(0);
- if (!rl)
+ if (!rl) {
return PyErr_NoMemory();
+ }
ecb.priv = rl;
--- a/mercurial/cext/charencode.c Thu Jan 24 11:35:40 2019 -0500
+++ b/mercurial/cext/charencode.c Thu Jan 24 10:21:59 2019 -0500
@@ -114,8 +114,9 @@
ret = PyBytes_FromStringAndSize(NULL, len / 2);
- if (!ret)
+ if (!ret) {
return NULL;
+ }
d = PyBytes_AsString(ret);
@@ -133,21 +134,24 @@
const char *buf;
Py_ssize_t i, len;
if (!PyArg_ParseTuple(args, PY23("s#:isasciistr", "y#:isasciistr"),
- &buf, &len))
+ &buf, &len)) {
return NULL;
+ }
i = 0;
/* char array in PyStringObject should be at least 4-byte aligned */
if (((uintptr_t)buf & 3) == 0) {
const uint32_t *p = (const uint32_t *)buf;
for (; i < len / 4; i++) {
- if (p[i] & 0x80808080U)
+ if (p[i] & 0x80808080U) {
Py_RETURN_FALSE;
+ }
}
i *= 4;
}
for (; i < len; i++) {
- if (buf[i] & 0x80)
+ if (buf[i] & 0x80) {
Py_RETURN_FALSE;
+ }
}
Py_RETURN_TRUE;
}
@@ -164,8 +168,9 @@
len = PyBytes_GET_SIZE(str_obj);
newobj = PyBytes_FromStringAndSize(NULL, len);
- if (!newobj)
+ if (!newobj) {
goto quit;
+ }
newstr = PyBytes_AS_STRING(newobj);
@@ -197,16 +202,18 @@
PyObject *asciilower(PyObject *self, PyObject *args)
{
PyObject *str_obj;
- if (!PyArg_ParseTuple(args, "O!:asciilower", &PyBytes_Type, &str_obj))
+ if (!PyArg_ParseTuple(args, "O!:asciilower", &PyBytes_Type, &str_obj)) {
return NULL;
+ }
return _asciitransform(str_obj, lowertable, NULL);
}
PyObject *asciiupper(PyObject *self, PyObject *args)
{
PyObject *str_obj;
- if (!PyArg_ParseTuple(args, "O!:asciiupper", &PyBytes_Type, &str_obj))
+ if (!PyArg_ParseTuple(args, "O!:asciiupper", &PyBytes_Type, &str_obj)) {
return NULL;
+ }
return _asciitransform(str_obj, uppertable, NULL);
}
@@ -222,8 +229,9 @@
if (!PyArg_ParseTuple(args, "O!O!O!:make_file_foldmap", &PyDict_Type,
&dmap, &PyInt_Type, &spec_obj, &PyFunction_Type,
- &normcase_fallback))
+ &normcase_fallback)) {
goto quit;
+ }
spec = (int)PyInt_AS_LONG(spec_obj);
switch (spec) {
@@ -244,8 +252,9 @@
/* Add some more entries to deal with additions outside this
function. */
file_foldmap = _dict_new_presized((PyDict_Size(dmap) / 10) * 11);
- if (file_foldmap == NULL)
+ if (file_foldmap == NULL) {
goto quit;
+ }
while (PyDict_Next(dmap, &pos, &k, &v)) {
if (!dirstate_tuple_check(v)) {
@@ -265,8 +274,9 @@
normcase_fallback, k, NULL);
}
- if (normed == NULL)
+ if (normed == NULL) {
goto quit;
+ }
if (PyDict_SetItem(file_foldmap, normed, k) == -1) {
Py_DECREF(normed);
goto quit;
@@ -377,22 +387,25 @@
Py_ssize_t origlen, esclen;
int paranoid;
if (!PyArg_ParseTuple(args, "O!i:jsonescapeu8fast", &PyBytes_Type,
- &origstr, ¶noid))
+ &origstr, ¶noid)) {
return NULL;
+ }
origbuf = PyBytes_AS_STRING(origstr);
origlen = PyBytes_GET_SIZE(origstr);
esclen = jsonescapelen(origbuf, origlen, paranoid);
- if (esclen < 0)
+ if (esclen < 0) {
return NULL; /* unsupported char found or overflow */
+ }
if (origlen == esclen) {
Py_INCREF(origstr);
return origstr;
}
escstr = PyBytes_FromStringAndSize(NULL, esclen);
- if (!escstr)
+ if (!escstr) {
return NULL;
+ }
encodejsonescape(PyBytes_AS_STRING(escstr), esclen, origbuf, origlen,
paranoid);
--- a/mercurial/cext/mpatch.c Thu Jan 24 11:35:40 2019 -0500
+++ b/mercurial/cext/mpatch.c Thu Jan 24 10:21:59 2019 -0500
@@ -55,13 +55,16 @@
int r;
PyObject *tmp = PyList_GetItem((PyObject *)bins, pos);
- if (!tmp)
+ if (!tmp) {
return NULL;
- if (PyObject_GetBuffer(tmp, &buffer, PyBUF_CONTIG_RO))
+ }
+ if (PyObject_GetBuffer(tmp, &buffer, PyBUF_CONTIG_RO)) {
return NULL;
+ }
if ((r = mpatch_decode(buffer.buf, buffer.len, &res)) < 0) {
- if (!PyErr_Occurred())
+ if (!PyErr_Occurred()) {
setpyerr(r);
+ }
res = NULL;
}
@@ -78,8 +81,9 @@
char *out;
Py_ssize_t len, outlen;
- if (!PyArg_ParseTuple(args, "OO:mpatch", &text, &bins))
+ if (!PyArg_ParseTuple(args, "OO:mpatch", &text, &bins)) {
return NULL;
+ }
len = PyList_Size(bins);
if (!len) {
@@ -94,8 +98,9 @@
patch = mpatch_fold(bins, cpygetitem, 0, len);
if (!patch) { /* error already set or memory error */
- if (!PyErr_Occurred())
+ if (!PyErr_Occurred()) {
PyErr_NoMemory();
+ }
result = NULL;
goto cleanup;
}
@@ -126,8 +131,9 @@
cleanup:
mpatch_lfree(patch);
PyBuffer_Release(&buffer);
- if (!result && !PyErr_Occurred())
+ if (!result && !PyErr_Occurred()) {
setpyerr(r);
+ }
return result;
}
@@ -138,15 +144,18 @@
Py_ssize_t patchlen;
char *bin;
- if (!PyArg_ParseTuple(args, PY23("ls#", "ly#"), &orig, &bin, &patchlen))
+ if (!PyArg_ParseTuple(args, PY23("ls#", "ly#"), &orig, &bin,
+ &patchlen)) {
return NULL;
+ }
while (pos >= 0 && pos < patchlen) {
start = getbe32(bin + pos);
end = getbe32(bin + pos + 4);
len = getbe32(bin + pos + 8);
- if (start > end)
+ if (start > end) {
break; /* sanity check */
+ }
pos += 12 + len;
outlen += start - last;
last = end;
@@ -154,9 +163,10 @@
}
if (pos != patchlen) {
- if (!PyErr_Occurred())
+ if (!PyErr_Occurred()) {
PyErr_SetString(mpatch_Error,
"patch cannot be decoded");
+ }
return NULL;
}
--- a/mercurial/cext/parsers.c Thu Jan 24 11:35:40 2019 -0500
+++ b/mercurial/cext/parsers.c Thu Jan 24 10:21:59 2019 -0500
@@ -32,8 +32,9 @@
{
Py_ssize_t expected_size;
- if (!PyArg_ParseTuple(args, "n:make_presized_dict", &expected_size))
+ if (!PyArg_ParseTuple(args, "n:make_presized_dict", &expected_size)) {
return NULL;
+ }
return _dict_new_presized(expected_size);
}
@@ -43,8 +44,9 @@
{
dirstateTupleObject *t =
PyObject_New(dirstateTupleObject, &dirstateTupleType);
- if (!t)
+ if (!t) {
return NULL;
+ }
t->state = state;
t->mode = mode;
t->size = size;
@@ -60,12 +62,14 @@
dirstateTupleObject *t;
char state;
int size, mode, mtime;
- if (!PyArg_ParseTuple(args, "ciii", &state, &mode, &size, &mtime))
+ if (!PyArg_ParseTuple(args, "ciii", &state, &mode, &size, &mtime)) {
return NULL;
+ }
t = (dirstateTupleObject *)subtype->tp_alloc(subtype, 1);
- if (!t)
+ if (!t) {
return NULL;
+ }
t->state = state;
t->mode = mode;
t->size = size;
@@ -165,8 +169,9 @@
if (!PyArg_ParseTuple(
args, PY23("O!O!s#:parse_dirstate", "O!O!y#:parse_dirstate"),
- &PyDict_Type, &dmap, &PyDict_Type, &cmap, &str, &readlen))
+ &PyDict_Type, &dmap, &PyDict_Type, &cmap, &str, &readlen)) {
goto quit;
+ }
len = readlen;
@@ -178,8 +183,9 @@
}
parents = Py_BuildValue(PY23("s#s#", "y#y#"), str, 20, str + 20, 20);
- if (!parents)
+ if (!parents) {
goto quit;
+ }
/* read filenames */
while (pos >= 40 && pos < len) {
@@ -212,13 +218,16 @@
cpos + 1, flen - (cpos - cur) - 1);
if (!fname || !cname ||
PyDict_SetItem(cmap, fname, cname) == -1 ||
- PyDict_SetItem(dmap, fname, entry) == -1)
+ PyDict_SetItem(dmap, fname, entry) == -1) {
goto quit;
+ }
Py_DECREF(cname);
} else {
fname = PyBytes_FromStringAndSize(cur, flen);
- if (!fname || PyDict_SetItem(dmap, fname, entry) == -1)
+ if (!fname ||
+ PyDict_SetItem(dmap, fname, entry) == -1) {
goto quit;
+ }
}
Py_DECREF(fname);
Py_DECREF(entry);
@@ -245,16 +254,20 @@
PyObject *nonnset = NULL, *otherpset = NULL, *result = NULL;
Py_ssize_t pos;
- if (!PyArg_ParseTuple(args, "O!:nonnormalentries", &PyDict_Type, &dmap))
+ if (!PyArg_ParseTuple(args, "O!:nonnormalentries", &PyDict_Type,
+ &dmap)) {
goto bail;
+ }
nonnset = PySet_New(NULL);
- if (nonnset == NULL)
+ if (nonnset == NULL) {
goto bail;
+ }
otherpset = PySet_New(NULL);
- if (otherpset == NULL)
+ if (otherpset == NULL) {
goto bail;
+ }
pos = 0;
while (PyDict_Next(dmap, &pos, &fname, &v)) {
@@ -272,15 +285,18 @@
}
}
- if (t->state == 'n' && t->mtime != -1)
+ if (t->state == 'n' && t->mtime != -1) {
continue;
- if (PySet_Add(nonnset, fname) == -1)
+ }
+ if (PySet_Add(nonnset, fname) == -1) {
goto bail;
+ }
}
result = Py_BuildValue("(OO)", nonnset, otherpset);
- if (result == NULL)
+ if (result == NULL) {
goto bail;
+ }
Py_DECREF(nonnset);
Py_DECREF(otherpset);
return result;
@@ -304,8 +320,10 @@
int now;
if (!PyArg_ParseTuple(args, "O!O!O!i:pack_dirstate", &PyDict_Type, &map,
- &PyDict_Type, ©map, &PyTuple_Type, &pl, &now))
+ &PyDict_Type, ©map, &PyTuple_Type, &pl,
+ &now)) {
return NULL;
+ }
if (PyTuple_Size(pl) != 2) {
PyErr_SetString(PyExc_TypeError, "expected 2-element tuple");
@@ -332,8 +350,9 @@
}
packobj = PyBytes_FromStringAndSize(NULL, nbytes);
- if (packobj == NULL)
+ if (packobj == NULL) {
goto bail;
+ }
p = PyBytes_AS_STRING(packobj);
@@ -377,10 +396,12 @@
mtime = -1;
mtime_unset = (PyObject *)make_dirstate_tuple(
state, mode, size, mtime);
- if (!mtime_unset)
+ if (!mtime_unset) {
goto bail;
- if (PyDict_SetItem(map, k, mtime_unset) == -1)
+ }
+ if (PyDict_SetItem(map, k, mtime_unset) == -1) {
goto bail;
+ }
Py_DECREF(mtime_unset);
mtime_unset = NULL;
}
@@ -664,8 +685,9 @@
manifest_module_init(mod);
revlog_module_init(mod);
- if (PyType_Ready(&dirstateTupleType) < 0)
+ if (PyType_Ready(&dirstateTupleType) < 0) {
return;
+ }
Py_INCREF(&dirstateTupleType);
PyModule_AddObject(mod, "dirstatetuple",
(PyObject *)&dirstateTupleType);
@@ -675,12 +697,14 @@
{
PyObject *sys = PyImport_ImportModule("sys"), *ver;
long hexversion;
- if (!sys)
+ if (!sys) {
return -1;
+ }
ver = PyObject_GetAttrString(sys, "hexversion");
Py_DECREF(sys);
- if (!ver)
+ if (!ver) {
return -1;
+ }
hexversion = PyInt_AsLong(ver);
Py_DECREF(ver);
/* sys.hexversion is a 32-bit number by default, so the -1 case
@@ -720,8 +744,9 @@
{
PyObject *mod;
- if (check_python_version() == -1)
+ if (check_python_version() == -1) {
return;
+ }
mod = Py_InitModule3("parsers", methods, parsers_doc);
module_init(mod);
}
--- 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;
}
--- a/mercurial/mpatch.c Thu Jan 24 11:35:40 2019 -0500
+++ b/mercurial/mpatch.c Thu Jan 24 10:21:59 2019 -0500
@@ -41,8 +41,9 @@
{
struct mpatch_flist *a = NULL;
- if (size < 1)
+ if (size < 1) {
size = 1;
+ }
a = (struct mpatch_flist *)malloc(sizeof(struct mpatch_flist));
if (a) {
@@ -110,10 +111,12 @@
while (s != src->tail) {
int soffset = s->start;
- if (!safeadd(offset, &soffset))
+ if (!safeadd(offset, &soffset)) {
break; /* add would overflow, oh well */
- if (soffset >= cut)
+ }
+ if (soffset >= cut) {
break; /* we've gone far enough */
+ }
postend = offset;
if (!safeadd(s->start, &postend) ||
@@ -139,11 +142,13 @@
if (!safesub(offset, &c)) {
break;
}
- if (s->end < c)
+ if (s->end < c) {
c = s->end;
+ }
l = cut - offset - s->start;
- if (s->len < l)
+ if (s->len < l) {
l = s->len;
+ }
offset += s->start + l - c;
@@ -176,8 +181,9 @@
if (!safeadd(offset, &cmpcut)) {
break;
}
- if (cmpcut >= cut)
+ if (cmpcut >= cut) {
break;
+ }
postend = offset;
if (!safeadd(s->start, &postend)) {
@@ -205,11 +211,13 @@
if (!safesub(offset, &c)) {
break;
}
- if (s->end < c)
+ if (s->end < c) {
c = s->end;
+ }
l = cut - offset - s->start;
- if (s->len < l)
+ if (s->len < l) {
l = s->len;
+ }
offset += s->start + l - c;
s->start = c;
@@ -233,8 +241,9 @@
struct mpatch_frag *bh, *ct;
int offset = 0, post;
- if (a && b)
+ if (a && b) {
c = lalloc((lsize(a) + lsize(b)) * 2);
+ }
if (c) {
@@ -284,8 +293,9 @@
/* assume worst case size, we won't have many of these lists */
l = lalloc(len / 12 + 1);
- if (!l)
+ if (!l) {
return MPATCH_ERR_NO_MEM;
+ }
lt = l->tail;
@@ -295,8 +305,9 @@
lt->start = getbe32(bin + pos);
lt->end = getbe32(bin + pos + 4);
lt->len = getbe32(bin + pos + 8);
- if (lt->start < 0 || lt->start > lt->end || lt->len < 0)
+ if (lt->start < 0 || lt->start > lt->end || lt->len < 0) {
break; /* sanity check */
+ }
if (!safeadd(12, &pos)) {
break;
}
--- a/rust/chg/src/sighandlers.c Thu Jan 24 11:35:40 2019 -0500
+++ b/rust/chg/src/sighandlers.c Thu Jan 24 10:21:59 2019 -0500
@@ -33,28 +33,36 @@
{
sigset_t unblockset, oldset;
struct sigaction sa, oldsa;
- if (sigemptyset(&unblockset) < 0)
+ if (sigemptyset(&unblockset) < 0) {
return;
- if (sigaddset(&unblockset, sig) < 0)
+ }
+ if (sigaddset(&unblockset, sig) < 0) {
return;
+ }
memset(&sa, 0, sizeof(sa));
sa.sa_handler = SIG_DFL;
sa.sa_flags = SA_RESTART;
- if (sigemptyset(&sa.sa_mask) < 0)
+ if (sigemptyset(&sa.sa_mask) < 0) {
return;
+ }
forwardsignal(sig);
- if (raise(sig) < 0) /* resend to self */
+ if (raise(sig) < 0) { /* resend to self */
return;
- if (sigaction(sig, &sa, &oldsa) < 0)
+ }
+ if (sigaction(sig, &sa, &oldsa) < 0) {
return;
- if (sigprocmask(SIG_UNBLOCK, &unblockset, &oldset) < 0)
+ }
+ if (sigprocmask(SIG_UNBLOCK, &unblockset, &oldset) < 0) {
return;
+ }
/* resent signal will be handled before sigprocmask() returns */
- if (sigprocmask(SIG_SETMASK, &oldset, NULL) < 0)
+ if (sigprocmask(SIG_SETMASK, &oldset, NULL) < 0) {
return;
- if (sigaction(sig, &oldsa, NULL) < 0)
+ }
+ if (sigaction(sig, &oldsa, NULL) < 0) {
return;
+ }
}
/*
@@ -81,37 +89,46 @@
* - SIGINT: usually generated by the terminal */
sa.sa_handler = forwardsignaltogroup;
sa.sa_flags = SA_RESTART;
- if (sigemptyset(&sa.sa_mask) < 0)
+ if (sigemptyset(&sa.sa_mask) < 0) {
+ return -1;
+ }
+ if (sigaction(SIGHUP, &sa, NULL) < 0) {
return -1;
- if (sigaction(SIGHUP, &sa, NULL) < 0)
+ }
+ if (sigaction(SIGINT, &sa, NULL) < 0) {
return -1;
- if (sigaction(SIGINT, &sa, NULL) < 0)
- return -1;
+ }
/* terminate frontend by double SIGTERM in case of server freeze */
sa.sa_handler = forwardsignal;
sa.sa_flags |= SA_RESETHAND;
- if (sigaction(SIGTERM, &sa, NULL) < 0)
+ if (sigaction(SIGTERM, &sa, NULL) < 0) {
return -1;
+ }
/* notify the worker about window resize events */
sa.sa_flags = SA_RESTART;
- if (sigaction(SIGWINCH, &sa, NULL) < 0)
+ if (sigaction(SIGWINCH, &sa, NULL) < 0) {
return -1;
+ }
/* forward user-defined signals */
- if (sigaction(SIGUSR1, &sa, NULL) < 0)
+ if (sigaction(SIGUSR1, &sa, NULL) < 0) {
return -1;
- if (sigaction(SIGUSR2, &sa, NULL) < 0)
+ }
+ if (sigaction(SIGUSR2, &sa, NULL) < 0) {
return -1;
+ }
/* propagate job control requests to worker */
sa.sa_handler = forwardsignal;
sa.sa_flags = SA_RESTART;
- if (sigaction(SIGCONT, &sa, NULL) < 0)
+ if (sigaction(SIGCONT, &sa, NULL) < 0) {
return -1;
+ }
sa.sa_handler = handlestopsignal;
sa.sa_flags = SA_RESTART;
- if (sigaction(SIGTSTP, &sa, NULL) < 0)
+ if (sigaction(SIGTSTP, &sa, NULL) < 0) {
return -1;
+ }
return 0;
}
@@ -127,24 +144,31 @@
memset(&sa, 0, sizeof(sa));
sa.sa_handler = SIG_DFL;
sa.sa_flags = SA_RESTART;
- if (sigemptyset(&sa.sa_mask) < 0)
+ if (sigemptyset(&sa.sa_mask) < 0) {
return -1;
+ }
- if (sigaction(SIGHUP, &sa, NULL) < 0)
+ if (sigaction(SIGHUP, &sa, NULL) < 0) {
return -1;
- if (sigaction(SIGTERM, &sa, NULL) < 0)
+ }
+ if (sigaction(SIGTERM, &sa, NULL) < 0) {
return -1;
- if (sigaction(SIGWINCH, &sa, NULL) < 0)
+ }
+ if (sigaction(SIGWINCH, &sa, NULL) < 0) {
return -1;
- if (sigaction(SIGCONT, &sa, NULL) < 0)
+ }
+ if (sigaction(SIGCONT, &sa, NULL) < 0) {
return -1;
- if (sigaction(SIGTSTP, &sa, NULL) < 0)
+ }
+ if (sigaction(SIGTSTP, &sa, NULL) < 0) {
return -1;
+ }
/* ignore Ctrl+C while shutting down to make pager exits cleanly */
sa.sa_handler = SIG_IGN;
- if (sigaction(SIGINT, &sa, NULL) < 0)
+ if (sigaction(SIGINT, &sa, NULL) < 0) {
return -1;
+ }
peerpid = 0;
return 0;