This file is indexed.

/usr/include/evolution-data-server/camel/camel-message-info.h is in libcamel1.2-dev 3.28.1-1ubuntu1.

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
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
 * Copyright (C) 2016 Red Hat, Inc. (www.redhat.com)
 *
 * 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.
 *
 * 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, see <http://www.gnu.org/licenses/>.
 */

#if !defined (__CAMEL_H_INSIDE__) && !defined (CAMEL_COMPILATION)
#error "Only <camel/camel.h> can be included directly."
#endif

#ifndef CAMEL_MESSAGE_INFO_H
#define CAMEL_MESSAGE_INFO_H

#include <glib-object.h>

#include <camel/camel-named-flags.h>
#include <camel/camel-name-value-array.h>
#include <camel/camel-utils.h>

/* Standard GObject macros */
#define CAMEL_TYPE_MESSAGE_INFO \
	(camel_message_info_get_type ())
#define CAMEL_MESSAGE_INFO(obj) \
	(G_TYPE_CHECK_INSTANCE_CAST \
	((obj), CAMEL_TYPE_MESSAGE_INFO, CamelMessageInfo))
#define CAMEL_MESSAGE_INFO_CLASS(cls) \
	(G_TYPE_CHECK_CLASS_CAST \
	((cls), CAMEL_TYPE_MESSAGE_INFO, CamelMessageInfoClass))
#define CAMEL_IS_MESSAGE_INFO(obj) \
	(G_TYPE_CHECK_INSTANCE_TYPE \
	((obj), CAMEL_TYPE_MESSAGE_INFO))
#define CAMEL_IS_MESSAGE_INFO_CLASS(cls) \
	(G_TYPE_CHECK_CLASS_TYPE \
	((cls), CAMEL_TYPE_MESSAGE_INFO))
#define CAMEL_MESSAGE_INFO_GET_CLASS(obj) \
	(G_TYPE_INSTANCE_GET_CLASS \
	((obj), CAMEL_TYPE_MESSAGE_INFO, CamelMessageInfoClass))

G_BEGIN_DECLS

/* Forward declarations */
struct _CamelFolderSummary;
struct _CamelMIRecord;

/* A summary messageid is a 64 bit identifier (partial md5 hash) */
typedef struct _CamelSummaryMessageID {
	union {
		guint64 id;
		guchar hash[8];
		struct {
			guint32 hi;
			guint32 lo;
		} part;
	} id;
} CamelSummaryMessageID;

/* system flag bits */
typedef enum _CamelMessageFlags {
	CAMEL_MESSAGE_ANSWERED = 1 << 0,
	CAMEL_MESSAGE_DELETED = 1 << 1,
	CAMEL_MESSAGE_DRAFT = 1 << 2,
	CAMEL_MESSAGE_FLAGGED = 1 << 3,
	CAMEL_MESSAGE_SEEN = 1 << 4,

	/* these aren't really system flag bits, but are convenience flags */
	CAMEL_MESSAGE_ATTACHMENTS = 1 << 5,
	CAMEL_MESSAGE_ANSWERED_ALL = 1 << 6,
	CAMEL_MESSAGE_JUNK = 1 << 7,
	CAMEL_MESSAGE_SECURE = 1 << 8,
	CAMEL_MESSAGE_NOTJUNK = 1 << 9,
	CAMEL_MESSAGE_FORWARDED = 1 << 10,

	/* following flags are for the folder, and are not really permanent flags */
	CAMEL_MESSAGE_FOLDER_FLAGGED = 1 << 16, /* for use by the folder implementation */
	/* flags after 1 << 16 are used by camel providers,
	 * if adding non permanent flags, add them to the end  */

	CAMEL_MESSAGE_JUNK_LEARN = 1 << 30, /* used when setting CAMEL_MESSAGE_JUNK flag
					     * to say that we request junk plugin
					     * to learn that message as junk/non junk */
	CAMEL_MESSAGE_USER = 1 << 31 /* supports user flags */
} CamelMessageFlags;

/* Changes to system flags will NOT trigger a folder changed event */
#define CAMEL_MESSAGE_SYSTEM_MASK (0xffff << 16)

typedef struct _CamelMessageInfo CamelMessageInfo;
typedef struct _CamelMessageInfoClass CamelMessageInfoClass;
typedef struct _CamelMessageInfoPrivate CamelMessageInfoPrivate;

struct _CamelMessageInfo {
	GObject parent;
	CamelMessageInfoPrivate *priv;
};

struct _CamelMessageInfoClass {
	GObjectClass parent_class;

	CamelMessageInfo *	(* clone)	(const CamelMessageInfo *mi,
						 struct _CamelFolderSummary *assign_summary);
	gboolean		(* load)	(CamelMessageInfo *mi,
						 const struct _CamelMIRecord *record,
						 /* const */ gchar **bdata_ptr);
	gboolean		(* save)	(const CamelMessageInfo *mi,
						 struct _CamelMIRecord *record,
						 GString *bdata_str);
	guint32			(* get_flags)	(const CamelMessageInfo *mi);
	gboolean		(* set_flags)	(CamelMessageInfo *mi,
						 guint32 mask,
						 guint32 set);
	gboolean		(* get_user_flag)
						(const CamelMessageInfo *mi,
						 const gchar *name);
	gboolean		(* set_user_flag)
						(CamelMessageInfo *mi,
						 const gchar *name,
						 gboolean state);
	const CamelNamedFlags *	(* get_user_flags)
						(const CamelMessageInfo *mi);
	CamelNamedFlags *	(* dup_user_flags)
						(const CamelMessageInfo *mi);
	gboolean		(* take_user_flags)
						(CamelMessageInfo *mi,
						 CamelNamedFlags *user_flags);
	const gchar *		(* get_user_tag)(const CamelMessageInfo *mi,
						 const gchar *name);
	gboolean		(* set_user_tag)(CamelMessageInfo *mi,
						 const gchar *name,
						 const gchar *value);
	const CamelNameValueArray *
				(* get_user_tags)
						(const CamelMessageInfo *mi);
	CamelNameValueArray *	(* dup_user_tags)
						(const CamelMessageInfo *mi);
	gboolean		(* take_user_tags)
						(CamelMessageInfo *mi,
						 CamelNameValueArray *user_tags);
	const gchar *		(* get_subject)	(const CamelMessageInfo *mi);
	gboolean		(* set_subject)	(CamelMessageInfo *mi,
						 const gchar *subject);
	const gchar *		(* get_from)	(const CamelMessageInfo *mi);
	gboolean		(* set_from)	(CamelMessageInfo *mi,
						 const gchar *from);
	const gchar *		(* get_to)	(const CamelMessageInfo *mi);
	gboolean		(* set_to)	(CamelMessageInfo *mi,
						 const gchar *to);
	const gchar *		(* get_cc)	(const CamelMessageInfo *mi);
	gboolean		(* set_cc)	(CamelMessageInfo *mi,
						 const gchar *cc);
	const gchar *		(* get_mlist)	(const CamelMessageInfo *mi);
	gboolean		(* set_mlist)	(CamelMessageInfo *mi,
						 const gchar *mlist);
	guint32			(* get_size)	(const CamelMessageInfo *mi);
	gboolean		(* set_size)	(CamelMessageInfo *mi,
						 guint32 size);
	gint64			(* get_date_sent)
						(const CamelMessageInfo *mi);
	gboolean		(* set_date_sent)
						(CamelMessageInfo *mi,
						 gint64 date_sent);
	gint64			(* get_date_received)
						(const CamelMessageInfo *mi);
	gboolean		(* set_date_received)
						(CamelMessageInfo *mi,
						 gint64 date_received);
	guint64			(* get_message_id)
						(const CamelMessageInfo *mi);
	gboolean		(* set_message_id)
						(CamelMessageInfo *mi,
						 guint64 message_id);
	const GArray *		(* get_references)
						(const CamelMessageInfo *mi);
	gboolean		(* take_references)
						(CamelMessageInfo *mi,
						 GArray *references);
	const CamelNameValueArray *
				(* get_headers)	(const CamelMessageInfo *mi);
	gboolean		(* take_headers)(CamelMessageInfo *mi,
						 CamelNameValueArray *headers);

	/* Padding for future expansion */
	gpointer reserved[20];
};

GType		camel_message_info_get_type	(void);
CamelMessageInfo *
		camel_message_info_new		(struct _CamelFolderSummary *summary);
CamelMessageInfo *
		camel_message_info_clone	(const CamelMessageInfo *mi,
						 struct _CamelFolderSummary *assign_summary);
gboolean	camel_message_info_load		(CamelMessageInfo *mi,
						 const struct _CamelMIRecord *record,
						 /* const */ gchar **bdata_ptr);
gboolean	camel_message_info_save		(const CamelMessageInfo *mi,
						 struct _CamelMIRecord *record,
						 GString *bdata_str);
struct _CamelFolderSummary *
		camel_message_info_ref_summary	(const CamelMessageInfo *mi);
void		camel_message_info_property_lock
						(const CamelMessageInfo *mi);
void		camel_message_info_property_unlock
						(const CamelMessageInfo *mi);
gboolean	camel_message_info_get_dirty	(const CamelMessageInfo *mi);
void		camel_message_info_set_dirty	(CamelMessageInfo *mi,
						 gboolean dirty);
gboolean	camel_message_info_get_folder_flagged
						(const CamelMessageInfo *mi);
gboolean	camel_message_info_set_folder_flagged
						(CamelMessageInfo *mi,
						 gboolean folder_flagged);
guint		camel_message_info_get_folder_flagged_stamp
						(const CamelMessageInfo *mi);
gboolean	camel_message_info_get_abort_notifications
						(const CamelMessageInfo *mi);
void		camel_message_info_set_abort_notifications
						(CamelMessageInfo *mi,
						 gboolean abort_notifications);
void		camel_message_info_freeze_notifications
						(CamelMessageInfo *mi);
void		camel_message_info_thaw_notifications
						(CamelMessageInfo *mi);
gboolean	camel_message_info_get_notifications_frozen
						(const CamelMessageInfo *mi);
const gchar *	camel_message_info_get_uid	(const CamelMessageInfo *mi);
const gchar *	camel_message_info_pooldup_uid	(const CamelMessageInfo *mi);
gboolean	camel_message_info_set_uid	(CamelMessageInfo *mi,
						 const gchar *uid);
guint32		camel_message_info_get_flags	(const CamelMessageInfo *mi);
gboolean	camel_message_info_set_flags	(CamelMessageInfo *mi,
						 guint32 mask,
						 guint32 set);
gboolean	camel_message_info_get_user_flag
						(const CamelMessageInfo *mi,
						 const gchar *name);
gboolean	camel_message_info_set_user_flag
						(CamelMessageInfo *mi,
						 const gchar *name,
						 gboolean state);
const CamelNamedFlags *
		camel_message_info_get_user_flags
						(const CamelMessageInfo *mi);
CamelNamedFlags *
		camel_message_info_dup_user_flags
						(const CamelMessageInfo *mi);
gboolean
		camel_message_info_take_user_flags
						(CamelMessageInfo *mi,
						 CamelNamedFlags *user_flags);
const gchar *	camel_message_info_get_user_tag	(const CamelMessageInfo *mi,
						 const gchar *name);
gchar *		camel_message_info_dup_user_tag	(const CamelMessageInfo *mi,
						 const gchar *name);
gboolean	camel_message_info_set_user_tag	(CamelMessageInfo *mi,
						 const gchar *name,
						 const gchar *value);
const CamelNameValueArray *
		camel_message_info_get_user_tags
						(const CamelMessageInfo *mi);
CamelNameValueArray *
		camel_message_info_dup_user_tags
						(const CamelMessageInfo *mi);
gboolean	camel_message_info_take_user_tags
						(CamelMessageInfo *mi,
						 CamelNameValueArray *user_tags);
const gchar *	camel_message_info_get_subject	(const CamelMessageInfo *mi);
gboolean	camel_message_info_set_subject	(CamelMessageInfo *mi,
						 const gchar *subject);
const gchar *	camel_message_info_get_from	(const CamelMessageInfo *mi);
gboolean	camel_message_info_set_from	(CamelMessageInfo *mi,
						 const gchar *from);
const gchar *	camel_message_info_get_to	(const CamelMessageInfo *mi);
gboolean	camel_message_info_set_to	(CamelMessageInfo *mi,
						 const gchar *to);
const gchar *	camel_message_info_get_cc	(const CamelMessageInfo *mi);
gboolean	camel_message_info_set_cc	(CamelMessageInfo *mi,
						 const gchar *cc);
const gchar *	camel_message_info_get_mlist	(const CamelMessageInfo *mi);
gboolean	camel_message_info_set_mlist	(CamelMessageInfo *mi,
						 const gchar *mlist);
guint32		camel_message_info_get_size	(const CamelMessageInfo *mi);
gboolean	camel_message_info_set_size	(CamelMessageInfo *mi,
						 guint32 size);
gint64		camel_message_info_get_date_sent
						(const CamelMessageInfo *mi);
gboolean	camel_message_info_set_date_sent
						(CamelMessageInfo *mi,
						 gint64 date_sent);
gint64		camel_message_info_get_date_received
						(const CamelMessageInfo *mi);
gboolean	camel_message_info_set_date_received
						(CamelMessageInfo *mi,
						 gint64 date_received);
guint64		camel_message_info_get_message_id
						(const CamelMessageInfo *mi);
gboolean	camel_message_info_set_message_id
						(CamelMessageInfo *mi,
						 guint64 message_id);
const GArray *	camel_message_info_get_references
						(const CamelMessageInfo *mi);
GArray *	camel_message_info_dup_references
						(const CamelMessageInfo *mi);
gboolean	camel_message_info_take_references
						(CamelMessageInfo *mi,
						 GArray *references);
const CamelNameValueArray *
		camel_message_info_get_headers	(const CamelMessageInfo *mi);
CamelNameValueArray *
		camel_message_info_dup_headers	(const CamelMessageInfo *mi);
gboolean	camel_message_info_take_headers	(CamelMessageInfo *mi,
						 CamelNameValueArray *headers);

/* Debugging functions */
void		camel_message_info_dump		(CamelMessageInfo *mi);

G_END_DECLS

#endif /* CAMEL_MESSAGE_INFO_H */