diff options
-rw-r--r-- | devel/Makefile | 1 | ||||
-rw-r--r-- | devel/jline/Makefile | 66 | ||||
-rw-r--r-- | devel/jline/distinfo | 3 | ||||
-rw-r--r-- | devel/jline/files/JLineCompleter.py | 211 | ||||
-rw-r--r-- | devel/jline/files/jython.sh | 48 | ||||
-rw-r--r-- | devel/jline/files/patch-src-src-main-java-jline-ConsoleRunner.java | 22 | ||||
-rw-r--r-- | devel/jline/pkg-descr | 18 | ||||
-rw-r--r-- | devel/jline/pkg-message | 5 | ||||
-rw-r--r-- | devel/jline/pkg-plist | 119 |
9 files changed, 493 insertions, 0 deletions
diff --git a/devel/Makefile b/devel/Makefile index 8d0f8b5001f0..edff0c143c94 100644 --- a/devel/Makefile +++ b/devel/Makefile @@ -495,6 +495,7 @@ SUBDIR += jclassinfo SUBDIR += jcmdline SUBDIR += jep + SUBDIR += jline SUBDIR += jrtplib SUBDIR += jsap SUBDIR += jsmin diff --git a/devel/jline/Makefile b/devel/jline/Makefile new file mode 100644 index 000000000000..46b04e274915 --- /dev/null +++ b/devel/jline/Makefile @@ -0,0 +1,66 @@ +# New ports collection makefile for: libreadline-java +# Date created: 21 September 2007 +# Whom: Martin Kammerhofer <mkamm@gmx.net> +# +# $FreeBSD$ +# + +PORTNAME= jline +PORTVERSION= 0.9.91 +CATEGORIES= devel java +MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} +MASTER_SITE_SUBDIR= ${PORTNAME} + +MAINTAINER= mkamm@gmx.net +COMMENT= JLine is a Java library for handling console input + +PKGMESSAGE= ${WRKDIR}/pkg-message +USE_JAVA= yes +USE_ZIP= yes +OPTIONS= JLINEPATCH "Allow ConsoleRunner customized completion" OFF +JLINEJAR= ${WRKSRC}/jline-${PORTVERSION}.jar + +.include <bsd.port.pre.mk> + +# Update jar archive with patched jline.ConsoleRunner class. +do-build: +.ifdef(WITH_JLINEPATCH) + ${JAVAC} -classpath ${JLINEJAR} \ + ${WRKSRC}/src/src/main/java/jline/ConsoleRunner.java + ${JAR} uvf ${JLINEJAR} -C ${WRKSRC}/src/src/main/java \ + jline/ConsoleRunner.class +.endif + +do-install: + ${INSTALL_DATA} ${JLINEJAR} ${JAVAJARDIR} + ${LN} -nfs ${JAVAJARDIR}/jline-${PORTVERSION}.jar \ + ${JAVAJARDIR}/jline.jar +.if !defined(NOPORTDOCS) + ${MKDIR} ${DOCSDIR} + ${CP} -R ${WRKSRC}/apidocs ${WRKSRC}/examples ${DOCSDIR} + ${INSTALL_DATA} ${FILESDIR}/JLineCompleter.py ${DOCSDIR}/examples + ${INSTALL_DATA} ${FILESDIR}/jython.sh ${DOCSDIR}/examples +.endif + +post-install: + @${SED} -e 's|%%JAVAJARDIR%%|${JAVAJARDIR}|g' -- \ + ${.CURDIR}/pkg-message >${PKGMESSAGE} + @${CAT} ${PKGMESSAGE} + +# Next rule is for maintainer use only: Automatically (re)create the pkg-plist. +plist: + @test -e ${CONFIGURE_COOKIE} || { \ + ${ECHO_MSG} >&2 "do 'make configure' first!"; exit 64; } + ${ECHO_CMD} "%%JAVAJARDIR%%/jline-${PORTVERSION}.jar" >${PLIST} + ${ECHO_CMD} "%%JAVAJARDIR%%/jline.jar" >>${PLIST} + ( \ + cd ${WRKSRC} || exit; \ + ${FIND} ./apidocs ./examples -type f | ${SORT}; \ + ${ECHO_CMD} "./examples/JLineCompleter.py"; \ + ${ECHO_CMD} "./examples/jython.sh"; \ + ${FIND} ./apidocs ./examples -type d | ${SORT} -r \ + | ${SED} -e 's/^/@dirrm /'; \ + ${ECHO_CMD} "@dirrm %%DOCSDIR%%" ; \ + ) | ${SED} -e 's/\.\//%%DOCSDIR%%\//' -e 's/^/%%PORTDOCS%%/' >>${PLIST} + +.include <bsd.port.post.mk> diff --git a/devel/jline/distinfo b/devel/jline/distinfo new file mode 100644 index 000000000000..e36157caab56 --- /dev/null +++ b/devel/jline/distinfo @@ -0,0 +1,3 @@ +MD5 (jline-0.9.91.zip) = 787330d1975c0d58a94ab84b5378d521 +SHA256 (jline-0.9.91.zip) = c9086800211ba4a55a62055967cb467078c626cad31916270204691f31e4c74b +SIZE (jline-0.9.91.zip) = 750026 diff --git a/devel/jline/files/JLineCompleter.py b/devel/jline/files/JLineCompleter.py new file mode 100644 index 000000000000..548f5ff6d5ba --- /dev/null +++ b/devel/jline/files/JLineCompleter.py @@ -0,0 +1,211 @@ +# (X)Emacs: -*- mode: python; coding: latin-1; -*- +# TAB-Completion for Jython with JLine console. +# JLineCompleter.py,v 1.5 2007/09/28 09:13:10 martin Exp + +# Jython + JLine + Tab-Completion Micro-Howto: +# +# JLine is a 99% pure Java console library similar to GNU Readline but +# with an incompatible API. Jython 2.2 already contains some support +# for JLine. For basic line editing and a command history it suffices +# to set python.console=org.python.util.JLineConsole either in the +# Jython registry or in the ~/.jython file. Obviously the JLine +# jarfile must be in your classpath. +# +# Unfortunately Jython does not support tab-completion for JLine yet. +# It can be enabled by importing this file - however this needs +# patches. To summarize prerequisites: +# +# 1. You need a patch to JLine that adds the +# ConsoleRunner.getReader() method. On FreeBSD build jline with +# option WITH_JLINEPATCH enabled. +# +# 2. You must wrap the entry point to Jython with a +# jline.ConsoleRunner instance. You do this by editing +# /usr/local/bin/jython and inserting an extra argument +# "jline.ConsoleRunner" right before the "org.python.util.jython" +# argument. +# +# 3. While there don't forget to add +# /usr/local/share/java/classes/jline.jar to the classpath. +# +# 4. You must set python.console="" in the ~/.jython file. You +# don't want Jython to create another console instance running +# behind the wrapper console. +# +# 5. Finally you have to import this module. You may want to do a +# "import user" instead and code the "import JLineCompleter" +# inside ~/.pythonrc.py instead. +# +# If that is too much hassle - just wait for my upcoming +# devel/libreadline-java port! + + +"""Word completion for JLine + +The completer completes keywords, built-ins and globals in a +selectable namespace (which defaults to __main__); when completing +NAME.NAME..., it evaluates (!) the expression up to the last dot and +completes its attributes. + +It's very cool to do "import sys" type "sys.", hit the +completion key (twice), and see the list of names defined by the +sys module! + +Notes: + +- Exceptions raised by the completer function are *ignored* (and +generally cause the completion to fail). This is a feature -- since +readline sets the tty device in raw (or cbreak) mode, printing a +traceback wouldn't work well without some complicated hoopla to save, +reset and restore the tty state. + +- The evaluation of the NAME.NAME... form may cause arbitrary +application defined code to be executed if an object with a +__getattr__ hook is found. Since it is the responsibility of the +application (or the user) to enable this feature, I consider this an +acceptable risk. More complicated expressions (e.g. function calls or +indexing operations) are *not* evaluated. + +This module is a slightly hacked version of the CPython 2.5 module +rlcompleter. It is therefore under the PSF (Python Software +Foundation) license. +""" + +__all__ = ["JLineCompleter"] +__license__ = "PSF" + +try: + import jline +except ImportError: + raise ImportError("Make sure you have the jline.jar in classpath!") +if not jline.__file__: + jline.__file__ = "jline.jar" # Keep the site module from throwing. +import __builtin__ +import keyword +import re + + +# @sig public class JythonCompleter extends java.lang.Object implements +# jline.Completor, org.python.core.PyProxy, org.python.core.ClassDictInit +class JLineCompleter(jline.Completor): + def __init__(self, namespace = None): + """Create a new completer for the command line. + + Completer([namespace]) -> completer instance. + + If unspecified, the default namespace where completions are performed + is __main__ (technically, __main__.__dict__). Namespaces should be + given as dictionaries. + + Completer instances should be used as the completion mechanism of + JLine via the jline.ConsoleRunner.completors system property. + """ + + if namespace and not isinstance(namespace, dict): + raise TypeError,'namespace must be a dictionary' + + # Don't bind to namespace quite yet, but flag whether the user wants a + # specific namespace or to use __main__.__dict__. This will allow us + # to bind to __main__.__dict__ at completion time, not now. + if namespace is None: + self.use_main_ns = 1 + else: + self.use_main_ns = 0 + self.namespace = namespace + + # @sig int complete(String buffer, int cursor, List candidates) + def complete(self, buffer, cursor, candidates): + """Return the list of possible completions for 'buffer'.""" + if self.use_main_ns: + import __main__ + self.namespace = __main__.__dict__ + + # Determine the text to be expanded: + text = buffer[:cursor] + start = 0 + for i in xrange(cursor - 1, -1, -1): + ch = text[i] + if not (ch.isalnum() or ch == '.' or ch == '_'): + start = i + 1 + break + text = text[start:] + try: + if "." in text: + self.matches = self.attr_matches(text) + else: + self.matches = self.global_matches(text) + for m in self.matches: + candidates.add(m) + if self.matches: + return start + else: + return -1 + except (AttributeError, IndexError, NameError): + return -1 + + def global_matches(self, text): + """Compute matches when text is a simple name. + + Return a list of all keywords, built-in functions and names currently + defined in self.namespace that match. + + """ + matches = [] + n = len(text) + for list in [keyword.kwlist, + __builtin__.__dict__, + self.namespace]: + for word in list: + if word[:n] == text and word != "__builtins__": + matches.append(word) + return matches + + def attr_matches(self, text): + """Compute matches when text contains a dot. + + Assuming the text is of the form NAME.NAME....[NAME], and is + evaluatable in self.namespace, it will be evaluated and its attributes + (as revealed by dir()) are used as possible completions. (For class + instances, class members are also considered.) + + WARNING: this can still invoke arbitrary C code, if an object + with a __getattr__ hook is evaluated. + + """ + m = re.match(r"(\w+(\.\w+)*)\.(\w*)", text) + if not m: + return + expr, attr = m.group(1, 3) + object = eval(expr, self.namespace) + words = dir(object) + if hasattr(object,'__class__'): + words.append('__class__') + words = words + get_class_members(object.__class__) + matches = [] + n = len(attr) + for word in words: + if word[:n] == attr and word != "__builtins__": + matches.append("%s.%s" % (expr, word)) + return matches + +def get_class_members(klass): + ret = dir(klass) + if hasattr(klass,'__bases__'): + for base in klass.__bases__: + ret = ret + get_class_members(base) + return ret + +try: + reader = jline.ConsoleRunner.getReader() + if reader: + reader.addCompletor(JLineCompleter()) + else: + raise RuntimeError("jline.ConsoleRunner not active") +except AttributeError: + # XXX This message is FreeBSD specific! + raise NotImplementedError("Incompatible JLine version! Set WITH_JLINEPATCH=1 and rebuild the devel/jline port!") + +if __name__ == '__main__': + print "Sorry, no unittests yet!" + +#EOF# diff --git a/devel/jline/files/jython.sh b/devel/jline/files/jython.sh new file mode 100644 index 000000000000..5e008d3a2d79 --- /dev/null +++ b/devel/jline/files/jython.sh @@ -0,0 +1,48 @@ +#!/bin/sh +# Invoke Jython. +# jython.sh,v 1.5 2007/09/28 09:13:55 martin Exp +# +# The path names below are for Jython 2.2 on FreeBSD. +# + +CP="/usr/local/lib/jython22/jython.jar" +defs= +wrapper= + +case "${JYTHON_CONSOLE:-JLine}" in + *[Ee]dit[Ll]ine) + CP="$CP:/usr/local/share/java/classes/libreadline-java.jar" + defs="-Dpython.console=org.python.util.ReadlineConsole" + defs="$defs -Dpython.console.readlinelib=Editline" + ;; + *[Gg]et[Ll]ine) + CP="$CP:/usr/local/share/java/classes/libreadline-java.jar" + defs="-Dpython.console=org.python.util.ReadlineConsole" + defs="$defs -Dpython.console.readlinelib=Getline" + ;; + *[Jj][Ll]ine) + CP="$CP:/usr/local/share/java/classes/jline.jar" + defs="-Dpython.console=" + wrapper=jline.ConsoleRunner + ;; + *[Rr]ead[Ll]ine) + CP="$CP:/usr/local/share/java/classes/libreadline-java.jar" + defs="-Dpython.console=org.python.util.ReadlineConsole" + defs="$defs -Dpython.console.readlinelib=GnuReadline" + ;; + *) + echo >&2 "$0: illegal value of JYTHON_CONSOLE: $JYTHON_CONSOLE" + exit 64 + ;; +esac + + +if [ -n "$CLASSPATH" ]; then + CP="$CP:$CLASSPATH" +fi + +exec java -Dpython.home="/usr/local/lib/jython22" \ + -Dpython.cachedir="${HOME}/.jython-cachedir" \ + -classpath "$CP" $wrapper org.python.util.jython $defs "$@" + +#EOF# diff --git a/devel/jline/files/patch-src-src-main-java-jline-ConsoleRunner.java b/devel/jline/files/patch-src-src-main-java-jline-ConsoleRunner.java new file mode 100644 index 000000000000..63d2ae26cd37 --- /dev/null +++ b/devel/jline/files/patch-src-src-main-java-jline-ConsoleRunner.java @@ -0,0 +1,22 @@ +--- src/src/main/java/jline/ConsoleRunner.java.orig 2007-03-09 16:32:28.000000000 +0100 ++++ src/src/main/java/jline/ConsoleRunner.java 2007-09-24 19:22:42.000000000 +0200 +@@ -17,6 +17,10 @@ + * @author <a href="mailto:mwp1@cornell.edu">Marc Prud'hommeaux</a> + */ + public class ConsoleRunner { ++ private static ConsoleReader reader; ++ ++ public static ConsoleReader getReader() { return reader; } ++ + public static final String property = "jline.history"; + + public static void main(final String[] args) throws Exception { +@@ -36,7 +40,7 @@ + String mainClass = (String) argList.remove(0); + + // setup the inpout stream +- ConsoleReader reader = new ConsoleReader(); ++ reader = new ConsoleReader(); + + if (historyFileName != null) { + reader.setHistory(new History (new File diff --git a/devel/jline/pkg-descr b/devel/jline/pkg-descr new file mode 100644 index 000000000000..5b1cdd113f5e --- /dev/null +++ b/devel/jline/pkg-descr @@ -0,0 +1,18 @@ +JLine is a Java library for handling console input. It is similar in +functionality to BSD editline and GNU readline. People familiar with +the readline/editline capabilities for modern shells (such as bash and +tcsh) will find most of the command editing features of JLine to be +familiar. + +JLine is distributed under the BSD license, meaning that you are +completely free to redistribute, modify, or sell it with almost no +restrictions. + +API documentation can be found in the apidocs directory. + +You can use the jline.ConsoleRunner application to set up the system +input stream and continue on the launch another program. For example, +to use JLine as the input handler for the popular BeanShell console +application, you can run: java jline.ConsoleRunner bsh.Interpreter + +WWW: http://jline.sourceforge.net/ diff --git a/devel/jline/pkg-message b/devel/jline/pkg-message new file mode 100644 index 000000000000..f18bb7aa2243 --- /dev/null +++ b/devel/jline/pkg-message @@ -0,0 +1,5 @@ +--------------------------------------- +To use JLine add the file +%%JAVAJARDIR%%/jline.jar +to your classpath! +--------------------------------------- diff --git a/devel/jline/pkg-plist b/devel/jline/pkg-plist new file mode 100644 index 000000000000..2af27bfd1892 --- /dev/null +++ b/devel/jline/pkg-plist @@ -0,0 +1,119 @@ +%%JAVAJARDIR%%/jline-0.9.91.jar +%%JAVAJARDIR%%/jline.jar +%%PORTDOCS%%%%DOCSDIR%%/apidocs/allclasses-frame.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/allclasses-noframe.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/constant-values.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/deprecated-list.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/files +%%PORTDOCS%%%%DOCSDIR%%/apidocs/help-doc.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/index-all.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/index.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/ANSIBuffer.ANSICodes.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/ANSIBuffer.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/ArgumentCompletor.AbstractArgumentDelimiter.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/ArgumentCompletor.ArgumentDelimiter.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/ArgumentCompletor.ArgumentList.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/ArgumentCompletor.WhitespaceArgumentDelimiter.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/ArgumentCompletor.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/CandidateCycleCompletionHandler.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/CandidateListCompletionHandler.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/ClassNameCompletor.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/CompletionHandler.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/Completor.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/ConsoleOperations.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/ConsoleReader.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/ConsoleReaderInputStream.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/ConsoleRunner.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/CursorBuffer.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/FileNameCompletor.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/History.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/MultiCompletor.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/NullCompletor.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/SimpleCompletor.NoOpFilter.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/SimpleCompletor.SimpleCompletorFilter.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/SimpleCompletor.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/Terminal.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/UnixTerminal.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/UnsupportedTerminal.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/WindowsTerminal.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/ANSIBuffer.ANSICodes.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/ANSIBuffer.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/ArgumentCompletor.AbstractArgumentDelimiter.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/ArgumentCompletor.ArgumentDelimiter.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/ArgumentCompletor.ArgumentList.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/ArgumentCompletor.WhitespaceArgumentDelimiter.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/ArgumentCompletor.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/CandidateCycleCompletionHandler.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/CandidateListCompletionHandler.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/ClassNameCompletor.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/CompletionHandler.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/Completor.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/ConsoleOperations.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/ConsoleReader.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/ConsoleReaderInputStream.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/ConsoleRunner.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/CursorBuffer.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/FileNameCompletor.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/History.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/MultiCompletor.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/NullCompletor.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/SimpleCompletor.NoOpFilter.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/SimpleCompletor.SimpleCompletorFilter.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/SimpleCompletor.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/Terminal.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/UnixTerminal.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/UnsupportedTerminal.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/class-use/WindowsTerminal.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/package-frame.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/package-summary.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/package-tree.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/jline/package-use.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/options +%%PORTDOCS%%%%DOCSDIR%%/apidocs/overview-tree.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/package-list +%%PORTDOCS%%%%DOCSDIR%%/apidocs/resources/inherit.gif +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/ANSIBuffer.ANSICodes.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/ANSIBuffer.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/ArgumentCompletor.AbstractArgumentDelimiter.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/ArgumentCompletor.ArgumentDelimiter.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/ArgumentCompletor.ArgumentList.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/ArgumentCompletor.WhitespaceArgumentDelimiter.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/ArgumentCompletor.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/CandidateCycleCompletionHandler.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/CandidateListCompletionHandler.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/ClassNameCompletor.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/CompletionHandler.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/Completor.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/ConsoleOperations.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/ConsoleReader.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/ConsoleReaderInputStream.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/ConsoleRunner.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/CursorBuffer.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/FileNameCompletor.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/History.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/MultiCompletor.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/NullCompletor.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/SimpleCompletor.NoOpFilter.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/SimpleCompletor.SimpleCompletorFilter.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/SimpleCompletor.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/Terminal.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/UnixTerminal.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/UnsupportedTerminal.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/src-html/jline/WindowsTerminal.html +%%PORTDOCS%%%%DOCSDIR%%/apidocs/stylesheet.css +%%PORTDOCS%%%%DOCSDIR%%/examples/jline/example/Example.java +%%PORTDOCS%%%%DOCSDIR%%/examples/jline/example/Example.java.rej +%%PORTDOCS%%%%DOCSDIR%%/examples/jline/example/PasswordReader.java +%%PORTDOCS%%%%DOCSDIR%%/examples/jline/example/english.gz +%%PORTDOCS%%%%DOCSDIR%%/examples/JLineCompleter.py +%%PORTDOCS%%%%DOCSDIR%%/examples/jython.sh +%%PORTDOCS%%@dirrm %%DOCSDIR%%/examples/jline/example +%%PORTDOCS%%@dirrm %%DOCSDIR%%/examples/jline +%%PORTDOCS%%@dirrm %%DOCSDIR%%/examples +%%PORTDOCS%%@dirrm %%DOCSDIR%%/apidocs/src-html/jline +%%PORTDOCS%%@dirrm %%DOCSDIR%%/apidocs/src-html +%%PORTDOCS%%@dirrm %%DOCSDIR%%/apidocs/resources +%%PORTDOCS%%@dirrm %%DOCSDIR%%/apidocs/jline/class-use +%%PORTDOCS%%@dirrm %%DOCSDIR%%/apidocs/jline +%%PORTDOCS%%@dirrm %%DOCSDIR%%/apidocs +%%PORTDOCS%%@dirrm %%DOCSDIR%% |