changeset 24871:bd2f4c6add99

These translated strings don't need to be duplicated with g_snprintf. And since the function is called on error only, I really don't think we need to keep around such large (8K) static buffers. References #7910.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Sat, 27 Dec 2008 08:41:35 +0000
parents 41e69c65b006
children 955bfda56492
files libpurple/protocols/msn/error.c
diffstat 1 files changed, 64 insertions(+), 78 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/protocols/msn/error.c	Tue Dec 23 16:55:49 2008 +0000
+++ b/libpurple/protocols/msn/error.c	Sat Dec 27 08:41:35 2008 +0000
@@ -27,191 +27,178 @@
 const char *
 msn_error_get_text(unsigned int type, gboolean *debug)
 {
-	static char msg[MSN_BUF_LEN];
+	static char msg[256];
+	const char *result;
 	*debug = FALSE;
 
 	switch (type) {
 		case 0:
-			g_snprintf(msg, sizeof(msg),
-			           _("Unable to parse message"));
+			result = _("Unable to parse message");
 			*debug = TRUE;
 			break;
 		case 200:
-			g_snprintf(msg, sizeof(msg),
-			           _("Syntax Error (probably a client bug)"));
+			result = _("Syntax Error (probably a client bug)");
 			*debug = TRUE;
 			break;
 		case 201:
-			g_snprintf(msg, sizeof(msg),
-			           _("Invalid email address"));
+			result = _("Invalid email address");
 			break;
 		case 205:
-			g_snprintf(msg, sizeof(msg), _("User does not exist"));
+			result = _("User does not exist");
 			break;
 		case 206:
-			g_snprintf(msg, sizeof(msg),
-			           _("Fully qualified domain name missing"));
+			result = _("Fully qualified domain name missing");
 			break;
 		case 207:
-			g_snprintf(msg, sizeof(msg), _("Already logged in"));
+			result = _("Already logged in");
 			break;
 		case 208:
-			g_snprintf(msg, sizeof(msg), _("Invalid username"));
+			result = _("Invalid username");
 			break;
 		case 209:
-			g_snprintf(msg, sizeof(msg), _("Invalid friendly name"));
+			result = _("Invalid friendly name");
 			break;
 		case 210:
-			g_snprintf(msg, sizeof(msg), _("List full"));
+			result = _("List full");
 			break;
 		case 215:
-			g_snprintf(msg, sizeof(msg), _("Already there"));
+			result = _("Already there");
 			*debug = TRUE;
 			break;
 		case 216:
-			g_snprintf(msg, sizeof(msg), _("Not on list"));
+			result = _("Not on list");
 			break;
 		case 217:
-			g_snprintf(msg, sizeof(msg), _("User is offline"));
+			result = _("User is offline");
 			break;
 		case 218:
-			g_snprintf(msg, sizeof(msg), _("Already in the mode"));
+			result = _("Already in the mode");
 			*debug = TRUE;
 			break;
 		case 219:
-			g_snprintf(msg, sizeof(msg), _("Already in opposite list"));
+			result = _("Already in opposite list");
 			*debug = TRUE;
 			break;
 		case 223:
-			g_snprintf(msg, sizeof(msg), _("Too many groups"));
+			result = _("Too many groups");
 			break;
 		case 224:
-			g_snprintf(msg, sizeof(msg), _("Invalid group"));
+			result = _("Invalid group");
 			break;
 		case 225:
-			g_snprintf(msg, sizeof(msg), _("User not in group"));
+			result = _("User not in group");
 			break;
 		case 229:
-			g_snprintf(msg, sizeof(msg), _("Group name too long"));
+			result = _("Group name too long");
 			break;
 		case 230:
-			g_snprintf(msg, sizeof(msg), _("Cannot remove group zero"));
+			result = _("Cannot remove group zero");
 			*debug = TRUE;
 			break;
 		case 231:
-			g_snprintf(msg, sizeof(msg),
-			           _("Tried to add a user to a group "
-			             "that doesn't exist"));
+			result = _("Tried to add a user to a group that doesn't exist");
 			break;
 		case 280:
-			g_snprintf(msg, sizeof(msg), _("Switchboard failed"));
+			result = _("Switchboard failed");
 			*debug = TRUE;
 			break;
 		case 281:
-			g_snprintf(msg, sizeof(msg), _("Notify transfer failed"));
+			result = _("Notify transfer failed");
 			*debug = TRUE;
 			break;
 
 		case 300:
-			g_snprintf(msg, sizeof(msg), _("Required fields missing"));
+			result = _("Required fields missing");
 			*debug = TRUE;
 			break;
 		case 301:
-			g_snprintf(msg, sizeof(msg), _("Too many hits to a FND"));
+			result = _("Too many hits to a FND");
 			*debug = TRUE;
 			break;
 		case 302:
-			g_snprintf(msg, sizeof(msg), _("Not logged in"));
+			result = _("Not logged in");
 			break;
 
 		case 500:
-			g_snprintf(msg, sizeof(msg),
-			           _("Service temporarily unavailable"));
+			result = _("Service temporarily unavailable");
 			break;
 		case 501:
-			g_snprintf(msg, sizeof(msg), _("Database server error"));
+			result = _("Database server error");
 			*debug = TRUE;
 			break;
 		case 502:
-			g_snprintf(msg, sizeof(msg), _("Command disabled"));
+			result = _("Command disabled");
 			*debug = TRUE;
 			break;
 		case 510:
-			g_snprintf(msg, sizeof(msg), _("File operation error"));
+			result = _("File operation error");
 			*debug = TRUE;
 			break;
 		case 520:
-			g_snprintf(msg, sizeof(msg), _("Memory allocation error"));
+			result = _("Memory allocation error");
 			*debug = TRUE;
 			break;
 		case 540:
-			g_snprintf(msg, sizeof(msg),
-			           _("Wrong CHL value sent to server"));
+			result = _("Wrong CHL value sent to server");
 			*debug = TRUE;
 			break;
 
 		case 600:
-			g_snprintf(msg, sizeof(msg), _("Server busy"));
+			result = _("Server busy");
 			break;
 		case 601:
-			g_snprintf(msg, sizeof(msg), _("Server unavailable"));
+			result = _("Server unavailable");
 			break;
 		case 602:
-			g_snprintf(msg, sizeof(msg),
-			           _("Peer notification server down"));
+			result = _("Peer notification server down");
 			*debug = TRUE;
 			break;
 		case 603:
-			g_snprintf(msg, sizeof(msg), _("Database connect error"));
+			result = _("Database connect error");
 			*debug = TRUE;
 			break;
 		case 604:
-			g_snprintf(msg, sizeof(msg),
-					   _("Server is going down (abandon ship)"));
+			result = _("Server is going down (abandon ship)");
 			break;
 		case 605:
-			g_snprintf(msg, sizeof(msg), _("Server unavailable"));
+			result = _("Server unavailable");
 			break;
 
 		case 707:
-			g_snprintf(msg, sizeof(msg),
-			           _("Error creating connection"));
+			result = _("Error creating connection");
 			*debug = TRUE;
 			break;
 		case 710:
-			g_snprintf(msg, sizeof(msg),
-			           _("CVR parameters are either unknown "
-			             "or not allowed"));
+			result = _("CVR parameters are either unknown or not allowed");
 			*debug = TRUE;
 			break;
 		case 711:
-			g_snprintf(msg, sizeof(msg), _("Unable to write"));
+			result = _("Unable to write");
 			break;
 		case 712:
-			g_snprintf(msg, sizeof(msg), _("Session overload"));
+			result = _("Session overload");
 			*debug = TRUE;
 			break;
 		case 713:
-			g_snprintf(msg, sizeof(msg), _("User is too active"));
+			result = _("User is too active");
 			break;
 		case 714:
-			g_snprintf(msg, sizeof(msg), _("Too many sessions"));
+			result = _("Too many sessions");
 			break;
 		case 715:
-			g_snprintf(msg, sizeof(msg), _("Passport not verified"));
+			result = _("Passport not verified");
 			break;
 		case 717:
-			g_snprintf(msg, sizeof(msg), _("Bad friend file"));
+			result = _("Bad friend file");
 			*debug = TRUE;
 			break;
 		case 731:
-			g_snprintf(msg, sizeof(msg), _("Not expected"));
+			result = _("Not expected");
 			*debug = TRUE;
 			break;
 
 		case 800:
-			g_snprintf(msg, sizeof(msg),
-			           _("Friendly name changes too rapidly"));
+			result = _("Friendly name changes too rapidly");
 			break;
 
 		case 910:
@@ -220,37 +207,34 @@
 		case 919:
 		case 921:
 		case 922:
-			g_snprintf(msg, sizeof(msg), _("Server too busy"));
+			result = _("Server too busy");
 			break;
 		case 911:
 		case 917:
-			g_snprintf(msg, sizeof(msg), _("Authentication failed"));
+			result = _("Authentication failed");
 			break;
 		case 913:
-			g_snprintf(msg, sizeof(msg), _("Not allowed when offline"));
+			result = _("Not allowed when offline");
 			break;
 		case 914:
 		case 915:
 		case 916:
-			g_snprintf(msg, sizeof(msg), _("Server unavailable"));
+			result = _("Server unavailable");
 			break;
 		case 920:
-			g_snprintf(msg, sizeof(msg), _("Not accepting new users"));
+			result = _("Not accepting new users");
 			break;
 		case 923:
-			g_snprintf(msg, sizeof(msg),
-			           _("Kids Passport without parental consent"));
+			result = _("Kids Passport without parental consent");
 			break;
 		case 924:
-			g_snprintf(msg, sizeof(msg),
-			           _("Passport account not yet verified"));
+			result = _("Passport account not yet verified");
 			break;
 		case 927:
-			g_snprintf(msg, sizeof(msg),
-			           _("Passport account suspended"));
+			result = _("Passport account suspended");
 			break;
 		case 928:
-			g_snprintf(msg, sizeof(msg), _("Bad ticket"));
+			result = _("Bad ticket");
 			*debug = TRUE;
 			break;
 
@@ -258,23 +242,25 @@
 			g_snprintf(msg, sizeof(msg),
 			           _("Unknown Error Code %d"), type);
 			*debug = TRUE;
+			result = msg;
 			break;
 	}
 
-	return msg;
+	return result;
 }
 
 void
 msn_error_handle(MsnSession *session, unsigned int type)
 {
-	char buf[MSN_BUF_LEN];
+	char *buf;
 	gboolean debug;
 
-	g_snprintf(buf, sizeof(buf), _("MSN Error: %s\n"),
-	           msn_error_get_text(type, &debug));
+	buf = g_strdup_printf(_("MSN Error: %s\n"),
+	                      msn_error_get_text(type, &debug));
 	if (debug)
 		purple_debug_warning("msn", "error %d: %s\n", type, buf);
 	else
 		purple_notify_error(session->account->gc, NULL, buf, NULL);
+	g_free(buf);
 }