]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/output/template/Template.java
UPD: Move some template classes to there reightful place.
[gigi.git] / src / org / cacert / gigi / output / template / Template.java
index c7d9a066c6b0ab1a45381e9e950199db1dcfe44a..0bd9cce170096b4d4088ed158edca8c4f9dfb459 100644 (file)
@@ -16,16 +16,15 @@ import java.util.regex.Pattern;
 
 import org.cacert.gigi.DevelLauncher;
 import org.cacert.gigi.localisation.Language;
-import org.cacert.gigi.output.Outputable;
 import org.cacert.gigi.util.HTMLEncoder;
 
 public class Template implements Outputable {
 
-    TemplateBlock data;
+    private TemplateBlock data;
 
-    long lastLoaded;
+    private long lastLoaded;
 
-    File source;
+    private File source;
 
     private static final Pattern CONTROL_PATTERN = Pattern.compile(" ?([a-z]+)\\(\\$([^)]+)\\) ?\\{ ?");
 
@@ -121,9 +120,15 @@ public class Template implements Outputable {
         } else if (s2.startsWith("=s,")) {
             String command = s2.substring(3);
             final LinkedList<String> store = new LinkedList<String>();
-            while (command.startsWith("$")) {
-                int idx = command.indexOf(",");
-                store.add(command.substring(0, idx));
+            while (command.startsWith("$") || command.startsWith("\"") || command.startsWith("!\"")) {
+                int idx;
+                if (command.startsWith("\"") || command.startsWith("!\"")) {
+                    idx = command.indexOf("\"", command.charAt(0) == '!' ? 2 : 1) + 1;
+                    store.add(command.substring(0, idx - 1));
+                } else {
+                    idx = command.indexOf(",");
+                    store.add(command.substring(0, idx));
+                }
                 command = command.substring(idx + 1);
             }
             final String text = command;
@@ -134,6 +139,7 @@ public class Template implements Outputable {
         return null;
     }
 
+    @Override
     public void output(PrintWriter out, Language l, Map<String, Object> vars) {
         if (source != null && DevelLauncher.DEVEL) {
             if (lastLoaded < source.lastModified()) {