ph10 2006/03/02 15:14:00 GMT
Modified files:
exim-doc/doc-misc WishList
Log:
Added some musings to the WishList.
Revision Changes Path
1.63 +28 -0 exim/exim-doc/doc-misc/WishList
Index: WishList
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-misc/WishList,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -r1.62 -r1.63
--- WishList 2 Mar 2006 12:25:48 -0000 1.62
+++ WishList 2 Mar 2006 15:13:59 -0000 1.63
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-misc/WishList,v 1.62 2006/03/02 12:25:48 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-misc/WishList,v 1.63 2006/03/02 15:13:59 ph10 Exp $
EXIM 4 WISH LIST
----------------
@@ -1969,6 +1969,34 @@
The natural syntax for this would be to use a regex, like this:
${lookup regex{/some/file regex}{found-string}{not-found-string}}
+However, it would be natural to want to use $1 etc in the found-string; this
+would be hard because of the lookup caching (if repeated, the lookup won't
+actually be done and therefore the numerical variables won't be set), and in
+any case, even without caching (and it could, I suppose, be disabled for this
+lookup) those variables are not in the right storage pool even if they were
+preserved after the lookup.
+
+An alternative approach might be to implement something like this:
+
+ ${scanfile{/some/file}{sub-expression}}
+
+where the sub-expression is expanded for every line in the file, with each line
+in turn being put into $value. This is like a conditional ${readfile, and in
+fact ${readfile could be written using ${scanfile. It would be nice to find a
+way of stopping the scan once something has happened. The only thing I can
+think of is to invent a variable that changes when scanning a line generates
+some non-null text, and then always to stop on a forced failure. That would
+allow expressions like this:
+
+ ${scanfile{/some/file}
+ {
+ ${if eq{$generated}{}{${if match{regex}{$value}{something}}} fail}
+ }}
+
+It's all rather clumsy. Once a line has matched and generated some text, the
+next iteration would stop the scan. Another thought: maybe use $scanline
+instead of $value (to save confusion) and have $scantext containing everything
+that's been generated so far. That sounds pretty flexible.
------------------------------------------------------------------------------
(344) 10-Oct-05 M Make debug_print work in authenticators