This file is indexed.

/usr/share/doc/libcharva1-java/Features.html is in libcharva1-java 1.1.4-5.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
    <title>CHARVA: A Java Windowing Toolkit for Text Terminals</title>
    <meta name="keywords" content="java, text, terminal, user, interface, VT100, curses, ncurses">
    <style type="text/css">
        <!--
        body {
            font-family: Verdana, Arial, Helvetica, sans-serif;
            font-size: 12px;
        }

        table {
            font-family: Verdana, Arial, Helvetica, sans-serif;
            font-size: 12px;
        }

        #contentpanel {
            border-style: solid;
            border-color: silver;
            border-width: 1px;
            padding: 0;
        }

        .question {
            background-color: #A4FFFF;
            border-style: solid;
            border-color: silver;
            border-top-width: 1px;
            border-bottom-width: 1px;
            border-left-width: 0px;
            border-right-width: 0px;
        }

        .answer {
            padding-left: 20px;
        }

        .menuButtonSelected {
            PADDING-LEFT: 15px;
            FONT-SIZE: 8pt;
            CURSOR: pointer;
            COLOR: white;
            FONT-FAMILY: Arial;
            BACKGROUND-COLOR: #6484d7;
            TEXT-ALIGN: left
        }

        .menuButton {
            PADDING-LEFT: 15px;
            FONT-SIZE: 8pt;
            CURSOR: pointer;
            COLOR: white;
            FONT-FAMILY: Arial;
            BACKGROUND-COLOR: #284a7d;
            TEXT-ALIGN: left;
            TEXT-DECORATION: none
        }

        -->
    </style>
</head>

<body>
<h1 align=center>A Java Windowing Toolkit for Text Terminals</h1>
<table border=0 width="100%" cellspacing="5">
<tr>

<!-- Start of left (navigation) panel -->
<td valign="top">
<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td>
<table width="160" border="0" cellspacing="1">
<tr bgcolor="#008000">
    <td style="padding: 5px"><font color="#FFFFFF" size="4">Menu</font></td>
</tr>
<tr><td
        class=menuButton id=0
        onmouseover="this.className='menuButtonSelected';"
        onclick="top.location='index.html';"
        onmouseout="this.className='menuButton';"
        height=18
        nowrap> Introduction </td></tr>

<tr><td
        class=menuButton id=1
        onmouseover="this.className='menuButtonSelected';"
        onclick="top.location='Features.html';"
        onmouseout="this.className='menuButton';"
        height=18
        nowrap> Features </td></tr>

<tr><td
        class=menuButton id=2
        onmouseover="this.className='menuButtonSelected';"
        onclick="top.location='Status.html';"
        onmouseout="this.className='menuButton';"
        height=18
        nowrap> Status </td></tr>

<tr><td
        class=menuButton id=3
        onmouseover="this.className='menuButtonSelected';"
        onclick="top.location='FAQ.html';"
        onmouseout="this.className='menuButton';"
        height=18
        nowrap> FAQ </td></tr>

<tr><td
        class=menuButton id=4
        onmouseover="this.className='menuButtonSelected';"
        onclick="top.location='Licence.html';"
        onmouseout="this.className='menuButton';"
        height=18
        nowrap> Licence </td></tr>

<tr><td
        class=menuButton id=5
        onmouseover="this.className='menuButtonSelected';"
        onclick="top.location='Screenshots.html';"
        onmouseout="this.className='menuButton';"
        height=18
        nowrap> Screenshots </td></tr>

<tr><td
        class=menuButton id=6
        onmouseover="this.className='menuButtonSelected';"
        onclick="top.location='Documentation.html';"
        onmouseout="this.className='menuButton';"
        height=18
        nowrap> Documentation </td></tr>

<tr><td
        class=menuButton id=7
        onmouseover="this.className='menuButtonSelected';"
        onclick="top.location='Download.html';"
        onmouseout="this.className='menuButton';"
        height=18
        nowrap> Download </td></tr>

<tr><td
        class=menuButton id=8
        onmouseover="this.className='menuButtonSelected';"
        onclick="top.location='Applications.html';"
        onmouseout="this.className='menuButton';"
        height=18
        nowrap> Applications </td></tr>

<tr><td
        class=menuButton id=9
        onmouseover="this.className='menuButtonSelected';"
        onclick="top.location='Support.html';"
        onmouseout="this.className='menuButton';"
        height=18
        nowrap> Support </td></tr>

<tr><td
        class=menuButton id=10
        onmouseover="this.className='menuButtonSelected';"
        onclick="top.location='Contribute.html';"
        onmouseout="this.className='menuButton';"
        height="18"
        nowrap> Contribute </td></tr>
<!-- End of navigation panel -->

<tr><td height="10"></td></tr> <!-- Separator -->

<tr>
    <td bgcolor="#008000" style="padding: 5px"><font color="#FFFFFF" size="4">Quick Info</font></td>
</tr>

<tr><td>
    <table summary="quick info" cellspacing="0" cellpadding="0" border="0">

        <tr style="font-size: 8pt">
            <td nowrap="nowrap">Operating System: <a href="http://www.linux.org">Linux</a></td>
        </tr>
        <tr style="font-size: 8pt">
            <td nowrap="nowrap">Language: <a href="http://java.sun.com">Java</a>, C</td>
        </tr>
        <tr style="font-size: 8pt">
            <td nowrap="nowrap">Licence: <a href="http://www.gnu.org">GNU</a></td>
        </tr>
        <tr style="font-size: 8pt">
            <td nowrap="nowrap">Author: <a href="http://www.pitman.co.za">Rob Pitman</a></td>
        </tr>
    </table>
    <!-- End of Quick Info -->
</td></tr>

</table>
</td></tr>
<tr><td height="10"></td></tr> <!-- Separator -->
<tr><td>
    <table cellpadding="0" cellspacing="0">

        <tr><td>
            <script type="text/javascript"><!--
    google_ad_client = "pub-1886875109433545";
    google_ad_width = 160;
    google_ad_height = 600;
    google_ad_format = "160x600_as";
    google_ad_type = "text";
    google_ad_channel ="";
    google_color_border = "336699";
    google_color_bg = "FFFFFF";
    google_color_link = "0000FF";
    google_color_url = "008000";
    google_color_text = "000000";
    //--></script>
            <script type="text/javascript"
                    src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
            </script>

        </td></tr>
    </table>
</td></tr>
</table>
</td> <!-- End of left (navigation) panel -->

<!-- Start of right (content) panel -->
<td valign="top" width="100%">
    <table border="0" cellpadding="10" cellspacing="0" id="contentpanel">

        <tr>
            <td bgcolor="#B6C0FF"><font size="+1">Features</font></td>
        </tr>


        <tr>
            <td>
                <p>The CHARVA Toolkit emulates the functionality of the standard
                    AWT (Abstract Windowing Toolkit) and "Swing" classes (collectively
                    known as the Java Foundation Classes) as far as possible. In
                    fact, my original intention was to use exactly the same API as the
                    AWT. Theoretically this should be possible, because the AWT can
                    in theory have many different implementations (that is why it was
                    named the <i>Abstract</i> Windowing Toolkit).
                    <a href="mailto:stuart@bmsi.com">Stuart Gathman</a> has already
                    written a package called <a href="http://www.bmsi.com/tuipeer">TUIPEER</a>
                    that implements the AWT API for ASCII terminals. Stuart's package
                    was written with JDK 1.1.x, and did not use the <code>ncurses</code> library
                    or the JNI (Java Native Interface).</p>

                <p>I found that it was not possible to port TUIPEER from JDK 1.1.x to
                    JDK 1.2 or JDK 1.3, because in later versions of the JDK Sun had forced
                    implementations of the AWT to subclass Sun proprietary classes.
                    So I wrote CHARVA from scratch. I tried to maintain compatibility as far
                    as possible with the AWT and Swing APIs; in
                    the source code of your Java program, just change package references from
                    "java.awt" to "charva.awt", and from "javax.swing" to "charvax.swing" to port
                    the program from Swing to CHARVA.</p>

                <p>Since version 1.0.0, CHARVA provides mouse support (only on terminal-emulators
                    that report mouse events, such as <i>xterm</i> and
                    <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/"><i>PuTTY</i></a>).
                    Of course, CHARVA does <em>not</em> support GUI-type features such as
                    cut-and-paste and drag-and-drop. But it provides most of the standard "graphical"
                    AWT-compatible base classes such as Point, Rectangle, Dimension, Component,
                    Container, Window, Frame, Dialog, etc. It also provides the FlowLayout,
                    BoxLayout, BorderLayout and GridBagLayout geometry managers.</p>

                <p>CHARVA also provides the following classes which are designed to be
                    compatible with their Swing counterparts (see the Javadoc-generated
                    <a href="api/index.html">API documentation</a> for details):</p>

                <blockquote>
                    Box, BoxLayout, ButtonGroup and JRadioButton, JButton, JCheckBox, JComponent,
                    JComboBox, JDialog, JFileChooser, JFrame, JLabel, JList, JMenuBar, JMenuItem,
                    JMenu, JOptionPane, JPanel, JPasswordField, JProgressBar, JScrollBar, JScrollPane,
                    JTabbedPane, JTable, JTextArea, JTextField, JViewport.
                </blockquote>

                <p>The JList, JTable and JTextArea are typically displayed inside a JScrollPane
                    (in the same manner as the corresponding Swing versions of these
                    components).</p>

                <p>CHARVA supports any terminal that has a "terminfo" capability-description
                    file; in other words, all popular terminals such as VT100, VT220, Wyse
                    and ANSI terminals and the "xterm" and "PuTTY" terminal emulators are
                    supported. CHARVA supports color on terminals that have color capability,
                    such as the ANSI terminal, "xterm" and "PuTTY".</p>

                <p>Uncaught exceptions, error messages and diagnostic messages are logged using
                    <a href="http://jakarta.apache.org/commons/logging/index.html">Jakarta Commons Logging</a>.
                    </p>

                <p>The "stderr" stream <i>must</i> be
                    redirected to a logfile or some other logging machanism before any CHARVA class
                    is instantiated (typically this is done in the script file that starts the
                    Java application).</p>

                <p>Event-handling is performed with the same delegation model as the
                    AWT uses. Each object that generates events can register "Listener"
                    objects that will receive and act on those events. The available events
                    form a subset of the events used in the AWT.</p>

                <p>In short, if you are familiar with programming with AWT and Swing, you will have
                    no problems with using CHARVA. If you aren't familiar with AWT, read
                    the following reference:</p>

                <blockquote>
                    Chapters 8 and 9 of <a href="http://www.horstmann.com/corejava.html">
                    Core Java 2 - Volume1: Fundamentals</a> by Cay Horstmann and Gary Cornell
                    (Prentice Hall), ISBN 0-13-081933-6.
                </blockquote>
            </td>
        </tr>
    </table>
</td> <!-- End of right (content) panel -->


</tr>
</table>
<hr>
<i>Last updated: 14 August, 2006</i>
</body>
</html>