atom feed20 messages in net.sourceforge.lists.courier-users[courier-users] Proposing new functio...
FromSent OnAttachments
Courier UserOct 1, 2003 9:20 am 
Eduardo RoldanOct 1, 2003 11:34 am 
Mitch (WebCob)Oct 1, 2003 12:05 pm 
Malcolm WeirOct 1, 2003 12:32 pm 
Sam VarshavchikOct 1, 2003 2:53 pm 
Eduardo RoldanOct 1, 2003 4:51 pm 
Sam VarshavchikOct 1, 2003 7:32 pm 
Eduardo RoldanOct 1, 2003 8:55 pm 
David JonesOct 2, 2003 5:02 am 
Julian MehnleOct 2, 2003 5:18 am 
Jon NelsonOct 2, 2003 6:48 am 
Gordon MessmerOct 2, 2003 9:08 am 
Courier UserOct 3, 2003 10:00 am 
Carlos PazOct 5, 2003 6:58 pm 
Jon NelsonOct 5, 2003 8:12 pm 
Courier UserOct 6, 2003 6:27 am 
Jon NelsonOct 6, 2003 7:58 am 
Theo Cabrerizo DiemOct 8, 2003 10:13 am 
Daniel HigginsOct 8, 2003 11:52 am 
Gordon MessmerOct 8, 2003 12:01 pm 
Subject:[courier-users] Proposing new functions for maildropfilter
From:Courier User (cour@asfast.net)
Date:Oct 1, 2003 9:20:42 am
List:net.sourceforge.lists.courier-users

There are some functions that I would like to see in maildrop's filtering language, and I'm wondering how you folks feel about me writing these functions and then supplying patches for maildrop?

If there is enough interest in this, I will start work on this right away in my spare time. I would then have a prototype ready within a week or so.

The following group of functions are intended to replace the following type of construct:

INVOKE=`/bin/test -f $FILE 1>/dev/null 2>&1` if ( $RETURNCODE != 0 ) { ... etc. ... }

The following alternative functions avoid the overhead of forking a subprocess, setting up a pipe to capture its output, and then discarding the output once the command finishes ... all to simply query the process's return code for a true/false value that could be gotten much more quickly and easily via a system library function, and in some cases, to get a simple side-effect.

isfile(item) returns 1 if the named item is an existing file; otherwise returns 0

isdir(item) returns 1 if the named item is an existing directory; otherwise returns 0

isreadable(item) returns 1 if the named item is an existing and readable file or directory; otherwise returns 0

iswritable(item) returns 1 if the named item is an existing and writable file or directory; otherwise returns 0

isexecutable(item) returns 1 if the named item is an existing and executable file, or a directory into which it is possible to cd; otherwise returns 0

unlink(file) tries to remove the file; returns 1 if successful, otherwise 0

rename(old, new) tries to rename the old item to have the new name; has the same semantics as the Unix rename function; returns 1 on success, otherwise 0

rmdir(dir) tries to remove the directory; has the same semantics as the Unix library function in that it will only remove an empty directory; returns 1 if successful, otherwise 0

mkdir(dir, mode) tries to make an empty directory; has the same semantics as the Unix library function in that the you have to specify the mode of the directory that's going to be created; returns 1 if successful, otherwise 0