tuned signature: more robust operation;
authorwenzelm
Fri, 04 Mar 2022 22:50:58 +0100
changeset 75213 e3475e1d5094
parent 75212 7870cdaa3f1f
child 75214 a51a0a704854
tuned signature: more robust operation;
src/Pure/General/file.scala
--- a/src/Pure/General/file.scala	Fri Mar 04 21:47:57 2022 +0100
+++ b/src/Pure/General/file.scala	Fri Mar 04 22:50:58 2022 +0100
@@ -245,16 +245,18 @@
 
   /* change */
 
-  def change(path: Path, init: Boolean = false)(f: String => String): Unit =
+  def change(path: Path, init: Boolean = false, strict: Boolean = false)(f: String => String): Unit =
   {
     if (!path.is_file && init) write(path, "")
     val x = read(path)
     val y = f(x)
     if (x != y) write(path, y)
+    else if (strict) error("Unchanged file: " + path)
   }
 
-  def change_lines(path: Path, init: Boolean = false)(f: List[String] => List[String]): Unit =
-    change(path, init = init)(text => cat_lines(f(split_lines(text))))
+  def change_lines(path: Path, init: Boolean = false, strict: Boolean = false)(
+      f: List[String] => List[String]): Unit =
+    change(path, init = init, strict = strict)(text => cat_lines(f(split_lines(text))))
 
 
   /* eq */