annotate src/mime.h @ 14126:b71bfeaaed58

[gaim-migrate @ 16764] Add a savedstatus dialog, and a "status" command to bring it up. You an also select "Saved..." from the dropdown in the buddylist. The 'Add' and 'Edit' buttons don't do anything yet. They will probably get to work some time tomorrow. committer: Tailor Script <tailor@pidgin.im>
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Tue, 15 Aug 2006 06:21:39 +0000
parents 443aaa05a7c3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10978
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
1 /*
14038
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
2 * Gaim
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
3 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
4 * Gaim is the legal property of its developers, whose names are too
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
5 * numerous to list here. Please refer to the COPYRIGHT file distributed
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
6 * with this source distribution
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
7 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
8 * This program is free software; you can redistribute it and/or modify
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
9 * it under the terms of the GNU General Public License as published by
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or (at
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
11 * your option) any later version.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
12 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
13 * This program is distributed in the hope that it will be useful, but
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
16 * General Public License for more details.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
17 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
18 * You should have received a copy of the GNU General Public License
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
19 * along with this program; if not, write to the Free Software
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
20 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
21 * USA.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
22 */
10978
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
23
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
24 #ifndef _GAIM_MIME_H
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
25 #define _GAIM_MIME_H
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
26
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
27 #include <glib.h>
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
28 #include <glib/glist.h>
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
29
14038
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
30 /**
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
31 * @file mime.h
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
32 * @ingroup core
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
33 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
34 * Rudimentary parsing of multi-part MIME messages into more
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
35 * accessible structures.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
36 */
10978
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
37
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
38 /**
14038
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
39 * @typedef GaimMimeDocument A MIME document.
10978
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
40 */
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
41 typedef struct _GaimMimeDocument GaimMimeDocument;
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
42
14038
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
43 /**
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
44 * @typedef GaimMimePart A part of a multipart MIME document.
10978
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
45 */
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
46 typedef struct _GaimMimePart GaimMimePart;
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
47
14038
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
48 /**
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
49 * Allocate an empty MIME document.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
50 */
12323
fc464a0abccc [gaim-migrate @ 14627]
Richard Laager <rlaager@wiktel.com>
parents: 11183
diff changeset
51 GaimMimeDocument *gaim_mime_document_new(void);
10978
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
52
14038
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
53 /**
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
54 * Frees memory used in a MIME document and all of its parts and fields
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
55 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
56 * @param doc The MIME document to free.
10978
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
57 */
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
58 void gaim_mime_document_free(GaimMimeDocument *doc);
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
59
14038
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
60 /**
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
61 * Parse a MIME document from a NUL-terminated string.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
62 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
63 * @param buf The NULL-terminated string containing the MIME-encoded data.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
64 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
65 * @returns A MIME document.
10978
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
66 */
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
67 GaimMimeDocument *gaim_mime_document_parse(const char *buf);
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
68
14038
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
69 /**
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
70 * Parse a MIME document from a string
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
71 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
72 * @param buf The string containing the MIME-encoded data.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
73 * @param len Length of buf.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
74 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
75 * @returns A MIME document.
10978
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
76 */
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
77 GaimMimeDocument *gaim_mime_document_parsen(const char *buf, gsize len);
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
78
14038
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
79 /**
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
80 * Write (append) a MIME document onto a GString.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
81 */
10978
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
82 void gaim_mime_document_write(GaimMimeDocument *doc, GString *str);
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
83
14038
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
84 /**
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
85 * The list of fields in the header of a document
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
86 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
87 * @param doc The MIME document.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
88 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
89 * @returns A list of strings indicating the fields (but not the values of
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
90 * the fields) in the header of doc.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
91 */
10978
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
92 const GList *gaim_mime_document_get_fields(GaimMimeDocument *doc);
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
93
14038
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
94 /**
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
95 * Get the value of a specific field in the header of a document.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
96 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
97 * @param doc The MIME document.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
98 * @param field Case-insensitive field name.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
99 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
100 * @returns Value associated with the indicated header field, or
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
101 * NULL if the field doesn't exist.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
102 */
10978
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
103 const char *gaim_mime_document_get_field(GaimMimeDocument *doc,
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
104 const char *field);
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
105
14038
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
106 /**
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
107 * Set or replace the value of a specific field in the header of a
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
108 * document.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
109 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
110 * @param doc The MIME document.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
111 * @param field Case-insensitive field name.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
112 * @param value Value to associate with the indicated header field,
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
113 * of NULL to remove the field.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
114 */
10978
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
115 void gaim_mime_document_set_field(GaimMimeDocument *doc,
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
116 const char *field,
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
117 const char *value);
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
118
14038
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
119 /**
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
120 * The list of parts in a multipart document.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
121 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
122 * @param doc The MIME document.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
123 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
124 * @returns List of GaimMimePart contained within doc.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
125 */
10978
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
126 const GList *gaim_mime_document_get_parts(GaimMimeDocument *doc);
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
127
14038
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
128 /**
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
129 * Create and insert a new part into a MIME document.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
130 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
131 * @param doc The new part's parent MIME document.
10978
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
132 */
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
133 GaimMimePart *gaim_mime_part_new(GaimMimeDocument *doc);
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
134
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
135
14038
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
136 /**
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
137 * The list of fields in the header of a document part.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
138 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
139 * @param part The MIME document part.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
140 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
141 * @returns List of strings indicating the fields (but not the values
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
142 * of the fields) in the header of part.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
143 */
10978
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
144 const GList *gaim_mime_part_get_fields(GaimMimePart *part);
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
145
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
146
14038
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
147 /**
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
148 * Get the value of a specific field in the header of a document part.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
149 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
150 * @param part The MIME document part.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
151 * @param field Case-insensitive name of the header field.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
152 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
153 * @returns Value of the specified header field, or NULL if the
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
154 * field doesn't exist.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
155 */
10978
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
156 const char *gaim_mime_part_get_field(GaimMimePart *part,
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
157 const char *field);
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
158
14038
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
159 /**
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
160 * Get the decoded value of a specific field in the header of a
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
161 * document part.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
162 */
10978
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
163 char *gaim_mime_part_get_field_decoded(GaimMimePart *part,
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
164 const char *field);
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
165
14038
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
166 /**
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
167 * Set or replace the value of a specific field in the header of a
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
168 * document.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
169 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
170 * @param part The part of the MIME document.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
171 * @param field Case-insensitive field name
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
172 * @param value Value to associate with the indicated header field,
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
173 * of NULL to remove the field.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
174 */
10978
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
175 void gaim_mime_part_set_field(GaimMimePart *part,
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
176 const char *field,
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
177 const char *value);
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
178
14038
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
179 /**
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
180 * Get the (possibly encoded) data portion of a MIME document part.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
181 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
182 * @param part The MIME document part.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
183 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
184 * @returns NULL-terminated data found in the document part
10978
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
185 */
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
186 const char *gaim_mime_part_get_data(GaimMimePart *part);
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
187
14038
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
188 /**
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
189 * Get the data portion of a MIME document part, after attempting to
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
190 * decode it according to the content-transfer-encoding field. If the
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
191 * specified encoding method is not supported, this function will
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
192 * return NULL.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
193 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
194 * @param part The MIME documemt part.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
195 * @param data Buffer for the data.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
196 * @param len The length of the buffer.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
197 */
10978
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
198 void gaim_mime_part_get_data_decoded(GaimMimePart *part,
11183
8dca96cbcd64 [gaim-migrate @ 13295]
Mark Doliner <mark@kingant.net>
parents: 11132
diff changeset
199 guchar **data, gsize *len);
10978
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
200
14038
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
201 /**
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
202 * Get the length of the data portion of a MIME document part.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
203 *
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
204 * @param part The MIME document part.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
205 * @returns Length of the data in the document part.
443aaa05a7c3 [gaim-migrate @ 16642]
Mark Doliner <mark@kingant.net>
parents: 12323
diff changeset
206 */
10978
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
207 gsize gaim_mime_part_get_length(GaimMimePart *part);
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
208
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
209 void gaim_mime_part_set_data(GaimMimePart *part, const char *data);
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
210
8ab19bf9c3bc [gaim-migrate @ 12804]
Christopher O'Brien <siege@pidgin.im>
parents:
diff changeset
211 #endif