MidnightBSD Magus

mail/cclient

Mark Crispin's C-client mail access routines

Flavor Version Run OSVersion Arch License Restricted Status
2007f_1,1 623 4.0 i386 Apache-2.0 0 fail

License Permissions:

Events

Machine Type Time Message
m4032 info 2025-12-16 20:07:41.070836 Test Started
m4032 fail 2025-12-16 20:10:34.897293 make build returned non-zero: 1
m4032 fail 2025-12-16 20:10:35.02589 Test complete.

Log

===>  Building for cclient-2007f_1,1
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Building in full compliance with RFC 3501 security
+ requirements:
++ TLS/SSL encryption is supported
++ Unencrypted plaintext passwords are prohibited
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Applying an process to sources...
tools/an "ln -s" src/c-client c-client
tools/an "ln -s" src/ansilib c-client
tools/an "ln -s" src/charset c-client
tools/an "ln -s" src/osdep/unix c-client
tools/an "ln -s" src/mtest mtest
tools/an "ln -s" src/ipopd ipopd
tools/an "ln -s" src/imapd imapd
tools/an "ln -s" src/mailutil mailutil
tools/an "ln -s" src/mlock mlock
tools/an "ln -s" src/dmail dmail
tools/an "ln -s" src/tmail tmail
ln -s tools/an .
touch ip6
make build EXTRACFLAGS='-O2 -pipe -fstack-protector-strong -fno-strict-aliasing ' EXTRALDFLAGS='' EXTRADRIVERS='mbox' EXTRAAUTHENTICATORS='' PASSWDTYPE=std SSLTYPE=unix.nopwd IP=6 EXTRASPECIALS='' BUILDTYPE=bsf IP=6  PASSWDTYPE=pam  SPECIALS="SSLINCLUDE=/usr/include SSLLIB=/usr/lib SSLCERTS=/usr/local/certs SSLKEYS=/usr/local/certs GSSINCLUDE=/usr/include GSSLIB=/usr/lib PAMLDFLAGS=-lpam"
`ip6' is up to date.
Building c-client for bsf...
echo `cat SPECIALS`  > c-client/SPECIALS
cd c-client;make bsf EXTRACFLAGS='-O2 -pipe -fstack-protector-strong -fno-strict-aliasing ' EXTRALDFLAGS='' EXTRADRIVERS='mbox' EXTRAAUTHENTICATORS='' PASSWDTYPE=pam SSLTYPE=unix.nopwd IP=6 SSLINCLUDE=/usr/include SSLLIB=/usr/lib SSLCERTS=/usr/local/certs SSLKEYS=/usr/local/certs GSSINCLUDE=/usr/include GSSLIB=/usr/lib PAMLDFLAGS=-lpam 
make build EXTRACFLAGS='-O2 -pipe -fstack-protector-strong -fno-strict-aliasing ' EXTRALDFLAGS='' EXTRADRIVERS='mbox' EXTRAAUTHENTICATORS='' PASSWDTYPE=pam SSLTYPE=unix.nopwd IP=6 `cat SPECIALS` OS=bsf CHECKPW=pam  SIGTYPE=psx CRXTYPE=nfs  SPOOLDIR=/var  ACTIVEFILE=/usr/local/news/lib/active  RSHPATH=/usr/bin/rsh  LOCKPGM=/usr/local/libexec/mlock  BASECFLAGS="-g -O2 -pipe -fno-omit-frame-pointer"  BASELDFLAGS="-lpam"
sh -c 'rm -rf auths.c crexcl.c ip_unix.c linkage.[ch] siglocal.c osdep*.[ch] *.o ARCHIVE *FLAGS *TYPE c-client.a || true'
sh -c 'rm -rf *.so libc-client4.so.9'
Once-only environment setup...
echo cc > CCTYPE
echo -g -O2 -pipe -fno-omit-frame-pointer '-O2 -pipe -fstack-protector-strong -fno-strict-aliasing ' -DCHUNKSIZE=65536 > CFLAGS
echo -DCREATEPROTO=unixproto -DEMPTYPROTO=unixproto  -DMD5ENABLE=\"/etc/cram-md5.pwd\" -DMAILSPOOL=\"/var/mail\"  -DANONYMOUSHOME=\"/var/mail/anonymous\"  -DACTIVEFILE=\"/usr/local/news/lib/active\" -DNEWSSPOOL=\"/var/news\"  -DRSHPATH=\"/usr/bin/rsh\" -DLOCKPGM=\"/usr/local/libexec/mlock\"  -DLOCKPGM1=\"/usr/libexec/mlock\" -DLOCKPGM2=\"/usr/sbin/mlock\"  -DLOCKPGM3=\"/etc/mlock\" > OSCFLAGS
echo -lpam  > LDFLAGS
echo "ar rc c-client.a osdep.o mail.o misc.o newsrc.o smanager.o utf8.o utf8aux.o siglocal.o  dummy.o pseudo.o netmsg.o flstring.o fdstring.o  rfc822.o nntp.o smtp.o imap4r1.o pop3.o  unix.o mbx.o mmdf.o tenex.o mtx.o news.o phile.o mh.o mx.o mix.o;ranlib c-client.a" > ARCHIVE
echo bsf > OSTYPE
./drivers mbox imap nntp pop3 mix mx mbx tenex mtx mh mmdf unix news phile dummy
./mkauths  ext md5 pla log
echo "  mail_versioncheck (CCLIENTVERSION);" >> linkage.c
ln -s os_bsf.h osdep.h
ln -s os_bsf.c osdepbas.c
ln -s log_std.c osdeplog.c
ln -s sig_psx.c siglocal.c
ln -s crx_nfs.c crexcl.c
ln -s ip6_unix.c ip_unix.c
sh -c '(test bsf = sc5 -o bsf = sco -o ! -f /usr/include/sys/statvfs.h) && echo -DNOFSTATVFS >> OSCFLAGS || fgrep statvfs64 /usr/include/sys/statvfs.h > /dev/null || echo -DNOFSTATVFS64 >> OSCFLAGS'
PAM password authentication
echo -lpam >> LDFLAGS
ln -s ckp_pam.c osdepckp.c
Building with SSL
ln -s ssl_unix.c osdepssl.c
echo -I/usr/include -I/usr/include/openssl -DSSL_CERT_DIRECTORY=\"/usr/local/certs\" -DSSL_KEY_DIRECTORY=\"/usr/local/certs\" >> OSCFLAGS
echo "  ssl_onceonlyinit ();" >> linkage.c
echo -L/usr/lib -lssl -lcrypto -lcrypt  >> LDFLAGS
Building with SSL and plaintext passwords disabled unless SSL/TLS
echo "  mail_parameters (NIL,SET_DISABLEPLAINTEXT,(void *) 2);" >> linkage.c
cat osdepbas.c osdepckp.c osdeplog.c osdepssl.c > osdep.c
cc `cat CFLAGS` `cat OSCFLAGS` -c osdep.c
In file included from osdep.c:48:
./nl_unix.c:49:19: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
   49 |   if (!*dst) *dst = (char *) fs_get ((*dstl = i) + 1);
      |                   ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from osdep.c:49:
In file included from ./env_unix.c:256:
./pmatch.c:41:43: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
   41 |     if (!pat[1]) return (delim && strchr (s,delim)) ? NIL : T;
      |                                           ^
/usr/include/string.h:80:26: note: passing argument to parameter here
   80 | char    *strchr(const char *, int) __pure;
      |                             ^
In file included from osdep.c:49:
In file included from ./env_unix.c:260:
In file included from ./auths.c:1:
./auth_ext.c:62:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
   62 |   if (challenge = (*challenger) (stream,&clen)) {
      |       ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./auth_ext.c:62:17: note: place parentheses around the assignment to silence this warning
   62 |   if (challenge = (*challenger) (stream,&clen)) {
      |                 ^                             
      |       (                                       )
./auth_ext.c:62:17: note: use '==' to turn this assignment into an equality comparison
   62 |   if (challenge = (*challenger) (stream,&clen)) {
      |                 ^
      |                 ==
./auth_ext.c:66:21: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
   66 |       if (challenge = (*challenger) (stream,&clen))
      |           ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./auth_ext.c:66:21: note: place parentheses around the assignment to silence this warning
   66 |       if (challenge = (*challenger) (stream,&clen))
      |                     ^                             
      |           (                                       )
./auth_ext.c:66:21: note: use '==' to turn this assignment into an equality comparison
   66 |       if (challenge = (*challenger) (stream,&clen))
      |                     ^
      |                     ==
In file included from osdep.c:49:
In file included from ./env_unix.c:260:
In file included from ./auths.c:2:
./auth_md5.c:105:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  105 |   if (challenge = (*challenger) (stream,&clen)) {
      |       ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./auth_md5.c:105:17: note: place parentheses around the assignment to silence this warning
  105 |   if (challenge = (*challenger) (stream,&clen)) {
      |                 ^                             
      |       (                                       )
./auth_md5.c:105:17: note: use '==' to turn this assignment into an equality comparison
  105 |   if (challenge = (*challenger) (stream,&clen)) {
      |                 ^
      |                 ==
./auth_md5.c:120:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  120 |         if (challenge = (*challenger) (stream,&clen))
      |             ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./auth_md5.c:120:16: note: place parentheses around the assignment to silence this warning
  120 |         if (challenge = (*challenger) (stream,&clen))
      |                       ^                             
      |             (                                       )
./auth_md5.c:120:16: note: use '==' to turn this assignment into an equality comparison
  120 |         if (challenge = (*challenger) (stream,&clen))
      |                       ^
      |                       ==
./auth_md5.c:155:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  155 |   if (user = (*responder) (chal,cl = strlen (chal),NIL)) {
      |       ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./auth_md5.c:155:12: note: place parentheses around the assignment to silence this warning
  155 |   if (user = (*responder) (chal,cl = strlen (chal),NIL)) {
      |            ^                                           
      |       (                                                )
./auth_md5.c:155:12: note: use '==' to turn this assignment into an equality comparison
  155 |   if (user = (*responder) (chal,cl = strlen (chal),NIL)) {
      |            ^
      |            ==
./auth_md5.c:157:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  157 |     if (hash = strrchr (user,' ')) {
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~
./auth_md5.c:157:14: note: place parentheses around the assignment to silence this warning
  157 |     if (hash = strrchr (user,' ')) {
      |              ^                   
      |         (                        )
./auth_md5.c:157:14: note: use '==' to turn this assignment into an equality comparison
  157 |     if (hash = strrchr (user,' ')) {
      |              ^
      |              ==
./auth_md5.c:160:20: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  160 |       if (authuser = strchr (user,'*')) *authuser++ = '\0';
      |           ~~~~~~~~~^~~~~~~~~~~~~~~~~~~
./auth_md5.c:160:20: note: place parentheses around the assignment to silence this warning
  160 |       if (authuser = strchr (user,'*')) *authuser++ = '\0';
      |                    ^                  
      |           (                           )
./auth_md5.c:160:20: note: use '==' to turn this assignment into an equality comparison
  160 |       if (authuser = strchr (user,'*')) *authuser++ = '\0';
      |                    ^
      |                    ==
./auth_md5.c:162:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  162 |       if (p = auth_md5_pwd ((authuser && *authuser) ? authuser : user)) {
      |           ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./auth_md5.c:162:13: note: place parentheses around the assignment to silence this warning
  162 |       if (p = auth_md5_pwd ((authuser && *authuser) ? authuser : user)) {
      |             ^                                                         
      |           (                                                           )
./auth_md5.c:162:13: note: use '==' to turn this assignment into an equality comparison
  162 |       if (p = auth_md5_pwd ((authuser && *authuser) ? authuser : user)) {
      |             ^
      |             ==
./auth_md5.c:195:18: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  195 |     read (fd,buf = (char *) fs_get (sbuf.st_size + 1),sbuf.st_size);
      |                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./auth_md5.c:197:12: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  197 |     for (s = user; *s && ((*s < 'A') || (*s > 'Z')); s++);
      |            ^ ~~~~
./auth_md5.c:199:24: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  199 |     lusr = *s ? lcase (cpystr (user)) : NIL;
      |                        ^~~~~~~~~~~~~
./misc.h:87:38: note: passing argument to parameter 'string' here
   87 | unsigned char *lcase (unsigned char *string);
      |                                      ^
In file included from osdep.c:49:
In file included from ./env_unix.c:260:
In file included from ./auths.c:2:
./auth_md5.c:200:12: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  200 |     for (s = strtok_r ((char *) buf,"\015\012",&r),lret = NIL; s;
      |            ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./auth_md5.c:201:5: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  201 |          s = ret ? NIL : strtok_r (NIL,"\015\012",&r))
      |            ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./auth_md5.c:203:45: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  203 |       if (*s && (*s != '#') && (t = strchr (s,'\t')) && t[1]) {
      |                                             ^
/usr/include/string.h:80:26: note: passing argument to parameter here
   80 | char    *strchr(const char *, int) __pure;
      |                             ^
In file included from osdep.c:49:
In file included from ./env_unix.c:260:
In file included from ./auths.c:2:
./auth_md5.c:203:35: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  203 |       if (*s && (*s != '#') && (t = strchr (s,'\t')) && t[1]) {
      |                                   ^ ~~~~~~~~~~~~~~~
./auth_md5.c:205:15: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  205 |         if (!strcmp (s,user)) ret = cpystr (t);
      |                      ^
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
In file included from osdep.c:49:
In file included from ./env_unix.c:260:
In file included from ./auths.c:2:
./auth_md5.c:205:38: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  205 |         if (!strcmp (s,user)) ret = cpystr (t);
      |                                             ^
./misc.h:88:27: note: passing argument to parameter 'string' here
   88 | char *cpystr (const char *string);
      |                           ^
In file included from osdep.c:49:
In file included from ./env_unix.c:260:
In file included from ./auths.c:2:
./auth_md5.c:206:39: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  206 |         else if (lusr && !lret) if (!strcmp (s,lusr)) lret = t;
      |                                              ^
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
In file included from osdep.c:49:
In file included from ./env_unix.c:260:
In file included from ./auths.c:2:
./auth_md5.c:206:41: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  206 |         else if (lusr && !lret) if (!strcmp (s,lusr)) lret = t;
      |                                                ^~~~
/usr/include/string.h:85:39: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                                           ^
In file included from osdep.c:49:
In file included from ./env_unix.c:260:
In file included from ./auths.c:2:
./auth_md5.c:209:37: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  209 |     if (!ret && lret) ret = cpystr (lret);
      |                                     ^~~~
./misc.h:88:27: note: passing argument to parameter 'string' here
   88 | char *cpystr (const char *string);
      |                           ^
In file included from osdep.c:49:
In file included from ./env_unix.c:260:
In file included from ./auths.c:2:
./auth_md5.c:238:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  238 |   if (authuser = strchr (user,'*')) *authuser++ = '\0';
      |       ~~~~~~~~~^~~~~~~~~~~~~~~~~~~
./auth_md5.c:238:16: note: place parentheses around the assignment to silence this warning
  238 |   if (authuser = strchr (user,'*')) *authuser++ = '\0';
      |                ^                  
      |       (                           )
./auth_md5.c:238:16: note: use '==' to turn this assignment into an equality comparison
  238 |   if (authuser = strchr (user,'*')) *authuser++ = '\0';
      |                ^
      |                ==
./auth_md5.c:240:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  240 |   if (s = auth_md5_pwd ((authuser && *authuser) ? authuser : user)) {
      |       ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./auth_md5.c:240:9: note: place parentheses around the assignment to silence this warning
  240 |   if (s = auth_md5_pwd ((authuser && *authuser) ? authuser : user)) {
      |         ^                                                         
      |       (                                                           )
./auth_md5.c:240:9: note: use '==' to turn this assignment into an equality comparison
  240 |   if (s = auth_md5_pwd ((authuser && *authuser) ? authuser : user)) {
      |         ^
      |         ==
In file included from osdep.c:49:
In file included from ./env_unix.c:260:
In file included from ./auths.c:3:
./auth_pla.c:66:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
   66 |   if (challenge = (*challenger) (stream,&clen)) {
      |       ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./auth_pla.c:66:17: note: place parentheses around the assignment to silence this warning
   66 |   if (challenge = (*challenger) (stream,&clen)) {
      |                 ^                             
      |       (                                       )
./auth_pla.c:66:17: note: use '==' to turn this assignment into an equality comparison
   66 |   if (challenge = (*challenger) (stream,&clen)) {
      |                 ^
      |                 ==
./auth_pla.c:94:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
   94 |         if (challenge = (*challenger) (stream,&clen))
      |             ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./auth_pla.c:94:16: note: place parentheses around the assignment to silence this warning
   94 |         if (challenge = (*challenger) (stream,&clen))
      |                       ^                             
      |             (                                       )
./auth_pla.c:94:16: note: use '==' to turn this assignment into an equality comparison
   94 |         if (challenge = (*challenger) (stream,&clen))
      |                       ^
      |                       ==
./auth_pla.c:123:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  123 |   if (aid = (*responder) ("",0,&len)) {
      |       ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
./auth_pla.c:123:11: note: place parentheses around the assignment to silence this warning
  123 |   if (aid = (*responder) ("",0,&len)) {
      |           ^                         
      |       (                             )
./auth_pla.c:123:11: note: use '==' to turn this assignment into an equality comparison
  123 |   if (aid = (*responder) ("",0,&len)) {
      |           ^
      |           ==
In file included from osdep.c:49:
In file included from ./env_unix.c:260:
In file included from ./auths.c:4:
./auth_log.c:66:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
   66 |   if (challenge = (*challenger) (stream,&clen)) {
      |       ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./auth_log.c:66:17: note: place parentheses around the assignment to silence this warning
   66 |   if (challenge = (*challenger) (stream,&clen)) {
      |                 ^                             
      |       (                                       )
./auth_log.c:66:17: note: use '==' to turn this assignment into an equality comparison
   66 |   if (challenge = (*challenger) (stream,&clen)) {
      |                 ^
      |                 ==
./auth_log.c:81:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
   81 |         if (challenge = (*challenger) (stream,&clen))
      |             ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./auth_log.c:81:16: note: place parentheses around the assignment to silence this warning
   81 |         if (challenge = (*challenger) (stream,&clen))
      |                       ^                             
      |             (                                       )
./auth_log.c:81:16: note: use '==' to turn this assignment into an equality comparison
   81 |         if (challenge = (*challenger) (stream,&clen))
      |                       ^
      |                       ==
./auth_log.c:107:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  107 |   if (user = (*responder) (PWD_USER,sizeof (PWD_USER),NIL)) {
      |       ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./auth_log.c:107:12: note: place parentheses around the assignment to silence this warning
  107 |   if (user = (*responder) (PWD_USER,sizeof (PWD_USER),NIL)) {
      |            ^                                              
      |       (                                                   )
./auth_log.c:107:12: note: use '==' to turn this assignment into an equality comparison
  107 |   if (user = (*responder) (PWD_USER,sizeof (PWD_USER),NIL)) {
      |            ^
      |            ==
./auth_log.c:108:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  108 |     if (pass = (*responder) (PWD_PWD,sizeof (PWD_PWD),NIL)) {
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./auth_log.c:108:14: note: place parentheses around the assignment to silence this warning
  108 |     if (pass = (*responder) (PWD_PWD,sizeof (PWD_PWD),NIL)) {
      |              ^                                            
      |         (                                                 )
./auth_log.c:108:14: note: use '==' to turn this assignment into an equality comparison
  108 |     if (pass = (*responder) (PWD_PWD,sizeof (PWD_PWD),NIL)) {
      |              ^
      |              ==
./auth_log.c:110:20: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  110 |       if (authuser = strchr (user,'*')) *authuser++ = '\0';
      |           ~~~~~~~~~^~~~~~~~~~~~~~~~~~~
./auth_log.c:110:20: note: place parentheses around the assignment to silence this warning
  110 |       if (authuser = strchr (user,'*')) *authuser++ = '\0';
      |                    ^                  
      |           (                           )
./auth_log.c:110:20: note: use '==' to turn this assignment into an equality comparison
  110 |       if (authuser = strchr (user,'*')) *authuser++ = '\0';
      |                    ^
      |                    ==
In file included from osdep.c:49:
./env_unix.c:514:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  514 |   if (julian = t->tm_yday -julian)
      |       ~~~~~~~^~~~~~~~~~~~~~~~~~~~
./env_unix.c:514:14: note: place parentheses around the assignment to silence this warning
  514 |   if (julian = t->tm_yday -julian)
      |              ^                   
      |       (                          )
./env_unix.c:514:14: note: use '==' to turn this assignment into an equality comparison
  514 |   if (julian = t->tm_yday -julian)
      |              ^
      |              ==
./env_unix.c:641:33: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  641 |   struct passwd *pw = getpwnam (user);
      |                                 ^~~~
/usr/include/pwd.h:149:37: note: passing argument to parameter here
  149 | struct passwd   *getpwnam(const char *);
      |                                       ^
In file included from osdep.c:49:
./env_unix.c:645:41: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  645 |       pw = getpwnam (s = lcase (cpystr (user)));
      |                                         ^~~~
./misc.h:88:27: note: passing argument to parameter 'string' here
   88 | char *cpystr (const char *string);
      |                           ^
In file included from osdep.c:49:
./env_unix.c:645:33: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  645 |       pw = getpwnam (s = lcase (cpystr (user)));
      |                                 ^~~~~~~~~~~~~
./misc.h:87:38: note: passing argument to parameter 'string' here
   87 | unsigned char *lcase (unsigned char *string);
      |                                      ^
In file included from osdep.c:49:
./env_unix.c:645:22: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  645 |       pw = getpwnam (s = lcase (cpystr (user)));
      |                      ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/pwd.h:149:37: note: passing argument to parameter here
  149 | struct passwd   *getpwnam(const char *);
      |                                       ^
In file included from osdep.c:49:
./env_unix.c:669:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  669 |     if (s = auth_md5_pwd (user)) {
      |         ~~^~~~~~~~~~~~~~~~~~~~~
./env_unix.c:669:11: note: place parentheses around the assignment to silence this warning
  669 |     if (s = auth_md5_pwd (user)) {
      |           ^                    
      |         (                      )
./env_unix.c:669:11: note: use '==' to turn this assignment into an equality comparison
  669 |     if (s = auth_md5_pwd (user)) {
      |           ^
      |           ==
./env_unix.c:671:16: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  671 |         ret = pwuser (user);    /* validated, get passwd entry for user */
      |                       ^~~~
./env_unix.c:638:46: note: passing argument to parameter 'user' here
  638 | static struct passwd *pwuser (unsigned char *user)
      |                                              ^
./env_unix.c:676:25: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  676 |   else if (pw = pwuser (user)) {/* can get user? */
      |                         ^~~~
./env_unix.c:638:46: note: passing argument to parameter 'user' here
  638 | static struct passwd *pwuser (unsigned char *user)
      |                                              ^
./env_unix.c:676:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  676 |   else if (pw = pwuser (user)) {/* can get user? */
      |            ~~~^~~~~~~~~~~~~~~
./env_unix.c:676:15: note: place parentheses around the assignment to silence this warning
  676 |   else if (pw = pwuser (user)) {/* can get user? */
      |               ^              
      |            (                 )
./env_unix.c:676:15: note: use '==' to turn this assignment into an equality comparison
  676 |   else if (pw = pwuser (user)) {/* can get user? */
      |               ^
      |               ==
./env_unix.c:679:44: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  679 |         (*pwd == ' ') && pwd[1] && (ret = pwuser (s)))
      |                                                   ^
./env_unix.c:638:46: note: passing argument to parameter 'user' here
  638 | static struct passwd *pwuser (unsigned char *user)
      |                                              ^
./env_unix.c:710:58: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  710 |   else if (valpwd (authuser,pwd,argc,argv)) pw = pwuser (user);
      |                                                          ^~~~
./env_unix.c:638:46: note: passing argument to parameter 'user' here
  638 | static struct passwd *pwuser (unsigned char *user)
      |                                              ^
./env_unix.c:728:28: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  728 |   return pw_login (pwuser (user),authuser,user,NIL,argc,argv);
      |                            ^~~~
./env_unix.c:638:46: note: passing argument to parameter 'user' here
  638 | static struct passwd *pwuser (unsigned char *user)
      |                                              ^
./env_unix.c:767:53: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  767 |     if (user && auser && *auser && compare_cstring (auser,user)) {
      |                                                     ^~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:767:59: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  767 |     if (user && auser && *auser && compare_cstring (auser,user)) {
      |                                                           ^~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:770:24: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  770 |         if (!compare_cstring (auser,*t++))
      |                               ^~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:770:30: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  770 |         if (!compare_cstring (auser,*t++))
      |                                     ^~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1057:47: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1057 |       sprintf (dst,"%s/%s",s,compare_cstring (name+8,"INBOX") ?
      |                                               ^~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1057:54: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1057 |       sprintf (dst,"%s/%s",s,compare_cstring (name+8,"INBOX") ?
      |                                                      ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1067:63: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1067 |       else if ((s = strchr (name+1,'/')) && !compare_cstring (s+1,"INBOX")) {
      |                                                               ^~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1067:67: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1067 |       else if ((s = strchr (name+1,'/')) && !compare_cstring (s+1,"INBOX")) {
      |                                                                   ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1087:55: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1087 |       if ((s = strchr (name,'/')) && compare_cstring (s+1,"INBOX")) {
      |                                                       ^~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1087:59: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1087 |       if ((s = strchr (name,'/')) && compare_cstring (s+1,"INBOX")) {
      |                                                           ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1101:24: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1101 |         if (!compare_cstring (name,"INBOX")) name = "INBOX";
      |                               ^~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1101:29: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1101 |         if (!compare_cstring (name,"INBOX")) name = "INBOX";
      |                                    ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1115:27: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1115 |     if (!compare_cstring (name+1,"NBOX")) {
      |                           ^~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1115:34: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1115 |     if (!compare_cstring (name+1,"NBOX")) {
      |                                  ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1251:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1251 |     if (s = strrchr (base->lock,'/')) {
      |         ~~^~~~~~~~~~~~~~~~~~~~~~~~~~
./env_unix.c:1251:11: note: place parentheses around the assignment to silence this warning
 1251 |     if (s = strrchr (base->lock,'/')) {
      |           ^                         
      |         (                           )
./env_unix.c:1251:11: note: use '==' to turn this assignment into an equality comparison
 1251 |     if (s = strrchr (base->lock,'/')) {
      |           ^
      |           ==
./env_unix.c:1565:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1565 |       if (!compare_cstring (s,"set keywords") && !userFlags[0]) {
      |                             ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1565:31: warning: passing 'char[13]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1565 |       if (!compare_cstring (s,"set keywords") && !userFlags[0]) {
      |                               ^~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1579:26: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1579 |           if (!compare_cstring (s,"set new-mailbox-format") ||
      |                                 ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1579:28: warning: passing 'char[23]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1579 |           if (!compare_cstring (s,"set new-mailbox-format") ||
      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1580:26: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1580 |               !compare_cstring (s,"set new-folder-format")) {
      |                                 ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1580:28: warning: passing 'char[22]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1580 |               !compare_cstring (s,"set new-folder-format")) {
      |                                   ^~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1581:28: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1581 |             if (!compare_cstring (k,"same-as-inbox")) {
      |                                   ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1581:30: warning: passing 'char[14]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1581 |             if (!compare_cstring (k,"same-as-inbox")) {
      |                                     ^~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1582:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1582 |               if (d = mail_valid (NIL,"INBOX",NIL)) {
      |                   ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./env_unix.c:1582:14: note: place parentheses around the assignment to silence this warning
 1582 |               if (d = mail_valid (NIL,"INBOX",NIL)) {
      |                     ^                             
      |                   (                               )
./env_unix.c:1582:14: note: use '==' to turn this assignment into an equality comparison
 1582 |               if (d = mail_valid (NIL,"INBOX",NIL)) {
      |                     ^
      |                     ==
./env_unix.c:1583:25: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1583 |                 if (!compare_cstring (d->name,"mbox"))
      |                                       ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1583:33: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1583 |                 if (!compare_cstring (d->name,"mbox"))
      |                                               ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1586:30: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1586 |                 else if (!compare_cstring (d->name,"dummy")) d = NIL;
      |                                            ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1586:38: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1586 |                 else if (!compare_cstring (d->name,"dummy")) d = NIL;
      |                                                    ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1590:33: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1590 |             else if (!compare_cstring (k,"system-standard"))
      |                                        ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1590:35: warning: passing 'char[16]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1590 |             else if (!compare_cstring (k,"system-standard"))
      |                                          ^~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1593:30: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1593 |               if (!compare_cstring (k,"mbox")) k = "unix";
      |                                     ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1593:32: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1593 |               if (!compare_cstring (k,"mbox")) k = "unix";
      |                                       ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1595:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1595 |               if (d = (DRIVER *) mail_parameters (NIL,GET_DRIVER,(void *) k))
      |                   ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./env_unix.c:1595:14: note: place parentheses around the assignment to silence this warning
 1595 |               if (d = (DRIVER *) mail_parameters (NIL,GET_DRIVER,(void *) k))
      |                     ^                                                       
      |                   (                                                         )
./env_unix.c:1595:14: note: use '==' to turn this assignment into an equality comparison
 1595 |               if (d = (DRIVER *) mail_parameters (NIL,GET_DRIVER,(void *) k))
      |                     ^
      |                     ==
./env_unix.c:1604:26: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1604 |           if (!compare_cstring (s,"set empty-mailbox-format") ||
      |                                 ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1604:28: warning: passing 'char[25]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1604 |           if (!compare_cstring (s,"set empty-mailbox-format") ||
      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1605:26: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1605 |               !compare_cstring (s,"set empty-folder-format")) {
      |                                 ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1605:28: warning: passing 'char[24]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1605 |               !compare_cstring (s,"set empty-folder-format")) {
      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1606:28: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1606 |             if (!compare_cstring (k,"invalid")) appendProto = NIL;
      |                                   ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1606:30: warning: passing 'char[8]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1606 |             if (!compare_cstring (k,"invalid")) appendProto = NIL;
      |                                     ^~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1607:33: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1607 |             else if (!compare_cstring (k,"same-as-inbox"))
      |                                        ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1607:35: warning: passing 'char[14]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1607 |             else if (!compare_cstring (k,"same-as-inbox"))
      |                                          ^~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1609:26: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1609 |                              compare_cstring (d->name,"dummy")) ?
      |                                               ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1609:34: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1609 |                              compare_cstring (d->name,"dummy")) ?
      |                                                       ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1611:33: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1611 |             else if (!compare_cstring (k,"system-standard"))
      |                                        ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1611:35: warning: passing 'char[16]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1611 |             else if (!compare_cstring (k,"system-standard"))
      |                                          ^~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1615:28: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1615 |                    d && compare_cstring (d->name,k); d = d->next);
      |                                          ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1615:36: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1615 |                    d && compare_cstring (d->name,k); d = d->next);
      |                                                  ^
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1626:24: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1626 |         if (!compare_cstring (s,"set local-host")) {
      |                               ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1626:26: warning: passing 'char[15]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1626 |         if (!compare_cstring (s,"set local-host")) {
      |                                 ^~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1630:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1630 |         else if (!compare_cstring (s,"set news-active-file")) {
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1630:31: warning: passing 'char[21]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1630 |         else if (!compare_cstring (s,"set news-active-file")) {
      |                                      ^~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1634:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1634 |         else if (!compare_cstring (s,"set news-spool-directory")) {
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1634:31: warning: passing 'char[25]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1634 |         else if (!compare_cstring (s,"set news-spool-directory")) {
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1638:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1638 |         else if (!compare_cstring (s,"set mh-path"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1638:31: warning: passing 'char[12]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1638 |         else if (!compare_cstring (s,"set mh-path"))
      |                                      ^~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1640:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1640 |         else if (!compare_cstring (s,"set mh-allow-inbox"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1640:31: warning: passing 'char[19]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1640 |         else if (!compare_cstring (s,"set mh-allow-inbox"))
      |                                      ^~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1642:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1642 |         else if (!compare_cstring (s,"set news-state-file")) {
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1642:31: warning: passing 'char[20]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1642 |         else if (!compare_cstring (s,"set news-state-file")) {
      |                                      ^~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1646:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1646 |         else if (!compare_cstring (s,"set ftp-export-directory")) {
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1646:31: warning: passing 'char[25]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1646 |         else if (!compare_cstring (s,"set ftp-export-directory")) {
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1650:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1650 |         else if (!compare_cstring (s,"set public-home-directory")) {
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1650:31: warning: passing 'char[26]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1650 |         else if (!compare_cstring (s,"set public-home-directory")) {
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1654:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1654 |         else if (!compare_cstring (s,"set shared-home-directory")) {
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1654:31: warning: passing 'char[26]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1654 |         else if (!compare_cstring (s,"set shared-home-directory")) {
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1658:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1658 |         else if (!compare_cstring (s,"set system-inbox")) {
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1658:31: warning: passing 'char[17]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1658 |         else if (!compare_cstring (s,"set system-inbox")) {
      |                                      ^~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1662:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1662 |         else if (!compare_cstring (s,"set mail-subdirectory")) {
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1662:31: warning: passing 'char[22]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1662 |         else if (!compare_cstring (s,"set mail-subdirectory")) {
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1666:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1666 |         else if (!compare_cstring (s,"set from-widget"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1666:31: warning: passing 'char[16]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1666 |         else if (!compare_cstring (s,"set from-widget"))
      |                                      ^~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1668:24: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1668 |                            compare_cstring (k,"header-only") ?
      |                                             ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1668:26: warning: passing 'char[12]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1668 |                            compare_cstring (k,"header-only") ?
      |                                               ^~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1671:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1671 |         else if (!compare_cstring (s,"set rsh-command"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1671:31: warning: passing 'char[16]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1671 |         else if (!compare_cstring (s,"set rsh-command"))
      |                                      ^~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1673:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1673 |         else if (!compare_cstring (s,"set rsh-path"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1673:31: warning: passing 'char[13]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1673 |         else if (!compare_cstring (s,"set rsh-path"))
      |                                      ^~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1675:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1675 |         else if (!compare_cstring (s,"set ssh-command"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1675:31: warning: passing 'char[16]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1675 |         else if (!compare_cstring (s,"set ssh-command"))
      |                                      ^~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1677:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1677 |         else if (!compare_cstring (s,"set ssh-path"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1677:31: warning: passing 'char[13]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1677 |         else if (!compare_cstring (s,"set ssh-path"))
      |                                      ^~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1679:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1679 |         else if (!compare_cstring (s,"set tcp-open-timeout"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1679:31: warning: passing 'char[21]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1679 |         else if (!compare_cstring (s,"set tcp-open-timeout"))
      |                                      ^~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1681:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1681 |         else if (!compare_cstring (s,"set tcp-read-timeout"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1681:31: warning: passing 'char[21]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1681 |         else if (!compare_cstring (s,"set tcp-read-timeout"))
      |                                      ^~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1683:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1683 |         else if (!compare_cstring (s,"set tcp-write-timeout"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1683:31: warning: passing 'char[22]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1683 |         else if (!compare_cstring (s,"set tcp-write-timeout"))
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1685:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1685 |         else if (!compare_cstring (s,"set rsh-timeout"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1685:31: warning: passing 'char[16]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1685 |         else if (!compare_cstring (s,"set rsh-timeout"))
      |                                      ^~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1687:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1687 |         else if (!compare_cstring (s,"set ssh-timeout"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1687:31: warning: passing 'char[16]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1687 |         else if (!compare_cstring (s,"set ssh-timeout"))
      |                                      ^~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1689:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1689 |         else if (!compare_cstring (s,"set maximum-login-trials"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1689:31: warning: passing 'char[25]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1689 |         else if (!compare_cstring (s,"set maximum-login-trials"))
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1691:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1691 |         else if (!compare_cstring (s,"set lookahead"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1691:31: warning: passing 'char[14]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1691 |         else if (!compare_cstring (s,"set lookahead"))
      |                                      ^~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1693:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1693 |         else if (!compare_cstring (s,"set prefetch"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1693:31: warning: passing 'char[13]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1693 |         else if (!compare_cstring (s,"set prefetch"))
      |                                      ^~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1695:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1695 |         else if (!compare_cstring (s,"set close-on-error"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1695:31: warning: passing 'char[19]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1695 |         else if (!compare_cstring (s,"set close-on-error"))
      |                                      ^~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1697:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1697 |         else if (!compare_cstring (s,"set imap-port"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1697:31: warning: passing 'char[14]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1697 |         else if (!compare_cstring (s,"set imap-port"))
      |                                      ^~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1699:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1699 |         else if (!compare_cstring (s,"set pop3-port"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1699:31: warning: passing 'char[14]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1699 |         else if (!compare_cstring (s,"set pop3-port"))
      |                                      ^~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1701:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1701 |         else if (!compare_cstring (s,"set uid-lookahead"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1701:31: warning: passing 'char[18]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1701 |         else if (!compare_cstring (s,"set uid-lookahead"))
      |                                      ^~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1703:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1703 |         else if (!compare_cstring (s,"set try-ssl-first"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1703:31: warning: passing 'char[18]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1703 |         else if (!compare_cstring (s,"set try-ssl-first"))
      |                                      ^~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1706:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1706 |         else if (!compare_cstring (s,"set mailbox-protection"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1706:31: warning: passing 'char[23]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1706 |         else if (!compare_cstring (s,"set mailbox-protection"))
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1708:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1708 |         else if (!compare_cstring (s,"set directory-protection"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1708:31: warning: passing 'char[25]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1708 |         else if (!compare_cstring (s,"set directory-protection"))
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1710:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1710 |         else if (!compare_cstring (s,"set lock-protection"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1710:31: warning: passing 'char[20]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1710 |         else if (!compare_cstring (s,"set lock-protection"))
      |                                      ^~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1712:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1712 |         else if (!compare_cstring (s,"set ftp-protection"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1712:31: warning: passing 'char[19]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1712 |         else if (!compare_cstring (s,"set ftp-protection"))
      |                                      ^~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1714:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1714 |         else if (!compare_cstring (s,"set public-protection"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1714:31: warning: passing 'char[22]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1714 |         else if (!compare_cstring (s,"set public-protection"))
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1716:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1716 |         else if (!compare_cstring (s,"set shared-protection"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1716:31: warning: passing 'char[22]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1716 |         else if (!compare_cstring (s,"set shared-protection"))
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1718:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1718 |         else if (!compare_cstring (s,"set ftp-directory-protection"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1718:31: warning: passing 'char[29]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1718 |         else if (!compare_cstring (s,"set ftp-directory-protection"))
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1720:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1720 |         else if (!compare_cstring (s,"set public-directory-protection"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1720:31: warning: passing 'char[32]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1720 |         else if (!compare_cstring (s,"set public-directory-protection"))
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1722:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1722 |         else if (!compare_cstring (s,"set shared-directory-protection"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1722:31: warning: passing 'char[32]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1722 |         else if (!compare_cstring (s,"set shared-directory-protection"))
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1724:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1724 |         else if (!compare_cstring (s,"set dot-lock-file-timeout"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1724:31: warning: passing 'char[26]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1724 |         else if (!compare_cstring (s,"set dot-lock-file-timeout"))
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1726:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1726 |         else if (!compare_cstring (s,"set disable-fcntl-locking"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1726:31: warning: passing 'char[26]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1726 |         else if (!compare_cstring (s,"set disable-fcntl-locking"))
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1728:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1728 |         else if (!compare_cstring (s,"set disable-lock-warning"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1728:31: warning: passing 'char[25]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1728 |         else if (!compare_cstring (s,"set disable-lock-warning"))
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1730:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1730 |         else if (!compare_cstring (s,"set disable-unix-UIDs-and-keywords"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1730:31: warning: passing 'char[35]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1730 |         else if (!compare_cstring (s,"set disable-unix-UIDs-and-keywords"))
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1732:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1732 |         else if (!compare_cstring (s,"set hide-dot-files"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1732:31: warning: passing 'char[19]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1732 |         else if (!compare_cstring (s,"set hide-dot-files"))
      |                                      ^~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1734:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1734 |         else if (!compare_cstring (s,"set list-maximum-level"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1734:31: warning: passing 'char[23]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1734 |         else if (!compare_cstring (s,"set list-maximum-level"))
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1736:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1736 |         else if (!compare_cstring (s,"set trust-dns"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1736:31: warning: passing 'char[14]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1736 |         else if (!compare_cstring (s,"set trust-dns"))
      |                                      ^~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1738:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1738 |         else if (!compare_cstring (s,"set sasl-uses-ptr-name"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1738:31: warning: passing 'char[23]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1738 |         else if (!compare_cstring (s,"set sasl-uses-ptr-name"))
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1740:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1740 |         else if (!compare_cstring (s,"set network-filesystem-stat-bug"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1740:31: warning: passing 'char[32]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1740 |         else if (!compare_cstring (s,"set network-filesystem-stat-bug"))
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1742:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1742 |         else if (!compare_cstring (s,"set nntp-range"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1742:31: warning: passing 'char[15]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1742 |         else if (!compare_cstring (s,"set nntp-range"))
      |                                      ^~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1746:26: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1746 |           if (!compare_cstring (s,"set black-box-directory") &&
      |                                 ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1746:28: warning: passing 'char[24]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1746 |           if (!compare_cstring (s,"set black-box-directory") &&
      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1748:30: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1748 |           else if (!compare_cstring(s,"set black-box-default-home-directory")&&
      |                                     ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1748:32: warning: passing 'char[37]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1748 |           else if (!compare_cstring(s,"set black-box-default-home-directory")&&
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1751:31: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1751 |           else if (!compare_cstring (s,"set anonymous-home-directory") &&
      |                                      ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1751:33: warning: passing 'char[29]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1751 |           else if (!compare_cstring (s,"set anonymous-home-directory") &&
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1758:31: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1758 |           else if (!compare_cstring (s,"set CA-certificate-path"))
      |                                      ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1758:33: warning: passing 'char[24]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1758 |           else if (!compare_cstring (s,"set CA-certificate-path"))
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1760:31: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1760 |           else if (!compare_cstring (s,"set disable-plaintext"))
      |                                      ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1760:33: warning: passing 'char[22]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1760 |           else if (!compare_cstring (s,"set disable-plaintext"))
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1762:31: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1762 |           else if (!compare_cstring (s,"set allowed-login-attempts"))
      |                                      ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1762:33: warning: passing 'char[27]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1762 |           else if (!compare_cstring (s,"set allowed-login-attempts"))
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1764:31: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1764 |           else if (!compare_cstring (s,"set chroot-server"))
      |                                      ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1764:33: warning: passing 'char[18]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1764 |           else if (!compare_cstring (s,"set chroot-server"))
      |                                        ^~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1766:31: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1766 |           else if (!compare_cstring (s,"set restrict-mailbox-access"))
      |                                      ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1766:33: warning: passing 'char[28]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1766 |           else if (!compare_cstring (s,"set restrict-mailbox-access"))
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1768:30: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1768 |               if (!compare_cstring (k,"root")) restrictBox |= RESTRICTROOT;
      |                                     ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1768:32: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1768 |               if (!compare_cstring (k,"root")) restrictBox |= RESTRICTROOT;
      |                                       ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1769:35: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1769 |               else if (!compare_cstring (k,"otherusers"))
      |                                          ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1769:37: warning: passing 'char[11]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1769 |               else if (!compare_cstring (k,"otherusers"))
      |                                            ^~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1771:35: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1771 |               else if (!compare_cstring (k,"all")) restrictBox = -1;
      |                                          ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1771:37: warning: passing 'char[4]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1771 |               else if (!compare_cstring (k,"all")) restrictBox = -1;
      |                                            ^~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1773:31: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1773 |           else if (!compare_cstring (s,"set advertise-the-world"))
      |                                      ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1773:33: warning: passing 'char[24]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1773 |           else if (!compare_cstring (s,"set advertise-the-world"))
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1775:31: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1775 |           else if (!compare_cstring (s,"set limited-advertise"))
      |                                      ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1775:33: warning: passing 'char[22]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1775 |           else if (!compare_cstring (s,"set limited-advertise"))
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1778:7: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1778 |                    (s,"set disable-automatic-shared-namespaces"))
      |                     ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1778:9: warning: passing 'char[40]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1778 |                    (s,"set disable-automatic-shared-namespaces"))
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1780:31: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1780 |           else if (!compare_cstring (s,"set allow-user-config"))
      |                                      ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1780:33: warning: passing 'char[22]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1780 |           else if (!compare_cstring (s,"set allow-user-config"))
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1782:31: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1782 |           else if (!compare_cstring (s,"set allow-reverse-dns"))
      |                                      ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1782:33: warning: passing 'char[22]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1782 |           else if (!compare_cstring (s,"set allow-reverse-dns"))
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1784:31: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1784 |           else if (!compare_cstring (s,"set k5-cp-uses-service-name"))
      |                                      ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1784:33: warning: passing 'char[28]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1784 |           else if (!compare_cstring (s,"set k5-cp-uses-service-name"))
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:49:
./env_unix.c:1788:31: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1788 |           else if (!compare_cstring (s,"set plaintext-allowed-clients")) {
      |                                      ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
In file included from osdep.c:49:
./env_unix.c:1788:33: warning: passing 'char[30]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1788 |           else if (!compare_cstring (s,"set plaintext-allowed-clients")) {
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
In file included from osdep.c:52:
In file included from ./tcp_unix.c:29:
./ip_unix.c:136:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  136 |       (!getaddrinfo (lcase (strcpy (tmp,text)),NIL,hints,&ai))) {
      |                             ^~~~~~~~~~~~~~~~~
./misc.h:87:38: note: passing argument to parameter 'string' here
   87 | unsigned char *lcase (unsigned char *string);
      |                                      ^
In file included from osdep.c:52:
In file included from ./tcp_unix.c:29:
./ip_unix.c:136:22: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  136 |       (!getaddrinfo (lcase (strcpy (tmp,text)),NIL,hints,&ai))) {
      |                      ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/netdb.h:251:30: note: passing argument to parameter here
  251 | int             getaddrinfo(const char *, const char *,
      |                                         ^
In file included from osdep.c:52:
In file included from ./tcp_unix.c:29:
./ip_unix.c:253:24: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  253 |         (!getaddrinfo (lcase (strcpy (lcname,name)),NIL,hints,&ai))) {
      |                               ^~~~~~~~~~~~~~~~~~~~
./misc.h:87:38: note: passing argument to parameter 'string' here
   87 | unsigned char *lcase (unsigned char *string);
      |                                      ^
In file included from osdep.c:52:
In file included from ./tcp_unix.c:29:
./ip_unix.c:253:17: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  253 |         (!getaddrinfo (lcase (strcpy (lcname,name)),NIL,hints,&ai))) {
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/netdb.h:251:30: note: passing argument to parameter here
  251 | int             getaddrinfo(const char *, const char *,
      |                                         ^
In file included from osdep.c:52:
./tcp_unix.c:175:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  175 |     if (adr = ip_stringtoaddr (tmp,&adrlen,&family)) {
      |         ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./tcp_unix.c:175:13: note: place parentheses around the assignment to silence this warning
  175 |     if (adr = ip_stringtoaddr (tmp,&adrlen,&family)) {
      |             ^                                      
      |         (                                          )
./tcp_unix.c:175:13: note: use '==' to turn this assignment into an equality comparison
  175 |     if (adr = ip_stringtoaddr (tmp,&adrlen,&family)) {
      |             ^
      |             ==
./tcp_unix.c:215:22: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  215 |     if (stream->ictr = ctr) *(stream->iptr = stream->ibuf) = tmp[0];
      |         ~~~~~~~~~~~~~^~~~~
./tcp_unix.c:215:22: note: place parentheses around the assignment to silence this warning
  215 |     if (stream->ictr = ctr) *(stream->iptr = stream->ibuf) = tmp[0];
      |                      ^    
      |         (                 )
./tcp_unix.c:215:22: note: use '==' to turn this assignment into an equality comparison
  215 |     if (stream->ictr = ctr) *(stream->iptr = stream->ibuf) = tmp[0];
      |                      ^
      |                      ==
./tcp_unix.c:364:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  364 |     if (adr = ip_stringtoaddr (host,&len,&i)) fs_give ((void **) &adr);
      |         ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./tcp_unix.c:364:13: note: place parentheses around the assignment to silence this warning
  364 |     if (adr = ip_stringtoaddr (host,&len,&i)) fs_give ((void **) &adr);
      |             ^                               
      |         (                                   )
./tcp_unix.c:364:13: note: use '==' to turn this assignment into an equality comparison
  364 |     if (adr = ip_stringtoaddr (host,&len,&i)) fs_give ((void **) &adr);
      |             ^
      |             ==
./tcp_unix.c:464:43: warning: passing 'unsigned long *' to parameter of type 'long *' converts between pointers to integer types with different sign [-Wpointer-sign]
  464 |   char *ret = tcp_getline_work (stream,&n,&contd);
      |                                           ^~~~~~
./tcp_unix.c:59:17: note: passing argument to parameter 'contd' here
   59 |                                long *contd);
      |                                      ^
./tcp_unix.c:472:41: warning: passing 'unsigned long *' to parameter of type 'long *' converts between pointers to integer types with different sign [-Wpointer-sign]
  472 |       ret = tcp_getline_work (stream,&n,&contd);
      |                                         ^~~~~~
./tcp_unix.c:59:17: note: passing argument to parameter 'contd' here
   59 |                                long *contd);
      |                                      ^
./tcp_unix.c:540:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  540 |   if (n = min (size,stream->ictr)) {
      |       ~~^~~~~~~~~~~~~~~~~~~~~~~~~
./tcp_unix.c:540:9: note: place parentheses around the assignment to silence this warning
  540 |   if (n = min (size,stream->ictr)) {
      |         ^                        
      |       (                          )
./tcp_unix.c:540:9: note: use '==' to turn this assignment into an equality comparison
  540 |   if (n = min (size,stream->ictr)) {
      |         ^
      |         ==
./tcp_unix.c:858:8: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  858 |         if (v = strchr (s,' ')) *v = '\0';
      |             ~~^~~~~~~~~~~~~~~~
./tcp_unix.c:858:8: note: place parentheses around the assignment to silence this warning
  858 |         if (v = strchr (s,' ')) *v = '\0';
      |               ^               
      |             (                 )
./tcp_unix.c:858:8: note: use '==' to turn this assignment into an equality comparison
  858 |         if (v = strchr (s,' ')) *v = '\0';
      |               ^
      |               ==
./tcp_unix.c:985:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  985 |     if (t = tcp_name_valid (ip_sockaddrtoname (sadr))) {
      |         ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./tcp_unix.c:985:11: note: place parentheses around the assignment to silence this warning
  985 |     if (t = tcp_name_valid (ip_sockaddrtoname (sadr))) {
      |           ^                                          
      |         (                                            )
./tcp_unix.c:985:11: note: use '==' to turn this assignment into an equality comparison
  985 |     if (t = tcp_name_valid (ip_sockaddrtoname (sadr))) {
      |           ^
      |           ==
osdep.c:161:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  161 |   if (pw = ((pam_start ((char *) mail_parameters (NIL,GET_SERVICENAME,NIL),
      |       ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  162 |                         pw->pw_name,&conv,&hdl) == PAM_SUCCESS) &&
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  163 |             (pam_set_item (hdl,PAM_RHOST,tcp_clientaddr ()) == PAM_SUCCESS) &&
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  164 |             (pam_authenticate (hdl,NIL) == PAM_SUCCESS) &&
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  165 |             (pam_acct_mgmt (hdl,NIL) == PAM_SUCCESS) &&
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  166 |             (pam_setcred (hdl,PAM_ESTABLISH_CRED) == PAM_SUCCESS)) ?
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  167 |       getpwnam (name) : NIL) {
      |       ~~~~~~~~~~~~~~~~~~~~~
osdep.c:161:10: note: place parentheses around the assignment to silence this warning
  161 |   if (pw = ((pam_start ((char *) mail_parameters (NIL,GET_SERVICENAME,NIL),
      |          ^
      |       (
  162 |                         pw->pw_name,&conv,&hdl) == PAM_SUCCESS) &&
  163 |             (pam_set_item (hdl,PAM_RHOST,tcp_clientaddr ()) == PAM_SUCCESS) &&
  164 |             (pam_authenticate (hdl,NIL) == PAM_SUCCESS) &&
  165 |             (pam_acct_mgmt (hdl,NIL) == PAM_SUCCESS) &&
  166 |             (pam_setcred (hdl,PAM_ESTABLISH_CRED) == PAM_SUCCESS)) ?
  167 |       getpwnam (name) : NIL) {
      |                            
      |                            )
osdep.c:161:10: note: use '==' to turn this assignment into an equality comparison
  161 |   if (pw = ((pam_start ((char *) mail_parameters (NIL,GET_SERVICENAME,NIL),
      |          ^
      |          ==
osdep.c:457:12: warning: 'TLSv1_client_method' is deprecated [-Wdeprecated-declarations]
  457 |                                        TLSv1_client_method () :
      |                                        ^
/usr/include/openssl/ssl.h:1899:1: note: 'TLSv1_client_method' has been explicitly marked deprecated here
 1899 | DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_client_method(void))
      | ^
/usr/include/openssl/opensslconf.h:157:34: note: expanded from macro 'DEPRECATEDIN_1_1_0'
  157 | # define DEPRECATEDIN_1_1_0(f)   DECLARE_DEPRECATED(f)
      |                                  ^
/usr/include/openssl/opensslconf.h:115:55: note: expanded from macro 'DECLARE_DEPRECATED'
  115 | #   define DECLARE_DEPRECATED(f)    f __attribute__ ((deprecated));
      |                                                       ^
osdep.c:468:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  468 |   if (s = (char *) mail_parameters (NIL,GET_SSLCAPATH,NIL))
      |       ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
osdep.c:468:9: note: place parentheses around the assignment to silence this warning
  468 |   if (s = (char *) mail_parameters (NIL,GET_SSLCAPATH,NIL))
      |         ^                                                 
      |       (                                                   )
osdep.c:468:9: note: use '==' to turn this assignment into an equality comparison
  468 |   if (s = (char *) mail_parameters (NIL,GET_SSLCAPATH,NIL))
      |         ^
      |         ==
osdep.c:472:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  472 |     if (cert = PEM_read_bio_X509 (bio = BIO_new_mem_buf (s,sl),NIL,NIL,NIL)) {
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
osdep.c:472:14: note: place parentheses around the assignment to silence this warning
  472 |     if (cert = PEM_read_bio_X509 (bio = BIO_new_mem_buf (s,sl),NIL,NIL,NIL)) {
      |              ^                                                             
      |         (                                                                  )
osdep.c:472:14: note: use '==' to turn this assignment into an equality comparison
  472 |     if (cert = PEM_read_bio_X509 (bio = BIO_new_mem_buf (s,sl),NIL,NIL,NIL)) {
      |              ^
      |              ==
osdep.c:481:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  481 |       if (key = PEM_read_bio_PrivateKey (bio = BIO_new_mem_buf (t,tl),
      |           ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  482 |                                          NIL,NIL,"")) {
      |                                          ~~~~~~~~~~~
osdep.c:481:15: note: place parentheses around the assignment to silence this warning
  481 |       if (key = PEM_read_bio_PrivateKey (bio = BIO_new_mem_buf (t,tl),
      |               ^
      |           (
  482 |                                          NIL,NIL,"")) {
      |                                                     
      |                                                     )
osdep.c:481:15: note: use '==' to turn this assignment into an equality comparison
  481 |       if (key = PEM_read_bio_PrivateKey (bio = BIO_new_mem_buf (t,tl),
      |               ^
      |               ==
osdep.c:507:43: warning: pointer type mismatch ('X509_NAME *' (aka 'struct X509_name_st *') and 'char *') [-Wpointer-type-mismatch]
  507 |     if (scq) return (*scq) (err,host,cert ? X509_get_subject_name(cert) : "???") ? NIL : "";
      |                                           ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~   ~~~~~
osdep.c:509:45: warning: pointer type mismatch ('X509_NAME *' (aka 'struct X509_name_st *') and 'char *') [-Wpointer-type-mismatch]
  509 |     sprintf (tmp,"*%.128s: %.255s",err,cert ? X509_get_subject_name(cert) : "???");
      |                                             ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~   ~~~~~
osdep.c:509:40: warning: format specifies type 'char *' but the argument has type 'void *' [-Wformat]
  509 |     sprintf (tmp,"*%.128s: %.255s",err,cert ? X509_get_subject_name(cert) : "???");
      |                            ~~~~~~      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
osdep.c:561:24: warning: incompatible pointer types passing 'X509_NAME *' (aka 'struct X509_name_st *') to parameter of type 'const char *' [-Wincompatible-pointer-types]
  561 |   else if (s = strstr (X509_get_subject_name(cert),"/CN=")) {
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h:125:26: note: passing argument to parameter here
  125 | char    *strstr(const char *, const char *) __pure;
      |                             ^
osdep.c:561:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  561 |   else if (s = strstr (X509_get_subject_name(cert),"/CN=")) {
      |            ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
osdep.c:561:14: note: place parentheses around the assignment to silence this warning
  561 |   else if (s = strstr (X509_get_subject_name(cert),"/CN=")) {
      |              ^                                            
      |            (                                              )
osdep.c:561:14: note: use '==' to turn this assignment into an equality comparison
  561 |   else if (s = strstr (X509_get_subject_name(cert),"/CN=")) {
      |              ^
      |              ==
osdep.c:562:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  562 |     if (t = strchr (s += 4,'/')) *t = '\0';
      |         ~~^~~~~~~~~~~~~~~~~~~~~
osdep.c:562:11: note: place parentheses around the assignment to silence this warning
  562 |     if (t = strchr (s += 4,'/')) *t = '\0';
      |           ^                    
      |         (                      )
osdep.c:562:11: note: use '==' to turn this assignment into an equality comparison
  562 |     if (t = strchr (s += 4,'/')) *t = '\0';
      |           ^
      |           ==
osdep.c:564:34: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  564 |     ret = ssl_compare_hostnames (host,s) ? NIL :
      |                                  ^~~~
osdep.c:297:51: note: passing argument to parameter 's' here
  297 | static long ssl_compare_hostnames (unsigned char *s,unsigned char *pat);
      |                                                   ^
osdep.c:564:39: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  564 |     ret = ssl_compare_hostnames (host,s) ? NIL :
      |                                       ^
osdep.c:297:68: note: passing argument to parameter 'pat' here
  297 | static long ssl_compare_hostnames (unsigned char *s,unsigned char *pat);
      |                                                                    ^
osdep.c:573:35: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  573 |             (name->type = GEN_DNS) && (s = name->d.ia5->data) &&
      |                                          ^ ~~~~~~~~~~~~~~~~~
osdep.c:574:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  574 |             ssl_compare_hostnames (host,s)) ret = NIL;
      |                                    ^~~~
osdep.c:297:51: note: passing argument to parameter 's' here
  297 | static long ssl_compare_hostnames (unsigned char *s,unsigned char *pat);
      |                                                   ^
osdep.c:574:34: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  574 |             ssl_compare_hostnames (host,s)) ret = NIL;
      |                                         ^
osdep.c:297:68: note: passing argument to parameter 'pat' here
  297 | static long ssl_compare_hostnames (unsigned char *s,unsigned char *pat);
      |                                                                    ^
osdep.c:615:43: warning: passing 'unsigned long *' to parameter of type 'long *' converts between pointers to integer types with different sign [-Wpointer-sign]
  615 |   char *ret = ssl_getline_work (stream,&n,&contd);
      |                                           ^~~~~~
osdep.c:299:17: note: passing argument to parameter 'contd' here
  299 |                                long *contd);
      |                                      ^
osdep.c:623:41: warning: passing 'unsigned long *' to parameter of type 'long *' converts between pointers to integer types with different sign [-Wpointer-sign]
  623 |       ret = ssl_getline_work (stream,&n,&contd);
      |                                         ^~~~~~
osdep.c:299:17: note: passing argument to parameter 'contd' here
  299 |                                long *contd);
      |                                      ^
osdep.c:940:12: warning: 'TLSv1_server_method' is deprecated [-Wdeprecated-declarations]
  940 |                                        TLSv1_server_method () :
      |                                        ^
/usr/include/openssl/ssl.h:1898:1: note: 'TLSv1_server_method' has been explicitly marked deprecated here
 1898 | DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_server_method(void))
      | ^
/usr/include/openssl/opensslconf.h:157:34: note: expanded from macro 'DEPRECATEDIN_1_1_0'
  157 | # define DEPRECATEDIN_1_1_0(f)   DECLARE_DEPRECATED(f)
      |                                  ^
/usr/include/openssl/opensslconf.h:115:55: note: expanded from macro 'DECLARE_DEPRECATED'
  115 | #   define DECLARE_DEPRECATED(f)    f __attribute__ ((deprecated));
      |                                                       ^
osdep.c:992:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  992 |   while (i = ERR_get_error ())  /* SSL failure */
      |          ~~^~~~~~~~~~~~~~~~~~
osdep.c:992:12: note: place parentheses around the assignment to silence this warning
  992 |   while (i = ERR_get_error ())  /* SSL failure */
      |            ^                 
      |          (                   )
osdep.c:992:12: note: use '==' to turn this assignment into an equality comparison
  992 |   while (i = ERR_get_error ())  /* SSL failure */
      |            ^
      |            ==
osdep.c:1011:17: warning: 'RSA_generate_key' is deprecated [-Wdeprecated-declarations]
 1011 |     if (!(key = RSA_generate_key (export ? keylength : 1024,RSA_F4,NIL,NIL))) {
      |                 ^
/usr/include/openssl/rsa.h:235:1: note: 'RSA_generate_key' has been explicitly marked deprecated here
  235 | DEPRECATEDIN_0_9_8(RSA *RSA_generate_key(int bits, unsigned long e, void
      | ^
/usr/include/openssl/opensslconf.h:169:34: note: expanded from macro 'DEPRECATEDIN_0_9_8'
  169 | # define DEPRECATEDIN_0_9_8(f)   DECLARE_DEPRECATED(f)
      |                                  ^
/usr/include/openssl/opensslconf.h:115:55: note: expanded from macro 'DECLARE_DEPRECATED'
  115 | #   define DECLARE_DEPRECATED(f)    f __attribute__ ((deprecated));
      |                                                       ^
osdep.c:1014:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1014 |       while (i = ERR_get_error ())
      |              ~~^~~~~~~~~~~~~~~~~~
osdep.c:1014:16: note: place parentheses around the assignment to silence this warning
 1014 |       while (i = ERR_get_error ())
      |                ^                 
      |              (                   )
osdep.c:1014:16: note: use '==' to turn this assignment into an equality comparison
 1014 |       while (i = ERR_get_error ())
      |                ^
      |                ==
259 warnings generated.
========================================================================
Building OS-dependent module
If you get No such file error messages for files x509.h, ssl.h,
pem.h, buffer.h, bio.h, and crypto.h, that means that OpenSSL
is not installed on your system. Either install OpenSSL first
or build with command: make bsf SSLTYPE=none
========================================================================
cc -c `cat CFLAGS` mail.c
mail.c:212:28: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  212 |       if (stream->cache[i] = stream->cache[msgno])
      |           ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
mail.c:212:28: note: place parentheses around the assignment to silence this warning
  212 |       if (stream->cache[i] = stream->cache[msgno])
      |                            ^                     
      |           (                                      )
mail.c:212:28: note: use '==' to turn this assignment into an equality comparison
  212 |       if (stream->cache[i] = stream->cache[msgno])
      |                            ^
      |                            ==
mail.c:378:49: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  378 |     for (d = maildrivers; d && compare_cstring (d->name,(char *) value);
      |                                                 ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:378:57: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  378 |     for (d = maildrivers; d && compare_cstring (d->name,(char *) value);
      |                                                         ^~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:383:49: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  383 |     for (d = maildrivers; d && compare_cstring (d->name,(char *) value);
      |                                                 ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:383:57: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  383 |     for (d = maildrivers; d && compare_cstring (d->name,(char *) value);
      |                                                         ^~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:385:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  385 |     if (ret = (void *) d) d->flags &= ~DR_DISABLE;
      |         ~~~~^~~~~~~~~~~~
mail.c:385:13: note: place parentheses around the assignment to silence this warning
  385 |     if (ret = (void *) d) d->flags &= ~DR_DISABLE;
      |             ^           
      |         (               )
mail.c:385:13: note: use '==' to turn this assignment into an equality comparison
  385 |     if (ret = (void *) d) d->flags &= ~DR_DISABLE;
      |             ^
      |             ==
mail.c:388:49: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  388 |     for (d = maildrivers; d && compare_cstring (d->name,(char *) value);
      |                                                 ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:388:57: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  388 |     for (d = maildrivers; d && compare_cstring (d->name,(char *) value);
      |                                                         ^~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:390:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  390 |     if (ret = (void *) d) d->flags |= DR_DISABLE;
      |         ~~~~^~~~~~~~~~~~
mail.c:390:13: note: place parentheses around the assignment to silence this warning
  390 |     if (ret = (void *) d) d->flags |= DR_DISABLE;
      |             ^           
      |         (               )
mail.c:390:13: note: use '==' to turn this assignment into an equality comparison
  390 |     if (ret = (void *) d) d->flags |= DR_DISABLE;
      |             ^
      |             ==
mail.c:394:25: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  394 |          a && compare_cstring (a->name,(char *) value); a = a->next);
      |                                ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:394:33: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  394 |          a && compare_cstring (a->name,(char *) value); a = a->next);
      |                                        ^~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:395:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  395 |     if (ret = (void *) a) a->flags &= ~AU_DISABLE;
      |         ~~~~^~~~~~~~~~~~
mail.c:395:13: note: place parentheses around the assignment to silence this warning
  395 |     if (ret = (void *) a) a->flags &= ~AU_DISABLE;
      |             ^           
      |         (               )
mail.c:395:13: note: use '==' to turn this assignment into an equality comparison
  395 |     if (ret = (void *) a) a->flags &= ~AU_DISABLE;
      |             ^
      |             ==
mail.c:399:25: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  399 |          a && compare_cstring (a->name,(char *) value); a = a->next);
      |                                ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:399:33: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  399 |          a && compare_cstring (a->name,(char *) value); a = a->next);
      |                                        ^~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:400:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  400 |     if (ret = (void *) a) a->flags |= AU_DISABLE;
      |         ~~~~^~~~~~~~~~~~
mail.c:400:13: note: place parentheses around the assignment to silence this warning
  400 |     if (ret = (void *) a) a->flags |= AU_DISABLE;
      |             ^           
      |         (               )
mail.c:400:13: note: use '==' to turn this assignment into an equality comparison
  400 |     if (ret = (void *) a) a->flags |= AU_DISABLE;
      |             ^
      |             ==
mail.c:404:25: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  404 |          a && compare_cstring (a->name,(char *) value); a = a->next);
      |                                ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:404:33: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  404 |          a && compare_cstring (a->name,(char *) value); a = a->next);
      |                                        ^~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:405:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  405 |     if (ret = (void *) a) a->flags &= ~AU_HIDE;
      |         ~~~~^~~~~~~~~~~~
mail.c:405:13: note: place parentheses around the assignment to silence this warning
  405 |     if (ret = (void *) a) a->flags &= ~AU_HIDE;
      |             ^           
      |         (               )
mail.c:405:13: note: use '==' to turn this assignment into an equality comparison
  405 |     if (ret = (void *) a) a->flags &= ~AU_HIDE;
      |             ^
      |             ==
mail.c:409:25: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  409 |          a && compare_cstring (a->name,(char *) value); a = a->next);
      |                                ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:409:33: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  409 |          a && compare_cstring (a->name,(char *) value); a = a->next);
      |                                        ^~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:410:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  410 |     if (ret = (void *) a) a->flags |= AU_HIDE;
      |         ~~~~^~~~~~~~~~~~
mail.c:410:13: note: place parentheses around the assignment to silence this warning
  410 |     if (ret = (void *) a) a->flags |= AU_HIDE;
      |             ^           
      |         (               )
mail.c:410:13: note: use '==' to turn this assignment into an equality comparison
  410 |     if (ret = (void *) a) a->flags |= AU_HIDE;
      |             ^
      |             ==
mail.c:644:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  644 |     if (r = smtp_parameters (function,value)) ret = r;
      |         ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:644:11: note: place parentheses around the assignment to silence this warning
  644 |     if (r = smtp_parameters (function,value)) ret = r;
      |           ^                                 
      |         (                                   )
mail.c:644:11: note: use '==' to turn this assignment into an equality comparison
  644 |     if (r = smtp_parameters (function,value)) ret = r;
      |           ^
      |           ==
mail.c:645:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  645 |     if (r = env_parameters (function,value)) ret = r;
      |         ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:645:11: note: place parentheses around the assignment to silence this warning
  645 |     if (r = env_parameters (function,value)) ret = r;
      |           ^                                
      |         (                                  )
mail.c:645:11: note: use '==' to turn this assignment into an equality comparison
  645 |     if (r = env_parameters (function,value)) ret = r;
      |           ^
      |           ==
mail.c:646:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  646 |     if (r = tcp_parameters (function,value)) ret = r;
      |         ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:646:11: note: place parentheses around the assignment to silence this warning
  646 |     if (r = tcp_parameters (function,value)) ret = r;
      |           ^                                
      |         (                                  )
mail.c:646:11: note: use '==' to turn this assignment into an equality comparison
  646 |     if (r = tcp_parameters (function,value)) ret = r;
      |           ^
      |           ==
mail.c:648:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  648 |       if (r = (*stream->dtb->parameters) (function,value)) ret = r;
      |           ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:648:13: note: place parentheses around the assignment to silence this warning
  648 |       if (r = (*stream->dtb->parameters) (function,value)) ret = r;
      |             ^                                            
      |           (                                              )
mail.c:648:13: note: use '==' to turn this assignment into an equality comparison
  648 |       if (r = (*stream->dtb->parameters) (function,value)) ret = r;
      |             ^
      |             ==
mail.c:652:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  652 |       if (r = (d->parameters) (function,value)) ret = r;
      |           ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:652:13: note: place parentheses around the assignment to silence this warning
  652 |       if (r = (d->parameters) (function,value)) ret = r;
      |             ^                                 
      |           (                                   )
mail.c:652:13: note: use '==' to turn this assignment into an equality comparison
  652 |       if (r = (d->parameters) (function,value)) ret = r;
      |             ^
      |             ==
mail.c:766:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  766 |       if (t = strpbrk (s = t,"/:=")) {
      |           ~~^~~~~~~~~~~~~~~~~~~~~~~
mail.c:766:13: note: place parentheses around the assignment to silence this warning
  766 |       if (t = strpbrk (s = t,"/:=")) {
      |             ^                      
      |           (                        )
mail.c:766:13: note: use '==' to turn this assignment into an equality comparison
  766 |       if (t = strpbrk (s = t,"/:=")) {
      |             ^
      |             ==
mail.c:784:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  784 |           if (t = strpbrk (v = t,"/:")) {
      |               ~~^~~~~~~~~~~~~~~~~~~~~~
mail.c:784:10: note: place parentheses around the assignment to silence this warning
  784 |           if (t = strpbrk (v = t,"/:")) {
      |                 ^                     
      |               (                       )
mail.c:784:10: note: use '==' to turn this assignment into an equality comparison
  784 |           if (t = strpbrk (v = t,"/:")) {
      |                 ^
      |                 ==
mail.c:791:24: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  791 |         if (!compare_cstring (s,"service") && (i < NETMAXSRV) && !*mb->service)
      |                               ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:791:26: warning: passing 'char[8]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  791 |         if (!compare_cstring (s,"service") && (i < NETMAXSRV) && !*mb->service)
      |                                 ^~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:792:11: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  792 |           lcase (strcpy (mb->service,v));
      |                  ^~~~~~~~~~~~~~~~~~~~~~
./misc.h:87:38: note: passing argument to parameter 'string' here
   87 | unsigned char *lcase (unsigned char *string);
      |                                      ^
mail.c:793:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  793 |         else if (!compare_cstring (s,"user") && (i < NETMAXUSER) && !*mb->user)
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:793:31: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  793 |         else if (!compare_cstring (s,"user") && (i < NETMAXUSER) && !*mb->user)
      |                                      ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:795:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  795 |         else if (!compare_cstring (s,"authuser") && (i < NETMAXUSER) &&
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:795:31: warning: passing 'char[9]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  795 |         else if (!compare_cstring (s,"authuser") && (i < NETMAXUSER) &&
      |                                      ^~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:801:24: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  801 |         if (!compare_cstring (s,"anonymous")) mb->anoflag = T;
      |                               ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:801:26: warning: passing 'char[10]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  801 |         if (!compare_cstring (s,"anonymous")) mb->anoflag = T;
      |                                 ^~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:802:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  802 |         else if (!compare_cstring (s,"debug")) mb->dbgflag = T;
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:802:31: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  802 |         else if (!compare_cstring (s,"debug")) mb->dbgflag = T;
      |                                      ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:803:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  803 |         else if (!compare_cstring (s,"readonly")) mb->readonlyflag = T;
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:803:31: warning: passing 'char[9]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  803 |         else if (!compare_cstring (s,"readonly")) mb->readonlyflag = T;
      |                                      ^~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:804:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  804 |         else if (!compare_cstring (s,"secure")) mb->secflag = T;
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:804:31: warning: passing 'char[7]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  804 |         else if (!compare_cstring (s,"secure")) mb->secflag = T;
      |                                      ^~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:805:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  805 |         else if (!compare_cstring (s,"norsh")) mb->norsh = T;
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:805:31: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  805 |         else if (!compare_cstring (s,"norsh")) mb->norsh = T;
      |                                      ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:806:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  806 |         else if (!compare_cstring (s,"loser")) mb->loser = T;
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:806:31: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  806 |         else if (!compare_cstring (s,"loser")) mb->loser = T;
      |                                      ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:807:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  807 |         else if (!compare_cstring (s,"tls") && !mb->notlsflag)
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:807:31: warning: passing 'char[4]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  807 |         else if (!compare_cstring (s,"tls") && !mb->notlsflag)
      |                                      ^~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:809:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  809 |         else if (!compare_cstring (s,"tls-sslv23") && !mb->notlsflag)
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:809:31: warning: passing 'char[11]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  809 |         else if (!compare_cstring (s,"tls-sslv23") && !mb->notlsflag)
      |                                      ^~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:811:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  811 |         else if (!compare_cstring (s,"notls") && !mb->tlsflag)
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:811:31: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  811 |         else if (!compare_cstring (s,"notls") && !mb->tlsflag)
      |                                      ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:813:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  813 |         else if (!compare_cstring (s,"tryssl"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:813:31: warning: passing 'char[7]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  813 |         else if (!compare_cstring (s,"tryssl"))
      |                                      ^~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:815:46: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  815 |         else if (mailssldriver && !compare_cstring (s,"ssl") && !mb->tlsflag)
      |                                                     ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:815:48: warning: passing 'char[4]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  815 |         else if (mailssldriver && !compare_cstring (s,"ssl") && !mb->tlsflag)
      |                                                       ^~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:817:46: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  817 |         else if (mailssldriver && !compare_cstring (s,"novalidate-cert"))
      |                                                     ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:817:48: warning: passing 'char[16]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  817 |         else if (mailssldriver && !compare_cstring (s,"novalidate-cert"))
      |                                                       ^~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:820:46: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  820 |         else if (mailssldriver && !compare_cstring (s,"validate-cert"));
      |                                                     ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:820:48: warning: passing 'char[14]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  820 |         else if (mailssldriver && !compare_cstring (s,"validate-cert"));
      |                                                       ^~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:823:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  823 |         else if (!compare_cstring (s,"imap") ||
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:823:31: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  823 |         else if (!compare_cstring (s,"imap") ||
      |                                      ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:824:22: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  824 |                  !compare_cstring (s,"nntp") ||
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:824:24: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  824 |                  !compare_cstring (s,"nntp") ||
      |                                      ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:825:22: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  825 |                  !compare_cstring (s,"pop3") ||
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:825:24: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  825 |                  !compare_cstring (s,"pop3") ||
      |                                      ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:826:22: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  826 |                  !compare_cstring (s,"smtp") ||
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:826:24: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  826 |                  !compare_cstring (s,"smtp") ||
      |                                      ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:827:22: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  827 |                  !compare_cstring (s,"submit"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:827:24: warning: passing 'char[7]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  827 |                  !compare_cstring (s,"submit"))
      |                                      ^~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:828:11: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  828 |           lcase (strcpy (mb->service,s));
      |                  ^~~~~~~~~~~~~~~~~~~~~~
./misc.h:87:38: note: passing argument to parameter 'string' here
   87 | unsigned char *lcase (unsigned char *string);
      |                                      ^
mail.c:829:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  829 |         else if (!compare_cstring (s,"imap2") ||
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:829:31: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  829 |         else if (!compare_cstring (s,"imap2") ||
      |                                      ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:830:22: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  830 |                  !compare_cstring (s,"imap2bis") ||
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:830:24: warning: passing 'char[9]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  830 |                  !compare_cstring (s,"imap2bis") ||
      |                                      ^~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:831:22: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  831 |                  !compare_cstring (s,"imap4") ||
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:831:24: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  831 |                  !compare_cstring (s,"imap4") ||
      |                                      ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:832:22: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  832 |                  !compare_cstring (s,"imap4rev1"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:832:24: warning: passing 'char[10]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  832 |                  !compare_cstring (s,"imap4rev1"))
      |                                      ^~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:834:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  834 |         else if (!compare_cstring (s,"pop"))
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:834:31: warning: passing 'char[4]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  834 |         else if (!compare_cstring (s,"pop"))
      |                                      ^~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:919:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  919 |   while (d = d->next);          /* until at the end */
      |          ~~^~~~~~~~~
mail.c:919:12: note: place parentheses around the assignment to silence this warning
  919 |   while (d = d->next);          /* until at the end */
      |            ^        
      |          (          )
mail.c:919:12: note: use '==' to turn this assignment into an equality comparison
  919 |   while (d = d->next);          /* until at the end */
      |            ^
      |            ==
mail.c:952:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  952 |   while (d = d->next);          /* until at the end */
      |          ~~^~~~~~~~~
mail.c:952:12: note: place parentheses around the assignment to silence this warning
  952 |   while (d = d->next);          /* until at the end */
      |            ^        
      |          (          )
mail.c:952:12: note: use '==' to turn this assignment into an equality comparison
  952 |   while (d = d->next);          /* until at the end */
      |            ^
      |            ==
mail.c:996:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  996 |   if (s = strpbrk (mailbox,"\015\012")) {
      |       ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:996:9: note: place parentheses around the assignment to silence this warning
  996 |   if (s = strpbrk (mailbox,"\015\012")) {
      |         ^                             
      |       (                               )
mail.c:996:9: note: use '==' to turn this assignment into an equality comparison
  996 |   if (s = strpbrk (mailbox,"\015\012")) {
      |         ^
      |         ==
mail.c:1007:25: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1007 |   if (!compare_cstring (mailbox,"INBOX")) {
      |                         ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:1007:33: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1007 |   if (!compare_cstring (mailbox,"INBOX")) {
      |                                 ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:1012:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1012 |   if (s = mail_utf7_valid (mailbox)) {
      |       ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:1012:9: note: place parentheses around the assignment to silence this warning
 1012 |   if (s = mail_utf7_valid (mailbox)) {
      |         ^                          
      |       (                            )
mail.c:1012:9: note: use '==' to turn this assignment into an equality comparison
 1012 |   if (s = mail_utf7_valid (mailbox)) {
      |         ^
      |         ==
mail.c:1092:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1092 |   if (s = mail_utf7_valid (newname)) {
      |       ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:1092:9: note: place parentheses around the assignment to silence this warning
 1092 |   if (s = mail_utf7_valid (newname)) {
      |         ^                          
      |       (                            )
mail.c:1092:9: note: use '==' to turn this assignment into an equality comparison
 1092 |   if (s = mail_utf7_valid (newname)) {
      |         ^
      |         ==
mail.c:1199:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1199 |       if (stream = mail_open (stream,s+1,options)) {
      |           ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:1199:18: note: place parentheses around the assignment to silence this warning
 1199 |       if (stream = mail_open (stream,s+1,options)) {
      |                  ^                               
      |           (                                      )
mail.c:1199:18: note: use '==' to turn this assignment into an equality comparison
 1199 |       if (stream = mail_open (stream,s+1,options)) {
      |                  ^
      |                  ==
mail.c:1216:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1216 |       if (stream = mail_open (stream,mb.mailbox,options)) {
      |           ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:1216:18: note: place parentheses around the assignment to silence this warning
 1216 |       if (stream = mail_open (stream,mb.mailbox,options)) {
      |                  ^                                      
      |           (                                             )
mail.c:1216:18: note: use '==' to turn this assignment into an equality comparison
 1216 |       if (stream = mail_open (stream,mb.mailbox,options)) {
      |                  ^
      |                  ==
mail.c:1243:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1243 |       if (s = strpbrk (tmp,"/\\:")) *s++ = '\0';
      |           ~~^~~~~~~~~~~~~~~~~~~~~~
mail.c:1243:13: note: place parentheses around the assignment to silence this warning
 1243 |       if (s = strpbrk (tmp,"/\\:")) *s++ = '\0';
      |             ^                     
      |           (                       )
mail.c:1243:13: note: use '==' to turn this assignment into an equality comparison
 1243 |       if (s = strpbrk (tmp,"/\\:")) *s++ = '\0';
      |             ^
      |             ==
mail.c:1249:51: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1249 |       for (d = maildrivers; d && compare_cstring (d->name,tmp); d = d->next);
      |                                                   ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:1249:59: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1249 |       for (d = maildrivers; d && compare_cstring (d->name,tmp); d = d->next);
      |                                                           ^~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:1471:48: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1471 |   if (stream->dtb && mail_uid_sequence (stream,sequence) &&
      |                                                ^~~~~~~~
./mail.h:1756:59: note: passing argument to parameter 'sequence' here
 1756 | long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                           ^
mail.c:1487:44: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1487 |   if (stream->dtb && mail_sequence (stream,sequence) &&
      |                                            ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
mail.c:1512:15: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1512 |       ov.date = env->date;
      |               ^ ~~~~~~~~~
mail.c:1543:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1543 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:1543:15: note: place parentheses around the assignment to silence this warning
 1543 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |               ^                          
      |         (                                )
mail.c:1543:15: note: use '==' to turn this assignment into an equality comparison
 1543 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |               ^
      |               ==
mail.c:1655:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1655 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:1655:15: note: place parentheses around the assignment to silence this warning
 1655 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |               ^                          
      |         (                                )
mail.c:1655:15: note: use '==' to turn this assignment into an equality comparison
 1655 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |               ^
      |               ==
mail.c:1725:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1725 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:1725:15: note: place parentheses around the assignment to silence this warning
 1725 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |               ^                          
      |         (                                )
mail.c:1725:15: note: use '==' to turn this assignment into an equality comparison
 1725 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |               ^
      |               ==
mail.c:1730:40: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1730 |     if (!((b = mail_body (stream,msgno,section)) &&
      |                                        ^~~~~~~
./mail.h:1686:19: note: passing argument to parameter 'section' here
 1686 |                  unsigned char *section);
      |                                 ^
mail.c:1778:19: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1778 |       if (rt.data = (unsigned char *)
      |           ~~~~~~~~^~~~~~~~~~~~~~~~~~~
 1779 |           (*stream->dtb->header) (stream,msgno,&rt.size,flags)) {
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:1778:19: note: place parentheses around the assignment to silence this warning
 1778 |       if (rt.data = (unsigned char *)
      |                   ^
      |           (
 1779 |           (*stream->dtb->header) (stream,msgno,&rt.size,flags)) {
      |                                                               
      |                                                               )
mail.c:1778:19: note: use '==' to turn this assignment into an equality comparison
 1778 |       if (rt.data = (unsigned char *)
      |                   ^
      |                   ==
mail.c:1816:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1816 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:1816:15: note: place parentheses around the assignment to silence this warning
 1816 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |               ^                          
      |         (                                )
mail.c:1816:15: note: use '==' to turn this assignment into an equality comparison
 1816 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |               ^
      |               ==
mail.c:1821:40: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1821 |     if (!((b = mail_body (stream,msgno,section)) &&
      |                                        ^~~~~~~
./mail.h:1686:19: note: passing argument to parameter 'section' here
 1686 |                  unsigned char *section);
      |                                 ^
mail.c:1871:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1871 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:1871:15: note: place parentheses around the assignment to silence this warning
 1871 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |               ^                          
      |         (                                )
mail.c:1871:15: note: use '==' to turn this assignment into an equality comparison
 1871 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |               ^
      |               ==
mail.c:1875:61: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1875 |   if (!(section && *section && (b = mail_body (stream,msgno,section))))
      |                                                             ^~~~~~~
./mail.h:1686:19: note: passing argument to parameter 'section' here
 1686 |                  unsigned char *section);
      |                                 ^
mail.c:1954:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1954 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:1954:15: note: place parentheses around the assignment to silence this warning
 1954 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |               ^                          
      |         (                                )
mail.c:1954:15: note: use '==' to turn this assignment into an equality comparison
 1954 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |               ^
      |               ==
mail.c:1958:37: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1958 |   if (!(b = mail_body (stream,msgno,section))) return "";
      |                                     ^~~~~~~
./mail.h:1686:19: note: passing argument to parameter 'section' here
 1686 |                  unsigned char *section);
      |                                 ^
mail.c:2012:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2012 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:2012:15: note: place parentheses around the assignment to silence this warning
 2012 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |               ^                          
      |         (                                )
mail.c:2012:15: note: use '==' to turn this assignment into an equality comparison
 2012 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |               ^
      |               ==
mail.c:2018:40: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2018 |     if (!((b = mail_body (stream,msgno,section)) &&
      |                                        ^~~~~~~
./mail.h:1686:19: note: passing argument to parameter 'section' here
 1686 |                  unsigned char *section);
      |                                 ^
mail.c:2082:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2082 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:2082:15: note: place parentheses around the assignment to silence this warning
 2082 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |               ^                          
      |         (                                )
mail.c:2082:15: note: use '==' to turn this assignment into an equality comparison
 2082 |     if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
      |               ^
      |               ==
mail.c:2086:37: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2086 |   if (!(b = mail_body (stream,msgno,section))) return NIL;
      |                                     ^~~~~~~
./mail.h:1686:19: note: passing argument to parameter 'section' here
 1686 |                  unsigned char *section);
      |                                 ^
mail.c:2232:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2232 |         if (delta = ((last - first) / 2)) {
      |             ~~~~~~^~~~~~~~~~~~~~~~~~~~~~
mail.c:2232:12: note: place parentheses around the assignment to silence this warning
 2232 |         if (delta = ((last - first) / 2)) {
      |                   ^                     
      |             (                           )
mail.c:2232:12: note: use '==' to turn this assignment into an equality comparison
 2232 |         if (delta = ((last - first) / 2)) {
      |                   ^
      |                   ==
mail.c:2308:53: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2308 |       ((flags & ST_UID) ? mail_uid_sequence (stream,sequence) :
      |                                                     ^~~~~~~~
./mail.h:1756:59: note: passing argument to parameter 'sequence' here
 1756 | long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                           ^
mail.c:2309:30: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2309 |        mail_sequence (stream,sequence)) &&
      |                              ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
mail.c:2386:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2386 |   if (msg = utf8_badcharset (charset)) {
      |       ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:2386:11: note: place parentheses around the assignment to silence this warning
 2386 |   if (msg = utf8_badcharset (charset)) {
      |           ^                          
      |       (                              )
mail.c:2386:11: note: use '==' to turn this assignment into an equality comparison
 2386 |   if (msg = utf8_badcharset (charset)) {
      |           ^
      |           ==
mail.c:2598:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2598 |   else if (!strncmp (lcase (strcpy (tmp,mailbox)),"#driver.",8)) {
      |                             ^~~~~~~~~~~~~~~~~~~~
./misc.h:87:38: note: passing argument to parameter 'string' here
   87 | unsigned char *lcase (unsigned char *string);
      |                                      ^
mail.c:2598:22: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2598 |   else if (!strncmp (lcase (strcpy (tmp,mailbox)),"#driver.",8)) {
      |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h:105:26: note: passing argument to parameter here
  105 | int      strncmp(const char *, const char *, size_t) __pure;
      |                              ^
mail.c:2612:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2612 |   else if (d = mail_valid (stream,mailbox,NIL))
      |            ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:2612:14: note: place parentheses around the assignment to silence this warning
 2612 |   else if (d = mail_valid (stream,mailbox,NIL))
      |              ^                                
      |            (                                  )
mail.c:2612:14: note: use '==' to turn this assignment into an equality comparison
 2612 |   else if (d = mail_valid (stream,mailbox,NIL))
      |              ^
      |              ==
mail.c:2650:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2650 |     if (elt = (MESSAGECACHE *) (*mailcache) (stream,i,CH_ELT))
      |         ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:2650:13: note: place parentheses around the assignment to silence this warning
 2650 |     if (elt = (MESSAGECACHE *) (*mailcache) (stream,i,CH_ELT))
      |             ^                                                
      |         (                                                    )
mail.c:2650:13: note: use '==' to turn this assignment into an equality comparison
 2650 |     if (elt = (MESSAGECACHE *) (*mailcache) (stream,i,CH_ELT))
      |             ^
      |             ==
mail.c:2720:21: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2720 |         if (!(i = strtoul (section,(char **) §ion,10)) ||
      |                            ^~~~~~~
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mail.c:2725:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2725 |           if (pt = b->nested.part) while (--i && (pt = pt->next));
      |               ~~~^~~~~~~~~~~~~~~~
mail.c:2725:11: note: place parentheses around the assignment to silence this warning
 2725 |           if (pt = b->nested.part) while (--i && (pt = pt->next));
      |                  ^               
      |               (                  )
mail.c:2725:11: note: use '==' to turn this assignment into an equality comparison
 2725 |           if (pt = b->nested.part) while (--i && (pt = pt->next));
      |                  ^
      |                  ==
mail.c:2852:27: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2852 |   if (s && *s && (strlen (s) < (size_t)MAILTMPLEN)) s = ucase (strcpy (tmp,s));
      |                           ^
/usr/include/string.h:100:28: note: passing argument to parameter here
  100 | size_t   strlen(const char *) __pure;
      |                             ^
mail.c:2852:76: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2852 |   if (s && *s && (strlen (s) < (size_t)MAILTMPLEN)) s = ucase (strcpy (tmp,s));
      |                                                                            ^
/usr/include/string.h:87:56: note: passing argument to parameter here
   87 | char    *strcpy(char * __restrict, const char * __restrict);
      |                                                           ^
mail.c:2852:64: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2852 |   if (s && *s && (strlen (s) < (size_t)MAILTMPLEN)) s = ucase (strcpy (tmp,s));
      |                                                                ^~~~~~~~~~~~~~
./misc.h:86:38: note: passing argument to parameter 'string' here
   86 | unsigned char *ucase (unsigned char *string);
      |                                      ^
mail.c:2858:22: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2858 |   if (!(m = strtoul (s,(char **) &s,10))) return NIL;
      |                      ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mail.c:2862:41: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2862 |     if (isdigit (*++s) && (d = strtoul (s,(char **) &s,10)) &&
      |                                         ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mail.c:2864:20: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2864 |       y = strtoul (s,(char **) &s,10);
      |                    ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mail.c:2874:25: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2874 |       if ((m = strtoul (s+1,(char **) &s,10)) && (*s++ == '-') && 
      |                         ^~~
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mail.c:2875:18: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2875 |           (d = strtoul (s,(char **) &s,10)) && !*s) break;
      |                         ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mail.c:2880:17: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2880 |     if (strlen (s) < (size_t) 5) return NIL;
      |                 ^
/usr/include/string.h:100:28: note: passing argument to parameter here
  100 | size_t   strlen(const char *) __pure;
      |                             ^
mail.c:2908:20: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2908 |       y = strtoul (s,(char **) &s,10);
      |                    ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mail.c:2932:18: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2932 |     d = strtoul (s+1,(char **) &s,10);
      |                  ^~~
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mail.c:2934:18: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2934 |     m = strtoul (++s,(char **) &s,10);
      |                  ^~~
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mail.c:2935:32: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2935 |     y = (*s == ':') ? strtoul (++s,(char **) &s,10) : 0;
      |                                ^~~
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mail.c:3085:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3085 |     if (t = gmtime (&tn)) {     /* minus UTC minutes since midnight */
      |         ~~^~~~~~~~~~~~~~
mail.c:3085:11: note: place parentheses around the assignment to silence this warning
 3085 |     if (t = gmtime (&tn)) {     /* minus UTC minutes since midnight */
      |           ^             
      |         (               )
mail.c:3085:11: note: use '==' to turn this assignment into an equality comparison
 3085 |     if (t = gmtime (&tn)) {     /* minus UTC minutes since midnight */
      |           ^
      |           ==
mail.c:3265:29: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3265 |     else if (!(i = strtoul (sequence,(char **) &sequence,10))) {
      |                             ^~~~~~~~
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mail.c:3276:31: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3276 |       else if (!(j = strtoul (sequence,(char **) &sequence,10))) {
      |                               ^~~~~~~~
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mail.c:3306:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3306 |       if (x = mail_msgno (stream,i)) mail_elt (stream,x)->sequence = T;
      |           ~~^~~~~~~~~~~~~~~~~~~~~~~
mail.c:3306:13: note: place parentheses around the assignment to silence this warning
 3306 |       if (x = mail_msgno (stream,i)) mail_elt (stream,x)->sequence = T;
      |             ^                      
      |           (                        )
mail.c:3306:13: note: use '==' to turn this assignment into an equality comparison
 3306 |       if (x = mail_msgno (stream,i)) mail_elt (stream,x)->sequence = T;
      |             ^
      |             ==
mail.c:3339:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3339 |   while (lines = lines->next);
      |          ~~~~~~^~~~~~~~~~~~~
mail.c:3339:16: note: place parentheses around the assignment to silence this warning
 3339 |   while (lines = lines->next);
      |                ^            
      |          (                  )
mail.c:3339:16: note: use '==' to turn this assignment into an equality comparison
 3339 |   while (lines = lines->next);
      |                ^
      |                ==
mail.c:3371:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3371 |     if (i = t - tmp)            /* see if found in header */
      |         ~~^~~~~~~~~
mail.c:3371:11: note: place parentheses around the assignment to silence this warning
 3371 |     if (i = t - tmp)            /* see if found in header */
      |           ^        
      |         (          )
mail.c:3371:11: note: use '==' to turn this assignment into an equality comparison
 3371 |     if (i = t - tmp)            /* see if found in header */
      |           ^
      |           ==
mail.c:3373:53: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3373 |         if ((hdrs->text.size == i) && !compare_csizedtext (tmp,&hdrs->text))
      |                                                            ^~~
./misc.h:110:40: note: passing argument to parameter 's1' here
  110 | int compare_csizedtext (unsigned char *s1,SIZEDTEXT *s2);
      |                                        ^
mail.c:3515:44: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3515 |       BODY *body = mail_body (stream,msgno,section);
      |                                            ^~~~~~~
mail.c:2710:72: note: passing argument to parameter 'section' here
 2710 | BODY *mail_body (MAILSTREAM *stream,unsigned long msgno,unsigned char *section)
      |                                                                        ^
mail.c:3621:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3621 |   if (h.data = (unsigned char *) s) {
      |       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
mail.c:3621:14: note: place parentheses around the assignment to silence this warning
 3621 |   if (h.data = (unsigned char *) s) {
      |              ^                    
      |       (                           )
mail.c:3621:14: note: use '==' to turn this assignment into an equality comparison
 3621 |   if (h.data = (unsigned char *) s) {
      |              ^
      |              ==
mail.c:3672:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3672 |     if (st = st->next) s = s->next = mail_newstringlist ();
      |         ~~~^~~~~~~~~~
mail.c:3672:12: note: place parentheses around the assignment to silence this warning
 3672 |     if (st = st->next) s = s->next = mail_newstringlist ();
      |            ^         
      |         (            )
mail.c:3672:12: note: use '==' to turn this assignment into an equality comparison
 3672 |     if (st = st->next) s = s->next = mail_newstringlist ();
      |            ^
      |            ==
mail.c:3687:46: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3687 |     else if ((body = mail_body (stream,msgno,section)) &&
      |                                              ^~~~~~~
mail.c:2710:72: note: passing argument to parameter 'section' here
 2710 | BODY *mail_body (MAILSTREAM *stream,unsigned long msgno,unsigned char *section)
      |                                                                        ^
mail.c:3754:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3754 |       if (body = body->nested.msg->body)
      |           ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
mail.c:3754:16: note: place parentheses around the assignment to silence this warning
 3754 |       if (body = body->nested.msg->body)
      |                ^                       
      |           (                            )
mail.c:3754:16: note: use '==' to turn this assignment into an equality comparison
 3754 |       if (body = body->nested.msg->body)
      |                ^
      |                ==
mail.c:3771:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3771 |         if (st.data = (unsigned char *)
      |             ~~~~~~~~^~~~~~~~~~~~~~~~~~~
 3772 |             rfc822_base64 ((unsigned char *) s,i,&st.size)) {
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:3771:14: note: place parentheses around the assignment to silence this warning
 3771 |         if (st.data = (unsigned char *)
      |                     ^
      |             (
 3772 |             rfc822_base64 ((unsigned char *) s,i,&st.size)) {
      |                                                           
      |                                                           )
mail.c:3771:14: note: use '==' to turn this assignment into an equality comparison
 3771 |         if (st.data = (unsigned char *)
      |                     ^
      |                     ==
mail.c:3778:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3778 |         if (st.data = rfc822_qprint ((unsigned char *) s,i,&st.size)) {
      |             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:3778:14: note: place parentheses around the assignment to silence this warning
 3778 |         if (st.data = rfc822_qprint ((unsigned char *) s,i,&st.size)) {
      |                     ^                                               
      |             (                                                       )
mail.c:3778:14: note: use '==' to turn this assignment into an equality comparison
 3778 |         if (st.data = rfc822_qprint ((unsigned char *) s,i,&st.size)) {
      |                     ^
      |                     ==
mail.c:3854:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3854 |       if (!compare_csizedtext (stream->user_flags[i],&st->text)) {
      |                                ^~~~~~~~~~~~~~~~~~~~~
./misc.h:110:40: note: passing argument to parameter 's1' here
  110 | int compare_csizedtext (unsigned char *s1,SIZEDTEXT *s2);
      |                                        ^
mail.c:3859:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3859 |   } while (st = st->next);
      |            ~~~^~~~~~~~~~
mail.c:3859:15: note: place parentheses around the assignment to silence this warning
 3859 |   } while (st = st->next);
      |               ^         
      |            (            )
mail.c:3859:15: note: use '==' to turn this assignment into an equality comparison
 3859 |   } while (st = st->next);
      |               ^
      |               ==
mail.c:3888:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3888 |       if (tadr.personal = a->personal) k += 3 + 2*strlen (a->personal);
      |           ~~~~~~~~~~~~~~^~~~~~~~~~~~~
mail.c:3888:25: note: place parentheses around the assignment to silence this warning
 3888 |       if (tadr.personal = a->personal) k += 3 + 2*strlen (a->personal);
      |                         ^            
      |           (                          )
mail.c:3888:25: note: use '==' to turn this assignment into an equality comparison
 3888 |       if (tadr.personal = a->personal) k += 3 + 2*strlen (a->personal);
      |                         ^
      |                         ==
mail.c:3889:20: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3889 |       if (tadr.adl = a->adl) k += 3 + 2*strlen (a->adl);
      |           ~~~~~~~~~^~~~~~~~
mail.c:3889:20: note: place parentheses around the assignment to silence this warning
 3889 |       if (tadr.adl = a->adl) k += 3 + 2*strlen (a->adl);
      |                    ^       
      |           (                )
mail.c:3889:20: note: use '==' to turn this assignment into an equality comparison
 3889 |       if (tadr.adl = a->adl) k += 3 + 2*strlen (a->adl);
      |                    ^
      |                    ==
mail.c:3890:21: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3890 |       if (tadr.host = a->host) k += 3 + 2*strlen (a->host);
      |           ~~~~~~~~~~^~~~~~~~~
mail.c:3890:21: note: place parentheses around the assignment to silence this warning
 3890 |       if (tadr.host = a->host) k += 3 + 2*strlen (a->host);
      |                     ^        
      |           (                  )
mail.c:3890:21: note: use '==' to turn this assignment into an equality comparison
 3890 |       if (tadr.host = a->host) k += 3 + 2*strlen (a->host);
      |                     ^
      |                     ==
mail.c:3985:23: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3985 |       switch (*ucase (criterion)) {
      |                       ^~~~~~~~~
./misc.h:86:38: note: passing argument to parameter 'string' here
   86 | unsigned char *ucase (unsigned char *string);
      |                                      ^
mail.c:4076:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4076 |              mail_parse_date (&elt,(char *) s->text.data) &&
      |                                    ^~~~~~~~~~~~~~~~~~~~~
mail.c:2834:56: note: passing argument to parameter 's' here
 2834 | long mail_parse_date (MESSAGECACHE *elt,unsigned char *s)
      |                                                        ^
mail.c:4125:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4125 |     if (d = strtok_r (c,end,r)) n = strlen (d);
      |         ~~^~~~~~~~~~~~~~~~~~~~
mail.c:4125:11: note: place parentheses around the assignment to silence this warning
 4125 |     if (d = strtok_r (c,end,r)) n = strlen (d);
      |           ^                   
      |         (                     )
mail.c:4125:11: note: use '==' to turn this assignment into an equality comparison
 4125 |     if (d = strtok_r (c,end,r)) n = strlen (d);
      |           ^
      |           ==
mail.c:4332:15: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4332 |           if (env) t = env->date;
      |                      ^ ~~~~~~~~~
mail.c:4336:22: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4336 |             for (x = ++t; x = strpbrk (x,"\012\015"); x++)
      |                           ~~^~~~~~~~~~~~~~~~~~~~~~~~
mail.c:4336:22: note: place parentheses around the assignment to silence this warning
 4336 |             for (x = ++t; x = strpbrk (x,"\012\015"); x++)
      |                             ^                       
      |                           (                         )
mail.c:4336:22: note: use '==' to turn this assignment into an equality comparison
 4336 |             for (x = ++t; x = strpbrk (x,"\012\015"); x++)
      |                             ^
      |                             ==
mail.c:4348:38: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4348 |           if (!(t && mail_parse_date (&telt,t) && 
      |                                             ^
mail.c:2834:56: note: passing argument to parameter 's' here
 2834 | long mail_parse_date (MESSAGECACHE *elt,unsigned char *s)
      |                                                        ^
mail.c:4372:22: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4372 |             for (x = ++t; x = strpbrk (x,"\012\015"); x++)
      |                           ~~^~~~~~~~~~~~~~~~~~~~~~~~
mail.c:4372:22: note: place parentheses around the assignment to silence this warning
 4372 |             for (x = ++t; x = strpbrk (x,"\012\015"); x++)
      |                             ^                       
      |                           (                         )
mail.c:4372:22: note: use '==' to turn this assignment into an equality comparison
 4372 |             for (x = ++t; x = strpbrk (x,"\012\015"); x++)
      |                             ^
      |                             ==
mail.c:4380:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4380 |                 if (v = strchr (v,':')) {
      |                     ~~^~~~~~~~~~~~~~~~
mail.c:4380:9: note: place parentheses around the assignment to silence this warning
 4380 |                 if (v = strchr (v,':')) {
      |                       ^               
      |                     (                 )
mail.c:4380:9: note: use '==' to turn this assignment into an equality comparison
 4380 |                 if (v = strchr (v,':')) {
      |                       ^
      |                       ==
mail.c:4387:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4387 |             if (adr = rfc822_parse_address (&adr,adr,&t,BADHOST,0)) {
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:4387:14: note: place parentheses around the assignment to silence this warning
 4387 |             if (adr = rfc822_parse_address (&adr,adr,&t,BADHOST,0)) {
      |                     ^                                             
      |                 (                                                 )
mail.c:4387:14: note: use '==' to turn this assignment into an equality comparison
 4387 |             if (adr = rfc822_parse_address (&adr,adr,&t,BADHOST,0)) {
      |                     ^
      |                     ==
mail.c:4405:22: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4405 |             for (x = ++t; x = strpbrk (x,"\012\015"); x++)
      |                           ~~^~~~~~~~~~~~~~~~~~~~~~~~
mail.c:4405:22: note: place parentheses around the assignment to silence this warning
 4405 |             for (x = ++t; x = strpbrk (x,"\012\015"); x++)
      |                             ^                       
      |                           (                         )
mail.c:4405:22: note: use '==' to turn this assignment into an equality comparison
 4405 |             for (x = ++t; x = strpbrk (x,"\012\015"); x++)
      |                             ^
      |                             ==
mail.c:4413:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4413 |                 if (v = strchr (v,':')) {
      |                     ~~^~~~~~~~~~~~~~~~
mail.c:4413:9: note: place parentheses around the assignment to silence this warning
 4413 |                 if (v = strchr (v,':')) {
      |                       ^               
      |                     (                 )
mail.c:4413:9: note: use '==' to turn this assignment into an equality comparison
 4413 |                 if (v = strchr (v,':')) {
      |                       ^
      |                       ==
mail.c:4420:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4420 |             if (adr = rfc822_parse_address (&adr,adr,&t,BADHOST,0)) {
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:4420:14: note: place parentheses around the assignment to silence this warning
 4420 |             if (adr = rfc822_parse_address (&adr,adr,&t,BADHOST,0)) {
      |                     ^                                             
      |                 (                                                 )
mail.c:4420:14: note: use '==' to turn this assignment into an equality comparison
 4420 |             if (adr = rfc822_parse_address (&adr,adr,&t,BADHOST,0)) {
      |                     ^
      |                     ==
mail.c:4438:22: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4438 |             for (x = ++t; x = strpbrk (x,"\012\015"); x++)
      |                           ~~^~~~~~~~~~~~~~~~~~~~~~~~
mail.c:4438:22: note: place parentheses around the assignment to silence this warning
 4438 |             for (x = ++t; x = strpbrk (x,"\012\015"); x++)
      |                             ^                       
      |                           (                         )
mail.c:4438:22: note: use '==' to turn this assignment into an equality comparison
 4438 |             for (x = ++t; x = strpbrk (x,"\012\015"); x++)
      |                             ^
      |                             ==
mail.c:4446:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4446 |                 if (v = strchr (v,':')) {
      |                     ~~^~~~~~~~~~~~~~~~
mail.c:4446:9: note: place parentheses around the assignment to silence this warning
 4446 |                 if (v = strchr (v,':')) {
      |                       ^               
      |                     (                 )
mail.c:4446:9: note: use '==' to turn this assignment into an equality comparison
 4446 |                 if (v = strchr (v,':')) {
      |                       ^
      |                       ==
mail.c:4453:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4453 |             if (adr = rfc822_parse_address (&adr,adr,&t,BADHOST,0)) {
      |                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:4453:14: note: place parentheses around the assignment to silence this warning
 4453 |             if (adr = rfc822_parse_address (&adr,adr,&t,BADHOST,0)) {
      |                     ^                                             
      |                 (                                                 )
mail.c:4453:14: note: use '==' to turn this assignment into an equality comparison
 4453 |             if (adr = rfc822_parse_address (&adr,adr,&t,BADHOST,0)) {
      |                     ^
      |                     ==
mail.c:4472:22: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4472 |             for (x = ++t; x = strpbrk (x,"\012\015"); x++)
      |                           ~~^~~~~~~~~~~~~~~~~~~~~~~~
mail.c:4472:22: note: place parentheses around the assignment to silence this warning
 4472 |             for (x = ++t; x = strpbrk (x,"\012\015"); x++)
      |                             ^                       
      |                           (                         )
mail.c:4472:22: note: use '==' to turn this assignment into an equality comparison
 4472 |             for (x = ++t; x = strpbrk (x,"\012\015"); x++)
      |                             ^
      |                             ==
mail.c:4506:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4506 |   if (src.size = strlen (t)) {  /* have non-empty subject? */
      |       ~~~~~~~~~^~~~~~~~~~~~
mail.c:4506:16: note: place parentheses around the assignment to silence this warning
 4506 |   if (src.size = strlen (t)) {  /* have non-empty subject? */
      |                ^           
      |       (                    )
mail.c:4506:16: note: use '==' to turn this assignment into an equality comparison
 4506 |   if (src.size = strlen (t)) {  /* have non-empty subject? */
      |                ^
      |                ==
mail.c:4648:28: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4648 |       i = compare_cstring (s1->from,s2->from);
      |                            ^~~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:4648:37: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4648 |       i = compare_cstring (s1->from,s2->from);
      |                                     ^~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:4651:28: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4651 |       i = compare_cstring (s1->to,s2->to);
      |                            ^~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:4651:35: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4651 |       i = compare_cstring (s1->to,s2->to);
      |                                   ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:4654:28: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4654 |       i = compare_cstring (s1->cc,s2->cc);
      |                            ^~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:4654:35: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4654 |       i = compare_cstring (s1->cc,s2->cc);
      |                                   ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:4657:28: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4657 |       i = compare_cstring (s1->subject,s2->subject);
      |                            ^~~~~~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:4657:40: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4657 |       i = compare_cstring (s1->subject,s2->subject);
      |                                        ^~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:4662:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4662 |   while (pgm = i ? NIL : pgm->next);
      |          ~~~~^~~~~~~~~~~~~~~~~~~~~
mail.c:4662:14: note: place parentheses around the assignment to silence this warning
 4662 |   while (pgm = i ? NIL : pgm->next);
      |              ^                    
      |          (                        )
mail.c:4662:14: note: use '==' to turn this assignment into an equality comparison
 4662 |   while (pgm = i ? NIL : pgm->next);
      |              ^
      |              ==
mail.c:4756:27: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4756 |     if (!compare_cstring (type,t->name)) {
      |                           ^~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:4756:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4756 |     if (!compare_cstring (type,t->name)) {
      |                                ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:4789:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4789 |   if (lst = (*sorter) (stream,charset,spg,&pgm,flags & ~(SE_FREE | SE_UID))){
      |       ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:4789:11: note: place parentheses around the assignment to silence this warning
 4789 |   if (lst = (*sorter) (stream,charset,spg,&pgm,flags & ~(SE_FREE | SE_UID))){
      |           ^                                                                
      |       (                                                                    )
mail.c:4789:11: note: use '==' to turn this assignment into an equality comparison
 4789 |   if (lst = (*sorter) (stream,charset,spg,&pgm,flags & ~(SE_FREE | SE_UID))){
      |           ^
      |           ==
mail.c:4800:23: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4800 |         if (compare_cstring (top->sc->subject,s->subject)) {
      |                              ^~~~~~~~~~~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:4800:40: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4800 |         if (compare_cstring (top->sc->subject,s->subject)) {
      |                                               ^~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:4903:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4903 |         if (env = mail_fetch_structure (stream,s->num,NIL,NIL)) {
      |             ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:4903:10: note: place parentheses around the assignment to silence this warning
 4903 |         if (env = mail_fetch_structure (stream,s->num,NIL,NIL)) {
      |                 ^                                             
      |             (                                                 )
mail.c:4903:10: note: use '==' to turn this assignment into an equality comparison
 4903 |         if (env = mail_fetch_structure (stream,s->num,NIL,NIL)) {
      |                 ^
      |                 ==
mail.c:4951:28: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4951 |                                       THREADLINKS); st = st->next; con = nxc) {
      |                                                     ~~~^~~~~~~~~~
mail.c:4951:28: note: place parentheses around the assignment to silence this warning
 4951 |                                       THREADLINKS); st = st->next; con = nxc) {
      |                                                        ^         
      |                                                     (            )
mail.c:4951:28: note: use '==' to turn this assignment into an equality comparison
 4951 |                                       THREADLINKS); st = st->next; con = nxc) {
      |                                                        ^
      |                                                        ==
mail.c:5121:56: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5121 |     if (!s->date && ov->date && mail_parse_date (&telt,ov->date)) {
      |                                                        ^~~~~~~~
mail.c:2834:56: note: passing argument to parameter 's' here
 2834 | long mail_parse_date (MESSAGECACHE *elt,unsigned char *s)
      |                                                        ^
mail.c:5183:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 5183 |   if (t = mail_thread_parse_msgid (s,&s)) {
      |       ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:5183:9: note: place parentheses around the assignment to silence this warning
 5183 |   if (t = mail_thread_parse_msgid (s,&s)) {
      |         ^                               
      |       (                                 )
mail.c:5183:9: note: use '==' to turn this assignment into an equality comparison
 5183 |   if (t = mail_thread_parse_msgid (s,&s)) {
      |         ^
      |         ==
mail.c:5187:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 5187 |       for (cur = ret; t = mail_thread_parse_msgid (s,&s); cur = cur->next) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:5187:25: note: place parentheses around the assignment to silence this warning
 5187 |       for (cur = ret; t = mail_thread_parse_msgid (s,&s); cur = cur->next) {
      |                         ^                               
      |                       (                                 )
mail.c:5187:25: note: use '==' to turn this assignment into an equality comparison
 5187 |       for (cur = ret; t = mail_thread_parse_msgid (s,&s); cur = cur->next) {
      |                         ^
      |                         ==
mail.c:5289:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 5289 |     if (nxt = CHILD (con)) cur->next = mail_thread_c2node (stream,nxt,flags);
      |         ~~~~^~~~~~~~~~~~~
mail.c:5289:13: note: place parentheses around the assignment to silence this warning
 5289 |     if (nxt = CHILD (con)) cur->next = mail_thread_c2node (stream,nxt,flags);
      |             ^            
      |         (                )
mail.c:5289:13: note: use '==' to turn this assignment into an equality comparison
 5289 |     if (nxt = CHILD (con)) cur->next = mail_thread_c2node (stream,nxt,flags);
      |             ^
      |             ==
mail.c:5371:29: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5371 |     else if (!(i = strtoul (sequence,(char **) &sequence,10)) ||
      |                             ^~~~~~~~
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mail.c:5387:31: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5387 |       else if (!(j = strtoul (sequence,(char **) &sequence,10)) ||
      |                               ^~~~~~~~
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mail.c:5440:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 5440 |       if (n = strchr (t,' ')) *n++ = '\0';
      |           ~~^~~~~~~~~~~~~~~~
mail.c:5440:13: note: place parentheses around the assignment to silence this warning
 5440 |       if (n = strchr (t,' ')) *n++ = '\0';
      |             ^               
      |           (                 )
mail.c:5440:13: note: use '==' to turn this assignment into an equality comparison
 5440 |       if (n = strchr (t,' ')) *n++ = '\0';
      |             ^
      |             ==
mail.c:5442:24: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5442 |         if (!compare_cstring (t+1,"SEEN")) f |= fSEEN;
      |                               ^~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:5442:28: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5442 |         if (!compare_cstring (t+1,"SEEN")) f |= fSEEN;
      |                                   ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:5443:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5443 |         else if (!compare_cstring (t+1,"DELETED")) f |= fDELETED;
      |                                    ^~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:5443:33: warning: passing 'char[8]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5443 |         else if (!compare_cstring (t+1,"DELETED")) f |= fDELETED;
      |                                        ^~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:5444:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5444 |         else if (!compare_cstring (t+1,"FLAGGED")) f |= fFLAGGED;
      |                                    ^~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:5444:33: warning: passing 'char[8]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5444 |         else if (!compare_cstring (t+1,"FLAGGED")) f |= fFLAGGED;
      |                                        ^~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:5445:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5445 |         else if (!compare_cstring (t+1,"ANSWERED")) f |= fANSWERED;
      |                                    ^~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:5445:33: warning: passing 'char[9]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5445 |         else if (!compare_cstring (t+1,"ANSWERED")) f |= fANSWERED;
      |                                        ^~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:5446:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5446 |         else if (!compare_cstring (t+1,"DRAFT")) f |= fDRAFT;
      |                                    ^~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:5446:33: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5446 |         else if (!compare_cstring (t+1,"DRAFT")) f |= fDRAFT;
      |                                        ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:5456:26: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5456 |           if (!compare_cstring (t,s)) *uf |= i = 1 << j;
      |                                 ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:5456:28: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5456 |           if (!compare_cstring (t,s)) *uf |= i = 1 << j;
      |                                   ^
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:5505:24: warning: passing 'char[256]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5505 |           ((!compare_cstring (smb.host,
      |                               ^~~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:5506:10: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5506 |                               trustdns ? tcp_canonical (nmb.host) : nmb.host)&&
      |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:5511:24: warning: passing 'char[256]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5511 |            (!compare_cstring (omb.host,nmb.host) &&
      |                               ^~~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:5511:33: warning: passing 'char[256]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5511 |            (!compare_cstring (omb.host,nmb.host) &&
      |                                        ^~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:6081:43: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 6081 |     if (auth->server && !compare_cstring (auth->name,mechanism))
      |                                           ^~~~~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:6081:54: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 6081 |     if (auth->server && !compare_cstring (auth->name,mechanism))
      |                                                      ^~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:6114:51: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 6114 |         !(auth->flags & AU_DISABLE) && !compare_cstring (auth->name,mechanism))
      |                                                          ^~~~~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mail.c:6114:62: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 6114 |         !(auth->flags & AU_DISABLE) && !compare_cstring (auth->name,mechanism))
      |                                                                     ^~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mail.c:6201:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 6201 |   if (tstream = (*dv->open) (host,service,port | flags)) {
      |       ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:6201:15: note: place parentheses around the assignment to silence this warning
 6201 |   if (tstream = (*dv->open) (host,service,port | flags)) {
      |               ^                                        
      |       (                                                )
mail.c:6201:15: note: use '==' to turn this assignment into an equality comparison
 6201 |   if (tstream = (*dv->open) (host,service,port | flags)) {
      |               ^
      |               ==
mail.c:6223:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 6223 |   if (tstream = (*dv->aopen) (mb,service,user)) {
      |       ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mail.c:6223:15: note: place parentheses around the assignment to silence this warning
 6223 |   if (tstream = (*dv->aopen) (mb,service,user)) {
      |               ^                               
      |       (                                       )
mail.c:6223:15: note: use '==' to turn this assignment into an equality comparison
 6223 |   if (tstream = (*dv->aopen) (mb,service,user)) {
      |               ^
      |               ==
216 warnings generated.
cc -c `cat CFLAGS` misc.c
misc.c:276:41: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
  276 |       for (j = patc,c = base[k = i]; (c == pat[j]); j--,c = base[--k])
      |                                       ~~^~~~~~~~~
misc.c:276:41: note: remove extraneous parentheses around the comparison to silence this warning
  276 |       for (j = patc,c = base[k = i]; (c == pat[j]); j--,c = base[--k])
      |                                      ~  ^        ~
misc.c:276:41: note: use '=' to turn this equality comparison into an assignment
  276 |       for (j = patc,c = base[k = i]; (c == pat[j]); j--,c = base[--k])
      |                                         ^~
      |                                         =
misc.c:318:47: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  318 |   for (i = 0; i < hashtab->size; i++) if (ent = hashtab->table[i])
      |                                           ~~~~^~~~~~~~~~~~~~~~~~~
misc.c:318:47: note: place parentheses around the assignment to silence this warning
  318 |   for (i = 0; i < hashtab->size; i++) if (ent = hashtab->table[i])
      |                                               ^                  
      |                                           (                      )
misc.c:318:47: note: use '==' to turn this assignment into an equality comparison
  318 |   for (i = 0; i < hashtab->size; i++) if (ent = hashtab->table[i])
      |                                               ^
      |                                               ==
misc.c:335:19: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  335 |   for (ret = 0; i = (unsigned int) *key++; ret += i) ret *= HASHMULT;
      |                 ~~^~~~~~~~~~~~~~~~~~~~~~~
misc.c:335:19: note: place parentheses around the assignment to silence this warning
  335 |   for (ret = 0; i = (unsigned int) *key++; ret += i) ret *= HASHMULT;
      |                   ^                      
      |                 (                        )
misc.c:335:19: note: use '==' to turn this assignment into an equality comparison
  335 |   for (ret = 0; i = (unsigned int) *key++; ret += i) ret *= HASHMULT;
      |                   ^
      |                   ==
misc.c:452:39: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  452 |   for (; *s1 && *s2; s1++,s2++) if (i = (compare_uchar (*s1,*s2))) return i;
      |                                     ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
misc.c:452:39: note: place parentheses around the assignment to silence this warning
  452 |   for (; *s1 && *s2; s1++,s2++) if (i = (compare_uchar (*s1,*s2))) return i;
      |                                       ^                          
      |                                     (                            )
misc.c:452:39: note: use '==' to turn this assignment into an equality comparison
  452 |   for (; *s1 && *s2; s1++,s2++) if (i = (compare_uchar (*s1,*s2))) return i;
      |                                       ^
      |                                       ==
misc.c:471:10: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  471 |   for (s = (char *) s2->data,j = s2->size; *s1 && j; ++s1,++s,--j)
      |          ^ ~~~~~~~~~~~~~~~~~
misc.c:472:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  472 |     if (i = (compare_uchar (*s1,*s))) return i;
      |         ~~^~~~~~~~~~~~~~~~~~~~~~~~~~
misc.c:472:11: note: place parentheses around the assignment to silence this warning
  472 |     if (i = (compare_uchar (*s1,*s))) return i;
      |           ^                         
      |         (                           )
misc.c:472:11: note: use '==' to turn this assignment into an equality comparison
  472 |     if (i = (compare_uchar (*s1,*s))) return i;
      |           ^
      |           ==
6 warnings generated.
cc -c `cat CFLAGS` newsrc.c
newsrc.c:126:8: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  126 |         if (k = elt->private.uid - 1) {
      |             ~~^~~~~~~~~~~~~~~~~~~~~~
newsrc.c:126:8: note: place parentheses around the assignment to silence this warning
  126 |         if (k = elt->private.uid - 1) {
      |               ^                     
      |             (                       )
newsrc.c:126:8: note: use '==' to turn this assignment into an equality comparison
  126 |         if (k = elt->private.uid - 1) {
      |               ^
      |               ==
newsrc.c:167:19: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  167 |         if (pmatch_full (name,pattern,'.')) mm_lsub (stream,'.',name,NIL);
      |                          ^~~~
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
newsrc.c:167:24: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  167 |         if (pmatch_full (name,pattern,'.')) mm_lsub (stream,'.',name,NIL);
      |                               ^~~~~~~
./env.h:29:51: note: passing argument to parameter 'pat' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                                   ^
newsrc.c:170:21: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  170 |           if (pmatch_full (name,pattern,'.'))
      |                            ^~~~
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
newsrc.c:170:26: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  170 |           if (pmatch_full (name,pattern,'.'))
      |                                 ^~~~~~~
./env.h:29:51: note: passing argument to parameter 'pat' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                                   ^
newsrc.c:343:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  343 |   if (f = fopen (newsrc,"rb")) {/* have existing newsrc file? */
      |       ~~^~~~~~~~~~~~~~~~~~~~~
newsrc.c:343:9: note: place parentheses around the assignment to silence this warning
  343 |   if (f = fopen (newsrc,"rb")) {/* have existing newsrc file? */
      |         ^                    
      |       (                      )
newsrc.c:343:9: note: use '==' to turn this assignment into an equality comparison
  343 |   if (f = fopen (newsrc,"rb")) {/* have existing newsrc file? */
      |         ^
      |         ==
newsrc.c:368:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  368 |       if (f = newsrc_create (stream,NIL)) bf = NIL;
      |           ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
newsrc.c:368:13: note: place parentheses around the assignment to silence this warning
  368 |       if (f = newsrc_create (stream,NIL)) bf = NIL;
      |             ^                           
      |           (                             )
newsrc.c:368:13: note: use '==' to turn this assignment into an equality comparison
  368 |       if (f = newsrc_create (stream,NIL)) bf = NIL;
      |             ^
      |             ==
newsrc.c:384:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  384 |     if (f = newsrc_create (stream,T)) bf = NIL;
      |         ~~^~~~~~~~~~~~~~~~~~~~~~~~~~
newsrc.c:384:11: note: place parentheses around the assignment to silence this warning
  384 |     if (f = newsrc_create (stream,T)) bf = NIL;
      |           ^                         
      |         (                           )
newsrc.c:384:11: note: use '==' to turn this assignment into an equality comparison
  384 |     if (f = newsrc_create (stream,T)) bf = NIL;
      |           ^
      |           ==
8 warnings generated.
cc -c `cat CFLAGS` smanager.c
smanager.c:44:25: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
   44 |   if (!compare_cstring (mailbox,"INBOX")) mailbox = "INBOX";
      |                         ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smanager.c:44:33: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
   44 |   if (!compare_cstring (mailbox,"INBOX")) mailbox = "INBOX";
      |                                 ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smanager.c:46:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
   46 |   if (f = fopen (db,"r")) {     /* make sure not already there */
      |       ~~^~~~~~~~~~~~~~~~
smanager.c:46:9: note: place parentheses around the assignment to silence this warning
   46 |   if (f = fopen (db,"r")) {     /* make sure not already there */
      |         ^               
      |       (                 )
smanager.c:46:9: note: use '==' to turn this assignment into an equality comparison
   46 |   if (f = fopen (db,"r")) {     /* make sure not already there */
      |         ^
      |         ==
smanager.c:48:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
   48 |       if (s = strchr (tmp,'\n')) *s = '\0';
      |           ~~^~~~~~~~~~~~~~~~~~~
smanager.c:48:13: note: place parentheses around the assignment to silence this warning
   48 |       if (s = strchr (tmp,'\n')) *s = '\0';
      |             ^                  
      |           (                    )
smanager.c:48:13: note: use '==' to turn this assignment into an equality comparison
   48 |       if (s = strchr (tmp,'\n')) *s = '\0';
      |             ^
      |             ==
smanager.c:77:25: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
   77 |   if (!compare_cstring (mailbox,"INBOX")) mailbox = "INBOX";
      |                         ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smanager.c:77:33: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
   77 |   if (!compare_cstring (mailbox,"INBOX")) mailbox = "INBOX";
      |                                 ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smanager.c:88:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
   88 |       if (s = strchr (tmp,'\n')) *s = '\0';
      |           ~~^~~~~~~~~~~~~~~~~~~
smanager.c:88:13: note: place parentheses around the assignment to silence this warning
   88 |       if (s = strchr (tmp,'\n')) *s = '\0';
      |             ^                  
      |           (                    )
smanager.c:88:13: note: use '==' to turn this assignment into an equality comparison
   88 |       if (s = strchr (tmp,'\n')) *s = '\0';
      |             ^
      |             ==
smanager.c:119:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  119 |     if (f = fopen (sbname,"r")) *sdb = (void *) f;
      |         ~~^~~~~~~~~~~~~~~~~~~~
smanager.c:119:11: note: place parentheses around the assignment to silence this warning
  119 |     if (f = fopen (sbname,"r")) *sdb = (void *) f;
      |           ^                   
      |         (                     )
smanager.c:119:11: note: use '==' to turn this assignment into an equality comparison
  119 |     if (f = fopen (sbname,"r")) *sdb = (void *) f;
      |           ^
      |           ==
smanager.c:123:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  123 |     if (s = strchr (sbname,'\n')) *s = '\0';
      |         ~~^~~~~~~~~~~~~~~~~~~~~~
smanager.c:123:11: note: place parentheses around the assignment to silence this warning
  123 |     if (s = strchr (sbname,'\n')) *s = '\0';
      |           ^                     
      |         (                       )
smanager.c:123:11: note: use '==' to turn this assignment into an equality comparison
  123 |     if (s = strchr (sbname,'\n')) *s = '\0';
      |           ^
      |           ==
9 warnings generated.
cc -c `cat CFLAGS` utf8.c
utf8.c:383:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  383 |       if (!compare_cstring (script,utf8_scvalid[i].name))
      |                             ^~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
utf8.c:383:36: warning: passing 'char *const' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  383 |       if (!compare_cstring (script,utf8_scvalid[i].name))
      |                                    ^~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
utf8.c:400:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  400 |       if (!compare_cstring (charset,utf8_csvalid[i].name))
      |                             ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
utf8.c:400:37: warning: passing 'char *const' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  400 |       if (!compare_cstring (charset,utf8_csvalid[i].name))
      |                                     ^~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
utf8.c:586:39: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  586 |   short iso2022jp = !compare_cstring (charset,"ISO-2022-JP");
      |                                       ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
utf8.c:586:47: warning: passing 'char[12]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  586 |   short iso2022jp = !compare_cstring (charset,"ISO-2022-JP");
      |                                               ^~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
utf8.c:613:26: warning: passing 'char *const' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  613 |                             !compare_cstring (dcs->name,"ISO-2022-JP"))) ?
      |                                               ^~~~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
utf8.c:613:36: warning: passing 'char[12]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  613 |                             !compare_cstring (dcs->name,"ISO-2022-JP"))) ?
      |                                                         ^~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
utf8.c:647:42: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  647 |   return (currmapcs && !compare_cstring (charset,currmapcs->name)) ? currmap :
      |                                          ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
utf8.c:647:50: warning: passing 'char *const' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  647 |   return (currmapcs && !compare_cstring (charset,currmapcs->name)) ? currmap :
      |                                                  ^~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
utf8.c:662:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  662 |   else if (ret = utf8_rmap_gen (cs,currmap)) {
      |            ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
utf8.c:662:16: note: place parentheses around the assignment to silence this warning
  662 |   else if (ret = utf8_rmap_gen (cs,currmap)) {
      |                ^                           
      |            (                               )
utf8.c:662:16: note: use '==' to turn this assignment into an equality comparison
  662 |   else if (ret = utf8_rmap_gen (cs,currmap)) {
      |                ^
      |                ==
utf8.c:794:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  794 |   if (i = utf8_rmapsize (text,rmap,errch,iso2022jp)) {
      |       ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
utf8.c:794:9: note: place parentheses around the assignment to silence this warning
  794 |   if (i = utf8_rmapsize (text,rmap,errch,iso2022jp)) {
      |         ^                                          
      |       (                                            )
utf8.c:794:9: note: use '==' to turn this assignment into an equality comparison
  794 |   if (i = utf8_rmapsize (text,rmap,errch,iso2022jp)) {
      |         ^
      |         ==
utf8.c:1189:11: warning: implicit conversion from 'int' to 'unsigned char' changes value from 65533 to 253 [-Wconstant-conversion]
 1189 |       c = JISTOUNICODE (c,c1,ku,ten);
      |         ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~
./jis_0208.c:49:26: note: expanded from macro 'JISTOUNICODE'
   49 |    jis0208tab[ku][ten] : UBOGON)
      |                          ^~~~~~
./utf8.h:386:16: note: expanded from macro 'UBOGON'
  386 | #define UBOGON UCS2_BOGON
      |                ^~~~~~~~~~
./utf8.h:351:20: note: expanded from macro 'UCS2_BOGON'
  351 | #define UCS2_BOGON 0xfffd       /* replacement character */
      |                    ^~~~~~
utf8.c:1291:27: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1291 |     if (!compare_cstring (s,"ISO-2022-JP")) s = "EUC-JP";
      |                           ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
utf8.c:1291:29: warning: passing 'char[12]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1291 |     if (!compare_cstring (s,"ISO-2022-JP")) s = "EUC-JP";
      |                             ^~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
utf8.c:1293:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1293 |     if (cs = utf8_charset (s)) {
      |         ~~~^~~~~~~~~~~~~~~~~~
utf8.c:1293:12: note: place parentheses around the assignment to silence this warning
 1293 |     if (cs = utf8_charset (s)) {
      |            ^                 
      |         (                    )
utf8.c:1293:12: note: use '==' to turn this assignment into an equality comparison
 1293 |     if (cs = utf8_charset (s)) {
      |            ^
      |            ==
utf8.c:2395:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2395 |     if (m = (struct decomposemore *) *more) switch (m->type) {
      |         ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
utf8.c:2395:11: note: place parentheses around the assignment to silence this warning
 2395 |     if (m = (struct decomposemore *) *more) switch (m->type) {
      |           ^                               
      |         (                                 )
utf8.c:2395:11: note: use '==' to turn this assignment into an equality comparison
 2395 |     if (m = (struct decomposemore *) *more) switch (m->type) {
      |           ^
      |           ==
utf8.c:2418:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2418 |       if (i = ucs4_dbmploixtab[c - UCS4_BMPLOMIN]) {
      |           ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
utf8.c:2418:13: note: place parentheses around the assignment to silence this warning
 2418 |       if (i = ucs4_dbmploixtab[c - UCS4_BMPLOMIN]) {
      |             ^                                    
      |           (                                      )
utf8.c:2418:13: note: use '==' to turn this assignment into an equality comparison
 2418 |       if (i = ucs4_dbmploixtab[c - UCS4_BMPLOMIN]) {
      |             ^
      |             ==
utf8.c:2448:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2448 |       if (i = ucs4_dbmphiixtab[c - UCS4_BMPHIMIN]) {
      |           ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
utf8.c:2448:13: note: place parentheses around the assignment to silence this warning
 2448 |       if (i = ucs4_dbmphiixtab[c - UCS4_BMPHIMIN]) {
      |             ^                                    
      |           (                                      )
utf8.c:2448:13: note: use '==' to turn this assignment into an equality comparison
 2448 |       if (i = ucs4_dbmphiixtab[c - UCS4_BMPHIMIN]) {
      |             ^
      |             ==
utf8.c:2513:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2513 |     if (mr = (RECURSIVEMORE *) *more) switch (mr->more->type) {
      |         ~~~^~~~~~~~~~~~~~~~~~~~~~~~~
utf8.c:2513:12: note: place parentheses around the assignment to silence this warning
 2513 |     if (mr = (RECURSIVEMORE *) *more) switch (mr->more->type) {
      |            ^                        
      |         (                           )
utf8.c:2513:12: note: use '==' to turn this assignment into an equality comparison
 2513 |     if (mr = (RECURSIVEMORE *) *more) switch (mr->more->type) {
      |            ^
      |            ==
utf8.c:2533:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2533 |     if (mr = mn) {              /* did this value recurse on us? */
      |         ~~~^~~~
utf8.c:2533:12: note: place parentheses around the assignment to silence this warning
 2533 |     if (mr = mn) {              /* did this value recurse on us? */
      |            ^   
      |         (      )
utf8.c:2533:12: note: use '==' to turn this assignment into an equality comparison
 2533 |     if (mr = mn) {              /* did this value recurse on us? */
      |            ^
      |            ==
21 warnings generated.
cc -c `cat CFLAGS` utf8aux.c
utf8aux.c:47:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
   47 |   } while (st = st->next);
      |            ~~~^~~~~~~~~~
utf8aux.c:47:15: note: place parentheses around the assignment to silence this warning
   47 |   } while (st = st->next);
      |               ^         
      |            (            )
utf8aux.c:47:15: note: use '==' to turn this assignment into an equality comparison
   47 |   } while (st = st->next);
      |               ^
      |               ==
utf8aux.c:136:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  136 |         if (ls = strchr (cs,'*')) *ls = '\0';
      |             ~~~^~~~~~~~~~~~~~~~~
utf8aux.c:136:9: note: place parentheses around the assignment to silence this warning
  136 |         if (ls = strchr (cs,'*')) *ls = '\0';
      |                ^                
      |             (                   )
utf8aux.c:136:9: note: use '==' to turn this assignment into an equality comparison
  136 |         if (ls = strchr (cs,'*')) *ls = '\0';
      |                ^
      |                ==
utf8aux.c:241:19: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  241 |     if (txt->data = (unsigned char *) rfc822_base64 (t,te - t,&txt->size))
      |         ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
utf8aux.c:241:19: note: place parentheses around the assignment to silence this warning
  241 |     if (txt->data = (unsigned char *) rfc822_base64 (t,te - t,&txt->size))
      |                   ^                                                      
      |         (                                                                )
utf8aux.c:241:19: note: use '==' to turn this assignment into an equality comparison
  241 |     if (txt->data = (unsigned char *) rfc822_base64 (t,te - t,&txt->size))
      |                   ^
      |                   ==
utf8aux.c:415:24: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  415 |   if (mail_utf7_valid (src)) return NIL;
      |                        ^~~
./mail.h:1623:30: note: passing argument to parameter 'mailbox' here
 1623 | char *mail_utf7_valid (char *mailbox);
      |                              ^
utf8aux.c:420:38: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  420 |   for (s = cpytxt (&utf7,src,strlen (src)); *s; ++s) switch (*s) {
      |                                      ^~~
/usr/include/string.h:100:28: note: passing argument to parameter here
  100 | size_t   strlen(const char *) __pure;
      |                             ^
utf8aux.c:420:26: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  420 |   for (s = cpytxt (&utf7,src,strlen (src)); *s; ++s) switch (*s) {
      |                          ^~~
./misc.h:89:36: note: passing argument to parameter 'text' here
   89 | char *cpytxt (SIZEDTEXT *dst,char *text,unsigned long size);
      |                                    ^
utf8aux.c:420:10: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  420 |   for (s = cpytxt (&utf7,src,strlen (src)); *s; ++s) switch (*s) {
      |          ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7 warnings generated.
cc -c `cat CFLAGS` siglocal.c
cc -c `cat CFLAGS` dummy.c
dummy.c:124:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  124 |     else if (!compare_cstring (name,"INBOX")) return &dummydriver;
      |                                ^~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
dummy.c:124:37: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  124 |     else if (!compare_cstring (name,"INBOX")) return &dummydriver;
      |                                     ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
dummy.c:162:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  162 |       if (s = strchr (test,'/')) *++s = '\0';
      |           ~~^~~~~~~~~~~~~~~~~~~
dummy.c:162:13: note: place parentheses around the assignment to silence this warning
  162 |       if (s = strchr (test,'/')) *++s = '\0';
      |             ^                  
      |           (                    )
dummy.c:162:13: note: use '==' to turn this assignment into an equality comparison
  162 |       if (s = strchr (test,'/')) *++s = '\0';
      |             ^
      |             ==
dummy.c:170:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  170 |     if (s = strpbrk (test,"%*")) {
      |         ~~^~~~~~~~~~~~~~~~~~~~~
dummy.c:170:11: note: place parentheses around the assignment to silence this warning
  170 |     if (s = strpbrk (test,"%*")) {
      |           ^                    
      |         (                      )
dummy.c:170:11: note: use '==' to turn this assignment into an equality comparison
  170 |     if (s = strpbrk (test,"%*")) {
      |           ^
      |           ==
dummy.c:176:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  176 |     if (s = strrchr (file,'/')){/* find directory name */
      |         ~~^~~~~~~~~~~~~~~~~~~~
dummy.c:176:11: note: place parentheses around the assignment to silence this warning
  176 |     if (s = strrchr (file,'/')){/* find directory name */
      |           ^                   
      |         (                     )
dummy.c:176:11: note: use '==' to turn this assignment into an equality comparison
  176 |     if (s = strrchr (file,'/')){/* find directory name */
      |           ^
      |           ==
dummy.c:185:32: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  185 |     if (pmatch ("INBOX",ucase (test))) {
      |                                ^~~~
./misc.h:82:18: note: expanded from macro 'pmatch'
   82 |   pmatch_full (s,pat,NIL)
      |                  ^~~
./misc.h:86:38: note: passing argument to parameter 'string' here
   86 | unsigned char *ucase (unsigned char *string);
      |                                      ^
dummy.c:185:17: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  185 |     if (pmatch ("INBOX",ucase (test))) {
      |                 ^~~~~~~
./misc.h:82:16: note: expanded from macro 'pmatch'
   82 |   pmatch_full (s,pat,NIL)
      |                ^
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
dummy.c:224:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  224 |       if (!compare_cstring (s,"INBOX") &&
      |                             ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
dummy.c:224:31: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  224 |       if (!compare_cstring (s,"INBOX") &&
      |                               ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
dummy.c:225:27: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  225 |           pmatch ("INBOX",ucase (strcpy (tmp,test))))
      |                                  ^~~~~~~~~~~~~~~~~
./misc.h:82:18: note: expanded from macro 'pmatch'
   82 |   pmatch_full (s,pat,NIL)
      |                  ^~~
./misc.h:86:38: note: passing argument to parameter 'string' here
   86 | unsigned char *ucase (unsigned char *string);
      |                                      ^
dummy.c:225:12: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  225 |           pmatch ("INBOX",ucase (strcpy (tmp,test))))
      |                   ^~~~~~~
./misc.h:82:16: note: expanded from macro 'pmatch'
   82 |   pmatch_full (s,pat,NIL)
      |                ^
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
dummy.c:227:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  227 |       else if (pmatch_full (s,test,'/')) mm_lsub (stream,'/',s,NIL);
      |                             ^
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
dummy.c:227:31: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  227 |       else if (pmatch_full (s,test,'/')) mm_lsub (stream,'/',s,NIL);
      |                               ^~~~
./env.h:29:51: note: passing argument to parameter 'pat' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                                   ^
dummy.c:230:19: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  230 |         if (pmatch_full (s,test,'/')) mm_lsub (stream,'/',s,LATT_NOSELECT);
      |                          ^
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
dummy.c:230:21: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  230 |         if (pmatch_full (s,test,'/')) mm_lsub (stream,'/',s,LATT_NOSELECT);
      |                            ^~~~
./env.h:29:51: note: passing argument to parameter 'pat' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                                   ^
dummy.c:233:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  233 |   while (s = sm_read (&sdb));   /* until no more subscriptions */
      |          ~~^~~~~~~~~~~~~~~~
dummy.c:233:12: note: place parentheses around the assignment to silence this warning
  233 |   while (s = sm_read (&sdb));   /* until no more subscriptions */
      |            ^               
      |          (                 )
dummy.c:233:12: note: use '==' to turn this assignment into an equality comparison
  233 |   while (s = sm_read (&sdb));   /* until no more subscriptions */
      |            ^
      |            ==
dummy.c:282:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  282 |   if (dp = opendir (tmp)) {     /* do nothing if can't open directory */
      |       ~~~^~~~~~~~~~~~~~~
dummy.c:282:10: note: place parentheses around the assignment to silence this warning
  282 |   if (dp = opendir (tmp)) {     /* do nothing if can't open directory */
      |          ^              
      |       (                 )
dummy.c:282:10: note: use '==' to turn this assignment into an equality comparison
  282 |   if (dp = opendir (tmp)) {     /* do nothing if can't open directory */
      |          ^
      |          ==
dummy.c:290:39: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  290 |     if (!level && dir && pmatch_full (dir,pat,'/') && !pmatch (dir,"INBOX"))
      |                                       ^~~
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
dummy.c:290:43: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  290 |     if (!level && dir && pmatch_full (dir,pat,'/') && !pmatch (dir,"INBOX"))
      |                                           ^~~
./env.h:29:51: note: passing argument to parameter 'pat' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                                   ^
dummy.c:290:64: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  290 |     if (!level && dir && pmatch_full (dir,pat,'/') && !pmatch (dir,"INBOX"))
      |                                                                ^~~
./misc.h:82:16: note: expanded from macro 'pmatch'
   82 |   pmatch_full (s,pat,NIL)
      |                ^
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
dummy.c:290:68: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  290 |     if (!level && dir && pmatch_full (dir,pat,'/') && !pmatch (dir,"INBOX"))
      |                                                                    ^~~~~~~
./misc.h:82:18: note: expanded from macro 'pmatch'
   82 |   pmatch_full (s,pat,NIL)
      |                  ^~~
./env.h:29:51: note: passing argument to parameter 'pat' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                                   ^
dummy.c:294:64: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  294 |     if (!dir || dir[(len = strlen (dir)) - 1] == '/') while (d = readdir (dp))
      |                                                              ~~^~~~~~~~~~~~~~
dummy.c:294:64: note: place parentheses around the assignment to silence this warning
  294 |     if (!dir || dir[(len = strlen (dir)) - 1] == '/') while (d = readdir (dp))
      |                                                                ^             
      |                                                              (               )
dummy.c:294:64: note: use '==' to turn this assignment into an equality comparison
  294 |     if (!dir || dir[(len = strlen (dir)) - 1] == '/') while (d = readdir (dp))
      |                                                                ^
      |                                                                ==
dummy.c:304:20: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  304 |         if ((pmatch_full (strcpy (path,tmp),pat,'/') ||
      |                           ^~~~~~~~~~~~~~~~~
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
dummy.c:304:38: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  304 |         if ((pmatch_full (strcpy (path,tmp),pat,'/') ||
      |                                             ^~~
./env.h:29:51: note: passing argument to parameter 'pat' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                                   ^
dummy.c:305:20: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  305 |              pmatch_full (strcat (path,"/"),pat,'/') ||
      |                           ^~~~~~~~~~~~~~~~~
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
dummy.c:305:38: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  305 |              pmatch_full (strcat (path,"/"),pat,'/') ||
      |                                             ^~~
./env.h:29:51: note: passing argument to parameter 'pat' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                                   ^
dummy.c:306:15: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  306 |              dmatch (path,pat,'/')) &&
      |                      ^~~~
./env.h:30:29: note: passing argument to parameter 's' here
   30 | long dmatch (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                             ^
dummy.c:306:20: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  306 |              dmatch (path,pat,'/')) &&
      |                           ^~~
./env.h:30:46: note: passing argument to parameter 'pat' here
   30 | long dmatch (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                              ^
dummy.c:315:19: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  315 |             if (!pmatch (tmp,"INBOX")) {
      |                          ^~~
./misc.h:82:16: note: expanded from macro 'pmatch'
   82 |   pmatch_full (s,pat,NIL)
      |                ^
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
dummy.c:315:23: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  315 |             if (!pmatch (tmp,"INBOX")) {
      |                              ^~~~~~~
./misc.h:82:18: note: expanded from macro 'pmatch'
   82 |   pmatch_full (s,pat,NIL)
      |                  ^~~
./env.h:29:51: note: passing argument to parameter 'pat' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                                   ^
dummy.c:316:25: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  316 |               if (pmatch_full (tmp,pat,'/')) {
      |                                ^~~
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
dummy.c:316:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  316 |               if (pmatch_full (tmp,pat,'/')) {
      |                                    ^~~
./env.h:29:51: note: passing argument to parameter 'pat' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                                   ^
dummy.c:321:30: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  321 |               else if (pmatch_full (path,pat,'/') &&
      |                                     ^~~~
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
dummy.c:321:35: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  321 |               else if (pmatch_full (path,pat,'/') &&
      |                                          ^~~
./env.h:29:51: note: passing argument to parameter 'pat' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                                   ^
dummy.c:325:18: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  325 |             if (dmatch (path,pat,'/') &&
      |                         ^~~~
./env.h:30:29: note: passing argument to parameter 's' here
   30 | long dmatch (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                             ^
dummy.c:325:23: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  325 |             if (dmatch (path,pat,'/') &&
      |                              ^~~
./env.h:30:46: note: passing argument to parameter 'pat' here
   30 | long dmatch (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                              ^
dummy.c:331:23: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  331 |             if (pmatch_full (tmp,pat,'/') && compare_cstring (tmp,"INBOX"))
      |                              ^~~
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
dummy.c:331:27: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  331 |             if (pmatch_full (tmp,pat,'/') && compare_cstring (tmp,"INBOX"))
      |                                  ^~~
./env.h:29:51: note: passing argument to parameter 'pat' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                                   ^
dummy.c:331:56: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  331 |             if (pmatch_full (tmp,pat,'/') && compare_cstring (tmp,"INBOX"))
      |                                                               ^~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
dummy.c:331:60: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  331 |             if (pmatch_full (tmp,pat,'/') && compare_cstring (tmp,"INBOX"))
      |                                                                   ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
dummy.c:458:26: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  458 |   if (!(compare_cstring (mailbox,"INBOX") && (s = dummy_file (tmp,mailbox)))) {
      |                          ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
dummy.c:458:34: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  458 |   if (!(compare_cstring (mailbox,"INBOX") && (s = dummy_file (tmp,mailbox)))) {
      |                                  ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
dummy.c:485:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  485 |   if (s = strrchr (path,'/')) { /* found superior to this name? */
      |       ~~^~~~~~~~~~~~~~~~~~~~
dummy.c:485:9: note: place parentheses around the assignment to silence this warning
  485 |   if (s = strrchr (path,'/')) { /* found superior to this name? */
      |         ^                   
      |       (                     )
dummy.c:485:9: note: use '==' to turn this assignment into an equality comparison
  485 |   if (s = strrchr (path,'/')) { /* found superior to this name? */
      |         ^
      |         ==
dummy.c:568:25: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  568 |   if (!compare_cstring (old,"INBOX") && stat (oldname,&sbuf))
      |                         ^~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
dummy.c:568:29: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  568 |   if (!compare_cstring (old,"INBOX") && stat (oldname,&sbuf))
      |                             ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
dummy.c:597:26: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  597 |     if (compare_cstring (stream->mailbox,"INBOX"))
      |                          ^~~~~~~~~~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
dummy.c:597:42: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  597 |     if (compare_cstring (stream->mailbox,"INBOX"))
      |                                          ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
dummy.c:704:54: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  704 |   if ((options & CP_UID) ? mail_uid_sequence (stream,sequence) :
      |                                                      ^~~~~~~~
./mail.h:1756:59: note: passing argument to parameter 'sequence' here
 1756 | long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                           ^
dummy.c:705:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  705 |       mail_sequence (stream,sequence)) fatal ("Impossible dummy_copy");
      |                             ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
dummy.c:726:25: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  726 |   if (!compare_cstring (mailbox,"INBOX")) {
      |                         ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
dummy.c:726:33: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  726 |   if (!compare_cstring (mailbox,"INBOX")) {
      |                                 ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
dummy.c:728:23: warning: unsequenced modification and access to 'ts' [-Wunsequenced]
  728 |     if (!ts && !(*(ts = default_proto (NIL))->dtb->create) (ts,"INBOX"))
      |                       ^                                     ~~
dummy.c:803:28: warning: expression result unused [-Wunused-value]
  803 |   for (i = 0, s = tmp; *s; *s++) if ((*s == '*') || (*s == '%')) ++i;
      |                            ^~~~
53 warnings generated.
cc -c `cat CFLAGS` pseudo.c
cc -c `cat CFLAGS` netmsg.c
netmsg.c:63:45: warning: call to undeclared function 'time'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
   63 |     sprintf (tmp,".%lx.%lx",(unsigned long) time (0),(unsigned long)getpid ());
      |                                             ^
netmsg.c:64:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
   64 |     if (f = fopen (tmp,"wb+")) unlink (tmp);
      |         ~~^~~~~~~~~~~~~~~~~~~
netmsg.c:64:11: note: place parentheses around the assignment to silence this warning
   64 |     if (f = fopen (tmp,"wb+")) unlink (tmp);
      |           ^                  
      |         (                    )
netmsg.c:64:11: note: use '==' to turn this assignment into an equality comparison
   64 |     if (f = fopen (tmp,"wb+")) unlink (tmp);
      |           ^
      |           ==
netmsg.c:73:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
   73 |   while (s = net_getline (stream)) {
      |          ~~^~~~~~~~~~~~~~~~~~~~~~
netmsg.c:73:12: note: place parentheses around the assignment to silence this warning
   73 |   while (s = net_getline (stream)) {
      |            ^                     
      |          (                       )
netmsg.c:73:12: note: use '==' to turn this assignment into an equality comparison
   73 |   while (s = net_getline (stream)) {
      |            ^
      |            ==
3 warnings generated.
cc -c `cat CFLAGS` flstring.c
cc -c `cat CFLAGS` fdstring.c
fdstring.c:94:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
   94 |   if (s->cursize = min (s->chunksize,SIZE (s))) {
      |       ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fdstring.c:94:18: note: place parentheses around the assignment to silence this warning
   94 |   if (s->cursize = min (s->chunksize,SIZE (s))) {
      |                  ^                            
      |       (                                       )
fdstring.c:94:18: note: use '==' to turn this assignment into an equality comparison
   94 |   if (s->cursize = min (s->chunksize,SIZE (s))) {
      |                  ^
      |                  ==
1 warning generated.
cc -c `cat CFLAGS` rfc822.c
rfc822.c:155:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  155 |     if (t = d = strchr (tmp,':')) {
      |         ~~^~~~~~~~~~~~~~~~~~~~~~
rfc822.c:155:11: note: place parentheses around the assignment to silence this warning
  155 |     if (t = d = strchr (tmp,':')) {
      |           ^                     
      |         (                       )
rfc822.c:155:11: note: use '==' to turn this assignment into an equality comparison
  155 |     if (t = d = strchr (tmp,':')) {
      |           ^
      |           ==
rfc822.c:159:14: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  159 |       ucase (tmp);              /* coerce to uppercase */
      |              ^~~
./misc.h:86:38: note: passing argument to parameter 'string' here
   86 | unsigned char *ucase (unsigned char *string);
      |                                      ^
rfc822.c:198:53: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  198 |         if (!env->date && !strcmp (tmp+1,"ATE")) env->date = cpystr (d);
      |                                                            ^ ~~~~~~~~~~
rfc822.c:204:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  204 |           while (c = *d++) if (c != ' ') *t++ = c;
      |                  ~~^~~~~~
rfc822.c:204:13: note: place parentheses around the assignment to silence this warning
  204 |           while (c = *d++) if (c != ' ') *t++ = c;
      |                    ^     
      |                  (       )
rfc822.c:204:13: note: use '==' to turn this assignment into an equality comparison
  204 |           while (c = *d++) if (c != ' ') *t++ = c;
      |                    ^
      |                    ==
rfc822.c:218:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  218 |           if (t = rfc822_parse_phrase (d)) *t = '\0';
      |               ~~^~~~~~~~~~~~~~~~~~~~~~~~~
rfc822.c:218:10: note: place parentheses around the assignment to silence this warning
  218 |           if (t = rfc822_parse_phrase (d)) *t = '\0';
      |                 ^                        
      |               (                          )
rfc822.c:218:10: note: use '==' to turn this assignment into an equality comparison
  218 |           if (t = rfc822_parse_phrase (d)) *t = '\0';
      |                 ^
      |                 ==
rfc822.c:229:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  229 |           while (c = *d++) if (c != ' ') *t++ = c;
      |                  ~~^~~~~~
rfc822.c:229:13: note: place parentheses around the assignment to silence this warning
  229 |           while (c = *d++) if (c != ' ') *t++ = c;
      |                    ^     
      |                  (       )
rfc822.c:229:13: note: use '==' to turn this assignment into an equality comparison
  229 |           while (c = *d++) if (c != ' ') *t++ = c;
      |                    ^
      |                    ==
rfc822.c:381:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  381 |       if (m = GETPOS (bs)) m--; /* get position in front of character */
      |           ~~^~~~~~~~~~~~~
rfc822.c:381:13: note: place parentheses around the assignment to silence this warning
  381 |       if (m = GETPOS (bs)) m--; /* get position in front of character */
      |             ^            
      |           (              )
rfc822.c:381:13: note: use '==' to turn this assignment into an equality comparison
  381 |       if (m = GETPOS (bs)) m--; /* get position in front of character */
      |             ^
      |             ==
rfc822.c:391:8: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  391 |         if (k = j - 2) for (s = s1; i-- && *s++ == (c = SNX (bs)) && --k;);
      |             ~~^~~~~~~
rfc822.c:391:8: note: place parentheses around the assignment to silence this warning
  391 |         if (k = j - 2) for (s = s1; i-- && *s++ == (c = SNX (bs)) && --k;);
      |               ^      
      |             (        )
rfc822.c:391:8: note: use '==' to turn this assignment into an equality comparison
  391 |         if (k = j - 2) for (s = s1; i-- && *s++ == (c = SNX (bs)) && --k;);
      |               ^
      |               ==
rfc822.c:446:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  446 |       if (i = part->body.mime.text.size) {
      |           ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
rfc822.c:446:13: note: place parentheses around the assignment to silence this warning
  446 |       if (i = part->body.mime.text.size) {
      |             ^                          
      |           (                            )
rfc822.c:446:13: note: use '==' to turn this assignment into an equality comparison
  446 |       if (i = part->body.mime.text.size) {
      |             ^
      |             ==
rfc822.c:490:54: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  490 |             rfc822_parse_content_header (&part->body,ucase (s1+8),s);
      |                                                             ^~~~
./misc.h:86:38: note: passing argument to parameter 'string' here
   86 | unsigned char *ucase (unsigned char *string);
      |                                      ^
rfc822.c:490:47: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  490 |             rfc822_parse_content_header (&part->body,ucase (s1+8),s);
      |                                                      ^~~~~~~~~~~~
./rfc822.h:64:52: note: passing argument to parameter 'name' here
   64 | void rfc822_parse_content_header (BODY *body,char *name,char *s);
      |                                                    ^
rfc822.c:547:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  547 |   if (t = strchr (name,' ')) *t = '\0';
      |       ~~^~~~~~~~~~~~~~~~~~~
rfc822.c:547:9: note: place parentheses around the assignment to silence this warning
  547 |   if (t = strchr (name,' ')) *t = '\0';
      |         ^                  
      |       (                    )
rfc822.c:547:9: note: use '==' to turn this assignment into an equality comparison
  547 |   if (t = strchr (name,' ')) *t = '\0';
      |         ^
      |         ==
rfc822.c:560:39: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  560 |       body->disposition.type = ucase (cpystr (s));
      |                                       ^~~~~~~~~~
./misc.h:86:38: note: passing argument to parameter 'string' here
   86 | unsigned char *ucase (unsigned char *string);
      |                                      ^
rfc822.c:560:30: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  560 |       body->disposition.type = ucase (cpystr (s));
      |                              ^ ~~~~~~~~~~~~~~~~~~
rfc822.c:574:44: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  574 |         stl->text.data = (unsigned char *) ucase (cpystr (s));
      |                                                   ^~~~~~~~~~
./misc.h:86:38: note: passing argument to parameter 'string' here
   86 | unsigned char *ucase (unsigned char *string);
      |                                      ^
rfc822.c:601:24: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  601 |              compare_cstring (s,body_types[i]); i++);
      |                               ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
rfc822.c:601:26: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  601 |              compare_cstring (s,body_types[i]); i++);
      |                                 ^~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
rfc822.c:612:36: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  612 |           body_types[body->type] = ucase (s);
      |                                           ^
./misc.h:86:38: note: passing argument to parameter 'string' here
   86 | unsigned char *ucase (unsigned char *string);
      |                                      ^
rfc822.c:612:27: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  612 |           body_types[body->type] = ucase (s);
      |                                  ^ ~~~~~~~~~
rfc822.c:624:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  624 |         if (s) body->subtype = ucase (rfc822_cpy (s));
      |                                       ^~~~~~~~~~~~~~
./misc.h:86:38: note: passing argument to parameter 'string' here
   86 | unsigned char *ucase (unsigned char *string);
      |                                      ^
rfc822.c:624:23: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  624 |         if (s) body->subtype = ucase (rfc822_cpy (s));
      |                              ^ ~~~~~~~~~~~~~~~~~~~~~~
rfc822.c:642:24: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  642 |              compare_cstring (s,body_encodings[i]); i++);
      |                               ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
rfc822.c:642:26: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  642 |              compare_cstring (s,body_encodings[i]); i++);
      |                                 ^~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
rfc822.c:653:44: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  653 |           body_encodings[body->encoding] = ucase (s);
      |                                                   ^
./misc.h:86:38: note: passing argument to parameter 'string' here
   86 | unsigned char *ucase (unsigned char *string);
      |                                      ^
rfc822.c:653:35: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  653 |           body_encodings[body->encoding] = ucase (s);
      |                                          ^ ~~~~~~~~~
rfc822.c:686:33: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  686 |       param->attribute = ucase (cpystr (s));
      |                                 ^~~~~~~~~~
./misc.h:86:38: note: passing argument to parameter 'string' here
   86 | unsigned char *ucase (unsigned char *string);
      |                                      ^
rfc822.c:686:24: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  686 |       param->attribute = ucase (cpystr (s));
      |                        ^ ~~~~~~~~~~~~~~~~~~
rfc822.c:737:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  737 |     else if (adr = rfc822_parse_address (lst,last,&string,host,0)) {
      |              ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rfc822.c:737:18: note: place parentheses around the assignment to silence this warning
  737 |     else if (adr = rfc822_parse_address (lst,last,&string,host,0)) {
      |                  ^                                               
      |              (                                                   )
rfc822.c:737:18: note: use '==' to turn this assignment into an equality comparison
  737 |     else if (adr = rfc822_parse_address (lst,last,&string,host,0)) {
      |                  ^
      |                  ==
rfc822.c:791:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  791 |   if (adr = rfc822_parse_group (lst,last,string,defaulthost,depth)) last = adr;
      |       ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rfc822.c:791:11: note: place parentheses around the assignment to silence this warning
  791 |   if (adr = rfc822_parse_group (lst,last,string,defaulthost,depth)) last = adr;
      |           ^                                                       
      |       (                                                           )
rfc822.c:791:11: note: use '==' to turn this assignment into an equality comparison
  791 |   if (adr = rfc822_parse_group (lst,last,string,defaulthost,depth)) last = adr;
      |           ^
      |           ==
rfc822.c:793:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  793 |   else if (adr = rfc822_parse_mailbox (string,defaulthost)) {
      |            ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rfc822.c:793:16: note: place parentheses around the assignment to silence this warning
  793 |   else if (adr = rfc822_parse_mailbox (string,defaulthost)) {
      |                ^                                          
      |            (                                              )
rfc822.c:793:16: note: use '==' to turn this assignment into an equality comparison
  793 |   else if (adr = rfc822_parse_mailbox (string,defaulthost)) {
      |                ^
      |                ==
rfc822.c:839:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  839 |     if (adr = rfc822_parse_address (lst,last,string,defaulthost,depth+1)) {
      |         ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rfc822.c:839:13: note: place parentheses around the assignment to silence this warning
  839 |     if (adr = rfc822_parse_address (lst,last,string,defaulthost,depth+1)) {
      |             ^                                                           
      |         (                                                               )
rfc822.c:839:13: note: use '==' to turn this assignment into an equality comparison
  839 |     if (adr = rfc822_parse_address (lst,last,string,defaulthost,depth+1)) {
      |             ^
      |             ==
rfc822.c:898:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  898 |   else if (end = rfc822_parse_phrase (s)) {
      |            ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
rfc822.c:898:16: note: place parentheses around the assignment to silence this warning
  898 |   else if (end = rfc822_parse_phrase (s)) {
      |                ^                        
      |            (                            )
rfc822.c:898:16: note: use '==' to turn this assignment into an equality comparison
  898 |   else if (end = rfc822_parse_phrase (s)) {
      |                ^
      |                ==
rfc822.c:1027:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1027 |     if (t = rfc822_parse_word (string,wspecials)) {
      |         ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rfc822.c:1027:11: note: place parentheses around the assignment to silence this warning
 1027 |     if (t = rfc822_parse_word (string,wspecials)) {
      |           ^                                     
      |         (                                       )
rfc822.c:1027:11: note: use '==' to turn this assignment into an equality comparison
 1027 |     if (t = rfc822_parse_word (string,wspecials)) {
      |           ^
      |           ==
rfc822.c:1095:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1095 |   else if (t = rfc822_parse_word (string,wspecials)) {
      |            ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rfc822.c:1095:14: note: place parentheses around the assignment to silence this warning
 1095 |   else if (t = rfc822_parse_word (string,wspecials)) {
      |              ^                                     
      |            (                                       )
rfc822.c:1095:14: note: use '==' to turn this assignment into an equality comparison
 1095 |   else if (t = rfc822_parse_word (string,wspecials)) {
      |              ^
      |              ==
rfc822.c:1105:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1105 |       if (string = rfc822_parse_domain (string,&t)) {
      |           ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rfc822.c:1105:18: note: place parentheses around the assignment to silence this warning
 1105 |       if (string = rfc822_parse_domain (string,&t)) {
      |                  ^                                
      |           (                                       )
rfc822.c:1105:18: note: use '==' to turn this assignment into an equality comparison
 1105 |       if (string = rfc822_parse_domain (string,&t)) {
      |                  ^
      |                  ==
rfc822.c:1172:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1172 |           while (st = strchr (st,I2C_ESC))
      |                  ~~~^~~~~~~~~~~~~~~~~~~~~
rfc822.c:1172:14: note: place parentheses around the assignment to silence this warning
 1172 |           while (st = strchr (st,I2C_ESC))
      |                     ^                    
      |                  (                       )
rfc822.c:1172:14: note: use '==' to turn this assignment into an equality comparison
 1172 |           while (st = strchr (st,I2C_ESC))
      |                     ^
      |                     ==
rfc822.c:1371:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1371 |     if (i = min (len,buf->end - buf->cur)) {
      |         ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rfc822.c:1371:11: note: place parentheses around the assignment to silence this warning
 1371 |     if (i = min (len,buf->end - buf->cur)) {
      |           ^                              
      |         (                                )
rfc822.c:1371:11: note: use '==' to turn this assignment into an equality comparison
 1371 |     if (i = min (len,buf->end - buf->cur)) {
      |           ^
      |           ==
rfc822.c:1462:45: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1462 |     rfc822_output_header_line (buf,"Date",i,env->date) &&
      |                                             ^~~~~~~~~
./rfc822.h:89:11: note: passing argument to parameter 'text' here
   89 |                                 char *text);
      |                                       ^
rfc822.c:1619:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1619 |     for (; s = strpbrk (src,"\\\""); src = s + 1) {
      |            ~~^~~~~~~~~~~~~~~~~~~~~~
rfc822.c:1619:14: note: place parentheses around the assignment to silence this warning
 1619 |     for (; s = strpbrk (src,"\\\""); src = s + 1) {
      |              ^                     
      |            (                       )
rfc822.c:1619:14: note: use '==' to turn this assignment into an equality comparison
 1619 |     for (; s = strpbrk (src,"\\\""); src = s + 1) {
      |              ^
      |              ==
rfc822.c:1737:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1737 |     while (part = part->next);  /* until done */
      |            ~~~~~^~~~~~~~~~~~
rfc822.c:1737:17: note: place parentheses around the assignment to silence this warning
 1737 |     while (part = part->next);  /* until done */
      |                 ^           
      |            (                )
rfc822.c:1737:17: note: use '==' to turn this assignment into an equality comparison
 1737 |     while (part = part->next);  /* until done */
      |                 ^
      |                 ==
rfc822.c:1805:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1805 |     while (part = part->next);  /* until done */
      |            ~~~~~^~~~~~~~~~~~
rfc822.c:1805:17: note: place parentheses around the assignment to silence this warning
 1805 |     while (part = part->next);  /* until done */
      |                 ^           
      |            (                )
rfc822.c:1805:17: note: use '==' to turn this assignment into an equality comparison
 1805 |     while (part = part->next);  /* until done */
      |                 ^
      |                 ==
rfc822.c:1961:8: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1961 |         if (s = strpbrk (tmp,"\015\012")) *s = NIL;
      |             ~~^~~~~~~~~~~~~~~~~~~~~~~~~~
rfc822.c:1961:8: note: place parentheses around the assignment to silence this warning
 1961 |         if (s = strpbrk (tmp,"\015\012")) *s = NIL;
      |               ^                         
      |             (                           )
rfc822.c:1961:8: note: use '==' to turn this assignment into an equality comparison
 1961 |         if (s = strpbrk (tmp,"\015\012")) *s = NIL;
      |               ^
      |               ==
42 warnings generated.
cc -c `cat CFLAGS` nntp.c
nntp.c:353:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  353 |     while (s = net_getline (LOCAL->nntpstream->netstream)) {
      |            ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nntp.c:353:14: note: place parentheses around the assignment to silence this warning
  353 |     while (s = net_getline (LOCAL->nntpstream->netstream)) {
      |              ^                                           
      |            (                                             )
nntp.c:353:14: note: use '==' to turn this assignment into an equality comparison
  353 |     while (s = net_getline (LOCAL->nntpstream->netstream)) {
      |              ^
      |              ==
nntp.c:358:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  358 |       if (t = strchr (s,' ')) { /* tie off after newsgroup name */
      |           ~~^~~~~~~~~~~~~~~~
nntp.c:358:13: note: place parentheses around the assignment to silence this warning
  358 |       if (t = strchr (s,' ')) { /* tie off after newsgroup name */
      |             ^               
      |           (                 )
nntp.c:358:13: note: use '==' to turn this assignment into an equality comparison
  358 |       if (t = strchr (s,' ')) { /* tie off after newsgroup name */
      |             ^
      |             ==
nntp.c:362:19: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  362 |         if (pmatch_full (name,pattern,'.')) mm_list (stream,'.',name,NIL);
      |                          ^~~~
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
nntp.c:362:24: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  362 |         if (pmatch_full (name,pattern,'.')) mm_list (stream,'.',name,NIL);
      |                               ^~~~~~~
./env.h:29:51: note: passing argument to parameter 'pat' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                                   ^
nntp.c:365:21: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  365 |           if (pmatch_full (name,pattern,'.'))
      |                            ^~~~
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
nntp.c:365:26: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  365 |           if (pmatch_full (name,pattern,'.'))
      |                                 ^~~~~~~
./env.h:29:51: note: passing argument to parameter 'pat' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                                   ^
nntp.c:397:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  397 |   if (s = sm_read (&sdb)) do if (nntp_valid (s) && pmatch (s,mbx))
      |       ~~^~~~~~~~~~~~~~~~
nntp.c:397:9: note: place parentheses around the assignment to silence this warning
  397 |   if (s = sm_read (&sdb)) do if (nntp_valid (s) && pmatch (s,mbx))
      |         ^               
      |       (                 )
nntp.c:397:9: note: use '==' to turn this assignment into an equality comparison
  397 |   if (s = sm_read (&sdb)) do if (nntp_valid (s) && pmatch (s,mbx))
      |         ^
      |         ==
nntp.c:397:60: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  397 |   if (s = sm_read (&sdb)) do if (nntp_valid (s) && pmatch (s,mbx))
      |                                                            ^
./misc.h:82:16: note: expanded from macro 'pmatch'
   82 |   pmatch_full (s,pat,NIL)
      |                ^
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
nntp.c:397:62: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  397 |   if (s = sm_read (&sdb)) do if (nntp_valid (s) && pmatch (s,mbx))
      |                                                              ^~~
./misc.h:82:18: note: expanded from macro 'pmatch'
   82 |   pmatch_full (s,pat,NIL)
      |                  ^~~
./env.h:29:51: note: passing argument to parameter 'pat' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                                   ^
nntp.c:399:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  399 |   while (s = sm_read (&sdb));   /* until no more subscriptions */
      |          ~~^~~~~~~~~~~~~~~~
nntp.c:399:12: note: place parentheses around the assignment to silence this warning
  399 |   while (s = sm_read (&sdb));   /* until no more subscriptions */
      |            ^               
      |          (                 )
nntp.c:399:12: note: use '==' to turn this assignment into an equality comparison
  399 |   while (s = sm_read (&sdb));   /* until no more subscriptions */
      |            ^
      |            ==
nntp.c:430:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  430 |     for (s = wildmat; s = strchr (s,'%'); *s = '*');
      |                       ~~^~~~~~~~~~~~~~~~
nntp.c:430:25: note: place parentheses around the assignment to silence this warning
  430 |     for (s = wildmat; s = strchr (s,'%'); *s = '*');
      |                         ^               
      |                       (                 )
nntp.c:430:25: note: use '==' to turn this assignment into an equality comparison
  430 |     for (s = wildmat; s = strchr (s,'%'); *s = '*');
      |                         ^
      |                         ==
nntp.c:556:20: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  556 |     else if (state = newsrc_state (stream,name)) {
      |              ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
nntp.c:556:20: note: place parentheses around the assignment to silence this warning
  556 |     else if (state = newsrc_state (stream,name)) {
      |                    ^                           
      |              (                                 )
nntp.c:556:20: note: use '==' to turn this assignment into an equality comparison
  556 |     else if (state = newsrc_state (stream,name)) {
      |                    ^
      |                    ==
nntp.c:566:24: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  566 |             newsrc_check_uid (state,k,&status.recent,&status.unseen);
      |                               ^~~~~
./newsrc.h:42:39: note: passing argument to parameter 'state' here
   42 | void newsrc_check_uid (unsigned char *state,unsigned long uid,
      |                                       ^
nntp.c:575:20: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  575 |         newsrc_check_uid (state,i++,&status.recent,&status.unseen);
      |                           ^~~~~
./newsrc.h:42:39: note: passing argument to parameter 'state' here
   42 | void newsrc_check_uid (unsigned char *state,unsigned long uid,
      |                                       ^
nntp.c:734:12: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  734 |     lcase (strcpy (s,(long) mail_parameters (NIL,GET_NEWSRCCANONHOST,NIL) ?
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  735 |                    net_host (nstream->netstream) : mb.host));
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:87:38: note: passing argument to parameter 'string' here
   87 | unsigned char *lcase (unsigned char *string);
      |                                      ^
nntp.c:853:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  853 |                           mail_uid_sequence (stream,sequence) :
      |                                                     ^~~~~~~~
./mail.h:1756:59: note: passing argument to parameter 'sequence' here
 1756 | long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                           ^
nntp.c:854:28: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  854 |                           mail_sequence (stream,sequence)))
      |                                                 ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
nntp.c:896:33: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  896 |       mail_uid_sequence (stream,sequence) : mail_sequence (stream,sequence))
      |                                 ^~~~~~~~
./mail.h:1756:59: note: passing argument to parameter 'sequence' here
 1756 | long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                           ^
nntp.c:896:67: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  896 |       mail_uid_sequence (stream,sequence) : mail_sequence (stream,sequence))
      |                                                                   ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
nntp.c:929:22: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  929 |           for (t = v = s; c = *v++;)
      |                           ~~^~~~~~
nntp.c:929:22: note: place parentheses around the assignment to silence this warning
  929 |           for (t = v = s; c = *v++;)
      |                             ^     
      |                           (       )
nntp.c:929:22: note: use '==' to turn this assignment into an equality comparison
  929 |           for (t = v = s; c = *v++;)
      |                             ^
      |                             ==
nntp.c:999:15: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  999 |     while ((s = net_getline (LOCAL->nntpstream->netstream)) && strcmp (s,".")){
      |               ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nntp.c:999:72: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  999 |     while ((s = net_getline (LOCAL->nntpstream->netstream)) && strcmp (s,".")){
      |                                                                        ^
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
nntp.c:1039:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1039 |   if (t = strchr (ov->subject,'\t')) {
      |       ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
nntp.c:1039:9: note: place parentheses around the assignment to silence this warning
 1039 |   if (t = strchr (ov->subject,'\t')) {
      |         ^                          
      |       (                            )
nntp.c:1039:9: note: use '==' to turn this assignment into an equality comparison
 1039 |   if (t = strchr (ov->subject,'\t')) {
      |         ^
      |         ==
nntp.c:1042:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1042 |     if (ov->date = strchr (t,'\t')) {
      |         ~~~~~~~~~^~~~~~~~~~~~~~~~~
nntp.c:1042:18: note: place parentheses around the assignment to silence this warning
 1042 |     if (ov->date = strchr (t,'\t')) {
      |                  ^                
      |         (                         )
nntp.c:1042:18: note: use '==' to turn this assignment into an equality comparison
 1042 |     if (ov->date = strchr (t,'\t')) {
      |                  ^
      |                  ==
nntp.c:1045:43: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1045 |       if (!elt->day) mail_parse_date (elt,ov->date);
      |                                           ^~~~~~~~
./mail.h:1689:56: note: passing argument to parameter 'string' here
 1689 | long mail_parse_date (MESSAGECACHE *elt,unsigned char *string);
      |                                                        ^
nntp.c:1049:26: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1049 |       if (ov->message_id = strchr (ov->date,'\t')) {
      |           ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
nntp.c:1049:26: note: place parentheses around the assignment to silence this warning
 1049 |       if (ov->message_id = strchr (ov->date,'\t')) {
      |                          ^                       
      |           (                                      )
nntp.c:1049:26: note: use '==' to turn this assignment into an equality comparison
 1049 |       if (ov->message_id = strchr (ov->date,'\t')) {
      |                          ^
      |                          ==
nntp.c:1053:21: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1053 |         if (ov->references = strchr (ov->message_id,'\t')) {
      |             ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nntp.c:1053:21: note: place parentheses around the assignment to silence this warning
 1053 |         if (ov->references = strchr (ov->message_id,'\t')) {
      |                            ^                             
      |             (                                            )
nntp.c:1053:21: note: use '==' to turn this assignment into an equality comparison
 1053 |         if (ov->references = strchr (ov->message_id,'\t')) {
      |                            ^
      |                            ==
nntp.c:1057:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1057 |           if (t = strchr (ov->references,'\t')) {
      |               ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nntp.c:1057:10: note: place parentheses around the assignment to silence this warning
 1057 |           if (t = strchr (ov->references,'\t')) {
      |                 ^                             
      |               (                               )
nntp.c:1057:10: note: use '==' to turn this assignment into an equality comparison
 1057 |           if (t = strchr (ov->references,'\t')) {
      |                 ^
      |                 ==
nntp.c:1062:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1062 |             if (t = strchr (t,'\t')) {
      |                 ~~^~~~~~~~~~~~~~~~~
nntp.c:1062:12: note: place parentheses around the assignment to silence this warning
 1062 |             if (t = strchr (t,'\t')) {
      |                   ^                
      |                 (                  )
nntp.c:1062:12: note: use '==' to turn this assignment into an equality comparison
 1062 |             if (t = strchr (t,'\t')) {
      |                   ^
      |                   ==
nntp.c:1066:30: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1066 |               if (ov->optional.xref = strchr (t,'\t'))
      |                   ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
nntp.c:1066:30: note: place parentheses around the assignment to silence this warning
 1066 |               if (ov->optional.xref = strchr (t,'\t'))
      |                                     ^                
      |                   (                                  )
nntp.c:1066:30: note: use '==' to turn this assignment into an equality comparison
 1066 |               if (ov->optional.xref = strchr (t,'\t'))
      |                                     ^
      |                                     ==
nntp.c:1099:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1099 |       if (f = netmsg_slurp (LOCAL->nntpstream->netstream,size,NIL)) {
      |           ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nntp.c:1099:13: note: place parentheses around the assignment to silence this warning
 1099 |       if (f = netmsg_slurp (LOCAL->nntpstream->netstream,size,NIL)) {
      |             ^                                                     
      |           (                                                       )
nntp.c:1099:13: note: use '==' to turn this assignment into an equality comparison
 1099 |       if (f = netmsg_slurp (LOCAL->nntpstream->netstream,size,NIL)) {
      |             ^
      |             ==
nntp.c:1151:22: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1151 |       if (LOCAL->txt = netmsg_slurp (LOCAL->nntpstream->netstream,
      |           ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                                      &LOCAL->txtsize,NIL)) break;
      |                                      ~~~~~~~~~~~~~~~~~~~~
nntp.c:1151:22: note: place parentheses around the assignment to silence this warning
 1151 |       if (LOCAL->txt = netmsg_slurp (LOCAL->nntpstream->netstream,
      |                      ^
      |           (
 1152 |                                      &LOCAL->txtsize,NIL)) break;
      |                                                          
      |                                                          )
nntp.c:1151:22: note: use '==' to turn this assignment into an equality comparison
 1151 |       if (LOCAL->txt = netmsg_slurp (LOCAL->nntpstream->netstream,
      |                      ^
      |                      ==
nntp.c:1216:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1216 |   if (msg = utf8_badcharset (charset)) {
      |       ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
nntp.c:1216:11: note: place parentheses around the assignment to silence this warning
 1216 |   if (msg = utf8_badcharset (charset)) {
      |           ^                          
      |       (                              )
nntp.c:1216:11: note: use '==' to turn this assignment into an equality comparison
 1216 |   if (msg = utf8_badcharset (charset)) {
      |           ^
      |           ==
nntp.c:1261:39: warning: call to undeclared function 'time'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 1261 |   unsigned long now = (unsigned long) time (0);
      |                                       ^
nntp.c:1269:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1269 |     if (set = pgm->msgno) {     /* must be inside this sequence */
      |         ~~~~^~~~~~~~~~~~
nntp.c:1269:13: note: place parentheses around the assignment to silence this warning
 1269 |     if (set = pgm->msgno) {     /* must be inside this sequence */
      |             ^           
      |         (               )
nntp.c:1269:13: note: use '==' to turn this assignment into an equality comparison
 1269 |     if (set = pgm->msgno) {     /* must be inside this sequence */
      |             ^
      |             ==
nntp.c:1277:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1277 |     if (set = pgm->uid) {       /* must be inside this sequence */
      |         ~~~~^~~~~~~~~~
nntp.c:1277:13: note: place parentheses around the assignment to silence this warning
 1277 |     if (set = pgm->uid) {       /* must be inside this sequence */
      |             ^         
      |         (             )
nntp.c:1277:13: note: use '==' to turn this assignment into an equality comparison
 1277 |     if (set = pgm->uid) {       /* must be inside this sequence */
      |             ^
      |             ==
nntp.c:1314:27: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1314 |         (!mail_parse_date (&delt,ov->date) ||
      |                                  ^~~~~~~~
./mail.h:1689:56: note: passing argument to parameter 'string' here
 1689 | long mail_parse_date (MESSAGECACHE *elt,unsigned char *string);
      |                                                        ^
nntp.c:1513:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1513 |       for (t = v = s; c = *v++;) if ((c != '\012') && (c != '\015')) *t++ = c;
      |                       ~~^~~~~~
nntp.c:1513:25: note: place parentheses around the assignment to silence this warning
 1513 |       for (t = v = s; c = *v++;) if ((c != '\012') && (c != '\015')) *t++ = c;
      |                         ^     
      |                       (       )
nntp.c:1513:25: note: use '==' to turn this assignment into an equality comparison
 1513 |       for (t = v = s; c = *v++;) if ((c != '\012') && (c != '\015')) *t++ = c;
      |                         ^
      |                         ==
nntp.c:1522:8: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1522 |         if (t = strchr (v,'\t')) {
      |             ~~^~~~~~~~~~~~~~~~~
nntp.c:1522:8: note: place parentheses around the assignment to silence this warning
 1522 |         if (t = strchr (v,'\t')) {
      |               ^                
      |             (                  )
nntp.c:1522:8: note: use '==' to turn this assignment into an equality comparison
 1522 |         if (t = strchr (v,'\t')) {
      |               ^
      |               ==
nntp.c:1524:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1524 |           if (adr = rfc822_parse_address (&adr,adr,&v,BADHOST,0)) {
      |               ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nntp.c:1524:12: note: place parentheses around the assignment to silence this warning
 1524 |           if (adr = rfc822_parse_address (&adr,adr,&v,BADHOST,0)) {
      |                   ^                                             
      |               (                                                 )
nntp.c:1524:12: note: use '==' to turn this assignment into an equality comparison
 1524 |           if (adr = rfc822_parse_address (&adr,adr,&v,BADHOST,0)) {
      |                   ^
      |                   ==
nntp.c:1529:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1529 |           if (v = strchr (t,'\t')) {
      |               ~~^~~~~~~~~~~~~~~~~
nntp.c:1529:10: note: place parentheses around the assignment to silence this warning
 1529 |           if (v = strchr (t,'\t')) {
      |                 ^                
      |               (                  )
nntp.c:1529:10: note: use '==' to turn this assignment into an equality comparison
 1529 |           if (v = strchr (t,'\t')) {
      |                 ^
      |                 ==
nntp.c:1531:33: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1531 |             if (mail_parse_date (&telt,t)) r->date = mail_longdate (&telt);
      |                                        ^
./mail.h:1689:56: note: passing argument to parameter 'string' here
 1689 | long mail_parse_date (MESSAGECACHE *elt,unsigned char *string);
      |                                                        ^
nntp.c:1679:21: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1679 |       if (netstream =           /* try to open ordinary connection */
      |           ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |           net_open (&mb,dv,port,
      |           ~~~~~~~~~~~~~~~~~~~~~~
 1681 |                     (NETDRIVER *) mail_parameters (NIL,GET_SSLDRIVER,NIL),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                     "*nntps",nntp_sslport ? nntp_sslport : NNTPSSLPORT)) {
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nntp.c:1679:21: note: place parentheses around the assignment to silence this warning
 1679 |       if (netstream =           /* try to open ordinary connection */
      |                     ^
      |           (
 1680 |           net_open (&mb,dv,port,
 1681 |                     (NETDRIVER *) mail_parameters (NIL,GET_SSLDRIVER,NIL),
 1682 |                     "*nntps",nntp_sslport ? nntp_sslport : NNTPSSLPORT)) {
      |                                                                        
      |                                                                        )
nntp.c:1679:21: note: use '==' to turn this assignment into an equality comparison
 1679 |       if (netstream =           /* try to open ordinary connection */
      |                     ^
      |                     ==
nntp.c:1720:35: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1720 |     if (stream->netstream->stream =
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1721 |         (*stls) (stream->netstream->stream,mb.host,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                  (mb.tlssslv23 ? NIL : NET_TLSCLIENT) |
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                  (mb.novalidate ? NET_NOVALIDATECERT:NIL)))
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nntp.c:1720:35: note: place parentheses around the assignment to silence this warning
 1720 |     if (stream->netstream->stream =
      |                                   ^
      |         (
 1721 |         (*stls) (stream->netstream->stream,mb.host,
 1722 |                  (mb.tlssslv23 ? NIL : NET_TLSCLIENT) |
 1723 |                  (mb.novalidate ? NET_NOVALIDATECERT:NIL)))
      |                                                           
      |                                                           )
nntp.c:1720:35: note: use '==' to turn this assignment into an equality comparison
 1720 |     if (stream->netstream->stream =
      |                                   ^
      |                                   ==
nntp.c:1817:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1817 |     if (args = strchr (t,' ')) *args++ = '\0';
      |         ~~~~~^~~~~~~~~~~~~~~~
nntp.c:1817:14: note: place parentheses around the assignment to silence this warning
 1817 |     if (args = strchr (t,' ')) *args++ = '\0';
      |              ^               
      |         (                    )
nntp.c:1817:14: note: use '==' to turn this assignment into an equality comparison
 1817 |     if (args = strchr (t,' ')) *args++ = '\0';
      |              ^
      |              ==
nntp.c:1818:27: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1818 |     if (!compare_cstring (t,"LISTGROUP")) NNTP.ext.listgroup = T;
      |                           ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
nntp.c:1818:29: warning: passing 'char[10]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1818 |     if (!compare_cstring (t,"LISTGROUP")) NNTP.ext.listgroup = T;
      |                             ^~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
nntp.c:1819:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1819 |     else if (!compare_cstring (t,"OVER")) NNTP.ext.over = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
nntp.c:1819:34: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1819 |     else if (!compare_cstring (t,"OVER")) NNTP.ext.over = T;
      |                                  ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
nntp.c:1820:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1820 |     else if (!compare_cstring (t,"HDR")) NNTP.ext.hdr = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
nntp.c:1820:34: warning: passing 'char[4]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1820 |     else if (!compare_cstring (t,"HDR")) NNTP.ext.hdr = T;
      |                                  ^~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
nntp.c:1821:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1821 |     else if (!compare_cstring (t,"PAT")) NNTP.ext.pat = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
nntp.c:1821:34: warning: passing 'char[4]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1821 |     else if (!compare_cstring (t,"PAT")) NNTP.ext.pat = T;
      |                                  ^~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
nntp.c:1822:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1822 |     else if (!compare_cstring (t,"STARTTLS")) NNTP.ext.starttls = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
nntp.c:1822:34: warning: passing 'char[9]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1822 |     else if (!compare_cstring (t,"STARTTLS")) NNTP.ext.starttls = T;
      |                                  ^~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
nntp.c:1823:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1823 |     else if (!compare_cstring (t,"MULTIDOMAIN")) NNTP.ext.multidomain = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
nntp.c:1823:34: warning: passing 'char[12]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1823 |     else if (!compare_cstring (t,"MULTIDOMAIN")) NNTP.ext.multidomain = T;
      |                                  ^~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
nntp.c:1825:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1825 |     else if (!compare_cstring (t,"AUTHINFO") && args) {
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
nntp.c:1825:34: warning: passing 'char[9]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1825 |     else if (!compare_cstring (t,"AUTHINFO") && args) {
      |                                  ^~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
nntp.c:1828:24: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1828 |         if (!compare_cstring (args,"USER")) NNTP.ext.authuser = T;
      |                               ^~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
nntp.c:1828:29: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1828 |         if (!compare_cstring (args,"USER")) NNTP.ext.authuser = T;
      |                                    ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
nntp.c:1916:19: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1916 |   if (s = strstr (env->date," (")) *s = NIL;
      |                   ^~~~~~~~~
/usr/include/string.h:125:26: note: passing argument to parameter here
  125 | char    *strstr(const char *, const char *) __pure;
      |                             ^
nntp.c:1916:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1916 |   if (s = strstr (env->date," (")) *s = NIL;
      |       ~~^~~~~~~~~~~~~~~~~~~~~~~~~
nntp.c:1916:9: note: place parentheses around the assignment to silence this warning
 1916 |   if (s = strstr (env->date," (")) *s = NIL;
      |         ^                        
      |       (                          )
nntp.c:1916:9: note: use '==' to turn this assignment into an equality comparison
 1916 |   if (s = strstr (env->date," (")) *s = NIL;
      |         ^
      |         ==
nntp.c:2214:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2214 |   while (t = strstr (s,"\015\012.")) {
      |          ~~^~~~~~~~~~~~~~~~~~~~~~~~
nntp.c:2214:12: note: place parentheses around the assignment to silence this warning
 2214 |   while (t = strstr (s,"\015\012.")) {
      |            ^                       
      |          (                         )
nntp.c:2214:12: note: use '==' to turn this assignment into an equality comparison
 2214 |   while (t = strstr (s,"\015\012.")) {
      |            ^
      |            ==
64 warnings generated.
cc -c `cat CFLAGS` smtp.c
smtp.c:166:34: warning: passing 'char[21]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  166 |       else if (!compare_cstring (mb.service,"submit")) {
      |                                  ^~~~~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smtp.c:166:45: warning: passing 'char[7]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  166 |       else if (!compare_cstring (mb.service,"submit")) {
      |                                             ^~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smtp.c:172:21: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  172 |       if (netstream =           /* try to open ordinary connection */
      |           ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  173 |           net_open (&mb,dv,port,
      |           ~~~~~~~~~~~~~~~~~~~~~~
  174 |                     (NETDRIVER *) mail_parameters (NIL,GET_SSLDRIVER,NIL),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  175 |                     "*smtps",smtp_sslport ? smtp_sslport : SMTPSSLPORT)) {
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
smtp.c:172:21: note: place parentheses around the assignment to silence this warning
  172 |       if (netstream =           /* try to open ordinary connection */
      |                     ^
      |           (
  173 |           net_open (&mb,dv,port,
  174 |                     (NETDRIVER *) mail_parameters (NIL,GET_SSLDRIVER,NIL),
  175 |                     "*smtps",smtp_sslport ? smtp_sslport : SMTPSSLPORT)) {
      |                                                                        
      |                                                                        )
smtp.c:172:21: note: use '==' to turn this assignment into an equality comparison
  172 |       if (netstream =           /* try to open ordinary connection */
      |                     ^
      |                     ==
smtp.c:184:23: warning: passing 'char[10]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  184 |         s = compare_cstring ("localhost",mb.host) ?
      |                              ^~~~~~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smtp.c:184:35: warning: passing 'char[256]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  184 |         s = compare_cstring ("localhost",mb.host) ?
      |                                          ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smtp.c:690:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  690 |       if (!compare_cstring (s,"SIZE")) {
      |                             ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smtp.c:690:31: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  690 |       if (!compare_cstring (s,"SIZE")) {
      |                               ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smtp.c:694:34: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  694 |       else if (!compare_cstring (s,"DELIVERBY")) {
      |                                  ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smtp.c:694:36: warning: passing 'char[10]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  694 |       else if (!compare_cstring (s,"DELIVERBY")) {
      |                                    ^~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smtp.c:698:34: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  698 |       else if (!compare_cstring (s,"ATRN")) {
      |                                  ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smtp.c:698:36: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  698 |       else if (!compare_cstring (s,"ATRN")) {
      |                                    ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smtp.c:702:34: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  702 |       else if (!compare_cstring (s,"AUTH"))
      |                                  ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smtp.c:702:36: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  702 |       else if (!compare_cstring (s,"AUTH"))
      |                                    ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smtp.c:708:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  708 |     else if (!compare_cstring (s,"SIZE")) ESMTP.size.ok = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smtp.c:708:34: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  708 |     else if (!compare_cstring (s,"SIZE")) ESMTP.size.ok = T;
      |                                  ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smtp.c:709:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  709 |     else if (!compare_cstring (s,"8BITMIME")) ESMTP.eightbit.ok = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smtp.c:709:34: warning: passing 'char[9]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  709 |     else if (!compare_cstring (s,"8BITMIME")) ESMTP.eightbit.ok = T;
      |                                  ^~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smtp.c:710:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  710 |     else if (!compare_cstring (s,"DSN")) ESMTP.dsn.ok = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smtp.c:710:34: warning: passing 'char[4]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  710 |     else if (!compare_cstring (s,"DSN")) ESMTP.dsn.ok = T;
      |                                  ^~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smtp.c:711:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  711 |     else if (!compare_cstring (s,"ATRN")) ESMTP.atrn.ok = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smtp.c:711:34: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  711 |     else if (!compare_cstring (s,"ATRN")) ESMTP.atrn.ok = T;
      |                                  ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smtp.c:712:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  712 |     else if (!compare_cstring (s,"SEND")) ESMTP.service.send = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smtp.c:712:34: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  712 |     else if (!compare_cstring (s,"SEND")) ESMTP.service.send = T;
      |                                  ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smtp.c:713:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  713 |     else if (!compare_cstring (s,"SOML")) ESMTP.service.soml = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smtp.c:713:34: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  713 |     else if (!compare_cstring (s,"SOML")) ESMTP.service.soml = T;
      |                                  ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smtp.c:714:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  714 |     else if (!compare_cstring (s,"SAML")) ESMTP.service.saml = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smtp.c:714:34: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  714 |     else if (!compare_cstring (s,"SAML")) ESMTP.service.saml = T;
      |                                  ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smtp.c:715:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  715 |     else if (!compare_cstring (s,"EXPN")) ESMTP.service.expn = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smtp.c:715:34: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  715 |     else if (!compare_cstring (s,"EXPN")) ESMTP.service.expn = T;
      |                                  ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smtp.c:716:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  716 |     else if (!compare_cstring (s,"HELP")) ESMTP.service.help = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smtp.c:716:34: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  716 |     else if (!compare_cstring (s,"HELP")) ESMTP.service.help = T;
      |                                  ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smtp.c:717:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  717 |     else if (!compare_cstring (s,"TURN")) ESMTP.service.turn = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smtp.c:717:34: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  717 |     else if (!compare_cstring (s,"TURN")) ESMTP.service.turn = T;
      |                                  ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smtp.c:718:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  718 |     else if (!compare_cstring (s,"ETRN")) ESMTP.service.etrn = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smtp.c:718:34: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  718 |     else if (!compare_cstring (s,"ETRN")) ESMTP.service.etrn = T;
      |                                  ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smtp.c:719:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  719 |     else if (!compare_cstring (s,"STARTTLS")) ESMTP.service.starttls = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smtp.c:719:34: warning: passing 'char[9]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  719 |     else if (!compare_cstring (s,"STARTTLS")) ESMTP.service.starttls = T;
      |                                  ^~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smtp.c:720:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  720 |     else if (!compare_cstring (s,"RELAY")) ESMTP.service.relay = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smtp.c:720:34: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  720 |     else if (!compare_cstring (s,"RELAY")) ESMTP.service.relay = T;
      |                                  ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smtp.c:721:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  721 |     else if (!compare_cstring (s,"PIPELINING")) ESMTP.service.pipe = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smtp.c:721:34: warning: passing 'char[11]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  721 |     else if (!compare_cstring (s,"PIPELINING")) ESMTP.service.pipe = T;
      |                                  ^~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smtp.c:722:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  722 |     else if (!compare_cstring (s,"ENHANCEDSTATUSCODES"))
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smtp.c:722:34: warning: passing 'char[20]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  722 |     else if (!compare_cstring (s,"ENHANCEDSTATUSCODES"))
      |                                  ^~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smtp.c:724:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  724 |     else if (!compare_cstring (s,"BINARYMIME")) ESMTP.service.bmime = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smtp.c:724:34: warning: passing 'char[11]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  724 |     else if (!compare_cstring (s,"BINARYMIME")) ESMTP.service.bmime = T;
      |                                  ^~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smtp.c:725:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  725 |     else if (!compare_cstring (s,"CHUNKING")) ESMTP.service.chunk = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
smtp.c:725:34: warning: passing 'char[9]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  725 |     else if (!compare_cstring (s,"CHUNKING")) ESMTP.service.chunk = T;
      |                                  ^~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
smtp.c:783:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  783 |   while (t = strstr (s,"\015\012.")) {
      |          ~~^~~~~~~~~~~~~~~~~~~~~~~~
smtp.c:783:12: note: place parentheses around the assignment to silence this warning
  783 |   while (t = strstr (s,"\015\012.")) {
      |            ^                       
      |          (                         )
smtp.c:783:12: note: use '==' to turn this assignment into an equality comparison
  783 |   while (t = strstr (s,"\015\012.")) {
      |            ^
      |            ==
48 warnings generated.
cc -c `cat CFLAGS` imap4r1.c
imap4r1.c:505:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  505 |   if (s = sm_read (&sdb)) do if (imap_valid (s) && pmatch (s,mbx))
      |       ~~^~~~~~~~~~~~~~~~
imap4r1.c:505:9: note: place parentheses around the assignment to silence this warning
  505 |   if (s = sm_read (&sdb)) do if (imap_valid (s) && pmatch (s,mbx))
      |         ^               
      |       (                 )
imap4r1.c:505:9: note: use '==' to turn this assignment into an equality comparison
  505 |   if (s = sm_read (&sdb)) do if (imap_valid (s) && pmatch (s,mbx))
      |         ^
      |         ==
imap4r1.c:505:60: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  505 |   if (s = sm_read (&sdb)) do if (imap_valid (s) && pmatch (s,mbx))
      |                                                            ^
./misc.h:82:16: note: expanded from macro 'pmatch'
   82 |   pmatch_full (s,pat,NIL)
      |                ^
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
imap4r1.c:505:62: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  505 |   if (s = sm_read (&sdb)) do if (imap_valid (s) && pmatch (s,mbx))
      |                                                              ^~~
./misc.h:82:18: note: expanded from macro 'pmatch'
   82 |   pmatch_full (s,pat,NIL)
      |                  ^~~
./env.h:29:51: note: passing argument to parameter 'pat' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                                   ^
imap4r1.c:507:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  507 |   while (s = sm_read (&sdb));   /* until no more subscriptions */
      |          ~~^~~~~~~~~~~~~~~~
imap4r1.c:507:12: note: place parentheses around the assignment to silence this warning
  507 |   while (s = sm_read (&sdb));   /* until no more subscriptions */
      |            ^               
      |          (                 )
imap4r1.c:507:12: note: use '==' to turn this assignment into an equality comparison
  507 |   while (s = sm_read (&sdb));   /* until no more subscriptions */
      |            ^
      |            ==
imap4r1.c:564:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  564 |       if (!compare_cstring (cmd,"LIST")) cmd = "RLIST";
      |                             ^~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:564:33: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  564 |       if (!compare_cstring (cmd,"LIST")) cmd = "RLIST";
      |                                 ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:566:34: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  566 |       else if (!compare_cstring (cmd,"LSUB")) cmd = "RLSUB";
      |                                  ^~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:566:38: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  566 |       else if (!compare_cstring (cmd,"LSUB")) cmd = "RLSUB";
      |                                      ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:578:12: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  578 |           strcmp (imap_send (stream,"FIND ALL.MAILBOXES",args)->key,"BAD")) &&
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:579:11: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  579 |         !strcmp (imap_send (stream,"FIND MAILBOXES",args)->key,"BAD"))
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:702:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  702 |     mm_log (reply->text,ret ? NIL : ERROR);
      |             ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:849:20: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  849 |     else if (reply = imap_rimap (stream,"*imap",&mb,usr,tmp));
      |              ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:849:20: note: place parentheses around the assignment to silence this warning
  849 |     else if (reply = imap_rimap (stream,"*imap",&mb,usr,tmp));
      |                    ^                                        
      |              (                                              )
imap4r1.c:849:20: note: use '==' to turn this assignment into an equality comparison
  849 |     else if (reply = imap_rimap (stream,"*imap",&mb,usr,tmp));
      |                    ^
      |                    ==
imap4r1.c:870:27: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  870 |     if (!reply || strcmp (reply->tag,"*") ||
      |                           ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:871:11: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  871 |         (strcmp (reply->key,"OK") && strcmp (reply->key,"PREAUTH"))) {
      |                  ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:871:39: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  871 |         (strcmp (reply->key,"OK") && strcmp (reply->key,"PREAUTH"))) {
      |                                              ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:872:26: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  872 |       if (reply) mm_log (reply->text,ERROR);
      |                          ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:877:37: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  877 |     if (LOCAL->netstream && strcmp (reply->key,"PREAUTH")) {
      |                                     ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:985:36: warning: passing 'char[256]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  985 |         stream->inbox = !compare_cstring (mb.mailbox,"INBOX");
      |                                           ^~~~~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:985:47: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  985 |         stream->inbox = !compare_cstring (mb.mailbox,"INBOX");
      |                                                      ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:995:10: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  995 |         mm_log (reply->text,ERROR);
      |                 ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:1041:13: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1041 |           !strcmp ((reply = imap_parse_reply (stream,cpystr (tmp)))->tag,"*")){
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:1045:15: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1045 |         if (!strcmp (reply->key,"OK") || !strcmp (reply->key,"PREAUTH")) {
      |                      ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:1045:44: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1045 |         if (!strcmp (reply->key,"OK") || !strcmp (reply->key,"PREAUTH")) {
      |                                                   ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:1081:37: warning: passing 'char[16]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1081 |     if (compare_cstring (reply->tag,tag)) {
      |                                     ^~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:1083:70: warning: passing 'char[16]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1083 |       while (compare_cstring ((reply = imap_reply (stream,tag))->tag,tag))
      |                                                                      ^~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:1098:11: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1098 |   mm_log (reply->text,ERROR);
      |           ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:1148:39: warning: passing 'char[16]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1148 |         else if (compare_cstring (reply->tag,tag))
      |                                              ^~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:1149:67: warning: passing 'char[16]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1149 |           while (compare_cstring ((reply = imap_reply (stream,tag))->tag,tag))
      |                                                                          ^~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:1158:19: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1158 |         lsterr = cpystr (reply->text);
      |                          ^~~~~~~~~~~
./misc.h:88:27: note: passing argument to parameter 'string' here
   88 | char *cpystr (const char *string);
      |                           ^
imap4r1.c:1210:12: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1210 |           mm_log (reply->text,WARN);
      |                   ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:1240:12: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1240 |          !strcmp (reply->tag,"*")) imap_parse_unsolicited (stream,reply);
      |                   ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:1245:17: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1245 |                              strlen (reply->text),len))) {
      |                                      ^~~~~~~~~~~
/usr/include/string.h:100:28: note: passing argument to parameter here
  100 | size_t   strlen(const char *) __pure;
      |                             ^
imap4r1.c:1302:10: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1302 |         mm_log (reply->text,WARN);
      |                 ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:1317:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1317 |     if (thr = LOCAL->cap.threader) while (t = thr) {
      |         ~~~~^~~~~~~~~~~~~~~~~~~~~
imap4r1.c:1317:13: note: place parentheses around the assignment to silence this warning
 1317 |     if (thr = LOCAL->cap.threader) while (t = thr) {
      |             ^                    
      |         (                        )
imap4r1.c:1317:13: note: use '==' to turn this assignment into an equality comparison
 1317 |     if (thr = LOCAL->cap.threader) while (t = thr) {
      |             ^
      |             ==
imap4r1.c:1317:45: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1317 |     if (thr = LOCAL->cap.threader) while (t = thr) {
      |                                           ~~^~~~~
imap4r1.c:1317:45: note: place parentheses around the assignment to silence this warning
 1317 |     if (thr = LOCAL->cap.threader) while (t = thr) {
      |                                             ^    
      |                                           (      )
imap4r1.c:1317:45: note: use '==' to turn this assignment into an equality comparison
 1317 |     if (thr = LOCAL->cap.threader) while (t = thr) {
      |                                             ^
      |                                             ==
imap4r1.c:1342:40: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1342 |   if (!imap_OK (stream,reply)) mm_log (reply->text,ERROR);
      |                                        ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:1363:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1363 |     mm_log (reply->text,ERROR);
      |             ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:1416:15: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1416 |       ov.date = env->date;
      |               ^ ~~~~~~~~~
imap4r1.c:1464:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1464 |       mm_log (reply->text,ERROR);
      |               ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:1499:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1499 |           if (j = (set->last == 0xffffffff) ? stream->nmsgs :
      |               ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1500 |               min (set->last,stream->nmsgs)) {
      |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:1499:10: note: place parentheses around the assignment to silence this warning
 1499 |           if (j = (set->last == 0xffffffff) ? stream->nmsgs :
      |                 ^
      |               (
 1500 |               min (set->last,stream->nmsgs)) {
      |                                            
      |                                            )
imap4r1.c:1499:10: note: use '==' to turn this assignment into an equality comparison
 1499 |           if (j = (set->last == 0xffffffff) ? stream->nmsgs :
      |                 ^
      |                 ==
imap4r1.c:1522:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1522 |                 if (k = (k > i) ? k - i : 0)
      |                     ~~^~~~~~~~~~~~~~~~~~~~~
imap4r1.c:1522:9: note: place parentheses around the assignment to silence this warning
 1522 |                 if (k = (k > i) ? k - i : 0)
      |                       ^                    
      |                     (                      )
imap4r1.c:1522:9: note: use '==' to turn this assignment into an equality comparison
 1522 |                 if (k = (k > i) ? k - i : 0)
      |                       ^
      |                       ==
imap4r1.c:1591:17: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1591 |           else mm_log (reply->text,ERROR);
      |                        ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:1593:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1593 |         else mm_log (reply->text,ERROR);
      |                      ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:1700:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1700 |     else if (t = strstr (section,".HEADER")) {
      |              ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:1700:16: note: place parentheses around the assignment to silence this warning
 1700 |     else if (t = strstr (section,".HEADER")) {
      |                ^                           
      |              (                             )
imap4r1.c:1700:16: note: use '==' to turn this assignment into an equality comparison
 1700 |     else if (t = strstr (section,".HEADER")) {
      |                ^
      |                ==
imap4r1.c:1823:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1823 |       mm_log (reply->text,WARN);
      |               ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:1833:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1833 |       mm_log (reply->text,ERROR);
      |               ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:1842:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1842 |       mm_log (reply->text,WARN);
      |               ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:1846:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1846 |     mm_log (reply->text,ERROR);
      |             ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:1884:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1884 |     if (k = imap_uidlookahead) {/* build UID list */
      |         ~~^~~~~~~~~~~~~~~~~~~
imap4r1.c:1884:11: note: place parentheses around the assignment to silence this warning
 1884 |     if (k = imap_uidlookahead) {/* build UID list */
      |           ^                  
      |         (                    )
imap4r1.c:1884:11: note: use '==' to turn this assignment into an equality comparison
 1884 |     if (k = imap_uidlookahead) {/* build UID list */
      |           ^
      |           ==
imap4r1.c:1899:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1899 |       mm_log (reply->text,ERROR);
      |               ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:1935:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1935 |       mm_log (reply->text,ERROR);
      |               ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:1976:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1976 |     mm_log (reply->text,ERROR);
      |             ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:2044:11: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2044 |         !strcmp (reply->key,"BAD")) {
      |                  ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:2048:50: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2048 |       for (set = ss; set; set = set->next) if (i = set->first) {
      |                                                ~~^~~~~~~~~~~~
imap4r1.c:2048:50: note: place parentheses around the assignment to silence this warning
 2048 |       for (set = ss; set; set = set->next) if (i = set->first) {
      |                                                  ^           
      |                                                (             )
imap4r1.c:2048:50: note: use '==' to turn this assignment into an equality comparison
 2048 |       for (set = ss; set; set = set->next) if (i = set->first) {
      |                                                  ^
      |                                                  ==
imap4r1.c:2063:18: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2063 |     if (!strcmp (reply->key,"BAD")) {
      |                  ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:2069:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2069 |       mm_log (reply->text,ERROR);
      |               ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:2105:10: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2105 |         mm_log (reply->text,ERROR);
      |                 ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:2168:41: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2168 |       if (!(flags & SE_UID) && !strcmp (reply->key,"BAD")) {
      |                                         ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:2175:18: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2175 |     if (!strcmp (reply->key,"BAD"))
      |                  ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:2184:18: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2184 |     else mm_log (reply->text,ERROR);
      |                  ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:2271:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2271 |       if (!compare_cstring (thr->name,type)) 
      |                             ^~~~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:2271:39: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2271 |       if (!compare_cstring (thr->name,type)) 
      |                                       ^~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:2331:39: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2331 |     if (!(flags & SE_UID) && !strcmp (reply->key,"BAD")) {
      |                                       ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:2338:16: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2338 |   if (!strcmp (reply->key,"BAD"))
      |                ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:2346:16: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2346 |   else mm_log (reply->text,ERROR);
      |                ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:2370:11: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2370 |   mm_log (reply->text,imap_OK (stream,reply) ? (long) NIL : ERROR);
      |           ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:2395:36: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2395 |     else if (mail_sequence (stream,sequence)) {
      |                                    ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
imap4r1.c:2423:22: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2423 |   if (reply) mm_log (reply->text,ret ? (long) NIL : ERROR);
      |                      ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:2461:65: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2461 |   else if (ir && pc && LOCAL->referral && mail_sequence (stream,sequence) &&
      |                                                                 ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
imap4r1.c:2465:16: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2465 |   else mm_log (reply->text,ERROR);
      |                ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:2518:10: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2518 |         mm_log (reply->text,ERROR);
      |                 ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:2581:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2581 |       mm_log (reply->text,ERROR);
      |               ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:2611:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2611 |     if (!mail_parse_date (&elt,date)) {
      |                                ^~~~
./mail.h:1689:56: note: passing argument to parameter 'string' here
 1689 | long mail_parse_date (MESSAGECACHE *elt,unsigned char *string);
      |                                                        ^
imap4r1.c:2615:44: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2615 |       LOCAL->reply.tag = LOCAL->reply.line = cpystr ("*");
      |                                            ^ ~~~~~~~~~~~~
imap4r1.c:2616:24: warning: assigning to 'unsigned char *' from 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2616 |       LOCAL->reply.key = "BAD";
      |                        ^ ~~~~~
imap4r1.c:2617:25: warning: assigning to 'unsigned char *' from 'char[19]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2617 |       LOCAL->reply.text = "Bad date in append";
      |                         ^ ~~~~~~~~~~~~~~~~~~~~
imap4r1.c:2650:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2650 |       if (elt = (MESSAGECACHE *) (*mc) (stream,i,CH_ELT))
      |           ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:2650:15: note: place parentheses around the assignment to silence this warning
 2650 |       if (elt = (MESSAGECACHE *) (*mc) (stream,i,CH_ELT))
      |               ^                                         
      |           (                                             )
imap4r1.c:2650:15: note: use '==' to turn this assignment into an equality comparison
 2650 |       if (elt = (MESSAGECACHE *) (*mc) (stream,i,CH_ELT))
      |               ^
      |               ==
imap4r1.c:2705:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2705 |     if (thr = LOCAL->cap.threader) while (t = thr) {
      |         ~~~~^~~~~~~~~~~~~~~~~~~~~
imap4r1.c:2705:13: note: place parentheses around the assignment to silence this warning
 2705 |     if (thr = LOCAL->cap.threader) while (t = thr) {
      |             ^                    
      |         (                        )
imap4r1.c:2705:13: note: use '==' to turn this assignment into an equality comparison
 2705 |     if (thr = LOCAL->cap.threader) while (t = thr) {
      |             ^
      |             ==
imap4r1.c:2705:45: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2705 |     if (thr = LOCAL->cap.threader) while (t = thr) {
      |                                           ~~^~~~~
imap4r1.c:2705:45: note: place parentheses around the assignment to silence this warning
 2705 |     if (thr = LOCAL->cap.threader) while (t = thr) {
      |                                             ^    
      |                                           (      )
imap4r1.c:2705:45: note: use '==' to turn this assignment into an equality comparison
 2705 |     if (thr = LOCAL->cap.threader) while (t = thr) {
      |                                             ^
      |                                             ==
imap4r1.c:2813:18: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2813 |     else mm_log (reply->text,ERROR);
      |                  ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:2837:18: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2837 |     else mm_log (reply->text,ERROR);
      |                  ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:2859:18: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2859 |     else mm_log (reply->text,ERROR);
      |                  ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:2882:18: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2882 |     else mm_log (reply->text,ERROR);
      |                  ^~~~~~~~~~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
imap4r1.c:2919:42: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2919 |     (*sc) (stream,cmd,((compare_cstring (cmd,"FETCH") &&
      |                                          ^~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:2919:46: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2919 |     (*sc) (stream,cmd,((compare_cstring (cmd,"FETCH") &&
      |                                              ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:2920:21: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2920 |                         compare_cstring (cmd,"STORE") &&
      |                                          ^~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:2920:25: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2920 |                         compare_cstring (cmd,"STORE") &&
      |                                              ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:2921:21: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2921 |                         compare_cstring (cmd,"SEARCH")) ? 
      |                                          ^~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:2921:25: warning: passing 'char[7]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2921 |                         compare_cstring (cmd,"SEARCH")) ? 
      |                                              ^~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:2927:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2927 |   if (arglst = args) while (arg = *arglst++) {
      |       ~~~~~~~^~~~~~
imap4r1.c:2927:14: note: place parentheses around the assignment to silence this warning
 2927 |   if (arglst = args) while (arg = *arglst++) {
      |              ^     
      |       (            )
imap4r1.c:2927:14: note: use '==' to turn this assignment into an equality comparison
 2927 |   if (arglst = args) while (arg = *arglst++) {
      |              ^
      |              ==
imap4r1.c:2927:33: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2927 |   if (arglst = args) while (arg = *arglst++) {
      |                             ~~~~^~~~~~~~~~~
imap4r1.c:2927:33: note: place parentheses around the assignment to silence this warning
 2927 |   if (arglst = args) while (arg = *arglst++) {
      |                                 ^          
      |                             (              )
imap4r1.c:2927:33: note: use '==' to turn this assignment into an equality comparison
 2927 |   if (arglst = args) while (arg = *arglst++) {
      |                                 ^
      |                                 ==
imap4r1.c:2947:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2947 |       if (reply = imap_send_astring (stream,tag,&s,&st,NIL,CMDBASE+MAXCOMMAND))
      |           ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:2947:17: note: place parentheses around the assignment to silence this warning
 2947 |       if (reply = imap_send_astring (stream,tag,&s,&st,NIL,CMDBASE+MAXCOMMAND))
      |                 ^                                                             
      |           (                                                                   )
imap4r1.c:2947:17: note: use '==' to turn this assignment into an equality comparison
 2947 |       if (reply = imap_send_astring (stream,tag,&s,&st,NIL,CMDBASE+MAXCOMMAND))
      |                 ^
      |                 ==
imap4r1.c:2951:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2951 |       if (reply = imap_send_literal (stream,tag,&s,arg->text)) return reply;
      |           ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:2951:17: note: place parentheses around the assignment to silence this warning
 2951 |       if (reply = imap_send_literal (stream,tag,&s,arg->text)) return reply;
      |                 ^                                            
      |           (                                                  )
imap4r1.c:2951:17: note: use '==' to turn this assignment into an equality comparison
 2951 |       if (reply = imap_send_literal (stream,tag,&s,arg->text)) return reply;
      |                 ^
      |                 ==
imap4r1.c:2959:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2959 |         if (reply = imap_send_astring (stream,tag,&s,&list->text,NIL,
      |             ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2960 |                                        CMDBASE+MAXCOMMAND)) return reply;
      |                                        ~~~~~~~~~~~~~~~~~~~
imap4r1.c:2959:12: note: place parentheses around the assignment to silence this warning
 2959 |         if (reply = imap_send_astring (stream,tag,&s,&list->text,NIL,
      |                   ^
      |             (
 2960 |                                        CMDBASE+MAXCOMMAND)) return reply;
      |                                                           
      |                                                           )
imap4r1.c:2959:12: note: use '==' to turn this assignment into an equality comparison
 2959 |         if (reply = imap_send_astring (stream,tag,&s,&list->text,NIL,
      |                   ^
      |                   ==
imap4r1.c:2963:19: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2963 |       while (list = list->next);
      |              ~~~~~^~~~~~~~~~~~
imap4r1.c:2963:19: note: place parentheses around the assignment to silence this warning
 2963 |       while (list = list->next);
      |                   ^           
      |              (                )
imap4r1.c:2963:19: note: use '==' to turn this assignment into an equality comparison
 2963 |       while (list = list->next);
      |                   ^
      |                   ==
imap4r1.c:2967:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2967 |       if (reply = imap_send_spgm (stream,tag,CMDBASE,&s,arg->text,
      |           ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2968 |                                   CMDBASE+MAXCOMMAND))
      |                                   ~~~~~~~~~~~~~~~~~~~
imap4r1.c:2967:17: note: place parentheses around the assignment to silence this warning
 2967 |       if (reply = imap_send_spgm (stream,tag,CMDBASE,&s,arg->text,
      |                 ^
      |           (
 2968 |                                   CMDBASE+MAXCOMMAND))
      |                                                      
      |                                                      )
imap4r1.c:2967:17: note: use '==' to turn this assignment into an equality comparison
 2967 |       if (reply = imap_send_spgm (stream,tag,CMDBASE,&s,arg->text,
      |                 ^
      |                 ==
imap4r1.c:3053:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3053 |       if (reply = imap_send_astring (stream,tag,&s,&st,T,CMDBASE+MAXCOMMAND))
      |           ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3053:17: note: place parentheses around the assignment to silence this warning
 3053 |       if (reply = imap_send_astring (stream,tag,&s,&st,T,CMDBASE+MAXCOMMAND))
      |                 ^                                                           
      |           (                                                                 )
imap4r1.c:3053:17: note: use '==' to turn this assignment into an equality comparison
 3053 |       if (reply = imap_send_astring (stream,tag,&s,&st,T,CMDBASE+MAXCOMMAND))
      |                 ^
      |                 ==
imap4r1.c:3074:42: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3074 |         if (!map->date || mail_parse_date (&elt,map->date)) {
      |                                                 ^~~~~~~~~
./mail.h:1689:56: note: passing argument to parameter 'string' here
 1689 | long mail_parse_date (MESSAGECACHE *elt,unsigned char *string);
      |                                                        ^
imap4r1.c:3075:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3075 |           if (t = map->flags) { /* flags given? */
      |               ~~^~~~~~~~~~~~
imap4r1.c:3075:10: note: place parentheses around the assignment to silence this warning
 3075 |           if (t = map->flags) { /* flags given? */
      |                 ^           
      |               (             )
imap4r1.c:3075:10: note: use '==' to turn this assignment into an equality comparison
 3075 |           if (t = map->flags) { /* flags given? */
      |                 ^
      |                 ==
imap4r1.c:3087:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3087 |             if (reply = imap_send_astring (stream,tag,&s,&st,NIL,
      |                 ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3088 |                                            CMDBASE+MAXCOMMAND)) return reply;
      |                                            ~~~~~~~~~~~~~~~~~~~
imap4r1.c:3087:16: note: place parentheses around the assignment to silence this warning
 3087 |             if (reply = imap_send_astring (stream,tag,&s,&st,NIL,
      |                       ^
      |                 (
 3088 |                                            CMDBASE+MAXCOMMAND)) return reply;
      |                                                               
      |                                                               )
imap4r1.c:3087:16: note: use '==' to turn this assignment into an equality comparison
 3087 |             if (reply = imap_send_astring (stream,tag,&s,&st,NIL,
      |                       ^
      |                       ==
imap4r1.c:3091:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3091 |           if (reply = imap_send_literal (stream,tag,&s,map->message))
      |               ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3091:14: note: place parentheses around the assignment to silence this warning
 3091 |           if (reply = imap_send_literal (stream,tag,&s,map->message))
      |                     ^                                               
      |               (                                                     )
imap4r1.c:3091:14: note: use '==' to turn this assignment into an equality comparison
 3091 |           if (reply = imap_send_literal (stream,tag,&s,map->message))
      |                     ^
      |                     ==
imap4r1.c:3121:19: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3121 |       while (list = list->next);
      |              ~~~~~^~~~~~~~~~~~
imap4r1.c:3121:19: note: place parentheses around the assignment to silence this warning
 3121 |       while (list = list->next);
      |                   ^           
      |              (                )
imap4r1.c:3121:19: note: use '==' to turn this assignment into an equality comparison
 3121 |       while (list = list->next);
      |                   ^
      |                   ==
imap4r1.c:3200:15: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3200 |   if (strcmp (reply->tag,"+")) {/* prompt for more data? */
      |               ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:3355:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3355 |   if (hdr = pgm->header) do {
      |       ~~~~^~~~~~~~~~~~~
imap4r1.c:3355:11: note: place parentheses around the assignment to silence this warning
 3355 |   if (hdr = pgm->header) do {
      |           ^            
      |       (                )
imap4r1.c:3355:11: note: use '==' to turn this assignment into an equality comparison
 3355 |   if (hdr = pgm->header) do {
      |           ^
      |           ==
imap4r1.c:3357:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3357 |     if (reply = imap_send_astring (stream,tag,s,&hdr->line,NIL,limit))
      |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3357:15: note: place parentheses around the assignment to silence this warning
 3357 |     if (reply = imap_send_astring (stream,tag,s,&hdr->line,NIL,limit))
      |               ^                                                      
      |         (                                                            )
imap4r1.c:3357:15: note: use '==' to turn this assignment into an equality comparison
 3357 |     if (reply = imap_send_astring (stream,tag,s,&hdr->line,NIL,limit))
      |               ^
      |               ==
imap4r1.c:3360:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3360 |     if (reply = imap_send_astring (stream,tag,s,&hdr->text,NIL,limit))
      |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3360:15: note: place parentheses around the assignment to silence this warning
 3360 |     if (reply = imap_send_astring (stream,tag,s,&hdr->text,NIL,limit))
      |               ^                                                      
      |         (                                                            )
imap4r1.c:3360:15: note: use '==' to turn this assignment into an equality comparison
 3360 |     if (reply = imap_send_astring (stream,tag,s,&hdr->text,NIL,limit))
      |               ^
      |               ==
imap4r1.c:3362:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3362 |   } while (hdr = hdr->next);
      |            ~~~~^~~~~~~~~~~
imap4r1.c:3362:16: note: place parentheses around the assignment to silence this warning
 3362 |   } while (hdr = hdr->next);
      |                ^          
      |            (              )
imap4r1.c:3362:16: note: use '==' to turn this assignment into an equality comparison
 3362 |   } while (hdr = hdr->next);
      |                ^
      |                ==
imap4r1.c:3365:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3365 |     if (reply = imap_send_spgm (stream,tag,base,s,pgo->first,limit))
      |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3365:15: note: place parentheses around the assignment to silence this warning
 3365 |     if (reply = imap_send_spgm (stream,tag,base,s,pgo->first,limit))
      |               ^                                                    
      |         (                                                          )
imap4r1.c:3365:15: note: use '==' to turn this assignment into an equality comparison
 3365 |     if (reply = imap_send_spgm (stream,tag,base,s,pgo->first,limit))
      |               ^
      |               ==
imap4r1.c:3368:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3368 |     if (reply = imap_send_spgm (stream,tag,base,s,pgo->second,limit))
      |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3368:15: note: place parentheses around the assignment to silence this warning
 3368 |     if (reply = imap_send_spgm (stream,tag,base,s,pgo->second,limit))
      |               ^                                                     
      |         (                                                           )
imap4r1.c:3368:15: note: use '==' to turn this assignment into an equality comparison
 3368 |     if (reply = imap_send_spgm (stream,tag,base,s,pgo->second,limit))
      |               ^
      |               ==
imap4r1.c:3374:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3374 |     if (reply = imap_send_spgm (stream,tag,base,s,pgl->pgm,limit))
      |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3374:15: note: place parentheses around the assignment to silence this warning
 3374 |     if (reply = imap_send_spgm (stream,tag,base,s,pgl->pgm,limit))
      |               ^                                                  
      |         (                                                        )
imap4r1.c:3374:15: note: use '==' to turn this assignment into an equality comparison
 3374 |     if (reply = imap_send_spgm (stream,tag,base,s,pgl->pgm,limit))
      |               ^
      |               ==
imap4r1.c:3452:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3452 |     if (reply = imap_send_literal (stream,tag,s,&st)) return reply;
      |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3452:15: note: place parentheses around the assignment to silence this warning
 3452 |     if (reply = imap_send_literal (stream,tag,s,&st)) return reply;
      |               ^                                     
      |         (                                           )
imap4r1.c:3452:15: note: use '==' to turn this assignment into an equality comparison
 3452 |     if (reply = imap_send_literal (stream,tag,s,&st)) return reply;
      |               ^
      |               ==
imap4r1.c:3454:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3454 |     if (reply = imap_send_sset (stream,tag,NIL,s,set,prefix,limit))
      |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3454:15: note: place parentheses around the assignment to silence this warning
 3454 |     if (reply = imap_send_sset (stream,tag,NIL,s,set,prefix,limit))
      |               ^                                                   
      |         (                                                         )
imap4r1.c:3454:15: note: use '==' to turn this assignment into an equality comparison
 3454 |     if (reply = imap_send_sset (stream,tag,NIL,s,set,prefix,limit))
      |               ^
      |               ==
imap4r1.c:3555:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3555 |     if (reply = imap_parse_reply (stream,net_getline (LOCAL->netstream))) {
      |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3555:15: note: place parentheses around the assignment to silence this warning
 3555 |     if (reply = imap_parse_reply (stream,net_getline (LOCAL->netstream))) {
      |               ^                                                         
      |         (                                                               )
imap4r1.c:3555:15: note: use '==' to turn this assignment into an equality comparison
 3555 |     if (reply = imap_parse_reply (stream,net_getline (LOCAL->netstream))) {
      |               ^
      |               ==
imap4r1.c:3557:20: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3557 |       if (!strcmp (reply->tag,"+")) return reply;
      |                    ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:3559:25: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3559 |       else if (!strcmp (reply->tag,"*")) {
      |                         ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:3564:31: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3564 |         if (tag && !compare_cstring (tag,reply->tag)) return reply;
      |                                      ^~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:3590:27: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3590 |   if (!(LOCAL->reply.line = text)) {
      |                           ^ ~~~~
imap4r1.c:3596:31: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3596 |   if (stream->debug) mm_dlog (LOCAL->reply.line);
      |                               ^~~~~~~~~~~~~~~~~
imap4r1.c:108:15: note: expanded from macro 'LOCAL'
  108 | #define LOCAL ((IMAPLOCAL *) stream->local)
      |               ^
./mail.h:1599:21: note: passing argument to parameter 'string' here
 1599 | void mm_dlog (char *string);
      |                     ^
imap4r1.c:3597:38: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3597 |   if (!(LOCAL->reply.tag = strtok_r (LOCAL->reply.line," ",&r))) {
      |                                      ^~~~~~~~~~~~~~~~~
imap4r1.c:108:15: note: expanded from macro 'LOCAL'
  108 | #define LOCAL ((IMAPLOCAL *) stream->local)
      |               ^
/usr/include/string.h:128:22: note: passing argument to parameter here
  128 | char    *strtok_r(char *, const char *, char **);
      |                         ^
imap4r1.c:3597:26: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3597 |   if (!(LOCAL->reply.tag = strtok_r (LOCAL->reply.line," ",&r))) {
      |                          ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3603:15: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3603 |   if (strcmp (LOCAL->reply.tag,"+")) {
      |               ^~~~~~~~~~~~~~~~
imap4r1.c:108:15: note: expanded from macro 'LOCAL'
  108 | #define LOCAL ((IMAPLOCAL *) stream->local)
      |               ^
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:3605:28: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3605 |     if (!(LOCAL->reply.key = strtok_r (NIL," ",&r))) {
      |                            ^ ~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3615:29: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3615 |     if (!(LOCAL->reply.text = strtok_r (NIL,"\n",&r)))
      |                             ^ ~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3616:54: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3616 |       LOCAL->reply.text = LOCAL->reply.key + strlen (LOCAL->reply.key);
      |                                                      ^~~~~~~~~~~~~~~~
imap4r1.c:108:15: note: expanded from macro 'LOCAL'
  108 | #define LOCAL ((IMAPLOCAL *) stream->local)
      |               ^
/usr/include/string.h:100:28: note: passing argument to parameter here
  100 | size_t   strlen(const char *) __pure;
      |                             ^
imap4r1.c:3619:22: warning: assigning to 'unsigned char *' from 'char[4]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3619 |     LOCAL->reply.key = "BAD";   /* so it barfs if not expecting continuation */
      |                      ^ ~~~~~
imap4r1.c:3620:29: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3620 |     if (!(LOCAL->reply.text = strtok_r (NIL,"\n",&r)))
      |                             ^ ~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3621:25: warning: assigning to 'unsigned char *' from 'char[1]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3621 |       LOCAL->reply.text = "";
      |                         ^ ~~
imap4r1.c:3641:40: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3641 |   LOCAL->reply.tag = LOCAL->reply.line = cpystr (tag ? tag : "*");
      |                                        ^ ~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3642:20: warning: assigning to 'unsigned char *' from 'char[3]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3642 |   LOCAL->reply.key = "NO";
      |                    ^ ~~~~
imap4r1.c:3643:21: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3643 |   LOCAL->reply.text = text;
      |                     ^ ~~~~
imap4r1.c:3658:16: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3658 |   if (!strcmp (reply->key,"OK")) {
      |                ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:3659:33: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3659 |     imap_parse_response (stream,reply->text,NIL,NIL);
      |                                 ^~~~~~~~~~~
imap4r1.c:229:52: note: passing argument to parameter 'text' here
  229 | void imap_parse_response (MAILSTREAM *stream,char *text,long errflg,long ntfy);
      |                                                    ^
imap4r1.c:3663:21: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3663 |   else if (!strcmp (reply->key,"NO"))
      |                     ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:3664:33: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3664 |     imap_parse_response (stream,reply->text,WARN,NIL);
      |                                 ^~~~~~~~~~~
imap4r1.c:229:52: note: passing argument to parameter 'text' here
  229 | void imap_parse_response (MAILSTREAM *stream,char *text,long errflg,long ntfy);
      |                                                    ^
imap4r1.c:3666:18: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3666 |     if (!strcmp (reply->key,"BAD")) {
      |                  ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:3667:35: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3667 |       imap_parse_response (stream,reply->text,ERROR,NIL);
      |                                   ^~~~~~~~~~~
imap4r1.c:229:52: note: passing argument to parameter 'text' here
  229 | void imap_parse_response (MAILSTREAM *stream,char *text,long errflg,long ntfy);
      |                                                    ^
imap4r1.c:3691:22: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3691 |     msgno = strtoul (reply->key,(char **) &s,10);
      |                      ^~~~~~~~~~
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
imap4r1.c:3705:26: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3705 |     s = ucase (strtok_r (reply->text," ",&r));
      |                          ^~~~~~~~~~~
/usr/include/string.h:128:22: note: passing argument to parameter here
  128 | char    *strtok_r(char *, const char *, char **);
      |                         ^
imap4r1.c:3705:16: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3705 |     s = ucase (strtok_r (reply->text," ",&r));
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./misc.h:86:38: note: passing argument to parameter 'string' here
   86 | unsigned char *ucase (unsigned char *string);
      |                                      ^
imap4r1.c:3707:7: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3707 |     t = strtok_r (NIL,"\n",&r);
      |       ^ ~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3710:18: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3710 |     if (!strcmp (s,"EXISTS") && (msgno >= stream->nmsgs))
      |                  ^
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:3712:23: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3712 |     else if (!strcmp (s,"RECENT") && (msgno <= stream->nmsgs))
      |                       ^
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:3714:23: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3714 |     else if (!strcmp (s,"EXPUNGE") && msgno && (msgno <= stream->nmsgs)) {
      |                       ^
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:3722:24: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3722 |     else if ((!strcmp (s,"FETCH") || !strcmp (s,"STORE")) &&
      |                        ^
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:3722:47: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3722 |     else if ((!strcmp (s,"FETCH") || !strcmp (s,"STORE")) &&
      |                                               ^
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:3733:32: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3733 |       while (prop = (strtok_r (t," )",&r))) {
      |                                ^
/usr/include/string.h:128:22: note: passing argument to parameter here
  128 | char    *strtok_r(char *, const char *, char **);
      |                         ^
imap4r1.c:3733:19: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3733 |       while (prop = (strtok_r (t," )",&r))) {
      |              ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3733:19: note: place parentheses around the assignment to silence this warning
 3733 |       while (prop = (strtok_r (t," )",&r))) {
      |                   ^                       
      |              (                            )
imap4r1.c:3733:19: note: use '==' to turn this assignment into an equality comparison
 3733 |       while (prop = (strtok_r (t," )",&r))) {
      |                   ^
      |                   ==
imap4r1.c:3734:4: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3734 |         t = strtok_r (NIL,"\n",&r);
      |           ^ ~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3738:22: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3738 |         if (!strcmp (ucase (prop),"FLAGS")) imap_parse_flags (stream,elt,&t);
      |                             ^~~~
./misc.h:86:38: note: passing argument to parameter 'string' here
   86 | unsigned char *ucase (unsigned char *string);
      |                                      ^
imap4r1.c:3738:15: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3738 |         if (!strcmp (ucase (prop),"FLAGS")) imap_parse_flags (stream,elt,&t);
      |                      ^~~~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:3746:27: warning: passing 'char[27]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3746 |             mail_parse_date (elt,"01-Jan-1970 00:00:00 +0000");
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mail.h:1689:56: note: passing argument to parameter 'string' here
 1689 | long mail_parse_date (MESSAGECACHE *elt,unsigned char *string);
      |                                                        ^
imap4r1.c:3752:53: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3752 |           LOCAL->lastuid.uid = elt->private.uid = strtoul (t,(char **) &t,10);
      |                                                            ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
imap4r1.c:3793:14: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3793 |             if (!(s = strchr (md.what,']'))) {
      |                     ^ ~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3795:15: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3795 |               for (s = md.what; *s && (isdigit (*s) || (*s == '.')); s++);
      |                      ^ ~~~~~~~
imap4r1.c:3797:21: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3797 |               if (strncmp (s,"HEADER.FIELDS",13) &&
      |                            ^
/usr/include/string.h:105:26: note: passing argument to parameter here
  105 | int      strncmp(const char *, const char *, size_t) __pure;
      |                              ^
imap4r1.c:3798:24: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3798 |                   (!s[13] || strcmp (s+13,".NOT")))
      |                                      ^~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:3808:29: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3808 |               else if (t = strchr (s = t,' ')) *t++ = '\0';
      |                                    ^~~~~
/usr/include/string.h:80:26: note: passing argument to parameter here
   80 | char    *strchr(const char *, int) __pure;
      |                             ^
imap4r1.c:3808:19: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3808 |               else if (t = strchr (s = t,' ')) *t++ = '\0';
      |                          ^ ~~~~~~~~~~~~~~~~~~
imap4r1.c:3808:19: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3808 |               else if (t = strchr (s = t,' ')) *t++ = '\0';
      |                        ~~^~~~~~~~~~~~~~~~~~~~
imap4r1.c:3808:19: note: place parentheses around the assignment to silence this warning
 3808 |               else if (t = strchr (s = t,' ')) *t++ = '\0';
      |                          ^                   
      |                        (                     )
imap4r1.c:3808:19: note: use '==' to turn this assignment into an equality comparison
 3808 |               else if (t = strchr (s = t,' ')) *t++ = '\0';
      |                          ^
      |                          ==
imap4r1.c:3813:23: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3813 |                 md.first = strtoul (s+1,(char **) &s,10) + 1;
      |                                     ^~~
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
imap4r1.c:3856:34: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3856 |             elt->rfc822_size = strtoul (t,(char **) &t,10);
      |                                         ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
imap4r1.c:3887:22: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3887 |     else if (strcmp (s,"COPY")) {
      |                      ^
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:3894:21: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3894 |   else if (!strcmp (reply->key,"FLAGS") && reply->text &&
      |                     ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:3896:20: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3896 |            (s = strtok_r (reply->text+1," )",&r)))
      |                           ^~~~~~~~~~~~~
/usr/include/string.h:128:22: note: passing argument to parameter here
  128 | char    *strtok_r(char *, const char *, char **);
      |                         ^
imap4r1.c:3896:8: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3896 |            (s = strtok_r (reply->text+1," )",&r)))
      |               ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3899:26: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3899 |              compare_cstring (s,stream->user_flags[i]); i++);
      |                                 ^~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:3905:74: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3905 |       else if (!stream->user_flags[i]) stream->user_flags[i++] = cpystr (s);
      |                                                                          ^
./misc.h:88:27: note: passing argument to parameter 'string' here
   88 | char *cpystr (const char *string);
      |                           ^
imap4r1.c:3907:14: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3907 |     while (s = strtok_r (NIL," )",&r));
      |              ^ ~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3907:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3907 |     while (s = strtok_r (NIL," )",&r));
      |            ~~^~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3907:14: note: place parentheses around the assignment to silence this warning
 3907 |     while (s = strtok_r (NIL," )",&r));
      |              ^                       
      |            (                         )
imap4r1.c:3907:14: note: use '==' to turn this assignment into an equality comparison
 3907 |     while (s = strtok_r (NIL," )",&r));
      |              ^
      |              ==
imap4r1.c:3908:21: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3908 |   else if (!strcmp (reply->key,"SEARCH")) {
      |                     ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:3910:39: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3910 |     if (reply->text && (t = strtok_r (reply->text," ",&r))) do
      |                                       ^~~~~~~~~~~
/usr/include/string.h:128:22: note: passing argument to parameter here
  128 | char    *strtok_r(char *, const char *, char **);
      |                         ^
imap4r1.c:3910:27: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3910 |     if (reply->text && (t = strtok_r (reply->text," ",&r))) do
      |                           ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3911:24: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3911 |       if (i = strtoul (t,NIL,10)) {
      |                        ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
imap4r1.c:3911:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3911 |       if (i = strtoul (t,NIL,10)) {
      |           ~~^~~~~~~~~~~~~~~~~~~~
imap4r1.c:3911:13: note: place parentheses around the assignment to silence this warning
 3911 |       if (i = strtoul (t,NIL,10)) {
      |             ^                   
      |           (                     )
imap4r1.c:3911:13: note: use '==' to turn this assignment into an equality comparison
 3911 |       if (i = strtoul (t,NIL,10)) {
      |             ^
      |             ==
imap4r1.c:3920:18: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3920 |       } while (t = strtok_r (NIL," ",&r));
      |                  ^ ~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3920:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3920 |       } while (t = strtok_r (NIL," ",&r));
      |                ~~^~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3920:18: note: place parentheses around the assignment to silence this warning
 3920 |       } while (t = strtok_r (NIL," ",&r));
      |                  ^                      
      |                (                        )
imap4r1.c:3920:18: note: use '==' to turn this assignment into an equality comparison
 3920 |       } while (t = strtok_r (NIL," ",&r));
      |                  ^
      |                  ==
imap4r1.c:3922:21: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3922 |   else if (!strcmp (reply->key,"SORT")) {
      |                     ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:3930:39: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3930 |     if (reply->text && (t = strtok_r (reply->text," ",&r))) {
      |                                       ^~~~~~~~~~~
/usr/include/string.h:128:22: note: passing argument to parameter here
  128 | char    *strtok_r(char *, const char *, char **);
      |                         ^
imap4r1.c:3930:27: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3930 |     if (reply->text && (t = strtok_r (reply->text," ",&r))) {
      |                           ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3931:25: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3931 |       do if ((i = atol (t)) && (LOCAL->filter ?
      |                         ^
/usr/include/stdlib.h:94:24: note: passing argument to parameter here
   94 | long     atol(const char *);
      |                           ^
imap4r1.c:3934:17: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3934 |       while ((t = strtok_r (NIL," ",&r)) && (LOCAL->sortsize < stream->nmsgs));
      |                 ^ ~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:3940:21: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3940 |   else if (!strcmp (reply->key,"THREAD")) {
      |                     ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:3944:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 3944 |     if (s = reply->text) {
      |         ~~^~~~~~~~~~~~~
imap4r1.c:3944:11: note: place parentheses around the assignment to silence this warning
 3944 |     if (s = reply->text) {
      |           ^            
      |         (              )
imap4r1.c:3944:11: note: use '==' to turn this assignment into an equality comparison
 3944 |     if (s = reply->text) {
      |           ^
      |           ==
imap4r1.c:3955:21: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3955 |   else if (!strcmp (reply->key,"STATUS") && reply->text) {
      |                     ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:3959:53: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3959 |         (*txt++ == ' ') && (*txt++ == '(') && (s = strchr (txt,')')) &&
      |                                                            ^~~
/usr/include/string.h:80:26: note: passing argument to parameter here
   80 | char    *strchr(const char *, int) __pure;
      |                             ^
imap4r1.c:3959:43: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3959 |         (*txt++ == ' ') && (*txt++ == '(') && (s = strchr (txt,')')) &&
      |                                                  ^ ~~~~~~~~~~~~~~~~
imap4r1.c:3965:35: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3965 |       while (*txt && (s = strchr (txt,' '))) {
      |                                   ^~~
/usr/include/string.h:80:26: note: passing argument to parameter here
   80 | char    *strchr(const char *, int) __pure;
      |                             ^
imap4r1.c:3965:25: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3965 |       while (*txt && (s = strchr (txt,' '))) {
      |                         ^ ~~~~~~~~~~~~~~~~
imap4r1.c:3968:15: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3968 |         i = strtoul (s,(char **) &s,10);
      |                      ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
imap4r1.c:3969:28: warning: passing 'char[9]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3969 |         if (!compare_cstring (txt,"MESSAGES")) {
      |                                   ^~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:3973:33: warning: passing 'char[7]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3973 |         else if (!compare_cstring (txt,"RECENT")) {
      |                                        ^~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:3977:33: warning: passing 'char[7]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3977 |         else if (!compare_cstring (txt,"UNSEEN")) {
      |                                        ^~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:3981:33: warning: passing 'char[8]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3981 |         else if (!compare_cstring (txt,"UIDNEXT")) {
      |                                        ^~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:3985:33: warning: passing 'char[12]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3985 |         else if (!compare_cstring (txt,"UIDVALIDITY")) {
      |                                        ^~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:3994:53: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 3994 |         strcpy (strncpy (LOCAL->tmp,stream->mailbox,i) + i,t);
      |                                                            ^
/usr/include/string.h:87:56: note: passing argument to parameter here
   87 | char    *strcpy(char * __restrict, const char * __restrict);
      |                                                           ^
imap4r1.c:4002:22: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4002 |   else if ((!strcmp (reply->key,"LIST") || !strcmp (reply->key,"LSUB")) &&
      |                      ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:4002:53: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4002 |   else if ((!strcmp (reply->key,"LIST") || !strcmp (reply->key,"LSUB")) &&
      |                                                     ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:4004:18: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4004 |            (s = strchr (reply->text,')')) && (s[1] == ' ')) {
      |                         ^~~~~~~~~~~
/usr/include/string.h:80:26: note: passing argument to parameter here
   80 | char    *strchr(const char *, int) __pure;
      |                             ^
imap4r1.c:4004:8: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4004 |            (s = strchr (reply->text,')')) && (s[1] == ' ')) {
      |               ^ ~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4008:23: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4008 |     if (t = strtok_r (reply->text+1," ",&r)) do {
      |                       ^~~~~~~~~~~~~
/usr/include/string.h:128:22: note: passing argument to parameter here
  128 | char    *strtok_r(char *, const char *, char **);
      |                         ^
imap4r1.c:4008:11: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4008 |     if (t = strtok_r (reply->text+1," ",&r)) do {
      |           ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4008:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4008 |     if (t = strtok_r (reply->text+1," ",&r)) do {
      |         ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4008:11: note: place parentheses around the assignment to silence this warning
 4008 |     if (t = strtok_r (reply->text+1," ",&r)) do {
      |           ^                                
      |         (                                  )
imap4r1.c:4008:11: note: use '==' to turn this assignment into an equality comparison
 4008 |     if (t = strtok_r (reply->text+1," ",&r)) do {
      |           ^
      |           ==
imap4r1.c:4009:31: warning: passing 'char[13]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4009 |       if (!compare_cstring (t,"\\NoInferiors")) i |= LATT_NOINFERIORS;
      |                               ^~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4010:36: warning: passing 'char[10]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4010 |       else if (!compare_cstring (t,"\\NoSelect")) i |= LATT_NOSELECT;
      |                                    ^~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4011:36: warning: passing 'char[8]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4011 |       else if (!compare_cstring (t,"\\Marked")) i |= LATT_MARKED;
      |                                    ^~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4012:36: warning: passing 'char[10]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4012 |       else if (!compare_cstring (t,"\\Unmarked")) i |= LATT_UNMARKED;
      |                                    ^~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4013:36: warning: passing 'char[13]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4013 |       else if (!compare_cstring (t,"\\HasChildren")) i |= LATT_HASCHILDREN;
      |                                    ^~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4014:36: warning: passing 'char[15]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4014 |       else if (!compare_cstring (t,"\\HasNoChildren")) i |= LATT_HASNOCHILDREN;
      |                                    ^~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4017:14: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4017 |     while (t = strtok_r (NIL," ",&r));
      |              ^ ~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4017:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4017 |     while (t = strtok_r (NIL," ",&r));
      |            ~~^~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4017:14: note: place parentheses around the assignment to silence this warning
 4017 |     while (t = strtok_r (NIL," ",&r));
      |              ^                      
      |            (                        )
imap4r1.c:4017:14: note: use '==' to turn this assignment into an equality comparison
 4017 |     while (t = strtok_r (NIL," ",&r));
      |              ^
      |              ==
imap4r1.c:4028:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4028 |     if (t = imap_parse_astring (stream,&s,reply,&j)) {
      |         ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4028:11: note: place parentheses around the assignment to silence this warning
 4028 |     if (t = imap_parse_astring (stream,&s,reply,&j)) {
      |           ^                                        
      |         (                                          )
imap4r1.c:4028:11: note: use '==' to turn this assignment into an equality comparison
 4028 |     if (t = imap_parse_astring (stream,&s,reply,&j)) {
      |           ^
      |           ==
imap4r1.c:4031:13: warning: assigning to 'unsigned char *' from 'char[16384]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4031 |         sprintf (s = LOCAL->tmp,"%s%s",LOCAL->prefix,(char *) t);
      |                    ^ ~~~~~~~~~~
imap4r1.c:4031:11: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4031 |         sprintf (s = LOCAL->tmp,"%s%s",LOCAL->prefix,(char *) t);
      |                  ^~~~~~~~~~~~~~
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
imap4r1.c:4034:59: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4034 |       if (reply->key[1] == 'S') mm_lsub (stream,delimiter,s,i);
      |                                                           ^
./mail.h:1596:54: note: passing argument to parameter 'name' here
 1596 | void mm_lsub (MAILSTREAM *stream,int delimiter,char *name,long attributes);
      |                                                      ^
imap4r1.c:4035:38: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4035 |       else mm_list (stream,delimiter,s,i);
      |                                      ^
./mail.h:1595:54: note: passing argument to parameter 'name' here
 1595 | void mm_list (MAILSTREAM *stream,int delimiter,char *name,long attributes);
      |                                                      ^
imap4r1.c:4039:21: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4039 |   else if (!strcmp (reply->key,"NAMESPACE")) {
      |                     ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:4046:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4046 |     if (s = reply->text) {      /* parse namespace results */
      |         ~~^~~~~~~~~~~~~
imap4r1.c:4046:11: note: place parentheses around the assignment to silence this warning
 4046 |     if (s = reply->text) {      /* parse namespace results */
      |           ^            
      |         (              )
imap4r1.c:4046:11: note: use '==' to turn this assignment into an equality comparison
 4046 |     if (s = reply->text) {      /* parse namespace results */
      |           ^
      |           ==
imap4r1.c:4062:21: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4062 |   else if (!strcmp (reply->key,"ACL") && (s = reply->text) &&
      |                     ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:4068:30: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4068 |       do if ((ac->identifier = imap_parse_astring (stream,&s,reply,NIL)) &&
      |                              ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4070:13: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4070 |         ac->rights = imap_parse_astring (stream,&s,reply,NIL);
      |                    ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4079:34: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4079 |       else if (ar) (*ar) (stream,t,al);
      |                                  ^
imap4r1.c:4083:32: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4083 |     else if (ar) (*ar) (stream,t,NIL);
      |                                ^
imap4r1.c:4087:21: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4087 |   else if (!strcmp (reply->key,"LISTRIGHTS") && (s = reply->text) &&
      |                     ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:4091:35: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4091 |     if (s && (*s++ == ' ') && (id = imap_parse_astring (stream,&s,reply,NIL))){
      |                                   ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4093:7: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4093 |           (r = imap_parse_astring (stream,&s,reply,NIL))) {
      |              ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4107:31: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4107 |           else if (lr) (*lr) (stream,t,id,r,rl);
      |                                      ^
imap4r1.c:4112:29: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4112 |         else if (lr) (*lr) (stream,t,id,r,NIL);
      |                                    ^
imap4r1.c:4130:21: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4130 |   else if (!strcmp (reply->key,"MYRIGHTS") && (s = reply->text) &&
      |                     ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:4134:34: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4134 |     if (s && (*s++ == ' ') && (r = imap_parse_astring (stream,&s,reply,NIL))) {
      |                                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4140:34: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4140 |       else if (mr) (*mr) (stream,t,r);
      |                                  ^
imap4r1.c:4152:21: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4152 |   else if (!strcmp (reply->key,"QUOTA") && (s = reply->text) &&
      |                     ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:4163:16: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4163 |         if ((qc->name = imap_parse_astring (stream,&s,reply,NIL)) && s &&
      |                       ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4165:43: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4165 |           if (isdigit (*s)) qc->usage = strtoul (s,(char **) &s,10);
      |                                                  ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
imap4r1.c:4166:25: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4166 |           else if (t = strchr (s,' ')) t = s;
      |                                ^
/usr/include/string.h:80:26: note: passing argument to parameter here
   80 | char    *strchr(const char *, int) __pure;
      |                             ^
imap4r1.c:4166:15: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4166 |           else if (t = strchr (s,' ')) t = s;
      |                      ^ ~~~~~~~~~~~~~~
imap4r1.c:4166:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4166 |           else if (t = strchr (s,' ')) t = s;
      |                    ~~^~~~~~~~~~~~~~~~
imap4r1.c:4166:15: note: place parentheses around the assignment to silence this warning
 4166 |           else if (t = strchr (s,' ')) t = s;
      |                      ^               
      |                    (                 )
imap4r1.c:4166:15: note: use '==' to turn this assignment into an equality comparison
 4166 |           else if (t = strchr (s,' ')) t = s;
      |                      ^
      |                      ==
imap4r1.c:4168:45: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4168 |             if (isdigit (*s)) qc->limit = strtoul (s,(char **) &s,10);
      |                                                    ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
imap4r1.c:4169:28: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4169 |             else if (t = strpbrk (s," )")) t = s;
      |                                   ^
/usr/include/string.h:116:27: note: passing argument to parameter here
  116 | char    *strpbrk(const char *, const char *) __pure;
      |                              ^
imap4r1.c:4169:17: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4169 |             else if (t = strpbrk (s," )")) t = s;
      |                        ^ ~~~~~~~~~~~~~~~~
imap4r1.c:4169:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4169 |             else if (t = strpbrk (s," )")) t = s;
      |                      ~~^~~~~~~~~~~~~~~~~~
imap4r1.c:4169:17: note: place parentheses around the assignment to silence this warning
 4169 |             else if (t = strpbrk (s," )")) t = s;
      |                        ^                 
      |                      (                   )
imap4r1.c:4169:17: note: use '==' to turn this assignment into an equality comparison
 4169 |             else if (t = strpbrk (s," )")) t = s;
      |                        ^
      |                        ==
imap4r1.c:4174:30: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4174 |               if (qt) (*qt) (stream,t,ql);
      |                                     ^
imap4r1.c:4193:21: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4193 |   else if (!strcmp (reply->key,"QUOTAROOT") && (s = reply->text) &&
      |                     ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:4208:34: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4208 |       else if (qr) (*qr) (stream,t,rl);
      |                                  ^
imap4r1.c:4219:21: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4219 |   else if (!strcmp (reply->key,"OK") || !strcmp (reply->key,"PREAUTH"))
      |                     ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:4219:50: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4219 |   else if (!strcmp (reply->key,"OK") || !strcmp (reply->key,"PREAUTH"))
      |                                                  ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:4220:33: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4220 |     imap_parse_response (stream,reply->text,NIL,T);
      |                                 ^~~~~~~~~~~
imap4r1.c:229:52: note: passing argument to parameter 'text' here
  229 | void imap_parse_response (MAILSTREAM *stream,char *text,long errflg,long ntfy);
      |                                                    ^
imap4r1.c:4221:21: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4221 |   else if (!strcmp (reply->key,"NO"))
      |                     ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:4222:33: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4222 |     imap_parse_response (stream,reply->text,WARN,T);
      |                                 ^~~~~~~~~~~
imap4r1.c:229:52: note: passing argument to parameter 'text' here
  229 | void imap_parse_response (MAILSTREAM *stream,char *text,long errflg,long ntfy);
      |                                                    ^
imap4r1.c:4223:21: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4223 |   else if (!strcmp (reply->key,"BAD"))
      |                     ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:4224:33: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4224 |     imap_parse_response (stream,reply->text,ERROR,T);
      |                                 ^~~~~~~~~~~
imap4r1.c:229:52: note: passing argument to parameter 'text' here
  229 | void imap_parse_response (MAILSTREAM *stream,char *text,long errflg,long ntfy);
      |                                                    ^
imap4r1.c:4225:21: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4225 |   else if (!strcmp (reply->key,"BYE")) {
      |                     ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:4227:33: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4227 |     imap_parse_response (stream,reply->text,BYE,T);
      |                                 ^~~~~~~~~~~
imap4r1.c:229:52: note: passing argument to parameter 'text' here
  229 | void imap_parse_response (MAILSTREAM *stream,char *text,long errflg,long ntfy);
      |                                                    ^
imap4r1.c:4229:21: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4229 |   else if (!strcmp (reply->key,"CAPABILITY") && reply->text)
      |                     ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:4230:37: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4230 |     imap_parse_capabilities (stream,reply->text);
      |                                     ^~~~~~~~~~~
imap4r1.c:264:56: note: passing argument to parameter 't' here
  264 | void imap_parse_capabilities (MAILSTREAM *stream,char *t);
      |                                                        ^
imap4r1.c:4231:21: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4231 |   else if (!strcmp (reply->key,"MAILBOX") && reply->text) {
      |                     ^~~~~~~~~~
/usr/include/string.h:85:25: note: passing argument to parameter here
   85 | int      strcmp(const char *, const char *) __pure;
      |                             ^
imap4r1.c:4233:37: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4233 |         ((strlen (LOCAL->prefix) + strlen (reply->text)) < IMAPTMPLEN))
      |                                            ^~~~~~~~~~~
/usr/include/string.h:100:28: note: passing argument to parameter here
  100 | size_t   strlen(const char *) __pure;
      |                             ^
imap4r1.c:4234:18: warning: assigning to 'unsigned char *' from 'char[16384]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4234 |       sprintf (t = LOCAL->tmp,"%s%s",LOCAL->prefix,(char *) reply->text);
      |                  ^ ~~~~~~~~~~
imap4r1.c:4234:16: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4234 |       sprintf (t = LOCAL->tmp,"%s%s",LOCAL->prefix,(char *) reply->text);
      |                ^~~~~~~~~~~~~~
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
imap4r1.c:4236:25: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4236 |     mm_list (stream,NIL,t,NIL);
      |                         ^
./mail.h:1595:54: note: passing argument to parameter 'name' here
 1595 | void mm_list (MAILSTREAM *stream,int delimiter,char *name,long attributes);
      |                                                      ^
imap4r1.c:4266:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4266 |     if (s = strchr (strncpy (t = LOCAL->tmp,s,i),' ')) *s++ = '\0';
      |         ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4266:11: note: place parentheses around the assignment to silence this warning
 4266 |     if (s = strchr (strncpy (t = LOCAL->tmp,s,i),' ')) *s++ = '\0';
      |           ^                                          
      |         (                                            )
imap4r1.c:4266:11: note: use '==' to turn this assignment into an equality comparison
 4266 |     if (s = strchr (strncpy (t = LOCAL->tmp,s,i),' ')) *s++ = '\0';
      |           ^
      |           ==
imap4r1.c:4269:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4269 |       if (!compare_cstring (t,"UIDVALIDITY") &&
      |                             ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:4269:31: warning: passing 'char[12]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4269 |       if (!compare_cstring (t,"UIDVALIDITY") &&
      |                               ^~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4275:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4275 |           if (elt = (MESSAGECACHE *) (*mc) (stream,j,CH_ELT))
      |               ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4275:12: note: place parentheses around the assignment to silence this warning
 4275 |           if (elt = (MESSAGECACHE *) (*mc) (stream,j,CH_ELT))
      |                   ^                                         
      |               (                                             )
imap4r1.c:4275:12: note: use '==' to turn this assignment into an equality comparison
 4275 |           if (elt = (MESSAGECACHE *) (*mc) (stream,j,CH_ELT))
      |                   ^
      |                   ==
imap4r1.c:4278:34: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4278 |       else if (!compare_cstring (t,"UIDNEXT"))
      |                                  ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:4278:36: warning: passing 'char[8]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4278 |       else if (!compare_cstring (t,"UIDNEXT"))
      |                                    ^~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4280:34: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4280 |       else if (!compare_cstring (t,"PERMANENTFLAGS") && (*s == '(') &&
      |                                  ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:4280:36: warning: passing 'char[15]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4280 |       else if (!compare_cstring (t,"PERMANENTFLAGS") && (*s == '(') &&
      |                                    ^~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4286:8: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4286 |         if (s = strtok_r (s+1," ",&r)) do {
      |             ~~^~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4286:8: note: place parentheses around the assignment to silence this warning
 4286 |         if (s = strtok_r (s+1," ",&r)) do {
      |               ^                      
      |             (                        )
imap4r1.c:4286:8: note: use '==' to turn this assignment into an equality comparison
 4286 |         if (s = strtok_r (s+1," ",&r)) do {
      |               ^
      |               ==
imap4r1.c:4288:28: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4288 |             if (!compare_cstring (s,"\\Seen")) stream->perm_seen = T;
      |                                   ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:4288:30: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4288 |             if (!compare_cstring (s,"\\Seen")) stream->perm_seen = T;
      |                                     ^~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4289:33: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4289 |             else if (!compare_cstring (s,"\\Deleted"))
      |                                        ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:4289:35: warning: passing 'char[9]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4289 |             else if (!compare_cstring (s,"\\Deleted"))
      |                                          ^~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4291:33: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4291 |             else if (!compare_cstring (s,"\\Flagged"))
      |                                        ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:4291:35: warning: passing 'char[9]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4291 |             else if (!compare_cstring (s,"\\Flagged"))
      |                                          ^~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4293:33: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4293 |             else if (!compare_cstring (s,"\\Answered"))
      |                                        ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:4293:35: warning: passing 'char[10]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4293 |             else if (!compare_cstring (s,"\\Answered"))
      |                                          ^~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4295:33: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4295 |             else if (!compare_cstring (s,"\\Draft")) stream->perm_draft = T;
      |                                        ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:4295:35: warning: passing 'char[7]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4295 |             else if (!compare_cstring (s,"\\Draft")) stream->perm_draft = T;
      |                                          ^~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4300:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4300 |         while (s = strtok_r (NIL," ",&r));
      |                ~~^~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4300:11: note: place parentheses around the assignment to silence this warning
 4300 |         while (s = strtok_r (NIL," ",&r));
      |                  ^                      
      |                (                        )
imap4r1.c:4300:11: note: use '==' to turn this assignment into an equality comparison
 4300 |         while (s = strtok_r (NIL," ",&r));
      |                  ^
      |                  ==
imap4r1.c:4303:34: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4303 |       else if (!compare_cstring (t,"CAPABILITY"))
      |                                  ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:4303:36: warning: passing 'char[11]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4303 |       else if (!compare_cstring (t,"CAPABILITY"))
      |                                    ^~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4306:27: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4306 |                !compare_cstring (t,"COPYUID") &&
      |                                  ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:4306:29: warning: passing 'char[8]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4306 |                !compare_cstring (t,"COPYUID") &&
      |                                    ^~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4312:39: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4312 |       else if (j && !compare_cstring (t,"APPENDUID") &&
      |                                       ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:4312:41: warning: passing 'char[10]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4312 |       else if (j && !compare_cstring (t,"APPENDUID") &&
      |                                         ^~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4319:24: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4319 |         if (!compare_cstring (t,"REFERRAL"))
      |                               ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:4319:26: warning: passing 'char[9]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4319 |         if (!compare_cstring (t,"REFERRAL"))
      |                                 ^~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4326:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4326 |       if (!compare_cstring (t,"UIDNOTSTICKY")) {
      |                             ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:4326:31: warning: passing 'char[13]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4326 |       if (!compare_cstring (t,"UIDNOTSTICKY")) {
      |                               ^~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4330:34: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4330 |       else if (!compare_cstring (t,"READ-ONLY")) stream->rdonly = T;
      |                                  ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:4330:36: warning: passing 'char[10]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4330 |       else if (!compare_cstring (t,"READ-ONLY")) stream->rdonly = T;
      |                                    ^~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4331:34: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4331 |       else if (!compare_cstring (t,"READ-WRITE"))
      |                                  ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:4331:36: warning: passing 'char[11]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4331 |       else if (!compare_cstring (t,"READ-WRITE"))
      |                                    ^~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4333:34: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4333 |       else if (!compare_cstring (t,"PARSE") && !errflg)
      |                                  ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:4333:36: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4333 |       else if (!compare_cstring (t,"PARSE") && !errflg)
      |                                    ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4375:12: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4375 |         nam->name = imap_parse_string (stream,txtptr,reply,NIL,NIL,NIL);
      |                   ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4400:25: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4400 |           if (!(par->attribute = imap_parse_string (stream,txtptr,reply,NIL,
      |                                ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 4401 |                                                     NIL,NIL))) {
      |                                                     ~~~~~~~~
imap4r1.c:4412:25: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4412 |               if (!(par->value = imap_parse_string (stream,txtptr,reply,NIL,
      |                                ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 4413 |                                                     NIL,LONGT))) {
      |                                                     ~~~~~~~~~~
imap4r1.c:4485:29: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4485 |       else if (isdigit (*(s = *txtptr)) &&
      |                             ^ ~~~~~~~
/usr/include/ctype.h:92:32: note: expanded from macro 'isdigit'
   92 | #define isdigit(c)      __sbistype((c), _CTYPE_D)
      |                                     ^
imap4r1.c:4487:12: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4487 |                 strtoul (*txtptr,(char **) txtptr,10))) {
      |                          ^~~~~~~
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
imap4r1.c:4571:21: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4571 |     (*env)->subject = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT);
      |                     ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4578:25: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4578 |     (*env)->in_reply_to = imap_parse_string (stream,txtptr,reply,NIL,NIL,
      |                         ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 4579 |                                              LONGT);
      |                                              ~~~~~~
imap4r1.c:4580:24: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4580 |     (*env)->message_id = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT);
      |                        ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4677:21: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4677 |       adr->personal = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT);
      |                     ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4678:16: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4678 |       adr->adl = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT);
      |                ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4679:20: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4679 |       adr->mailbox = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT);
      |                    ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4680:17: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4680 |       adr->host = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT);
      |                 ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4777:19: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4777 |     while (*(flag = ++*txtptr) == ' ');
      |                   ^ ~~~~~~~~~
imap4r1.c:4785:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4785 |       if (!compare_cstring (flag,"\\Seen")) elt->seen = T;
      |                             ^~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:4785:34: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4785 |       if (!compare_cstring (flag,"\\Seen")) elt->seen = T;
      |                                  ^~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4786:34: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4786 |       else if (!compare_cstring (flag,"\\Deleted")) elt->deleted = T;
      |                                  ^~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:4786:39: warning: passing 'char[9]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4786 |       else if (!compare_cstring (flag,"\\Deleted")) elt->deleted = T;
      |                                       ^~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4787:34: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4787 |       else if (!compare_cstring (flag,"\\Flagged")) elt->flagged = T;
      |                                  ^~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:4787:39: warning: passing 'char[9]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4787 |       else if (!compare_cstring (flag,"\\Flagged")) elt->flagged = T;
      |                                       ^~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4788:34: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4788 |       else if (!compare_cstring (flag,"\\Answered")) elt->answered = T;
      |                                  ^~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:4788:39: warning: passing 'char[10]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4788 |       else if (!compare_cstring (flag,"\\Answered")) elt->answered = T;
      |                                       ^~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4789:34: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4789 |       else if (!compare_cstring (flag,"\\Recent")) elt->recent = T;
      |                                  ^~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:4789:39: warning: passing 'char[8]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4789 |       else if (!compare_cstring (flag,"\\Recent")) elt->recent = T;
      |                                       ^~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4790:34: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4790 |       else if (!compare_cstring (flag,"\\Draft")) elt->draft = T;
      |                                  ^~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:4790:39: warning: passing 'char[7]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4790 |       else if (!compare_cstring (flag,"\\Draft")) elt->draft = T;
      |                                       ^~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4814:27: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4814 |     if (!compare_cstring (flag,stream->user_flags[i])) return (1 << i);
      |                           ^~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:4814:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4814 |     if (!compare_cstring (flag,stream->user_flags[i])) return (1 << i);
      |                                ^~~~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:4845:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4845 |     if (i = *txtptr - s) {      /* atom ends at atom_special */
      |         ~~^~~~~~~~~~~~~
imap4r1.c:4845:11: note: place parentheses around the assignment to silence this warning
 4845 |     if (i = *txtptr - s) {      /* atom ends at atom_special */
      |           ^            
      |         (              )
imap4r1.c:4845:11: note: use '==' to turn this assignment into an equality comparison
 4845 |     if (i = *txtptr - s) {      /* atom ends at atom_special */
      |           ^
      |           ==
imap4r1.c:4847:46: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4847 |       ret = strncpy ((char *) fs_get (i + 1),s,i);
      |                                              ^
/usr/include/string.h:106:57: note: passing argument to parameter here
  106 | char    *strncpy(char * __restrict, const char * __restrict, size_t);
      |                                                            ^
imap4r1.c:4847:11: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4847 |       ret = strncpy ((char *) fs_get (i + 1),s,i);
      |           ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4888:6: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4888 |   st = ++*txtptr;               /* remember start of string */
      |      ^ ~~~~~~~~~
imap4r1.c:4937:23: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4937 |     if ((i = strtoul (*txtptr,(char **) txtptr,10)) > MAXSERVERLIT) {
      |                       ^~~~~~~
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
imap4r1.c:4958:29: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4958 |       if (rp) for (k = 0; j = min ((long) MAILTMPLEN,(long) i); i -= j) {
      |                           ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4958:29: note: place parentheses around the assignment to silence this warning
 4958 |       if (rp) for (k = 0; j = min ((long) MAILTMPLEN,(long) i); i -= j) {
      |                             ^                                 
      |                           (                                   )
imap4r1.c:4958:29: note: use '==' to turn this assignment into an equality comparison
 4958 |       if (rp) for (k = 0; j = min ((long) MAILTMPLEN,(long) i); i -= j) {
      |                             ^
      |                             ==
imap4r1.c:4966:28: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 4966 |       for (st = string; st = strpbrk (st,"\015\012\011"); *st++ = ' ');
      |                         ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4966:28: note: place parentheses around the assignment to silence this warning
 4966 |       for (st = string; st = strpbrk (st,"\015\012\011"); *st++ = ' ');
      |                            ^                            
      |                         (                               )
imap4r1.c:4966:28: note: use '==' to turn this assignment into an equality comparison
 4966 |       for (st = string; st = strpbrk (st,"\015\012\011"); *st++ = ' ');
      |                            ^
      |                            ==
imap4r1.c:4968:23: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4968 |     if (!(reply->line = net_getline (LOCAL->netstream)))
      |                       ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:4969:19: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4969 |       reply->line = cpystr ("");
      |                   ^ ~~~~~~~~~~~
imap4r1.c:4970:33: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 4970 |     if (stream->debug) mm_dlog (reply->line);
      |                                 ^~~~~~~~~~~
./mail.h:1599:21: note: passing argument to parameter 'string' here
 1599 | void mm_dlog (char *string);
      |                     ^
imap4r1.c:5038:39: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5038 |     if (!(b = mail_body (stream,msgno,seg))) {
      |                                       ^~~
./mail.h:1686:19: note: passing argument to parameter 'section' here
 1686 |                  unsigned char *section);
      |                                 ^
imap4r1.c:5115:25: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5115 |       if (body->subtype = imap_parse_string(stream,txtptr,reply,NIL,NIL,LONGT))
      |                         ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:5115:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 5115 |       if (body->subtype = imap_parse_string(stream,txtptr,reply,NIL,NIL,LONGT))
      |           ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:5115:25: note: place parentheses around the assignment to silence this warning
 5115 |       if (body->subtype = imap_parse_string(stream,txtptr,reply,NIL,NIL,LONGT))
      |                         ^                                                     
      |           (                                                                   )
imap4r1.c:5115:25: note: use '==' to turn this assignment into an equality comparison
 5115 |       if (body->subtype = imap_parse_string(stream,txtptr,reply,NIL,NIL,LONGT))
      |                         ^
      |                         ==
imap4r1.c:5116:9: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5116 |         ucase (body->subtype);
      |                ^~~~~~~~~~~~~
./misc.h:86:38: note: passing argument to parameter 'string' here
   86 | unsigned char *ucase (unsigned char *string);
      |                                      ^
imap4r1.c:5134:17: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5134 |         body->location = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT);
      |                        ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:5155:13: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5155 |       if (s = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT)) {
      |             ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:5155:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 5155 |       if (s = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT)) {
      |           ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:5155:13: note: place parentheses around the assignment to silence this warning
 5155 |       if (s = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT)) {
      |             ^                                                      
      |           (                                                        )
imap4r1.c:5155:13: note: use '==' to turn this assignment into an equality comparison
 5155 |       if (s = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT)) {
      |             ^
      |             ==
imap4r1.c:5156:9: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5156 |         ucase (s);              /* application always gets uppercase form */
      |                ^
./misc.h:86:38: note: passing argument to parameter 'string' here
   86 | unsigned char *ucase (unsigned char *string);
      |                                      ^
imap4r1.c:5165:25: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5165 |       if (body->subtype = imap_parse_string(stream,txtptr,reply,NIL,NIL,LONGT))
      |                         ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:5165:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 5165 |       if (body->subtype = imap_parse_string(stream,txtptr,reply,NIL,NIL,LONGT))
      |           ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:5165:25: note: place parentheses around the assignment to silence this warning
 5165 |       if (body->subtype = imap_parse_string(stream,txtptr,reply,NIL,NIL,LONGT))
      |                         ^                                                     
      |           (                                                                   )
imap4r1.c:5165:25: note: use '==' to turn this assignment into an equality comparison
 5165 |       if (body->subtype = imap_parse_string(stream,txtptr,reply,NIL,NIL,LONGT))
      |                         ^
      |                         ==
imap4r1.c:5166:9: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5166 |         ucase (body->subtype);  /* parse subtype */
      |                ^~~~~~~~~~~~~
./misc.h:86:38: note: passing argument to parameter 'string' here
   86 | unsigned char *ucase (unsigned char *string);
      |                                      ^
imap4r1.c:5173:16: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5173 |       body->id = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT);
      |                ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:5174:25: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5174 |       body->description = imap_parse_string (stream,txtptr,reply,NIL,NIL,
      |                         ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 5175 |                                              LONGT);
      |                                              ~~~~~~
imap4r1.c:5176:13: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5176 |       if (s = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT)) {
      |             ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:5176:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 5176 |       if (s = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT)) {
      |           ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:5176:13: note: place parentheses around the assignment to silence this warning
 5176 |       if (s = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT)) {
      |             ^                                                      
      |           (                                                        )
imap4r1.c:5176:13: note: use '==' to turn this assignment into an equality comparison
 5176 |       if (s = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT)) {
      |             ^
      |             ==
imap4r1.c:5177:9: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5177 |         ucase (s);              /* application always gets uppercase form */
      |                ^
./misc.h:86:38: note: passing argument to parameter 'string' here
   86 | unsigned char *ucase (unsigned char *string);
      |                                      ^
imap4r1.c:5190:35: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5190 |       body->size.bytes = strtoul (*txtptr,(char **) txtptr,10);
      |                                   ^~~~~~~
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
imap4r1.c:5210:30: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5210 |         body->size.lines = strtoul (*txtptr,(char **) txtptr,10);
      |                                     ^~~~~~~
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
imap4r1.c:5217:12: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5217 |         body->md5 = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT);
      |                   ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:5230:17: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5230 |         body->location = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT);
      |                        ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:5278:24: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5278 |     if(!(par->attribute=imap_parse_string (stream,txtptr,reply,NIL,NIL,
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 5279 |                                            LONGT))) {
      |                                            ~~~~~~
imap4r1.c:5284:22: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5284 |     if (!(par->value = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT))){
      |                      ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:5306:11: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5306 |            ((*(s = *txtptr) == 'I') || (*s == 'i')) &&
      |                  ^ ~~~~~~~
imap4r1.c:5330:28: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5330 |     body->disposition.type = imap_parse_string (stream,txtptr,reply,NIL,NIL,
      |                            ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 5331 |                                                 LONGT);
      |                                                 ~~~~~~
imap4r1.c:5373:14: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5373 |   else if (s = imap_parse_string (stream,txtptr,reply,NIL,&i,LONGT)) {
      |              ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:5373:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 5373 |   else if (s = imap_parse_string (stream,txtptr,reply,NIL,&i,LONGT)) {
      |            ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:5373:14: note: place parentheses around the assignment to silence this warning
 5373 |   else if (s = imap_parse_string (stream,txtptr,reply,NIL,&i,LONGT)) {
      |              ^                                                     
      |            (                                                       )
imap4r1.c:5373:14: note: use '==' to turn this assignment into an equality comparison
 5373 |   else if (s = imap_parse_string (stream,txtptr,reply,NIL,&i,LONGT)) {
      |              ^
      |              ==
imap4r1.c:5441:22: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5441 |     if (i = strtoul (*txtptr,(char **) txtptr,10)) do
      |                      ^~~~~~~
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
imap4r1.c:5441:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 5441 |     if (i = strtoul (*txtptr,(char **) txtptr,10)) do
      |         ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:5441:11: note: place parentheses around the assignment to silence this warning
 5441 |     if (i = strtoul (*txtptr,(char **) txtptr,10)) do
      |           ^                                      
      |         (                                        )
imap4r1.c:5441:11: note: use '==' to turn this assignment into an equality comparison
 5441 |     if (i = strtoul (*txtptr,(char **) txtptr,10)) do
      |           ^
      |           ==
imap4r1.c:5446:23: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5446 |     if (!(reply->line = net_getline (LOCAL->netstream)))
      |                       ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
imap4r1.c:5447:19: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5447 |       reply->line = cpystr ("");
      |                   ^ ~~~~~~~~~~~
imap4r1.c:5448:33: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5448 |     if (stream->debug) mm_dlog (reply->line);
      |                                 ^~~~~~~~~~~
./mail.h:1599:21: note: passing argument to parameter 'string' here
 1599 | void mm_dlog (char *string);
      |                     ^
imap4r1.c:5453:14: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5453 |     strtoul (*txtptr,(char **) txtptr,10);
      |              ^~~~~~~
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
imap4r1.c:5477:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 5477 |     if (thr = LOCAL->cap.threader) while (th = thr) {
      |         ~~~~^~~~~~~~~~~~~~~~~~~~~
imap4r1.c:5477:13: note: place parentheses around the assignment to silence this warning
 5477 |     if (thr = LOCAL->cap.threader) while (th = thr) {
      |             ^                    
      |         (                        )
imap4r1.c:5477:13: note: use '==' to turn this assignment into an equality comparison
 5477 |     if (thr = LOCAL->cap.threader) while (th = thr) {
      |             ^
      |             ==
imap4r1.c:5477:46: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 5477 |     if (thr = LOCAL->cap.threader) while (th = thr) {
      |                                           ~~~^~~~~
imap4r1.c:5477:46: note: place parentheses around the assignment to silence this warning
 5477 |     if (thr = LOCAL->cap.threader) while (th = thr) {
      |                                              ^    
      |                                           (       )
imap4r1.c:5477:46: note: use '==' to turn this assignment into an equality comparison
 5477 |     if (thr = LOCAL->cap.threader) while (th = thr) {
      |                                              ^
      |                                              ==
imap4r1.c:5487:27: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5487 |     if (!compare_cstring (t,"IMAP4"))
      |                           ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5487:29: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5487 |     if (!compare_cstring (t,"IMAP4"))
      |                             ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5489:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5489 |     else if (!compare_cstring (t,"IMAP4rev1"))
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5489:34: warning: passing 'char[10]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5489 |     else if (!compare_cstring (t,"IMAP4rev1"))
      |                                  ^~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5491:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5491 |     else if (!compare_cstring (t,"IMAP2")) LOCAL->cap.rfc1176 = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5491:34: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5491 |     else if (!compare_cstring (t,"IMAP2")) LOCAL->cap.rfc1176 = T;
      |                                  ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5492:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5492 |     else if (!compare_cstring (t,"IMAP2bis"))
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5492:34: warning: passing 'char[9]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5492 |     else if (!compare_cstring (t,"IMAP2bis"))
      |                                  ^~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5494:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5494 |     else if (!compare_cstring (t,"ACL")) LOCAL->cap.acl = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5494:34: warning: passing 'char[4]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5494 |     else if (!compare_cstring (t,"ACL")) LOCAL->cap.acl = T;
      |                                  ^~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5495:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5495 |     else if (!compare_cstring (t,"QUOTA")) LOCAL->cap.quota = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5495:34: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5495 |     else if (!compare_cstring (t,"QUOTA")) LOCAL->cap.quota = T;
      |                                  ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5496:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5496 |     else if (!compare_cstring (t,"LITERAL+")) LOCAL->cap.litplus = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5496:34: warning: passing 'char[9]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5496 |     else if (!compare_cstring (t,"LITERAL+")) LOCAL->cap.litplus = T;
      |                                  ^~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5497:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5497 |     else if (!compare_cstring (t,"IDLE")) LOCAL->cap.idle = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5497:34: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5497 |     else if (!compare_cstring (t,"IDLE")) LOCAL->cap.idle = T;
      |                                  ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5498:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5498 |     else if (!compare_cstring (t,"MAILBOX-REFERRALS")) LOCAL->cap.mbx_ref = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5498:34: warning: passing 'char[18]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5498 |     else if (!compare_cstring (t,"MAILBOX-REFERRALS")) LOCAL->cap.mbx_ref = T;
      |                                  ^~~~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5499:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5499 |     else if (!compare_cstring (t,"LOGIN-REFERRALS")) LOCAL->cap.log_ref = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5499:34: warning: passing 'char[16]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5499 |     else if (!compare_cstring (t,"LOGIN-REFERRALS")) LOCAL->cap.log_ref = T;
      |                                  ^~~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5500:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5500 |     else if (!compare_cstring (t,"NAMESPACE")) LOCAL->cap.namespace = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5500:34: warning: passing 'char[10]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5500 |     else if (!compare_cstring (t,"NAMESPACE")) LOCAL->cap.namespace = T;
      |                                  ^~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5501:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5501 |     else if (!compare_cstring (t,"UIDPLUS")) LOCAL->cap.uidplus = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5501:34: warning: passing 'char[8]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5501 |     else if (!compare_cstring (t,"UIDPLUS")) LOCAL->cap.uidplus = T;
      |                                  ^~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5502:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5502 |     else if (!compare_cstring (t,"STARTTLS")) LOCAL->cap.starttls = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5502:34: warning: passing 'char[9]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5502 |     else if (!compare_cstring (t,"STARTTLS")) LOCAL->cap.starttls = T;
      |                                  ^~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5503:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5503 |     else if (!compare_cstring (t,"LOGINDISABLED"))LOCAL->cap.logindisabled = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5503:34: warning: passing 'char[14]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5503 |     else if (!compare_cstring (t,"LOGINDISABLED"))LOCAL->cap.logindisabled = T;
      |                                  ^~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5504:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5504 |     else if (!compare_cstring (t,"ID")) LOCAL->cap.id = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5504:34: warning: passing 'char[3]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5504 |     else if (!compare_cstring (t,"ID")) LOCAL->cap.id = T;
      |                                  ^~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5505:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5505 |     else if (!compare_cstring (t,"CHILDREN")) LOCAL->cap.children = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5505:34: warning: passing 'char[9]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5505 |     else if (!compare_cstring (t,"CHILDREN")) LOCAL->cap.children = T;
      |                                  ^~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5506:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5506 |     else if (!compare_cstring (t,"MULTIAPPEND")) LOCAL->cap.multiappend = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5506:34: warning: passing 'char[12]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5506 |     else if (!compare_cstring (t,"MULTIAPPEND")) LOCAL->cap.multiappend = T;
      |                                  ^~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5507:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5507 |     else if (!compare_cstring (t,"BINARY")) LOCAL->cap.binary = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5507:34: warning: passing 'char[7]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5507 |     else if (!compare_cstring (t,"BINARY")) LOCAL->cap.binary = T;
      |                                  ^~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5508:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5508 |     else if (!compare_cstring (t,"UNSELECT")) LOCAL->cap.unselect = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5508:34: warning: passing 'char[9]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5508 |     else if (!compare_cstring (t,"UNSELECT")) LOCAL->cap.unselect = T;
      |                                  ^~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5509:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5509 |     else if (!compare_cstring (t,"SASL-IR")) LOCAL->cap.sasl_ir = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5509:34: warning: passing 'char[8]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5509 |     else if (!compare_cstring (t,"SASL-IR")) LOCAL->cap.sasl_ir = T;
      |                                  ^~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5510:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5510 |     else if (!compare_cstring (t,"SCAN")) LOCAL->cap.scan = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5510:34: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5510 |     else if (!compare_cstring (t,"SCAN")) LOCAL->cap.scan = T;
      |                                  ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5511:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5511 |     else if (!compare_cstring (t,"URLAUTH")) LOCAL->cap.urlauth = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5511:34: warning: passing 'char[8]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5511 |     else if (!compare_cstring (t,"URLAUTH")) LOCAL->cap.urlauth = T;
      |                                  ^~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5512:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5512 |     else if (!compare_cstring (t,"CATENATE")) LOCAL->cap.catenate = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5512:34: warning: passing 'char[9]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5512 |     else if (!compare_cstring (t,"CATENATE")) LOCAL->cap.catenate = T;
      |                                  ^~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5513:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5513 |     else if (!compare_cstring (t,"CONDSTORE")) LOCAL->cap.condstore = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5513:34: warning: passing 'char[10]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5513 |     else if (!compare_cstring (t,"CONDSTORE")) LOCAL->cap.condstore = T;
      |                                  ^~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5514:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5514 |     else if (!compare_cstring (t,"ESEARCH")) LOCAL->cap.esearch = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5514:34: warning: passing 'char[8]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5514 |     else if (!compare_cstring (t,"ESEARCH")) LOCAL->cap.esearch = T;
      |                                  ^~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5520:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 5520 |     else if (s = strchr (t,'=')) {
      |              ~~^~~~~~~~~~~~~~~~
imap4r1.c:5520:16: note: place parentheses around the assignment to silence this warning
 5520 |     else if (s = strchr (t,'=')) {
      |                ^               
      |              (                 )
imap4r1.c:5520:16: note: use '==' to turn this assignment into an equality comparison
 5520 |     else if (s = strchr (t,'=')) {
      |                ^
      |                ==
imap4r1.c:5522:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5522 |       if (!compare_cstring (t,"THREAD") && !LOCAL->loser) {
      |                             ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5522:31: warning: passing 'char[7]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5522 |       if (!compare_cstring (t,"THREAD") && !LOCAL->loser) {
      |                               ^~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5529:34: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5529 |       else if (!compare_cstring (t,"AUTH")) {
      |                                  ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5529:36: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5529 |       else if (!compare_cstring (t,"AUTH")) {
      |                                    ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5532:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5532 |         else if (!compare_cstring (s,"ANONYMOUS")) LOCAL->cap.authanon = T;
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
imap4r1.c:5532:31: warning: passing 'char[10]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 5532 |         else if (!compare_cstring (s,"ANONYMOUS")) LOCAL->cap.authanon = T;
      |                                      ^~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
imap4r1.c:5609:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 5609 |   for (s = sequence; t = strpbrk (s,",:"); ) switch (*t++) {
      |                      ~~^~~~~~~~~~~~~~~~~~
imap4r1.c:5609:24: note: place parentheses around the assignment to silence this warning
 5609 |   for (s = sequence; t = strpbrk (s,",:"); ) switch (*t++) {
      |                        ^                 
      |                      (                   )
imap4r1.c:5609:24: note: use '==' to turn this assignment into an equality comparison
 5609 |   for (s = sequence; t = strpbrk (s,",:"); ) switch (*t++) {
      |                        ^
      |                        ==
424 warnings generated.
cc -c `cat CFLAGS` pop3.c
pop3.c:180:22: warning: passing 'char[256]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  180 |           !compare_cstring (mb.mailbox,"INBOX")) ? &pop3driver : NIL;
      |                             ^~~~~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
pop3.c:180:33: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  180 |           !compare_cstring (mb.mailbox,"INBOX")) ? &pop3driver : NIL;
      |                                        ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
pop3.c:232:36: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  232 |       (pop3_valid (ref) && pmatch ("INBOX",pat)) :
      |                                    ^~~~~~~
./misc.h:82:16: note: expanded from macro 'pmatch'
   82 |   pmatch_full (s,pat,NIL)
      |                ^
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
pop3.c:232:44: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  232 |       (pop3_valid (ref) && pmatch ("INBOX",pat)) :
      |                                            ^~~
./misc.h:82:18: note: expanded from macro 'pmatch'
   82 |   pmatch_full (s,pat,NIL)
      |                  ^~~
./env.h:29:51: note: passing argument to parameter 'pat' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                                   ^
pop3.c:233:60: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  233 |       (mail_valid_net (pat,&pop3driver,NIL,tmp) && pmatch ("INBOX",tmp)))
      |                                                            ^~~~~~~
./misc.h:82:16: note: expanded from macro 'pmatch'
   82 |   pmatch_full (s,pat,NIL)
      |                ^
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
pop3.c:233:68: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  233 |       (mail_valid_net (pat,&pop3driver,NIL,tmp) && pmatch ("INBOX",tmp)))
      |                                                                    ^~~
./misc.h:82:18: note: expanded from macro 'pmatch'
   82 |   pmatch_full (s,pat,NIL)
      |                  ^~~
./env.h:29:51: note: passing argument to parameter 'pat' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                                   ^
pop3.c:248:37: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  248 |     if (pop3_valid (ref) && pmatch ("INBOX",pat)) {
      |                                     ^~~~~~~
./misc.h:82:16: note: expanded from macro 'pmatch'
   82 |   pmatch_full (s,pat,NIL)
      |                ^
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
pop3.c:248:45: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  248 |     if (pop3_valid (ref) && pmatch ("INBOX",pat)) {
      |                                             ^~~
./misc.h:82:18: note: expanded from macro 'pmatch'
   82 |   pmatch_full (s,pat,NIL)
      |                  ^~~
./env.h:29:51: note: passing argument to parameter 'pat' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                                   ^
pop3.c:253:64: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  253 |   else if (mail_valid_net (pat,&pop3driver,NIL,tmp) && pmatch ("INBOX",tmp)) {
      |                                                                ^~~~~~~
./misc.h:82:16: note: expanded from macro 'pmatch'
   82 |   pmatch_full (s,pat,NIL)
      |                ^
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
pop3.c:253:72: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  253 |   else if (mail_valid_net (pat,&pop3driver,NIL,tmp) && pmatch ("INBOX",tmp)) {
      |                                                                        ^~~
./misc.h:82:18: note: expanded from macro 'pmatch'
   82 |   pmatch_full (s,pat,NIL)
      |                  ^~~
./env.h:29:51: note: passing argument to parameter 'pat' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                                   ^
pop3.c:279:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  279 |   if (s = sm_read (&sdb)) do if (pop3_valid (s) && pmatch (s,mbx))
      |       ~~^~~~~~~~~~~~~~~~
pop3.c:279:9: note: place parentheses around the assignment to silence this warning
  279 |   if (s = sm_read (&sdb)) do if (pop3_valid (s) && pmatch (s,mbx))
      |         ^               
      |       (                 )
pop3.c:279:9: note: use '==' to turn this assignment into an equality comparison
  279 |   if (s = sm_read (&sdb)) do if (pop3_valid (s) && pmatch (s,mbx))
      |         ^
      |         ==
pop3.c:279:60: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  279 |   if (s = sm_read (&sdb)) do if (pop3_valid (s) && pmatch (s,mbx))
      |                                                            ^
./misc.h:82:16: note: expanded from macro 'pmatch'
   82 |   pmatch_full (s,pat,NIL)
      |                ^
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
pop3.c:279:62: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  279 |   if (s = sm_read (&sdb)) do if (pop3_valid (s) && pmatch (s,mbx))
      |                                                              ^~~
./misc.h:82:18: note: expanded from macro 'pmatch'
   82 |   pmatch_full (s,pat,NIL)
      |                  ^~~
./env.h:29:51: note: passing argument to parameter 'pat' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                                   ^
pop3.c:281:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  281 |   while (s = sm_read (&sdb));   /* until no more subscriptions */
      |          ~~^~~~~~~~~~~~~~~~
pop3.c:281:12: note: place parentheses around the assignment to silence this warning
  281 |   while (s = sm_read (&sdb));   /* until no more subscriptions */
      |            ^               
      |          (                 )
pop3.c:281:12: note: use '==' to turn this assignment into an equality comparison
  281 |   while (s = sm_read (&sdb));   /* until no more subscriptions */
      |            ^
      |            ==
pop3.c:429:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  429 |       if (LOCAL->loser = mb.loser) strcat (tmp,"/loser");
      |           ~~~~~~~~~~~~~^~~~~~~~~~
pop3.c:429:24: note: place parentheses around the assignment to silence this warning
  429 |       if (LOCAL->loser = mb.loser) strcat (tmp,"/loser");
      |                        ^         
      |           (                      )
pop3.c:429:24: note: use '==' to turn this assignment into an equality comparison
  429 |       if (LOCAL->loser = mb.loser) strcat (tmp,"/loser");
      |                        ^
      |                        ==
pop3.c:499:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  499 |     if (args = strchr (t,' ')) *args++ = '\0';
      |         ~~~~~^~~~~~~~~~~~~~~~
pop3.c:499:14: note: place parentheses around the assignment to silence this warning
  499 |     if (args = strchr (t,' ')) *args++ = '\0';
      |              ^               
      |         (                    )
pop3.c:499:14: note: use '==' to turn this assignment into an equality comparison
  499 |     if (args = strchr (t,' ')) *args++ = '\0';
      |              ^
      |              ==
pop3.c:500:27: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  500 |     if (!compare_cstring (t,"STLS")) LOCAL->cap.stls = T;
      |                           ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
pop3.c:500:29: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  500 |     if (!compare_cstring (t,"STLS")) LOCAL->cap.stls = T;
      |                             ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
pop3.c:501:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  501 |     else if (!compare_cstring (t,"PIPELINING")) LOCAL->cap.pipelining = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
pop3.c:501:34: warning: passing 'char[11]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  501 |     else if (!compare_cstring (t,"PIPELINING")) LOCAL->cap.pipelining = T;
      |                                  ^~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
pop3.c:502:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  502 |     else if (!compare_cstring (t,"RESP-CODES")) LOCAL->cap.respcodes = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
pop3.c:502:34: warning: passing 'char[11]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  502 |     else if (!compare_cstring (t,"RESP-CODES")) LOCAL->cap.respcodes = T;
      |                                  ^~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
pop3.c:503:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  503 |     else if (!compare_cstring (t,"TOP")) LOCAL->cap.top = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
pop3.c:503:34: warning: passing 'char[4]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  503 |     else if (!compare_cstring (t,"TOP")) LOCAL->cap.top = T;
      |                                  ^~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
pop3.c:504:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  504 |     else if (!compare_cstring (t,"UIDL")) LOCAL->cap.uidl = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
pop3.c:504:34: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  504 |     else if (!compare_cstring (t,"UIDL")) LOCAL->cap.uidl = T;
      |                                  ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
pop3.c:505:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  505 |     else if (!compare_cstring (t,"USER")) LOCAL->cap.user = T;
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
pop3.c:505:34: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  505 |     else if (!compare_cstring (t,"USER")) LOCAL->cap.user = T;
      |                                  ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
pop3.c:506:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  506 |     else if (!compare_cstring (t,"IMPLEMENTATION") && args)
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
pop3.c:506:34: warning: passing 'char[15]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  506 |     else if (!compare_cstring (t,"IMPLEMENTATION") && args)
      |                                  ^~~~~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
pop3.c:508:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  508 |     else if (!compare_cstring (t,"EXPIRE") && args) {
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
pop3.c:508:34: warning: passing 'char[7]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  508 |     else if (!compare_cstring (t,"EXPIRE") && args) {
      |                                  ^~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
pop3.c:510:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  510 |       if (s = strchr(args,' ')){/* separate time from possible USER */
      |           ~~^~~~~~~~~~~~~~~~~~
pop3.c:510:13: note: place parentheses around the assignment to silence this warning
  510 |       if (s = strchr(args,' ')){/* separate time from possible USER */
      |             ^                 
      |           (                   )
pop3.c:510:13: note: use '==' to turn this assignment into an equality comparison
  510 |       if (s = strchr(args,' ')){/* separate time from possible USER */
      |             ^
      |             ==
pop3.c:516:21: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  516 |         (!compare_cstring (args,"NEVER")) ? 65535 :
      |                            ^~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
pop3.c:516:26: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  516 |         (!compare_cstring (args,"NEVER")) ? 65535 :
      |                                 ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
pop3.c:517:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  517 |           ((s && !compare_cstring (s,"USER")) ? -atoi (args) : atoi (args));
      |                                    ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
pop3.c:517:31: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  517 |           ((s && !compare_cstring (s,"USER")) ? -atoi (args) : atoi (args));
      |                                      ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
pop3.c:519:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  519 |     else if (!compare_cstring (t,"LOGIN-DELAY") && args) {
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
pop3.c:519:34: warning: passing 'char[12]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  519 |     else if (!compare_cstring (t,"LOGIN-DELAY") && args) {
      |                                  ^~~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
pop3.c:521:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  521 |       if (s = strchr(args,' ')){/* separate time from possible USER */
      |           ~~^~~~~~~~~~~~~~~~~~
pop3.c:521:13: note: place parentheses around the assignment to silence this warning
  521 |       if (s = strchr(args,' ')){/* separate time from possible USER */
      |             ^                 
      |           (                   )
pop3.c:521:13: note: use '==' to turn this assignment into an equality comparison
  521 |       if (s = strchr(args,' ')){/* separate time from possible USER */
      |             ^
      |             ==
pop3.c:527:54: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  527 |       LOCAL->cap.delaysecs = (s && !compare_cstring (s,"USER")) ?
      |                                                      ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
pop3.c:527:56: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  527 |       LOCAL->cap.delaysecs = (s && !compare_cstring (s,"USER")) ?
      |                                                        ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
pop3.c:530:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  530 |     else if (!compare_cstring (t,"SASL") && args)
      |                                ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
pop3.c:530:34: warning: passing 'char[5]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  530 |     else if (!compare_cstring (t,"SASL") && args)
      |                                  ^~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
pop3.c:784:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  784 |                           mail_uid_sequence (stream,sequence) :
      |                                                     ^~~~~~~~
./mail.h:1756:59: note: passing argument to parameter 'sequence' here
 1756 | long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                           ^
pop3.c:785:28: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  785 |                           mail_sequence (stream,sequence)))
      |                                                 ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
pop3.c:843:48: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  843 |     else if (elt->private.msg.header.text.size = pop3_cache (stream,elt))
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
pop3.c:843:48: note: place parentheses around the assignment to silence this warning
  843 |     else if (elt->private.msg.header.text.size = pop3_cache (stream,elt))
      |                                                ^                        
      |              (                                                          )
pop3.c:843:48: note: use '==' to turn this assignment into an equality comparison
  843 |     else if (elt->private.msg.header.text.size = pop3_cache (stream,elt))
      |                                                ^
      |                                                ==
pop3.c:948:30: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  948 |                         mail_uid_sequence (stream,sequence) :
      |                                                   ^~~~~~~~
./mail.h:1756:59: note: passing argument to parameter 'sequence' here
 1756 | long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                           ^
pop3.c:949:26: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  949 |                         mail_sequence (stream,sequence)) :
      |                                               ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
pop3.c:947:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  947 |   if (ret = sequence ? ((options & EX_UID) ?
      |       ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  948 |                         mail_uid_sequence (stream,sequence) :
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  949 |                         mail_sequence (stream,sequence)) :
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  950 |       LONGT) {                  /* build selected sequence if needed */
      |       ~~~~~
pop3.c:947:11: note: place parentheses around the assignment to silence this warning
  947 |   if (ret = sequence ? ((options & EX_UID) ?
      |           ^
      |       (
  948 |                         mail_uid_sequence (stream,sequence) :
  949 |                         mail_sequence (stream,sequence)) :
  950 |       LONGT) {                  /* build selected sequence if needed */
      |            
      |            )
pop3.c:947:11: note: use '==' to turn this assignment into an equality comparison
  947 |   if (ret = sequence ? ((options & EX_UID) ?
      |           ^
      |           ==
50 warnings generated.
cc -c `cat CFLAGS` unix.c
unix.c:231:2: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
  231 |         utime (file,tp);        /* set the times */
      |         ^
unix.c:418:8: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  418 |         if (s = strrchr (s,'/')) {
      |             ~~^~~~~~~~~~~~~~~~~
unix.c:418:8: note: place parentheses around the assignment to silence this warning
  418 |         if (s = strrchr (s,'/')) {
      |               ^                
      |             (                  )
unix.c:418:8: note: use '==' to turn this assignment into an equality comparison
  418 |         if (s = strrchr (s,'/')) {
      |               ^
      |               ==
unix.c:468:37: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  468 |   stream->inbox = !compare_cstring (stream->mailbox,"INBOX");
      |                                     ^~~~~~~~~~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
unix.c:468:53: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  468 |   stream->inbox = !compare_cstring (stream->mailbox,"INBOX");
      |                                                     ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
unix.c:480:14: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  480 |   LOCAL->buf = (char *) fs_get (CHUNKSIZE);
      |              ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
unix.c:626:18: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  626 |       LOCAL->buf = (char *) fs_get ((LOCAL->buflen =
      |                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  627 |                                      elt->private.msg.header.text.size) + 1);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unix.c:640:23: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  640 |     read (LOCAL->fd,s = (char *) fs_get (elt->private.msg.header.text.size+1),
      |                       ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unix.c:653:26: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  653 |   *length = mail_filter (LOCAL->buf,*length,unix_hlines,FT_NOT);
      |                          ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
./mail.h:1699:34: note: passing argument to parameter 'text' here
 1699 | unsigned long mail_filter (char *text,unsigned long len,STRINGLIST *lines,
      |                                  ^
unix.c:703:18: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  703 |       LOCAL->buf = (char *) fs_get ((LOCAL->buflen =
      |                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  704 |                                      elt->private.msg.text.text.size) + 1);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unix.c:731:13: warning: assigning to 'char *' from 'unsigned char[65536]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  731 |     d.chunk = tmp;              /* initial buffer chunk */
      |             ^ ~~~
unix.c:734:12: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  734 |     for (s = (char *) LOCAL->text.data; SIZE (&bs);) switch (c = SNX (&bs)) {
      |            ^ ~~~~~~~~~~~~~~~~~~~~~~~~~
unix.c:787:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  787 |           sprintf (LOCAL->buf,"Mailbox stat failed, aborted: %s",
      |                    ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
unix.c:789:12: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  789 |           MM_LOG (LOCAL->buf,ERROR);
      |                   ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
unix.c:846:31: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  846 |                          mail_uid_sequence (stream,sequence) :
      |                                                    ^~~~~~~~
./mail.h:1756:59: note: passing argument to parameter 'sequence' here
 1756 | long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                           ^
unix.c:847:27: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  847 |                          mail_sequence (stream,sequence)) : LONGT) &&
      |                                                ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
unix.c:845:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  845 |   if (ret = (sequence ? ((options & EX_UID) ?
      |       ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  846 |                          mail_uid_sequence (stream,sequence) :
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  847 |                          mail_sequence (stream,sequence)) : LONGT) &&
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  848 |       LOCAL && (LOCAL->ld >= 0) && !stream->lock &&
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  849 |       unix_parse (stream,&lock,LOCK_EX)) {
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unix.c:845:11: note: place parentheses around the assignment to silence this warning
  845 |   if (ret = (sequence ? ((options & EX_UID) ?
      |           ^
      |       (
  846 |                          mail_uid_sequence (stream,sequence) :
  847 |                          mail_sequence (stream,sequence)) : LONGT) &&
  848 |       LOCAL && (LOCAL->ld >= 0) && !stream->lock &&
  849 |       unix_parse (stream,&lock,LOCK_EX)) {
      |                                        
      |                                        )
unix.c:845:11: note: use '==' to turn this assignment into an equality comparison
  845 |   if (ret = (sequence ? ((options & EX_UID) ?
      |           ^
      |           ==
unix.c:860:27: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  860 |       if (i) sprintf (msg = LOCAL->buf,"Expunged %lu messages",i);
      |                           ^ ~~~~~~~~~~
unix.c:902:56: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  902 |   if (!((options & CP_UID) ? mail_uid_sequence (stream,sequence) :
      |                                                        ^~~~~~~~
./mail.h:1756:59: note: passing argument to parameter 'sequence' here
 1756 | long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                           ^
unix.c:903:24: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  903 |         mail_sequence (stream,sequence))) return NIL;
      |                               ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
unix.c:909:28: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  909 |       if (compare_cstring (mailbox,"INBOX")) {
      |                            ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
unix.c:909:36: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  909 |       if (compare_cstring (mailbox,"INBOX")) {
      |                                    ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
unix.c:916:16: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  916 |       sprintf (LOCAL->buf,"Can't access destination: %.80s",mailbox);
      |                ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
unix.c:917:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  917 |       MM_LOG (LOCAL->buf,ERROR);
      |               ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
unix.c:921:16: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  921 |       sprintf (LOCAL->buf,"Invalid UNIX-format mailbox name: %.80s",mailbox);
      |                ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
unix.c:922:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  922 |       MM_LOG (LOCAL->buf,ERROR);
      |               ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
unix.c:926:16: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  926 |       sprintf (LOCAL->buf,"Not a UNIX-format mailbox: %.80s",mailbox);
      |                ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
unix.c:927:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  927 |       MM_LOG (LOCAL->buf,ERROR);
      |               ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
unix.c:936:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  936 |     sprintf (LOCAL->buf,"Unable to write-open mailbox for COPYUID: %.80s",
      |              ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
unix.c:938:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  938 |     MM_LOG (LOCAL->buf,WARN);
      |             ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
unix.c:947:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  947 |     sprintf (LOCAL->buf,"Can't open destination mailbox: %s",strerror (errno));
      |              ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
unix.c:948:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  948 |     MM_LOG (LOCAL->buf,ERROR);/* log the error */
      |             ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
unix.c:957:21: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  957 |       if (write (fd,LOCAL->buf,elt->private.special.text.size) < 0) ret = NIL;
      |                     ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
./env_unix.h:89:31: note: passing argument to parameter 'buf' here
   89 | long safe_write (int fd,char *buf,long nbytes);
      |                               ^
unix.c:965:27: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  965 |             unix_xstatus (stream,LOCAL->buf,elt,++(tstream->uid_last),LONGT) :
      |                                  ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
unix.c:131:54: note: passing argument to parameter 'status' here
  131 | unsigned long unix_xstatus (MAILSTREAM *stream,char *status,MESSAGECACHE *elt,
      |                                                      ^
unix.c:966:27: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  966 |             unix_xstatus (stream,LOCAL->buf,elt,NIL,NIL);
      |                                  ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
unix.c:131:54: note: passing argument to parameter 'status' here
  131 | unsigned long unix_xstatus (MAILSTREAM *stream,char *status,MESSAGECACHE *elt,
      |                                                      ^
unix.c:967:18: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  967 |           if (write (fd,LOCAL->buf,j) < 0) ret = NIL;
      |                         ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
./env_unix.h:89:31: note: passing argument to parameter 'buf' here
   89 | long safe_write (int fd,char *buf,long nbytes);
      |                               ^
unix.c:981:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  981 |     sprintf (LOCAL->buf,"Message copy failed: %s",strerror (errno));
      |              ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
unix.c:998:3: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
  998 |   utime (file,tp);              /* set the times */
      |   ^
unix.c:1007:21: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1007 |   if (!ret) MM_LOG (LOCAL->buf,ERROR);
      |                     ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
unix.c:1051:26: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1051 |     if (compare_cstring (mailbox,"INBOX")) {
      |                          ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
unix.c:1051:34: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1051 |     if (compare_cstring (mailbox,"INBOX")) {
      |                                  ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
unix.c:1093:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1093 |     if (!mail_parse_date (&elt,date)) {
      |                                ^~~~
./mail.h:1689:56: note: passing argument to parameter 'string' here
 1689 | long mail_parse_date (MESSAGECACHE *elt,unsigned char *string);
      |                                                        ^
unix.c:1159:3: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 1159 |   utime (file,tp);              /* set the times */
      |   ^
unix.c:1196:12: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1196 |     if ((s = stream->user_flags[find_rightmost_bit (&uf)]) &&
      |            ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unix.c:1257:23: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1257 |       for (x = tmp; x = strchr (x,'\r'); --j) memmove (x,x+1,j-(x-tmp));
      |                     ~~^~~~~~~~~~~~~~~~~
unix.c:1257:23: note: place parentheses around the assignment to silence this warning
 1257 |       for (x = tmp; x = strchr (x,'\r'); --j) memmove (x,x+1,j-(x-tmp));
      |                       ^                
      |                     (                  )
unix.c:1257:23: note: use '==' to turn this assignment into an equality comparison
 1257 |       for (x = tmp; x = strchr (x,'\r'); --j) memmove (x,x+1,j-(x-tmp));
      |                       ^
      |                       ==
unix.c:1260:14: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
 1260 |       if ((c == '\n')) switch (tmp[0]) {
      |            ~~^~~~~~~
unix.c:1260:14: note: remove extraneous parentheses around the comparison to silence this warning
 1260 |       if ((c == '\n')) switch (tmp[0]) {
      |           ~  ^      ~
unix.c:1260:14: note: use '=' to turn this equality comparison into an assignment
 1260 |       if ((c == '\n')) switch (tmp[0]) {
      |              ^~
      |              =
unix.c:1424:17: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 1424 |     if (now && !utime (stream->mailbox,tp)) LOCAL->filetime = tp[1];
      |                 ^
unix.c:1462:14: warning: passing 'unsigned char[1024]' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1462 |     sprintf (tmp,"Mailbox open failed, aborted: %s",strerror (errno));
      |              ^~~
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
unix.c:1463:13: warning: passing 'unsigned char[1024]' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1463 |     MM_LOG (tmp,ERROR);
      |             ^~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
unix.c:1472:14: warning: passing 'unsigned char[1024]' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1472 |     sprintf (tmp,"Mailbox shrank from %lu to %lu bytes, aborted",
      |              ^~~
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
unix.c:1474:13: warning: passing 'unsigned char[1024]' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1474 |     MM_LOG (tmp,ERROR);         /* this is pretty bad */
      |             ^~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
unix.c:1483:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1483 |   else if (i = sbuf.st_size - LOCAL->filesize) {
      |            ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unix.c:1483:14: note: place parentheses around the assignment to silence this warning
 1483 |   else if (i = sbuf.st_size - LOCAL->filesize) {
      |              ^                               
      |            (                                 )
unix.c:1483:14: note: use '==' to turn this assignment into an equality comparison
 1483 |   else if (i = sbuf.st_size - LOCAL->filesize) {
      |              ^
      |              ==
unix.c:1486:13: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1486 |     d.chunk = LOCAL->buf;       /* initial buffer chunk */
      |             ^ ~~~~~~~~~~
unix.c:1495:9: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1495 |       s = unix_mbxline (stream,&bs,&i);
      |         ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unix.c:1499:11: warning: passing 'unsigned char[1024]' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1499 |         sprintf (tmp,"Unexpected changes to mailbox (try restarting): %.20s",
      |                  ^~~
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
unix.c:1501:10: warning: passing 'unsigned char[1024]' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1501 |         MM_LOG (tmp,ERROR);
      |                 ^~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
unix.c:1550:13: warning: passing 'unsigned char[1024]' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1550 |           sprintf (tmp,"Unable to parse internal date: %s",(char *) date);
      |                    ^~~
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
unix.c:1551:12: warning: passing 'unsigned char[1024]' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1551 |           MM_LOG (tmp,WARN);
      |                   ^~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
unix.c:1555:10: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1555 |           s = t = unix_mbxline (stream,&bs,&i);
      |                 ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unix.c:1572:24: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1572 |                   if (!(u = strpbrk (s," \n\r"))) u = s + strlen (s);
      |                                      ^
/usr/include/string.h:116:27: note: passing argument to parameter here
  116 | char    *strpbrk(const char *, const char *) __pure;
      |                              ^
unix.c:1572:13: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1572 |                   if (!(u = strpbrk (s," \n\r"))) u = s + strlen (s);
      |                           ^ ~~~~~~~~~~~~~~~~~~~
unix.c:1572:53: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1572 |                   if (!(u = strpbrk (s," \n\r"))) u = s + strlen (s);
      |                                                                   ^
/usr/include/string.h:100:28: note: passing argument to parameter here
  100 | size_t   strlen(const char *) __pure;
      |                             ^
unix.c:1578:34: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1578 |                       if (!compare_csizedtext (stream->user_flags[j],&uf)) {
      |                                                ^~~~~~~~~~~~~~~~~~~~~
./misc.h:110:40: note: passing argument to parameter 's1' here
  110 | int compare_csizedtext (unsigned char *s1,SIZEDTEXT *s2);
      |                                        ^
unix.c:1626:22: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1626 |                       u = strpbrk (s," \n\r");
      |                                    ^
/usr/include/string.h:116:27: note: passing argument to parameter here
  116 | char    *strpbrk(const char *, const char *) __pure;
      |                              ^
unix.c:1626:11: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1626 |                       u = strpbrk (s," \n\r");
      |                         ^ ~~~~~~~~~~~~~~~~~~~
unix.c:1633:35: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1633 |                         strncpy (stream->user_flags[j],s,k);
      |                                                        ^
/usr/include/string.h:106:57: note: passing argument to parameter here
  106 | char    *strncpy(char * __restrict, const char * __restrict, size_t);
      |                                                            ^
unix.c:1661:16: warning: passing 'unsigned char[1024]' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1661 |                     sprintf (tmp,"Message %lu UID %lu already has UID %lu",
      |                              ^~~
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
unix.c:1666:16: warning: passing 'unsigned char[1024]' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1666 |                     sprintf (tmp,"Message %lu UID %lu less than %lu",
      |                              ^~~
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
unix.c:1686:13: warning: passing 'unsigned char[1024]' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1686 |                   MM_LOG (tmp,WARN);
      |                           ^~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
unix.c:1742:34: warning: passing 'char[7]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1742 |               if (!compare_cstring (tmp,"STATUS") ||
      |                                         ^~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
unix.c:1743:27: warning: passing 'char[9]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1743 |                   !compare_cstring (tmp,"X-STATUS") ||
      |                                         ^~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
unix.c:1744:27: warning: passing 'char[11]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1744 |                   !compare_cstring (tmp,"X-KEYWORDS") ||
      |                                         ^~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
unix.c:1745:27: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1745 |                   !compare_cstring (tmp,"X-UID") ||
      |                                         ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
unix.c:1746:27: warning: passing 'char[7]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1746 |                   !compare_cstring (tmp,"X-IMAP") ||
      |                                         ^~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
unix.c:1747:27: warning: passing 'char[11]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1747 |                   !compare_cstring (tmp,"X-IMAPBASE")) {
      |                                         ^~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
unix.c:1770:14: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1770 |               if (u = strpbrk (err,"\r\n")) *u = '\0';
      |                     ^ ~~~~~~~~~~~~~~~~~~~~
unix.c:1770:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1770 |               if (u = strpbrk (err,"\r\n")) *u = '\0';
      |                   ~~^~~~~~~~~~~~~~~~~~~~~~
unix.c:1770:14: note: place parentheses around the assignment to silence this warning
 1770 |               if (u = strpbrk (err,"\r\n")) *u = '\0';
      |                     ^                     
      |                   (                       )
unix.c:1770:14: note: use '==' to turn this assignment into an equality comparison
 1770 |               if (u = strpbrk (err,"\r\n")) *u = '\0';
      |                     ^
      |                     ==
unix.c:1796:6: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1796 |           s = unix_mbxline (stream,&bs,&i);
      |             ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unix.c:2015:44: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2015 |     for (n = 0; n < NUSERFLAGS; ++n) if (t = stream->user_flags[n])
      |                                          ~~^~~~~~~~~~~~~~~~~~~~~~~
unix.c:2015:44: note: place parentheses around the assignment to silence this warning
 2015 |     for (n = 0; n < NUSERFLAGS; ++n) if (t = stream->user_flags[n])
      |                                            ^                      
      |                                          (                        )
unix.c:2015:44: note: use '==' to turn this assignment into an equality comparison
 2015 |     for (n = 0; n < NUSERFLAGS; ++n) if (t = stream->user_flags[n])
      |                                            ^
      |                                            ==
unix.c:2037:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2037 |     if (n = elt->user_flags) do {
      |         ~~^~~~~~~~~~~~~~~~~
unix.c:2037:11: note: place parentheses around the assignment to silence this warning
 2037 |     if (n = elt->user_flags) do {
      |           ^                
      |         (                  )
unix.c:2037:11: note: use '==' to turn this assignment into an equality comparison
 2037 |     if (n = elt->user_flags) do {
      |           ^
      |           ==
unix.c:2082:60: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2082 |   unsigned long size = LOCAL->pseudo ? unix_pseudo (stream,LOCAL->buf) : 0;
      |                                                            ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
unix.c:1962:53: note: passing argument to parameter 'hdr' here
 1962 | unsigned long unix_pseudo (MAILSTREAM *stream,char *hdr)
      |                                                     ^
unix.c:2090:23: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2090 |         unix_xstatus (stream,LOCAL->buf,elt,NIL,flag) +
      |                              ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
unix.c:1989:54: note: passing argument to parameter 'status' here
 1989 | unsigned long unix_xstatus (MAILSTREAM *stream,char *status,MESSAGECACHE *elt,
      |                                                      ^
unix.c:2098:32: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2098 |     size = unix_pseudo (stream,LOCAL->buf);
      |                                ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
unix.c:1962:53: note: passing argument to parameter 'hdr' here
 1962 | unsigned long unix_pseudo (MAILSTREAM *stream,char *hdr)
      |                                                     ^
unix.c:2101:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2101 |   if (ret = unix_extend (stream,size)) {
      |       ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
unix.c:2101:11: note: place parentheses around the assignment to silence this warning
 2101 |   if (ret = unix_extend (stream,size)) {
      |           ^                          
      |       (                              )
unix.c:2101:11: note: use '==' to turn this assignment into an equality comparison
 2101 |   if (ret = unix_extend (stream,size)) {
      |           ^
      |           ==
unix.c:2118:53: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2118 |       unix_write (&f,LOCAL->buf,unix_pseudo (stream,LOCAL->buf));
      |                                                     ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
unix.c:1962:53: note: passing argument to parameter 'hdr' here
 1962 | unsigned long unix_pseudo (MAILSTREAM *stream,char *hdr)
      |                                                     ^
unix.c:2118:22: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2118 |       unix_write (&f,LOCAL->buf,unix_pseudo (stream,LOCAL->buf));
      |                      ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
unix.c:136:36: note: passing argument to parameter 's' here
  136 | void unix_write (UNIXFILE *f,char *s,unsigned long i);
      |                                    ^
unix.c:2135:29: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2135 |               unix_xstatus (stream,LOCAL->buf,elt,NIL,flag)))) {
      |                                    ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
unix.c:1989:54: note: passing argument to parameter 'status' here
 1989 | unsigned long unix_xstatus (MAILSTREAM *stream,char *status,MESSAGECACHE *elt,
      |                                                      ^
unix.c:2149:19: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2149 |           unix_write (&f,LOCAL->buf,elt->private.special.text.size);
      |                          ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
unix.c:136:36: note: passing argument to parameter 's' here
  136 | void unix_write (UNIXFILE *f,char *s,unsigned long i);
      |                                    ^
unix.c:2170:34: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2170 |                       j = unix_xstatus (stream,LOCAL->buf,elt,NIL,flag));
      |                                                ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
unix.c:1989:54: note: passing argument to parameter 'status' here
 1989 | unsigned long unix_xstatus (MAILSTREAM *stream,char *status,MESSAGECACHE *elt,
      |                                                      ^
unix.c:2169:19: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2169 |           unix_write (&f,LOCAL->buf,
      |                          ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
unix.c:136:36: note: passing argument to parameter 's' here
  136 | void unix_write (UNIXFILE *f,char *s,unsigned long i);
      |                                    ^
unix.c:2250:10: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 2250 |     if (!utime (stream->mailbox,tp)) LOCAL->filetime = tp[1];
      |          ^
unix.c:2255:16: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2255 |       sprintf (LOCAL->buf,"Mailbox open failed, aborted: %s",strerror (errno));
      |                ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
unix.c:2256:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2256 |       MM_LOG (LOCAL->buf,ERROR);
      |               ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
unix.c:2277:18: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2277 |       LOCAL->buf = (char *) fs_get ((LOCAL->buflen = i) + 1);
      |                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unix.c:2282:29: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2282 |       if ((write (LOCAL->fd,LOCAL->buf,i) >= 0) && !fsync (LOCAL->fd)) break;
      |                             ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
./env_unix.h:89:31: note: passing argument to parameter 'buf' here
   89 | long safe_write (int fd,char *buf,long nbytes);
      |                               ^
unix.c:2288:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2288 |           sprintf (LOCAL->buf,"Unable to extend mailbox: %s",strerror (e));
      |                    ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
unix.c:2289:33: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2289 |           if (!stream->silent) MM_LOG (LOCAL->buf,ERROR);
      |                                        ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
unix.c:2311:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2311 |     if (j = i ? ((f->buflen - i) % OVERFLOWBUFLEN) : f->buflen) {
      |         ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unix.c:2311:11: note: place parentheses around the assignment to silence this warning
 2311 |     if (j = i ? ((f->buflen - i) % OVERFLOWBUFLEN) : f->buflen) {
      |           ^                                                   
      |         (                                                     )
unix.c:2311:11: note: use '==' to turn this assignment into an equality comparison
 2311 |     if (j = i ? ((f->buflen - i) % OVERFLOWBUFLEN) : f->buflen) {
      |           ^
      |           ==
unix.c:2327:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2327 |     if (j = min (i,f->protect - f->filepos)) {
      |         ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unix.c:2327:11: note: place parentheses around the assignment to silence this warning
 2327 |     if (j = min (i,f->protect - f->filepos)) {
      |           ^                                
      |         (                                  )
unix.c:2327:11: note: use '==' to turn this assignment into an equality comparison
 2327 |     if (j = min (i,f->protect - f->filepos)) {
      |           ^
      |           ==
unix.c:2461:25: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2461 |   if (!compare_cstring (name,"INBOX") && (unix_valid ("mbox") || !errno) &&
      |                         ^~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
unix.c:2461:30: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2461 |   if (!compare_cstring (name,"INBOX") && (unix_valid ("mbox") || !errno) &&
      |                              ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
unix.c:2476:25: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2476 |   if (!compare_cstring (mailbox,"INBOX")) return unix_create (NIL,"mbox");
      |                         ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
unix.c:2476:33: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2476 |   if (!compare_cstring (mailbox,"INBOX")) return unix_create (NIL,"mbox");
      |                                 ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
unix.c:2604:11: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2604 |         sprintf (LOCAL->buf,"Mail drop %s is not in standard Unix format",
      |                  ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
unix.c:2606:10: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2606 |         MM_LOG (LOCAL->buf,ERROR);
      |                 ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
unix.c:2618:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2618 |           sprintf (LOCAL->buf,"New mail move failed: %s",strerror (errno));
      |                    ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
unix.c:2619:12: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2619 |           MM_LOG (LOCAL->buf,WARN);
      |                   ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
unix.c:2625:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2625 |           sprintf (LOCAL->buf,"Mail drop %s lock failure, old=%lu now=%lu",
      |                    ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
unix.c:2627:12: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2627 |           MM_LOG (LOCAL->buf,ERROR);
      |                   ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
unix.c:2643:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2643 |             sprintf (LOCAL->buf,"Moved %lu bytes of new mail to %s from %s",
      |                      ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
unix.c:2648:19: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2648 |             else MM_LOG (LOCAL->buf,WARN);
      |                          ^~~~~~~~~~
unix.c:81:15: note: expanded from macro 'LOCAL'
   81 | #define LOCAL ((UNIXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
110 warnings generated.
cc -c `cat CFLAGS` mbx.c
mbx.c:303:7: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
  303 |       utime (tmp,tp);           /* set the times */
      |       ^
mbx.c:307:61: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  307 |   else if (((error = errno) == ENOENT) && !compare_cstring (name,"INBOX"))
      |                                                             ^~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mbx.c:307:66: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  307 |   else if (((error = errno) == ENOENT) && !compare_cstring (name,"INBOX"))
      |                                                                  ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mbx.c:480:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  480 |     if (s = strrchr (tmp,'/')) {
      |         ~~^~~~~~~~~~~~~~~~~~~
mbx.c:480:11: note: place parentheses around the assignment to silence this warning
  480 |     if (s = strrchr (tmp,'/')) {
      |           ^                  
      |         (                    )
mbx.c:480:11: note: use '==' to turn this assignment into an equality comparison
  480 |     if (s = strrchr (tmp,'/')) {
      |           ^
      |           ==
mbx.c:506:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  506 |   if (ret && !compare_cstring (old,"INBOX")) mbx_create (NIL,"INBOX");
      |                                ^~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mbx.c:506:36: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  506 |   if (ret && !compare_cstring (old,"INBOX")) mbx_create (NIL,"INBOX");
      |                                    ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mbx.c:587:14: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  587 |   LOCAL->buf = (char *) fs_get (CHUNKSIZE);
      |              ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
mbx.c:590:37: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  590 |   stream->inbox = !compare_cstring (stream->mailbox,"INBOX");
      |                                     ^~~~~~~~~~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mbx.c:590:53: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  590 |   stream->inbox = !compare_cstring (stream->mailbox,"INBOX");
      |                                                     ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mbx.c:677:53: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  677 |       ((flags & FT_UID) ? mail_uid_sequence (stream,sequence) :
      |                                                     ^~~~~~~~
./mail.h:1756:59: note: passing argument to parameter 'sequence' here
 1756 | long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                           ^
mbx.c:678:30: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  678 |        mail_sequence (stream,sequence)))
      |                              ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
mbx.c:706:18: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  706 |       LOCAL->buf = (char *) fs_get ((LOCAL->buflen = *length) + 1);
      |                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mbx.c:709:23: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  709 |     read (LOCAL->fd,s = LOCAL->buf,*length);
      |                       ^ ~~~~~~~~~~
mbx.c:746:11: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  746 |   d.chunk = LOCAL->buf; /* initial buffer chunk */
      |           ^ ~~~~~~~~~~
mbx.c:777:5: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
  777 |     utime (stream->mailbox,tp);
      |     ^
mbx.c:825:20: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  825 |       else if (ret = mbx_parse (stream)) {
      |                ~~~~^~~~~~~~~~~~~~~~~~~~
mbx.c:825:20: note: place parentheses around the assignment to silence this warning
  825 |       else if (ret = mbx_parse (stream)) {
      |                    ^                   
      |                (                       )
mbx.c:825:20: note: use '==' to turn this assignment into an equality comparison
  825 |       else if (ret = mbx_parse (stream)) {
      |                    ^
      |                    ==
mbx.c:829:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  829 |           if (elt = mbx_elt (stream,i,LOCAL->expok)) {
      |               ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mbx.c:829:12: note: place parentheses around the assignment to silence this warning
  829 |           if (elt = mbx_elt (stream,i,LOCAL->expok)) {
      |                   ^                                
      |               (                                    )
mbx.c:829:12: note: use '==' to turn this assignment into an equality comparison
  829 |           if (elt = mbx_elt (stream,i,LOCAL->expok)) {
      |                   ^
      |                   ==
mbx.c:856:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  856 |           sprintf (LOCAL->buf,"Reclaimed %lu bytes of expunged space",i);
      |                    ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mbx.c:857:12: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  857 |           MM_LOG (LOCAL->buf,(long) NIL);
      |                   ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mbx.c:889:30: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  889 |                         mail_uid_sequence (stream,sequence) :
      |                                                   ^~~~~~~~
./mail.h:1756:59: note: passing argument to parameter 'sequence' here
 1756 | long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                           ^
mbx.c:890:26: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  890 |                         mail_sequence (stream,sequence)) : LONGT) {
      |                                               ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
mbx.c:888:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  888 |   if (ret = sequence ? ((options & EX_UID) ?
      |       ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  889 |                         mail_uid_sequence (stream,sequence) :
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  890 |                         mail_sequence (stream,sequence)) : LONGT) {
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mbx.c:888:11: note: place parentheses around the assignment to silence this warning
  888 |   if (ret = sequence ? ((options & EX_UID) ?
      |           ^
      |       (
  889 |                         mail_uid_sequence (stream,sequence) :
  890 |                         mail_sequence (stream,sequence)) : LONGT) {
      |                                                                 
      |                                                                 )
mbx.c:888:11: note: use '==' to turn this assignment into an equality comparison
  888 |   if (ret = sequence ? ((options & EX_UID) ?
      |           ^
      |           ==
mbx.c:895:19: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  895 |     else if (nexp = mbx_rewrite (stream,&reclaimed,sequence ? -1 : 1)) {
      |              ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mbx.c:895:19: note: place parentheses around the assignment to silence this warning
  895 |     else if (nexp = mbx_rewrite (stream,&reclaimed,sequence ? -1 : 1)) {
      |                   ^                                                  
      |              (                                                       )
mbx.c:895:19: note: use '==' to turn this assignment into an equality comparison
  895 |     else if (nexp = mbx_rewrite (stream,&reclaimed,sequence ? -1 : 1)) {
      |                   ^
      |                   ==
mbx.c:896:16: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  896 |       sprintf (LOCAL->buf,"Expunged %lu messages",nexp);
      |                ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mbx.c:897:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  897 |       MM_LOG (LOCAL->buf,(long) NIL);
      |               ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mbx.c:900:16: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  900 |       sprintf (LOCAL->buf,"Reclaimed %lu bytes of expunged space",reclaimed);
      |                ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mbx.c:901:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  901 |       MM_LOG (LOCAL->buf,(long) NIL);
      |               ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mbx.c:938:8: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  938 |         if (j = hdrlen + txtlen) {
      |             ~~^~~~~~~~~~~~~~~~~
mbx.c:938:8: note: place parentheses around the assignment to silence this warning
  938 |         if (j = hdrlen + txtlen) {
      |               ^                
      |             (                  )
mbx.c:938:8: note: use '==' to turn this assignment into an equality comparison
  938 |         if (j = hdrlen + txtlen) {
      |               ^
      |               ==
mbx.c:940:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  940 |           mail_date (LOCAL->buf,elt = mail_elt (sysibx,i));
      |                      ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
./mail.h:1687:24: note: passing argument to parameter 'string' here
 1687 | char *mail_date (char *string,MESSAGECACHE *elt);
      |                        ^
mbx.c:941:34: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  941 |           sprintf (LOCAL->buf + strlen (LOCAL->buf),
      |                                         ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/string.h:100:28: note: passing argument to parameter here
  100 | size_t   strlen(const char *) __pure;
      |                             ^
mbx.c:941:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  941 |           sprintf (LOCAL->buf + strlen (LOCAL->buf),
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mbx.c:947:45: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  947 |           if ((write (LOCAL->fd,LOCAL->buf,strlen (LOCAL->buf)) < 0) ||
      |                                                    ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/string.h:100:28: note: passing argument to parameter here
  100 | size_t   strlen(const char *) __pure;
      |                             ^
mbx.c:947:26: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  947 |           if ((write (LOCAL->fd,LOCAL->buf,strlen (LOCAL->buf)) < 0) ||
      |                                 ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
./env_unix.h:89:31: note: passing argument to parameter 'buf' here
   89 | long safe_write (int fd,char *buf,long nbytes);
      |                               ^
mbx.c:963:11: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  963 |         sprintf (LOCAL->buf,"Can't copy new mail: %s",strerror (errno));
      |                  ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mbx.c:964:10: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  964 |         MM_LOG (LOCAL->buf,WARN);
      |                 ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mbx.c:999:56: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  999 |   if (!((options & CP_UID) ? mail_uid_sequence (stream,sequence) :
      |                                                        ^~~~~~~~
./mail.h:1756:59: note: passing argument to parameter 'sequence' here
 1756 | long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                           ^
mbx.c:1000:24: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1000 |         mail_sequence (stream,sequence))) return NIL;
      |                               ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
mbx.c:1009:16: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1009 |       sprintf (LOCAL->buf,"Can't access destination: %.80s",mailbox);
      |                ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mbx.c:1010:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1010 |       MM_LOG (LOCAL->buf,ERROR);
      |               ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mbx.c:1014:16: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1014 |       sprintf (LOCAL->buf,"Invalid MBX-format mailbox name: %.80s",mailbox);
      |                ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mbx.c:1015:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1015 |       MM_LOG (LOCAL->buf,ERROR);
      |               ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mbx.c:1019:16: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1019 |       sprintf (LOCAL->buf,"Not a MBX-format mailbox: %.80s",mailbox);
      |                ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mbx.c:1020:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1020 |       MM_LOG (LOCAL->buf,ERROR);
      |               ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mbx.c:1032:17: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1032 |       mail_date(LOCAL->buf,elt);/* build target header */
      |                 ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
./mail.h:1687:24: note: passing argument to parameter 'string' here
 1687 | char *mail_date (char *string,MESSAGECACHE *elt);
      |                        ^
mbx.c:1035:8: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1035 |         if (s = stream->user_flags[find_rightmost_bit (&j)])
      |             ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mbx.c:1035:8: note: place parentheses around the assignment to silence this warning
 1035 |         if (s = stream->user_flags[find_rightmost_bit (&j)])
      |               ^                                            
      |             (                                              )
mbx.c:1035:8: note: use '==' to turn this assignment into an equality comparison
 1035 |         if (s = stream->user_flags[find_rightmost_bit (&j)])
      |               ^
      |               ==
mbx.c:1037:28: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1037 |             if (!compare_cstring (s,t) && (k |= 1 << m)) break;
      |                                   ^
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mbx.c:1037:30: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1037 |             if (!compare_cstring (s,t) && (k |= 1 << m)) break;
      |                                     ^
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mbx.c:1038:34: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1038 |       sprintf (LOCAL->buf+strlen(LOCAL->buf),",%lu;%08lx%04x-%08lx\015\012",
      |                                  ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/string.h:100:28: note: passing argument to parameter here
  100 | size_t   strlen(const char *) __pure;
      |                             ^
mbx.c:1038:16: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1038 |       sprintf (LOCAL->buf+strlen(LOCAL->buf),",%lu;%08lx%04x-%08lx\015\012",
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mbx.c:1044:47: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1044 |       if (ret = (write (fd,LOCAL->buf,strlen (LOCAL->buf)) > 0)) {
      |                                               ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/string.h:100:28: note: passing argument to parameter here
  100 | size_t   strlen(const char *) __pure;
      |                             ^
mbx.c:1044:28: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1044 |       if (ret = (write (fd,LOCAL->buf,strlen (LOCAL->buf)) > 0)) {
      |                            ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
./env_unix.h:89:31: note: passing argument to parameter 'buf' here
   89 | long safe_write (int fd,char *buf,long nbytes);
      |                               ^
mbx.c:1044:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1044 |       if (ret = (write (fd,LOCAL->buf,strlen (LOCAL->buf)) > 0)) {
      |           ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mbx.c:1044:15: note: place parentheses around the assignment to silence this warning
 1044 |       if (ret = (write (fd,LOCAL->buf,strlen (LOCAL->buf)) > 0)) {
      |               ^                                                
      |           (                                                    )
mbx.c:1044:15: note: use '==' to turn this assignment into an equality comparison
 1044 |       if (ret = (write (fd,LOCAL->buf,strlen (LOCAL->buf)) > 0)) {
      |               ^
      |               ==
mbx.c:1047:20: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1047 |           ret = write (fd,LOCAL->buf,j) >= 0;
      |                           ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
./env_unix.h:89:31: note: passing argument to parameter 'buf' here
   89 | long safe_write (int fd,char *buf,long nbytes);
      |                               ^
mbx.c:1058:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1058 |     sprintf (LOCAL->buf,"Unable to write message: %s",strerror (errno));
      |              ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mbx.c:1059:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1059 |     MM_LOG (LOCAL->buf,ERROR);
      |             ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mbx.c:1065:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1065 |     sprintf (LOCAL->buf,"%08lx",dstream->uid_last);
      |              ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mbx.c:1066:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1066 |     write (fd,LOCAL->buf,8);
      |               ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
./env_unix.h:89:31: note: passing argument to parameter 'buf' here
   89 | long safe_write (int fd,char *buf,long nbytes);
      |                               ^
mbx.c:1076:3: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 1076 |   utime (file,tp);              /* set the times */
      |   ^
mbx.c:1123:28: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1123 |       if (compare_cstring (mailbox,"INBOX")) {
      |                            ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mbx.c:1123:36: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1123 |       if (compare_cstring (mailbox,"INBOX")) {
      |                                    ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mbx.c:1165:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1165 |         if (!mail_parse_date (&elt,date)) {
      |                                    ^~~~
./mail.h:1689:56: note: passing argument to parameter 'string' here
 1689 | long mail_parse_date (MESSAGECACHE *elt,unsigned char *string);
      |                                                        ^
mbx.c:1214:5: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 1214 |     utime (file,tp);            /* set the times */
      |     ^
mbx.c:1274:35: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1274 |   stream->uid_validity = strtoul (LOCAL->buf + 7,NIL,16);
      |                                   ^~~~~~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mbx.c:1277:16: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1277 |   i = strtoul (LOCAL->buf + 15,NIL,16);
      |                ^~~~~~~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mbx.c:1281:41: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1281 |        (i < NUSERFLAGS) && (t = strchr (s,'\015')) && (t - s);
      |                                         ^
/usr/include/string.h:80:26: note: passing argument to parameter here
   80 | char    *strchr(const char *, int) __pure;
      |                             ^
mbx.c:1281:31: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1281 |        (i < NUSERFLAGS) && (t = strchr (s,'\015')) && (t - s);
      |                               ^ ~~~~~~~~~~~~~~~~~
mbx.c:1284:44: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1284 |     if (!stream->user_flags[i] && (strlen (s) <= MAXUSERFLAG))
      |                                            ^
/usr/include/string.h:100:28: note: passing argument to parameter here
  100 | size_t   strlen(const char *) __pure;
      |                             ^
mbx.c:1285:39: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1285 |       stream->user_flags[i] = cpystr (s);
      |                                       ^
./misc.h:88:27: note: passing argument to parameter 'string' here
   88 | char *cpystr (const char *string);
      |                           ^
mbx.c:1295:14: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1295 |     strtoul (LOCAL->buf + HDRSIZE - 8,NIL,16) : 0;
      |              ^~~~~~~~~~~~~~~~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mbx.c:1312:24: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1312 |     if (!((s = strchr (LOCAL->buf,'\015')) && (s[1] == '\012'))) {
      |                        ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/string.h:80:26: note: passing argument to parameter here
   80 | char    *strchr(const char *, int) __pure;
      |                             ^
mbx.c:1312:14: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1312 |     if (!((s = strchr (LOCAL->buf,'\015')) && (s[1] == '\012'))) {
      |              ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
mbx.c:1321:24: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1321 |     if (!((s = strchr (LOCAL->buf,',')) && (t = strchr (s+1,';')))) {
      |                        ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/string.h:80:26: note: passing argument to parameter here
   80 | char    *strchr(const char *, int) __pure;
      |                             ^
mbx.c:1321:14: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1321 |     if (!((s = strchr (LOCAL->buf,',')) && (t = strchr (s+1,';')))) {
      |              ^ ~~~~~~~~~~~~~~~~~~~~~~~
mbx.c:1321:57: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1321 |     if (!((s = strchr (LOCAL->buf,',')) && (t = strchr (s+1,';')))) {
      |                                                         ^~~
/usr/include/string.h:80:26: note: passing argument to parameter here
   80 | char    *strchr(const char *, int) __pure;
      |                             ^
mbx.c:1321:47: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1321 |     if (!((s = strchr (LOCAL->buf,',')) && (t = strchr (s+1,';')))) {
      |                                               ^ ~~~~~~~~~~~~~~~~
mbx.c:1351:24: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1351 |     if (!(j = strtoul (s,(char **) &x,10)) && (!(x && *x))) {
      |                        ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mbx.c:1369:23: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1369 |     if ((m = strtoul (t+13,NIL,16)) &&
      |                       ^~~~
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mbx.c:1385:23: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1385 |     if ((k = strtoul (t+8,NIL,16)) & fEXPUNGED) {
      |                       ^~~
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mbx.c:1419:34: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1419 |       elt->user_flags = strtoul (t,NIL,16);
      |                                  ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mbx.c:1447:5: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 1447 |     utime (stream->mailbox,tp);
      |     ^
mbx.c:1501:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1501 |     sprintf (LOCAL->buf,"Mailbox shrank from %lu to %lu in flag read!",
      |              ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mbx.c:1503:12: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1503 |     fatal (LOCAL->buf);
      |            ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
./ftl.h:32:19: note: passing argument to parameter 'string' here
   32 | void fatal (char *string);
      |                   ^
mbx.c:1510:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1510 |     sprintf (LOCAL->buf,"Unable to read new status: %s",strerror (errno));
      |              ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mbx.c:1511:12: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1511 |     fatal (LOCAL->buf);
      |            ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
./ftl.h:32:19: note: passing argument to parameter 'string' here
   32 | void fatal (char *string);
      |                   ^
mbx.c:1515:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1515 |     sprintf (LOCAL->buf+50,"Invalid flags for message %lu (%lu %lu): %s",
      |              ^~~~~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mbx.c:1518:12: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1518 |     fatal (LOCAL->buf+50);
      |            ^~~~~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
./ftl.h:32:19: note: passing argument to parameter 'string' here
   32 | void fatal (char *string);
      |                   ^
mbx.c:1522:16: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1522 |   i = strtoul (LOCAL->buf+9,NIL,16);
      |                ^~~~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mbx.c:1531:30: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1531 |   elt->user_flags = strtoul (LOCAL->buf+1,NIL,16);
      |                              ^~~~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mbx.c:1547:9: warning: initializing 'char *' with an expression of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1547 |   char *s = LOCAL->buf;
      |         ^   ~~~~~~~~~~
mbx.c:1558:12: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1558 |   sprintf (LOCAL->buf + HDRSIZE - 10,"%08lx\015\012",LOCAL->lastpid);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mbx.c:1562:26: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1562 |     if (write (LOCAL->fd,LOCAL->buf + CYGKLUDGEOFFSET,
      |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
./env_unix.h:89:31: note: passing argument to parameter 'buf' here
   89 | long safe_write (int fd,char *buf,long nbytes);
      |                               ^
mbx.c:1585:16: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1585 |       sprintf (LOCAL->buf,"Mailbox shrank from %lu to %lu in flag update!",
      |                ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mbx.c:1587:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1587 |       fatal (LOCAL->buf);
      |              ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
./ftl.h:32:19: note: passing argument to parameter 'string' here
   32 | void fatal (char *string);
      |                   ^
mbx.c:1594:16: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1594 |       sprintf (LOCAL->buf,"Unable to read old status: %s",strerror (errno));
      |                ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mbx.c:1595:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1595 |       fatal (LOCAL->buf);
      |              ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
./ftl.h:32:19: note: passing argument to parameter 'string' here
   32 | void fatal (char *string);
      |                   ^
mbx.c:1599:16: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1599 |       sprintf (LOCAL->buf+50,"Invalid flags for message %lu (%lu %lu): %s",
      |                ^~~~~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mbx.c:1602:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1602 |       fatal (LOCAL->buf+50);
      |              ^~~~~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
./ftl.h:32:19: note: passing argument to parameter 'string' here
   32 | void fatal (char *string);
      |                   ^
mbx.c:1607:31: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1607 |                fEXPUNGED : (strtoul (LOCAL->buf+9,NIL,16)) & fEXPUNGED) +
      |                                      ^~~~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mbx.c:1605:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1605 |     sprintf (LOCAL->buf,"%08lx%04x-%08lx",elt->user_flags,(unsigned)
      |              ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mbx.c:1615:28: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1615 |       if (write (LOCAL->fd,LOCAL->buf,21) > 0) break;
      |                            ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
./env_unix.h:89:31: note: passing argument to parameter 'buf' here
   89 | long safe_write (int fd,char *buf,long nbytes);
      |                               ^
mbx.c:1644:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1644 |   if (*size = elt->private.msg.header.text.size) return ret;
      |       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mbx.c:1644:13: note: place parentheses around the assignment to silence this warning
 1644 |   if (*size = elt->private.msg.header.text.size) return ret;
      |             ^                                  
      |       (                                        )
mbx.c:1644:13: note: use '==' to turn this assignment into an equality comparison
 1644 |   if (*size = elt->private.msg.header.text.size) return ret;
      |             ^
      |             ==
mbx.c:1663:16: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1663 |         if (hdr) *hdr = LOCAL->buf;
      |                       ^ ~~~~~~~~~~
mbx.c:1670:16: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1670 |         if (hdr) *hdr = LOCAL->buf;
      |                       ^ ~~~~~~~~~~
mbx.c:1680:17: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1680 |   if (hdr) *hdr = LOCAL->buf;   /* possibly return header too */
      |                 ^ ~~~~~~~~~~
mbx.c:1736:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1736 |       if (m = (elt = mbx_elt (stream,i,NIL))->private.special.offset - ppos) {
      |           ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mbx.c:1736:13: note: place parentheses around the assignment to silence this warning
 1736 |       if (m = (elt = mbx_elt (stream,i,NIL))->private.special.offset - ppos) {
      |             ^                                                              
      |           (                                                                )
mbx.c:1736:13: note: use '==' to turn this assignment into an equality comparison
 1736 |       if (m = (elt = mbx_elt (stream,i,NIL))->private.special.offset - ppos) {
      |             ^
      |             ==
mbx.c:1761:29: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1761 |               if (write (LOCAL->fd,LOCAL->buf,m) > 0) break;
      |                                    ^~~~~~~~~~
mbx.c:83:15: note: expanded from macro 'LOCAL'
   83 | #define LOCAL ((MBXLOCAL *) stream->local)
      |               ^
./env_unix.h:89:31: note: passing argument to parameter 'buf' here
   89 | long safe_write (int fd,char *buf,long nbytes);
      |                               ^
mbx.c:1776:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1776 |     if (m = (LOCAL->filesize -= delta) - pos) {
      |         ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mbx.c:1776:11: note: place parentheses around the assignment to silence this warning
 1776 |     if (m = (LOCAL->filesize -= delta) - pos) {
      |           ^                                 
      |         (                                   )
mbx.c:1776:11: note: use '==' to turn this assignment into an equality comparison
 1776 |     if (m = (LOCAL->filesize -= delta) - pos) {
      |           ^
      |           ==
mbx.c:1795:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1795 |       if (elt = mbx_elt (stream,i,T)) {
      |           ~~~~^~~~~~~~~~~~~~~~~~~~~~
mbx.c:1795:15: note: place parentheses around the assignment to silence this warning
 1795 |       if (elt = mbx_elt (stream,i,T)) {
      |               ^                     
      |           (                         )
mbx.c:1795:15: note: use '==' to turn this assignment into an equality comparison
 1795 |       if (elt = mbx_elt (stream,i,T)) {
      |               ^
      |               ==
mbx.c:1815:3: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 1815 |   utime (stream->mailbox,tp);
      |   ^
109 warnings generated.
cc -c `cat CFLAGS` mmdf.c
mmdf.c:382:2: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
  382 |         utime (file,tp);        /* set the times */
      |         ^
mmdf.c:557:8: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  557 |         if (s = strrchr (s,'/')) {
      |             ~~^~~~~~~~~~~~~~~~~
mmdf.c:557:8: note: place parentheses around the assignment to silence this warning
  557 |         if (s = strrchr (s,'/')) {
      |               ^                
      |             (                  )
mmdf.c:557:8: note: use '==' to turn this assignment into an equality comparison
  557 |         if (s = strrchr (s,'/')) {
      |               ^
      |               ==
mmdf.c:607:37: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  607 |   stream->inbox = !compare_cstring (stream->mailbox,"INBOX");
      |                                     ^~~~~~~~~~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mmdf.c:607:53: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  607 |   stream->inbox = !compare_cstring (stream->mailbox,"INBOX");
      |                                                     ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mmdf.c:619:14: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  619 |   LOCAL->buf = (char *) fs_get (CHUNKSIZE);
      |              ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
mmdf.c:765:18: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  765 |       LOCAL->buf = (char *) fs_get ((LOCAL->buflen =
      |                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  766 |                                      elt->private.msg.header.text.size) + 1);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mmdf.c:779:23: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  779 |     read (LOCAL->fd,s = (char *) fs_get (elt->private.msg.header.text.size+1),
      |                       ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mmdf.c:792:26: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  792 |   *length = mail_filter (LOCAL->buf,*length,mmdf_hlines,FT_NOT);
      |                          ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
./mail.h:1699:34: note: passing argument to parameter 'text' here
 1699 | unsigned long mail_filter (char *text,unsigned long len,STRINGLIST *lines,
      |                                  ^
mmdf.c:842:18: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  842 |       LOCAL->buf = (char *) fs_get ((LOCAL->buflen =
      |                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  843 |                                      elt->private.msg.text.text.size) + 1);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mmdf.c:870:13: warning: assigning to 'char *' from 'unsigned char[65536]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  870 |     d.chunk = tmp;              /* initial buffer chunk */
      |             ^ ~~~
mmdf.c:873:12: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  873 |     for (s = (char *) LOCAL->text.data; SIZE (&bs);) switch (c = SNX (&bs)) {
      |            ^ ~~~~~~~~~~~~~~~~~~~~~~~~~
mmdf.c:926:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  926 |           sprintf (LOCAL->buf,"Mailbox stat failed, aborted: %s",
      |                    ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mmdf.c:928:12: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  928 |           MM_LOG (LOCAL->buf,ERROR);
      |                   ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mmdf.c:985:31: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  985 |                          mail_uid_sequence (stream,sequence) :
      |                                                    ^~~~~~~~
./mail.h:1756:59: note: passing argument to parameter 'sequence' here
 1756 | long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                           ^
mmdf.c:986:27: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  986 |                          mail_sequence (stream,sequence)) : LONGT) &&
      |                                                ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
mmdf.c:984:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  984 |   if (ret = (sequence ? ((options & EX_UID) ?
      |       ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  985 |                          mail_uid_sequence (stream,sequence) :
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  986 |                          mail_sequence (stream,sequence)) : LONGT) &&
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  987 |       LOCAL && (LOCAL->ld >= 0) && !stream->lock &&
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  988 |       mmdf_parse (stream,&lock,LOCK_EX)) {
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mmdf.c:984:11: note: place parentheses around the assignment to silence this warning
  984 |   if (ret = (sequence ? ((options & EX_UID) ?
      |           ^
      |       (
  985 |                          mail_uid_sequence (stream,sequence) :
  986 |                          mail_sequence (stream,sequence)) : LONGT) &&
  987 |       LOCAL && (LOCAL->ld >= 0) && !stream->lock &&
  988 |       mmdf_parse (stream,&lock,LOCK_EX)) {
      |                                        
      |                                        )
mmdf.c:984:11: note: use '==' to turn this assignment into an equality comparison
  984 |   if (ret = (sequence ? ((options & EX_UID) ?
      |           ^
      |           ==
mmdf.c:999:27: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  999 |       if (i) sprintf (msg = LOCAL->buf,"Expunged %lu messages",i);
      |                           ^ ~~~~~~~~~~
mmdf.c:1038:56: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1038 |   if (!((options & CP_UID) ? mail_uid_sequence (stream,sequence) :
      |                                                        ^~~~~~~~
./mail.h:1756:59: note: passing argument to parameter 'sequence' here
 1756 | long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                           ^
mmdf.c:1039:24: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1039 |         mail_sequence (stream,sequence))) return NIL;
      |                               ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
mmdf.c:1044:28: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1044 |       if (compare_cstring (mailbox,"INBOX")) {
      |                            ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mmdf.c:1044:36: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1044 |       if (compare_cstring (mailbox,"INBOX")) {
      |                                    ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mmdf.c:1051:16: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1051 |       sprintf (LOCAL->buf,"Can't access destination: %.80s",mailbox);
      |                ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mmdf.c:1052:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1052 |       MM_LOG (LOCAL->buf,ERROR);
      |               ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mmdf.c:1056:16: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1056 |       sprintf (LOCAL->buf,"Invalid MMDF-format mailbox name: %.80s",mailbox);
      |                ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mmdf.c:1057:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1057 |       MM_LOG (LOCAL->buf,ERROR);
      |               ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mmdf.c:1061:16: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1061 |       sprintf (LOCAL->buf,"Not a MMDF-format mailbox: %.80s",mailbox);
      |                ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mmdf.c:1062:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1062 |       MM_LOG (LOCAL->buf,ERROR);
      |               ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mmdf.c:1071:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1071 |     sprintf (LOCAL->buf,"Unable to write-open mailbox for COPYUID: %.80s",
      |              ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mmdf.c:1073:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1073 |     MM_LOG (LOCAL->buf,WARN);
      |             ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mmdf.c:1082:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1082 |     sprintf (LOCAL->buf,"Can't open destination mailbox: %s",strerror (errno));
      |              ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mmdf.c:1083:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1083 |     MM_LOG (LOCAL->buf,ERROR);  /* log the error */
      |             ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mmdf.c:1092:21: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1092 |       if (write (fd,LOCAL->buf,elt->private.special.text.size) < 0) ret = NIL;
      |                     ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
./env_unix.h:89:31: note: passing argument to parameter 'buf' here
   89 | long safe_write (int fd,char *buf,long nbytes);
      |                               ^
mmdf.c:1100:27: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1100 |             mmdf_xstatus (stream,LOCAL->buf,elt,++(tstream->uid_last),LONGT) :
      |                                  ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
mmdf.c:287:54: note: passing argument to parameter 'status' here
  287 | unsigned long mmdf_xstatus (MAILSTREAM *stream,char *status,MESSAGECACHE *elt,
      |                                                      ^
mmdf.c:1101:27: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1101 |             mmdf_xstatus (stream,LOCAL->buf,elt,NIL,NIL);
      |                                  ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
mmdf.c:287:54: note: passing argument to parameter 'status' here
  287 | unsigned long mmdf_xstatus (MAILSTREAM *stream,char *status,MESSAGECACHE *elt,
      |                                                      ^
mmdf.c:1102:18: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1102 |           if (write (fd,LOCAL->buf,j) < 0) ret = NIL;
      |                         ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
./env_unix.h:89:31: note: passing argument to parameter 'buf' here
   89 | long safe_write (int fd,char *buf,long nbytes);
      |                               ^
mmdf.c:1117:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1117 |     sprintf (LOCAL->buf,"Message copy failed: %s",strerror (errno));
      |              ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mmdf.c:1134:3: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 1134 |   utime (file,tp);              /* set the times */
      |   ^
mmdf.c:1143:21: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1143 |   if (!ret) MM_LOG (LOCAL->buf,ERROR);
      |                     ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mmdf.c:1188:26: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1188 |     if (compare_cstring (mailbox,"INBOX")) {
      |                          ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mmdf.c:1188:34: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1188 |     if (compare_cstring (mailbox,"INBOX")) {
      |                                  ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mmdf.c:1230:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1230 |     if (!mail_parse_date (&elt,date)) {
      |                                ^~~~
./mail.h:1689:56: note: passing argument to parameter 'string' here
 1689 | long mail_parse_date (MESSAGECACHE *elt,unsigned char *string);
      |                                                        ^
mmdf.c:1295:3: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 1295 |   utime (file,tp);              /* set the times */
      |   ^
mmdf.c:1332:12: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1332 |     if ((s = stream->user_flags[find_rightmost_bit (&uf)]) &&
      |            ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mmdf.c:1394:23: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1394 |       for (x = tmp; x = strpbrk (x,"\01\r"); --j) memmove (x,x+1,j-(x-tmp));
      |                     ~~^~~~~~~~~~~~~~~~~~~~~
mmdf.c:1394:23: note: place parentheses around the assignment to silence this warning
 1394 |       for (x = tmp; x = strpbrk (x,"\01\r"); --j) memmove (x,x+1,j-(x-tmp));
      |                       ^                    
      |                     (                      )
mmdf.c:1394:23: note: use '==' to turn this assignment into an equality comparison
 1394 |       for (x = tmp; x = strpbrk (x,"\01\r"); --j) memmove (x,x+1,j-(x-tmp));
      |                       ^
      |                       ==
mmdf.c:1397:14: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
 1397 |       if ((c == '\n')) switch (tmp[0]) {
      |            ~~^~~~~~~
mmdf.c:1397:14: note: remove extraneous parentheses around the comparison to silence this warning
 1397 |       if ((c == '\n')) switch (tmp[0]) {
      |           ~  ^      ~
mmdf.c:1397:14: note: use '=' to turn this equality comparison into an assignment
 1397 |       if ((c == '\n')) switch (tmp[0]) {
      |              ^~
      |              =
mmdf.c:1553:17: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 1553 |     if (now && !utime (stream->mailbox,tp)) LOCAL->filetime = tp[1];
      |                 ^
mmdf.c:1591:14: warning: passing 'unsigned char[1024]' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1591 |     sprintf (tmp,"Mailbox open failed, aborted: %s",strerror (errno));
      |              ^~~
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mmdf.c:1592:13: warning: passing 'unsigned char[1024]' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1592 |     MM_LOG (tmp,ERROR);
      |             ^~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mmdf.c:1601:14: warning: passing 'unsigned char[1024]' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1601 |     sprintf (tmp,"Mailbox shrank from %lu to %lu bytes, aborted",
      |              ^~~
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mmdf.c:1603:13: warning: passing 'unsigned char[1024]' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1603 |     MM_LOG (tmp,ERROR);         /* this is pretty bad */
      |             ^~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mmdf.c:1612:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1612 |   else if (i = sbuf.st_size - LOCAL->filesize) {
      |            ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mmdf.c:1612:14: note: place parentheses around the assignment to silence this warning
 1612 |   else if (i = sbuf.st_size - LOCAL->filesize) {
      |              ^                               
      |            (                                 )
mmdf.c:1612:14: note: use '==' to turn this assignment into an equality comparison
 1612 |   else if (i = sbuf.st_size - LOCAL->filesize) {
      |              ^
      |              ==
mmdf.c:1615:13: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1615 |     d.chunk = LOCAL->buf;       /* initial buffer chunk */
      |             ^ ~~~~~~~~~~
mmdf.c:1624:9: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1624 |       s = mmdf_mbxline (stream,&bs,&i);
      |         ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mmdf.c:1628:13: warning: passing 'unsigned char[1024]' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1628 |           sprintf (tmp,"Unexpected changes to mailbox (try restarting): %.20s",
      |                    ^~~
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mmdf.c:1634:8: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1634 |             s = mmdf_mbxline (stream,&bs,&i);
      |               ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mmdf.c:1639:14: warning: passing 'unsigned char[1024]' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1639 |             MM_LOG (tmp,ERROR);
      |                     ^~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mmdf.c:1656:4: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1656 |         s = mmdf_mbxline (stream,&bs,&i);
      |           ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mmdf.c:1692:15: warning: passing 'unsigned char[1024]' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1692 |             sprintf (tmp,"Unable to parse internal date: %s",(char *) date);
      |                      ^~~
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mmdf.c:1693:14: warning: passing 'unsigned char[1024]' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1693 |             MM_LOG (tmp,WARN);
      |                     ^~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mmdf.c:1710:17: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1710 |           if (t) s = t = mmdf_mbxline (stream,&bs,&i);
      |                        ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mmdf.c:1736:24: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1736 |                   if (!(u = strpbrk (s," \n\r"))) u = s + strlen (s);
      |                                      ^
/usr/include/string.h:116:27: note: passing argument to parameter here
  116 | char    *strpbrk(const char *, const char *) __pure;
      |                              ^
mmdf.c:1736:13: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1736 |                   if (!(u = strpbrk (s," \n\r"))) u = s + strlen (s);
      |                           ^ ~~~~~~~~~~~~~~~~~~~
mmdf.c:1736:53: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1736 |                   if (!(u = strpbrk (s," \n\r"))) u = s + strlen (s);
      |                                                                   ^
/usr/include/string.h:100:28: note: passing argument to parameter here
  100 | size_t   strlen(const char *) __pure;
      |                             ^
mmdf.c:1742:34: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1742 |                       if (!compare_csizedtext (stream->user_flags[j],&uf)) {
      |                                                ^~~~~~~~~~~~~~~~~~~~~
./misc.h:110:40: note: passing argument to parameter 's1' here
  110 | int compare_csizedtext (unsigned char *s1,SIZEDTEXT *s2);
      |                                        ^
mmdf.c:1790:22: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1790 |                       u = strpbrk (s," \n\r");
      |                                    ^
/usr/include/string.h:116:27: note: passing argument to parameter here
  116 | char    *strpbrk(const char *, const char *) __pure;
      |                              ^
mmdf.c:1790:11: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1790 |                       u = strpbrk (s," \n\r");
      |                         ^ ~~~~~~~~~~~~~~~~~~~
mmdf.c:1797:35: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1797 |                         strncpy (stream->user_flags[j],s,k);
      |                                                        ^
/usr/include/string.h:106:57: note: passing argument to parameter here
  106 | char    *strncpy(char * __restrict, const char * __restrict, size_t);
      |                                                            ^
mmdf.c:1825:16: warning: passing 'unsigned char[1024]' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1825 |                     sprintf (tmp,"Message %lu UID %lu already has UID %lu",
      |                              ^~~
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mmdf.c:1830:16: warning: passing 'unsigned char[1024]' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1830 |                     sprintf (tmp,"Message %lu UID %lu less than %lu",
      |                              ^~~
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mmdf.c:1850:13: warning: passing 'unsigned char[1024]' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1850 |                   MM_LOG (tmp,WARN);
      |                           ^~~
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mmdf.c:1906:34: warning: passing 'char[7]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1906 |               if (!compare_cstring (tmp,"STATUS") ||
      |                                         ^~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mmdf.c:1907:27: warning: passing 'char[9]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1907 |                   !compare_cstring (tmp,"X-STATUS") ||
      |                                         ^~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mmdf.c:1908:27: warning: passing 'char[11]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1908 |                   !compare_cstring (tmp,"X-KEYWORDS") ||
      |                                         ^~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mmdf.c:1909:27: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1909 |                   !compare_cstring (tmp,"X-UID") ||
      |                                         ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mmdf.c:1910:27: warning: passing 'char[7]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1910 |                   !compare_cstring (tmp,"X-IMAP") ||
      |                                         ^~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mmdf.c:1911:27: warning: passing 'char[11]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1911 |                   !compare_cstring (tmp,"X-IMAPBASE")) {
      |                                         ^~~~~~~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mmdf.c:1934:14: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1934 |               if (u = strpbrk (err,"\r\n")) *u = '\0';
      |                     ^ ~~~~~~~~~~~~~~~~~~~~
mmdf.c:1934:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 1934 |               if (u = strpbrk (err,"\r\n")) *u = '\0';
      |                   ~~^~~~~~~~~~~~~~~~~~~~~~
mmdf.c:1934:14: note: place parentheses around the assignment to silence this warning
 1934 |               if (u = strpbrk (err,"\r\n")) *u = '\0';
      |                     ^                     
      |                   (                       )
mmdf.c:1934:14: note: use '==' to turn this assignment into an equality comparison
 1934 |               if (u = strpbrk (err,"\r\n")) *u = '\0';
      |                     ^
      |                     ==
mmdf.c:1958:6: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1958 |           s = mmdf_mbxline (stream,&bs,&i);
      |             ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mmdf.c:1983:6: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1983 |           s = mmdf_mbxline (stream,&bs,&i);
      |             ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mmdf.c:2178:44: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2178 |     for (n = 0; n < NUSERFLAGS; ++n) if (t = stream->user_flags[n])
      |                                          ~~^~~~~~~~~~~~~~~~~~~~~~~
mmdf.c:2178:44: note: place parentheses around the assignment to silence this warning
 2178 |     for (n = 0; n < NUSERFLAGS; ++n) if (t = stream->user_flags[n])
      |                                            ^                      
      |                                          (                        )
mmdf.c:2178:44: note: use '==' to turn this assignment into an equality comparison
 2178 |     for (n = 0; n < NUSERFLAGS; ++n) if (t = stream->user_flags[n])
      |                                            ^
      |                                            ==
mmdf.c:2200:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2200 |     if (n = elt->user_flags) do {
      |         ~~^~~~~~~~~~~~~~~~~
mmdf.c:2200:11: note: place parentheses around the assignment to silence this warning
 2200 |     if (n = elt->user_flags) do {
      |           ^                
      |         (                  )
mmdf.c:2200:11: note: use '==' to turn this assignment into an equality comparison
 2200 |     if (n = elt->user_flags) do {
      |           ^
      |           ==
mmdf.c:2245:60: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2245 |   unsigned long size = LOCAL->pseudo ? mmdf_pseudo (stream,LOCAL->buf) : 0;
      |                                                            ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
mmdf.c:2125:53: note: passing argument to parameter 'hdr' here
 2125 | unsigned long mmdf_pseudo (MAILSTREAM *stream,char *hdr)
      |                                                     ^
mmdf.c:2253:23: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2253 |         mmdf_xstatus (stream,LOCAL->buf,elt,NIL,flag) +
      |                              ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
mmdf.c:2152:54: note: passing argument to parameter 'status' here
 2152 | unsigned long mmdf_xstatus (MAILSTREAM *stream,char *status,MESSAGECACHE *elt,
      |                                                      ^
mmdf.c:2261:32: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2261 |     size = mmdf_pseudo (stream,LOCAL->buf);
      |                                ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
mmdf.c:2125:53: note: passing argument to parameter 'hdr' here
 2125 | unsigned long mmdf_pseudo (MAILSTREAM *stream,char *hdr)
      |                                                     ^
mmdf.c:2264:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2264 |   if (ret = mmdf_extend (stream,size)) {
      |       ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
mmdf.c:2264:11: note: place parentheses around the assignment to silence this warning
 2264 |   if (ret = mmdf_extend (stream,size)) {
      |           ^                          
      |       (                              )
mmdf.c:2264:11: note: use '==' to turn this assignment into an equality comparison
 2264 |   if (ret = mmdf_extend (stream,size)) {
      |           ^
      |           ==
mmdf.c:2281:53: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2281 |       mmdf_write (&f,LOCAL->buf,mmdf_pseudo (stream,LOCAL->buf));
      |                                                     ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
mmdf.c:2125:53: note: passing argument to parameter 'hdr' here
 2125 | unsigned long mmdf_pseudo (MAILSTREAM *stream,char *hdr)
      |                                                     ^
mmdf.c:2281:22: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2281 |       mmdf_write (&f,LOCAL->buf,mmdf_pseudo (stream,LOCAL->buf));
      |                      ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
mmdf.c:292:36: note: passing argument to parameter 's' here
  292 | void mmdf_write (MMDFFILE *f,char *s,unsigned long i);
      |                                    ^
mmdf.c:2298:29: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2298 |               mmdf_xstatus (stream,LOCAL->buf,elt,NIL,flag)))) {
      |                                    ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
mmdf.c:2152:54: note: passing argument to parameter 'status' here
 2152 | unsigned long mmdf_xstatus (MAILSTREAM *stream,char *status,MESSAGECACHE *elt,
      |                                                      ^
mmdf.c:2312:19: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2312 |           mmdf_write (&f,LOCAL->buf,elt->private.special.text.size);
      |                          ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
mmdf.c:292:36: note: passing argument to parameter 's' here
  292 | void mmdf_write (MMDFFILE *f,char *s,unsigned long i);
      |                                    ^
mmdf.c:2333:34: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2333 |                       j = mmdf_xstatus (stream,LOCAL->buf,elt,NIL,flag));
      |                                                ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
mmdf.c:2152:54: note: passing argument to parameter 'status' here
 2152 | unsigned long mmdf_xstatus (MAILSTREAM *stream,char *status,MESSAGECACHE *elt,
      |                                                      ^
mmdf.c:2332:19: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2332 |           mmdf_write (&f,LOCAL->buf,
      |                          ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
mmdf.c:292:36: note: passing argument to parameter 's' here
  292 | void mmdf_write (MMDFFILE *f,char *s,unsigned long i);
      |                                    ^
mmdf.c:2396:10: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 2396 |     if (!utime (stream->mailbox,tp)) LOCAL->filetime = tp[1];
      |          ^
mmdf.c:2401:16: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2401 |       sprintf (LOCAL->buf,"Mailbox open failed, aborted: %s",strerror (errno));
      |                ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mmdf.c:2402:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2402 |       MM_LOG (LOCAL->buf,ERROR);
      |               ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mmdf.c:2423:18: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2423 |       LOCAL->buf = (char *) fs_get ((LOCAL->buflen = i) + 1);
      |                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mmdf.c:2428:29: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2428 |       if ((write (LOCAL->fd,LOCAL->buf,i) >= 0) && !fsync (LOCAL->fd)) break;
      |                             ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
./env_unix.h:89:31: note: passing argument to parameter 'buf' here
   89 | long safe_write (int fd,char *buf,long nbytes);
      |                               ^
mmdf.c:2434:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2434 |           sprintf (LOCAL->buf,"Unable to extend mailbox: %s",strerror (e));
      |                    ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mmdf.c:2435:33: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 2435 |           if (!stream->silent) MM_LOG (LOCAL->buf,ERROR);
      |                                        ^~~~~~~~~~
mmdf.c:236:15: note: expanded from macro 'LOCAL'
  236 | #define LOCAL ((MMDFLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mmdf.c:2457:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2457 |     if (j = i ? ((f->buflen - i) % OVERFLOWBUFLEN) : f->buflen) {
      |         ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mmdf.c:2457:11: note: place parentheses around the assignment to silence this warning
 2457 |     if (j = i ? ((f->buflen - i) % OVERFLOWBUFLEN) : f->buflen) {
      |           ^                                                   
      |         (                                                     )
mmdf.c:2457:11: note: use '==' to turn this assignment into an equality comparison
 2457 |     if (j = i ? ((f->buflen - i) % OVERFLOWBUFLEN) : f->buflen) {
      |           ^
      |           ==
mmdf.c:2473:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
 2473 |     if (j = min (i,f->protect - f->filepos)) {
      |         ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mmdf.c:2473:11: note: place parentheses around the assignment to silence this warning
 2473 |     if (j = min (i,f->protect - f->filepos)) {
      |           ^                                
      |         (                                  )
mmdf.c:2473:11: note: use '==' to turn this assignment into an equality comparison
 2473 |     if (j = min (i,f->protect - f->filepos)) {
      |           ^
      |           ==
101 warnings generated.
cc -c `cat CFLAGS` tenex.c
tenex.c:206:2: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
  206 |         utime (file,tp);        /* set the times */
      |         ^
tenex.c:211:51: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  211 |   else if ((errno == ENOENT) && !compare_cstring (name,"INBOX")) errno = -1;
      |                                                   ^~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
tenex.c:211:56: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  211 |   else if ((errno == ENOENT) && !compare_cstring (name,"INBOX")) errno = -1;
      |                                                        ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
tenex.c:324:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  324 |     if (s = strrchr (tmp,'/')) {/* found superior to destination name? */
      |         ~~^~~~~~~~~~~~~~~~~~~
tenex.c:324:11: note: place parentheses around the assignment to silence this warning
  324 |     if (s = strrchr (tmp,'/')) {/* found superior to destination name? */
      |           ^                  
      |         (                    )
tenex.c:324:11: note: use '==' to turn this assignment into an equality comparison
  324 |     if (s = strrchr (tmp,'/')) {/* found superior to destination name? */
      |           ^
      |           ==
tenex.c:350:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  350 |   if (ret && !compare_cstring (old,"INBOX")) dummy_create (NIL,"mail.txt");
      |                                ^~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
tenex.c:350:36: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  350 |   if (ret && !compare_cstring (old,"INBOX")) dummy_create (NIL,"mail.txt");
      |                                    ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
tenex.c:427:14: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  427 |   LOCAL->buf = (char *) fs_get (CHUNKSIZE);
      |              ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
tenex.c:433:37: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  433 |   stream->inbox = !compare_cstring (stream->mailbox,"INBOX");
      |                                     ^~~~~~~~~~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
tenex.c:433:53: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  433 |   stream->inbox = !compare_cstring (stream->mailbox,"INBOX");
      |                                                     ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
tenex.c:500:53: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  500 |       ((flags & FT_UID) ? mail_uid_sequence (stream,sequence) :
      |                                                     ^~~~~~~~
./mail.h:1756:59: note: passing argument to parameter 'sequence' here
 1756 | long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                           ^
tenex.c:501:30: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  501 |        mail_sequence (stream,sequence)))
      |                              ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
tenex.c:511:17: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  511 |             LOCAL->buf = (char *) fs_get (LOCAL->buflen + 1);
      |                        ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tenex.c:538:53: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  538 |       ((flags & FT_UID) ? mail_uid_sequence (stream,sequence) :
      |                                                     ^~~~~~~~
./mail.h:1756:59: note: passing argument to parameter 'sequence' here
 1756 | long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                           ^
tenex.c:539:30: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  539 |        mail_sequence (stream,sequence)))
      |                              ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
tenex.c:564:18: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  564 |       LOCAL->buf = (char *) fs_get (LOCAL->buflen = i + 1);
      |                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tenex.c:574:54: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  574 |     *length = strcrlfcpy (&LOCAL->buf,&LOCAL->buflen,s,i);
      |                                                      ^
./nl.h:33:21: note: passing argument to parameter 'src' here
   33 |                           unsigned char *src,unsigned long srcl);
      |                                          ^
tenex.c:609:18: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  609 |       LOCAL->buf = (char *) fs_get (LOCAL->buflen = i + 1);
      |                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tenex.c:632:50: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  632 |         strcrlfcpy (&LOCAL->text.data,&LOCAL->text.size,s,i);
      |                                                         ^
./nl.h:33:21: note: passing argument to parameter 'src' here
   33 |                           unsigned char *src,unsigned long srcl);
      |                                          ^
tenex.c:657:5: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
  657 |     utime (stream->mailbox,tp);
      |     ^
tenex.c:772:8: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  772 |         if (j = hdrlen + txtlen) {
      |             ~~^~~~~~~~~~~~~~~~~
tenex.c:772:8: note: place parentheses around the assignment to silence this warning
  772 |         if (j = hdrlen + txtlen) {
      |               ^                
      |             (                  )
tenex.c:772:8: note: use '==' to turn this assignment into an equality comparison
  772 |         if (j = hdrlen + txtlen) {
      |               ^
      |               ==
tenex.c:774:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  774 |           mail_date (LOCAL->buf,elt = mail_elt (sysibx,i));
      |                      ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
./mail.h:1687:24: note: passing argument to parameter 'string' here
 1687 | char *mail_date (char *string,MESSAGECACHE *elt);
      |                        ^
tenex.c:775:34: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  775 |           sprintf (LOCAL->buf + strlen (LOCAL->buf),
      |                                         ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
/usr/include/string.h:100:28: note: passing argument to parameter here
  100 | size_t   strlen(const char *) __pure;
      |                             ^
tenex.c:775:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  775 |           sprintf (LOCAL->buf + strlen (LOCAL->buf),
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
tenex.c:781:45: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  781 |           if ((write (LOCAL->fd,LOCAL->buf,strlen (LOCAL->buf)) < 0) ||
      |                                                    ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
/usr/include/string.h:100:28: note: passing argument to parameter here
  100 | size_t   strlen(const char *) __pure;
      |                             ^
tenex.c:781:26: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  781 |           if ((write (LOCAL->fd,LOCAL->buf,strlen (LOCAL->buf)) < 0) ||
      |                                 ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
./env_unix.h:89:31: note: passing argument to parameter 'buf' here
   89 | long safe_write (int fd,char *buf,long nbytes);
      |                               ^
tenex.c:797:11: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  797 |         sprintf (LOCAL->buf,"Can't copy new mail: %s",strerror (errno));
      |                  ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
tenex.c:798:10: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  798 |         MM_LOG (LOCAL->buf,WARN);
      |                 ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
tenex.c:833:33: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  833 |                            mail_uid_sequence (stream,sequence) :
      |                                                      ^~~~~~~~
./mail.h:1756:59: note: passing argument to parameter 'sequence' here
 1756 | long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                           ^
tenex.c:834:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  834 |                            mail_sequence (stream,sequence)) : LONGT) &&
      |                                                  ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
tenex.c:895:29: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  895 |               if (write (LOCAL->fd,LOCAL->buf,m) > 0) break;
      |                                    ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
./env_unix.h:89:31: note: passing argument to parameter 'buf' here
   89 | long safe_write (int fd,char *buf,long nbytes);
      |                               ^
tenex.c:911:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  911 |           sprintf (LOCAL->buf,
      |                    ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
tenex.c:914:12: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  914 |           MM_LOG (LOCAL->buf,WARN);
      |                   ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
tenex.c:918:11: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  918 |         sprintf (LOCAL->buf,"Expunged %lu messages",n);
      |                  ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
tenex.c:920:10: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  920 |         MM_LOG (LOCAL->buf,(long) NIL);
      |                 ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
tenex.c:927:7: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
  927 |       utime (stream->mailbox,tp);
      |       ^
tenex.c:961:31: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  961 |   if (!tenex_isvalid (mailbox,LOCAL->buf)) switch (errno) {
      |                               ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
tenex.c:176:37: note: passing argument to parameter 'tmp' here
  176 | int tenex_isvalid (char *name,char *tmp)
      |                                     ^
tenex.c:968:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  968 |     sprintf (LOCAL->buf,"Can't access destination: %.80s",mailbox);
      |              ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
tenex.c:969:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  969 |     MM_LOG (LOCAL->buf,ERROR);
      |             ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
tenex.c:973:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  973 |     sprintf (LOCAL->buf,"Invalid Tenex-format mailbox name: %.80s",mailbox);
      |              ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
tenex.c:974:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  974 |     MM_LOG (LOCAL->buf,ERROR);
      |             ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
tenex.c:978:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  978 |     sprintf (LOCAL->buf,"Not a Tenex-format mailbox: %.80s",mailbox);
      |              ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
tenex.c:979:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  979 |     MM_LOG (LOCAL->buf,ERROR);
      |             ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
tenex.c:982:56: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  982 |   if (!((options & CP_UID) ? mail_uid_sequence (stream,sequence) :
      |                                                        ^~~~~~~~
./mail.h:1756:59: note: passing argument to parameter 'sequence' here
 1756 | long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                           ^
tenex.c:983:24: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  983 |         mail_sequence (stream,sequence))) return NIL;
      |                               ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
tenex.c:986:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  986 |     sprintf (LOCAL->buf,"Unable to open copy mailbox: %s",strerror (errno));
      |              ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
tenex.c:987:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  987 |     MM_LOG (LOCAL->buf,ERROR);
      |             ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
tenex.c:1009:16: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1009 |         if (write (fd,LOCAL->buf,j) < 0) ret = NIL;
      |                       ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
./env_unix.h:89:31: note: passing argument to parameter 'buf' here
   89 | long safe_write (int fd,char *buf,long nbytes);
      |                               ^
tenex.c:1014:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1014 |     sprintf (LOCAL->buf,"Unable to write message: %s",strerror (errno));
      |              ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
tenex.c:1015:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1015 |     MM_LOG (LOCAL->buf,ERROR);
      |             ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
tenex.c:1022:3: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 1022 |   utime (file,tp);              /* set the times */
      |   ^
tenex.c:1072:27: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1072 |     if (!compare_cstring (mailbox,"INBOX")) dummy_create (NIL,"mail.txt");
      |                           ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
tenex.c:1072:35: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1072 |     if (!compare_cstring (mailbox,"INBOX")) dummy_create (NIL,"mail.txt");
      |                                   ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
tenex.c:1122:34: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1122 |       if (!mail_parse_date (&elt,date)) {
      |                                  ^~~~
./mail.h:1689:56: note: passing argument to parameter 'string' here
 1689 | long mail_parse_date (MESSAGECACHE *elt,unsigned char *string);
      |                                                        ^
tenex.c:1162:3: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 1162 |   utime (file,tp);              /* set the times */
      |   ^
tenex.c:1244:23: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1244 |     if (!(s = strchr (LOCAL->buf,'\012'))) {
      |                       ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
/usr/include/string.h:80:26: note: passing argument to parameter here
   80 | char    *strchr(const char *, int) __pure;
      |                             ^
tenex.c:1244:13: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1244 |     if (!(s = strchr (LOCAL->buf,'\012'))) {
      |             ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
tenex.c:1253:24: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1253 |     if (!((s = strchr (LOCAL->buf,',')) && (t = strchr (s+1,';')))) {
      |                        ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
/usr/include/string.h:80:26: note: passing argument to parameter here
   80 | char    *strchr(const char *, int) __pure;
      |                             ^
tenex.c:1253:14: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1253 |     if (!((s = strchr (LOCAL->buf,',')) && (t = strchr (s+1,';')))) {
      |              ^ ~~~~~~~~~~~~~~~~~~~~~~~
tenex.c:1253:57: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1253 |     if (!((s = strchr (LOCAL->buf,',')) && (t = strchr (s+1,';')))) {
      |                                                         ^~~
/usr/include/string.h:80:26: note: passing argument to parameter here
   80 | char    *strchr(const char *, int) __pure;
      |                             ^
tenex.c:1253:47: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1253 |     if (!((s = strchr (LOCAL->buf,',')) && (t = strchr (s+1,';')))) {
      |                                               ^ ~~~~~~~~~~~~~~~~
tenex.c:1276:46: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1276 |         (elt->private.msg.full.text.size = strtoul (s,(char **) &s,10)) &&
      |                                                     ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
tenex.c:1300:18: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1300 |     j = strtoul (t,NIL,8);      /* get user flags value */
      |                  ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
tenex.c:1327:5: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 1327 |     utime (stream->mailbox,tp);
      |     ^
tenex.c:1378:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1378 |     sprintf (LOCAL->buf,"Unable to read new status: %s",strerror (errno));
      |              ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
tenex.c:1379:12: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1379 |     fatal (LOCAL->buf);
      |            ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
./ftl.h:32:19: note: passing argument to parameter 'string' here
   32 | void fatal (char *string);
      |                   ^
tenex.c:1387:15: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1387 |   j = strtoul(LOCAL->buf,NIL,8);/* get user flags value */
      |               ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
tenex.c:1413:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1413 |     sprintf (LOCAL->buf,"%010lo%02o",k,(unsigned)
      |              ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
tenex.c:1421:22: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1421 |     write (LOCAL->fd,LOCAL->buf,12);
      |                      ^~~~~~~~~~
tenex.c:70:15: note: expanded from macro 'LOCAL'
   70 | #define LOCAL ((TENEXLOCAL *) stream->local)
      |               ^
./env_unix.h:89:31: note: passing argument to parameter 'buf' here
   89 | long safe_write (int fd,char *buf,long nbytes);
      |                               ^
tenex.c:1427:7: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 1427 |       utime (stream->mailbox,tp);
      |       ^
tenex.c:1456:20: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1456 |         read (LOCAL->fd,s = LOCAL->buf,i = min (msiz-siz,(long) MAILTMPLEN));
      |                           ^ ~~~~~~~~~~
70 warnings generated.
cc -c `cat CFLAGS` mtx.c
mtx.c:199:2: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
  199 |         utime (file,tp);        /* set the times */
      |         ^
mtx.c:204:51: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  204 |   else if ((errno == ENOENT) && !compare_cstring (name,"INBOX")) errno = -1;
      |                                                   ^~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mtx.c:204:56: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  204 |   else if ((errno == ENOENT) && !compare_cstring (name,"INBOX")) errno = -1;
      |                                                        ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mtx.c:317:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  317 |     if (s = strrchr (tmp,'/')) {/* found superior to destination name? */
      |         ~~^~~~~~~~~~~~~~~~~~~
mtx.c:317:11: note: place parentheses around the assignment to silence this warning
  317 |     if (s = strrchr (tmp,'/')) {/* found superior to destination name? */
      |           ^                  
      |         (                    )
mtx.c:317:11: note: use '==' to turn this assignment into an equality comparison
  317 |     if (s = strrchr (tmp,'/')) {/* found superior to destination name? */
      |           ^
      |           ==
mtx.c:343:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  343 |   if (ret && !compare_cstring (old,"INBOX")) dummy_create (NIL,"INBOX.MTX");
      |                                ^~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mtx.c:343:36: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  343 |   if (ret && !compare_cstring (old,"INBOX")) dummy_create (NIL,"INBOX.MTX");
      |                                    ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mtx.c:421:14: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  421 |   LOCAL->buf = (char *) fs_get (CHUNKSIZE);
      |              ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
mtx.c:424:37: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  424 |   stream->inbox = !compare_cstring (stream->mailbox,"INBOX");
      |                                     ^~~~~~~~~~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mtx.c:424:53: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  424 |   stream->inbox = !compare_cstring (stream->mailbox,"INBOX");
      |                                                     ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mtx.c:487:53: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  487 |       ((flags & FT_UID) ? mail_uid_sequence (stream,sequence) :
      |                                                     ^~~~~~~~
./mail.h:1756:59: note: passing argument to parameter 'sequence' here
 1756 | long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                           ^
mtx.c:488:30: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  488 |        mail_sequence (stream,sequence)))
      |                              ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
mtx.c:511:16: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  511 |     LOCAL->buf = (char *) fs_get ((LOCAL->buflen = *length) + 1);
      |                ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mtx.c:546:11: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  546 |   d.chunk = LOCAL->buf;         /* initial buffer chunk */
      |           ^ ~~~~~~~~~~
mtx.c:568:5: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
  568 |     utime (stream->mailbox,tp);
      |     ^
mtx.c:683:8: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  683 |         if (j = hdrlen + txtlen) {
      |             ~~^~~~~~~~~~~~~~~~~
mtx.c:683:8: note: place parentheses around the assignment to silence this warning
  683 |         if (j = hdrlen + txtlen) {
      |               ^                
      |             (                  )
mtx.c:683:8: note: use '==' to turn this assignment into an equality comparison
  683 |         if (j = hdrlen + txtlen) {
      |               ^
      |               ==
mtx.c:685:15: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  685 |           mail_date (LOCAL->buf,elt = mail_elt (sysibx,i));
      |                      ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
./mail.h:1687:24: note: passing argument to parameter 'string' here
 1687 | char *mail_date (char *string,MESSAGECACHE *elt);
      |                        ^
mtx.c:686:34: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  686 |           sprintf (LOCAL->buf + strlen (LOCAL->buf),
      |                                         ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
/usr/include/string.h:100:28: note: passing argument to parameter here
  100 | size_t   strlen(const char *) __pure;
      |                             ^
mtx.c:686:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  686 |           sprintf (LOCAL->buf + strlen (LOCAL->buf),
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mtx.c:692:45: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  692 |           if ((write (LOCAL->fd,LOCAL->buf,strlen (LOCAL->buf)) < 0) ||
      |                                                    ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
/usr/include/string.h:100:28: note: passing argument to parameter here
  100 | size_t   strlen(const char *) __pure;
      |                             ^
mtx.c:692:26: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  692 |           if ((write (LOCAL->fd,LOCAL->buf,strlen (LOCAL->buf)) < 0) ||
      |                                 ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
./env_unix.h:89:31: note: passing argument to parameter 'buf' here
   89 | long safe_write (int fd,char *buf,long nbytes);
      |                               ^
mtx.c:708:11: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  708 |         sprintf (LOCAL->buf,"Can't copy new mail: %s",strerror (errno));
      |                  ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mtx.c:709:10: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  709 |         MM_LOG (LOCAL->buf,WARN);
      |                 ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mtx.c:744:33: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  744 |                            mail_uid_sequence (stream,sequence) :
      |                                                      ^~~~~~~~
./mail.h:1756:59: note: passing argument to parameter 'sequence' here
 1756 | long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                           ^
mtx.c:745:29: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  745 |                            mail_sequence (stream,sequence)) : LONGT) &&
      |                                                  ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
mtx.c:806:29: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  806 |               if (write (LOCAL->fd,LOCAL->buf,m) > 0) break;
      |                                    ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
./env_unix.h:89:31: note: passing argument to parameter 'buf' here
   89 | long safe_write (int fd,char *buf,long nbytes);
      |                               ^
mtx.c:821:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  821 |           sprintf (LOCAL->buf,
      |                    ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mtx.c:824:12: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  824 |           MM_LOG (LOCAL->buf,WARN);
      |                   ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mtx.c:828:11: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  828 |         sprintf (LOCAL->buf,"Expunged %lu messages",n);
      |                  ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mtx.c:830:10: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  830 |         MM_LOG (LOCAL->buf,(long) NIL);
      |                 ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mtx.c:837:7: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
  837 |       utime (stream->mailbox,tp);
      |       ^
mtx.c:871:29: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  871 |   if (!mtx_isvalid (mailbox,LOCAL->buf)) switch (errno) {
      |                             ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
mtx.c:169:35: note: passing argument to parameter 'tmp' here
  169 | int mtx_isvalid (char *name,char *tmp)
      |                                   ^
mtx.c:878:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  878 |     sprintf (LOCAL->buf,"Can't access destination: %.80s",mailbox);
      |              ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mtx.c:879:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  879 |     MM_LOG (LOCAL->buf,ERROR);
      |             ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mtx.c:883:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  883 |     sprintf (LOCAL->buf,"Invalid MTX-format mailbox name: %.80s",mailbox);
      |              ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mtx.c:884:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  884 |     MM_LOG (LOCAL->buf,ERROR);
      |             ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mtx.c:888:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  888 |     sprintf (LOCAL->buf,"Not a MTX-format mailbox: %.80s",mailbox);
      |              ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mtx.c:889:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  889 |     MM_LOG (LOCAL->buf,ERROR);
      |             ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mtx.c:892:56: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  892 |   if (!((options & CP_UID) ? mail_uid_sequence (stream,sequence) :
      |                                                        ^~~~~~~~
./mail.h:1756:59: note: passing argument to parameter 'sequence' here
 1756 | long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                           ^
mtx.c:893:24: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  893 |         mail_sequence (stream,sequence))) return NIL;
      |                               ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
mtx.c:896:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  896 |     sprintf (LOCAL->buf,"Unable to open copy mailbox: %s",strerror (errno));
      |              ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mtx.c:897:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  897 |     MM_LOG (LOCAL->buf,ERROR);
      |             ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mtx.c:919:16: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  919 |         if (write (fd,LOCAL->buf,j) < 0) ret = NIL;
      |                       ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
./env_unix.h:89:31: note: passing argument to parameter 'buf' here
   89 | long safe_write (int fd,char *buf,long nbytes);
      |                               ^
mtx.c:924:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  924 |     sprintf (LOCAL->buf,"Unable to write message: %s",strerror (errno));
      |              ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mtx.c:925:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  925 |     MM_LOG (LOCAL->buf,ERROR);
      |             ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
./mail.h:1598:20: note: passing argument to parameter 'string' here
 1598 | void mm_log (char *string,long errflg);
      |                    ^
mtx.c:932:3: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
  932 |   utime (file,tp);              /* set the times */
      |   ^
mtx.c:982:27: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  982 |     if (!compare_cstring (mailbox,"INBOX")) dummy_create (NIL,"INBOX.MTX");
      |                           ^~~~~~~
./misc.h:109:37: note: passing argument to parameter 's1' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                     ^
mtx.c:982:35: warning: passing 'char[6]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  982 |     if (!compare_cstring (mailbox,"INBOX")) dummy_create (NIL,"INBOX.MTX");
      |                                   ^~~~~~~
./misc.h:109:55: note: passing argument to parameter 's2' here
  109 | int compare_cstring (unsigned char *s1,unsigned char *s2);
      |                                                       ^
mtx.c:1032:34: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1032 |       if (!mail_parse_date (&elt,date)) {
      |                                  ^~~~
./mail.h:1689:56: note: passing argument to parameter 'string' here
 1689 | long mail_parse_date (MESSAGECACHE *elt,unsigned char *string);
      |                                                        ^
mtx.c:1065:3: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 1065 |   utime (file,tp);              /* set the times */
      |   ^
mtx.c:1132:24: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1132 |     if (!((s = strchr (LOCAL->buf,'\015')) && (s[1] == '\012'))) {
      |                        ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
/usr/include/string.h:80:26: note: passing argument to parameter here
   80 | char    *strchr(const char *, int) __pure;
      |                             ^
mtx.c:1132:14: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1132 |     if (!((s = strchr (LOCAL->buf,'\015')) && (s[1] == '\012'))) {
      |              ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
mtx.c:1141:24: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1141 |     if (!((s = strchr (LOCAL->buf,',')) && (t = strchr (s+1,';')))) {
      |                        ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
/usr/include/string.h:80:26: note: passing argument to parameter here
   80 | char    *strchr(const char *, int) __pure;
      |                             ^
mtx.c:1141:14: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1141 |     if (!((s = strchr (LOCAL->buf,',')) && (t = strchr (s+1,';')))) {
      |              ^ ~~~~~~~~~~~~~~~~~~~~~~~
mtx.c:1141:57: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1141 |     if (!((s = strchr (LOCAL->buf,',')) && (t = strchr (s+1,';')))) {
      |                                                         ^~~
/usr/include/string.h:80:26: note: passing argument to parameter here
   80 | char    *strchr(const char *, int) __pure;
      |                             ^
mtx.c:1141:47: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1141 |     if (!((s = strchr (LOCAL->buf,',')) && (t = strchr (s+1,';')))) {
      |                                               ^ ~~~~~~~~~~~~~~~~
mtx.c:1164:31: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1164 |         (elt->rfc822_size = strtoul (s,(char **) &s,10)) && (!(s && *s)) &&
      |                                      ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mtx.c:1188:18: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1188 |     j = strtoul (t,NIL,8);      /* get user flags value */
      |                  ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mtx.c:1215:5: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 1215 |     utime (stream->mailbox,tp);
      |     ^
mtx.c:1266:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1266 |     sprintf (LOCAL->buf,"Unable to read new status: %s",strerror (errno));
      |              ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mtx.c:1267:12: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1267 |     fatal (LOCAL->buf);
      |            ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
./ftl.h:32:19: note: passing argument to parameter 'string' here
   32 | void fatal (char *string);
      |                   ^
mtx.c:1275:15: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1275 |   j = strtoul(LOCAL->buf,NIL,8);/* get user flags value */
      |               ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
/usr/include/stdlib.h:121:34: note: passing argument to parameter here
  121 |          strtoul(const char * __restrict, char ** __restrict, int);
      |                                         ^
mtx.c:1301:14: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1301 |     sprintf (LOCAL->buf,"%010lo%02o",k,(unsigned)
      |              ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
mtx.c:1309:22: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
 1309 |     write (LOCAL->fd,LOCAL->buf,12);
      |                      ^~~~~~~~~~
mtx.c:66:15: note: expanded from macro 'LOCAL'
   66 | #define LOCAL ((MTXLOCAL *) stream->local)
      |               ^
./env_unix.h:89:31: note: passing argument to parameter 'buf' here
   89 | long safe_write (int fd,char *buf,long nbytes);
      |                               ^
mtx.c:1315:7: warning: call to undeclared function 'utime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 1315 |       utime (stream->mailbox,tp);
      |       ^
64 warnings generated.
cc -c `cat CFLAGS` news.c
news.c:218:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  218 |       if (s = strchr (pattern,'.')) *++s = '\0';
      |           ~~^~~~~~~~~~~~~~~~~~~~~~
news.c:218:13: note: place parentheses around the assignment to silence this warning
  218 |       if (s = strchr (pattern,'.')) *++s = '\0';
      |             ^                     
      |           (                       )
news.c:218:13: note: use '==' to turn this assignment into an equality comparison
  218 |       if (s = strchr (pattern,'.')) *++s = '\0';
      |             ^
      |             ==
news.c:234:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  234 |     if (t = strtok_r (s,"\n",&r)) do if (u = strchr (t,' ')) {
      |         ~~^~~~~~~~~~~~~~~~~~~~~~
news.c:234:11: note: place parentheses around the assignment to silence this warning
  234 |     if (t = strtok_r (s,"\n",&r)) do if (u = strchr (t,' ')) {
      |           ^                     
      |         (                       )
news.c:234:11: note: use '==' to turn this assignment into an equality comparison
  234 |     if (t = strtok_r (s,"\n",&r)) do if (u = strchr (t,' ')) {
      |           ^
      |           ==
news.c:234:44: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  234 |     if (t = strtok_r (s,"\n",&r)) do if (u = strchr (t,' ')) {
      |                                          ~~^~~~~~~~~~~~~~~~
news.c:234:44: note: place parentheses around the assignment to silence this warning
  234 |     if (t = strtok_r (s,"\n",&r)) do if (u = strchr (t,' ')) {
      |                                            ^               
      |                                          (                 )
news.c:234:44: note: use '==' to turn this assignment into an equality comparison
  234 |     if (t = strtok_r (s,"\n",&r)) do if (u = strchr (t,' ')) {
      |                                            ^
      |                                            ==
news.c:237:24: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  237 |       if (pmatch_full (name,pattern,'.')) mm_list (stream,'.',name,NIL);
      |                        ^~~~
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
news.c:237:29: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  237 |       if (pmatch_full (name,pattern,'.')) mm_list (stream,'.',name,NIL);
      |                             ^~~~~~~
./env.h:29:51: note: passing argument to parameter 'pat' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                                   ^
news.c:240:19: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  240 |         if (pmatch_full (name,pattern,'.'))
      |                          ^~~~
./env.h:29:34: note: passing argument to parameter 's' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                  ^
news.c:240:24: warning: passing 'char[1024]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  240 |         if (pmatch_full (name,pattern,'.'))
      |                               ^~~~~~~
./env.h:29:51: note: passing argument to parameter 'pat' here
   29 | long pmatch_full (unsigned char *s,unsigned char *pat,unsigned char delim);
      |                                                   ^
news.c:243:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  243 |     } while (t = strtok_r (NIL,"\n",&r));
      |              ~~^~~~~~~~~~~~~~~~~~~~~~~~
news.c:243:16: note: place parentheses around the assignment to silence this warning
  243 |     } while (t = strtok_r (NIL,"\n",&r));
      |                ^                       
      |              (                         )
news.c:243:16: note: use '==' to turn this assignment into an equality comparison
  243 |     } while (t = strtok_r (NIL,"\n",&r));
      |                ^
      |                ==
news.c:286:34: warning: expression result unused [-Wunused-value]
  286 |     for (i = 0, s = pattern; *s; *s++) if ((*s == '*') || (*s == '%')) ++i;
      |                                  ^~~~
news.c:368:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  368 |   while (s = strchr (s,'.')) *s = '/';
      |          ~~^~~~~~~~~~~~~~~~
news.c:368:12: note: place parentheses around the assignment to silence this warning
  368 |   while (s = strchr (s,'.')) *s = '/';
      |            ^               
      |          (                 )
news.c:368:12: note: use '==' to turn this assignment into an equality comparison
  368 |   while (s = strchr (s,'.')) *s = '/';
      |            ^
      |            ==
news.c:370:36: error: incompatible function pointer types passing 'int (struct dirent *)' to parameter of type 'int (*)(const struct dirent *)' [-Wincompatible-function-pointer-types]
  370 |   if ((nmsgs = scandir (tmp,&names,news_select,news_numsort)) >= 0) {
      |                                    ^~~~~~~~~~~
/usr/include/dirent.h:126:12: note: passing argument to parameter here
  126 |             int (*)(const struct dirent *), int (*)(const struct dirent **,
      |                   ^
news.c:370:48: error: incompatible function pointer types passing 'int (const void *, const void *)' to parameter of type 'int (*)(const struct dirent **, const struct dirent **)' [-Wincompatible-function-pointer-types]
  370 |   if ((nmsgs = scandir (tmp,&names,news_select,news_numsort)) >= 0) {
      |                                                ^~~~~~~~~~~~
/usr/include/dirent.h:126:44: note: passing argument to parameter here
  126 |             int (*)(const struct dirent *), int (*)(const struct dirent **,
      |                                                   ^
news.c:409:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  409 |   while (c = *s++) if (!isdigit (c)) return NIL;
      |          ~~^~~~~~
news.c:409:12: note: place parentheses around the assignment to silence this warning
  409 |   while (c = *s++) if (!isdigit (c)) return NIL;
      |            ^     
      |          (       )
news.c:409:12: note: use '==' to turn this assignment into an equality comparison
  409 |   while (c = *s++) if (!isdigit (c)) return NIL;
      |            ^
      |            ==
news.c:456:32: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  456 |                           mail_uid_sequence (stream,sequence) :
      |                                                     ^~~~~~~~
./mail.h:1756:59: note: passing argument to parameter 'sequence' here
 1756 | long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                           ^
news.c:457:28: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  457 |                           mail_sequence (stream,sequence)))
      |                                                 ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
news.c:474:33: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  474 |       mail_uid_sequence (stream,sequence) : mail_sequence (stream,sequence))
      |                                 ^~~~~~~~
./mail.h:1756:59: note: passing argument to parameter 'sequence' here
 1756 | long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                           ^
news.c:474:67: warning: passing 'char *' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  474 |       mail_uid_sequence (stream,sequence) : mail_sequence (stream,sequence))
      |                                                                   ^~~~~~~~
./mail.h:1755:55: note: passing argument to parameter 'sequence' here
 1755 | long mail_sequence (MAILSTREAM *stream,unsigned char *sequence);
      |                                                       ^
news.c:495:12: warning: passing 'unsigned char[65536]' to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  495 |   sprintf (LOCAL->buf,"%s/%lu",LOCAL->dir,elt->private.uid);
      |            ^~~~~~~~~~
news.c:61:15: note: expanded from macro 'LOCAL'
   61 | #define LOCAL ((NEWSLOCAL *) stream->local)
      |               ^
/usr/include/stdio.h:285:31: note: passing argument to parameter here
  285 | int      sprintf(char * __restrict, const char * __restrict, ...);
      |                                   ^
news.c:500:20: warning: passing 'unsigned char[65536]' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  500 |       ((fd = open (LOCAL->buf,O_RDONLY,NIL)) >= 0)) {
      |                    ^~~~~~~~~~
news.c:61:15: note: expanded from macro 'LOCAL'
   61 | #define LOCAL ((NEWSLOCAL *) stream->local)
      |               ^
/usr/include/fcntl.h:359:22: note: passing argument to parameter here
  359 | int     open(const char *, int, ...);
      |                          ^
news.c:504:13: warning: assigning to 'char *' from 'unsigned char[65536]' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
  504 |     d.chunk = LOCAL->buf;
      |             ^ ~~~~~~~~~~
news.c:569:21: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
  569 |             if ((CHR (&bs) == '\012')) *t++ = SNX (&bs);
      |                  ~~~~~~~~~~^~~~~~~~~
news.c:569:21: note: remove extraneous parentheses around the comparison to silence this warning
  569 |             if ((CHR (&bs) == '\012')) *t++ = SNX (&bs);
      |                 ~          ^        ~
news.c:569:21: note: use '=' to turn this equality comparison into an assignment
  569 |             if ((CHR (&bs) == '\012')) *t++ = SNX (&bs);
      |                            ^~
      |                            =
news.c:589:21: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
  589 |             if ((CHR (&bs) == '\012')) *t++ = SNX (&bs);
      |                  ~~~~~~~~~~^~~~~~~~~
news.c:589:21: note: remove extraneous parentheses around the comparison to silence this warning
  589 |             if ((CHR (&bs) == '\012')) *t++ = SNX (&bs);
      |                 ~          ^        ~
news.c:589:21: note: use '=' to turn this equality comparison into an assignment
  589 |             if ((CHR (&bs) == '\012')) *t++ = SNX (&bs);
      |                            ^~
      |                            =
20 warnings and 2 errors generated.
*** Error code 1

Stop.
make[3]: stopped in /magus/work/usr/mports/mail/cclient/work/imap-2007f/c-client
*** Error code 1

Stop.
make[2]: stopped in /magus/work/usr/mports/mail/cclient/work/imap-2007f/c-client
*** Error code 1

Stop.
make[1]: stopped in /magus/work/usr/mports/mail/cclient/work/imap-2007f
*** Error code 1

Stop.
make: stopped in /magus/work/usr/mports/mail/cclient/work/imap-2007f
*** Error code 1

Stop.
make: stopped in /usr/mports/mail/cclient

Links

Depends On

Nothing

Depend Of

Nothing

Categories

CVEs

  • Loading CVE information...

LLM Analysis