[Pidgin] #1187: Send Custom Emoticons in MSN

Pidgin trac at pidgin.im
Wed Sep 26 03:12:19 EDT 2007


#1187: Send Custom Emoticons in MSN
-----------------------+----------------------------------------------------
  Reporter:  salinasv  |       Owner:  rlaager 
      Type:  patch     |      Status:  assigned
  Priority:  minor     |   Milestone:  2.2.1   
 Component:  MSN       |     Version:  2.0     
Resolution:            |    Keywords:          
   Pending:  0         |  
-----------------------+----------------------------------------------------
Comment (by Twain28):

 Hoping someone notices all this, I continue to post updates: anyone who
 wants this patch to work should apply it to revision
 {{{
 225df0e615bb2eeed8c7af88c770ade3d78626fb , dated 8 August ,
 compiled using Cywgwin with gtkspell-2.0.6 and silc-toolkit-1.0.2
 }}}
 the latest revision of that day also works, but lacks the try icon (matter
 solved in later builds). Also, the patch is quite unstable even then:
 closing Pidgin chashes with
 {{{
 pidgin.exe caused an Access Violation at location 6b8892b2 in module
 libmsn.dll Reading from location 0000001c.

 Registers:
 eax=00000000 ebx=02018a80 ecx=00c20050 edx=00ca9338 esi=02311f38
 edi=6b8a1080
 eip=6b8892b2 esp=0023e9e0 ebp=0023e9f8 iopl=0         nv up ei pl nz na pe
 nc
 cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000
 efl=00200202

 Call stack:
 6B8892B2  libmsn.dll:6B8892B2  msn_del_smiley  msn.c:779
 static void msn_del_smiley(
     PurpleConnection * pc = &{
         PurplePlugin * prpl = ,
         PurpleConnectionFlags flags = ,
         PurpleConnectionState state = ,
         PurpleAccount * account = ,
         char * password = ,
         int inpa = ,
         GSList * buddy_chats = ,
         void * proto_data = ,
         char * display_name = ,
         guint keepalive = ,
         gboolean wants_to_die = ,
         guint disconnect_timeout =
     },
     const char * smile = &'z'
 )
     ...
     msn_del_smiley(PurpleConnection *pc, const char *smile)
     {
 >    MsnSession *session = pc->proto_data;
     MsnUser *user = session->user;
     GSList *emoticons = user->emoticons;
     ...

 64A471D3  pidgin.dll:64A471D3  pidgin_account_del_from_smiley_list
 gtkaccount.c:2708
 static void pidgin_account_del_from_smiley_list(
     PurpleAccount * account = &(indirect),
     const char * smile = &'z'
 )
     ...
     account->custom_smileys = g_slist_remove(account->custom_smileys,
 smiley);
     if(prpl_info && prpl_info->del_smiley)
 >    prpl_info->del_smiley(account->gc, smile);

     destroy_smiley(smiley);
     ...

 67CC344E  libpurple.dll:67CC344E  purple_account_disconnect
 account.c:1107
 void purple_account_disconnect(
     PurpleAccount * account = &(indirect)
 )
     ...
     /* Note that it forces the smile name to be the first element
      * of the struct */
 >    ui_ops->del_custom_smiley(account, *(char **)smileys->data);
     }
     }
     ...

 67CD37FC  libpurple.dll:67CD37FC  purple_connections_disconnect_all
 connection.c:465
 void purple_connections_disconnect_all(

 )
     ...
     gc = l->data;
     gc->wants_to_die = TRUE;
 >    purple_account_disconnect(gc->account);
     }
     }
     ...

 67CD8B7C  libpurple.dll:67CD8B7C  purple_core_quit  core.c:186
 void purple_core_quit(

 )
     ...

     /* Save .xml files, remove signals, etc. */
 >    purple_idle_uninit();
     purple_ssl_uninit();
     purple_pounces_uninit();
     ...

 62743935  libgobject-2.0-0.dll:62743935  g_closure_invoke
 62756FB5  libgobject-2.0-0.dll:62756FB5  g_signal_has_handler_pending
 62757D5E  libgobject-2.0-0.dll:62757D5E  g_signal_emit_valist
 62757FD6  libgobject-2.0-0.dll:62757FD6  g_signal_emit
 6069C2A5  libgtk-win32-2.0-0.dll:6069C2A5  gtk_widget_activate
 6058C71C  libgtk-win32-2.0-0.dll:6058C71C  gtk_menu_shell_activate_item
 6058CA25  libgtk-win32-2.0-0.dll:6058CA25  gtk_menu_shell_activate_item
 60578E62  libgtk-win32-2.0-0.dll:60578E62  gtk_marshal_VOID__UINT_STRING
 62743935  libgobject-2.0-0.dll:62743935  g_closure_invoke
 62756BE6  libgobject-2.0-0.dll:62756BE6  g_signal_has_handler_pending
 62757ABC  libgobject-2.0-0.dll:62757ABC  g_signal_emit_valist
 62757FD6  libgobject-2.0-0.dll:62757FD6  g_signal_emit
 6069C434  libgtk-win32-2.0-0.dll:6069C434  gtk_widget_activate
 60576011  libgtk-win32-2.0-0.dll:60576011  gtk_propagate_event
 605772FD  libgtk-win32-2.0-0.dll:605772FD  gtk_main_do_event
 6B070C5E  libgdk-win32-2.0-0.dll:6B070C5E  gdk_event_get_graphics_expose
 672DEA67  libglib-2.0-0.dll:672DEA67  g_main_context_dispatch
 672DFF3B  libglib-2.0-0.dll:672DFF3B  g_main_context_acquire
 672E011A  libglib-2.0-0.dll:672E011A  g_main_loop_run
 6057686E  libgtk-win32-2.0-0.dll:6057686E  gtk_main
 64A891F7  pidgin.dll:64A891F7  pidgin_main  gtkmain.c:884
 int pidgin_main(
     HINSTANCE hint = &{
         int i = 9460301
     },
     int argc = 1,
     char * * argv = &0x00032439
 )
     ...

     #ifdef _WIN32
 >    winpidgin_cleanup();
     #endif

     ...

 0040209B  pidgin.exe:0040209B  WinMain  winpidgin.c:638
 int WinMain(
     struct HINSTANCE__ * hInstance = &{
         int i = 9460301
     },
     struct HINSTANCE__ * hPrevInstance = &{
         int i =
     },
     char * lpszCmdLine = "",
     int nCmdShow = 1
 )
     ...
     }

 >    return pidgin_main(hInstance, __argc, __argv);
     }

     ...

 0040249A  pidgin.exe:0040249A  WinMain  winpidgin.c:246
 int WinMain(
     struct HINSTANCE__ * hInstance = &{
         int i =
     },
     struct HINSTANCE__ * hPrevInstance = &{
         int i = 205881
     },
     char * lpszCmdLine = &'À',
     int nCmdShow = 4214784
 )
     ...
     if (!read_reg_string(hkey, "SOFTWARE\\GTK\\2.0", "Path",
     (LPBYTE) &gtkpath, &plen)) {
 >    printf("GTK+ Path Registry Key not found. "
     "Assuming GTK+ is in the PATH.\n");
     return;
     ...

 00401247  pidgin.exe:00401247
 004012B8  pidgin.exe:004012B8
 7C816FD7  kernel32.dll:7C816FD7  RegisterWaitForInputIdle
 }}}
 Applying the patches to any other revision from that day on works with
 some adjustments and compiles fine, but the sending won't work: buddies
 will only recieve the name of the custom smiley. Some updates, please,
 anyone???

-- 
Ticket URL: <http://developer.pidgin.im/ticket/1187#comment:52>
Pidgin <http://pidgin.im>
Pidgin


More information about the Tracker mailing list