qulogic/pidgin
Clone
Summary
Browse
Changes
Graph
Prepping for the next round of development
release-2.x.y
2020-06-11, Gary Kramlich
ff12f1b14a2e
Prepping for the next round of development
Pidgin
and
Finch
:
The
Pimpin
' Penguin IM Clients That'
re
Good
for
the
Soul
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