summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--alpine/adrbkcmd.c87
-rw-r--r--alpine/arg.c33
-rw-r--r--alpine/imap.c5
-rw-r--r--alpine/ldapconf.c66
-rw-r--r--alpine/takeaddr.c123
-rwxr-xr-xconfigure50
-rw-r--r--configure.ac64
-rw-r--r--doc/alpine.128
-rw-r--r--imap/src/c-client/auth_ext.c4
-rw-r--r--imap/src/c-client/auth_gss.c4
-rw-r--r--imap/src/c-client/auth_log.c10
-rw-r--r--imap/src/c-client/auth_md5.c16
-rw-r--r--imap/src/c-client/auth_pla.c6
-rw-r--r--imap/src/c-client/imap4r1.c126
-rw-r--r--imap/src/c-client/mail.c142
-rw-r--r--imap/src/c-client/misc.c12
-rw-r--r--imap/src/c-client/netmsg.c4
-rw-r--r--imap/src/c-client/newsrc.c14
-rw-r--r--imap/src/c-client/nntp.c66
-rw-r--r--imap/src/c-client/pop3.c18
-rw-r--r--imap/src/c-client/rfc822.c44
-rw-r--r--imap/src/c-client/smanager.c10
-rw-r--r--imap/src/c-client/smtp.c6
-rw-r--r--imap/src/c-client/utf8.c16
-rw-r--r--imap/src/c-client/utf8aux.c6
-rw-r--r--imap/src/dmail/dmail.c5
-rw-r--r--imap/src/imapd/imapd.c90
-rw-r--r--imap/src/ipopd/ipop2d.c6
-rw-r--r--imap/src/ipopd/ipop3d.c14
-rw-r--r--imap/src/mailutil/mailutil.c22
-rw-r--r--imap/src/mlock/mlock.c2
-rw-r--r--imap/src/mtest/mtest.c32
-rw-r--r--imap/src/osdep/unix/dummy.c16
-rw-r--r--imap/src/osdep/unix/env_unix.c12
-rw-r--r--imap/src/osdep/unix/fdstring.c2
-rw-r--r--imap/src/osdep/unix/mbx.c26
-rw-r--r--imap/src/osdep/unix/mh.c40
-rw-r--r--imap/src/osdep/unix/mix.c68
-rw-r--r--imap/src/osdep/unix/mmdf.c37
-rw-r--r--imap/src/osdep/unix/mtx.c13
-rw-r--r--imap/src/osdep/unix/mx.c34
-rw-r--r--imap/src/osdep/unix/news.c16
-rw-r--r--imap/src/osdep/unix/nl_unix.c2
-rw-r--r--imap/src/osdep/unix/phile.c6
-rw-r--r--imap/src/osdep/unix/tcp_unix.c12
-rw-r--r--imap/src/osdep/unix/tenex.c13
-rw-r--r--imap/src/osdep/unix/unix.c24
-rw-r--r--imap/src/tmail/tmail.c5
-rw-r--r--include/config.h.in3
-rw-r--r--pico/pico.c3
-rw-r--r--pith/adrbklib.c2
-rw-r--r--pith/conf.c21
-rw-r--r--pith/flag.c5
-rw-r--r--pith/folder.c3
-rw-r--r--pith/icache.c4
-rw-r--r--pith/ldap.c130
-rw-r--r--pith/ldap.h11
-rw-r--r--pith/mailindx.c2
-rw-r--r--pith/mimedesc.c2
-rw-r--r--pith/osdep/mimedisp.c1
-rw-r--r--pith/pine.hlp7
-rw-r--r--pith/send.c3
-rw-r--r--pith/smkeys.c2
-rw-r--r--pith/state.h1
-rw-r--r--pith/stream.c2
-rw-r--r--pith/takeaddr.c2
-rw-r--r--po/Makefile.in16
-rw-r--r--web/src/alpined.d/alpined.c43
-rw-r--r--web/src/alpined.d/ldap.c61
-rw-r--r--web/src/alpined.d/ldap.h5
70 files changed, 964 insertions, 822 deletions
diff --git a/alpine/adrbkcmd.c b/alpine/adrbkcmd.c
index 3e89a3f5..592b16b8 100644
--- a/alpine/adrbkcmd.c
+++ b/alpine/adrbkcmd.c
@@ -626,7 +626,7 @@ expand_addrs_for_pico(struct headerentry *headents, char ***s)
SIZEOF_20KBUF));
}
- abe.addr.list[cnt] = '\0';
+ abe.addr.list[cnt] = NULL;
}
else{
abe.tag = Single;
@@ -3307,7 +3307,7 @@ ab_del_abook(long int cur_line, int command_line, char **err)
* Init_abook(pab, TotallyClosed) via rd_close_remdata is
* going to pine_mail_close it.
*/
- if(pab->type && REMOTE_VIA_IMAP
+ if(pab->type & REMOTE_VIA_IMAP
&& pab->address_book
&& pab->address_book->type == Imap
&& pab->address_book->rd
@@ -4885,7 +4885,7 @@ prepare_abe_for_vcard(struct pine *ps, AdrBk_Entry *abe, int expand_nicks)
fs_give((void **)&bufp);
}
- vinfo->email[cnt] = '\0';
+ vinfo->email[cnt] = NULL;
}
else{ /* don't expand or qualify */
if(abe->tag == Single){
@@ -4893,7 +4893,7 @@ prepare_abe_for_vcard(struct pine *ps, AdrBk_Entry *abe, int expand_nicks)
(abe->addr.addr && abe->addr.addr[0]) ? abe->addr.addr : "";
vinfo->email = (char **)fs_get((1+1) * sizeof(char *));
vinfo->email[0] = cpystr(astring);
- vinfo->email[1] = '\0';
+ vinfo->email[1] = NULL;
}
else{
char **ll;
@@ -4905,7 +4905,7 @@ prepare_abe_for_vcard(struct pine *ps, AdrBk_Entry *abe, int expand_nicks)
for(cnt = 0, ll = abe->addr.list; ll && *ll; ll++)
vinfo->email[cnt++] = cpystr(*ll);
- vinfo->email[cnt] = '\0';
+ vinfo->email[cnt] = NULL;
}
}
@@ -6971,12 +6971,12 @@ view_ldap_entry(struct pine *ps, LDAP_CHOOSE_S *winning_e)
void
compose_to_ldap_entry(struct pine *ps, LDAP_CHOOSE_S *e, int allow_role)
{
- char **elecmail = NULL,
+ struct berval **elecmail = NULL,
**mail = NULL,
**cn = NULL,
**sn = NULL,
- **givenname = NULL,
- **ll;
+ **givenname = NULL;
+ int num;
size_t len = 0;
dprint((9, "- compose_to_ldap_entry -\n"));
@@ -6991,23 +6991,23 @@ compose_to_ldap_entry(struct pine *ps, LDAP_CHOOSE_S *e, int allow_role)
if(strcmp(a, e->info_used->mailattr) == 0){
if(!mail)
- mail = ldap_get_values(e->ld, e->selected_entry, a);
+ mail = ldap_get_values_len(e->ld, e->selected_entry, a);
}
else if(strcmp(a, "electronicmail") == 0){
if(!elecmail)
- elecmail = ldap_get_values(e->ld, e->selected_entry, a);
+ elecmail = ldap_get_values_len(e->ld, e->selected_entry, a);
}
else if(strcmp(a, e->info_used->cnattr) == 0){
if(!cn)
- cn = ldap_get_values(e->ld, e->selected_entry, a);
+ cn = ldap_get_values_len(e->ld, e->selected_entry, a);
}
else if(strcmp(a, e->info_used->gnattr) == 0){
if(!givenname)
- givenname = ldap_get_values(e->ld, e->selected_entry, a);
+ givenname = ldap_get_values_len(e->ld, e->selected_entry, a);
}
else if(strcmp(a, e->info_used->snattr) == 0){
if(!sn)
- sn = ldap_get_values(e->ld, e->selected_entry, a);
+ sn = ldap_get_values_len(e->ld, e->selected_entry, a);
}
our_ldap_memfree(a);
@@ -7015,16 +7015,16 @@ compose_to_ldap_entry(struct pine *ps, LDAP_CHOOSE_S *e, int allow_role)
}
if(elecmail){
- if(elecmail[0] && elecmail[0][0] && !mail)
+ if(ALPINE_LDAP_can_use(elecmail) && !mail)
mail = elecmail;
else
- ldap_value_free(elecmail);
+ ldap_value_free_len(elecmail);
elecmail = NULL;
}
- for(ll = mail; ll && *ll; ll++)
- len += strlen(*ll) + 1;
+ for(num = 0; ALPINE_LDAP_usable(mail, num); num++)
+ len += strlen(mail[num]->bv_val) + 1;
if(len){
char *p, *address, *fn = NULL;
@@ -7033,11 +7033,11 @@ compose_to_ldap_entry(struct pine *ps, LDAP_CHOOSE_S *e, int allow_role)
address = (char *)fs_get(len * sizeof(char));
p = address;
- ll = mail;
- while(*ll){
- sstrncpy(&p, *ll, len-(p-address));
- ll++;
- if(*ll)
+ num = 0;
+ while(ALPINE_LDAP_usable(mail, num)){
+ sstrncpy(&p, mail[num]->bv_val, len-(p-address));
+ num++;
+ if(mail[num])
sstrncpy(&p, ",", len-(p-address));
}
@@ -7047,21 +7047,20 @@ compose_to_ldap_entry(struct pine *ps, LDAP_CHOOSE_S *e, int allow_role)
* If we have a fullname and there is only a single address and
* the address doesn't seem to have a fullname with it, add it.
*/
- if(mail && mail[0] && mail[0][0] && !mail[1]){
- if(cn && cn[0] && cn[0][0])
- fn = cpystr(cn[0]);
- else if(sn && sn[0] && sn[0][0] &&
- givenname && givenname[0] && givenname[0][0]){
+ if(ALPINE_LDAP_can_use(mail) && !mail[1]){
+ if(ALPINE_LDAP_can_use(cn))
+ fn = cpystr(cn[0]->bv_val);
+ else if(ALPINE_LDAP_can_use(sn) && ALPINE_LDAP_can_use(givenname)){
size_t l;
- l = strlen(givenname[0]) + strlen(sn[0]) + 1;
+ l = strlen(givenname[0]->bv_val) + strlen(sn[0]->bv_val) + 1;
fn = (char *) fs_get((l+1) * sizeof(char));
- snprintf(fn, l+1, "%s %s", givenname[0], sn[0]);
+ snprintf(fn, l+1, "%s %s", givenname[0]->bv_val, sn[0]->bv_val);
fn[l] = '\0';
}
}
- if(mail && mail[0] && mail[0][0] && !mail[1] && fn){
+ if(ALPINE_LDAP_can_use(mail) && !mail[1] && fn){
ADDRESS *adrlist = NULL;
char *tmp_a_string;
@@ -7117,13 +7116,13 @@ compose_to_ldap_entry(struct pine *ps, LDAP_CHOOSE_S *e, int allow_role)
q_status_message(SM_ORDER, 0, 4, _("No address to compose to"));
if(mail)
- ldap_value_free(mail);
+ ldap_value_free_len(mail);
if(cn)
- ldap_value_free(cn);
+ ldap_value_free_len(cn);
if(sn)
- ldap_value_free(sn);
+ ldap_value_free_len(sn);
if(givenname)
- ldap_value_free(givenname);
+ ldap_value_free_len(givenname);
}
@@ -7163,7 +7162,7 @@ prep_ldap_for_viewing(struct pine *ps, LDAP_CHOOSE_S *winning_e, SourceType srct
#define INDENTHERE (22)
char obuf[W+10];
char hdr[6*INDENTHERE+1], hdr2[6*INDENTHERE+1];
- char **cn = NULL;
+ struct berval **cn = NULL;
int indent = INDENTHERE;
if(!(store = so_get(srctype, NULL, EDIT_ACCESS)))
@@ -7202,14 +7201,14 @@ prep_ldap_for_viewing(struct pine *ps, LDAP_CHOOSE_S *winning_e, SourceType srct
a = ldap_next_attribute(winning_e->ld, winning_e->selected_entry, ber)){
if(a && *a){
- char **vals;
+ struct berval **vals;
char *fn = NULL;
- vals = ldap_get_values(winning_e->ld, winning_e->selected_entry, a);
+ vals = ldap_get_values_len(winning_e->ld, winning_e->selected_entry, a);
/* save this for mailto */
if(handlesp && !cn && !strcmp(a, winning_e->info_used->cnattr))
- cn = ldap_get_values(winning_e->ld, winning_e->selected_entry, a);
+ cn = ldap_get_values_len(winning_e->ld, winning_e->selected_entry, a);
if(vals){
int do_mailto;
@@ -7220,7 +7219,7 @@ prep_ldap_for_viewing(struct pine *ps, LDAP_CHOOSE_S *winning_e, SourceType srct
utf8_snprintf(hdr, sizeof(hdr), "%-*.*w: ", indent-2,indent-2,
ldap_translate(a, winning_e->info_used));
hdr[sizeof(hdr)-1] = '\0';
- for(i = 0; vals[i] != NULL; i++){
+ for(i = 0; ALPINE_LDAP_usable(vals, i); i++){
if(do_mailto){
ADDRESS *ad = NULL;
HANDLE_S *h;
@@ -7229,9 +7228,9 @@ prep_ldap_for_viewing(struct pine *ps, LDAP_CHOOSE_S *winning_e, SourceType srct
char *addr, *new_addr, *enc_addr;
char *path = NULL;
- addr = cpystr(vals[i]);
- if(cn && cn[0] && cn[0][0])
- fn = cpystr(cn[0]);
+ addr = cpystr(vals[i]->bv_val);
+ if(ALPINE_LDAP_can_use(cn))
+ fn = cpystr(cn[0]->bv_val);
if(fn){
tmp_a_string = cpystr(addr);
@@ -7327,7 +7326,7 @@ prep_ldap_for_viewing(struct pine *ps, LDAP_CHOOSE_S *winning_e, SourceType srct
}
}
- ldap_value_free(vals);
+ ldap_value_free_len(vals);
}
else{
utf8_snprintf(obuf, sizeof(obuf), "%-*.*w\n", indent-1,indent-1,
@@ -7341,7 +7340,7 @@ prep_ldap_for_viewing(struct pine *ps, LDAP_CHOOSE_S *winning_e, SourceType srct
}
if(cn)
- ldap_value_free(cn);
+ ldap_value_free_len(cn);
return(store);
}
diff --git a/alpine/arg.c b/alpine/arg.c
index 1e33d9d9..bb949f3b 100644
--- a/alpine/arg.c
+++ b/alpine/arg.c
@@ -55,6 +55,10 @@ static char args_err_missing_pinerc[] = N_("missing argument for option \"-piner
#if defined(DOS) || defined(OS2)
static char args_err_missing_aux[] = N_("missing argument for option \"-aux\"");
#endif
+#ifdef SMIME
+static char args_err_missing_smimedir[] = N_("missing argument for option \"-smimedir\"");
+static char args_err_non_abs_smimedir[] = N_("argument to \"-smimedir\" should be fully-qualified");
+#endif /* SMIME */
#ifdef PASSFILE
static char args_err_missing_passfile[] = N_("missing argument for option \"-passfile\"");
static char args_err_non_abs_passfile[] = N_("argument to \"-passfile\" should be fully-qualified");
@@ -131,6 +135,10 @@ N_(" -nosplash \tDisable the PC-Alpine splash screen"),
N_(" -erase_stored_passwords\tEliminate any stored passwords"),
#endif
+#ifdef SMIME
+N_(" -smimedir <fully_qualified_path>\tdirectory where smime personal certificates are saved"),
+#endif /* SMIME */
+
#ifdef PASSFILE
N_(" -passfile <fully_qualified_filename>\tSet the password file to something other"),
N_("\t\tthan the default"),
@@ -274,6 +282,31 @@ Loop: while(--ac > 0)
}
#endif /* defined(APPLEKEYCHAIN) || (WINCRED > 0) */
+#ifdef SMIME
+ else if(strcmp(*av, "smimedir") == 0){
+ if(--ac){
+ if((str = *++av) != NULL){
+ if(!is_absolute_path(str)){
+ display_args_err(_(args_err_non_abs_smimedir),
+ NULL, 1);
+ ++usage;
+ }
+ else{
+ if(pine_state->smimedir)
+ fs_give((void **)&pine_state->pwdcertdir);
+
+ pine_state->smimedir = cpystr(str);
+ }
+ }
+ }
+ else{
+ display_args_err(_(args_err_missing_smimedir), NULL, 1);
+ ++usage;
+ }
+
+ goto Loop;
+ }
+#endif /* SMIME */
#ifdef PASSFILE
else if(strcmp(*av, "passfile") == 0){
if(--ac){
diff --git a/alpine/imap.c b/alpine/imap.c
index 3c33d1b3..4b6f0ee6 100644
--- a/alpine/imap.c
+++ b/alpine/imap.c
@@ -2782,10 +2782,11 @@ preserve_prompt(void)
}
return(0);
#else /* PASSFILE */
-if(F_OFF(F_DISABLE_PASSWORD_FILE_SAVING,ps_global))
- return(want_to(_("Preserve password on DISK for next login"),
+ if(F_OFF(F_DISABLE_PASSWORD_FILE_SAVING,ps_global))
+ return(want_to(_("Preserve password on DISK for next login"),
'y', 'x', NO_HELP, WT_NORM)
== 'y');
+ return(0);
#endif /* PASSFILE */
}
diff --git a/alpine/ldapconf.c b/alpine/ldapconf.c
index 66cc3f02..e710f0e8 100644
--- a/alpine/ldapconf.c
+++ b/alpine/ldapconf.c
@@ -130,7 +130,7 @@ ldap_addr_select(struct pine *ps, ADDR_CHOOSE_S *ac, LDAP_CHOOSE_S **result,
e != NULL;
e = ldap_next_entry(res_list->ld, e)){
char *dn, *a;
- char **cn, **org, **unit, **title, **mail, **sn;
+ struct berval **cn, **org, **unit, **title, **mail, **sn;
BerElement *ber;
int indent, have_mail;
@@ -143,28 +143,28 @@ ldap_addr_select(struct pine *ps, ADDR_CHOOSE_S *ac, LDAP_CHOOSE_S **result,
dprint((9, " %s", a ? a : "?"));
if(strcmp(a, res_list->info_used->cnattr) == 0){
if(!cn)
- cn = ldap_get_values(res_list->ld, e, a);
+ cn = ldap_get_values_len(res_list->ld, e, a);
- if(cn && !(cn[0] && cn[0][0])){
- ldap_value_free(cn);
+ if(cn && !ALPINE_LDAP_can_use(cn)){
+ ldap_value_free_len(cn);
cn = NULL;
}
}
else if(strcmp(a, res_list->info_used->mailattr) == 0){
if(!mail)
- mail = ldap_get_values(res_list->ld, e, a);
+ mail = ldap_get_values_len(res_list->ld, e, a);
}
else if(strcmp(a, "o") == 0){
if(!org)
- org = ldap_get_values(res_list->ld, e, a);
+ org = ldap_get_values_len(res_list->ld, e, a);
}
else if(strcmp(a, "ou") == 0){
if(!unit)
- unit = ldap_get_values(res_list->ld, e, a);
+ unit = ldap_get_values_len(res_list->ld, e, a);
}
else if(strcmp(a, "title") == 0){
if(!title)
- title = ldap_get_values(res_list->ld, e, a);
+ title = ldap_get_values_len(res_list->ld, e, a);
}
our_ldap_memfree(a);
@@ -179,10 +179,10 @@ ldap_addr_select(struct pine *ps, ADDR_CHOOSE_S *ac, LDAP_CHOOSE_S **result,
if(strcmp(a, res_list->info_used->snattr) == 0){
if(!sn)
- sn = ldap_get_values(res_list->ld, e, a);
+ sn = ldap_get_values_len(res_list->ld, e, a);
- if(sn && !(sn[0] && sn[0][0])){
- ldap_value_free(sn);
+ if(sn && !ALPINE_LDAP_can_use(sn)){
+ ldap_value_free_len(sn);
sn = NULL;
}
}
@@ -191,7 +191,7 @@ ldap_addr_select(struct pine *ps, ADDR_CHOOSE_S *ac, LDAP_CHOOSE_S **result,
}
}
- if(mail && mail[0] && mail[0][0])
+ if(ALPINE_LDAP_can_use(mail))
have_mail = 1;
else
have_mail = 0;
@@ -212,8 +212,8 @@ ldap_addr_select(struct pine *ps, ADDR_CHOOSE_S *ac, LDAP_CHOOSE_S **result,
if(need_mail && !have_mail)
ctmpa->flags |= CF_PRIVATE;
- ctmpa->value = cpystr(cn[0]);
- ldap_value_free(cn);
+ ctmpa->value = cpystr(cn[0]->bv_val);
+ ldap_value_free_len(cn);
ctmpa->valoffset = indent;
ctmpa->keymenu = km;
ctmpa->help = help;
@@ -238,8 +238,8 @@ ldap_addr_select(struct pine *ps, ADDR_CHOOSE_S *ac, LDAP_CHOOSE_S **result,
if(need_mail && !have_mail)
ctmpa->flags |= CF_PRIVATE;
- ctmpa->value = cpystr(sn[0]);
- ldap_value_free(sn);
+ ctmpa->value = cpystr(sn[0]->bv_val);
+ ldap_value_free_len(sn);
ctmpa->valoffset = indent;
ctmpa->keymenu = km;
ctmpa->help = help;
@@ -289,11 +289,11 @@ ldap_addr_select(struct pine *ps, ADDR_CHOOSE_S *ac, LDAP_CHOOSE_S **result,
}
if(title){
- for(i = 0; title[i] && title[i][0]; i++){
+ for(i = 0; ALPINE_LDAP_usable(title, i); i++){
new_confline(&ctmpa);
ctmpa->flags |= CF_NOSELECT;
ctmpa->valoffset = indent + 2;
- ctmpa->value = cpystr(title[i]);
+ ctmpa->value = cpystr(title[i]->bv_val);
ctmpa->keymenu = km;
ctmpa->help = help;
ctmpa->help_title = _(srch_res_help_title);
@@ -305,15 +305,15 @@ ldap_addr_select(struct pine *ps, ADDR_CHOOSE_S *ac, LDAP_CHOOSE_S **result,
ctmpa->d.a.ac = ac;
}
- ldap_value_free(title);
+ ldap_value_free_len(title);
}
if(unit){
- for(i = 0; unit[i] && unit[i][0]; i++){
+ for(i = 0; ALPINE_LDAP_usable(unit, i); i++){
new_confline(&ctmpa);
ctmpa->flags |= CF_NOSELECT;
ctmpa->valoffset = indent + 2;
- ctmpa->value = cpystr(unit[i]);
+ ctmpa->value = cpystr(unit[i]->bv_val);
ctmpa->keymenu = km;
ctmpa->help = help;
ctmpa->help_title = _(srch_res_help_title);
@@ -325,15 +325,15 @@ ldap_addr_select(struct pine *ps, ADDR_CHOOSE_S *ac, LDAP_CHOOSE_S **result,
ctmpa->d.a.ac = ac;
}
- ldap_value_free(unit);
+ ldap_value_free_len(unit);
}
if(org){
- for(i = 0; org[i] && org[i][0]; i++){
+ for(i = 0; ALPINE_LDAP_usable(org, i); i++){
new_confline(&ctmpa);
ctmpa->flags |= CF_NOSELECT;
ctmpa->valoffset = indent + 2;
- ctmpa->value = cpystr(org[i]);
+ ctmpa->value = cpystr(org[i]->bv_val);
ctmpa->keymenu = km;
ctmpa->help = help;
ctmpa->help_title = _(srch_res_help_title);
@@ -345,20 +345,20 @@ ldap_addr_select(struct pine *ps, ADDR_CHOOSE_S *ac, LDAP_CHOOSE_S **result,
ctmpa->d.a.ac = ac;
}
- ldap_value_free(org);
+ ldap_value_free_len(org);
}
if(have_mail){
/* Don't show long list of email addresses. */
- if(!(mail[0] && mail[0][0]) ||
- !(mail[1] && mail[1][0]) ||
- !(mail[2] && mail[2][0]) ||
- !(mail[3] && mail[3][0])){
- for(i = 0; mail[i] && mail[i][0]; i++){
+ if(!ALPINE_LDAP_can_use_num(mail, 0) ||
+ !ALPINE_LDAP_can_use_num(mail, 1) ||
+ !ALPINE_LDAP_can_use_num(mail, 2) ||
+ !ALPINE_LDAP_can_use_num(mail, 3)){
+ for(i = 0; ALPINE_LDAP_usable(mail, i); i++){
new_confline(&ctmpa);
ctmpa->flags |= CF_NOSELECT;
ctmpa->valoffset = indent + 2;
- ctmpa->value = cpystr(mail[i]);
+ ctmpa->value = cpystr(mail[i]->bv_val);
ctmpa->keymenu = km;
ctmpa->help = help;
ctmpa->help_title = _(srch_res_help_title);
@@ -373,7 +373,7 @@ ldap_addr_select(struct pine *ps, ADDR_CHOOSE_S *ac, LDAP_CHOOSE_S **result,
else{
char tmp[200];
- for(i = 4; mail[i] && mail[i][0]; i++)
+ for(i = 4; ALPINE_LDAP_usable(mail, i); i++)
;
new_confline(&ctmpa);
@@ -410,7 +410,7 @@ ldap_addr_select(struct pine *ps, ADDR_CHOOSE_S *ac, LDAP_CHOOSE_S **result,
}
if(mail)
- ldap_value_free(mail);
+ ldap_value_free_len(mail);
new_confline(&ctmpa); /* blank line */
ctmpa->keymenu = km;
diff --git a/alpine/takeaddr.c b/alpine/takeaddr.c
index 5c13d8a9..e51bcb71 100644
--- a/alpine/takeaddr.c
+++ b/alpine/takeaddr.c
@@ -2980,16 +2980,15 @@ save_ldap_entry(struct pine *ps, LDAP_CHOOSE_S *e, int save)
*first = NULL,
*last = NULL,
*comment = NULL;
- char **cn = NULL,
+ struct berval **cn = NULL,
**mail = NULL,
**sn = NULL,
**givenname = NULL,
**title = NULL,
**telephone = NULL,
**elecmail = NULL,
- **note = NULL,
- **ll;
- int j,
+ **note = NULL;
+ int j, num,
export = 0;
@@ -3006,35 +3005,35 @@ save_ldap_entry(struct pine *ps, LDAP_CHOOSE_S *e, int save)
dprint((9, " %s", a ? a : "?"));
if(strcmp(a, e->info_used->cnattr) == 0){
if(!cn)
- cn = ldap_get_values(e->ld, e->selected_entry, a);
+ cn = ldap_get_values_len(e->ld, e->selected_entry, a);
}
else if(strcmp(a, e->info_used->mailattr) == 0){
if(!mail)
- mail = ldap_get_values(e->ld, e->selected_entry, a);
+ mail = ldap_get_values_len(e->ld, e->selected_entry, a);
}
else if(strcmp(a, "electronicmail") == 0){
if(!elecmail)
- elecmail = ldap_get_values(e->ld, e->selected_entry, a);
+ elecmail = ldap_get_values_len(e->ld, e->selected_entry, a);
}
else if(strcmp(a, "comment") == 0){
if(!note)
- note = ldap_get_values(e->ld, e->selected_entry, a);
+ note = ldap_get_values_len(e->ld, e->selected_entry, a);
}
else if(strcmp(a, e->info_used->snattr) == 0){
if(!sn)
- sn = ldap_get_values(e->ld, e->selected_entry, a);
+ sn = ldap_get_values_len(e->ld, e->selected_entry, a);
}
else if(strcmp(a, e->info_used->gnattr) == 0){
if(!givenname)
- givenname = ldap_get_values(e->ld, e->selected_entry, a);
+ givenname = ldap_get_values_len(e->ld, e->selected_entry, a);
}
else if(strcmp(a, "telephonenumber") == 0){
if(!telephone)
- telephone = ldap_get_values(e->ld, e->selected_entry, a);
+ telephone = ldap_get_values_len(e->ld, e->selected_entry, a);
}
else if(strcmp(a, "title") == 0){
if(!title)
- title = ldap_get_values(e->ld, e->selected_entry, a);
+ title = ldap_get_values_len(e->ld, e->selected_entry, a);
}
}
@@ -3065,10 +3064,10 @@ save_ldap_entry(struct pine *ps, LDAP_CHOOSE_S *e, int save)
}
if(elecmail){
- if(elecmail[0] && elecmail[0][0] && !mail)
+ if(ALPINE_LDAP_can_use(elecmail) && !mail)
mail = elecmail;
else
- ldap_value_free(elecmail);
+ ldap_value_free_len(elecmail);
elecmail = NULL;
}
@@ -3078,51 +3077,51 @@ save_ldap_entry(struct pine *ps, LDAP_CHOOSE_S *e, int save)
char *d,
*fakedomain = "@";
size_t len;
- char **cm;
+ struct berval **cm;
int how_many_selected = 0;
- if(cn && cn[0] && cn[0][0])
- fullname = cpystr(cn[0]);
- if(sn && sn[0] && sn[0][0])
- last = cpystr(sn[0]);
- if(givenname && givenname[0] && givenname[0][0])
- first = cpystr(givenname[0]);
-
- if(note && note[0] && note[0][0])
+ if(ALPINE_LDAP_can_use(cn))
+ fullname = cpystr(cn[0]->bv_val);
+ if(ALPINE_LDAP_can_use(sn))
+ last = cpystr(sn[0]->bv_val);
+ if(ALPINE_LDAP_can_use(givenname))
+ first = cpystr(givenname[0]->bv_val);
+
+ if(ALPINE_LDAP_can_use(note))
cm = note;
else
cm = title;
- for(ll = cm, len = 0; ll && *ll; ll++)
- len += strlen(*ll) + 2;
+ for(len = 0, num = 0; ALPINE_LDAP_usable(cm, num); num++)
+ len += strlen(cm[num]->bv_val) + 2;
if(len){
comment = (char *)fs_get(len * sizeof(char));
d = comment;
- ll = cm;
- while(*ll){
- sstrncpy(&d, *ll, len-(d-comment));
- ll++;
- if(*ll)
+ num = 0;
+ while(ALPINE_LDAP_usable(cm, num)){
+ sstrncpy(&d, cm[num]->bv_val, len-(d-comment));
+ num++;
+ if(ALPINE_LDAP_usable(cm, num))
sstrncpy(&d, "; ", len-(d-comment));
}
comment[len-1] = '\0';
}
- for(ll = mail, len = 0; ll && *ll; ll++)
- len += strlen(*ll) + 1;
+ for(len = 0, num = 0; ALPINE_LDAP_usable(mail, num); num++)
+ len += strlen(mail[num]->bv_val) + 2;
/* paste the email addresses together */
if(len){
address = (char *)fs_get(len * sizeof(char));
d = address;
- ll = mail;
- while(*ll){
- sstrncpy(&d, *ll, len-(d-address));
- ll++;
- if(*ll)
+ num = 0;
+ while(ALPINE_LDAP_usable(mail, num)){
+ sstrncpy(&d, mail[num]->bv_val, len-(d-address));
+ num++;
+ if(ALPINE_LDAP_usable(mail, num))
sstrncpy(&d, ", ", len-(d-address));
}
@@ -3295,14 +3294,14 @@ save_ldap_entry(struct pine *ps, LDAP_CHOOSE_S *e, int save)
break;
case 'a':
- if(mail && mail[0] && mail[0][0]){
+ if(ALPINE_LDAP_can_use(mail)){
srctype = CharStar;
if(!(srcstore = so_get(srctype, NULL, EDIT_ACCESS)))
q_status_message(SM_ORDER,0,2, _("Error allocating space"));
else{
- for(ll = mail; ll && *ll; ll++){
- so_puts(srcstore, *ll);
+ for(num = 0; ALPINE_LDAP_usable(mail, num); num++){
+ so_puts(srcstore, mail[num]->bv_val);
so_puts(srcstore, "\n");
}
@@ -3325,26 +3324,26 @@ save_ldap_entry(struct pine *ps, LDAP_CHOOSE_S *e, int save)
vinfo = (VCARD_INFO_S *)fs_get(sizeof(VCARD_INFO_S));
memset((void *)vinfo, 0, sizeof(VCARD_INFO_S));
- if(cn && cn[0] && cn[0][0])
- vinfo->fullname = copy_list_array(cn);
+ if(ALPINE_LDAP_can_use(cn))
+ vinfo->fullname = berval_to_array(cn);
- if(note && note[0] && note[0][0])
- vinfo->note = copy_list_array(note);
+ if(ALPINE_LDAP_can_use(note))
+ vinfo->note = berval_to_array(note);
- if(title && title[0] && title[0][0])
- vinfo->title = copy_list_array(title);
+ if(ALPINE_LDAP_can_use(title))
+ vinfo->title = berval_to_array(title);
- if(telephone && telephone[0] && telephone[0][0])
- vinfo->tel = copy_list_array(telephone);
+ if(ALPINE_LDAP_can_use(telephone))
+ vinfo->tel = berval_to_array(telephone);
- if(mail && mail[0] && mail[0][0])
- vinfo->email = copy_list_array(mail);
+ if(ALPINE_LDAP_can_use(mail))
+ vinfo->email = berval_to_array(mail);
- if(sn && sn[0] && sn[0][0])
- vinfo->last = cpystr(sn[0]);
+ if(ALPINE_LDAP_can_use(sn))
+ vinfo->last = cpystr(sn[0]->bv_val);
- if(givenname && givenname[0] && givenname[0][0])
- vinfo->first = cpystr(givenname[0]);
+ if(ALPINE_LDAP_can_use(givenname))
+ vinfo->first = cpystr(givenname[0]->bv_val);
gf_set_so_writec(&pc, srcstore);
@@ -3366,21 +3365,21 @@ save_ldap_entry(struct pine *ps, LDAP_CHOOSE_S *e, int save)
}
if(cn)
- ldap_value_free(cn);
+ ldap_value_free_len(cn);
if(mail)
- ldap_value_free(mail);
+ ldap_value_free_len(mail);
if(elecmail)
- ldap_value_free(elecmail);
+ ldap_value_free_len(elecmail);
if(note)
- ldap_value_free(note);
+ ldap_value_free_len(note);
if(sn)
- ldap_value_free(sn);
+ ldap_value_free_len(sn);
if(givenname)
- ldap_value_free(givenname);
+ ldap_value_free_len(givenname);
if(telephone)
- ldap_value_free(telephone);
+ ldap_value_free_len(telephone);
if(title)
- ldap_value_free(title);
+ ldap_value_free_len(title);
if(fullname)
fs_give((void **)&fullname);
if(address)
diff --git a/configure b/configure
index 334eb526..7b262108 100755
--- a/configure
+++ b/configure
@@ -18045,56 +18045,8 @@ $as_echo "$as_me: * * * Including LDAP Support" >&6;}
$as_echo "#define ENABLE_LDAP /**/" >>confdefs.h
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we should define LDAP_DEPRECATED" >&5
-$as_echo_n "checking if we should define LDAP_DEPRECATED... " >&6; }
- if test "$cross_compiling" = yes; then :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cross compiling: not checking" >&5
-$as_echo "$as_me: WARNING: cross compiling: not checking" >&2;}
-
-
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ldap.h>
-int main(void) {
-
- if (LDAP_VENDOR_VERSION >= 20300)
- exit(0);
-
- exit(2);
-}
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-$as_echo "#define LDAP_DEPRECATED 1" >>confdefs.h
-
-
-
-else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: Cannot find LDAP functions! Excluding LDAP support." >&5
-$as_echo "$as_me: Cannot find LDAP functions! Excluding LDAP support." >&6;}
fi
-fi
+ fi
if test "x$alpine_PAM" != "xnone" ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pam_start" >&5
diff --git a/configure.ac b/configure.ac
index 272144e7..f4cf950a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1426,40 +1426,40 @@ if test "$alpine_with_ldap" = "yes" ; then
if test "$alpine_has_ldap" = "yes" ; then
AC_MSG_NOTICE([* * * Including LDAP Support])
AC_DEFINE([ENABLE_LDAP], [], [Enable LDAP query support])
-
+ fi
dnl we use deprecated functions (ldap_get_values)
dnl OpenLDAP 2.3.x doesn't define LDAP_DEPRECATED by default like 2.2.x
- AC_MSG_CHECKING([if we should define LDAP_DEPRECATED])
- AC_RUN_IFELSE(
- [AC_LANG_SOURCE([[
-#include <stdio.h>
-#include <stdlib.h>
-#include <ldap.h>
-int main(void) {
-
- if (LDAP_VENDOR_VERSION >= 20300)
- exit(0);
-
- exit(2);
-}
- ]])],
- [
- AC_MSG_RESULT(yes)
- AC_DEFINE(LDAP_DEPRECATED, 1,
- [Define if you use OpenLDAP 2.3.x deprecated functions])
-
- ],
- [
- AC_MSG_RESULT(no)
- ],
- [
- AC_MSG_WARN([cross compiling: not checking])
- ]
- )
-
- else
- AC_MSG_NOTICE([Cannot find LDAP functions! Excluding LDAP support.])
- fi
+dnl AC_MSG_CHECKING([if we should define LDAP_DEPRECATED])
+dnl AC_RUN_IFELSE(
+dnl [AC_LANG_SOURCE([[
+dnl #include <stdio.h>
+dnl #include <stdlib.h>
+dnl #include <ldap.h>
+dnl int main(void) {
+dnl
+dnl if (LDAP_VENDOR_VERSION >= 20300)
+dnl exit(0);
+dnl
+dnl exit(2);
+dnl }
+dnl ]])],
+dnl [
+dnl AC_MSG_RESULT(yes)
+dnl AC_DEFINE(LDAP_DEPRECATED, 1,
+dnl [Define if you use OpenLDAP 2.3.x deprecated functions])
+dnl
+dnl ],
+dnl [
+dnl AC_MSG_RESULT(no)
+dnl ],
+dnl [
+dnl AC_MSG_WARN([cross compiling: not checking])
+dnl ]
+dnl )
+dnl
+dnl else
+dnl AC_MSG_NOTICE([Cannot find LDAP functions! Excluding LDAP support.])
+dnl fi
fi
dnl PAM support is needed to build c-client in some linux, and hence Alpine.
diff --git a/doc/alpine.1 b/doc/alpine.1
index 5d236774..312cb776 100644
--- a/doc/alpine.1
+++ b/doc/alpine.1
@@ -164,6 +164,9 @@ Use function keys for commands. This is the same as running the command
.IP \fB-n\ \fInumber\fR 20
Start up with current message-number set to
.I number.
+.IP \fB-nowrite_password_cache\fR 20
+Read from a password cache if there is one, but
+never offer to write a password to the cache
.IP \fB-o\fR 20
Open first folder read-only.
.IP \fB-p\ \fIconfig-file\fR 20
@@ -177,11 +180,24 @@ Use
as the configuration file instead of default
system-wide configuration file
.IR pine.conf .
+.IP \fB-passfile\ \fI<fully-qualified-path>\fR 20
+When password file support is compiled in, use the file specified in
+.I <fully-qualified-path>
+instead of the default.
.IP \fB-pinerc\ \fIfile\fR 20
Output fresh pinerc configuration to
.I file, preserving the settings of variables that the user has made.
Use \fIfile\fR set to ``-'' to make output go to standard out.
-<IP> \fB-registry\ \fIcmd\fR 20
+.IP \fB-pwdcertdir\ \fI<fully-qualified-path>\fR 20
+When SMIME and password file support are compiled in, this variable sets
+the directory to store your personal key and certificate to encrypt and
+decrypt your password file.
+.IP \fB-r\fR 20
+Use restricted/demo mode.
+.I Alpine
+will only send mail to itself
+and functions like save and export are restricted.
+.IP \fB-registry\ \fIcmd\fR 20
For PC-Alpine only, this option affects the values of
Alpine's registry entries.
Possible values for \fIcmd\fR are set, clear, and dump.
@@ -193,11 +209,11 @@ entries according to its current settings.
Note that the dump command is currently disabled.
Without the -registry option, PC-Alpine will write values into
the registry only if there currently aren't any values set.
-.IP \fB-r\fR 20
-Use restricted/demo mode.
-.I Alpine
-will only send mail to itself
-and functions like save and export are restricted.
+.IP \fB-smimedir\ \fI<fully-qualified-path>\fR
+If SMIME is compiled in, this argument sets the directory where the
+public, private, and certificate authorities certificates and keys
+are stored. If not set by the command line the default is
+~/.alpine-smime
.IP \fB-sort\ \fIorder\fR
Sort the FOLDER INDEX display in one of the following orders:
.I arrival, date, subject, orderedsubj, thread, from, size, score, to, cc,
diff --git a/imap/src/c-client/auth_ext.c b/imap/src/c-client/auth_ext.c
index 61dfc1b8..c8c5f4ac 100644
--- a/imap/src/c-client/auth_ext.c
+++ b/imap/src/c-client/auth_ext.c
@@ -59,11 +59,11 @@ long auth_external_client (authchallenge_t challenger,authrespond_t responder,
unsigned long clen;
long ret = NIL;
*trial = 65535; /* never retry */
- if (challenge = (*challenger) (stream,&clen)) {
+ if ((challenge = (*challenger) (stream,&clen)) != NULL) {
fs_give ((void **) &challenge);
/* send authorization id (empty string OK) */
if ((*responder) (stream,strcpy (user,mb->user),strlen (mb->user))) {
- if (challenge = (*challenger) (stream,&clen))
+ if ((challenge = (*challenger) (stream,&clen)) != NULL)
fs_give ((void **) &challenge);
else ret = LONGT; /* check the authentication */
}
diff --git a/imap/src/c-client/auth_gss.c b/imap/src/c-client/auth_gss.c
index 26bf9e50..66be8cce 100644
--- a/imap/src/c-client/auth_gss.c
+++ b/imap/src/c-client/auth_gss.c
@@ -97,7 +97,7 @@ long auth_gssapi_client (authchallenge_t challenger,authrespond_t responder,
long ret = NIL;
*trial = 65535; /* never retry */
/* get initial (empty) challenge */
- if (chal.value = (*challenger) (stream,(unsigned long *) &chal.length)) {
+ if ((chal.value = (*challenger) (stream,(unsigned long *) &chal.length)) != NULL) {
if (chal.length) { /* abort if challenge non-empty */
mm_log ("Server bug: non-empty initial GSSAPI challenge",WARN);
(*responder) (stream,NIL,0);
@@ -336,7 +336,7 @@ char *auth_gssapi_server (authresponse_t responder,int argc,char *argv[])
GSS_S_COMPLETE) {
if ((smj = gss_acquire_cred (&smn,crname,0,NIL,GSS_C_ACCEPT,&crd,NIL,NIL))
== GSS_S_COMPLETE) {
- if (resp.value = (*responder) ("",0,(unsigned long *) &resp.length)) {
+ if ((resp.value = (*responder) ("",0,(unsigned long *) &resp.length)) != NULL) {
do { /* negotiate authentication */
smj = gss_accept_sec_context (&smn,&ctx,crd,&resp,
GSS_C_NO_CHANNEL_BINDINGS,&name,&mech,
diff --git a/imap/src/c-client/auth_log.c b/imap/src/c-client/auth_log.c
index 1e1b1b5c..6615744f 100644
--- a/imap/src/c-client/auth_log.c
+++ b/imap/src/c-client/auth_log.c
@@ -63,7 +63,7 @@ long auth_login_client (authchallenge_t challenger,authrespond_t responder,
unsigned long clen;
long ret = NIL;
/* get user name prompt */
- if (challenge = (*challenger) (stream,&clen)) {
+ if ((challenge = (*challenger) (stream,&clen)) != NULL) {
fs_give ((void **) &challenge);
pwd[0] = NIL; /* prompt user */
mm_login (mb,user,pwd,*trial);
@@ -78,7 +78,7 @@ long auth_login_client (authchallenge_t challenger,authrespond_t responder,
fs_give ((void **) &challenge);
/* send password */
if ((*responder) (stream,pwd,strlen (pwd))) {
- if (challenge = (*challenger) (stream,&clen))
+ if ((challenge = (*challenger) (stream,&clen)) != NULL)
fs_give ((void **) &challenge);
else {
++*trial; /* can try again if necessary */
@@ -104,10 +104,10 @@ char *auth_login_server (authresponse_t responder,int argc,char *argv[])
{
char *ret = NIL;
char *user,*pass,*authuser;
- if (user = (*responder) (PWD_USER,sizeof (PWD_USER),NIL)) {
- if (pass = (*responder) (PWD_PWD,sizeof (PWD_PWD),NIL)) {
+ if ((user = (*responder) (PWD_USER,sizeof (PWD_USER),NIL)) != NULL) {
+ if ((pass = (*responder) (PWD_PWD,sizeof (PWD_PWD),NIL)) != NULL) {
/* delimit user from possible admin */
- if (authuser = strchr (user,'*')) *authuser++ = '\0';
+ if ((authuser = strchr (user,'*')) != NULL) *authuser++ = '\0';
if (server_login (user,pass,authuser,argc,argv)) ret = myusername ();
fs_give ((void **) &pass);
}
diff --git a/imap/src/c-client/auth_md5.c b/imap/src/c-client/auth_md5.c
index f32ebc88..9c81d308 100644
--- a/imap/src/c-client/auth_md5.c
+++ b/imap/src/c-client/auth_md5.c
@@ -100,7 +100,7 @@ long auth_md5_client (authchallenge_t challenger,authrespond_t responder,
unsigned long clen;
long ret = NIL;
/* get challenge */
- if (challenge = (*challenger) (stream,&clen)) {
+ if ((challenge = (*challenger) (stream,&clen)) != NULL) {
pwd[0] = NIL; /* prompt user */
mm_login (mb,user,pwd,*trial);
if (!pwd[0]) { /* user requested abort */
@@ -115,7 +115,7 @@ long auth_md5_client (authchallenge_t challenger,authrespond_t responder,
fs_give ((void **) &challenge);
/* send credentials, allow retry if OK */
if ((*responder) (stream,pwd,strlen (pwd))) {
- if (challenge = (*challenger) (stream,&clen))
+ if ((challenge = (*challenger) (stream,&clen)) != NULL)
fs_give ((void **) &challenge);
else {
++*trial; /* can try again if necessary */
@@ -150,14 +150,14 @@ char *auth_md5_server (authresponse_t responder,int argc,char *argv[])
sprintf (chal,"<%lu.%lu@%s>",(unsigned long) getpid (),
(unsigned long) time (0),mylocalhost ());
/* send challenge, get user and hash */
- if (user = (*responder) (chal,cl = strlen (chal),NIL)) {
+ if ((user = (*responder) (chal,cl = strlen (chal),NIL)) != NULL) {
/* got user, locate hash */
- if (hash = strrchr (user,' ')) {
+ if ((hash = strrchr (user,' ')) != NULL) {
*hash++ = '\0'; /* tie off user */
/* see if authentication user */
- if (authuser = strchr (user,'*')) *authuser++ = '\0';
+ if ((authuser = strchr (user,'*')) != NULL) *authuser++ = '\0';
/* get password */
- if (p = auth_md5_pwd ((authuser && *authuser) ? authuser : user)) {
+ if ((p = auth_md5_pwd ((authuser && *authuser) ? authuser : user)) != NULL) {
pl = strlen (p);
u = (md5try && !strcmp (hash,hmac_md5 (hshbuf,chal,cl,p,pl))) ?
user : NIL;
@@ -234,9 +234,9 @@ char *apop_login (char *chal,char *user,char *md5,int argc,char *argv[])
MD5CONTEXT ctx;
char *hex = "0123456789abcdef";
/* see if authentication user */
- if (authuser = strchr (user,'*')) *authuser++ = '\0';
+ if ((authuser = strchr (user,'*')) != NULL) *authuser++ = '\0';
/* get password */
- if (s = auth_md5_pwd ((authuser && *authuser) ? authuser : user)) {
+ if ((s = auth_md5_pwd ((authuser && *authuser) ? authuser : user)) != NULL) {
md5_init (&ctx); /* initialize MD5 context */
/* build string to get MD5 digest */
sprintf (tmp,"%.128s%.128s",chal,s);
diff --git a/imap/src/c-client/auth_pla.c b/imap/src/c-client/auth_pla.c
index 73ca2259..ef991f1d 100644
--- a/imap/src/c-client/auth_pla.c
+++ b/imap/src/c-client/auth_pla.c
@@ -63,7 +63,7 @@ long auth_plain_client (authchallenge_t challenger,authrespond_t responder,
if (!mb->sslflag && !mb->tlsflag)
mm_log ("SECURITY PROBLEM: insecure server advertised AUTH=PLAIN",WARN);
/* get initial (empty) challenge */
- if (challenge = (*challenger) (stream,&clen)) {
+ if ((challenge = (*challenger) (stream,&clen)) != NULL) {
fs_give ((void **) &challenge);
if (clen) { /* abort if challenge non-empty */
mm_log ("Server bug: non-empty initial PLAIN challenge",WARN);
@@ -91,7 +91,7 @@ long auth_plain_client (authchallenge_t challenger,authrespond_t responder,
for (u = pwd; *u; *t++ = *u++);
/* send credentials */
if ((*responder) (stream,response,rlen)) {
- if (challenge = (*challenger) (stream,&clen))
+ if ((challenge = (*challenger) (stream,&clen)) != NULL)
fs_give ((void **) &challenge);
else {
++*trial; /* can try again if necessary */
@@ -120,7 +120,7 @@ char *auth_plain_server (authresponse_t responder,int argc,char *argv[])
char *user,*aid,*pass;
unsigned long len;
/* get user name */
- if (aid = (*responder) ("",0,&len)) {
+ if ((aid = (*responder) ("",0,&len)) != NULL) {
/* note: responders null-terminate */
if ((((unsigned long) ((user = aid + strlen (aid) + 1) - aid)) < len) &&
(((unsigned long) ((pass = user + strlen (user) + 1) - aid)) < len) &&
diff --git a/imap/src/c-client/imap4r1.c b/imap/src/c-client/imap4r1.c
index f35b14b4..dbd945ec 100644
--- a/imap/src/c-client/imap4r1.c
+++ b/imap/src/c-client/imap4r1.c
@@ -504,10 +504,10 @@ void imap_lsub (MAILSTREAM *stream,char *ref,char *pat)
if (ref && *ref) sprintf (mbx,"%s%s",ref,pat);
else strcpy (mbx,pat);
- if (s = sm_read (tmp,&sdb)) do if (imap_valid (s) && pmatch (s,mbx))
+ if ((s = sm_read (tmp,&sdb)) != NULL) do if (imap_valid (s) && pmatch (s,mbx))
mm_lsub (stream,NIL,s,NIL);
/* until no more subscriptions */
- while (s = sm_read (tmp,&sdb));
+ while ((s = sm_read (tmp,&sdb)) != NULL);
}
/* IMAP find list of mailboxes
@@ -849,7 +849,7 @@ MAILSTREAM *imap_open (MAILSTREAM *stream)
* order, attempt to open via simap, tryssl, rimap, and finally TCP.
*/
/* try simap */
- else if (reply = imap_rimap (stream,"*imap",&mb,usr,tmp));
+ else if ((reply = imap_rimap (stream,"*imap",&mb,usr,tmp)) != NULL);
else if (ssld && /* try tryssl if enabled */
(stream->tryssl || mail_parameters (NIL,GET_TRYSSLFIRST,NIL)) &&
(LOCAL->netstream =
@@ -1325,7 +1325,7 @@ void imap_close (MAILSTREAM *stream,long options)
}
if (LOCAL->threaddata) mail_free_threadnode (&LOCAL->threaddata);
/* flush threaders */
- if (thr = LOCAL->cap.threader) while (t = thr) {
+ if ((thr = LOCAL->cap.threader) != NULL) while ((t = thr) != NULL) {
fs_give ((void **) &t->name);
thr = t->next;
fs_give ((void **) &t);
@@ -1507,8 +1507,8 @@ ENVELOPE *imap_structure (MAILSTREAM *stream,unsigned long msgno,BODY **body,
set = set->next) {
i = (set->first == 0xffffffff) ? stream->nmsgs :
min (set->first,stream->nmsgs);
- if (j = (set->last == 0xffffffff) ? stream->nmsgs :
- min (set->last,stream->nmsgs)) {
+ if ((j = (set->last == 0xffffffff) ? stream->nmsgs :
+ min (set->last,stream->nmsgs)) != 0L) {
if (i > j) { /* swap the range if backwards */
x = i; i = j; j = x;
}
@@ -1530,7 +1530,7 @@ ENVELOPE *imap_structure (MAILSTREAM *stream,unsigned long msgno,BODY **body,
sprintf (s += strlen (s),",%lu:%lu",i,x);
i = 1 + x - i; /* number of messages in this range */
/* still can look ahead some more? */
- if (k = (k > i) ? k - i : 0)
+ if ((k = (k > i) ? k - i : 0) != 0)
/* yes, scan further in this range */
for (i = x + 2; (i <= j) &&
((i == msgno) ||
@@ -1708,7 +1708,7 @@ long imap_msgdata (MAILSTREAM *stream,unsigned long msgno,char *section,
else if (!section[0]) /* BODY[] becomes RFC822 */
aatt.text = (void *) ((flags & FT_PEEK) ? "RFC822.PEEK" : "RFC822");
/* nested header */
- else if (t = strstr (section,".HEADER")) {
+ else if ((t = strstr (section,".HEADER")) != NULL) {
aatt.type = (flags & FT_PEEK) ? BODYPEEK : BODYTEXT;
args[2] = &acls; /* will need to close section */
aatt.text = (void *) tmp; /* convert .HEADER to .0 */
@@ -1892,7 +1892,7 @@ unsigned long imap_uid (MAILSTREAM *stream,unsigned long msgno)
aatt.type = ATOM; aatt.text = (void *) "UID";
args[0] = &aseq; args[1] = &aatt; args[2] = NIL;
sprintf (seq,"%lu",msgno);
- if (k = imap_uidlookahead) {/* build UID list */
+ if ((k = imap_uidlookahead) != 0L) {/* build UID list */
for (i = msgno + 1, s = seq; k && (i <= stream->nmsgs); i++)
if (!mail_elt (stream,i)->private.uid) {
s += strlen (s); /* find string end, see if nearing end */
@@ -2056,7 +2056,7 @@ long imap_search (MAILSTREAM *stream,char *charset,SEARCHPGM *pgm,long flags)
LOCAL->filter = T; /* retry, filtering SEARCH results */
for (i = 1; i <= stream->nmsgs; i++)
mail_elt (stream,i)->private.filter = NIL;
- for (set = ss; set; set = set->next) if (i = set->first) {
+ for (set = ss; set; set = set->next) if ((i = set->first) != 0L) {
/* single message becomes one-message range */
if (!(j = set->last)) j = i;
else if (j < i) { /* swap reversed range */
@@ -2658,7 +2658,7 @@ void imap_gc (MAILSTREAM *stream,long gcflags)
(*mc) (stream,stream->nmsgs,CH_SIZE);
if (gcflags & GC_TEXTS) { /* garbage collect texts? */
if (!stream->scache) for (i = 1; i <= stream->nmsgs; ++i)
- if (elt = (MESSAGECACHE *) (*mc) (stream,i,CH_ELT))
+ if ((elt = (MESSAGECACHE *) (*mc) (stream,i,CH_ELT)) != NULL)
imap_gc_body (elt->private.msg.body);
imap_gc_body (stream->body);
}
@@ -2713,7 +2713,7 @@ void imap_capability (MAILSTREAM *stream)
imap_send (stream,"CAPABILITY",NIL);
if (!LOCAL->gotcapability) { /* did server get any? */
/* no, flush threaders just in case */
- if (thr = LOCAL->cap.threader) while (t = thr) {
+ if ((thr = LOCAL->cap.threader) != NULL) while ((t = thr) != NULL) {
fs_give ((void **) &t->name);
thr = t->next;
fs_give ((void **) &t);
@@ -2935,7 +2935,7 @@ IMAPPARSEDREPLY *imap_send (MAILSTREAM *stream,char *cmd,IMAPARG *args[])
if (LOCAL->referral) fs_give ((void **) &LOCAL->referral);
sprintf (CMDBASE,"%s %s",tag,cmd);
s = CMDBASE + strlen (CMDBASE);
- if (arglst = args) while (arg = *arglst++) {
+ if ((arglst = args) != NULL) while ((arg = *arglst++) != NULL) {
*s++ = ' '; /* delimit argument with space */
switch (arg->type) {
case ATOM: /* atom */
@@ -2955,11 +2955,11 @@ IMAPPARSEDREPLY *imap_send (MAILSTREAM *stream,char *cmd,IMAPARG *args[])
break;
case ASTRING: /* atom or string, must be literal? */
st.size = strlen ((char *) (st.data = (unsigned char *) arg->text));
- if (reply = imap_send_astring (stream,tag,&s,&st,NIL,CMDBASE+MAXCOMMAND))
+ if ((reply = imap_send_astring (stream,tag,&s,&st,NIL,CMDBASE+MAXCOMMAND)) != NULL)
return reply;
break;
case LITERAL: /* literal, as a stringstruct */
- if (reply = imap_send_literal (stream,tag,&s,arg->text)) return reply;
+ if ((reply = imap_send_literal (stream,tag,&s,arg->text)) != NULL) return reply;
break;
case LIST: /* list of strings */
@@ -2967,16 +2967,16 @@ IMAPPARSEDREPLY *imap_send (MAILSTREAM *stream,char *cmd,IMAPARG *args[])
c = '('; /* open paren */
do { /* for each list item */
*s++ = c; /* write prefix character */
- if (reply = imap_send_astring (stream,tag,&s,&list->text,NIL,
- CMDBASE+MAXCOMMAND)) return reply;
+ if ((reply = imap_send_astring (stream,tag,&s,&list->text,NIL,
+ CMDBASE+MAXCOMMAND)) != NULL) return reply;
c = ' '; /* prefix character for subsequent strings */
}
- while (list = list->next);
+ while ((list = list->next) != NULL);
*s++ = ')'; /* close list */
break;
case SEARCHPROGRAM: /* search program */
- if (reply = imap_send_spgm (stream,tag,CMDBASE,&s,arg->text,
- CMDBASE+MAXCOMMAND))
+ if ((reply = imap_send_spgm (stream,tag,CMDBASE,&s,arg->text,
+ CMDBASE+MAXCOMMAND)) != NULL)
return reply;
break;
case SORTPROGRAM: /* search program */
@@ -3061,7 +3061,7 @@ IMAPPARSEDREPLY *imap_send (MAILSTREAM *stream,char *cmd,IMAPARG *args[])
break;
case LISTMAILBOX: /* astring with wildcards */
st.size = strlen ((char *) (st.data = (unsigned char *) arg->text));
- if (reply = imap_send_astring (stream,tag,&s,&st,T,CMDBASE+MAXCOMMAND))
+ if ((reply = imap_send_astring (stream,tag,&s,&st,T,CMDBASE+MAXCOMMAND)) != NULL)
return reply;
break;
@@ -3083,7 +3083,7 @@ IMAPPARSEDREPLY *imap_send (MAILSTREAM *stream,char *cmd,IMAPARG *args[])
MESSAGECACHE elt;
STRING es;
if (!map->date || mail_parse_date (&elt,map->date)) {
- if (t = map->flags) { /* flags given? */
+ if ((t = map->flags) != NULL) { /* flags given? */
if (*t != '(') {
*s++ = '('; /* wrap parens around string */
while (*t) *s++ = *t++;
@@ -3095,11 +3095,11 @@ IMAPPARSEDREPLY *imap_send (MAILSTREAM *stream,char *cmd,IMAPARG *args[])
if (map->date) { /* date given? */
st.size = strlen ((char *) (st.data = (unsigned char *)
mail_date (datetmp,&elt)));
- if (reply = imap_send_astring (stream,tag,&s,&st,NIL,
- CMDBASE+MAXCOMMAND)) return reply;
+ if ((reply = imap_send_astring (stream,tag,&s,&st,NIL,
+ CMDBASE+MAXCOMMAND)) != NULL) return reply;
*s++ = ' '; /* delimit with space */
}
- if (reply = imap_send_literal (stream,tag,&s,map->message))
+ if ((reply = imap_send_literal (stream,tag,&s,map->message)) != NULL)
return reply;
/* get next message */
if ((*map->af) (stream,map->data,&map->flags,&map->date,
@@ -3129,7 +3129,7 @@ IMAPPARSEDREPLY *imap_send (MAILSTREAM *stream,char *cmd,IMAPARG *args[])
c = ' '; /* prefix character for subsequent strings */
}
}
- while (list = list->next);
+ while ((list = list->next) != NULL);
*s++ = ')'; /* close list */
break;
default:
@@ -3363,26 +3363,26 @@ IMAPPARSEDREPLY *imap_send_spgm (MAILSTREAM *stream,char *tag,char *base,
pgm->references,limit)))) return reply;
/* all other headers */
- if (hdr = pgm->header) do {
+ if ((hdr = pgm->header) != NULL) do {
*s = imap_send_spgm_trim (base,*s," HEADER ");
- if (reply = imap_send_astring (stream,tag,s,&hdr->line,NIL,limit))
+ if ((reply = imap_send_astring (stream,tag,s,&hdr->line,NIL,limit)) != NULL)
return reply;
*(*s)++ = ' ';
- if (reply = imap_send_astring (stream,tag,s,&hdr->text,NIL,limit))
+ if ((reply = imap_send_astring (stream,tag,s,&hdr->text,NIL,limit)) != NULL)
return reply;
- } while (hdr = hdr->next);
+ } while ((hdr = hdr->next) != NULL);
for (pgo = pgm->or; pgo; pgo = pgo->next) {
*s = imap_send_spgm_trim (base,*s," OR (");
- if (reply = imap_send_spgm (stream,tag,base,s,pgo->first,limit))
+ if ((reply = imap_send_spgm (stream,tag,base,s,pgo->first,limit)) != NULL)
return reply;
for (t = ") ("; *t; *(*s)++ = *t++);
- if (reply = imap_send_spgm (stream,tag,base,s,pgo->second,limit))
+ if ((reply = imap_send_spgm (stream,tag,base,s,pgo->second,limit)) != NULL)
return reply;
*(*s)++ = ')';
}
for (pgl = pgm->not; pgl; pgl = pgl->next) {
*s = imap_send_spgm_trim (base,*s," NOT (");
- if (reply = imap_send_spgm (stream,tag,base,s,pgl->pgm,limit))
+ if ((reply = imap_send_spgm (stream,tag,base,s,pgl->pgm,limit)) != NULL)
return reply;
*(*s)++ = ')';
}
@@ -3460,9 +3460,9 @@ IMAPPARSEDREPLY *imap_send_sset (MAILSTREAM *stream,char *tag,char *base,
for (t =" ((OR BCC FOO NOT BCC "; *t; *(*s)++ = *t++);
/* but broken by a literal */
INIT (&st,mail_string,(void *) "FOO",3);
- if (reply = imap_send_literal (stream,tag,s,&st)) return reply;
+ if ((reply = imap_send_literal (stream,tag,s,&st)) != NULL) return reply;
*(*s)++ = ')'; /* close glue */
- if (reply = imap_send_sset (stream,tag,NIL,s,set,prefix,limit))
+ if ((reply = imap_send_sset (stream,tag,NIL,s,set,prefix,limit)) != NULL)
return reply;
*(*s)++ = ')'; /* close second OR argument */
}
@@ -3563,7 +3563,7 @@ IMAPPARSEDREPLY *imap_reply (MAILSTREAM *stream,char *tag)
{
IMAPPARSEDREPLY *reply;
while (LOCAL->netstream) { /* parse reply from server */
- if (reply = imap_parse_reply (stream,net_getline (LOCAL->netstream))) {
+ if ((reply = imap_parse_reply (stream,net_getline (LOCAL->netstream))) != NULL) {
/* continuation ready? */
if (!strcmp (reply->tag,"+")) return reply;
/* untagged data? */
@@ -3814,7 +3814,7 @@ void imap_parse_unsolicited (MAILSTREAM *stream,IMAPPARSEDREPLY *reply)
sprintf (LOCAL->tmp,"Unterminated header section: %.80s",
(char *) t);
/* point after the text */
- else if (t = strchr (s = t,' ')) *t++ = '\0';
+ else if ((t = strchr (s = t,' ')) != NULL) *t++ = '\0';
}
if (s && !LOCAL->tmp[0]) {
*s++ = '\0'; /* tie off section specifier */
@@ -3918,11 +3918,11 @@ void imap_parse_unsolicited (MAILSTREAM *stream,IMAPPARSEDREPLY *reply)
}
else if (!stream->user_flags[i]) stream->user_flags[i++] = cpystr (s);
}
- while (s = strtok_r (NIL," )",&r));
+ while ((s = strtok_r (NIL," )",&r)) != NULL);
else if (!strcmp (reply->key,"SEARCH")) {
/* only do something if have text */
if (reply->text && (t = strtok_r (reply->text," ",&r))) do
- if (i = strtoul (t,NIL,10)) {
+ if ((i = strtoul (t,NIL,10)) != 0L) {
/* UIDs always passed to main program */
if (LOCAL->uidsearch) mm_searched (stream,i);
/* should be a msgno then */
@@ -3931,7 +3931,7 @@ void imap_parse_unsolicited (MAILSTREAM *stream,IMAPPARSEDREPLY *reply)
mail_elt (stream,i)->searched = T;
if (!stream->silent) mm_searched (stream,i);
}
- } while (t = strtok_r (NIL," ",&r));
+ } while ((t = strtok_r (NIL," ",&r)) != NULL);
}
else if (!strcmp (reply->key,"SORT")) {
sortresults_t sr = (sortresults_t)
@@ -3955,7 +3955,7 @@ void imap_parse_unsolicited (MAILSTREAM *stream,IMAPPARSEDREPLY *reply)
threadresults_t tr = (threadresults_t)
mail_parameters (NIL,GET_THREADRESULTS,NIL);
if (LOCAL->threaddata) mail_free_threadnode (&LOCAL->threaddata);
- if (s = reply->text) {
+ if ((s = reply->text) != NULL) {
LOCAL->threaddata = imap_parse_thread (stream,&s);
if (tr) (*tr) (stream,LOCAL->threaddata);
if (s && *s) {
@@ -4019,7 +4019,7 @@ void imap_parse_unsolicited (MAILSTREAM *stream,IMAPPARSEDREPLY *reply)
char delimiter = '\0';
*s++ = '\0'; /* tie off attribute list */
/* parse attribute list */
- if (t = strtok_r (reply->text+1," ",&r)) do {
+ if ((t = strtok_r (reply->text+1," ",&r)) != NULL) do {
if (!compare_cstring (t,"\\NoInferiors")) i |= LATT_NOINFERIORS;
else if (!compare_cstring (t,"\\NoSelect")) i |= LATT_NOSELECT;
else if (!compare_cstring (t,"\\Marked")) i |= LATT_MARKED;
@@ -4028,7 +4028,7 @@ void imap_parse_unsolicited (MAILSTREAM *stream,IMAPPARSEDREPLY *reply)
else if (!compare_cstring (t,"\\HasNoChildren")) i |= LATT_HASNOCHILDREN;
/* ignore extension flags */
}
- while (t = strtok_r (NIL," ",&r));
+ while ((t = strtok_r (NIL," ",&r)) != NULL);
switch (*++s) { /* process delimiter */
case 'N': /* NIL */
case 'n':
@@ -4039,7 +4039,7 @@ void imap_parse_unsolicited (MAILSTREAM *stream,IMAPPARSEDREPLY *reply)
s += 3; /* skip over <delimiter><quote><space> */
}
/* parse the mailbox name */
- if (t = imap_parse_astring (stream,&s,reply,&j)) {
+ if ((t = imap_parse_astring (stream,&s,reply,&j)) != NULL) {
/* prepend prefix if requested */
if (LOCAL->prefix && ((strlen (LOCAL->prefix) + j) < IMAPTMPLEN))
sprintf (s = LOCAL->tmp,"%s%s",LOCAL->prefix,(char *) t);
@@ -4057,7 +4057,7 @@ void imap_parse_unsolicited (MAILSTREAM *stream,IMAPPARSEDREPLY *reply)
mail_free_namespace (&LOCAL->namespace[2]);
}
else LOCAL->namespace = (NAMESPACE **) fs_get (3 * sizeof (NAMESPACE *));
- if (s = reply->text) { /* parse namespace results */
+ if ((s = reply->text) != NULL) { /* parse namespace results */
LOCAL->namespace[0] = imap_parse_namespace (stream,&s,reply);
LOCAL->namespace[1] = imap_parse_namespace (stream,&s,reply);
LOCAL->namespace[2] = imap_parse_namespace (stream,&s,reply);
@@ -4177,10 +4177,10 @@ void imap_parse_unsolicited (MAILSTREAM *stream,IMAPPARSEDREPLY *reply)
if ((qc->name = imap_parse_astring (stream,&s,reply,NIL)) && s &&
(*s++ == ' ') && (isdigit (*s) || (LOCAL->loser && (*s == '-')))) {
if (isdigit (*s)) qc->usage = strtoul (s,(char **) &s,10);
- else if (t = strchr (s,' ')) t = s;
+ else if ((t = strchr (s,' ')) != NULL) t = s;
if ((*s++ == ' ') && (isdigit (*s) || (LOCAL->loser &&(*s == '-')))){
if (isdigit (*s)) qc->limit = strtoul (s,(char **) &s,10);
- else if (t = strpbrk (s," )")) t = s;
+ else if ((t = strpbrk (s," )")) != NULL) t = s;
/* another resource follows? */
if (*s == ' ') continue;
/* end of resource list? */
@@ -4277,7 +4277,7 @@ void imap_parse_response (MAILSTREAM *stream,char *text,long errflg,long ntfy)
if (text && (*text == '[') && (t = strchr (s = text + 1,']')) &&
((i = t - s) < IMAPTMPLEN)) {
LOCAL->tmp[i] = '\0'; /* make mungable copy of text code */
- if (s = strchr (strncpy (t = LOCAL->tmp,s,i),' ')) *s++ = '\0';
+ if ((s = strchr (strncpy (t = LOCAL->tmp,s,i),' ')) != NULL) *s++ = '\0';
if (s) { /* have argument? */
ntfy = NIL; /* suppress mm_notify if normal SELECT data */
if (!compare_cstring (t,"CAPABILITY")) imap_parse_capabilities(stream,s);
@@ -4287,7 +4287,7 @@ void imap_parse_response (MAILSTREAM *stream,char *text,long errflg,long ntfy)
stream->perm_seen = stream->perm_deleted = stream->perm_answered =
stream->perm_draft = stream->kwd_create = NIL;
stream->perm_user_flags = NIL;
- if (s = strtok_r (s+1," ",&r)) do {
+ if ((s = strtok_r (s+1," ",&r)) != NULL) do {
if (*s == '\\') { /* system flags */
if (!compare_cstring (s,"\\Seen")) stream->perm_seen = T;
else if (!compare_cstring (s,"\\Deleted"))
@@ -4301,7 +4301,7 @@ void imap_parse_response (MAILSTREAM *stream,char *text,long errflg,long ntfy)
}
else stream->perm_user_flags |= imap_parse_user_flag (stream,s);
}
- while (s = strtok_r (NIL," ",&r));
+ while ((s = strtok_r (NIL," ",&r)) != NULL);
}
else if (!compare_cstring (t,"UIDVALIDITY") && (j = strtoul (s,NIL,10))){
@@ -4311,7 +4311,7 @@ void imap_parse_response (MAILSTREAM *stream,char *text,long errflg,long ntfy)
stream->uid_validity = j;
/* purge any UIDs in cache */
for (j = 1; j <= stream->nmsgs; j++)
- if (elt = (MESSAGECACHE *) (*mc) (stream,j,CH_ELT))
+ if ((elt = (MESSAGECACHE *) (*mc) (stream,j,CH_ELT)) != NULL)
elt->private.uid = 0;
}
}
@@ -4864,7 +4864,7 @@ unsigned char *imap_parse_astring (MAILSTREAM *stream,unsigned char **txtptr,
c && (c > ' ') && (c != '(') && (c != ')') && (c != '{') &&
(c != '%') && (c != '*') && (c != '"') && (c != '\\') && (c < 0x80);
c = *++*txtptr);
- if (i = *txtptr - s) { /* atom ends at atom_special */
+ if ((i = *txtptr - s) != 0L) { /* atom ends at atom_special */
if (len) *len = i; /* return length of atom */
ret = strncpy ((char *) fs_get (i + 1),s,i);
ret[i] = '\0'; /* tie off string */
@@ -4984,7 +4984,7 @@ unsigned char *imap_parse_string (MAILSTREAM *stream,unsigned char **txtptr,
string = (char *) fs_get ((size_t) i + 1);
*string = '\0'; /* init in case getbuffer fails */
/* get the literal */
- if (rp) for (k = 0; j = min ((long) MAILTMPLEN,(long) i); i -= j) {
+ if (rp) for (k = 0; (j = min ((long) MAILTMPLEN,(long) i)) != 0L; i -= j) {
net_getbuffer (LOCAL->netstream,j,string + k);
(*rp) (md,k += j);
}
@@ -4992,7 +4992,7 @@ unsigned char *imap_parse_string (MAILSTREAM *stream,unsigned char **txtptr,
}
fs_give ((void **) &reply->line);
if (flags && string) /* need to filter newlines? */
- for (st = string; st = strpbrk (st,"\015\012\011"); *st++ = ' ');
+ for (st = string; (st = strpbrk (st,"\015\012\011")) != NULL; *st++ = ' ');
/* get new reply text line */
if (!(reply->line = net_getline (LOCAL->netstream)))
reply->line = cpystr ("");
@@ -5142,7 +5142,7 @@ void imap_parse_body_structure (MAILSTREAM *stream,BODY *body,
/* parse it */
imap_parse_body_structure (stream,&part->body,txtptr,reply);
} while (**txtptr == '(');/* for each body part */
- if (body->subtype = imap_parse_string(stream,txtptr,reply,NIL,NIL,LONGT))
+ if ((body->subtype = imap_parse_string(stream,txtptr,reply,NIL,NIL,LONGT)) != NULL)
ucase (body->subtype);
else {
mm_notify (stream,"Missing multipart subtype",WARN);
@@ -5182,7 +5182,7 @@ void imap_parse_body_structure (MAILSTREAM *stream,BODY *body,
body->type = TYPEOTHER; /* assume unknown type */
body->encoding = ENCOTHER;/* and unknown encoding */
/* parse type */
- if (s = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT)) {
+ if ((s = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT)) != NULL) {
ucase (s); /* application always gets uppercase form */
for (i = 0; /* look in existing table */
(i <= TYPEMAX) && body_types[i] && strcmp (s,body_types[i]); i++);
@@ -5195,7 +5195,7 @@ void imap_parse_body_structure (MAILSTREAM *stream,BODY *body,
}
if (s) fs_give ((void **) &s);
}
- if (body->subtype = imap_parse_string(stream,txtptr,reply,NIL,NIL,LONGT))
+ if ((body->subtype = imap_parse_string(stream,txtptr,reply,NIL,NIL,LONGT)) != NULL)
ucase (body->subtype); /* parse subtype */
else {
mm_notify (stream,"Missing body subtype",WARN);
@@ -5206,7 +5206,7 @@ void imap_parse_body_structure (MAILSTREAM *stream,BODY *body,
body->id = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT);
body->description = imap_parse_string (stream,txtptr,reply,NIL,NIL,
LONGT);
- if (s = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT)) {
+ if ((s = imap_parse_string (stream,txtptr,reply,NIL,NIL,LONGT)) != NULL) {
ucase (s); /* application always gets uppercase form */
for (i = 0; /* search for body encoding */
(i <= ENCMAX) && body_encodings[i] && strcmp(s,body_encodings[i]);
@@ -5410,7 +5410,7 @@ STRINGLIST *imap_parse_language (MAILSTREAM *stream,unsigned char **txtptr,
STRINGLIST *ret = NIL;
/* language is a list */
if (*++*txtptr == '(') ret = imap_parse_stringlist (stream,txtptr,reply);
- else if (s = imap_parse_string (stream,txtptr,reply,NIL,&i,LONGT)) {
+ else if ((s = imap_parse_string (stream,txtptr,reply,NIL,&i,LONGT)) != NULL) {
(ret = mail_newstringlist ())->text.data = (unsigned char *) s;
ret->text.size = i;
}
@@ -5479,7 +5479,7 @@ void imap_parse_extension (MAILSTREAM *stream,unsigned char **txtptr,
break;
case '{': /* get size of literal */
++*txtptr; /* bump past open squiggle */
- if (i = strtoul (*txtptr,(char **) txtptr,10)) do
+ if ((i = strtoul (*txtptr,(char **) txtptr,10)) != 0L) do
net_getbuffer (LOCAL->netstream,j = min (i,(long) IMAPTMPLEN - 1),
LOCAL->tmp);
while (i -= j);
@@ -5515,7 +5515,7 @@ void imap_parse_capabilities (MAILSTREAM *stream,char *t)
THREADER *thr,*th;
if (!LOCAL->gotcapability) { /* need to save previous capabilities? */
/* no, flush threaders */
- if (thr = LOCAL->cap.threader) while (th = thr) {
+ if ((thr = LOCAL->cap.threader) != NULL) while ((th = thr) != NULL) {
fs_give ((void **) &th->name);
thr = th->next;
fs_give ((void **) &th);
@@ -5558,7 +5558,7 @@ void imap_parse_capabilities (MAILSTREAM *stream,char *t)
((t[2] == 'R') || (t[2] == 'r')) &&
((t[3] == 'T') || (t[3] == 't'))) LOCAL->cap.sort = T;
/* capability with value? */
- else if (s = strchr (t,'=')) {
+ else if ((s = strchr (t,'=')) != NULL) {
*s++ = '\0'; /* separate token from value */
if (!compare_cstring (t,"THREAD") && !LOCAL->loser) {
THREADER *thread = (THREADER *) fs_get (sizeof (THREADER));
@@ -5647,7 +5647,7 @@ char *imap_reform_sequence (MAILSTREAM *stream,char *sequence,long flags)
/* flush old reformed sequence */
if (LOCAL->reform) fs_give ((void **) &LOCAL->reform);
rs = LOCAL->reform = (char *) fs_get (1+ strlen (sequence));
- for (s = sequence; t = strpbrk (s,",:"); ) switch (*t++) {
+ for (s = sequence; (t = strpbrk (s,",:")) != NULL; ) switch (*t++) {
case ',': /* single message */
strncpy (rs,s,i = t - s); /* copy string up to that point */
rs += i; /* advance destination pointer */
diff --git a/imap/src/c-client/mail.c b/imap/src/c-client/mail.c
index da703a0d..1b6f93c3 100644
--- a/imap/src/c-client/mail.c
+++ b/imap/src/c-client/mail.c
@@ -210,7 +210,7 @@ void *mm_cache (MAILSTREAM *stream,unsigned long msgno,long op)
break;
case CH_EXPUNGE: /* expunge cache slot */
for (i = msgno - 1; msgno < stream->nmsgs; i++,msgno++) {
- if (stream->cache[i] = stream->cache[msgno])
+ if ((stream->cache[i] = stream->cache[msgno]) != NULL)
stream->cache[i]->msgno = msgno;
stream->sc[i] = stream->sc[msgno];
}
@@ -388,32 +388,32 @@ void *mail_parameters (MAILSTREAM *stream,long function,void *value)
case ENABLE_DRIVER:
for (d = maildrivers; d && compare_cstring (d->name,(char *) value);
d = d->next);
- if (ret = (void *) d) d->flags &= ~DR_DISABLE;
+ if ((ret = (void *) d) != NULL) d->flags &= ~DR_DISABLE;
break;
case DISABLE_DRIVER:
for (d = maildrivers; d && compare_cstring (d->name,(char *) value);
d = d->next);
- if (ret = (void *) d) d->flags |= DR_DISABLE;
+ if ((ret = (void *) d) != NULL) d->flags |= DR_DISABLE;
break;
case ENABLE_AUTHENTICATOR:
for (a = mailauthenticators;/* scan authenticators */
a && compare_cstring (a->name,(char *) value); a = a->next);
- if (ret = (void *) a) a->flags &= ~AU_DISABLE;
+ if ((ret = (void *) a) != NULL) a->flags &= ~AU_DISABLE;
break;
case DISABLE_AUTHENTICATOR:
for (a = mailauthenticators;/* scan authenticators */
a && compare_cstring (a->name,(char *) value); a = a->next);
- if (ret = (void *) a) a->flags |= AU_DISABLE;
+ if ((ret = (void *) a) != NULL) a->flags |= AU_DISABLE;
break;
case UNHIDE_AUTHENTICATOR:
for (a = mailauthenticators;/* scan authenticators */
a && compare_cstring (a->name,(char *) value); a = a->next);
- if (ret = (void *) a) a->flags &= ~AU_HIDE;
+ if ((ret = (void *) a) != NULL) a->flags &= ~AU_HIDE;
break;
case HIDE_AUTHENTICATOR:
for (a = mailauthenticators;/* scan authenticators */
a && compare_cstring (a->name,(char *) value); a = a->next);
- if (ret = (void *) a) a->flags |= AU_HIDE;
+ if ((ret = (void *) a) != NULL) a->flags |= AU_HIDE;
break;
case SET_EXTERNALAUTHID:
if (value) { /* setting external authentication ID */
@@ -647,16 +647,16 @@ void *mail_parameters (MAILSTREAM *stream,long function,void *value)
if (stream) ret = (void *) stream->snarf.name;
break;
default:
- if (r = smtp_parameters (function,value)) ret = r;
- if (r = env_parameters (function,value)) ret = r;
- if (r = tcp_parameters (function,value)) ret = r;
- if (r = utf8_parameters (function,value)) ret = r;
+ if ((r = smtp_parameters (function,value)) != NULL) ret = r;
+ if ((r = env_parameters (function,value)) != NULL) ret = r;
+ if ((r = tcp_parameters (function,value)) != NULL) ret = r;
+ if ((r = utf8_parameters (function,value)) != NULL) ret = r;
if (stream && stream->dtb) {/* if have stream, do for its driver only */
- if (r = (*stream->dtb->parameters) (function,value)) ret = r;
+ if ((r = (*stream->dtb->parameters) (function,value)) != NULL) ret = r;
}
/* else do all drivers */
else for (d = maildrivers; d; d = d->next)
- if (r = (d->parameters) (function,value)) ret = r;
+ if ((r = (d->parameters) (function,value)) != NULL) ret = r;
break;
}
return ret;
@@ -770,7 +770,7 @@ long mail_valid_net_parse_work (char *name,NETMBX *mb,char *service)
break;
case '/': /* switch */
/* find delimiter */
- if (t = strpbrk (s = t,"/:=")) {
+ if ((t = strpbrk (s = t,"/:=")) != NULL) {
c = *t; /* remember delimiter for later */
*t++ = '\0'; /* tie off switch name */
}
@@ -788,7 +788,7 @@ long mail_valid_net_parse_work (char *name,NETMBX *mb,char *service)
arg[i] = '\0'; /* tie off argument */
}
else { /* non-quoted argument */
- if (t = strpbrk (v = t,"/:")) {
+ if ((t = strpbrk (v = t,"/:")) != NULL) {
c = *t; /* remember delimiter for later */
*t++ = '\0'; /* tie off switch name */
}
@@ -937,7 +937,7 @@ void mail_list (MAILSTREAM *stream,char *ref,char *pat)
else do if (!((d->flags & DR_DISABLE) ||
((d->flags & DR_LOCAL) && remote)))
(d->list) (NIL,ref,pat);
- while (d = d->next); /* until at the end */
+ while ((d = d->next) != NULL); /* until at the end */
}
/* Mail list subscribed mailboxes
@@ -970,7 +970,7 @@ void mail_lsub (MAILSTREAM *stream,char *ref,char *pat)
else do if (!((d->flags & DR_DISABLE) ||
((d->flags & DR_LOCAL) && remote)))
(d->lsub) (NIL,ref,pat);
- while (d = d->next); /* until at the end */
+ while ((d = d->next) != NULL); /* until at the end */
}
/* Mail subscribe to mailbox
@@ -1014,7 +1014,7 @@ long mail_create (MAILSTREAM *stream,char *mailbox)
size_t i;
DRIVER *d;
/* never allow names with newlines */
- if (s = strpbrk (mailbox,"\015\012")) {
+ if ((s = strpbrk (mailbox,"\015\012")) != NULL) {
MM_LOG ("Can't create mailbox with such a name",ERROR);
return NIL;
}
@@ -1030,7 +1030,7 @@ long mail_create (MAILSTREAM *stream,char *mailbox)
return NIL;
}
/* validate name */
- if (s = mail_utf7_valid (mailbox)) {
+ if ((s = mail_utf7_valid (mailbox)) != NULL) {
sprintf (tmp,"Can't create %s: %.80s",s,mailbox);
MM_LOG (tmp,ERROR);
return NIL;
@@ -1110,7 +1110,7 @@ long mail_rename (MAILSTREAM *stream,char *old,char *newname)
DRIVER *dtb = mail_valid (stream,old,"rename mailbox");
if (!dtb) return NIL;
/* validate name */
- if (s = mail_utf7_valid (newname)) {
+ if ((s = mail_utf7_valid (newname)) != NULL) {
sprintf (tmp,"Can't rename to %s: %.80s",s,newname);
MM_LOG (tmp,ERROR);
return NIL;
@@ -1217,7 +1217,7 @@ MAILSTREAM *mail_open (MAILSTREAM *stream,char *name,long options)
((name[3] == 'V') || (name[3] == 'v')) &&
((name[4] == 'E') || (name[4] == 'e')) && (c = name[5]) &&
(s = strchr (name+6,c)) && (i = s - (name + 6)) && (i < MAILTMPLEN)) {
- if (stream = mail_open (stream,s+1,options)) {
+ if ((stream = mail_open (stream,s+1,options)) != NULL) {
strncpy (tmp,name+6,i); /* copy snarf mailbox name */
tmp[i] = '\0'; /* tie off name */
mail_parameters (stream,SET_SNARFMAILBOXNAME,(void *) tmp);
@@ -1234,7 +1234,7 @@ MAILSTREAM *mail_open (MAILSTREAM *stream,char *name,long options)
((name[3] == 'P') || (name[3] == 'p')) &&
mail_valid_net_parse_work (name+4,&mb,"pop3") &&
!strcmp (mb.service,"pop3") && !mb.anoflag && !mb.readonlyflag) {
- if (stream = mail_open (stream,mb.mailbox,options)) {
+ if ((stream = mail_open (stream,mb.mailbox,options)) != NULL) {
sprintf (tmp,"{%.255s",mb.host);
if (mb.port) sprintf (tmp + strlen (tmp),":%lu",mb.port);
if (mb.user[0]) sprintf (tmp + strlen (tmp),"/user=%.64s",mb.user);
@@ -1265,7 +1265,7 @@ MAILSTREAM *mail_open (MAILSTREAM *stream,char *name,long options)
((name[6] == 'R') || (name[6] == 'r')) && (name[7] == '.')) {
sprintf (tmp,"%.80s",name+8);
/* tie off name at likely delimiter */
- if (s = strpbrk (tmp,"/\\:")) *s++ = '\0';
+ if ((s = strpbrk (tmp,"/\\:")) != NULL) *s++ = '\0';
else {
sprintf (tmp,"Can't resolve mailbox %.80s: bad driver syntax",name);
MM_LOG (tmp,ERROR);
@@ -1565,7 +1565,7 @@ ENVELOPE *mail_fetch_structure (MAILSTREAM *stream,unsigned long msgno,
if (stream->dtb && stream->dtb->structure)
return (*stream->dtb->structure) (stream,msgno,body,flags);
if (flags & FT_UID) { /* UID form of call */
- if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
+ if ((msgno = mail_msgno (stream,msgno)) != 0L) flags &= ~FT_UID;
else return NIL; /* must get UID/msgno map first */
}
elt = mail_elt (stream,msgno);/* get elt for real message number */
@@ -1747,7 +1747,7 @@ char *mail_fetch_header (MAILSTREAM *stream,unsigned long msgno,char *section,
if (len) *len = 0; /* default return size */
if (section && (strlen (section) > (MAILTMPLEN - 20))) return "";
if (flags & FT_UID) { /* UID form of call */
- if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
+ if ((msgno = mail_msgno (stream,msgno)) != 0L) flags &= ~FT_UID;
else return ""; /* must get UID/msgno map first */
}
elt = mail_elt (stream,msgno);/* get cache data */
@@ -1800,8 +1800,8 @@ char *mail_fetch_header (MAILSTREAM *stream,unsigned long msgno,char *section,
else { /* top-level header fetch */
/* mark message seen */
markseen (stream,elt,flags);
- if (rt.data = (unsigned char *)
- (*stream->dtb->header) (stream,msgno,&rt.size,flags)) {
+ if ((rt.data = (unsigned char *)
+ (*stream->dtb->header) (stream,msgno,&rt.size,flags)) != NULL) {
/* make a safe copy if need to filter */
if (lines) textcpy (t = &stream->text,&rt);
else t = &rt; /* top level header */
@@ -1838,7 +1838,7 @@ char *mail_fetch_text (MAILSTREAM *stream,unsigned long msgno,char *section,
memset (&stream->private.string,NIL,sizeof (STRING));
if (section && (strlen (section) > (MAILTMPLEN - 20))) return "";
if (flags & FT_UID) { /* UID form of call */
- if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
+ if ((msgno = mail_msgno (stream,msgno)) != 0L) flags &= ~FT_UID;
else return ""; /* must get UID/msgno map first */
}
elt = mail_elt (stream,msgno);/* get cache data */
@@ -1893,7 +1893,7 @@ char *mail_fetch_mime (MAILSTREAM *stream,unsigned long msgno,char *section,
if (len) *len = 0; /* default return size */
if (section && (strlen (section) > (MAILTMPLEN - 20))) return "";
if (flags & FT_UID) { /* UID form of call */
- if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
+ if ((msgno = mail_msgno (stream,msgno)) != 0L) flags &= ~FT_UID;
else return ""; /* must get UID/msgno map first */
}
flags &= ~FT_INTERNAL; /* can't win with this set */
@@ -1976,7 +1976,7 @@ char *mail_fetch_body (MAILSTREAM *stream,unsigned long msgno,char *section,
}
if (len) *len = 0; /* default return size */
if (flags & FT_UID) { /* UID form of call */
- if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
+ if ((msgno = mail_msgno (stream,msgno)) != 0L) flags &= ~FT_UID;
else return ""; /* must get UID/msgno map first */
}
/* must have body */
@@ -2034,7 +2034,7 @@ long mail_partial_text (MAILSTREAM *stream,unsigned long msgno,char *section,
if (!mailgets) fatal ("mail_partial_text() called without a mailgets!");
if (section && (strlen (section) > (MAILTMPLEN - 20))) return NIL;
if (flags & FT_UID) { /* UID form of call */
- if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
+ if ((msgno = mail_msgno (stream,msgno)) != 0L) flags &= ~FT_UID;
else return NIL; /* must get UID/msgno map first */
}
elt = mail_elt (stream,msgno);/* get cache data */
@@ -2104,7 +2104,7 @@ long mail_partial_body (MAILSTREAM *stream,unsigned long msgno,char *section,
return mail_partial_text (stream,msgno,NIL,first,last,flags);
if (!mailgets) fatal ("mail_partial_body() called without a mailgets!");
if (flags & FT_UID) { /* UID form of call */
- if (msgno = mail_msgno (stream,msgno)) flags &= ~FT_UID;
+ if ((msgno = mail_msgno (stream,msgno)) != 0L) flags &= ~FT_UID;
else return NIL; /* must get UID/msgno map first */
}
/* must have body */
@@ -2254,7 +2254,7 @@ unsigned long mail_msgno (MAILSTREAM *stream,unsigned long uid)
if (uid == firstuid) return first;
if (uid == lastuid) return last;
/* have anything between endpoints? */
- if (delta = ((last - first) / 2)) {
+ if ((delta = ((last - first) / 2)) != 0L){
if ((miduid = mail_elt (stream,middle = first + delta)->private.uid)
== uid)
return middle; /* found match in middle */
@@ -2408,7 +2408,7 @@ long mail_search_default (MAILSTREAM *stream,char *charset,SEARCHPGM *pgm,
unsigned long i;
char *msg;
/* make sure that charset is good */
- if (msg = utf8_badcharset (charset)) {
+ if ((msg = utf8_badcharset (charset)) != NULL) {
MM_LOG (msg,ERROR); /* output error */
fs_give ((void **) &msg);
return NIL;
@@ -2634,7 +2634,7 @@ long mail_append_multiple (MAILSTREAM *stream,char *mailbox,append_t af,
}
else ret = SAFE_APPEND (d,stream,mailbox + (s - tmp),af,data);
}
- else if (d = mail_valid (stream,mailbox,NIL))
+ else if ((d = mail_valid (stream,mailbox,NIL)) != NULL)
ret = SAFE_APPEND (d,stream,mailbox,af,data);
/* No driver, try for TRYCREATE if no stream. Note that we use the
* createProto here, not the appendProto, since the dummy driver already
@@ -2672,7 +2672,7 @@ void mail_gc (MAILSTREAM *stream,long gcflags)
}
/* garbage collect per-message stuff */
for (i = 1; i <= stream->nmsgs; i++)
- if (elt = (MESSAGECACHE *) (*mailcache) (stream,i,CH_ELT))
+ if ((elt = (MESSAGECACHE *) (*mailcache) (stream,i,CH_ELT)) != NULL)
mail_gc_msg (&elt->private.msg,gcflags);
}
@@ -2744,7 +2744,7 @@ BODY *mail_body_section (BODY *b, unsigned char *section)
/* multipart content? */
if (b->type == TYPEMULTIPART) {
/* yes, find desired part */
- if (pt = b->nested.part) while (--i && (pt = pt->next));
+ if ((pt = b->nested.part) != NULL) while (--i && (pt = pt->next));
if (!pt) return NIL; /* bad specifier */
b = &pt->body; /* note new body */
}
@@ -3122,7 +3122,7 @@ long mail_parse_date (MESSAGECACHE *elt,unsigned char *s)
t = localtime (&tn); /* get local minutes since midnight */
mi = t->tm_hour * 60 + t->tm_min;
ms = t->tm_yday; /* note Julian day */
- if (t = gmtime (&tn)) { /* minus UTC minutes since midnight */
+ if ((t = gmtime (&tn)) != NULL) { /* minus UTC minutes since midnight */
mi -= t->tm_hour * 60 + t->tm_min;
/* ms can be one of:
* 36x local time is December 31, UTC is January 1, offset -24 hours
@@ -3343,7 +3343,7 @@ long mail_uid_sequence (MAILSTREAM *stream,unsigned char *sequence)
case ',': /* single message */
++sequence; /* skip the delimiter, fall into end case */
case '\0': /* end of sequence, mark this message */
- if (x = mail_msgno (stream,i)) mail_elt (stream,x)->sequence = T;
+ if ((x = mail_msgno (stream,i)) != 0L) mail_elt (stream,x)->sequence = T;
break;
default: /* anything else is a syntax error! */
MM_LOG ("UID sequence syntax error",ERROR);
@@ -3376,7 +3376,7 @@ long mail_match_lines (STRINGLIST *lines,STRINGLIST *msglines,long flags)
}
if (!m) return NIL; /* didn't find in the list */
}
- while (lines = lines->next);
+ while ((lines = lines->next) != NULL);
return T; /* all lines found */
}
@@ -3408,7 +3408,7 @@ unsigned long mail_filter (char *text,unsigned long len,STRINGLIST *lines,
*t++ = *s++);
*t = '\0'; /* tie off */
notfound = T; /* not found yet */
- if (i = t - tmp) /* see if found in header */
+ if ((i = t - tmp) != 0L) /* see if found in header */
for (hdrs = lines; hdrs && notfound; hdrs = hdrs->next)
if ((hdrs->text.size == i) && !compare_csizedtext (tmp,&hdrs->text))
notfound = NIL;
@@ -3660,7 +3660,7 @@ long mail_search_header_text (char *s,STRINGLIST *st)
{
SIZEDTEXT h;
/* have any text? */
- if (h.data = (unsigned char *) s) {
+ if ((h.data = (unsigned char *) s) != NULL) {
h.size = strlen (s); /* yes, get its size */
return mail_search_header (&h,st);
}
@@ -3711,7 +3711,7 @@ long mail_search_text (MAILSTREAM *stream,unsigned long msgno,char *section,
for (stream->private.search.string = s; st;) {
s->text.data = st->text.data;
s->text.size = st->text.size;
- if (st = st->next) s = s->next = mail_newstringlist ();
+ if ((st = st->next) != NULL) s = s->next = mail_newstringlist ();
}
stream->private.search.text = NIL;
if (flags) { /* want header? */
@@ -3793,7 +3793,7 @@ long mail_search_body (MAILSTREAM *stream,unsigned long msgno,BODY *body,
if (h.data != st.data) fs_give ((void **) &h.data);
}
}
- if (body = body->nested.msg->body)
+ if ((body = body->nested.msg->body) != NULL)
ret = (body->type == TYPEMULTIPART) ?
mail_search_body (stream,msgno,body,(prefix ? prefix : ""),
section - 1,flags) :
@@ -3810,14 +3810,14 @@ long mail_search_body (MAILSTREAM *stream,unsigned long msgno,BODY *body,
if (!strcmp (param->attribute,"CHARSET")) t = param->value;
switch (body->encoding) { /* what encoding? */
case ENCBASE64:
- if (st.data = (unsigned char *)
- rfc822_base64 ((unsigned char *) s,i,&st.size)) {
+ if ((st.data = (unsigned char *)
+ rfc822_base64 ((unsigned char *) s,i,&st.size)) != NULL) {
ret = mail_search_string (&st,t,&stream->private.search.string);
fs_give ((void **) &st.data);
}
break;
case ENCQUOTEDPRINTABLE:
- if (st.data = rfc822_qprint ((unsigned char *) s,i,&st.size)) {
+ if ((st.data = rfc822_qprint ((unsigned char *) s,i,&st.size)) != NULL) {
ret = mail_search_string (&st,t,&stream->private.search.string);
fs_give ((void **) &st.data);
}
@@ -3898,7 +3898,7 @@ long mail_search_keyword (MAILSTREAM *stream,MESSAGECACHE *elt,STRINGLIST *st,
break;
}
if (flag && !j) return NIL;
- } while (st = st->next);
+ } while ((st = st->next) != NULL);
tf = elt->user_flags & f; /* get set flags which match */
return flag ? (f == tf) : !tf;
}
@@ -3927,9 +3927,9 @@ long mail_search_addr (ADDRESS *adr,STRINGLIST *st)
/* write address list */
for (txt.size = 0,a = adr; a; a = a->next) {
k = (tadr.mailbox = a->mailbox) ? 4 + 2*strlen (a->mailbox) : 3;
- if (tadr.personal = a->personal) k += 3 + 2*strlen (a->personal);
- if (tadr.adl = a->adl) k += 3 + 2*strlen (a->adl);
- if (tadr.host = a->host) k += 3 + 2*strlen (a->host);
+ if ((tadr.personal = a->personal) != NULL) k += 3 + 2*strlen (a->personal);
+ if ((tadr.adl = a->adl) != NULL) k += 3 + 2*strlen (a->adl);
+ if ((tadr.host = a->host) != NULL) k += 3 + 2*strlen (a->host);
if (tadr.personal || tadr.adl) k += 2;
if (k < (SENDBUFLEN-10)) {/* ignore ridiculous addresses */
tmp[0] = '\0';
@@ -4164,7 +4164,7 @@ int mail_criteria_string (STRINGLIST **s,char **r)
if (strchr (c+1,'"')) end = "\"";
else return NIL; /* falls through */
default: /* atomic string */
- if (d = strtok_r (c,end,r)) n = strlen (d);
+ if ((d = strtok_r (c,end,r)) != NULL) n = strlen (d);
else return NIL;
break;
}
@@ -4375,7 +4375,7 @@ SORTCACHE **mail_sort_loadcache (MAILSTREAM *stream,SORTPGM *pgm)
else if ((t = mail_fetch_header (stream,i,NIL,&maildateline,NIL,
FT_INTERNAL | FT_PEEK)) &&
(t = strchr (t,':')))
- for (x = ++t; x = strpbrk (x,"\012\015"); x++)
+ for (x = ++t; (x = strpbrk (x,"\012\015")) != NULL; x++)
switch (*(v = ((*x == '\015') && (x[1] == '\012')) ? x+2 : x+1)){
case ' ': /* erase continuation newlines */
case '\t':
@@ -4411,7 +4411,7 @@ SORTCACHE **mail_sort_loadcache (MAILSTREAM *stream,SORTPGM *pgm)
else if ((t = mail_fetch_header (stream,i,NIL,&mailfromline,NIL,
FT_INTERNAL | FT_PEEK)) &&
(t = strchr (t,':'))) {
- for (x = ++t; x = strpbrk (x,"\012\015"); x++)
+ for (x = ++t; (x = strpbrk (x,"\012\015")) != NULL; x++)
switch (*(v = ((*x == '\015') && (x[1] == '\012')) ? x+2 : x+1)){
case ' ': /* erase continuation newlines */
case '\t':
@@ -4419,7 +4419,7 @@ SORTCACHE **mail_sort_loadcache (MAILSTREAM *stream,SORTPGM *pgm)
break;
case 'f': /* continuation but with extra "From:" */
case 'F':
- if (v = strchr (v,':')) {
+ if ((v = strchr (v,':')) != NULL) {
memmove (x,v+1,strlen (v+1));
break;
}
@@ -4445,7 +4445,7 @@ SORTCACHE **mail_sort_loadcache (MAILSTREAM *stream,SORTPGM *pgm)
else if ((t = mail_fetch_header (stream,i,NIL,&mailtonline,NIL,
FT_INTERNAL | FT_PEEK)) &&
(t = strchr (t,':'))) {
- for (x = ++t; x = strpbrk (x,"\012\015"); x++)
+ for (x = ++t; (x = strpbrk (x,"\012\015")) != NULL; x++)
switch (*(v = ((*x == '\015') && (x[1] == '\012')) ? x+2 : x+1)){
case ' ': /* erase continuation newlines */
case '\t':
@@ -4453,7 +4453,7 @@ SORTCACHE **mail_sort_loadcache (MAILSTREAM *stream,SORTPGM *pgm)
break;
case 't': /* continuation but with extra "To:" */
case 'T':
- if (v = strchr (v,':')) {
+ if ((v = strchr (v,':')) != NULL) {
memmove (x,v+1,strlen (v+1));
break;
}
@@ -4479,7 +4479,7 @@ SORTCACHE **mail_sort_loadcache (MAILSTREAM *stream,SORTPGM *pgm)
else if ((t = mail_fetch_header (stream,i,NIL,&mailccline,NIL,
FT_INTERNAL | FT_PEEK)) &&
(t = strchr (t,':'))) {
- for (x = ++t; x = strpbrk (x,"\012\015"); x++)
+ for (x = ++t; (x = strpbrk (x,"\012\015")) != NULL; x++)
switch (*(v = ((*x == '\015') && (x[1] == '\012')) ? x+2 : x+1)){
case ' ': /* erase continuation newlines */
case '\t':
@@ -4487,7 +4487,7 @@ SORTCACHE **mail_sort_loadcache (MAILSTREAM *stream,SORTPGM *pgm)
break;
case 'c': /* continuation but with extra "cc:" */
case 'C':
- if (v = strchr (v,':')) {
+ if ((v = strchr (v,':')) != NULL) {
memmove (x,v+1,strlen (v+1));
break;
}
@@ -4514,7 +4514,7 @@ SORTCACHE **mail_sort_loadcache (MAILSTREAM *stream,SORTPGM *pgm)
else if ((t = mail_fetch_header (stream,i,NIL,&mailsubline,
NIL,FT_INTERNAL | FT_PEEK)) &&
(t = strchr (t,':')))
- for (x = ++t; x = strpbrk (x,"\012\015"); x++)
+ for (x = ++t; (x = strpbrk (x,"\012\015")) != NULL; x++)
switch (*(v = ((*x == '\015') && (x[1] == '\012')) ? x+2 : x+1)){
case ' ': /* erase continuation newlines */
case '\t':
@@ -4548,7 +4548,7 @@ unsigned int mail_strip_subject (char *t,char **ret)
unsigned long i,slen;
char c,*s,*x;
unsigned int refwd = NIL;
- if (src.size = strlen (t)) { /* have non-empty subject? */
+ if ((src.size = strlen (t)) != 0) { /* have non-empty subject? */
src.data = (unsigned char *) t;
/* Step 1 */
/* make copy, convert MIME2 if needed */
@@ -4704,7 +4704,7 @@ int mail_sort_compare (const void *a1,const void *a2)
}
if (pgm->reverse) i = -i; /* flip results if necessary */
}
- while (pgm = i ? NIL : pgm->next);
+ while ((pgm = i ? NIL : pgm->next) != NULL);
/* return result, avoid 0 if at all possible */
return i ? i : compare_ulong (s1->num,s2->num);
}
@@ -4831,7 +4831,7 @@ THREADNODE *mail_thread_orderedsubject (MAILSTREAM *stream,char *charset,
pgm.function = SORTSUBJECT;
pgm.next = &pgm2;
pgm2.function = SORTDATE;
- if (lst = (*sorter) (stream,charset,spg,&pgm,flags & ~(SE_FREE | SE_UID))){
+ if ((lst = (*sorter) (stream,charset,spg,&pgm,flags & ~(SE_FREE | SE_UID))) != NULL){
if (*(ls = lst)) { /* create thread */
/* note first subject */
cur = top = thr = mail_newthreadnode
@@ -4945,7 +4945,7 @@ THREADNODE *mail_thread_references (MAILSTREAM *stream,char *charset,
/* still missing data? */
if (!s->date || !s->subject || !s->message_id || !s->references) {
/* try to load data from envelope */
- if (env = mail_fetch_structure (stream,s->num,NIL,NIL)) {
+ if ((env = mail_fetch_structure (stream,s->num,NIL,NIL)) != NULL) {
if (!s->date && env->date && mail_parse_date (&telt,env->date))
s->date = mail_longdate (&telt);
if (!s->subject && env->subject)
@@ -4993,7 +4993,7 @@ THREADNODE *mail_thread_references (MAILSTREAM *stream,char *charset,
/* Step 1A */
if ((st = (s = sc[i])->references) && st->text.data)
for (con = hash_lookup_and_add (ht,(char *) st->text.data,NIL,
- THREADLINKS); st = st->next; con = nxc) {
+ THREADLINKS); (st = st->next) != NULL; con = nxc) {
nxc = hash_lookup_and_add (ht,(char *) st->text.data,NIL,THREADLINKS);
/* only if no parent & won't introduce loop */
if (!PARENT (nxc) && !mail_thread_check_child (con,nxc)) {
@@ -5231,11 +5231,11 @@ STRINGLIST *mail_thread_parse_references (char *s,long flag)
STRINGLIST *ret = NIL;
STRINGLIST *cur;
/* found first reference? */
- if (t = mail_thread_parse_msgid (s,&s)) {
+ if ((t = mail_thread_parse_msgid (s,&s)) != NULL) {
(ret = mail_newstringlist ())->text.data = (unsigned char *) t;
ret->text.size = strlen (t);
if (flag) /* parse subsequent references */
- for (cur = ret; t = mail_thread_parse_msgid (s,&s); cur = cur->next) {
+ for (cur = ret; (t = mail_thread_parse_msgid (s,&s)) != NULL; cur = cur->next) {
(cur->next = mail_newstringlist ())->text.data = (unsigned char *) t;
cur->next->text.size = strlen (t);
}
@@ -5337,7 +5337,7 @@ THREADNODE *mail_thread_c2node (MAILSTREAM *stream,container_t con,long flags)
/* attach sequence or UID for non-dummy */
if (s) cur->num = (flags & SE_UID) ? mail_uid (stream,s->num) : s->num;
/* attach the children */
- if (nxt = CHILD (con)) cur->next = mail_thread_c2node (stream,nxt,flags);
+ if ((nxt = CHILD (con)) != NULL) cur->next = mail_thread_c2node (stream,nxt,flags);
}
return ret;
}
@@ -5488,7 +5488,7 @@ long mail_parse_flags (MAILSTREAM *stream,char *flag,unsigned long *uf)
tmp[j] = '\0';
while ((t = n) && *t) { /* parse the flags */
/* find end of flag */
- if (n = strchr (t,' ')) *n++ = '\0';
+ if ((n = strchr (t,' ')) != NULL) *n++ = '\0';
if (*t == '\\') { /* system flag? */
if (!compare_cstring (t+1,"SEEN")) f |= fSEEN;
else if (!compare_cstring (t+1,"DELETED")) f |= fDELETED;
@@ -6256,7 +6256,7 @@ NETSTREAM *net_open_work (NETDRIVER *dv,char *host,char *service,
service = NIL; /* yes, override service name */
port = portoverride; /* use that instead of default port */
}
- if (tstream = (*dv->open) (host,service,port | flags)) {
+ if ((tstream = (*dv->open) (host,service,port | flags)) != NULL){
stream = (NETSTREAM *) fs_get (sizeof (NETSTREAM));
stream->stream = tstream;
stream->dtb = dv;
@@ -6278,7 +6278,7 @@ NETSTREAM *net_aopen (NETDRIVER *dv,NETMBX *mb,char *service,char *user)
NETSTREAM *stream = NIL;
void *tstream;
if (!dv) dv = &tcpdriver; /* default to TCP driver */
- if (tstream = (*dv->aopen) (mb,service,user)) {
+ if ((tstream = (*dv->aopen) (mb,service,user)) != NULL) {
stream = (NETSTREAM *) fs_get (sizeof (NETSTREAM));
stream->stream = tstream;
stream->dtb = dv;
diff --git a/imap/src/c-client/misc.c b/imap/src/c-client/misc.c
index bcbc49e2..0f26a9c3 100644
--- a/imap/src/c-client/misc.c
+++ b/imap/src/c-client/misc.c
@@ -269,7 +269,7 @@ long ssearch (unsigned char *base,long basec,unsigned char *pat,long patc)
for (i = 0; i < patc; i++) mask[pat[i]] = T;
/* Boyer-Moore type search */
for (i = --patc, c = pat[i]; i < basec; i += (mask[c] ? 1 : (j + 1)))
- for (j = patc,c = base[k = i]; (c == pat[j]); j--,c = base[--k])
+ for (j = patc,c = base[k = i]; c == pat[j]; j--,c = base[--k])
if (!j) return T; /* found a match! */
}
return NIL; /* pattern not found */
@@ -311,7 +311,7 @@ void hash_reset (HASHTAB *hashtab)
size_t i;
HASHENT *ent,*nxt;
/* free each hash entry */
- for (i = 0; i < hashtab->size; i++) if (ent = hashtab->table[i])
+ for (i = 0; i < hashtab->size; i++) if ((ent = hashtab->table[i]) != NULL)
for (hashtab->table[i] = NIL; ent; ent = nxt) {
nxt = ent->next; /* get successor */
fs_give ((void **) &ent); /* flush this entry */
@@ -328,7 +328,7 @@ unsigned long hash_index (HASHTAB *hashtab,char *key)
{
unsigned long i,ret;
/* polynomial of letters of the word */
- for (ret = 0; i = (unsigned int) *key++; ret += i) ret *= HASHMULT;
+ for (ret = 0; (i = (unsigned int) *key++) != 0L; ret += i) ret *= HASHMULT;
return ret % (unsigned long) hashtab->size;
}
@@ -447,7 +447,7 @@ int compare_string (unsigned char *s1,unsigned char *s2)
int i;
if (!s1) return s2 ? -1 : 0; /* empty string cases */
else if (!s2) return 1;
- for (; *s1 && *s2; s1++,s2++) if (i = (compare_ulong (*s1,*s2))) return i;
+ for (; *s1 && *s2; s1++,s2++) if ((i = (compare_ulong (*s1,*s2))) != 0) return i;
if (*s1) return 1; /* first string is longer */
return *s2 ? -1 : 0; /* second string longer : strings identical */
}
@@ -466,7 +466,7 @@ int compare_cstring (unsigned char *s1,unsigned char *s2)
int i;
if (!s1) return s2 ? -1 : 0; /* empty string cases */
else if (!s2) return 1;
- for (; *s1 && *s2; s1++,s2++) if (i = (compare_uchar (*s1,*s2))) return i;
+ for (; *s1 && *s2; s1++,s2++) if ((i = (compare_uchar (*s1,*s2))) != 0) return i;
if (*s1) return 1; /* first string is longer */
return *s2 ? -1 : 0; /* second string longer : strings identical */
}
@@ -486,7 +486,7 @@ int compare_csizedtext (unsigned char *s1,SIZEDTEXT *s2)
if (!s1) return s2 ? -1 : 0; /* null string cases */
else if (!s2) return 1;
for (s = (char *) s2->data,j = s2->size; *s1 && j; ++s1,++s,--j)
- if (i = (compare_uchar (*s1,*s))) return i;
+ if ((i = (compare_uchar (*s1,*s))) != 0) return i;
if (*s1) return 1; /* first string is longer */
return j ? -1 : 0; /* second string longer : strings identical */
}
diff --git a/imap/src/c-client/netmsg.c b/imap/src/c-client/netmsg.c
index 187e4ebb..4454c3be 100644
--- a/imap/src/c-client/netmsg.c
+++ b/imap/src/c-client/netmsg.c
@@ -61,7 +61,7 @@ FILE *netmsg_slurp (NETSTREAM *stream,unsigned long *size,unsigned long *hsiz)
FILE *f = tmpfile ();
if (!f) {
sprintf (tmp,".%lx.%lx",(unsigned long) time (0),(unsigned long)getpid ());
- if (f = fopen (tmp,"wb+")) unlink (tmp);
+ if ((f = fopen (tmp,"wb+")) != NULL) unlink (tmp);
else {
sprintf (tmp,"Unable to create scratch file: %.80s",strerror (errno));
MM_LOG (tmp,ERROR);
@@ -70,7 +70,7 @@ FILE *netmsg_slurp (NETSTREAM *stream,unsigned long *size,unsigned long *hsiz)
}
*size = 0; /* initially emtpy */
if (hsiz) *hsiz = 0;
- while (s = net_getline (stream)) {
+ while ((s = net_getline (stream)) != NULL) {
if (*s == '.') { /* possible end of text? */
if (s[1]) t = s + 1; /* pointer to true start of line */
else {
diff --git a/imap/src/c-client/newsrc.c b/imap/src/c-client/newsrc.c
index 41f1fd24..ce694c61 100644
--- a/imap/src/c-client/newsrc.c
+++ b/imap/src/c-client/newsrc.c
@@ -123,9 +123,10 @@ long newsrc_newmessages (FILE *f,MAILSTREAM *stream,char *nl)
}
else if (j) { /* unread message, ending a range */
/* calculate end of range */
- if (k = elt->private.uid - 1) {
+ if ((k = elt->private.uid - 1) != 0L) {
/* dump range */
- sprintf (tmp,(j == k) ? "%c%ld" : "%c%ld-%ld",c,j,k);
+ if(j == k) sprintf (tmp, "%c%ld",c,j);
+ else sprintf (tmp, "%c%ld-%ld",c,j,k);
if (fputs (tmp,f) == EOF) return NIL;
c = ','; /* need a comma after the first time */
}
@@ -133,7 +134,8 @@ long newsrc_newmessages (FILE *f,MAILSTREAM *stream,char *nl)
}
}
if (j) { /* dump trailing range */
- sprintf (tmp,(j == k) ? "%c%ld" : "%c%ld-%ld",c,j,k);
+ if(j == k) sprintf (tmp, "%c%ld",c,j);
+ else sprintf (tmp,"%c%ld-%ld",c,j,k);
if (fputs (tmp,f) == EOF) return NIL;
}
}
@@ -340,7 +342,7 @@ long newsrc_write (char *group,MAILSTREAM *stream)
char *s,tmp[MAILTMPLEN],backup[MAILTMPLEN],nl[3];
FILE *f,*bf;
nl[0] = nl[1] = nl[2] = '\0'; /* no newline known yet */
- if (f = fopen (newsrc,"rb")) {/* have existing newsrc file? */
+ if ((f = fopen (newsrc,"rb")) != NULL) {/* have existing newsrc file? */
if (!(bf = fopen ((strcat (strcpy (backup,newsrc),OLDFILESUFFIX)),"wb"))) {
fclose (f); /* punt input file */
return newsrc_error("Can't create backup news state %.80s",backup,ERROR);
@@ -365,7 +367,7 @@ long newsrc_write (char *group,MAILSTREAM *stream)
return newsrc_error ("Error closing backup news state %.80s",
newsrc,ERROR);
if (d == EOF) { /* open for write if empty file */
- if (f = newsrc_create (stream,NIL)) bf = NIL;
+ if ((f = newsrc_create (stream,NIL)) != NULL) bf = NIL;
else return NIL;
}
else if (!nl[0]) /* make sure newlines valid */
@@ -381,7 +383,7 @@ long newsrc_write (char *group,MAILSTREAM *stream)
}
}
else { /* create new newsrc file */
- if (f = newsrc_create (stream,T)) bf = NIL;
+ if ((f = newsrc_create (stream,T)) != NULL) bf = NIL;
else return NIL; /* can't create newsrc */
}
diff --git a/imap/src/c-client/nntp.c b/imap/src/c-client/nntp.c
index dd2b8604..8fa32df1 100644
--- a/imap/src/c-client/nntp.c
+++ b/imap/src/c-client/nntp.c
@@ -352,12 +352,12 @@ void nntp_list (MAILSTREAM *stream,char *ref,char *pat)
/* namespace format name? */
if (*(lcl = strchr (strcpy (name,pattern),'}') + 1) == '#') lcl += 6;
/* process data until we see final dot */
- while (s = net_getline (LOCAL->nntpstream->netstream)) {
+ while ((s = net_getline (LOCAL->nntpstream->netstream)) != NULL) {
if ((*s == '.') && !s[1]){/* end of text */
fs_give ((void **) &s);
break;
}
- if (t = strchr (s,' ')) { /* tie off after newsgroup name */
+ if ((t = strchr (s,' ')) != NULL) { /* tie off after newsgroup name */
*t = '\0';
strcpy (lcl,s); /* make full form of name */
/* report if match */
@@ -396,10 +396,10 @@ void nntp_lsub (MAILSTREAM *stream,char *ref,char *pat)
if (ref && *ref) sprintf (mbx,"%s%s",ref,pat);
else strcpy (mbx,pat);
- if (s = sm_read (tmp,&sdb)) do if (nntp_valid (s) && pmatch (s,mbx))
+ if ((s = sm_read (tmp,&sdb)) != NULL) do if (nntp_valid (s) && pmatch (s,mbx))
mm_lsub (stream,NIL,s,NIL);
/* until no more subscriptions */
- while (s = sm_read (tmp,&sdb));
+ while ((s = sm_read (tmp,&sdb)) != NULL);
}
/* NNTP canonicalize newsgroup name
@@ -430,7 +430,7 @@ long nntp_canonicalize (char *ref,char *pat,char *pattern,char *wildmat)
/* don't return wildmat if specials present */
if (strpbrk (wildmat,",?![\\]")) wildmat[0] = '\0';
/* replace all % with * */
- for (s = wildmat; s = strchr (s,'%'); *s = '*');
+ for (s = wildmat; (s = strchr (s,'%')) != NULL; *s = '*');
}
return ret ? LONGT : NIL;
}
@@ -556,7 +556,7 @@ long nntp_status (MAILSTREAM *stream,char *mbx,long flags)
else if (!(flags & (SA_RECENT | SA_UNSEEN))) status.messages = k;
/* have newsrc state? */
- else if (state = newsrc_state (stream,name)) {
+ else if ((state = newsrc_state (stream,name)) != NULL) {
/* yes, get the UID/sequence map */
if (nntp_getmap (stream,name,i,status.uidnext - 1,rnmsgs,
status.messages,tmp)) {
@@ -938,15 +938,15 @@ long nntp_overview (MAILSTREAM *stream,overview_t ofn)
(j <= stream->nmsgs) && (elt = mail_elt (stream,j))->sequence &&
!elt->private.spare.ptr; j++);
/* make NNTP range */
- sprintf (tmp,(i == (j - 1)) ? "%lu" : "%lu-%lu",mail_uid (stream,i),
- mail_uid (stream,j - 1));
+ if(i == (j - 1)) sprintf (tmp, "%lu", mail_uid (stream,i));
+ else sprintf (tmp, "%lu-%lu",mail_uid (stream,i), mail_uid (stream,j - 1));
i = j; /* advance beyond gap */
/* ask server for overview data to cache */
if (nntp_over (stream,tmp)) {
while ((s = net_getline (LOCAL->nntpstream->netstream)) &&
strcmp (s,".")) {
/* death to embedded newlines */
- for (t = v = s; c = *v++;)
+ for (t = v = s; (c = *v++) != '\0';)
if ((c != '\012') && (c != '\015')) *t++ = c;
*t++ = '\0'; /* tie off string in case it was shortened */
/* cache the overview if found its sequence */
@@ -1056,34 +1056,34 @@ long nntp_parse_overview (OVERVIEW *ov,char *text,MESSAGECACHE *elt)
if (!(text && *text)) return NIL;
ov->subject = cpystr (text); /* make hackable copy of overview */
/* find end of Subject */
- if (t = strchr (ov->subject,'\t')) {
+ if ((t = strchr (ov->subject,'\t')) != NULL) {
*t++ = '\0'; /* tie off Subject, point to From */
/* find end of From */
- if (ov->date = strchr (t,'\t')) {
+ if ((ov->date = strchr (t,'\t')) != NULL) {
*ov->date++ = '\0'; /* tie off From, point to Date */
/* load internaldate too */
if (!elt->day) mail_parse_date (elt,ov->date);
/* parse From */
rfc822_parse_adrlist (&ov->from,t,BADHOST);
/* find end of Date */
- if (ov->message_id = strchr (ov->date,'\t')) {
+ if ((ov->message_id = strchr (ov->date,'\t')) != NULL) {
/* tie off Date, point to Message-ID */
*ov->message_id++ = '\0';
/* find end of Message-ID */
- if (ov->references = strchr (ov->message_id,'\t')) {
+ if ((ov->references = strchr (ov->message_id,'\t')) != NULL) {
/* tie off Message-ID, point to References */
*ov->references++ = '\0';
/* fine end of References */
- if (t = strchr (ov->references,'\t')) {
+ if ((t = strchr (ov->references,'\t')) != NULL) {
*t++ = '\0'; /* tie off References, point to octet size */
/* parse size of message in octets */
ov->optional.octets = atol (t);
/* find end of size */
- if (t = strchr (t,'\t')) {
+ if ((t = strchr (t,'\t')) != NULL) {
/* parse size of message in lines */
ov->optional.lines = atol (++t);
/* find Xref */
- if (ov->optional.xref = strchr (t,'\t'))
+ if ((ov->optional.xref = strchr (t,'\t')) != NULL)
*ov->optional.xref++ = '\0';
}
}
@@ -1116,7 +1116,7 @@ char *nntp_header (MAILSTREAM *stream,unsigned long msgno,unsigned long *size,
/* get header text */
switch (nntp_send (LOCAL->nntpstream,"HEAD",tmp)) {
case NNTPHEAD:
- if (f = netmsg_slurp (LOCAL->nntpstream->netstream,size,NIL)) {
+ if ((f = netmsg_slurp (LOCAL->nntpstream->netstream,size,NIL)) != NULL) {
fread (elt->private.msg.header.text.data =
(unsigned char *) fs_get ((size_t) *size + 3),
(size_t) 1,(size_t) *size,f);
@@ -1168,8 +1168,8 @@ long nntp_text (MAILSTREAM *stream,unsigned long msgno,STRING *bs,long flags)
sprintf (tmp,"%lu",elt->private.uid);
switch (nntp_send (LOCAL->nntpstream,"BODY",tmp)) {
case NNTPBODY:
- if (LOCAL->txt = netmsg_slurp (LOCAL->nntpstream->netstream,
- &LOCAL->txtsize,NIL)) break;
+ if ((LOCAL->txt = netmsg_slurp (LOCAL->nntpstream->netstream,
+ &LOCAL->txtsize,NIL)) != NULL) break;
/* fall into default case */
default: /* failed, mark as deleted */
elt->deleted = T;
@@ -1233,7 +1233,7 @@ long nntp_search (MAILSTREAM *stream,char *charset,SEARCHPGM *pgm,long flags)
OVERVIEW ov;
char *msg;
/* make sure that charset is good */
- if (msg = utf8_badcharset (charset)) {
+ if ((msg = utf8_badcharset (charset)) != NULL) {
MM_LOG (msg,ERROR); /* output error */
fs_give ((void **) &msg);
return NIL;
@@ -1286,7 +1286,7 @@ long nntp_search_msg (MAILSTREAM *stream,unsigned long msgno,SEARCHPGM *pgm,
if (pgm->msgno || pgm->uid) { /* message set searches */
SEARCHSET *set;
/* message sequences */
- if (set = pgm->msgno) { /* must be inside this sequence */
+ if ((set = pgm->msgno) != NULL) { /* must be inside this sequence */
while (set) { /* run down until find matching range */
if (set->last ? ((msgno < set->first) || (msgno > set->last)) :
msgno != set->first) set = set->next;
@@ -1294,7 +1294,7 @@ long nntp_search_msg (MAILSTREAM *stream,unsigned long msgno,SEARCHPGM *pgm,
}
if (!set) return NIL; /* not found within sequence */
}
- if (set = pgm->uid) { /* must be inside this sequence */
+ if ((set = pgm->uid) != NULL) { /* must be inside this sequence */
unsigned long uid = mail_uid (stream,msgno);
while (set) { /* run down until find matching range */
if (set->last ? ((uid < set->first) || (uid > set->last)) :
@@ -1530,7 +1530,7 @@ SORTCACHE **nntp_sort_loadcache (MAILSTREAM *stream,SORTPGM *pgm,
if (!nntp_over (stream,tmp)) return mail_sort_loadcache (stream,pgm);
while ((s = net_getline (LOCAL->nntpstream->netstream)) && strcmp (s,".")){
/* death to embedded newlines */
- for (t = v = s; c = *v++;) if ((c != '\012') && (c != '\015')) *t++ = c;
+ for (t = v = s; (c = *v++) != '\0';) if ((c != '\012') && (c != '\015')) *t++ = c;
*t++ = '\0'; /* tie off resulting string */
/* parse OVER response */
if ((i = mail_msgno (stream,atol (s))) &&
@@ -1539,14 +1539,14 @@ SORTCACHE **nntp_sort_loadcache (MAILSTREAM *stream,SORTPGM *pgm,
/* put stripped subject in sortcache */
r = (SORTCACHE *) (*mailcache) (stream,i,CH_SORTCACHE);
r->refwd = mail_strip_subject (t,&r->subject);
- if (t = strchr (v,'\t')) {
+ if ((t = strchr (v,'\t')) != NULL) {
*t++ = '\0'; /* tie off from */
- if (adr = rfc822_parse_address (&adr,adr,&v,BADHOST,0)) {
+ if ((adr = rfc822_parse_address (&adr,adr,&v,BADHOST,0)) != NULL) {
r->from = adr->mailbox;
adr->mailbox = NIL;
mail_free_address (&adr);
}
- if (v = strchr (t,'\t')) {
+ if ((v = strchr (t,'\t')) != NULL) {
*v++ = '\0'; /* tie off date */
if (mail_parse_date (&telt,t)) r->date = mail_longdate (&telt);
if ((v = strchr (v,'\t')) && (v = strchr (++v,'\t')))
@@ -1696,10 +1696,10 @@ SENDSTREAM *nntp_open_full (NETDRIVER *dv,char **hostlist,char *service,
/* default port */
if (mb.port) port = mb.port;
else if (!port) port = nntp_port ? nntp_port : NNTPTCPPORT;
- if (netstream = /* try to open ordinary connection */
+ if ((netstream = /* try to open ordinary connection */
net_open (&mb,dv,port,
(NETDRIVER *) mail_parameters (NIL,GET_SSLDRIVER,NIL),
- "*nntps",nntp_sslport ? nntp_sslport : NNTPSSLPORT)) {
+ "*nntps",nntp_sslport ? nntp_sslport : NNTPSSLPORT)) != NULL) {
stream = (SENDSTREAM *) fs_get (sizeof (SENDSTREAM));
/* initialize stream */
memset ((void *) stream,0,sizeof (SENDSTREAM));
@@ -1737,9 +1737,9 @@ SENDSTREAM *nntp_open_full (NETDRIVER *dv,char **hostlist,char *service,
mb.tlsflag = T; /* TLS OK, get into TLS at this end */
stream->netstream->dtb = ssld;
/* negotiate TLS */
- if (stream->netstream->stream =
+ if ((stream->netstream->stream =
(*stls) (stream->netstream->stream,mb.host,
- SSL_MTHD(mb) | (mb.novalidate ? NET_NOVALIDATECERT:NIL)))
+ SSL_MTHD(mb) | (mb.novalidate ? NET_NOVALIDATECERT:NIL))) != NULL)
extok = nntp_extensions (stream,(mb.secflag ? AU_SECURE : NIL) |
(mb.authuser[0] ? AU_AUTHUSER : NIL));
else {
@@ -1834,7 +1834,7 @@ long nntp_extensions (SENDSTREAM *stream,long flags)
while ((t = net_getline (stream->netstream)) && (t[1] || (*t != '.'))) {
if (stream->debug) mm_dlog (t);
/* get optional capability arguments */
- if (args = strchr (t,' ')) *args++ = '\0';
+ if ((args = strchr (t,' ')) != NULL) *args++ = '\0';
if (!compare_cstring (t,"LISTGROUP")) NNTP.ext.listgroup = T;
else if (!compare_cstring (t,"OVER")) NNTP.ext.over = T;
else if (!compare_cstring (t,"HDR")) NNTP.ext.hdr = T;
@@ -1933,7 +1933,7 @@ long nntp_mail (SENDSTREAM *stream,ENVELOPE *env,BODY *body)
env->sender ? env->sender->mailbox :
(env->from ? env->from->mailbox : "not-for-mail"));
/* here's another cretinism */
- if (s = strstr (env->date," (")) *s = NIL;
+ if ((s = strstr (env->date," (")) != NULL) *s = NIL;
do if ((ret = nntp_send_work (stream,"POST",NIL)) == NNTPREADY)
/* output data, return success status */
ret = (net_soutr (stream->netstream,
@@ -2231,7 +2231,7 @@ long nntp_soutr (void *stream,char *s)
/* "." on first line */
if (s[0] == '.') net_soutr (stream,".");
/* find lines beginning with a "." */
- while (t = strstr (s,"\015\012.")) {
+ while ((t = strstr (s,"\015\012.")) != NULL) {
c = *(t += 3); /* remember next character after "." */
*t = '\0'; /* tie off string */
/* output prefix */
diff --git a/imap/src/c-client/pop3.c b/imap/src/c-client/pop3.c
index 52573f52..46c050ee 100644
--- a/imap/src/c-client/pop3.c
+++ b/imap/src/c-client/pop3.c
@@ -273,10 +273,10 @@ void pop3_lsub (MAILSTREAM *stream,char *ref,char *pat)
if (ref && *ref) sprintf (mbx,"%s%s",ref,pat);
else strcpy (mbx,pat);
- if (s = sm_read (tmp,&sdb)) do if (pop3_valid (s) && pmatch (s,mbx))
+ if ((s = sm_read (tmp,&sdb)) != NULL) do if (pop3_valid (s) && pmatch (s,mbx))
mm_lsub (stream,NIL,s,NIL);
/* until no more subscriptions */
- while (s = sm_read (tmp,&sdb));
+ while ((s = sm_read (tmp,&sdb)) != NULL);
}
@@ -428,7 +428,7 @@ MAILSTREAM *pop3_open (MAILSTREAM *stream)
if (mb.notlsflag) strcat (tmp,"/notls");
if (mb.sslflag) strcat (tmp,"/ssl");
if (mb.novalidate) strcat (tmp,"/novalidate-cert");
- if (LOCAL->loser = mb.loser) strcat (tmp,"/loser");
+ if ((LOCAL->loser = mb.loser) != 0) strcat (tmp,"/loser");
if (stream->secure) strcat (tmp,"/secure");
sprintf (tmp + strlen (tmp),"/user=\"%s\"}%s",usr,mb.mailbox);
stream->inbox = T; /* always INBOX */
@@ -498,7 +498,7 @@ long pop3_capa (MAILSTREAM *stream,long flags)
while ((t = net_getline (LOCAL->netstream)) && (t[1] || (*t != '.'))) {
if (stream->debug) mm_dlog (t);
/* get optional capability arguments */
- if (args = strchr (t,' ')) *args++ = '\0';
+ if ((args = strchr (t,' ')) != NULL) *args++ = '\0';
if (!compare_cstring (t,"STLS")) LOCAL->cap.stls = T;
else if (!compare_cstring (t,"PIPELINING")) LOCAL->cap.pipelining = T;
else if (!compare_cstring (t,"RESP-CODES")) LOCAL->cap.respcodes = T;
@@ -509,7 +509,7 @@ long pop3_capa (MAILSTREAM *stream,long flags)
LOCAL->cap.implementation = cpystr (args);
else if (!compare_cstring (t,"EXPIRE") && args) {
LOCAL->cap.expire = T; /* note that it is present */
- if (s = strchr(args,' ')){/* separate time from possible USER */
+ if ((s = strchr(args,' ')) != NULL){/* separate time from possible USER */
*s++ = '\0';
/* in case they add something after USER */
if ((strlen (s) > 4) && (s[4] == ' ')) s[4] = '\0';
@@ -520,7 +520,7 @@ long pop3_capa (MAILSTREAM *stream,long flags)
}
else if (!compare_cstring (t,"LOGIN-DELAY") && args) {
LOCAL->cap.logindelay = T;/* note that it is present */
- if (s = strchr(args,' ')){/* separate time from possible USER */
+ if ((s = strchr(args,' ')) != NULL){/* separate time from possible USER */
*s++ = '\0';
/* in case they add something after USER */
if ((strlen (s) > 4) && (s[4] == ' ')) s[4] = '\0';
@@ -841,7 +841,7 @@ char *pop3_header (MAILSTREAM *stream,unsigned long msgno,unsigned long *size,
&elt->private.msg.header.text.size);
}
/* otherwise load the cache with the message */
- else if (elt->private.msg.header.text.size = pop3_cache (stream,elt))
+ else if ((elt->private.msg.header.text.size = pop3_cache (stream,elt)) != 0L)
f = LOCAL->txt;
if (f) { /* got it, make sure at start of file */
fseek (f,(unsigned long) 0,SEEK_SET);
@@ -945,10 +945,10 @@ long pop3_expunge (MAILSTREAM *stream,char *sequence,long options)
MESSAGECACHE *elt;
unsigned long i = 1,n = 0;
long ret;
- if (ret = sequence ? ((options & EX_UID) ?
+ if ((ret = sequence ? ((options & EX_UID) ?
mail_uid_sequence (stream,sequence) :
mail_sequence (stream,sequence)) :
- LONGT) { /* build selected sequence if needed */
+ LONGT) != 0L) { /* build selected sequence if needed */
while (i <= stream->nmsgs) {
elt = mail_elt (stream,i);
if (elt->deleted && (sequence ? elt->sequence : T) &&
diff --git a/imap/src/c-client/rfc822.c b/imap/src/c-client/rfc822.c
index 133f9e67..de919b3c 100644
--- a/imap/src/c-client/rfc822.c
+++ b/imap/src/c-client/rfc822.c
@@ -156,7 +156,7 @@ void rfc822_parse_msg_full (ENVELOPE **en,BODY **bdy,char *s,unsigned long i,
}
/* find header item type */
- if (t = d = strchr (tmp,':')) {
+ if ((t = d = strchr (tmp,':')) != NULL) {
*d++ = '\0'; /* tie off header item, point at its data */
while (*d == ' ') d++; /* flush whitespace */
while ((tmp < t--) && (*t == ' ')) *t = '\0';
@@ -205,7 +205,7 @@ void rfc822_parse_msg_full (ENVELOPE **en,BODY **bdy,char *s,unsigned long i,
if (!strcmp (tmp+1,"ROM")) rfc822_parse_adrlist (&env->from,d,host);
else if (!strcmp (tmp+1,"OLLOWUP-TO")) {
t = env->followup_to = (char *) fs_get (1 + strlen (d));
- while (c = *d++) if (c != ' ') *t++ = c;
+ while ((c = *d++) != '\0') if (c != ' ') *t++ = c;
*t++ = '\0';
}
break;
@@ -219,7 +219,7 @@ void rfc822_parse_msg_full (ENVELOPE **en,BODY **bdy,char *s,unsigned long i,
env->message_id = cpystr (d);
else if (!strcmp (tmp+1,"IME-VERSION")) {
/* tie off at end of phrase */
- if (t = rfc822_parse_phrase (d)) *t = '\0';
+ if ((t = rfc822_parse_phrase (d)) != NULL) *t = '\0';
rfc822_skipws (&d); /* skip whitespace */
/* known version? */
if (strcmp (d,"1.0") && strcmp (d,"RFC-XXXX"))
@@ -230,7 +230,7 @@ void rfc822_parse_msg_full (ENVELOPE **en,BODY **bdy,char *s,unsigned long i,
case 'N': /* possible Newsgroups: */
if (!env->newsgroups && !strcmp (tmp+1,"EWSGROUPS")) {
t = env->newsgroups = (char *) fs_get (1 + strlen (d));
- while (c = *d++) if (c != ' ') *t++ = c;
+ while ((c = *d++) != '\0') if (c != ' ') *t++ = c;
*t++ = '\0';
}
break;
@@ -443,7 +443,7 @@ void rfc822_parse_content (BODY *body,STRING *bs,char *h,unsigned long depth,
j = strlen (s1) + 2; /* length of cookie and header */
c = '\012'; /* initially at beginning of line */
while (i > j) { /* examine data */
- if (m = GETPOS (bs)) m--; /* get position in front of character */
+ if ((m = GETPOS (bs)) != 0L) m--; /* get position in front of character */
switch (c) { /* examine each line */
case '\015': /* handle CRLF form */
if (CHR (bs) == '\012'){/* following LF? */
@@ -453,7 +453,7 @@ void rfc822_parse_content (BODY *body,STRING *bs,char *h,unsigned long depth,
if (!(i && i-- && ((c = SNX (bs)) == '-') && i-- &&
((c = SNX (bs)) == '-'))) break;
/* see if cookie matches */
- if (k = j - 2) for (s = s1; i-- && *s++ == (c = SNX (bs)) && --k;);
+ if ((k = j - 2) != 0L) for (s = s1; i-- && *s++ == (c = SNX (bs)) && --k;);
if (k) break; /* strings didn't match if non-zero */
/* terminating delimiter? */
if ((c = ((i && i--) ? (SNX (bs)) : '\012')) == '-') {
@@ -509,7 +509,7 @@ void rfc822_parse_content (BODY *body,STRING *bs,char *h,unsigned long depth,
/* parse non-empty body parts */
for (part = body->nested.part; part; part = part->next) {
/* part non-empty (header and/or content)? */
- if (i = part->body.mime.text.size) {
+ if ((i = part->body.mime.text.size) != 0L) {
/* move to that part of the body */
SETPOS (bs,part->body.mime.offset);
/* until end of header */
@@ -610,7 +610,7 @@ void rfc822_parse_content_header (BODY *body,char *name,char *s)
STRINGLIST *stl;
rfc822_skipws (&s); /* skip leading comments */
/* flush whitespace */
- if (t = strchr (name,' ')) *t = '\0';
+ if ((t = strchr (name,' ')) != NULL) *t = '\0';
switch (*name) { /* see what kind of content */
case 'I': /* possible Content-ID */
if (!(strcmp (name+1,"D") || body->id)) body->id = cpystr (s);
@@ -800,7 +800,7 @@ void rfc822_parse_adrlist (ADDRESS **lst,char *string,char *host)
}
if (!*string) string = NIL; /* punt if ran out of string */
/* got an address? */
- else if (adr = rfc822_parse_address (lst,last,&string,host,0)) {
+ else if ((adr = rfc822_parse_address (lst,last,&string,host,0)) != NULL) {
last = adr; /* new tail address */
if (string) { /* analyze what follows */
rfc822_skipws (&string);
@@ -854,9 +854,9 @@ ADDRESS *rfc822_parse_address (ADDRESS **lst,ADDRESS *last,char **string,
if (!*string) return NIL; /* no string */
rfc822_skipws (string); /* skip leading WS */
if (!**string) return NIL; /* empty string */
- if (adr = rfc822_parse_group (lst,last,string,defaulthost,depth)) last = adr;
+ if ((adr = rfc822_parse_group (lst,last,string,defaulthost,depth)) != NULL) last = adr;
/* got an address? */
- else if (adr = rfc822_parse_mailbox (string,defaulthost)) {
+ else if ((adr = rfc822_parse_mailbox (string,defaulthost)) != NULL) {
if (!*lst) *lst = adr; /* yes, first time through? */
else last->next = adr; /* no, append to the list */
/* set for subsequent linking */
@@ -902,7 +902,7 @@ ADDRESS *rfc822_parse_group (ADDRESS **lst,ADDRESS *last,char **string,
last = adr; /* set for subsequent linking */
*string = p; /* continue after this point */
while (*string && **string && (**string != ';')) {
- if (adr = rfc822_parse_address (lst,last,string,defaulthost,depth+1)) {
+ if ((adr = rfc822_parse_address (lst,last,string,defaulthost,depth+1)) != NULL) {
last = adr; /* new tail address */
if (*string) { /* anything more? */
rfc822_skipws (string); /* skip whitespace */
@@ -961,7 +961,7 @@ ADDRESS *rfc822_parse_mailbox (char **string,char *defaulthost)
if (*(s = *string) == '<') /* note start, handle case of phraseless RA */
adr = rfc822_parse_routeaddr (s,string,defaulthost);
/* otherwise, expect at least one word */
- else if (end = rfc822_parse_phrase (s)) {
+ else if ((end = rfc822_parse_phrase (s)) != NULL) {
if ((adr = rfc822_parse_routeaddr (end,string,defaulthost))) {
/* phrase is a personal name */
if (adr->personal) fs_give ((void **) &adr->personal);
@@ -1090,7 +1090,7 @@ ADDRESS *rfc822_parse_addrspec (char *string,char **ret,char *defaulthost)
string = ++t; /* skip past the dot and any WS */
rfc822_skipws (&string);
/* get next word of mailbox */
- if (t = rfc822_parse_word (string,wspecials)) {
+ if ((t = rfc822_parse_word (string,wspecials)) != NULL) {
end = t; /* remember new end of mailbox */
c = *t; /* remember delimiter */
*t = '\0'; /* tie off word */
@@ -1158,7 +1158,7 @@ char *rfc822_parse_domain (char *string,char **end)
}
}
/* search for end of host */
- else if (t = rfc822_parse_word (string,wspecials)) {
+ else if ((t = rfc822_parse_word (string,wspecials)) != NULL) {
c = *t; /* remember delimiter */
*t = '\0'; /* tie off host */
ret = rfc822_cpy (string); /* copy host */
@@ -1168,7 +1168,7 @@ char *rfc822_parse_domain (char *string,char **end)
while (*t == '.') { /* some cretin taking RFC 822 too seriously? */
string = ++t; /* skip past the dot and any WS */
rfc822_skipws (&string);
- if (string = rfc822_parse_domain (string,&t)) {
+ if ((string = rfc822_parse_domain (string,&t)) != NULL) {
*end = t; /* remember new end of domain */
c = *t; /* remember delimiter */
*t = '\0'; /* tie off host */
@@ -1235,7 +1235,7 @@ char *rfc822_parse_word (char *s,const char *delimiters)
case I2CS_94x94_JIS_OLD:/* old JIS (1978) */
case I2CS_94x94_JIS_NEW:/* new JIS (1983) */
str = ++st; /* skip past the shift to JIS */
- while (st = strchr (st,I2C_ESC))
+ while ((st = strchr (st,I2C_ESC)) != NULL)
if ((*++st == I2C_G0_94) && ((st[1] == I2CS_94_ASCII) ||
(st[1] == I2CS_94_JIS_ROMAN) ||
(st[1] == I2CS_94_JIS_BUGROM))) {
@@ -1434,7 +1434,7 @@ static long rfc822_output_data (RFC822BUFFER *buf,char *string,long len)
{
while (len) { /* until request satified */
long i;
- if (i = min (len,buf->end - buf->cur)) {
+ if ((i = min (len,buf->end - buf->cur)) != 0L) {
memcpy (buf->cur,string,i);
buf->cur += i; /* blat data */
string += i;
@@ -1682,7 +1682,7 @@ long rfc822_output_cat (RFC822BUFFER *buf,char *src,const char *specials)
/* yes, write as quoted string*/
if (!rfc822_output_char (buf,'"')) return NIL;
/* embedded quote characters? */
- for (; s = strpbrk (src,"\\\""); src = s + 1) {
+ for (; (s = strpbrk (src,"\\\"")) != NULL; src = s + 1) {
/* yes, insert quoting */
if (!(rfc822_output_data (buf,src,s-src) &&
rfc822_output_char (buf,'\\') &&
@@ -1800,7 +1800,7 @@ void rfc822_encode_body_7bit (ENVELOPE *env,BODY *body)
}
part = body->nested.part; /* encode body parts */
do rfc822_encode_body_7bit (env,&part->body);
- while (part = part->next); /* until done */
+ while ((part = part->next) != NULL); /* until done */
break;
case TYPEMESSAGE: /* encapsulated message */
switch (body->encoding) {
@@ -1868,7 +1868,7 @@ void rfc822_encode_body_8bit (ENVELOPE *env,BODY *body)
}
part = body->nested.part; /* encode body parts */
do rfc822_encode_body_8bit (env,&part->body);
- while (part = part->next); /* until done */
+ while ((part = part->next) != NULL); /* until done */
break;
case TYPEMESSAGE: /* encapsulated message */
switch (body->encoding) {
@@ -2024,7 +2024,7 @@ void *rfc822_base64 (unsigned char *src,unsigned long srcl,unsigned long *len)
*/
sprintf (tmp,"Possible data truncation in rfc822_base64(): %.80s",
(char *) src - 1);
- if (s = strpbrk (tmp,"\015\012")) *s = NIL;
+ if ((s = strpbrk (tmp,"\015\012")) != NULL) *s = NIL;
mm_log (tmp,PARSE);
srcl = 1; /* don't issue any more messages */
break;
diff --git a/imap/src/c-client/smanager.c b/imap/src/c-client/smanager.c
index 1f9b508c..437e1079 100644
--- a/imap/src/c-client/smanager.c
+++ b/imap/src/c-client/smanager.c
@@ -41,9 +41,9 @@ long sm_subscribe (char *mailbox)
/* canonicalize INBOX */
if (!compare_cstring (mailbox,"INBOX")) mailbox = "INBOX";
SUBSCRIPTIONFILE (db); /* open subscription database */
- if (f = fopen (db,"r")) { /* make sure not already there */
+ if ((f = fopen (db,"r")) != NULL) { /* make sure not already there */
while (fgets (tmp,MAILTMPLEN,f)) {
- if (s = strchr (tmp,'\n')) *s = '\0';
+ if ((s = strchr (tmp,'\n')) != NULL) *s = '\0';
if (!strcmp (tmp,mailbox)) {/* already subscribed? */
sprintf (tmp,"Already subscribed to mailbox %.80s",mailbox);
MM_LOG (tmp,ERROR);
@@ -83,7 +83,7 @@ long sm_unsubscribe (char *mailbox)
}
else {
while (fgets (tmp,MAILTMPLEN,f)) {
- if (s = strchr (tmp,'\n')) *s = '\0';
+ if ((s = strchr (tmp,'\n')) != NULL) *s = '\0';
if (strcmp (tmp,mailbox)) fprintf (tf,"%s\n",tmp);
else found = T; /* found the name */
}
@@ -113,11 +113,11 @@ char *sm_read (char *sbname,void **sdb)
if (!f) { /* first time through? */
SUBSCRIPTIONFILE (sbname); /* open subscription database */
/* make sure not already there */
- if (f = fopen (sbname,"r")) *sdb = (void *) f;
+ if ((f = fopen (sbname,"r")) != NULL) *sdb = (void *) f;
else return NIL;
}
if (fgets (sbname,MAILTMPLEN,f)) {
- if (s = strchr (sbname,'\n')) *s = '\0';
+ if ((s = strchr (sbname,'\n')) != NULL) *s = '\0';
return sbname;
}
fclose (f); /* all done */
diff --git a/imap/src/c-client/smtp.c b/imap/src/c-client/smtp.c
index 1a79d28d..405f8738 100644
--- a/imap/src/c-client/smtp.c
+++ b/imap/src/c-client/smtp.c
@@ -167,10 +167,10 @@ SENDSTREAM *smtp_open_full (NETDRIVER *dv,char **hostlist,char *service,
}
/* else port argument overrides SMTP port */
else if (!port) port = smtp_port ? smtp_port : SMTPTCPPORT;
- if (netstream = /* try to open ordinary connection */
+ if ((netstream = /* try to open ordinary connection */
net_open (&mb,dv,port,
(NETDRIVER *) mail_parameters (NIL,GET_SSLDRIVER,NIL),
- "*smtps",smtp_sslport ? smtp_sslport : SMTPSSLPORT)) {
+ "*smtps",smtp_sslport ? smtp_sslport : SMTPSSLPORT)) != NULL) {
stream = (SENDSTREAM *) memset (fs_get (sizeof (SENDSTREAM)),0,
sizeof (SENDSTREAM));
stream->netstream = netstream;
@@ -788,7 +788,7 @@ long smtp_soutr (void *stream,char *s)
/* "." on first line */
if (s[0] == '.') net_sout (stream,".",1);
/* find lines beginning with a "." */
- while (t = strstr (s,"\015\012.")) {
+ while ((t = strstr (s,"\015\012.")) != NULL) {
c = *(t += 3); /* remember next character after "." */
*t = '\0'; /* tie off string */
/* output prefix */
diff --git a/imap/src/c-client/utf8.c b/imap/src/c-client/utf8.c
index cad4a7c7..844abefd 100644
--- a/imap/src/c-client/utf8.c
+++ b/imap/src/c-client/utf8.c
@@ -657,7 +657,7 @@ unsigned short *utf8_rmap_cs (const CHARSET *cs)
unsigned short *ret = NIL;
if (!cs); /* have charset? */
else if (cs == currmapcs) ret = currmap;
- else if (ret = utf8_rmap_gen (cs,currmap)) {
+ else if ((ret = utf8_rmap_gen (cs,currmap)) != NULL) {
currmapcs = cs;
currmap = ret;
}
@@ -789,7 +789,7 @@ long utf8_rmaptext (SIZEDTEXT *text,unsigned short *rmap,SIZEDTEXT *ret,
{
unsigned long i,u,c;
/* get size of buffer */
- if (i = utf8_rmapsize (text,rmap,errch,iso2022jp)) {
+ if ((i = utf8_rmapsize (text,rmap,errch,iso2022jp)) != 0L) {
unsigned char *s = text->data;
unsigned char *t = ret->data = (unsigned char *) fs_get (i);
ret->size = i - 1; /* number of octets in destination buffer */
@@ -1320,7 +1320,7 @@ unsigned long *utf8_csvalidmap (char *charsets[])
/* substitute EUC-JP for ISO-2022-JP */
if (!compare_cstring (s,"ISO-2022-JP")) s = "EUC-JP";
/* look up charset */
- if (cs = utf8_charset (s)) {
+ if ((cs = utf8_charset (s)) != NULL) {
csb = 1 << csi; /* charset bit */
switch (cs->type) {
case CT_ASCII: /* 7-bit ASCII no table */
@@ -2424,7 +2424,7 @@ unsigned long ucs4_decompose (unsigned long c,void **more)
struct decomposemore *m;
if (c & U8G_ERROR) { /* want to chase more? */
/* do sanity check */
- if (m = (struct decomposemore *) *more) switch (m->type) {
+ if ((m = (struct decomposemore *) *more) != NULL) switch (m->type) {
case MORESINGLE: /* single value */
ret = m->data.single;
fs_give (more); /* no more decomposition */
@@ -2447,7 +2447,7 @@ unsigned long ucs4_decompose (unsigned long c,void **more)
else if (c == UCS4_BMPLOMIN) ret = ucs4_dbmplotab[0];
else if (c <= UCS4_BMPLOMAX) {
/* within range - have a decomposition? */
- if (i = ucs4_dbmploixtab[c - UCS4_BMPLOMIN]) {
+ if ((i = ucs4_dbmploixtab[c - UCS4_BMPLOMIN]) != 0L) {
/* get first value of decomposition */
ret = ucs4_dbmplotab[ix = i & UCS4_BMPLOIXMASK];
/* has continuation? */
@@ -2477,7 +2477,7 @@ unsigned long ucs4_decompose (unsigned long c,void **more)
else if (c < UCS4_BMPHIMIN) ret = c;
else if (c <= UCS4_BMPHIMAX) {
/* within range - have a decomposition? */
- if (i = ucs4_dbmphiixtab[c - UCS4_BMPHIMIN]) {
+ if ((i = ucs4_dbmphiixtab[c - UCS4_BMPHIMIN]) != 0L) {
/* get first value of decomposition */
ret = ucs4_dbmphitab[ix = i & UCS4_BMPHIIXMASK];
/* has continuation? */
@@ -2542,7 +2542,7 @@ unsigned long ucs4_decompose_recursive (unsigned long c,void **more)
RECURSIVEMORE *mr;
if (c & U8G_ERROR) { /* want to chase more? */
mn = NIL;
- if (mr = (RECURSIVEMORE *) *more) switch (mr->more->type) {
+ if ((mr = (RECURSIVEMORE *) *more) != NULL) switch (mr->more->type) {
case MORESINGLE: /* decompose single value */
c = ucs4_decompose_recursive (mr->more->data.single,&mn);
*more = mr->next; /* done with this more, remove it */
@@ -2562,7 +2562,7 @@ unsigned long ucs4_decompose_recursive (unsigned long c,void **more)
fatal ("invalid more block argument to ucs4_decompose_recursive!");
}
else fatal ("no more block provided to ucs4_decompose_recursive!");
- if (mr = mn) { /* did this value recurse on us? */
+ if ((mr = mn) != NULL) { /* did this value recurse on us? */
mr->next = *more; /* yes, insert new more at head */
*more = mr;
}
diff --git a/imap/src/c-client/utf8aux.c b/imap/src/c-client/utf8aux.c
index 5138987b..5241b9e1 100644
--- a/imap/src/c-client/utf8aux.c
+++ b/imap/src/c-client/utf8aux.c
@@ -44,7 +44,7 @@ static void utf8_stringlist (STRINGLIST *st,char *charset)
fs_give ((void **) &st->text.data);
st->text.data = txt.data; /* transfer this text */
st->text.size = txt.size;
- } while (st = st->next);
+ } while ((st = st->next) != NULL);
}
@@ -133,7 +133,7 @@ long utf8_mime2text (SIZEDTEXT *src,SIZEDTEXT *dst,long flags)
((te - s) < MAXENCWORD)) {
if (mime2_decode (e,t,te,&txt)) {
*ce = '\0'; /* temporarily tie off charset */
- if (ls = strchr (cs,'*')) *ls = '\0';
+ if ((ls = strchr (cs,'*')) != NULL) *ls = '\0';
/* convert to UTF-8 as best we can */
if (!utf8_text (&txt,cs,&rtxt,flags)) utf8_text (&txt,NIL,&rtxt,flags);
if (dst->data) { /* make sure existing buffer fits */
@@ -238,7 +238,7 @@ long mime2_decode (unsigned char *e,unsigned char *t,unsigned char *te,
txt->data[txt->size] = '\0';
break;
case 'B': case 'b': /* BASE64 */
- if (txt->data = (unsigned char *) rfc822_base64 (t,te - t,&txt->size))
+ if ((txt->data = (unsigned char *) rfc822_base64 (t,te - t,&txt->size)) != NULL)
break;
default: /* any other encoding is unknown */
return NIL; /* syntax error: unknown encoding */
diff --git a/imap/src/dmail/dmail.c b/imap/src/dmail/dmail.c
index 25bc547f..cf9bb732 100644
--- a/imap/src/dmail/dmail.c
+++ b/imap/src/dmail/dmail.c
@@ -27,6 +27,7 @@
#include <stdio.h>
#include <pwd.h>
#include <errno.h>
+#include <ctype.h>
extern int errno; /* just in case */
#include <sysexits.h>
#include <sys/file.h>
@@ -115,7 +116,7 @@ void file_string_setpos (STRING *s,unsigned long i)
s->offset = i; /* set new offset */
s->curpos = s->chunk; /* reset position */
/* set size of data */
- if (s->cursize = min (s->chunksize,SIZE (s))) {
+ if ((s->cursize = min (s->chunksize,SIZE (s))) != 0L) {
/* move to that position in the file */
fseek ((FILE *) s->data,s->offset,SEEK_SET);
fread (s->curpos,sizeof (char),(unsigned int) s->cursize,(FILE *) s->data);
@@ -224,7 +225,7 @@ int deliver (FILE *f,unsigned long msglen,char *user)
STRING st;
struct stat sbuf;
/* have a mailbox specifier? */
- if (mailbox = strchr (user,'+')) {
+ if ((mailbox = strchr (user,'+')) != NULL) {
*mailbox++ = '\0'; /* yes, tie off user name */
if (!*mailbox || !compare_cstring ((unsigned char *) mailbox,"INBOX"))
mailbox = NIL; /* user+ and user+INBOX same as user */
diff --git a/imap/src/imapd/imapd.c b/imap/src/imapd/imapd.c
index 5f72ac70..980eadec 100644
--- a/imap/src/imapd/imapd.c
+++ b/imap/src/imapd/imapd.c
@@ -335,7 +335,7 @@ int main (int argc,char *argv[])
if (nntp) { /* desire NNTP proxy? */
if (fgets (proxy,MAILTMPLEN,nntp)) {
/* remove newline and set NNTP proxy */
- if (s = strchr (proxy,'\n')) *s = '\0';
+ if ((s = strchr (proxy,'\n')) != NULL) *s = '\0';
nntpproxy = cpystr (proxy);
/* disable the news driver */
mail_parameters (NIL,DISABLE_DRIVER,"news");
@@ -407,13 +407,13 @@ int main (int argc,char *argv[])
if (lstref) fs_give ((void **) &lstref);
while (litsp) fs_give ((void **) &litstk[--litsp]);
/* find end of line */
- if (t = strchr (cmdbuf,'\012')) {
+ if ((t = strchr (cmdbuf,'\012')) != NULL) {
/* tie off command termination */
if ((t > cmdbuf) && (t[-1] == '\015')) --t;
*t = '\0'; /* tie off LF or CRLF */
}
if (!t) { /* probably line too long if not terminated */
- if (t = strchr (cmdbuf,' ')) {
+ if ((t = strchr (cmdbuf,' ')) != NULL) {
if ((t - cmdbuf) > MAXTAG) t = NIL;
else *t = '\0';
}
@@ -481,7 +481,7 @@ int main (int argc,char *argv[])
unsigned char *cl = cpystr (tcp_clienthost ());
size_t cls;
/* get just host name, calculate length */
- if (t = strchr (cl,' ')) {
+ if ((t = strchr (cl,' ')) != NULL) {
*t = '\0';
cls = t - cl;
}
@@ -561,7 +561,7 @@ int main (int argc,char *argv[])
}
else response ="%.80s NO AUTHENTICATE ANONYMOUS failed\015\012";
}
- else if (user = cpystr (mail_auth (s,imap_responder,argc,argv))) {
+ else if ((user = cpystr (mail_auth (s,imap_responder,argc,argv))) != NULL) {
pass = cpystr ("*");
state = SELECT; /* make select */
alerttime = 0; /* force alert */
@@ -621,7 +621,7 @@ int main (int argc,char *argv[])
tcp_clienthost ());
}
else { /* delimit user from possible admin */
- if (s = strchr (user,'*')) *s++ ='\0';
+ if ((s = strchr (user,'*')) != NULL) *s++ ='\0';
/* see if username and password are OK */
if (server_login (user,pass,s,argc,argv)) {
state = SELECT; /* make select */
@@ -639,7 +639,7 @@ int main (int argc,char *argv[])
/* start TLS security */
else if (!strcmp (cmd,"STARTTLS")) {
if (arg) response = badarg;
- else if (lsterr = ssl_start_tls (pgmname)) response = lose;
+ else if ((lsterr = ssl_start_tls (pgmname)) != NULL) response = lose;
}
else {
response = badcml;
@@ -785,7 +785,7 @@ int main (int argc,char *argv[])
else if (!strcmp (s,"CC")) pg->function = SORTCC;
else if (!strcmp (s,"SIZE")) pg->function = SORTSIZE;
else break;
- } while (s = strtok_r (NIL," ",&sstate));
+ } while ((s = strtok_r (NIL," ",&sstate)) != NULL);
/* bad SORT attribute */
if (s) response = badatt;
/* get charset and search criteria */
@@ -795,7 +795,7 @@ int main (int argc,char *argv[])
else if (!parse_criteria (spg = mail_newsearchpgm (),&arg,nmsgs,
uidmax (stream),0)) response = badatt;
else if (arg && *arg) response = badarg;
- else if (slst = mail_sort (stream,cs,spg,pgm,uid ? SE_UID:NIL)) {
+ else if ((slst = mail_sort (stream,cs,spg,pgm,uid ? SE_UID:NIL)) != NULL) {
PSOUT ("* SORT");
for (sl = slst; *sl; sl++) {
PBOUT (' ');
@@ -825,7 +825,7 @@ int main (int argc,char *argv[])
uidmax (stream),0)) response = badatt;
else if (arg && *arg) response = badarg;
else {
- if (thr = mail_thread (stream,s,cs,spg,uid ? SE_UID : NIL)) {
+ if ((thr = mail_thread (stream,s,cs,spg,uid ? SE_UID : NIL)) != NULL) {
PSOUT ("* THREAD ");
pthread (thr);
mail_free_threadnode (&thr);
@@ -903,7 +903,7 @@ int main (int argc,char *argv[])
((arg[6] == 'T') || (arg[6] == 't')) &&
(arg[7] == ' ')) {
arg += 8; /* yes, skip over CHARSET token */
- if (s = snarf (&arg)) charset = cpystr (s);
+ if ((s = snarf (&arg)) != NULL) charset = cpystr (s);
else break; /* missing character set */
}
/* must have arguments here */
@@ -1049,7 +1049,7 @@ int main (int argc,char *argv[])
/* copy and tie off */
strncpy (tmp,t,i)[i] = '\0';
/* nuke any trailing newline */
- if (t = strpbrk (tmp,"\r\n")) *t = '\0';
+ if ((t = strpbrk (tmp,"\r\n")) != NULL) *t = '\0';
/* try to open proxy */
if ((tstream = mail_open (NIL,tmp,f | OP_SILENT)) &&
(response == win) && tstream->nmsgs) {
@@ -1216,7 +1216,7 @@ int main (int argc,char *argv[])
PSOUT (t);
CRLF;
}
- } while (t = strtok_r (NIL," ",&sstate));
+ } while ((t = strtok_r (NIL," ",&sstate)) != NULL);
ping_mailbox (uid); /* in case the fool did STATUS on open mbx */
PFLUSH (); /* make sure stdout is dumped in case slave */
if (!compare_cstring (s,"INBOX")) s = "INBOX";
@@ -1301,7 +1301,7 @@ int main (int argc,char *argv[])
PARAMETER *p;
PSOUT ("* NAMESPACE");
if (ns) for (i = 0; i < 3; i++) {
- if (n = ns[i]) {
+ if ((n = ns[i]) != NULL) {
PSOUT (" (");
do {
PBOUT ('(');
@@ -1321,16 +1321,16 @@ int main (int argc,char *argv[])
break;
}
/* NAMESPACE extensions are hairy */
- if (p = n->param) do {
+ if ((p = n->param) != NULL) do {
PBOUT (' ');
pstring (p->attribute);
PSOUT (" (");
do pstring (p->value);
while (p->next && !p->next->attribute && (p = p->next));
PBOUT (')');
- } while (p = p->next);
+ } while ((p = p->next) != NULL);
PBOUT (')');
- } while (n = n->next);
+ } while ((n = n->next) != NULL);
PBOUT (')');
}
else PSOUT (" NIL");
@@ -1464,7 +1464,7 @@ int main (int argc,char *argv[])
clearerr (stdin); /* clear stdin errors */
status = "discarding unread literal";
/* read literal and discard it */
- while (i = (litplus.size > MAILTMPLEN) ? MAILTMPLEN : litplus.size) {
+ while ((i = (litplus.size > MAILTMPLEN) ? MAILTMPLEN : litplus.size) != 0L){
if (state == LOGOUT) litplus.size = 0;
else {
settimeout (INPUTTIMEOUT);
@@ -1479,7 +1479,7 @@ int main (int argc,char *argv[])
/* get new command tail */
slurp (tmp,MAILTMPLEN,INPUTTIMEOUT);
/* locate end of line */
- if (t = strchr (tmp,'\012')) {
+ if ((t = strchr (tmp,'\012')) != NULL) {
/* back over CR */
if ((t > tmp) && (t[-1] == '\015')) --t;
*t = NIL; /* tie off CRLF */
@@ -1583,7 +1583,7 @@ int main (int argc,char *argv[])
syslog (LOG_INFO,"%s user=%.80s host=%.80s",logout,
user ? (char *) user : "???",tcp_clienthost ());
/* do logout hook if needed */
- if (lgoh = (logouthook_t) mail_parameters (NIL,GET_LOGOUTHOOK,NIL))
+ if ((lgoh = (logouthook_t) mail_parameters (NIL,GET_LOGOUTHOOK,NIL)) != NULL)
(*lgoh) (mail_parameters (NIL,GET_LOGOUTDATA,NIL));
_exit (ret); /* all done */
return ret; /* stupid compilers */
@@ -2134,7 +2134,7 @@ unsigned char *parse_astring (unsigned char **arg,unsigned long *size,
(*t > ' ') && (*t < 0x7f) && (*t != '(') && (*t != ')') &&
(*t != '{') && (*t != '%') && (*t != '*') && (*t != '"') &&
(*t != '\\'); ++t,++i);
- if (*size = i) break; /* got atom if non-empty */
+ if ((*size = i) != 0L) break; /* got atom if non-empty */
case ')': case '%': case '*': case '\\': case '\0': case ' ':
return NIL; /* empty atom is a bogon */
case '"': /* hunt for trailing quote */
@@ -2192,7 +2192,7 @@ unsigned char *parse_astring (unsigned char **arg,unsigned long *size,
}
break;
}
- if (*del = *t) { /* have a delimiter? */
+ if ((*del = *t) != '\0') { /* have a delimiter? */
*t++ = '\0'; /* yes, stomp on it */
*arg = t; /* update argument pointer */
}
@@ -2291,7 +2291,7 @@ unsigned char *snarf_list (unsigned char **arg)
for (s = t = *arg, i = 0;
(*t > ' ') && (*t != '(') && (*t != ')') && (*t != '{') &&
(*t != '"') && (*t != '\\'); ++t,++i);
- if (c = *t) { /* have a delimiter? */
+ if ((c = *t) != '\0') { /* have a delimiter? */
*t++ = '\0'; /* stomp on it */
*arg = t; /* update argument pointer */
}
@@ -2333,7 +2333,7 @@ STRINGLIST *parse_stringlist (unsigned char **s,int *list)
/* must be end of list */
if (c != ')') mail_free_stringlist (&ret);
}
- if (t = *s) { /* need to reload strtok state? */
+ if ((t = *s) != '\0') { /* need to reload strtok state? */
/* end of a list? */
if (*list && (*t == ')') && !t[1]) *list = NIL;
else sstate = t; /* otherwise reset strtok state to s */
@@ -2757,9 +2757,9 @@ void fetch_work (char *t,unsigned long uid,fetchfn_t f[],void *fa[])
else if (!strcmp (t,"FULL"))
strcpy (t,"(FLAGS INTERNALDATE RFC822.SIZE ENVELOPE BODY)");
else if (!strcmp (t,"FAST")) strcpy (t,"(FLAGS INTERNALDATE RFC822.SIZE)");
- if (list = (*t == '(')) t++; /* skip open paren */
+ if ((list = (*t == '(')) != 0) t++; /* skip open paren */
/* parse attribute list */
- if (s = strtok_r (t," ",&sstate)) do {
+ if ((s = strtok_r (t," ",&sstate)) != NULL) do {
if (list && (i = strlen (s)) && (s[i-1] == ')')) {
list = NIL; /* done with list */
s[i-1] = '\0'; /* tie off last item */
@@ -3080,7 +3080,7 @@ void fetch_body_part_binary (unsigned long i,void *args)
/* what encoding was used? */
if (body) switch (body->encoding) {
case ENCBASE64:
- if (cst.data = rfc822_base64 (st.data,st.size,&cst.size)) break;
+ if ((cst.data = rfc822_base64 (st.data,st.size,&cst.size)) != NULL) break;
fetch_uid (i,NIL); /* wrote a space, so must do something */
if (lsterr) fs_give ((void **) &lsterr);
lsterr = cpystr ("Undecodable BASE64 contents");
@@ -3088,7 +3088,7 @@ void fetch_body_part_binary (unsigned long i,void *args)
fs_give ((void **) &tmp);
return;
case ENCQUOTEDPRINTABLE:
- if (cst.data = rfc822_qprint (st.data,st.size,&cst.size)) break;
+ if ((cst.data = rfc822_qprint (st.data,st.size,&cst.size)) != NULL) break;
fetch_uid (i,NIL); /* wrote a space, so must do something */
if (lsterr) fs_give ((void **) &lsterr);
lsterr = cpystr ("Undecodable QUOTED-PRINTABLE contents");
@@ -3284,8 +3284,8 @@ void fetch_flags (unsigned long i,void *args)
if (elt->flagged) put_flag (&c,"\\Flagged");
if (elt->answered) put_flag (&c,"\\Answered");
if (elt->draft) put_flag (&c,"\\Draft");
- if (u = elt->user_flags) do /* any user flags? */
- if (t = stream->user_flags[find_rightmost_bit (&u)]) put_flag (&c,t);
+ if ((u = elt->user_flags) != 0L) do /* any user flags? */
+ if ((t = stream->user_flags[find_rightmost_bit (&u)]) != NULL) put_flag (&c,t);
while (u); /* until no more user flags */
PBOUT (')'); /* end of flags */
elt->spare2 = NIL; /* we've sent the update */
@@ -3478,7 +3478,7 @@ void pbodystructure (BODY *body)
/* multipart type? */
if (body->type == TYPEMULTIPART) {
/* print each part */
- if (part = body->nested.part)
+ if ((part = body->nested.part) != NULL)
for (; part; part = part->next) pbodystructure (&(part->body));
else pbodystructure (NIL);
PBOUT (' '); /* space delimiter */
@@ -3563,7 +3563,7 @@ void pbody (BODY *body)
/* multipart type? */
if (body->type == TYPEMULTIPART) {
/* print each part */
- if (part = body->nested.part)
+ if ((part = body->nested.part) != NULL)
for (; part; part = part->next) pbody (&(part->body));
else pbody (NIL);
PBOUT (' '); /* space delimiter */
@@ -3617,7 +3617,7 @@ void pparam (PARAMETER *param)
pstring (param->attribute);
PBOUT (' ');
pstring (param->value);
- if (param = param->next) PBOUT (' ');
+ if ((param = param->next) != NULL) PBOUT (' ');
} while (param);
PBOUT (')'); /* end of parameters */
}
@@ -3643,7 +3643,7 @@ void paddr (ADDRESS *a)
PBOUT (' ');
pnstring (a->host); /* domain name of mailbox's host */
PBOUT (')'); /* terminate address */
- } while (a = a->next); /* until end of address */
+ } while ((a = a->next) != NULL); /* until end of address */
PBOUT (')'); /* close address list */
}
else PSOUT ("NIL"); /* empty address */
@@ -3662,7 +3662,7 @@ void pset (SEARCHSET **set)
PBOUT (':');
pnum (cur->last);
}
- if (cur = cur->next) PBOUT (',');
+ if ((cur = cur->next) != NULL) PBOUT (',');
}
mail_free_searchset (set); /* flush set */
}
@@ -3802,7 +3802,7 @@ void pastringlist (STRINGLIST *s)
do {
psizedastring (&s->text); /* output list member */
if (s->next) PBOUT (' ');
- } while (s = s->next);
+ } while ((s = s->next) != NULL);
PBOUT (')'); /* terminate list */
}
@@ -3819,7 +3819,7 @@ void pnstringorlist (STRINGLIST *s)
do { /* output list member */
psizedstring (&s->text,NIL);
if (s->next) PBOUT (' ');
- } while (s = s->next);
+ } while ((s = s->next) != NULL);
PBOUT (')'); /* terminate list */
}
/* and single-element list as string */
@@ -3877,7 +3877,7 @@ void ptext (SIZEDTEXT *txt,STRING *st)
{
unsigned char c,*s;
unsigned long i = txt->size;
- if (s = txt->data) while (i && ((PBOUT ((c = *s++) ? c : 0x80) != EOF))) --i;
+ if ((s = txt->data) != NULL) while (i && ((PBOUT ((c = *s++) ? c : 0x80) != EOF))) --i;
else if (st) while (i && (PBOUT ((c = SNX (st)) ? c : 0x80) != EOF)) --i;
/* failed to complete? */
if (i) ioerror (stdout,"writing text");
@@ -3894,7 +3894,7 @@ void pthread (THREADNODE *thr)
PBOUT ('('); /* open branch */
if (thr->num) { /* first node message number */
pnum (thr->num);
- if (t = thr->next) { /* any subsequent nodes? */
+ if ((t = thr->next) != NULL) { /* any subsequent nodes? */
PBOUT (' ');
while (t) { /* for each subsequent node */
if (t->branch) { /* branches? */
@@ -3947,7 +3947,7 @@ void pcapability (long flag)
}
if (flag <= 0) { /* want pre-authentication capabilities? */
PSOUT (" SASL-IR LOGIN-REFERRALS");
- if (s = ssl_start_tls (NIL)) fs_give ((void **) &s);
+ if ((s = ssl_start_tls (NIL)) != NULL) fs_give ((void **) &s);
else PSOUT (" STARTTLS");
/* disable plaintext */
if (!(i = !mail_parameters (NIL,GET_DISABLEPLAINTEXT,NIL)))
@@ -4142,7 +4142,7 @@ long proxycopy (MAILSTREAM *stream,char *sequence,char *mailbox,long options)
if (lsterr) fs_give ((void **) &lsterr);
/* c-client clobbers sequence, use spare */
for (i = 1,j = 0,set = mail_newsearchset (); i <= nmsgs; i++)
- if (mail_elt (stream,i)->spare = mail_elt (stream,i)->sequence) {
+ if ((mail_elt (stream,i)->spare = mail_elt (stream,i)->sequence) != 0L) {
mail_append_set (set,mail_uid (stream,i));
if (!j) md.msgno = (j = i) - 1;
}
@@ -4197,7 +4197,7 @@ long proxy_append (MAILSTREAM *stream,void *data,char **flags,char **date,
if (elt->flagged) strcat (s," \\Flagged");
if (elt->answered) strcat (s," \\Answered");
if (elt->draft) strcat (s," \\Draft");
- if (i = elt->user_flags) do
+ if ((i = elt->user_flags) != 0L) do
if ((t = md->stream->user_flags[find_rightmost_bit (&i)]) && *t &&
(strlen (t) < ((size_t) (MAILTMPLEN-((s += strlen (s))+2-tmp))))) {
*s++ = ' '; /* space delimiter */
@@ -4229,9 +4229,9 @@ long append_msg (MAILSTREAM *stream,void *data,char **flags,char **date,
APPENDDATA *ad = (APPENDDATA *) data;
unsigned char *arg = ad->arg;
/* flush text of previous message */
- if (t = ad->flags) fs_give ((void **) &ad->flags);
- if (t = ad->date) fs_give ((void **) &ad->date);
- if (t = ad->msg) fs_give ((void **) &ad->msg);
+ if ((t = ad->flags) != NULL) fs_give ((void **) &ad->flags);
+ if ((t = ad->date) != NULL) fs_give ((void **) &ad->date);
+ if ((t = ad->msg) != NULL) fs_give ((void **) &ad->msg);
*flags = *date = NIL; /* assume no flags or date */
if (t) { /* have previous message? */
if (!*arg) { /* if least one message, and no more coming */
diff --git a/imap/src/ipopd/ipop2d.c b/imap/src/ipopd/ipop2d.c
index 14cbe52f..58d4d2d5 100644
--- a/imap/src/ipopd/ipop2d.c
+++ b/imap/src/ipopd/ipop2d.c
@@ -296,7 +296,7 @@ short c_helo (char *t,int argc,char *argv[])
pass = cpystr (tmp);
if (!(s = strchr (u,':'))) { /* want remote mailbox? */
/* no, delimit user from possible admin */
- if (s = strchr (u,'*')) *s++ = '\0';
+ if ((s = strchr (u,'*')) != NULL) *s++ = '\0';
if (server_login (user = cpystr (u),pass,s,argc,argv)) {
syslog (LOG_INFO,"%sLogin user=%.80s host=%.80s",s ? "Admin " : "",
user,tcp_clienthost ());
@@ -355,7 +355,7 @@ short c_fold (char *t)
}
#endif
/* open mailbox, note # of messages */
- if (j = (stream = mail_open (stream,t,NIL)) ? stream->nmsgs : 0) {
+ if ((j = (stream = mail_open (stream,t,NIL)) ? stream->nmsgs : 0) != 0L){
sprintf (tmp,"1:%lu",j); /* fetch fast information for all messages */
mail_fetch_fast (stream,tmp,NIL);
msg = (unsigned long *) fs_get ((stream->nmsgs + 1) *
@@ -429,7 +429,7 @@ short c_retr (char *t)
}
fputs (status,stdout); /* yes, output message */
fputs ("\015\012",stdout); /* delimit header from text */
- if (t = mail_fetch_text (stream,msg[current],NIL,&i,FT_RETURNSTRINGSTRUCT))
+ if ((t = mail_fetch_text (stream,msg[current],NIL,&i,FT_RETURNSTRINGSTRUCT)) != NULL)
while (i) { /* blat the text */
if (!(j = fwrite (t,sizeof (char),i,stdout))) return DONE;
if (i -= j) t += j; /* advance to incomplete data */
diff --git a/imap/src/ipopd/ipop3d.c b/imap/src/ipopd/ipop3d.c
index 41dd96a6..9cb8bffc 100644
--- a/imap/src/ipopd/ipop3d.c
+++ b/imap/src/ipopd/ipop3d.c
@@ -192,9 +192,9 @@ int main (int argc,char *argv[])
AUTHENTICATOR *auth;
PSOUT ("+OK Capability list follows:\015\012");
PSOUT ("TOP\015\012LOGIN-DELAY 180\015\012UIDL\015\012");
- if (s = ssl_start_tls (NIL)) fs_give ((void **) &s);
+ if ((s = ssl_start_tls (NIL)) != NULL) fs_give ((void **) &s);
else PSOUT ("STLS\015\012");
- if (i = !mail_parameters (NIL,GET_DISABLEPLAINTEXT,NIL))
+ if ((i = !mail_parameters (NIL,GET_DISABLEPLAINTEXT,NIL)) != 0L)
PSOUT ("USER\015\012");
/* display secure server authenticators */
for (auth = mail_lookup_auth (1), s = "SASL"; auth; auth = auth->next)
@@ -219,7 +219,7 @@ int main (int argc,char *argv[])
if (pass) fs_give ((void **) &pass);
s = strtok (t," "); /* get mechanism name */
/* get initial response */
- if (initial = strtok (NIL,"\015\012")) {
+ if ((initial = strtok (NIL,"\015\012")) != NULL) {
if ((*initial == '=') && !initial[1]) ++initial;
else if (!*initial) initial = NIL;
}
@@ -272,7 +272,7 @@ int main (int argc,char *argv[])
else if (!strcmp (s,"RPOP"))
PSOUT ("-ERR Nice try, bunkie\015\012");
else if (!strcmp (s,"STLS")) {
- if (t = ssl_start_tls (pgmname)) {
+ if ((t = ssl_start_tls (pgmname)) != NULL) {
PSOUT ("-ERR STLS failed: ");
PSOUT (t);
CRLF;
@@ -288,7 +288,7 @@ int main (int argc,char *argv[])
/* skip leading whitespace (bogus clients!) */
while (*t == ' ') ++t;
/* remote user name? */
- if (s = strchr (t,':')) {
+ if ((s = strchr (t,':')) != NULL) {
*s++ = '\0'; /* tie off host name */
host = cpystr (t);/* copy host name */
user = cpystr (s);/* copy user name */
@@ -661,7 +661,7 @@ int pass_login (char *t,int argc,char *argv[])
pass = cpystr (t); /* copy password argument */
if (!host) { /* want remote mailbox? */
/* no, delimit user from possible admin */
- if (t = strchr (user,'*')) *t++ ='\0';
+ if ((t = strchr (user,'*')) != NULL) *t++ ='\0';
/* attempt the login */
if (server_login (user,pass,t,argc,argv)) {
int ret = mbxopen ("INBOX");
@@ -777,7 +777,7 @@ int mbxopen (char *mailbox)
goodbye = "-ERR Can't get lock. Mailbox in use\015\012";
else {
nmsgs = 0; /* no messages yet */
- if (j = stream->nmsgs) { /* if mailbox non-empty */
+ if ((j = stream->nmsgs) != 0L) { /* if mailbox non-empty */
sprintf (tmp,"1:%lu",j); /* fetch fast information for all messages */
mail_fetch_fast (stream,tmp,NIL);
}
diff --git a/imap/src/mailutil/mailutil.c b/imap/src/mailutil/mailutil.c
index cb62290a..2966a59f 100644
--- a/imap/src/mailutil/mailutil.c
+++ b/imap/src/mailutil/mailutil.c
@@ -284,8 +284,8 @@ int main (int argc,char *argv[])
else if ((i = !strcmp (cmd,"move")) || !strcmp (cmd,"copy")) {
if (!src || !dst || merge) printf (usage3,pgm,cmd,usgcpymov,stdsw);
- else if (source = mail_open (NIL,src,((i || rwcopyp) ? NIL : OP_READONLY) |
- (debugp ? OP_DEBUG : NIL))) {
+ else if ((source = mail_open (NIL,src,((i || rwcopyp) ? NIL : OP_READONLY) |
+ (debugp ? OP_DEBUG : NIL))) != NULL) {
dest = NIL; /* open destination stream if network */
if ((*dst != '{') || (dest = mail_open (NIL,dst,OP_HALFOPEN |
(debugp ? OP_DEBUG : NIL)))) {
@@ -295,8 +295,8 @@ int main (int argc,char *argv[])
}
else if ((i = !strcmp (cmd,"appenddelete")) || !strcmp (cmd,"append")) {
if (!src || !dst || merge) printf (usage3,pgm,cmd,usgappdel,stdsw);
- else if (source = mail_open (NIL,src,((i || rwcopyp) ? NIL : OP_READONLY) |
- (debugp ? OP_DEBUG : NIL))) {
+ else if ((source = mail_open (NIL,src,((i || rwcopyp) ? NIL : OP_READONLY) |
+ (debugp ? OP_DEBUG : NIL))) != NULL) {
dest = NIL; /* open destination stream if network */
if ((*dst != '{') || (dest = mail_open (NIL,dst,OP_HALFOPEN |
(debugp ? OP_DEBUG : NIL)))) {
@@ -376,7 +376,7 @@ int main (int argc,char *argv[])
rewind (f);
/* read back mailbox names */
for (retcode = 0; !retcode && (fgets (tmp,MAILTMPLEN-1,f)); ) {
- if (t = strchr (tmp+1,'\n')) *t = '\0';
+ if ((t = strchr (tmp+1,'\n')) != NULL) *t = '\0';
for (t = mbx,t1 = dest ? dest->mailbox : "",c = NIL; (c != '}') && *t1;
*t++ = c= *t1++);
for (t1 = dp; *t1; *t++ = *t1++);
@@ -384,7 +384,7 @@ int main (int argc,char *argv[])
t1 = source ? (strchr (tmp+1,'}') + 1) : tmp + 1;
/* src and mbx have different delimiters? */
if (ddelim && (ddelim != tmp[0]))
- while (c = *t1++) { /* swap delimiters then */
+ while ((c = *t1++) != '\0') { /* swap delimiters then */
if (c == ddelim) c = tmp[0] ? tmp[0] : 'x';
else if (c == tmp[0]) c = ddelim;
*t++ = c;
@@ -396,8 +396,8 @@ int main (int argc,char *argv[])
printf ("Copying %s\n => %s\n",tmp+1,mbx);
fflush (stdout);
}
- if (source = mail_open (source,tmp+1,(debugp ? OP_DEBUG : NIL) |
- (rwcopyp ? NIL : OP_READONLY))) {
+ if ((source = mail_open (source,tmp+1,(debugp ? OP_DEBUG : NIL) |
+ (rwcopyp ? NIL : OP_READONLY))) != NULL) {
if (!mbxcopy (source,dest,mbx,T,NIL,merge)) retcode = 1;
if (source->dtb->flags & DR_LOCAL) source = mail_close (source);
}
@@ -595,7 +595,7 @@ int mbxcopy (MAILSTREAM *source,MAILSTREAM *dest,char *dst,int create,int del,
fputs ("alternative name: ",stdout);
fflush (stdout);
fgets (tmp,MAILTMPLEN-1,stdin);
- if (s = strchr (tmp,'\n')) *s = '\0';
+ if ((s = strchr (tmp,'\n')) != NULL) *s = '\0';
}
if (ndst) fs_give ((void **) &ndst);
ndst = cpystr (tmp);
@@ -624,7 +624,7 @@ int mbxcopy (MAILSTREAM *source,MAILSTREAM *dest,char *dst,int create,int del,
char *tail = "\\Deleted)";
char *flags = (char *) fs_get (1 + len + strlen (tail) + 1);
s = flags; *s++ = '(';
- for (i = 0; i < NUSERFLAGS; ++i) if (t = source->user_flags[i]) {
+ for (i = 0; i < NUSERFLAGS; ++i) if ((t = source->user_flags[i]) != NULL) {
while (*t) *s++ = *t++;
*s++ = ' ';
}
@@ -895,7 +895,7 @@ void mm_login (NETMBX *mb,char *username,char *password,long trial)
printf ("%s} username: ",tmp);
fgets (username,NETMAXUSER-1,stdin);
username[NETMAXUSER-1] = '\0';
- if (s = strchr (username,'\n')) *s = '\0';
+ if ((s = strchr (username,'\n')) != NULL) *s = '\0';
s = "password: ";
}
if(strlen (s = getpass (s)) < MAILTMPLEN) strcpy (password,s);
diff --git a/imap/src/mlock/mlock.c b/imap/src/mlock/mlock.c
index 1dca40ed..35d6be4d 100644
--- a/imap/src/mlock/mlock.c
+++ b/imap/src/mlock/mlock.c
@@ -32,6 +32,7 @@
#include <sysexits.h>
#include <syslog.h>
#include <grp.h>
+#include <unistd.h>
#include <sys/types.h>
#include <sys/file.h>
#include <sys/stat.h>
@@ -40,6 +41,7 @@
#include <netdb.h>
#include <ctype.h>
#include <string.h>
+#include <time.h>
#define LOCKTIMEOUT 5 /* lock timeout in minutes */
#define LOCKPROTECTION 0664
diff --git a/imap/src/mtest/mtest.c b/imap/src/mtest/mtest.c
index 8e997d0b..018d1bcd 100644
--- a/imap/src/mtest/mtest.c
+++ b/imap/src/mtest/mtest.c
@@ -104,7 +104,7 @@ int main ()
if (pwd) {
strcpy (tmp,pwd->pw_gecos);
/* dyke out the office and phone poop */
- if (suffix = strchr (tmp,',')) suffix[0] = '\0';
+ if ((suffix = strchr (tmp,',')) != NULL) suffix[0] = '\0';
strcpy (personalname,tmp);/* make a permanent copy of it */
}
else personalname[0] = '\0';
@@ -125,10 +125,10 @@ int main ()
puts ("Enter INBOX, mailbox name, or IMAP mailbox as {host}mailbox");
puts ("Known local mailboxes:");
mail_list (NIL,NIL,"%");
- if (s = sm_read (tmpx,&sdb)) {
+ if ((s = sm_read (tmpx,&sdb)) != NULL) {
puts ("Local subscribed mailboxes:");
do (mm_lsub (NIL,NIL,s,NIL));
- while (s = sm_read (tmpx,&sdb));
+ while ((s = sm_read (tmpx,&sdb)) != NULL);
}
puts ("or just hit return to quit");
}
@@ -158,7 +158,7 @@ void mm (MAILSTREAM *stream,long debug)
while (stream) {
prompt ("MTest> ",cmd, sizeof(cmd)); /* prompt user, get command */
/* get argument */
- if (arg = strchr (cmd,' ')) *arg++ = '\0';
+ if ((arg = strchr (cmd,' ')) != NULL) *arg++ = '\0';
switch (*ucase (cmd)) { /* dispatch based on command */
case 'B': /* Body command */
if (arg) last = atoi (arg);
@@ -198,10 +198,10 @@ void mm (MAILSTREAM *stream,long debug)
case 'F': /* Find command */
if (!arg) {
arg = "%";
- if (s = sm_read (tmp,&sdb)) {
+ if ((s = sm_read (tmp,&sdb)) != NULL) {
puts ("Local network subscribed mailboxes:");
do if (*s == '{') (mm_lsub (NIL,NIL,s,NIL));
- while (s = sm_read (tmp,&sdb));
+ while ((s = sm_read (tmp,&sdb)) != NULL);
}
}
puts ("Subscribed mailboxes:");
@@ -398,7 +398,7 @@ void overview_header (MAILSTREAM *stream,unsigned long uid,OVERVIEW *ov,
memcpy (tmp+18,t,(size_t) min (20,(long) strlen (t)));
}
strcat (tmp," ");
- if (i = elt->user_flags) {
+ if ((i = elt->user_flags) != 0L) {
strcat (tmp,"{");
while (i) {
strcat (tmp,stream->user_flags[find_rightmost_bit (&i)]);
@@ -436,7 +436,7 @@ void header (MAILSTREAM *stream,long msgno)
tmp[18] = '\0';
mail_fetchfrom (tmp+18,stream,msgno,(long) 20);
strcat (tmp," ");
- if (i = cache->user_flags) {
+ if ((i = cache->user_flags) != 0L) {
strcat (tmp,"{");
while (i) {
strcat (tmp,stream->user_flags[find_rightmost_bit (&i)]);
@@ -473,9 +473,9 @@ void display_body (BODY *body,char *pfx,long i)
sprintf (s," %s%ld %s",pfx,++i,body_types[body->type]);
if (body->subtype) sprintf (s += strlen (s),"/%s",body->subtype);
if (body->description) sprintf (s += strlen (s)," (%s)",body->description);
- if (par = body->parameter) do
+ if ((par = body->parameter) != NULL) do
sprintf (s += strlen (s),";%s=%s",par->attribute,par->value);
- while (par = par->next);
+ while ((par = par->next) != NULL);
if (body->id) sprintf (s += strlen (s),", id = %s",body->id);
switch (body->type) { /* bytes or lines depending upon body type */
case TYPEMESSAGE: /* encapsulated message */
@@ -530,10 +530,10 @@ void status (MAILSTREAM *stream)
else s = "IMAP2 (RFC 1064)";
printf ("%s server %s\n",s,imap_host (stream));
if (LEVELIMAP4 (stream)) {
- if (i = imap_cap (stream)->auth) {
+ if ((i = imap_cap (stream)->auth) != 0L) {
s = "";
printf ("Mutually-supported SASL mechanisms:");
- while (auth = mail_lookup_auth (find_rightmost_bit (&i) + 1)) {
+ while ((auth = mail_lookup_auth (find_rightmost_bit (&i) + 1)) != NULL) {
printf (" %s",auth->name);
if (!strcmp (auth->name,"PLAIN"))
s = "\n [LOGIN will not be listed here if PLAIN is supported]";
@@ -579,7 +579,7 @@ void status (MAILSTREAM *stream)
putchar ('\n');
}
if (LEVELSCAN (stream)) puts (" Mailbox text scan");
- if (i = imap_cap (stream)->extlevel) {
+ if ((i = imap_cap (stream)->extlevel) != 0L) {
printf ("Supported BODYSTRUCTURE extensions:");
switch (i) {
case BODYEXTLOC: printf (" location");
@@ -719,7 +719,7 @@ void mm_login (NETMBX *mb,char *user,char *pwd,long trial)
printf ("%s} username: ",tmp);
fgets (user,NETMAXUSER-1,stdin);
user[NETMAXUSER-1] = '\0';
- if (s = strchr (user,'\n')) *s = '\0';
+ if ((s = strchr (user,'\n')) != NULL) *s = '\0';
s = "password: ";
}
if (curusr) fs_give ((void **) &curusr);
@@ -810,14 +810,14 @@ void smtptest (long debug)
strcpy (msg->date,line);
if (msg->to) {
puts ("Sending...");
- if (stream = smtp_open (hostlist,debug)) {
+ if ((stream = smtp_open (hostlist,debug)) != NULL) {
if (smtp_mail (stream,"MAIL",msg,body)) puts ("[Ok]");
else printf ("[Failed - %s]\n",stream->reply);
}
}
else {
puts ("Posting...");
- if (stream = nntp_open (newslist,debug)) {
+ if ((stream = nntp_open (newslist,debug)) != NULL) {
if (nntp_mail (stream,msg,body)) puts ("[Ok]");
else printf ("[Failed - %s]\n",stream->reply);
}
diff --git a/imap/src/osdep/unix/dummy.c b/imap/src/osdep/unix/dummy.c
index cb3b45bd..07ed4618 100644
--- a/imap/src/osdep/unix/dummy.c
+++ b/imap/src/osdep/unix/dummy.c
@@ -156,7 +156,7 @@ void dummy_scan (MAILSTREAM *stream,char *ref,char *pat,char *contents)
if (!pat || !*pat) { /* empty pattern? */
if (dummy_canonicalize (test,ref,"*")) {
/* tie off name at root */
- if (s = strchr (test,'/')) *++s = '\0';
+ if ((s = strchr (test,'/')) != NULL) *++s = '\0';
else test[0] = '\0';
dummy_listed (stream,'/',test,LATT_NOSELECT,NIL);
}
@@ -164,13 +164,13 @@ void dummy_scan (MAILSTREAM *stream,char *ref,char *pat,char *contents)
/* get canonical form of name */
else if (dummy_canonicalize (test,ref,pat)) {
/* found any wildcards? */
- if (s = strpbrk (test,"%*")) {
+ if ((s = strpbrk (test,"%*")) != NULL) {
/* yes, copy name up to that point */
strncpy (file,test,i = s - test);
file[i] = '\0'; /* tie off */
}
else strcpy (file,test); /* use just that name then */
- if (s = strrchr (file,'/')){/* find directory name */
+ if ((s = strrchr (file,'/')) != NULL){/* find directory name */
*++s = '\0'; /* found, tie off at that point */
s = file;
}
@@ -228,7 +228,7 @@ void dummy_lsub (MAILSTREAM *stream,char *ref,char *pat)
}
}
/* until no more subscriptions */
- while (s = sm_read (tmpx,&sdb));
+ while ((s = sm_read (tmpx,&sdb)) != NULL);
}
@@ -277,7 +277,7 @@ void dummy_list_work (MAILSTREAM *stream,char *dir,char *pat,char *contents,
size_t len = 0;
/* punt if bogus name */
if (!mailboxdir (tmp,dir,NIL)) return;
- if (dp = opendir (tmp)) { /* do nothing if can't open directory */
+ if ((dp = opendir (tmp)) != NULL) { /* do nothing if can't open directory */
/* see if a non-namespace directory format */
for (drivers = (DRIVER *) mail_parameters (NIL,GET_DRIVERS,NIL), dt = NIL;
dir && !dt && drivers; drivers = drivers->next)
@@ -289,7 +289,7 @@ void dummy_list_work (MAILSTREAM *stream,char *dir,char *pat,char *contents,
dummy_listed (stream,'/',dir,dt ? NIL : LATT_NOSELECT,contents);
/* scan directory, ignore . and .. */
- if (!dir || dir[(len = strlen (dir)) - 1] == '/') while (d = readdir (dp))
+ if (!dir || dir[(len = strlen (dir)) - 1] == '/') while ((d = readdir (dp)) != NULL)
if ((!(dt && (*dt) (d->d_name))) &&
((d->d_name[0] != '.') ||
(((long) mail_parameters (NIL,GET_HIDEDOTFILES,NIL)) ? NIL :
@@ -480,7 +480,7 @@ long dummy_create_path (MAILSTREAM *stream,char *path,long dirmode)
int wantdir = t && !t[1];
int mask = umask (0);
if (wantdir) *t = '\0'; /* flush trailing delimiter for directory */
- if (s = strrchr (path,'/')) { /* found superior to this name? */
+ if ((s = strrchr (path,'/')) != NULL) { /* found superior to this name? */
c = *++s; /* remember first character of inferior */
*s = '\0'; /* tie off to get just superior */
/* name doesn't exist, create it */
@@ -798,7 +798,7 @@ long dummy_canonicalize (char *tmp,char *ref,char *pat)
else return NIL; /* unknown namespace */
}
/* count wildcards */
- for (i = 0, s = tmp; *s; *s++) if ((*s == '*') || (*s == '%')) ++i;
+ for (i = 0, s = tmp; *s; s++) if ((*s == '*') || (*s == '%')) ++i;
if (i > MAXWILDCARDS) { /* ridiculous wildcarding? */
MM_LOG ("Excessive wildcards in LIST/LSUB",ERROR);
return NIL;
diff --git a/imap/src/osdep/unix/env_unix.c b/imap/src/osdep/unix/env_unix.c
index d1bb1f02..89e50921 100644
--- a/imap/src/osdep/unix/env_unix.c
+++ b/imap/src/osdep/unix/env_unix.c
@@ -514,7 +514,7 @@ static void do_date (char *date,char *prefix,char *fmt,int suffix)
* -1 local time is 1 day behind UTC, offset -24 hours
* -36x local time is January 1, UTC is December 31, offset +24 hours
*/
- if (julian = t->tm_yday -julian)
+ if ((julian = t->tm_yday -julian) != 0)
zone += ((julian < 0) == (abs (julian) == 1)) ? -24*60 : 24*60;
if (prefix) { /* want day of week? */
sprintf (date,prefix,days[t->tm_wday]);
@@ -672,14 +672,14 @@ static struct passwd *valpwd (char *user,char *pwd,int argc,char *argv[])
struct passwd *pw;
struct passwd *ret = NIL;
if (auth_md5.server) { /* using CRAM-MD5 authentication? */
- if (s = auth_md5_pwd (user)) {
+ if ((s = auth_md5_pwd (user)) != NULL) {
if (!strcmp (s,pwd) || ((*pwd == ' ') && pwd[1] && !strcmp (s,pwd+1)))
ret = pwuser (user); /* validated, get passwd entry for user */
memset (s,0,strlen (s)); /* erase sensitive information */
fs_give ((void **) &s);
}
}
- else if (pw = pwuser (user)) {/* can get user? */
+ else if ((pw = pwuser (user)) != NULL) {/* can get user? */
s = cpystr (pw->pw_name); /* copy returned name in case we need it */
if (*pwd && !(ret = checkpw (pw,pwd,argc,argv)) &&
(*pwd == ' ') && pwd[1] && (ret = pwuser (s)))
@@ -1257,7 +1257,7 @@ long dotlock_lock (char *file,DOTLOCK *base,int fd)
MM_NOCRITICAL (NIL); /* no longer critical */
/* find directory/file delimiter */
- if (s = strrchr (base->lock,'/')) {
+ if ((s = strrchr (base->lock,'/')) != NULL) {
*s = '\0'; /* tie off at directory */
sprintf(tmp, /* generate default message */
"Mailbox vulnerable - directory %.80s must have 1777 protection",
@@ -1588,7 +1588,7 @@ void dorc (char *file,long flag)
if (!compare_cstring (s,"set new-mailbox-format") ||
!compare_cstring (s,"set new-folder-format")) {
if (!compare_cstring (k,"same-as-inbox")) {
- if (d = mail_valid (NIL,"INBOX",NIL)) {
+ if ((d = mail_valid (NIL,"INBOX",NIL)) != NULL) {
if (!compare_cstring (d->name,"mbox"))
d = (DRIVER *) mail_parameters (NIL,GET_DRIVER,
(void *) "unix");
@@ -1601,7 +1601,7 @@ void dorc (char *file,long flag)
else { /* canonicalize mbox to unix */
if (!compare_cstring (k,"mbox")) k = "unix";
/* see if a driver name */
- if (d = (DRIVER *) mail_parameters (NIL,GET_DRIVER,(void *) k))
+ if ((d = (DRIVER *) mail_parameters (NIL,GET_DRIVER,(void *) k)) != NULL)
createProto = (*d->open) (NIL);
else { /* duh... */
sprintf (tmpx,"Unknown new mailbox format in %s: %s",
diff --git a/imap/src/osdep/unix/fdstring.c b/imap/src/osdep/unix/fdstring.c
index 7a491f7d..207e4d0b 100644
--- a/imap/src/osdep/unix/fdstring.c
+++ b/imap/src/osdep/unix/fdstring.c
@@ -91,7 +91,7 @@ static void fd_string_setpos (STRING *s,unsigned long i)
s->offset = i; /* set new offset */
s->curpos = s->chunk; /* reset position */
/* set size of data */
- if (s->cursize = min (s->chunksize,SIZE (s))) {
+ if ((s->cursize = min (s->chunksize,SIZE (s))) != 0L) {
/* move to that position in the file */
lseek ((long) s->data,s->data1 + s->offset,L_SET);
read ((long) s->data,s->curpos,(size_t) s->cursize);
diff --git a/imap/src/osdep/unix/mbx.c b/imap/src/osdep/unix/mbx.c
index dc902b20..18c4fa20 100644
--- a/imap/src/osdep/unix/mbx.c
+++ b/imap/src/osdep/unix/mbx.c
@@ -477,7 +477,7 @@ long mbx_rename (MAILSTREAM *stream,char *old,char *newname)
if (newname) { /* want rename? */
/* found superior to destination name? */
- if (s = strrchr (tmp,'/')) {
+ if ((s = strrchr (tmp,'/')) != NULL) {
c = *++s; /* remember first character of inferior */
*s = '\0'; /* tie off to get just superior */
/* superior name doesn't exist, create it */
@@ -822,11 +822,11 @@ long mbx_ping (MAILSTREAM *stream)
/* reparse header if not flagchecking */
if (!LOCAL->flagcheck) ret = mbx_parse (stream);
/* sweep mailbox for changed message status */
- else if (ret = mbx_parse (stream)) {
+ else if ((ret = mbx_parse (stream)) != 0L) {
unsigned long recent = 0;
LOCAL->filetime = sbuf.st_mtime;
for (i = 1; i <= stream->nmsgs; )
- if (elt = mbx_elt (stream,i,LOCAL->expok)) {
+ if ((elt = mbx_elt (stream,i,LOCAL->expok)) != NULL) {
if (elt->recent) ++recent;
++i;
}
@@ -885,14 +885,14 @@ long mbx_expunge (MAILSTREAM *stream,char *sequence,long options)
{
long ret;
unsigned long nexp,reclaimed;
- if (ret = sequence ? ((options & EX_UID) ?
+ if ((ret = sequence ? ((options & EX_UID) ?
mail_uid_sequence (stream,sequence) :
- mail_sequence (stream,sequence)) : LONGT) {
+ mail_sequence (stream,sequence)) : LONGT) != 0L) {
if (!mbx_ping (stream)); /* do nothing if stream dead */
else if (stream->rdonly) /* won't do on readonly files! */
MM_LOG ("Expunge ignored on readonly mailbox",WARN);
/* if expunged any messages */
- else if (nexp = mbx_rewrite (stream,&reclaimed,sequence ? -1 : 1)) {
+ else if ((nexp = mbx_rewrite (stream,&reclaimed,sequence ? -1 : 1)) != 0L){
sprintf (LOCAL->buf,"Expunged %lu messages",nexp);
MM_LOG (LOCAL->buf,(long) NIL);
}
@@ -935,7 +935,7 @@ void mbx_snarf (MAILSTREAM *stream)
hdr = cpystr (mail_fetchheader_full (sysibx,i,NIL,&hdrlen,NIL));
txt = mail_fetchtext_full (sysibx,i,&txtlen,FT_PEEK);
/* if have a message */
- if (j = hdrlen + txtlen) {
+ if ((j = hdrlen + txtlen) != 0L){
/* build header line */
mail_date (LOCAL->buf,elt = mail_elt (sysibx,i));
sprintf (LOCAL->buf + strlen (LOCAL->buf),
@@ -1032,7 +1032,7 @@ long mbx_copy (MAILSTREAM *stream,char *sequence,char *mailbox,long options)
mail_date(LOCAL->buf,elt);/* build target header */
/* get target keyword mask */
for (j = elt->user_flags, k = 0; j; )
- if (s = stream->user_flags[find_rightmost_bit (&j)])
+ if ((s = stream->user_flags[find_rightmost_bit (&j)]) != NULL)
for (m = 0; (m < NUSERFLAGS) && (t = dstream->user_flags[m]); m++)
if (!compare_cstring (s,t) && (k |= 1 << m)) break;
sprintf (LOCAL->buf+strlen(LOCAL->buf),",%lu;%08lx%04x-%08lx\015\012",
@@ -1041,7 +1041,7 @@ long mbx_copy (MAILSTREAM *stream,char *sequence,char *mailbox,long options)
(fFLAGGED * elt->flagged) + (fANSWERED * elt->answered) +
(fDRAFT * elt->draft)),cu ? ++dstream->uid_last : 0);
/* write target header */
- if (ret = (write (fd,LOCAL->buf,strlen (LOCAL->buf)) > 0)) {
+ if ((ret = (write (fd,LOCAL->buf,strlen (LOCAL->buf)) > 0)) != 0L) {
for (k = elt->rfc822_size; ret && (j = min (k,LOCAL->buflen)); k -= j){
read (LOCAL->fd,LOCAL->buf,j);
ret = write (fd,LOCAL->buf,j) >= 0;
@@ -1641,7 +1641,7 @@ unsigned long mbx_hdrpos (MAILSTREAM *stream,unsigned long msgno,
elt->private.special.text.size;
if (hdr) *hdr = NIL; /* assume no header returned */
/* is header size known? */
- if (*size = elt->private.msg.header.text.size) return ret;
+ if ((*size = elt->private.msg.header.text.size) != 0L) return ret;
/* paranoia check */
if (LOCAL->buflen < (HDRBUFLEN + SLOP))
fatal ("LOCAL->buf smaller than HDRBUFLEN");
@@ -1733,7 +1733,7 @@ unsigned long mbx_rewrite (MAILSTREAM *stream,unsigned long *reclaimed,
MM_CRITICAL (stream); /* go critical */
for (i = 1,delta = 0,pos = ppos = HDRSIZE; i <= stream->nmsgs; ) {
/* note if message not at predicted location */
- if (m = (elt = mbx_elt (stream,i,NIL))->private.special.offset - ppos) {
+ if ((m = (elt = mbx_elt (stream,i,NIL))->private.special.offset - ppos) != 0L) {
ppos = elt->private.special.offset;
*reclaimed += m; /* note reclaimed message space */
delta += m; /* and as expunge delta */
@@ -1773,7 +1773,7 @@ unsigned long mbx_rewrite (MAILSTREAM *stream,unsigned long *reclaimed,
}
}
/* deltaed file size match position? */
- if (m = (LOCAL->filesize -= delta) - pos) {
+ if ((m = (LOCAL->filesize -= delta) - pos) != 0L) {
*reclaimed += m; /* probably an fEXPUNGED msg */
LOCAL->filesize = pos; /* set correct size */
}
@@ -1792,7 +1792,7 @@ unsigned long mbx_rewrite (MAILSTREAM *stream,unsigned long *reclaimed,
(*bn) (BLOCK_NONE,NIL);
/* do hide-expunge when shared */
if (flags) for (i = 1; i <= stream->nmsgs; ) {
- if (elt = mbx_elt (stream,i,T)) {
+ if ((elt = mbx_elt (stream,i,T)) != NULL) {
/* make the message invisible */
if (elt->deleted && ((flags > 0) || elt->sequence)) {
mbx_update_status (stream,elt->msgno,LONGT);
diff --git a/imap/src/osdep/unix/mh.c b/imap/src/osdep/unix/mh.c
index 005000d6..ac71b6ba 100644
--- a/imap/src/osdep/unix/mh.c
+++ b/imap/src/osdep/unix/mh.c
@@ -251,7 +251,7 @@ char *mh_path (char *tmp)
/* parse profile file */
for (s = strtok_r (t,"\r\n",&r); s && *s; s = strtok_r (NIL,"\r\n",&r)) {
/* found space in line? */
- if (v = strpbrk (s," \t")) {
+ if ((v = strpbrk (s," \t")) != NULL) {
*v++ = '\0'; /* tie off, is keyword "Path:"? */
if (!compare_cstring (s,"Path:")) {
/* skip whitespace */
@@ -324,7 +324,7 @@ long mh_dirfmttest (char *s)
if (strcmp (s,MHSEQUENCE) && strcmp (s,MHSEQUENCES)) {
if (*s == MHCOMMA) ++s; /* else comma + all numeric name */
/* success if all-numeric */
- while (c = *s++) if (!isdigit (c)) return NIL;
+ while ((c = *s++) != '\0') if (!isdigit (c)) return NIL;
}
return LONGT;
}
@@ -343,7 +343,7 @@ void mh_scan (MAILSTREAM *stream,char *ref,char *pat,char *contents)
if (!pat || !*pat) { /* empty pattern? */
if (mh_canonicalize (test,ref,"*")) {
/* tie off name at root */
- if (s = strchr (test,'/')) *++s = '\0';
+ if ((s = strchr (test,'/')) != NULL) *++s = '\0';
else test[0] = '\0';
mm_list (stream,'/',test,LATT_NOSELECT);
}
@@ -356,14 +356,14 @@ void mh_scan (MAILSTREAM *stream,char *ref,char *pat,char *contents)
}
if (test[3] == '/') { /* looking down levels? */
/* yes, found any wildcards? */
- if (s = strpbrk (test,"%*")) {
+ if ((s = strpbrk (test,"%*")) != NULL) {
/* yes, copy name up to that point */
strncpy (file,test+4,i = s - (test+4));
file[i] = '\0'; /* tie off */
}
else strcpy (file,test+4);/* use just that name then */
/* find directory name */
- if (s = strrchr (file,'/')) {
+ if ((s = strrchr (file,'/')) != NULL) {
*s = '\0'; /* found, tie off at that point */
s = file;
}
@@ -401,7 +401,7 @@ void mh_lsub (MAILSTREAM *stream,char *ref,char *pat)
/* get canonical form of name */
if (mh_canonicalize (test,ref,pat) && (s = sm_read (tmp,&sdb))) {
do if (pmatch_full (s,test,'/')) mm_lsub (stream,'/',s,NIL);
- while (s = sm_read (tmp,&sdb)); /* until no more subscriptions */
+ while ((s = sm_read (tmp,&sdb)) != NULL); /* until no more subscriptions */
}
}
@@ -425,8 +425,8 @@ void mh_list_work (MAILSTREAM *stream,char *dir,char *pat,long level)
if (!mh_file (curdir,name)) return;
cp = curdir + strlen (curdir);/* end of directory name */
np = name + strlen (name); /* end of MH name */
- if (dp = opendir (curdir)) { /* open directory */
- while (d = readdir (dp)) /* scan, ignore . and numeric names */
+ if ((dp = opendir (curdir)) != NULL) { /* open directory */
+ while ((d = readdir (dp)) != NULL) /* scan, ignore . and numeric names */
if ((d->d_name[0] != '.') && !mh_select (d)) {
strcpy (cp,d->d_name); /* make directory name */
if (!stat (curdir,&sbuf) && ((sbuf.st_mode & S_IFMT) == S_IFDIR)) {
@@ -510,10 +510,10 @@ long mh_delete (MAILSTREAM *stream,char *mailbox)
}
/* get name of directory */
i = strlen (mh_file (tmp,mailbox));
- if (dirp = opendir (tmp)) { /* open directory */
+ if ((dirp = opendir (tmp)) != NULL) { /* open directory */
tmp[i++] = '/'; /* now apply trailing delimiter */
/* massacre all mh owned files */
- while (d = readdir (dirp)) if (mh_dirfmttest (d->d_name)) {
+ while ((d = readdir (dirp)) != NULL) if (mh_dirfmttest (d->d_name)) {
strcpy (tmp + i,d->d_name);
unlink (tmp); /* sayonara */
}
@@ -550,7 +550,7 @@ long mh_rename (MAILSTREAM *stream,char *old,char *newname)
newname);
/* success if can rename the directory */
else { /* found superior to destination name? */
- if (s = strrchr (mh_file (tmp1,newname),'/')) {
+ if ((s = strrchr (mh_file (tmp1,newname),'/')) != NULL) {
c = *++s; /* remember first character of inferior */
*s = '\0'; /* tie off to get just superior */
/* name doesn't exist, create it */
@@ -734,7 +734,7 @@ void mh_load_message (MAILSTREAM *stream,unsigned long msgno,long flags)
switch (c = SNX (&bs)) {
case '\015': /* unlikely carriage return */
*t++ = c;
- if ((CHR (&bs) == '\012')) {
+ if (CHR (&bs) == '\012') {
*t++ = SNX (&bs);
i++;
}
@@ -760,7 +760,7 @@ void mh_load_message (MAILSTREAM *stream,unsigned long msgno,long flags)
switch (c = SNX (&bs)) {
case '\015': /* unlikely carriage return */
*t++ = c;
- if ((CHR (&bs) == '\012')) {
+ if (CHR (&bs) == '\012') {
*t++ = SNX (&bs);
i++;
}
@@ -883,7 +883,7 @@ long mh_ping (MAILSTREAM *stream)
fs_give ((void **) &names[i]);
}
/* free directory */
- if (s = (void *) names) fs_give ((void **) &s);
+ if ((s = (void *) names) != NULL) fs_give ((void **) &s);
}
/* if INBOX, snarf from system INBOX */
@@ -934,7 +934,7 @@ long mh_ping (MAILSTREAM *stream)
unlink (LOCAL->buf);/* flush this file */
}
sprintf (tmp,"Message copy to MH mailbox failed: %.80s",
- s,strerror (errno));
+ strerror (errno));
mm_log (tmp,ERROR);
r = 0; /* stop the snarf in its tracks */
}
@@ -977,9 +977,9 @@ long mh_expunge (MAILSTREAM *stream,char *sequence,long options)
unsigned long i = 1;
unsigned long n = 0;
unsigned long recent = stream->recent;
- if (ret = sequence ? ((options & EX_UID) ?
+ if ((ret = sequence ? ((options & EX_UID) ?
mail_uid_sequence (stream,sequence) :
- mail_sequence (stream,sequence)) : LONGT) {
+ mail_sequence (stream,sequence)) : LONGT) != 0L) {
mm_critical (stream); /* go critical */
while (i <= stream->nmsgs) {/* for each message */
elt = mail_elt (stream,i);/* if deleted, need to trash it */
@@ -1132,7 +1132,7 @@ long mh_append (MAILSTREAM *stream,char *mailbox,append_t af,void *data)
fs_give ((void **) &names[i]);
}
else last = 0; /* no messages here yet */
- if (s = (void *) names) fs_give ((void **) &s);
+ if ((s = (void *) names) != NULL) fs_give ((void **) &s);
mm_critical (stream); /* go critical */
do {
@@ -1195,7 +1195,7 @@ int mh_select (struct direct *name)
{
char c;
char *s = name->d_name;
- while (c = *s++) if (!isdigit (c)) return NIL;
+ while ((c = *s++) != '\0') if (!isdigit (c)) return NIL;
return T;
}
@@ -1258,7 +1258,7 @@ long mh_canonicalize (char *pattern,char *ref,char *pat)
else strcpy (pattern,pat); /* just have basic name */
if (mh_isvalid (pattern,tmp,T)) {
/* count wildcards */
- for (i = 0, s = pattern; *s; *s++) if ((*s == '*') || (*s == '%')) ++i;
+ for (i = 0, s = pattern; *s; s++) if ((*s == '*') || (*s == '%')) ++i;
/* success if not too many */
if (i <= MAXWILDCARDS) return LONGT;
mm_log ("Excessive wildcards in LIST/LSUB",ERROR);
diff --git a/imap/src/osdep/unix/mix.c b/imap/src/osdep/unix/mix.c
index 63009bb2..c53cabc0 100644
--- a/imap/src/osdep/unix/mix.c
+++ b/imap/src/osdep/unix/mix.c
@@ -331,7 +331,7 @@ long mix_scan_contents (char *name,char *contents,unsigned long csiz,
fs_give ((void **) &names[i]);
}
/* free directory list */
- if (a = (void *) names) fs_give ((void **) &a);
+ if ((a = (void *) names) != NULL) fs_give ((void **) &a);
return ret;
}
@@ -475,10 +475,10 @@ long mix_delete (MAILSTREAM *stream,char *mailbox)
close (fd); /* close descriptor on deleted metadata */
/* get directory name */
*(s = strrchr (tmp,'/')) = '\0';
- if (dirp = opendir (tmp)) { /* open directory */
+ if ((dirp = opendir (tmp)) != NULL) { /* open directory */
*s++ = '/'; /* restore delimiter */
/* massacre messages */
- while (d = readdir (dirp)) if (mix_dirfmttest (d->d_name)) {
+ while ((d = readdir (dirp)) != NULL) if (mix_dirfmttest (d->d_name)) {
strcpy (s,d->d_name); /* make path */
unlink (tmp); /* sayonara */
}
@@ -526,7 +526,7 @@ long mix_rename (MAILSTREAM *stream,char *old,char *newname)
/* easy if not INBOX */
if (compare_cstring (old,"INBOX")) {
/* found superior to destination name? */
- if (s = strrchr (tmp1,'/')) {
+ if ((s = strrchr (tmp1,'/')) != NULL) {
c = *++s; /* remember first character of inferior */
*s = '\0'; /* tie off to get just superior */
/* name doesn't exist, create it */
@@ -564,7 +564,7 @@ long mix_rename (MAILSTREAM *stream,char *old,char *newname)
fs_give ((void **) &names[i]);
}
/* free directory list */
- if (a = (void *) names) fs_give ((void **) &a);
+ if ((a = (void *) names) != NULL) fs_give ((void **) &a);
if (lasterror) errno = lasterror;
else {
close (fd); /* close descriptor on metadata */
@@ -631,7 +631,7 @@ MAILSTREAM *mix_open (MAILSTREAM *stream)
stream->sequence++; /* bump sequence number */
/* parse mailbox */
stream->nmsgs = stream->recent = 0;
- if (silent = stream->silent) LOCAL->internal = T;
+ if ((silent = stream->silent) != 0) LOCAL->internal = T;
stream->silent = T;
if (mix_ping (stream)) { /* do initial ping */
/* try burping in case we are exclusive */
@@ -749,7 +749,7 @@ char *mix_header (MAILSTREAM *stream,unsigned long msgno,unsigned long *length,
else { /* document the problem */
LOCAL->buf[100] = '\0'; /* tie off buffer at no more than 100 octets */
/* or at newline, whichever is first */
- if (s = strpbrk (LOCAL->buf,"\015\012")) *s = '\0';
+ if ((s = strpbrk (LOCAL->buf,"\015\012")) != NULL) *s = '\0';
sprintf (tmp,"Error reading mix message header, uid=%lx, s=%.0lx, h=%s",
elt->private.uid,elt->rfc822_size,LOCAL->buf);
MM_LOG (tmp,ERROR);
@@ -960,7 +960,7 @@ long mix_ping (MAILSTREAM *stream)
flags[0] = '(';
strcat (flags,")");
INIT (&msg,mail_string,message,msglen);
- if (snarfok = mail_append_full (stream,"INBOX",flags,date,&msg)) {
+ if ((snarfok = mail_append_full (stream,"INBOX",flags,date,&msg)) != 0L) {
char sequence[15];
sprintf (sequence,"%lu",i);
mail_flag (sysibx,sequence,"\\Deleted",ST_SET);
@@ -985,8 +985,8 @@ long mix_ping (MAILSTREAM *stream)
/* expunging OK if global flag set */
if (mail_parameters (NIL,GET_EXPUNGEATPING,NIL)) LOCAL->expok = T;
/* process metadata/index/status */
- if (statf = mix_parse (stream,&idxf,LONGT,
- (LOCAL->internal ? NIL : LONGT))) {
+ if ((statf = mix_parse (stream,&idxf,LONGT,
+ (LOCAL->internal ? NIL : LONGT))) != NULL) {
fclose (statf); /* just close the status file */
ret = LONGT; /* declare success */
}
@@ -1033,8 +1033,8 @@ long mix_expunge (MAILSTREAM *stream,char *sequence,long options)
mail_uid_sequence (stream,sequence) :
mail_sequence (stream,sequence))) || stream->rdonly);
/* read index and open status exclusive */
- else if (statf = mix_parse (stream,&idxf,LONGT,
- LOCAL->internal ? NIL : LONGT)) {
+ else if ((statf = mix_parse (stream,&idxf,LONGT,
+ LOCAL->internal ? NIL : LONGT)) != NULL) {
/* expunge unless just burping */
if (!burponly) for (i = 1; i <= stream->nmsgs;) {
elt = mail_elt (stream,i);/* need to expunge this message? */
@@ -1111,7 +1111,7 @@ long mix_expunge (MAILSTREAM *stream,char *sequence,long options)
}
else MM_LOG ("No mix message files found during expunge",WARN);
/* free directory list */
- if (a = (void *) names) fs_give ((void **) &a);
+ if ((a = (void *) names) != NULL) fs_give ((void **) &a);
}
/* either way, re-acquire shared lock */
@@ -1120,7 +1120,7 @@ long mix_expunge (MAILSTREAM *stream,char *sequence,long options)
/* Do this step even if ret is NIL (meaning some burp problem)! */
if (nexp || reclaimed) { /* rewrite index and status if changed */
LOCAL->indexseq = mix_modseq (LOCAL->indexseq);
- if (ret = mix_index_update (stream,idxf,NIL)) {
+ if ((ret = mix_index_update (stream,idxf,NIL)) != 0L){
LOCAL->statusseq = mix_modseq (LOCAL->statusseq);
/* set failure if update fails */
ret = mix_status_update (stream,statf,NIL);
@@ -1237,7 +1237,7 @@ long mix_burp (MAILSTREAM *stream,MIXBURP *burp,unsigned long *reclaimed)
/* if matches range then no burp needed! */
if (burp->set.last == sbuf.st_size) ret = LONGT;
/* just need to remove cruft at end */
- else if (ret = !truncate (LOCAL->buf,burp->set.last))
+ else if ((ret = !truncate (LOCAL->buf,burp->set.last)) != 0L)
*reclaimed += sbuf.st_size - burp->set.last;
else {
sprintf (LOCAL->buf,truncerr,burp->name,strerror (errno));
@@ -1341,7 +1341,7 @@ long mix_burp_check (SEARCHSET *set,size_t size,char *file)
file,size,set->last);
MM_LOG (tmp,ERROR);
return NIL; /* don't burp this file at all */
- } while (set = set->next);
+ } while ((set = set->next) != NULL);
return LONGT;
}
@@ -1379,11 +1379,11 @@ long mix_copy (MAILSTREAM *stream,char *sequence,char *mailbox,long options)
else if (!(ret = ((options & CP_UID) ? mail_uid_sequence (stream,sequence) :
mail_sequence (stream,sequence))));
/* acquire stream to append */
- else if (ret = ((astream = mail_open (NIL,mailbox,OP_SILENT)) &&
+ else if ((ret = ((astream = mail_open (NIL,mailbox,OP_SILENT)) &&
!astream->rdonly &&
(((MIXLOCAL *) astream->local)->expok = T) &&
(statf = mix_parse (astream,&idxf,LONGT,NIL))) ?
- LONGT : NIL) {
+ LONGT : NIL) != 0L) {
int fd;
unsigned long i;
MESSAGECACHE *elt;
@@ -1405,7 +1405,7 @@ long mix_copy (MAILSTREAM *stream,char *sequence,char *mailbox,long options)
if ((elt = mail_elt (stream,i))->sequence)
newsize += hdrsize + elt->rfc822_size;
/* open data file */
- if (msgf = mix_data_open (astream,&fd,&size,newsize)) {
+ if ((msgf = mix_data_open (astream,&fd,&size,newsize)) != NULL) {
char *t;
unsigned long j,uid,uidv;
copyuid_t cu = (copyuid_t) mail_parameters (NIL,GET_COPYUID,NIL);
@@ -1434,7 +1434,7 @@ long mix_copy (MAILSTREAM *stream,char *sequence,char *mailbox,long options)
INIT (&st,fd_string,&d,elt->rfc822_size);
/* init flag string */
tmp[0] = tmp[1] = '\0';
- if (j = elt->user_flags) do
+ if ((j = elt->user_flags) != 0L) do
if ((t = stream->user_flags[find_rightmost_bit (&j)]) && *t)
strcat (strcat (tmp," "),t);
while (j);
@@ -1457,8 +1457,8 @@ long mix_copy (MAILSTREAM *stream,char *sequence,char *mailbox,long options)
fclose (msgf); /* all good, close the msg file now */
/* write new metadata, index, and status */
local->metaseq = local->indexseq = local->statusseq = seq;
- if (ret = (mix_meta_update (astream) &&
- mix_index_update (astream,idxf,LONGT))) {
+ if ((ret = (mix_meta_update (astream) &&
+ mix_index_update (astream,idxf,LONGT))) != 0L){
/* success, delete if doing a move */
if (options & CP_MOVE)
for (i = 1; i <= stream->nmsgs; i++)
@@ -1521,8 +1521,8 @@ long mix_append (MAILSTREAM *stream,char *mailbox,append_t af,void *data)
if (!stream) stream = user_flags (&mixproto);
if (!ret) switch (errno) { /* if not valid mailbox */
case ENOENT: /* no such file? */
- if (ret = compare_cstring (mailbox,"INBOX") ?
- NIL : mix_create (NIL,"INBOX"))
+ if ((ret = compare_cstring (mailbox,"INBOX") ?
+ NIL : mix_create (NIL,"INBOX")) != 0L)
break;
MM_NOTIFY (stream,"[TRYCREATE] Must create mailbox before append",NIL);
break;
@@ -1538,11 +1538,11 @@ long mix_append (MAILSTREAM *stream,char *mailbox,append_t af,void *data)
FILE *idxf = NIL;
FILE *msgf = NIL;
FILE *statf = NIL;
- if (ret = ((astream = mail_open (NIL,mailbox,OP_SILENT)) &&
+ if ((ret = ((astream = mail_open (NIL,mailbox,OP_SILENT)) &&
!astream->rdonly &&
(((MIXLOCAL *) astream->local)->expok = T) &&
(statf = mix_parse (astream,&idxf,LONGT,NIL))) ?
- LONGT : NIL) {
+ LONGT : NIL) != 0l) {
int fd;
unsigned long size,hdrsize;
MESSAGECACHE elt;
@@ -1558,7 +1558,7 @@ long mix_append (MAILSTREAM *stream,char *mailbox,append_t af,void *data)
MM_CRITICAL (astream); /* go critical */
astream->silent = T; /* no events here */
/* open data file */
- if (msgf = mix_data_open (astream,&fd,&size,hdrsize + SIZE (message))) {
+ if ((msgf = mix_data_open (astream,&fd,&size,hdrsize + SIZE (message))) != NULL){
appenduid_t au = (appenduid_t) mail_parameters (NIL,GET_APPENDUID,NIL);
SEARCHSET *dst = au ? mail_newsearchset () : NIL;
while (ret && message) {/* while good to go and have messages */
@@ -1747,14 +1747,14 @@ FILE *mix_parse (MAILSTREAM *stream,FILE **idxf,long iflags,long sflags)
}
/* slurp metadata */
- else if (s = mix_meta_slurp (stream,&i)) {
+ else if ((s = mix_meta_slurp (stream,&i)) != NULL) {
unsigned long j = 0; /* non-zero if UIDVALIDITY/UIDLAST changed */
if (i != LOCAL->metaseq) { /* metadata changed? */
char *t,*k;
LOCAL->metaseq = i; /* note new metadata sequence */
while (s && *s) { /* parse entire metadata file */
/* locate end of line */
- if (s = strstr (t = s,"\015\012")) {
+ if ((s = strstr (t = s,"\015\012")) != NULL) {
*s = '\0'; /* tie off line */
s += 2; /* skip past CRLF */
switch (*t++) { /* parse line */
@@ -1783,7 +1783,7 @@ FILE *mix_parse (MAILSTREAM *stream,FILE **idxf,long iflags,long sflags)
break;
case 'K': /* new keyword list */
for (i = 0; t && *t && (i < NUSERFLAGS); ++i) {
- if (t = strchr (k = t,' ')) *t++ = '\0';
+ if ((t = strchr (k = t,' ')) != NULL) *t++ = '\0';
/* make sure keyword non-empty */
if (*k && (strlen (k) <= MAXUSERFLAG)) {
/* in case value changes (shouldn't happen) */
@@ -2455,7 +2455,7 @@ FILE *mix_data_open (MAILSTREAM *stream,int *fd,long *size,
}
if (*fd >= 0) { /* have a data file? */
/* yes, get stdio and set position */
- if (msgf = fdopen (*fd,"r+b")) fseek (msgf,*size,SEEK_SET);
+ if ((msgf = fdopen (*fd,"r+b")) != NULL)fseek (msgf,*size,SEEK_SET);
else close (*fd); /* fdopen() failed? */
}
return msgf; /* return results */
@@ -2519,7 +2519,7 @@ FILE *mix_sortcache_open (MAILSTREAM *stream)
/* ignore expansion values */
if (*s++ == ':') {
- if (i = mail_msgno (stream,uid)) {
+ if ((i = mail_msgno (stream,uid)) != 0L) {
sc = (SORTCACHE *) (*mc) (stream,i,CH_SORTCACHE);
sc->size = (elt = mail_elt (stream,i))->rfc822_size;
sc->date = sentdate;
@@ -2698,7 +2698,7 @@ long mix_sortcache_update (MAILSTREAM *stream,FILE **sortcache)
SORTCACHE *s = (SORTCACHE *) (*mc) (stream,i,CH_SORTCACHE);
STRINGLIST *sl;
s->dirty = NIL; /* no longer dirty */
- if (sl = s->references) /* count length of references */
+ if ((sl = s->references) != NULL) /* count length of references */
for (j = 1; sl && sl->text.data; sl = sl->next)
j += 10 + sl->text.size;
else j = 0; /* no references yet */
@@ -2753,7 +2753,7 @@ char *mix_read_record (FILE *f,char *buf,unsigned long buflen,char *type)
/* ensure string tied off */
buf[buflen-2] = buf[buflen-1] = '\0';
while (fgets (buf,buflen-1,f)) {
- if (s = strchr (buf,'\012')) {
+ if ((s = strchr (buf,'\012')) != NULL) {
if ((s != buf) && (s[-1] == '\015')) --s;
*s = '\0'; /* tie off buffer */
if (s != buf) return buf; /* return if non-empty buffer */
diff --git a/imap/src/osdep/unix/mmdf.c b/imap/src/osdep/unix/mmdf.c
index e962434e..994c34a3 100644
--- a/imap/src/osdep/unix/mmdf.c
+++ b/imap/src/osdep/unix/mmdf.c
@@ -537,12 +537,13 @@ long mmdf_rename (MAILSTREAM *stream,char *old,char *newname)
MM_CRITICAL (stream); /* get the c-client lock */
if (!dummy_file (file,old) ||
(newname && (!((s = mailboxfile (tmp,newname)) && *s) ||
- ((s = strrchr (tmp,'/')) && !s[1]))))
- sprintf (tmp,newname ?
- "Can't rename mailbox %.80s to %.80s: invalid name" :
- "Can't delete mailbox %.80s: invalid name",
- old,newname);
- /* lock out other c-clients */
+ ((s = strrchr (tmp,'/')) && !s[1])))){
+ if(newname) sprintf (tmp,
+ "Can't rename mailbox %.80s to %.80s: invalid name",
+ old,newname);
+ else
+ sprintf (tmp, "Can't delete mailbox %.80s: invalid name", old);
+ } /* lock out other c-clients */
else if ((ld = lockname (lock,file,LOCK_EX|LOCK_NB,&i)) < 0)
sprintf (tmp,"Mailbox %.80s is in use by another process",old);
@@ -554,7 +555,7 @@ long mmdf_rename (MAILSTREAM *stream,char *old,char *newname)
else {
if (newname) { /* want rename? */
/* found superior to destination name? */
- if (s = strrchr (s,'/')) {
+ if ((s = strrchr (s,'/')) != NULL) {
c = *++s; /* remember first character of inferior */
*s = '\0'; /* tie off to get just superior */
/* name doesn't exist, create it */
@@ -981,9 +982,9 @@ long mmdf_expunge (MAILSTREAM *stream,char *sequence,long options)
unsigned long i;
DOTLOCK lock;
char *msg = NIL;
- if (ret = (sequence ? ((options & EX_UID) ?
+ if ((ret = (sequence ? ((options & EX_UID) ?
mail_uid_sequence (stream,sequence) :
- mail_sequence (stream,sequence)) : LONGT) &&
+ mail_sequence (stream,sequence)) : LONGT) != 0L) &&
LOCAL && (LOCAL->ld >= 0) && !stream->lock &&
mmdf_parse (stream,&lock,LOCK_EX)) {
/* check expunged messages if not dirty */
@@ -1391,10 +1392,10 @@ int mmdf_append_msgs (MAILSTREAM *stream,FILE *sf,FILE *df,SEARCHSET *set)
if (i < (j = strlen (tmp))) fatal ("mmdf_append_msgs overrun");
i -= j; /* number of bytes left */
/* squish out ^A and CRs (note copies NUL) */
- for (x = tmp; x = strpbrk (x,"\01\r"); --j) memmove (x,x+1,j-(x-tmp));
+ for (x = tmp; (x = strpbrk (x,"\01\r")) != NULL; --j) memmove (x,x+1,j-(x-tmp));
if (!j) continue; /* do nothing if line emptied */
/* start of line? */
- if ((c == '\n')) switch (tmp[0]) {
+ if (c == '\n') switch (tmp[0]) {
case 'S': case 's': /* possible "Status:" */
if (hdrp && (j > 6) && ((tmp[1] == 't') || (tmp[1] == 'T')) &&
((tmp[2] == 'a') || (tmp[2] == 'A')) &&
@@ -1609,7 +1610,7 @@ int mmdf_parse (MAILSTREAM *stream,DOTLOCK *lock,int op)
}
/* new data? */
- else if (i = sbuf.st_size - LOCAL->filesize) {
+ else if ((i = sbuf.st_size - LOCAL->filesize) != 0L) {
d.fd = LOCAL->fd; /* yes, set up file descriptor */
d.pos = LOCAL->filesize; /* get to that position in the file */
d.chunk = LOCAL->buf; /* initial buffer chunk */
@@ -1931,7 +1932,7 @@ int mmdf_parse (MAILSTREAM *stream,DOTLOCK *lock,int op)
char err[MAILTMPLEN];
sprintf (err,"Discarding bogus continuation in msg %lu: %.80s",
elt->msgno,(char *) s);
- if (u = strpbrk (err,"\r\n")) *u = '\0';
+ if ((u = strpbrk (err,"\r\n")) != NULL) *u = '\0';
MM_LOG (err,WARN);
break; /* different case or something */
}
@@ -2175,7 +2176,7 @@ unsigned long mmdf_xstatus (MAILSTREAM *stream,char *status,MESSAGECACHE *elt,
while (n /= 10);
/* pop UID last digits from stack */
while (t > stack) *s++ = *--t;
- for (n = 0; n < NUSERFLAGS; ++n) if (t = stream->user_flags[n])
+ for (n = 0; n < NUSERFLAGS; ++n) if ((t = stream->user_flags[n]) != NULL)
for (*s++ = ' '; *t; *s++ = *t++);
*s++ = '\n';
pad += 30; /* increased padding if have IMAPbase */
@@ -2197,7 +2198,7 @@ unsigned long mmdf_xstatus (MAILSTREAM *stream,char *status,MESSAGECACHE *elt,
if (sticky) { /* only do this if UIDs sticky */
*s++ = 'X'; *s++ = '-'; *s++ = 'K'; *s++ = 'e'; *s++ = 'y'; *s++ = 'w';
*s++ = 'o'; *s++ = 'r'; *s++ = 'd'; *s++ = 's'; *s++ = ':';
- if (n = elt->user_flags) do {
+ if ((n = elt->user_flags) != 0L) do {
*s++ = ' ';
for (t = stream->user_flags[find_rightmost_bit (&n)]; *t; *s++ = *t++);
} while (n);
@@ -2261,7 +2262,7 @@ long mmdf_rewrite (MAILSTREAM *stream,unsigned long *nexp,DOTLOCK *lock,
size = mmdf_pseudo (stream,LOCAL->buf);
}
/* extend the file as necessary */
- if (ret = mmdf_extend (stream,size)) {
+ if ((ret = mmdf_extend (stream,size)) != 0L){
/* Set up buffered I/O file structure
* curpos current position being written through buffering
* filepos current position being written physically to the disk
@@ -2454,7 +2455,7 @@ void mmdf_write (MMDFFILE *f,char *buf,unsigned long size)
if (buf) { /* doing buffered write? */
i = f->bufpos - f->buf; /* yes, get size of current buffer data */
/* yes, have space in current buffer chunk? */
- if (j = i ? ((f->buflen - i) % OVERFLOWBUFLEN) : f->buflen) {
+ if ((j = i ? ((f->buflen - i) % OVERFLOWBUFLEN) : f->buflen) != 0L) {
/* yes, fill up buffer as much as we can */
memcpy (f->bufpos,buf,k = min (j,size));
f->bufpos += k; /* new buffer position */
@@ -2470,7 +2471,7 @@ void mmdf_write (MMDFFILE *f,char *buf,unsigned long size)
* chunks that will fit in unprotected space.
*/
/* any unprotected space we can write to? */
- if (j = min (i,f->protect - f->filepos)) {
+ if ((j = min (i,f->protect - f->filepos)) != 0L) {
/* yes, filepos not at chunk boundary? */
if ((k = f->filepos % OVERFLOWBUFLEN) && ((k = OVERFLOWBUFLEN - k) < j))
j -= k; /* yes, and can write out partial chunk */
diff --git a/imap/src/osdep/unix/mtx.c b/imap/src/osdep/unix/mtx.c
index 8e6f76e8..4346eceb 100644
--- a/imap/src/osdep/unix/mtx.c
+++ b/imap/src/osdep/unix/mtx.c
@@ -287,10 +287,11 @@ long mtx_rename (MAILSTREAM *stream,char *old,char *newname)
if (!mtx_file (file,old) ||
(newname && (!((s = mailboxfile (tmp,newname)) && *s) ||
((s = strrchr (tmp,'/')) && !s[1])))) {
- sprintf (tmp,newname ?
- "Can't rename mailbox %.80s to %.80s: invalid name" :
- "Can't delete mailbox %.80s: invalid name",
- old,newname);
+ if(newname)
+ sprintf (tmp,
+ "Can't rename mailbox %.80s to %.80s: invalid name", old,newname);
+ else
+ sprintf (tmp, "Can't delete mailbox %.80s: invalid name", old);
MM_LOG (tmp,ERROR);
return NIL;
}
@@ -314,7 +315,7 @@ long mtx_rename (MAILSTREAM *stream,char *old,char *newname)
}
if (newname) { /* want rename? */
- if (s = strrchr (tmp,'/')) {/* found superior to destination name? */
+ if ((s = strrchr (tmp,'/')) != NULL) {/* found superior to destination name? */
c = *++s; /* remember first character of inferior */
*s = '\0'; /* tie off to get just superior */
/* name doesn't exist, create it */
@@ -680,7 +681,7 @@ void mtx_snarf (MAILSTREAM *stream)
hdr = cpystr (mail_fetchheader_full (sysibx,i,NIL,&hdrlen,NIL));
txt = mail_fetchtext_full (sysibx,i,&txtlen,FT_PEEK);
/* if have a message */
- if (j = hdrlen + txtlen) {
+ if ((j = hdrlen + txtlen) != 0L) {
/* calculate header line */
mail_date (LOCAL->buf,elt = mail_elt (sysibx,i));
sprintf (LOCAL->buf + strlen (LOCAL->buf),
diff --git a/imap/src/osdep/unix/mx.c b/imap/src/osdep/unix/mx.c
index 45495279..10d56b0a 100644
--- a/imap/src/osdep/unix/mx.c
+++ b/imap/src/osdep/unix/mx.c
@@ -239,7 +239,7 @@ long mx_dirfmttest (char *name)
int c;
/* success if index name or all-numberic */
if (strcmp (name,MXINDEXNAME+1))
- while (c = *name++) if (!isdigit (c)) return NIL;
+ while ((c = *name++) != '\0') if (!isdigit (c)) return NIL;
return LONGT;
}
@@ -286,7 +286,7 @@ long mx_scan_contents (char *name,char *contents,unsigned long csiz,
fs_give ((void **) &names[i]);
}
/* free directory list */
- if (a = (void *) names) fs_give ((void **) &a);
+ if ((a = (void *) names) != NULL) fs_give ((void **) &a);
return ret;
}
@@ -392,10 +392,10 @@ long mx_delete (MAILSTREAM *stream,char *mailbox)
mailbox,strerror (errno));
else { /* get directory name */
*(s = strrchr (tmp,'/')) = '\0';
- if (dirp = opendir (tmp)) { /* open directory */
+ if ((dirp = opendir (tmp)) != NULL) { /* open directory */
*s++ = '/'; /* restore delimiter */
/* massacre messages */
- while (d = readdir (dirp)) if (mx_select (d)) {
+ while ((d = readdir (dirp)) != NULL) if (mx_select (d)) {
strcpy (s,d->d_name); /* make path */
unlink (tmp); /* sayonara */
}
@@ -438,7 +438,7 @@ long mx_rename (MAILSTREAM *stream,char *old,char *newname)
/* easy if not INBOX */
if (compare_cstring (old,"INBOX")) {
/* found superior to destination name? */
- if (s = strrchr (mx_file (tmp1,newname),'/')) {
+ if ((s = strrchr (mx_file (tmp1,newname),'/')) != NULL) {
c = *++s; /* remember first character of inferior */
*s = '\0'; /* tie off to get just superior */
/* name doesn't exist, create it */
@@ -466,7 +466,7 @@ long mx_rename (MAILSTREAM *stream,char *old,char *newname)
fs_give ((void **) &names[i]);
}
/* free directory list */
- if (a = (void *) names) fs_give ((void **) &a);
+ if ((a = (void *) names) != NULL) fs_give ((void **) &a);
if (lasterror || mx_rename_work (tmp,srcl,tmp1,dstl,MXINDEXNAME+1))
errno = lasterror;
else return mx_create (NIL,"INBOX");
@@ -749,7 +749,7 @@ long mx_ping (MAILSTREAM *stream)
fs_give ((void **) &names[i]);
}
/* free directory */
- if (s = (void *) names) fs_give ((void **) &s);
+ if ((s = (void *) names) != NULL) fs_give ((void **) &s);
}
stream->nmsgs = nmsgs; /* don't upset mail_uid() */
@@ -801,7 +801,7 @@ long mx_ping (MAILSTREAM *stream)
unlink (LOCAL->buf);/* flush this file */
}
sprintf (tmp,"Message copy to MX mailbox failed: %.80s",
- s,strerror (errno));
+ strerror (errno));
MM_LOG (tmp,ERROR);
r = 0; /* stop the snarf in its tracks */
}
@@ -844,9 +844,9 @@ long mx_expunge (MAILSTREAM *stream,char *sequence,long options)
unsigned long i = 1;
unsigned long n = 0;
unsigned long recent = stream->recent;
- if (ret = (sequence ? ((options & EX_UID) ?
+ if ((ret = (sequence ? ((options & EX_UID) ?
mail_uid_sequence (stream,sequence) :
- mail_sequence (stream,sequence)) : LONGT) &&
+ mail_sequence (stream,sequence)) : LONGT) != 0L) &&
mx_lockindex (stream)) { /* lock the index */
MM_CRITICAL (stream); /* go critical */
while (i <= stream->nmsgs) {/* for each message */
@@ -936,8 +936,8 @@ long mx_copy (MAILSTREAM *stream,char *sequence,char *mailbox,long options)
SEARCHSET *dest = cu ? mail_newsearchset () : NIL;
for (i = 1,uid = uidv = 0; ret && (i <= stream->nmsgs); i++)
if ((elt = mail_elt (stream,i))->sequence) {
- if (ret = ((fd = open (mx_fast_work (stream,elt),O_RDONLY,NIL))
- >= 0)) {
+ if ((ret = ((fd = open (mx_fast_work (stream,elt),O_RDONLY,NIL))
+ >= 0)) != 0L) {
fstat (fd,&sbuf); /* get size of message */
d.fd = fd; /* set up file descriptor */
d.pos = 0; /* start of file */
@@ -946,8 +946,8 @@ long mx_copy (MAILSTREAM *stream,char *sequence,char *mailbox,long options)
INIT (&st,fd_string,&d,sbuf.st_size);
/* init flag string */
tmp[0] = tmp[1] = '\0';
- if (j = elt->user_flags) do
- if (t = stream->user_flags[find_rightmost_bit (&j)])
+ if ((j = elt->user_flags) != 0L) do
+ if ((t = stream->user_flags[find_rightmost_bit (&j)]) != NULL)
strcat (strcat (tmp," "),t);
while (j);
if (elt->seen) strcat (tmp," \\Seen");
@@ -957,7 +957,7 @@ long mx_copy (MAILSTREAM *stream,char *sequence,char *mailbox,long options)
if (elt->draft) strcat (tmp," \\Draft");
tmp[0] = '('; /* open list */
strcat (tmp,")"); /* close list */
- if (ret = mx_append_msg (astream,tmp,elt,&st,dest)) {
+ if ((ret = mx_append_msg (astream,tmp,elt,&st,dest)) != 0L) {
/* add to source set if needed */
if (source) mail_append_set (source,mail_uid (stream,i));
/* delete if doing a move */
@@ -1114,7 +1114,7 @@ int mx_select (struct direct *name)
{
char c;
char *s = name->d_name;
- while (c = *s++) if (!isdigit (c)) return NIL;
+ while ((c = *s++) != '\0') if (!isdigit (c)) return NIL;
return T;
}
@@ -1186,7 +1186,7 @@ long mx_lockindex (MAILSTREAM *stream)
break;
case 'K': /* keyword */
/* find end of keyword */
- if (s = strchr (t = ++s,'\n')) {
+ if ((s = strchr (t = ++s,'\n')) != NULL) {
*s++ = '\0'; /* tie off keyword */
/* copy keyword */
if ((k < NUSERFLAGS) && !stream->user_flags[k] &&
diff --git a/imap/src/osdep/unix/news.c b/imap/src/osdep/unix/news.c
index 4cf5bb70..1af24273 100644
--- a/imap/src/osdep/unix/news.c
+++ b/imap/src/osdep/unix/news.c
@@ -215,7 +215,7 @@ void news_list (MAILSTREAM *stream,char *ref,char *pat)
if (!pat || !*pat) { /* empty pattern? */
if (news_canonicalize (ref,"*",pattern)) {
/* tie off name at root */
- if (s = strchr (pattern,'.')) *++s = '\0';
+ if ((s = strchr (pattern,'.')) != NULL) *++s = '\0';
else pattern[0] = '\0';
mm_list (stream,'.',pattern,LATT_NOSELECT);
}
@@ -231,7 +231,7 @@ void news_list (MAILSTREAM *stream,char *ref,char *pat)
strcpy (name,"#news."); /* write initial prefix */
i = strlen (pattern); /* length of pattern */
if (pattern[--i] != '%') i = 0;
- if (t = strtok_r (s,"\n",&r)) do if (u = strchr (t,' ')) {
+ if ((t = strtok_r (s,"\n",&r)) != NULL) do if ((u = strchr (t,' ')) != NULL) {
*u = '\0'; /* tie off at end of name */
strcpy (name + 6,t); /* make full form of name */
if (pmatch_full (name,pattern,'.')) mm_list (stream,'.',name,NIL);
@@ -240,7 +240,7 @@ void news_list (MAILSTREAM *stream,char *ref,char *pat)
if (pmatch_full (name,pattern,'.'))
mm_list (stream,'.',name,LATT_NOSELECT);
}
- } while (t = strtok_r (NIL,"\n",&r));
+ } while ((t = strtok_r (NIL,"\n",&r)) != NULL);
fs_give ((void **) &s);
}
}
@@ -283,7 +283,7 @@ long news_canonicalize (char *ref,char *pat,char *pattern)
if ((pattern[0] == '#') && (pattern[1] == 'n') && (pattern[2] == 'e') &&
(pattern[3] == 'w') && (pattern[4] == 's') && (pattern[5] == '.') &&
!strchr (pattern,'/')) { /* count wildcards */
- for (i = 0, s = pattern; *s; *s++) if ((*s == '*') || (*s == '%')) ++i;
+ for (i = 0, s = pattern; *s; s++) if ((*s == '*') || (*s == '%')) ++i;
/* success if not too many */
if (i <= MAXWILDCARDS) return LONGT;
MM_LOG ("Excessive wildcards in LIST/LSUB",ERROR);
@@ -365,7 +365,7 @@ MAILSTREAM *news_open (MAILSTREAM *stream)
/* build directory name */
sprintf (s = tmp,"%s/%s",(char *) mail_parameters (NIL,GET_NEWSSPOOL,NIL),
stream->mailbox + 6);
- while (s = strchr (s,'.')) *s = '/';
+ while ((s = strchr (s,'.')) != NULL) *s = '/';
/* scan directory */
if ((nmsgs = scandir (tmp,&names,news_select,news_numsort)) >= 0) {
mail_exists (stream,nmsgs); /* notify upper level that messages exist */
@@ -406,7 +406,7 @@ int news_select (struct direct *name)
{
char c;
char *s = name->d_name;
- while (c = *s++) if (!isdigit (c)) return NIL;
+ while ((c = *s++) != '\0') if (!isdigit (c)) return NIL;
return T;
}
@@ -566,7 +566,7 @@ void news_load_message (MAILSTREAM *stream,unsigned long msgno,long flags)
switch (c = SNX (&bs)) {
case '\015': /* unlikely carriage return */
*t++ = c;
- if ((CHR (&bs) == '\012')) *t++ = SNX (&bs);
+ if (CHR (&bs) == '\012') *t++ = SNX (&bs);
break;
case '\012': /* line feed? */
*t++ = '\015';
@@ -586,7 +586,7 @@ void news_load_message (MAILSTREAM *stream,unsigned long msgno,long flags)
switch (c = SNX (&bs)) {
case '\015': /* unlikely carriage return */
*t++ = c;
- if ((CHR (&bs) == '\012')) *t++ = SNX (&bs);
+ if (CHR (&bs) == '\012') *t++ = SNX (&bs);
break;
case '\012': /* line feed? */
*t++ = '\015';
diff --git a/imap/src/osdep/unix/nl_unix.c b/imap/src/osdep/unix/nl_unix.c
index b2d5616a..5ae96b08 100644
--- a/imap/src/osdep/unix/nl_unix.c
+++ b/imap/src/osdep/unix/nl_unix.c
@@ -46,7 +46,7 @@ unsigned long strcrlfcpy (unsigned char **dst,unsigned long *dstl,
if (i > *dstl) fs_give ((void **) dst);
}
/* make a new buffer if needed */
- if (!*dst) *dst = (char *) fs_get ((*dstl = i) + 1);
+ if (!*dst) *dst = (unsigned char *) fs_get ((*dstl = i) + 1);
d = *dst; /* destination string */
if (srcl) do { /* main copy loop */
if ((c = *src++) < '\016') {
diff --git a/imap/src/osdep/unix/phile.c b/imap/src/osdep/unix/phile.c
index ce72d0a9..85aa8cbb 100644
--- a/imap/src/osdep/unix/phile.c
+++ b/imap/src/osdep/unix/phile.c
@@ -289,7 +289,7 @@ MAILSTREAM *phile_open (MAILSTREAM *stream)
t = localtime(&sbuf.st_mtime);/* get local time */
/* calculate time delta */
i = t->tm_hour * 60 + t->tm_min - i;
- if (k = t->tm_yday - k) i += ((k < 0) == (abs (k) == 1)) ? -24*60 : 24*60;
+ if ((k = t->tm_yday - k) != 0) i += ((k < 0) == (abs (k) == 1)) ? -24*60 : 24*60;
k = abs (i); /* time from UTC either way */
elt->hours = t->tm_hour; elt->minutes = t->tm_min; elt->seconds = t->tm_sec;
elt->day = t->tm_mday; elt->month = t->tm_mon + 1;
@@ -306,7 +306,7 @@ MAILSTREAM *phile_open (MAILSTREAM *stream)
/* fill in From field from file owner */
LOCAL->env->from = mail_newaddr ();
- if (pw = getpwuid (sbuf.st_uid)) strcpy (tmp,pw->pw_name);
+ if ((pw = getpwuid (sbuf.st_uid)) != NULL) strcpy (tmp,pw->pw_name);
else sprintf (tmp,"User-Number-%ld",(long) sbuf.st_uid);
LOCAL->env->from->mailbox = cpystr (tmp);
LOCAL->env->from->host = cpystr (mylocalhost ());
@@ -318,7 +318,7 @@ MAILSTREAM *phile_open (MAILSTREAM *stream)
buf->data[buf->size] = '\0';
close (fd); /* close the file */
/* analyze data type */
- if (i = phile_type (buf->data,buf->size,&j)) {
+ if ((i = phile_type (buf->data,buf->size,&j)) != 0){
LOCAL->body->type = TYPETEXT;
LOCAL->body->subtype = cpystr ("PLAIN");
if (!(i & PTYPECRTEXT)) { /* change Internet newline format as needed */
diff --git a/imap/src/osdep/unix/tcp_unix.c b/imap/src/osdep/unix/tcp_unix.c
index 4fe8194d..339c968c 100644
--- a/imap/src/osdep/unix/tcp_unix.c
+++ b/imap/src/osdep/unix/tcp_unix.c
@@ -176,7 +176,7 @@ TCPSTREAM *tcp_open (char *host,char *service,unsigned long port)
if (host[0] == '[' && host[(strlen (host))-1] == ']') {
strcpy (tmp,host+1); /* yes, copy number part */
tmp[(strlen (tmp))-1] = '\0';
- if (adr = ip_stringtoaddr (tmp,&adrlen,&family)) {
+ if ((adr = ip_stringtoaddr (tmp,&adrlen,&family)) != NULL) {
(*bn) (BLOCK_TCPOPEN,NIL);
/* get an open socket for this system */
sock = tcp_socket_open (family,adr,adrlen,port,tmp,ctrp,
@@ -223,7 +223,7 @@ TCPSTREAM *tcp_open (char *host,char *service,unsigned long port)
/* init sockets */
stream->tcpsi = stream->tcpso = sock;
/* stash in the snuck-in byte */
- if (stream->ictr = ctr) *(stream->iptr = stream->ibuf) = tmp[0];
+ if ((stream->ictr = ctr) != 0) *(stream->iptr = stream->ibuf) = tmp[0];
stream->host = hostname; /* copy official host name */
if (tcpdebug) mm_log ("Stream open and ready for read",TCPDEBUG);
}
@@ -371,7 +371,7 @@ TCPSTREAM *tcp_aopen (NETMBX *mb,char *service,char *usrbuf)
strcpy (host,mb->host+1); /* yes, copy without brackets */
host[i-1] = '\0';
/* validate domain literal */
- if (adr = ip_stringtoaddr (host,&len,&i)) fs_give ((void **) &adr);
+ if ((adr = ip_stringtoaddr (host,&len,&i)) != NULL) fs_give ((void **) &adr);
else {
sprintf (tmp,"Bad format domain-literal: %.80s",host);
mm_log (tmp,ERROR);
@@ -550,7 +550,7 @@ long tcp_getbuffer (TCPSTREAM *stream,unsigned long size,char *s)
/* make sure socket still alive */
if (stream->tcpsi < 0) return NIL;
/* can transfer bytes from buffer? */
- if (n = min (size,stream->ictr)) {
+ if ((n = min (size,stream->ictr)) != 0L) {
memcpy (s,stream->iptr,n); /* yes, slurp as much as we can from it */
s += n; /* update pointer */
stream->iptr +=n;
@@ -871,7 +871,7 @@ char *tcp_clienthost ()
if ((s = getenv (t = "SSH_CLIENT")) ||
(s = getenv (t = "KRB5REMOTEADDR")) ||
(s = getenv (t = "SSH2_CLIENT"))) {
- if (v = strchr (s,' ')) *v = '\0';
+ if ((v = strchr (s,' ')) != NULL) *v = '\0';
sprintf (v = tmp,"%.80s=%.80s",t,s);
}
else v = "UNKNOWN";
@@ -1000,7 +1000,7 @@ char *tcp_name (struct sockaddr *sadr,long flag)
(*bn) (BLOCK_DNSLOOKUP,NIL);/* quell alarms */
data = (*bn) (BLOCK_SENSITIVE,NIL);
/* translate address to name */
- if (t = tcp_name_valid (ip_sockaddrtoname (sadr,buf))) {
+ if ((t = tcp_name_valid (ip_sockaddrtoname (sadr,buf))) != NULL) {
/* produce verbose form if needed */
if (flag) sprintf (ret = tmp,"%s %s",t,adr);
else ret = t;
diff --git a/imap/src/osdep/unix/tenex.c b/imap/src/osdep/unix/tenex.c
index eee61fba..8815fee1 100644
--- a/imap/src/osdep/unix/tenex.c
+++ b/imap/src/osdep/unix/tenex.c
@@ -294,10 +294,13 @@ long tenex_rename (MAILSTREAM *stream,char *old,char *newname)
if (!tenex_file (file,old) ||
(newname && (!((s = mailboxfile (tmp,newname)) && *s) ||
((s = strrchr (tmp,'/')) && !s[1])))) {
- sprintf (tmp,newname ?
- "Can't rename mailbox %.80s to %.80s: invalid name" :
- "Can't delete mailbox %.80s: invalid name",
+ if(newname)
+ sprintf (tmp,
+ "Can't rename mailbox %.80s to %.80s: invalid name",
old,newname);
+ else
+ sprintf (tmp,
+ "Can't delete mailbox %.80s: invalid name", old);
MM_LOG (tmp,ERROR);
return NIL;
}
@@ -321,7 +324,7 @@ long tenex_rename (MAILSTREAM *stream,char *old,char *newname)
}
if (newname) { /* want rename? */
- if (s = strrchr (tmp,'/')) {/* found superior to destination name? */
+ if ((s = strrchr (tmp,'/')) != NULL) {/* found superior to destination name? */
c = *++s; /* remember first character of inferior */
*s = '\0'; /* tie off to get just superior */
/* name doesn't exist, create it */
@@ -769,7 +772,7 @@ void tenex_snarf (MAILSTREAM *stream)
hdr = cpystr (mail_fetchheader_full(sysibx,i,NIL,&hdrlen,FT_INTERNAL));
txt = mail_fetchtext_full (sysibx,i,&txtlen,FT_INTERNAL|FT_PEEK);
/* if have a message */
- if (j = hdrlen + txtlen) {
+ if ((j = hdrlen + txtlen) != 0L) {
/* calculate header line */
mail_date (LOCAL->buf,elt = mail_elt (sysibx,i));
sprintf (LOCAL->buf + strlen (LOCAL->buf),
diff --git a/imap/src/osdep/unix/unix.c b/imap/src/osdep/unix/unix.c
index be3c437b..8bca508c 100644
--- a/imap/src/osdep/unix/unix.c
+++ b/imap/src/osdep/unix/unix.c
@@ -415,7 +415,7 @@ long unix_rename (MAILSTREAM *stream,char *old,char *newname)
else {
if (newname) { /* want rename? */
/* found superior to destination name? */
- if (s = strrchr (s,'/')) {
+ if ((s = strrchr (s,'/')) != NULL) {
c = *++s; /* remember first character of inferior */
*s = '\0'; /* tie off to get just superior */
/* name doesn't exist, create it */
@@ -842,9 +842,9 @@ long unix_expunge (MAILSTREAM *stream,char *sequence,long options)
DOTLOCK lock;
char *msg = NIL;
/* parse and lock mailbox */
- if (ret = (sequence ? ((options & EX_UID) ?
+ if ((ret = (sequence ? ((options & EX_UID) ?
mail_uid_sequence (stream,sequence) :
- mail_sequence (stream,sequence)) : LONGT) &&
+ mail_sequence (stream,sequence)) : LONGT) != 0L) &&
LOCAL && (LOCAL->ld >= 0) && !stream->lock &&
unix_parse (stream,&lock,LOCK_EX)) {
/* check expunged messages if not dirty */
@@ -1254,10 +1254,10 @@ int unix_append_msgs (MAILSTREAM *stream,FILE *sf,FILE *df,SEARCHSET *set)
if (i < (j = strlen (tmp))) fatal ("unix_append_msgs overrun");
i -= j; /* number of bytes left */
/* squish out CRs (note also copies NUL) */
- for (x = tmp; x = strchr (x,'\r'); --j) memmove (x,x+1,j-(x-tmp));
+ for (x = tmp; (x = strchr (x,'\r')) != NULL; --j) memmove (x,x+1,j-(x-tmp));
if (!j) continue; /* do nothing if line emptied */
/* start of line? */
- if ((c == '\n')) switch (tmp[0]) {
+ if (c == '\n') switch (tmp[0]) {
case 'F': /* possible "From " (case counts here) */
if ((j > 4) && (tmp[0] == 'F') && (tmp[1] == 'r') && (tmp[2] == 'o') &&
(tmp[3] == 'm') && (tmp[4] == ' ')) {
@@ -1480,7 +1480,7 @@ int unix_parse (MAILSTREAM *stream,DOTLOCK *lock,int op)
}
/* new data? */
- else if (i = sbuf.st_size - LOCAL->filesize) {
+ else if ((i = sbuf.st_size - LOCAL->filesize) != 0L) {
d.fd = LOCAL->fd; /* yes, set up file descriptor */
d.pos = LOCAL->filesize; /* get to that position in the file */
d.chunk = LOCAL->buf; /* initial buffer chunk */
@@ -1767,7 +1767,7 @@ int unix_parse (MAILSTREAM *stream,DOTLOCK *lock,int op)
char err[MAILTMPLEN];
sprintf (err,"Discarding bogus continuation in msg %lu: %.80s",
elt->msgno,(char *) s);
- if (u = strpbrk (err,"\r\n")) *u = '\0';
+ if ((u = strpbrk (err,"\r\n")) != NULL) *u = '\0';
MM_LOG (err,WARN);
break; /* different case or something */
}
@@ -2012,7 +2012,7 @@ unsigned long unix_xstatus (MAILSTREAM *stream,char *status,MESSAGECACHE *elt,
while (n /= 10);
/* pop UID last digits from stack */
while (t > stack) *s++ = *--t;
- for (n = 0; n < NUSERFLAGS; ++n) if (t = stream->user_flags[n])
+ for (n = 0; n < NUSERFLAGS; ++n) if ((t = stream->user_flags[n]) != NULL)
for (*s++ = ' '; *t; *s++ = *t++);
*s++ = '\n';
pad += 30; /* increased padding if have IMAPbase */
@@ -2034,7 +2034,7 @@ unsigned long unix_xstatus (MAILSTREAM *stream,char *status,MESSAGECACHE *elt,
if (sticky) { /* only do this if UIDs sticky */
*s++ = 'X'; *s++ = '-'; *s++ = 'K'; *s++ = 'e'; *s++ = 'y'; *s++ = 'w';
*s++ = 'o'; *s++ = 'r'; *s++ = 'd'; *s++ = 's'; *s++ = ':';
- if (n = elt->user_flags) do {
+ if ((n = elt->user_flags) != 0L) do {
*s++ = ' ';
for (t = stream->user_flags[find_rightmost_bit (&n)]; *t; *s++ = *t++);
} while (n);
@@ -2098,7 +2098,7 @@ long unix_rewrite (MAILSTREAM *stream,unsigned long *nexp,DOTLOCK *lock,
size = unix_pseudo (stream,LOCAL->buf);
}
/* extend the file as necessary */
- if (ret = unix_extend (stream,size)) {
+ if ((ret = unix_extend (stream,size)) != 0L) {
/* Set up buffered I/O file structure
* curpos current position being written through buffering
* filepos current position being written physically to the disk
@@ -2308,7 +2308,7 @@ void unix_write (UNIXFILE *f,char *buf,unsigned long size)
if (buf) { /* doing buffered write? */
i = f->bufpos - f->buf; /* yes, get size of current buffer data */
/* yes, have space in current buffer chunk? */
- if (j = i ? ((f->buflen - i) % OVERFLOWBUFLEN) : f->buflen) {
+ if ((j = i ? ((f->buflen - i) % OVERFLOWBUFLEN) : f->buflen) != 0L) {
/* yes, fill up buffer as much as we can */
memcpy (f->bufpos,buf,k = min (j,size));
f->bufpos += k; /* new buffer position */
@@ -2324,7 +2324,7 @@ void unix_write (UNIXFILE *f,char *buf,unsigned long size)
* chunks that will fit in unprotected space.
*/
/* any unprotected space we can write to? */
- if (j = min (i,f->protect - f->filepos)) {
+ if ((j = min (i,f->protect - f->filepos)) != 0L) {
/* yes, filepos not at chunk boundary? */
if ((k = f->filepos % OVERFLOWBUFLEN) && ((k = OVERFLOWBUFLEN - k) < j))
j -= k; /* yes, and can write out partial chunk */
diff --git a/imap/src/tmail/tmail.c b/imap/src/tmail/tmail.c
index 923a98a9..273db40a 100644
--- a/imap/src/tmail/tmail.c
+++ b/imap/src/tmail/tmail.c
@@ -26,6 +26,7 @@
#include <stdio.h>
#include <pwd.h>
#include <errno.h>
+#include <ctype.h>
extern int errno; /* just in case */
#include <sysexits.h>
#include <sys/file.h>
@@ -115,7 +116,7 @@ void file_string_setpos (STRING *s,unsigned long i)
s->offset = i; /* set new offset */
s->curpos = s->chunk; /* reset position */
/* set size of data */
- if (s->cursize = min (s->chunksize,SIZE (s))) {
+ if ((s->cursize = min (s->chunksize,SIZE (s))) != 0L) {
/* move to that position in the file */
fseek ((FILE *) s->data,s->offset,SEEK_SET);
fread (s->curpos,sizeof (char),(unsigned int) s->cursize,(FILE *) s->data);
@@ -600,7 +601,7 @@ int fail (char *string,int code)
char *getusername (char *s,char **t)
{
- if (*t = strchr (s,'+')) { /* have a mailbox specifier? */
+ if ((*t = strchr (s,'+')) != NULL) { /* have a mailbox specifier? */
*(*t)++ = '\0'; /* yes, tie off user name */
/* forbid overlong name */
if (strlen (*t) > NETMAXMBX) return NIL;
diff --git a/include/config.h.in b/include/config.h.in
index edb0db6d..59a6ccd6 100644
--- a/include/config.h.in
+++ b/include/config.h.in
@@ -472,9 +472,6 @@
/* Enable keyboard lock support */
#undef KEYBOARD_LOCK
-/* Define if you use OpenLDAP 2.3.x deprecated functions */
-#undef LDAP_DEPRECATED
-
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#undef LT_OBJDIR
diff --git a/pico/pico.c b/pico/pico.c
index 24123ccd..d93798c4 100644
--- a/pico/pico.c
+++ b/pico/pico.c
@@ -952,12 +952,13 @@ stripwhitespace(void)
if(!(cur_line->l_used == 3 &&
lgetc(cur_line, 0).c == '-' &&
lgetc(cur_line, 1).c == '-' &&
- lgetc(cur_line, 2).c == ' '))
+ lgetc(cur_line, 2).c == ' ')){
for(i = cur_line->l_used - 1; i >= 0; i--)
if(ucs4_isspace(lgetc(cur_line, i).c))
cur_line->l_used--;
else
break;
+ }
}while((cur_line = lforw(cur_line)) != curbp->b_linep);
return 0;
}
diff --git a/pith/adrbklib.c b/pith/adrbklib.c
index a9135d8b..fc7803fb 100644
--- a/pith/adrbklib.c
+++ b/pith/adrbklib.c
@@ -4108,7 +4108,7 @@ delete_ab_entry(AdrBk *ab, a_c_arg_t delete_this_one, int save_it)
* #DELETED-YY/MM/DD#
* to the nickname.
*/
- now = time((time_t) 0);
+ now = time((time_t *) NULL);
tm_now = localtime(&now);
oldnick = ae_deleted->nickname;
diff --git a/pith/conf.c b/pith/conf.c
index e8c1ceb9..7f450be8 100644
--- a/pith/conf.c
+++ b/pith/conf.c
@@ -1701,9 +1701,24 @@ init_vars(struct pine *ps, void (*cmds_f) (struct pine *, char **))
GLO_SPELLER = cpystr(DF_VAR_SPELLER);
#endif
#ifdef SMIME
- GLO_PUBLICCERT_DIR = cpystr(DF_PUBLICCERT_DIR);
- GLO_PRIVATEKEY_DIR = cpystr(DF_PRIVATEKEY_DIR);
- GLO_CACERT_DIR = cpystr(DF_CACERT_DIR);
+ if(ps->smimedir){
+ snprintf(tmp_20k_buf, SIZEOF_20KBUF, "%s/public", ps->smimedir);
+ tmp_20k_buf[SIZEOF_20KBUF-1] = '\0';
+ GLO_PUBLICCERT_DIR = cpystr(tmp_20k_buf);
+
+ snprintf(tmp_20k_buf, SIZEOF_20KBUF, "%s/private", ps->smimedir);
+ tmp_20k_buf[SIZEOF_20KBUF-1] = '\0';
+ GLO_PRIVATEKEY_DIR = cpystr(tmp_20k_buf);
+
+ snprintf(tmp_20k_buf, SIZEOF_20KBUF, "%s/ca", ps->smimedir);
+ tmp_20k_buf[SIZEOF_20KBUF-1] = '\0';
+ GLO_CACERT_DIR = cpystr(tmp_20k_buf);
+ }
+ else{
+ GLO_PUBLICCERT_DIR = cpystr(DF_PUBLICCERT_DIR);
+ GLO_PRIVATEKEY_DIR = cpystr(DF_PRIVATEKEY_DIR);
+ GLO_CACERT_DIR = cpystr(DF_CACERT_DIR);
+ }
#endif /* SMIME */
/*
diff --git a/pith/flag.c b/pith/flag.c
index 890feb56..5381aaf4 100644
--- a/pith/flag.c
+++ b/pith/flag.c
@@ -585,7 +585,7 @@ set_lflag(MAILSTREAM *stream, MSGNO_S *msgs, long int n, int f, int v)
int was_invisible, is_invisible;
int chk_thrd_cnt = 0, thrd_was_visible, was_hidden, is_hidden;
- if((*(peltp = (PINELT_S **) &mc->sparep) == NULL)){
+ if(*(peltp = (PINELT_S **) &mc->sparep) == NULL){
*peltp = (PINELT_S *) fs_get(sizeof(PINELT_S));
memset(*peltp, 0, sizeof(PINELT_S));
}
@@ -702,12 +702,13 @@ copy_lflags(MAILSTREAM *stream, MSGNO_S *msgmap, int from, int to)
set_lflags(stream, msgmap, to, 0);
- if(any_lflagged(msgmap, from))
+ if(any_lflagged(msgmap, from)){
for(i = 1L; i <= mn_get_total(msgmap); i++)
if(get_lflag(stream, msgmap, i, from))
set_lflag(stream, msgmap, i, to, 1);
else if(hide)
set_lflag(stream, msgmap, i, MN_HIDE, 1);
+ }
}
diff --git a/pith/folder.c b/pith/folder.c
index 5373bdfb..63f1b1d8 100644
--- a/pith/folder.c
+++ b/pith/folder.c
@@ -871,7 +871,7 @@ update_bboard_spec(char *bboard, char *buf, size_t buflen)
if(*bboard == '*')
bboard++;
- if(!nntp)
+ if(!nntp){
/*
* See if path portion looks newsgroup-ish while being aware
* of the "view" portion of the spec...
@@ -891,6 +891,7 @@ update_bboard_spec(char *bboard, char *buf, size_t buflen)
}
else if(!(isalnum((unsigned char) *p) || strindex(".-", *p)))
break;
+ }
snprintf(buf, buflen-(buf-origbuf), "%s%s%s",
(!nntp && *p) ? "#public" : "#news.",
diff --git a/pith/icache.c b/pith/icache.c
index 07152652..d7d5989d 100644
--- a/pith/icache.c
+++ b/pith/icache.c
@@ -261,7 +261,7 @@ fetch_ice(MAILSTREAM *stream, long unsigned int rawno)
/*
* any private elt data yet?
*/
- if((*(peltp = (PINELT_S **) &mc->sparep) == NULL)){
+ if(*(peltp = (PINELT_S **) &mc->sparep) == NULL){
*peltp = (PINELT_S *) fs_get(sizeof(PINELT_S));
memset(*peltp, 0, sizeof(PINELT_S));
}
@@ -291,7 +291,7 @@ fetch_ice_ptr(MAILSTREAM *stream, long unsigned int rawno)
/*
* any private elt data yet?
*/
- if((*(peltp = (PINELT_S **) &mc->sparep) == NULL)){
+ if(*(peltp = (PINELT_S **) &mc->sparep) == NULL){
*peltp = (PINELT_S *) fs_get(sizeof(PINELT_S));
memset(*peltp, 0, sizeof(PINELT_S));
}
diff --git a/pith/ldap.c b/pith/ldap.c
index cb7ff363..411b0516 100644
--- a/pith/ldap.c
+++ b/pith/ldap.c
@@ -402,7 +402,7 @@ ldap_lookup(LDAP_SERV_S *info, char *string, CUSTOM_FILT_S *cust,
char *mailattr, *snattr, *gnattr, *cnattr;
int we_cancel = 0, we_turned_on = 0;
LDAP_SERV_RES_S *serv_res = NULL;
- LDAP *ld;
+ LDAP *ld = NULL;
long pwdtrial = 0L;
int ld_errnum;
char *ld_errstr;
@@ -472,8 +472,15 @@ ldap_lookup(LDAP_SERV_S *info, char *string, CUSTOM_FILT_S *cust,
if((ld = ldap_init(serv, info->port)) == NULL)
#else
#if (LDAPAPI >= 11)
+#ifdef _WINDOWS
if((ld = ldap_init(serv, info->port)) == NULL)
#else
+ snprintf(tmp_20k_buf, SIZEOF_20KBUF, "ldap://%s:%d", serv, info->port);
+ tmp_20k_buf[SIZEOF_20KBUF-1] = '\0';
+
+ if(ldap_initialize(&ld, tmp_20k_buf) != LDAP_SUCCESS)
+#endif
+#else
if((ld = ldap_open(serv, info->port)) == NULL)
#endif
#endif
@@ -498,7 +505,11 @@ ldap_lookup(LDAP_SERV_S *info, char *string, CUSTOM_FILT_S *cust,
else if(!ps_global->intr_pending){
int proto = 3, tlsmustbail = 0;
char pwd[NETMAXPASSWD], user[NETMAXUSER];
+#ifdef _WINDOWS
char *passwd = NULL;
+#else
+ struct berval passwd = { 0 };
+#endif
char hostbuf[1024];
NETMBX mb;
#ifndef _WINDOWS
@@ -573,7 +584,12 @@ try_password_again:
snprintf(pmt, sizeof(pmt), " %s", (info->nick && *info->nick) ? info->nick : serv);
mm_login_work(&mb, user, pwd, pwdtrial, pmt, info->binddn);
if(pwd && pwd[0])
+#ifdef _WINDOWS
passwd = pwd;
+#else
+ passwd.bv_len = strlen(pwd);
+ passwd.bv_val = pwd;
+#endif
}
}
@@ -583,7 +599,12 @@ try_password_again:
* to tell the server we're v3 if the server supports v3, and if the
* server doesn't support v3 the bind is required.
*/
- if(tlsmustbail || ldap_simple_bind_s(ld, info->binddn, passwd) != LDAP_SUCCESS){
+ if(tlsmustbail
+#ifdef _WINDOWS
+ || ldap_simple_bind_s(ld, info->binddn, passwd) != LDAP_SUCCESS){
+#else
+ || ldap_sasl_bind_s(ld, info->binddn, LDAP_SASL_SIMPLE, &passwd, NULL, NULL, NULL) != LDAP_SUCCESS){
+#endif
wp_err->wp_err_occurred = 1;
ld_errnum = our_ldap_get_lderrno(ld, NULL, &ld_errstr);
@@ -606,8 +627,11 @@ try_password_again:
if(we_cancel)
cancel_busy_cue(-1);
-
+#ifdef _WINDOWS
ldap_unbind(ld);
+#else
+ ldap_unbind_ext(ld, NULL, NULL);
+#endif
wp_err->error = cpystr(ebuf);
q_status_message(SM_ORDER, 3, 5, wp_err->error);
display_message('x');
@@ -831,11 +855,22 @@ try_password_again:
else{
int msgid;
time_t start_time;
+ struct timeval tv = {0}, *tvp = NULL;
+
+ memset((void *)&tv, 0, sizeof(struct timeval));
+ tv.tv_sec = info->time;
+ tvp = &tv;
start_time = time((time_t *)0);
dprint((6, "ldap_lookup: calling ldap_search\n"));
+#ifdef _WINDOWS
msgid = ldap_search(ld, base, info->scope, filter, NULL, 0);
+#else
+ if(ldap_search_ext(ld, base, info->scope, filter, NULL, 0,
+ NULL, NULL, tvp, info->size, &msgid) != LDAP_SUCCESS)
+ msgid = -1;
+#endif
if(msgid == -1)
srch_res = our_ldap_get_lderrno(ld, NULL, NULL);
@@ -863,7 +898,11 @@ try_password_again:
}
else if(lres == 0){ /* timeout, no results available */
if(intr_happened){
+#ifdef _WINDOWS
ldap_abandon(ld, msgid);
+#else
+ ldap_abandon_ext(ld, msgid, NULL, NULL);
+#endif
srch_res = LDAP_PROTOCOL_ERROR;
if(our_ldap_get_lderrno(ld, NULL, NULL) == LDAP_SUCCESS)
our_ldap_set_lderrno(ld, LDAP_PROTOCOL_ERROR, NULL, NULL);
@@ -882,7 +921,11 @@ try_password_again:
}
else{
if(lres == 0)
+#ifdef _WINDOWS
ldap_abandon(ld, msgid);
+#else
+ ldap_abandon_ext(ld, msgid, NULL, NULL);
+#endif
srch_res = LDAP_TIMEOUT;
if(our_ldap_get_lderrno(ld, NULL, NULL) == LDAP_SUCCESS)
@@ -898,9 +941,25 @@ try_password_again:
}
}
else{
+#ifdef _WINDOWS
srch_res = ldap_result2error(ld, res, 0);
dprint((6, "lres=0x%x, srch_res=%d\n", lres,
srch_res));
+#else
+ int err;
+ char *dn, *text, **ref;
+ LDAPControl **srv;
+
+ dn = text = NULL; ref = NULL; srv = NULL;
+ srch_res = ldap_parse_result(ld, res,
+ &err, &dn, &text, &ref, &srv, 0);
+ dprint((6, "lres=0x%x, srch_res=%d, dn=%s, text=%s\n", lres,
+ srch_res, dn ? dn : "", text ? text : ""));
+ if(dn) ber_memfree(dn);
+ if(text) ber_memfree(text);
+ if(ref) ber_memvfree((void **) ref);
+ if(srv) ldap_controls_free(srv);
+#endif
}
}while(lres == 0 &&
!(intr_happened ||
@@ -925,7 +984,11 @@ try_password_again:
if(res)
ldap_msgfree(res);
if(ld)
+#ifdef _WINDOWS
ldap_unbind(ld);
+#else
+ ldap_unbind_ext(ld, NULL, NULL);
+#endif
res = NULL; ld = NULL;
}
@@ -957,8 +1020,12 @@ try_password_again:
if(res)
ldap_msgfree(res);
if(ld)
+#ifdef _WINDOWS
ldap_unbind(ld);
-
+#else
+ ldap_unbind_ext(ld, NULL, NULL);
+#endif
+
res = NULL; ld = NULL;
}
else{
@@ -1043,7 +1110,11 @@ try_password_again:
if(res)
ldap_msgfree(res);
if(ld)
+#ifdef _WINDOWS
ldap_unbind(ld);
+#else
+ ldap_unbind_ext(ld, NULL, NULL);
+#endif
res = NULL; ld = NULL;
}
@@ -1184,41 +1255,41 @@ address_from_ldap(LDAP_CHOOSE_S *winning_e)
a = ldap_next_attribute(winning_e->ld, winning_e->selected_entry, ber)){
int i;
char *p;
- char **vals;
+ struct berval **vals;
dprint((9, "attribute: %s\n", a ? a : "?"));
if(!ret_a->personal &&
strcmp(a, winning_e->info_used->cnattr) == 0){
dprint((9, "Got cnattr:"));
- vals = ldap_get_values(winning_e->ld, winning_e->selected_entry, a);
- for(i = 0; vals[i] != NULL; i++)
+ vals = ldap_get_values_len(winning_e->ld, winning_e->selected_entry, a);
+ for(i = 0; i < ldap_count_values_len(vals); i++)
dprint((9, " %s\n",
- vals[i] ? vals[i] : "?"));
+ vals[i] ? vals[i]->bv_val : "?"));
- if(vals && vals[0])
- ret_a->personal = cpystr(vals[0]);
+ if(ALPINE_LDAP_can_use(vals))
+ ret_a->personal = cpystr(vals[0]->bv_val);
- ldap_value_free(vals);
+ ldap_value_free_len(vals);
}
else if(!ret_a->mailbox &&
strcmp(a, winning_e->info_used->mailattr) == 0){
dprint((9, "Got mailattr:"));
- vals = ldap_get_values(winning_e->ld, winning_e->selected_entry, a);
- for(i = 0; vals[i] != NULL; i++)
+ vals = ldap_get_values_len(winning_e->ld, winning_e->selected_entry, a);
+ for(i = 0; i < ldap_count_values_len(vals); i++)
dprint((9, " %s\n",
- vals[i] ? vals[i] : "?"));
+ vals[i] ? vals[i]->bv_val : "?"));
/* use first one */
- if(vals && vals[0]){
- if((p = strindex(vals[0], '@')) != NULL){
+ if(ALPINE_LDAP_can_use(vals)){
+ if((p = strindex(vals[0]->bv_val, '@')) != NULL){
ret_a->host = cpystr(p+1);
*p = '\0';
}
- ret_a->mailbox = cpystr(vals[0]);
+ ret_a->mailbox = cpystr(vals[0]->bv_val);
}
- ldap_value_free(vals);
+ ldap_value_free_len(vals);
}
our_ldap_memfree(a);
@@ -1569,7 +1640,11 @@ free_ldap_result_list(LDAP_SERV_RES_S **r)
if((*r)->res)
ldap_msgfree((*r)->res);
if((*r)->ld)
+#ifdef _WINDOWS
ldap_unbind((*r)->ld);
+#else
+ ldap_unbind_ext((*r)->ld, NULL, NULL);
+#endif
if((*r)->info_used)
free_ldap_server_info(&(*r)->info_used);
if((*r)->serv)
@@ -1794,5 +1869,24 @@ ldap_translate(char *a, LDAP_SERV_S *info_used)
return(a);
}
+char **
+berval_to_array(struct berval **v)
+{
+ char **rv = NULL;
+ int i, len;
+
+ if(v == NULL) return rv;
+ len = ldap_count_values_len(v);
+
+ rv = fs_get((len+1)*sizeof(char *));
+ for(i = 0; i < len; i++)
+ if(ALPINE_LDAP_can_use_num(v, i))
+ rv[i] = cpystr(v[i]->bv_val);
+ else
+ rv[i] = NULL;
+ rv[len] = NULL;
+
+ return rv;
+}
#endif /* ENABLE_LDAP */
diff --git a/pith/ldap.h b/pith/ldap.h
index 43a5120d..ee9b8b87 100644
--- a/pith/ldap.h
+++ b/pith/ldap.h
@@ -67,7 +67,7 @@ typedef struct ldap_serv {
* ldap_get_dn
* ldap_first_attribute
* ldap_next_attribute
- * ldap_get_values
+ * ldap_get_values_len
* We call those from a half dozen functions. We could fix it by
* having a directory-character-set per server and passing that around
* in the LDAP_SERV_RES_S structure, I think. For now, let's go with
@@ -114,6 +114,14 @@ typedef enum {AlwaysDisplay,
DisplayForURL
} LDAPLookupStyle;
+#define ALPINE_LDAP_can_use_num(X, Y) \
+ ((X) != NULL && (X)[(Y)] != NULL \
+ && (X)[(Y)]->bv_val != NULL \
+ && (X)[(Y)]->bv_val[0] != '\0')
+
+#define ALPINE_LDAP_can_use(X) ALPINE_LDAP_can_use_num((X), 0)
+#define ALPINE_LDAP_usable(X, Y) ((Y) < ldap_count_values_len((X)) \
+ && ALPINE_LDAP_can_use_num((X), (Y)))
#define LDAP_TYPE_CN 0
#define LDAP_TYPE_SUR 1
@@ -162,6 +170,7 @@ ADDRESS *wp_lookups(char *, WP_ERR_S *, int);
int ldap_lookup_all(char *, int, int, LDAPLookupStyle, CUSTOM_FILT_S *,
LDAP_CHOOSE_S **, WP_ERR_S *, LDAP_SERV_RES_S **);
char *ldap_translate(char *, LDAP_SERV_S *);
+char **berval_to_array(struct berval **);
ADDRESS *address_from_ldap(LDAP_CHOOSE_S *);
LDAP_SERV_S *break_up_ldap_server(char *);
void free_ldap_server_info(LDAP_SERV_S **);
diff --git a/pith/mailindx.c b/pith/mailindx.c
index c3e035b2..a1e889e0 100644
--- a/pith/mailindx.c
+++ b/pith/mailindx.c
@@ -2945,7 +2945,7 @@ format_index_index_line(INDEXDATA_S *idata)
if(!ifield->ielem){
ielem = new_ielem(&ifield->ielem);
- if(color = hdr_color(itokens[itokensinv[cdesc->ctype].ctype].name, NULL, ps_global->index_token_colors)){
+ if((color = hdr_color(itokens[itokensinv[cdesc->ctype].ctype].name, NULL, ps_global->index_token_colors)) != NULL){
if(pico_usingcolor()){
ielem->color = new_color_pair(color->fg, color->bg);
ielem->type = eTypeCol;
diff --git a/pith/mimedesc.c b/pith/mimedesc.c
index 097f5cda..80d2f840 100644
--- a/pith/mimedesc.c
+++ b/pith/mimedesc.c
@@ -222,7 +222,7 @@ describe_mime(struct mail_bodystruct *body, char *prefix, int num,
(description && description[0]) ? ", \"" : "",
(description && description[0]) ? description : "",
(description && description[0]) ? "\"": "");
- string[sizeof(string)-1] =- '\0';
+ string[sizeof(string)-1] = '\0';
a->description = cpystr(string);
a->body = body;
diff --git a/pith/osdep/mimedisp.c b/pith/osdep/mimedisp.c
index b1462685..2ee99293 100644
--- a/pith/osdep/mimedisp.c
+++ b/pith/osdep/mimedisp.c
@@ -28,6 +28,7 @@ static char rcsid[] = "$Id: mimedisp.c 942 2008-03-04 18:21:33Z hubert@u.washing
#include "mimedisp.h"
#include "../charconv/utf8.h"
#ifdef OSX_TARGET
+#include "../../pith/osdep/collate.h" /* for strucmp */
#include <Security/AuthSession.h>
#endif
diff --git a/pith/pine.hlp b/pith/pine.hlp
index bbce2c3d..b568f2c4 100644
--- a/pith/pine.hlp
+++ b/pith/pine.hlp
@@ -140,7 +140,7 @@ with help text for the config screen and the composer that didn't have any
reasonable place to be called from.
Dummy change to get revision in pine.hlp
============= h_revision =================
-Alpine Commit 81 2015-05-17 19:13:29
+Alpine Commit 82 2015-07-24 22:13:48
============= h_news =================
<HTML>
<HEAD>
@@ -243,6 +243,11 @@ Additions include:
be transformed to UTF-8 for further transformation through internal
and user defined filters for saving.
+ <LI> Add command line argument -smimedir, which allows to specify
+ the default path for a directory that contains the public, private,
+ and ca directories. This is useful in case a user has a backup of
+ old certificates that cannot be installed in the ~/.alpine-smime
+ dir.
</UL>
diff --git a/pith/send.c b/pith/send.c
index c0337aea..1ba6266f 100644
--- a/pith/send.c
+++ b/pith/send.c
@@ -5701,7 +5701,7 @@ pine_pipe_soutr_nl (void *stream, char *s)
size_t n;
while(*s && rv){
- if((n = (p = strstr(s, "\015\012")) ? p - s : strlen(s)) != 0)
+ if((n = (p = strstr(s, "\015\012")) ? p - s : strlen(s)) != 0){
while((rv = write(((PIPE_S *)stream)->out.d, s, n)) != n)
if(rv < 0){
if(errno != EINTR){
@@ -5713,6 +5713,7 @@ pine_pipe_soutr_nl (void *stream, char *s)
s += rv;
n -= rv;
}
+ }
if(p && rv){
s = p + 2; /* write UNIX EOL */
diff --git a/pith/smkeys.c b/pith/smkeys.c
index 35228914..bb77b030 100644
--- a/pith/smkeys.c
+++ b/pith/smkeys.c
@@ -285,7 +285,7 @@ resort_certificates(CertList **data, WhichCerts ctype)
for(i = 0; cl; cl = cl->next, i++)
if(ctype != Private){ /* ctype == Public or ctype == CACerts */
- for(t = s = cl->name; t = strstr(s, ".crt"); s = t+1);
+ for(t = s = cl->name; (t = strstr(s, ".crt")) != NULL; s = t+1);
if (s) *(s-1) = '\0';
}
j = i;
diff --git a/pith/state.h b/pith/state.h
index bfbe7973..4c908106 100644
--- a/pith/state.h
+++ b/pith/state.h
@@ -355,6 +355,7 @@ struct pine {
PRINT_S *print;
#ifdef SMIME
+ char *smimedir;
SMIME_STUFF_S *smime;
#ifdef PASSFILE
void *pwdcert; /* this is of type PERSONAL_CERT */
diff --git a/pith/stream.c b/pith/stream.c
index de7c1ea0..cfdcc9a5 100644
--- a/pith/stream.c
+++ b/pith/stream.c
@@ -3293,7 +3293,7 @@ streams_died(void)
else{
if(!sp_noticed_dead_stream(m)){
sp_set_noticed_dead_stream(m, 1);
- folder = STREAMNAME(m);
+ folder = (unsigned char *) STREAMNAME(m);
/*
* If a cached stream died and then we tried to use it
* it could cause problems. We could warn about it here
diff --git a/pith/takeaddr.c b/pith/takeaddr.c
index 1fb22ef6..233a6987 100644
--- a/pith/takeaddr.c
+++ b/pith/takeaddr.c
@@ -1804,7 +1804,7 @@ detach_vcard_att(MAILSTREAM *stream, long int msgno, struct mail_bodystruct *bod
if(dtext)
fs_give((void **)&dtext);
- res[count] = '\0';
+ res[count] = NULL;
return(res);
}
diff --git a/po/Makefile.in b/po/Makefile.in
index 5f5c7387..07cc6c64 100644
--- a/po/Makefile.in
+++ b/po/Makefile.in
@@ -11,7 +11,7 @@
# Origin: gettext-0.16
PACKAGE = alpine
-VERSION = 2.20.8
+VERSION = 2.20.9
PACKAGE_BUGREPORT = chappa@washington.edu
SHELL = /bin/sh
@@ -34,12 +34,12 @@ INSTALL_DATA = ${INSTALL} -m 644
# We use $(mkdir_p).
# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as
# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions,
-# ${SHELL} /run/media/chappa/Alpine/alpine/alpinegit/install-sh does not start with $(SHELL), so we add it.
+# ${SHELL} /run/media/echappa/Alpine/alpine/alpinegit/install-sh does not start with $(SHELL), so we add it.
# In automake >= 1.10, $(MKDIR_P) is derived from ${MKDIR_P}, which is defined
# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake
# versions, $(mkinstalldirs) and $(install_sh) are unused.
-mkinstalldirs = $(SHELL) ${SHELL} /run/media/chappa/Alpine/alpine/alpinegit/install-sh -d
-install_sh = $(SHELL) ${SHELL} /run/media/chappa/Alpine/alpine/alpinegit/install-sh
+mkinstalldirs = $(SHELL) ${SHELL} /run/media/echappa/Alpine/alpine/alpinegit/install-sh -d
+install_sh = $(SHELL) ${SHELL} /run/media/echappa/Alpine/alpine/alpinegit/install-sh
MKDIR_P = /usr/bin/mkdir -p
mkdir_p = $(MKDIR_P)
@@ -51,12 +51,12 @@ MSGFMT_ = /usr/bin/msgfmt
MSGFMT_no = /usr/bin/msgfmt
MSGFMT_yes = /usr/bin/msgfmt
MSGFMT = $(MSGFMT_$(USE_MSGCTXT))
-XGETTEXT_ = :
-XGETTEXT_no = :
-XGETTEXT_yes = :
+XGETTEXT_ = /usr/bin/xgettext
+XGETTEXT_no = /usr/bin/xgettext
+XGETTEXT_yes = /usr/bin/xgettext
XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT))
MSGMERGE = msgmerge
-MSGMERGE_UPDATE = : --update
+MSGMERGE_UPDATE = /usr/bin/msgmerge --update
MSGINIT = msginit
MSGCONV = msgconv
MSGFILTER = msgfilter
diff --git a/web/src/alpined.d/alpined.c b/web/src/alpined.d/alpined.c
index f75f03da..6936de9d 100644
--- a/web/src/alpined.d/alpined.c
+++ b/web/src/alpined.d/alpined.c
@@ -450,7 +450,7 @@ char **sml_getmsgs(void);
void sml_seen(void);
#ifdef ENABLE_LDAP
int peLdapQueryResults(Tcl_Interp *);
-int peLdapStrlist(Tcl_Interp *, Tcl_Obj *, char **);
+int peLdapStrlist(Tcl_Interp *, Tcl_Obj *, struct berval **);
int init_ldap_pname(struct pine *);
#endif /* ENABLE_LDAP */
char *strqchr(char *, int, int *, int);
@@ -10815,7 +10815,7 @@ peLoadConfig(struct pine *pine_state)
peInitVars(pine_state);
- if(s = peAuthException())
+ if((s = peAuthException()) != NULL)
return(s);
else if(ps_global->c_client_error[0])
return(ps_global->c_client_error);
@@ -11763,7 +11763,7 @@ peDoPost(METAENV *metaenv, BODY *body, char *fcc, CONTEXT_S **fcc_cntxtp, char *
if((recipients = (metaenv->env->to || metaenv->env->cc || metaenv->env->bcc))
&& call_mailer(metaenv, body, NULL, 0, NULL, NULL) < 0){
- if(s = peAuthException()){
+ if((s = peAuthException()) != NULL){
strcpy(errp, s);
}
else if(ps_global->last_error[0]){
@@ -12396,7 +12396,7 @@ peMsgCollector(Tcl_Interp *interp,
priority = "Lowest";
if(priority){
- if(pf = set_priority_header(md.metaenv, priority))
+ if((pf = set_priority_header(md.metaenv, priority)) != NULL)
pf->text = &pf->textbuf;
}
}
@@ -15209,7 +15209,8 @@ PELdapCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST ob
* {"dn" {{attrib {val, ...}}, ...}}
*/
char *whichrec = Tcl_GetStringFromObj(objv[3], NULL);
- char *tmpstr, *tmp, *tmp2, **vals, *a;
+ char *tmpstr, *tmp, *tmp2, *a;
+ struct berval **vals;
WPLDAPRES_S *curres;
LDAP_CHOOSE_S *winning_e = NULL;
LDAP_SERV_RES_S *trl;
@@ -15280,14 +15281,14 @@ PELdapCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST ob
winning_e->info_used), -1)) != TCL_OK)
return(TCL_ERROR);
resObj = Tcl_NewListObj(0, NULL);
- vals = ldap_get_values(winning_e->ld, winning_e->selected_entry, a);
+ vals = ldap_get_values_len(winning_e->ld, winning_e->selected_entry, a);
if(vals){
for(i = 0; vals[i]; i++){
if(Tcl_ListObjAppendElement(interp, resObj,
- Tcl_NewStringObj(vals[i], -1)) != TCL_OK)
+ Tcl_NewStringObj(vals[i]->bv_val, -1)) != TCL_OK)
return(TCL_ERROR);
}
- ldap_value_free(vals);
+ ldap_value_free_len(vals);
if(Tcl_ListObjAppendElement(interp, secObj, resObj) != TCL_OK)
return(TCL_ERROR);
}
@@ -15517,7 +15518,7 @@ peLdapQueryResults(Tcl_Interp *interp)
e != NULL;
e = ldap_next_entry(trl->ld, e)){
char *dn;
- char **cn, **org, **unit, **title, **mail, **sn;
+ struct berval **cn, **org, **unit, **title, **mail, **sn;
dn = NULL;
cn = org = title = unit = mail = sn = NULL;
@@ -15527,15 +15528,15 @@ peLdapQueryResults(Tcl_Interp *interp)
&mail, &sn);
if(cn){
if(Tcl_ListObjAppendElement(interp, itemObj,
- Tcl_NewStringObj(cn[0], -1)) != TCL_OK)
+ Tcl_NewStringObj(cn[0]->bv_val, -1)) != TCL_OK)
return(TCL_ERROR);
- ldap_value_free(cn);
+ ldap_value_free_len(cn);
}
else if(sn){
if(Tcl_ListObjAppendElement(interp, itemObj,
- Tcl_NewStringObj(sn[0], -1)) != TCL_OK)
+ Tcl_NewStringObj(sn[0]->bv_val, -1)) != TCL_OK)
return(TCL_ERROR);
- ldap_value_free(sn);
+ ldap_value_free_len(sn);
}
else{
dn = ldap_get_dn(trl->ld, e);
@@ -15563,13 +15564,13 @@ peLdapQueryResults(Tcl_Interp *interp)
if(Tcl_ListObjAppendElement(interp, resObj, itemObj) != TCL_OK)
return(TCL_ERROR);
if(title)
- ldap_value_free(title);
+ ldap_value_free_len(title);
if(unit)
- ldap_value_free(unit);
+ ldap_value_free_len(unit);
if(org)
- ldap_value_free(org);
+ ldap_value_free_len(org);
if(mail)
- ldap_value_free(mail);
+ ldap_value_free_len(mail);
}
}
if(Tcl_ListObjAppendElement(interp, secObj, resObj) != TCL_OK)
@@ -15582,16 +15583,16 @@ peLdapQueryResults(Tcl_Interp *interp)
}
int
-peLdapStrlist(Tcl_Interp *interp, Tcl_Obj *itemObj, char **strl)
+peLdapStrlist(Tcl_Interp *interp, Tcl_Obj *itemObj, struct berval **strl)
{
Tcl_Obj *strlObj;
int i;
strlObj = Tcl_NewListObj(0, NULL);
if(strl){
- for(i = 0; strl[i] && strl[i][0]; i++){
+ for(i = 0; ALPINE_LDAP_usable(strl, i); i++){
if(Tcl_ListObjAppendElement(interp, strlObj,
- Tcl_NewStringObj(strl[i], -1)) != TCL_OK)
+ Tcl_NewStringObj(strl[i]->bv_val, -1)) != TCL_OK)
return(TCL_ERROR);
}
}
@@ -16265,7 +16266,7 @@ peRssFetch(Tcl_Interp *interp, char *link)
so_puts(feed_so, p);
}
else{ /* in header, grok fields */
- if(q = strchr(p,':')){
+ if((q = strchr(p,':')) != NULL){
int l = q - p;
*q++ = '\0';
diff --git a/web/src/alpined.d/ldap.c b/web/src/alpined.d/ldap.c
index 3e6bf99f..4107b375 100644
--- a/web/src/alpined.d/ldap.c
+++ b/web/src/alpined.d/ldap.c
@@ -40,7 +40,8 @@ ldap_addr_select(ps, ac, result, style, wp_err, srchstr)
{
LDAP_SERV_RES_S *res_list, *tmp_rl;
LDAPMessage *e, *tmp_e;
- char **mail = NULL, *a;
+ struct berval **mail = NULL;
+ char *a;
int got_n_entries = 0, retval = -5;
BerElement *ber;
@@ -59,11 +60,11 @@ ldap_addr_select(ps, ac, result, style, wp_err, srchstr)
a != NULL;
a = ldap_next_attribute(tmp_rl->ld, tmp_e, ber)){
if(strcmp(a, tmp_rl->info_used->mailattr) == 0){
- mail = ldap_get_values(tmp_rl->ld, tmp_e, a);
+ mail = ldap_get_values_len(tmp_rl->ld, tmp_e, a);
break;
}
}
- if(mail && mail[0] && mail[0][0]){
+ if(ALPINE_LDAP_can_use(mail)){
retval = 0;
if(result){
(*result) =
@@ -91,7 +92,8 @@ peLdapPname(mailbox, host)
char *host;
{
char *retstr = NULL;
- char adrstr[1024], **cn;
+ char adrstr[1024];
+ struct berval **cn = NULL;
int ecnt;
CUSTOM_FILT_S *filter;
WP_ERR_S wp_err;
@@ -125,8 +127,8 @@ peLdapPname(mailbox, host)
peLdapEntryParse(trl, e, &cn, NULL, NULL, NULL,
NULL, NULL);
if(cn){
- retstr = cpystr(cn[0]);
- ldap_value_free(cn);
+ retstr = cpystr(cn[0]->bv_val);
+ ldap_value_free_len(cn);
}
}
}
@@ -138,14 +140,15 @@ peLdapEntryParse(trl, e, ret_cn, ret_org, ret_unit,
ret_title, ret_mail, ret_sn)
LDAP_SERV_RES_S *trl;
LDAPMessage *e;
- char ***ret_cn;
- char ***ret_org;
- char ***ret_unit;
- char ***ret_title;
- char ***ret_mail;
- char ***ret_sn;
+ struct berval ***ret_cn;
+ struct berval ***ret_org;
+ struct berval ***ret_unit;
+ struct berval ***ret_title;
+ struct berval ***ret_mail;
+ struct berval ***ret_sn;
{
- char *a, **cn, **org, **unit, **title, **mail, **sn;
+ char *a;
+ struct berval **cn, **org, **unit, **title, **mail, **sn;
BerElement *ber;
cn = org = title = unit = mail = sn = NULL;
@@ -156,28 +159,28 @@ peLdapEntryParse(trl, e, ret_cn, ret_org, ret_unit,
dprint((9, " %s", a));
if(strcmp(a, trl->info_used->cnattr) == 0){
if(!cn)
- cn = ldap_get_values(trl->ld, e, a);
+ cn = ldap_get_values_len(trl->ld, e, a);
- if(cn && !(cn[0] && cn[0][0])){
- ldap_value_free(cn);
+ if(cn && !ALPINE_LDAP_can_use(cn)){
+ ldap_value_free_len(cn);
cn = NULL;
}
}
else if(strcmp(a, trl->info_used->mailattr) == 0){
if(!mail)
- mail = ldap_get_values(trl->ld, e, a);
+ mail = ldap_get_values_len(trl->ld, e, a);
}
else if(strcmp(a, "o") == 0){
if(!org)
- org = ldap_get_values(trl->ld, e, a);
+ org = ldap_get_values_len(trl->ld, e, a);
}
else if(strcmp(a, "ou") == 0){
if(!unit)
- unit = ldap_get_values(trl->ld, e, a);
+ unit = ldap_get_values_len(trl->ld, e, a);
}
else if(strcmp(a, "title") == 0){
if(!title)
- title = ldap_get_values(trl->ld, e, a);
+ title = ldap_get_values_len(trl->ld, e, a);
}
our_ldap_memfree(a);
@@ -190,10 +193,10 @@ peLdapEntryParse(trl, e, ret_cn, ret_org, ret_unit,
if(strcmp(a, trl->info_used->snattr) == 0){
if(!sn)
- sn = ldap_get_values(trl->ld, e, a);
+ sn = ldap_get_values_len(trl->ld, e, a);
- if(sn && !(sn[0] && sn[0][0])){
- ldap_value_free(sn);
+ if(sn && !ALPINE_LDAP_can_use(sn)){
+ ldap_value_free_len(sn);
sn = NULL;
}
}
@@ -202,22 +205,22 @@ peLdapEntryParse(trl, e, ret_cn, ret_org, ret_unit,
}
if(ret_cn)
(*ret_cn) = cn;
- else if(cn) ldap_value_free(cn);
+ else if(cn) ldap_value_free_len(cn);
if(ret_org)
(*ret_org) = org;
- else if(org) ldap_value_free(org);
+ else if(org) ldap_value_free_len(org);
if(ret_unit)
(*ret_unit) = unit;
- else if(unit) ldap_value_free(unit);
+ else if(unit) ldap_value_free_len(unit);
if(ret_title)
(*ret_title) = title;
- else if(title) ldap_value_free(title);
+ else if(title) ldap_value_free_len(title);
if(ret_mail)
(*ret_mail) = mail;
- else if(mail) ldap_value_free(mail);
+ else if(mail) ldap_value_free_len(mail);
if(ret_sn)
(*ret_sn) = sn;
- else if(sn) ldap_value_free(sn);
+ else if(sn) ldap_value_free_len(sn);
return 0;
}
diff --git a/web/src/alpined.d/ldap.h b/web/src/alpined.d/ldap.h
index 2ada2908..6084c7c2 100644
--- a/web/src/alpined.d/ldap.h
+++ b/web/src/alpined.d/ldap.h
@@ -39,8 +39,9 @@ extern WPLDAP_S *wpldap_global;
char *peLdapPname(char *, char *);
int peLdapEntryParse(LDAP_SERV_RES_S *, LDAPMessage *,
- char ***, char ***, char ***, char ***,
- char ***, char ***);
+ struct berval ***, struct berval ***,
+ struct berval ***, struct berval ***,
+ struct berval ***, struct berval ***);
WPLDAPRES_S *free_wpldapres(WPLDAPRES_S *);
#endif /* ENABLE_LDAP */