import java.util.regex.Pattern;
import org.cacert.gigi.DevelLauncher;
-import org.cacert.gigi.Language;
+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]+)\\(\\$([^)]+)\\) ?\\{ ?");
return null;
}
+ @Override
public void output(PrintWriter out, Language l, Map<String, Object> vars) {
if (source != null && DevelLauncher.DEVEL) {
if (lastLoaded < source.lastModified()) {
data.output(out, l, vars);
}
- protected static void outputVar(PrintWriter out, Language l, Map<String, Object> vars, String varname) {
+ protected static void outputVar(PrintWriter out, Language l, Map<String, Object> vars, String varname, boolean unescaped) {
Object s = vars.get(varname);
if (s == null) {
if (s instanceof Outputable) {
((Outputable) s).output(out, l, vars);
} else {
- out.print(s);
+ out.print(s == null ? "null" : (unescaped ? s.toString() : HTMLEncoder.encodeHTML(s.toString())));
}
}
}