Bläddra i källkod

add syntax check for sources.list

Michael Vogt 12 år sedan
förälder
incheckning
d2524a53bb
1 ändrade filer med 16 tillägg och 3 borttagningar
  1. 16 3
      cmdline/apt.cc

+ 16 - 3
cmdline/apt.cc

@@ -67,9 +67,22 @@ bool EditSources(CommandLine &CmdL)
 
    // FIXME: take hash before, 
    //        when changed display message to apt update
-   //        do syntax check after save (like visudo)
-
-   EditFileInSensibleEditor(sourceslist);
+   bool res;
+   pkgSourceList sl;
+
+   do {
+      EditFileInSensibleEditor(sourceslist);
+      _error->PushToStack();
+      res = sl.Read(sourceslist);
+      if (!res) {
+         std::string outs;
+         strprintf(outs, _("Failed to parse %s. Edit again? "),
+                   sourceslist.c_str());
+         std::cout << outs;
+         res = !YnPrompt(true);
+      }
+      _error->RevertToStack();
+   } while (res == false);
 
    return true;
 }