[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pidgin-commits
Subject:    pidgin.next.minor: 6746d602: Handle non-ASCII protocol names on Win32
From:       datallah () pidgin ! im
Date:       2009-10-31 19:25:40
Message-ID: 20091031192541.E2E0FAFD0BD5 () rock ! pidgin ! im
[Download RAW message or body]

-----------------------------------------------------------------
Revision: 6746d602d91ae610baffb8629463407a20b7b2fd
Ancestor: e18cf238d7dc2b7bd93a3e346da1ca33a93283a5
Author: datallah@pidgin.im
Date: 2009-10-31T19:20:50
Branch: im.pidgin.pidgin.next.minor
URL: http://d.pidgin.im/viewmtn/revision/info/6746d602d91ae610baffb8629463407a20b7b2fd

Modified files:
        pidgin/gtkutils.c

ChangeLog: 

Handle non-ASCII protocol names on Win32



============================================================
--- pidgin/gtkutils.c	a37dedd17ea760cfbe6937191712ffc69c1a1521
+++ pidgin/gtkutils.c	786b6d9781e9fef0ba410d6bfdc706981aba48e9
@@ -3415,17 +3415,19 @@ winpidgin_register_win32_url_handlers(vo
 
 	do {
 		DWORD nameSize = 256;
-		char start[256];
+		wchar_t start[256];
 		/* I don't think we need to worry about non-ASCII protocol names */
-		ret = RegEnumKeyExA(HKEY_CLASSES_ROOT, idx++, start, &nameSize,
+		ret = RegEnumKeyExW(HKEY_CLASSES_ROOT, idx++, start, &nameSize,
 							NULL, NULL, NULL, NULL);
 		if (ret == ERROR_SUCCESS) {
 			HKEY reg_key = NULL;
-			ret = RegOpenKeyExA(HKEY_CLASSES_ROOT, start, 0, KEY_READ, &reg_key);
+			ret = RegOpenKeyExW(HKEY_CLASSES_ROOT, start, 0, KEY_READ, &reg_key);
 			if (ret == ERROR_SUCCESS) {
-				ret = RegQueryValueExA(reg_key, "URL Protocol", NULL, NULL, NULL, NULL);
+				ret = RegQueryValueExW(reg_key, L"URL Protocol", NULL, NULL, NULL, NULL);
 				if (ret == ERROR_SUCCESS) {
-					gchar *protocol = g_strdup_printf("%s:", start);
+					gchar *utf8 = g_utf16_to_utf8(start, -1, NULL, NULL, NULL);
+					gchar *protocol = g_strdup_printf("%s:", utf8);
+					g_free(utf8);
 					registered_url_handlers = g_slist_prepend(registered_url_handlers, protocol);
 					/* We still pass everything to the "http" "open" handler for security reasons */
 					gtk_imhtml_class_register_protocol(protocol, url_clicked_cb, link_context_menu);


_______________________________________________
Commits mailing list
Commits@pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/commits

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic