This file is indexed.

/usr/share/GNUstep/Documentation/Performance/GSLinkedList.gsdoc is in libperformance-dev 0.5.0-1.

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
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
<?xml version="1.0"?>
<!DOCTYPE gsdoc PUBLIC "-//GNUstep//DTD gsdoc 1.0.3//EN" "http://www.gnustep.org/gsdoc-1_0_3.dtd">
<gsdoc base="GSLinkedList">
  <head>
    <title>GSLinkedList documentation</title>
    <author name="Richard Frith-Macdonald">
      <email address="rfm@gnu.org">
        rfm@gnu.org
      </email>
    </author>
    <copy>2010 Free Software Foundation, Inc.</copy>
  </head>
  <body>
    <front><contents /></front>
    <chapter>
      <heading>
        Software documentation for the GSLinkedList class
      </heading>
      <class name="GSLinkedList" super="NSObject">
        <declared>GSLinkedList.h</declared>
        <desc>
          GSLinkedList manages a list of GSListLink
          objects.
        </desc>
        <ivariable type="NSUInteger" name="count" validity="public">
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </ivariable>
        <ivariable type="GSListLink*" name="head" validity="public">
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </ivariable>
        <ivariable type="GSListLink*" name="tail" validity="public">
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </ivariable>
        <method type="void">
          <sel>append:</sel>
          <arg type="GSListLink*">link</arg>
          <desc>
            Appends <var>link</var> at the end of the linked
            list managed by the receiver. <br /> Retains the
            <var>link</var>.
          </desc>
        </method>
        <method type="NSUInteger">
          <sel>count</sel>
          <desc>
            Returns the number of links in the list.
          </desc>
        </method>
        <method type="void">
          <sel>empty</sel>
          <desc>
            Remove all links from the list and release them all.
          </desc>
        </method>
        <method type="GSListLink*">
          <sel>findEqual:</sel>
          <arg type="NSObject*">object</arg>
          <sel>from:</sel>
          <arg type="GSListLink*">start</arg>
          <sel>back:</sel>
          <arg type="BOOL">aFlag</arg>
          <desc>
            Searches the linked list returning the link
            containing <var>object</var> or <code>nil</code>
            if it is not found. <br /> The comparison is performed
            using the
            <ref type="method" id="-isEqual:" class="NSObject">
              [NSObject -isEqual:]
            </ref>
            method of <var>object</var>. <br /> If
            <var>start</var> is <code>nil</code> then the whole
            list is searched. <br /> This method will <em>not</em>
            find links containing <code>nil</code> items.
          </desc>
        </method>
        <method type="GSListLink*">
          <sel>findIdentical:</sel>
          <arg type="NSObject*">object</arg>
          <sel>from:</sel>
          <arg type="GSListLink*">start</arg>
          <sel>back:</sel>
          <arg type="BOOL">aFlag</arg>
          <desc>
            Searches the linked list returning the link
            containing <var>object</var> or <code>nil</code>
            if it is not found. <br /> If <var>start</var> is
            <code>nil</code> then the whole list is searched.
            <br /> A direct pointer comparison is used to
            determine equality.
          </desc>
        </method>
        <method type="GSListLink*">
          <sel>head</sel>
          <desc>
            Returns the first link in the list.
          </desc>
        </method>
        <method type="void">
          <sel>insert:</sel>
          <arg type="GSListLink*">link</arg>
          <sel>after:</sel>
          <arg type="GSListLink*">at</arg>
          <desc>
            Inserts other immediately after the receiver.
            <br /> Retains the <var>link</var>.
          </desc>
        </method>
        <method type="void">
          <sel>insert:</sel>
          <arg type="GSListLink*">link</arg>
          <sel>before:</sel>
          <arg type="GSListLink*">at</arg>
          <desc>
            Inserts other immediately before the receiver.
            <br /> Retains the <var>link</var>.
          </desc>
        </method>
        <method type="void">
          <sel>removeLink:</sel>
          <arg type="GSListLink*">link</arg>
          <desc>
            Removes the <var>link</var> from the receiver.
            <br /> releases the <var>link</var>.
          </desc>
        </method>
        <method type="GSListLink*">
          <sel>tail</sel>
          <desc>
            Returns the last link in the list.
          </desc>
        </method>
      </class>
    </chapter>
    <chapter>
      <heading>
        Software documentation for the GSListLink class
      </heading>
      <class name="GSListLink" super="NSObject">
        <declared>GSLinkedList.h</declared>
        <desc>
          GSListLink provides simple doubly linked list
          functionality to avoid the need to constantly
          re-invent it (as the OpenStep/Cocoa APIs do not
          provide this). The emphasis is on speed of operation
          so instance variables are directly accessible and inline
          functions are provided to manipulate them (without
          error cehcking), but you can/should avoid these direct
          access features unless speed is really critical.
          <br /> A list may either be 'normal'... (where the
          head/tail ends of the list have a <code>nil</code>
          pointer to the previous/next link) or 'circular' in
          which case the list is not terminated. <br /> The
          GSListLink item carries a minimal payload of a
          single item which is retained by the link. <br /> The
          GSListLink owner is an optional pointer to an
          object which 'owns' the link... a GSLinkedList
          instance may use this to check link ownership when
          manipulating links.
        </desc>
        <ivariable type="NSObject*" name="item" validity="public">
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </ivariable>
        <ivariable type="GSListLink*" name="next" validity="public">
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </ivariable>
        <ivariable type="GSLinkedList*" name="owner" validity="public">
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </ivariable>
        <ivariable type="GSListLink*" name="previous" validity="public">
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </ivariable>
        <method type="id">
          <sel>initCircular</sel>
          <desc>
            Initialise the receiver as a link for a circular
            linked list.
          </desc>
        </method>
        <method type="NSObject*">
          <sel>item</sel>
          <desc>
            Return the item in the link.
          </desc>
        </method>
        <method type="GSListLink*">
          <sel>next</sel>
          <desc>
            Return the next item in the list containing the
            receiver, or <code>nil</code> if there are no
            more items.
          </desc>
        </method>
        <method type="GSLinkedList*">
          <sel>owner</sel>
          <desc>
            Return the list which owns the receiver or
            <code>nil</code> if the receiver is not in a list.
          </desc>
        </method>
        <method type="GSListLink*">
          <sel>previous</sel>
          <desc>
            Return the previous item in the list containing the
            receiver, or <code>nil</code> if there are no
            more items.
          </desc>
        </method>
        <method type="void">
          <sel>setItem:</sel>
          <arg type="NSObject*">anItem</arg>
          <desc>
            Set an item value by retaining it and releasing any
            previous value.
          </desc>
        </method>
      </class>
    </chapter>
    <chapter>
      <heading>GSLinkedList types</heading>
      <p></p>
      <type type="unsigned int" name="NSUInteger">
        <desc>
          <em>Description forthcoming.</em>
        </desc>
      </type>
    </chapter>
    <chapter>
      <heading>GSLinkedList functions</heading>
      <p></p>
      <function type="void" name="GSLinkCircularInsertAfter">
        <arg type="GSListLink*">link</arg>
        <arg type="GSListLink*">at</arg>
        <desc>
          Inserts <var>link</var> after <var>at</var> in a
          circular list. <br /> Arguments must not be
          <code>nil</code> and <var>link</var> must not be in a
          list (ie its next and previous pointers must point to
          itsself).
        </desc>
      </function>
      <function type="void" name="GSLinkCircularInsertBefore">
        <arg type="GSListLink*">link</arg>
        <arg type="GSListLink*">at</arg>
        <desc>
          Inserts <var>link</var> before <var>at</var> in a
          circular list. <br /> Arguments must not be
          <code>nil</code> and <var>link</var> must not be in a
          list (ie its next and previous pointers must point to
          itsself).
        </desc>
      </function>
      <function type="void" name="GSLinkCircularRemove">
        <arg type="GSListLink*">link</arg>
        <desc>
          Removes <var>link</var> from any list it is in.
          <br /> The <var>link</var> argument must not be
          <code>nil</code>.
        </desc>
      </function>
      <function type="void" name="GSLinkInsertAfter">
        <arg type="GSListLink*">link</arg>
        <arg type="GSListLink*">at</arg>
        <desc>
          Inserts <var>link</var> after <var>at</var> in a
          normal list. <br /> Arguments must not be
          <code>nil</code> and <var>link</var> must not be in a
          list (ie its next and previous pointers must both be
          <code>nil</code>).
        </desc>
      </function>
      <function type="void" name="GSLinkInsertBefore">
        <arg type="GSListLink*">link</arg>
        <arg type="GSListLink*">at</arg>
        <desc>
          Inserts <var>link</var> before <var>at</var> in a
          normal list. <br /> Arguments must not be
          <code>nil</code> and <var>link</var> must not be in a
          list (ie its next and previous pointers must both be
          <code>nil</code>).
        </desc>
      </function>
      <function type="void" name="GSLinkRemove">
        <arg type="GSListLink*">link</arg>
        <desc>
          Removes <var>link</var> from the list it is in.
          <br /> The <var>link</var> argument must not be
          <code>nil</code>.
        </desc>
      </function>
      <function type="GSListLink*" name="GSLinkedListFindEqual">
        <arg type="NSObject*">object</arg>
        <arg type="GSLinkedList*">list</arg>
        <arg type="GSListLink*">from</arg>
        <arg type="BOOL">back</arg>
        <desc>
          Searches <var>from</var> <var>list</var> to the end
          looking for the first link containing
          <var>object</var> (as determined by using object's
          <ref type="method" id="-isEqual:" class="NSObject">
            [NSObject -isEqual:]
          </ref>
          method). <br /> If <var>from</var> is
          <code>nil</code> the <var>list</var> is search
          <var>from</var> head or tail as appropriate to the
          direction in which it is searched.
        </desc>
      </function>
      <function type="GSListLink*" name="GSLinkedListFindIdentical">
        <arg type="NSObject*">object</arg>
        <arg type="GSLinkedList*">list</arg>
        <arg type="GSListLink*">from</arg>
        <arg type="BOOL">back</arg>
        <desc>
          Searches <var>from</var> <var>list</var> to the end
          looking for the first link containing
          <var>object</var> (as determined by direct pointer
          comparison). <br /> If <var>from</var> is
          <code>nil</code> the <var>list</var> is search
          <var>from</var> head or tail as appropriate to the
          direction in which it is searched.
        </desc>
      </function>
      <function type="void" name="GSLinkedListInsertAfter">
        <arg type="GSListLink*">link</arg>
        <arg type="GSLinkedList*">list</arg>
        <arg type="GSListLink*">at</arg>
        <desc>
          Inserts <var>link</var> immediately after
          <var>at</var>. <br /> Updates the head, tail and count
          variables of <var>list</var>. <br /> Does not
          retain <var>link</var>.
        </desc>
      </function>
      <function type="void" name="GSLinkedListInsertBefore">
        <arg type="GSListLink*">link</arg>
        <arg type="GSLinkedList*">list</arg>
        <arg type="GSListLink*">at</arg>
        <desc>
          Inserts <var>link</var> immediately before
          <var>at</var>. <br /> Updates the head, tail and count
          variables of <var>list</var>. <br /> Does not
          retain <var>link</var>.
        </desc>
      </function>
      <function type="void" name="GSLinkedListMoveToHead">
        <arg type="GSListLink*">link</arg>
        <arg type="GSLinkedList*">list</arg>
        <desc>
          Moves the <var>link</var> to the head of the
          <var>list</var> if it is not already there.
        </desc>
      </function>
      <function type="void" name="GSLinkedListMoveToTail">
        <arg type="GSListLink*">link</arg>
        <arg type="GSLinkedList*">list</arg>
        <desc>
          Moves the <var>link</var> to the tail of the
          <var>list</var> if it is not already there.
        </desc>
      </function>
      <function type="void" name="GSLinkedListRemove">
        <arg type="GSListLink*">link</arg>
        <arg type="GSLinkedList*">list</arg>
        <desc>
          Removes <var>link</var> from the <var>list</var>.
          <br /> Updates the head, tail and count variables of
          <var>list</var>. <br /> Does not release
          <var>link</var>.
        </desc>
      </function>
    </chapter>
  </body>
</gsdoc>