From b74b7a0d9eb48dbe3ea773885135ecb924d8a902 Mon Sep 17 00:00:00 2001 From: Eduardo Chappa Date: Thu, 12 May 2016 19:51:05 -0600 Subject: * Minor fix to documentation. * Add the configuration variable "default-directories", which is called "Extra Directories for Save" in the configuration screen. This variable saves a list of directories that are readily accessible for save or export of attachments. This makes it easier to save attachments in directories that are hard to navigate to, or that are accessed frequently. --- pith/conf.c | 7 +++++++ pith/conf.h | 1 + pith/conftype.h | 1 + pith/hist.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ pith/hist.h | 3 +++ pith/pine.hlp | 38 +++++++++++++++++++++++++++++++++++--- 6 files changed, 98 insertions(+), 3 deletions(-) (limited to 'pith') diff --git a/pith/conf.c b/pith/conf.c index 6e320527..79243222 100644 --- a/pith/conf.c +++ b/pith/conf.c @@ -244,6 +244,8 @@ CONF_TXT_T cf_text_image_viewer[] = "Program to view images (e.g. GIF or TIFF at CONF_TXT_T cf_text_browser[] = "List of programs to open Internet URLs (e.g. http or ftp references)."; +CONF_TXT_T cf_text_history[] = "List of directories that are preferred locations to save or export attachments."; + CONF_TXT_T cf_text_inc_startup[] = "Sets message which cursor begins on. Choices: first-unseen, first-recent,\n# first-important, first-important-or-unseen, first-important-or-recent,\n# first, last. Default: \"first-unseen\"."; CONF_TXT_T cf_pruning_rule[] = "Allows a default answer for the prune folder questions. Choices: yes-ask,\n# yes-no, no-ask, no-no, ask-ask, ask-no. Default: \"ask-ask\"."; @@ -656,6 +658,8 @@ static struct variable variables[] = { NULL, cf_text_mimetype_path}, {"url-viewers", 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, "URL-Viewers", cf_text_browser}, +{"default-directories", 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, + "Extra Directories for Save", cf_text_history}, {"max-remote-connections", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, "Maximum Remote Connections", cf_text_maxremstreams}, {"stay-open-folders", 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, @@ -2018,6 +2022,7 @@ init_vars(struct pine *ps, void (*cmds_f) (struct pine *, char **)) #endif /* _WINDOWS */ set_current_val(&vars[V_IMAGE_VIEWER], TRUE, TRUE); set_current_val(&vars[V_BROWSER], TRUE, TRUE); + set_current_val(&vars[V_HISTORY], TRUE, TRUE); set_current_val(&vars[V_SMTP_SERVER], TRUE, TRUE); set_current_val(&vars[V_COMP_HDRS], TRUE, TRUE); set_current_val(&vars[V_CUSTOM_HDRS], TRUE, TRUE); @@ -7868,6 +7873,8 @@ config_help(int var, int feature) return(h_config_newsrc_path); case V_BROWSER : return(h_config_browser); + case V_HISTORY : + return(h_config_history); #if defined(DOS) || defined(OS2) case V_FILE_DIR : return(h_config_file_dir); diff --git a/pith/conf.h b/pith/conf.h index acdf7868..1fb95fcd 100644 --- a/pith/conf.h +++ b/pith/conf.h @@ -343,6 +343,7 @@ #define GLO_THREAD_EXP_CHAR vars[V_THREAD_EXP_CHAR].global_val.p #define VAR_THREAD_LASTREPLY_CHAR vars[V_THREAD_LASTREPLY_CHAR].current_val.p #define GLO_THREAD_LASTREPLY_CHAR vars[V_THREAD_LASTREPLY_CHAR].global_val.p +#define VAR_HISTORY vars[V_HISTORY].current_val.l #if defined(DOS) || defined(OS2) #define VAR_FILE_DIR vars[V_FILE_DIR].current_val.p diff --git a/pith/conftype.h b/pith/conftype.h index afae74ec..9549e49d 100644 --- a/pith/conftype.h +++ b/pith/conftype.h @@ -126,6 +126,7 @@ typedef enum { V_PERSONAL_NAME = 0 , V_MAILCAP_PATH , V_MIMETYPE_PATH , V_BROWSER + , V_HISTORY , V_MAXREMSTREAM , V_PERMLOCKED , V_INCCHECKTIMEO diff --git a/pith/hist.c b/pith/hist.c index d42b67a6..9d5022c9 100644 --- a/pith/hist.c +++ b/pith/hist.c @@ -57,6 +57,57 @@ free_hist(HISTORY_S **history) } } +char * +hist_in_pos(int pos, char **list, int llen, HISTORY_S *hist, int n) +{ + char *p; + int i; + + if(pos < 0 || pos > llen + n) + return NULL; + + if(pos < llen) + return list[pos]; + + hist->curindex = hist->origindex; /* reset history */ + for(i = 0; i < n-1; i++) + p = get_prev_hist_dir(hist); + p = get_prev_hist_dir(hist); + for(i = 0; i < pos - llen; i++) + p = get_next_hist_dir(hist); + return p; +} + + +char * +get_next_hist_dir(HISTORY_S *history) +{ + return get_next_hist(history, NULL, 0, NULL); +} + + +char * +get_prev_hist_dir(HISTORY_S *history) +{ + int nextcurindex; + + if(!(history && history->histsize > 0)) + return NULL; + + nextcurindex = (history->curindex + 1) % history->histsize; + + /* already at start of history */ + if(nextcurindex == history->origindex + || !(history->hist[nextcurindex] && history->hist[nextcurindex]->str + && history->hist[nextcurindex]->str[0])) + return NULL; + + history->curindex = nextcurindex; + + return((history->hist[history->curindex] && history->hist[history->curindex]->str) + ? history->hist[history->curindex]->str : NULL); +} + char * get_prev_hist(HISTORY_S *history, char *savethis, unsigned saveflags, void *cntxt) diff --git a/pith/hist.h b/pith/hist.h index 8217bc5b..65082998 100644 --- a/pith/hist.h +++ b/pith/hist.h @@ -43,6 +43,9 @@ void init_hist(HISTORY_S **, int); void free_hist(HISTORY_S **); char *get_prev_hist(HISTORY_S *, char *, unsigned, void *); char *get_next_hist(HISTORY_S *, char *, unsigned, void *); +char *get_prev_hist_dir(HISTORY_S *); +char *get_next_hist_dir(HISTORY_S *); +char *hist_in_pos(int, char **, int, HISTORY_S *, int); void save_hist(HISTORY_S *, char *, unsigned, void *); int items_in_hist(HISTORY_S *); void add_to_histlist(HISTORY_S **); diff --git a/pith/pine.hlp b/pith/pine.hlp index 9eb5575b..af5b06b7 100644 --- a/pith/pine.hlp +++ b/pith/pine.hlp @@ -194,6 +194,13 @@ Additions include: that allows users to ignore errors in the computation of the size of a message from defective servers. +
  • Add the configuration variable "default-directories", which is called + + variable saves a list of directories that are readily accessible + for save or export of attachments. This makes it easier to save + attachments in directories that are hard to navigate to, or that + are accessed frequently. +
  • Ignore message from smtp server after a successful authentication challenge. @@ -4123,6 +4130,7 @@ There are also additional details on
  • OPTION:
  • OPTION:
  • OPTION: +
  • OPTION:
  • OPTION:
  • OPTION:
  • OPTION: @@ -20483,9 +20491,9 @@ example.
    This option makes sense only for IMAP servers that do not perform a SEARCH command correctly. If your filtering rules fail to filter some messages, that should have been filtered, then this -option will make Alpine download all data necessary to perform that search. -There is a performance penalty when using this option. Downloading the -data to perfom the search will take longer than requesting the IMAP +option will make Alpine download all data necessary data to perform that +search. There is a performance penalty when using this option. Downloading +the data to perfom the search will take longer than requesting the IMAP server to perform the filtering, but the filtering will be done correctly.

    @@ -27220,6 +27228,30 @@ environment: for advanced users and systems administrators

    If you are unsure what browsers are available on your system or how to specify them in Alpine's option for best usability, contact your local computing support staff. +

    +

    +<End of help on this topic> + + +====== h_config_history ===== + + +OPTION: <!--#echo var="VAR_default-directories"--> + + +

    OPTION:

    +

    +This option allows you to input a list of directories that Alpine will offer +for you to use when you are saving or exporting attachments. This is useful +when navigating to specific directories becomes too tedious, or when you +need to do this on a daily basis, and want Alpine to remember this on a +permanent basis. +

    +The list of directories saved here can be accessed using the ^Y and ^V commands +in the save prompt for attachments, or the export command. +

    -- cgit v1.2.3-70-g09d2