From: <rfr...@us...> - 2009-01-28 15:40:00
|
Revision: 14502 http://jedit.svn.sourceforge.net/jedit/?rev=14502&view=rev Author: rfrancois Date: 2009-01-28 15:39:56 +0000 (Wed, 28 Jan 2009) Log Message: ----------- removed old command line stufff and make the plugin work without redifining jedit classes Modified Paths: -------------- plugins/Code2HTML/trunk/code2html/impl/html/HtmlPainter.java plugins/Code2HTML/trunk/code2html/impl/html/HtmlStyle.java plugins/Code2HTML/trunk/code2html/impl/htmlcss/HtmlCssPainter.java plugins/Code2HTML/trunk/code2html/impl/htmlcss/HtmlCssStyle.java plugins/Code2HTML/trunk/code2html/impl/latex/LatexPainter.java Removed Paths: ------------- plugins/Code2HTML/trunk/code2html/CommandLineConfig.java plugins/Code2HTML/trunk/code2html/FilePropertyAccessor.java plugins/Code2HTML/trunk/code2html/JEditPropertyAccessor.java plugins/Code2HTML/trunk/code2html/Main.java plugins/Code2HTML/trunk/code2html/Mode.java plugins/Code2HTML/trunk/code2html/ModeCatalogHandler.java plugins/Code2HTML/trunk/code2html/ModeUtilities.java plugins/Code2HTML/trunk/code2html/PropertyAccessor.java plugins/Code2HTML/trunk/code2html/SelectionStartLineComparator.java plugins/Code2HTML/trunk/code2html/StyleUtilities.java plugins/Code2HTML/trunk/code2html/SyntaxToken.java plugins/Code2HTML/trunk/code2html/SyntaxTokenUtilities.java plugins/Code2HTML/trunk/code2html/TokenList.java Deleted: plugins/Code2HTML/trunk/code2html/CommandLineConfig.java =================================================================== --- plugins/Code2HTML/trunk/code2html/CommandLineConfig.java 2009-01-28 15:39:09 UTC (rev 14501) +++ plugins/Code2HTML/trunk/code2html/CommandLineConfig.java 2009-01-28 15:39:56 UTC (rev 14502) @@ -1,130 +0,0 @@ -/* - * CommandLineConfig.java - * Copyright (c) 2002 Andre Kaplan - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or any later version. - * - * 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 the - * GNU General Public License for more details. - * - * 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 code2html; - -import org.gjt.sp.jedit.syntax.SyntaxStyle; - -import code2html.impl.htmlcss.HtmlCssGutter; -import code2html.impl.html.HtmlGutter; -import code2html.impl.html.HtmlPainter; -import code2html.impl.htmlcss.HtmlCssStyle; -import code2html.impl.html.HtmlStyle; -import code2html.generic.* ; - -import code2html.line.LineTabExpander; -import code2html.line.LineWrapper; - -import code2html.generic.Config ; - -public class CommandLineConfig implements Config -{ - public static class Arguments - { - public int gutterSize = 3; - public int tabSize = 8; - public int wrap = 0; - public int highlightInterval = 5; - - public boolean useCSS = true; - public boolean showGutter = true; - - public SyntaxStyle[] styles = null; - public PropertyAccessor propertyAccessor = null; - } - - - private Style style = null; - private GenericGutter gutter = null; - private GenericPainter painter = null; - private LineTabExpander tabExpander = null; - private LineWrapper wrapper = null; - - - public CommandLineConfig(Arguments args) { - if (args.wrap < 0) { args.wrap = 0; } - - if (args.useCSS) { - this.style = new HtmlCssStyle(); - } else { - this.style = new HtmlStyle(); - } - - PropertyAccessor accessor = args.propertyAccessor; - if (args.showGutter) { - String bgColor = accessor.getProperty( - "view.gutter.bgColor", "#ffffff" - ); - String fgColor = accessor.getProperty( - "view.gutter.fgColor", "#8080c0" - ); - String highlightColor = accessor.getProperty( - "view.gutter.highlightColor", "#000000" - ); - - if (args.useCSS) { - this.gutter = new HtmlCssGutter( - bgColor, fgColor, highlightColor, args.highlightInterval - ); - } else { - this.gutter = new HtmlGutter( - bgColor, fgColor, highlightColor, args.highlightInterval - ); - } - this.gutter.setGutterSize(args.gutterSize); - } - - this.tabExpander = new LineTabExpander(args.tabSize); - - if (args.wrap > 0) { - this.wrapper = new LineWrapper(args.wrap); - } - - this.painter = new HtmlPainter( - args.styles, this.style, this.gutter, this.tabExpander, this.wrapper - ); - } - - @Override - public GenericGutter getGutter() { - return this.gutter; - } - - @Override - public Style getStyle() { - return this.style; - }; - - @Override - public LineTabExpander getTabExpander() { - return this.tabExpander; - } - - @Override - public LineWrapper getWrapper() { - return this.wrapper; - } - - @Override - public GenericPainter getPainter() { - return this.painter; - } -} - Deleted: plugins/Code2HTML/trunk/code2html/FilePropertyAccessor.java =================================================================== --- plugins/Code2HTML/trunk/code2html/FilePropertyAccessor.java 2009-01-28 15:39:09 UTC (rev 14501) +++ plugins/Code2HTML/trunk/code2html/FilePropertyAccessor.java 2009-01-28 15:39:56 UTC (rev 14502) @@ -1,174 +0,0 @@ -/* - * FilePropertyAccessor.java - * Copyright (c) 2002 Andre Kaplan - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or any later version. - * - * 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 the - * GNU General Public License for more details. - * - * 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 code2html; - -import java.io.BufferedInputStream; -import java.io.IOException; -import java.io.InputStream; - -import java.text.MessageFormat; - -import java.util.Properties; - -/** - * Utility class to load properties from a file - * - * @author Andre Kaplan - * @version 0.5 - * @todo This class is really redundant - */ -public class FilePropertyAccessor implements PropertyAccessor { - private Properties props = new Properties(); - - - /** - * FilePropertyAccessor Constructor - */ - public FilePropertyAccessor() { } - - - /** - * Loads the properties from the specified input stream. This calls the - * <code>load()</code> method of the properties object and closes the - * stream. - * - * @param in The input stream - * @exception IOException if an I/O error occured - */ - /* package-private */ - void loadProps(InputStream in) - throws IOException { - in = new BufferedInputStream(in); - this.props.load(in); - in.close(); - } - - - /** - * Sets a boolean property. - * - * @param name The property - * @param value The value - */ - public final void setBooleanProperty(String name, boolean value) { - this.setProperty(name, value ? "true" : "false"); - } - - - /** - * Sets a property to a new value. - * - * @param name The property - * @param value The new value - */ - public final void setProperty(String name, String value) { - if (value == null || value.length() == 0) { - props.remove(name); - } else { - props.put(name, value); - } - } - - - /** - * Returns the value of a boolean property. - * - * @param name The property - * @return The boolean property value - */ - public final boolean getBooleanProperty(String name) { - return this.getBooleanProperty(name, false); - } - - - /** - * Returns the value of a boolean property. - * - * @param name The property - * @param def The default value - * @return The boolean property value - */ - public final boolean getBooleanProperty(String name, boolean def) { - String value = this.getProperty(name); - if (value == null) { - return def; - } else if (value.equals("true") - || value.equals("yes") - || value.equals("on")) { - return true; - } else if (value.equals("false") - || value.equals("no") - || value.equals("off")) { - return false; - } else { - return def; - } - } - - - /** - * Fetches a property, returning null if it's not defined. - * - * @param name The property - * @return The property value - */ - public final String getProperty(String name) { - return this.props.getProperty(name); - } - - - /** - * Fetches a property, returning the default value if it's not defined. - * - * @param name The property - * @param def The default value - * @return The property value - */ - public final String getProperty(String name, String def) { - return this.props.getProperty(name, def); - } - - - /** - * Returns the property with the specified name, formatting it with the - * <code>java.text.MessageFormat.format()</code> method. - * - * @param name The property - * @param args The positional parameters - * @return The property value - */ - public final String getProperty(String name, Object[] args) { - if (name == null) { - return null; - } - - if (args == null) { - return this.props.getProperty(name); - } else { - String value = this.props.getProperty(name); - - if (value == null) { - return null; - } else { - return MessageFormat.format(value, args); - } - } - } -} - Deleted: plugins/Code2HTML/trunk/code2html/JEditPropertyAccessor.java =================================================================== --- plugins/Code2HTML/trunk/code2html/JEditPropertyAccessor.java 2009-01-28 15:39:09 UTC (rev 14501) +++ plugins/Code2HTML/trunk/code2html/JEditPropertyAccessor.java 2009-01-28 15:39:56 UTC (rev 14502) @@ -1,117 +0,0 @@ -/* - * JEditPropertyAccessor.java - * Copyright (c) 2002 Andre Kaplan - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or any later version. - * - * 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 the - * GNU General Public License for more details. - * - * 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 code2html; - -import org.gjt.sp.jedit.jEdit; - - -/** - * Access properties from jEdit - * - * @author Andre Kaplan - * @version 0.5 - * @todo this class is really redundant - */ -public class JEditPropertyAccessor implements PropertyAccessor { - - /** - * Sets the boolean property of the object - * - * @param name The new boolean key name - * @param value The new boolean property value - */ - public void setBooleanProperty(String name, boolean value) { - jEdit.setBooleanProperty(name, value); - } - - - /** - * Sets the property of the object - * - * @param name The new property key name - * @param value The new property value - */ - public void setProperty(String name, String value) { - jEdit.setProperty(name, value); - } - - - /** - * Gets the boolean property of the object - * - * @param name key name - * @return The boolean property value - */ - public boolean getBooleanProperty(String name) { - return jEdit.getBooleanProperty(name); - } - - - /** - * Gets the boolean property of the object - * - * @param name key name - * @param def default value - * @return The boolean property value - */ - public boolean getBooleanProperty(String name, boolean def) { - return jEdit.getBooleanProperty(name, def); - } - - - /** - * Gets the property of the object - * - * @param name key name - * @return The property value - */ - public String getProperty(String name) { - return jEdit.getProperty(name); - } - - - /** - * Gets the property of the object - * - * @param name key name - * @param def default value - * @return The property value - */ - public String getProperty(String name, String def) { - return jEdit.getProperty(name, def); - } - - - /** - * Gets the property of the object - * - * @param name key name - * @param args Returns the property with the specified name. The elements - * of the args array are substituted into the value of the property in - * place of strings of the form {n}, where n is an index in the array. - * You can find out more about this feature by reading the - * documentation for the format method of the - * <code>java.text.MessageFormat<code> class. - * @return The property value - */ - public String getProperty(String name, Object[] args) { - return jEdit.getProperty(name, args); - } -} - Deleted: plugins/Code2HTML/trunk/code2html/Main.java =================================================================== --- plugins/Code2HTML/trunk/code2html/Main.java 2009-01-28 15:39:09 UTC (rev 14501) +++ plugins/Code2HTML/trunk/code2html/Main.java 2009-01-28 15:39:56 UTC (rev 14502) @@ -1,468 +0,0 @@ -/* - * Main.java - * Copyright (c) 2002 Andre Kaplan - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or any later version. - * - * 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 the - * GNU General Public License for more details. - * - * 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 code2html; - -import java.awt.Color; -import java.awt.Font; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.Reader; -import java.io.Writer; - -import java.util.Vector; - -import javax.swing.text.Segment; - -import org.gjt.sp.jedit.jEdit; -import org.gjt.sp.jedit.MiscUtilities; -import org.gjt.sp.jedit.syntax.ParserRule; -import org.gjt.sp.jedit.syntax.SyntaxStyle; -import org.gjt.sp.jedit.syntax.Token; -import org.gjt.sp.util.Log; - -import com.microstar.xml.XmlException; -import com.microstar.xml.XmlParser; - -import code2html.generic.* ; -import code2html.impl.htmlcss. * ; - -import code2html.syntax.ParserRuleSet; -import code2html.syntax.TokenMarker; -import code2html.syntax.XModeHandler; - - -/** - * Starts the program when run from the command line - * - * @author Andre Kaplan - * @version 0.5 - * @todo Log exceptions - * @todo Put better comand line parser - */ -public class Main { - private static FilePropertyAccessor propertyAccessor = - new FilePropertyAccessor(); - - - /** - * The main program - * - * @param args The command line arguments - */ - public static void main(String[] args) { - Log.init(false, Log.ERROR); - - int exit = parseCommandLine(args); - - if (exit != 0) { - usage(); - } - - System.exit(exit); - } - - - /** - * Mark tokens for the specified <code>Reader</code> - * - * @param config The configuration to use for this conversion - * @param tokenMarker A marker to fdefine token styles - * @param r A Reader to read from - * @param w A Writer to write to - */ - public static void markTokens(Config config, - TokenMarker tokenMarker, - Reader r, - Writer w) { - Style style = config.getStyle(); - GenericGutter gutter = config.getGutter(); - GenericPainter painter = config.getPainter(); - - try { - BufferedReader reader = new BufferedReader(r); - BufferedWriter writer = new BufferedWriter(w); - - GenericDocument document = new HtmlCssDocument( - Main.getProperty("view.bgColor", "#ffffff"), - Main.getProperty("view.fgColor", "#000000"), - painter.getSyntaxStyles(), - style, - gutter, - "Code2HTML", - jEdit.getProperty("plugin.code2html.line.separator")); - - document.open(writer); - - Segment seg = new Segment(); - String line = null; - TokenMarker.LineContext context = null; - - for (int lnr = 1; (line = reader.readLine()) != null; lnr++) { - TokenList tokenList = new TokenList(); - - seg.offset = 0; - seg.count = line.length(); - seg.array = line.toCharArray(); - - // Prepare tokenization - tokenList.lastToken = null; - - ParserRule oldRule; - ParserRuleSet oldRules; - - if (context == null) { - oldRule = null; - oldRules = null; - } else { - oldRule = context.inRule; - oldRules = context.rules; - } - - context = tokenMarker.markTokens(context, tokenList, seg); - SyntaxToken syntaxTokens = SyntaxTokenUtilities.convertTokens( - tokenList.getFirstToken()); - painter.setPos(0); - painter.paintSyntaxLine(writer, lnr, seg, syntaxTokens); - writer.newLine(); - } - - document.close(writer); - writer.flush(); - writer.close(); - } catch (IOException ioe) { - // log me - } - } - - - /** - * Parse the command line and respond appropriately - * - * @param args The command line argumants - * @return an exit status - * @todo Probably should be renamed to run or somesuch - * @todo this method should be broken down into its components, - * probably dumping more functionality/glue into main(String[]) - * @todo log - */ - public static int parseCommandLine(String[] args) { - String scheme = null; - String catalog = null; - Vector files = new Vector(); - - CommandLineConfig.Arguments arguments = - new CommandLineConfig.Arguments(); - - for (int i = 0; i < args.length; i++) { - String arg = args[i]; - - if ((arg == null) || (arg.length() == 0)) { - continue; - } - - if (arg.equals("--help")) { - usage(); - return 0; - } else if (arg.startsWith("--catalog=")) { - catalog = arg.substring("--catalog=".length()); - } else if (arg.startsWith("--scheme=")) { - scheme = arg.substring("--scheme=".length()); - } else if (arg.startsWith("--css=")) { - String css = arg.substring("--css=".length()).toLowerCase(); - - if ("yes".equals(css)) { - arguments.useCSS = true; - } else if ("no".equals(css)) { - arguments.useCSS = false; - } else { - return 1; - } - } else if (arg.startsWith("--gutter=")) { - String gutter = arg.substring( - "--gutter=".length()).toLowerCase(); - - if ("yes".equals(gutter)) { - arguments.showGutter = true; - } else if ("no".equals(gutter)) { - arguments.showGutter = false; - } else { - return 1; - } - } else if (arg.startsWith("--gutter-size=")) { - String gutterSize = arg.substring("--gutter-size=".length()); - - try { - arguments.gutterSize = Integer.parseInt(gutterSize); - if (arguments.gutterSize <= 0) { - return 1; - } - } catch (NumberFormatException nfe) { - // log me - return 1; - } - } else if (arg.startsWith("--tab-size=")) { - String tabSize = arg.substring("--tab-size=".length()); - - try { - arguments.tabSize = Integer.parseInt(tabSize); - if (arguments.tabSize <= 0) { - return 1; - } - } catch (NumberFormatException nfe) { - // log me - return 1; - } - } else if (arg.startsWith("--wrap=")) { - String wrap = arg.substring("--wrap=".length()); - - try { - arguments.wrap = Integer.parseInt(wrap); - - if (arguments.wrap < 0) { - return 1; - } - } catch (NumberFormatException nfe) { - // log me - return 1; - } - } else { - files.addElement(arg); - } - } - - if (catalog == null) { - Log.log(Log.ERROR, Main.class, "--catalog option is mandatory"); - return 1; - } - - try { - loadScheme(scheme); - } catch (FileNotFoundException fnfe) { - Log.log(Log.ERROR, Main.class, fnfe); - return 1; - } catch (IOException ioe) { - Log.log(Log.ERROR, Main.class, ioe); - return 1; - } - - loadXModeErrors(); - loadModeCatalog(catalog, false); - - Mode[] modes = ModeUtilities.getModes(); - - SyntaxStyle[] styles = - StyleUtilities.loadStyles(propertyAccessor, "monospaced", 12, true); - arguments.styles = styles; - arguments.propertyAccessor = propertyAccessor; - - try { - for (int i = 0; i < files.size(); i++) { - Config config = new CommandLineConfig(arguments); - - String file = (String) files.elementAt(i); - Mode mode = ModeUtilities.getMode("text"); - File f = new File(file); - - for (int j = 0; j < modes.length; j++) { - if (modes[j].accept(f.getName(), "")) { - mode = modes[j]; - break; - } - } - - if (mode == null) { - Log.log(Log.WARNING, Main.class, - "Could not find mode for [" + file + "]"); - continue; - } - - Reader reader = new FileReader(file); - Writer writer = new FileWriter(file + ".html"); - - markTokens(config, mode.getTokenMarker(), reader, writer); - } - } catch (IOException ioe) { - Log.log(Log.ERROR, Main.class, ioe); - return 1; - } - - return 0; - } - - - /** - * Display a usage message to stdout - */ - public static void usage() { - String ls = System.getProperty("line.separator"); - - System.out.println( - "Usage: java code2html.Main OPTION... --catalog=FILE FILE..." + ls + - ls + - "Options:" + ls + - " --help print this help file" + ls + - " --scheme=FILE scheme file" + ls + - " --css=yes|no use cascading style sheets. Default: [yes]" + - ls + - " --gutter=yes|no display line number. Default: [yes]" + ls + - " --gutter-size=INT gutter size > 0. Default: [3]" + ls + - " --tab-size=INT tab size > 0. Default: [8]" + ls + - " --wrap=INT line wrapping. Default: [0]"); - } - - - /** - * Loads a mode catalog file. - * - * @param path The path of the catalog - * @param resource true when the path is a resource URI - * @since jEdit 3.2pre2 - */ - private static void loadModeCatalog(String path, boolean resource) { - Log.log(Log.MESSAGE, Main.class, "Loading mode catalog file " + path); - - ModeCatalogHandler handler = new ModeCatalogHandler( - MiscUtilities.getParentOfPath(path), resource); - XmlParser parser = new XmlParser(); - parser.setHandler(handler); - - try { - InputStream _in; - - if (resource) { - _in = Main.class.getResourceAsStream(path); - } else { - _in = new FileInputStream(path); - } - - BufferedReader in = new BufferedReader( - new InputStreamReader(_in)); - parser.parse(null, null, in); - } catch (XmlException xe) { - int line = xe.getLine(); - String message = xe.getMessage(); - Log.log(Log.ERROR, Main.class, path + ":" + line + ": " + message); - } catch (Exception e) { - Log.log(Log.ERROR, Main.class, e); - } - } - - - /** - * Loads a scheme to hilight code in - * - * @param scheme The path to the scheme - * @exception FileNotFoundException When the file cannot be found - * @exception IOException When the file cannot be read - */ - private static void loadScheme(String scheme) - throws FileNotFoundException, IOException { - InputStream in = null; - - if (scheme == null) { - in = Main.class.getResourceAsStream( - "/schemes/default.jedit-scheme"); - } else { - in = new FileInputStream(scheme); - } - - propertyAccessor.loadProps(in); - } - - - /** - * Loads XMode errors - */ - private static void loadXModeErrors() { - propertyAccessor.setProperty( - "xmode-error.title", - "XML Parse Error"); - // {2} is the column number, but it's not too useful so we don't show it - propertyAccessor.setProperty( - "xmode-error.message", - "An error occurred while parsing {0}, line {1}:\n\t{3}"); - propertyAccessor.setProperty( - "xmode-error.dtd", "The DTD could not be loaded ({0})"); - propertyAccessor.setProperty( - "xmode-error.termchar-invalid", - "The value of the AT_CHAR attribute is invalid ({0})"); - propertyAccessor.setProperty( - "xmode-error.doctype-invalid", - "Expected a document type of MODE, found {0}"); - propertyAccessor.setProperty( - "xmode-error.empty-tag", - "The {0} tag cannot be empty"); - propertyAccessor.setProperty( - "xmode-error.token-invalid", - "The token type {0} is invalid"); - propertyAccessor.setProperty( - "xmode-error.empty-keyword", - "The keyword text cannot be empty"); - } - - - /** - * Gets the property of the class - * - * @param name The property key - * @return The property value - */ - public final static String getProperty(String name) { - return propertyAccessor.getProperty(name); - } - - - /** - * Gets the property of the class - * - * @param name The property key - * @param def Default value - * @return The property value - */ - public final static String getProperty(String name, String def) { - return propertyAccessor.getProperty(name, def); - } - - - /** - * Gets the property of the class - * - * @param name The property key - * @param args Returns the property with the specified name. The elements - * of the args array are substituted into the value of the property in - * place of strings of the form {n}, where n is an index in the array. - * You can find out more about this feature by reading the - * documentation for the format method of the - * <code>java.text.MessageFormat<code> class. - * @return The property value - */ - public final static String getProperty(String name, Object[] args) { - return propertyAccessor.getProperty(name, args); - } -} - Deleted: plugins/Code2HTML/trunk/code2html/Mode.java =================================================================== --- plugins/Code2HTML/trunk/code2html/Mode.java 2009-01-28 15:39:09 UTC (rev 14501) +++ plugins/Code2HTML/trunk/code2html/Mode.java 2009-01-28 15:39:56 UTC (rev 14502) @@ -1,265 +0,0 @@ -/* - * Mode.java - jEdit editing mode - * - * Copyright (C) 1998, 1999, 2000 Slava Pestov - * Copyright (C) 1999 mike dillon - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or any later version. - * - * 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 the - * GNU General Public License for more details. - * - * 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 code2html; - -//{{{ Imports -import java.util.Hashtable; - -import org.gjt.sp.jedit.MiscUtilities; -import org.gjt.sp.util.Log; -import code2html.syntax.TokenMarker; - -import gnu.regexp.*; -//}}} - -/** - * An edit mode defines specific settings for editing some type of file. One - * instance of this class is created for each supported edit mode. - * - * @author Slava Pestov - * @version $Id$ - * @todo Get latest mode from the jedit trunk or better yet - link to - * jEdit's real Mode class (org.gjt.sp.jedit.Mode) - */ -public class Mode { - private RE filenameRE; - private RE firstlineRE; - private TokenMarker marker; - private String name; - private Hashtable props; - - //{{{ Mode constructor - /** - * Creates a new edit mode. - * - * @param name The name used in mode listings and to query mode properties - * @see #getProperty(String) - */ - public Mode(String name) { - this.name = name; - props = new Hashtable(); - } //}}} - - //{{{ setProperties() method - /** - * Should only be called by <code>XModeHandler</code>. - * - * @param props The new properties value - * @since jEdit 4.0pre3 - */ - public void setProperties(Hashtable props) { - String filenameGlob = (String) getProperty("filenameGlob"); - String firstlineGlob = (String) getProperty("firstlineGlob"); - this.props = props; - if (filenameGlob != null) { - props.put("filenameGlob", filenameGlob); - } - if (firstlineGlob != null) { - props.put("firstlineGlob", firstlineGlob); - } - } //}}} - - //{{{ setProperty() method - /** - * Sets a mode property. - * - * @param key The property name - * @param value The property value - */ - public void setProperty(String key, Object value) { - props.put(key, value); - } //}}} - - //{{{ setTokenMarker() method - /** - * Sets the token marker for this mode. This token marker will be cloned to - * obtain new instances. - * - * @param marker The new token marker - */ - public void setTokenMarker(TokenMarker marker) { - this.marker = marker; - } //}}} - - //{{{ getBooleanProperty() method - /** - * Returns the value of a boolean property. - * - * @param key The property name - * @return The boolean property value - * @since jEdit 2.5pre3 - */ - public boolean getBooleanProperty(String key) { - Object value = getProperty(key); - if ("true".equals(value) || "on".equals(value) || "yes".equals(value)) { - return true; - } else { - return false; - } - } //}}} - - //{{{ getName() method - /** - * Returns the internal name of this edit mode. - * - * @return The name value - */ - public String getName() { - return name; - } //}}} - - //{{{ getProperty() method - /** - * Returns a mode property. - * - * @param key The property name - * @return The property value - * @since jEdit 2.2pre1 - */ - public Object getProperty(String key) { - String prefix = "mode." + name + "."; - - //if(jEdit.getBooleanProperty(prefix + "customSettings")) - //{ - String property = Main.getProperty(prefix + key); - if (property != null && property.length() != 0) { - Object value; - try { - value = new Integer(property); - } catch (NumberFormatException nf) { - value = property; - } - return value; - } - //} - - Object value = props.get(key); - if (value != null) { - return value; - } - - String global = Main.getProperty("buffer." + key); - if (global != null) { - try { - return new Integer(global); - } catch (NumberFormatException nf) { - return global; - } - } else { - return null; - } - } //}}} - - //{{{ getTokenMarker() method - /** - * Returns the token marker specified with <code>setTokenMarker()</code>. - * Should only be called by <code>TokenMarker.getExternalRuleSet()</code>. - * - * @return The token marker value - */ - public TokenMarker getTokenMarker() { - loadIfNecessary(); - return marker; - } //}}} - - //{{{ accept() method - /** - * Returns if the edit mode is suitable for editing the specified file. The - * buffer name and first line is checked against the file name and first - * line globs, respectively. - * - * @param fileName The buffer's name - * @param firstLine The first line of the buffer - * @return - * @since jEdit 3.2pre3 - */ - public boolean accept(String fileName, String firstLine) { - if (filenameRE != null && filenameRE.isMatch(fileName)) { - return true; - } - - if (firstlineRE != null && firstlineRE.isMatch(firstLine)) { - return true; - } - - return false; - } //}}} - - //{{{ init() - /** - * Initializes the edit mode. Should be called after all properties are - * loaded and set. - */ - public void init() { - try { - String filenameGlob = (String) getProperty("filenameGlob"); - if (filenameGlob != null && filenameGlob.length() != 0) { - filenameRE = new RE(MiscUtilities.globToRE( - filenameGlob), RE.REG_ICASE); - } - - String firstlineGlob = (String) getProperty("firstlineGlob"); - if (firstlineGlob != null && firstlineGlob.length() != 0) { - firstlineRE = new RE(MiscUtilities.globToRE( - firstlineGlob), RE.REG_ICASE); - } - } catch (REException re) { - Log.log(Log.ERROR, this, "Invalid filename/firstline" - + " globs in mode " + name); - Log.log(Log.ERROR, this, re); - } - } //}}} - - //{{{ loadIfNecessary() method - /** - * Loads the mode from disk if it hasn't been loaded already. - * - * @since jEdit 2.5pre3 - */ - public void loadIfNecessary() { - if (marker == null) { - ModeUtilities.loadMode(this); - } - } //}}} - - //{{{ toString() method - /** - * Returns a string representation of this edit mode. - * - * @return - */ - public String toString() { - return getClass().getName() + "[" + getName() + "]"; - } //}}} - - //{{{ unsetProperty() method - /** - * Unsets a mode property. - * - * @param key The property name - * @since jEdit 3.2pre3 - */ - public void unsetProperty(String key) { - props.remove(key); - } - //}}} -} - Deleted: plugins/Code2HTML/trunk/code2html/ModeCatalogHandler.java =================================================================== --- plugins/Code2HTML/trunk/code2html/ModeCatalogHandler.java 2009-01-28 15:39:09 UTC (rev 14501) +++ plugins/Code2HTML/trunk/code2html/ModeCatalogHandler.java 2009-01-28 15:39:56 UTC (rev 14502) @@ -1,175 +0,0 @@ -/* - * ModeCatalogHandler.java - XML handler for mode catalog files - * :tabSize=8:indentSize=8:noTabs=false: - * :folding=explicit:collapseFolds=1: - * - * Copyright (C) 2000, 2001 Slava Pestov - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or any later version. - * - * 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 the - * GNU General Public License for more details. - * - * 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 code2html; -import java.io.*; -import java.util.Stack; -import org.gjt.sp.jedit.MiscUtilities; -import org.gjt.sp.util.Log; - -import com.microstar.xml.*; - -/** - * @author Slava Pestov - * @version 0.5 - @todo Replace or link to jEdit's own (org.gjt.sp.jedit.syntax.XModeHandler)? - */ -class ModeCatalogHandler extends HandlerBase { - - // end HandlerBase implementation - - // private members - private String directory; - private String file; - private String filenameGlob; - private String firstlineGlob; - - private String modeName; - private boolean resource; - - - /** - * ModeCatalogHandler Constructor - * - * @param directory - * @param resource - */ - ModeCatalogHandler(String directory, boolean resource) { - this.directory = directory; - this.resource = resource; - } - - - /** - * @param aname - * @param value - * @param isSpecified - */ - public void attribute(String aname, String value, boolean isSpecified) { - aname = (aname == null) ? null : aname.intern(); - - if (aname == "NAME") { - modeName = value; - } else if (aname == "FILE") { - if (value == null) { - Log.log(Log.ERROR, this, directory + "catalog:" - + " mode " + modeName + " doesn't have" - + " a FILE attribute"); - } else { - file = value; - } - } else if (aname == "FILE_NAME_GLOB") { - filenameGlob = value; - } else if (aname == "FIRST_LINE_GLOB") { - firstlineGlob = value; - } - } - - - /** - * @param name - * @param publicId - * @param systemId - * @exception Exception - */ - public void doctypeDecl(String name, String publicId, - String systemId) throws Exception { - // older jEdit versions used a DOCTYPE of CATALOG, which - // is incorrect since the DOCTYPE must be the name of the - // root element, which is MODES. - - // so you the avid code reader should use MODES as the - // DOCTYPE instead, but we still let old catalogs through - // to avoid annoying users. - if ("CATALOG".equals(name) || "MODES".equals(name)) { - return; - } - - Log.log(Log.ERROR, this, directory + "catalog: DOCTYPE must be CATALOG"); - } - - - /** - * @param name - */ - public void endElement(String name) { - if (name.equals("MODE")) { - Mode mode = ModeUtilities.getMode(modeName); - if (mode == null) { - mode = new Mode(modeName); - ModeUtilities.addMode(mode); - } - - Object path; - if (resource) { - path = Main.class.getResource(directory + file); - } else { - path = MiscUtilities.constructPath(directory, file); - } - mode.setProperty("file", path); - - if (filenameGlob != null) { - mode.setProperty("filenameGlob", filenameGlob); - } else { - mode.unsetProperty("filenameGlob"); - } - - if (firstlineGlob != null) { - mode.setProperty("firstlineGlob", firstlineGlob); - } else { - mode.unsetProperty("firstlineGlob"); - } - - mode.init(); - - modeName = file = filenameGlob = firstlineGlob = null; - } - } - - - /** - * @param publicId - * @param systemId - * @return - */ - public Object resolveEntity(String publicId, String systemId) { - if ("catalog.dtd".equals(systemId)) { - // this will result in a slight speed up, since we - // don't need to read the DTD anyway, as AElfred is - // non-validating - return new StringReader("<!-- -->"); - /* try - *{ - *return new BufferedReader(new InputStreamReader( - *getClass().getResourceAsStream("catalog.dtd"))); - *} - *catch(Exception e) - *{ - *Log.log(Log.ERROR,this,"Error while opening" - *+ " catalog.dtd:"); - *Log.log(Log.ERROR,this,e); - *} */ - } - - return null; - } -} - Deleted: plugins/Code2HTML/trunk/code2html/ModeUtilities.java =================================================================== --- plugins/Code2HTML/trunk/code2html/ModeUtilities.java 2009-01-28 15:39:09 UTC (rev 14501) +++ plugins/Code2HTML/trunk/code2html/ModeUtilities.java 2009-01-28 15:39:56 UTC (rev 14502) @@ -1,145 +0,0 @@ -/* - * ModeUtilities.java - * Copyright (c) 1998, 1999, 2000, 2001, 2002 Slava Pestov - * Copyright (c) 2002 Andre Kaplan - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or any later version. - * - * 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 the - * GNU General Public License for more details. - * - * 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 code2html; - -import java.io.*; -import java.net.URL; -import java.util.Vector; - -import org.gjt.sp.util.Log; - -import com.microstar.xml.*; - -import code2html.syntax.ParserRuleSet; -import code2html.syntax.TokenMarker; -import code2html.syntax.XModeHandler; - - -/** - * @author Slava Pestov - * @version 0.5 - * @todo Link or replace with jEdit's own - */ -public class ModeUtilities { - private static Vector modes = new Vector(50); - - - /** - * ModeUtilities Constructor - */ - private ModeUtilities() { } //}}} - - - //{{{ getMode() method - /** - * Returns the edit mode with the specified name. - * - * @param name The edit mode - * @return The mode value - */ - public static Mode getMode(String name) { - for (int i = 0; i < modes.size(); i++) { - Mode mode = (Mode) modes.elementAt(i); - if (mode.getName().equals(name)) { - return mode; - } - } - return null; - } //}}} - - - //{{{ getModes() method - /** - * Returns an array of installed edit modes. - * - * @return The modes value - */ - public static Mode[] getModes() { - Mode[] array = new Mode[modes.size()]; - modes.copyInto(array); - return array; - } //}}} - - - //{{{ addMode() method - /** - * Do not call this method. It is only public so that classes in the - * org.gjt.sp.jedit.syntax package can access it. - * - * @param mode The edit mode - */ - public static void addMode(Mode mode) { - Log.log(Log.DEBUG, ModeUtilities.class, "Adding edit mode " - + mode.getName()); - - modes.addElement(mode); - } - - - //{{{ loadMode() method - /** - * Loads an XML-defined edit mode from the specified reader. - * - * @param mode The edit mode - */ - /* package-private */ - static void loadMode(Mode mode) { - Object fileName = mode.getProperty("file"); - - Log.log(Log.NOTICE, ModeUtilities.class, "Loading edit mode " + fileName); - - XmlParser parser = new XmlParser(); - XModeHandler xmh = new XModeHandler(parser, mode.getName(), fileName.toString()); - parser.setHandler(xmh); - try { - Reader grammar; - if (fileName instanceof URL) { - grammar = new BufferedReader( - new InputStreamReader( - ((URL) fileName).openStream())); - } else { - grammar = new BufferedReader(new FileReader( - (String) fileName)); - } - - parser.parse(null, null, grammar); - } catch (Throwable e) { - Log.log(Log.ERROR, ModeUtilities.class, e); - - if (e instanceof XmlException) { - XmlException xe = (XmlException) e; - int line = xe.getLine(); - String message = xe.getMessage(); - - Object[] args = {fileName, new Integer(line), message}; - Log.log( - Log.ERROR, ModeUtilities.class, - Main.getProperty("xmode-error" + ".message", args) - ); - } - - // give it an empty token marker to avoid problems - TokenMarker marker = new TokenMarker(); - marker.addRuleSet("MAIN", new ParserRuleSet("MAIN", mode)); - mode.setTokenMarker(marker); - } - } //}}} -} - Deleted: plugins/Code2HTML/trunk/code2html/PropertyAccessor.java =================================================================== --- plugins/Code2HTML/trunk/code2html/PropertyAccessor.java 2009-01-28 15:39:09 UTC (rev 14501) +++ plugins/Code2HTML/trunk/code2html/PropertyAccessor.java 2009-01-28 15:39:56 UTC (rev 14502) @@ -1,97 +0,0 @@ -/* - * PropertyAccessor.java - * Copyright (c) 2002 Andre Kaplan - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or any later version. - * - * 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 the - * GNU General Public License for more details. - * - * 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 code2html; - -/** - * Redundant interface to access properties. This and all its implementations - * should be removed from the code - * - * @author Andre Kaplan - * @version 0.5 - * @delete file & see what happens - */ -public interface PropertyAccessor { - /** - * Fetches a property, returning null if it's not defined. - * - * @param name The property - * @return The property value - */ - String getProperty(String name); - - - /** - * Fetches a property, returning the default value if it's not defined. - * - * @param name The property - * @param def The default value - * @return The property value - */ - String getProperty(String name, String def); - - - /** - * Returns the property with the specified name, formatting it with the - * <code>java.text.MessageFormat.format()</code> method. - * - * @param name The property - * @param args The positional parameters - * @return The property value - */ - String getProperty(String name, Object[] args); - - - /** - * Fetches a boolean property, returning false if it's not defined. - * - * @param name The property - * @return The boolean property value - */ - boolean getBooleanProperty(String name); - - - /** - * Fetches a boolean property, returning the default value if it's not - * defined. - * - * @param name The property - * @param def The default value - * @return The boolean property value - */ - boolean getBooleanProperty(String name, boolean def); - - - /** - * Sets a property to a new value. - * - * @param name The property - * @param value The new value - */ - void setProperty(String name, String value); - - - /** - * Sets a boolean property to a new value. - * - * @param name The property - * @param value The new value - */ - void setBooleanProperty(String name, boolean value); -} - Deleted: plugins/Code2HTML/trunk/code2html/SelectionStartLineComparator.java =================================================================== --- plugins/Code2HTML/trunk/code2html/SelectionStartLineComparator.java 2009-01-28 15:39:09 UTC (rev 14501) +++ plugins/Code2HTML/trunk/code2html/SelectionStartLineComparator.java 2009-01-28 15:39:56 UTC (rev 14502) @@ -1,40 +0,0 @@ -/* - * SelectionStartLineComparator.java - * Copyright (c) 2000, 2001, 2002 Andre Kaplan - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or any later version. - * - * 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 the - * GNU General Public License for more details. - * - * 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 code2html ; - -import java.util.Comparator ; -import org.gjt.sp.jedit.textarea.Selection ; - -public class SelectionStartLineComparator implements Comparator { - public int compare(Object obj1, Object obj2) { - Selection s1 = (Selection) obj1; - Selection s2 = (Selection) obj2; - - int diff = s1.getStartLine() - s2.getStartLine(); - - if (diff == 0) { - return 0; - } else if (diff > 0) { - return 1; - } else { - return -1; - } - } -} Deleted: plugins/Code2HTML/trunk/code2html/StyleUtilities.java =================================================================== --- plugins/Code2HTML/trunk/code2html/StyleUtilities.java 2009-01-28 15:39:09 UTC (rev 14501) +++ plugins/Code2HTML/trunk/code2html/StyleUtilities.java 2009-01-28 15:39:56 UTC (rev 14502) @@ -1,94 +0,0 @@ -/* - * StyleUtilities.java - * Copyright (c) 1998, 1999, 2000, 2001, 2002 Slava Pestov - * Copyright (c) 2002 Andre Kaplan - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or any later version. - * - * 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 the - * GNU General Public License for more details. - * - * 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 code2html; - -import java.awt.Font; - -import org.gjt.sp.jedit.GUIUtilities; -import org.gjt.sp.jedit.syntax.SyntaxStyle; -import org.gjt.sp.jedit.syntax.Token; -import org.gjt.sp.util.Log; - - -/** - * @author Slava Pestov - * @version 0.5 - * @todo Replace or link with jEdit's own - */ -public class StyleUtilities { - /** - * StyleUtilities Constructor - */ - private StyleUtilities() { } - - - //{{{ loadStyles() method - /** - * Loads the syntax styles from the properties, giving them the specified - * base font family and size. - * - * @param propertyAccessor The property accessor - * @param family The font family - * @param size The font size - * @param color If false, the styles will be monochrome - * @return - * @since jEdit 4.0pre4 - */ - public static SyntaxStyle[] loadStyles( - PropertyAccessor propertyAccessor, String family, int size, boolean color - ) { - String[] names = new String[Token.ID_COUNT]; - SyntaxStyle[] styles = new SyntaxStyle[Token.ID_COUNT]; - - try { - styles[Token.NULL] = new SyntaxStyle( - GUIUtilities.parseColor(propertyAccessor.getProperty("view.fgColor")) - , null - , new Font(family, Font.PLAIN, size) - ); - - names[Token.COMMENT1] = "view.style.comment1"; - names[Token.COMMENT2] = "view.style.comment2"; - names[Token.LITERAL1] = "view.style.literal1"; - names[Token.LITERAL2] = "view.style.literal2"; - names[Token.LABEL] = "view.style.label"; - names[Token.KEYWORD1] = "view.style.keyword1"; - names[Token.KEYWORD2] = "view.style.keyword2"; - names[Token.KEYWORD3] = "view.style.keyword3"; - names[Token.FUNCTION] = "view.style.function"; - names[Token.MARKUP] = "view.style.markup"; - names[Token.OPERATOR] = "view.style.operator"; - names[Token.DIGIT] = "view.style.digit"; - names[Token.INVALID] = "view.style.invalid"; - - for (int i = 1; i < Token.ID_COUNT; i++) { - String style = propertyAccessor.getProperty(names[i]); - styles[i] = GUIUtilities.parseStyle( - style, family, size, color - ); - } - } catch (Exception e) { - Log.log(Log.ERROR, StyleUtilities.class, e); - } - - return styles; - } //}}} -} - Deleted: plugins/Code2HTML/trunk/code2html/SyntaxToken.java =================================================================== --- plugins/Code2HTML/trunk/code2html/SyntaxToken.java 2009-01-28 15:39:09 UTC (rev 14501) +++ plugins/Code2HTML/trunk/code2html/SyntaxToken.java 2009-01-28 15:39:56 UTC (rev 14502) @@ -1,49 +0,0 @@ -/* - * SyntaxToken.java - * Copyright (C) 1998, 1999, 2000, 2001 Slava Pestov - * Copyright (c) 2002 Andre Kaplan - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or any later version. - * - * 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 the - * GNU General Public License for more details. - * - * 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 code2html; - - -/** - * @author Slava Pestov - * @version 0.5 - * @todo Replace or link with jedit's own - */ -public class SyntaxToken { - - /** - * The id of this token. - */ - public byte id = 0; - /** - * The length of this token. - */ - public int length = 0; - - /** - * The next token in the linked list. - */ - public SyntaxToken next = null; - - /** - * The previous token in the linked list. - */ - public SyntaxToken prev = null; -} - Deleted: plugins/Code2HTML/trunk/code2html/SyntaxTokenUtilities.java =================================================================== --- plugins/Code2HTML/trunk/code2html/SyntaxTokenUtilities.java 2009-01-28 15:39:09 UTC (rev 14501) +++ plugins/Code2HTML/trunk/code2html/SyntaxTokenUtilities.java 2009-01-28 15:39:56 UTC (rev 14502) @@ -1,206 +0,0 @@ -/* - * SyntaxTokenUtilities.java - * Copyright (c) 2002 Andre Kaplan - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or any later version. - * - * 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 the - * GNU General Public License for more details. - * - * You should have received a cop... [truncated message content] |