Pour télécharger le fichier initial cliquez ici ->colorrc.m4
#!/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"