Fix compilation error using python2.7
[python-purple] / libpurple / util.pxd
1 #
2 #  Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia
3 #
4 #  This file is part of python-purple.
5 #
6 #  python-purple is free software: you can redistribute it and/or modify
7 #  it under the terms of the GNU General Public License as published by
8 #  the Free Software Foundation, either version 3 of the License, or
9 #  (at your option) any later version.
10 #
11 #  python-purple is distributed in the hope that it will be useful,
12 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 #  GNU General Public License for more details.
15 #
16 #  You should have received a copy of the GNU General Public License
17 #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 #
19
20 cimport account
21 cimport notify
22 cimport glib
23 cimport signals
24 cimport xmlnode
25
26 cdef extern from *:
27     ctypedef int size_t
28
29 cdef extern from "libpurple/util.h":
30     ctypedef struct PurpleUtilFetchUrlData:
31         pass
32
33     ctypedef struct PurpleMenuAction:
34         char *label
35         signals.PurpleCallback callback
36         glib.gpointer data
37         glib.GList *children
38
39     ctypedef char *(*PurpleInfoFieldFormatCallback)(char *field, size_t len)
40
41     ctypedef struct PurpleKeyValuePair:
42         glib.gchar *key
43         void *value
44
45     PurpleMenuAction *purple_menu_action_new(char *label, \
46             signals.PurpleCallback callback, glib.gpointer data, \
47             glib.GList *children)
48     void purple_menu_action_free(PurpleMenuAction *act)
49
50     void purple_util_set_current_song(char *title, char *artist, char *album)
51
52     char *purple_util_format_song_info(char *title, char *artist, \
53             char *album, glib.gpointer unused)
54
55     # Utility Subsystem
56     void purple_util_init()
57     void purple_util_uninit()
58
59     # Base16 Functions
60     glib.gchar *purple_base16_encode(glib.guchar *data, glib.gsize len)
61     glib.guchar *purple_base16_decode(char *str, glib.gsize *ret_len)
62     glib.gchar *purple_base16_encode_chunked(glib.guchar *data, glib.gsize len)
63
64     # Base64 Functions
65     glib.gchar *purple_base64_encode(glib.guchar *data, glib.gsize len)
66     glib.guchar *purple_base64_decode(char *str, glib.gsize *ret_len)
67
68     # Quoted Printable Functions
69     glib.guchar *purple_quotedp_decode(char *str, glib.gsize *ret_len)
70
71     # MIME Functions
72     char *purple_mime_decode_field(char *str)
73
74     # Date/Time Functions FIXME
75     #char *purple_utf8_strftime(char *format, struct tm *tm)
76     #char *purple_get_tzoff_str(struct tm *tm, glib.gboolean iso)
77     #char *purple_date_format_short(struct tm *tm)
78     #char *purple_date_format_long(struct tm *tm)
79     #char *purple_date_format_full(struct tm *tm)
80     #char *purple_time_format(struct tm *tm)
81     #time_t purple_time_build(int year, int month, int day, int hour, int min, \
82             #int sec)
83     #time_t purple_str_to_time(char *timestamp, glib.gboolean utc, \
84             #struct tm *tm, long *tz_off, char **rest);
85
86     # Markup Functions FIXME
87 #    glib.gboolean purple_markup_find_tag(char *needle, char *haystack, \
88 #            char **start, char **end, glib.GData **attributes)
89     glib.gboolean purple_markup_extract_info_field(char *str, int len, \
90             notify.PurpleNotifyUserInfo *user_info, char *start_token, \
91             int skip, char *end_token, char check_value, \
92             char *no_value_token, char *display_name, glib.gboolean is_link, \
93             char *link_prefix, PurpleInfoFieldFormatCallback format_cb)
94     void purple_markup_html_to_xhtml(char *html, char **dest_xhtml, char **dest_plain)
95     char *purple_markup_strip_html(char *str)
96     char *purple_markup_linkify(char *str)
97     char *purple_unescape_html(char *html)
98     char *purple_markup_slice(char *str, glib.guint x, glib.guint y)
99     char *purple_markup_get_tag_name(char *tag)
100     char *purple_markup_unescape_entity(char *text, int *length)
101     char *purple_markup_get_css_property(glib.gchar *style, glib.gchar *opt)
102
103     # Path/Filename Functions
104     glib.gchar *purple_home_dir()
105     glib.gchar *purple_user_dir()
106     void purple_util_set_user_dir(char *dir)
107     int purple_build_dir(char *path, int mode)
108     glib.gboolean purple_util_write_data_to_file(char *filename, char *data, \
109             glib.gssize size)
110     glib.gboolean purple_util_write_data_to_file_absolute(char *filename_full, char *data, glib.gssize size)
111     xmlnode.xmlnode *purple_util_read_xml_from_file(char *filename, char *description)
112     #FILE *purple_mkstemp(char **path, glib.gboolean binary)
113     #char *purple_util_get_image_extension(glib.gconstpointer data, size_t len)
114     #char *purple_util_get_image_checksum(glib.gconstpointer image_data, size_t image_len)
115     #char *purple_util_get_image_filename(glib.gconstpointer image_data, size_t image_len)
116
117     # Environment Detection Functions
118     glib.gboolean purple_program_is_valid(char *program)
119     glib.gboolean purple_running_gnome()
120     glib.gboolean purple_running_kde()
121     glib.gboolean purple_running_osx()
122     char *purple_fd_get_ip(int fd)
123
124     # String Functions FIXME
125     char *purple_normalize(account.PurpleAccount *account, char *str)
126     char *purple_normalize_nocase(account.PurpleAccount *account, char *str)
127     glib.gboolean purple_str_has_prefix(char *s, char *p)
128     glib.gboolean purple_str_has_suffix(char *s, char *x)
129     glib.gchar *purple_strdup_withhtml(glib.gchar *src)
130     char *purple_str_add_cr(char *str)
131     void purple_str_strip_char(char *str, char thechar)
132     void purple_util_chrreplace(char *string, char delimiter, char replacement)
133     glib.gchar *purple_strreplace(char *string, char *delimiter, \
134             char *replacement)
135     #char *purple_utf8_ncr_encode(char *in)
136     #char *purple_utf8_ncr_decode(char *in)
137     glib.gchar *purple_strcasereplace(char *string, char *delimiter, \
138             char *replacement)
139     char *purple_strcasestr(char *haystack, char *needle)
140     #char *purple_str_size_to_units(size_t size)
141     char *purple_str_seconds_to_string(glib.guint sec)
142     char *purple_str_binary_to_ascii(unsigned char *binary, glib.guint len)
143
144     # URI/URL Functions FIXME
145     void purple_got_protocol_handler_uri(char *uri)
146     glib.gboolean purple_url_parse(char *url, char **ret_host, int *ret_port, \
147             char **ret_path, char **ret_user, char **ret_passwd)
148
149     #ctypedef void (*PurpleUtilFetchUrlCallback)( \
150             #PurpleUtilFetchUrlData *url_data, glib.gpointer user_data, \
151             #glib.gchar *url_text, glib.gsize len, glib.gchar *error_message)
152
153     #PurpleUtilFetchUrlData *purple_util_fetch_url_request(glib.gchar *url, \
154     #        glib.gboolean full, glib.gchar *user_agent, glib.gboolean http11, \
155     #        glib.gchar *request, glib.gboolean include_headers, \
156     #        PurpleUtilFetchUrlCallback callback, glib.gpointer data)
157     #PurpleUtilFetchUrlData *purple_util_fetch_url_request_len(glib.gchar *url, \
158     #        glib.gboolean full, glib.gchar *user_agent, glib.gboolean http11, \
159     #        glib.gchar *request, glib.gboolean include_headers, \
160     #        glib.gssize max_len, PurpleUtilFetchUrlCallback callback, \
161     #        glib.gpointer data)
162     #void purple_util_fetch_url_cancel(PurpleUtilFetchUrlData *url_data)
163     char *purple_url_decode(char *str)
164     char *purple_url_encode(char *str)
165     glib.gboolean purple_email_is_valid(char *address)
166     glib.gboolean purple_ip_address_is_valid(char *ip)
167     glib.GList *purple_uri_list_extract_uris(glib.gchar *uri_list)
168     glib.GList *purple_uri_list_extract_filenames(glib.gchar *uri_list)
169
170     # UTF8 String Functions FIXME
171     glib.gchar *purple_utf8_try_convert(char *str)
172     glib.gchar *purple_utf8_salvage(char *str)
173     glib.gchar *purple_gai_strerror(glib.gint errnum)
174     int purple_utf8_strcasecmp(char *a, char *b)
175     glib.gboolean purple_utf8_has_word(char *haystack, char *needle)
176     #void purple_print_utf8_to_console(FILE *filestream, char *message)
177     glib.gboolean purple_message_meify(char *message, glib.gssize len)
178     #char *purple_text_strip_mnemonic(char *in)
179     char *purple_unescape_filename(char *str)
180     char *purple_escape_filename(char *str)
181     char *_purple_oscar_convert(char *act, char *protocol)
182     void purple_restore_default_signal_handlers()
183     glib.gchar *purple_get_host_name()