You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(106) |
Oct
(334) |
Nov
(246) |
Dec
(145) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(42) |
Feb
(53) |
Mar
(232) |
Apr
(109) |
May
(137) |
Jun
(63) |
Jul
(26) |
Aug
(263) |
Sep
(193) |
Oct
(507) |
Nov
(440) |
Dec
(241) |
2003 |
Jan
(567) |
Feb
(195) |
Mar
(504) |
Apr
(481) |
May
(524) |
Jun
(522) |
Jul
(594) |
Aug
(502) |
Sep
(643) |
Oct
(508) |
Nov
(430) |
Dec
(377) |
2004 |
Jan
(361) |
Feb
(251) |
Mar
(219) |
Apr
(499) |
May
(461) |
Jun
(419) |
Jul
(314) |
Aug
(519) |
Sep
(416) |
Oct
(247) |
Nov
(305) |
Dec
(382) |
2005 |
Jan
(267) |
Feb
(282) |
Mar
(327) |
Apr
(338) |
May
(189) |
Jun
(400) |
Jul
(462) |
Aug
(530) |
Sep
(316) |
Oct
(523) |
Nov
(481) |
Dec
(650) |
2006 |
Jan
(536) |
Feb
(361) |
Mar
(287) |
Apr
(146) |
May
(101) |
Jun
(169) |
Jul
(221) |
Aug
(498) |
Sep
(300) |
Oct
(236) |
Nov
(209) |
Dec
(205) |
2007 |
Jan
(30) |
Feb
(23) |
Mar
(26) |
Apr
(15) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <mar...@us...> - 2006-08-26 17:22:30
|
Revision: 17047 Author: markhuetsch Date: 2006-08-26 10:22:24 -0700 (Sat, 26 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17047&view=rev Log Message: ----------- Fixed a comment and a user notification. Modified Paths: -------------- trunk/libgaim/protocols/qq/im.c trunk/libgaim/protocols/qq/sys_msg.c Modified: trunk/libgaim/protocols/qq/im.c =================================================================== --- trunk/libgaim/protocols/qq/im.c 2006-08-26 13:53:10 UTC (rev 17046) +++ trunk/libgaim/protocols/qq/im.c 2006-08-26 17:22:24 UTC (rev 17047) @@ -310,7 +310,7 @@ /* send encoded to gaim, note that we use im_text->send_time, * not the time we receive the message - * as it may have been dealyed when I am not online. */ + * as it may have been delayed when I am not online. */ serv_got_im(gc, name, msg_utf8_encoded, gaim_msg_type, (time_t) im_text->send_time); g_free(msg_utf8_encoded); Modified: trunk/libgaim/protocols/qq/sys_msg.c =================================================================== --- trunk/libgaim/protocols/qq/sys_msg.c 2006-08-26 13:53:10 UTC (rev 17046) +++ trunk/libgaim/protocols/qq/sys_msg.c 2006-08-26 17:22:24 UTC (rev 17047) @@ -195,7 +195,7 @@ qd = (qq_data *) gc->proto_data; qq_add_buddy_by_recv_packet(gc, strtol(from, NULL, 10), TRUE, TRUE); - message = g_strdup_printf(_("Use %s has approved your request"), from); + message = g_strdup_printf(_("User %s has approved your request"), from); _qq_sys_msg_log_write(gc, message, from); gaim_notify_info(gc, NULL, message, NULL); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-08-26 13:53:13
|
Revision: 17046 Author: sadrul Date: 2006-08-26 06:53:10 -0700 (Sat, 26 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17046&view=rev Log Message: ----------- Fine-tuning the mouse-event handling in the combobox. Modified Paths: -------------- trunk/console/libgnt/gntcombobox.c Modified: trunk/console/libgnt/gntcombobox.c =================================================================== --- trunk/console/libgnt/gntcombobox.c 2006-08-26 13:03:11 UTC (rev 17045) +++ trunk/console/libgnt/gntcombobox.c 2006-08-26 13:53:10 UTC (rev 17046) @@ -2,6 +2,7 @@ #include "gntcombobox.h" #include "gnttree.h" #include "gntmarshal.h" +#include "gntutils.h" #include <string.h> @@ -39,14 +40,11 @@ GntColorType type; int len; - if (box->dropdown) - { + if (box->dropdown && box->selected) text = gnt_tree_get_selection_text(GNT_TREE(box->dropdown)); - box->selected = gnt_tree_get_selection_data(GNT_TREE(box->dropdown)); - } if (text == NULL) - text = g_strdup(text); + text = g_strdup(""); if (gnt_widget_has_focus(widget)) type = GNT_COLOR_HIGHLIGHT; @@ -57,7 +55,7 @@ if ((len = g_utf8_strlen(text, -1)) > widget->priv.width - 4) { - char *s = g_utf8_offset_to_pointer(text, widget->priv.width - 4); + char *s = gnt_util_onscreen_width_to_pointer(text, widget->priv.width - 4, NULL); *s = '\0'; len = widget->priv.width - 4; } @@ -106,6 +104,7 @@ if (parent->window) { mvwin(parent->window, y, widget->priv.x); + wresize(parent->window, height+2, widget->priv.width); } gnt_widget_draw(parent); @@ -180,11 +179,9 @@ } else if (event == GNT_LEFT_MOUSE_DOWN) { if (dshowing) { set_selection(box, gnt_tree_get_selection_data(GNT_TREE(box->dropdown))); - gnt_tree_set_selected(GNT_TREE(box->dropdown), box->selected); gnt_widget_hide(box->dropdown->parent); } else { popup_dropdown(GNT_COMBO_BOX(widget)); - return TRUE; } } else return FALSE; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <may...@us...> - 2006-08-26 13:03:30
|
Revision: 17045 Author: mayuan2006 Date: 2006-08-26 06:03:11 -0700 (Sat, 26 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17045&view=rev Log Message: ----------- add a MIME encode function,processing utf-8 and base64 encode committed by MaYuan<may...@gm...> Modified Paths: -------------- branches/soc-2006-msnp13/src/protocols/msn/contact.c branches/soc-2006-msnp13/src/protocols/msn/msn-utils.c branches/soc-2006-msnp13/src/protocols/msn/msn-utils.h branches/soc-2006-msnp13/src/protocols/msn/msn.c Modified: branches/soc-2006-msnp13/src/protocols/msn/contact.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/contact.c 2006-08-26 12:54:39 UTC (rev 17044) +++ branches/soc-2006-msnp13/src/protocols/msn/contact.c 2006-08-26 13:03:11 UTC (rev 17045) @@ -430,10 +430,6 @@ xmlnode_free(node); msn_soap_free_read_buf(contact->soapconn); - - msn_notification_dump_contact(session); - msn_set_psm(session); - msn_session_finish_login(session); } static void @@ -450,6 +446,11 @@ // gaim_debug_misc("msn", "soap contact server Reply: {%s}\n", soapconn->read_buf); msn_parse_addressbook(contact); + + msn_notification_dump_contact(session); + msn_set_psm(session); + msn_session_finish_login(session); + /*free the read buffer*/ msn_soap_free_read_buf(soapconn); } Modified: branches/soc-2006-msnp13/src/protocols/msn/msn-utils.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/msn-utils.c 2006-08-26 12:54:39 UTC (rev 17044) +++ branches/soc-2006-msnp13/src/protocols/msn/msn-utils.c 2006-08-26 13:03:11 UTC (rev 17045) @@ -146,6 +146,18 @@ g_free(cur); } +/*encode the str to RFC2047 style + * Currently only support the UTF-8 and base64 encode + */ +char * +msn_encode_mime(char *str) +{ + char *base64; + + base64 = gaim_base64_encode(str,strlen(str)); + return g_strdup_printf("=?utf-8?B?%s?=",base64); +} + /* * We need this because we're only supposed to encode spaces in the font * names. gaim_url_encode() isn't acceptable. Modified: branches/soc-2006-msnp13/src/protocols/msn/msn-utils.h =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/msn-utils.h 2006-08-26 12:54:39 UTC (rev 17044) +++ branches/soc-2006-msnp13/src/protocols/msn/msn-utils.h 2006-08-26 13:03:11 UTC (rev 17045) @@ -24,6 +24,9 @@ #ifndef _MSN_UTILS_H_ #define _MSN_UTILS_H_ +/*encode the str to RFC2047 style*/ +char * msn_encode_mime(char *str); + /** * Generate the Random GUID */ Modified: branches/soc-2006-msnp13/src/protocols/msn/msn.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/msn.c 2006-08-26 12:54:39 UTC (rev 17044) +++ branches/soc-2006-msnp13/src/protocols/msn/msn.c 2006-08-26 13:03:11 UTC (rev 17045) @@ -893,7 +893,7 @@ gaim_debug_info("MaYuan","prepare to send offline Message\n"); session = gc->proto_data; oim = session->oim; - friendname = g_strdup_printf("=?utf-8?B?Y2xpZW50?="); + friendname = msn_encode_mime(account->username); msn_oim_prep_send_msg_info(oim, gaim_account_get_username(account),friendname,who, message); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-08-26 12:54:51
|
Revision: 17044 Author: sadrul Date: 2006-08-26 05:54:39 -0700 (Sat, 26 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17044&view=rev Log Message: ----------- A WM can now act on keystrokes. As an example, the sample WM will toggle the buddylist on pressing Alt+b. Mouse clicking and scrolling is now supported in most/all widgets. To use a WM, you need to add "wm=/path/to/wm.so" under [general] in ~/.gntrc. Modified Paths: -------------- trunk/console/libgnt/gntbox.c trunk/console/libgnt/gntbutton.c trunk/console/libgnt/gntcheckbox.c trunk/console/libgnt/gntcombobox.c trunk/console/libgnt/gntmain.c trunk/console/libgnt/gntmarshal.c trunk/console/libgnt/gntmarshal.h trunk/console/libgnt/gnttextview.c trunk/console/libgnt/gnttree.c trunk/console/libgnt/gntwidget.c trunk/console/libgnt/gntwidget.h trunk/console/libgnt/gntwm.h trunk/console/libgnt/wms/Makefile.am trunk/console/libgnt/wms/s.c Modified: trunk/console/libgnt/gntbox.c =================================================================== --- trunk/console/libgnt/gntbox.c 2006-08-26 11:30:40 UTC (rev 17043) +++ trunk/console/libgnt/gntbox.c 2006-08-26 12:54:39 UTC (rev 17044) @@ -454,6 +454,30 @@ reposition_children(widget); } +static gboolean +gnt_box_clicked(GntWidget *widget, GntMouseEvent event, int cx, int cy) +{ + GList *iter; + for (iter = GNT_BOX(widget)->list; iter; iter = iter->next) { + int x, y, w, h; + GntWidget *wid = iter->data; + + gnt_widget_get_position(wid, &x, &y); + gnt_widget_get_size(wid, &w, &h); + + if (cx >= x && cx < x + w && cy >= y && cy < y + h) { + if (event <= GNT_MIDDLE_MOUSE_DOWN && + GNT_WIDGET_IS_FLAG_SET(wid, GNT_WIDGET_CAN_TAKE_FOCUS)) { + while (widget->parent) + widget = widget->parent; + gnt_box_give_focus_to_child(GNT_BOX(widget), wid); + } + return gnt_widget_clicked(wid, event, cx, cy); + } + } + return FALSE; +} + static void gnt_box_class_init(GntBoxClass *klass) { @@ -465,6 +489,7 @@ parent_class->size_request = gnt_box_size_request; parent_class->set_position = gnt_box_set_position; parent_class->key_pressed = gnt_box_key_pressed; + parent_class->clicked = gnt_box_clicked; parent_class->lost_focus = gnt_box_lost_focus; parent_class->gained_focus = gnt_box_gained_focus; parent_class->confirm_size = gnt_box_confirm_size; @@ -603,6 +628,7 @@ if (box->vertical) { + x = pos; if (box->alignment == GNT_ALIGN_RIGHT) x += widget->priv.width - width; else if (box->alignment == GNT_ALIGN_MID) @@ -612,6 +638,7 @@ } else { + y = pos; if (box->alignment == GNT_ALIGN_BOTTOM) y += widget->priv.height - height; else if (box->alignment == GNT_ALIGN_MID) @@ -622,6 +649,7 @@ copywin(w->window, widget->window, 0, 0, y, x, y + height - 1, x + width - 1, FALSE); + gnt_widget_set_position(w, x + widget->priv.x, y + widget->priv.y); } } Modified: trunk/console/libgnt/gntbutton.c =================================================================== --- trunk/console/libgnt/gntbutton.c 2006-08-26 11:30:40 UTC (rev 17043) +++ trunk/console/libgnt/gntbutton.c 2006-08-26 12:54:39 UTC (rev 17044) @@ -58,6 +58,16 @@ return FALSE; } +static gboolean +gnt_button_clicked(GntWidget *widget, GntMouseEvent event, int x, int y) +{ + if (event == GNT_LEFT_MOUSE_DOWN) { + gnt_widget_activate(widget); + return TRUE; + } + return FALSE; +} + static void gnt_button_class_init(GntWidgetClass *klass) { @@ -66,6 +76,7 @@ parent_class->map = gnt_button_map; parent_class->size_request = gnt_button_size_request; parent_class->key_pressed = gnt_button_key_pressed; + parent_class->clicked = gnt_button_clicked; DEBUG; } Modified: trunk/console/libgnt/gntcheckbox.c =================================================================== --- trunk/console/libgnt/gntcheckbox.c 2006-08-26 11:30:40 UTC (rev 17043) +++ trunk/console/libgnt/gntcheckbox.c 2006-08-26 12:54:39 UTC (rev 17044) @@ -46,20 +46,36 @@ DEBUG; } +static void +toggle_selection(GntWidget *widget) +{ + GNT_CHECK_BOX(widget)->checked = !GNT_CHECK_BOX(widget)->checked; + g_signal_emit(widget, signals[SIG_TOGGLED], 0); + gnt_widget_draw(widget); +} + static gboolean gnt_check_box_key_pressed(GntWidget *widget, const char *text) { if (text[0] == ' ' && text[1] == '\0') { - GNT_CHECK_BOX(widget)->checked = !GNT_CHECK_BOX(widget)->checked; - g_signal_emit(widget, signals[SIG_TOGGLED], 0); - gnt_widget_draw(widget); + toggle_selection(widget); return TRUE; } return FALSE; } +static gboolean +gnt_check_box_clicked(GntWidget *widget, GntMouseEvent event, int x, int y) +{ + if (event == GNT_LEFT_MOUSE_DOWN) { + toggle_selection(widget); + return TRUE; + } + return FALSE; +} + static void gnt_check_box_destroy(GntWidget *widget) { @@ -76,6 +92,7 @@ /*parent_class->map = gnt_check_box_map;*/ /*parent_class->size_request = gnt_check_box_size_request;*/ wclass->key_pressed = gnt_check_box_key_pressed; + wclass->clicked = gnt_check_box_clicked; signals[SIG_TOGGLED] = g_signal_new("toggled", Modified: trunk/console/libgnt/gntcombobox.c =================================================================== --- trunk/console/libgnt/gntcombobox.c 2006-08-26 11:30:40 UTC (rev 17043) +++ trunk/console/libgnt/gntcombobox.c 2006-08-26 12:54:39 UTC (rev 17044) @@ -91,6 +91,26 @@ DEBUG; } +static void +popup_dropdown(GntComboBox *box) +{ + GntWidget *widget = GNT_WIDGET(box); + GntWidget *parent = box->dropdown->parent; + int height = g_list_length(GNT_TREE(box->dropdown)->list); + int y = widget->priv.y + widget->priv.height - 1; + gnt_widget_set_size(box->dropdown, widget->priv.width, height + 2); + + if (y + height + 2 >= getmaxy(stdscr)) + y = widget->priv.y - height - 1; + gnt_widget_set_position(parent, widget->priv.x, y); + if (parent->window) + { + mvwin(parent->window, y, widget->priv.x); + } + + gnt_widget_draw(parent); +} + static gboolean gnt_combo_box_key_pressed(GntWidget *widget, const char *text) { @@ -121,20 +141,7 @@ if (strcmp(text + 1, GNT_KEY_UP) == 0 || strcmp(text + 1, GNT_KEY_DOWN) == 0) { - GntWidget *parent = box->dropdown->parent; - int height = g_list_length(GNT_TREE(box->dropdown)->list); - int y = widget->priv.y + widget->priv.height - 1; - gnt_widget_set_size(box->dropdown, widget->priv.width, height + 2); - - if (y + height + 2 >= getmaxy(stdscr)) - y = widget->priv.y - height - 1; - gnt_widget_set_position(parent, widget->priv.x, y); - if (parent->window) - { - mvwin(parent->window, y, widget->priv.x); - } - - gnt_widget_draw(parent); + popup_dropdown(box); return TRUE; } } @@ -158,6 +165,32 @@ widget_lost_focus(widget); } +static gboolean +gnt_combo_box_clicked(GntWidget *widget, GntMouseEvent event, int x, int y) +{ + GntComboBox *box = GNT_COMBO_BOX(widget); + gboolean dshowing = GNT_WIDGET_IS_FLAG_SET(box->dropdown->parent, GNT_WIDGET_MAPPED); + + if (event == GNT_MOUSE_SCROLL_UP) { + if (dshowing) + gnt_widget_key_pressed(box->dropdown, "\033" GNT_KEY_UP); + } else if (event == GNT_MOUSE_SCROLL_DOWN) { + if (dshowing) + gnt_widget_key_pressed(box->dropdown, "\033" GNT_KEY_DOWN); + } else if (event == GNT_LEFT_MOUSE_DOWN) { + if (dshowing) { + set_selection(box, gnt_tree_get_selection_data(GNT_TREE(box->dropdown))); + gnt_tree_set_selected(GNT_TREE(box->dropdown), box->selected); + gnt_widget_hide(box->dropdown->parent); + } else { + popup_dropdown(GNT_COMBO_BOX(widget)); + return TRUE; + } + } else + return FALSE; + return TRUE; +} + static void gnt_combo_box_class_init(GntComboBoxClass *klass) { @@ -168,6 +201,7 @@ parent_class->map = gnt_combo_box_map; parent_class->size_request = gnt_combo_box_size_request; parent_class->key_pressed = gnt_combo_box_key_pressed; + parent_class->clicked = gnt_combo_box_clicked; widget_lost_focus = parent_class->lost_focus; parent_class->lost_focus = gnt_combo_box_lost_focus; Modified: trunk/console/libgnt/gntmain.c =================================================================== --- trunk/console/libgnt/gntmain.c 2006-08-26 11:30:40 UTC (rev 17043) +++ trunk/console/libgnt/gntmain.c 2006-08-26 12:54:39 UTC (rev 17044) @@ -41,8 +41,6 @@ static gboolean ascii_only; static gboolean mouse_enabled; -static GntWM wm; - static GMainLoop *loop; static struct { @@ -73,7 +71,24 @@ static void bring_on_top(GntWidget *widget); static gboolean refresh_screen(); +static const GList *list_all_windows(); +static GntWM wm = +{ + NULL, /* new_window */ + NULL, /* close_window */ + NULL, /* key_pressed */ + NULL, /* mouse clicked */ + bring_on_top, /* give_focus */ + NULL, /* uninit */ + list_all_windows, /* window_list */ +}; + +static const GList *list_all_windows() +{ + return focus_list; +} + static GList * g_list_bring_to_front(GList *list, gpointer data) { @@ -127,7 +142,7 @@ if (ordered) { - bring_on_top(ordered->data); + wm.give_focus(ordered->data); } draw_taskbar(FALSE); } @@ -139,6 +154,12 @@ if (!node) return; + + if (ordered->data != widget) { + GntWidget *w = ordered->data; + ordered = g_list_bring_to_front(ordered, widget); + gnt_widget_set_focus(w, FALSE); + } gnt_widget_set_focus(widget, TRUE); gnt_widget_draw(widget); @@ -247,7 +268,7 @@ ordered = g_list_bring_to_front(ordered, wid); - bring_on_top(ordered->data); + wm.give_focus(ordered->data); if (w != wid) { @@ -269,7 +290,7 @@ if ((l = g_list_nth(focus_list, n)) != NULL) { ordered = g_list_bring_to_front(ordered, l->data); - bring_on_top(ordered->data); + wm.give_focus(ordered->data); } if (l && w != l->data) @@ -289,7 +310,7 @@ old = ordered->data; ordered = g_list_bring_to_front(ordered, widget); - bring_on_top(widget); + wm.give_focus(widget); if (old != widget) { @@ -514,8 +535,9 @@ } button = MOUSE_NONE; static GntWidget *remember = NULL; static int offset = 0; + GntMouseEvent event; - if (buffer[0] != 27) + if (!ordered || buffer[0] != 27) return FALSE; buffer++; @@ -541,7 +563,7 @@ if (iter != ordered) { GntWidget *w = ordered->data; ordered = g_list_bring_to_front(ordered, iter->data); - bring_on_top(ordered->data); + wm.give_focus(ordered->data); gnt_widget_set_focus(w, FALSE); } if (y == wid->priv.y) { @@ -553,14 +575,19 @@ } } } + event = GNT_LEFT_MOUSE_DOWN; } else if (strncmp(buffer, "[M\"", 3) == 0) { /* right button down */ + event = GNT_RIGHT_MOUSE_DOWN; } else if (strncmp(buffer, "[M!", 3) == 0) { /* middle button down */ + event = GNT_MIDDLE_MOUSE_DOWN; } else if (strncmp(buffer, "[M`", 3) == 0) { /* wheel up*/ + event = GNT_MOUSE_SCROLL_UP; } else if (strncmp(buffer, "[Ma", 3) == 0) { /* wheel down */ + event = GNT_MOUSE_SCROLL_DOWN; } else if (strncmp(buffer, "[M#", 3) == 0) { /* button up */ if (button == MOUSE_NONE && y == getmaxy(stdscr) - 1) { @@ -579,19 +606,23 @@ button = MOUSE_NONE; remember = NULL; offset = 0; + event = GNT_MOUSE_UP; } else return FALSE; + + gnt_widget_clicked(ordered->data, event, x, y); return FALSE; /* XXX: this should be TRUE */ } static gboolean io_invoke(GIOChannel *source, GIOCondition cond, gpointer null) { - char buffer[256]; + char keys[256]; gboolean ret = FALSE; static GntKeyPressMode mode = GNT_KP_MODE_NORMAL; + const char *buffer; - int rd = read(STDIN_FILENO, buffer, sizeof(buffer) - 1); + int rd = read(STDIN_FILENO, keys, sizeof(keys) - 1); if (rd < 0) { endwin(); @@ -605,18 +636,25 @@ exit(1); } - buffer[rd] = 0; + keys[rd] = 0; - if (buffer[0] == 27 && buffer[1] == 'd' && buffer[2] == 0) + if (keys[0] == 27 && keys[1] == 'd' && keys[2] == 0) { /* This dumps the screen contents in an html file */ dump_screen(); } - gnt_keys_refine(buffer); + gnt_keys_refine(keys); - if (mouse_enabled && detect_mouse_action(buffer)) + if (mouse_enabled && detect_mouse_action(keys)) return TRUE; + + if (wm.key_pressed) { + buffer = wm.key_pressed(keys); + if (buffer == NULL) + return TRUE; + } else + buffer = keys; if (mode == GNT_KP_MODE_NORMAL) { Modified: trunk/console/libgnt/gntmarshal.c =================================================================== --- trunk/console/libgnt/gntmarshal.c 2006-08-26 11:30:40 UTC (rev 17043) +++ trunk/console/libgnt/gntmarshal.c 2006-08-26 12:54:39 UTC (rev 17044) @@ -166,3 +166,40 @@ } +void gnt_closure_marshal_BOOLEAN__INT_INT_INT(GClosure *closure, + GValue *ret_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data) +{ + typedef gboolean (*func) (gpointer data1, int, int, int, gpointer data2); + register func callback; + register GCClosure *cc = (GCClosure*)closure; + register gpointer data1, data2; + gboolean ret; + + g_return_if_fail(ret_value != NULL); + g_return_if_fail(n_param_values == 4); + + if (G_CCLOSURE_SWAP_DATA(closure)) + { + data1 = closure->data; + data2 = g_value_peek_pointer(param_values + 0); + } + else + { + data1 = g_value_peek_pointer(param_values + 0); + data2 = closure->data; + } + + callback = (func) (marshal_data ? marshal_data : cc->callback); + ret = callback(data1, + g_value_get_int(param_values + 1) , + g_value_get_int(param_values + 2) , + g_value_get_int(param_values + 3) , + data2); + g_value_set_boolean(ret_value, ret); +} + + Modified: trunk/console/libgnt/gntmarshal.h =================================================================== --- trunk/console/libgnt/gntmarshal.h 2006-08-26 11:30:40 UTC (rev 17043) +++ trunk/console/libgnt/gntmarshal.h 2006-08-26 12:54:39 UTC (rev 17044) @@ -35,3 +35,10 @@ gpointer invocation_hint, gpointer marshal_data); +void gnt_closure_marshal_BOOLEAN__INT_INT_INT(GClosure *closure, + GValue *ret_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); + Modified: trunk/console/libgnt/gnttextview.c =================================================================== --- trunk/console/libgnt/gnttextview.c 2006-08-26 11:30:40 UTC (rev 17043) +++ trunk/console/libgnt/gnttextview.c 2006-08-26 12:54:39 UTC (rev 17044) @@ -135,6 +135,18 @@ g_list_free(view->list); } +static gboolean +gnt_text_view_clicked(GntWidget *widget, GntMouseEvent event, int x, int y) +{ + if (event == GNT_MOUSE_SCROLL_UP) { + gnt_text_view_scroll(GNT_TEXT_VIEW(widget), -1); + } else if (event == GNT_MOUSE_SCROLL_DOWN) { + gnt_text_view_scroll(GNT_TEXT_VIEW(widget), 1); + } else + return FALSE; + return TRUE; +} + static void gnt_text_view_class_init(GntTextViewClass *klass) { @@ -144,6 +156,7 @@ parent_class->map = gnt_text_view_map; parent_class->size_request = gnt_text_view_size_request; parent_class->key_pressed = gnt_text_view_key_pressed; + parent_class->clicked = gnt_text_view_clicked; DEBUG; } Modified: trunk/console/libgnt/gnttree.c =================================================================== --- trunk/console/libgnt/gnttree.c 2006-08-26 11:30:40 UTC (rev 17043) +++ trunk/console/libgnt/gnttree.c 2006-08-26 12:54:39 UTC (rev 17044) @@ -463,6 +463,34 @@ return g_hash_table_lookup(tree->hash, key); } +static void +action_down(GntTree *tree) +{ + int dist; + GntTreeRow *row = get_next(tree->current); + if (row == NULL) + return; + tree->current = row; + if ((dist = get_distance(tree->current, tree->bottom)) < 0) + gnt_tree_scroll(tree, -dist); + else + redraw_tree(tree); +} + +static void +action_up(GntTree *tree) +{ + int dist; + GntTreeRow *row = get_prev(tree->current); + if (!row) + return; + tree->current = row; + if ((dist = get_distance(tree->current, tree->top)) > 0) + gnt_tree_scroll(tree, -dist); + else + redraw_tree(tree); +} + static gboolean gnt_tree_key_pressed(GntWidget *widget, const char *text) { @@ -473,22 +501,13 @@ if (text[0] == 27) { - if (strcmp(text+1, GNT_KEY_DOWN) == 0 && (row = get_next(tree->current)) != NULL) + if (strcmp(text+1, GNT_KEY_DOWN) == 0) { - tree->current = row; - if ((dist = get_distance(tree->current, tree->bottom)) < 0) - gnt_tree_scroll(tree, -dist); - else - redraw_tree(tree); + action_down(tree); } - else if (strcmp(text+1, GNT_KEY_UP) == 0 && (row = get_prev(tree->current)) != NULL) + else if (strcmp(text+1, GNT_KEY_UP) == 0) { - tree->current = row; - - if ((dist = get_distance(tree->current, tree->top)) > 0) - gnt_tree_scroll(tree, -dist); - else - redraw_tree(tree); + action_up(tree); } else if (strcmp(text+1, GNT_KEY_PGDOWN) == 0) { @@ -592,6 +611,39 @@ g_free(tree->columns); } +static gboolean +gnt_tree_clicked(GntWidget *widget, GntMouseEvent event, int x, int y) +{ + if (event == GNT_MOUSE_SCROLL_UP) { + action_up(GNT_TREE(widget)); + } else if (event == GNT_MOUSE_SCROLL_DOWN) { + action_down(GNT_TREE(widget)); + } else if (event == GNT_LEFT_MOUSE_DOWN) { + GntTreeRow *row; + GntTree *tree = GNT_TREE(widget); + int pos = 1; + if (GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_NO_BORDER)) + pos = 0; + if (tree->show_title) + pos += 2; + pos = y - widget->priv.y - pos; + row = get_next_n(tree->top, pos); + if (row && tree->current != row) { + GntTreeRow *old = tree->current; + tree->current = row; + redraw_tree(tree); + tree_selection_changed(tree, old, tree->current); + } else if (row == tree->current && row->choice) { + row->isselected = !row->isselected; + g_signal_emit(tree, signals[SIG_TOGGLED], 0, row->key); + redraw_tree(tree); + } + } else { + return FALSE; + } + return TRUE; +} + static void gnt_tree_class_init(GntTreeClass *klass) { @@ -601,6 +653,7 @@ parent_class->map = gnt_tree_map; parent_class->size_request = gnt_tree_size_request; parent_class->key_pressed = gnt_tree_key_pressed; + parent_class->clicked = gnt_tree_clicked; signals[SIG_SELECTION_CHANGED] = g_signal_new("selection-changed", Modified: trunk/console/libgnt/gntwidget.c =================================================================== --- trunk/console/libgnt/gntwidget.c 2006-08-26 11:30:40 UTC (rev 17043) +++ trunk/console/libgnt/gntwidget.c 2006-08-26 12:54:39 UTC (rev 17044) @@ -19,6 +19,7 @@ SIG_CONFIRM_SIZE, SIG_SIZE_CHANGED, SIG_POSITION, + SIG_CLICKED, SIGS }; @@ -116,6 +117,7 @@ klass->key_pressed = NULL; klass->activate = NULL; + klass->clicked = NULL; signals[SIG_DESTROY] = g_signal_new("destroy", @@ -214,6 +216,15 @@ gnt_closure_marshal_BOOLEAN__STRING, G_TYPE_BOOLEAN, 1, G_TYPE_STRING); + signals[SIG_CLICKED] = + g_signal_new("clicked", + G_TYPE_FROM_CLASS(klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET(GntWidgetClass, clicked), + gnt_boolean_handled_accumulator, NULL, + gnt_closure_marshal_BOOLEAN__INT_INT_INT, + G_TYPE_BOOLEAN, 3, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT); + DEBUG; } @@ -375,6 +386,14 @@ return ret; } +gboolean +gnt_widget_clicked(GntWidget *widget, GntMouseEvent event, int x, int y) +{ + gboolean ret; + g_signal_emit(widget, signals[SIG_CLICKED], 0, event, x, y, &ret); + return ret; +} + void gnt_widget_expose(GntWidget *widget, int x, int y, int width, int height) { Modified: trunk/console/libgnt/gntwidget.h =================================================================== --- trunk/console/libgnt/gntwidget.h 2006-08-26 11:30:40 UTC (rev 17043) +++ trunk/console/libgnt/gntwidget.h 2006-08-26 12:54:39 UTC (rev 17044) @@ -45,6 +45,16 @@ GNT_WIDGET_TRANSIENT = 1 << 11, } GntWidgetFlags; +typedef enum _GnMouseEvent +{ + GNT_LEFT_MOUSE_DOWN = 1, + GNT_RIGHT_MOUSE_DOWN, + GNT_MIDDLE_MOUSE_DOWN, + GNT_MOUSE_UP, + GNT_MOUSE_SCROLL_UP, + GNT_MOUSE_SCROLL_DOWN +} GntMouseEvent; + /* XXX: I'll have to ask grim what he's using this for in guifications. */ typedef enum _GnParamFlags { @@ -96,6 +106,7 @@ void (*set_position)(GntWidget *widget, int x, int y); gboolean (*key_pressed)(GntWidget *widget, const char *key); void (*activate)(GntWidget *widget); + gboolean (*clicked)(GntWidget *widget, GntMouseEvent event, int x, int y); void (*gnt_reserved1)(void); void (*gnt_reserved2)(void); @@ -121,6 +132,8 @@ gboolean gnt_widget_key_pressed(GntWidget *widget, const char *keys); +gboolean gnt_widget_clicked(GntWidget *widget, GntMouseEvent event, int x, int y); + gboolean gnt_widget_set_focus(GntWidget *widget, gboolean set); void gnt_widget_activate(GntWidget *widget); Modified: trunk/console/libgnt/gntwm.h =================================================================== --- trunk/console/libgnt/gntwm.h 2006-08-26 11:30:40 UTC (rev 17043) +++ trunk/console/libgnt/gntwm.h 2006-08-26 12:54:39 UTC (rev 17044) @@ -10,9 +10,31 @@ struct _GntWM { + /* This should return a PANEL for the win */ PANEL *(*new_window)(GntWidget *win); - gboolean (*key_pressed)(const char *key); - gboolean (*mouse_clicked)(void); /* XXX: haven't decided yet */ + + /* This is called when a window is being closed */ + gboolean (*close_window)(GntWidget *win); + + /* This should usually return NULL if the keys were processed by the WM. + * If not, the WM can simply return the original string, which will be + * processed by the default WM. The custom WM can also return a different + * static string for the default WM to process. + */ + const char *(*key_pressed)(const char *key); + + /* Not decided yet */ + gboolean (*mouse_clicked)(void); + + /* Whatever the WM wants to do when a window is given focus */ + void (*give_focus)(GntWidget *widget); + + /* If something needs to be uninited */ void (*gntwm_uninit)(); + + /* List of windows. Although the WM can keep a list of its own for the windows, + * it'd be better if there was a way to share between the 'core' and the WM. + */ + const GList *(*window_list)(); }; Modified: trunk/console/libgnt/wms/Makefile.am =================================================================== --- trunk/console/libgnt/wms/Makefile.am 2006-08-26 11:30:40 UTC (rev 17043) +++ trunk/console/libgnt/wms/Makefile.am 2006-08-26 12:54:39 UTC (rev 17044) @@ -16,6 +16,8 @@ AM_CPPFLAGS = \ -DDATADIR=\"$(datadir)\" \ -DVERSION=\"$(VERSION)\" \ + -I$(top_srcdir)/libgaim \ + -I$(top_srcdir)/console \ -I$(top_srcdir)/console/libgnt \ $(DEBUG_CFLAGS) \ $(GLIB_CFLAGS) \ Modified: trunk/console/libgnt/wms/s.c =================================================================== --- trunk/console/libgnt/wms/s.c 2006-08-26 11:30:40 UTC (rev 17043) +++ trunk/console/libgnt/wms/s.c 2006-08-26 12:54:39 UTC (rev 17044) @@ -1,8 +1,12 @@ #include "gntbox.h" #include "gntwm.h" +#include "gntblist.h" + #include <string.h> +static GntWM *gwm; + static PANEL * s_new_window(GntWidget *win) { @@ -31,12 +35,14 @@ mvwin(win->window, y, x); gnt_widget_set_size(win, w, h); + gnt_widget_draw(win); } else if (name && strcmp(name, "conversation-window") == 0) { /* Put the conversation windows to the far-right */ x = maxx - w; y = 0; gnt_widget_set_position(win, x, y); mvwin(win->window, y, x); + gnt_widget_draw(win); } else if (!GNT_WIDGET_IS_FLAG_SET(win, GNT_WIDGET_TRANSIENT)) { /* In the middle of the screen */ x = (maxx - w) / 2; @@ -49,8 +55,42 @@ return new_panel(win->window); } +static GntWidget * +find_widget(const char *wname) +{ + const GList *iter = gwm->window_list(); + for (; iter; iter = iter->next) { + GntWidget *widget = iter->data; + const char *name = gnt_widget_get_name(widget); + if (name && strcmp(name, wname) == 0) { + return widget; + } + } + return NULL; +} + +static const char* +s_key_pressed(const char *key) +{ + /* Alt+b to toggle the buddylist */ + if (key[0] == 27 && key[1] == 'b' && key[2] == '\0') { + GntWidget *w = find_widget("buddylist"); + if (w == NULL) { + gg_blist_show(); + w = find_widget("buddylist"); + gwm->give_focus(w); + } else { + gnt_widget_destroy(w); + } + return NULL; + } + return key; +} + void gntwm_init(GntWM *wm) { + gwm = wm; wm->new_window = s_new_window; + wm->key_pressed = s_key_pressed; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <may...@us...> - 2006-08-26 11:30:54
|
Revision: 17043 Author: mayuan2006 Date: 2006-08-26 04:30:40 -0700 (Sat, 26 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17043&view=rev Log Message: ----------- change the Group operation committed by MaYuan<may...@gm...> Modified Paths: -------------- branches/soc-2006-msnp13/src/protocols/msn/contact.c branches/soc-2006-msnp13/src/protocols/msn/contact.h branches/soc-2006-msnp13/src/protocols/msn/msn.c branches/soc-2006-msnp13/src/protocols/msn/soap.c branches/soc-2006-msnp13/src/protocols/msn/userlist.c Modified: branches/soc-2006-msnp13/src/protocols/msn/contact.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/contact.c 2006-08-26 09:23:40 UTC (rev 17042) +++ branches/soc-2006-msnp13/src/protocols/msn/contact.c 2006-08-26 11:30:40 UTC (rev 17043) @@ -330,6 +330,8 @@ MsnUser *user; char *passport,*Name,*uid,*type; + passport = NULL; + contactId= xmlnode_get_child(contactNode,"contactId"); uid = xmlnode_get_data(contactId); @@ -339,7 +341,8 @@ /*setup the Display Name*/ if (!strcmp(type, "Me")){ - char *friendly = xmlnode_get_data(xmlnode_get_child(contactInfo,"displayName")); + char *friendly; + friendly = xmlnode_get_data(xmlnode_get_child(contactInfo,"displayName")); gaim_connection_set_display_name(session->account->gc, gaim_url_decode(friendly)); g_free(friendly); } @@ -361,10 +364,16 @@ } msnEnabled = xmlnode_get_data(messengerEnabledNode); if(!strcmp(msnEnabled,"true")){ + /*Messenger enabled, Get the Passport*/ emailNode = xmlnode_get_child(contactEmailNode,"email"); passport = xmlnode_get_data(emailNode); gaim_debug_info("MsnAB","Yahoo User %s\n",passport); break; + }else{ + /*TODO maybe we can just ignore it in Gaim?*/ + emailNode = xmlnode_get_child(contactEmailNode,"email"); + passport = xmlnode_get_data(emailNode); + gaim_debug_info("MSNAB","Other type user\n"); } g_free(msnEnabled); } @@ -372,6 +381,10 @@ passport = xmlnode_get_data(passportName); } + if(passport == NULL){ + continue; + } + displayName = xmlnode_get_child(contactInfo,"displayName"); if(displayName == NULL){ Name = g_strdup(passport); @@ -379,20 +392,23 @@ Name =xmlnode_get_data(displayName); } - gaim_debug_misc("MsnAB","name:%s,Id:{%s},display:{%s}\n", - passport, - uid, - Name); + gaim_debug_misc("MsnAB","passport:{%s} uid:{%s} display:{%s}\n", + passport,uid,Name); user = msn_userlist_find_add_user(session->userlist, passport,Name); msn_user_set_uid(user,uid); msn_user_set_type(user,msn_get_user_type(type)); user->list_op |= MSN_LIST_FL_OP; + gaim_debug_info("MsnAB","prepare to free Name...\n"); g_free(Name); + gaim_debug_info("MsnAB","prepare to free passport...\n"); g_free(passport); + gaim_debug_info("MsnAB","prepare to free uid...\n"); g_free(uid); + gaim_debug_info("MsnAB","prepare to free type...\n"); g_free(type); + gaim_debug_misc("MsnAB","prepare for guid parse...\n"); groupIds = xmlnode_get_child(contactInfo,"groupIds"); if(groupIds){ for(guid = xmlnode_get_child(groupIds, "guid");guid; @@ -407,28 +423,6 @@ group_id = g_strdup(MSN_INDIVIDUALS_GROUP_ID); msn_user_add_group_id(user,group_id); g_free(group_id); -#if 0 - char *name,*group_id; - - name = g_strdup(MSN_INDIVIDUALS_GROUP_NAME); - group_id = g_strdup(MSN_INDIVIDUALS_GROUP_ID); - gaim_debug_misc("MsnContact","group_id:%s name:%s\n",group_id,name); - - msn_user_add_group_id(user,group_id); - msn_group_new(session->userlist, group_id, name); - - if (group_id != NULL){ - gaim_debug_misc("MsnContact","group_id:%s name:%s,value:%d\n",group_id,name,*name=='\0'); - if ((gaim_find_group(name)) == NULL){ - GaimGroup *g = gaim_group_new(name); - gaim_blist_add_group(g, NULL); - } - } - - gaim_debug_misc("contact","guid is NULL\n"); - g_free(name); - g_free(group_id); -#endif } } @@ -489,7 +483,7 @@ static void msn_add_contact_read_cb(gpointer data, gint source, GaimInputCondition cond) { - gaim_debug_info("MaYuan","block read done\n"); + gaim_debug_info("MaYuan","add contact read done\n"); } static void @@ -497,14 +491,14 @@ { MsnSoapConn * soapconn = data; - gaim_debug_info("MaYuan","finish unblock written\n"); + gaim_debug_info("MaYuan","finish add contact written\n"); soapconn->read_cb = msn_add_contact_read_cb; // msn_soap_read_cb(data,source,cond); } /*add a Contact */ void -msn_add_contact(MsnContact *contact,const char *passport,char *groupId) +msn_add_contact(MsnContact *contact,const char *passport,const char *groupId) { MsnSoapReq *soap_request; char *body = NULL; @@ -559,6 +553,7 @@ char *contact_xml = NULL ; MsnSoapReq *soap_request; + g_return_if_fail(contactId == NULL); gaim_debug_info("MaYuan","msn delete a contact,contactId:{%s}...\n",contactId); contact_xml = g_strdup_printf(MSN_CONTACTS_DEL_XML,contactId); body = g_strdup_printf(MSN_DEL_CONTACT_TEMPLATE,contact_xml); @@ -587,7 +582,6 @@ gaim_debug_info("MaYuan","finish unblock written\n"); soapconn->read_cb = msn_block_read_cb; -// msn_soap_read_cb(data,source,cond); } /*block a Contact*/ @@ -623,7 +617,6 @@ gaim_debug_info("MaYuan","finish unblock written\n"); soapconn->read_cb = msn_unblock_read_cb; -// msn_soap_read_cb(data,source,cond); } /*unblock a contact*/ @@ -727,6 +720,10 @@ char *body = NULL; g_return_if_fail(session != NULL); + /*if group uid we need to del is NULL, + * we need to delete nothing + */ + g_return_if_fail(guid != NULL); contact = session->contact; gaim_debug_info("MaYuan","msn del group...\n"); Modified: branches/soc-2006-msnp13/src/protocols/msn/contact.h =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/contact.h 2006-08-26 09:23:40 UTC (rev 17042) +++ branches/soc-2006-msnp13/src/protocols/msn/contact.h 2006-08-26 11:30:40 UTC (rev 17043) @@ -173,12 +173,18 @@ void msn_get_address_book(MsnContact *contact); /*contact SOAP Operation*/ -void msn_add_contact(MsnContact *contact,const char *passport,char *groupId); +void msn_add_contact(MsnContact *contact,const char *passport,const char *groupId); void msn_delete_contact(MsnContact *contact,const char *contactId); /*group operation*/ void msn_add_group(MsnSession *session,const char* group_name); void msn_del_group(MsnSession *session,const char *guid); + +/*contact Block/unblock operation*/ +void msn_block_contact(MsnContact *contact,const char* membership_id); +void msn_unblock_contact(MsnContact *contact,const char* passport); + + #endif/* _MSN_CMDPROC_H_*/ Modified: branches/soc-2006-msnp13/src/protocols/msn/msn.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/msn.c 2006-08-26 09:23:40 UTC (rev 17042) +++ branches/soc-2006-msnp13/src/protocols/msn/msn.c 2006-08-26 11:30:40 UTC (rev 17043) @@ -1401,9 +1401,14 @@ session = gc->proto_data; cmdproc = session->notification->cmdproc; + /*we can't delete the default group*/ + if(!strcmp(group->name,MSN_INDIVIDUALS_GROUP_NAME)|| + !strcmp(group->name,MSN_NON_IM_GROUP_NAME)){ + return ; + } group_id = msn_userlist_find_group_id(session->userlist, group->name); if (group_id != NULL){ - msn_cmdproc_send(cmdproc, "RMG", "%d", group_id); + msn_del_group(session,group_id); } } Modified: branches/soc-2006-msnp13/src/protocols/msn/soap.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/soap.c 2006-08-26 09:23:40 UTC (rev 17042) +++ branches/soc-2006-msnp13/src/protocols/msn/soap.c 2006-08-26 11:30:40 UTC (rev 17043) @@ -27,7 +27,7 @@ #include "soap.h" /*define this Macro to debug soap server action*/ -#define MSN_SOAP_DEBUG +#undef MSN_SOAP_DEBUG /*local function prototype*/ void msn_soap_set_process_step(MsnSoapConn *soapconn, MsnSoapStep step); Modified: branches/soc-2006-msnp13/src/protocols/msn/userlist.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/userlist.c 2006-08-26 09:23:40 UTC (rev 17042) +++ branches/soc-2006-msnp13/src/protocols/msn/userlist.c 2006-08-26 11:30:40 UTC (rev 17043) @@ -183,18 +183,24 @@ msn_request_add_group(MsnUserList *userlist, const char *who, const char *old_group_name, const char *new_group_name) { + MsnSession *session; MsnCmdProc *cmdproc; MsnMoveBuddy *data; - cmdproc = userlist->session->notification->cmdproc; + session = userlist->session; + cmdproc = session->notification->cmdproc; data = g_new0(MsnMoveBuddy, 1); data->who = g_strdup(who); - if (old_group_name) + if (old_group_name){ data->old_group_name = g_strdup(old_group_name); + /*delete the old group via SOAP action*/ + msn_del_group(session,old_group_name); + } - /*TODO:add new group via SOAP action*/ + /*add new group via SOAP action*/ + msn_add_group(session, new_group_name); } @@ -687,8 +693,10 @@ gaim_debug_info("MaYuan", "add user:{%s} to group id {%s}\n",store_name ,group_id); msn_add_contact(userlist->session->contact,who,group_id); +#if 0 msn_notification_add_buddy(userlist->session->notification, list, who, store_name, group_id); +#endif } void This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <may...@us...> - 2006-08-26 09:23:49
|
Revision: 17042 Author: mayuan2006 Date: 2006-08-26 02:23:40 -0700 (Sat, 26 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17042&view=rev Log Message: ----------- Send OIM in a sequence committed by MaYuan<may...@gm...> Modified Paths: -------------- branches/soc-2006-msnp13/src/protocols/msn/contact.c branches/soc-2006-msnp13/src/protocols/msn/oim.c branches/soc-2006-msnp13/src/protocols/msn/soap.c Modified: branches/soc-2006-msnp13/src/protocols/msn/contact.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/contact.c 2006-08-26 08:31:37 UTC (rev 17041) +++ branches/soc-2006-msnp13/src/protocols/msn/contact.c 2006-08-26 09:23:40 UTC (rev 17042) @@ -30,6 +30,9 @@ #include "xmlnode.h" #include "group.h" +/*define This to debug the Contact Server*/ +#undef MSN_CONTACT_SOAP_DEBUG + void msn_contact_connect_init(MsnSoapConn *soapconn); /*new a contact*/ @@ -207,7 +210,9 @@ session = soapconn->session; g_return_if_fail(session != NULL); -// gaim_debug_misc("msn", "soap contact server Reply: {%s}\n", soapconn->read_buf); +#ifdef MSN_CONTACT_SOAP_DEBUG + gaim_debug_misc("msn", "soap contact server Reply: {%s}\n", soapconn->read_buf); +#endif msn_parse_contact_list(contact); /*free the read buffer*/ msn_soap_free_read_buf(soapconn); @@ -463,7 +468,6 @@ gaim_debug_info("MaYuan","finish contact written\n"); soapconn->read_cb = msn_get_address_cb; -// msn_soap_read_cb(data,source,cond); } /*get the address book*/ Modified: branches/soc-2006-msnp13/src/protocols/msn/oim.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/oim.c 2006-08-26 08:31:37 UTC (rev 17041) +++ branches/soc-2006-msnp13/src/protocols/msn/oim.c 2006-08-26 09:23:40 UTC (rev 17042) @@ -115,7 +115,6 @@ gaim_debug_info("MaYuan","encode OIM Message...\n"); oim_base64 = gaim_base64_encode((const guchar *)body, strlen(body)); gaim_debug_info("MaYuan","encoded base64 body:{%s}\n",oim_base64); - gaim_debug_info("MaYuan","url_encode:{%s}\n",gaim_url_encode(body)); oim_body = g_strdup_printf(MSN_OIM_MSG_TEMPLATE, oim->run_id,oim->send_seq,oim_base64); @@ -240,11 +239,9 @@ char buf[33]; g_return_if_fail(oim != NULL); - gaim_debug_info("MaYuan","queue:{%p}\n",oim->send_queue); oim_request = g_queue_pop_head(oim->send_queue); - if(oim_request == NULL){ - return; - } + g_return_if_fail(oim_request != NULL); + gaim_debug_info("MaYuan","send single OIM Message\n"); mspauth = g_strdup_printf("t=%s&p=%s", oim->session->passport_info.t, Modified: branches/soc-2006-msnp13/src/protocols/msn/soap.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/soap.c 2006-08-26 08:31:37 UTC (rev 17041) +++ branches/soc-2006-msnp13/src/protocols/msn/soap.c 2006-08-26 09:23:40 UTC (rev 17042) @@ -26,6 +26,9 @@ #include "msn.h" #include "soap.h" +/*define this Macro to debug soap server action*/ +#define MSN_SOAP_DEBUG + /*local function prototype*/ void msn_soap_set_process_step(MsnSoapConn *soapconn, MsnSoapStep step); @@ -111,7 +114,6 @@ soapconn->ssl_conn = ssl; soapconn->connect_cb = connect_cb; soapconn->error_cb = error_cb; - gaim_debug_info("MaYuan","msn_soap_init...done\n"); } /*connect the soap connection*/ @@ -214,13 +216,14 @@ if(len >0){ soapconn->read_buf = g_realloc(soapconn->read_buf, soapconn->read_len + len + 1); -// strncpy(soapconn->read_buf + soapconn->read_len, temp_buf, len); memcpy(soapconn->read_buf + soapconn->read_len, temp_buf, len); soapconn->read_len += len; soapconn->read_buf[soapconn->read_len] = '\0'; } +#ifdef MSN_SOAP_DEBUG gaim_debug_info("MaYuan","++soap ssl read:{%d}\n",len); -// gaim_debug_info("MaYuan","nexus ssl read:{%s}\n",soapconn->read_buf); + gaim_debug_info("MaYuan","nexus ssl read:{%s}\n",soapconn->read_buf); +#endif return len; } @@ -345,16 +348,15 @@ /*setup the conn body */ soapconn->body = body_start; soapconn->body_len = atoi(body_len); +#ifdef MSN_SOAP_DEBUG gaim_debug_misc("MaYuan","SOAP Read length :%d,body len:%d\n",soapconn->read_len,soapconn->body_len); - +#endif soapconn->need_to_read = (body_start - soapconn->read_buf +soapconn->body_len) - soapconn->read_len; - if(soapconn->read_len < body_start - soapconn->read_buf + soapconn->body_len){ -// if(soapconn->need_to_read >0){ + if(soapconn->need_to_read >0){ return; } g_free(body_len); -#if 1 /*remove the read handler*/ gaim_input_remove(soapconn->input_handler); soapconn->input_handler = -1; @@ -368,7 +370,6 @@ * Weird! * */ msn_soap_close(soapconn); -#endif /*call the read callback*/ if(soapconn->read_cb != NULL){ @@ -538,13 +539,17 @@ return; } gaim_debug_info("Ma Yuan","soap connected!\n"); + /*if connected, what we only needed to do is to queue the request, * when SOAP request in the queue processed done, will do this command. * we just waiting... + * If we send the request this time,error may occure */ +#if 0 if(soapconn->step == MSN_SOAP_CONNECTED_IDLE){ msn_soap_post_head_request(soapconn); } +#endif } /*Post the soap request action*/ @@ -576,9 +581,13 @@ request_str = g_strdup_printf("%s%s", soap_head,request->body); g_free(soap_head); +#ifdef MSN_SOAP_DEBUG + gaim_debug_info("MaYuan","send to server{%s}\n",request_str); +#endif + /*free read buffer*/ msn_soap_free_read_buf(soapconn); - gaim_debug_info("MaYuan","send to server{%s}\n",request_str); + /*post it to server*/ msn_soap_write(soapconn,request_str,request->written_cb); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <may...@us...> - 2006-08-26 08:31:45
|
Revision: 17041 Author: mayuan2006 Date: 2006-08-26 01:31:37 -0700 (Sat, 26 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17041&view=rev Log Message: ----------- fix the Offline Instant Message sequence bug committed by MaYuan<may...@gm...> Modified Paths: -------------- branches/soc-2006-msnp13/src/protocols/msn/contact.c branches/soc-2006-msnp13/src/protocols/msn/oim.c Modified: branches/soc-2006-msnp13/src/protocols/msn/contact.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/contact.c 2006-08-26 08:07:08 UTC (rev 17040) +++ branches/soc-2006-msnp13/src/protocols/msn/contact.c 2006-08-26 08:31:37 UTC (rev 17041) @@ -106,6 +106,13 @@ if(!strcmp(type,"Regular")){ return 1; } + if(!strcmp(type,"Live")){ + return 1; + } + if(!strcmp(type,"LivePending")){ + return 1; + } + return 0; } @@ -325,6 +332,13 @@ contactType = xmlnode_get_child(contactInfo,"contactType"); type = xmlnode_get_data(contactType); + /*setup the Display Name*/ + if (!strcmp(type, "Me")){ + char *friendly = xmlnode_get_data(xmlnode_get_child(contactInfo,"displayName")); + gaim_connection_set_display_name(session->account->gc, gaim_url_decode(friendly)); + g_free(friendly); + } + passportName = xmlnode_get_child(contactInfo,"passportName"); if(passportName == NULL){ xmlnode *emailsNode, *contactEmailNode, *emailNode; Modified: branches/soc-2006-msnp13/src/protocols/msn/oim.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/oim.c 2006-08-26 08:07:08 UTC (rev 17040) +++ branches/soc-2006-msnp13/src/protocols/msn/oim.c 2006-08-26 08:31:37 UTC (rev 17041) @@ -115,7 +115,7 @@ gaim_debug_info("MaYuan","encode OIM Message...\n"); oim_base64 = gaim_base64_encode((const guchar *)body, strlen(body)); gaim_debug_info("MaYuan","encoded base64 body:{%s}\n",oim_base64); - + gaim_debug_info("MaYuan","url_encode:{%s}\n",gaim_url_encode(body)); oim_body = g_strdup_printf(MSN_OIM_MSG_TEMPLATE, oim->run_id,oim->send_seq,oim_base64); @@ -257,7 +257,6 @@ */ if(oim->challenge != NULL){ msn_handle_chl(oim->challenge, buf); - oim_request->send_seq++; }else{ gaim_debug_info("MaYuan","no lock key challenge,wait for SOAP Fault and Resend\n"); buf[0]='\0'; @@ -284,6 +283,10 @@ g_free(msg_body); g_free(soap_body); + /*increase the offline Sequence control*/ + if(oim->challenge != NULL){ + oim->send_seq++; + } msn_soap_post(oim->sendconn,soap_request,msn_oim_send_connect_init); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <may...@us...> - 2006-08-26 08:07:22
|
Revision: 17040 Author: mayuan2006 Date: 2006-08-26 01:07:08 -0700 (Sat, 26 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17040&view=rev Log Message: ----------- send OIM middle version. Now can send to server, but need to encode the friend name to MIME format committed by MaYuan<may...@gm...> Modified Paths: -------------- branches/soc-2006-msnp13/src/protocols/msn/contact.c branches/soc-2006-msnp13/src/protocols/msn/msn-utils.c branches/soc-2006-msnp13/src/protocols/msn/msn-utils.h branches/soc-2006-msnp13/src/protocols/msn/msn.c branches/soc-2006-msnp13/src/protocols/msn/oim.c branches/soc-2006-msnp13/src/protocols/msn/slpcall.c branches/soc-2006-msnp13/src/protocols/msn/user.h branches/soc-2006-msnp13/src/protocols/msn/userlist.c Modified: branches/soc-2006-msnp13/src/protocols/msn/contact.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/contact.c 2006-08-26 07:11:55 UTC (rev 17039) +++ branches/soc-2006-msnp13/src/protocols/msn/contact.c 2006-08-26 08:07:08 UTC (rev 17040) @@ -384,11 +384,11 @@ g_free(group_id); } }else{ + /*not in any group,Then set default group*/ group_id = g_strdup(MSN_INDIVIDUALS_GROUP_ID); msn_user_add_group_id(user,group_id); g_free(group_id); #if 0 - /*not in any group,Then set default group*/ char *name,*group_id; name = g_strdup(MSN_INDIVIDUALS_GROUP_NAME); Modified: branches/soc-2006-msnp13/src/protocols/msn/msn-utils.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/msn-utils.c 2006-08-26 07:11:55 UTC (rev 17039) +++ branches/soc-2006-msnp13/src/protocols/msn/msn-utils.c 2006-08-26 08:07:08 UTC (rev 17040) @@ -26,6 +26,23 @@ #include "time.h" //#include <openssl/md5.h> +/************************************************************************** + * Util + **************************************************************************/ +char * +rand_guid() +{ + return g_strdup_printf("%4X%4X-%4X-%4X-%4X-%4X%4X%4X", + rand() % 0xAAFF + 0x1111, + rand() % 0xAAFF + 0x1111, + rand() % 0xAAFF + 0x1111, + rand() % 0xAAFF + 0x1111, + rand() % 0xAAFF + 0x1111, + rand() % 0xAAFF + 0x1111, + rand() % 0xAAFF + 0x1111, + rand() % 0xAAFF + 0x1111); +} + void msn_parse_format(const char *mime, char **pre_ret, char **post_ret) { Modified: branches/soc-2006-msnp13/src/protocols/msn/msn-utils.h =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/msn-utils.h 2006-08-26 07:11:55 UTC (rev 17039) +++ branches/soc-2006-msnp13/src/protocols/msn/msn-utils.h 2006-08-26 08:07:08 UTC (rev 17040) @@ -25,6 +25,11 @@ #define _MSN_UTILS_H_ /** + * Generate the Random GUID + */ +char * rand_guid(); + +/** * Parses the MSN message formatting into a format compatible with Gaim. * * @param mime The mime header with the formatting. Modified: branches/soc-2006-msnp13/src/protocols/msn/msn.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/msn.c 2006-08-26 07:11:55 UTC (rev 17039) +++ branches/soc-2006-msnp13/src/protocols/msn/msn.c 2006-08-26 08:07:08 UTC (rev 17040) @@ -896,7 +896,7 @@ friendname = g_strdup_printf("=?utf-8?B?Y2xpZW50?="); msn_oim_prep_send_msg_info(oim, gaim_account_get_username(account),friendname,who, - msg); + message); msn_oim_send_msg(oim); } return 1; Modified: branches/soc-2006-msnp13/src/protocols/msn/oim.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/oim.c 2006-08-26 07:11:55 UTC (rev 17039) +++ branches/soc-2006-msnp13/src/protocols/msn/oim.c 2006-08-26 08:07:08 UTC (rev 17040) @@ -59,6 +59,7 @@ { MsnOimSendReq *request; + gaim_debug_info("OIM","destroy the OIM \n"); msn_soap_destroy(oim->retrieveconn); msn_soap_destroy(oim->sendconn); g_free(oim->run_id); @@ -81,17 +82,19 @@ MsnOimSendReq *request; request = g_new0(MsnOimSendReq, 1); - request->from_member =g_strdup(from_member); - request->friendname = g_strdup(friendname); - request->to_member = g_strdup(to_member); - request->send_seq = send_seq; - request->oim_msg= g_strdup(msg); + request->from_member =g_strdup(from_member); + request->friendname = g_strdup(friendname); + request->to_member = g_strdup(to_member); + request->send_seq = send_seq; + request->oim_msg = g_strdup(msg); return request; } void msn_oim_free_send_req(MsnOimSendReq *req) { + g_return_if_fail(req != NULL); + g_free(req->from_member); g_free(req->friendname); g_free(req->to_member); @@ -107,20 +110,14 @@ char * msn_oim_msg_to_str(MsnOim *oim,char *body) { - char *oim_body; - char *oim_base64,*oim_base16; + char *oim_body,*oim_base64; gaim_debug_info("MaYuan","encode OIM Message...\n"); - gaim_debug_info("MaYuan","runid:{%s}\n",oim->run_id); - gaim_debug_info("MaYuan","body:{%s}\n",body); oim_base64 = gaim_base64_encode((const guchar *)body, strlen(body)); - gaim_debug_info("MaYuan","encode body:{%s}\n",oim_base64); - oim_base16 = gaim_base16_encode((const guchar *)body, strlen(body)); - gaim_debug_info("MaYuan","encode body:{%s}\n",oim_base16); + gaim_debug_info("MaYuan","encoded base64 body:{%s}\n",oim_base64); oim_body = g_strdup_printf(MSN_OIM_MSG_TEMPLATE, oim->run_id,oim->send_seq,oim_base64); - gaim_debug_info("MaYuan","start base64 encode\n",body); return oim_body; } @@ -154,6 +151,10 @@ g_return_if_fail(session != NULL); } +/* + * Process the send return SOAP string + * If got SOAP Fault,get the lock key,and resend it. + */ void msn_oim_send_process(MsnOim *oim,char *body,int len) { @@ -169,6 +170,7 @@ /*Send OK! return*/ MsnOimSendReq *request; + gaim_debug_info("MaYuan","send OIM OK!"); xmlnode_free(responseNode); request = g_queue_pop_head(oim->send_queue); msn_oim_free_send_req(request); @@ -179,9 +181,7 @@ /*get the challenge,and repost it*/ detailNode = xmlnode_get_child(faultNode, "detail"); challengeNode = xmlnode_get_child(detailNode,"LockKeyChallenge"); -// gaim_debug_info("MaYuan","challenge:{%s}\n",challenge); - gaim_debug_info("MaYuan","prepare to dup the challenge\n"); g_free(oim->challenge); oim->challenge = xmlnode_get_data(challengeNode); gaim_debug_info("MaYuan","lockkey:{%s}\n",oim->challenge); @@ -197,9 +197,14 @@ msn_oim_send_read_cb(gpointer data, GaimSslConnection *gsc, GaimInputCondition cond) { - MsnSoapConn * soapconn = data; + MsnSoapConn * soapconn = data; + MsnSession *session = soapconn->session; MsnOim * oim; + g_return_if_fail(session != NULL); + oim = soapconn->session->oim; + g_return_if_fail(oim != NULL); + gaim_debug_info("MaYuan","read buffer:{%s}\n",soapconn->body); msn_oim_send_process(oim,soapconn->body,soapconn->body_len); } @@ -233,7 +238,9 @@ char *soap_body,*mspauth; char *msg_body; char buf[33]; - + + g_return_if_fail(oim != NULL); + gaim_debug_info("MaYuan","queue:{%p}\n",oim->send_queue); oim_request = g_queue_pop_head(oim->send_queue); if(oim_request == NULL){ return; @@ -243,17 +250,21 @@ oim->session->passport_info.t, oim->session->passport_info.p ); - gaim_debug_info("MaYuan","get mspauth...\n"); + g_queue_push_head(oim->send_queue,oim_request); + + /* if we got the challenge lock key, we compute it + * else we go for the SOAP fault and resend it. + */ if(oim->challenge != NULL){ msn_handle_chl(oim->challenge, buf); + oim_request->send_seq++; }else{ - g_queue_push_head(oim->send_queue,oim_request); + gaim_debug_info("MaYuan","no lock key challenge,wait for SOAP Fault and Resend\n"); buf[0]='\0'; } - gaim_debug_info("MaYuan","get challenge...\n"); + gaim_debug_info("MaYuan","get the lock key challenge {%s}\n",buf); msg_body = msn_oim_msg_to_str(oim, oim_request->oim_msg); - gaim_debug_info("MaYuan","get body...\n"); soap_body = g_strdup_printf(MSN_OIM_SEND_TEMPLATE, oim_request->from_member, oim_request->friendname, @@ -264,7 +275,6 @@ oim_request->send_seq, msg_body ); - gaim_debug_info("MaYuan","post body...\n"); soap_request = msn_soap_request_new(MSN_OIM_SEND_HOST, MSN_OIM_SEND_URL,MSN_OIM_SEND_SOAP_ACTION, soap_body, Modified: branches/soc-2006-msnp13/src/protocols/msn/slpcall.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/slpcall.c 2006-08-26 07:11:55 UTC (rev 17039) +++ branches/soc-2006-msnp13/src/protocols/msn/slpcall.c 2006-08-26 08:07:08 UTC (rev 17040) @@ -22,6 +22,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "msn.h" +#include "msn-utils.h" #include "slpcall.h" #include "slpsession.h" @@ -30,24 +31,6 @@ /* #define MSN_DEBUG_SLPCALL */ /************************************************************************** - * Util - **************************************************************************/ - -char * -rand_guid() -{ - return g_strdup_printf("%4X%4X-%4X-%4X-%4X-%4X%4X%4X", - rand() % 0xAAFF + 0x1111, - rand() % 0xAAFF + 0x1111, - rand() % 0xAAFF + 0x1111, - rand() % 0xAAFF + 0x1111, - rand() % 0xAAFF + 0x1111, - rand() % 0xAAFF + 0x1111, - rand() % 0xAAFF + 0x1111, - rand() % 0xAAFF + 0x1111); -} - -/************************************************************************** * Main **************************************************************************/ Modified: branches/soc-2006-msnp13/src/protocols/msn/user.h =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/user.h 2006-08-26 07:11:55 UTC (rev 17039) +++ branches/soc-2006-msnp13/src/protocols/msn/user.h 2006-08-26 08:07:08 UTC (rev 17040) @@ -295,6 +295,12 @@ */ GHashTable *msn_user_get_client_caps(const MsnUser *user); +/** + * check to see if user is online + */ +gboolean +msn_user_is_online(GaimAccount *account, const char *name); + /*@}*/ #endif /* _MSN_USER_H_ */ Modified: branches/soc-2006-msnp13/src/protocols/msn/userlist.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/userlist.c 2006-08-26 07:11:55 UTC (rev 17039) +++ branches/soc-2006-msnp13/src/protocols/msn/userlist.c 2006-08-26 08:07:08 UTC (rev 17040) @@ -279,7 +279,7 @@ * looked at this. Maybe we should use the store * name instead? --KingAnt */ - got_new_entry(gc, passport, friendly); +// got_new_entry(gc, passport, friendly); } } @@ -391,7 +391,7 @@ */ if (!(list_op & (MSN_LIST_AL_OP | MSN_LIST_BL_OP))){ - got_new_entry(gc, passport, store); +// got_new_entry(gc, passport, store); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-08-26 07:11:58
|
Revision: 17039 Author: sadrul Date: 2006-08-26 00:11:55 -0700 (Sat, 26 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17039&view=rev Log Message: ----------- Patch #1546776 from Georgi Georgiev. This fixes things if someone uses --enable-gntgaim or --enable-gtkgaim. This also fixes things for --disable-gnt/gtkgaim, so I am reverting some bits from my earlier changes to fix those. Modified Paths: -------------- trunk/COPYRIGHT trunk/configure.ac Modified: trunk/COPYRIGHT =================================================================== --- trunk/COPYRIGHT 2006-08-26 06:26:39 UTC (rev 17038) +++ trunk/COPYRIGHT 2006-08-26 07:11:55 UTC (rev 17039) @@ -108,6 +108,7 @@ François Gagné Evgueni V. Gavrilov Ignacy Gawedzki +Georgi Georgiev Ike Gingerich Gustavo Giráldez Richard Gobeille Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2006-08-26 06:26:39 UTC (rev 17038) +++ trunk/configure.ac 2006-08-26 07:11:55 UTC (rev 17039) @@ -528,8 +528,10 @@ AC_ARG_WITH(tkconfig, [ --with-tkconfig=DIR directory containing tkConfig.sh]) AC_ARG_ENABLE(gtkspell, [ --disable-gtkspell compile without GtkSpell automatic spell checking],,enable_gtkspell=yes) AC_ARG_ENABLE(debug, [ --enable-debug compile with debugging support],,enable_debug=no) -AC_ARG_ENABLE(gtkgaim, [AC_HELP_STRING([--disable-gtkgaim], [compile without GtkGaim client])], , enable_gtk=yes) -AC_ARG_ENABLE(gntgaim, [AC_HELP_STRING([--disable-gntgaim], [compile without GntGaim console client])], , enable_gnt=yes) +AC_ARG_ENABLE(gtkgaim, [AC_HELP_STRING([--disable-gtkgaim], [compile without GtkGaim client])], + enable_gtk=$enableval, enable_gtk=yes) +AC_ARG_ENABLE(gntgaim, [AC_HELP_STRING([--disable-gntgaim], [compile without GntGaim console client])], + enable_gnt=$enableval, enable_gnt=yes) AC_ARG_ENABLE(fatal-asserts, [ --enable-fatal-asserts make assertions fatal (useful for debugging)],,enable_fatal_asserts=no) dnl We know Gaim won't compile with deprecated APIs disabled. dnl We have no desire to support two different versions of the @@ -661,8 +663,6 @@ ]) AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) -else - enable_gtk=no fi AC_PATH_XTRA @@ -812,8 +812,6 @@ # Some distros put the headers in ncursesw/, some don't AC_CHECK_HEADER(ncursesw/ncurses.h, [AC_DEFINE(HAVE_NCURSESW_INC, 1, [Define if you have the ncursesw headers in ncursesw/])]) -else - enable_gnt=no fi AC_SUBST(GNT_LIBS) AM_CONDITIONAL(ENABLE_GNT, test "x$enable_gnt" = "xyes") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rl...@us...> - 2006-08-26 06:26:44
|
Revision: 17038 Author: rlaager Date: 2006-08-25 23:26:39 -0700 (Fri, 25 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17038&view=rev Log Message: ----------- Fixes GtR* Bug #1 Contactify "View User Log" in the Buddies menu. This has been on my TODO list forever. Yay for long trips with the laptop. * Gary to Richard, via IM ;) Modified Paths: -------------- trunk/gtk/gtkdialogs.c Modified: trunk/gtk/gtkdialogs.c =================================================================== --- trunk/gtk/gtkdialogs.c 2006-08-26 06:26:25 UTC (rev 17037) +++ trunk/gtk/gtkdialogs.c 2006-08-26 06:26:39 UTC (rev 17038) @@ -809,6 +809,7 @@ { char *username; GaimAccount *account; + GSList *cur; account = gaim_request_fields_get_account(fields, "account"); @@ -818,9 +819,25 @@ if (username != NULL && *username != '\0' && account != NULL) { GaimGtkBuddyList *gtkblist = gaim_gtk_blist_get_default_gtk_blist(); + GSList *buddies; gaim_gtk_set_cursor(gtkblist->window, GDK_WATCH); + buddies = gaim_find_buddies(account, username); + for (cur = buddies; cur != NULL; cur = cur->next) + { + GaimBlistNode *node = cur->data; + if ((node != NULL) && ((node->prev != NULL) || (node->next != NULL))) + { + gaim_gtk_log_show_contact((GaimContact *)node->parent); + g_slist_free(buddies); + gaim_gtk_clear_cursor(gtkblist->window); + g_free(username); + return; + } + } + g_slist_free(buddies); + gaim_gtk_log_show(GAIM_LOG_IM, username, account); gaim_gtk_clear_cursor(gtkblist->window); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rl...@us...> - 2006-08-26 06:26:28
|
Revision: 17037 Author: rlaager Date: 2006-08-25 23:26:25 -0700 (Fri, 25 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17037&view=rev Log Message: ----------- Add QQ to the list of protocols in the About box. Modified Paths: -------------- trunk/gtk/gtkdialogs.c Modified: trunk/gtk/gtkdialogs.c =================================================================== --- trunk/gtk/gtkdialogs.c 2006-08-26 06:26:09 UTC (rev 17036) +++ trunk/gtk/gtkdialogs.c 2006-08-26 06:26:25 UTC (rev 17037) @@ -320,8 +320,8 @@ g_string_append(str, _("Gaim is a modular messaging client capable of using " "AIM, MSN, Yahoo!, Jabber, ICQ, IRC, SILC, " - "Novell GroupWise, Lotus Sametime, Zephyr, and Gadu-Gadu " - "all at once. It is written using GTK+.<BR><BR>" + "Novell GroupWise, Lotus Sametime, Zephyr, Gadu-Gadu, " + "and QQ all at once. It is written using GTK+.<BR><BR>" "You may modify and redistribute the program under " "the terms of the GPL (version 2 or later). A copy of the GPL is " "contained in the 'COPYING' file distributed with Gaim. " This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rl...@us...> - 2006-08-26 06:26:15
|
Revision: 17036 Author: rlaager Date: 2006-08-25 23:26:09 -0700 (Fri, 25 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17036&view=rev Log Message: ----------- GaimGtkLogViewer is only used within gtklog.c, so let's hide it. Modified Paths: -------------- trunk/doc/ChangeLog.API trunk/gtk/gtklog.c trunk/gtk/gtklog.h Modified: trunk/doc/ChangeLog.API =================================================================== --- trunk/doc/ChangeLog.API 2006-08-26 06:25:49 UTC (rev 17035) +++ trunk/doc/ChangeLog.API 2006-08-26 06:26:09 UTC (rev 17036) @@ -189,6 +189,7 @@ * gaim_conversation_get_send_history(), and send_history from GaimConversation * Removed ui_ops from GaimBuddyList. Use gaim_blist_get_ui_ops() instead + * GaimGtkLogViewer hidden... You weren't using it anyway. Added: * gaim_prefs_disconnect_by_handle() Modified: trunk/gtk/gtklog.c =================================================================== --- trunk/gtk/gtklog.c 2006-08-26 06:25:49 UTC (rev 17035) +++ trunk/gtk/gtklog.c 2006-08-26 06:26:09 UTC (rev 17036) @@ -34,6 +34,25 @@ #include "notify.h" #include "util.h" +typedef struct _GaimGtkLogViewer GaimGtkLogViewer; + +/** + * A GTK+ Log Viewer. You can look at logs with it. + */ +struct _GaimGtkLogViewer { + GList *logs; /**< The list of logs viewed in this viewer */ + + GtkWidget *window; /**< The viewer's window */ + GtkTreeStore *treestore; /**< The treestore containing said logs */ + GtkWidget *treeview; /**< The treeview representing said treestore */ + GtkWidget *imhtml; /**< The imhtml to display said logs */ + GtkWidget *entry; /**< The search entry, in which search terms + * are entered */ + GaimLogReadFlags flags; /**< The most recently used log flags */ + char *search; /**< The string currently being searched for */ + GtkWidget *label; /**< The label at the top of the log viewer */ +}; + static GHashTable *log_viewers = NULL; static void populate_log_tree(GaimGtkLogViewer *lv); static GaimGtkLogViewer *syslog_viewer = NULL; Modified: trunk/gtk/gtklog.h =================================================================== --- trunk/gtk/gtklog.h 2006-08-26 06:25:49 UTC (rev 17035) +++ trunk/gtk/gtklog.h 2006-08-26 06:26:09 UTC (rev 17036) @@ -30,27 +30,6 @@ #include "account.h" -typedef struct _GaimGtkLogViewer GaimGtkLogViewer; - -/** - * A GTK+ Log Viewer. You can look at logs with it. - */ -struct _GaimGtkLogViewer { - GList *logs; /**< The list of logs viewed in this viewer */ - - GtkWidget *window; /**< The viewer's window */ - GtkTreeStore *treestore; /**< The treestore containing said logs */ - GtkWidget *treeview; /**< The treeview representing said treestore */ - GtkWidget *imhtml; /**< The imhtml to display said logs */ - GtkWidget *entry; /**< The search entry, in which search terms - * are entered */ - GaimLogReadFlags flags; /**< The most recently used log flags */ - char *search; /**< The string currently being searched for */ - GtkWidget *label; /**< The label at the top of the log viewer */ -}; - - - void gaim_gtk_log_show(GaimLogType type, const char *screenname, GaimAccount *account); void gaim_gtk_log_show_contact(GaimContact *contact); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rl...@us...> - 2006-08-26 06:25:58
|
Revision: 17035 Author: rlaager Date: 2006-08-25 23:25:49 -0700 (Fri, 25 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17035&view=rev Log Message: ----------- Fixes SF Bug # 1373116 (and related Debian Bug #341607) Fix the Find functionality in the log viewer. It now properly scrolls to the first occurrence of the search term. Also, clicking the Find button will now jump to the next occurrence of the search term, including wrapping around to the top. Possible Badness: This changes the behavior of all IMHTML searches. Previously, if you kept calling gtk_imhtml_search_find(), it'd clear the highlighting when you went past the last occurrence of the search term. This seems wrong. I believe it should either stop or wrap around to the top. Wrapping around seemed most useful to me, so that's what I implemented. This was inspired by SF Patch #1545488 by Mark Schneider Modified Paths: -------------- trunk/doc/ChangeLog.API trunk/gtk/gtkimhtml.c trunk/gtk/gtklog.c Modified: trunk/doc/ChangeLog.API =================================================================== --- trunk/doc/ChangeLog.API 2006-08-26 03:25:00 UTC (rev 17034) +++ trunk/doc/ChangeLog.API 2006-08-26 06:25:49 UTC (rev 17035) @@ -125,6 +125,8 @@ * gaim_gtk_create_imhtml(): Added sw_ret() parameter * gaim_account_get_log(): Added create parameter * GAIM_CMD_P_VERYHIGH is now GAIM_CMD_P_VERY_HIGH + * gtk_imhtml_search_find(): Now wraps around to the top instead of + clearing the search at the end. Removed: * gaim_gtk_sound_{get,set}_mute() (replaced by the /gaim/gtk/sound/mute Modified: trunk/gtk/gtkimhtml.c =================================================================== --- trunk/gtk/gtkimhtml.c 2006-08-26 03:25:00 UTC (rev 17034) +++ trunk/gtk/gtkimhtml.c 2006-08-26 06:25:49 UTC (rev 17035) @@ -3542,12 +3542,13 @@ imhtml->search_string = g_strdup(text); if (gtk_source_iter_forward_search(&iter, imhtml->search_string, - GTK_SOURCE_SEARCH_VISIBLE_ONLY | GTK_SOURCE_SEARCH_CASE_INSENSITIVE, - &start, &end, NULL)) { - + GTK_SOURCE_SEARCH_VISIBLE_ONLY | GTK_SOURCE_SEARCH_CASE_INSENSITIVE, + &start, &end, NULL)) + { gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(imhtml), &start, 0, TRUE, 0, 0); gtk_text_buffer_create_mark(imhtml->text_buffer, "search", &end, FALSE); - if (new_search) { + if (new_search) + { gtk_text_buffer_remove_tag_by_name(imhtml->text_buffer, "search", &iter, &end); do gtk_text_buffer_apply_tag_by_name(imhtml->text_buffer, "search", &start, &end); @@ -3558,9 +3559,23 @@ } return TRUE; } + else if (!new_search) + { + /* We hit the end, so start at the beginning again. */ + gtk_text_buffer_get_start_iter(imhtml->text_buffer, &iter); - gtk_imhtml_search_clear(imhtml); + if (gtk_source_iter_forward_search(&iter, imhtml->search_string, + GTK_SOURCE_SEARCH_VISIBLE_ONLY | GTK_SOURCE_SEARCH_CASE_INSENSITIVE, + &start, &end, NULL)) + { + gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(imhtml), &start, 0, TRUE, 0, 0); + gtk_text_buffer_create_mark(imhtml->text_buffer, "search", &end, FALSE); + return TRUE; + } + + } + return FALSE; } Modified: trunk/gtk/gtklog.c =================================================================== --- trunk/gtk/gtklog.c 2006-08-26 03:25:00 UTC (rev 17034) +++ trunk/gtk/gtklog.c 2006-08-26 06:25:49 UTC (rev 17035) @@ -111,23 +111,32 @@ const char *search_term = gtk_entry_get_text(GTK_ENTRY(lv->entry)); GList *logs; - g_free(lv->search); - - gtk_tree_store_clear(lv->treestore); if (!(*search_term)) { /* reset the tree */ + gtk_tree_store_clear(lv->treestore); populate_log_tree(lv); + g_free(lv->search); lv->search = NULL; gtk_imhtml_search_clear(GTK_IMHTML(lv->imhtml)); select_first_log(lv); return; } + if (lv->search != NULL && !strcmp(lv->search, search_term)) + { + /* Searching for the same term acts as "Find Next" */ + gtk_imhtml_search_find(GTK_IMHTML(lv->imhtml), lv->search); + return; + } + + gaim_gtk_set_cursor(lv->window, GDK_WATCH); + + g_free(lv->search); lv->search = g_strdup(search_term); + + gtk_tree_store_clear(lv->treestore); gtk_imhtml_clear(GTK_IMHTML(lv->imhtml)); - gaim_gtk_set_cursor(lv->window, GDK_WATCH); - for (logs = lv->logs; logs != NULL; logs = logs->next) { char *read = gaim_log_read((GaimLog*)logs->data, NULL); if (read && *read && gaim_strcasestr(read, search_term)) { @@ -176,6 +185,13 @@ gtk_tree_view_expand_row(tv, path, FALSE); } +static gboolean search_find_cb(gpointer data) +{ + GaimGtkLogViewer *viewer = data; + gtk_imhtml_search_find(GTK_IMHTML(viewer->imhtml), viewer->search); + return FALSE; +} + static void log_select_cb(GtkTreeSelection *sel, GaimGtkLogViewer *viewer) { GtkTreeIter iter; GValue val; @@ -230,7 +246,7 @@ if (viewer->search != NULL) { gtk_imhtml_search_clear(GTK_IMHTML(viewer->imhtml)); - gtk_imhtml_search_find(GTK_IMHTML(viewer->imhtml), viewer->search); + g_idle_add(search_find_cb, viewer); } gaim_gtk_clear_cursor(viewer->window); @@ -291,7 +307,7 @@ GtkWidget *vbox; GtkWidget *frame; GtkWidget *hbox; - GtkWidget *button; + GtkWidget *find_button; GtkWidget *size_label; if (logs == NULL) @@ -417,10 +433,10 @@ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); lv->entry = gtk_entry_new(); gtk_box_pack_start(GTK_BOX(hbox), lv->entry, TRUE, TRUE, 0); - button = gtk_button_new_from_stock(GTK_STOCK_FIND); - gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); + find_button = gtk_button_new_from_stock(GTK_STOCK_FIND); + gtk_box_pack_start(GTK_BOX(hbox), find_button, FALSE, FALSE, 0); g_signal_connect(GTK_ENTRY(lv->entry), "activate", G_CALLBACK(search_cb), lv); - g_signal_connect(GTK_BUTTON(button), "clicked", G_CALLBACK(search_cb), lv); + g_signal_connect(GTK_BUTTON(find_button), "clicked", G_CALLBACK(search_cb), lv); select_first_log(lv); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <may...@us...> - 2006-08-26 03:25:18
|
Revision: 17034 Author: mayuan2006 Date: 2006-08-25 20:25:00 -0700 (Fri, 25 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17034&view=rev Log Message: ----------- middle version for oim send not stable,don't use it! committed by MaYuan<may...@gm...> Modified Paths: -------------- branches/soc-2006-msnp13/src/protocols/msn/contact.c branches/soc-2006-msnp13/src/protocols/msn/msn.c branches/soc-2006-msnp13/src/protocols/msn/oim.c branches/soc-2006-msnp13/src/protocols/msn/oim.h branches/soc-2006-msnp13/src/protocols/msn/slpcall.c branches/soc-2006-msnp13/src/protocols/msn/soap.c branches/soc-2006-msnp13/src/protocols/msn/user.c Modified: branches/soc-2006-msnp13/src/protocols/msn/contact.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/contact.c 2006-08-25 23:59:23 UTC (rev 17033) +++ branches/soc-2006-msnp13/src/protocols/msn/contact.c 2006-08-26 03:25:00 UTC (rev 17034) @@ -117,7 +117,7 @@ int list_op =0; char * passport; xmlnode * node,*body,*response,*result,*services,*service,*memberships; - xmlnode *membershipnode,*members,*member,*passportNode,*role; + xmlnode *membershipnode,*members,*member,*passportNode; session = contact->session; gaim_debug_misc("xml","parse contact list:{%s}\nsize:%d\n",contact->soapconn->body,contact->soapconn->body_len); @@ -143,9 +143,13 @@ gaim_debug_misc("xml","memberships{%p},name:%s\n",memberships,memberships->name); for(membershipnode = xmlnode_get_child(memberships, "Membership"); membershipnode; membershipnode = xmlnode_get_next_twin(membershipnode)){ - role = xmlnode_get_child(membershipnode,"MemberRole"); - list_op = msn_get_memberrole(xmlnode_get_data(role)); - gaim_debug_misc("memberrole","role:%s,list_op:%d\n",xmlnode_get_data(role),list_op); + xmlnode *roleNode; + char *role; + roleNode = xmlnode_get_child(membershipnode,"MemberRole"); + role=xmlnode_get_data(roleNode); + list_op = msn_get_memberrole(role); + gaim_debug_misc("memberrole","role:%s,list_op:%d\n",role,list_op); + g_free(role); members = xmlnode_get_child(membershipnode,"Members"); for(member = xmlnode_get_child(members, "Member"); member; member = xmlnode_get_next_twin(member)){ @@ -160,9 +164,11 @@ typeNode = xmlnode_get_child(member,"Type"); type = xmlnode_get_data(typeNode); gaim_debug_misc("Passport","name:%s,type:%s\n",passport,type); + g_free(type); user = msn_userlist_find_add_user(session->userlist,passport,NULL); msn_got_lst_user(session, user, list_op, NULL); + g_free(passport); } if(!g_strcasecmp(xmlnode_get_attrib(member,"type"),"PhoneMember")){ } @@ -174,6 +180,7 @@ gaim_debug_info("Email","name:%s,list_op:%d\n",passport,list_op); user = msn_userlist_find_add_user(session->userlist,passport,NULL); msn_got_lst_user(session,user,list_op,NULL); + g_free(passport); } } } @@ -268,18 +275,20 @@ continue; } - gaim_debug_misc("MsnContact","group_id:%s name:%s\n",group_id,group_name); + gaim_debug_misc("MsnAB","group_id:%s name:%s\n",group_id,group_name); if ((gaim_find_group(group_name)) == NULL){ GaimGroup *g = gaim_group_new(group_name); gaim_blist_add_group(g, NULL); } + g_free(group_id); + g_free(group_name); } /*add a default No group to set up the no group Membership*/ group_id = g_strdup(MSN_INDIVIDUALS_GROUP_ID); group_name = g_strdup(MSN_INDIVIDUALS_GROUP_NAME); msn_group_new(session->userlist,group_id , group_name); if (group_id != NULL){ - gaim_debug_misc("MsnContact","group_id:%s name:%s,value:%d\n",group_id,group_name,*group_name=='\0'); + gaim_debug_misc("MsnAB","group_id:%s name:%s,value:%d\n",group_id,group_name,*group_name=='\0'); if ((gaim_find_group(group_name)) == NULL){ GaimGroup *g = gaim_group_new(group_name); gaim_blist_add_group(g, NULL); @@ -293,7 +302,7 @@ group_name = g_strdup(MSN_NON_IM_GROUP_NAME); msn_group_new(session->userlist,group_id , group_name); if (group_id != NULL){ - gaim_debug_misc("MsnContact","group_id:%s name:%s,value:%d\n",group_id,group_name,*group_name=='\0'); + gaim_debug_misc("MsnAB","group_id:%s name:%s,value:%d\n",group_id,group_name,*group_name=='\0'); if ((gaim_find_group(group_name)) == NULL){ GaimGroup *g = gaim_group_new(group_name); gaim_blist_add_group(g, NULL); @@ -335,38 +344,44 @@ if(!strcmp(msnEnabled,"true")){ emailNode = xmlnode_get_child(contactEmailNode,"email"); passport = xmlnode_get_data(emailNode); - gaim_debug_info("Ma Yuan","Yahoo User %s\n",passport); + gaim_debug_info("MsnAB","Yahoo User %s\n",passport); break; } + g_free(msnEnabled); } }else{ passport = xmlnode_get_data(passportName); } displayName = xmlnode_get_child(contactInfo,"displayName"); - if(displayName == NULL) - Name = passport; - else + if(displayName == NULL){ + Name = g_strdup(passport); + }else{ Name =xmlnode_get_data(displayName); + } - gaim_debug_misc("contact","name:%s,Id:{%s},display:{%s}\n", + gaim_debug_misc("MsnAB","name:%s,Id:{%s},display:{%s}\n", passport, - xmlnode_get_data(contactId), + uid, Name); user = msn_userlist_find_add_user(session->userlist, passport,Name); msn_user_set_uid(user,uid); msn_user_set_type(user,msn_get_user_type(type)); user->list_op |= MSN_LIST_FL_OP; + g_free(Name); + g_free(passport); + g_free(uid); + g_free(type); - gaim_debug_misc("MsnContact","\n"); groupIds = xmlnode_get_child(contactInfo,"groupIds"); if(groupIds){ for(guid = xmlnode_get_child(groupIds, "guid");guid; guid = xmlnode_get_next_twin(guid)){ group_id = xmlnode_get_data(guid); msn_user_add_group_id(user,group_id); - gaim_debug_misc("contact","guid:%s\n",group_id); + gaim_debug_misc("MsnAB","guid:%s\n",group_id); + g_free(group_id); } }else{ group_id = g_strdup(MSN_INDIVIDUALS_GROUP_ID); Modified: branches/soc-2006-msnp13/src/protocols/msn/msn.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/msn.c 2006-08-25 23:59:23 UTC (rev 17033) +++ branches/soc-2006-msnp13/src/protocols/msn/msn.c 2006-08-26 03:25:00 UTC (rev 17034) @@ -824,65 +824,81 @@ account = gaim_connection_get_account(gc); msn_import_html(message, &msgformat, &msgtext); + if(msn_user_is_online(account, who)){ + /*User online,then send Online Instant Message*/ - if (strlen(msgtext) + strlen(msgformat) + strlen(VERSION) > 1564) - { + if (strlen(msgtext) + strlen(msgformat) + strlen(VERSION) > 1564) + { + g_free(msgformat); + g_free(msgtext); + + return -E2BIG; + } + + msg = msn_message_new_plain(msgtext); + msg->remote_user = g_strdup(who); + msn_message_set_attr(msg, "X-MMS-IM-Format", msgformat); + g_free(msgformat); g_free(msgtext); - return -E2BIG; - } + gaim_debug_info("MaYuan","prepare to send online Message\n"); + if (g_ascii_strcasecmp(who, gaim_account_get_username(account))) + { + MsnSession *session; + MsnSwitchBoard *swboard; - msg = msn_message_new_plain(msgtext); - msg->remote_user = g_strdup(who); - msn_message_set_attr(msg, "X-MMS-IM-Format", msgformat); + session = gc->proto_data; + if(strstr(who,"yahoo") != NULL){ + gaim_debug_info("MaYuan","send to Yahoo!\n"); + uum_send_msg(session,msg); + }else{ + gaim_debug_info("MaYuan","send via switchboard\n"); + swboard = msn_session_get_swboard(session, who, MSN_SB_FLAG_IM); + msn_switchboard_send_msg(swboard, msg, TRUE); + } + } + else + { + char *body_str, *body_enc, *pre, *post; + const char *format; + /* + * In MSN, you can't send messages to yourself, so + * we'll fake like we received it ;) + */ + body_str = msn_message_to_string(msg); + body_enc = g_markup_escape_text(body_str, -1); + g_free(body_str); - g_free(msgformat); - g_free(msgtext); + format = msn_message_get_attr(msg, "X-MMS-IM-Format"); + msn_parse_format(format, &pre, &post); + body_str = g_strdup_printf("%s%s%s", pre ? pre : "", + body_enc ? body_enc : "", post ? post : ""); + g_free(body_enc); + g_free(pre); + g_free(post); - gaim_debug_info("MaYuan","prepare to send...\n"); - if (g_ascii_strcasecmp(who, gaim_account_get_username(account))) - { + serv_got_typing_stopped(gc, who); + serv_got_im(gc, who, body_str, flags, time(NULL)); + g_free(body_str); + } + + msn_message_destroy(msg); + }else { + /*send Offline Instant Message*/ MsnSession *session; - MsnSwitchBoard *swboard; - + MsnOim *oim; + char *friendname; + + gaim_debug_info("MaYuan","prepare to send offline Message\n"); session = gc->proto_data; - if(strstr(who,"yahoo") != NULL){ - gaim_debug_info("MaYuan","send to Yahoo!\n"); - uum_send_msg(session,msg); - }else{ - gaim_debug_info("MaYuan","send via switchboard\n"); - swboard = msn_session_get_swboard(session, who, MSN_SB_FLAG_IM); - msn_switchboard_send_msg(swboard, msg, TRUE); - } + oim = session->oim; + friendname = g_strdup_printf("=?utf-8?B?Y2xpZW50?="); + msn_oim_prep_send_msg_info(oim, + gaim_account_get_username(account),friendname,who, + msg); + msn_oim_send_msg(oim); } - else - { - char *body_str, *body_enc, *pre, *post; - const char *format; - /* - * In MSN, you can't send messages to yourself, so - * we'll fake like we received it ;) - */ - body_str = msn_message_to_string(msg); - body_enc = g_markup_escape_text(body_str, -1); - g_free(body_str); - - format = msn_message_get_attr(msg, "X-MMS-IM-Format"); - msn_parse_format(format, &pre, &post); - body_str = g_strdup_printf("%s%s%s", pre ? pre : "", - body_enc ? body_enc : "", post ? post : ""); - g_free(body_enc); - g_free(pre); - g_free(post); - - serv_got_typing_stopped(gc, who); - serv_got_im(gc, who, body_str, flags, time(NULL)); - g_free(body_str); - } - - msn_message_destroy(msg); - return 1; } Modified: branches/soc-2006-msnp13/src/protocols/msn/oim.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/oim.c 2006-08-25 23:59:23 UTC (rev 17033) +++ branches/soc-2006-msnp13/src/protocols/msn/oim.c 2006-08-26 03:25:00 UTC (rev 17034) @@ -26,11 +26,13 @@ #include "msn.h" #include "soap.h" #include "oim.h" +#include "msn-utils.h" /*Local Function Prototype*/ static void msn_oim_post_single_get_msg(MsnOim *oim,const char *msgid); void msn_oim_retrieve_connect_init(MsnSoapConn *soapconn); void msn_oim_send_connect_init(MsnSoapConn *soapconn); +void msn_oim_free_send_req(MsnOimSendReq *req); /*new a OIM object*/ MsnOim * @@ -41,9 +43,13 @@ oim = g_new0(MsnOim, 1); oim->session = session; oim->retrieveconn = msn_soap_new(session,oim,1); + oim->oim_list = NULL; oim->sendconn = msn_soap_new(session,oim,1); - + oim->run_id = rand_guid(); + oim->challenge = NULL; + oim->send_queue = g_queue_new(); + oim->send_seq = 1; return oim; } @@ -51,14 +57,74 @@ void msn_oim_destroy(MsnOim *oim) { + MsnOimSendReq *request; + msn_soap_destroy(oim->retrieveconn); msn_soap_destroy(oim->sendconn); + g_free(oim->run_id); + g_free(oim->challenge); + + while((request = g_queue_pop_head(oim->send_queue)) != NULL){ + msn_oim_free_send_req(request); + } + g_queue_free(oim->send_queue); + g_free(oim); } +MsnOimSendReq * +msn_oim_new_send_req(char *from_member, + char*friendname,char* to_member, + gint send_seq, + char *msg) +{ + MsnOimSendReq *request; + + request = g_new0(MsnOimSendReq, 1); + request->from_member =g_strdup(from_member); + request->friendname = g_strdup(friendname); + request->to_member = g_strdup(to_member); + request->send_seq = send_seq; + request->oim_msg= g_strdup(msg); + return request; +} + +void +msn_oim_free_send_req(MsnOimSendReq *req) +{ + g_free(req->from_member); + g_free(req->friendname); + g_free(req->to_member); + g_free(req->oim_msg); + + g_free(req); +} + /**************************************** * OIM send SOAP request * **************************************/ +/*encode the message to OIM Message Format*/ +char * +msn_oim_msg_to_str(MsnOim *oim,char *body) +{ + char *oim_body; + char *oim_base64,*oim_base16; + + gaim_debug_info("MaYuan","encode OIM Message...\n"); + gaim_debug_info("MaYuan","runid:{%s}\n",oim->run_id); + gaim_debug_info("MaYuan","body:{%s}\n",body); + oim_base64 = gaim_base64_encode((const guchar *)body, strlen(body)); + gaim_debug_info("MaYuan","encode body:{%s}\n",oim_base64); + oim_base16 = gaim_base16_encode((const guchar *)body, strlen(body)); + gaim_debug_info("MaYuan","encode body:{%s}\n",oim_base16); + + oim_body = g_strdup_printf(MSN_OIM_MSG_TEMPLATE, + oim->run_id,oim->send_seq,oim_base64); + gaim_debug_info("MaYuan","start base64 encode\n",body); + + return oim_body; +} + /*oim SOAP server login error*/ static void msn_oim_send_error_cb(GaimSslConnection *gsc, GaimSslErrorType error, void *data) @@ -88,14 +154,54 @@ g_return_if_fail(session != NULL); } +void +msn_oim_send_process(MsnOim *oim,char *body,int len) +{ + xmlnode *responseNode,*bodyNode,*faultNode; + xmlnode *detailNode,*challengeNode; + char *challenge; + + responseNode = xmlnode_from_str(body,len); + g_return_if_fail(responseNode != NULL); + bodyNode = xmlnode_get_child(responseNode,"Body"); + faultNode = xmlnode_get_child(bodyNode,"Fault"); + if(faultNode == NULL){ + /*Send OK! return*/ + MsnOimSendReq *request; + + xmlnode_free(responseNode); + request = g_queue_pop_head(oim->send_queue); + msn_oim_free_send_req(request); + /*send next buffered Offline Message*/ + msn_soap_post(oim->sendconn,NULL,msn_oim_send_connect_init); + return; + } + /*get the challenge,and repost it*/ + detailNode = xmlnode_get_child(faultNode, "detail"); + challengeNode = xmlnode_get_child(detailNode,"LockKeyChallenge"); +// gaim_debug_info("MaYuan","challenge:{%s}\n",challenge); + + gaim_debug_info("MaYuan","prepare to dup the challenge\n"); + g_free(oim->challenge); + oim->challenge = xmlnode_get_data(challengeNode); + gaim_debug_info("MaYuan","lockkey:{%s}\n",oim->challenge); + + xmlnode_free(responseNode); + + /*repost the send*/ + gaim_debug_info("MaYuan","prepare to repost the send...\n"); + msn_oim_send_msg(oim); +} + static void msn_oim_send_read_cb(gpointer data, GaimSslConnection *gsc, GaimInputCondition cond) { MsnSoapConn * soapconn = data; - MsnOim * msnoim; + MsnOim * oim; gaim_debug_info("MaYuan","read buffer:{%s}\n",soapconn->body); + msn_oim_send_process(oim,soapconn->body,soapconn->body_len); } static void @@ -107,45 +213,70 @@ // msn_soap_read_cb(data,source,cond); } -/*pose single message to oim server*/ +void +msn_oim_prep_send_msg_info(MsnOim *oim, + char *membername,char*friendname,char *tomember, + char * msg) +{ + MsnOimSendReq *request; + + request = msn_oim_new_send_req(membername,friendname,tomember,oim->send_seq,msg); + g_queue_push_tail(oim->send_queue,request); +} + +/*post send single message request to oim server*/ void -msn_oim_send_single_msg(MsnOim *oim,char * msg) +msn_oim_send_msg(MsnOim *oim) { MsnSoapReq *soap_request; - const char *soap_body,*t,*p; + MsnOimSendReq *oim_request; + char *soap_body,*mspauth; + char *msg_body; + char buf[33]; + + oim_request = g_queue_pop_head(oim->send_queue); + if(oim_request == NULL){ + return; + } + gaim_debug_info("MaYuan","send single OIM Message\n"); + mspauth = g_strdup_printf("t=%s&p=%s", + oim->session->passport_info.t, + oim->session->passport_info.p + ); + gaim_debug_info("MaYuan","get mspauth...\n"); + if(oim->challenge != NULL){ + msn_handle_chl(oim->challenge, buf); + }else{ + g_queue_push_head(oim->send_queue,oim_request); + buf[0]='\0'; + } + gaim_debug_info("MaYuan","get challenge...\n"); - gaim_debug_info("MaYuan","send single OIM Message\n"); - oim->sendconn->login_path = g_strdup(MSN_OIM_SEND_URL); - oim->sendconn->soap_action = g_strdup(MSN_OIM_SEND_SOAP_ACTION); - t = oim->session->passport_info.t; - p = oim->session->passport_info.p; -#if 0 - oimsoapbody = g_strdup_printf(MSN_OIM_SEND_TEMPLATE, - membername, - friendname, - tomember, + msg_body = msn_oim_msg_to_str(oim, oim_request->oim_msg); + gaim_debug_info("MaYuan","get body...\n"); + soap_body = g_strdup_printf(MSN_OIM_SEND_TEMPLATE, + oim_request->from_member, + oim_request->friendname, + oim_request->to_member, mspauth, - prod_id, - lock_key, - msg_num, - msg + MSNP13_WLM_PRODUCT_ID, + buf, + oim_request->send_seq, + msg_body ); -#endif + gaim_debug_info("MaYuan","post body...\n"); soap_request = msn_soap_request_new(MSN_OIM_SEND_HOST, MSN_OIM_SEND_URL,MSN_OIM_SEND_SOAP_ACTION, soap_body, msn_oim_send_read_cb, msn_oim_send_written_cb); + g_free(mspauth); + g_free(msg_body); + g_free(soap_body); + msn_soap_post(oim->sendconn,soap_request,msn_oim_send_connect_init); } -void msn_oim_send_msg(MsnOim *oim,char *msg) -{ - if(msn_soap_connected(oim->sendconn) == -1){ - } - -} - /**************************************** * OIM delete SOAP request * **************************************/ @@ -304,6 +435,7 @@ msgNode = xmlnode_get_child(responseNode,"GetMessageResult"); msg_data = xmlnode_get_data(msgNode); msg_str = g_strdup(msg_data); + g_free(msg_data); gaim_debug_info("OIM","msg:{%s}\n",msg_str); msn_oim_report_to_user(oim,msg_str); @@ -342,14 +474,14 @@ void msn_parse_oim_msg(MsnOim *oim,const char *xmlmsg) { - xmlnode *mdNode,*mNode,*INode,*nNode,*ENode,*rtNode; + xmlnode *mdNode,*mNode,*ENode,*INode,*rtNode,*nNode; char *passport,*rTime,*msgid,*nickname; mdNode = xmlnode_from_str(xmlmsg, strlen(xmlmsg)); for(mNode = xmlnode_get_child(mdNode, "M"); mNode; mNode = xmlnode_get_next_twin(mNode)){ - INode = xmlnode_get_child(mNode,"E"); - passport = xmlnode_get_data(INode); + ENode = xmlnode_get_child(mNode,"E"); + passport = xmlnode_get_data(ENode); INode = xmlnode_get_child(mNode,"I"); msgid = xmlnode_get_data(INode); rtNode = xmlnode_get_child(mNode,"RT"); @@ -360,6 +492,10 @@ oim->oim_list = g_list_append(oim->oim_list,msgid); msn_oim_post_single_get_msg(oim,msgid); + g_free(passport); + g_free(msgid); + g_free(rTime); + g_free(nickname); } } Modified: branches/soc-2006-msnp13/src/protocols/msn/oim.h =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/oim.h 2006-08-25 23:59:23 UTC (rev 17033) +++ branches/soc-2006-msnp13/src/protocols/msn/oim.h 2006-08-26 03:25:00 UTC (rev 17034) @@ -67,18 +67,26 @@ "</soap:Envelope>" /*OIM Send SOAP Template*/ +#define MSN_OIM_MSG_TEMPLATE "MIME-Version: 1.0\n"\ + "Content-Type: text/plain; charset=UTF-8\n"\ + "Content-Transfer-Encoding: base64\n"\ + "X-OIM-Message-Type: OfflineMessage\n"\ + "X-OIM-Run-Id: {%s}\n"\ + "X-OIM-Sequence-Num: %d\n\n"\ + "%s" + #define MSN_OIM_SEND_HOST "ows.messenger.msn.com" #define MSN_OIM_SEND_URL "/OimWS/oim.asmx" #define MSN_OIM_SEND_SOAP_ACTION "http://messenger.msn.com/ws/2004/09/oim/Store" #define MSN_OIM_SEND_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\ "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"\ "<soap:Header>"\ - "<From memberName=\"%s\" friendlyName=\"%s\" xml:lang=\"en-US\" proxy=\"MSNMSGR\" xmlns=\"http://messenger.msn.com/ws/2004/09/oim/\" msnpVer=\"MSNP13\" buildVer=\"8.0.0689\"/>"\ + "<From memberName=\"%s\" friendlyName=\"%s\" xml:lang=\"en-US\" proxy=\"MSNMSGR\" xmlns=\"http://messenger.msn.com/ws/2004/09/oim/\" msnpVer=\"MSNP14\" buildVer=\"8.0.0792\"/>"\ "<To memberName=\"%s\" xmlns=\"http://messenger.msn.com/ws/2004/09/oim/\"/>"\ "<Ticket passport=\"%s\" appid=\"%s\" lockkey=\"%s\" xmlns=\"http://messenger.msn.com/ws/2004/09/oim/\"/>"\ "<Sequence xmlns=\"http://schemas.xmlsoap.org/ws/2003/03/rm\">"\ "<Identifier xmlns=\"http://schemas.xmlsoap.org/ws/2002/07/utility\">http://messenger.msn.com</Identifier>"\ - "<MessageNumber>%s</MessageNumber>"\ + "<MessageNumber>%d</MessageNumber>"\ "</Sequence>"\ "</soap:Header>"\ "<soap:Body>"\ @@ -87,6 +95,17 @@ "</soap:Body>"\ "</soap:Envelope>" +typedef struct _MsnOimSendReq MsnOimSendReq; + +struct _MsnOimSendReq +{ + char *from_member; + char *friendname; + char *to_member; + char *oim_msg; + gint send_seq; +}; + typedef struct _MsnOim MsnOim; struct _MsnOim @@ -97,7 +116,10 @@ GList * oim_list; MsnSoapConn *sendconn; - gint LockKeyChallenge; + char *challenge; + char *run_id; + gint send_seq; + GQueue *send_queue; }; /**************************************************** @@ -109,6 +131,13 @@ void msn_parse_oim_msg(MsnOim *oim,const char *xmlmsg); +/*Send OIM Message*/ +void msn_oim_prep_send_msg_info(MsnOim *oim, + char *membername,char*friendname,char *tomember, + char * msg); + +void msn_oim_send_msg(MsnOim *oim); + /*get the OIM message*/ void msn_oim_get_msg(MsnOim *oim); Modified: branches/soc-2006-msnp13/src/protocols/msn/slpcall.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/slpcall.c 2006-08-25 23:59:23 UTC (rev 17033) +++ branches/soc-2006-msnp13/src/protocols/msn/slpcall.c 2006-08-26 03:25:00 UTC (rev 17034) @@ -33,7 +33,7 @@ * Util **************************************************************************/ -static char * +char * rand_guid() { return g_strdup_printf("%4X%4X-%4X-%4X-%4X-%4X%4X%4X", Modified: branches/soc-2006-msnp13/src/protocols/msn/soap.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/soap.c 2006-08-25 23:59:23 UTC (rev 17033) +++ branches/soc-2006-msnp13/src/protocols/msn/soap.c 2006-08-26 03:25:00 UTC (rev 17034) @@ -324,7 +324,8 @@ msn_session_set_error(session, MSN_ERROR_SERV_UNAVAILABLE, error); } - else if (strstr(soapconn->read_buf, "HTTP/1.1 200 OK")) + else if ((strstr(soapconn->read_buf, "HTTP/1.1 200 OK")) + ||(strstr(soapconn->read_buf, "HTTP/1.1 500"))) { /*OK! process the SOAP body*/ body_start = (char *)g_strstr_len(soapconn->read_buf, soapconn->read_len,"\r\n\r\n"); Modified: branches/soc-2006-msnp13/src/protocols/msn/user.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/user.c 2006-08-25 23:59:23 UTC (rev 17033) +++ branches/soc-2006-msnp13/src/protocols/msn/user.c 2006-08-26 03:25:00 UTC (rev 17034) @@ -298,6 +298,16 @@ b->proto_data = user; } +/*check if the msn user is online*/ +gboolean +msn_user_is_online(GaimAccount *account, const char *name) +{ + GaimBuddy *buddy; + + buddy =gaim_find_buddy(account,name); + return GAIM_BUDDY_IS_ONLINE(buddy); +} + void msn_user_remove_group_id(MsnUser *user, const char * id) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-08-25 23:59:26
|
Revision: 17033 Author: sadrul Date: 2006-08-25 16:59:23 -0700 (Fri, 25 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17033&view=rev Log Message: ----------- Show titles in windows if it has borders. Modified Paths: -------------- trunk/console/libgnt/gntbox.c Modified: trunk/console/libgnt/gntbox.c =================================================================== --- trunk/console/libgnt/gntbox.c 2006-08-25 19:04:29 UTC (rev 17032) +++ trunk/console/libgnt/gntbox.c 2006-08-25 23:59:23 UTC (rev 17033) @@ -36,7 +36,7 @@ gnt_box_sync_children(box); - if (box->title) + if (box->title && !GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_NO_BORDER)) { gchar *title = g_strdup(box->title); int pos = g_utf8_strlen(title, -1), right; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-08-25 19:04:38
|
Revision: 17032 Author: sadrul Date: 2006-08-25 12:04:29 -0700 (Fri, 25 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17032&view=rev Log Message: ----------- The entries in the accounts-window, the status-window etc. now should have the same order as in the xml-file. Modified Paths: -------------- trunk/console/libgnt/gnttree.c Modified: trunk/console/libgnt/gnttree.c =================================================================== --- trunk/console/libgnt/gnttree.c 2006-08-25 18:21:22 UTC (rev 17031) +++ trunk/console/libgnt/gnttree.c 2006-08-25 19:04:29 UTC (rev 17032) @@ -990,7 +990,19 @@ GntTreeRow *r; r = g_hash_table_lookup(tree->hash, key); g_return_val_if_fail(!r || !r->choice, NULL); - + + if (bigbro == NULL) { + r = g_hash_table_lookup(tree->hash, parent); + if (!r) + r = tree->root; + else + r = r->child; + if (r) { + while (r->next) + r = r->next; + bigbro = r->key; + } + } row = gnt_tree_add_row_after(tree, key, row, parent, bigbro); row->choice = TRUE; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-08-25 18:25:18
|
Revision: 17031 Author: sadrul Date: 2006-08-25 11:21:22 -0700 (Fri, 25 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17031&view=rev Log Message: ----------- Add a sample window-manager. This one removes the border and shadows from the buddylist, shows the conversation windows at the right-end of the screen, and puts all the rest of the dialogs in the middle of the screen. I was not planning on committing this just yet, but I accidentally included the change in configure.ac, and I don't want to get yelled at ;) Modified Paths: -------------- trunk/console/libgnt/Makefile.am trunk/console/libgnt/gntmain.c trunk/console/libgnt/gntstyle.c trunk/console/libgnt/gntstyle.h trunk/console/libgnt/gntwidget.c trunk/console/libgnt/gntwidget.h Added Paths: ----------- trunk/console/libgnt/gntwm.h trunk/console/libgnt/wms/ trunk/console/libgnt/wms/Makefile.am trunk/console/libgnt/wms/s.c Modified: trunk/console/libgnt/Makefile.am =================================================================== --- trunk/console/libgnt/Makefile.am 2006-08-25 18:17:22 UTC (rev 17030) +++ trunk/console/libgnt/Makefile.am 2006-08-25 18:21:22 UTC (rev 17031) @@ -1,3 +1,4 @@ +SUBDIRS = wms pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = gnt.pc Modified: trunk/console/libgnt/gntmain.c =================================================================== --- trunk/console/libgnt/gntmain.c 2006-08-25 18:17:22 UTC (rev 17030) +++ trunk/console/libgnt/gntmain.c 2006-08-25 18:21:22 UTC (rev 17031) @@ -4,12 +4,15 @@ #include <panel.h> #endif +#include <gmodule.h> + #include "gnt.h" #include "gntbox.h" #include "gntcolors.h" #include "gntkeys.h" #include "gntstyle.h" #include "gnttree.h" +#include "gntwm.h" #include <stdio.h> #include <stdlib.h> @@ -38,6 +41,8 @@ static gboolean ascii_only; static gboolean mouse_enabled; +static GntWM wm; + static GMainLoop *loop; static struct { @@ -846,6 +851,24 @@ } #endif +static void +init_wm() +{ + const char *name = gnt_style_get(GNT_STYLE_WM); + gpointer handle; + + if (!name || !*name) + return; + + handle = g_module_open(name, G_MODULE_BIND_LAZY); + if (handle) { + gboolean (*init)(GntWM *); + if (g_module_symbol(handle, "gntwm_init", &init)) { + init(&wm); + } + } +} + void gnt_init() { static GIOChannel *channel = NULL; @@ -915,6 +938,8 @@ #endif g_type_init(); + + init_wm(); } void gnt_main() @@ -999,7 +1024,10 @@ node = g_hash_table_lookup(nodes, widget); if (node && !node->panel) { - node->panel = new_panel(node->me->window); + if (wm.new_window) + node->panel = wm.new_window(node->me); + else + node->panel = new_panel(node->me->window); if (!GNT_WIDGET_IS_FLAG_SET(node->me, GNT_WIDGET_TRANSIENT)) { bottom_panel(node->panel); /* New windows should not grab focus */ Modified: trunk/console/libgnt/gntstyle.c =================================================================== --- trunk/console/libgnt/gntstyle.c 2006-08-25 18:17:22 UTC (rev 17030) +++ trunk/console/libgnt/gntstyle.c 2006-08-25 18:21:22 UTC (rev 17031) @@ -143,6 +143,7 @@ } styles[] = {{"shadow", GNT_STYLE_SHADOW}, {"customcolor", GNT_STYLE_COLOR}, {"mouse", GNT_STYLE_MOUSE}, + {"wm", GNT_STYLE_WM}, {NULL, 0}}; if (error) Modified: trunk/console/libgnt/gntstyle.h =================================================================== --- trunk/console/libgnt/gntstyle.h 2006-08-25 18:17:22 UTC (rev 17030) +++ trunk/console/libgnt/gntstyle.h 2006-08-25 18:21:22 UTC (rev 17031) @@ -5,12 +5,12 @@ GNT_STYLE_SHADOW = 0, GNT_STYLE_COLOR = 1, GNT_STYLE_MOUSE = 2, + GNT_STYLE_WM = 3, GNT_STYLES } GntStyle; void gnt_style_read_configure_file(const char *filename); -/* Returned strings are all lowercase */ const char *gnt_style_get(GntStyle style); gboolean gnt_style_get_bool(GntStyle style, gboolean def); Modified: trunk/console/libgnt/gntwidget.c =================================================================== --- trunk/console/libgnt/gntwidget.c 2006-08-25 18:17:22 UTC (rev 17030) +++ trunk/console/libgnt/gntwidget.c 2006-08-25 18:21:22 UTC (rev 17031) @@ -545,6 +545,11 @@ widget->priv.name = g_strdup(name); } +const char *gnt_widget_get_name(GntWidget *widget) +{ + return widget->priv.name; +} + void gnt_widget_activate(GntWidget *widget) { g_signal_emit(widget, signals[SIG_ACTIVATE], 0); Modified: trunk/console/libgnt/gntwidget.h =================================================================== --- trunk/console/libgnt/gntwidget.h 2006-08-25 18:17:22 UTC (rev 17030) +++ trunk/console/libgnt/gntwidget.h 2006-08-25 18:21:22 UTC (rev 17031) @@ -126,6 +126,8 @@ void gnt_widget_set_name(GntWidget *widget, const char *name); +const char *gnt_widget_get_name(GntWidget *widget); + /* Widget-subclasses should call this from the draw-callback. * Applications should just call gnt_widget_draw instead of this. */ void gnt_widget_queue_update(GntWidget *widget); Added: trunk/console/libgnt/gntwm.h =================================================================== --- trunk/console/libgnt/gntwm.h (rev 0) +++ trunk/console/libgnt/gntwm.h 2006-08-25 18:21:22 UTC (rev 17031) @@ -0,0 +1,18 @@ +#ifdef HAVE_NCURSESW_INC +#include <ncursesw/panel.h> +#else +#include <panel.h> +#endif + +#include "gntwidget.h" + +typedef struct _GntWM GntWM; + +struct _GntWM +{ + PANEL *(*new_window)(GntWidget *win); + gboolean (*key_pressed)(const char *key); + gboolean (*mouse_clicked)(void); /* XXX: haven't decided yet */ + void (*gntwm_uninit)(); +}; + Property changes on: trunk/console/libgnt/gntwm.h ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + native Added: trunk/console/libgnt/wms/Makefile.am =================================================================== --- trunk/console/libgnt/wms/Makefile.am (rev 0) +++ trunk/console/libgnt/wms/Makefile.am 2006-08-25 18:21:22 UTC (rev 17031) @@ -0,0 +1,23 @@ +s_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) + +if PLUGINS + +plugin_LTLIBRARIES = \ + s.la + +plugindir = $(libdir)/gaim + +s_la_SOURCES = s.c + +endif # PLUGINS + +EXTRA_DIST = + +AM_CPPFLAGS = \ + -DDATADIR=\"$(datadir)\" \ + -DVERSION=\"$(VERSION)\" \ + -I$(top_srcdir)/console/libgnt \ + $(DEBUG_CFLAGS) \ + $(GLIB_CFLAGS) \ + $(PLUGIN_CFLAGS) + Property changes on: trunk/console/libgnt/wms/Makefile.am ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + native Added: trunk/console/libgnt/wms/s.c =================================================================== --- trunk/console/libgnt/wms/s.c (rev 0) +++ trunk/console/libgnt/wms/s.c 2006-08-25 18:21:22 UTC (rev 17031) @@ -0,0 +1,56 @@ +#include "gntbox.h" +#include "gntwm.h" + +#include <string.h> + +static PANEL * +s_new_window(GntWidget *win) +{ + int x, y, w, h; + int maxx, maxy; + const char *name; + + getmaxyx(stdscr, maxy, maxx); + + gnt_widget_get_position(win, &x, &y); + gnt_widget_get_size(win, &w, &h); + + name = gnt_widget_get_name(win); + + if (name && strcmp(name, "buddylist") == 0) { + /* The buddylist doesn't have no border nor nothing! */ + x = 0; + y = 0; + h = maxy - 1; + + gnt_box_set_toplevel(GNT_BOX(win), FALSE); + GNT_WIDGET_SET_FLAGS(win, GNT_WIDGET_CAN_TAKE_FOCUS); + gnt_box_readjust(GNT_BOX(win)); + + gnt_widget_set_position(win, x, y); + mvwin(win->window, y, x); + + gnt_widget_set_size(win, w, h); + } else if (name && strcmp(name, "conversation-window") == 0) { + /* Put the conversation windows to the far-right */ + x = maxx - w; + y = 0; + gnt_widget_set_position(win, x, y); + mvwin(win->window, y, x); + } else if (!GNT_WIDGET_IS_FLAG_SET(win, GNT_WIDGET_TRANSIENT)) { + /* In the middle of the screen */ + x = (maxx - w) / 2; + y = (maxy - h) / 2; + + gnt_widget_set_position(win, x, y); + mvwin(win->window, y, x); + } + + return new_panel(win->window); +} + +void gntwm_init(GntWM *wm) +{ + wm->new_window = s_new_window; +} + Property changes on: trunk/console/libgnt/wms/s.c ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-08-25 18:17:27
|
Revision: 17030 Author: sadrul Date: 2006-08-25 11:17:22 -0700 (Fri, 25 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17030&view=rev Log Message: ----------- --disable-gtkgaim should work properly now. Modified Paths: -------------- trunk/configure.ac trunk/gtk/Makefile.am Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2006-08-25 16:42:38 UTC (rev 17029) +++ trunk/configure.ac 2006-08-25 18:17:22 UTC (rev 17030) @@ -661,6 +661,8 @@ ]) AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) +else + enable_gtk=no fi AC_PATH_XTRA @@ -1869,6 +1871,7 @@ console/Makefile console/libgnt/Makefile console/libgnt/gnt.pc + console/libgnt/wms/Makefile console/plugins/Makefile po/Makefile.in gaim.pc Modified: trunk/gtk/Makefile.am =================================================================== --- trunk/gtk/Makefile.am 2006-08-25 16:42:38 UTC (rev 17029) +++ trunk/gtk/Makefile.am 2006-08-25 18:17:22 UTC (rev 17030) @@ -1,3 +1,5 @@ +if ENABLE_GTK + EXTRA_DIST = \ getopt.c \ getopt.h \ @@ -181,3 +183,4 @@ $(GTKSPELL_CFLAGS) \ $(STARTUP_NOTIFICATION_CFLAGS) \ $(LIBXML_CFLAGS) +endif # ENABLE_GTK This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fac...@us...> - 2006-08-25 16:42:57
|
Revision: 17029 Author: faceprint Date: 2006-08-25 09:42:38 -0700 (Fri, 25 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17029&view=rev Log Message: ----------- add font-weight support to gtkimhtml use it in our outgoing text closes sf 1083365 Modified Paths: -------------- trunk/gtk/gtkimhtml.c trunk/gtk/gtkimhtml.h trunk/libgaim/util.c Modified: trunk/gtk/gtkimhtml.c =================================================================== --- trunk/gtk/gtkimhtml.c 2006-08-25 07:02:17 UTC (rev 17028) +++ trunk/gtk/gtkimhtml.c 2006-08-25 16:42:38 UTC (rev 17029) @@ -2773,15 +2773,15 @@ * font-family * font-size * text-decoration: underline + * font-weight: bold * * TODO: * background-color * font-style - * font-weight */ { gchar *style, *color, *background, *family, *size; - gchar *textdec; + gchar *textdec, *weight; GtkIMHtmlFontDetail *font, *oldfont = NULL; style = gtk_imhtml_get_html_opt (tag, "style="); @@ -2793,8 +2793,9 @@ "font-family:"); size = gtk_imhtml_get_css_opt (style, "font-size:"); textdec = gtk_imhtml_get_css_opt (style, "text-decoration:"); + weight = gtk_imhtml_get_css_opt (style, "font-weight:"); - if (!(color || family || size || background || textdec)) { + if (!(color || family || size || background || textdec || weight)) { g_free(style); break; } @@ -2879,6 +2880,34 @@ font->underline = 1; } + if (oldfont) + { + font->bold = oldfont->bold; + } + if (weight) + { + if(!g_ascii_strcasecmp(weight, "normal")) { + font->bold = 0; + } else if(!g_ascii_strcasecmp(weight, "bold")) { + font->bold = 1; + } else if(!g_ascii_strcasecmp(weight, "bolder")) { + font->bold++; + } else if(!g_ascii_strcasecmp(weight, "lighter")) { + if(font->bold > 0) + font->bold--; + } else { + int num = atoi(weight); + if(num >= 700) + font->bold = 1; + else + font->bold = 0; + } + if((font->bold && !oldfont->bold) || (oldfont->bold && !font->bold)) + { + gtk_imhtml_toggle_bold(imhtml); + } + } + g_free(style); g_free(size); fonts = g_slist_prepend (fonts, font); @@ -2900,6 +2929,8 @@ gtk_imhtml_font_set_size(imhtml, 3); if (font->underline) gtk_imhtml_toggle_underline(imhtml); + if (font->bold) + gtk_imhtml_toggle_bold(imhtml); gtk_imhtml_toggle_fontface(imhtml, NULL); gtk_imhtml_toggle_forecolor(imhtml, NULL); gtk_imhtml_toggle_backcolor(imhtml, NULL); @@ -2913,6 +2944,9 @@ if (font->underline != oldfont->underline) gtk_imhtml_toggle_underline(imhtml); + if ((font->bold && !oldfont->bold) || (oldfont->bold && !font->bold)) + gtk_imhtml_toggle_bold(imhtml); + if (font->face && (!oldfont->face || strcmp(font->face, oldfont->face) != 0)) gtk_imhtml_toggle_fontface(imhtml, oldfont->face); Modified: trunk/gtk/gtkimhtml.h =================================================================== --- trunk/gtk/gtkimhtml.h 2006-08-25 07:02:17 UTC (rev 17028) +++ trunk/gtk/gtkimhtml.h 2006-08-25 16:42:38 UTC (rev 17029) @@ -145,6 +145,7 @@ gchar *bg; gchar *sml; gboolean underline; + gshort bold; }; struct _GtkSmileyTree { Modified: trunk/libgaim/util.c =================================================================== --- trunk/libgaim/util.c 2006-08-25 07:02:17 UTC (rev 17028) +++ trunk/libgaim/util.c 2006-08-25 16:42:38 UTC (rev 17029) @@ -1271,9 +1271,7 @@ } } else { /* opening tag */ ALLOW_TAG("a"); - ALLOW_TAG_ALT("b", "strong"); ALLOW_TAG("blockquote"); - ALLOW_TAG_ALT("bold", "strong"); ALLOW_TAG("cite"); ALLOW_TAG("div"); ALLOW_TAG("em"); @@ -1312,6 +1310,15 @@ plain = g_string_append_c(plain, '\n'); continue; } + if(!g_ascii_strncasecmp(c, "<b>", 3) || !g_ascii_strncasecmp(c, "<bold>", strlen("<bold>"))) { + struct gaim_parse_tag *pt = g_new0(struct gaim_parse_tag, 1); + pt->src_tag = *(c+2) == '>' ? "b" : "bold"; + pt->dest_tag = "span"; + tags = g_list_prepend(tags, pt); + c = strchr(c, '>') + 1; + xhtml = g_string_append(xhtml, "<span style='font-weight: bold;'>"); + continue; + } if(!g_ascii_strncasecmp(c, "<u>", 3) || !g_ascii_strncasecmp(c, "<underline>", strlen("<underline>"))) { struct gaim_parse_tag *pt = g_new0(struct gaim_parse_tag, 1); pt->src_tag = *(c+2) == '>' ? "u" : "underline"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aar...@us...> - 2006-08-25 07:02:21
|
Revision: 17028 Author: aaronsheldon Date: 2006-08-25 00:02:17 -0700 (Fri, 25 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17028&view=rev Log Message: ----------- A user can already manipulate the tabs of a GTK conversation without focus with the mouse wheel, and can scroll up and down and read a conversation without focus. With these lines removed, the user can now also change a conversation from "read" to "unread" despite not having focused the window, merely with his mouse. Modified Paths: -------------- trunk/gtk/gtkconv.c Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-08-25 02:25:31 UTC (rev 17027) +++ trunk/gtk/gtkconv.c 2006-08-25 07:02:17 UTC (rev 17028) @@ -7352,11 +7352,7 @@ g_return_if_fail(conv != NULL); - /* - * Only set "unseen" to "none" if the window has focus - */ - if (gaim_gtk_conv_window_has_focus(win)) - gtkconv_set_unseen(gtkconv, GAIM_UNSEEN_NONE); + gtkconv_set_unseen(gtkconv, GAIM_UNSEEN_NONE); /* Update the menubar */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sea...@us...> - 2006-08-25 02:25:36
|
Revision: 17027 Author: seanegan Date: 2006-08-24 19:25:31 -0700 (Thu, 24 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17027&view=rev Log Message: ----------- Modified Paths: -------------- web/inc/template.inc.php Modified: web/inc/template.inc.php =================================================================== --- web/inc/template.inc.php 2006-08-25 02:13:32 UTC (rev 17026) +++ web/inc/template.inc.php 2006-08-25 02:25:31 UTC (rev 17027) @@ -102,7 +102,6 @@ <p><strong>Gaim is NOT endorsed by or affiliated with AOL</strong></p> <p> -<a href="http://www.linspire.com/lindows_products_details.php?id=1832"><img src="http://linspire.com/sponsorbadge" width="155" height="50" border="0" alt="Lindows" /></a> <a href="http://sourceforge.net/"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=235&type=5" width="210" height="62" border="0" alt="SourceForge" /></a> </p> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dat...@us...> - 2006-08-25 02:13:53
|
Revision: 17026 Author: datallah Date: 2006-08-24 19:13:32 -0700 (Thu, 24 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17026&view=rev Log Message: ----------- Lee Roach noticed that I screwed up the clean target Modified Paths: -------------- trunk/gtk/Makefile.mingw Modified: trunk/gtk/Makefile.mingw =================================================================== --- trunk/gtk/Makefile.mingw 2006-08-24 21:09:45 UTC (rev 17025) +++ trunk/gtk/Makefile.mingw 2006-08-25 02:13:32 UTC (rev 17026) @@ -160,13 +160,13 @@ clean: $(MAKE) -C $(GAIM_GTK_IDLETRACK_TOP) -f $(GAIM_WIN32_MAKEFILE) clean $(MAKE) -C $(GAIM_GTK_PLUGINS_TOP) -f $(GAIM_WIN32_MAKEFILE) clean - rm -rf $(GTKGAIM_OBJECTS) $(EXE_OBJECTS) - rm $(GTKGAIM_TARGET).dll - rm $(GTKGAIM_TARGET).dll.a - rm $(EXE_TARGET).exe - rm $(EXE_TARGET)-portable.exe + rm -f $(GTKGAIM_OBJECTS) $(EXE_OBJECTS) + rm -f $(GTKGAIM_TARGET).dll + rm -f $(GTKGAIM_TARGET).dll.a + rm -f $(EXE_TARGET).exe + rm -f $(EXE_TARGET)-portable.exe clean_exe: - rm win_gaim.o + rm -f win_gaim.o include $(GAIM_COMMON_TARGETS) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dat...@us...> - 2006-08-24 21:09:52
|
Revision: 17025 Author: datallah Date: 2006-08-24 14:09:45 -0700 (Thu, 24 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17025&view=rev Log Message: ----------- fix CID 175, 176 (unused values) Modified Paths: -------------- trunk/libgaim/protocols/silc/ops.c Modified: trunk/libgaim/protocols/silc/ops.c =================================================================== --- trunk/libgaim/protocols/silc/ops.c 2006-08-24 20:25:57 UTC (rev 17024) +++ trunk/libgaim/protocols/silc/ops.c 2006-08-24 21:09:45 UTC (rev 17025) @@ -445,7 +445,6 @@ SilcHashTableList htl; SilcChannelUser chu; char buf[512], buf2[512], *tmp, *name; - SilcBuffer buffer; SilcNotifyType notify; GaimBuddy *b; int i; @@ -461,7 +460,7 @@ case SILC_NOTIFY_TYPE_INVITE: { GHashTable *components; - channel = va_arg(va, SilcChannelEntry); + va_arg(va, SilcChannelEntry); name = va_arg(va, char *); client_entry = va_arg(va, SilcClientEntry); @@ -616,7 +615,7 @@ (void)va_arg(va, char *); (void)va_arg(va, char *); (void)va_arg(va, SilcPublicKey); - buffer = va_arg(va, SilcBuffer); + (void)va_arg(va, SilcBuffer); channel = va_arg(va, SilcChannelEntry); convo = gaim_find_conversation_with_account(GAIM_CONV_TYPE_CHAT, @@ -1509,7 +1508,6 @@ case SILC_COMMAND_INFO: { - SilcServerEntry server_entry; char *server_name; char *server_info; char tmp[256]; @@ -1521,7 +1519,7 @@ return; } - server_entry = va_arg(vp, SilcServerEntry); + (void)va_arg(vp, SilcServerEntry); server_name = va_arg(vp, char *); server_info = va_arg(vp, char *); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2006-08-24 20:26:02
|
Revision: 17024 Author: deryni9 Date: 2006-08-24 13:25:57 -0700 (Thu, 24 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17024&view=rev Log Message: ----------- If you loaded this plugin and activated one of the color preference check boxes but never actually set a color choice you could cause gtk to crash when it failed to understand a color setting of "". This is really a gtk+ bug since they shouldn't crash on that but this workaround was easy and sensible. I just added some minimal sanity checking to the values returned from gaim_prefs_get_string (non-NULL and non-empty), it isn't perfect but it solves the simple case. Modified Paths: -------------- trunk/gtk/plugins/gaimrc.c Modified: trunk/gtk/plugins/gaimrc.c =================================================================== --- trunk/gtk/plugins/gaimrc.c 2006-08-24 20:24:47 UTC (rev 17023) +++ trunk/gtk/plugins/gaimrc.c 2006-08-24 20:25:57 UTC (rev 17024) @@ -104,22 +104,31 @@ if (gaim_prefs_get_bool("/plugins/gtk/gaimrc/set/gtk-font-name")) { const char *pref = gaim_prefs_get_string("/plugins/gtk/gaimrc/gtk-font-name"); - g_string_append_printf(style_string, "gtk-font-name = \"%s\"\n", pref); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, "gtk-font-name = \"%s\"\n", pref); } if (gaim_prefs_get_bool("/plugins/gtk/gaimrc/set/gtk-key-theme-name")) { const char *pref = gaim_prefs_get_string("/plugins/gtk/gaimrc/gtk-key-theme-name"); - g_string_append_printf(style_string, "gtk-key-theme-name = \"%s\"\n", pref); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, "gtk-key-theme-name = \"%s\"\n", pref); } g_string_append(style_string, "style \"gaimrc_style\" {\n"); for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) { if (gaim_prefs_get_bool(color_prefs_set[i])) { + const char *pref; + prefbase = g_path_get_basename(color_prefs[i]); - g_string_append_printf(style_string, - "%s = \"%s\"\n", prefbase, - gaim_prefs_get_string(color_prefs[i])); + pref = gaim_prefs_get_string(color_prefs[i]); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, + "%s = \"%s\"\n", + prefbase, pref); g_free(prefbase); } } @@ -149,14 +158,19 @@ for (i = 0; i < G_N_ELEMENTS(font_prefs); i++) { if (gaim_prefs_get_bool(font_prefs_set[i])) { + const char *pref; + prefbase = g_path_get_basename(font_prefs[i]); - g_string_append_printf(style_string, - "style \"%s_style\"\n" - "{font_name = \"%s\"}\n" - "widget \"%s\"" - "style \"%s_style\"\n", prefbase, - gaim_prefs_get_string(font_prefs[i]), - prefbase, prefbase); + pref = gaim_prefs_get_string(font_prefs[i]); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, + "style \"%s_style\"\n" + "{font_name = \"%s\"}\n" + "widget \"%s\"" + "style \"%s_style\"\n", + prefbase, pref, + prefbase, prefbase); g_free(prefbase); } } @@ -179,22 +193,35 @@ if (gaim_prefs_get_bool("/plugins/gtk/gaimrc/set/gtk-font-name")) { const char *pref = gaim_prefs_get_string("/plugins/gtk/gaimrc/gtk-font-name"); - g_string_append_printf(style_string, "gtk-font-name = \"%s\"\n", pref); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, + "gtk-font-name = \"%s\"\n", + pref); } if (gaim_prefs_get_bool("/plugins/gtk/gaimrc/set/gtk-key-theme-name")) { const char *pref = gaim_prefs_get_string("/plugins/gtk/gaimrc/gtk-key-theme-name"); - g_string_append_printf(style_string, "gtk-key-theme-name = \"%s\"\n", pref); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, + "gtk-key-theme-name = \"%s\"\n", + pref); } g_string_append(style_string, "style \"gaimrc_style\" {\n"); for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) { if (gaim_prefs_get_bool(color_prefs_set[i])) { + const char *pref; + prefbase = g_path_get_basename(color_prefs[i]); - g_string_append_printf(style_string, - "%s = \"%s\"\n", prefbase, - gaim_prefs_get_string(color_prefs[i])); + pref = gaim_prefs_get_string(color_prefs[i]); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, + "%s = \"%s\"\n", + prefbase, pref); g_free(prefbase); } } @@ -224,14 +251,19 @@ for (i = 0; i < G_N_ELEMENTS(font_prefs); i++) { if (gaim_prefs_get_bool(font_prefs_set[i])) { + const char *pref; + prefbase = g_path_get_basename(font_prefs[i]); - g_string_append_printf(style_string, - "style \"%s_style\"\n" - "{font_name = \"%s\"}\n" - "widget \"%s\"" - "style \"%s_style\"\n", prefbase, - gaim_prefs_get_string(font_prefs[i]), - prefbase, prefbase); + pref = gaim_prefs_get_string(font_prefs[i]); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, + "style \"%s_style\"\n" + "{font_name = \"%s\"}\n" + "widget \"%s\"" + "style \"%s_style\"\n", + prefbase, pref, + prefbase, prefbase); g_free(prefbase); } } @@ -282,6 +314,7 @@ GtkWidget *color_dialog = NULL; GdkColor color; char title[128]; + const char *pref = NULL; int subscript = GPOINTER_TO_INT(data); g_snprintf(title, sizeof(title), _("Select Color for %s"), @@ -290,9 +323,12 @@ g_signal_connect(G_OBJECT(color_dialog), "response", G_CALLBACK(gaimrc_color_response), data); - if (gdk_color_parse(gaim_prefs_get_string(color_prefs[subscript]), - &color)) { - gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(color_dialog)->colorsel), &color); + pref = gaim_prefs_get_string(color_prefs[subscript]); + + if (pref != NULL && strcmp(pref, "")) { + if (gdk_color_parse(pref, &color)) { + gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(color_dialog)->colorsel), &color); + } } gtk_window_present(GTK_WINDOW(color_dialog)); @@ -319,6 +355,7 @@ { GtkWidget *font_dialog = NULL; char title[128]; + const char *pref = NULL; int subscript = GPOINTER_TO_INT(data); g_snprintf(title, sizeof(title), _("Select Font for %s"), @@ -327,12 +364,11 @@ g_signal_connect(G_OBJECT(font_dialog), "response", G_CALLBACK(gaimrc_font_response), data); - /* TODO Figure out a way to test for the presence of a value in the - * actual pref - if (gaim_prefs_get_bool(font_prefs[subscript])) { - gtk_font_selection_set_font_name(GTK_FONT_SELECTION(GTK_FONT_SELECTION_DIALOG(font_dialog)->fontsel), gaim_prefs_get_string(font_prefs[subscript])); + pref = gaim_prefs_get_string(font_prefs[subscript]); + + if (pref != NULL && strcmp(pref, "")) { + gtk_font_selection_set_font_name(GTK_FONT_SELECTION(GTK_FONT_SELECTION_DIALOG(font_dialog)->fontsel), pref); } - */ gtk_window_present(GTK_WINDOW(font_dialog)); } @@ -357,25 +393,17 @@ gaimrc_set_font_special(GtkWidget *widget, gpointer data) { GtkWidget *font_dialog = NULL; -#if 0 - const char *font = NULL; -#endif + const char *pref = NULL; font_dialog = gtk_font_selection_dialog_new(_("Select Interface Font")); g_signal_connect(G_OBJECT(font_dialog), "response", G_CALLBACK(gaimrc_font_response_special), NULL); -#if 0 - /* - * TODO Figure out a way to test for the presence of a value in the - * actual pref - */ - font = gaim_prefs_get_string("/plugins/gtk/gaimrc/gtk-font-name"); - printf("font - %s.\n", font); - if (font != NULL && font != "") { - gtk_font_selection_set_font_name(GTK_FONT_SELECTION(GTK_FONT_SELECTION_DIALOG(font_dialog)->fontsel), gaim_prefs_get_string("/plugins/gtk/gaimrc/gtk-font-name")); + pref = gaim_prefs_get_string("/plugins/gtk/gaimrc/gtk-font-name"); + + if (pref != NULL && strcmp(pref, "")) { + gtk_font_selection_set_font_name(GTK_FONT_SELECTION(GTK_FONT_SELECTION_DIALOG(font_dialog)->fontsel), pref); } -#endif gtk_window_present(GTK_WINDOW(font_dialog)); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lsc...@us...> - 2006-08-24 20:25:05
|
Revision: 17023 Author: lschiere Date: 2006-08-24 13:24:47 -0700 (Thu, 24 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17023&view=rev Log Message: ----------- several translation updates Modified Paths: -------------- trunk/po/ChangeLog trunk/po/fr.po trunk/po/mk.po trunk/po/nl.po trunk/po/ru.po Modified: trunk/po/ChangeLog =================================================================== --- trunk/po/ChangeLog 2006-08-24 20:05:56 UTC (rev 17022) +++ trunk/po/ChangeLog 2006-08-24 20:24:47 UTC (rev 17023) @@ -32,6 +32,7 @@ * Kurdish win32 installer translation added (Erdal Ronahi) * Lithuanian translation updated (Andrius Štikonas, Laurynas Biveinis) * Lithuanian win32 translation added (Laurynas Biveinis) + * Macedonian translation updated (Арангел Ангов) * Nepali translation added (Shyam Krishna Bal) * Persian translation added (Elnaz Sarbar, Meelad Zakaria) * Polish translation updated (Emil Nowak) Modified: trunk/po/fr.po =================================================================== --- trunk/po/fr.po 2006-08-24 20:05:56 UTC (rev 17022) +++ trunk/po/fr.po 2006-08-24 20:24:47 UTC (rev 17023) @@ -18,8 +18,8 @@ msgstr "" "Project-Id-Version: Gaim\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-03-15 08:19+0100\n" -"PO-Revision-Date: 2006-03-12 17:19+0100\n" +"POT-Creation-Date: 2006-08-10 00:00-0400\n" +"PO-Revision-Date: 2006-08-10 15:45+0200\n" "Last-Translator: Éric Boumaour <zon...@us...>\n" "Language-Team: fr <fr...@li...>\n" "MIME-Version: 1.0\n" @@ -171,7 +171,7 @@ msgstr "Étalonnage facial" #. add enabled / disabled -#: ../plugins/crazychat/cc_gaim_plugin.c:345 ../src/gtkaccount.c:2251 +#: ../plugins/crazychat/cc_gaim_plugin.c:345 ../src/gtkaccount.c:2258 #: ../src/gtkplugin.c:574 msgid "Enabled" msgstr "Activé" @@ -186,15 +186,15 @@ #. *< dependencies #. *< priority #. *< id -#: ../plugins/dbus-example.c:135 -msgid "DBus" -msgstr "DBus" +#: ../plugins/dbus-example.c:155 +msgid "DBus Example" +msgstr "Exemple DBus" #. *< name #. *< version #. * summary #. * description -#: ../plugins/dbus-example.c:138 ../plugins/dbus-example.c:140 +#: ../plugins/dbus-example.c:158 ../plugins/dbus-example.c:160 msgid "DBus Plugin Example" msgstr "Exemple de plugin DBus" @@ -202,7 +202,7 @@ msgid "Right-click for more unread messages...\n" msgstr "Clic droit pour plus de messages non lus...\n" -#: ../plugins/docklet/docklet.c:157 ../src/gtkblist.c:3241 +#: ../plugins/docklet/docklet.c:157 ../src/gtkblist.c:3255 #, c-format msgid "%d unread message from %s\n" msgid_plural "%d unread messages from %s\n" @@ -214,35 +214,39 @@ msgstr "Changer d'état" #: ../plugins/docklet/docklet.c:435 ../src/gtkstatusbox.c:673 -#: ../src/protocols/jabber/buddy.c:1101 ../src/protocols/msn/state.c:29 -#: ../src/protocols/msn/state.c:30 ../src/protocols/msn/state.c:37 -#: ../src/protocols/msn/state.c:38 ../src/protocols/novell/novell.c:2845 -#: ../src/protocols/yahoo/yahoo.c:2735 ../src/status.c:155 +#: ../src/protocols/gg/gg.c:996 ../src/protocols/jabber/buddy.c:1363 +#: ../src/protocols/msn/state.c:29 ../src/protocols/msn/state.c:30 +#: ../src/protocols/msn/state.c:37 ../src/protocols/msn/state.c:38 +#: ../src/protocols/novell/novell.c:2843 ../src/protocols/yahoo/yahoo.c:2748 +#: ../src/status.c:155 msgid "Available" msgstr "Disponible" #. Away stuff -#: ../plugins/docklet/docklet.c:439 ../src/gtkprefs.c:1759 -#: ../src/gtkstatusbox.c:674 ../src/protocols/irc/irc.c:520 -#: ../src/protocols/irc/msgs.c:219 ../src/protocols/jabber/buddy.c:1105 -#: ../src/protocols/novell/novell.c:2848 ../src/protocols/oscar/oscar.c:793 -#: ../src/protocols/oscar/oscar.c:6836 ../src/protocols/oscar/oscar.c:7879 -#: ../src/protocols/silc/buddy.c:1469 ../src/protocols/yahoo/yahoo.c:3189 +#. get_yahoo_status_from_gaim_status() returns YAHOO_STATUS_CUSTOM for +#. * the generic away state (YAHOO_STATUS_TYPE_AWAY) with no message +#: ../plugins/docklet/docklet.c:439 ../src/gtkprefs.c:1774 +#: ../src/gtkstatusbox.c:674 ../src/protocols/gg/gg.c:999 +#: ../src/protocols/irc/irc.c:520 ../src/protocols/irc/msgs.c:223 +#: ../src/protocols/jabber/buddy.c:1367 ../src/protocols/novell/novell.c:2846 +#: ../src/protocols/oscar/oscar.c:719 ../src/protocols/oscar/oscar.c:4423 +#: ../src/protocols/oscar/oscar.c:5487 ../src/protocols/silc/buddy.c:1469 +#: ../src/protocols/yahoo/yahoo.c:3218 ../src/protocols/yahoo/yahoo.c:3291 #: ../src/status.c:158 msgid "Away" msgstr "Absent" #: ../plugins/docklet/docklet.c:443 ../src/gtkstatusbox.c:675 -#: ../src/protocols/oscar/oscar.c:797 ../src/protocols/yahoo/yahoo.c:2729 +#: ../src/protocols/oscar/oscar.c:723 ../src/protocols/yahoo/yahoo.c:2742 #: ../src/status.c:157 msgid "Invisible" msgstr "Invisible" -#: ../plugins/docklet/docklet.c:447 ../src/gtkblist.c:2971 -#: ../src/gtkstatusbox.c:676 ../src/protocols/jabber/buddy.c:1099 -#: ../src/protocols/novell/novell.c:2857 ../src/protocols/oscar/oscar.c:859 -#: ../src/protocols/oscar/oscar.c:7851 ../src/protocols/yahoo/yahoo.c:2733 -#: ../src/status.c:154 +#: ../plugins/docklet/docklet.c:447 ../src/gtkblist.c:2959 +#: ../src/gtkstatusbox.c:676 ../src/protocols/gg/gg.c:993 +#: ../src/protocols/jabber/buddy.c:1361 ../src/protocols/novell/novell.c:2855 +#: ../src/protocols/oscar/oscar.c:794 ../src/protocols/oscar/oscar.c:5459 +#: ../src/protocols/yahoo/yahoo.c:2746 ../src/status.c:154 msgid "Offline" msgstr "Déconnecté" @@ -258,7 +262,7 @@ msgid "Show Buddy List" msgstr "Afficher la liste de contacts" -#: ../plugins/docklet/docklet.c:489 +#: ../plugins/docklet/docklet.c:489 ../src/gtkconv.c:5677 msgid "Unread Messages" msgstr "Messages non lus" @@ -266,7 +270,7 @@ msgid "New Message..." msgstr "Nouveau message..." -#: ../plugins/docklet/docklet.c:519 ../src/gtkaccount.c:2467 +#: ../plugins/docklet/docklet.c:519 ../src/gtkaccount.c:2474 msgid "Accounts" msgstr "Comptes" @@ -274,7 +278,7 @@ msgid "Plugins" msgstr "Plugins" -#: ../plugins/docklet/docklet.c:521 ../src/gtkprefs.c:1900 +#: ../plugins/docklet/docklet.c:521 ../src/gtkprefs.c:1915 msgid "Preferences" msgstr "Préférences" @@ -298,8 +302,8 @@ msgstr "Messages _instantanés :" #: ../plugins/docklet/docklet.c:684 ../plugins/docklet/docklet.c:692 -#: ../plugins/win32/winprefs/winprefs.c:424 ../src/gtkprefs.c:823 -#: ../src/gtkprefs.c:1749 ../src/gtkprefs.c:1763 +#: ../plugins/win32/winprefs/winprefs.c:462 ../src/gtkprefs.c:823 +#: ../src/gtkprefs.c:1764 ../src/gtkprefs.c:1778 msgid "Never" msgstr "Jamais" @@ -309,7 +313,7 @@ #: ../plugins/docklet/docklet.c:686 ../plugins/docklet/docklet.c:694 #: ../plugins/timestamp_format.c:39 ../plugins/timestamp_format.c:48 -#: ../plugins/win32/winprefs/winprefs.c:425 ../src/gtkprefs.c:825 +#: ../plugins/win32/winprefs/winprefs.c:463 ../src/gtkprefs.c:825 msgid "Always" msgstr "Toujours" @@ -509,52 +513,52 @@ msgid "Select Font for %s" msgstr "Choisissez la police pour %s" -#: ../plugins/gaimrc.c:362 +#: ../plugins/gaimrc.c:364 msgid "Select Interface Font" msgstr "Choisissez la police" -#: ../plugins/gaimrc.c:415 +#: ../plugins/gaimrc.c:420 msgid "General" msgstr "Général" -#: ../plugins/gaimrc.c:420 +#: ../plugins/gaimrc.c:425 msgid "GTK+ Interface Font" msgstr "Police de l'interface GTK+" -#: ../plugins/gaimrc.c:440 +#: ../plugins/gaimrc.c:445 msgid "GTK+ Text Shortcut Theme" msgstr "Raccourci du thème GTK+" -#: ../plugins/gaimrc.c:475 +#: ../plugins/gaimrc.c:480 msgid "Interface colors" msgstr "Couleurs de l'interface" -#: ../plugins/gaimrc.c:499 +#: ../plugins/gaimrc.c:504 msgid "Widget Sizes" msgstr "Tailles des éléments" -#: ../plugins/gaimrc.c:520 +#: ../plugins/gaimrc.c:525 msgid "Fonts" msgstr "Polices" -#: ../plugins/gaimrc.c:543 +#: ../plugins/gaimrc.c:548 msgid "Tools" msgstr "Outils" -#: ../plugins/gaimrc.c:548 +#: ../plugins/gaimrc.c:553 #, c-format msgid "Write settings to %s%sgtkrc-2.0" msgstr "Écrire les préférences dans %s%sgtkrc-2.0" -#: ../plugins/gaimrc.c:556 +#: ../plugins/gaimrc.c:561 msgid "Re-read gtkrc files" msgstr "Relire les fichiers gtkrc" -#: ../plugins/gaimrc.c:583 +#: ../plugins/gaimrc.c:588 msgid "Gaim GTK+ Theme Control" msgstr "Contrôle du thème GTK+ Gaim" -#: ../plugins/gaimrc.c:585 ../plugins/gaimrc.c:586 +#: ../plugins/gaimrc.c:590 ../plugins/gaimrc.c:591 msgid "Provides access to commonly used gtkrc settings." msgstr "Fournit un accès aux préférences couramment utilisés du fichier gtkrc." @@ -613,10 +617,14 @@ "Glissez vers le haut puis la droite pour passer à la conversation suivante." #. Extract their Name and put it in +#. Contact Info +#. Personal +#. Business #: ../plugins/gevolution/add_buddy_dialog.c:131 #: ../plugins/gevolution/assoc-buddy.c:119 ../src/gtkplugin.c:587 -#: ../src/gtkroomlist.c:604 ../src/protocols/jabber/jabber.c:755 -#: ../src/protocols/msn/msn.c:1534 +#: ../src/gtkroomlist.c:604 ../src/protocols/jabber/jabber.c:774 +#: ../src/protocols/msn/msn.c:1529 ../src/protocols/msn/msn.c:1582 +#: ../src/protocols/msn/msn.c:1603 msgid "Name" msgstr "Nom" @@ -624,35 +632,43 @@ msgid "Instant Messaging" msgstr "Messagerie instantanée" +#: ../plugins/gevolution/add_buddy_dialog.c:442 ../src/gtkblist.c:4563 +#: ../src/protocols/silc/buddy.c:736 ../src/protocols/silc/buddy.c:1030 +#: ../src/protocols/silc/buddy.c:1075 ../src/protocols/silc/buddy.c:1174 +#: ../src/protocols/yahoo/yahoo.c:2991 +msgid "Add Buddy" +msgstr "Nouveau contact" + #. Add the label. -#: ../plugins/gevolution/add_buddy_dialog.c:454 +#: ../plugins/gevolution/add_buddy_dialog.c:455 msgid "Select a person from your address book below, or add a new person." msgstr "" "Choisissez une personne dans votre carnet d'adresses ou créez une nouvelle " "personne." #. "Search" -#: ../plugins/gevolution/add_buddy_dialog.c:467 +#: ../plugins/gevolution/add_buddy_dialog.c:468 #: ../plugins/gevolution/assoc-buddy.c:353 -#: ../src/protocols/jabber/buddy.c:1418 ../src/protocols/oscar/oscar.c:8399 -#: ../src/protocols/sametime/sametime.c:5532 +#: ../src/protocols/jabber/buddy.c:1720 ../src/protocols/oscar/oscar.c:6089 +#: ../src/protocols/sametime/sametime.c:5529 msgid "Search" msgstr "Recherche" -#: ../plugins/gevolution/add_buddy_dialog.c:548 -#: ../plugins/gevolution/new_person_dialog.c:306 ../src/gtkblist.c:4615 -#: ../src/gtkblist.c:4979 +#: ../plugins/gevolution/add_buddy_dialog.c:549 +#: ../plugins/gevolution/new_person_dialog.c:307 ../src/gtkblist.c:4647 +#: ../src/gtkblist.c:5010 msgid "Group:" msgstr "Groupe :" #. "New Person" button -#: ../plugins/gevolution/add_buddy_dialog.c:574 +#: ../plugins/gevolution/add_buddy_dialog.c:575 #: ../plugins/gevolution/assoc-buddy.c:464 +#: ../plugins/gevolution/new_person_dialog.c:251 msgid "New Person" msgstr "Nouvelle personne" #. "Select Buddy" button -#: ../plugins/gevolution/add_buddy_dialog.c:591 +#: ../plugins/gevolution/add_buddy_dialog.c:592 msgid "Select Buddy" msgstr "Choisir contact" @@ -676,13 +692,13 @@ msgstr "_Associer un contact" #: ../plugins/gevolution/eds-utils.c:73 ../plugins/gevolution/eds-utils.c:86 -#: ../src/protocols/jabber/jabber.c:1122 +#: ../src/protocols/jabber/jabber.c:1142 msgid "None" msgstr "Aucun" #: ../plugins/gevolution/gevo-util.c:64 ../plugins/gevolution/gevolution.c:96 -#: ../src/blist.c:516 ../src/blist.c:1278 ../src/blist.c:1505 -#: ../src/gtkblist.c:4424 ../src/protocols/jabber/roster.c:65 +#: ../src/blist.c:516 ../src/blist.c:1281 ../src/blist.c:1508 +#: ../src/gtkblist.c:4453 ../src/protocols/jabber/roster.c:67 msgid "Buddies" msgstr "Contacts" @@ -720,8 +736,8 @@ msgstr "" "Choisissez tous les comptes dont les contacts seront automatiquement ajoutés." -#: ../plugins/gevolution/gevolution.c:450 ../plugins/idle.c:147 -#: ../plugins/idle.c:183 ../src/gtknotify.c:397 ../src/gtkpounce.c:1262 +#: ../plugins/gevolution/gevolution.c:450 ../plugins/idle.c:153 +#: ../plugins/idle.c:189 ../src/gtknotify.c:402 ../src/gtkpounce.c:1255 msgid "Account" msgstr "Compte" @@ -744,42 +760,43 @@ msgid "Provides integration with Evolution." msgstr "Fournit une intégration avec Evolution." -#: ../plugins/gevolution/new_person_dialog.c:266 +#: ../plugins/gevolution/new_person_dialog.c:267 msgid "Please enter the person's information below." msgstr "Veuillez saisir les informations de la personne" -#: ../plugins/gevolution/new_person_dialog.c:270 +#: ../plugins/gevolution/new_person_dialog.c:271 msgid "Please enter the buddy's screen name and account type below." msgstr "Veuillez saisir le pseudo et le type de compte du contact" -#: ../plugins/gevolution/new_person_dialog.c:290 +#: ../plugins/gevolution/new_person_dialog.c:291 msgid "Account type:" msgstr "Type de compte :" -#: ../plugins/gevolution/new_person_dialog.c:294 ../src/gtkaccount.c:784 +#: ../plugins/gevolution/new_person_dialog.c:295 ../src/gtkaccount.c:779 +#: ../src/gtkblist.c:4609 msgid "Screen name:" msgstr "Nom d'utilisateur :" #. Optional Information section -#: ../plugins/gevolution/new_person_dialog.c:314 +#: ../plugins/gevolution/new_person_dialog.c:315 msgid "Optional information:" msgstr "Informations facultatives :" #. Label -#: ../plugins/gevolution/new_person_dialog.c:337 ../src/gtkaccount.c:424 -#: ../src/gtkaccount.c:446 ../src/protocols/oscar/oscar.c:699 +#: ../plugins/gevolution/new_person_dialog.c:338 ../src/gtkaccount.c:421 +#: ../src/gtkaccount.c:443 ../src/protocols/oscar/oscar.c:625 msgid "Buddy Icon" msgstr "Icône du contact" -#: ../plugins/gevolution/new_person_dialog.c:349 +#: ../plugins/gevolution/new_person_dialog.c:350 msgid "First name:" msgstr "Prénom :" -#: ../plugins/gevolution/new_person_dialog.c:361 +#: ../plugins/gevolution/new_person_dialog.c:362 msgid "Last name:" msgstr "Nom :" -#: ../plugins/gevolution/new_person_dialog.c:381 +#: ../plugins/gevolution/new_person_dialog.c:382 msgid "E-mail:" msgstr "Adresse électronique :" @@ -860,48 +877,50 @@ msgstr "" "Met en icône la liste de contacts et les conversations lors des absences." -#: ../plugins/idle.c:152 ../plugins/idle.c:210 +#: ../plugins/idle.c:158 ../plugins/idle.c:216 msgid "Minutes" msgstr "Minutes" -#: ../plugins/idle.c:159 ../plugins/idle.c:192 ../plugins/idle.c:217 -#: ../plugins/idle.c:306 +#. This is a cultural reference. Dy'er Mak'er is a song by Led Zeppelin. +#. If that doesn't translate well into your language, drop the 's before translating. +#: ../plugins/idle.c:165 ../plugins/idle.c:198 ../plugins/idle.c:223 +#: ../plugins/idle.c:315 msgid "I'dle Mak'er" msgstr "I'nactivat'eur" -#: ../plugins/idle.c:160 ../plugins/idle.c:249 +#: ../plugins/idle.c:166 ../plugins/idle.c:255 msgid "Set Account Idle Time" msgstr "Durée d'inactivité pour le compte" -#: ../plugins/idle.c:163 ../plugins/idle.c:221 +#: ../plugins/idle.c:169 ../plugins/idle.c:227 msgid "_Set" msgstr "_Changer" -#: ../plugins/idle.c:164 ../plugins/idle.c:197 ../plugins/idle.c:222 +#: ../plugins/idle.c:170 ../plugins/idle.c:203 ../plugins/idle.c:228 msgid "_Cancel" msgstr "_Annuler" -#: ../plugins/idle.c:177 +#: ../plugins/idle.c:183 msgid "None of your accounts are idle." msgstr "Aucun de vos comptes n'est inactif." -#: ../plugins/idle.c:193 ../plugins/idle.c:253 +#: ../plugins/idle.c:199 ../plugins/idle.c:259 msgid "Unset Account Idle Time" msgstr "Désactiver le temps d'inactivité pour le compte" -#: ../plugins/idle.c:196 +#: ../plugins/idle.c:202 msgid "_Unset" msgstr "_Désactiver" -#: ../plugins/idle.c:218 ../plugins/idle.c:257 +#: ../plugins/idle.c:224 ../plugins/idle.c:263 msgid "Set Idle Time for All Accounts" msgstr "Changer le temps d'inactivité pour tous les comptes" -#: ../plugins/idle.c:262 +#: ../plugins/idle.c:268 msgid "Unset Idle Time for All Idled Accounts" msgstr "Désactiver le temps d'inactivité pour tous les comptes inactifs" -#: ../plugins/idle.c:308 ../plugins/idle.c:309 +#: ../plugins/idle.c:317 ../plugins/idle.c:318 msgid "Allows you to hand-configure how long you've been idle" msgstr "Permet de changer manuellement le temps d'inactivité." @@ -971,9 +990,7 @@ msgid "One or more messages may have been undeliverable." msgstr "Un ou plusieurs messages ne sont peut-être pas arrivés à destination." -#. MSG_SERVER_DISCONNECTING -#. we have been kicked off =^( -#: ../plugins/log_reader.c:1448 ../src/protocols/napster/napster.c:363 +#: ../plugins/log_reader.c:1448 msgid "You were disconnected from the server." msgstr "Vous avez été déconnecté du serveur" @@ -994,41 +1011,56 @@ msgid "Message could not be sent." msgstr "Le message n'a pas pu être envoyé." -#: ../plugins/log_reader.c:1835 ../plugins/log_reader.c:1928 +#. The names of IM clients are marked for translation at the request of +#. translators who wanted to transliterate them. Many translators +#. choose to leave them alone. Choose what's best for your language. +#: ../plugins/log_reader.c:1838 ../plugins/log_reader.c:1943 msgid "Adium" msgstr "Adium" -#: ../plugins/log_reader.c:1844 ../plugins/log_reader.c:1932 +#. The names of IM clients are marked for translation at the request of +#. translators who wanted to transliterate them. Many translators +#. choose to leave them alone. Choose what's best for your language. +#: ../plugins/log_reader.c:1850 ../plugins/log_reader.c:1947 msgid "Fire" msgstr "Fire" -#: ../plugins/log_reader.c:1853 ../plugins/log_reader.c:1936 +#. The names of IM clients are marked for translation at the request of +#. translators who wanted to transliterate them. Many translators +#. choose to leave them alone. Choose what's best for your language. +#: ../plugins/log_reader.c:1862 ../plugins/log_reader.c:1951 msgid "Messenger Plus!" msgstr "Messenger Plus!" -#: ../plugins/log_reader.c:1862 ../plugins/log_reader.c:1940 +#. The names of IM clients are marked for translation at the request of +#. translators who wanted to transliterate them. Many translators +#. choose to leave them alone. Choose what's best for your language. +#: ../plugins/log_reader.c:1874 ../plugins/log_reader.c:1955 msgid "MSN Messenger" msgstr "MSN Messenger" -#: ../plugins/log_reader.c:1871 ../plugins/log_reader.c:1944 +#. The names of IM clients are marked for translation at the request of +#. translators who wanted to transliterate them. Many translators +#. choose to leave them alone. Choose what's best for your language. +#: ../plugins/log_reader.c:1886 ../plugins/log_reader.c:1959 msgid "Trillian" msgstr "Trillian" #. Add general preferences. -#: ../plugins/log_reader.c:1910 +#: ../plugins/log_reader.c:1925 msgid "General Log Reading Configuration" msgstr "Configuration général du lecteur d'archives." -#: ../plugins/log_reader.c:1914 +#: ../plugins/log_reader.c:1929 msgid "Fast size calculations" msgstr "Calcul rapide de la taille" -#: ../plugins/log_reader.c:1918 +#: ../plugins/log_reader.c:1933 msgid "Use name heuristics" msgstr "Utiliser une heuristique sur les noms" #. Add Log Directory preferences. -#: ../plugins/log_reader.c:1924 +#: ../plugins/log_reader.c:1939 msgid "Log Directory" msgstr "Dossier des archives" @@ -1038,21 +1070,21 @@ #. *< dependencies #. *< priority #. *< id -#: ../plugins/log_reader.c:1967 +#: ../plugins/log_reader.c:1982 msgid "Log Reader" msgstr "Lecteur d'archives" #. *< name #. *< version #. * summary -#: ../plugins/log_reader.c:1971 +#: ../plugins/log_reader.c:1986 msgid "Includes other IM clients' logs in the log viewer." msgstr "" "Inclut les archives d'autres clients de messagerie dans le lecteur " "d'archives." #. * description -#: ../plugins/log_reader.c:1975 +#: ../plugins/log_reader.c:1990 msgid "" "When viewing logs, this plugin will include logs from other IM clients. " "Currently, this includes Adium, Fire, Messenger Plus!, MSN Messenger, and " @@ -1097,32 +1129,32 @@ msgid "Music messaging session confirmed." msgstr "Partie de messagerie musicale confirmée." -#: ../plugins/musicmessaging/musicmessaging.c:414 +#: ../plugins/musicmessaging/musicmessaging.c:416 msgid "Music Messaging" msgstr "Messagerie musicale" -#: ../plugins/musicmessaging/musicmessaging.c:415 +#: ../plugins/musicmessaging/musicmessaging.c:417 msgid "There was a conflict in running the command:" msgstr "Un conflit a eu lieu en exécutant la commande :" -#: ../plugins/musicmessaging/musicmessaging.c:523 +#: ../plugins/musicmessaging/musicmessaging.c:525 msgid "Error Running Editor" msgstr "Erreur à l'exécution de l'éditeur" -#: ../plugins/musicmessaging/musicmessaging.c:524 +#: ../plugins/musicmessaging/musicmessaging.c:526 msgid "The following error has occured:" msgstr "L'erreur suivante est survenue :" #. Configuration frame -#: ../plugins/musicmessaging/musicmessaging.c:623 +#: ../plugins/musicmessaging/musicmessaging.c:625 msgid "Music Messaging Configuration" msgstr "Configuration de messagerie musicale" -#: ../plugins/musicmessaging/musicmessaging.c:627 +#: ../plugins/musicmessaging/musicmessaging.c:629 msgid "Score Editor Path" msgstr "Chemin de l'éditeur de partitions" -#: ../plugins/musicmessaging/musicmessaging.c:628 +#: ../plugins/musicmessaging/musicmessaging.c:630 msgid "_Apply" msgstr "_Appliquer" @@ -1134,12 +1166,12 @@ #. *< id #. *< name #. *< version -#: ../plugins/musicmessaging/musicmessaging.c:663 +#: ../plugins/musicmessaging/musicmessaging.c:665 msgid "Music Messaging Plugin for collaborative composition." msgstr "Plugin de messagerie musicale pour la composition collaborative." #. * summary -#: ../plugins/musicmessaging/musicmessaging.c:665 +#: ../plugins/musicmessaging/musicmessaging.c:667 msgid "" "The Music Messaging Plugin allows a number of users to simultaneously work " "on a piece of music by editting a common score in real-time." @@ -1161,7 +1193,7 @@ msgstr "Fenêtres de _discussions" #: ../plugins/notify.c:657 -msgid "\t_Only when someone says your nick" +msgid "\t_Only when someone says your screen name" msgstr "\t_Seulement quand on dit votre pseudonyme" #: ../plugins/notify.c:667 @@ -1257,15 +1289,15 @@ msgid "Provides support for loading perl plugins." msgstr "Fournit le support pour charger des plugins Perl" -#: ../plugins/psychic.c:22 +#: ../plugins/psychic.c:19 msgid "Psychic Mode" msgstr "Mode psychique" -#: ../plugins/psychic.c:23 +#: ../plugins/psychic.c:20 msgid "Psychic mode for incoming conversation" msgstr "Mode psychique pour le début des nouvelles conversations." -#: ../plugins/psychic.c:24 +#: ../plugins/psychic.c:21 msgid "" "Causes conversation windows to appear as other users begin to message you. " "This works for AIM, ICQ, Jabber, Sametime, and Yahoo!" @@ -1274,19 +1306,25 @@ "commence à vous écrire un message. Celq fonctionne pour AIM, ICQ, Jabber, " "Sametime et Yahoo." -#: ../plugins/psychic.c:60 +#. This is a quote from Star Wars. You should +#. probably not translate it literally. If +#. you can't find a fitting cultural reference +#. in your language, consider translating +#. something like this instead: +#. "You feel a new message coming." +#: ../plugins/psychic.c:63 msgid "You feel a disturbance in the force..." msgstr "Vous sentez une perturbation dans la force..." -#: ../plugins/psychic.c:79 +#: ../plugins/psychic.c:82 msgid "Only enable for users on the buddy list" msgstr "Activer uniquement pour les utilisateurs dans ma liste de contacts" -#: ../plugins/psychic.c:84 +#: ../plugins/psychic.c:87 msgid "Disable when away" msgstr "Désactiver pendant les absences" -#: ../plugins/psychic.c:88 +#: ../plugins/psychic.c:91 msgid "Display notification message in conversations" msgstr "Afficher un message de notification dans les conversations" @@ -1384,7 +1422,7 @@ #. *< dependencies #. *< priority #. *< id -#: ../plugins/simple.c:34 +#: ../plugins/simple.c:37 msgid "Simple Plugin" msgstr "Plugin simple" @@ -1392,72 +1430,72 @@ #. *< version #. * summary #. * description -#: ../plugins/simple.c:37 ../plugins/simple.c:39 +#: ../plugins/simple.c:40 ../plugins/simple.c:42 msgid "Tests to see that most things are working." msgstr "Vérifie que la plupart des choses fonctionne correctement." -#: ../plugins/spellchk.c:1918 +#: ../plugins/spellchk.c:1945 msgid "Duplicate Correction" msgstr "Correction en double" -#: ../plugins/spellchk.c:1919 +#: ../plugins/spellchk.c:1946 msgid "The specified word already exists in the correction list." msgstr "Le mot existe déjà dans la liste de corrections." -#: ../plugins/spellchk.c:2128 +#: ../plugins/spellchk.c:2154 msgid "Text Replacements" msgstr "Substitutions de texte" -#: ../plugins/spellchk.c:2151 +#: ../plugins/spellchk.c:2177 msgid "You type" msgstr "Vous saisissez" -#: ../plugins/spellchk.c:2165 +#: ../plugins/spellchk.c:2191 msgid "You send" msgstr "Vous envoyez" -#: ../plugins/spellchk.c:2179 +#: ../plugins/spellchk.c:2205 msgid "Whole words only" msgstr "Mots entiers uniquement" -#: ../plugins/spellchk.c:2191 +#: ../plugins/spellchk.c:2217 msgid "Case sensitive" msgstr "Sensible à la casse" -#: ../plugins/spellchk.c:2217 +#: ../plugins/spellchk.c:2243 msgid "Add a new text replacement" msgstr "Ajouter une nouvelle substitution" -#: ../plugins/spellchk.c:2233 +#: ../plugins/spellchk.c:2259 msgid "You _type:" msgstr "Vous _saisissez :" -#: ../plugins/spellchk.c:2250 +#: ../plugins/spellchk.c:2276 msgid "You _send:" msgstr "Vous _envoyez :" #. Created here so it can be passed to whole_words_button_toggled. -#: ../plugins/spellchk.c:2262 +#: ../plugins/spellchk.c:2288 msgid "_Exact case match (uncheck for automatic case handling)" msgstr "Correspondance _parfaite uniquement (décoche la gestion automatique)" -#: ../plugins/spellchk.c:2264 +#: ../plugins/spellchk.c:2290 msgid "Only replace _whole words" msgstr "Remplace uniquement les mots _complets" -#: ../plugins/spellchk.c:2289 +#: ../plugins/spellchk.c:2315 msgid "General Text Replacement Options" msgstr "Options de substitutions globales de texte" -#: ../plugins/spellchk.c:2290 +#: ../plugins/spellchk.c:2316 msgid "Enable replacement of last word on send" msgstr "Permet la substitution des mots à l'envoi" -#: ../plugins/spellchk.c:2315 +#: ../plugins/spellchk.c:2341 msgid "Text replacement" msgstr "Substitutions de texte" -#: ../plugins/spellchk.c:2317 ../plugins/spellchk.c:2318 +#: ../plugins/spellchk.c:2343 ../plugins/spellchk.c:2344 msgid "Replaces text in outgoing messages according to user-defined rules." msgstr "" "Remplace le texte dans les messages envoyés grâce à des règles de " @@ -1469,7 +1507,7 @@ #. *< dependencies #. *< priority #. *< id -#: ../plugins/ssl/ssl-gnutls.c:251 +#: ../plugins/ssl/ssl-gnutls.c:256 msgid "GNUTLS" msgstr "GNUTLS" @@ -1477,7 +1515,7 @@ #. *< version #. * summary #. * description -#: ../plugins/ssl/ssl-gnutls.c:254 ../plugins/ssl/ssl-gnutls.c:256 +#: ../plugins/ssl/ssl-gnutls.c:259 ../plugins/ssl/ssl-gnutls.c:261 msgid "Provides SSL support through GNUTLS." msgstr "Fournit le support SSL grâce à la bibliothèque GNUTLS" @@ -1580,11 +1618,11 @@ "Indique dans la fenêtre de conversation quand un contact part ou revient " "d'une absence ou d'une inactivité." -#: ../plugins/tcl/tcl.c:369 +#: ../plugins/tcl/tcl.c:413 msgid "Tcl Plugin Loader" msgstr "Chargeur de plugins Tcl" -#: ../plugins/tcl/tcl.c:371 ../plugins/tcl/tcl.c:372 +#: ../plugins/tcl/tcl.c:415 ../plugins/tcl/tcl.c:416 msgid "Provides support for loading Tcl plugins" msgstr "Fournit le support pour charger des plugins Tcl" @@ -1624,7 +1662,7 @@ #. *< dependencies #. *< priority #. *< id -#: ../plugins/timestamp.c:254 +#: ../plugins/timestamp.c:256 msgid "Timestamp" msgstr "Horodatage" @@ -1632,7 +1670,7 @@ #. *< version #. * summary #. * description -#: ../plugins/timestamp.c:257 ../plugins/timestamp.c:259 +#: ../plugins/timestamp.c:259 ../plugins/timestamp.c:261 msgid "Adds iChat-style timestamps to conversations every N minutes." msgstr "Ajoute l'heure dans la conversation à intervalle régulier." @@ -1670,19 +1708,19 @@ #. *< dependencies #. *< priority #. *< id -#: ../plugins/timestamp_format.c:150 +#: ../plugins/timestamp_format.c:149 msgid "Message Timestamp Formats" msgstr "Formatage de l'horodatage des messages." #. *< name #. *< version #. * summary -#: ../plugins/timestamp_format.c:153 +#: ../plugins/timestamp_format.c:152 msgid "Customizes the message timestamp formats." msgstr "Personnaliser l'affichage de l'horodatage des messages." #. * description -#: ../plugins/timestamp_format.c:155 +#: ../plugins/timestamp_format.c:154 msgid "" "This plugin allows the user to customize conversation and logging message " "timestamp formats." @@ -1761,57 +1799,57 @@ "\n" "Note : Ce plugin nécessite Windows 2000 ou plus récent." -#: ../plugins/win32/winprefs/winprefs.c:397 +#: ../plugins/win32/winprefs/winprefs.c:434 msgid "GTK+ Runtime Version" msgstr "Version des bibliothèques GTK+" #. Autostart -#: ../plugins/win32/winprefs/winprefs.c:405 +#: ../plugins/win32/winprefs/winprefs.c:442 msgid "Startup" msgstr "Démarrage" -#: ../plugins/win32/winprefs/winprefs.c:406 +#: ../plugins/win32/winprefs/winprefs.c:443 msgid "_Start Gaim on Windows startup" msgstr "_Démarrer Gaim au lancement de Windows" #. Buddy List -#: ../plugins/win32/winprefs/winprefs.c:417 ../src/gtkblist.c:3668 +#: ../plugins/win32/winprefs/winprefs.c:455 ../src/gtkblist.c:3688 msgid "Buddy List" msgstr "Liste de contacts" -#: ../plugins/win32/winprefs/winprefs.c:418 +#: ../plugins/win32/winprefs/winprefs.c:456 msgid "_Dockable Buddy List" msgstr "Liste de contacts _accrochable" #. Blist On Top -#: ../plugins/win32/winprefs/winprefs.c:422 +#: ../plugins/win32/winprefs/winprefs.c:460 msgid "_Keep Buddy List window on top:" msgstr "Liste de contacts toujours _visible :" #. XXX: Did this ever work? -#: ../plugins/win32/winprefs/winprefs.c:427 +#: ../plugins/win32/winprefs/winprefs.c:465 msgid "Only when docked" msgstr "Seulement quand la fenêtre est accrochée" #. Conversations -#: ../plugins/win32/winprefs/winprefs.c:431 ../src/gtkprefs.c:819 -#: ../src/gtkprefs.c:1864 +#: ../plugins/win32/winprefs/winprefs.c:469 ../src/gtkprefs.c:819 +#: ../src/gtkprefs.c:1879 msgid "Conversations" msgstr "Conversations" -#: ../plugins/win32/winprefs/winprefs.c:432 +#: ../plugins/win32/winprefs/winprefs.c:470 msgid "_Flash window when messages are received" msgstr "_Faire clignoter la fenêtre sur la réception de messages" -#: ../plugins/win32/winprefs/winprefs.c:456 +#: ../plugins/win32/winprefs/winprefs.c:494 msgid "WinGaim Options" msgstr "Préférences de WinGaim" -#: ../plugins/win32/winprefs/winprefs.c:458 +#: ../plugins/win32/winprefs/winprefs.c:496 msgid "Options specific to Windows Gaim." msgstr "Options spécifiques à Gaim Windows" -#: ../plugins/win32/winprefs/winprefs.c:459 +#: ../plugins/win32/winprefs/winprefs.c:497 msgid "" "Provides options specific to Windows Gaim, such as buddy list docking and " "conversation flashing." @@ -1823,132 +1861,138 @@ msgid "accounts" msgstr "Comptes" -#: ../src/account.c:923 +#: ../src/account.c:917 msgid "Password is required to sign on." msgstr "Un mot de passe est nécessaire pour la connexion." -#: ../src/account.c:948 +#: ../src/account.c:942 #, c-format msgid "Enter password for %s (%s)" msgstr "Saisissez le mot de passe pour %s (%s)" -#: ../src/account.c:955 +#: ../src/account.c:949 msgid "Enter Password" msgstr "Saisissez le mot de passe" -#: ../src/account.c:960 +#: ../src/account.c:954 msgid "Save password" msgstr "Mémoriser le mot de passe" -#: ../src/account.c:968 ../src/account.c:1139 ../src/gtkblist.c:3552 -#: ../src/gtkdialogs.c:588 ../src/gtkdialogs.c:725 ../src/gtkdialogs.c:789 +#. * +#. * A wrapper for gaim_request_action() that uses @c OK and @c Cancel buttons. +#. +#: ../src/account.c:962 ../src/account.c:1133 ../src/gtkblist.c:3572 +#: ../src/gtkdialogs.c:615 ../src/gtkdialogs.c:752 ../src/gtkdialogs.c:826 #: ../src/gtkrequest.c:269 ../src/protocols/gg/gg.c:497 -#: ../src/protocols/gg/gg.c:638 ../src/protocols/gg/gg.c:774 -#: ../src/protocols/jabber/jabber.c:1319 ../src/protocols/jabber/xdata.c:337 +#: ../src/protocols/gg/gg.c:655 ../src/protocols/gg/gg.c:791 +#: ../src/protocols/jabber/jabber.c:1339 ../src/protocols/jabber/xdata.c:337 #: ../src/protocols/msn/msn.c:250 ../src/protocols/msn/msn.c:265 #: ../src/protocols/msn/msn.c:280 ../src/protocols/msn/msn.c:295 -#: ../src/protocols/oscar/oscar.c:3064 ../src/protocols/oscar/oscar.c:4607 -#: ../src/protocols/oscar/oscar.c:4688 ../src/protocols/oscar/oscar.c:8130 -#: ../src/protocols/oscar/oscar.c:8253 ../src/protocols/oscar/oscar.c:8278 -#: ../src/protocols/oscar/oscar.c:8330 ../src/protocols/silc/buddy.c:466 -#: ../src/protocols/silc/buddy.c:1182 ../src/protocols/silc/chat.c:423 -#: ../src/protocols/silc/chat.c:461 ../src/protocols/silc/chat.c:724 +#: ../src/protocols/oscar/oscar.c:1417 ../src/protocols/oscar/oscar.c:2176 +#: ../src/protocols/oscar/oscar.c:2263 ../src/protocols/oscar/oscar.c:5737 +#: ../src/protocols/oscar/oscar.c:5939 ../src/protocols/oscar/oscar.c:5964 +#: ../src/protocols/oscar/oscar.c:6020 ../src/protocols/silc/buddy.c:466 +#: ../src/protocols/silc/buddy.c:1182 ../src/protocols/silc/chat.c:424 +#: ../src/protocols/silc/chat.c:462 ../src/protocols/silc/chat.c:725 #: ../src/protocols/silc/ops.c:1297 ../src/protocols/silc/ops.c:1910 -#: ../src/protocols/silc/silc.c:753 ../src/protocols/yahoo/yahoo.c:3063 -#: ../src/protocols/yahoo/yahoo.c:3072 +#: ../src/protocols/silc/silc.c:755 ../src/protocols/yahoo/yahoo.c:3076 +#: ../src/protocols/yahoo/yahoo.c:3085 ../src/request.h:1344 msgid "OK" msgstr "OK" -#: ../src/account.c:969 ../src/account.c:1140 ../src/account.c:1177 -#: ../src/gtkaccount.c:2171 ../src/gtkaccount.c:2638 ../src/gtkblist.c:5020 -#: ../src/gtkdialogs.c:589 ../src/gtkdialogs.c:726 ../src/gtkdialogs.c:790 -#: ../src/gtkdialogs.c:809 ../src/gtkdialogs.c:831 ../src/gtkdialogs.c:851 -#: ../src/gtkdialogs.c:895 ../src/gtkdialogs.c:950 ../src/gtkdialogs.c:987 -#: ../src/gtkdialogs.c:1012 ../src/gtkimhtmltoolbar.c:419 -#: ../src/gtkplugin.c:296 ../src/gtkpounce.c:1095 ../src/gtkprivacy.c:568 -#: ../src/gtkprivacy.c:581 ../src/gtkprivacy.c:606 ../src/gtkprivacy.c:617 +#: ../src/account.c:963 ../src/account.c:1134 ../src/account.c:1171 +#: ../src/gtkaccount.c:2172 ../src/gtkaccount.c:2642 ../src/gtkblist.c:5051 +#: ../src/gtkdialogs.c:616 ../src/gtkdialogs.c:753 ../src/gtkdialogs.c:827 +#: ../src/gtkdialogs.c:846 ../src/gtkdialogs.c:868 ../src/gtkdialogs.c:888 +#: ../src/gtkdialogs.c:932 ../src/gtkdialogs.c:987 ../src/gtkdialogs.c:1024 +#: ../src/gtkdialogs.c:1049 ../src/gtkimhtmltoolbar.c:419 +#: ../src/gtkplugin.c:296 ../src/gtkpounce.c:1088 ../src/gtkprivacy.c:566 +#: ../src/gtkprivacy.c:579 ../src/gtkprivacy.c:604 ../src/gtkprivacy.c:615 #: ../src/gtkrequest.c:270 ../src/gtksavedstatuses.c:296 -#: ../src/protocols/gg/gg.c:498 ../src/protocols/gg/gg.c:639 -#: ../src/protocols/gg/gg.c:775 ../src/protocols/gg/gg.c:854 -#: ../src/protocols/jabber/buddy.c:573 ../src/protocols/jabber/buddy.c:1419 -#: ../src/protocols/jabber/buddy.c:1453 ../src/protocols/jabber/chat.c:780 -#: ../src/protocols/jabber/jabber.c:824 ../src/protocols/jabber/jabber.c:1320 +#: ../src/protocols/gg/gg.c:498 ../src/protocols/gg/gg.c:656 +#: ../src/protocols/gg/gg.c:792 ../src/protocols/gg/gg.c:871 +#: ../src/protocols/jabber/buddy.c:594 ../src/protocols/jabber/buddy.c:1721 +#: ../src/protocols/jabber/buddy.c:1755 ../src/protocols/jabber/chat.c:778 +#: ../src/protocols/jabber/jabber.c:843 ../src/protocols/jabber/jabber.c:1340 #: ../src/protocols/jabber/xdata.c:338 ../src/protocols/msn/msn.c:251 #: ../src/protocols/msn/msn.c:266 ../src/protocols/msn/msn.c:281 #: ../src/protocols/msn/msn.c:296 ../src/protocols/msn/msn.c:313 -#: ../src/protocols/oscar/oscar.c:1705 ../src/protocols/oscar/oscar.c:3065 -#: ../src/protocols/oscar/oscar.c:4565 ../src/protocols/oscar/oscar.c:4608 -#: ../src/protocols/oscar/oscar.c:4645 ../src/protocols/oscar/oscar.c:4689 -#: ../src/protocols/oscar/oscar.c:8131 ../src/protocols/oscar/oscar.c:8254 -#: ../src/protocols/oscar/oscar.c:8279 ../src/protocols/oscar/oscar.c:8331 -#: ../src/protocols/oscar/oscar.c:8400 -#: ../src/protocols/sametime/sametime.c:3376 -#: ../src/protocols/sametime/sametime.c:3461 -#: ../src/protocols/sametime/sametime.c:3631 -#: ../src/protocols/sametime/sametime.c:5320 -#: ../src/protocols/sametime/sametime.c:5409 -#: ../src/protocols/sametime/sametime.c:5533 ../src/protocols/silc/buddy.c:467 +#: ../src/protocols/oscar/oscar.c:1418 ../src/protocols/oscar/oscar.c:2177 +#: ../src/protocols/oscar/oscar.c:2216 ../src/protocols/oscar/oscar.c:2264 +#: ../src/protocols/oscar/oscar.c:5738 ../src/protocols/oscar/oscar.c:5790 +#: ../src/protocols/oscar/oscar.c:5940 ../src/protocols/oscar/oscar.c:5965 +#: ../src/protocols/oscar/oscar.c:6021 ../src/protocols/oscar/oscar.c:6090 +#: ../src/protocols/oscar/peer.c:942 ../src/protocols/sametime/sametime.c:3368 +#: ../src/protocols/sametime/sametime.c:3453 +#: ../src/protocols/sametime/sametime.c:3623 +#: ../src/protocols/sametime/sametime.c:5317 +#: ../src/protocols/sametime/sametime.c:5406 +#: ../src/protocols/sametime/sametime.c:5530 ../src/protocols/silc/buddy.c:467 #: ../src/protocols/silc/buddy.c:1078 ../src/protocols/silc/buddy.c:1183 -#: ../src/protocols/silc/chat.c:596 ../src/protocols/silc/chat.c:725 -#: ../src/protocols/silc/ops.c:1911 ../src/protocols/silc/silc.c:754 -#: ../src/protocols/silc/silc.c:959 ../src/protocols/yahoo/yahoo.c:3064 -#: ../src/protocols/yahoo/yahoo.c:3073 +#: ../src/protocols/silc/chat.c:597 ../src/protocols/silc/chat.c:726 +#: ../src/protocols/silc/ops.c:1911 ../src/protocols/silc/silc.c:756 +#: ../src/protocols/silc/silc.c:961 ../src/protocols/yahoo/yahoo.c:3077 +#: ../src/protocols/yahoo/yahoo.c:3086 ../src/request.h:1344 +#: ../src/request.h:1354 msgid "Cancel" msgstr "Annuler" -#: ../src/account.c:994 ../src/connection.c:96 +#: ../src/account.c:988 ../src/connection.c:96 #, c-format msgid "Missing protocol plugin for %s" msgstr "Plugin pour le protocole %s manquant" -#: ../src/account.c:996 ../src/connection.c:99 ../src/gtkblist.c:3544 -#: ../src/gtkblist.c:3550 +#: ../src/account.c:990 ../src/connection.c:99 ../src/gtkblist.c:3570 msgid "Connection Error" msgstr "Erreur de connexion" -#: ../src/account.c:1076 ../src/protocols/gg/gg.c:679 -#: ../src/protocols/jabber/jabber.c:1272 +#: ../src/account.c:1070 ../src/protocols/gg/gg.c:696 +#: ../src/protocols/jabber/jabber.c:1292 msgid "New passwords do not match." msgstr "Les nouveaux mots de passe diffèrent" -#: ../src/account.c:1085 +#: ../src/account.c:1079 msgid "Fill out all fields completely." -msgstr "Remplissez tous les champs" +msgstr "Veuillez renseigner toutes les rubriques." -#: ../src/account.c:1108 +#: ../src/account.c:1102 msgid "Original password" msgstr "Mot de passe courant" -#: ../src/account.c:1115 +#: ../src/account.c:1109 msgid "New password" msgstr "Nouveau mot de passe" -#: ../src/account.c:1122 +#: ../src/account.c:1116 msgid "New password (again)" msgstr "Nouveau mot de passe (confirmation)" -#: ../src/account.c:1128 +#: ../src/account.c:1122 #, c-format msgid "Change password for %s" msgstr "Changer le mot de passe pour %s" -#: ../src/account.c:1136 +#: ../src/account.c:1130 msgid "Please enter your current password and your new password." msgstr "Saisissez votre mot de passe et un nouveau mot de passe" -#: ../src/account.c:1169 +#: ../src/account.c:1163 #, c-format msgid "Change user information for %s" msgstr "Changer les informations pour %s" -#: ../src/account.c:1176 ../src/gtkdebug.c:684 ../src/gtkrequest.c:276 -#: ../src/protocols/jabber/buddy.c:572 +#: ../src/account.c:1166 ../src/protocols/toc/toc.c:1684 +msgid "Set User Info" +msgstr "Éditer les informations" + +#: ../src/account.c:1170 ../src/gtkdebug.c:684 ../src/gtkrequest.c:276 +#: ../src/protocols/jabber/buddy.c:593 msgid "Save" msgstr "Enregistrer" -#: ../src/account.c:1679 ../src/gtkft.c:157 -#: ../src/protocols/jabber/buddy.c:630 ../src/protocols/jabber/buddy.c:1095 -#: ../src/protocols/jabber/buddy.c:1112 ../src/protocols/novell/novell.c:2860 +#: ../src/account.c:1675 ../src/gtkft.c:159 ../src/protocols/gg/gg.c:1002 +#: ../src/protocols/jabber/buddy.c:636 ../src/protocols/jabber/buddy.c:1357 +#: ../src/protocols/jabber/buddy.c:1374 ../src/protocols/novell/novell.c:2858 msgid "Unknown" msgstr "Inconnu" @@ -1956,11 +2000,11 @@ msgid "buddy list" msgstr "Liste de contacts" -#: ../src/blist.c:1179 +#: ../src/blist.c:1182 msgid "Chats" msgstr "Discussions" -#: ../src/blist.c:1901 +#: ../src/blist.c:1904 #, c-format msgid "" "%d buddy from group %s was not removed because it belongs to an account " @@ -1977,7 +2021,7 @@ "des comptes désactivés ou déconnectés. Ces contacts et le groupe n'ont pas " "été supprimés.\n" -#: ../src/blist.c:1911 +#: ../src/blist.c:1914 msgid "Group not removed" msgstr "Groupe non supprimé" @@ -1985,59 +2029,59 @@ msgid "Registration Error" msgstr "Erreur d'enregistrement" -#: ../src/connection.c:280 +#: ../src/connection.c:277 #, c-format msgid "+++ %s signed on" msgstr "+++ %s vient de se connecter" -#: ../src/connection.c:313 +#: ../src/connection.c:310 #, c-format msgid "+++ %s signed off" msgstr "+++ %s a quitté" -#: ../src/conversation.c:163 +#: ../src/conversation.c:164 msgid "Unable to send message: The message is too large." msgstr "Impossible d'envoyer le message : trop gros" -#: ../src/conversation.c:166 ../src/conversation.c:179 +#: ../src/conversation.c:167 ../src/conversation.c:180 #, c-format msgid "Unable to send message to %s." msgstr "Impossible d'envoyer le message vers %s." -#: ../src/conversation.c:167 +#: ../src/conversation.c:168 msgid "The message is too large." msgstr "Message trop long" -#: ../src/conversation.c:176 +#: ../src/conversation.c:177 msgid "Unable to send message." msgstr "Impossible d'envoyer le message" -#: ../src/conversation.c:1517 +#: ../src/conversation.c:1528 #, c-format msgid "%s entered the room." msgstr "%s est entré dans le salon" -#: ../src/conversation.c:1520 +#: ../src/conversation.c:1531 #, c-format msgid "%s [<I>%s</I>] entered the room." msgstr "%s [<I>%s</I>] est entré dans le salon" -#: ../src/conversation.c:1627 +#: ../src/conversation.c:1636 #, c-format msgid "You are now known as %s" msgstr "Vous êtes désormais connu sous le nom de %s" -#: ../src/conversation.c:1647 +#: ../src/conversation.c:1656 #, c-format msgid "%s is now known as %s" msgstr "%s est désormais connu sous le nom de %s" -#: ../src/conversation.c:1720 +#: ../src/conversation.c:1729 #, c-format msgid "%s left the room." msgstr "%s a quitté le salon" -#: ../src/conversation.c:1723 +#: ../src/conversation.c:1732 #, c-format msgid "%s left the room (%s)." msgstr "%s a quitté le salon (%s)" @@ -2046,7 +2090,7 @@ msgid "No name" msgstr "Anonyme" -#: ../src/ft.c:189 ../src/protocols/msn/msn.c:412 +#: ../src/ft.c:189 ../src/protocols/msn/msn.c:410 #, c-format msgid "" "Error reading %s: \n" @@ -2114,65 +2158,65 @@ "Hôte distant : %s\n" "Port distant : %d" -#: ../src/ft.c:391 +#: ../src/ft.c:392 #, c-format msgid "%s is offering to send file %s" msgstr "%s propose de vous envoyer le fichier %s" -#: ../src/ft.c:442 +#: ../src/ft.c:444 #, c-format msgid "%s is not a valid filename.\n" msgstr "%s n'est pas un nom de fichier valide\n" -#: ../src/ft.c:463 +#: ../src/ft.c:465 #, c-format msgid "Offering to send %s to %s" msgstr "Proposition d'envoyer « %s » à %s" -#: ../src/ft.c:474 +#: ../src/ft.c:477 #, c-format msgid "Starting transfer of %s from %s" msgstr "Démarrage du transfert de %s depuis %s." -#: ../src/ft.c:628 +#: ../src/ft.c:631 #, c-format msgid "Transfer of file %s complete" msgstr "Transfert du fichier « %s » terminé" -#: ../src/ft.c:631 +#: ../src/ft.c:634 msgid "File transfer complete" msgstr "Transfert de fichier terminé" -#: ../src/ft.c:1022 +#: ../src/ft.c:1023 #, c-format msgid "You canceled the transfer of %s" msgstr "Vous avez a annulé le transfert de « %s »" -#: ../src/ft.c:1027 +#: ../src/ft.c:1028 msgid "File transfer cancelled" msgstr "Transfert de fichier annulé" -#: ../src/ft.c:1084 +#: ../src/ft.c:1086 #, c-format msgid "%s canceled the transfer of %s" msgstr "%s a annulé le transfert de « %s »" -#: ../src/ft.c:1089 +#: ../src/ft.c:1091 #, c-format msgid "%s canceled the file transfer" msgstr "%s a annulé le transfert du fichier" -#: ../src/ft.c:1146 +#: ../src/ft.c:1148 #, c-format msgid "File transfer to %s failed." msgstr "Échec du transfert vers %s." -#: ../src/ft.c:1148 +#: ../src/ft.c:1150 #, c-format msgid "File transfer from %s failed." msgstr "Échec du transfert depuis %s." -#: ../src/gtkaccount.c:374 +#: ../src/gtkaccount.c:371 #, c-format msgid "" "<b>File:</b> %s\n" @@ -2184,162 +2228,168 @@ "<b>Taille de l'image :</b> %dx%d" #. Build the login options frame. -#: ../src/gtkaccount.c:762 +#: ../src/gtkaccount.c:757 msgid "Login Options" msgstr "Options de connexion" -#: ../src/gtkaccount.c:779 ../src/gtkft.c:640 +#: ../src/gtkaccount.c:774 ../src/gtkft.c:642 msgid "Protocol:" msgstr "Protocole :" -#: ../src/gtkaccount.c:858 +#: ../src/gtkaccount.c:853 msgid "Password:" msgstr "Mot de passe :" -#: ../src/gtkaccount.c:863 ../src/gtkblist.c:4598 ../src/gtkblist.c:4964 -msgid "Alias:" -msgstr "Alias :" +#: ../src/gtkaccount.c:858 +msgid "Local alias:" +msgstr "Alias local :" -#: ../src/gtkaccount.c:867 +#: ../src/gtkaccount.c:862 msgid "Remember password" msgstr "Mémoriser le mot de passe" #. Build the user options frame. -#: ../src/gtkaccount.c:919 +#: ../src/gtkaccount.c:914 msgid "User Options" msgstr "Options de l'utilisateur" -#: ../src/gtkaccount.c:932 +#: ../src/gtkaccount.c:927 msgid "New mail notifications" msgstr "Avertir des nouveaux courriers" -#: ../src/gtkaccount.c:941 +#: ../src/gtkaccount.c:936 msgid "Buddy icon:" msgstr "Icône :" #. Build the protocol options frame. -#: ../src/gtkaccount.c:1032 +#: ../src/gtkaccount.c:1027 #, c-format msgid "%s Options" msgstr "Options de %s" -#: ../src/gtkaccount.c:1233 +#: ../src/gtkaccount.c:1228 msgid "Use Global Proxy Settings" msgstr "Utiliser les paramètres globaux" -#: ../src/gtkaccount.c:1239 +#: ../src/gtkaccount.c:1234 msgid "No Proxy" msgstr "Pas de serveur mandataire" -#: ../src/gtkaccount.c:1245 +#: ../src/gtkaccount.c:1240 msgid "HTTP" msgstr "HTTP" -#: ../src/gtkaccount.c:1251 +#: ../src/gtkaccount.c:1246 msgid "SOCKS 4" msgstr "SOCKS 4" -#: ../src/gtkaccount.c:1257 +#: ../src/gtkaccount.c:1252 msgid "SOCKS 5" msgstr "SOCKS 5" -#: ../src/gtkaccount.c:1263 ../src/gtkprefs.c:1043 +#: ../src/gtkaccount.c:1258 ../src/gtkprefs.c:1058 msgid "Use Environmental Settings" msgstr "Utiliser les paramètres globaux" +#. This is an easter egg. +#. It means one of two things, both intended as humourus: +#. A) your network is really slow and you have nothing better to do than +#. look at butterflies. +#. B)You are looking really closely at something that shouldn't matter. #: ../src/gtkaccount.c:1297 +msgid "If you look real closely" +msgstr "Si on regarde de très près" + +#. This is an easter egg. See the comment on the previous line in the source. +#: ../src/gtkaccount.c:1300 msgid "you can see the butterflies mating" msgstr "on peut voir les papillons s'accoupler" -#: ../src/gtkaccount.c:1301 -msgid "If you look real closely" -msgstr "Si on regarde de très près" - -#: ../src/gtkaccount.c:1317 +#: ../src/gtkaccount.c:1321 msgid "Proxy Options" msgstr "Options du serveur mandataire" -#: ../src/gtkaccount.c:1331 ../src/gtkprefs.c:1037 +#: ../src/gtkaccount.c:1335 ../src/gtkprefs.c:1052 msgid "Proxy _type:" msgstr "_Type :" -#: ../src/gtkaccount.c:1340 ../src/gtkprefs.c:1058 +#: ../src/gtkaccount.c:1344 ../src/gtkprefs.c:1073 msgid "_Host:" msgstr "_Hôte :" -#: ../src/gtkaccount.c:1344 ../src/gtkprefs.c:1076 +#: ../src/gtkaccount.c:1348 ../src/gtkprefs.c:1091 msgid "_Port:" msgstr "_Port :" -#: ../src/gtkaccount.c:1352 +#: ../src/gtkaccount.c:1356 msgid "_Username:" msgstr "_Utilisateur :" -#: ../src/gtkaccount.c:1358 ../src/gtkprefs.c:1113 +#: ../src/gtkaccount.c:1362 ../src/gtkprefs.c:1128 msgid "Pa_ssword:" msgstr "_Mot de passe :" -#: ../src/gtkaccount.c:1736 +#: ../src/gtkaccount.c:1737 msgid "Add Account" msgstr "Ajouter un compte" -#: ../src/gtkaccount.c:1738 ../src/gtkblist.c:3553 +#: ../src/gtkaccount.c:1739 ../src/gtkblist.c:3573 msgid "Modify Account" msgstr "Modification du compte" -#: ../src/gtkaccount.c:1760 +#: ../src/gtkaccount.c:1761 msgid "_Basic" msgstr "_Basic" -#: ../src/gtkaccount.c:1771 +#: ../src/gtkaccount.c:1772 msgid "_Advanced" msgstr "_Avancé" #. Register button -#: ../src/gtkaccount.c:1786 ../src/protocols/jabber/jabber.c:823 +#: ../src/gtkaccount.c:1787 ../src/protocols/jabber/jabber.c:842 msgid "Register" msgstr "S'enregistrer" -#: ../src/gtkaccount.c:2165 ../src/gtksavedstatuses.c:293 +#: ../src/gtkaccount.c:2166 ../src/gtksavedstatuses.c:293 #, c-format msgid "Are you sure you want to delete %s?" msgstr "Êtes-vous sûr de vouloir supprimer %s ?" -#: ../src/gtkaccount.c:2170 ../src/gtkpounce.c:1094 ../src/gtkrequest.c:273 +#: ../src/gtkaccount.c:2171 ../src/gtkpounce.c:1087 ../src/gtkrequest.c:273 #: ../src/gtksavedstatuses.c:295 msgid "Delete" msgstr "Supprimer" -#: ../src/gtkaccount.c:2228 ../src/gtksavedstatuses.c:890 -#: ../src/protocols/oscar/oscar.c:5252 +#: ../src/gtkaccount.c:2235 ../src/gtksavedstatuses.c:893 +#: ../src/protocols/oscar/oscar.c:2828 msgid "Screen Name" msgstr "Pseudo" -#: ../src/gtkaccount.c:2259 +#: ../src/gtkaccount.c:2266 msgid "Protocol" msgstr "Protocole" -#: ../src/gtkaccount.c:2586 +#: ../src/gtkaccount.c:2590 #, c-format msgid "%s%s%s%s has made %s his or her buddy%s%s" msgstr "%s%s%s%s a fait de %s son contact%s%s" -#: ../src/gtkaccount.c:2635 +#: ../src/gtkaccount.c:2639 msgid "Add buddy to your list?" msgstr "Ajouter cet utilisateur à la liste de contacts ?" -#: ../src/gtkaccount.c:2637 ../src/gtkblist.c:5019 ../src/gtkconv.c:1625 -#: ../src/gtkrequest.c:274 ../src/protocols/gg/gg.c:853 -#: ../src/protocols/oscar/oscar.c:4877 -#: ../src/protocols/sametime/sametime.c:5408 ../src/protocols/silc/chat.c:595 +#: ../src/gtkaccount.c:2641 ../src/gtkblist.c:5050 ../src/gtkconv.c:1617 +#: ../src/gtkrequest.c:274 ../src/protocols/gg/gg.c:870 +#: ../src/protocols/oscar/oscar.c:2454 +#: ../src/protocols/sametime/sametime.c:5405 ../src/protocols/silc/chat.c:596 msgid "Add" msgstr "Ajouter" -#: ../src/gtkblist.c:672 +#: ../src/gtkblist.c:683 msgid "Join a Chat" msgstr "Joindre une discussion" -#: ../src/gtkblist.c:693 +#: ../src/gtkblist.c:704 msgid "" "Please enter the appropriate information about the chat you would like to " "join.\n" @@ -2347,213 +2397,213 @@ "Saisissez les informations appropriées à propos du salon de discussions que " "vous voulez joindre.\n" -#: ../src/gtkblist.c:704 ../src/gtkpounce.c:527 ../src/gtkroomlist.c:377 +#: ../src/gtkblist.c:715 ../src/gtkpounce.c:523 ../src/gtkroomlist.c:377 msgid "_Account:" msgstr "_Compte :" -#: ../src/gtkblist.c:948 +#: ../src/gtkblist.c:958 msgid "Get _Info" msgstr "_Infos" -#: ../src/gtkblist.c:951 ../src/gtkstock.c:141 +#: ../src/gtkblist.c:961 ../src/gtkstock.c:141 msgid "I_M" msgstr "_Message" -#: ../src/gtkblist.c:957 +#: ../src/gtkblist.c:967 msgid "_Send File" msgstr "Envoyer un _fichier" -#: ../src/gtkblist.c:964 +#: ../src/gtkblist.c:974 msgid "Add Buddy _Pounce" msgstr "Ajouter une a_lerte" -#: ../src/gtkblist.c:968 ../src/gtkblist.c:972 ../src/gtkblist.c:1071 -#: ../src/gtkblist.c:1094 +#: ../src/gtkblist.c:978 ../src/gtkblist.c:982 ../src/gtkblist.c:1081 +#: ../src/gtkblist.c:1104 msgid "View _Log" msgstr "_Voir les archives" -#: ../src/gtkblist.c:983 +#: ../src/gtkblist.c:993 msgid "Alias..." msgstr "Alias..." -#: ../src/gtkblist.c:986 ../src/gtkconv.c:1622 ../src/gtkrequest.c:275 +#: ../src/gtkblist.c:996 ../src/gtkconv.c:1614 ../src/gtkrequest.c:275 msgid "Remove" msgstr "Enlever" -#: ../src/gtkblist.c:992 ../src/gtkblist.c:1079 ../src/gtkblist.c:1100 +#: ../src/gtkblist.c:1002 ../src/gtkblist.c:1089 ../src/gtkblist.c:1110 msgid "_Alias..." msgstr "_Alias..." -#: ../src/gtkblist.c:994 ../src/gtkblist.c:1081 ../src/gtkblist.c:1102 +#: ../src/gtkblist.c:1004 ../src/gtkblist.c:1091 ../src/gtkblist.c:1112 msgid "_Remove" msgstr "_Supprimer" -#: ../src/gtkblist.c:1042 +#: ../src/gtkblist.c:1052 msgid "Add a _Buddy" msgstr "_Ajouter un contact" -#: ../src/gtkblist.c:1044 +#: ../src/gtkblist.c:1054 msgid "Add a C_hat" msgstr "Ajouter une d_iscussion" -#: ../src/gtkblist.c:1047 +#: ../src/gtkblist.c:1057 msgid "_Delete Group" msgstr "_Supprimer un groupe" -#: ../src/gtkblist.c:1049 +#: ../src/gtkblist.c:1059 msgid "_Rename" msgstr "_Renommer" #. join button -#: ../src/gtkblist.c:1067 ../src/gtkroomlist.c:285 ../src/gtkroomlist.c:441 +#: ../src/gtkblist.c:1077 ../src/gtkroomlist.c:285 ../src/gtkroomlist.c:441 #: ../src/gtkstock.c:139 msgid "_Join" msgstr "_Joindre" -#: ../src/gtkblist.c:1069 +#: ../src/gtkblist.c:1079 msgid "Auto-Join" msgstr "Connexion auto" -#: ../src/gtkblist.c:1107 ../src/gtkblist.c:1130 +#: ../src/gtkblist.c:1117 ../src/gtkblist.c:1140 msgid "_Collapse" msgstr "Re_plier" -#: ../src/gtkblist.c:1135 +#: ../src/gtkblist.c:1145 msgid "_Expand" msgstr "_Etendre" -#: ../src/gtkblist.c:1381 ../src/gtkblist.c:1393 ../src/gtkblist.c:3813 -#: ../src/gtkblist.c:3823 +#: ../src/gtkblist.c:1391 ../src/gtkblist.c:1403 ../src/gtkblist.c:3833 +#: ../src/gtkblist.c:3843 msgid "/Tools/Mute Sounds" msgstr "/Outils/Silencieux" -#: ../src/gtkblist.c:1856 ../src/gtkconv.c:4209 ../src/gtkpounce.c:426 +#: ../src/gtkblist.c:1863 ../src/gtkconv.c:4241 ../src/gtkpounce.c:422 msgid "" "You are not currently signed on with an account that can add that buddy." msgstr "" "Vous n'êtes connecté à aucun compte permettant d'ajouter cet utilisateur." #. Buddies menu -#: ../src/gtkblist.c:2430 +#: ../src/gtkblist.c:2437 msgid "/_Buddies" msgstr "/_Contacts" -#: ../src/gtkblist.c:2431 +#: ../src/gtkblist.c:2438 msgid "/Buddies/New Instant _Message..." msgstr "/Contacts/Envoyer un _message..." -#: ../src/gtkblist.c:2432 +#: ../src/gtkblist.c:2439 msgid "/Buddies/Join a _Chat..." msgstr "/Contacts/_Joindre une discussion..." -#: ../src/gtkblist.c:2433 +#: ../src/gtkblist.c:2440 msgid "/Buddies/Get User _Info..." msgstr "/Contacts/Voir les _informations..." -#: ../src/gtkblist.c:2434 +#: ../src/gtkblist.c:2441 msgid "/Buddies/View User _Log..." msgstr "/Contacts/Voir les _archives..." -#: ../src/gtkblist.c:2436 +#: ../src/gtkblist.c:2443 msgid "/Buddies/Show _Offline Buddies" msgstr "/Contacts/Afficher les contacts _déconnectés" -#: ../src/gtkblist.c:2437 +#: ../src/gtkblist.c:2444 msgid "/Buddies/Show _Empty Groups" msgstr "/Contacts/Afficher les groupes _vides" -#: ../src/gtkblist.c:2438 +#: ../src/gtkblist.c:2445 msgid "/Buddies/Show Buddy _Details" msgstr "/Contacts/_Afficher les informations des contacts" -#: ../src/gtkblist.c:2439 +#: ../src/gtkblist.c:2446 msgid "/Buddies/Show Idle _Times" msgstr "/Contacts/Afficher les tem_ps d'inactivité" -#: ../src/gtkblist.c:2440 +#: ../src/gtkblist.c:2447 msgid "/Buddies/_Sort Buddies" msgstr "/Contacts/_Trier les contacts" -#: ../src/gtkblist.c:2442 +#: ../src/gtkblist.c:2449 msgid "/Buddies/_Add Buddy..." msgstr "/Contacts/Ajouter un _contact..." -#: ../src/gtkblist.c:2443 +#: ../src/gtkblist.c:2450 msgid "/Buddies/Add C_hat..." msgstr "/Contacts/Ajouter une _discussion..." -#: ../src/gtkblist.c:2444 +#: ../src/gtkblist.c:2451 msgid "/Buddies/Add _Group..." msgstr "/Contacts/Ajouter un _groupe..." -#: ../src/gtkblist.c:2446 +#: ../src/gtkblist.c:2453 msgid "/Buddies/_Quit" msgstr "/Contacts/_Quitter" #. Accounts menu -#: ../src/gtkblist.c:2449 +#: ../src/gtkblist.c:2456 msgid "/_Accounts" msgstr "/_Comptes" -#: ../src/gtkblist.c:2450 ../src/gtkblist.c:5598 +#: ../src/gtkblist.c:2457 ../src/gtkblist.c:5627 msgid "/Accounts/Add\\/Edit" msgstr "/Comptes/_Modifier" #. Tools -#: ../src/gtkblist.c:2453 +#: ../src/gtkblist.c:2460 msgid "/_Tools" msgstr "/_Outils" -#: ../src/gtkblist.c:2454 +#: ../src/gtkblist.c:2461 msgid "/Tools/Buddy _Pounces" msgstr "/Outils/_Alertes" -#: ../src/gtkblist.c:2455 +#: ../src/gtkblist.c:2462 msgid "/Tools/Plu_gins" msgstr "/Outils/Plu_gins" -#: ../src/gtkblist.c:2456 +#: ../src/gtkblist.c:2463 msgid "/Tools/Pr_eferences" msgstr "/Outils/_Préférences" -#: ../src/gtkblist.c:2457 +#: ../src/gtkblist.c:2464 msgid "/Tools/Pr_ivacy" msgstr "/Outils/_Filtres" -#: ../src/gtkblist.c:2459 +#: ../src/gtkblist.c:2466 msgid "/Tools/_File Transfers" msgstr "/Outils/_Transferts de fichier" -#: ../src/gtkblist.c:2460 +#: ../src/gtkblist.c:2467 msgid "/Tools/R_oom List" msgstr "/Outils/_Liste des salons de discussion" -#: ../src/gtkblist.c:2461 +#: ../src/gtkblist.c:2468 msgid "/Tools/System _Log" msgstr "/Outils/Voir les archives s_ystème" -#: ../src/gtkblist.c:2463 +#: ../src/gtkblist.c:2470 msgid "/Tools/Mute _Sounds" msgstr "/Outils/_Silencieux" #. Help -#: ../src/gtkblist.c:2466 +#: ../src/gtkblist.c:2473 msgid "/_Help" msgstr "/_Aide" -#: ../src/gtkblist.c:2467 +#: ../src/gtkblist.c:2474 msgid "/Help/Online _Help" msgstr "/Aide/_Aide en ligne" -#: ../src/gtkblist.c:2468 +#: ../src/gtkblist.c:2475 msgid "/Help/_Debug Window" msgstr "/Aide/Fenêtre de _debug" -#: ../src/gtkblist.c:2469 +#: ../src/gtkblist.c:2476 msgid "/Help/_About" msgstr "/Aide/_A propos de" -#: ../src/gtkblist.c:2501 ../src/gtkblist.c:2570 +#: ../src/gtkblist.c:2508 ../src/gtkblist.c:2577 #, c-format msgid "" "\n" @@ -2562,7 +2612,7 @@ "\n" "<b>Compte :</b> %s" -#: ../src/gtkblist.c:2582 +#: ../src/gtkblist.c:2589 #, c-format msgid "" "\n" @@ -2571,7 +2621,7 @@ "\n" "<b>Alias du contact :</b> %s" -#: ../src/gtkblist.c:2594 +#: ../src/gtkblist.c:2601 #, c-format msgid "" "\n" @@ -2580,7 +2630,7 @@ "\n" "<b>Pseudonyme :</b> %s" -#: ../src/gtkblist.c:2603 +#: ../src/gtkblist.c:2610 #, c-format msgid "" "\n" @@ -2589,7 +2639,7 @@ "\n" "<b>Connexion :</b> %s" -#: ../src/gtkblist.c:2614 +#: ../src/gtkblist.c:2621 #, c-format msgid "" "\n" @@ -2598,7 +2648,7 @@ "\n" "<b>Inactif :</b> %s" -#: ../src/gtkblist.c:2649 +#: ../src/gtkblist.c:2656 #, c-format msgid "" "\n" @@ -2607,7 +2657,7 @@ "\n" "<b>Vu récemment :</b> il y a %s" -#: ../src/gtkblist.c:2658 +#: ../src/gtkblist.c:2665 msgid "" "\n" "<b>Status:</b> Offline" @@ -2615,7 +2665,7 @@ "\n" "<b>État :</b> Déconnecté" -#: ../src/gtkblist.c:2669 +#: ../src/gtkblist.c:2676 msgid "" "\n" "<b>Description:</b> Spooky" @@ -2623,7 +2673,7 @@ "\n" "<b>Description :</b> Bizarre" -#: ../src/gtkblist.c:2671 +#: ../src/gtkblist.c:2678 msgid "" "\n" "<b>Status:</b> Awesome" @@ -2631,7 +2681,7 @@ "\n" "<b>État :</b> Fabuleux" -#: ../src/gtkblist.c:2673 +#: ../src/gtkblist.c:2680 msgid "" "\n" "<b>Status:</b> Rockin'" @@ -2639,125 +2689,120 @@ "\n" "<b>État :</b> Génial" -#: ../src/gtkblist.c:2962 +#: ../src/gtkblist.c:2975 #, c-format msgid "Idle %dh %02dm" msgstr "Inactif %dh %02dm" -#: ../src/gtkblist.c:2964 +#: ../src/gtkblist.c:2977 #, c-format msgid "Idle %dm" msgstr "Inactif %dm" #. Idle stuff -#: ../src/gtkblist.c:2967 ../src/gtkprefs.c:1745 -#: ../src/protocols/bonjour/bonjour.c:333 ../src/protocols/msn/msn.c:552 -#: ../src/protocols/msn/state.c:32 ../src/protocols/novell/novell.c:2854 -#: ../src/protocols/oscar/oscar.c:5273 ../src/protocols/yahoo/yahoo.c:2731 +#: ../src/gtkblist.c:2980 ../src/gtkprefs.c:1760 +#: ../src/protocols/bonjour/bonjour.c:333 ../src/protocols/jabber/buddy.c:641 +#: ../src/protocols/jabber/buddy.c:672 ../src/protocols/msn/msn.c:548 +#: ../src/protocols/msn/state.c:32 ../src/protocols/novell/novell.c:2852 +#: ../src/protocols/oscar/oscar.c:2849 ../src/protocols/yahoo/yahoo.c:2744 #: ../src/protocols/yahoo/yahoo_profile.c:691 msgid "Idle" msgstr "Inactif" -#: ../src/gtkblist.c:3099 +#: ../src/gtkblist.c:3113 msgid "/Buddies/New Instant Message..." msgstr "/Contacts/Envoyer un _message..." -#: ../src/gtkblist.c:3100 ../src/gtkblist.c:3133 +#: ../src/gtkblist.c:3114 ../src/gtkblist.c:3147 msgid "/... [truncated message content] |