- Timestamp:
- 2005-12-15T12:24:25Z (19 years ago)
- Branches:
- master
- Children:
- 4146a07
- Parents:
- 2983f5e (diff), bf02a67 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- protocols
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
protocols/jabber/jabber.c
r2983f5e rbd69a21 22 22 */ 23 23 24 #ifdef HAVE_CONFIG_H25 #include "config.h"26 #endif27 28 24 #ifndef _WIN32 29 25 #include <sys/utsname.h> … … 59 55 #define DEFAULT_PORT 5222 60 56 #define DEFAULT_PORT_SSL 5223 57 #define JABBER_PORT_MIN 5220 58 #define JABBER_PORT_MAX 5229 61 59 62 60 #define JABBER_GROUP "Friends" … … 541 539 gjconn gjc; 542 540 543 if (!g_slist_find(get_connections(), gc)) {544 ssl_disconnect(source);545 return;546 }547 548 541 jd = gc->proto_data; 549 542 gjc = jd->gjc; … … 551 544 if (source == NULL) { 552 545 STATE_EVT(JCONN_STATE_OFF) 546 return; 547 } 548 549 if (!g_slist_find(get_connections(), gc)) { 550 ssl_disconnect(source); 553 551 return; 554 552 } … … 589 587 else if (port == -1 && ssl) 590 588 port = DEFAULT_PORT_SSL; 589 else if (port < JABBER_PORT_MIN || port > JABBER_PORT_MAX) { 590 serv_got_crap(GJ_GC(gjc), "For security reasons, the Jabber port number must be in the %d-%d range.", JABBER_PORT_MIN, JABBER_PORT_MAX); 591 STATE_EVT(JCONN_STATE_OFF) 592 return; 593 } 591 594 592 595 if (server == NULL) -
protocols/msn/sb.c
r2983f5e rbd69a21 644 644 if( who ) 645 645 { 646 serv_got_typing( gc, who, 5 );646 serv_got_typing( gc, who, 5, 1 ); 647 647 g_free( who ); 648 648 } -
protocols/nogaim.c
r2983f5e rbd69a21 55 55 GSList *connections; 56 56 57 #ifdef WITH_PLUGINS 57 58 gboolean load_plugin(char *path) 58 59 { … … 75 76 return TRUE; 76 77 } 78 79 void load_plugins(void) 80 { 81 GDir *dir; 82 GError *error = NULL; 83 84 dir = g_dir_open(PLUGINDIR, 0, &error); 85 86 if (dir) { 87 const gchar *entry; 88 char *path; 89 90 while ((entry = g_dir_read_name(dir))) { 91 path = g_build_filename(PLUGINDIR, entry, NULL); 92 if(!path) { 93 log_message(LOGLVL_WARNING, "Can't build path for %s\n", entry); 94 continue; 95 } 96 97 load_plugin(path); 98 99 g_free(path); 100 } 101 102 g_dir_close(dir); 103 } 104 } 105 #endif 77 106 78 107 /* nogaim.c */ … … 101 130 void nogaim_init() 102 131 { 103 GDir *dir; 104 GError *error = NULL; 132 extern void msn_init(); 133 extern void oscar_init(); 134 extern void byahoo_init(); 135 extern void jabber_init(); 105 136 106 137 #ifdef WITH_MSN 107 extern void msn_init();108 138 msn_init(); 109 139 #endif 110 140 111 141 #ifdef WITH_OSCAR 112 extern void oscar_init();113 142 oscar_init(); 114 143 #endif 115 144 116 145 #ifdef WITH_YAHOO 117 extern void byahoo_init();118 146 byahoo_init(); 119 147 #endif 120 148 121 149 #ifdef WITH_JABBER 122 extern void jabber_init();123 150 jabber_init(); 124 151 #endif 125 152 126 dir = g_dir_open(PLUGINDIR, 0, &error); 127 128 if (dir) { 129 const gchar *entry; 130 char *path; 131 132 while ((entry = g_dir_read_name(dir))) { 133 path = g_build_filename(PLUGINDIR, entry, NULL); 134 if(!path) { 135 log_message(LOGLVL_WARNING, "Can't build path for %s\n", entry); 136 continue; 137 } 138 139 load_plugin(path); 140 141 g_free(path); 142 } 143 144 g_dir_close(dir); 145 } 153 #ifdef WITH_PLUGINS 154 load_plugins(); 155 #endif 146 156 } 147 157 … … 442 452 void do_error_dialog( struct gaim_connection *gc, char *msg, char *title ) 443 453 { 444 serv_got_crap( gc, "Error: %s", msg ); 454 if( msg && title ) 455 serv_got_crap( gc, "Error: %s: %s", title, msg ); 456 else if( msg ) 457 serv_got_crap( gc, "Error: %s", msg ); 458 else if( title ) 459 serv_got_crap( gc, "Error: %s", title ); 460 else 461 serv_got_crap( gc, "Error" ); 445 462 } 446 463 … … 727 744 /* If there's a newline/space in this string, split up there, 728 745 looks a bit prettier. */ 729 if( ( nl = strrchr( msg, '\n' ) ) || ( nl = str chr( msg, ' ' ) ) )746 if( ( nl = strrchr( msg, '\n' ) ) || ( nl = strrchr( msg, ' ' ) ) ) 730 747 { 731 748 msg[425] = tmp; … … 751 768 } 752 769 753 void serv_got_typing( struct gaim_connection *gc, char *handle, int timeout )770 void serv_got_typing( struct gaim_connection *gc, char *handle, int timeout, int type ) 754 771 { 755 772 user_t *u; … … 758 775 return; 759 776 760 if( ( u = user_findhandle( gc, handle ) ) ) 761 irc_msgfrom( gc->irc, u->nick, "\1TYPING 1\1" ); 777 if( ( u = user_findhandle( gc, handle ) ) ) { 778 /* If type is: 779 * 0: user has stopped typing 780 * 1: user is actively typing 781 * 2: user has entered text, but is not actively typing 782 */ 783 if (type == 0 || type == 1 || type == 2) { 784 char buf[256]; 785 g_snprintf(buf, 256, "\1TYPING %d\1", type); 786 irc_privmsg( gc->irc, u, "PRIVMSG", gc->irc->nick, NULL, buf ); 787 } 788 } 762 789 } 763 790 -
protocols/nogaim.h
r2983f5e rbd69a21 307 307 G_MODULE_EXPORT void serv_got_update( struct gaim_connection *gc, char *handle, int loggedin, int evil, time_t signon, time_t idle, int type, guint caps ); 308 308 G_MODULE_EXPORT void serv_got_im( struct gaim_connection *gc, char *handle, char *msg, guint32 flags, time_t mtime, gint len ); 309 G_MODULE_EXPORT void serv_got_typing( struct gaim_connection *gc, char *handle, int timeout );309 G_MODULE_EXPORT void serv_got_typing( struct gaim_connection *gc, char *handle, int timeout, int type ); 310 310 G_MODULE_EXPORT void serv_got_chat_invite( struct gaim_connection *gc, char *handle, char *who, char *msg, GList *data ); 311 311 G_MODULE_EXPORT struct conversation *serv_got_joined_chat( struct gaim_connection *gc, int id, char *handle ); … … 326 326 G_MODULE_EXPORT void info_string_append(GString *str, char *newline, char *name, char *value); 327 327 328 /* file transfers */329 G_MODULE_EXPORT void ft_progress( struct ft *, int);330 G_MODULE_EXPORT void ft_incoming( struct ft_request * );331 G_MODULE_EXPORT void ft_accepted( struct ft_request *, struct ft *);332 G_MODULE_EXPORT void ft_denied( struct ft_request *, const char *reason);333 334 328 /* prefs.c */ 335 329 G_MODULE_EXPORT void build_block_list(); -
protocols/oscar/aim.h
r2983f5e rbd69a21 466 466 int aim_addtlvtochain_caps(aim_tlvlist_t **list, const guint16 t, const guint32 caps); 467 467 int aim_addtlvtochain_noval(aim_tlvlist_t **list, const guint16 type); 468 int aim_addtlvtochain_chatroom(aim_tlvlist_t **list, guint16 type, guint16 exchange, const char *roomname, guint16 instance); 468 469 int aim_addtlvtochain_userinfo(aim_tlvlist_t **list, guint16 type, aim_userinfo_t *ui); 469 470 int aim_addtlvtochain_frozentlvlist(aim_tlvlist_t **list, guint16 type, aim_tlvlist_t **tl); … … 572 573 }; 573 574 575 struct aim_chat_invitation { 576 struct gaim_connection * gc; 577 char * name; 578 guint8 exchange; 579 }; 574 580 575 581 #define AIM_VISIBILITYCHANGE_PERMITADD 0x05 -
protocols/oscar/chat.c
r2983f5e rbd69a21 180 180 181 181 aim_tx_enqueue(sess, fr); 182 183 return 0;184 }185 186 static int aim_addtlvtochain_chatroom(aim_tlvlist_t **list, guint16 type, guint16 exchange, const char *roomname, guint16 instance)187 {188 guint8 *buf;189 int buflen;190 aim_bstream_t bs;191 192 buflen = 2 + 1 + strlen(roomname) + 2;193 194 if (!(buf = g_malloc(buflen)))195 return 0;196 197 aim_bstream_init(&bs, buf, buflen);198 199 aimbs_put16(&bs, exchange);200 aimbs_put8(&bs, strlen(roomname));201 aimbs_putraw(&bs, (guint8 *)roomname, strlen(roomname));202 aimbs_put16(&bs, instance);203 204 aim_addtlvtochain_raw(list, type, aim_bstream_curpos(&bs), buf);205 206 g_free(buf);207 182 208 183 return 0; -
protocols/oscar/im.c
r2983f5e rbd69a21 1369 1369 } 1370 1370 1371 1372 static void incomingim_ch2_chat_free(aim_session_t *sess, struct aim_incomingim_ch2_args *args) 1373 { 1374 1375 /* XXX aim_chat_roominfo_free() */ 1376 g_free(args->info.chat.roominfo.name); 1377 1378 return; 1379 } 1380 1381 static void incomingim_ch2_chat(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_userinfo_t *userinfo, struct aim_incomingim_ch2_args *args, aim_bstream_t *servdata) 1382 { 1383 1384 /* 1385 * Chat room info. 1386 */ 1387 if (servdata) 1388 aim_chat_readroominfo(servdata, &args->info.chat.roominfo); 1389 1390 args->destructor = (void *)incomingim_ch2_chat_free; 1391 1392 return; 1393 } 1394 1371 1395 static void incomingim_ch2_icqserverrelay_free(aim_session_t *sess, struct aim_incomingim_ch2_args *args) 1372 1396 { … … 1617 1641 if (args.reqclass & AIM_CAPS_ICQSERVERRELAY) 1618 1642 incomingim_ch2_icqserverrelay(sess, mod, rx, snac, userinfo, &args, sdbsptr); 1643 else if (args.reqclass & AIM_CAPS_CHAT) 1644 incomingim_ch2_chat(sess, mod, rx, snac, userinfo, &args, sdbsptr); 1619 1645 1620 1646 -
protocols/oscar/oscar.c
r2983f5e rbd69a21 62 62 static int gaim_caps = AIM_CAPS_UTF8; */ 63 63 64 static int gaim_caps = AIM_CAPS_INTEROP | AIM_CAPS_ICHAT | AIM_CAPS_ICQSERVERRELAY ;64 static int gaim_caps = AIM_CAPS_INTEROP | AIM_CAPS_ICHAT | AIM_CAPS_ICQSERVERRELAY | AIM_CAPS_CHAT; 65 65 static guint8 gaim_features[] = {0x01, 0x01, 0x01, 0x02}; 66 66 … … 156 156 } 157 157 158 #if 0159 158 static struct chat_connection *find_oscar_chat(struct gaim_connection *gc, int id) { 160 159 GSList *g = ((struct oscar_data *)gc->proto_data)->oscar_chats; … … 171 170 return c; 172 171 } 173 #endif 172 174 173 175 174 static struct chat_connection *find_oscar_chat_by_conn(struct gaim_connection *gc, … … 1074 1073 } 1075 1074 1075 void oscar_accept_chat(gpointer w, struct aim_chat_invitation * inv); 1076 void oscar_reject_chat(gpointer w, struct aim_chat_invitation * inv); 1077 1076 1078 static int incomingim_chan2(aim_session_t *sess, aim_conn_t *conn, aim_userinfo_t *userinfo, struct aim_incomingim_ch2_args *args) { 1077 #if 01078 1079 struct gaim_connection *gc = sess->aux_data; 1079 #endif1080 1080 1081 1081 if (args->status != AIM_RENDEZVOUS_PROPOSE) 1082 1082 return 1; 1083 #if 0 1083 1084 1084 if (args->reqclass & AIM_CAPS_CHAT) { 1085 1085 char *name = extract_name(args->info.chat.roominfo.name); 1086 1086 int *exch = g_new0(int, 1); 1087 1087 GList *m = NULL; 1088 char txt[1024]; 1089 struct aim_chat_invitation * inv = g_new0(struct aim_chat_invitation, 1); 1090 1088 1091 m = g_list_append(m, g_strdup(name ? name : args->info.chat.roominfo.name)); 1089 1092 *exch = args->info.chat.roominfo.exchange; 1090 1093 m = g_list_append(m, exch); 1091 serv_got_chat_invite(gc, 1092 name ? name : args->info.chat.roominfo.name, 1093 userinfo->sn, 1094 (char *)args->msg, 1095 m); 1094 1095 g_snprintf( txt, 1024, "Got an invitation to chatroom %s from %s: %s", name, userinfo->sn, args->msg ); 1096 1097 inv->gc = gc; 1098 inv->exchange = *exch; 1099 inv->name = g_strdup(name); 1100 1101 do_ask_dialog( gc, txt, inv, oscar_accept_chat, oscar_reject_chat); 1102 1096 1103 if (name) 1097 1104 g_free(name); 1098 1105 } 1099 #endif 1106 1100 1107 return 1; 1101 1108 } … … 2441 2448 type2 = va_arg(ap, int); 2442 2449 va_end(ap); 2443 2444 if(type2 == 0x0001 || type2 == 0x0002) 2445 serv_got_typing(gc, sn, 0); 2446 2450 2451 if(type2 == 0x0002) { 2452 /* User is typing */ 2453 serv_got_typing(gc, sn, 0, 1); 2454 } 2455 else if (type2 == 0x0001) { 2456 /* User has typed something, but is not actively typing (stale) */ 2457 serv_got_typing(gc, sn, 0, 2); 2458 } 2459 else { 2460 /* User has stopped typing */ 2461 serv_got_typing(gc, sn, 0, 0); 2462 } 2463 2447 2464 return 1; 2448 2465 } … … 2482 2499 } 2483 2500 2501 int oscar_chat_send(struct gaim_connection * gc, int id, char *message) 2502 { 2503 struct oscar_data * od = (struct oscar_data*)gc->proto_data; 2504 struct chat_connection * ccon; 2505 int ret; 2506 guint8 len = strlen(message); 2507 char *s; 2508 2509 if(!(ccon = find_oscar_chat(gc, id))) 2510 return -1; 2511 2512 for (s = message; *s; s++) 2513 if (*s & 128) 2514 break; 2515 2516 /* Message contains high ASCII chars, time for some translation! */ 2517 if (*s) { 2518 s = g_malloc(BUF_LONG); 2519 /* Try if we can put it in an ISO8859-1 string first. 2520 If we can't, fall back to UTF16. */ 2521 if ((ret = do_iconv("UTF-8", "ISO8859-1", message, s, len, BUF_LONG)) >= 0) { 2522 len = ret; 2523 } else if ((ret = do_iconv("UTF-8", "UNICODEBIG", message, s, len, BUF_LONG)) >= 0) { 2524 len = ret; 2525 } else { 2526 /* OOF, translation failed... Oh well.. */ 2527 g_free( s ); 2528 s = message; 2529 } 2530 } else { 2531 s = message; 2532 } 2533 2534 ret = aim_chat_send_im(od->sess, ccon->conn, AIM_CHATFLAGS_NOREFLECT, s, len); 2535 2536 if (s != message) { 2537 g_free(s); 2538 } 2539 2540 return (ret >= 0); 2541 } 2542 2543 void oscar_chat_invite(struct gaim_connection * gc, int id, char *message, char *who) 2544 { 2545 struct oscar_data * od = (struct oscar_data *)gc->proto_data; 2546 struct chat_connection *ccon = find_oscar_chat(gc, id); 2547 2548 if (ccon == NULL) 2549 return; 2550 2551 aim_chat_invite(od->sess, od->conn, who, message ? message : "", 2552 ccon->exchange, ccon->name, 0x0); 2553 } 2554 2555 void oscar_chat_kill(struct gaim_connection *gc, struct chat_connection *cc) 2556 { 2557 struct oscar_data *od = (struct oscar_data *)gc->proto_data; 2558 2559 /* Notify the conversation window that we've left the chat */ 2560 serv_got_chat_left(gc, cc->id); 2561 2562 /* Destroy the chat_connection */ 2563 od->oscar_chats = g_slist_remove(od->oscar_chats, cc); 2564 if (cc->inpa > 0) 2565 gaim_input_remove(cc->inpa); 2566 aim_conn_kill(od->sess, &cc->conn); 2567 g_free(cc->name); 2568 g_free(cc->show); 2569 g_free(cc); 2570 } 2571 2572 void oscar_chat_leave(struct gaim_connection * gc, int id) 2573 { 2574 struct chat_connection * ccon = find_oscar_chat(gc, id); 2575 2576 if(ccon == NULL) 2577 return; 2578 2579 oscar_chat_kill(gc, ccon); 2580 } 2581 2582 int oscar_chat_join(struct gaim_connection * gc, char * name) 2583 { 2584 struct oscar_data * od = (struct oscar_data *)gc->proto_data; 2585 2586 aim_conn_t * cur; 2587 2588 if((cur = aim_getconn_type(od->sess, AIM_CONN_TYPE_CHATNAV))) { 2589 2590 return (aim_chatnav_createroom(od->sess, cur, name, 4) == 0); 2591 2592 } else { 2593 struct create_room * cr = g_new0(struct create_room, 1); 2594 cr->exchange = 4; 2595 cr->name = g_strdup(name); 2596 od->create_rooms = g_slist_append(od->create_rooms, cr); 2597 aim_reqservice(od->sess, od->conn, AIM_CONN_TYPE_CHATNAV); 2598 return 1; 2599 } 2600 } 2601 2602 int oscar_chat_open(struct gaim_connection * gc, char *who) 2603 { 2604 struct oscar_data * od = (struct oscar_data *)gc->proto_data; 2605 int ret; 2606 static int chat_id = 0; 2607 char * chatname = g_new0(char, strlen(gc->username)+4); 2608 2609 g_snprintf(chatname, strlen(gc->username) + 4, "%s%d", gc->username, chat_id++); 2610 2611 ret = oscar_chat_join(gc, chatname); 2612 2613 aim_chat_invite(od->sess, od->conn, who, "", 4, chatname, 0x0); 2614 2615 g_free(chatname); 2616 2617 return ret; 2618 } 2619 2620 void oscar_accept_chat(gpointer w, struct aim_chat_invitation * inv) 2621 { 2622 oscar_chat_join(inv->gc, inv->name); 2623 g_free(inv->name); 2624 g_free(inv); 2625 } 2626 2627 void oscar_reject_chat(gpointer w, struct aim_chat_invitation * inv) 2628 { 2629 g_free(inv->name); 2630 g_free(inv); 2631 } 2632 2484 2633 void oscar_init() 2485 2634 { … … 2495 2644 ret->add_buddy = oscar_add_buddy; 2496 2645 ret->remove_buddy = oscar_remove_buddy; 2646 ret->chat_send = oscar_chat_send; 2647 ret->chat_invite = oscar_chat_invite; 2648 ret->chat_leave = oscar_chat_leave; 2649 ret->chat_open = oscar_chat_open; 2497 2650 ret->add_permit = oscar_add_permit; 2498 2651 ret->add_deny = oscar_add_deny; -
protocols/oscar/tlv.c
r2983f5e rbd69a21 340 340 } 341 341 342 int aim_addtlvtochain_chatroom(aim_tlvlist_t **list, guint16 type, guint16 exchange, const char *roomname, guint16 instance) 343 { 344 guint8 *buf; 345 int buflen; 346 aim_bstream_t bs; 347 348 buflen = 2 + 1 + strlen(roomname) + 2; 349 350 if (!(buf = g_malloc(buflen))) 351 return 0; 352 353 aim_bstream_init(&bs, buf, buflen); 354 355 aimbs_put16(&bs, exchange); 356 aimbs_put8(&bs, strlen(roomname)); 357 aimbs_putraw(&bs, (guint8 *)roomname, strlen(roomname)); 358 aimbs_put16(&bs, instance); 359 360 aim_addtlvtochain_raw(list, type, aim_bstream_curpos(&bs), buf); 361 362 g_free(buf); 363 364 return 0; 365 } 366 342 367 /** 343 368 * aim_writetlvchain - Write a TLV chain into a data buffer. -
protocols/proxy.c
r2983f5e rbd69a21 73 73 74 74 75 static struct sockaddr_in *gaim_gethostbyname(c har *host, int port)75 static struct sockaddr_in *gaim_gethostbyname(const char *host, int port) 76 76 { 77 77 static struct sockaddr_in sin; … … 114 114 } 115 115 116 static void no_one_calls(gpointer data, gint source, GaimInputCondition cond)116 static void gaim_io_connected(gpointer data, gint source, GaimInputCondition cond) 117 117 { 118 118 struct PHB *phb = data; … … 144 144 } 145 145 146 static int proxy_connect_none(c har *host, unsigned short port, struct PHB *phb)146 static int proxy_connect_none(const char *host, unsigned short port, struct PHB *phb) 147 147 { 148 148 struct sockaddr_in *sin; … … 163 163 if (connect(fd, (struct sockaddr *)sin, sizeof(*sin)) < 0) { 164 164 if (sockerr_again()) { 165 phb->inpa = gaim_input_add(fd, GAIM_INPUT_WRITE, no_one_calls, phb);165 phb->inpa = gaim_input_add(fd, GAIM_INPUT_WRITE, gaim_io_connected, phb); 166 166 phb->fd = fd; 167 167 } else { … … 271 271 } 272 272 273 static int proxy_connect_http(c har *host, unsigned short port, struct PHB *phb)273 static int proxy_connect_http(const char *host, unsigned short port, struct PHB *phb) 274 274 { 275 275 phb->host = g_strdup(host); … … 355 355 } 356 356 357 static int proxy_connect_socks4(c har *host, unsigned short port, struct PHB *phb)357 static int proxy_connect_socks4(const char *host, unsigned short port, struct PHB *phb) 358 358 { 359 359 phb->host = g_strdup(host); … … 537 537 } 538 538 539 static int proxy_connect_socks5(c har *host, unsigned short port, struct PHB *phb)539 static int proxy_connect_socks5(const char *host, unsigned short port, struct PHB *phb) 540 540 { 541 541 phb->host = g_strdup(host); … … 578 578 } 579 579 580 int proxy_connect(c har *host, int port, GaimInputFunction func, gpointer data)580 int proxy_connect(const char *host, int port, GaimInputFunction func, gpointer data) 581 581 { 582 582 struct PHB *phb; -
protocols/proxy.h
r2983f5e rbd69a21 56 56 G_MODULE_EXPORT void gaim_input_remove(gint); 57 57 58 G_MODULE_EXPORT int proxy_connect(c har *host, int port, GaimInputFunction func, gpointer data);58 G_MODULE_EXPORT int proxy_connect(const char *host, int port, GaimInputFunction func, gpointer data); 59 59 60 60 #endif /* _PROXY_H_ */ -
protocols/yahoo/crypt.c
r2983f5e rbd69a21 22 22 * already had. isn't that lovely. people should just use linux or 23 23 * freebsd, crypt works properly on those systems. i hate solaris */ 24 25 #if HAVE_CONFIG_H26 # include <config.h>27 #endif28 24 29 25 #if HAVE_STRING_H -
protocols/yahoo/libyahoo2.c
r2983f5e rbd69a21 43 43 * 44 44 */ 45 46 #if HAVE_CONFIG_H47 # include <config.h>48 #endif49 45 50 46 #ifndef _WIN32 -
protocols/yahoo/yahoo.c
r2983f5e rbd69a21 635 635 { 636 636 struct gaim_connection *gc = byahoo_get_gc_by_id( id ); 637 638 serv_got_typing( gc, who, 1 ); 637 if (stat == 1) { 638 /* User is typing */ 639 serv_got_typing( gc, who, 1, 1 ); 640 } 641 else { 642 /* User stopped typing */ 643 serv_got_typing( gc, who, 1, 0 ); 644 } 639 645 } 640 646 -
protocols/yahoo/yahoo_httplib.c
r2983f5e rbd69a21 19 19 * 20 20 */ 21 22 #if HAVE_CONFIG_H23 # include <config.h>24 #endif25 21 26 22 #include <stdio.h> -
protocols/yahoo/yahoo_util.c
r2983f5e rbd69a21 19 19 * 20 20 */ 21 22 #if HAVE_CONFIG_H23 # include <config.h>24 #endif25 21 26 22 #if STDC_HEADERS
Note: See TracChangeset
for help on using the changeset viewer.