commit ae8617668bacced0142bd508bfaaeecfabf92b11
parent 3a6e082601a65e9a451291d066abc11d6d70fb08
Author: Andrew Kloet <andrew@kloet.net>
Date: Sat, 2 May 2026 16:57:39 -0400
style: code smells
Diffstat:
| M | cio.c | | | 72 | +++++++++++++++++++++++++++++++++++++----------------------------------- |
1 file changed, 37 insertions(+), 35 deletions(-)
diff --git a/cio.c b/cio.c
@@ -43,8 +43,8 @@
#include <openssl/x509v3.h>
#undef CTRL
-#define CTRL(x) (x & 037)
-#define IS_CONT(b) (((unsigned char)(b) & 0xC0) == 0x80)
+#define CTRL(x) ((x) & 037)
+#define IS_CONT(b) (((b) & 0xC0) == 0x80)
#define GET_ARG(i) ((argc > (i)) ? argv[i] : "")
#define SCROLL 15
@@ -93,19 +93,19 @@ enum {
};
static struct {
- size_t x, y;
+ int x, y;
WINDOW *sw, *mw, *iw;
} scr;
static struct Chan {
char name[ChanLen];
char *buf, *eol;
- int n; /* Scroll offset. */
- int last_mday; /* Tracks tm_mday of last message */
- size_t sz; /* Size of buf. */
- char high; /* Nick highlight. */
- char new; /* New message. */
- char join; /* Channel was 'j'-oined. */
+ int n; /* Scroll offset. */
+ int last_mday; /* Tracks day of last message */
+ size_t sz; /* Size of buf. */
+ unsigned char high; /* Nick highlight. */
+ unsigned char new; /* New message. */
+ unsigned char join; /* Channel was 'j'-oined. */
} chl[MaxChans];
static struct {
@@ -177,7 +177,8 @@ srd(void)
{
static char l[BufSz], *p = l;
char *s, *usr, *cmd, *argv[MaxParams];
- int rd, argc;
+ int argc;
+ ssize_t rd;
if (p - l >= BufSz)
p = l; /* Input buffer overflow */
@@ -188,8 +189,8 @@ srd(void)
if (rd <= 0) return 0;
p += rd;
for (;;) { /* Cycle on all received lines. */
- if (!(s = memchr(l, '\n', p - l)))
- return 1;
+ s = memchr(l, '\n', p - l);
+ if (!s) return 1;
if (s > l && s[-1] == '\r') s[-1] = 0;
*s++ = 0;
char *line = l, *token;
@@ -244,10 +245,9 @@ dial(const char *host, const char *service)
fd = -1;
}
freeaddrinfo(res);
- if ((srv.fd = fd) == -1)
- return "cannot connect to host";
- if (!ssl)
- return 0;
+ srv.fd = fd;
+ if (!fd) return "cannot connect to host";
+ if (!ssl) return 0; /* done */
SSL_load_error_strings();
SSL_library_init();
srv.ctx = SSL_CTX_new(TLS_client_method());
@@ -255,8 +255,8 @@ dial(const char *host, const char *service)
if (sslverify && (SSL_CTX_set_verify(srv.ctx, SSL_VERIFY_PEER, NULL),
(SSL_CTX_set_default_verify_paths(srv.ctx) != 1)))
return "could not load system trust store";
- if (!(srv.ssl = SSL_new(srv.ctx)))
- return "could not create ssl object";
+ srv.ssl = SSL_new(srv.ctx);
+ if (!srv.ssl) return "could not create ssl object";
if (sslverify &&
(SSL_set_hostflags(srv.ssl, X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS),
!SSL_set1_host(srv.ssl, host) ||
@@ -301,8 +301,8 @@ chadd(const char *name, int joined)
if (nch >= MaxChans || strlen(name) >= ChanLen)
return -1;
- if ((n = chfind(name)) > 0)
- return n;
+ n = chfind(name);
+ if (n > 0) return n;
strlcpy(chl[nch].name, name, sizeof(chl[nch].name));
chl[nch].sz = LogSz;
chl[nch].buf = malloc(LogSz);
@@ -349,7 +349,8 @@ pushl(char *p, char *e)
if (!eol) eol = e;
mbtowc(NULL, NULL, 0);
while (p < eol) {
- if ((n = mbtowc(&wc, p, eol - p)) <= 0) {
+ n = mbtowc(&wc, p, eol - p);
+ if (n <= 0) {
mbtowc(NULL, NULL, 0);
wc = L'?'; n = 1;
}
@@ -513,7 +514,7 @@ scmd(char *usr, char *cmd, int argc, char **argv)
sndf("CAP END");
break;
case AUTHENTICATE:
- if (argc < 1 || strcmp(argv[0], "+")) break;
+ if (argc < 1 || strcmp(argv[0], "+") != 0) break;
if (!empty(cert)) {
sndf("AUTHENTICATE +");
} else if (!empty(usr) && !empty(key)) {
@@ -527,7 +528,7 @@ scmd(char *usr, char *cmd, int argc, char **argv)
memcpy(raw + 1, usr, ulen);
raw[1 + ulen] = '\0';
memcpy(raw + 2 + ulen, key, klen);
- EVP_EncodeBlock((unsigned char *)b64, raw, rlen);
+ EVP_EncodeBlock((unsigned char *)b64, raw, (int)rlen);
sndf("AUTHENTICATE %s", b64);
}
break;
@@ -600,8 +601,8 @@ uparse(char *m)
return;
case 'm': /* Private message. */
m = p + 1 + (p[1] == ' ');
- if (!(p = strchr(m, ' ')))
- return;
+ p = strchr(m, ' ');
+ if (!p) return;
*p++ = 0;
sndf("PRIVMSG %s :%s", m, p);
return;
@@ -634,9 +635,10 @@ tinit(void)
getmaxyx(stdscr, scr.y, scr.x);
if (scr.y < 4)
die("cio: screen too small");
- if ((scr.sw = newwin(1, scr.x, 0, 0)) == 0
- || (scr.mw = newwin(scr.y - 2, scr.x, 1, 0)) == 0
- || (scr.iw = newwin(1, scr.x, scr.y - 1, 0)) == 0)
+ scr.sw = newwin(1, scr.x, 0, 0);
+ scr.mw = newwin(scr.y - 2, scr.x, 1, 0);
+ scr.iw = newwin(1, scr.x, scr.y - 1, 0);
+ if (!scr.sw || !scr.mw || !scr.iw)
die("cio: cannot create windows");
keypad(scr.iw, 1);
scrollok(scr.mw, 1);
@@ -782,7 +784,7 @@ tgetch(void)
int res = wget_wch(scr.iw, &wc);
char *p = &inp.buf[inp.cu]; /* Current cursor position */
size_t tail = inp.len - inp.cu; /* Count of chars after cursor */
- size_t i, old;
+ size_t old;
switch (wc) {
case CTRL('n'): /* FALLTHROUGH */
@@ -841,7 +843,7 @@ tgetch(void)
default:
if (res == KEY_CODE_YES || (iswcntrl(wc))) return;
char mb[MB_LEN_MAX];
- int n = wctomb(mb, wc);
+ int n = wctomb(mb, (wchar_t)wc);
if (n <= 0 || inp.len + n >= BufSz - 1) return;
memmove(p + n, p, tail);
memcpy(p, mb, n);
@@ -885,8 +887,8 @@ main(int argc, char *argv[])
die("cio-" VERSION);
break;
case 'l':
- if (!(logfp = fopen(optarg, "a")))
- die("cio: fopen: logfile:");
+ logfp = fopen(optarg, "a");
+ if (!logfp) die("cio: fopen: logfile:");
break;
case 'n':
if (strlcpy(nick, optarg, sizeof(nick)) >= NickLen)
@@ -955,9 +957,9 @@ main(int argc, char *argv[])
}
}
if (FD_ISSET(srv.fd, &wfs)) {
- int wr = ssl ? SSL_write(srv.ssl, outb, outp - outb)
- : write(srv.fd, outb, outp - outb);
-
+ size_t n = (size_t)(outp - outb);
+ ssize_t wr = ssl ? SSL_write(srv.ssl, outb, (int)n)
+ : write(srv.fd, outb, n);
if (wr <= 0) {
die("cio: write failed: connection lost");
}