#!/usr/bin/m4 # made from a preprocessor file divert(-1) # # # M4 CODE # # # # define(`forloop', # `pushdef(`$1', `$2')_forloop(`$1', `$2', `$3', `$4')popdef(`$1')')dnl # define(`_forloop', # `$4`'ifelse($1, `$3', , # `define(`$1', incr($1))_forloop(`$1', `$2', `$3', `$4')')')dnl # define(macro1,Now I got `$#' names: $1 `substr($2,0,1)' $3)dnl # define(mymacro, `ifelse(eval($# > 1), 1, Now I got `$#' names : `forloop(`i', 2,`$#', `shift($2)' )',``# pas assez d"arguments dans la fonction $0($*)''dnl # )')dnl # mymacro # mymacro(Name) # mymacro(The,Name) # mymacro(First,Middle,Last) # mymacro(John,Fitzgerald,Kennedy) # foreach(x, (item_1, item_2, ..., item_n), stmt) # define(`foreach', `pushdef(`$1', `')_foreach(`$1', `$2', `$3',$4)popdef(`$1')') # define(`_foreach', # `ifelse(`$2', `()',, # `define(`$1', _arg1$2)$3`'_foreach(`$1', (shift$2), `$3')')') #define(`_list', # `ifelse(`$1', `()',, # `pushdef(`i', _arg1$1)i`'_list( (shift$1))')') # `define(`$1', _arg1$2)$3`'_list(`$1', (shift$2), `$3')')') # code real ! : define(`_arg1', `$1\\|') define(`_argf', `$1') define(`_list', `ifelse(`$1', `()',, `ifelse((shift$1),`()', `pushdef(`i', _argf$1)i`'_list((shift$1))', `pushdef(`i', _arg1$1)i`'_list((shift$1))')')') define(`list', `color index $1 black "~f.*(_list(`$2')).*" color index bright$1 black "~N|~O ~f.*(_list(`$2')).*" ') define(`tsil', `color index black $1 "~h.*(_list(`$2')).*" ') define(`chaine',[' \-\.+_a-zA-Z0-9]) # # # / M4 CODE # # # # m4 functions syntaxes: # list(yellow,`(a,b,c,d)') divert dnl # colors color hdrdefault cyan black color quoted brightgreen black color quoted1 green black color quoted2 yellow black color bold brightyellow black color signature brightblue black color attachment brightyellow black color markers brightred black color error brightred black color tilde white black color tree cyan black # color status brightgreen blue color status black magenta color indicator black cyan color normal white black color header brightyellow black ^(Sebz|From): color header brightyellow black ^(To|Gb): color header brightcyan black ^(Reply-To|Ercyl-Gb): color header brightcyan black ^(Date|Qngr): color header brightcyan black ^(Cc|Pp): color header brightyellow black ^(Subject|Fhowrpg): color header brightred black \\[(test|tip|astuce)\\] color body brightyellow black "_[' \-\.+_a-zA-Z0-9]+_" color body brightyellow black "[\-\.+_a-zA-Z0-9]*_[' \-\.+_a-zA-Z0-9]+_[\-\.+_a-zA-Z0-9]*" color body brightyellow black "[\"]chaine+[\"]" color body brightyellow black "\\*chaine+\\*" color body brightyellow black "\\$chaine+\\$" color body brightblue black "\\(chaine+\\)" color body brightred black "[\-\.+_a-zA-Z0-9=]+@[\-\.a-zA-Z0-9]+" # color body cyan black ([hH][tT][tT][Pp][sS]|[hH][tT][tT][Pp]|[fF][tT][Pp])://[\[\]\-\.\,/%~_:?\#a-zA-Z0-9=\;&+]+ # color body cyan black [wW][wW][wW]\.[\-\.\,/%~_:?\#a-zA-Z0-9=\;&+]+ color body yellow black "[ ]?[;!]+[-^o]?[]Pp)>}D]+" color body brightyellow black "[ ]?[-=:]+[-o]?[])>}D]+" color body brightred black "[ ]?[=:;-]+[-=^o]?[[(<{|/\\]+" color body brightcyan black "(([wW][wW][wW].)|(([hH][tT][tT][Pp][sS]?)|([fF][tT][Pp][Ss]?)://))([\-\.\,/%~_:XXXXX@\|]+)" # set smileys="(>From )|(:[-^]?[][)(><}{|/DP])" # Normal color index white black ".*" color index brightwhite black "~N|~O" # Spam ? ################### # tsil(red,`( # Content-Type:\\ text\\/html\\;\\ charset=us-ascii, # helo)') # les domaines de potes et domaine interessants. ################### list(magenta,`( @nospam\.org, @nospam\.org, @nospam.org, @nospam\.org, @nospam, @nospam, @.*efrei\.fr, @.*proxad\.net, @nospam\.fr, @nospam\.org, @nospam.co, @nospam.org, @nospam.com)') list(magenta,`( @nospam.com, @nospam\.org, @nospam\.org, @nospam.com)') list(green,`( matthieu.barret@nospam.net, landry.bonnet@nospam.fr, (letters(-no-spamm\\|),[Rr]uben)@.*sw3k.net, solennmazuet@nospam.com, thomas@nospam.fr.eu.org, hermitte@nospam.fr, f1sxo@nospam.org, ploum@nospam.net, cedricduval@nospam.fr)') list(green,`( jm.oltra@nospam.net, lionel.ulmer@nospam.fr, Master.Jim@nospam.fr, david@nospam.com)') # petit nefreien mais pas a nefrei ;) ################### list(cyan,`( airmax.*\@, benjamin.*scaillerez, seyman\@nospam\.com, gcoeugnet@nospam.auchan.com)') list(cyan,`( d_rougier@nospam.fr, laurent.veron@nospam.com, abj\@nospam\.fr)') # Famille ################### list(yellow,`( stephane.bouchard2@nospam.fr, Sylvie.Phung@nospam.lindegas.com, raphael@nospam.org, @nospam.org, michelraph@nospam.fr, dmichel5@nospam.fr, dmichel@nospam.fr, dfmichel@nospam.fr, dmichel@nospam.fr, dfmichel@nospam.fr)') # seconde liste car sinon la regex est trop longue list(yellow,`( fr.celine@nospam.fr, celine.froidevaux@nospam.fr, Sylvie.Phung@nospam.linde-gas.com, david.michel@nospam.net)') # Todo list color index black magenta "~s.*([tT][oO][dD][oO]).*" color index black brightmagenta "~O|~N ~s.*([tT][oO][dD][oO]).*" # flagged messages color index black magenta "~hX-Status:\\ F" color index black brightmagenta "~O|~N ~hX-Status:\\ F"