chiark / gitweb /
magic: Use new ${image} syntax
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 15 May 2022 12:20:57 +0000 (13:20 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 15 May 2022 17:00:02 +0000 (18:00 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
library/edited.toml
src/shapelib.rs

index cfd6eefb29ef32df8e0cf91a90cc76cc76ab16c9..7d1b12d7a043eefb751f8f0d13f7296e5377476e 100644 (file)
@@ -36,7 +36,7 @@ d6-_c -       a ${colour} die image
 
 magic.item_prefix = "die-"
 magic.template = """
-image = !
+image = ${image}
 type = "Die"
 labels = 6
 desc = "a ${colour} die"
index 766ecb896b13f5f23dbaf9a6856d4521ede5b7eb..3e2d318e6e6d7d45167456f10cc0cd11c2fcdd14 100644 (file)
@@ -1405,11 +1405,9 @@ fn process_files_entry(
       let item_name = subst_item_name(&format_item_name(
         mformat, &magic.item_prefix, &fe, &magic.item_suffix)?)?;
 
-      let spec = regex!(r#"(?m)(^[\sA-Za-z0-9._-]+=\s*)!\s*$"#)
-        .replace_all(&magic.template, |caps: &regex::Captures| {
-          format!("{}{}", caps.get(1).unwrap().as_str(), &image_table)
-        });
-      let spec = c_colour_all((*spec).into())?;
+      let spec = Substituting::new(mformat, Dollars::Text, &magic.template);
+      let spec = substn(spec, "_image", &image_table)?;
+      let spec = c_colour_all(spec.into())?;
 
       let spec = spec.finish()?;
       trace!("magic item {}\n\n{}\n", &item_name, &spec);