Hi there,<div><br></div><div><br></div><div>This is a patch to support mapping comments in aptsources.aug:</div><div><br></div><div><br></div><div><div>diff --git a/lenses/aptsources.aug b/lenses/aptsources.aug</div><div>index d1fc423..ab47802 100644</div>
<div>--- a/lenses/aptsources.aug</div><div>+++ b/lenses/aptsources.aug</div><div>@@ -7,18 +7,19 @@ module Aptsources =</div><div> </div><div>   let eol = Util.del_str "\n"</div><div> </div><div>-  let comment = [ del /([ \t]*\n)|(#.*\n)/ "#\n" ]</div>
<div>+  let comment = Util.comment</div><div>+  let empty   = Util.empty</div><div> </div><div>   let word = /[^# \n\t]+/</div><div> </div><div>-  let record = [ seq "source" . [ label "type" . store word ] . sep_ws .</div>
<div>+  let record = [ label "entry" . [ label "type" . store word ] . sep_ws .</div><div>                                 [ label "uri"  . store word ] . sep_ws .</div><div>                                 [ label "distribution" . store word ]  .</div>
<div>                                 [ label "component" . sep_ws . store word ]* .</div><div>                                 del /[ \t]*(#.*)?/ ""</div><div>                  . eol ]</div><div> </div>
<div>-  let lns = ( comment | record ) *</div><div>+  let lns = ( comment | empty | record ) *</div><div> </div><div>   let filter = (incl "/etc/apt/sources.list")</div><div>       . (incl "/etc/apt/sources.list.d/*")</div>
<div>diff --git a/lenses/tests/test_aptsource.aug b/lenses/tests/test_aptsource.aug</div><div>index e1ca9c0..fafa320 100644</div><div>--- a/lenses/tests/test_aptsource.aug</div><div>+++ b/lenses/tests/test_aptsource.aug</div>
<div>@@ -4,7 +4,7 @@ module Test_aptsource =</div><div>   let multi_components = "deb <a href="http://security.debian.org/">http://security.debian.org/</a> etch/updates main contrib non-free\n"</div><div> </div>
<div>   test Aptsources.lns get simple_source =</div><div>-    { "1"</div><div>+    { "entry"</div><div>       { "type"         = "deb" }</div><div>       { "uri"          = "<a href="ftp://mirror.bytemark.co.uk/debian/">ftp://mirror.bytemark.co.uk/debian/</a>" }</div>
<div>       { "distribution" = "etch" }</div><div>@@ -12,7 +12,7 @@ module Test_aptsource =</div><div>     }</div><div> </div><div>   test Aptsources.lns get multi_components =</div><div>-    { "1"</div>
<div>+    { "entry"</div><div>       { "type"         = "deb" }</div><div>       { "uri"          = "<a href="http://security.debian.org/">http://security.debian.org/</a>" }</div>
<div>       { "distribution" = "etch/updates" }</div><div>@@ -30,8 +30,10 @@ deb <a href="http://security.debian.org/">http://security.debian.org/</a> etch/updates main contrib non-free # security li</div>
<div> deb-src <a href="http://mirror.bytemark.co.uk/debian">http://mirror.bytemark.co.uk/debian</a> etch main contrib non-free\n"</div><div> </div><div>   test Aptsources.lns get multi_line =</div><div>-    {} {} {}</div>
<div>-    { "1"</div><div>+    { "#comment" = "deb <a href="http://www.backports.org/debian/">http://www.backports.org/debian/</a> sarge postfix" }</div><div>+    { "#comment" = "deb <a href="http://people.debian.org/~adconrad">http://people.debian.org/~adconrad</a> sarge subversion" }</div>
<div>+    {}</div><div>+    { "entry"</div><div>       { "type"         = "deb" }</div><div>       { "uri"          = "<a href="ftp://mirror.bytemark.co.uk/debian/">ftp://mirror.bytemark.co.uk/debian/</a>" }</div>
<div>       { "distribution" = "etch" }</div><div>@@ -39,7 +41,7 @@ deb-src <a href="http://mirror.bytemark.co.uk/debian">http://mirror.bytemark.co.uk/debian</a> etch main contrib non-free\n"</div>
<div>       { "component"   = "non-free" }</div><div>       { "component"   = "contrib" }</div><div>     }</div><div>-    { "2"</div><div>+    { "entry"</div><div>
       { "type"         = "deb" }</div><div>       { "uri"          = "<a href="http://security.debian.org/">http://security.debian.org/</a>" }</div><div>       { "distribution" = "etch/updates" }</div>
<div>@@ -47,7 +49,7 @@ deb-src <a href="http://mirror.bytemark.co.uk/debian">http://mirror.bytemark.co.uk/debian</a> etch main contrib non-free\n"</div><div>       { "component"    = "contrib" }</div>
<div>       { "component"    = "non-free" }</div><div>     }</div><div>-    { "3"</div><div>+    { "entry"</div><div>       { "type"         = "deb-src" }</div><div>
       { "uri"          = "<a href="http://mirror.bytemark.co.uk/debian">http://mirror.bytemark.co.uk/debian</a>" }</div><div>       { "distribution" = "etch" }</div><div>@@ -60,7 +62,7 @@ deb-src <a href="http://mirror.bytemark.co.uk/debian">http://mirror.bytemark.co.uk/debian</a> etch main contrib non-free\n"</div>
<div> </div><div>     (* Should be a noop; makes sure that we preserve the trailing comment *)</div><div>     test Aptsources.lns put trailing_comment after</div><div>-      set "/1/type" "deb"</div><div>
+      set "/entry/type" "deb"</div><div>     = trailing_comment</div><div> </div><div> (* Local Variables: *)</div></div><div><br></div><div><br></div><div><br></div><div>Regards,</div><div><br></div>
<div><br></div><div>Raphaël Pinson</div><div><br></div>