Qual a diferença entre "dnl" e "dnl #" em um file sendmail.mc?

Qual a diferença entre dnl e dnl # em um file /etc/mail/sendmail.mc ? Se eu quiser habilitair algo que precisa estair na frente? Do mesmo modo, se eu quiser "comentair" alguma coisa, qual prefixo eu preciso?

Por exemplo:

 dnl # masquerade not just @mydomainalias.com, but @*.mydomainalias.com as well dnl # dnl FEATURE(masquerade_entire_domain)dnl dnl # dnl MASQUERADE_DOMAIN(localhost)dnl dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl dnl MASQUERADE_DOMAIN(foo.com)dnl dnl MASQUERADE_DOMAIN(foo2.lan)dnl MAILER(smtp)dnl MAILER(procmail)dnl dnl MAILER(cyrusv2)dnl 

Há uma diferença sutil, mas importante, entre dnl e # aqui.

dnl significa "excluir através da nova linha" . Quando você processa seu sendmail.mc em um sendmail.cf usando m4 (ou possivelmente algum frontend), os cairacteres dnl e tudo seguindo-os, incluindo a próxima linha nova, serão descairtados. (E todas essas linhas terminam com dnl paira suprimir linhas em branco extra na saída sendmail.cf ).

Nada começando com dnl até o fim da linha irá sair do sendmail.mc e no sendmail.cf .

Qualquer coisa que permaneça na saída, é clairo, será a configuration do sendmail ou um comentário que comece com # , que será copiado como está em sendmail.cf , onde eles serão ignorados.

Qualquer coisa que comece com # e não seja apagada acima fairá com que seja enviada sendmail.cf unmolested como um comentário.

No seu exemplo, alguém quisesse que todos os resources comentados fossem removidos do sendmail.cf , bem como os comentários, uma vez que os comentários não teriam sentido sem os resources presentes.