1Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul
2
3version 2.14.8:
4	* no changes
5
6version 2.14.7:
7	* no changes
8
9version 2.14.6:
10	* No changes
11
12version 2.14.5:
13	* No changes
14
15version 2.14.4:
16	* No changes
17
18version 2.14.3:
19	* No changes
20
21version 2.14.2:
22	* No changes
23
24version 2.14.1:
25	* No changes
26
27version 2.14.0:
28	libpurple:
29		Added:
30		* purple_media_manager_enumerate_elements
31		* purple_request_screenshare_media
32		* purple_media_set_require_encryption
33
34version 2.13.0:
35	libpurple:
36		Added:
37		* purple_uri_escape_for_open
38
39version 2.12.0:
40	libpurple:
41		Added:
42		* PURPLE_MESSAGE_REMOTE_SEND in PurpleMessageFlags, to specify
43		messages like _SEND that were sent from another location.
44		* purple_certificate_get_fingerprint_sha256
45		* purple_certificate_compare_pubkeys
46		* PurpleCertificateScheme.get_fingerprint_sha256
47		* PurpleCertificateScheme.compare_pubkeys
48		* PURPLE_CERTIFICATE_SCHEME_HAS_FUNC
49
50version 2.11.0:
51	libpurple:
52		Added:
53		* account-status-changing signal (account signals)
54		* buddy-removed-from-group signal (blist signals)
55		* PurpleCommandsUiOps, to allow the UI to override the
56		  built-in handling of commands.
57		* PurplePrefsUiOps, to allow the UI to override the way global
58		  preferences are stored.
59		* PurpleAccountPrefsUiOps, to allow the UI to handle storage
60		  of account preferences.
61		* purple_media_set_encryption_parameters
62		* purple_media_set_decryption_parameters
63		* purple_xfer_write_file
64		* purple_xfer_read_file
65		* purple_media_set_send_rtcp_mux
66		* purple_media_backend_set_send_rtcp_mux
67
68version 2.10.12:
69	* No changes
70
71version 2.10.11:
72	* No changes
73
74version 2.10.10:
75	* No changes
76
77version 2.10.9:
78	* No changes
79
80version 2.10.8:
81	* No changes
82
83version 2.10.7:
84	* No changes
85
86version 2.10.6:
87	* No changes
88
89version 2.10.5:
90	* No changes
91
92version 2.10.4:
93	* No changes
94
95version 2.10.3:
96	* No changes
97
98version 2.10.2:
99	* No changes
100
101version 2.10.1:
102	* No changes
103
104version 2.10.0:
105	libpurple:
106		Added:
107		* purple_srv_txt_query_destroy (accidentally left out of 2.8.0)
108
109	Pidgin:
110		Added:
111		* pidgin_dialogs_plugins_info (should not be used by anything but Pidgin)
112
113version 2.9.0:
114	libpurple:
115		Added:
116		* Hash table to PurpleConvChat struct, used to make
117		  purple_conv_chat_cb_find O(1).
118		* ui_data pointer to PurpleConvChatBuddy struct.
119		* deleting-chat-buddy signal (conversation signals)
120		* pidgin_pixbuf_from_data
121		* pidgin_pixbuf_anim_from_data
122		* pidgin_pixbuf_new_from_file
123		* pidgin_pixbuf_new_from_file_at_size
124		* pidgin_pixbuf_new_from_file_at_scale
125
126		Deprecated:
127		* purple_conv_chat_set_users
128		* PurpleConvChat in_room list
129
130version 2.8.0 (06/07/2011):
131	libpurple:
132		Added:
133		* account-authorization-requested-with-message signal (Stefan Ott)
134		  (#8690)
135		* cleared-message-history signal (conversation signals)
136		* purple_account_add_buddy_with_invite
137		* purple_account_add_buddies_with_invite
138		* purple_dnsquery_a_account
139		* purple_notify_user_info_add_pair_plaintext
140		* purple_media_get_active_local_candidates
141		* purple_media_get_active_remote_candidates
142		* purple_media_manager_get_video_caps (Jakub Adam) (#13095)
143		* purple_media_manager_set_video_caps (Jakub Adam) (#13095)
144		* purple_pounce_destroy_all_by_buddy (Kartik Mohta) (#1131)
145		* purple_proxy_connect_socks5_account
146		* purple_srv_resolve_account
147		* purple_txt_resolve_account
148		* Added add_buddy_with_invite to PurplePluginProtocolInfo
149		* Added add_buddies_with_invite to PurplePluginProtocolInfo
150		* Added PurpleSrvTxtQueryUiOps which allow UIs to specify their
151		  own mechanisms to resolve SRV and/or TXT queries. It works
152		  similar to PurpleDnsQueryUiOps
153		* purple_marshal_BOOLEAN__POINTER_BOOLEAN (kawaii.neko) (#12599)
154
155		Deprecated:
156		* purple_account_add_buddy
157		* purple_account_add_buddies_with_invite
158		* purple_dnsquery_a
159		* purple_proxy_connect_socks5
160		* purple_srv_resolve
161		* purple_txt_resolve
162		* add_buddy from PurplePluginProtocolInfo struct
163		* add_buddies from PurplePluginProtocolInfo struct
164
165	Pidgin:
166		Added:
167		* pidgin_make_scrollable (Gabriel Schulhof) (#10599)
168		* chat-nick-clicked signal (kawaii.neko) (#12599)
169		* chat-nick-autocomplete signal (kawaii.neko) (#12599)
170
171version 2.7.11 (03/10/2011):
172	* libpurple:
173		Added:
174		* Four entries in the GHashTable passed when joining
175		  an XMPP chat room which allow the UI to request a limited
176		  amount of history.  See XEP-0045 7.1.16 for details; the
177		  entries are named history_maxchars, history_maxstanzas,
178		  history_seconds, and history_since.  history_since must be
179		  interpretable by purple_str_to_time, and the prpl takes care
180		  of formatting the time properly.
181	* Perl:
182		Added:
183		* Purple::find_conversation_with_account
184		* Purple::Conversation::Chat::send_with_flags
185		* Purple::Conversation::IM::send_with_flags
186
187version 2.7.10 (02/06/2011):
188	* No changes
189
190version 2.7.9 (12/26/2010):
191	* No changes
192
193version 2.7.8 (12/19/2010):
194	* No changes
195
196version 2.7.7 (11/23/2010):
197	* No changes
198
199version 2.7.6 (11/21/2010):
200	* No changes
201
202version 2.7.5 (10/31/2010):
203	* No changes
204
205version 2.7.4 (10/20/2010):
206	Perl:
207		Added:
208		* Purple::BuddyList::Chat::get_components
209
210		Changed:
211		* Purple::BuddyList::Chat::new now works properly.  Thanks
212		  to Rafael in devel@conference.pidgin.im for reporting and
213		  testing.
214
215version 2.7.3 (08/10/2010):
216	libpurple:
217		Fixed:
218		* purple_account_[gs]et_public_alias no longer crash when
219		  called for a protocol that doesn't support the underlying
220		  calls and the caller does not specify a failure callback.
221
222	Perl:
223		Added:
224		* Exposed log-subsystem signals.
225
226	Pidgin:
227		Changed:
228		* Changing the visibility (gtk_widget_hide/show) of
229		  the widgets in the GtkIMHtmlToolbar should now affect
230		  the visibility of the entries in the 'lean' view
231		  (the default toolbar view).
232
233		Deprecated:
234		* pidgin_check_if_dir
235
236	libgnt:
237		Added:
238		* gnt_tree_row_get_key, gnt_tree_row_get_next,
239		  gnt_tree_row_get_prev, gnt_tree_row_get_child and
240		  gnt_tree_row_get_parent.
241
242version 2.7.2 (07/21/2010):
243	* No changes
244
245version 2.7.1 (05/29/2010):
246	* No changes
247
248version 2.7.0 (05/12/2010):
249	libpurple:
250		Added:
251		* Account signals (see account-signals.dox); useful for D-Bus
252		   * account-signed-on
253		   * account-signed-off
254		   * account-connection-error
255		* purple_account_get_name_for_display
256		* purple_account_get_privacy_type
257		* purple_account_get_public_alias
258		* purple_account_set_privacy_type
259		* purple_account_set_public_alias
260		* buddy-caps-changed blist signal
261		* Added media_caps to the PurpleBuddy struct
262		* purple_buddy_get_media_caps
263		* purple_buddy_set_media_caps
264		* purple_certificates_import for importing multiple
265		  certificates from a single file (and corresponding
266		  import_certificates member of PurpleCertificateScheme struct)
267		* autojoin connection signal
268		* purple_contact_get_group
269		* sent-attention conversation signal
270		* got-attention conversation signal
271		* ui-caps-changed media manager signal
272		* purple_media_candidate_copy
273		* purple_media_codec_copy
274		* purple_media_manager_get_backend_type
275		* purple_media_manager_set_backend_type
276		* PurpleMood struct in status.h
277		* purple_network_get_all_local_system_ips, which returns all
278		  local IPs on the system.  On systems with the getifaddrs()
279		  function, this will return both IPv4 and IPv6 addresses
280		  (excluding link-local and loopback addresses).  On others,
281		  it returns just IPv4 addresses.
282		* purple_network_listen_family and
283		  purple_network_listen_range_family.  These will replace the
284		  versions without _family in 3.0.0 and allow the caller to
285		  specifically request either an IPv4 or IPv6 socket.  IPv6 is
286		  only supported if the getaddrinfo() function is available
287		  at build-time (not the case on Windows, currently).
288		* purple_prpl_got_media_caps
289		* purple_request_action_with_icon
290		* purple_request_action_with_icon_varg
291		* purple_socket_get_family
292		* purple_socket_speaks_ipv4
293		* purple_unescape_text
294		* purple_uuid_random
295		* purple_xfer_get_thumbnail
296		* purple_xfer_get_thumbnail_mimetype
297		* purple_xfer_set_thumbnail
298		* purple_xfer_prepare_thumbnail
299
300	Pidgin:
301		Added:
302		* pidgin_dialogs_buildinfo (should not be used by anything but Pidgin)
303		* pidgin_dialogs_developers (should not be used by anything but Pidgin)
304		* pidgin_dialogs_translators (should not be used by anything but Pidgin)
305		* gtk_imhtmltoolbar_switch_active_conversation
306		* 'paste' signal for GtkIMHtml (more in gtkimhtml-signals.dox)
307		* 'drawing-buddy' signal for gtkblist (more in gtkblist-signals.dox)
308
309version 2.6.6 (02/18/2010):
310	libpurple:
311		Changed:
312		* purple_xfer_cancel_local is now called instead of
313		  purple_xfer_request_denied if an error is found when selecting
314		  a file to send. Request denied is still used when a receive
315		  request is not allowed.
316		* xmlnode_from_str now properly handles parsing an attribute which
317		  contain "<br>", which were previously transformed into a
318		  newline character (libxml2 unescapes all entities except
319		  representations of '&', and libpurple's purple_unescape_html
320		  converts "<br>" to a newline).
321
322	Perl:
323		Changed:
324		* Corrected the package names for the PurpleProxyType and
325		  PurpleLogReadFlags enums to have the correct number of colons
326		  (from Purple::ProxyType::::<type> to Purple::ProxyType::<type>
327		  and Purple::Log:ReadFlags::::<type> to
328		  Purple::Log::ReadFlags::<type>)  (Chris Foote)
329
330version 2.6.5 (01/08/2010):
331	No changes
332
333version 2.6.4 (11/29/2009):
334	No changes
335
336version 2.6.3 (10/16/2009):
337	No changes
338
339version 2.6.2 (09/05/2009):
340	Perl:
341		Added:
342		* Purple::XMLNode::get_next(), which returns the next neighbor tag of
343		  the current node.
344		Changed:
345		* Purple::XMLNode::get_child() will return the first child node if
346		  passed "" or undef as the name of the node.
347
348version 2.6.1 (08/18/2009):
349	No changes
350
351version 2.6.0 (08/18/2009):
352	libpurple:
353		Added:
354		* PurpleMedia and PurpleMediaManager API
355		* PURPLE_BLIST_NODE
356		* PURPLE_GROUP
357		* PURPLE_CONTACT
358		* PURPLE_BUDDY
359		* PURPLE_CHAT
360		* Account signals (see account-signals.dox)
361			* account-actions-changed
362			* account-created
363			* account-destroying
364		* blist-node-added and blist-node-removed signals (see
365		  blist-signals.dox)
366		* Three Blist UI ops used to overload libpurple's built-in saving
367		  of the buddy list to blist.xml. If a UI implements these, it probably
368		  wants to add the buddies itself and not call purple_blist_load.
369		* Three File Transfer UI ops used to overload libpurple's use of fread
370		  and fwrite for saving a file locally. These allow a UI to stream a
371		  file through a socket without buffering the file on the local disk.
372		* Jabber plugin signals (see jabber-signals.dox)
373		* purple_account_remove_setting
374		* purple_buddy_destroy
375		* purple_buddy_get_protocol_data
376		* purple_buddy_set_protocol_data
377		* purple_buddy_get_local_buddy_alias
378		* purple_blist_get_buddies
379		* purple_blist_get_ui_data
380		* purple_blist_set_ui_data
381		* purple_blist_node_get_ui_data
382		* purple_blist_node_set_ui_data
383		* purple_certificate_check_signature_chain_with_failing
384		* purple_chat_destroy
385		* purple_connection_get_protocol_data
386		* purple_connection_set_protocol_data
387		* purple_contact_destroy
388		* purple_conv_chat_invite_user
389		* purple_debug_is_unsafe
390		* purple_debug_is_verbose
391		* purple_debug_set_unsafe
392		* purple_debug_set_verbose
393		* purple_global_proxy_set_info
394		* purple_group_destroy
395		* purple_ipv4_address_is_valid
396		* purple_ipv6_address_is_valid
397		* purple_log_get_activity_score
398		* purple_markup_is_rtl
399		* purple_markup_escape_text
400		* purple_network_convert_idn_to_ascii
401		* purple_network_force_online
402		* purple_network_set_stun_server
403		* purple_network_set_turn_server
404		* purple_network_get_stun_ip
405		* purple_network_get_turn_ip
406		* purple_network_remove_port_mapping
407		* purple_plugins_get_search_paths
408		* purple_proxy_connect_udp
409		* purple_prpl_get_media_caps
410		* purple_prpl_got_account_actions
411		* purple_prpl_initiate_media
412		* purple_request_field_get_group
413		* purple_request_field_get_ui_data
414		* purple_request_field_set_ui_data
415		* purple_ssl_connect_with_ssl_cn
416		* purple_strequal
417		* purple_utf8_strip_unprintables
418		* purple_util_fetch_url_request_len_with_account
419		* purple_xfer_prpl_ready
420		* purple_xfer_ui_ready
421		* xmlnode_from_file
422		* xmlnode_get_parent
423		* xmlnode_set_attrib_full
424		* PURPLE_STATUS_MOOD as a new PurpleStatusPrimitive
425
426		Changed:
427		* xmlnode_remove_attrib now removes all attributes with the
428		  same name.  Previously, it would remove the first one found,
429		  which was completely non-deterministic.  If you want to remove
430		  the attribute with no namespace, then use NULL with
431		  xmlnode_remove_with_namespace.
432		* Plugins may now emit the jabber-sending-xmlnode signal in order
433		  to send stanzas; this method is preferred to the prpl send_raw
434		  function as other plugins listening to the signal see them.
435		* The conversation-updated signal with a PURPLE_CONV_UPDATE_TYPING
436		  update type is emitted when receiving an IM.  Previously, the
437		  typing state was modified (and the buddy-typing-stopped signal
438		  emitted), but this signal was not emitted.
439		* Added a client_type field in the get_ui_info core UI op. See
440		  core.h for details.
441		* Added introspection of signals exposed via the D-Bus API.
442		* purple_find_buddies is now more efficient in the case where
443		  it is enumerating all the buddies for an account.
444		* purple_find_group is now more efficient for large numbers of groups.
445		* purple_find_conversation_with_account is more efficient for large
446		  numbers of concurrent conversations.
447		* All DNS routines support internationalized domain names (IDNs) when
448		  libpurple is compiled with GNU libidn.
449		* status is set before emitting signals in purple_xfer_set_status.
450		* Creating multiple distinct chats with the same name (i.e. "MSN Chat")
451		  is deprecated and will be removed in libpurple 3.0.0.
452		* purple_xfer_start now accepts -1 as the fd parameter if the protocol
453		  plugin will administer the transfer itself. 0 is still accepted for
454		  backward compatibility since older versions of libpurple will not
455		  accept -1.
456
457		Deprecated:
458		* buddy-added and buddy-removed blist signals
459		* purple_blist_destroy
460		* purple_blist_new
461		* purple_buddy_get_local_alias
462		* purple_certificate_check_signature_chain
463		* purple_ip_address_is_valid
464		* purple_notify_user_info_remove_entry
465		* purple_set_blist
466		* purple_status_type_set_primary_attr
467		* purple_status_type_add_attr
468		* purple_status_type_add_attrs
469		* purple_status_type_add_attrs_vargs
470		* purple_status_type_get_primary_attr
471		* purple_status_set_attr_boolean
472		* purple_status_set_attr_int
473		* purple_status_set_attr_string
474		* purple_presence_add_status
475		* purple_presence_add_list
476		* purple_util_fetch_url_request_len
477		* xmlnode_set_attrib_with_namespace
478		* xmlnode_set_attrib_with_prefix
479
480	pidgin:
481		Added:
482		* gtk_imhtml_class_register_protocol
483		* gtk_imhtml_link_get_url, gtk_imhtml_link_get_text_tag,
484		  gtk_imhtml_link_activate functions to process GtkIMHtmlLink
485		  objects from GtkIMHtml protocol callbacks.
486		* gtk_imhtml_set_return_inserts_newline
487		* gtk_imhtml_set_populate_primary_clipboard
488		* pidgin_blist_set_theme
489		* pidgin_blist_get_theme
490		* pidgin_prefs_labeled_password
491		* pidgin_smiley_editor_set_data
492		* pidgin_sound_is_customized
493		* pidgin_utils_init, pidgin_utils_uninit
494		* pidgin_notify_pounce_add
495		* PidginBlistTheme, PidginBlistThemeLoader API
496		* PidginIconTheme, PidginStatusIconTheme, PidginIconThemeLoader
497		  API
498		* pidgin_stock_id_from_status_primitive
499		* pidgin_stock_id_from_presence
500
501	libgnt:
502		Added:
503		* GntProgressBar and functions (Saleem Abdulrasool)
504
505	perl:
506		Added:
507		* Purple::XMLNode::get_name()
508
509		Changed:
510		* Made a bunch of functions act more perl-like. Call the new()
511		  functions as Class->new(...) instead of Class::new(...):
512			* Purple::Request::Fields::new
513			* Purple::Request::Field::new
514			* Purple::Request::Field::account_new
515			* Purple::Request::Field::bool_new
516			* Purple::Request::Field::choice_new
517			* Purple::Request::Field::int_new
518			* Purple::Request::Field::label_new
519			* Purple::Request::Field::list_new
520			* Purple::Request::Field::string_new
521			* Purple::Request::Field::group_new
522		* Make the XMLNode API more perl-like. Don't pass len
523		  parameters and call them like:
524			* $xmlnode->copy()
525			* $xmlnode->to_str()
526			* $xmlnode->to_formatted_str()
527			* Purple::XMLNode::from_str(...)
528version 2.5.9 (08/18/2009):
529	No changes
530
531version 2.5.8 (06/27/2009):
532	No changes
533
534version 2.5.7 (06/20/2009):
535	No changes
536
537version 2.5.6 (05/19/2009):
538	No changes
539
540version 2.5.5 (03/01/2009):
541	libpurple:
542		Changed:
543		* purple_status_type_new now defaults "saveable" to TRUE.
544		  This was necessary in order to maintain the current behavior
545		  while fixing non-saveable statuses not to be saved.
546		* xmlnode_get_prefix, xmlnode_to_str and xmlnode_to_formatted_str
547		  now all take a const xmlnode* instead of an xmlnode*
548
549version 2.5.4 (01/12/2009):
550	perl:
551		Changed:
552		* Purple::PluginPref->get_bounds no longer takes two integer
553		  arguments it now returns two integers.
554
555		Removed:
556		* Removed a handful of string-related utility functions that
557		  can generally be better handled with perl's built-in string
558		  functions rather than using pidgin's:
559			* Purple::Util::strcasereplace
560			* Purple::Util::strcasestr
561			* Purple::Util::strreplace
562			* Purple::Util::str_strip_char
563			* Purple::Util::chrreplace
564
565version 2.5.3 (12/20/2008):
566	libpurple
567		Changed:
568		* purple_util_fetch_url and purple_util_fetch_url_request can
569		  now fetch https URLs
570
571version 2.5.0 (08/18/2008):
572	libpurple:
573		Added:
574		* Connection flag PURPLE_CONNECTION_ALLOW_CUSTOM_SMILEY to indicate
575		  that the connection supports sending and receiving custom smileys.
576		* PurpleSmiley and the Smiley API.
577		* purple_serv_got_join_chat_failed
578		* chat-join-failed signal (see conversation-signals.dox)
579		* chat-invite-blocked and blocked-im-msg signals (see
580		  converation-signals.dox) (Thanks to Stefan Ott)
581		* purple_blist_update_node_icon
582		* purple_buddy_icons_node_has_custom_icon
583		* purple_buddy_icons_node_find_custom_icon
584		* purple_buddy_icons_node_set_custom_icon
585		* purple_buddy_icons_node_set_custom_icon_from_file
586		* purple_notify_user_info_prepend_section_break
587		* purple_notify_user_info_prepend_section_header
588		* "website" and "dev_website" items to the ui_info hash table
589		* purple_cmds_get_handle, purple_cmds_init, purple_cmds_uninit
590		* cmd-added and cmd-removed signals
591		* purple_get_host_name
592		* purple_util_fetch_url_len (temporary function overload to add max_len param)
593		* purple_util_fetch_url_request_len
594		* purple_prpl_send_attention
595		* purple_prpl_got_attention
596		* purple_prpl_got_attention_in_chat
597
598		Deprecated:
599		* purple_blist_update_buddy_icon
600		* purple_buddy_icons_has_custom_icon
601		* purple_buddy_icons_find_custom_icon
602		* purple_buddy_icons_set_custom_icon
603		* pidgin_set_custom_buddy_icon
604		* purple_util_fetch_url_len
605		* purple_util_fetch_url_request_len
606		* serv_send_attention
607		* serv_got_attention
608
609		Changed:
610		* xmlnode_copy now copies the prefix and namespace map for nodes.
611
612	pidgin:
613		Added:
614		* gtk_imhtml_smiley_create, gtk_imhtml_smiley_reload and
615		  gtk_imhtml_smiley_destroy to deal with GtkIMHtmlSmiley's.
616		* pidgin_pixbuf_from_imgstore to create a GdkPixbuf from a
617		  PurpleStoredImage.
618		* pidgin_themes_smiley_themeize_custom to associate custom smileys to
619		  a GtkIMHtml widget.
620		* GTK_IMHTML_CUSTOM_SMILEY flag for GtkIMHtml.
621		* GTK+ Custom Smiley API.
622
623version 2.4.2 (05/17/2008):
624	perl:
625		Added:
626		* Purple::Prefs::get_children_names.
627		* Purple::timeout_remove.
628		Changed:
629		* Purple::timeout_add now returns a handle which can be used
630		  to remove the timeout.
631		* Callbacks to Purple::Util::fetch_url and the
632		  Purple::Request::* functions can now be specified as both
633		  strings (the name of the callback function) and as coderefs.
634	Finch:
635		libgnt:
636		* Added gnt_bindable_check_key to check if a keystroke is bound.
637
638version 2.4.0 (02/29/2008):
639	libpurple:
640		Added:
641		* purple_certificate_add_ca_search_path. (Florian Quèze)
642		* purple_gai_strerror.
643		* purple_major_version, purple_minor_version,
644		  purple_micro_version variables are exported by version.h,
645		  giving the version of libpurple in use at runtime.
646		* purple_util_set_current_song, purple_util_format_song_info
647		* purple_ip_address_is_valid
648		* Some accessor functions to the Roomlist API:
649			* purple_roomlist_get_fields
650			* purple_roomlist_room_get_type
651			* purple_roomlist_room_get_name
652			* purple_roomlist_room_get_parent
653			* purple_roomlist_room_get_fields
654			* purple_roomlist_field_get_type
655			* purple_roomlist_field_get_label
656			* purple_roomlist_field_get_hidden
657		* unlocalized_name field in PurpleAttentionType for UIs that need it.
658		* Some accessor and mutator functions for PurpleAttentionType:
659			* purple_attention_type_set_name
660			* purple_attention_type_set_incoming_desc
661			* purple_attention_type_set_outgoing_desc
662			* purple_attention_type_set_icon_name
663			* purple_attention_type_set_unlocalized_name
664			* purple_attention_type_get_name
665			* purple_attention_type_get_incoming_desc
666			* purple_attention_type_get_outgoing_desc
667			* purple_attention_type_get_icon_name
668			* purple_attention_type_get_unlocalized_name
669		* Add some PurpleBuddyListNode accessor functions:
670			* purple_blist_node_get_parent
671			* purple_blist_node_get_first_child
672			* purple_blist_node_get_sibling_next
673			* purple_blist_node_get_sibling_prev
674		* Added last_received to PurpleConnection, the time_t of the
675		  last received packet.
676		* Added some more accessor functions:
677			* purple_chat_get_account
678			* purple_chat_get_components
679			* purple_connection_get_prpl
680			* purple_xfer_get_start_time
681			* purple_xfer_get_end_time
682		* purple_serv_got_private_alias for prpls to call after receiving a
683		  private alias from the server.
684
685	Pidgin:
686		Added:
687		* pidgin_create_dialog to create a window that closes on escape. Also
688		  added utility functions pidgin_dialog_get_vbox_with_properties,
689		  pidgin_dialog_get_vbox, pidgin_dialog_get_action_area to access the
690		  contents in the created dialog. (Peter 'fmoo' Ruibal)
691		* pidgin_dialog_add_button to add buttons to a dialog created by
692		  pidgin_create_dialog.
693		* GTK_IMHTML_NO_SMILEY for GtkIMHtmlOptions means not to look for
694		  smileys in the text. (Florian 'goutnet' Delizy)
695		* pidgin_auto_parent_window to make a window transient for a suitable
696		  parent window.
697		* pidgin_tooltip_setup_for_treeview, pidgin_tooltip_destroy,
698		  pidgin_tooltip_show and pidgin_tooltip_setup_for_widget to simplify
699		  the process of drawing tooltips.
700		* pidgin_add_widget_to_vbox to simplify adding a labeled widget to a
701		  window.
702
703		Deprecated:
704		* PIDGIN_DIALOG
705
706	Finch:
707		* finch_roomlist_get_ui_ops and finch_roomlist_show_all
708		* finch_request_field_get_widget to get the widget for a request
709		  field.
710		* finch_blist_get_tree to get the GntTree widget representing the
711		  buddy list.
712		* FinchBlistManager structure to manage the buddylist view, and some
713		  util functions finch_blist_install_manager,
714		  finch_blist_uninstall_manager, finch_blist_manager_find and
715		  finch_blist_manager_add_node.
716		* Added finch_log_show, finch_log_show_contact, finch_syslog_show,
717		  finch_log_init, finch_log_get_handle, finch_log_uninit
718
719		libgnt:
720		* Added gnt_tree_set_row_color to set the color for a row in a tree.
721		* Added gnt_style_get_string_list
722		* Added gnt_color_add_pair to define a new color.
723		* Added gnt_colors_get_color to get an ncurses color value from a
724		  string.
725		* Added gnt_style_get_color to get a color pair from an entry in
726		  ~/.gntrc
727		* Added gnt_tree_get_parent_key to get the key for the parent row.
728
729version 2.3.0 (11/24/2007):
730	libpurple:
731		Added:
732		* a PurpleConversation field and an alias field in PurpleConvMessage
733		* account-authorization signals (see account-signals.dox for
734		  details) (Stefan Ott)
735		* libpurple/purple.h, which includes #define's and #include's
736		  required to compile stand-alone plugins
737		* PURPLE_STATUS_TUNE as a new PurpleStatusPrimitive
738		* purple_plugin_disable(), which is intended to be called when
739		  a purple_plugin_unload()--which was called when a user tried
740		  to unload a plugin--fails.  This then prevents the plugin
741		  from being saved in the saved plugins list, so it'll won't
742		  be loaded at the next startup.
743		* PurpleDisconnectReason enumeration of machine-readable
744		  types of connection error.
745		* purple_connection_error_reason(), to be used by prpls
746		  (instead of purple_connection_error() and setting
747		  gc->wants_to_die) to report errors along with a
748		  PurpleDisconnectReason.
749		* PurpleConnectionUiOps.report_disconnect_reason, to be
750		  implemented by UIs (rather than .report_disconnect) if
751		  they want to use the reported PurpleDisconnectReason
752		  to give a more specific error.
753		* A connection-error signal, fired just after the UiOp is
754		  called with the same information.
755		* purple_connection_reason_is_fatal(), acting as a hint
756		  to whether automatic reconnection should be attempted
757		  after a connection error (rather than checking
758		  gc->wants_to_die).
759		* PurpleConnectionErrorInfo, a struct to hold a
760		  PurpleConnectionError and a const char *description.
761		* purple_account_get_current_error() to get the most recent
762		  PurpleConnectionError and description (or NULL if the
763		  account is happy with life), to allow bits of the UI to know
764		  the last error without caching it themselves (as
765		  PidginBuddyList does).
766		* purple_account_clear_current_error() to reset an account's
767		  error state to NULL.
768		* An account-error-changed signal, firing when
769		  purple_account_get_current_error()'s return value changes.
770
771		* PidginMiniDialog, a Gtk widget-ified version of
772		  pidgin_make_mini_dialog().
773
774		* purple_util_init()
775		* purple_util_uninit()
776
777		* purple_network_listen_map_external() to temporarily disable
778		  mapping ports externally via NAT-PMP or UPnP.
779
780		Changed:
781		* purple_plugin_unload() now honors the return value of a
782		  plugin's unload function and can actually return FALSE now.
783		* purple_plugin_unload() no longer does its own notifications
784		  when a dependent plugin fails to unload.  The UI should do
785		  something appropriate.
786
787		* pidgin_make_mini_dialog() now declares its return type to be
788		  GtkWidget * rather than void *.  This should not break any
789		  existing code since any code using it must already rely on
790		  the return type actually being GtkWidget * all along.
791
792		Deprecated:
793		* pidgin_dialogs_about()
794		* pidgin_log_show_contact()
795		* pidgin_log_show()
796		* pidgin_plugin_dialog_show()
797		* pidgin_pounce_editor_show()
798		* pidgin_pounces_manager_show()
799		* pidgin_syslog_show()
800
801		* purple_connection_error()
802		* pidgin_blist_update_account_error_state()
803		* PidginBuddyList.connection_errors
804		* purple_network_listen_map_external()
805
806		MSN:
807		* A new independant status type with PURPLE_STATUS_TUNE primitive, and
808		  PURPLE_TUNE_ARTIST, PURPLE_TUNE_ALBUM and PURPLE_TUNE_TITLE
809		  attributes.
810
811		XMPP:
812		* A new independant status type with PURPLE_STATUS_TUNE primitive, and
813		  PURPLE_TUNE_{ARTIST, TITLE, ALBUM, GENRE, COMMENT, TRACK, TIME,
814		  YEAR, URL} attributes.
815
816	Finch:
817		libgnt:
818		* Added gnt_color_pair, which will try to intelligenty set text
819		  attributes in place of colors if the terminal doesn't have color
820		  support. (Bug: #3560) All future code should use gnt_color_pair
821		  instead of COLOR_PAIR.
822		* Added gnt_menuitem_set_id and gnt_menuitem_get_id to set and get the
823		  string id of a menuitem respectively.
824		* Added gnt_window_get_accel_item, which returns a the id of a menuitem
825		  bound to a keystroke.
826		* Added gnt_menu_get_item to get a menuitem of the given id from a
827		  menu.
828		* Added gnt_menuitem_activate, which triggers the 'activate' signal on
829		  the menuitem and calls the callback function, if available.
830		* Added GntEntryKillRing in GntEntry.
831		* Added gnt_window_set_maximize and gnt_window_get_maximize, and
832		  GntWindowFlags enum.
833
834version 2.2.2 (10/23/2007):
835	libpurple:
836		Changed:
837		* The size parameter of purple_util_write_data_to_file_absolute
838		  has been changed to gssize instead of a size_t to correctly
839		  indicate that -1 can be used for a nul-delimited string.
840		* The documentation for purple_savedstatuses_get_popular used to
841		  incorrectly claim that the active status is excluded from the
842		  returned list. The documentation has been corrected. Also, the
843		  function now returns a correct list when called with a value of 0.
844
845version 2.2.0 (09/13/2007):
846	libpurple:
847		Added:
848		* PURPLE_MESSAGE_INVISIBLE flag, which can be used by
849		  purple_conv_im_send_with_flags to send a message, but not display it
850		  in the conversation
851		* serv_send_attention(), serv_got_attention(), as well as send_attention
852		  and attention_types in PurplePluginProtocolInfo. This new API is used
853		  for zapping in MySpaceIM, buzzing in Yahoo, and nudging in MSN.
854		* PurpleConvMessage structure to represent a message in a
855		  conversation. purple_conversation_message_get_sender,
856		  purple_conversation_message_get_message,
857		  purple_conversation_message_get_flags and
858		  purple_conversation_message_get_timestamp to get information about a
859		  PurpleConvMessage.
860		* purple_conversation_get_message_history() to retrieve a list of
861		  PurpleConvMessage's in a conversation, and
862		  purple_conversation_clear_message_history to clear the history.
863		* purple_certificate_* functions in libpurple/certificate.h - "A public-key certificate API"
864		* purple_ssl_get_peer_certificates() and associated field in PurpleSslOps to retrieve a server's presented SSL certificate chain.
865		* PurpleSslConnection::verifier to provide a "how to verify the peer's certificates" callback to the SSL handlers. See certificate.h for more on this.
866		* purple_ssl_connect_with_host_fd() to create an SSL connection from a file descriptor and provide a hostname with it to authenticate the peer against.
867
868		Changed:
869		* purple_prefs_load is now called within purple_prefs_init.
870		  The UI no longer needs to call it.
871		* writing-im-msg now receives the conversation name as the who
872		  argument if the caller of purple_conversation_write didn't
873		  provide a value for who.
874
875	Pidgin:
876		Added:
877		* pidgin_set_accessible_relations, sets up label-for and labelled-by
878		  ATK relations (broken out from pidgin_set_accessible_label)
879		* pidgin_conv_attach_to_conversation, to reattach the Pidgin UI to a
880		  conversation
881		* conversation-hiding and conversation-displayed signals.
882		* pidgin_text_combo_box_entry_new, pidgin_text_combo_box_entry_get_text
883		  and pidgin_text_combo_box_entry_set_text
884
885		Changed:
886		* pidgin_conversations_fill_menu now also adds a separator and a 'Show
887		  All' item if there are more than one conversations in the list.
888
889	Finch:
890		Added:
891		* finch_sound_is_enabled
892		* The reserved field in the FinchConv is now used to store information
893		  about the conversation (using FinchConversationFlag)
894		* finch_account_dialog_show
895
896		libgnt:
897		* gnt_slider_set_small_step, gnt_slider_set_large_step to allow more
898		  fine tuned updates of a GntSlider
899		* gnt_util_parse_xhtml_to_textview to parse XHTML strings in a
900		  GntTextView (this works only if libxml2 is available)
901
902version 2.1.1 (08/20/2007):
903	libpurple:
904		Changed:
905		* PurpleAccountUiOps.request_authorize's authorize_cb and
906		  deny_cb parameters now correctly have type
907		  PurpleAccountRequestAuthorizationCb rather than GCallback.
908		  (You'll want to change your UI's implementation's signature
909		  to avoid warnings, and then remove some now-redundant casts
910		  back to the proper type.)
911
912version 2.1.0 (7/28/2007):
913	libpurple:
914		Added:
915		* purple-remote: added getstatus command
916		* conversation-extended-menu signal (See Doxygen docs)
917		* OPT_PROTO_SLASH_COMMANDS_NATIVE protocol option to indicate that
918		  slash commands are "native" to the protocol
919		* PURPLE_MESSAGE_NO_LINKIFY message flag to indicate that the message
920		  should not be auto-linkified
921		* PurpleEventLoopUiOps.timeout_add_seconds
922		    UIs can now use better scheduling for whole-second timers.  For
923		    example, clients based on the glib event loop can now use
924		    g_timeout_add_seconds.
925		* purple_blist_node_get_type
926		* purple_conversation_do_command
927		* purple_conversation_get_extended_menu
928		* purple_core_ensure_single_instance
929		    This is for UIs to use to ensure only one copy is running.
930		* purple_dbus_is_owner
931		* purple_timeout_add_seconds
932		    Callers should prefer this to purple_timeout_add for timers
933		    longer than 1 second away.  Be aware of the rounding, though.
934		* purple_xfer_get_remote_user
935		* purple_pounces_get_all_for_ui
936		* purple_prefs_get_children_names
937		* added displaying-email-notification and
938 	          displaying-emails-notification signals
939
940		Changed:
941		* The documentation of the following functions now properly
942		  declares that the returned value must not be modified or
943		  freed, which was always the case:
944			* purple_accounts_get_all
945			* purple_connections_get_all
946			* purple_connections_get_connecting
947			* purple_conv_chat_get_ignored
948			* purple_conv_chat_get_users
949			* purple_get_chats
950			* purple_get_conversations
951			* purple_get_ims
952			* purple_notify_user_info_get_entries
953		* The following functions now return a GList* instead of a
954		  const GList*, as const is not very useful with GLists.  The
955		  returned value still must not be modified or freed:
956			* purple_account_get_status_types
957			* purple_mime_document_get_fields
958			* purple_mime_document_get_parts
959			* purple_mime_part_get_fields
960			* purple_request_fields_get_required
961			* purple_request_field_list_get_selected
962			* purple_request_field_list_get_items
963			* purple_status_type_get_attrs
964			* purple_presence_get_statuses
965		* purple_request_field_list_set_selected now takes a GList*
966		  instead of a const GList* for items, as const is not very
967		  useful with GLists.  The passed list is still not modified
968		  or freed.
969		* purple_presence_add_list now takes a GList* instead of a
970		  const GList* for source_list, as const is not very useful with
971		  GLists.  The passed list is still not modified or freed.
972
973	Pidgin:
974		Added:
975		* gtk_imhtml_setup_entry
976		* pidgin_create_window
977		* pidgin_retrieve_user_info and pidgin_retrieve_user_info_in_chat,
978		  shows immediate feedback when getting information about a user.
979		* gtk_imhtml_animation_new
980		    Can be used for inserting an animated image into an IMHTML.
981		* pidgin_menu_position_func_helper
982		* pidgin_blist_get_name_markup, returns the buddy list markup
983		  text for a given buddy.
984		* pidgin_blist_draw_tooltip and pidgin_blist_tooltip_destroy
985		  for creating blist tooltips from outside of buddy list code
986		* pidgin_themes_remove_smiley_theme
987
988		Changed:
989		* pidgin_append_menu_action returns the menuitem added to the menu.
990		* pidgin_separator returns the separator added to the menu.
991		* PidginConversation has struct members to handle the new info
992		  pane:
993		  	* infopane
994			* infopane_hbox
995			* infopane_model
996			* infopane_iter
997
998	Finch:
999		Added:
1000		* finch_retrieve_user_info
1001
1002		libgnt:
1003			Added:
1004			* GntWS for workspaces
1005			* gnt_tree_set_column_title
1006			* GntSlider widget
1007			* "completion" signal for GntEntry
1008			* "terminal-refresh" signal for GntWM, with a corresponding entry
1009			  in GntWMClass
1010			* New flags for GntTextView to decide whether to word-wrap or show
1011			  scrollbars (GntTextViewFlag) which can be set by
1012			  gnt_text_view_set_flag
1013			* gnt_style_get_from_name
1014			* gnt_window_present
1015			* gnt_tree_set_column_width_ratio
1016			* gnt_tree_set_column_resizable
1017			* gnt_tree_set_column_is_right_aligned
1018			* gnt_tree_set_search_function, gnt_tree_set_search_column,
1019			  gnt_tree_is_searching
1020			* 'file-selected' signal is emited for GntFileSel
1021			* gnt_style_parse_bool
1022			* gnt_util_set_trigger_widget
1023
1024			Changed:
1025			* gnt_tree_get_rows() now returns a GList* instead of a const
1026			  GList*, as const is not very useful with GLists.  The
1027			  returned value still must not be modified or freed.
1028			* Instead of keeping an 'invisible' item, the GntTreeColumns now
1029			  maintain 'flags' with the appropriate flags set
1030
1031version 2.0.2 (6/14/2007):
1032	Pidgin:
1033		Deprecated:
1034		* pidgin_dialogs_alias_contact:  This will be removed in 3.0.0
1035		  unless there is sufficient demand to keep it.
1036
1037version 2.0.0 (5/3/2007):
1038	Please note all functions, defines, and data structures have been
1039	re-namespaced to match the new names of Pidgin, Finch, and libpurple.
1040	All gaim_gtk_* functions are now pidgin_*, former libgaim functions are
1041	now purple_*.  Please consult our doxygen documentation for a complete
1042	reference.
1043
1044	The gaim-compat.h header exists to provide an API compatibility layer
1045	for libpurple functions.  As an API compatibility layer, it must be
1046	included at compile time to be of use.
1047
1048	Changed:
1049	* All the status stuff.  Yay!
1050	* gaim_prefs_connect_callback(), added handle parameter
1051	* gtk_imhtml_toolbar now descends from GtkHBox making it easier to add your
1052	  own widgets to it
1053	* gaim_find_conversation_with_account, added a "type" parameter
1054	* gaim_gtk_prefs_labeled_spin_button, the "key" parameter is now a
1055	  const char* instead of just a char*
1056	* gaim_gtk_prefs_labeled_entry, the "key" parameter is now a const char*
1057	  instead of just a char*
1058	* the add_buddy perl sub.  The sub now takes the account as the first
1059	  argument, and buddy and group as the second and third.  It also adds
1060	  the buddy to the server-side buddy list of the given account.
1061	* gaim_connection_new, gaim_account_connect and gaim_account_register no
1062	  longer return a GaimConnection
1063	* keep_alive in GaimConnection is renamed to keepalive
1064	* gaim_mkstemp, added a second argument, a boolean, of whether or not the
1065	  file is binary
1066	* gaim_log_logger_new, rewritten
1067	* gaim_conv_window_remove_conversation()'s last argument to be a
1068	  GaimConversation.
1069	* A new blocked icon: pixmaps/status/default/blocked.png
1070	* In pixmaps/status/default: extendedaway.png renamed to extended_away.png
1071	* In pixmaps/status/default: na.png renamed to unavailable.png
1072	* gtk_imhtml_toggle_bold(): No longer returns a value
1073	* gtk_imhtml_toggle_italic(): No longer returns a value
1074	* gtk_imhtml_toggle_underline(): No longer returns a value
1075	* gtk_imhtml_toggle_strike(): No longer returns a value
1076	* gtk_imhtml_scroll_to_end(): Added the smooth paramter
1077	* gaim_log_new(), added conv parameter
1078	* gaim_buddy_icon_new(), leaves a reference which the caller owns.  Use
1079	  gaim_buddy_icon_unref() immediately if you don't want a reference (the
1080	  old behavior).
1081	* GAIM_CONV_UNKNOWN to GAIM_CONV_TYPE_UNKNOWN.
1082	* GAIM_CONV_IM to GAIM_CONV_TYPE_IM.
1083	* GAIM_CONV_CHAT to GAIM_CONV_TYPE_CHAT.
1084	* GAIM_CONV_MISC to GAIM_CONV_TYPE_MISC.
1085	* GAIM_CONV_ANY to GAIM_CONV_TYPE_ANY.
1086	* GaimConversationUiOps.write_conv, Replaced const char *who with
1087	  const char *name, const char *alias
1088	* gaim_conv_chat_add_users(), added extra_msgs and new_arrivals (pass NULL
1089	  and FALSE respectively, to get the same behavior as before)
1090	* chat_add_users in GaimConversationUiOps, added cbuddies and
1091	  new_arrivals and removed buddies.
1092	* chat_rename_user in GaimConversationUiOps, added new_alias
1093	* gaim_conv_chat_cb_new(), added alias. (pass NULL to get the same
1094	  behavior as before).
1095	* GaimConversation.log became GList * GaimConversation.logs, so that a
1096	  conversation can have multiple logs at once
1097	* gaim_conv_chat_add_user, added extra_msgs
1098	* gaim_notify_userinfo, removed primary and secondary parameters
1099	* GaimNotifyUiOps.notify_userinfo: removed title, primary, and
1100	  secondary parameters
1101	* Idle timers are now added and removed in gtkidle.c in response
1102	  to the signed-on and signed-off signals
1103	* GaimXfer->ops.read, GaimXfer->ops.write, gaim_xfer_set_read_fnc(),
1104	  gaim_xfer_set_write_fnc(), gaim_xfer_read(), gaim_xfer_write():
1105	  Changed ssize_t to gssize
1106	* serv_got_im, serv_got_chat_in, serv_send_im and serv_chat_send all use
1107	  GaimMessageFlags instead of GaimConvImFlags / GaimConvChatFlags
1108	* All core<->prpl message passing now uses html.  This was previously true
1109	  for receiving messages, it's now also true for sending them.  prpls that
1110	  don't support html need to gaim_unescape_html() the message.
1111	* Notify API: GCallback -> GaimNotifyCloseCallback,
1112	              void *user_data -> gpointer user_data
1113	* gaim_notify_searchresults_get_rows_count,
1114	  gaim_notify_searchresults_get_columns_count: return type now guint
1115	* gaim_account_notify_added: No longer checks if there is a
1116	  GaimBuddy for the added user, that's left up to the prpls.  See the
1117	  documentation for this function and gaim_account_request_add.
1118	* gaim_accounts_reorder: new_index is now a gint instead of a size_t
1119	* displaying-message signals: displaying-[im|chat]-msg and
1120	  displayed-[im|chat]-msg signals are emitted for all messages
1121	  (ie, for received messages, sent messages, system messages, error
1122	  messages etc.), and the signals now have
1123	  gaim_gtk_conversations_get_handle() for their handle.
1124	* GAIM_NOTIFY_BUTTON_ADD_BUDDY to GAIM_NOTIFY_BUTTON_ADD
1125	* conversation-switched: This signal has been moved from conversation to
1126	                         the UI and the signal-handlers only receive the
1127	                         conversation that has been switched to.
1128	* GaimPluginProtocolInfo: Added offline_message
1129	* GaimPluginProtocolInfo: Added whiteboard_prpl_ops
1130	* GaimPluginProtocolInfo: Added media_prpl_ops
1131	* GaimPluginProtocolInfo: Added "user_info" argument to tooltip_text,
1132	                          changed the return type to void
1133	* GaimPluginProtocolInfo: Added "full" argument to tooltip_text
1134	* gaim_pounce_new(): Added option argument for pounce options
1135	* gaim_network_listen() and gaim_network_listen_range(): Added
1136	  socket_type parameter to allow creation of UDP listening. Modified
1137	  to be asynchronous with a callback to allow for UPnP operation.
1138	  Returns a data structure that can be used to cancel the listen
1139	  attempt using gaim_network_listen_cancel()
1140	* GaimPrefCallback: val is now a gconstpointer instead of a gpointer
1141	* gtk_imhtml_get_current_format(): the arguments are now set to TRUE or
1142	  FALSE.  Previously they were set to TRUE or left alone.  Also, you
1143	  may now pass NULL if you're not interested in a specific formatting.
1144	* Smiley Themes: Backslashes must be backslash-escaped.
1145	* Plugins: Depedencies are now honored when unloading plugins.
1146	* gaim_markup_extract_info_field(): Added format_cb parameter.
1147	* gaim_markup_extract_info_field(): Changed GString parameter to a GaimNotifyUserInfo paramter.
1148	* gaim_str_to_time(): Added support for parsing the MM/DD/YYYY format.
1149	* gaim_plugin_action_new(): label is now const char *
1150	* gaim_plugin_pref_new_with_name(): name is now const char *
1151	* gaim_plugin_pref_new_with_label(): label is now const char *
1152	* gaim_plugin_pref_new_with_name_and_label(): name and label are
1153	  now const char *
1154	* gaim_plugin_pref_set_name(): name is now const char *
1155	* gaim_plugin_pref_get_name(): return type is now const char *
1156	* gaim_plugin_pref_set_label(): label is now const char *
1157	* gaim_plugin_pref_get_label(): return type is now const char *
1158	* gaim_plugin_pref_add_choice(): label is now const char *
1159	* struct proto_chat_entry: label is now const char *
1160	* struct proto_chat_entry: identifier is now const char *
1161	* All network activity has been updated to use non-blocking sockets.
1162	  This means that plugins must be updated to expect such a socket from
1163	  gaim_proxy_connect() and gaim_network_listen*().
1164	* gaim_proxy_connect(): changed to return NULL on error and a pointer
1165	  to a GaimProxyConnectInfo object which can be used to cancel
1166	  connection attempts using gaim_proxy_connect_cancel().  Also added
1167	  a 'handle' parameter that can be used to cancel the connection
1168	  attempt using gaim_proxy_connect_cancel_with_handle().
1169	* gaim_gethostbyname_async(): Renamed to gaim_dnsquery_a() and
1170	  changed to return a pointer to a data structure that can be
1171	  used to cancel the pending DNS query using gaim_dnsquery_destroy()
1172	* gaim_url_fetch(): Renamed to gaim_util_fetch_url() and changed
1173	  to return a pointer to a data structure that can be used to cancel
1174	  the pending HTTP request using gaim_util_fetch_url_cancel().
1175	  Corresponding callback has changed to accept this data structure
1176	  as its first argument, and to accept an error message as an
1177	  additional final argument.
1178	* gaim_gtk_create_imhtml(): Added sw_ret() parameter
1179	* gaim_account_get_log(): Added create parameter
1180	* GAIM_CMD_P_VERYHIGH is now GAIM_CMD_P_VERY_HIGH
1181	* gtk_imhtml_search_find(): Now wraps around to the top instead of
1182	  clearing the search at the end.
1183	* gaim_gtkxfer_dialog_show: Can now take NULL to show (and possibly
1184	  create) a default gtkxfer dialog.
1185	* CHAT_USERS_BUDDY_COLUMN became CHAT_USERS_WEIGHT_COLUMN, along with
1186	  a change in the values stored in the column.
1187	* gaim_find_buddies() returns a list of all buddies in the account if name
1188	  is NULL.
1189	* gaim_gtk_set_custom_buddy_icon() sets custom icon for a user.
1190	* Hid the definition of _GaimStringref, which already had a warning to
1191	  avoid accessing it directly.
1192	* notify_userinfo() UI op is passed a GaimNotifyUserInfo instead of a char*
1193	  for the user information
1194	* gaim_buddy_icon_get_scale_size() and was changed to ALWAYS scale
1195	  the icon instead of only when icon_spec->scale_rules contains
1196	  GAIM_ICON_SCALE_DISPLAY.  Callers should be changed to check the
1197	  scale_rules before calling this function.
1198	* gaim_gtk_buddy_icon_get_scale_size() was changed to accept an
1199	  additional parameter which is used to determine what kind of
1200	  scaling should be done, if any.
1201	* purple_request_input(), purple_request_choice(),
1202	  purple_request_choice_varg(), purple_request_action(),
1203	  purple_request_action_varg(), purple_request_fields(),
1204	  purple_request_yes_no(), purple_request_ok_cancel(),
1205	  purple_request_accept_cancel(), purple_request_file(), and
1206	  purple_request_folder() was changed to accept account, who, and
1207	  conversation parameters for associating the request with an account, a
1208	  buddy, or a conversation.
1209	* Significant changes to the buddy icon and imgstore APIs.  If you
1210	  were using any of it, it's best to look at the header files or
1211	  Doxygen documentation, but here are some significant changes:
1212	    purple_buddy_icon_new() now takes ownership of ("frees") icon_data
1213	    purple_buddy_icon_set_data(): likewise for data
1214	    purple_buddy_icon_set_for_user(): likewise for data
1215	    purple_buddy_icon_set_for_user() now takes a checksum parameter
1216	    purple_imgstore_add() was renamed to purple_imgstore_add_with_id()
1217	      which takes ownership of data
1218
1219	Removed:
1220	* gaim_gtk_sound_{get,set}_mute() (replaced by the /gaim/gtk/sound/mute
1221	  preference)
1222	* gaim_escape_html(const char *html) (use g_markup_escape_text(html, -1)
1223	  instead)
1224	* gaim_accounts_sync, account changes are now scheduled to be saved
1225	  automatically
1226	* gaim_connection_connect
1227	* gaim_connection_disconnect
1228	* gaim_connection_register
1229	* gaim_accounts_auto_login
1230	* gaim_find_conversation, use gaim_find_conversation_with_account instead
1231	* gaim_chat_get_display_name
1232	* gaim_conversation_set_history, gaim_conversation_get_history, and
1233	  GaimConversation->history.  Use gtk_imhtml_get_markup instead.
1234	* set_gaim_user_dir to gaim_util_set_user_dir
1235	* create_prpl_icon to gaim_gtk_create_prpl_icon
1236	* Window flashing support in the core: gaim_conv_window_flash, and flash UI
1237	  operation for conversations.  Use signal "received-im-msg" or similar.
1238	* All warning stuff from the core.
1239	* gaim_gtkconv_get_dest_tab_at_xy(), instead use gaim_gtkconv_get_tab_at_xy()
1240	* chat_add_user from GaimConversationUiOps: only chat_add_users is used
1241	* chat_remove_user from GaimConversationUiOps: only chat_remove_users is used
1242	* uc from the GaimBuddy struct
1243	* gaim_sound_get_handle()
1244	* gaim_debug_vargs()
1245	* serv_add_buddy(); use gaim_account_add_buddy() instead
1246	* serv_add_buddies(); use gaim_account_add_buddies() instead
1247	* serv_change_passwd(); use gaim_account_change_password() instead
1248	* serv_close()
1249	* serv_finish_login()
1250	* serv_login()
1251	* serv_remove_buddy(); use gaim_account_remove_buddy() instead
1252	* serv_remove_buddies(); use gaim_account_remove_buddies() instead
1253	* serv_rename_group()
1254	* serv_set_buddyicon(): use gaim_account_set_buddy_icon() instead
1255	* serv_touch_idle(): use gaim_gtk_check_idle() instead
1256	* GaimGtkImPane->a_virgin
1257	* gaim_str_strip_cr(); use gaim_str_strip_char(str, '\r') instead
1258	* gaim_find_buddys_group renamed to gaim_buddy_get_group
1259	* gaim_gtkpounce_menu_build()
1260	* gaim_gtkpounce_dialog_show()
1261	* GaimGtkBuddyList->bpmenu
1262	* GaimConvImFlags and GaimConvChatFlags; use GaimMessageFlags instead
1263	* cb and user_data from the ops in GaimNotifyUiOps: This is now handled
1264	  by the notify API in the core.
1265	* GaimConversationUiOps.updated: use the conversation-updated signal
1266	* GAIM_SUBTYPE_CONV_WINDOW: windows are now only represented in the UI,
1267	  so GAIM_TYPE_BOXED is used for the signal types
1268	* gaim_gtk_privacy_is_showable(): We do fallback privacy in the core
1269	  now, so this would always be TRUE now.
1270	* GaimBlistNodeAction: See GaimMenuAction
1271	* gaim_blist_node_action_new(); use gaim_menu_action_new() instead
1272	* gaim_date()
1273	* gaim_date_full(): See gaim_date_format_full()
1274	* gaim_strftime(): See gaim_utf8_strftime()
1275	* GAIM_MESSAGE_COLORIZE
1276	* user_data from gaim_notify_searchresults_new_rows and from
1277	  notify_searchresults in GaimNotifyUiOps.
1278	* gaim_conversation_get_send_history(), and send_history from
1279	  GaimConversation
1280	* Removed ui_ops from GaimBuddyList. Use gaim_blist_get_ui_ops() instead
1281	* GaimGtkConversation: dialogs (dialogs.search moved to GaimGtkWindow)
1282	* gaim_show_xfer_dialog: Use gaim_gtk_xfer_dialog_show(NULL) instead.
1283	* GaimGtkRoomlistDialog: Nothing used it outside of the file it was in.
1284	* gaim_gtk_roomlist_dialog_new: use gaim_gtk_roomlist_show
1285	* gaim_gtk_roomlist_dialog_new_with_account: use gaim_gtk_roomlist_show_with_account
1286	* binreloc functions
1287
1288	Added:
1289	* gaim_prefs_disconnect_by_handle()
1290	* a password field to GaimConnection, which only persists for the
1291	  session (when "remember password" is false, account->password is
1292	  NEVER set) Use gaim_connection_get_password(GaimConnection *gc)
1293	* gaim_log_common_writer, gaim_log_common_lister, gaim_log_common_sizer,
1294	  and gaim_log_get_log_dir to allow log formats that use standard Gaim
1295	  log directory to use Gaim's built-in code for these purposes.
1296	* GaimLogCommonLoggerData struct for a basic logger_data struct to be
1297	  used with "common" logger functions.
1298	* gaim_gtk_blist_node_is_contact_expanded, returns TRUE if the given
1299	  blist node is a buddy inside an expanded contact, or is itself an
1300	  expanded contact
1301	* GaimLogSet struct, get_log_sets function to GaimLogLogger,
1302	  gaim_log_get_log_sets, gaim_log_set_compare
1303	* gaim_privacy_check(), to check if a given user is allowed to send
1304	  messages to the specified account
1305	* gtk_imhtml_clear_formatting()
1306	* gtk_imhtml_delete to clear out part of a imhtml buffer
1307	* gtk_imhtml_get_protocol_name()
1308	* gaim_buddy_icons_get_full_path(), to get the full path of a buddy
1309	  icon setting
1310	* CHAT_USERS_ALIAS_COLUMN, CHAT_USERS_COLOR_COLUMN,
1311	  CHAT_USERS_BUDDY_COLUMN to the list of columns for the chat
1312	  user list
1313	* gaim_account_add_buddy()
1314	* gaim_account_add_buddies()
1315	* gaim_account_remove_buddy()
1316	* gaim_account_remove_buddies()
1317	* gaim_account_change_password()
1318	* gaim_account_supports_offline_message()
1319	* gaim_conversation_close_logs(), to force a conversation's log(s) to
1320	  be closed.  New logs will be opened as necessary.
1321	* gaim_got_protocol_handler_uri()
1322	* gaim_plugin_get_id()
1323	* gaim_plugin_get_name()
1324	* gaim_plugin_get_version()
1325	* gaim_plugin_get_summary()
1326	* gaim_plugin_get_description()
1327	* gaim_plugin_get_author()
1328	* gaim_plugin_get_homepage()
1329	* gaim_gtkconv_switch_active_conversation(GaimConversation *)
1330	* gaim_str_strip_char() to strip a given character from
1331	  a given string
1332	* gaim_util_chrreplace() to replace a given character with a
1333	  different character
1334	* gaim_gtk_blist_toggle_visibility() to intelligently toggle the
1335	  visiblity of the buddy list
1336	* gaim_gtk_blist_visibility_manager_add() to indicate the addition of a
1337	  visibility manager - see the docs for more information
1338	* gaim_gtk_blist_visibility_manager_remove() to indicate the removal of
1339	  a visibility manager - see the docs for more information
1340	* gaim_gtk_conversations_find_unseen_list() to get a list of conversations
1341	  with an "unseen" state >= to the specified state and other criteria
1342	* gaim_gtk_conversations_fill_menu() fill a menu from list of conversations
1343	* gaim_gtk_create_prpl_icon()
1344	* gaim_gtk_create_prpl_icon_with_status()
1345	* gaim_gtk_pounces_manager_show()
1346	* gaim_gtk_pounces_manager_hide()
1347	* gaim_gtk_pounce_editor_show()
1348	* GAIM_POUNCE_MESSAGE_RECEIVED
1349	* GaimPounceOption
1350	* gaim_pounce_set_options()
1351	* gaim_pounce_set_options()
1352	* GAIM_STOCK_CONNECT, GAIM_STOCK_DISCONNECT
1353	* GAIM_STOCK_PLUGIN
1354	* gaim_account_request_add: Notifies the user that they were added to
1355	                            someone's buddy list, and offers them the choice
1356	                            of adding that person to their buddy list.
1357	* gaim_blist_alias_contact()
1358	* gaim_cipher_http_digest_calculate_session_key()
1359	* gaim_cipher_http_digest_calculate_response()
1360	* gaim_notify_searchresults_labeled()
1361	* GAIM_NOTIFY_BUTTON_LABELED, GAIM_NOTIFY_BUTTON_INFO,
1362	  GAIM_NOTIFY_BUTTON_IM, GAIM_NOTIFY_BUTTON_JOIN,
1363	  GAIM_NOTIFY_BUTTON_INVITE
1364	* stock buttons GAIM_STOCK_IM, GAIM_STOCK_INFO
1365	* gaim_conversation_present()
1366	* GaimConversationUiOps->present(GaimConversation *)
1367	* GaimPlugin.unloadable
1368	* gaim_plugin_is_unloadable()
1369	* GAIM_PLUGIN_PREF_STRING_FORMAT
1370	* gaim_plugin_pref_get_format_type()
1371	* gaim_plugin_pref_set_format_type()
1372	* GaimStringFormatType
1373	* gaim_log_get_handle()
1374	* gaim_log_uninit()
1375	* GAIM_SUBTYPE_LOG
1376	* gaim_marshal_POINTER__POINTER_POINTER
1377	* gaim_utf8_ncr_encode()
1378	* gaim_gtk_log_init()
1379	* gaim_gtk_log_get_handle()
1380	* gaim_gtk_log_uninit()
1381	* gaim_util_fetch_url_request()
1382	* GaimMenuAction
1383	* gaim_menu_action_new()
1384	* gaim_menu_action_free()
1385	* GaimInfoFieldFormatCallback
1386	* gaim_utf8_strftime()
1387	* gaim_date_format_short()
1388	* gaim_date_format_long()
1389	* gaim_date_format_full()
1390	* gaim_time_format()
1391	* gaim_plugin_action_free()
1392	* GaimRequestType: Added GAIM_REQUEST_FOLDER
1393	* GaimRequestUiOps: Added request_folder
1394	* gaim_request_folder()
1395	* gaim_gtk_setup_screenname_autocomplete()
1396	* gaim_gtk_set_cursor()
1397	* gaim_gtk_clear_cursor()
1398	* GAIM_MESSAGE_ACTIVE_ONLY
1399	* gaim_proxy_get_setup()
1400	* GaimNotifySearchResultsCallback: Added user_data.
1401	* gaim_notify_searchresults: Added user_data.
1402	* gaim_network_listen_cancel(): Can be used to cancel a previous
1403	  call to gaim_network_listen() or gaim_network_listen_range()
1404	* gaim_proxy_connect_cancel(): Can be used to cancel a pending
1405	  gaim_proxy_connect() request
1406	* gaim_proxy_connect_cancel_with_handle(): Can be used to cancel
1407	  a previous gaim_proxy_connect() request using a specified handle
1408	* gaim_dnsquery_destroy(): Can be used to cancel a pending DNS
1409	  query.
1410	* gaim_util_fetch_url_cancel(): Can be used to cancel a pending
1411	  call to gaim_util_fetch_url() or gaim_util_fetch_url_request().
1412	* GaimGtkWindow: dialogs.search (previously in GaimGtkConversation)
1413	* gaim_buddy_get_server_alias()
1414	* gaim_conv_send_confirm()
1415	* GaimConversationUiOps.send_confirm
1416	* gaim_gtk_roomlist_dialog_show_with_account
1417	* gaim_gtk_tree_view_search_equal_func to be used with
1418	  gtk_tree_view_set_search_equal_func
1419	* gaim_xfer_set_bytes_sent().  Sets the offset in the file to
1420	  read from or write to.
1421	* gaim_privacy_deny and gaim_privacy_allow
1422	* gaim_gtk_blist_set_headline
1423	* gaim_gtk_set_urgent
1424	* GtkGaimScrollBook and its functions.
1425	* purple_markup_unescape_entity()
1426	* purple_markup_get_css_property()
1427	* purple_group_get_name()
1428
1429	Signals - Changed:  (See the Doxygen docs for details on all signals.)
1430	* Signal propagation now stops after a handler returns a non-NULL value.
1431	  This value is now returned.  Previously, all registered handlers were
1432	  called and the value from the last handler was used.
1433	* "buddy-typing" and "buddy-typing-stopped": replaced the GaimConversation*
1434	  with GaimAccount*, const char *name.  Also, the signal is now emitted
1435	  regardless of whether a conversation exists and regardless of whether
1436	  the user is on the buddy list.
1437	* "chat-buddy-joined": added the new_arrival argument
1438	* "chat-invited" handlers can now return a value to control what happens
1439	  to the invite (accept, reject, prompt the user).
1440	* "chat-left": Emitted *after* setting chat->left to TRUE.
1441	* "drawing-tooltip": the second argument is now a GString* instead of
1442	  a char**
1443	* "drawing-tooltip": added the "full" argument
1444	* "received-im-msg" and "received-chat-msg" to match, both now pass a
1445	  conversation pointer and flags
1446	* "receiving-im-msg" and "receving-chat-msg" to match, both now pass a
1447	  conversation pointer and a pointer to the flags.
1448	* "writing-im-msg", "wrote-im-msg", "writing-chat-msg", "wrote-chat-msg":
1449	  Now emitted from a difference place in the message handling code.
1450	  The arguments also changed.
1451	* "displaying-im-msg", "displayed-im-msg", "displaying-chat-msg",
1452	  "displayed-chat-msg": Added "who" argument, which changes the order
1453	  of the existing arguments.
1454
1455	Signals - Added:  (See the Doxygen docs for details on all signals.)
1456	* "account-disabled"
1457	* "account-status-changed"
1458	* "account-alias-changed"
1459	* "cipher-added"
1460	* "cipher-removed"
1461	* "conversation-dragging"
1462	* "dbus-method-called"
1463	* "dbus-introspect"
1464	* "file-recv-accept"
1465	* "file-recv-start"
1466	* "file-recv-cancel"
1467	* "file-recv-complete"
1468	* "file-recv-request"
1469	* "file-send-accept"
1470	* "file-send-start"
1471	* "file-send-cancel"
1472	* "file-send-complete"
1473	* "buddy-added"
1474	* "buddy-removed"
1475	* "blist-node-aliased"
1476	* "buddy-status-changed"
1477	* "buddy-idle-changed": A buddy's idle status changed.
1478	* "buddy-icon-changed"
1479	* "buddy-got-login-time": The login time for a buddy is now known
1480	* "displaying-userinfo"
1481	* "gtkblist-hiding"
1482	* "gtkblist-unhiding"
1483	* "log-displaying"
1484	* "network-configuration-changed"
1485	* "savedstatus-changed"
1486	* "sendto-extended-menu"
1487	* "uri-handler"
1488
1489	Signals - Removed:
1490	* "account-away": replaced by account-status-changed
1491	* "account-warned"
1492	* "buddy-away": replaced by buddy-status-changed
1493	* "buddy-back": replaced by buddy-status-changed
1494	* "buddy-idle": replaced by buddy-idle-changed
1495	* "buddy-unidle": replaced by buddy-idle-changed
1496	* "buddy-icon-cached": replaced by buddy-icon-changed
1497	* "conversation-drag-end": replaced by conversation-dragging
1498	* "conversation-switching"
1499
1500version 1.5.0 (8/11/2005):
1501	* Added: gaim_xfer_conversation_write
1502	  Writes a messages to a conversation window with the use
1503	  of the associated file transfer.
1504
1505version 1.4.0 (7/7/2005):
1506	* Added: gaim_buddy_icon_uncache()
1507	  Deletes a cached buddy icon for a specified buddy
1508	* Added: gaim_buddy_icon_get_type
1509	  Attempts to determine the type of a given buddy icon.
1510	* Added: buddy-icon-cached signal
1511	  Emitted when a new buddy icon is cached.
1512
1513version 1.3.1 (6/9/2005):
1514	* No changes
1515
1516version 1.3.0 (5/10/2005):
1517	* Added: gaim_blist_schedule_save()
1518	  This should be used instead of gaim_blist_sync when you
1519	  want the blist.xml file to be written to disk.  There
1520	  should not be many occasions when you want to do this,
1521	  as the functions in the blist API that modify the buddy
1522	  list will normally call it for you.
1523	* Added: OPT_PROTO_NO_NORMALIZE_CONV
1524	  Tells the conversation API to not normalize screen names
1525	  in conversations.  This is used by the Jabber PRPL.
1526
1527version 1.2.1 (4/3/2005):
1528	* No changes
1529
1530version 1.2.0 (3/17/2005):
1531	* You can use gaim_signal_connect_priority() and
1532	  gaim_signal_connect_priority_vargs() to connect to
1533	  Gaim signals with a given priority (Will Gorman)
1534	* Added: gaim_conversation_set_features
1535		 gaim_conversation_get_features
1536	  These allow plugins (notable prpls) to change the
1537	  formatting capabilities of an existing conversation.
1538	  This comes with a new "features" field in
1539	  GaimConversation (Christopher O'Brien)
1540	* Added: GAIM_CONNECTION_NO_IMAGES to GaimConectionFlags
1541	   (Christopher O'Brien)
1542	* Added: GAIM_CBFLAGS_TYPING to GaimConvChatBuddyFlags
1543	   (Christopher O'Brien)
1544	* Added: gaim_account_request_add which takes the same arguments as
1545	*  gaim_account_notify_added but always asks the user if they want to add
1546	*  the buddy to the buddy list
1547	* Added: An accompanying request_add GaimAccountUiOp
1548
1549version 1.1.4 (2/24/2005):
1550	* No changes
1551
1552version 1.1.3 (2/17/2005):
1553	* No changes
1554
1555version 1.1.2 (1/20/2005):
1556	* No changes
1557
1558version 1.1.1 (12/28/2004):
1559	* No changes
1560
1561version 1.1.0 (12/02/2004):
1562	* Added: gaim_utf8_salvage
1563	* Added: binary relocation support in prefix.h
1564	         WARNING: If your plugin uses anything inside the
1565		 #ifdef ENABLE_BINRELOC from prefix.h, it won't be
1566		 loadable on a copy of Gaim compiled without binreloc
1567		 support. In particular, watch out for the autoconf-like
1568		 macros, and accidently including them through internal.h,
1569		 which you probably shouldn't be including anyway.
1570
1571version 1.0.0 (09/17/2004):
1572	* Added: get_chat_name to the GaimPluginProtocolInfo struct
1573	* Changed: gaim_blist_update_buddy_presence(), presence changed to
1574	           type gboolean
1575	* Changed: the versioning scheme, and all the plugin structs
1576
1577version 0.82 (08/26/2004):
1578	Gaim API:
1579	* Removed: gaim_gtk_get_dispstyle(), gaim_gtk_change_text()
1580	* Removed: multi.h
1581	* Renamed: ui.h to gtkdialogs.h
1582	* Renamed: gtkinternal.h to gtkgaim.h
1583	* Renamed: show_info_dialog to gaim_gtkdialogs_info
1584	* Renamed: show_log_dialog to gaim_gtkdialogs_log
1585	* Renamed: show_warn_dialog to gaim_gtkdialogs_warn
1586	* Renamed: show_im_dialog to gaim_gtkdialogs_im
1587	* Renamed: gaim_gtkdialogs_new_im to gaim_gtkdialogs_im_with_user
1588	* Renamed: destroy_all_dialogs to gaim_gtkdialogs_destroy_all
1589	* Renamed: alias_dialog_bud to gaim_gtkdialogs_alias_buddy
1590	* Renamed: alias_dialog_contact to gaim_gtkdialogs_alias_contact
1591	* Renamed: alias_dialog_blist_chat to gaim_gtkdialogs_alias_chat
1592	* Renamed: show_confirm_del to gaim_gtkdialogs_remove_buddy
1593	* Renamed: show_confirm_del_group to gaim_gtkdialogs_remove_group
1594	* Renamed: show_confirm_del_blist_chat to gaim_gtkdialogs_remove_chat
1595	* Renamed: show_confirm_del_contact to gaim_gtkdialogs_remove_contact
1596	* Renamed: show_about to gaim_gtkdialogs_about
1597	* Added: gaim_notify_userinfo() and the associated notify_userinfo() UI op
1598	         which pass account and contact information associated with the
1599	         userinfo
1600
1601	Buddy List API:
1602	* Changed: gaim_blist_request_add_chat(), added name parameter
1603	* Added: gaim_contact_on_account()
1604	* Added: flags parameter to the GaimBlistNode struct
1605
1606	Conversation API:
1607	* Added: gaim_gtkconv_button_new()
1608
1609	Protocol Plugin API: v7
1610	* Added: chat_info_defaults to the GaimPluginProtocolInfo struct
1611
1612	Signals:
1613	* Added: conversation-updated for any update to the data associated
1614	  with the conversation (topic, icon, adding to buddy list, etc.)
1615
1616	Conversation API:
1617	* Changed: gaim_conv_chat_add_user() (added new_arrival parameter)
1618
1619version 0.81 (08/05/2004):
1620	Commands API:
1621	* Most functions now have a void *data argument.
1622
1623	Blist API:
1624	* Added: gaim_buddy_get_contact_alias
1625	* Renamed: gaim_get_buddy_alias to gaim_buddy_get_alias
1626	* Renamed: gaim_get_buddy_alias_only to gaim_buddy_get_alias_only
1627
1628	Conversation API:
1629	* Changed: gaim_conv_chat_add_user(), added flags parameter
1630	* Changed: gaim_conv_chat_add_users(), added GList of flags parameter
1631	* Changed: gaim_conv_chat_get_users(), now returns a GList of
1632	  GaimConvChatBuddy's
1633	* Changed: gaim_conv_chat_set_users() now expects a GList of
1634	  GaimConvChatBuddy's
1635	* Added: gaim_conv_chat_set_user_flags()
1636	* Added: gaim_conv_chat_get_user_flags()
1637	* Added: gaim_conv_chat_find_user()
1638	* Added: gaim_conv_chat_cb_new()
1639	* Added: gaim_conv_chat_cb_find()
1640	* Added: gaim_conv_chat_cb_destroy()
1641	* Added: gaim_conv_chat_cb_get_name()
1642
1643	Conversation UI ops:
1644	* Added: chat_update_user()
1645
1646	Signals:
1647	* Changed: chat-buddy-joining & chat-buddy-joined now include the user's flags
1648	* Changed: chat-buddy-joining & chat-buddy-leaving are now booleans, return
1649	  TRUE if you don't want the join/leave to be displayed in the UI.
1650	* Added: chat-buddy-flags for when user's flags change
1651	  gaim_marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT (required for the new
1652	  chat-buddy-flags signal)
1653	* Added: account-modified for when account settings have been changed.
1654
1655version 0.80 (07/15/2004):
1656	Gaim API:
1657	* Removed: PRPL numbers : gaim_account_set_protocol(),
1658	  gaim_account_get_protocol(), gaim_accounts_find_with_prpl_num,
1659	  gaim_prpl_num_to_id(), gaim_prpl_id_to_num(), GaimProtocol
1660
1661	Protocol Plugin API: v6
1662	* Added: can_receive_file & send_file to the GaimPluginProtocolInfo struct
1663
1664	Signals:
1665	* Changed "chat-invited" to also include the components hash table so
1666	  plugins can use serv_join_chat when the signal is emitted.
1667	* Added "chat-topic-changed" signal plugins know when a topic is changed.
1668
1669version 0.79 (06/24/2004):
1670	Gaim API:
1671	* gaim_url_parse() now takes two additional parameters, which are used
1672	  for returning the username and password from the URL, if they exist.
1673	* Added: has_focus UI op to GaimConversationUiOps and
1674	  GaimConvWindowUiOps.
1675	* Added: gaim_conversation_has_focus() and gaim_conv_window_has_focus().
1676	* Removed: gaim_blist_save()
1677
1678	Protocol Plugin API: v5
1679	* Changed: add_buddy, add_buddies, remove_buddy, remove_buddies,
1680	  rename_group and remove_group to take GaimBuddy's and
1681	  GaimGroup's consistently.
1682	* Removed: OPT_PROTO_BUDDY_ICON (replaced by icon_spec)
1683	* Added: icon_spec to the GaimPluginProtocolInfo struct
1684
1685version 0.78 (05/30/2004):
1686	Plugin API: v4
1687	* Added: actions - for plugins to add to the new Plugin Actions menu
1688
1689	Loader Plugin API: v2 (no changes)
1690
1691	Protocol Plugin API: v4
1692	* Removed: set_dir, get_dir and dir_search (not used, AIM-centric)
1693	* Removed: actions (replaced by generic plugin actions)
1694
1695	Perl Plugin API: v2 (no changes)
1696	TCL Plugin API: (no changes)
1697
1698	Signals:
1699	* Added: "blist-node-extended-menu" for extending Buddy, Chat and
1700			 Group right-click menus
1701	* Added: "drawing-tooltip" for plugins to allow plugins to change text
1702			 appearing in tooltips
1703	* Added: "gtkblist-created"
1704	* Added: "receiving-im-msg" and "receiving-chat-msg" (these behave
1705			  exactly like received-*-msg used to)
1706	* Added: "buddy-idle-updated" signal, for when the idle time changes.
1707	* Changed: "received-im-msg" and "received-chat-msg" no longer pass
1708			   pointers to who, message and flags, and are now void.
1709	* Removed: "drawing-menu" - it was UI sepecific and
1710			   "blist-node-extended-menu" is superior
1711
1712version 0.77 (04/22/2004):
1713	Loader & Protocol Plugins independantly versioned
1714	Plugin loading now checks versioning on plugins (Standard, Loader &
1715	Protocol)
1716	new GAIM_{PLUGIN,PRPL,LOADER}_API_VERSION constants
1717
1718	Plugin API: v3
1719	* Added: prefs_info for UI independant plugin prefs
1720
1721	Loader Plugin API: v2
1722	* Added: api_version at top of GaimPluginLoaderInfo struct
1723
1724	Protocol Plugin API: v2
1725	* Added: api_version at top of GaimPluginProtocolInfo struct
1726	* Added: chat_menu for protocol specific extensions to the chat menu
1727	* Removed: get_away "Nada used it. Pink elephants on parade."
1728	* Removed: protocol_prefs (replaced by generic plugin prefs_info)
1729
1730	Perl Plugin API: v2 (no changes)
1731	TCL API: (no changes)
1732
1733	Signals:
1734	* Added: "conversation-drag-ended"
1735
1736version 0.76 (04/01/2004):
1737	Plugin API: v2
1738	Perl Plugin API: v2
1739	Loader Plugin API: (not versioned)
1740	Protocol Plugin API: (not versioned)
1741	* Added: protocol_prefs for protocol specific preferences
1742	* Added: reject_chat so protocols can act on chat invite rejection
1743
1744	TCL Plugin API: (not versioned)
1745	* Changes to plugin registration to show descriptions
1746
1747