Omit empty ACL entries when saving
authorAdam Chlipala <adamc@hcoop.net>
Thu, 14 Dec 2006 23:25:14 +0000 (23:25 +0000)
committerAdam Chlipala <adamc@hcoop.net>
Thu, 14 Dec 2006 23:25:14 +0000 (23:25 +0000)
src/acl.sml

index e57f186..6634f91 100644 (file)
@@ -125,15 +125,21 @@ fun write fname =
                                      TextIO.output (outf, value)))
 
        val writeClasses = SM.appi (fn (class, values) =>
                                      TextIO.output (outf, value)))
 
        val writeClasses = SM.appi (fn (class, values) =>
-                                      (TextIO.output (outf, class);
-                                       writeValues values;
-                                       TextIO.output (outf, "\n")))
+                                      if SS.isEmpty values then
+                                          ()
+                                      else
+                                          (TextIO.output (outf, class);
+                                           writeValues values;
+                                           TextIO.output (outf, "\n")))
 
        val writeUsers = SM.appi (fn (user, classes) =>
 
        val writeUsers = SM.appi (fn (user, classes) =>
-                                    (TextIO.output (outf, user);
-                                     TextIO.output (outf, "\n");
-                                     writeClasses classes;
-                                     TextIO.output (outf, "\n")))
+                                    if SM.numItems classes = 0 then
+                                        ()
+                                    else
+                                        (TextIO.output (outf, user);
+                                         TextIO.output (outf, "\n");
+                                         writeClasses classes;
+                                         TextIO.output (outf, "\n")))
     in
        writeUsers (!acl);
        TextIO.closeOut outf
     in
        writeUsers (!acl);
        TextIO.closeOut outf