This file is indexed.

/usr/include/gnucash/gtable.h is in gnucash-common 1:2.6.1-2.

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
/********************************************************************\
 * gtable.h -- glib -- basic datatype for 2D array of values        *
 *                                                                  *
 * 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 (at your option) 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, contact:                        *
 *                                                                  *
 * Free Software Foundation           Voice:  +1-617-542-5942       *
 * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
 * Boston, MA  02110-1301,  USA       gnu@gnu.org                   *
 *                                                                  *
\********************************************************************/

#ifndef G_TABLE_H
#define G_TABLE_H

#include <glib.h>


/* This is the API for GTables, a datatype for 2-dimensional tables
 * with automatic resizing and memory management.
 *
 * HACK ALERT -- this thing should proably become a part of glib (??)
 */

typedef struct GTable GTable;

typedef void (*g_table_entry_constructor) (gpointer entry, gpointer user_data);
typedef void (*g_table_entry_destroyer)   (gpointer entry, gpointer user_data);


/* Create a new table with the given entry constructor and destroyer.
 * Both functions must be given. They are used to initialize the table
 * entries and free unneeded memory when resizing and destroying. */
GTable * g_table_new (guint entry_size,
                      g_table_entry_constructor constructor,
                      g_table_entry_destroyer destroyer,
                      gpointer user_data);

/* Free the table and all associated table elements. */
void     g_table_destroy (GTable *gtable);

/* Return the element at the given row and column. If the coordinates
 * are out-of-bounds, return NULL */
gpointer g_table_index (GTable *gtable, int row, int col);

/* Resize the table, allocating and deallocating extra table
 * members if needed. The relationship between table members
 * before and after resizing is undefined, except in the case
 * where the number of rows changes, but not the number of
 * columns. In that case, higher-numbered rows are discarded
 * first. */
void     g_table_resize (GTable *gtable, int rows, int cols);

/* Return the number of table rows. */
int      g_table_rows (GTable *gtable);

/* Return the number of table columns. */
int      g_table_cols (GTable *gtable);

#endif