diff options
Diffstat (limited to 'maildir')
| -rw-r--r-- | maildir/maildirkeywords2.c | 26 | 
1 files changed, 25 insertions, 1 deletions
| diff --git a/maildir/maildirkeywords2.c b/maildir/maildirkeywords2.c index 4bcbcff..eaa8fbd 100644 --- a/maildir/maildirkeywords2.c +++ b/maildir/maildirkeywords2.c @@ -533,9 +533,33 @@ static void scan_updates(const char *dir,  				unlink(q);  				free(q);  			} -  			(*updateInfo)[in].highestN=x;  		} +		else if (x < (*updateInfo)[in].highestN) +		{ +			char b[NUMBUFSIZE]; +			char *r; + +			libmail_str_size_t(x, b); + +			r=de->d_name; +			if (*r == '.') +				r=strchr(r+1, '.')+1; + +			q=malloc(strlen(dir)+strlen(r)+ +				 strlen(b)+4); + +			if (!q) +			{ +				closedir(dirp); +				info->errorOccured= -1; +				return; +			} + +			sprintf(q, "%s/.%s.%s", dir, b, r); +			unlink(q); +			free(q); +		}  	}  	if (dirp) | 
