[augeas-devel] augeas: master - Postfix_main: handle continuation lines
David Lutterkort
lutter at fedoraproject.org
Tue Mar 3 23:49:43 UTC 2009
Gitweb: http://git.fedorahosted.org/git/augeas.git?p=augeas.git;a=commitdiff;h=d1a0221cfc29a7631e5b343c0dd0f2b99b07672c
Commit: d1a0221cfc29a7631e5b343c0dd0f2b99b07672c
Parent: e76b6219320ac2691d1b30699d2f0e48204493e6
Author: David Lutterkort <lutter at redhat.com>
AuthorDate: Tue Mar 3 15:48:44 2009 -0800
Committer: David Lutterkort <lutter at redhat.com>
CommitterDate: Tue Mar 3 15:48:44 2009 -0800
Postfix_main: handle continuation lines
---
lenses/postfix_main.aug | 21 +++++++++++++--------
lenses/tests/test_postfix_main.aug | 10 ++++++++--
2 files changed, 21 insertions(+), 10 deletions(-)
diff --git a/lenses/postfix_main.aug b/lenses/postfix_main.aug
index 8c290de..35e834f 100644
--- a/lenses/postfix_main.aug
+++ b/lenses/postfix_main.aug
@@ -15,23 +15,28 @@ module Postfix_Main =
*************************************************************************)
let eol = Util.eol
-let spc = Util.del_ws_spc
-let indent = del /[ \t]*/ " "
+let indent = del /[ \t]*(\n[ \t]+)?/ " "
let comment = Util.comment
let empty = Util.empty
let eq = del /[ \t]*=/ " ="
-
-let sto_to_eol = store /([^ \t\n].*[^ \t\n]|[^ \t\n])/
-let sto_to_spc = store /[^ \t\n]+/
-
let word = /[A-Za-z0-9_.-]+/
-let value = [ key word . spc . sto_to_eol . eol ]
+
+(* The value of a parameter, after the '=' sign. Postfix allows that
+ * lines are continued by starting continuation lines with spaces.
+ * The definition needs to make sure we don't add indented comment lines
+ * into values *)
+let value =
+ let chr = /[^# \t\n]/ in
+ let any = /.*/ in
+ let line = (chr . any* . chr | chr) in
+ let lines = line . (/\n[ \t]+/ . line)* in
+ store lines
(************************************************************************
* ENTRIES
*************************************************************************)
-let entry = [ key word . eq . (indent . sto_to_eol)? . eol ]
+let entry = [ key word . eq . (indent . value)? . eol ]
(************************************************************************
* LENS
diff --git a/lenses/tests/test_postfix_main.aug b/lenses/tests/test_postfix_main.aug
index 6a9f7d4..a4d6fe6 100644
--- a/lenses/tests/test_postfix_main.aug
+++ b/lenses/tests/test_postfix_main.aug
@@ -5,8 +5,7 @@ myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
-relayhost =
-"
+relayhost = \n"
test Postfix_Main.lns get conf =
{ "#comment" = "main.cf" }
@@ -15,3 +14,10 @@ test Postfix_Main.lns get conf =
{ "smtpd_banner" = "$myhostname ESMTP $mail_name (Ubuntu)" }
{ "mynetworks" = "127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128" }
{ "relayhost" }
+
+test Postfix_main.lns get "debugger_command =
+\t PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
+\t ddd $daemon_directory/$process_name $process_id & sleep 5\n"
+ =
+ { "debugger_command" = "PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
+ ddd $daemon_directory/$process_name $process_id & sleep 5" }
More information about the augeas-devel
mailing list