changeset 24922:b333ebd093df

merge of '5f8528ffc18355719bd406e1c579e0e369fb2585' and '7811d6e917a33b224cad7842445e932470fcc55e'
author Stu Tomlinson <stu@nosnilmot.com>
date Thu, 08 Jan 2009 14:16:42 +0000
parents 2aa4b88bdcf8 (current diff) ca4ccf646993 (diff)
children 8a930bc2734d
files
diffstat 17 files changed, 139 insertions(+), 104 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Jan 08 14:15:16 2009 +0000
+++ b/ChangeLog	Thu Jan 08 14:16:42 2009 +0000
@@ -15,6 +15,8 @@
 	XMPP:
 	* Support for XEP-0191 blocking.  (Vijay Raghunathan)
 	* Don't put SASL PLAIN or IQ Auth passwords in debug logs. (Paul Aurich)
+	* Fix removal of avatars (both PEP and vCard), we weren't removing
+	  them correctly before. (Paul Aurich)
 
 	Pidgin:
 	* Fix a crash in the Add Account dialog when changing protocols under
@@ -22,6 +24,7 @@
 
 	Finch:
 	* Redirect stderr outputs to the debug window.
+	* Fix rebinding actions with the arrow-keys and tab.
 
 version 2.5.3 (12/20/2008):
 	libpurple:
--- a/ChangeLog.API	Thu Jan 08 14:15:16 2009 +0000
+++ b/ChangeLog.API	Thu Jan 08 14:16:42 2009 +0000
@@ -1,5 +1,21 @@
 Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul
 
+version 2.5.4 (??/??/????):
+	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:
--- a/configure.ac	Thu Jan 08 14:15:16 2009 +0000
+++ b/configure.ac	Thu Jan 08 14:16:42 2009 +0000
@@ -2285,6 +2285,30 @@
         AC_DEFINE(HAVE_TM_GMTOFF, 1, [Define if you have a tm_gmtoff member in struct tm])
 fi
 
+AC_CACHE_CHECK([whether va_lists can be copied by value], ac_cv_va_val_copy,[
+	AC_TRY_RUN([#include <stdarg.h>
+#include <stdlib.h>
+	void f (int i, ...) {
+	va_list args1, args2;
+	va_start (args1, i);
+	args2 = args1;
+	if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
+	  exit (1);
+	va_end (args1); va_end (args2);
+	}
+	int main() {
+	  f (0, 42);
+	  return 0;
+	}],
+	[ac_cv_va_val_copy=yes],
+	[ac_cv_va_val_copy=no],
+	[ac_cv_va_val_copy=yes])
+])
+
+if test "x$ac_cv_va_val_copy" = "xno"; then
+	AC_DEFINE(VA_COPY_AS_ARRAY, 1, ['va_lists' cannot be copied as values])
+fi
+
 dnl #######################################################################
 dnl # Check for check
 dnl #######################################################################
--- a/finch/libgnt/gntkeys.c	Thu Jan 08 14:15:16 2009 +0000
+++ b/finch/libgnt/gntkeys.c	Thu Jan 08 14:16:42 2009 +0000
@@ -131,7 +131,7 @@
 				code[ind] = (c ? 1 : 'a') + ch;
 				INSERT_COMB(str, code);
 			}
-			if (c == 0) {
+			if (c == 0 && a) {
 				INSERT_COMB("tab", "\033\t");
 				INSERT_COMB_CODE("up", "\033", GNT_KEY_UP);
 				INSERT_COMB_CODE("down", "\033", GNT_KEY_DOWN);
--- a/libpurple/dbus-server.c	Thu Jan 08 14:15:16 2009 +0000
+++ b/libpurple/dbus-server.c	Thu Jan 08 14:16:42 2009 +0000
@@ -803,7 +803,8 @@
 void
 purple_dbus_init(void)
 {
-	dbus_g_thread_init();
+	if (g_thread_supported())
+		dbus_g_thread_init();
 
 	purple_dbus_init_ids();
 
--- a/libpurple/plugins/perl/common/PluginPref.xs	Thu Jan 08 14:15:16 2009 +0000
+++ b/libpurple/plugins/perl/common/PluginPref.xs	Thu Jan 08 14:16:42 2009 +0000
@@ -70,10 +70,16 @@
 
 
 void
-purple_plugin_pref_get_bounds(pref, min, max)
+purple_plugin_pref_get_bounds(pref, OUTLIST int min, OUTLIST int max)
 	Purple::PluginPref pref
-	int *min
-	int *max
+	# According to the perlxs manual page we shouldn't need to specify a
+	# prototype here because "[p]arameters preceded by OUTLIST keyword do
+	# not appear in the usage signature of the generated Perl function."
+	# however that appears to only work for the usage error message and
+	# not for the call to newXSproto. Since I can't find any documentation
+	# for newXSproto at the moment I have no idea if that matters so
+	# override the prototype here.
+	PROTOTYPE: $
 
 void
 purple_plugin_pref_get_choices(pref)
--- a/libpurple/plugins/perl/common/Util.xs	Thu Jan 08 14:15:16 2009 +0000
+++ b/libpurple/plugins/perl/common/Util.xs	Thu Jan 08 14:16:42 2009 +0000
@@ -99,27 +99,10 @@
 	const char *program
 
 gchar_own *
-purple_strcasereplace(string, delimiter, replacement)
-	const char *string
-	const char *delimiter
-	const char *replacement
-
-const char *
-purple_strcasestr(haystack, needle)
-	const char *haystack
-	const char *needle
-
-gchar_own *
 purple_strdup_withhtml(src)
 	const gchar *src
 
 gchar_own *
-purple_strreplace(string, delimiter, replacement)
-	const char *string
-	const char *delimiter
-	const char *replacement
-
-gchar_own *
 purple_text_strip_mnemonic(in)
 	const char *in
 
@@ -356,10 +339,6 @@
 purple_str_size_to_units(size)
 	size_t size
 
-void
-purple_str_strip_char(IN_OUT char str, thechar)
-	char thechar
-
 time_t
 purple_str_to_time(timestamp, utc = FALSE, tm = NULL, OUTLIST long tz_off, OUTLIST const char *rest)
 	const char *timestamp
@@ -512,11 +491,6 @@
 	const char *artist
 	const char *album
 
-void
-purple_util_chrreplace(IN_OUT char string, delimiter, replacement)
-	char delimiter
-	char replacement
-
 gchar_own*
 purple_util_format_song_info(title, artist, album, unused)
 	const char* title
--- a/libpurple/plugins/perl/perl-handlers.c	Thu Jan 08 14:15:16 2009 +0000
+++ b/libpurple/plugins/perl/perl-handlers.c	Thu Jan 08 14:16:42 2009 +0000
@@ -289,14 +289,18 @@
 	PUSHMARK(sp);
 
 	purple_signal_get_values(handler->instance, handler->signal,
-	                       &ret_value, &value_count, &values);
+	                         &ret_value, &value_count, &values);
 
 	sv_args   = g_new(SV *,    value_count);
 	copy_args = g_new(void **, value_count);
 
 	for (i = 0; i < value_count; i++) {
 		sv_args[i] = purple_perl_sv_from_vargs(values[i],
+#ifdef VA_COPY_AS_ARRAY
+		                                       args,
+#else
 		                                       (va_list*)&args,
+#endif
 		                                       &copy_args[i]);
 
 		XPUSHs(sv_args[i]);
--- a/libpurple/protocols/jabber/buddy.c	Thu Jan 08 14:15:16 2009 +0000
+++ b/libpurple/protocols/jabber/buddy.c	Thu Jan 08 14:16:42 2009 +0000
@@ -459,7 +459,10 @@
 
 		avatar_data = purple_imgstore_get_data(img);
 		avatar_len = purple_imgstore_get_size(img);
-		/* have to get rid of the old PHOTO if it exists */
+		/* Get rid of an old PHOTO if one exists.
+		 * TODO: This may want to be modified to remove all old PHOTO
+		 * children, at the moment some people have managed to get
+		 * multiple PHOTO entries in their vCard. */
 		if((photo = xmlnode_get_child(vc_node, "PHOTO"))) {
 			xmlnode_free(photo);
 		}
@@ -473,6 +476,12 @@
 
 		xmlnode_insert_data(binval, enc, -1);
 		g_free(enc);
+	} else if (vc_node) {
+		xmlnode *photo;
+		/* TODO: Remove all PHOTO children? (see above note) */
+		if ((photo = xmlnode_get_child(vc_node, "PHOTO"))) {
+			xmlnode_free(photo);
+		}
 	}
 
 	if (vc_node != NULL) {
@@ -578,32 +587,30 @@
 				jabber_pep_publish((JabberStream*)gc->proto_data, publish);
 				
 				g_free(hash);
-			} else { /* if(img) */
-				/* remove the metadata */
-				xmlnode *metadata, *item;
-				xmlnode *publish = xmlnode_new("publish");
-				xmlnode_set_attrib(publish,"node",AVATARNAMESPACEMETA);
-				
-				item = xmlnode_new_child(publish, "item");
-				
-				metadata = xmlnode_new_child(item, "metadata");
-				xmlnode_set_namespace(metadata,AVATARNAMESPACEMETA);
-				
-				xmlnode_new_child(metadata, "stop");
-				
-				/* publish the metadata */
-				jabber_pep_publish((JabberStream*)gc->proto_data, publish);
+			} else {
+				purple_debug_error("jabber", "jabber_set_buddy_icon received non-png data");
 			}
 		} else {
-			purple_debug(PURPLE_DEBUG_ERROR, "jabber",
-						 "jabber_set_buddy_icon received non-png data");
+			/* remove the metadata */
+			xmlnode *metadata, *item;
+			xmlnode *publish = xmlnode_new("publish");
+			xmlnode_set_attrib(publish,"node",AVATARNAMESPACEMETA);
+
+			item = xmlnode_new_child(publish, "item");
+
+			metadata = xmlnode_new_child(item, "metadata");
+			xmlnode_set_namespace(metadata,AVATARNAMESPACEMETA);
+
+			xmlnode_new_child(metadata, "stop");
+
+			/* publish the metadata */
+			jabber_pep_publish((JabberStream*)gc->proto_data, publish);
 		}
 	}
 
-	/* even when the image is not png, we can still publish the vCard, since this
-	   one doesn't require a specific image type */
-
-	/* publish vCard for those poor older clients */
+	/* vCard avatars do not have an image type requirement so update our
+	 * vCard avatar regardless of image type for those poor older clients
+	 */
 	jabber_set_info(gc, purple_account_get_user_info(gc->account));
 
 	gpresence = purple_account_get_presence(gc->account);
@@ -614,11 +621,7 @@
 /*
  * This is the callback from the "ok clicked" for "set vCard"
  *
- * Formats GSList data into XML-encoded string and returns a pointer
- * to said string.
- *
- * g_free()'ing the returned string space is the responsibility of
- * the caller.
+ * Sets the vCard with data from PurpleRequestFields.
  */
 static void
 jabber_format_info(PurpleConnection *gc, PurpleRequestFields *fields)
--- a/libpurple/protocols/sametime/Makefile.am	Thu Jan 08 14:15:16 2009 +0000
+++ b/libpurple/protocols/sametime/Makefile.am	Thu Jan 08 14:16:42 2009 +0000
@@ -8,24 +8,22 @@
 SAMETIMESOURCES = sametime.c
 
 AM_CFLAGS = \
-	$(st) \
-	-DG_LOG_DOMAIN=\"sametime\"
+	$(st)
 
 if STATIC_SAMETIME
 
 st = -DPURPLE_STATIC_PRPL
 noinst_LTLIBRARIES     = libsametime.la
-libsametime_la_SOURCES = $(SAMETIMESOURCES)
 libsametime_la_CFLAGS  = $(AM_CFLAGS)
 
 else
 
 st =
 pkg_LTLIBRARIES     = libsametime.la
-libsametime_la_SOURCES = $(SAMETIMESOURCES)
 
 endif
 
+libsametime_la_SOURCES = $(SAMETIMESOURCES)
 libsametime_la_LDFLAGS = -module -avoid-version
 libsametime_la_LIBADD = $(GLIB_LIBS) $(MEANWHILE_LIBS)
 
@@ -34,5 +32,6 @@
 	-I$(top_builddir)/libpurple \
 	$(DEBUG_CFLAGS) \
 	$(GLIB_CFLAGS) \
-	$(MEANWHILE_CFLAGS)
+	$(MEANWHILE_CFLAGS) \
+	-DG_LOG_DOMAIN=\"sametime\"
 
--- a/libpurple/protocols/sametime/Makefile.mingw	Thu Jan 08 14:15:16 2009 +0000
+++ b/libpurple/protocols/sametime/Makefile.mingw	Thu Jan 08 14:16:42 2009 +0000
@@ -21,6 +21,8 @@
   endif
 endif
 
+CFLAGS += -DG_LOG_DOMAIN=\"sametime\"
+
 ##
 ## INCLUDE PATHS
 ##
--- a/pidgin/gtkaccount.c	Thu Jan 08 14:15:16 2009 +0000
+++ b/pidgin/gtkaccount.c	Thu Jan 08 14:16:42 2009 +0000
@@ -1545,7 +1545,10 @@
 	pidgin_dialog_add_button(GTK_DIALOG(win), GTK_STOCK_CANCEL, G_CALLBACK(cancel_account_prefs_cb), dialog);
 
 	/* Save button */
-	button = pidgin_dialog_add_button(GTK_DIALOG(win), GTK_STOCK_SAVE, G_CALLBACK(ok_account_prefs_cb), dialog);
+	button = pidgin_dialog_add_button(GTK_DIALOG(win),
+	                                  (type == PIDGIN_ADD_ACCOUNT_DIALOG) ? GTK_STOCK_ADD : GTK_STOCK_SAVE,
+	                                  G_CALLBACK(ok_account_prefs_cb),
+	                                  dialog);
 	if (dialog->account == NULL)
 		gtk_widget_set_sensitive(button, FALSE);
 	dialog->ok_button = button;
--- a/pidgin/gtkpounce.c	Thu Jan 08 14:15:16 2009 +0000
+++ b/pidgin/gtkpounce.c	Thu Jan 08 14:16:42 2009 +0000
@@ -484,7 +484,7 @@
 
 void
 pidgin_pounce_editor_show(PurpleAccount *account, const char *name,
-							PurplePounce *cur_pounce)
+                          PurplePounce *cur_pounce)
 {
 	PidginPounceDialog *dialog;
 	GtkWidget *window;
@@ -848,10 +848,12 @@
 	g_signal_connect(G_OBJECT(button), "clicked",
 					 G_CALLBACK(cancel_cb), dialog);
 
-	/* Save button */
-	dialog->save_button = button = gtk_dialog_add_button(GTK_DIALOG(window), GTK_STOCK_SAVE, GTK_RESPONSE_OK);
+	/* Save/Add button */
+	dialog->save_button = button = gtk_dialog_add_button(GTK_DIALOG(window),
+	                                                     (cur_pounce == NULL ? GTK_STOCK_ADD : GTK_STOCK_SAVE),
+	                                                     GTK_RESPONSE_OK);
 	g_signal_connect(G_OBJECT(button), "clicked",
-					 G_CALLBACK(save_pounce_cb), dialog);
+	                 G_CALLBACK(save_pounce_cb), dialog);
 
 	if (*gtk_entry_get_text(GTK_ENTRY(dialog->buddy_entry)) == '\0')
 		gtk_widget_set_sensitive(button, FALSE);
@@ -1274,7 +1276,6 @@
 	g_signal_connect(G_OBJECT(treeview), "button_press_event",
 					 G_CALLBACK(pounce_double_click_cb), dialog);
 
-
 	gtk_container_add(GTK_CONTAINER(sw), treeview);
 	gtk_widget_show(treeview);
 
--- a/pidgin/gtksmiley.c	Thu Jan 08 14:15:16 2009 +0000
+++ b/pidgin/gtksmiley.c	Thu Jan 08 14:16:42 2009 +0000
@@ -37,7 +37,7 @@
 #include "gtkutils.h"
 #include "pidginstock.h"
 
-#define PIDGIN_RESPONSE_EDIT 1000
+#define PIDGIN_RESPONSE_MODIFY 1000
 
 struct _PidginSmiley
 {
@@ -590,7 +590,7 @@
 			GTK_RESPONSE_NO, selected > 0);
 
 	gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog->window),
-			PIDGIN_RESPONSE_EDIT, selected > 0);
+	                                  PIDGIN_RESPONSE_MODIFY, selected > 0);
 }
 
 static void
@@ -682,7 +682,7 @@
 			g_free(smiley_manager);
 			smiley_manager = NULL;
 			break;
-		case PIDGIN_RESPONSE_EDIT:
+		case PIDGIN_RESPONSE_MODIFY:
 			/* Find smiley of selection... */
 			selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview));
 			gtk_tree_selection_selected_foreach(selection, edit_selected_cb, dialog);
@@ -713,7 +713,7 @@
 			NULL,
 			GTK_DIALOG_DESTROY_WITH_PARENT,
 			GTK_STOCK_ADD, GTK_RESPONSE_YES,
-			PIDGIN_STOCK_EDIT, PIDGIN_RESPONSE_EDIT,
+			PIDGIN_STOCK_MODIFY, PIDGIN_RESPONSE_MODIFY,
 			GTK_STOCK_DELETE, GTK_RESPONSE_NO,
 			GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
 			NULL);
@@ -722,8 +722,8 @@
 	gtk_window_set_role(GTK_WINDOW(win), "custom_smiley_manager");
 	gtk_container_set_border_width(GTK_CONTAINER(win),PIDGIN_HIG_BORDER);
 	gtk_dialog_set_response_sensitive(GTK_DIALOG(win), GTK_RESPONSE_NO, FALSE);
-	gtk_dialog_set_response_sensitive(GTK_DIALOG(win), PIDGIN_RESPONSE_EDIT,
-									  FALSE);
+	gtk_dialog_set_response_sensitive(GTK_DIALOG(win),
+	                                  PIDGIN_RESPONSE_MODIFY, FALSE);
 
 	g_signal_connect(win, "response", G_CALLBACK(smiley_manager_select_cb),
 			dialog);
--- a/pidgin/plugins/notify.c	Thu Jan 08 14:15:16 2009 +0000
+++ b/pidgin/plugins/notify.c	Thu Jan 08 14:16:42 2009 +0000
@@ -555,9 +555,12 @@
 }
 
 static void
-handle_urgent(PidginWindow *win, gboolean set)
+handle_urgent(PidginWindow *purplewin, gboolean set)
 {
-	pidgin_set_urgent(GTK_WINDOW(win->window), set);
+	g_return_if_fail(purplewin != NULL);
+	g_return_if_fail(purplewin->window != NULL);
+
+	pidgin_set_urgent(GTK_WINDOW(purplewin->window), set);
 }
 
 static void
--- a/pidgin/win32/nsis/translations/german.nsh	Thu Jan 08 14:15:16 2009 +0000
+++ b/pidgin/win32/nsis/translations/german.nsh	Thu Jan 08 14:16:42 2009 +0000
@@ -5,8 +5,8 @@
 ;;  German language strings for the Windows Pidgin NSIS installer.
 ;;  Windows Code page: 1252
 ;;
-;;  Author: Bjoern Voigt <bjoern@cs.tu-berlin.de>, 2007.
-;;  Version 6
+;;  Author: Bjoern Voigt <bjoern@cs.tu-berlin.de>, 2008.
+;;  Version 3
 ;;
  
 ; Startup checks
@@ -33,7 +33,7 @@
  
 ; GTK+ Directory Page
 !define GTK_UPGRADE_PROMPT			"Eine alte Version der GTK+ Runtime wurde gefunden. Möchten Sie aktualisieren?$\rHinweis: $(^Name) funktioniert evtl. nicht, wenn Sie nicht aktualisieren."
-!define GTK_WINDOWS_INCOMPATIBLE		"Windows 95/98/Me sind inkompatibel zu GTK+ 2.8.0 oder neuer.  GTK+ ${GTK_INSTALL_VERSION} wird nicht installiert.$\rWenn Sie nicht GTK+ ${GTK_MIN_VERSION} oder neuer installiert haben, wird die Installation jetzt abgebrochent."
+!define GTK_WINDOWS_INCOMPATIBLE		"Windows 95/98/Me sind inkompatibel zu GTK+ 2.8.0 oder neuer.  GTK+ ${GTK_INSTALL_VERSION} wird nicht installiert.$\rWenn Sie nicht GTK+ ${GTK_MIN_VERSION} oder neuer installiert haben, wird die Installation jetzt abgebrochen."
  
 ; Installer Finish Page
 !define PIDGIN_FINISH_VISIT_WEB_SITE	"Besuchen Sie die Pidgin Webseite"
--- a/po/fi.po	Thu Jan 08 14:15:16 2009 +0000
+++ b/po/fi.po	Thu Jan 08 14:16:42 2009 +0000
@@ -10,8 +10,8 @@
 msgstr ""
 "Project-Id-Version: Pidgin\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-12-16 00:12+0200\n"
-"PO-Revision-Date: 2008-12-16 00:16+0200\n"
+"POT-Creation-Date: 2009-01-07 13:30+0200\n"
+"PO-Revision-Date: 2009-01-07 13:30+0200\n"
 "Last-Translator: Timo Jyrinki <timo.jyrinki@iki.fi>\n"
 "Language-Team: \n"
 "MIME-Version: 1.0\n"
@@ -1486,7 +1486,6 @@
 "Kun uusi keskustelu aloitetaan, tämä liitännäinen näyttää edellisen "
 "keskustelun keskusteluikkunassa."
 
-#, c-format
 msgid "Online"
 msgstr "Linjoilla"
 
@@ -1917,7 +1916,6 @@
 msgid "Transfer of file %s complete"
 msgstr "Tiedoston %s siirto valmis"
 
-#, c-format
 msgid "File transfer complete"
 msgstr "Tiedostonsiirto valmis"
 
@@ -1925,7 +1923,6 @@
 msgid "You canceled the transfer of %s"
 msgstr "Peruutit tiedoston %s siirron"
 
-#, c-format
 msgid "File transfer cancelled"
 msgstr "Tiedostonsiirto peruutettu"
 
@@ -2132,7 +2129,6 @@
 msgid "You are using %s, but this plugin requires %s."
 msgstr "Käytät: %s, mutta tämä liitännäinen vaatii: %s."
 
-#, c-format
 msgid "This plugin has not defined an ID."
 msgstr "Tämä liitännäinen ei ole määritellyt tunnistetta (ID)."
 
@@ -3024,7 +3020,6 @@
 #. get_yahoo_status_from_purple_status() returns YAHOO_STATUS_CUSTOM for
 #. * the generic away state (YAHOO_STATUS_TYPE_AWAY) with no message
 #. Away stuff
-#, c-format
 msgid "Away"
 msgstr "Poissa"
 
@@ -3905,7 +3900,6 @@
 msgid "Extended Away"
 msgstr "Pidennetty poissaolo"
 
-#, c-format
 msgid "Do Not Disturb"
 msgstr "Älä häiritse"
 
@@ -4139,6 +4133,9 @@
 msgid "Re-initializing Stream"
 msgstr "Uudelleenalustetaan datavirtaa"
 
+msgid "Server doesn't support blocking"
+msgstr "Palvelin ei tue estämistä"
+
 msgid "Not Authorized"
 msgstr "Ei valtuuksia"
 
@@ -4891,7 +4888,6 @@
 msgid "Passport account not yet verified"
 msgstr "Passport-tiliä ei ole verifioitu"
 
-#, c-format
 msgid "Passport account suspended"
 msgstr "Passport-tili jäädytetty"
 
@@ -6093,7 +6089,6 @@
 msgid "Error. SSL support is not installed."
 msgstr "Virhe. SSL-tuki ei ole asennettu."
 
-#, c-format
 msgid "This conference has been closed. No more messages can be sent."
 msgstr "Tämä konferenssi on suljettu. Uusia viestejä ei voi lähettää."
 
@@ -6359,23 +6354,18 @@
 msgid "Screen Sharing"
 msgstr "Näytön jakaminen"
 
-#, c-format
 msgid "Free For Chat"
 msgstr "Vapaana keskusteluun"
 
-#, c-format
 msgid "Not Available"
 msgstr "Ei tavoitettavissa"
 
-#, c-format
 msgid "Occupied"
 msgstr "Varattu"
 
-#, c-format
 msgid "Web Aware"
 msgstr "Net-tietoinen"
 
-#, c-format
 msgid "Invisible"
 msgstr "Näkymätön"
 
@@ -6477,19 +6467,16 @@
 msgstr "_OK"
 
 #, c-format
-msgid ""
-"You may be disconnected shortly.  You may want to use TOC until this is "
-"fixed.  Check %s for updates."
-msgstr ""
-"Yhteytesi saatetaan katkaista kohta. Saatat haluta käyttää TOC-"
-"yhteyskäytäntöä kunnes tämä on korjattu. Tarkista päivitykset: %s"
+msgid "You may be disconnected shortly.  If so, check %s for updates."
+msgstr ""
+"Yhteytesi saattaa katketa kohta. Jos niin käy, tarkista päivitykset: %s."
 
 msgid "Unable to get a valid AIM login hash."
 msgstr "Kelvollista AIM-sisäänkirjautumistiivistettä ei saatu."
 
 #, c-format
 msgid "You may be disconnected shortly.  Check %s for updates."
-msgstr "Yhteytesi saatetaan katkaista kohta. Tarkista päivitykset: %s."
+msgstr "Yhteytesi saattaa katketa kohta. Tarkista päivitykset: %s."
 
 msgid "Unable to get a valid login hash."
 msgstr "Kelvollista sisäänkirjautumistiivistettä ei saatu."
@@ -7047,7 +7034,6 @@
 msgid "Attempting to connect to %s:%hu."
 msgstr "Yritetään yhdistää kohteeseen %s:%hu."
 
-#, c-format
 msgid "Attempting to connect via proxy server."
 msgstr "Yritetään yhdistämistä välipalvelimen kautta."
 
@@ -9209,6 +9195,9 @@
 msgid "SIP usernames may not contain whitespaces or @ symbols"
 msgstr "SIP-käyttäjänimissä ei tule olla välilyöntejä tai @-merkkejä"
 
+msgid "SIP connect server not specified"
+msgstr "SIP-yhteyspalvelinta ei määritelty"
+
 #. *< type
 #. *< ui_requirement
 #. *< flags
@@ -13897,6 +13886,13 @@
 "Tätä liitännäistä voidaan käyttää XMPP-palvelimien tai -asiakasohjelmien "
 "virheenjäljitykseen."
 
+#~ msgid ""
+#~ "You may be disconnected shortly.  You may want to use TOC until this is "
+#~ "fixed.  Check %s for updates."
+#~ msgstr ""
+#~ "Yhteytesi saatetaan katkaista kohta. Saatat haluta käyttää TOC-"
+#~ "yhteyskäytäntöä kunnes tämä on korjattu. Tarkista päivitykset: %s"
+
 #~ msgid "Connection to server lost (no data received within %d second)"
 #~ msgid_plural ""
 #~ "Connection to server lost (no data received within %d seconds)"