This file is indexed.

/usr/include/ibus-1.0/ibusemoji.h is in libibus-1.0-dev 1.5.17-3ubuntu4.

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
/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
/* vim:set et sts=4: */
/* bus - The Input Bus
 * Copyright (C) 2017 Takao Fujiwara <takao.fujiwara1@gmail.com>
 * Copyright (C) 2017 Red Hat, Inc.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library 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
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
 * USA
 */

#if !defined (__IBUS_H_INSIDE__) && !defined (IBUS_COMPILATION)
#error "Only <ibus.h> can be included directly"
#endif

#ifndef __IBUS_EMOJI_H_
#define __IBUS_EMOJI_H_

/**
 * SECTION: ibusemoji
 * @short_description: emoji utility.
 * @stability: Unstable
 *
 * miscellaneous emoji APIs.
 */

#include "ibusserializable.h"

/*
 * Type macros.
 */
/* define GOBJECT macros */
#define IBUS_TYPE_EMOJI_DATA         (ibus_emoji_data_get_type ())
#define IBUS_EMOJI_DATA(obj)         (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
                                      IBUS_TYPE_EMOJI_DATA, IBusEmojiData))
#define IBUS_EMOJI_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \
                                      IBUS_TYPE_EMOJI_DATA, IBusEmojiDataClass))
#define IBUS_IS_EMOJI_DATA(obj)      (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
                                      IBUS_TYPE_EMOJI_DATA))


G_BEGIN_DECLS

typedef struct _IBusEmojiData IBusEmojiData;
typedef struct _IBusEmojiDataPrivate IBusEmojiDataPrivate;
typedef struct _IBusEmojiDataClass IBusEmojiDataClass;

/**
 * IBusEmojiData:
 *
 * Emoji data likes emoji unicode, annotations, description, category.
 * You can get extended values with g_object_get_properties.
 */
struct _IBusEmojiData {
    IBusSerializable parent;
    /* instance members */

    /*< public >*/
    /*< private >*/
    IBusEmojiDataPrivate *priv;
};

struct _IBusEmojiDataClass {
    IBusSerializableClass parent;
    /* class members */
};

GType           ibus_emoji_data_get_type     (void);

/**
 * ibus_emoji_data_new:
 * @first_property_name: Name of the first property.
 * @...: the NULL-terminated arguments of the properties and values.
 *
 * Creates a new #IBusEmojiData.
 * emoji property is required. e.g.
 * ibus_emoji_data_new ("emoji", "😁", NULL)
 *
 * Returns: A newly allocated #IBusEmojiData.
 */
IBusEmojiData * ibus_emoji_data_new          (const gchar *first_property_name,
                                               ...);

/**
 * ibus_emoji_data_get_emoji:
 * @emoji : An #IBusEmojiData
 *
 * Gets the emoji character in #IBusEmojiData. It should not be freed.
 *
 * Returns: emoji property in #IBusEmojiData
 */
const gchar *   ibus_emoji_data_get_emoji       (IBusEmojiData *emoji);

/**
 * ibus_emoji_data_get_annotations:
 * @emoji : An #IBusEmojiData
 *
 * Gets the annotation list in #IBusEmojiData. It should not be freed.
 *
 * Returns: (transfer none) (element-type utf8):
 *          annotation list property in #IBusEmojiData
 */
GSList *        ibus_emoji_data_get_annotations (IBusEmojiData *emoji);

/**
 * ibus_emoji_data_set_annotations:
 * @emoji : An #IBusEmojiData
 * @annotations: (transfer full) (element-type utf8): List of emoji annotations
 *
 * Sets the annotation list in #IBusEmojiData.
 */
void            ibus_emoji_data_set_annotations (IBusEmojiData *emoji,
                                                 GSList        *annotations);

/**
 * ibus_emoji_data_get_description:
 * @emoji : An #IBusEmojiData
 *
 * Gets the emoji description in #IBusEmojiData. It should not be freed.
 *
 * Returns: description property in #IBusEmojiData
 */
const gchar *   ibus_emoji_data_get_description (IBusEmojiData *emoji);

/**
 * ibus_emoji_data_set_description:
 * @emoji : An #IBusEmojiData
 * @description: An emoji description
 *
 * Sets the description in #IBusEmojiData.
 */
void            ibus_emoji_data_set_description (IBusEmojiData *emoji,
                                                 const gchar   *description);


/**
 * ibus_emoji_data_get_category:
 * @emoji : An #IBusEmojiData
 *
 * Gets the emoji category in #IBusEmojiData. It should not be freed.
 *
 * Returns: category property in #IBusEmojiData
 */
const gchar *   ibus_emoji_data_get_category    (IBusEmojiData *emoji);


/**
 * ibus_emoji_dict_save:
 * @path: A path of the saved dictionary file.
 * @dict: (element-type utf8 gpointer) (transfer none): An Emoji dictionary
 *
 * Saves the Emoji dictionary to the cache file.
 * Recommend to use ibus_emoji_data_save() instead becase GSList in
 * GHashTable does not work with Gir and Vala.
 * Calls ibus_emoji_data_save() internally. The format of the hash table
 * changed and now is { emoji character, #IBusEmojiData object }.
 */
void            ibus_emoji_dict_save            (const gchar    *path,
                                                 GHashTable     *dict);
/**
 * ibus_emoji_dict_load:
 * @path: A path of the saved dictionary file.
 *
 * Returns: (element-type utf8 gpointer) (transfer none): An Emoji dictionary
 * file loaded from the saved cache file.
 *
 * A hash table of { emoji character, #IBusEmojiData object } is loaded
 * from the saved cache file.
 * Recommend to use ibus_emoji_data_load() instead becase GSList in
 * GHashTable does not work with Gir and Vala.
 * Calls ibus_emoji_data_load() internally.
 */
GHashTable *    ibus_emoji_dict_load            (const gchar    *path);

/**
 * ibus_emoji_dict_lookup:
 * @dict: (element-type utf8 IBusEmojiData) (transfer full): An Emoji dictionary
 * @emoji: an emoji character
 *
 * Returns: (transfer none): An #IBusEmojiData of @emoji.
 * This API was prepared for the old dict foramat with Gir and Vala
 * but no longer needed.
 * Use ibus_emoji_data_load() instead.
 */
IBusEmojiData * ibus_emoji_dict_lookup          (GHashTable     *dict,
                                                 const gchar    *emoji);
/**
 * ibus_emoji_data_save:
 * @path: A path of the saved emoji data.
 * @list: (element-type IBusEmojiData) (transfer none): A list of emoji data.
 *
 * Save the list of #IBusEmojiData to the cache file.
 */
void            ibus_emoji_data_save            (const gchar    *path,
                                                 GSList         *list);

/**
 * ibus_emoji_data_load:
 * @path: A path of the saved dictionary file.
 *
 * Returns: (element-type IBusEmojiData) (transfer container):
 * An #IBusEmojiData list loaded from the saved cache file.
 */
GSList *        ibus_emoji_data_load            (const gchar    *path);

G_END_DECLS
#endif