Hi! I forgot to add that I _have read_ the FAQ, namely the G5 question/answer ;):
> G5. I want to make fetchmail behave like Outlook Express. > > The second-most-requested feature for fetchmail, after content-based > filtering, is the ability to have it remove messages from a maildrop > after N days, > ... > This feature won't be added either. Repeat after me: fetchmail's job > is transport, not policy. If you want this, write a Perl or Python > script, Here is my opinion on the matter: fetchmail is not a transport only because it does auth info keeping and authentication. Yet, I did try script solution (in Python) but this had problems with SSL and used external config file. While it's perfectly possible to solve SSL issues (IMHO) and parse .fetchmailrc to retrieve auth data from there, I still think the job can be done better in fetchmail itself. And anyway, there _are_ already flush and keep options, which are not strictly related to transport, but rather to policy instead. Also, preconnect/postconnect options are not enough to allow easy extensibility of fetchmail by means of scripting, IMHO. Such things as removing messages on server by some criteria should be done when connection is established, not before (preconnect) or after (postconnect), so that you don't need to auth twice. And fetchmail _could_ e.g. lend the established/authenticated connection to some external script which performes these tasks, but this in turn interferes with NEW/SEEN flags on messages etc. That's why again I'd prefer to implement the feature in fetchmail itself. P.S. when adding "maxkeep" I hit a problem with long_option numbering. First time I assigned 63 to LA_MAXKEEP, and this interfered with '?' which has the same code (63 == 0x3f). Compiler complained about duplicate "case ...:" values. So I redefined LA_MAXKEEP as 163 (in the proposed patch). Problem is in having LA_ constants defined in a range that intersects with e.g. [?0-9], and is going to intersect with [A-Z] if you add further sequential LA_ definitions. Here is why this intersection matters (options.c): > while (!errflag && > (c = getopt_long(argc,argv,shortoptions, > longoptions, &option_index)) != -1) > { > switch (c) { > case 'V': > case LA_VERSION: > versioninfo = TRUE; > break; Here you see that 'chars' and LA_ constants are used interchangeably. That's why I propose to separate ranges explicitly by assigning numbers to LA_ constants starting from e.g. 300: > #define LA_HELP 301 > #define LA_VERSION 302 and so on. -- WBR, xrgtn -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]