summaryrefslogtreecommitdiff
path: root/pith/detach.c
diff options
context:
space:
mode:
Diffstat (limited to 'pith/detach.c')
-rw-r--r--pith/detach.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/pith/detach.c b/pith/detach.c
index aebadae6..5c4b08e7 100644
--- a/pith/detach.c
+++ b/pith/detach.c
@@ -83,7 +83,7 @@ int df_trigger_cmp(long, char *, LT_INS_S **, void *);
int df_trigger_cmp_text(char *, char *);
int df_trigger_cmp_lwsp(char *, char *);
int df_trigger_cmp_start(char *, char *);
-int fetch_readc_cleanup(void);
+int fetch_readc_cleanup(int);
char *fetch_gets(readfn_t, void *, unsigned long, GETS_DATA *);
int fetch_readc(unsigned char *);
@@ -644,7 +644,7 @@ fetch_readc_init(FETCH_READC_S *frd, MAILSTREAM *stream, long int msgno,
int
-fetch_readc_cleanup(void)
+fetch_readc_cleanup(int store)
{
if(g_fr_desc){
if(g_fr_desc->we_turned_on)
@@ -653,7 +653,7 @@ fetch_readc_cleanup(void)
if(g_fr_desc->chunk && g_fr_desc->free_me)
fs_give((void **) &g_fr_desc->chunk);
- if(g_fr_desc->cache){
+ if(g_fr_desc->cache && store){
SIZEDTEXT text;
text.size = g_fr_desc->size;
@@ -695,7 +695,7 @@ fetch_readc(unsigned char *c)
extern void gf_error(char *);
if(ps_global->intr_pending){
- (void) fetch_readc_cleanup();
+ (void) fetch_readc_cleanup(0);
/* TRANSLATORS: data transfer was interrupted by something */
gf_error(g_fr_desc->error ? g_fr_desc->error :_("Transfer interrupted!"));
/* no return */
@@ -822,13 +822,13 @@ fetch_readc(unsigned char *c)
mail_parameters(g_fr_desc->stream, SET_GETS, old_gets);
if(!rv){
- (void) fetch_readc_cleanup();
+ (void) fetch_readc_cleanup(0);
gf_error("Partial fetch failed!");
/* no return */
}
}
else /* clean up and return done. */
- return(fetch_readc_cleanup());
+ return(fetch_readc_cleanup(1));
}
*c = *g_fr_desc->chunkp++;