pidgin/pidgin
Clone
Summary
Browse
Changes
Graph
Change the default irc server to libera.chat
release-2.x.y
2021-05-27, Gary Kramlich
c00b451a1dd8
Change the default irc server to libera.chat
This seems to make the most sense for users right now as many many channels have migrated away from freenode with many of them moving to libera.
Testing Done:
Compile only.
Reviewed at https://reviews.imfreedom.org/r/675/
Pidgin
and
Finch
:
The
Pimpin
' Penguin IM Clients That'
re
Good
for
the
Soul
version
2.14
.
5
:
*
No
changes
version
2.14
.
4
:
*
No
changes
version
2.14
.
3
:
*
No
changes
version
2.14
.
2
:
*
No
changes
version
2.14
.
1
:
*
No
changes
version
2.14
.
0
:
libpurple
:
Added
:
*
purple_media_manager_enumerate_elements
*
purple_request_screenshare_media
*
purple_media_set_require_encryption
version
2.13
.
0
:
libpurple
:
Added
:
*
purple_uri_escape_for_open
version
2.12
.
0
:
libpurple
:
Added
:
*
PURPLE_MESSAGE_REMOTE_SEND
in
PurpleMessageFlags
,
to
specify
messages
like
_SEND
that
were
sent
from
another
location
.
*
purple_certificate_get_fingerprint_sha256
*
purple_certificate_compare_pubkeys
*
PurpleCertificateScheme
.
get_fingerprint_sha256
*
PurpleCertificateScheme
.
compare_pubkeys
*
PURPLE_CERTIFICATE_SCHEME_HAS_FUNC
version
2.11
.
0
:
libpurple
:
Added
:
*
account
-
status
-
changing
signal
(
account
signals
)
*
buddy
-
removed
-
from
-
group
signal
(
blist
signals
)
*
PurpleCommandsUiOps
,
to
allow
the
UI
to
override
the
built
-
in
handling
of
commands
.
*
PurplePrefsUiOps
,
to
allow
the
UI
to
override
the
way
global
preferences
are
stored
.
*
PurpleAccountPrefsUiOps
,
to
allow
the
UI
to
handle
storage
of
account
preferences
.
*
purple_media_set_encryption_parameters
*
purple_media_set_decryption_parameters
*
purple_xfer_write_file
*
purple_xfer_read_file
*
purple_media_set_send_rtcp_mux
*
purple_media_backend_set_send_rtcp_mux
version
2.10
.
12
:
*
No
changes
version
2.10
.
11
:
*
No
changes
version
2.10
.
10
:
*
No
changes
version
2.10
.
9
:
*
No
changes
version
2.10
.
8
:
*
No
changes
version
2.10
.
7
:
*
No
changes
version
2.10
.
6
:
*
No
changes
version
2.10
.
5
:
*
No
changes
version
2.10
.
4
:
*
No
changes
version
2.10
.
3
:
*
No
changes
version
2.10
.
2
:
*
No
changes
version
2.10
.
1
:
*
No
changes
version
2.10
.
0
:
libpurple
:
Added
:
*
purple_srv_txt_query_destroy
(
accidentally
left
out
of
2.8
.
0
)
Pidgin
:
Added
:
*
pidgin_dialogs_plugins_info
(
should
not
be
used
by
anything
but
Pidgin
)
version
2.9
.
0
:
libpurple
:
Added
:
*
Hash
table
to
PurpleConvChat
struct
,
used
to
make
purple_conv_chat_cb_find
O
(
1
)
.
*
ui_data
pointer
to
PurpleConvChatBuddy
struct
.
*
deleting
-
chat
-
buddy
signal
(
conversation
signals
)
*
pidgin_pixbuf_from_data
*
pidgin_pixbuf_anim_from_data
*
pidgin_pixbuf_new_from_file
*
pidgin_pixbuf_new_from_file_at_size
*
pidgin_pixbuf_new_from_file_at_scale
Deprecated
:
*
purple_conv_chat_set_users
*
PurpleConvChat
in_room
list
version
2.8
.
0
(
06
/
07
/
2011
):
libpurple
:
Added
:
*
account
-
authorization
-
requested
-
with
-
message
signal
(
Stefan
Ott
)
(
#8690)
*
cleared
-
message
-
history
signal
(
conversation
signals
)
*
purple_account_add_buddy_with_invite
*
purple_account_add_buddies_with_invite
*
purple_dnsquery_a_account
*
purple_notify_user_info_add_pair_plaintext
*
purple_media_get_active_local_candidates
*
purple_media_get_active_remote_candidates
*
purple_media_manager_get_video_caps
(
Jakub
Adam
)
(
#13095)
*
purple_media_manager_set_video_caps
(
Jakub
Adam
)
(
#13095)
*
purple_pounce_destroy_all_by_buddy
(
Kartik
Mohta
)
(
#1131)
*
purple_proxy_connect_socks5_account
*
purple_srv_resolve_account
*
purple_txt_resolve_account
*
Added
add_buddy_with_invite
to
PurplePluginProtocolInfo
*
Added
add_buddies_with_invite
to
PurplePluginProtocolInfo
*
Added
PurpleSrvTxtQueryUiOps
which
allow
UIs
to
specify
their
own
mechanisms
to
resolve
SRV
and
/
or
TXT
queries
.
It
works
similar
to
PurpleDnsQueryUiOps
*
purple_marshal_BOOLEAN__POINTER_BOOLEAN
(
kawaii
.
neko
)
(
#12599)
Deprecated
:
*
purple_account_add_buddy
*
purple_account_add_buddies_with_invite
*
purple_dnsquery_a
*
purple_proxy_connect_socks5
*
purple_srv_resolve
*
purple_txt_resolve
*
add_buddy
from
PurplePluginProtocolInfo
struct
*
add_buddies
from
PurplePluginProtocolInfo
struct
Pidgin
:
Added
:
*
pidgin_make_scrollable
(
Gabriel
Schulhof
)
(
#10599)
*
chat
-
nick
-
clicked
signal
(
kawaii
.
neko
)
(
#12599)
*
chat
-
nick
-
autocomplete
signal
(
kawaii
.
neko
)
(
#12599)
version
2.7
.
11
(
03
/
10
/
2011
):
*
libpurple
:
Added
:
*
Four
entries
in
the
GHashTable
passed
when
joining
an
XMPP
chat
room
which
allow
the
UI
to
request
a
limited
amount
of
history
.
See
XEP
-
0045
7.1
.
16
for
details
;
the
entries
are
named
history_maxchars
,
history_maxstanzas
,
history_seconds
,
and
history_since
.
history_since
must
be
interpretable
by
purple_str_to_time
,
and
the
prpl
takes
care
of
formatting
the
time
properly
.
*
Perl
:
Added
:
*
Purple
::
find_conversation_with_account
*
Purple
::
Conversation
::
Chat
::
send_with_flags
*
Purple
::
Conversation
::
IM
::
send_with_flags
version
2.7
.
10
(
02
/
06
/
2011
):
*
No
changes
version
2.7
.
9
(
12
/
26
/
2010
):
*
No
changes
version
2.7
.
8
(
12
/
19
/
2010
):
*
No
changes
version
2.7
.
7
(
11
/
23
/
2010
):
*
No
changes
version
2.7
.
6
(
11
/
21
/
2010
):
*
No
changes
version
2.7
.
5
(
10
/
31
/
2010
):
*
No
changes
version
2.7
.
4
(
10
/
20
/
2010
):
Perl
:
Added
:
*
Purple
::
BuddyList
::
Chat
::
get_components
Changed
:
*
Purple
::
BuddyList
::
Chat
::
new
now
works
properly
.
Thanks
to
Rafael
in
devel
@
conference
.
pidgin
.
im
for
reporting
and
testing
.
version
2.7
.
3
(
08
/
10
/
2010
):
libpurple
:
Fixed
:
*
purple_account_
[
gs
]
et_public_alias
no
longer
crash
when
called
for
a
protocol
that
doesn
't support the underlying
calls
and
the
caller
does
not
specify
a
failure
callback
.
Perl
:
Added
:
*
Exposed
log
-
subsystem
signals
.
Pidgin
:
Changed
:
*
Changing
the
visibility
(
gtk_widget_hide
/
show
)
of
the
widgets
in
the
GtkIMHtmlToolbar
should
now
affect
the
visibility
of
the
entries
in
the
'lean'
view
(
the
default
toolbar
view
)
.
Deprecated
:
*
pidgin_check_if_dir
libgnt
:
Added
:
*
gnt_tree_row_get_key
,
gnt_tree_row_get_next
,
gnt_tree_row_get_prev
,
gnt_tree_row_get_child
and
gnt_tree_row_get_parent
.
version
2.7
.
2
(
07
/
21
/
2010
):
*
No
changes
version
2.7
.
1
(
05
/
29
/
2010
):
*
No
changes
version
2.7
.
0
(
05
/
12
/
2010
):
libpurple
:
Added
:
*
Account
signals
(
see
account
-
signals
.
dox
);
useful
for
D
-
Bus
*
account
-
signed
-
on
*
account
-
signed
-
off
*
account
-
connection
-
error
*
purple_account_get_name_for_display
*
purple_account_get_privacy_type
*
purple_account_get_public_alias
*
purple_account_set_privacy_type
*
purple_account_set_public_alias
*
buddy
-
caps
-
changed
blist
signal
*
Added
media_caps
to
the
PurpleBuddy
struct
*
purple_buddy_get_media_caps
*
purple_buddy_set_media_caps
*
purple_certificates_import
for
importing
multiple
certificates
from
a
single
file
(
and
corresponding
import_certificates
member
of
PurpleCertificateScheme
struct
)
*
autojoin
connection
signal
*
purple_contact_get_group
*
sent
-
attention
conversation
signal
*
got
-
attention
conversation
signal
*
ui
-
caps
-
changed
media
manager
signal
*
purple_media_candidate_copy
*
purple_media_codec_copy
*
purple_media_manager_get_backend_type
*
purple_media_manager_set_backend_type
*
PurpleMood
struct
in
status
.
h
*
purple_network_get_all_local_system_ips
,
which
returns
all
local
IPs
on
the
system
.
On
systems
with
the
getifaddrs
()
function
,
this
will
return
both
IPv4
and
IPv6
addresses
(
excluding
link
-
local
and
loopback
addresses
)
.
On
others
,
it
returns
just
IPv4
addresses
.
*
purple_network_listen_family
and
purple_network_listen_range_family
.
These
will
replace
the
versions
without
_family
in
3.0
.
0
and
allow
the
caller
to
specifically
request
either
an
IPv4
or
IPv6
socket
.
IPv6
is
only
supported
if
the
getaddrinfo
()
function
is
available
at
build
-
time
(
not
the
case
on
Windows
,
currently
)
.
*
purple_prpl_got_media_caps
*
purple_request_action_with_icon
*
purple_request_action_with_icon_varg
*
purple_socket_get_family
*
purple_socket_speaks_ipv4
*
purple_unescape_text
*
purple_uuid_random
*
purple_xfer_get_thumbnail
*
purple_xfer_get_thumbnail_mimetype
*
purple_xfer_set_thumbnail
*
purple_xfer_prepare_thumbnail
Pidgin
:
Added
:
*
pidgin_dialogs_buildinfo
(
should
not
be
used
by
anything
but
Pidgin
)
*
pidgin_dialogs_developers
(
should
not
be
used
by
anything
but
Pidgin
)
*
pidgin_dialogs_translators
(
should
not
be
used
by
anything
but
Pidgin
)
*
gtk_imhtmltoolbar_switch_active_conversation
*
'paste'
signal
for
GtkIMHtml
(
more
in
gtkimhtml
-
signals
.
dox
)
*
'drawing-buddy'
signal
for
gtkblist
(
more
in
gtkblist
-
signals
.
dox
)
version
2.6
.
6
(
02
/
18
/
2010
):
libpurple
:
Changed
:
*
purple_xfer_cancel_local
is
now
called
instead
of
purple_xfer_request_denied
if
an
error
is
found
when
selecting
a
file
to
send
.
Request
denied
is
still
used
when
a
receive
request
is
not
allowed
.
*
xmlnode_from_str
now
properly
handles
parsing
an
attribute
which
contain
"<br>"
,
which
were
previously
transformed
into
a
newline
character
(
libxml2
unescapes
all
entities
except
representations
of
'&'
,
and
libpurple
's purple_unescape_html
converts
"<br>"
to
a
newline
)
.
Perl
:
Changed
:
*
Corrected
the
package
names
for
the
PurpleProxyType
and
PurpleLogReadFlags
enums
to
have
the
correct
number
of
colons
(
from
Purple
::
ProxyType
::::
<
type
>
to
Purple
::
ProxyType
::
<
type
>
and
Purple
::
Log
:
ReadFlags
::::
<
type
>
to
Purple
::
Log
::
ReadFlags
::
<
type
>
)
(
Chris
Foote
)
version
2.6
.
5
(
01
/
08
/
2010
):
No
changes
version
2.6
.
4
(
11
/
29
/
2009
):
No
changes
version
2.6
.
3
(
10
/
16
/
2009
):
No
changes
version
2.6
.
2
(
09
/
05
/
2009
):
Perl
:
Added
:
*
Purple
::
XMLNode
::
get_next
(),
which
returns
the
next
neighbor
tag
of
the
current
node
.
Changed
:
*
Purple
::
XMLNode
::
get_child
()
will
return
the
first
child
node
if
passed
""
or
undef
as
the
name
of
the
node
.
version
2.6
.
1
(
08
/
18
/
2009
):
No
changes
version
2.6
.
0
(
08
/
18
/
2009
):
libpurple
:
Added
:
*
PurpleMedia
and
PurpleMediaManager
API
*
PURPLE_BLIST_NODE
*
PURPLE_GROUP
*
PURPLE_CONTACT
*
PURPLE_BUDDY
*
PURPLE_CHAT
*
Account
signals
(
see
account
-
signals
.
dox
)
*
account
-
actions
-
changed
*
account
-
created
*
account
-
destroying
*
blist
-
node
-
added
and
blist
-
node
-
removed
signals
(
see
blist
-
signals
.
dox
)
*
Three
Blist
UI
ops
used
to
overload
libpurple
's built-in saving
of
the
buddy
list
to
blist
.
xml
.
If
a
UI
implements
these
,
it
probably
wants
to
add
the
buddies
itself
and
not
call
purple_blist_load
.
*
Three
File
Transfer
UI
ops
used
to
overload
libpurple
's use of fread
and
fwrite
for
saving
a
file
locally
.
These
allow
a
UI
to
stream
a
file
through
a
socket
without
buffering
the
file
on
the
local
disk
.
*
Jabber
plugin
signals
(
see
jabber
-
signals
.
dox
)
*
purple_account_remove_setting
*
purple_buddy_destroy
*
purple_buddy_get_protocol_data
*
purple_buddy_set_protocol_data
*
purple_buddy_get_local_buddy_alias
*
purple_blist_get_buddies
*
purple_blist_get_ui_data
*
purple_blist_set_ui_data
*
purple_blist_node_get_ui_data
*
purple_blist_node_set_ui_data
*
purple_certificate_check_signature_chain_with_failing
*
purple_chat_destroy
*
purple_connection_get_protocol_data
*
purple_connection_set_protocol_data
*
purple_contact_destroy
*
purple_conv_chat_invite_user
*
purple_debug_is_unsafe
*
purple_debug_is_verbose
*
purple_debug_set_unsafe
*
purple_debug_set_verbose
*
purple_global_proxy_set_info
*
purple_group_destroy
*
purple_ipv4_address_is_valid
*
purple_ipv6_address_is_valid
*
purple_log_get_activity_score
*
purple_markup_is_rtl
*
purple_markup_escape_text
*
purple_network_convert_idn_to_ascii
*
purple_network_force_online
*
purple_network_set_stun_server
*
purple_network_set_turn_server
*
purple_network_get_stun_ip
*
purple_network_get_turn_ip
*
purple_network_remove_port_mapping
*
purple_plugins_get_search_paths
*
purple_proxy_connect_udp
*
purple_prpl_get_media_caps
*
purple_prpl_got_account_actions
*
purple_prpl_initiate_media
*
purple_request_field_get_group
*
purple_request_field_get_ui_data
*
purple_request_field_set_ui_data
*
purple_ssl_connect_with_ssl_cn
*
purple_strequal
*
purple_utf8_strip_unprintables
*
purple_util_fetch_url_request_len_with_account
*
purple_xfer_prpl_ready
*
purple_xfer_ui_ready
*
xmlnode_from_file
*
xmlnode_get_parent
*
xmlnode_set_attrib_full
*
PURPLE_STATUS_MOOD
as
a
new
PurpleStatusPrimitive
Changed
:
*
xmlnode_remove_attrib
now
removes
all
attributes
with
the
same
name
.
Previously
,
it
would
remove
the
first
one
found
,
which
was
completely
non
-
deterministic
.
If
you
want
to
remove
the
attribute
with
no
namespace
,
then
use
NULL
with
xmlnode_remove_with_namespace
.
*
Plugins
may
now
emit
the
jabber
-
sending
-
xmlnode
signal
in
order
to
send
stanzas
;
this
method
is
preferred
to
the
prpl
send_raw
function
as
other
plugins
listening
to
the
signal
see
them
.
*
The
conversation
-
updated
signal
with
a
PURPLE_CONV_UPDATE_TYPING
update
type
is
emitted
when
receiving
an
IM
.
Previously
,
the
typing
state
was
modified
(
and
the
buddy
-
typing
-
stopped
signal
emitted
),
but
this
signal
was
not
emitted
.
*
Added
a
client_type
field
in
the
get_ui_info
core
UI
op
.
See
core
.
h
for
details
.
*
Added
introspection
of
signals
exposed
via
the
D
-
Bus
API
.
*
purple_find_buddies
is
now
more
efficient
in
the
case
where
it
is
enumerating
all
the
buddies
for
an
account
.
*
purple_find_group
is
now
more
efficient
for
large
numbers
of
groups
.
*
purple_find_conversation_with_account
is
more
efficient
for
large
numbers
of
concurrent
conversations
.
*
All
DNS
routines
support
internationalized
domain
names
(
IDNs
)
when
libpurple
is
compiled
with
GNU
libidn
.
*
status
is
set
before
emitting
signals
in
purple_xfer_set_status
.
*
Creating
multiple
distinct
chats
with
the
same
name
(
i
.
e
.
"MSN Chat"
)
is
deprecated
and
will
be
removed
in
libpurple
3.0
.
0.
*
purple_xfer_start
now
accepts
-
1
as
the
fd
parameter
if
the
protocol
plugin
will
administer
the
transfer
itself
.
0
is
still
accepted
for
backward
compatibility
since
older
versions
of
libpurple
will
not
accept
-
1.
Deprecated
:
*
buddy
-
added
and
buddy
-
removed
blist
signals
*
purple_blist_destroy
*
purple_blist_new
*
purple_buddy_get_local_alias
*
purple_certificate_check_signature_chain
*
purple_ip_address_is_valid
*
purple_notify_user_info_remove_entry
*
purple_set_blist
*
purple_status_type_set_primary_attr
*
purple_status_type_add_attr
*
purple_status_type_add_attrs
*
purple_status_type_add_attrs_vargs
*
purple_status_type_get_primary_attr
*
purple_status_set_attr_boolean
*
purple_status_set_attr_int
*
purple_status_set_attr_string
*
purple_presence_add_status
*
purple_presence_add_list
*
purple_util_fetch_url_request_len
*
xmlnode_set_attrib_with_namespace
*
xmlnode_set_attrib_with_prefix
pidgin
:
Added
:
*
gtk_imhtml_class_register_protocol
*
gtk_imhtml_link_get_url
,
gtk_imhtml_link_get_text_tag
,
gtk_imhtml_link_activate
functions
to
process
GtkIMHtmlLink
objects
from
GtkIMHtml
protocol
callbacks
.
*
gtk_imhtml_set_return_inserts_newline
*
gtk_imhtml_set_populate_primary_clipboard
*
pidgin_blist_set_theme
*
pidgin_blist_get_theme
*
pidgin_prefs_labeled_password
*
pidgin_smiley_editor_set_data
*
pidgin_sound_is_customized
*
pidgin_utils_init
,
pidgin_utils_uninit
*
pidgin_notify_pounce_add
*
PidginBlistTheme
,
PidginBlistThemeLoader
API
*
PidginIconTheme
,
PidginStatusIconTheme
,
PidginIconThemeLoader
API
*
pidgin_stock_id_from_status_primitive
*
pidgin_stock_id_from_presence
libgnt
:
Added
:
*
GntProgressBar
and
functions
(
Saleem
Abdulrasool
)
perl
:
Added
:
*
Purple
::
XMLNode
::
get_name
()
Changed
:
*
Made
a
bunch
of
functions
act
more
perl
-
like
.
Call
the
new
()
functions
as
Class
->
new
(
...
)
instead
of
Class
::
new
(
...
):
*
Purple
::
Request
::
Fields
::
new
*
Purple
::
Request
::
Field
::
new
*
Purple
::
Request
::
Field
::
account_new
*
Purple
::
Request
::
Field
::
bool_new
*
Purple
::
Request
::
Field
::
choice_new
*
Purple
::
Request
::
Field
::
int_new
*
Purple
::
Request
::
Field
::
label_new
*
Purple
::
Request
::
Field
::
list_new
*
Purple
::
Request
::
Field
::
string_new
*
Purple
::
Request
::
Field
::
group_new
*
Make
the
XMLNode
API
more
perl
-
like
.
Don
't pass len
parameters
and
call
them
like
:
*
$
xmlnode
->
copy
()
*
$
xmlnode
->
to_str
()
*
$
xmlnode
->
to_formatted_str
()
*
Purple
::
XMLNode
::
from_str
(
...
)
version
2.5
.
9
(
08
/
18
/
2009
):
No
changes
version
2.5
.
8
(
06
/
27
/
2009
):
No
changes
version
2.5
.
7
(
06
/
20
/
2009
):
No
changes
version
2.5
.
6
(
05
/
19
/
2009
):
No
changes
version
2.5
.
5
(
03
/
01
/
2009
):
libpurple
:
Changed
:
*
purple_status_type_new
now
defaults
"saveable"
to
TRUE
.
This
was
necessary
in
order
to
maintain
the
current
behavior
while
fixing
non
-
saveable
statuses
not
to
be
saved
.
*
xmlnode_get_prefix
,
xmlnode_to_str
and
xmlnode_to_formatted_str
now
all
take
a
const
xmlnode
*
instead
of
an
xmlnode
*
version
2.5
.
4
(
01
/
12
/
2009
):
perl
:
Changed
:
*
Purple
::
PluginPref
->
get_bounds
no
longer
takes
two
integer
arguments
it
now
returns
two
integers
.
Removed
:
*
Removed
a
handful
of
string
-
related
utility
functions
that
can
generally
be
better
handled
with
perl
's built-in string
functions
rather
than
using
pidgin
's:
*
Purple
::
Util
::
strcasereplace
*
Purple
::
Util
::
strcasestr
*
Purple
::
Util
::
strreplace
*
Purple
::
Util
::
str_strip_char
*
Purple
::
Util
::
chrreplace
version
2.5
.
3
(
12
/
20
/
2008
):
libpurple
Changed
:
*
purple_util_fetch_url
and
purple_util_fetch_url_request
can
now
fetch
https
URLs
version
2.5
.
0
(
08
/
18
/
2008
):
libpurple
:
Added
:
*
Connection
flag
PURPLE_CONNECTION_ALLOW_CUSTOM_SMILEY
to
indicate
that
the
connection
supports
sending
and
receiving
custom
smileys
.
*
PurpleSmiley
and
the
Smiley
API
.
*
purple_serv_got_join_chat_failed
*
chat
-
join
-
failed
signal
(
see
conversation
-
signals
.
dox
)
*
chat
-
invite
-
blocked
and
blocked
-
im
-
msg
signals
(
see
converation
-
signals
.
dox
)
(
Thanks
to
Stefan
Ott
)
*
purple_blist_update_node_icon
*
purple_buddy_icons_node_has_custom_icon
*
purple_buddy_icons_node_find_custom_icon
*
purple_buddy_icons_node_set_custom_icon
*
purple_buddy_icons_node_set_custom_icon_from_file
*
purple_notify_user_info_prepend_section_break
*
purple_notify_user_info_prepend_section_header
*
"website"
and
"dev_website"
items
to
the
ui_info
hash
table
*
purple_cmds_get_handle
,
purple_cmds_init
,
purple_cmds_uninit
*
cmd
-
added
and
cmd
-
removed
signals
*
purple_get_host_name
*
purple_util_fetch_url_len
(
temporary
function
overload
to
add
max_len
param
)
*
purple_util_fetch_url_request_len
*
purple_prpl_send_attention
*
purple_prpl_got_attention
*
purple_prpl_got_attention_in_chat
Deprecated
:
*
purple_blist_update_buddy_icon
*
purple_buddy_icons_has_custom_icon
*
purple_buddy_icons_find_custom_icon
*
purple_buddy_icons_set_custom_icon
*
pidgin_set_custom_buddy_icon
*
purple_util_fetch_url_len
*
purple_util_fetch_url_request_len
*
serv_send_attention
*
serv_got_attention
Changed
:
*
xmlnode_copy
now
copies
the
prefix
and
namespace
map
for
nodes
.
pidgin
:
Added
:
*
gtk_imhtml_smiley_create
,
gtk_imhtml_smiley_reload
and
gtk_imhtml_smiley_destroy
to
deal
with
GtkIMHtmlSmiley
's.
*
pidgin_pixbuf_from_imgstore
to
create
a
GdkPixbuf
from
a
PurpleStoredImage
.
*
pidgin_themes_smiley_themeize_custom
to
associate
custom
smileys
to
a
GtkIMHtml
widget
.
*
GTK_IMHTML_CUSTOM_SMILEY
flag
for
GtkIMHtml
.
*
GTK
+
Custom
Smiley
API
.
version
2.4
.
2
(
05
/
17
/
2008
):
perl
:
Added
:
*
Purple
::
Prefs
::
get_children_names
.
*
Purple
::
timeout_remove
.
Changed
:
*
Purple
::
timeout_add
now
returns
a
handle
which
can
be
used
to
remove
the
timeout
.
*
Callbacks
to
Purple
::
Util
::
fetch_url
and
the
Purple
::
Request
::
*
functions
can
now
be
specified
as
both
strings
(
the
name
of
the
callback
function
)
and
as
coderefs
.
Finch
:
libgnt
:
*
Added
gnt_bindable_check_key
to
check
if
a
keystroke
is
bound
.
version
2.4
.
0
(
02
/
29
/
2008
):
libpurple
:
Added
:
*
purple_certificate_add_ca_search_path
.
(
Florian
Quèze
)
*
purple_gai_strerror
.
*
purple_major_version
,
purple_minor_version
,
purple_micro_version
variables
are
exported
by
version
.
h
,
giving
the
version
of
libpurple
in
use
at
runtime
.
*
purple_util_set_current_song
,
purple_util_format_song_info
*
purple_ip_address_is_valid
*
Some
accessor
functions
to
the
Roomlist
API
:
*
purple_roomlist_get_fields
*
purple_roomlist_room_get_type
*
purple_roomlist_room_get_name
*
purple_roomlist_room_get_parent
*
purple_roomlist_room_get_fields
*
purple_roomlist_field_get_type
*
purple_roomlist_field_get_label
*
purple_roomlist_field_get_hidden
*
unlocalized_name
field
in
PurpleAttentionType
for
UIs
that
need
it
.
*
Some
accessor
and
mutator
functions
for
PurpleAttentionType
:
*
purple_attention_type_set_name
*
purple_attention_type_set_incoming_desc
*
purple_attention_type_set_outgoing_desc
*
purple_attention_type_set_icon_name
*
purple_attention_type_set_unlocalized_name
*
purple_attention_type_get_name
*
purple_attention_type_get_incoming_desc
*
purple_attention_type_get_outgoing_desc
*
purple_attention_type_get_icon_name
*
purple_attention_type_get_unlocalized_name
*
Add
some
PurpleBuddyListNode
accessor
functions
:
*
purple_blist_node_get_parent
*
purple_blist_node_get_first_child
*
purple_blist_node_get_sibling_next
*
purple_blist_node_get_sibling_prev
*
Added
last_received
to
PurpleConnection
,
the
time_t
of
the
last
received
packet
.
*
Added
some
more
accessor
functions
:
*
purple_chat_get_account
*
purple_chat_get_components
*
purple_connection_get_prpl
*
purple_xfer_get_start_time
*
purple_xfer_get_end_time
*
purple_serv_got_private_alias
for
prpls
to
call
after
receiving
a
private
alias
from
the
server
.
Pidgin
:
Added
:
*
pidgin_create_dialog
to
create
a
window
that
closes
on
escape
.
Also
added
utility
functions
pidgin_dialog_get_vbox_with_properties
,
pidgin_dialog_get_vbox
,
pidgin_dialog_get_action_area
to
access
the
contents
in
the
created
dialog
.
(
Peter
'fmoo'
Ruibal
)
*
pidgin_dialog_add_button
to
add
buttons
to
a
dialog
created
by
pidgin_create_dialog
.
*
GTK_IMHTML_NO_SMILEY
for
GtkIMHtmlOptions
means
not
to
look
for
smileys
in
the
text
.
(
Florian
'goutnet'
Delizy
)
*
pidgin_auto_parent_window
to
make
a
window
transient
for
a
suitable
parent
window
.
*
pidgin_tooltip_setup_for_treeview
,
pidgin_tooltip_destroy
,
pidgin_tooltip_show
and
pidgin_tooltip_setup_for_widget
to
simplify
the
process
of
drawing
tooltips
.
*
pidgin_add_widget_to_vbox
to
simplify
adding
a
labeled
widget
to
a
window
.
Deprecated
:
*
PIDGIN_DIALOG
Finch
:
*
finch_roomlist_get_ui_ops
and
finch_roomlist_show_all
*
finch_request_field_get_widget
to
get
the
widget
for
a
request
field
.
*
finch_blist_get_tree
to
get
the
GntTree
widget
representing
the
buddy
list
.
*
FinchBlistManager
structure
to
manage
the
buddylist
view
,
and
some
util
functions
finch_blist_install_manager
,
finch_blist_uninstall_manager
,
finch_blist_manager_find
and
finch_blist_manager_add_node
.
*
Added
finch_log_show
,
finch_log_show_contact
,
finch_syslog_show
,
finch_log_init
,
finch_log_get_handle
,
finch_log_uninit
libgnt
:
*
Added
gnt_tree_set_row_color
to
set
the
color
for
a
row
in
a
tree
.
*
Added
gnt_style_get_string_list
*
Added
gnt_color_add_pair
to
define
a
new
color
.
*
Added
gnt_colors_get_color
to
get
an
ncurses
color
value
from
a
string
.
*
Added
gnt_style_get_color
to
get
a
color
pair
from
an
entry
in
~/.
gntrc
*
Added
gnt_tree_get_parent_key
to
get
the
key
for
the
parent
row
.
version
2.3
.
0
(
11
/
24
/
2007
):
libpurple
:
Added
:
*
a
PurpleConversation
field
and
an
alias
field
in
PurpleConvMessage
*
account
-
authorization
signals
(
see
account
-
signals
.
dox
for
details
)
(
Stefan
Ott
)
*
libpurple
/
purple
.
h
,
which
includes
#define's and #include's
required
to
compile
stand
-
alone
plugins
*
PURPLE_STATUS_TUNE
as
a
new
PurpleStatusPrimitive
*
purple_plugin_disable
(),
which
is
intended
to
be
called
when
a
purple_plugin_unload
()
--
which
was
called
when
a
user
tried
to
unload
a
plugin
--
fails
.
This
then
prevents
the
plugin
from
being
saved
in
the
saved
plugins
list
,
so
it
'll won'
t
be
loaded
at
the
next
startup
.
*
PurpleDisconnectReason
enumeration
of
machine
-
readable
types
of
connection
error
.
*
purple_connection_error_reason
(),
to
be
used
by
prpls
(
instead
of
purple_connection_error
()
and
setting
gc
->
wants_to_die
)
to
report
errors
along
with
a
PurpleDisconnectReason
.
*
PurpleConnectionUiOps
.
report_disconnect_reason
,
to
be
implemented
by
UIs
(
rather
than
.
report_disconnect
)
if
they
want
to
use
the
reported
PurpleDisconnectReason
to
give
a
more
specific
error
.
*
A
connection
-
error
signal
,
fired
just
after
the
UiOp
is
called
with
the
same
information
.
*
purple_connection_reason_is_fatal
(),
acting
as
a
hint
to
whether
automatic
reconnection
should
be
attempted
after
a
connection
error
(
rather
than
checking
gc
->
wants_to_die
)
.
*
PurpleConnectionErrorInfo
,
a
struct
to
hold
a
PurpleConnectionError
and
a
const
char
*
description
.
*
purple_account_get_current_error
()
to
get
the
most
recent
PurpleConnectionError
and
description
(
or
NULL
if
the
account
is
happy
with
life
),
to
allow
bits
of
the
UI
to
know
the
last
error
without
caching
it
themselves
(
as
PidginBuddyList
does
)
.
*
purple_account_clear_current_error
()
to
reset
an
account
's
error
state
to
NULL
.
*
An
account
-
error
-
changed
signal
,
firing
when
purple_account_get_current_error
()
's return value changes.
*
PidginMiniDialog
,
a
Gtk
widget
-
ified
version
of
pidgin_make_mini_dialog
()
.
*
purple_util_init
()
*
purple_util_uninit
()
*
purple_network_listen_map_external
()
to
temporarily
disable
mapping
ports
externally
via
NAT
-
PMP
or
UPnP
.
Changed
:
*
purple_plugin_unload
()
now
honors
the
return
value
of
a
plugin
's unload function and can actually return FALSE now.
*
purple_plugin_unload
()
no
longer
does
its
own
notifications
when
a
dependent
plugin
fails
to
unload
.
The
UI
should
do
something
appropriate
.
*
pidgin_make_mini_dialog
()
now
declares
its
return
type
to
be
GtkWidget
*
rather
than
void
*.
This
should
not
break
any
existing
code
since
any
code
using
it
must
already
rely
on
the
return
type
actually
being
GtkWidget
*
all
along
.
Deprecated
:
*
pidgin_dialogs_about
()
*
pidgin_log_show_contact
()
*
pidgin_log_show
()
*
pidgin_plugin_dialog_show
()
*
pidgin_pounce_editor_show
()
*
pidgin_pounces_manager_show
()
*
pidgin_syslog_show
()
*
purple_connection_error
()
*
pidgin_blist_update_account_error_state
()
*
PidginBuddyList
.
connection_errors
*
purple_network_listen_map_external
()
MSN
:
*
A
new
independant
status
type
with
PURPLE_STATUS_TUNE
primitive
,
and
PURPLE_TUNE_ARTIST
,
PURPLE_TUNE_ALBUM
and
PURPLE_TUNE_TITLE
attributes
.
XMPP
:
*
A
new
independant
status
type
with
PURPLE_STATUS_TUNE
primitive
,
and
PURPLE_TUNE_
{
ARTIST
,
TITLE
,
ALBUM
,
GENRE
,
COMMENT
,
TRACK
,
TIME
,
YEAR
,
URL
}
attributes
.
Finch
:
libgnt
:
*
Added
gnt_color_pair
,
which
will
try
to
intelligenty
set
text
attributes
in
place
of
colors
if
the
terminal
doesn
't have color
support
.
(
Bug
:
#3560) All future code should use gnt_color_pair
instead
of
COLOR_PAIR
.
*
Added
gnt_menuitem_set_id
and
gnt_menuitem_get_id
to
set
and
get
the
string
id
of
a
menuitem
respectively
.
*
Added
gnt_window_get_accel_item
,
which
returns
a
the
id
of
a
menuitem
bound
to
a
keystroke
.
*
Added
gnt_menu_get_item
to
get
a
menuitem
of
the
given
id
from
a
menu
.
*
Added
gnt_menuitem_activate
,
which
triggers
the
'activate'
signal
on
the
menuitem
and
calls
the
callback
function
,
if
available
.
*
Added
GntEntryKillRing
in
GntEntry
.
*
Added
gnt_window_set_maximize
and
gnt_window_get_maximize
,
and
GntWindowFlags
enum
.
version
2.2
.
2
(
10
/
23
/
2007
):
libpurple
:
Changed
:
*
The
size
parameter
of
purple_util_write_data_to_file_absolute
has
been
changed
to
gssize
instead
of
a
size_t
to
correctly
indicate
that
-
1
can
be
used
for
a
nul
-
delimited
string
.
*
The
documentation
for
purple_savedstatuses_get_popular
used
to
incorrectly
claim
that
the
active
status
is
excluded
from
the
returned
list
.
The
documentation
has
been
corrected
.
Also
,
the
function
now
returns
a
correct
list
when
called
with
a
value
of
0.
version
2.2
.
0
(
09
/
13
/
2007
):
libpurple
:
Added
:
*
PURPLE_MESSAGE_INVISIBLE
flag
,
which
can
be
used
by
purple_conv_im_send_with_flags
to
send
a
message
,
but
not
display
it
in
the
conversation
*
serv_send_attention
(),
serv_got_attention
(),
as
well
as
send_attention
and
attention_types
in
PurplePluginProtocolInfo
.
This
new
API
is
used
for
zapping
in
MySpaceIM
,
buzzing
in
Yahoo
,
and
nudging
in
MSN
.
*
PurpleConvMessage
structure
to
represent
a
message
in
a
conversation
.
purple_conversation_message_get_sender
,
purple_conversation_message_get_message
,
purple_conversation_message_get_flags
and
purple_conversation_message_get_timestamp
to
get
information
about
a
PurpleConvMessage
.
*
purple_conversation_get_message_history
()
to
retrieve
a
list
of
PurpleConvMessage
's in a conversation, and
purple_conversation_clear_message_history
to
clear
the
history
.
*
purple_certificate_
*
functions
in
libpurple
/
certificate
.
h
-
"A public-key certificate API"
*
purple_ssl_get_peer_certificates
()
and
associated
field
in
PurpleSslOps
to
retrieve
a
server
's presented SSL certificate chain.
*
PurpleSslConnection
::
verifier
to
provide
a
"how to verify the peer's certificates"
callback
to
the
SSL
handlers
.
See
certificate
.
h
for
more
on
this
.
*
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
.
Changed
:
*
purple_prefs_load
is
now
called
within
purple_prefs_init
.
The
UI
no
longer
needs
to
call
it
.
*
writing
-
im
-
msg
now
receives
the
conversation
name
as
the
who
argument
if
the
caller
of
purple_conversation_write
didn
't
provide
a
value
for
who
.
Pidgin
:
Added
:
*
pidgin_set_accessible_relations
,
sets
up
label
-
for
and
labelled
-
by
ATK
relations
(
broken
out
from
pidgin_set_accessible_label
)
*
pidgin_conv_attach_to_conversation
,
to
reattach
the
Pidgin
UI
to
a
conversation
*
conversation
-
hiding
and
conversation
-
displayed
signals
.
*
pidgin_text_combo_box_entry_new
,
pidgin_text_combo_box_entry_get_text
and
pidgin_text_combo_box_entry_set_text
Changed
:
*
pidgin_conversations_fill_menu
now
also
adds
a
separator
and
a
'Show
All
' item if there are more than one conversations in the list.
Finch
:
Added
:
*
finch_sound_is_enabled
*
The
reserved
field
in
the
FinchConv
is
now
used
to
store
information
about
the
conversation
(
using
FinchConversationFlag
)
*
finch_account_dialog_show
libgnt
:
*
gnt_slider_set_small_step
,
gnt_slider_set_large_step
to
allow
more
fine
tuned
updates
of
a
GntSlider
*
gnt_util_parse_xhtml_to_textview
to
parse
XHTML
strings
in
a
GntTextView
(
this
works
only
if
libxml2
is
available
)
version
2.1
.
1
(
08
/
20
/
2007
):
libpurple
:
Changed
:
*
PurpleAccountUiOps
.
request_authorize
's authorize_cb and
deny_cb
parameters
now
correctly
have
type
PurpleAccountRequestAuthorizationCb
rather
than
GCallback
.
(
You
'll want to change your UI'
s
implementation
's signature
to
avoid
warnings
,
and
then
remove
some
now
-
redundant
casts
back
to
the
proper
type
.
)
version
2.1
.
0
(
7
/
28
/
2007
):
libpurple
:
Added
:
*
purple
-
remote
:
added
getstatus
command
*
conversation
-
extended
-
menu
signal
(
See
Doxygen
docs
)
*
OPT_PROTO_SLASH_COMMANDS_NATIVE
protocol
option
to
indicate
that
slash
commands
are
"native"
to
the
protocol
*
PURPLE_MESSAGE_NO_LINKIFY
message
flag
to
indicate
that
the
message
should
not
be
auto
-
linkified
*
PurpleEventLoopUiOps
.
timeout_add_seconds
UIs
can
now
use
better
scheduling
for
whole
-
second
timers
.
For
example
,
clients
based
on
the
glib
event
loop
can
now
use
g_timeout_add_seconds
.
*
purple_blist_node_get_type
*
purple_conversation_do_command
*
purple_conversation_get_extended_menu
*
purple_core_ensure_single_instance
This
is
for
UIs
to
use
to
ensure
only
one
copy
is
running
.
*
purple_dbus_is_owner
*
purple_timeout_add_seconds
Callers
should
prefer
this
to
purple_timeout_add
for
timers
longer
than
1
second
away
.
Be
aware
of
the
rounding
,
though
.
*
purple_xfer_get_remote_user
*
purple_pounces_get_all_for_ui
*
purple_prefs_get_children_names
*
added
displaying
-
email
-
notification
and
displaying
-
emails
-
notification
signals
Changed
:
*
The
documentation
of
the
following
functions
now
properly
declares
that
the
returned
value
must
not
be
modified
or
freed
,
which
was
always
the
case
:
*
purple_accounts_get_all
*
purple_connections_get_all
*
purple_connections_get_connecting
*
purple_conv_chat_get_ignored
*
purple_conv_chat_get_users
*
purple_get_chats
*
purple_get_conversations
*
purple_get_ims
*
purple_notify_user_info_get_entries
*
The
following
functions
now
return
a
GList
*
instead
of
a
const
GList
*
,
as
const
is
not
very
useful
with
GLists
.
The
returned
value
still
must
not
be
modified
or
freed
:
*
purple_account_get_status_types
*
purple_mime_document_get_fields
*
purple_mime_document_get_parts
*
purple_mime_part_get_fields
*
purple_request_fields_get_required
*
purple_request_field_list_get_selected
*
purple_request_field_list_get_items
*
purple_status_type_get_attrs
*
purple_presence_get_statuses
*
purple_request_field_list_set_selected
now
takes
a
GList
*
instead
of
a
const
GList
*
for
items
,
as
const
is
not
very
useful
with
GLists
.
The
passed
list
is
still
not
modified
or
freed
.
*
purple_presence_add_list
now
takes
a
GList
*
instead
of
a
const
GList
*
for
source_list
,
as
const
is
not
very
useful
with
GLists
.
The
passed
list
is
still
not
modified
or
freed
.
Pidgin
:
Added
:
*
gtk_imhtml_setup_entry
*
pidgin_create_window
*
pidgin_retrieve_user_info
and
pidgin_retrieve_user_info_in_chat
,
shows
immediate
feedback
when
getting
information
about
a
user
.
*
gtk_imhtml_animation_new
Can
be
used
for
inserting
an
animated
image
into
an
IMHTML
.
*
pidgin_menu_position_func_helper
*
pidgin_blist_get_name_markup
,
returns
the
buddy
list
markup
text
for
a
given
buddy
.
*
pidgin_blist_draw_tooltip
and
pidgin_blist_tooltip_destroy
for
creating
blist
tooltips
from
outside
of
buddy
list
code
*
pidgin_themes_remove_smiley_theme
Changed
:
*
pidgin_append_menu_action
returns
the
menuitem
added
to
the
menu
.
*
pidgin_separator
returns
the
separator
added
to
the
menu
.
*
PidginConversation
has
struct
members
to
handle
the
new
info
pane
:
*
infopane
*
infopane_hbox
*
infopane_model
*
infopane_iter
Finch
:
Added
:
*
finch_retrieve_user_info
libgnt
:
Added
:
*
GntWS
for
workspaces
*
gnt_tree_set_column_title
*
GntSlider
widget
*
"completion"
signal
for
GntEntry
*
"terminal-refresh"
signal
for
GntWM
,
with
a
corresponding
entry
in
GntWMClass
*
New
flags
for
GntTextView
to
decide
whether
to
word
-
wrap
or
show
scrollbars
(
GntTextViewFlag
)
which
can
be
set
by
gnt_text_view_set_flag
*
gnt_style_get_from_name
*
gnt_window_present
*
gnt_tree_set_column_width_ratio
*
gnt_tree_set_column_resizable
*
gnt_tree_set_column_is_right_aligned
*
gnt_tree_set_search_function
,
gnt_tree_set_search_column
,
gnt_tree_is_searching
*
'file-selected'
signal
is
emited
for
GntFileSel
*
gnt_style_parse_bool
*
gnt_util_set_trigger_widget
Changed
:
*
gnt_tree_get_rows
()
now
returns
a
GList
*
instead
of
a
const
GList
*
,
as
const
is
not
very
useful
with
GLists
.
The
returned
value
still
must
not
be
modified
or
freed
.
*
Instead
of
keeping
an
'invisible'
item
,
the
GntTreeColumns
now
maintain
'flags'
with
the
appropriate
flags
set
version
2.0
.
2
(
6
/
14
/
2007
):
Pidgin
:
Deprecated
:
*
pidgin_dialogs_alias_contact
:
This
will
be
removed
in
3.0
.
0
unless
there
is
sufficient
demand
to
keep
it
.
version
2.0
.
0
(
5
/
3
/
2007
):
Please
note
all
functions
,
defines
,
and
data
structures
have
been
re
-
namespaced
to
match
the
new
names
of
Pidgin
,
Finch
,
and
libpurple
.
All
gaim_gtk_
*
functions
are
now
pidgin_
*
,
former
libgaim
functions
are
now
purple_
*.
Please
consult
our
doxygen
documentation
for
a
complete
reference
.
The
gaim
-
compat
.
h
header
exists
to
provide
an
API
compatibility
layer
for
libpurple
functions
.
As
an
API
compatibility
layer
,
it
must
be
included
at
compile
time
to
be
of
use
.
Changed
:
*
All
the
status
stuff
.
Yay
!
*
gaim_prefs_connect_callback
(),
added
handle
parameter
*
gtk_imhtml_toolbar
now
descends
from
GtkHBox
making
it
easier
to
add
your
own
widgets
to
it
*
gaim_find_conversation_with_account
,
added
a
"type"
parameter
*
gaim_gtk_prefs_labeled_spin_button
,
the
"key"
parameter
is
now
a
const
char
*
instead
of
just
a
char
*
*
gaim_gtk_prefs_labeled_entry
,
the
"key"
parameter
is
now
a
const
char
*
instead
of
just
a
char
*
*
the
add_buddy
perl
sub
.
The
sub
now
takes
the
account
as
the
first
argument
,
and
buddy
and
group
as
the
second
and
third
.
It
also
adds
the
buddy
to
the
server
-
side
buddy
list
of
the
given
account
.
*
gaim_connection_new
,
gaim_account_connect
and
gaim_account_register
no
longer
return
a
GaimConnection
*
keep_alive
in
GaimConnection
is
renamed
to
keepalive
*
gaim_mkstemp
,
added
a
second
argument
,
a
boolean
,
of
whether
or
not
the
file
is
binary
*
gaim_log_logger_new
,
rewritten
*
gaim_conv_window_remove_conversation
()
's last argument to be a
GaimConversation
.
*
A
new
blocked
icon
:
pixmaps
/
status
/
default
/
blocked
.
png
*
In
pixmaps
/
status
/
default
:
extendedaway
.
png
renamed
to
extended_away
.
png
*
In
pixmaps
/
status
/
default
:
na
.
png
renamed
to
unavailable
.
png
*
gtk_imhtml_toggle_bold
():
No
longer
returns
a
value
*
gtk_imhtml_toggle_italic
():
No
longer
returns
a
value
*
gtk_imhtml_toggle_underline
():
No
longer
returns
a
value
*
gtk_imhtml_toggle_strike
():
No
longer
returns
a
value
*
gtk_imhtml_scroll_to_end
():
Added
the
smooth
paramter
*
gaim_log_new
(),
added
conv
parameter
*
gaim_buddy_icon_new
(),
leaves
a
reference
which
the
caller
owns
.
Use
gaim_buddy_icon_unref
()
immediately
if
you
don
't want a reference (the
old
behavior
)
.
*
GAIM_CONV_UNKNOWN
to
GAIM_CONV_TYPE_UNKNOWN
.
*
GAIM_CONV_IM
to
GAIM_CONV_TYPE_IM
.
*
GAIM_CONV_CHAT
to
GAIM_CONV_TYPE_CHAT
.
*
GAIM_CONV_MISC
to
GAIM_CONV_TYPE_MISC
.
*
GAIM_CONV_ANY
to
GAIM_CONV_TYPE_ANY
.
*
GaimConversationUiOps
.
write_conv
,
Replaced
const
char
*
who
with
const
char
*
name
,
const
char
*
alias
*
gaim_conv_chat_add_users
(),
added
extra_msgs
and
new_arrivals
(
pass
NULL
and
FALSE
respectively
,
to
get
the
same
behavior
as
before
)
*
chat_add_users
in
GaimConversationUiOps
,
added
cbuddies
and
new_arrivals
and
removed
buddies
.
*
chat_rename_user
in
GaimConversationUiOps
,
added
new_alias
*
gaim_conv_chat_cb_new
(),
added
alias
.
(
pass
NULL
to
get
the
same
behavior
as
before
)
.
*
GaimConversation
.
log
became
GList
*
GaimConversation
.
logs
,
so
that
a
conversation
can
have
multiple
logs
at
once
*
gaim_conv_chat_add_user
,
added
extra_msgs
*
gaim_notify_userinfo
,
removed
primary
and
secondary
parameters
*
GaimNotifyUiOps
.
notify_userinfo
:
removed
title
,
primary
,
and
secondary
parameters
*
Idle
timers
are
now
added
and
removed
in
gtkidle
.
c
in
response
to
the
signed
-
on
and
signed
-
off
signals
*
GaimXfer
->
ops
.
read
,
GaimXfer
->
ops
.
write
,
gaim_xfer_set_read_fnc
(),
gaim_xfer_set_write_fnc
(),
gaim_xfer_read
(),
gaim_xfer_write
():
Changed
ssize_t
to
gssize
*
serv_got_im
,
serv_got_chat_in
,
serv_send_im
and
serv_chat_send
all
use
GaimMessageFlags
instead
of
GaimConvImFlags
/
GaimConvChatFlags
*
All
core
<->
prpl
message
passing
now
uses
html
.
This
was
previously
true
for
receiving
messages
,
it
's now also true for sending them. prpls that
don
't support html need to gaim_unescape_html() the message.
*
Notify
API
:
GCallback
->
GaimNotifyCloseCallback
,
void
*
user_data
->
gpointer
user_data
*
gaim_notify_searchresults_get_rows_count
,
gaim_notify_searchresults_get_columns_count
:
return
type
now
guint
*
gaim_account_notify_added
:
No
longer
checks
if
there
is
a
GaimBuddy
for
the
added
user
,
that
's left up to the prpls. See the
documentation
for
this
function
and
gaim_account_request_add
.
*
gaim_accounts_reorder
:
new_index
is
now
a
gint
instead
of
a
size_t
*
displaying
-
message
signals
:
displaying
-
[
im
|
chat
]
-
msg
and
displayed
-
[
im
|
chat
]
-
msg
signals
are
emitted
for
all
messages
(
ie
,
for
received
messages
,
sent
messages
,
system
messages
,
error
messages
etc
.
),
and
the
signals
now
have
gaim_gtk_conversations_get_handle
()
for
their
handle
.
*
GAIM_NOTIFY_BUTTON_ADD_BUDDY
to
GAIM_NOTIFY_BUTTON_ADD
*
conversation
-
switched
:
This
signal
has
been
moved
from
conversation
to
the
UI
and
the
signal
-
handlers
only
receive
the
conversation
that
has
been
switched
to
.
*
GaimPluginProtocolInfo
:
Added
offline_message
*
GaimPluginProtocolInfo
:
Added
whiteboard_prpl_ops
*
GaimPluginProtocolInfo
:
Added
media_prpl_ops
*
GaimPluginProtocolInfo
:
Added
"user_info"
argument
to
tooltip_text
,
changed
the
return
type
to
void
*
GaimPluginProtocolInfo
:
Added
"full"
argument
to
tooltip_text
*
gaim_pounce_new
():
Added
option
argument
for
pounce
options
*
gaim_network_listen
()
and
gaim_network_listen_range
():
Added
socket_type
parameter
to
allow
creation
of
UDP
listening
.
Modified
to
be
asynchronous
with
a
callback
to
allow
for
UPnP
operation
.
Returns
a
data
structure
that
can
be
used
to
cancel
the
listen
attempt
using
gaim_network_listen_cancel
()
*
GaimPrefCallback
:
val
is
now
a
gconstpointer
instead
of
a
gpointer
*
gtk_imhtml_get_current_format
():
the
arguments
are
now
set
to
TRUE
or
FALSE
.
Previously
they
were
set
to
TRUE
or
left
alone
.
Also
,
you
may
now
pass
NULL
if
you
're not interested in a specific formatting.
*
Smiley
Themes
:
Backslashes
must
be
backslash
-
escaped
.
*
Plugins
:
Depedencies
are
now
honored
when
unloading
plugins
.
*
gaim_markup_extract_info_field
():
Added
format_cb
parameter
.
*
gaim_markup_extract_info_field
():
Changed
GString
parameter
to
a
GaimNotifyUserInfo
paramter
.
*
gaim_str_to_time
():
Added
support
for
parsing
the
MM
/
DD
/
YYYY
format
.
*
gaim_plugin_action_new
():
label
is
now
const
char
*
*
gaim_plugin_pref_new_with_name
():
name
is
now
const
char
*
*
gaim_plugin_pref_new_with_label
():
label
is
now
const
char
*
*
gaim_plugin_pref_new_with_name_and_label
():
name
and
label
are
now
const
char
*
*
gaim_plugin_pref_set_name
():
name
is
now
const
char
*
*
gaim_plugin_pref_get_name
():
return
type
is
now
const
char
*
*
gaim_plugin_pref_set_label
():
label
is
now
const
char
*
*
gaim_plugin_pref_get_label
():
return
type
is
now
const
char
*
*
gaim_plugin_pref_add_choice
():
label
is
now
const
char
*
*
struct
proto_chat_entry
:
label
is
now
const
char
*
*
struct
proto_chat_entry
:
identifier
is
now
const
char
*
*
All
network
activity
has
been
updated
to
use
non
-
blocking
sockets
.
This
means
that
plugins
must
be
updated
to
expect
such
a
socket
from
gaim_proxy_connect
()
and
gaim_network_listen
*
()
.
*
gaim_proxy_connect
():
changed
to
return
NULL
on
error
and
a
pointer
to
a
GaimProxyConnectInfo
object
which
can
be
used
to
cancel
connection
attempts
using
gaim_proxy_connect_cancel
()
.
Also
added
a
'handle'
parameter
that
can
be
used
to
cancel
the
connection
attempt
using
gaim_proxy_connect_cancel_with_handle
()
.
*
gaim_gethostbyname_async
():
Renamed
to
gaim_dnsquery_a
()
and
changed
to
return
a
pointer
to
a
data
structure
that
can
be
used
to
cancel
the
pending
DNS
query
using
gaim_dnsquery_destroy
()
*
gaim_url_fetch
():
Renamed
to
gaim_util_fetch_url
()
and
changed
to
return
a
pointer
to
a
data
structure
that
can
be
used
to
cancel
the
pending
HTTP
request
using
gaim_util_fetch_url_cancel
()
.
Corresponding
callback
has
changed
to
accept
this
data
structure
as
its
first
argument
,
and
to
accept
an
error
message
as
an
additional
final
argument
.
*
gaim_gtk_create_imhtml
():
Added
sw_ret
()
parameter
*
gaim_account_get_log
():
Added
create
parameter
*
GAIM_CMD_P_VERYHIGH
is
now
GAIM_CMD_P_VERY_HIGH
*
gtk_imhtml_search_find
():
Now
wraps
around
to
the
top
instead
of
clearing
the
search
at
the
end
.
*
gaim_gtkxfer_dialog_show
:
Can
now
take
NULL
to
show
(
and
possibly
create
)
a
default
gtkxfer
dialog
.
*
CHAT_USERS_BUDDY_COLUMN
became
CHAT_USERS_WEIGHT_COLUMN
,
along
with
a
change
in
the
values
stored
in
the
column
.
*
gaim_find_buddies
()
returns
a
list
of
all
buddies
in
the
account
if
name
is
NULL
.
*
gaim_gtk_set_custom_buddy_icon
()
sets
custom
icon
for
a
user
.
*
Hid
the
definition
of
_GaimStringref
,
which
already
had
a
warning
to
avoid
accessing
it
directly
.
*
notify_userinfo
()
UI
op
is
passed
a
GaimNotifyUserInfo
instead
of
a
char
*
for
the
user
information
*
gaim_buddy_icon_get_scale_size
()
and
was
changed
to
ALWAYS
scale
the
icon
instead
of
only
when
icon_spec
->
scale_rules
contains
GAIM_ICON_SCALE_DISPLAY
.
Callers
should
be
changed
to
check
the
scale_rules
before
calling
this
function
.
*
gaim_gtk_buddy_icon_get_scale_size
()
was
changed
to
accept
an
additional
parameter
which
is
used
to
determine
what
kind
of
scaling
should
be
done
,
if
any
.
*
purple_request_input
(),
purple_request_choice
(),
purple_request_choice_varg
(),
purple_request_action
(),
purple_request_action_varg
(),
purple_request_fields
(),
purple_request_yes_no
(),
purple_request_ok_cancel
(),
purple_request_accept_cancel
(),
purple_request_file
(),
and
purple_request_folder
()
was
changed
to
accept
account
,
who
,
and
conversation
parameters
for
associating
the
request
with
an
account
,
a
buddy
,
or
a
conversation
.
*
Significant
changes
to
the
buddy
icon
and
imgstore
APIs
.
If
you
were
using
any
of
it
,
it
's best to look at the header files or
Doxygen
documentation
,
but
here
are
some
significant
changes
:
purple_buddy_icon_new
()
now
takes
ownership
of
(
"frees"
)
icon_data
purple_buddy_icon_set_data
():
likewise
for
data
purple_buddy_icon_set_for_user
():
likewise
for
data
purple_buddy_icon_set_for_user
()
now
takes
a
checksum
parameter
purple_imgstore_add
()
was
renamed
to
purple_imgstore_add_with_id
()
which
takes
ownership
of
data
Removed
:
*
gaim_gtk_sound_
{
get
,
set
}
_mute
()
(
replaced
by
the
/
gaim
/
gtk
/
sound
/
mute
preference
)
*
gaim_escape_html
(
const
char
*
html
)
(
use
g_markup_escape_text
(
html
,
-
1
)
instead
)
*
gaim_accounts_sync
,
account
changes
are
now
scheduled
to
be
saved
automatically
*
gaim_connection_connect
*
gaim_connection_disconnect
*
gaim_connection_register
*
gaim_accounts_auto_login
*
gaim_find_conversation
,
use
gaim_find_conversation_with_account
instead
*
gaim_chat_get_display_name
*
gaim_conversation_set_history
,
gaim_conversation_get_history
,
and
GaimConversation
->
history
.
Use
gtk_imhtml_get_markup
instead
.
*
set_gaim_user_dir
to
gaim_util_set_user_dir
*
create_prpl_icon
to
gaim_gtk_create_prpl_icon
*
Window
flashing
support
in
the
core
:
gaim_conv_window_flash
,
and
flash
UI
operation
for
conversations
.
Use
signal
"received-im-msg"
or
similar
.
*
All
warning
stuff
from
the
core
.
*
gaim_gtkconv_get_dest_tab_at_xy
(),
instead
use
gaim_gtkconv_get_tab_at_xy
()
*
chat_add_user
from
GaimConversationUiOps
:
only
chat_add_users
is
used
*
chat_remove_user
from
GaimConversationUiOps
:
only
chat_remove_users
is
used
*
uc
from
the
GaimBuddy
struct
*
gaim_sound_get_handle
()
*
gaim_debug_vargs
()
*
serv_add_buddy
();
use
gaim_account_add_buddy
()
instead
*
serv_add_buddies
();
use
gaim_account_add_buddies
()
instead
*
serv_change_passwd
();
use
gaim_account_change_password
()
instead
*
serv_close
()
*
serv_finish_login
()
*
serv_login
()
*
serv_remove_buddy
();
use
gaim_account_remove_buddy
()
instead
*
serv_remove_buddies
();
use
gaim_account_remove_buddies
()
instead
*
serv_rename_group
()
*
serv_set_buddyicon
():
use
gaim_account_set_buddy_icon
()
instead
*
serv_touch_idle
():
use
gaim_gtk_check_idle
()
instead
*
GaimGtkImPane
->
a_virgin
*
gaim_str_strip_cr
();
use
gaim_str_strip_char
(
str
,
'
\r
'
)
instead
*
gaim_find_buddys_group
renamed
to
gaim_buddy_get_group
*
gaim_gtkpounce_menu_build
()
*
gaim_gtkpounce_dialog_show
()
*
GaimGtkBuddyList
->
bpmenu
*
GaimConvImFlags
and
GaimConvChatFlags
;
use
GaimMessageFlags
instead
*
cb
and
user_data
from
the
ops
in
GaimNotifyUiOps
:
This
is
now
handled
by
the
notify
API
in
the
core
.
*
GaimConversationUiOps
.
updated
:
use
the
conversation
-
updated
signal
*
GAIM_SUBTYPE_CONV_WINDOW
:
windows
are
now
only
represented
in
the
UI
,
so
GAIM_TYPE_BOXED
is
used
for
the
signal
types
*
gaim_gtk_privacy_is_showable
():
We
do
fallback
privacy
in
the
core
now
,
so
this
would
always
be
TRUE
now
.
*
GaimBlistNodeAction
:
See
GaimMenuAction
*
gaim_blist_node_action_new
();
use
gaim_menu_action_new
()
instead
*
gaim_date
()
*
gaim_date_full
():
See
gaim_date_format_full
()
*
gaim_strftime
():
See
gaim_utf8_strftime
()
*
GAIM_MESSAGE_COLORIZE
*
user_data
from
gaim_notify_searchresults_new_rows
and
from
notify_searchresults
in
GaimNotifyUiOps
.
*
gaim_conversation_get_send_history
(),
and
send_history
from
GaimConversation
*
Removed
ui_ops
from
GaimBuddyList
.
Use
gaim_blist_get_ui_ops
()
instead
*
GaimGtkConversation
:
dialogs
(
dialogs
.
search
moved
to
GaimGtkWindow
)
*
gaim_show_xfer_dialog
:
Use
gaim_gtk_xfer_dialog_show
(
NULL
)
instead
.
*
GaimGtkRoomlistDialog
:
Nothing
used
it
outside
of
the
file
it
was
in
.
*
gaim_gtk_roomlist_dialog_new
:
use
gaim_gtk_roomlist_show
*
gaim_gtk_roomlist_dialog_new_with_account
:
use
gaim_gtk_roomlist_show_with_account
*
binreloc
functions
Added
:
*
gaim_prefs_disconnect_by_handle
()
*
a
password
field
to
GaimConnection
,
which
only
persists
for
the
session
(
when
"remember password"
is
false
,
account
->
password
is
NEVER
set
)
Use
gaim_connection_get_password
(
GaimConnection
*
gc
)
*
gaim_log_common_writer
,
gaim_log_common_lister
,
gaim_log_common_sizer
,
and
gaim_log_get_log_dir
to
allow
log
formats
that
use
standard
Gaim
log
directory
to
use
Gaim
's built-in code for these purposes.
*
GaimLogCommonLoggerData
struct
for
a
basic
logger_data
struct
to
be
used
with
"common"
logger
functions
.
*
gaim_gtk_blist_node_is_contact_expanded
,
returns
TRUE
if
the
given
blist
node
is
a
buddy
inside
an
expanded
contact
,
or
is
itself
an
expanded
contact
*
GaimLogSet
struct
,
get_log_sets
function
to
GaimLogLogger
,
gaim_log_get_log_sets
,
gaim_log_set_compare
*
gaim_privacy_check
(),
to
check
if
a
given
user
is
allowed
to
send
messages
to
the
specified
account
*
gtk_imhtml_clear_formatting
()
*
gtk_imhtml_delete
to
clear
out
part
of
a
imhtml
buffer
*
gtk_imhtml_get_protocol_name
()
*
gaim_buddy_icons_get_full_path
(),
to
get
the
full
path
of
a
buddy
icon
setting
*
CHAT_USERS_ALIAS_COLUMN
,
CHAT_USERS_COLOR_COLUMN
,
CHAT_USERS_BUDDY_COLUMN
to
the
list
of
columns
for
the
chat
user
list
*
gaim_account_add_buddy
()
*
gaim_account_add_buddies
()
*
gaim_account_remove_buddy
()
*
gaim_account_remove_buddies
()
*
gaim_account_change_password
()
*
gaim_account_supports_offline_message
()
*
gaim_conversation_close_logs
(),
to
force
a
conversation
's log(s) to
be
closed
.
New
logs
will
be
opened
as
necessary
.
*
gaim_got_protocol_handler_uri
()
*
gaim_plugin_get_id
()
*
gaim_plugin_get_name
()
*
gaim_plugin_get_version
()
*
gaim_plugin_get_summary
()
*
gaim_plugin_get_description
()
*
gaim_plugin_get_author
()
*
gaim_plugin_get_homepage
()
*
gaim_gtkconv_switch_active_conversation
(
GaimConversation
*
)
*
gaim_str_strip_char
()
to
strip
a
given
character
from
a
given
string
*
gaim_util_chrreplace
()
to
replace
a
given
character
with
a
different
character
*
gaim_gtk_blist_toggle_visibility
()
to
intelligently
toggle
the
visiblity
of
the
buddy
list
*
gaim_gtk_blist_visibility_manager_add
()
to
indicate
the
addition
of
a
visibility
manager
-
see
the
docs
for
more
information
*
gaim_gtk_blist_visibility_manager_remove
()
to
indicate
the
removal
of
a
visibility
manager
-
see
the
docs
for
more
information
*
gaim_gtk_conversations_find_unseen_list
()
to
get
a
list
of
conversations
with
an
"unseen"
state
>=
to
the
specified
state
and
other
criteria
*
gaim_gtk_conversations_fill_menu
()
fill
a
menu
from
list
of
conversations
*
gaim_gtk_create_prpl_icon
()
*
gaim_gtk_create_prpl_icon_with_status
()
*
gaim_gtk_pounces_manager_show
()
*
gaim_gtk_pounces_manager_hide
()
*
gaim_gtk_pounce_editor_show
()
*
GAIM_POUNCE_MESSAGE_RECEIVED
*
GaimPounceOption
*
gaim_pounce_set_options
()
*
gaim_pounce_set_options
()
*
GAIM_STOCK_CONNECT
,
GAIM_STOCK_DISCONNECT
*
GAIM_STOCK_PLUGIN
*
gaim_account_request_add
:
Notifies
the
user
that
they
were
added
to
someone
's buddy list, and offers them the choice
of
adding
that
person
to
their
buddy
list
.
*
gaim_blist_alias_contact
()
*
gaim_cipher_http_digest_calculate_session_key
()
*
gaim_cipher_http_digest_calculate_response
()
*
gaim_notify_searchresults_labeled
()
*
GAIM_NOTIFY_BUTTON_LABELED
,
GAIM_NOTIFY_BUTTON_INFO
,
GAIM_NOTIFY_BUTTON_IM
,
GAIM_NOTIFY_BUTTON_JOIN
,
GAIM_NOTIFY_BUTTON_INVITE
*
stock
buttons
GAIM_STOCK_IM
,
GAIM_STOCK_INFO
*
gaim_conversation_present
()
*
GaimConversationUiOps
->
present
(
GaimConversation
*
)
*
GaimPlugin
.
unloadable
*
gaim_plugin_is_unloadable
()
*
GAIM_PLUGIN_PREF_STRING_FORMAT
*
gaim_plugin_pref_get_format_type
()
*
gaim_plugin_pref_set_format_type
()
*
GaimStringFormatType
*
gaim_log_get_handle
()
*
gaim_log_uninit
()
*
GAIM_SUBTYPE_LOG
*
gaim_marshal_POINTER__POINTER_POINTER
*
gaim_utf8_ncr_encode
()
*
gaim_gtk_log_init
()
*
gaim_gtk_log_get_handle
()
*
gaim_gtk_log_uninit
()
*
gaim_util_fetch_url_request
()
*
GaimMenuAction
*
gaim_menu_action_new
()
*
gaim_menu_action_free
()
*
GaimInfoFieldFormatCallback
*
gaim_utf8_strftime
()
*
gaim_date_format_short
()
*
gaim_date_format_long
()
*
gaim_date_format_full
()
*
gaim_time_format
()
*
gaim_plugin_action_free
()
*
GaimRequestType
:
Added
GAIM_REQUEST_FOLDER
*
GaimRequestUiOps
:
Added
request_folder
*
gaim_request_folder
()
*
gaim_gtk_setup_screenname_autocomplete
()
*
gaim_gtk_set_cursor
()
*
gaim_gtk_clear_cursor
()
*
GAIM_MESSAGE_ACTIVE_ONLY
*
gaim_proxy_get_setup
()
*
GaimNotifySearchResultsCallback
:
Added
user_data
.
*
gaim_notify_searchresults
:
Added
user_data
.
*
gaim_network_listen_cancel
():
Can
be
used
to
cancel
a
previous
call
to
gaim_network_listen
()
or
gaim_network_listen_range
()
*
gaim_proxy_connect_cancel
():
Can
be
used
to
cancel
a
pending
gaim_proxy_connect
()
request
*
gaim_proxy_connect_cancel_with_handle
():
Can
be
used
to
cancel
a
previous
gaim_proxy_connect
()
request
using
a
specified
handle
*
gaim_dnsquery_destroy
():
Can
be
used
to
cancel
a
pending
DNS
query
.
*
gaim_util_fetch_url_cancel
():
Can
be
used
to
cancel
a
pending
call
to
gaim_util_fetch_url
()
or
gaim_util_fetch_url_request
()
.
*
GaimGtkWindow
:
dialogs
.
search
(
previously
in
GaimGtkConversation
)
*
gaim_buddy_get_server_alias
()
*
gaim_conv_send_confirm
()
*
GaimConversationUiOps
.
send_confirm
*
gaim_gtk_roomlist_dialog_show_with_account
*
gaim_gtk_tree_view_search_equal_func
to
be
used
with
gtk_tree_view_set_search_equal_func
*
gaim_xfer_set_bytes_sent
()
.
Sets
the
offset
in
the
file
to
read
from
or
write
to
.
*
gaim_privacy_deny
and
gaim_privacy_allow
*
gaim_gtk_blist_set_headline
*
gaim_gtk_set_urgent
*
GtkGaimScrollBook
and
its
functions
.
*
purple_markup_unescape_entity
()
*
purple_markup_get_css_property
()
*
purple_group_get_name
()
Signals
-
Changed
:
(
See
the
Doxygen
docs
for
details
on
all
signals
.
)
*
Signal
propagation
now
stops
after
a
handler
returns
a
non
-
NULL
value
.
This
value
is
now
returned
.
Previously
,
all
registered
handlers
were
called
and
the
value
from
the
last
handler
was
used
.
*
"buddy-typing"
and
"buddy-typing-stopped"
:
replaced
the
GaimConversation
*
with
GaimAccount
*
,
const
char
*
name
.
Also
,
the
signal
is
now
emitted
regardless
of
whether
a
conversation
exists
and
regardless
of
whether
the
user
is
on
the
buddy
list
.
*
"chat-buddy-joined"
:
added
the
new_arrival
argument
*
"chat-invited"
handlers
can
now
return
a
value
to
control
what
happens
to
the
invite
(
accept
,
reject
,
prompt
the
user
)
.
*
"chat-left"
:
Emitted
*
after
*
setting
chat
->
left
to
TRUE
.
*
"drawing-tooltip"
:
the
second
argument
is
now
a
GString
*
instead
of
a
char
**
*
"drawing-tooltip"
:
added
the
"full"
argument
*
"received-im-msg"
and
"received-chat-msg"
to
match
,
both
now
pass
a
conversation
pointer
and
flags
*
"receiving-im-msg"
and
"receving-chat-msg"
to
match
,
both
now
pass
a
conversation
pointer
and
a
pointer
to
the
flags
.
*
"writing-im-msg"
,
"wrote-im-msg"
,
"writing-chat-msg"
,
"wrote-chat-msg"
:
Now
emitted
from
a
difference
place
in
the
message
handling
code
.
The
arguments
also
changed
.
*
"displaying-im-msg"
,
"displayed-im-msg"
,
"displaying-chat-msg"
,
"displayed-chat-msg"
:
Added
"who"
argument
,
which
changes
the
order
of
the
existing
arguments
.
Signals
-
Added
:
(
See
the
Doxygen
docs
for
details
on
all
signals
.
)
*
"account-disabled"
*
"account-status-changed"
*
"account-alias-changed"
*
"cipher-added"
*
"cipher-removed"
*
"conversation-dragging"
*
"dbus-method-called"
*
"dbus-introspect"
*
"file-recv-accept"
*
"file-recv-start"
*
"file-recv-cancel"
*
"file-recv-complete"
*
"file-recv-request"
*
"file-send-accept"
*
"file-send-start"
*
"file-send-cancel"
*
"file-send-complete"
*
"buddy-added"
*
"buddy-removed"
*
"blist-node-aliased"
*
"buddy-status-changed"
*
"buddy-idle-changed"
:
A
buddy
's idle status changed.
*
"buddy-icon-changed"
*
"buddy-got-login-time"
:
The
login
time
for
a
buddy
is
now
known
*
"displaying-userinfo"
*
"gtkblist-hiding"
*
"gtkblist-unhiding"
*
"log-displaying"
*
"network-configuration-changed"
*
"savedstatus-changed"
*
"sendto-extended-menu"
*
"uri-handler"
Signals
-
Removed
:
*
"account-away"
:
replaced
by
account
-
status
-
changed
*
"account-warned"
*
"buddy-away"
:
replaced
by
buddy
-
status
-
changed
*
"buddy-back"
:
replaced
by
buddy
-
status
-
changed
*
"buddy-idle"
:
replaced
by
buddy
-
idle
-
changed
*
"buddy-unidle"
:
replaced
by
buddy
-
idle
-
changed
*
"buddy-icon-cached"
:
replaced
by
buddy
-
icon
-
changed
*
"conversation-drag-end"
:
replaced
by
conversation
-
dragging
*
"conversation-switching"
version
1.5
.
0
(
8
/
11
/
2005
):
*
Added
:
gaim_xfer_conversation_write
Writes
a
messages
to
a
conversation
window
with
the
use
of
the
associated
file
transfer
.
version
1.4
.
0
(
7
/
7
/
2005
):
*
Added
:
gaim_buddy_icon_uncache
()
Deletes
a
cached
buddy
icon
for
a
specified
buddy
*
Added
:
gaim_buddy_icon_get_type
Attempts
to
determine
the
type
of
a
given
buddy
icon
.
*
Added
:
buddy
-
icon
-
cached
signal
Emitted
when
a
new
buddy
icon
is
cached
.
version
1.3
.
1
(
6
/
9
/
2005
):
*
No
changes
version
1.3
.
0
(
5
/
10
/
2005
):
*
Added
:
gaim_blist_schedule_save
()
This
should
be
used
instead
of
gaim_blist_sync
when
you
want
the
blist
.
xml
file
to
be
written
to
disk
.
There
should
not
be
many
occasions
when
you
want
to
do
this
,
as
the
functions
in
the
blist
API
that
modify
the
buddy
list
will
normally
call
it
for
you
.
*
Added
:
OPT_PROTO_NO_NORMALIZE_CONV
Tells
the
conversation
API
to
not
normalize
screen
names
in
conversations
.
This
is
used
by
the
Jabber
PRPL
.
version
1.2
.
1
(
4
/
3
/
2005
):
*
No
changes
version
1.2
.
0
(
3
/
17
/
2005
):
*
You
can
use
gaim_signal_connect_priority
()
and
gaim_signal_connect_priority_vargs
()
to
connect
to
Gaim
signals
with
a
given
priority
(
Will
Gorman
)
*
Added
:
gaim_conversation_set_features
gaim_conversation_get_features
These
allow
plugins
(
notable
prpls
)
to
change
the
formatting
capabilities
of
an
existing
conversation
.
This
comes
with
a
new
"features"
field
in
GaimConversation
(
Christopher
O
'Brien)
*
Added
:
GAIM_CONNECTION_NO_IMAGES
to
GaimConectionFlags
(
Christopher
O
'Brien)
*
Added
:
GAIM_CBFLAGS_TYPING
to
GaimConvChatBuddyFlags
(
Christopher
O
'Brien)
*
Added
:
gaim_account_request_add
which
takes
the
same
arguments
as
*
gaim_account_notify_added
but
always
asks
the
user
if
they
want
to
add
*
the
buddy
to
the
buddy
list
*
Added
:
An
accompanying
request_add
GaimAccountUiOp
version
1.1
.
4
(
2
/
24
/
2005
):
*
No
changes
version
1.1
.
3
(
2
/
17
/
2005
):
*
No
changes
version
1.1
.
2
(
1
/
20
/
2005
):
*
No
changes
version
1.1
.
1
(
12
/
28
/
2004
):
*
No
changes
version
1.1
.
0
(
12
/
02
/
2004
):
*
Added
:
gaim_utf8_salvage
*
Added
:
binary
relocation
support
in
prefix
.
h
WARNING
:
If
your
plugin
uses
anything
inside
the
#ifdef ENABLE_BINRELOC from prefix.h, it won't be
loadable
on
a
copy
of
Gaim
compiled
without
binreloc
support
.
In
particular
,
watch
out
for
the
autoconf
-
like
macros
,
and
accidently
including
them
through
internal
.
h
,
which
you
probably
shouldn
't be including anyway.
version
1.0
.
0
(
09
/
17
/
2004
):
*
Added
:
get_chat_name
to
the
GaimPluginProtocolInfo
struct
*
Changed
:
gaim_blist_update_buddy_presence
(),
presence
changed
to
type
gboolean
*
Changed
:
the
versioning
scheme
,
and
all
the
plugin
structs
version
0.82
(
08
/
26
/
2004
):
Gaim
API
:
*
Removed
:
gaim_gtk_get_dispstyle
(),
gaim_gtk_change_text
()
*
Removed
:
multi
.
h
*
Renamed
:
ui
.
h
to
gtkdialogs
.
h
*
Renamed
:
gtkinternal
.
h
to
gtkgaim
.
h
*
Renamed
:
show_info_dialog
to
gaim_gtkdialogs_info
*
Renamed
:
show_log_dialog
to
gaim_gtkdialogs_log
*
Renamed
:
show_warn_dialog
to
gaim_gtkdialogs_warn
*
Renamed
:
show_im_dialog
to
gaim_gtkdialogs_im
*
Renamed
:
gaim_gtkdialogs_new_im
to
gaim_gtkdialogs_im_with_user
*
Renamed
:
destroy_all_dialogs
to
gaim_gtkdialogs_destroy_all
*
Renamed
:
alias_dialog_bud
to
gaim_gtkdialogs_alias_buddy
*
Renamed
:
alias_dialog_contact
to
gaim_gtkdialogs_alias_contact
*
Renamed
:
alias_dialog_blist_chat
to
gaim_gtkdialogs_alias_chat
*
Renamed
:
show_confirm_del
to
gaim_gtkdialogs_remove_buddy
*
Renamed
:
show_confirm_del_group
to
gaim_gtkdialogs_remove_group
*
Renamed
:
show_confirm_del_blist_chat
to
gaim_gtkdialogs_remove_chat
*
Renamed
:
show_confirm_del_contact
to
gaim_gtkdialogs_remove_contact
*
Renamed
:
show_about
to
gaim_gtkdialogs_about
*
Added
:
gaim_notify_userinfo
()
and
the
associated
notify_userinfo
()
UI
op
which
pass
account
and
contact
information
associated
with
the
userinfo
Buddy
List
API
:
*
Changed
:
gaim_blist_request_add_chat
(),
added
name
parameter
*
Added
:
gaim_contact_on_account
()
*
Added
:
flags
parameter
to
the
GaimBlistNode
struct
Conversation
API
:
*
Added
:
gaim_gtkconv_button_new
()
Protocol
Plugin
API
:
v7
*
Added
:
chat_info_defaults
to
the
GaimPluginProtocolInfo
struct
Signals
:
*
Added
:
conversation
-
updated
for
any
update
to
the
data
associated
with
the
conversation
(
topic
,
icon
,
adding
to
buddy
list
,
etc
.
)
Conversation
API
:
*
Changed
:
gaim_conv_chat_add_user
()
(
added
new_arrival
parameter
)
version
0.81
(
08
/
05
/
2004
):
Commands
API
:
*
Most
functions
now
have
a
void
*
data
argument
.
Blist
API
:
*
Added
:
gaim_buddy_get_contact_alias
*
Renamed
:
gaim_get_buddy_alias
to
gaim_buddy_get_alias
*
Renamed
:
gaim_get_buddy_alias_only
to
gaim_buddy_get_alias_only
Conversation
API
:
*
Changed
:
gaim_conv_chat_add_user
(),
added
flags
parameter
*
Changed
:
gaim_conv_chat_add_users
(),
added
GList
of
flags
parameter
*
Changed
:
gaim_conv_chat_get_users
(),
now
returns
a
GList
of
GaimConvChatBuddy
's
*
Changed
:
gaim_conv_chat_set_users
()
now
expects
a
GList
of
GaimConvChatBuddy
's
*
Added
:
gaim_conv_chat_set_user_flags
()
*
Added
:
gaim_conv_chat_get_user_flags
()
*
Added
:
gaim_conv_chat_find_user
()
*
Added
:
gaim_conv_chat_cb_new
()
*
Added
:
gaim_conv_chat_cb_find
()
*
Added
:
gaim_conv_chat_cb_destroy
()
*
Added
:
gaim_conv_chat_cb_get_name
()
Conversation
UI
ops
:
*
Added
:
chat_update_user
()
Signals
:
*
Changed
:
chat
-
buddy
-
joining
&
chat
-
buddy
-
joined
now
include
the
user
's flags
*
Changed
:
chat
-
buddy
-
joining
&
chat
-
buddy
-
leaving
are
now
booleans
,
return
TRUE
if
you
don
't want the join/leave to be displayed in the UI.
*
Added
:
chat
-
buddy
-
flags
for
when
user
's flags change
gaim_marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT
(
required
for
the
new
chat
-
buddy
-
flags
signal
)
*
Added
:
account
-
modified
for
when
account
settings
have
been
changed
.
version
0.80
(
07
/
15
/
2004
):
Gaim
API
:
*
Removed
:
PRPL
numbers
:
gaim_account_set_protocol
(),
gaim_account_get_protocol
(),
gaim_accounts_find_with_prpl_num
,
gaim_prpl_num_to_id
(),
gaim_prpl_id_to_num
(),
GaimProtocol
Protocol
Plugin
API
:
v6
*
Added
:
can_receive_file
&
send_file
to
the
GaimPluginProtocolInfo
struct
Signals
:
*
Changed
"chat-invited"
to
also
include
the
components
hash
table
so
plugins
can
use
serv_join_chat
when
the
signal
is
emitted
.
*
Added
"chat-topic-changed"
signal
plugins
know
when
a
topic
is
changed
.
version
0.79
(
06
/
24
/
2004
):
Gaim
API
:
*
gaim_url_parse
()
now
takes
two
additional
parameters
,
which
are
used
for
returning
the
username
and
password
from
the
URL
,
if
they
exist
.
*
Added
:
has_focus
UI
op
to
GaimConversationUiOps
and
GaimConvWindowUiOps
.
*
Added
:
gaim_conversation_has_focus
()
and
gaim_conv_window_has_focus
()
.
*
Removed
:
gaim_blist_save
()
Protocol
Plugin
API
:
v5
*
Changed
:
add_buddy
,
add_buddies
,
remove_buddy
,
remove_buddies
,
rename_group
and
remove_group
to
take
GaimBuddy
's and
GaimGroup
's consistently.
*
Removed
:
OPT_PROTO_BUDDY_ICON
(
replaced
by
icon_spec
)
*
Added
:
icon_spec
to
the
GaimPluginProtocolInfo
struct
version
0.78
(
05
/
30
/
2004
):
Plugin
API
:
v4
*
Added
:
actions
-
for
plugins
to
add
to
the
new
Plugin
Actions
menu
Loader
Plugin
API
:
v2
(
no
changes
)
Protocol
Plugin
API
:
v4
*
Removed
:
set_dir
,
get_dir
and
dir_search
(
not
used
,
AIM
-
centric
)
*
Removed
:
actions
(
replaced
by
generic
plugin
actions
)
Perl
Plugin
API
:
v2
(
no
changes
)
TCL
Plugin
API
:
(
no
changes
)
Signals
:
*
Added
:
"blist-node-extended-menu"
for
extending
Buddy
,
Chat
and
Group
right
-
click
menus
*
Added
:
"drawing-tooltip"
for
plugins
to
allow
plugins
to
change
text
appearing
in
tooltips
*
Added
:
"gtkblist-created"
*
Added
:
"receiving-im-msg"
and
"receiving-chat-msg"
(
these
behave
exactly
like
received
-*-
msg
used
to
)
*
Added
:
"buddy-idle-updated"
signal
,
for
when
the
idle
time
changes
.
*
Changed
:
"received-im-msg"
and
"received-chat-msg"
no
longer
pass
pointers
to
who
,
message
and
flags
,
and
are
now
void
.
*
Removed
:
"drawing-menu"
-
it
was
UI
sepecific
and
"blist-node-extended-menu"
is
superior
version
0.77
(
04
/
22
/
2004
):
Loader
&
Protocol
Plugins
independantly
versioned
Plugin
loading
now
checks
versioning
on
plugins
(
Standard
,
Loader
&
Protocol
)
new
GAIM_
{
PLUGIN
,
PRPL
,
LOADER
}
_API_VERSION
constants
Plugin
API
:
v3
*
Added
:
prefs_info
for
UI
independant
plugin
prefs
Loader
Plugin
API
:
v2
*
Added
:
api_version
at
top
of
GaimPluginLoaderInfo
struct
Protocol
Plugin
API
:
v2
*
Added
:
api_version
at
top
of
GaimPluginProtocolInfo
struct
*
Added
:
chat_menu
for
protocol
specific
extensions
to
the
chat
menu
*
Removed
:
get_away
"Nada used it. Pink elephants on parade."
*
Removed
:
protocol_prefs
(
replaced
by
generic
plugin
prefs_info
)
Perl
Plugin
API
:
v2
(
no
changes
)
TCL
API
:
(
no
changes
)
Signals
:
*
Added
:
"conversation-drag-ended"
version
0.76
(
04
/
01
/
2004
):
Plugin
API
:
v2
Perl
Plugin
API
:
v2
Loader
Plugin
API
:
(
not
versioned
)
Protocol
Plugin
API
:
(
not
versioned
)
*
Added
:
protocol_prefs
for
protocol
specific
preferences
*
Added
:
reject_chat
so
protocols
can
act
on
chat
invite
rejection
TCL
Plugin
API
:
(
not
versioned
)
*
Changes
to
plugin
registration
to
show
descriptions