summaryrefslogtreecommitdiff
path: root/alpine/adrbkcmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'alpine/adrbkcmd.c')
-rw-r--r--alpine/adrbkcmd.c47
1 files changed, 30 insertions, 17 deletions
diff --git a/alpine/adrbkcmd.c b/alpine/adrbkcmd.c
index c22ca312..e9af5915 100644
--- a/alpine/adrbkcmd.c
+++ b/alpine/adrbkcmd.c
@@ -1,10 +1,6 @@
-#if !defined(lint) && !defined(DOS)
-static char rcsid[] = "$Id: adrbkcmd.c 1074 2008-06-04 00:08:43Z hubert@u.washington.edu $";
-#endif
-
/*
* ========================================================================
- * Copyright 2013-2021 Eduardo Chappa
+ * Copyright 2013-2022 Eduardo Chappa
* Copyright 2006-2008 University of Washington
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -321,7 +317,7 @@ view_abook_entry(struct pine *ps, long int cur_line)
so_give(&in_store);
if(sargs.proc.data.i != VIEW_ABOOK_NONE){
- long old_l_p_p, old_top_ent, old_cur_row;
+ long old_l_p_p = 0, old_top_ent = 0, old_cur_row = 0;
if(sargs.proc.data.i == VIEW_ABOOK_WARPED){
/*
@@ -1684,7 +1680,7 @@ ab_modify_abook_list(int edit, int global, int abook_num, char *def_serv, char *
struct headerentry *he;
PICO pbf;
STORE_S *msgso;
- int editor_result, i, how_many_in_list, new_abook_num, num_in_list;
+ int editor_result, i, how_many_in_list = 0, new_abook_num, num_in_list;
int ret = 0;
char *server, *folder, *nickname;
char *new_item = NULL;
@@ -2185,11 +2181,12 @@ convert_abook_to_remote(struct pine *ps, PerAddrBook *pab, char *rem_folder_pref
if(*rem_abook){
file = cpystr(rem_abook);
if(pab->abnick){
- nick = (char *)fs_get((MAX(strlen(pab->abnick),strlen("Address Book"))+8) * sizeof(char));
- snprintf(nick, sizeof(nick), "Remote %s",
+ int len = MAX(strlen(pab->abnick),strlen("Address Book"))+8;
+ nick = (char *)fs_get(len * sizeof(char));
+ snprintf(nick, len, "Remote %s",
(pab->abnick && !strcmp(pab->abnick, DF_ADDRESSBOOK))
? "Address Book" : pab->abnick);
- nick[sizeof(nick)-1] = '\0';
+ nick[len-1] = '\0';
}
else
nick = cpystr("Remote Address Book");
@@ -2629,7 +2626,7 @@ convert_to_remote_config(struct pine *ps, int edit_exceptions)
char rem_pinerc_prefix[MAILTMPLEN];
char *beg, *end;
CONTEXT_S *context;
- int abooks, sigs;
+ int abooks = 0, sigs = 0;
if(edit_exceptions){
/* TRANSLATORS: The exceptions command (X) was typed but it doesn't make sense */
@@ -3029,7 +3026,7 @@ int
ab_del_abook(long int cur_line, int command_line, char **err)
{
int abook_num, varnum, delete_data = 0,
- num_in_list, how_many_in_list, i, cnt, warn_about_revert = 0;
+ num_in_list, how_many_in_list = 0, i, cnt, warn_about_revert = 0;
char **list, **new_list, **t, **lval;
char tmp[200];
PerAddrBook *pab;
@@ -4161,7 +4158,7 @@ int
ab_export(struct pine *ps, long int cur_line, int command_line, int agg)
{
int ret = 0, i, retflags = GER_NONE;
- int r, orig_errno, failure = 0;
+ int r, orig_errno = 0, failure = 0;
struct variable *vars = ps->vars;
char filename[MAXPATH+1], full_filename[MAXPATH+1];
STORE_S *store;
@@ -4503,7 +4500,7 @@ int
ab_forward(struct pine *ps, long int cur_line, int agg)
{
AddrScrn_Disp *dl;
- AdrBk_Entry *abe;
+ AdrBk_Entry *abe = NULL;
ENVELOPE *outgoing = NULL;
BODY *pb, *body = NULL;
PART **pp;
@@ -6159,7 +6156,7 @@ ab_agg_delete(struct pine *ps, int agg)
prompt[sizeof(prompt)-1] = '\0';
ch = want_to(prompt, 'n', 'n', NO_HELP, WT_NORM);
if(ch == 'y'){
- adrbk_cntr_t newelnum, flushelnum = NO_NEXT;
+ adrbk_cntr_t newelnum = NO_NEXT, flushelnum = NO_NEXT;
DL_CACHE_S dlc_save, dlc_restart, *dlc;
int we_cancel = 0;
int top_level_display;
@@ -6341,7 +6338,7 @@ ab_agg_delete(struct pine *ps, int agg)
int
single_entry_delete(AdrBk *abook, long int cur_line, int *warped)
{
- char ch, *cmd, *dname;
+ char ch, *cmd = NULL, *dname = NULL;
char prompt[200];
int rc;
register AddrScrn_Disp *dl;
@@ -7313,7 +7310,23 @@ prep_ldap_for_viewing(struct pine *ps, LDAP_CHOOSE_S *winning_e, SourceType srct
}
}
else{
- snprintf(obuf, sizeof(obuf), "%s", vals[i]->bv_val);
+ int is_binary = 0;
+ char *tmp2;
+
+ for(tmp = strchr(a, ';'); tmp != NULL; tmp = tmp2){
+ tmp2 = strchr(++tmp, ';');
+ if(tmp2)
+ *tmp2 = '\0';
+ is_binary = !strucmp(tmp, "binary");
+ if(tmp2)
+ *tmp2 = ';';
+ if(is_binary)
+ break;
+ }
+
+ snprintf(obuf, sizeof(obuf), "%s", (is_binary &&
+ vals[i]->bv_val && vals[i]->bv_val[0] != '\0') ?
+ _("[ Binary Data ]") : vals[i]->bv_val);
obuf[sizeof(obuf)-1] = '\0';
if((tmp = fold(obuf, width, width,