/* * HTML.Template: A module for using HTML Templates with java * * Copyright (c) 2002 Philip S Tellis (philip.tellis@iname.com) * * This module is free software; you can redistribute it * and/or modify it under the terms of either: * * a) the GNU General Public License as published by the Free * Software Foundation; either version 1, or (at your option) * any later version, or * * b) the "Artistic License" which comes with this module. * * This program is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See either the GNU General Public License or the * Artistic License for more details. * * You should have received a copy of the Artistic License * with this module, in the file ARTISTIC. If not, I'll be * glad to provide one. * * You should have received a copy of the GNU General Public * License along with this program; if not, write to the Free * Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA */ package HTML.Tmpl; import ewe.sys.*; public class Util { public static boolean debug=false; public static String escapeHTML(String element) { String s = new String(element); // don't change the original String [] metas = {"&", "<", ">", "\""}; String [] repls = {"&", "<", ">", """}; for(int i = 0; i < metas.length; i++) { int pos=0; do { pos = s.indexOf(metas[i], pos); if(pos<0) break; s = s.substring(0, pos) + repls[i] + s.substring(pos+1); pos++; } while(pos >= 0); } return s; } public static String escapeURL(String url) { StringBuffer s = new StringBuffer(); String no_escape = "./-_"; for(int i=0; i<url.length(); i++) { char c = url.charAt(i); if(!Character.isLetterOrDigit(c) && no_escape.indexOf(c)<0) { String h = Integer.toHexString((int)c); s.append("%"); if(h.length()<2) s.append("0"); s.append(h); } else { s.append(c); } } return s.toString(); } public static String escapeQuote(String element) { String s = new String(element); // don't change the original String [] metas = {"\"", "'"}; String [] repls = {"\\\"", "\\'"}; for(int i = 0; i < metas.length; i++) { int pos=0; do { pos = s.indexOf(metas[i], pos); if(pos<0) break; s = s.substring(0, pos) + repls[i] + s.substring(pos+1); pos++; } while(pos >= 0); } return s; } public static boolean isNameChar(char c) { return true; } public static boolean isNameChar(String s) { String alt_valid = "./+-_"; for(int i=0; i<s.length(); i++) if(!Character.isLetterOrDigit(s.charAt(i)) && alt_valid.indexOf(s.charAt(i))<0) return false; return true; } public static void debug_print(String msg) { if(!debug) return; //System.err.println(msg); Vm.debug(msg); } public static void debug_print(Object o) { debug_print(o.toString()); } }