diff options
-rw-r--r-- | fetchmail.c | 2 | ||||
-rw-r--r-- | fetchmail.h | 2 | ||||
-rw-r--r-- | rcfile_y.y | 4 | ||||
-rw-r--r-- | transact.c | 9 |
4 files changed, 10 insertions, 7 deletions
diff --git a/fetchmail.c b/fetchmail.c index e4a8cb72..6b26a6b2 100644 --- a/fetchmail.c +++ b/fetchmail.c @@ -1106,6 +1106,8 @@ static int load_params(int argc, char **argv, int optind) exit(PS_SYNTAX); } #endif /* SSL_ENABLE */ + /* one global gets treated specially */ + DEFAULT(run.showdots, run.poll_interval==0 || nodetach); #undef DEFAULT /* diff --git a/fetchmail.h b/fetchmail.h index edcb57c8..f13b1205 100644 --- a/fetchmail.h +++ b/fetchmail.h @@ -508,7 +508,7 @@ void stuff_warning(); void close_warning_by_mail(struct query *, struct msgblk *); /* rfc822.c: RFC822 header parsing */ -unsigned char *reply_hack(unsigned char *, const unsigned char *); +unsigned char *reply_hack(unsigned char *, const unsigned char *, int *); unsigned char *nxtaddr(const unsigned char *); /* uid.c: UID support */ @@ -106,8 +106,8 @@ statement : SET LOGFILE optmap STRING {run.logfile = prependdir ($4, rcfiledir); | SET NO SYSLOG {run.use_syslog = FALSE;} | SET INVISIBLE {run.invisible = TRUE;} | SET NO INVISIBLE {run.invisible = FALSE;} - | SET SHOWDOTS {run.showdots = TRUE;} - | SET NO SHOWDOTS {run.showdots = FALSE;} + | SET SHOWDOTS {run.showdots = FLAG_TRUE;} + | SET NO SHOWDOTS {run.showdots = FLAG_FALSE;} /* * The way the next two productions are written depends on the fact that @@ -448,7 +448,7 @@ int readheaders(int sock, */ if ( n && buf[n-1] != '\n' ) { overlong = TRUE; - rline = (char *) realloc(line, linelen); + rline = (char *) realloc(line, linelen + 1); if (rline == NULL) { free (line); @@ -456,6 +456,7 @@ int readheaders(int sock, } line = rline; memcpy(line + linelen - n, buf, n); + line[linelen] = '\0'; ch = ' '; /* So the next iteration starts */ continue; } @@ -551,7 +552,7 @@ int readheaders(int sock, sizeticker += linelen; while (sizeticker >= SIZETICKER) { - if ((!run.use_syslog && !isafile(1)) || run.showdots) + if (outlevel > O_SILENT && run.showdots) { fputc('.', stdout); fflush(stdout); @@ -693,7 +694,7 @@ int readheaders(int sock, } if (ctl->rewrite) - line = reply_hack(line, ctl->server.truename); + line = reply_hack(line, ctl->server.truename, &linelen); /* * OK, this is messy. If we're forwarding by SMTP, it's the @@ -1337,7 +1338,7 @@ int readbody(int sock, struct query *ctl, flag forward, int len) sizeticker += linelen; while (sizeticker >= SIZETICKER) { - if (outlevel > O_SILENT && (((run.poll_interval == 0 || nodetach) && !isafile(1)) || run.showdots)) + if (outlevel > O_SILENT && run.showdots) { fputc('.', stdout); fflush(stdout); |