aboutsummaryrefslogtreecommitdiff
path: root/devel/jline
diff options
context:
space:
mode:
authorAlejandro Pulver <alepulver@FreeBSD.org>2007-10-02 18:20:44 +0000
committerAlejandro Pulver <alepulver@FreeBSD.org>2007-10-02 18:20:44 +0000
commitb5b2b10d9354879b0d4cd7a467f7982403735a23 (patch)
tree75c5ef844f0d136f18f8bf7101df5368bb977990 /devel/jline
parenta4cc71ef7f94d8746ded51bc78a2ff9601e0ca78 (diff)
downloadports-b5b2b10d9354879b0d4cd7a467f7982403735a23.tar.gz
ports-b5b2b10d9354879b0d4cd7a467f7982403735a23.zip
Notes
Diffstat (limited to 'devel/jline')
-rw-r--r--devel/jline/Makefile66
-rw-r--r--devel/jline/distinfo3
-rw-r--r--devel/jline/files/JLineCompleter.py211
-rw-r--r--devel/jline/files/jython.sh48
-rw-r--r--devel/jline/files/patch-src-src-main-java-jline-ConsoleRunner.java22
-rw-r--r--devel/jline/pkg-descr18
-rw-r--r--devel/jline/pkg-message5
-rw-r--r--devel/jline/pkg-plist119
8 files changed, 492 insertions, 0 deletions
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%%