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: <sa...@us...> - 2006-11-16 03:17:34
|
Revision: 17757 http://svn.sourceforge.net/gaim/?rev=17757&view=rev Author: sadrul Date: 2006-11-15 19:17:27 -0800 (Wed, 15 Nov 2006) Log Message: ----------- show-menu action for a window. Modified Paths: -------------- trunk/console/libgnt/gntstyle.c trunk/console/libgnt/gntwindow.c trunk/doc/gaim-text.1.in Modified: trunk/console/libgnt/gntstyle.c =================================================================== --- trunk/console/libgnt/gntstyle.c 2006-11-16 00:27:30 UTC (rev 17756) +++ trunk/console/libgnt/gntstyle.c 2006-11-16 03:17:27 UTC (rev 17757) @@ -46,7 +46,8 @@ return bool_styles[style]; } -void refine(char *text) +static void +refine(char *text) { char *s = text, *t = text; Modified: trunk/console/libgnt/gntwindow.c =================================================================== --- trunk/console/libgnt/gntwindow.c 2006-11-16 00:27:30 UTC (rev 17756) +++ trunk/console/libgnt/gntwindow.c 2006-11-16 03:17:27 UTC (rev 17757) @@ -9,18 +9,17 @@ static GntBoxClass *parent_class = NULL; -static gboolean (*org_keypress)(GntWidget *widget, const char *text); static void (*org_destroy)(GntWidget *widget); static gboolean -gnt_window_key_pressed(GntWidget *widget, const char *text) +show_menu(GntBindable *bind, GList *null) { - if (strcmp(text, GNT_KEY_CTRL_O) == 0 && GNT_WINDOW(widget)->menu) { - gnt_screen_menu_show(GNT_WINDOW(widget)->menu); + GntWindow *win = GNT_WINDOW(bind); + if (win->menu) { + gnt_screen_menu_show(win->menu); return TRUE; - } else - return org_keypress(widget, text); - + } + return FALSE; } static void @@ -35,15 +34,17 @@ static void gnt_window_class_init(GntWindowClass *klass) { + GntBindableClass *bindable = GNT_BINDABLE_CLASS(klass); GntWidgetClass *wid_class = GNT_WIDGET_CLASS(klass); parent_class = GNT_BOX_CLASS(klass); - org_keypress = wid_class->key_pressed; - wid_class->key_pressed = gnt_window_key_pressed; - org_destroy = wid_class->destroy; wid_class->destroy = gnt_window_destroy; + gnt_bindable_class_register_action(bindable, "show-menu", show_menu, + GNT_KEY_CTRL_O, NULL); + gnt_style_read_actions(G_OBJECT_CLASS_TYPE(klass), bindable); + GNTDEBUG; } Modified: trunk/doc/gaim-text.1.in =================================================================== --- trunk/doc/gaim-text.1.in 2006-11-16 00:27:30 UTC (rev 17756) +++ trunk/doc/gaim-text.1.in 2006-11-16 03:17:27 UTC (rev 17757) @@ -261,7 +261,12 @@ # The following will let you open the context-menu in the buddylist with c-b .br c-b = context-menu +.br +[GntWindow::binding] +.br +c-o = show-menu + The \fBc-\fR corresponds to the \fBControl\fR key. You can also use \fBctrl-\fR or \fBctr-\fR or \fBctl-\fR to indicate a combination. For alt-keys, you can use one of \fBa-\fR, \fBalt-\fR, \fBm-\fR or \fBmeta-\fR. You can also use This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-11-16 00:27:31
|
Revision: 17756 http://svn.sourceforge.net/gaim/?rev=17756&view=rev Author: sadrul Date: 2006-11-15 16:27:30 -0800 (Wed, 15 Nov 2006) Log Message: ----------- Make it easy to move buddies around. Press 't' in the buddylist to tag/untag buddies/contacts (more than one if necessary). Then select the target contact or group and press 'a' to attach the tagged nodes. This should also fix LSchiere's earlier crash, if the bug I thought I was seeing. Modified Paths: -------------- trunk/console/gntblist.c trunk/console/libgnt/gnttree.c Modified: trunk/console/gntblist.c =================================================================== --- trunk/console/gntblist.c 2006-11-15 20:39:32 UTC (rev 17755) +++ trunk/console/gntblist.c 2006-11-16 00:27:30 UTC (rev 17756) @@ -61,7 +61,7 @@ GntWidget *tooltip; GaimBlistNode *tnode; /* Who is the tooltip being displayed for? */ - GaimBuddy *tagged; + GList *tagged; /* A list of tagged blistnodes */ GntWidget *context; GaimBlistNode *cnode; @@ -108,6 +108,7 @@ static const char * get_display_name(GaimBlistNode *node); static void savedstatus_changed(GaimSavedStatus *now, GaimSavedStatus *old); static void blist_show(GaimBuddyList *list); +static void update_buddy_display(GaimBuddy *buddy, GGBlist *ggblist); /* Sort functions */ static int blist_node_compare_text(GaimBlistNode *n1, GaimBlistNode *n2); @@ -174,6 +175,8 @@ gnt_tree_remove(GNT_TREE(ggblist->tree), node); node->ui_data = NULL; + if (ggblist->tagged) + ggblist->tagged = g_list_remove(ggblist->tagged, node); if (GAIM_BLIST_NODE_IS_BUDDY(node)) { GaimContact *contact = (GaimContact*)node->parent; @@ -185,6 +188,8 @@ if ((!gaim_prefs_get_bool(PREF_ROOT "/showoffline") && !is_group_online(group)) || group->currentsize < 1) node_remove(list, node->parent); + for (node = node->child; node; node = node->next) + node->ui_data = NULL; } draw_tooltip(ggblist); @@ -998,23 +1003,52 @@ } static void -gg_blist_tag_buddy(GaimBlistNode *node) +gg_blist_toggle_tag_buddy(GaimBlistNode *node) { - ggblist->tagged = (GaimBuddy *)node; + GList *iter; + if (ggblist->tagged && (iter = g_list_find(ggblist->tagged, node)) != NULL) { + ggblist->tagged = g_list_delete_link(ggblist->tagged, iter); + } else { + ggblist->tagged = g_list_prepend(ggblist->tagged, node); + } + if (GAIM_BLIST_NODE_IS_CONTACT(node)) + node = (GaimBlistNode*)gaim_contact_get_priority_buddy((GaimContact*)node); + update_buddy_display((GaimBuddy*)node, ggblist); gaim_debug_info("blist", "Tagged buddy\n"); } static void -gg_blist_place_tagged(GaimBlistNode *node) +gg_blist_place_tagged(GaimBlistNode *target) { - if (GAIM_BLIST_NODE_IS_GROUP(node)) { - gaim_blist_add_buddy(ggblist->tagged, NULL, (GaimGroup *)node, NULL); - } else { - GaimContact *contact = (GaimContact *)node; - gaim_blist_add_buddy(ggblist->tagged, contact, - gaim_buddy_get_group(gaim_contact_get_priority_buddy(contact)), NULL); + GaimGroup *tg = NULL; + GaimContact *tc = NULL; + + if (GAIM_BLIST_NODE_IS_GROUP(target)) + tg = (GaimGroup*)target; + else + tc = (GaimContact*)target; + + if (ggblist->tagged) { + GList *list = ggblist->tagged; + ggblist->tagged = NULL; + + while (list) { + GaimBlistNode *node = list->data; + list = g_list_delete_link(list, list); + if (tg) { + if (GAIM_BLIST_NODE_IS_CONTACT(node)) + gaim_blist_add_contact((GaimContact*)node, tg, NULL); + else + gaim_blist_add_buddy((GaimBuddy*)node, NULL, tg, NULL); + } else { + if (GAIM_BLIST_NODE_IS_BUDDY(node)) + gaim_blist_add_buddy((GaimBuddy*)node, tc, + gaim_buddy_get_group(gaim_contact_get_priority_buddy(tc)), NULL); + else if (GAIM_BLIST_NODE_IS_CONTACT(node)) + gaim_blist_merge_contact((GaimContact*)node, target); + } + } } - ggblist->tagged = NULL; gaim_debug_info("blist", "Placed buddy\n"); } @@ -1074,14 +1108,17 @@ GAIM_CALLBACK(gg_blist_rename_node_cb), node); add_custom_action(GNT_MENU(context), _("Remove"), GAIM_CALLBACK(gg_blist_remove_node_cb), node); + if (ggblist->tagged && (GAIM_BLIST_NODE_IS_CONTACT(node) || GAIM_BLIST_NODE_IS_GROUP(node))) { add_custom_action(GNT_MENU(context), _("Place tagged"), GAIM_CALLBACK(gg_blist_place_tagged), node); - } else if (GAIM_BLIST_NODE_IS_BUDDY(node)) { - add_custom_action(GNT_MENU(context), _("Tag"), - GAIM_CALLBACK(gg_blist_tag_buddy), node); } + + if (GAIM_BLIST_NODE_IS_BUDDY(node) || GAIM_BLIST_NODE_IS_CONTACT(node)) { + add_custom_action(GNT_MENU(context), _("Toggle Tag"), + GAIM_CALLBACK(gg_blist_toggle_tag_buddy), node); + } } /* Set the position for the popup */ @@ -1285,7 +1322,7 @@ * top of that, if the selected buddy belongs to the disconnected * account, then retreiving the tooltip for that causes crash. So * let's make sure we wait for all the buddies to be removed first.*/ - int id = g_timeout_add(0, draw_tooltip_real, ggblist); + int id = g_timeout_add(0, (GSourceFunc)draw_tooltip_real, ggblist); g_object_set_data_full(G_OBJECT(ggblist->window), "draw_tooltip_calback", GINT_TO_POINTER(id), (GDestroyNotify)g_source_remove); } @@ -1306,48 +1343,50 @@ static gboolean key_pressed(GntWidget *widget, const char *text, GGBlist *ggblist) { - gboolean stop = FALSE, ret = FALSE; - if (text[0] == 27 && text[1] == 0) - { + if (text[0] == 27 && text[1] == 0) { /* Escape was pressed */ remove_peripherals(ggblist); - stop = TRUE; - ret = TRUE; - } - - if (strcmp(text, GNT_KEY_CTRL_O) == 0) - { + } else if (strcmp(text, GNT_KEY_CTRL_O) == 0) { gaim_prefs_set_bool(PREF_ROOT "/showoffline", !gaim_prefs_get_bool(PREF_ROOT "/showoffline")); - ret = TRUE; - stop = TRUE; - } + } else if (strcmp(text, "t") == 0) { + gg_blist_toggle_tag_buddy(gnt_tree_get_selection_data(GNT_TREE(ggblist->tree))); + } else if (strcmp(text, "a") == 0) { + gg_blist_place_tagged(gnt_tree_get_selection_data(GNT_TREE(ggblist->tree))); + } else + return FALSE; - if (stop) - g_signal_stop_emission_by_name(G_OBJECT(widget), "key_pressed"); - - return ret; + return TRUE; } static void update_buddy_display(GaimBuddy *buddy, GGBlist *ggblist) { GaimContact *contact; + GntTextFormatFlags bflag = 0, cflag = 0; contact = gaim_buddy_get_contact(buddy); + gaim_debug_fatal("sadrul", "updating display for %s\n", gaim_buddy_get_name(buddy)); + g_printerr("sadrul: updating display for %s\n", gaim_buddy_get_name(buddy)); + gnt_tree_change_text(GNT_TREE(ggblist->tree), buddy, 0, get_display_name((GaimBlistNode*)buddy)); gnt_tree_change_text(GNT_TREE(ggblist->tree), contact, 0, get_display_name((GaimBlistNode*)contact)); + if (ggblist->tagged && g_list_find(ggblist->tagged, buddy)) + bflag |= GNT_TEXT_FLAG_BOLD; + if (ggblist->tagged && g_list_find(ggblist->tagged, contact)) + cflag |= GNT_TEXT_FLAG_BOLD; + if (ggblist->tnode == (GaimBlistNode*)buddy) draw_tooltip(ggblist); if (gaim_presence_is_idle(gaim_buddy_get_presence(buddy))) { - gnt_tree_set_row_flags(GNT_TREE(ggblist->tree), buddy, GNT_TEXT_FLAG_DIM); - gnt_tree_set_row_flags(GNT_TREE(ggblist->tree), contact, GNT_TEXT_FLAG_DIM); + gnt_tree_set_row_flags(GNT_TREE(ggblist->tree), buddy, bflag | GNT_TEXT_FLAG_DIM); + gnt_tree_set_row_flags(GNT_TREE(ggblist->tree), contact, cflag | GNT_TEXT_FLAG_DIM); } else { - gnt_tree_set_row_flags(GNT_TREE(ggblist->tree), buddy, 0); - gnt_tree_set_row_flags(GNT_TREE(ggblist->tree), contact, 0); + gnt_tree_set_row_flags(GNT_TREE(ggblist->tree), buddy, bflag); + gnt_tree_set_row_flags(GNT_TREE(ggblist->tree), contact, cflag); } } Modified: trunk/console/libgnt/gnttree.c =================================================================== --- trunk/console/libgnt/gnttree.c 2006-11-15 20:39:32 UTC (rev 17755) +++ trunk/console/libgnt/gnttree.c 2006-11-16 00:27:30 UTC (rev 17756) @@ -1058,7 +1058,6 @@ return list; } -/* XXX: Should this also remove all the children of the row being removed? */ void gnt_tree_remove(GntTree *tree, gpointer key) { GntTreeRow *row = g_hash_table_lookup(tree->hash, key); @@ -1066,6 +1065,16 @@ { gboolean redraw = FALSE; + if (row->child) { + GntTreeRow *ch = row->child; + while (ch) { + GntTreeRow *n = ch->next; + tree->list = g_list_remove(tree->list, ch->key); + g_hash_table_remove(tree->hash, ch->key); + ch = n; + } + } + if (get_distance(tree->top, row) >= 0 && get_distance(row, tree->bottom) >= 0) redraw = TRUE; @@ -1146,7 +1155,7 @@ g_free(col->text); col->text = g_strdup(text); - if (get_distance(tree->top, row) >= 0 && get_distance(row, tree->bottom) > 0) + if (get_distance(tree->top, row) >= 0 && get_distance(row, tree->bottom) >= 0) redraw_tree(tree); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-11-15 20:39:54
|
Revision: 17755 http://svn.sourceforge.net/gaim/?rev=17755&view=rev Author: sadrul Date: 2006-11-15 12:39:32 -0800 (Wed, 15 Nov 2006) Log Message: ----------- Decide the values for ctrl-up/down at startup depending on $TERM. Modified Paths: -------------- trunk/console/libgnt/gntbindable.c trunk/console/libgnt/gntentry.c trunk/console/libgnt/gntkeys.c trunk/console/libgnt/gntkeys.h trunk/console/libgnt/gntmain.c Modified: trunk/console/libgnt/gntbindable.c =================================================================== --- trunk/console/libgnt/gntbindable.c 2006-11-15 20:11:01 UTC (rev 17754) +++ trunk/console/libgnt/gntbindable.c 2006-11-15 20:39:32 UTC (rev 17755) @@ -185,7 +185,7 @@ g_hash_table_replace(klass->actions, g_strdup(name), action); - if (trigger) { + if (trigger && *trigger) { list = NULL; va_start(args, trigger); while ((data = va_arg(args, void *))) { Modified: trunk/console/libgnt/gntentry.c =================================================================== --- trunk/console/libgnt/gntentry.c 2006-11-15 20:11:01 UTC (rev 17754) +++ trunk/console/libgnt/gntentry.c 2006-11-15 20:39:32 UTC (rev 17755) @@ -585,9 +585,9 @@ gnt_bindable_class_register_action(bindable, "suggest-prev", suggest_prev, GNT_KEY_UP, NULL); gnt_bindable_class_register_action(bindable, "history-prev", history_prev, - "\033" GNT_KEY_CTRL_DOWN, NULL); + GNT_KEY_CTRL_DOWN, NULL); gnt_bindable_class_register_action(bindable, "history-next", history_next, - "\033" GNT_KEY_CTRL_UP, NULL); + GNT_KEY_CTRL_UP, NULL); gnt_style_read_actions(G_OBJECT_CLASS_TYPE(klass), GNT_BINDABLE_CLASS(klass)); GNTDEBUG; Modified: trunk/console/libgnt/gntkeys.c =================================================================== --- trunk/console/libgnt/gntkeys.c 2006-11-15 20:11:01 UTC (rev 17754) +++ trunk/console/libgnt/gntkeys.c 2006-11-15 20:39:32 UTC (rev 17755) @@ -5,7 +5,7 @@ static const char *term; -void gnt_keys_refine(char *text) +void gnt_init_keys() { if (term == NULL) { term = getenv("TERM"); @@ -13,6 +13,21 @@ term = ""; /* Just in case */ } + if (strcmp(term, "xterm") == 0 || strcmp(term, "rxvt") == 0) { + gnt_key_cup = "\033" "[1;5A"; + gnt_key_cdown = "\033" "[1;5B"; + gnt_key_cright = "\033" "[1;5C"; + gnt_key_cleft = "\033" "[1;5D"; + } else if (strcmp(term, "screen") == 0 || strcmp(term, "rxvt-unicode") == 0) { + gnt_key_cup = "\033" "Oa"; + gnt_key_cdown = "\033" "Ob"; + gnt_key_cright = "\033" "Oc"; + gnt_key_cleft = "\033" "Od"; + } +} + +void gnt_keys_refine(char *text) +{ if (*text == 27 && *(text + 1) == '[' && *(text + 3) == '\0' && (*(text + 2) >= 'A' && *(text + 2) <= 'D')) { /* Apparently this is necessary for urxvt and screen and xterm */ Modified: trunk/console/libgnt/gntkeys.h =================================================================== --- trunk/console/libgnt/gntkeys.h 2006-11-15 20:11:01 UTC (rev 17754) +++ trunk/console/libgnt/gntkeys.h 2006-11-15 20:39:32 UTC (rev 17755) @@ -4,6 +4,16 @@ #include <curses.h> #include <term.h> +/** + * terminfo/termcap doesn't provide all the information that I want to use, eg. + * ctrl-up, ctrl-down etc. So I am going to hard-code some of the information + * for some popular $TERMs + */ +char *gnt_key_cup; +char *gnt_key_cdown; +char *gnt_key_cleft; +char *gnt_key_cright; + #define SAFE(x) ((x) ? (x) : "") #define GNT_KEY_POPUP SAFE(key_f16) /* Apparently */ @@ -14,10 +24,10 @@ #define GNT_KEY_UP SAFE(key_up) #define GNT_KEY_DOWN SAFE(key_down) -#define GNT_KEY_CTRL_UP "[1;5A" -#define GNT_KEY_CTRL_DOWN "[1;5B" -#define GNT_KEY_CTRL_RIGHT "[1;5C" -#define GNT_KEY_CTRL_LEFT "[1;5D" +#define GNT_KEY_CTRL_UP SAFE(gnt_key_cup) +#define GNT_KEY_CTRL_DOWN SAFE(gnt_key_cdown) +#define GNT_KEY_CTRL_RIGHT SAFE(gnt_key_cright) +#define GNT_KEY_CTRL_LEFT SAFE(gnt_key_cleft) #define GNT_KEY_PGUP SAFE(key_ppage) #define GNT_KEY_PGDOWN SAFE(key_npage) @@ -69,6 +79,7 @@ /** * This will do stuff with the terminal settings and stuff. */ +void gnt_init_keys(); void gnt_keys_refine(char *text); Modified: trunk/console/libgnt/gntmain.c =================================================================== --- trunk/console/libgnt/gntmain.c 2006-11-15 20:11:01 UTC (rev 17754) +++ trunk/console/libgnt/gntmain.c 2006-11-15 20:39:32 UTC (rev 17755) @@ -324,6 +324,7 @@ g_free(filename); gnt_init_colors(); + gnt_init_keys(); wbkgdset(stdscr, '\0' | COLOR_PAIR(GNT_COLOR_NORMAL)); refresh(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-11-15 20:11:08
|
Revision: 17754 http://svn.sourceforge.net/gaim/?rev=17754&view=rev Author: sadrul Date: 2006-11-15 12:11:01 -0800 (Wed, 15 Nov 2006) Log Message: ----------- *cough* Modified Paths: -------------- trunk/console/libgnt/gntkeys.c Modified: trunk/console/libgnt/gntkeys.c =================================================================== --- trunk/console/libgnt/gntkeys.c 2006-11-15 19:52:37 UTC (rev 17753) +++ trunk/console/libgnt/gntkeys.c 2006-11-15 20:11:01 UTC (rev 17754) @@ -14,7 +14,7 @@ } if (*text == 27 && *(text + 1) == '[' && *(text + 3) == '\0' && - (*(text + 2) >= 'A' || *(text + 2) <= 'D')) { + (*(text + 2) >= 'A' && *(text + 2) <= 'D')) { /* Apparently this is necessary for urxvt and screen and xterm */ if (strcmp(term, "screen") == 0 || strcmp(term, "rxvt-unicode") == 0 || strcmp(term, "xterm") == 0) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-11-15 19:52:38
|
Revision: 17753 http://svn.sourceforge.net/gaim/?rev=17753&view=rev Author: sadrul Date: 2006-11-15 11:52:37 -0800 (Wed, 15 Nov 2006) Log Message: ----------- Patch #1595831 (fix for bug 1595828 - chat_invite has reversed params) from Ryan Barrett. Modified Paths: -------------- trunk/COPYRIGHT trunk/libgaim/prpl.h Modified: trunk/COPYRIGHT =================================================================== --- trunk/COPYRIGHT 2006-11-15 19:38:49 UTC (rev 17752) +++ trunk/COPYRIGHT 2006-11-15 19:52:37 UTC (rev 17753) @@ -16,6 +16,7 @@ Chris Banal Luca Barbato Levi Bard +Ryan Barrett Kevin Barry Derek Battams Martin Bayard Modified: trunk/libgaim/prpl.h =================================================================== --- trunk/libgaim/prpl.h 2006-11-15 19:38:49 UTC (rev 17752) +++ trunk/libgaim/prpl.h 2006-11-15 19:52:37 UTC (rev 17753) @@ -244,7 +244,7 @@ void (*reject_chat)(GaimConnection *, GHashTable *components); char *(*get_chat_name)(GHashTable *components); void (*chat_invite)(GaimConnection *, int id, - const char *who, const char *message); + const char *message, const char *who); void (*chat_leave)(GaimConnection *, int id); void (*chat_whisper)(GaimConnection *, int id, const char *who, const char *message); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-11-15 19:38:55
|
Revision: 17752 http://svn.sourceforge.net/gaim/?rev=17752&view=rev Author: sadrul Date: 2006-11-15 11:38:49 -0800 (Wed, 15 Nov 2006) Log Message: ----------- Warmenhoved patch #1594991 (make del_prev_word work more like in emacs) from Trevor Caira. Modified Paths: -------------- trunk/COPYRIGHT trunk/console/libgnt/gntentry.c Modified: trunk/COPYRIGHT =================================================================== --- trunk/COPYRIGHT 2006-11-15 19:12:09 UTC (rev 17751) +++ trunk/COPYRIGHT 2006-11-15 19:38:49 UTC (rev 17752) @@ -43,6 +43,7 @@ Philip Brown Sean Burke Thomas Butter +Trevor Caira Andrea Canciani Damien Carbery Michael Carlson Modified: trunk/console/libgnt/gntentry.c =================================================================== --- trunk/console/libgnt/gntentry.c 2006-11-15 19:12:09 UTC (rev 17751) +++ trunk/console/libgnt/gntentry.c 2006-11-15 19:38:49 UTC (rev 17752) @@ -338,6 +338,8 @@ begin_word(const char *text, const char *begin) { char ch; + while (text > begin && (isspace(*text) || !*text)) + text--; ch = *text; #define SAME(a,b) ((isalpha(a) && isalpha(b)) || (isdigit(a) && isdigit(b)) || (isspace(a) && isspace(b))) while (--text >= begin) { @@ -563,7 +565,7 @@ gnt_bindable_class_register_action(bindable, "delete-end", del_to_end, GNT_KEY_CTRL_K, NULL); gnt_bindable_class_register_action(bindable, "delete-prev-word", del_prev_word, - NULL, NULL); + GNT_KEY_CTRL_W, NULL); #if 0 gnt_bindable_class_register_action(bindable, "delete-next-word", del_next_word, NULL, 1, NULL); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-11-15 19:12:12
|
Revision: 17751 http://svn.sourceforge.net/gaim/?rev=17751&view=rev Author: sadrul Date: 2006-11-15 11:12:09 -0800 (Wed, 15 Nov 2006) Log Message: ----------- Update the manual for the rebindable wm-actions. Modified Paths: -------------- trunk/doc/gaim-text.1.in Modified: trunk/doc/gaim-text.1.in =================================================================== --- trunk/doc/gaim-text.1.in 2006-11-15 07:18:16 UTC (rev 17750) +++ trunk/doc/gaim-text.1.in 2006-11-15 19:12:09 UTC (rev 17751) @@ -258,6 +258,9 @@ .br pagedown = page-down .br +# The following will let you open the context-menu in the buddylist with c-b +.br +c-b = context-menu The \fBc-\fR corresponds to the \fBControl\fR key. You can also use \fBctrl-\fR or \fBctr-\fR or \fBctl-\fR to indicate a combination. For alt-keys, you can use @@ -267,7 +270,7 @@ .SH Mouse Support There is experimental mouse support. You can focus windows, activate buttons, select rows in a list, scroll using the wheel-scroll etc. Mouse support is -disabled by default, so you need to enable it in ~/.gntrc (see the sample +disabled by default, so you need to enable it in \fI~/.gntrc\fR (see the sample above). .SH Window Management @@ -278,9 +281,48 @@ the screen, instead of at the upper-left corder. It is provided as a sample simple manager, but it should be possible to write more complex managers, and it's very possible that the window-manager API will need to be enhanced. Look at -the sample ~/.gntrc file above to see how to select a window-manager. +the sample \fI~/.gntrc\fR file above to see how to select a window-manager. +It is also possible to rebind the window-manager actions in \fI~/.gntrc\fR, eg: +.br +[GntWM::binding] +.br +a-n = window-next +.br +a-p = window-prev +.br +a-c = window-close +.br +a-w = window-list +.br +a-d = dump-screen +.br +a-, = shift-left +.br +a-. = shift-right +.br +a-a = action-list +.br +a-m = start-move +.br +a-r = start-resize +.br +a-q = wm-quit +.br +a-l = refresh-screen +.br +# The following action is still incomplete, and doesn't have a default binding +.br +# switch-window-n +.br + +# For the sample custom window manager +.br +[GntS::binding] +.br +c-t = toggle-buddylist + .SH Conversation Commands There are a few helpful commands in addition to the regular commands. You can use these from any conversation to access other windows. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-11-15 07:18:18
|
Revision: 17750 http://svn.sourceforge.net/gaim/?rev=17750&view=rev Author: sadrul Date: 2006-11-14 23:18:16 -0800 (Tue, 14 Nov 2006) Log Message: ----------- Fix bug #1596631: keybinding not working with xterm Modified Paths: -------------- trunk/console/libgnt/gntkeys.c Modified: trunk/console/libgnt/gntkeys.c =================================================================== --- trunk/console/libgnt/gntkeys.c 2006-11-15 06:00:51 UTC (rev 17749) +++ trunk/console/libgnt/gntkeys.c 2006-11-15 07:18:16 UTC (rev 17750) @@ -3,17 +3,27 @@ #include <stdlib.h> #include <string.h> -const char *term; +static const char *term; void gnt_keys_refine(char *text) { + if (term == NULL) { + term = getenv("TERM"); + if (!term) + term = ""; /* Just in case */ + } + if (*text == 27 && *(text + 1) == '[' && *(text + 3) == '\0' && (*(text + 2) >= 'A' || *(text + 2) <= 'D')) { - if (term == NULL) - term = getenv("TERM"); - /* Apparently this is necessary for urxvt and screen */ - if (strcmp(term, "screen") == 0 || strcmp(term, "rxvt-unicode") == 0) + /* Apparently this is necessary for urxvt and screen and xterm */ + if (strcmp(term, "screen") == 0 || strcmp(term, "rxvt-unicode") == 0 || + strcmp(term, "xterm") == 0) *(text + 1) = 'O'; + } else if (*(unsigned char*)text == 195) { + if (*(text + 2) == 0 && strcmp(term, "xterm") == 0) { + *(text) = 27; + *(text + 1) -= 64; /* Say wha? */ + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dat...@us...> - 2006-11-15 06:00:52
|
Revision: 17749 http://svn.sourceforge.net/gaim/?rev=17749&view=rev Author: datallah Date: 2006-11-14 22:00:51 -0800 (Tue, 14 Nov 2006) Log Message: ----------- Re-read Windows proxy information when it has changed. Modified Paths: -------------- trunk/gtk/win32/win_gaim.c trunk/libgaim/proxy.c trunk/libgaim/win32/win32dep.c trunk/libgaim/win32/win32dep.h Property Changed: ---------------- trunk/libgaim/protocols/oscar/ Modified: trunk/gtk/win32/win_gaim.c =================================================================== --- trunk/gtk/win32/win_gaim.c 2006-11-14 16:32:40 UTC (rev 17748) +++ trunk/gtk/win32/win_gaim.c 2006-11-15 06:00:51 UTC (rev 17749) @@ -35,8 +35,6 @@ #include <string.h> #include <stdio.h> -#define WIN32_PROXY_REGKEY "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings" - /* These will hopefully be in the win32api next time it is updated - at which point, we'll remove them */ #ifndef LANG_PERSIAN #define LANG_PERSIAN 0x29 @@ -460,49 +458,7 @@ return TRUE; } -static void wgaim_set_proxy() { - DWORD regval = 1; - DWORD reglen = sizeof(DWORD); - /* If the proxy server environment variables are already set, - * we shouldn't override them */ - if (getenv("HTTP_PROXY") || getenv("http_proxy") || getenv("HTTPPROXY")) - return; - - if (read_reg_string(HKEY_CURRENT_USER, WIN32_PROXY_REGKEY, - "ProxyEnable", - (LPBYTE) ®val, ®len) && (regval & 1)) { - char proxy_server[2048]; - char *c = NULL; - reglen = sizeof(proxy_server); - - if (!read_reg_string(HKEY_CURRENT_USER, WIN32_PROXY_REGKEY, - "ProxyServer", (LPBYTE) &proxy_server, ®len)) - return; - - if ((reglen > strlen("http=")) - && (c = strstr(proxy_server, "http="))) { - char *d; - c += strlen("http="); - d = strchr(c, ';'); - if (d) { - *d = '\0'; - } - /* c now points the proxy server (and port) */ - } - - if (c) { - const char envstr_prefix[] = "HTTP_PROXY=http://"; - char envstr[sizeof(envstr_prefix) + strlen(c) + 1]; - snprintf(envstr, sizeof(envstr), "%s%s", - envstr_prefix, c); - printf("Setting HTTP Proxy: %s\n", envstr); - putenv(envstr); - } - } - -} - #ifdef __GNUC__ # ifndef _stdcall # define _stdcall __attribute__((stdcall)) @@ -572,8 +528,6 @@ if (!getenv("GAIM_MULTI_INST") && !wgaim_set_running()) return 0; - wgaim_set_proxy(); - /* Now we are ready for Gaim .. */ if ((hmod = LoadLibrary("gtkgaim.dll"))) { gaim_main = (LPFNGAIMMAIN) GetProcAddress(hmod, "gaim_main"); Property changes on: trunk/libgaim/protocols/oscar ___________________________________________________________________ Name: svn:ignore - Makefile.in Makefile .deps .libs liboscar.* *.lo *.o + Makefile.in Makefile .deps .libs *.lo *.o *.dll *.dll.a Modified: trunk/libgaim/proxy.c =================================================================== --- trunk/libgaim/proxy.c 2006-11-14 16:32:40 UTC (rev 17748) +++ trunk/libgaim/proxy.c 2006-11-15 06:00:51 UTC (rev 17749) @@ -1688,6 +1688,13 @@ GaimProxyInfo *gpi; const gchar *tmp; + /* This is used as a fallback so we don't overwrite the selected proxy type */ + static GaimProxyInfo *tmp_none_proxy_info = NULL; + if (!tmp_none_proxy_info) { + tmp_none_proxy_info = gaim_proxy_info_new(); + gaim_proxy_info_set_type(tmp_none_proxy_info, GAIM_PROXY_NONE); + } + if (account && gaim_account_get_proxy_info(account) != NULL) gpi = gaim_account_get_proxy_info(account); else if (gaim_running_gnome()) @@ -1696,41 +1703,41 @@ gpi = gaim_global_proxy_get_info(); if (gaim_proxy_info_get_type(gpi) == GAIM_PROXY_USE_ENVVAR) { +#ifdef _WIN32 + wgaim_check_for_proxy_changes(); +#endif if ((tmp = g_getenv("HTTP_PROXY")) != NULL || (tmp = g_getenv("http_proxy")) != NULL || (tmp = g_getenv("HTTPPROXY")) != NULL) { - char *proxyhost,*proxypath,*proxyuser,*proxypasswd; + char *proxyhost, *proxyuser, *proxypasswd; int proxyport; /* http_proxy-format: * export http_proxy="http://user:pa...@yo...rver:port/" */ - if(gaim_url_parse(tmp, &proxyhost, &proxyport, &proxypath, &proxyuser, &proxypasswd)) { + if(gaim_url_parse(tmp, &proxyhost, &proxyport, NULL, &proxyuser, &proxypasswd)) { gaim_proxy_info_set_host(gpi, proxyhost); g_free(proxyhost); - g_free(proxypath); - if (proxyuser != NULL) { - gaim_proxy_info_set_username(gpi, proxyuser); - g_free(proxyuser); - } - if (proxypasswd != NULL) { - gaim_proxy_info_set_password(gpi, proxypasswd); - g_free(proxypasswd); - } + gaim_proxy_info_set_username(gpi, proxyuser); + g_free(proxyuser); + + gaim_proxy_info_set_password(gpi, proxypasswd); + g_free(proxypasswd); + /* only for backward compatibility */ if (proxyport == 80 && ((tmp = g_getenv("HTTP_PROXY_PORT")) != NULL || (tmp = g_getenv("http_proxy_port")) != NULL || (tmp = g_getenv("HTTPPROXYPORT")) != NULL)) - proxyport = atoi(tmp); + proxyport = atoi(tmp); gaim_proxy_info_set_port(gpi, proxyport); } } else { /* no proxy environment variable found, don't use a proxy */ gaim_debug_info("proxy", "No environment settings found, not using a proxy\n"); - gaim_proxy_info_set_type(gpi, GAIM_PROXY_NONE); + gpi = tmp_none_proxy_info; } /* XXX: Do we want to skip this step if user/password were part of url? */ Modified: trunk/libgaim/win32/win32dep.c =================================================================== --- trunk/libgaim/win32/win32dep.c 2006-11-14 16:32:40 UTC (rev 17748) +++ trunk/libgaim/win32/win32dep.c 2006-11-15 06:00:51 UTC (rev 17749) @@ -44,6 +44,8 @@ */ #define _(x) gettext(x) +#define WIN32_PROXY_REGKEY "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings" + /* For shfolder.dll */ typedef HRESULT (CALLBACK* LPFNSHGETFOLDERPATHA)(HWND, int, HANDLE, DWORD, LPSTR); typedef HRESULT (CALLBACK* LPFNSHGETFOLDERPATHW)(HWND, int, HANDLE, DWORD, LPWSTR); @@ -56,6 +58,9 @@ static HINSTANCE libgaimdll_hInstance = 0; +static HANDLE proxy_change_event = NULL; +static HKEY proxy_regkey = NULL; + /* * PUBLIC CODE */ @@ -319,77 +324,198 @@ return success; } +static HKEY _reg_open_key(HKEY rootkey, const char *subkey, REGSAM access) { + HKEY reg_key = NULL; + LONG rv; + + if(G_WIN32_HAVE_WIDECHAR_API()) { + wchar_t *wc_subkey = g_utf8_to_utf16(subkey, -1, NULL, + NULL, NULL); + rv = RegOpenKeyExW(rootkey, wc_subkey, 0, access, ®_key); + g_free(wc_subkey); + } else { + char *cp_subkey = g_locale_from_utf8(subkey, -1, NULL, + NULL, NULL); + rv = RegOpenKeyExA(rootkey, cp_subkey, 0, access, ®_key); + g_free(cp_subkey); + } + + if (rv != ERROR_SUCCESS) { + char *errmsg = g_win32_error_message(rv); + gaim_debug_info("wgaim", "Could not open reg key '%s' subkey '%s'.\nMessage: (%ld) %s\n", + ((rootkey == HKEY_LOCAL_MACHINE) ? "HKLM" : + (rootkey == HKEY_CURRENT_USER) ? "HKCU" : + (rootkey == HKEY_CLASSES_ROOT) ? "HKCR" : "???"), + subkey, rv, errmsg); + g_free(errmsg); + } + + return reg_key; +} + +static gboolean _reg_read(HKEY reg_key, const char *valname, LPDWORD type, LPBYTE data, LPDWORD data_len) { + LONG rv; + + if(G_WIN32_HAVE_WIDECHAR_API()) { + wchar_t *wc_valname = NULL; + if (valname) + wc_valname = g_utf8_to_utf16(valname, -1, NULL, NULL, NULL); + rv = RegQueryValueExW(reg_key, wc_valname, 0, type, data, data_len); + g_free(wc_valname); + } else { + char *cp_valname = NULL; + if(valname) + cp_valname = g_locale_from_utf8(valname, -1, NULL, NULL, NULL); + rv = RegQueryValueExA(reg_key, cp_valname, 0, type, data, data_len); + g_free(cp_valname); + } + + if (rv != ERROR_SUCCESS) { + char *errmsg = g_win32_error_message(rv); + gaim_debug_info("wgaim", "Could not read from reg key value '%s'.\nMessage: (%ld) %s\n", + valname, rv, errmsg); + g_free(errmsg); + } + + return (rv == ERROR_SUCCESS); +} + +gboolean wgaim_read_reg_dword(HKEY rootkey, const char *subkey, const char *valname, LPDWORD result) { + + DWORD type; + DWORD nbytes; + HKEY reg_key = _reg_open_key(rootkey, subkey, KEY_QUERY_VALUE); + gboolean success = FALSE; + + if(reg_key) { + if(_reg_read(reg_key, valname, &type, (LPBYTE)result, &nbytes)) + success = TRUE; + RegCloseKey(reg_key); + } + + return success; +} + char *wgaim_read_reg_string(HKEY rootkey, const char *subkey, const char *valname) { DWORD type; DWORD nbytes; - HKEY reg_key; + HKEY reg_key = _reg_open_key(rootkey, subkey, KEY_QUERY_VALUE); char *result = NULL; - if(G_WIN32_HAVE_WIDECHAR_API()) { - wchar_t *wc_subkey = g_utf8_to_utf16(subkey, -1, NULL, - NULL, NULL); + if(reg_key) { + if(_reg_read(reg_key, valname, &type, NULL, &nbytes) && type == REG_SZ) { + LPBYTE data; + if(G_WIN32_HAVE_WIDECHAR_API()) + data = (LPBYTE) g_new(wchar_t, ((nbytes + 1) / sizeof(wchar_t)) + 1); + else + data = (LPBYTE) g_malloc(nbytes + 1); - if(RegOpenKeyExW(rootkey, wc_subkey, 0, - KEY_QUERY_VALUE, ®_key) == ERROR_SUCCESS) { - wchar_t *wc_valname = NULL; - if (valname) - wc_valname = g_utf8_to_utf16(valname, -1, - NULL, NULL, NULL); - - if(RegQueryValueExW(reg_key, wc_valname, 0, &type, - NULL, &nbytes) == ERROR_SUCCESS - && type == REG_SZ) { - wchar_t *wc_temp = - g_new(wchar_t, ((nbytes + 1) / sizeof(wchar_t)) + 1); - - if(RegQueryValueExW(reg_key, wc_valname, 0, - &type, (LPBYTE) wc_temp, - &nbytes) == ERROR_SUCCESS) { + if(_reg_read(reg_key, valname, &type, data, &nbytes)) { + if(G_WIN32_HAVE_WIDECHAR_API()) { + wchar_t *wc_temp = (wchar_t*) data; wc_temp[nbytes / sizeof(wchar_t)] = '\0'; result = g_utf16_to_utf8(wc_temp, -1, NULL, NULL, NULL); - } - g_free(wc_temp); - } - g_free(wc_valname); - } - g_free(wc_subkey); - } else { - char *cp_subkey = g_locale_from_utf8(subkey, -1, NULL, - NULL, NULL); - if(RegOpenKeyExA(rootkey, cp_subkey, 0, - KEY_QUERY_VALUE, ®_key) == ERROR_SUCCESS) { - char *cp_valname = NULL; - if(valname) - cp_valname = g_locale_from_utf8(valname, -1, - NULL, NULL, NULL); - - if(RegQueryValueExA(reg_key, cp_valname, 0, &type, - NULL, &nbytes) == ERROR_SUCCESS - && type == REG_SZ) { - char *cp_temp = g_malloc(nbytes + 1); - - if(RegQueryValueExA(reg_key, cp_valname, 0, - &type, cp_temp, - &nbytes) == ERROR_SUCCESS) { + } else { + char *cp_temp = (char*) data; cp_temp[nbytes] = '\0'; result = g_locale_to_utf8(cp_temp, -1, NULL, NULL, NULL); } - g_free (cp_temp); } - g_free(cp_valname); + g_free(data); } - g_free(cp_subkey); + RegCloseKey(reg_key); } - if(reg_key != NULL) - RegCloseKey(reg_key); - return result; } +static void wgaim_refresh_proxy(void) { + gboolean set_proxy = FALSE; + DWORD enabled = 0; + + wgaim_read_reg_dword(HKEY_CURRENT_USER, WIN32_PROXY_REGKEY, + "ProxyEnable", &enabled); + + if (enabled & 1) { + char *c = NULL; + char *tmp = wgaim_read_reg_string(HKEY_CURRENT_USER, WIN32_PROXY_REGKEY, + "ProxyServer"); + + /* There are proxy settings for several protocols */ + if (tmp && (c = g_strstr_len(tmp, strlen(tmp), "http="))) { + char *d; + c += strlen("http="); + d = strchr(c, ';'); + if (d) + *d = '\0'; + /* c now points the proxy server (and port) */ + + /* There is only a global proxy */ + } else if (tmp && strlen(tmp) > 0 && !strchr(tmp, ';')) { + c = tmp; + } + + if (c) { + gaim_debug_info("wgaim", "Setting HTTP Proxy: 'http://%s'\n", c); + g_setenv("HTTP_PROXY", c, TRUE); + set_proxy = TRUE; + } + g_free(tmp); + } + + /* If there previously was a proxy set and there isn't one now, clear it */ + if (getenv("HTTP_PROXY") && !set_proxy) { + gaim_debug_info("wgaim", "Clearing HTTP Proxy\n"); + g_unsetenv("HTTP_PROXY"); + } +} + +static void watch_for_proxy_changes(void) { + LONG rv; + DWORD filter = REG_NOTIFY_CHANGE_NAME | + REG_NOTIFY_CHANGE_LAST_SET; + + if (!proxy_regkey && + !(proxy_regkey = _reg_open_key(HKEY_CURRENT_USER, + WIN32_PROXY_REGKEY, KEY_NOTIFY))) { + return; + } + + if (!(proxy_change_event = CreateEvent(NULL, TRUE, FALSE, NULL))) { + char *errmsg = g_win32_error_message(GetLastError()); + gaim_debug_error("wgaim", "Unable to watch for proxy changes: %s\n", errmsg); + g_free(errmsg); + return; + } + + rv = RegNotifyChangeKeyValue(proxy_regkey, TRUE, filter, proxy_change_event, TRUE); + if (rv != ERROR_SUCCESS) { + char *errmsg = g_win32_error_message(rv); + gaim_debug_error("wgaim", "Unable to watch for proxy changes: %s\n", errmsg); + g_free(errmsg); + CloseHandle(proxy_change_event); + proxy_change_event = NULL; + } + +} + +gboolean wgaim_check_for_proxy_changes(void) { + gboolean changed = FALSE; + + if (proxy_change_event && WaitForSingleObject(proxy_change_event, 0) == WAIT_OBJECT_0) { + CloseHandle(proxy_change_event); + proxy_change_event = NULL; + changed = TRUE; + wgaim_refresh_proxy(); + watch_for_proxy_changes(); + } + + return changed; +} + void wgaim_init(void) { WORD wVersionRequested; WSADATA wsaData; @@ -430,6 +556,15 @@ if (!g_thread_supported()) g_thread_init(NULL); + /* If the proxy server environment variables are already set, + * we shouldn't override them */ + if (!getenv("HTTP_PROXY") && !getenv("http_proxy") && !getenv("HTTPPROXY")) { + wgaim_refresh_proxy(); + watch_for_proxy_changes(); + } else { + gaim_debug_info("wgaim", "HTTP_PROXY env. var already set. Ignoring win32 Internet Settings.\n"); + } + gaim_debug_info("wgaim", "wgaim_init end\n"); } @@ -444,6 +579,11 @@ g_free(app_data_dir); app_data_dir = NULL; + if (proxy_regkey) { + RegCloseKey(proxy_regkey); + proxy_regkey = NULL; + } + libgaimdll_hInstance = NULL; } Modified: trunk/libgaim/win32/win32dep.h =================================================================== --- trunk/libgaim/win32/win32dep.h 2006-11-14 16:32:40 UTC (rev 17748) +++ trunk/libgaim/win32/win32dep.h 2006-11-15 06:00:51 UTC (rev 17749) @@ -41,6 +41,8 @@ gboolean wgaim_write_reg_string(HKEY rootkey, const char *subkey, const char *valname, const char *value); char *wgaim_escape_dirsep(const char *filename); /* needs to be g_free'd */ GIOChannel *wgaim_g_io_channel_win32_new_socket(int socket); /* Until we get the post-2.8 glib win32 giochannel implementation working, use the thread-based one */ +/** Check for changes to the system proxy settings and update the HTTP_PROXY env. var. if there have been changes */ +gboolean wgaim_check_for_proxy_changes(void); /* Determine Gaim paths */ char *wgaim_get_special_folder(int folder_type); /* needs to be g_free'd */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dat...@us...> - 2006-11-14 16:32:50
|
Revision: 17748 http://svn.sourceforge.net/gaim/?rev=17748&view=rev Author: datallah Date: 2006-11-14 08:32:40 -0800 (Tue, 14 Nov 2006) Log Message: ----------- Update wingaim build and installer for oscar changes. Modified Paths: -------------- trunk/gaim-installer.nsi trunk/libgaim/protocols/oscar/Makefile.mingw Modified: trunk/gaim-installer.nsi =================================================================== --- trunk/gaim-installer.nsi 2006-11-14 04:04:04 UTC (rev 17747) +++ trunk/gaim-installer.nsi 2006-11-14 16:32:40 UTC (rev 17748) @@ -663,13 +663,14 @@ Delete "$INSTDIR\plugins\history.dll" Delete "$INSTDIR\plugins\iconaway.dll" Delete "$INSTDIR\plugins\idle.dll" + Delete "$INSTDIR\plugins\libaim.dll" Delete "$INSTDIR\plugins\libgg.dll" + Delete "$INSTDIR\plugins\libicq.dll" Delete "$INSTDIR\plugins\libirc.dll" Delete "$INSTDIR\plugins\libjabber.dll" Delete "$INSTDIR\plugins\libmsn.dll" Delete "$INSTDIR\plugins\libnapster.dll" Delete "$INSTDIR\plugins\libnovell.dll" - Delete "$INSTDIR\plugins\liboscar.dll" Delete "$INSTDIR\plugins\libqq.dll" Delete "$INSTDIR\plugins\libsametime.dll" Delete "$INSTDIR\plugins\libsilc.dll" @@ -704,6 +705,7 @@ Delete "$INSTDIR\idletrack.dll" Delete "$INSTDIR\libgaim.dll" Delete "$INSTDIR\libgtkspell.dll" + Delete "$INSTDIR\liboscar.dll" Delete "$INSTDIR\libmeanwhile-1.dll" Delete "$INSTDIR\libxml2.dll" Delete "$INSTDIR\nspr4.dll" Modified: trunk/libgaim/protocols/oscar/Makefile.mingw =================================================================== --- trunk/libgaim/protocols/oscar/Makefile.mingw 2006-11-14 04:04:04 UTC (rev 17747) +++ trunk/libgaim/protocols/oscar/Makefile.mingw 2006-11-14 16:32:40 UTC (rev 17748) @@ -8,6 +8,8 @@ include $(GAIM_TOP)/libgaim/win32/global.mak TARGET = liboscar +AIM_TARGET = libaim +ICQ_TARGET = libicq TYPE = PLUGIN # Static or Plugin... @@ -32,7 +34,8 @@ -I$(GAIM_TOP) LIB_PATHS = -L$(GTK_TOP)/lib \ - -L$(GAIM_LIB_TOP) + -L$(GAIM_LIB_TOP) \ + -L. ## ## SOURCES, OBJECTS @@ -75,6 +78,12 @@ OBJECTS = $(C_SRC:%.c=%.o) +AIM_C_SRC = libaim.c +AIM_OBJECTS = $(AIM_C_SRC:%.c=%.o) + +ICQ_C_SRC = libicq.c +ICQ_OBJECTS = $(ICQ_C_SRC:%.c=%.o) + ## ## LIBRARIES ## @@ -91,21 +100,29 @@ ## .PHONY: all install clean -all: $(TARGET).dll +all: $(TARGET).dll $(AIM_TARGET).dll $(ICQ_TARGET).dll install: all $(DLL_INSTALL_DIR) - cp $(TARGET).dll $(DLL_INSTALL_DIR) + cp $(AIM_TARGET).dll $(ICQ_TARGET).dll $(DLL_INSTALL_DIR) + cp $(TARGET).dll $(GAIM_INSTALL_DIR) $(OBJECTS): $(GAIM_CONFIG_H) -$(TARGET).dll: $(GAIM_LIBGAIM_DLL).a $(OBJECTS) - $(CC) -shared $(OBJECTS) $(LIB_PATHS) $(LIBS) $(DLL_LD_FLAGS) -o $(TARGET).dll +$(TARGET).dll.a $(TARGET).dll: $(GAIM_LIBGAIM_DLL).a $(OBJECTS) + $(CC) -shared $(OBJECTS) $(LIB_PATHS) $(LIBS) $(DLL_LD_FLAGS) -Wl,--out-implib,$(TARGET).dll.a -o $(TARGET).dll +$(AIM_TARGET).dll: $(TARGET).dll.a $(AIM_OBJECTS) + $(CC) -shared $(AIM_OBJECTS) $(LIB_PATHS) $(LIBS) -loscar $(DLL_LD_FLAGS) -o $(AIM_TARGET).dll + +$(ICQ_TARGET).dll: $(TARGET).dll.a $(ICQ_OBJECTS) + $(CC) -shared $(ICQ_OBJECTS) $(LIB_PATHS) $(LIBS) -loscar $(DLL_LD_FLAGS) -o $(ICQ_TARGET).dll + ## ## CLEAN RULES ## clean: - rm -f $(OBJECTS) - rm -f $(TARGET).dll + rm -f $(OBJECTS) $(TARGET).dll $(TARGET).dll.a + rm -f $(AIM_OBJECTS) $(AIM_TARGET).dll + rm -f $(ICQ_OBJECTS) $(ICQ_TARGET).dll include $(GAIM_COMMON_TARGETS) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sea...@us...> - 2006-11-14 04:04:09
|
Revision: 17747 http://svn.sourceforge.net/gaim/?rev=17747&view=rev Author: seanegan Date: 2006-11-13 20:04:04 -0800 (Mon, 13 Nov 2006) Log Message: ----------- AIM and ICQ are now different prpls, linked against a liboscarcommon which contains the protocol implementation Modified Paths: -------------- trunk/libgaim/account.c trunk/libgaim/protocols/oscar/Makefile.am trunk/libgaim/protocols/oscar/oscar.c Added Paths: ----------- trunk/libgaim/protocols/oscar/libaim.c trunk/libgaim/protocols/oscar/libicq.c trunk/libgaim/protocols/oscar/oscarcommon.h Modified: trunk/libgaim/account.c =================================================================== --- trunk/libgaim/account.c 2006-11-13 20:10:29 UTC (rev 17746) +++ trunk/libgaim/account.c 2006-11-14 04:04:04 UTC (rev 17747) @@ -702,6 +702,19 @@ return NULL; } + + /* HACK BY SEANEGAN: special case prpl-oscar to either prpl-icq + * prpl-aim for users upgrading to 2.0.0. This can probably + * be removed after a while + */ + if (!strcmp(protocol_id, "prpl-oscar")) { + g_free(protocol_id); + if (isdigit(name[0])) + protocol_id = g_strdup("prpl-icq"); + else + protocol_id = g_strdup("prpl-aim"); + } + ret = gaim_account_new(name, protocol_id); g_free(name); g_free(protocol_id); Modified: trunk/libgaim/protocols/oscar/Makefile.am =================================================================== --- trunk/libgaim/protocols/oscar/Makefile.am 2006-11-13 20:10:29 UTC (rev 17746) +++ trunk/libgaim/protocols/oscar/Makefile.am 2006-11-14 04:04:04 UTC (rev 17747) @@ -46,22 +46,34 @@ AM_CFLAGS = $(st) -liboscar_la_LDFLAGS = -module -avoid-version - +libaim_la_LDFLAGS = -module -avoid-version +libicq_la_LDFLAGS = -module -avoid-version if STATIC_OSCAR st = -DGAIM_STATIC_PRPL -noinst_LIBRARIES = liboscar.a +noinst_LIBRARIES = liboscar.a libaim.a libicq.a liboscar_a_SOURCES = $(OSCARSOURCES) liboscar_a_CFLAGS = $(AM_CFLAGS) +libaim_a_CFLAGS = $(AM_CFLAGS) +libaim_a_SOURCES = libaim.c + +libicq_a_CFLAGS = $(AM_CFLAGS) +libicq_a_SOURCES = libicq.c + else st = -pkg_LTLIBRARIES = liboscar.la +pkg_LTLIBRARIES = liboscar.la libaim.la libicq.la liboscar_la_SOURCES = $(OSCARSOURCES) liboscar_la_LIBADD = $(GLIB_LIBS) +libaim_la_SOURCES = libaim.c +libaim_la_LIBADD = liboscar.la + +libicq_la_SOURCES = libicq.c +libicq_la_LIBADD = liboscar.la + endif AM_CPPFLAGS = \ Added: trunk/libgaim/protocols/oscar/libaim.c =================================================================== --- trunk/libgaim/protocols/oscar/libaim.c (rev 0) +++ trunk/libgaim/protocols/oscar/libaim.c 2006-11-14 04:04:04 UTC (rev 17747) @@ -0,0 +1,149 @@ +/* gaim + * + * Gaim is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +/* libaim is the AIM protocol plugin. It is linked against liboscarcommon, + * which contains all the shared implementation code with libicq + */ + +#include "oscarcommon.h" + +static GaimPluginProtocolInfo prpl_info = +{ + OPT_PROTO_MAIL_CHECK | OPT_PROTO_IM_IMAGE, + NULL, /* user_splits */ + NULL, /* protocol_options */ + {"gif,jpeg,bmp,ico", 48, 48, 50, 50, + GAIM_ICON_SCALE_SEND | GAIM_ICON_SCALE_DISPLAY}, /* icon_spec */ + oscar_list_icon_aim, /* list_icon */ + oscar_list_emblems, /* list_emblems */ + oscar_status_text, /* status_text */ + oscar_tooltip_text, /* tooltip_text */ + oscar_status_types, /* status_types */ + oscar_blist_node_menu, /* blist_node_menu */ + oscar_chat_info, /* chat_info */ + oscar_chat_info_defaults, /* chat_info_defaults */ + oscar_login, /* login */ + oscar_close, /* close */ + oscar_send_im, /* send_im */ + oscar_set_info, /* set_info */ + oscar_send_typing, /* send_typing */ + oscar_get_info, /* get_info */ + oscar_set_status, /* set_status */ + oscar_set_idle, /* set_idle */ + oscar_change_passwd, /* change_passwd */ + oscar_add_buddy, /* add_buddy */ + NULL, /* add_buddies */ + oscar_remove_buddy, /* remove_buddy */ + NULL, /* remove_buddies */ + oscar_add_permit, /* add_permit */ + oscar_add_deny, /* add_deny */ + oscar_rem_permit, /* rem_permit */ + oscar_rem_deny, /* rem_deny */ + oscar_set_permit_deny, /* set_permit_deny */ + oscar_join_chat, /* join_chat */ + NULL, /* reject_chat */ + oscar_get_chat_name, /* get_chat_name */ + oscar_chat_invite, /* chat_invite */ + oscar_chat_leave, /* chat_leave */ + NULL, /* chat_whisper */ + oscar_send_chat, /* chat_send */ + oscar_keepalive, /* keepalive */ + NULL, /* register_user */ + NULL, /* get_cb_info */ + NULL, /* get_cb_away */ + oscar_alias_buddy, /* alias_buddy */ + oscar_move_buddy, /* group_buddy */ + oscar_rename_group, /* rename_group */ + NULL, /* buddy_free */ + oscar_convo_closed, /* convo_closed */ + oscar_normalize, /* normalize */ + oscar_set_icon, /* set_buddy_icon */ + NULL, /* remove_group */ + NULL, /* get_cb_real_name */ + NULL, /* set_chat_topic */ + NULL, /* find_blist_chat */ + NULL, /* roomlist_get_list */ + NULL, /* roomlist_cancel */ + NULL, /* roomlist_expand_category */ + oscar_can_receive_file, /* can_receive_file */ + oscar_send_file, /* send_file */ + oscar_new_xfer, /* new_xfer */ + oscar_offline_message, /* offline_message */ + NULL, /* whiteboard_prpl_ops */ + NULL, /* send_raw */ +}; + +static GaimPluginInfo info = +{ + GAIM_PLUGIN_MAGIC, + GAIM_MAJOR_VERSION, + GAIM_MINOR_VERSION, + GAIM_PLUGIN_PROTOCOL, /**< type */ + NULL, /**< ui_requirement */ + 0, /**< flags */ + NULL, /**< dependencies */ + GAIM_PRIORITY_DEFAULT, /**< priority */ + + "prpl-aim", /**< id */ + "AIM", /**< name */ + VERSION, /**< version */ + /** summary */ + N_("AIM Protocol Plugin"), + /** description */ + N_("AIM Protocol Plugin"), + NULL, /**< author */ + GAIM_WEBSITE, /**< homepage */ + + NULL, /**< load */ + NULL, /**< unload */ + NULL, /**< destroy */ + + NULL, /**< ui_info */ + &prpl_info, /**< extra_info */ + NULL, + oscar_actions +}; + +static void +init_plugin(GaimPlugin *plugin) +{ + GaimAccountOption *option; + + option = gaim_account_option_string_new(_("Server"), "server", OSCAR_DEFAULT_LOGIN_SERVER); + prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); + + option = gaim_account_option_int_new(_("Port"), "port", OSCAR_DEFAULT_LOGIN_PORT); + prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); + + option = gaim_account_option_bool_new( + _("Always use AIM/ICQ proxy server for file transfers\n(slower, but does not reveal your IP address)"), "always_use_rv_proxy", + OSCAR_DEFAULT_ALWAYS_USE_RV_PROXY); + prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); + + /* Preferences */ + gaim_prefs_add_none("/plugins/prpl/oscar"); + gaim_prefs_add_bool("/plugins/prpl/oscar/recent_buddies", FALSE); + gaim_prefs_add_bool("/plugins/prpl/oscar/show_idle", FALSE); + gaim_prefs_remove("/plugins/prpl/oscar/always_use_rv_proxy"); +} + +GAIM_INIT_PLUGIN(oscar, init_plugin, info); Property changes on: trunk/libgaim/protocols/oscar/libaim.c ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + native Added: trunk/libgaim/protocols/oscar/libicq.c =================================================================== --- trunk/libgaim/protocols/oscar/libicq.c (rev 0) +++ trunk/libgaim/protocols/oscar/libicq.c 2006-11-14 04:04:04 UTC (rev 17747) @@ -0,0 +1,153 @@ +/* gaim + * + * Gaim is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +/* libicq is the ICQ protocol plugin. It is linked against liboscarcommon, + * which contains all the shared implementation code with libaim + */ + + +#include "oscarcommon.h" + +static GaimPluginProtocolInfo prpl_info = +{ + OPT_PROTO_MAIL_CHECK | OPT_PROTO_IM_IMAGE, + NULL, /* user_splits */ + NULL, /* protocol_options */ + {"gif,jpeg,bmp,ico", 48, 48, 50, 50, + GAIM_ICON_SCALE_SEND | GAIM_ICON_SCALE_DISPLAY}, /* icon_spec */ + oscar_list_icon_icq, /* list_icon */ + oscar_list_emblems, /* list_emblems */ + oscar_status_text, /* status_text */ + oscar_tooltip_text, /* tooltip_text */ + oscar_status_types, /* status_types */ + oscar_blist_node_menu, /* blist_node_menu */ + oscar_chat_info, /* chat_info */ + oscar_chat_info_defaults, /* chat_info_defaults */ + oscar_login, /* login */ + oscar_close, /* close */ + oscar_send_im, /* send_im */ + oscar_set_info, /* set_info */ + oscar_send_typing, /* send_typing */ + oscar_get_info, /* get_info */ + oscar_set_status, /* set_status */ + oscar_set_idle, /* set_idle */ + oscar_change_passwd, /* change_passwd */ + oscar_add_buddy, /* add_buddy */ + NULL, /* add_buddies */ + oscar_remove_buddy, /* remove_buddy */ + NULL, /* remove_buddies */ + oscar_add_permit, /* add_permit */ + oscar_add_deny, /* add_deny */ + oscar_rem_permit, /* rem_permit */ + oscar_rem_deny, /* rem_deny */ + oscar_set_permit_deny, /* set_permit_deny */ + oscar_join_chat, /* join_chat */ + NULL, /* reject_chat */ + oscar_get_chat_name, /* get_chat_name */ + oscar_chat_invite, /* chat_invite */ + oscar_chat_leave, /* chat_leave */ + NULL, /* chat_whisper */ + oscar_send_chat, /* chat_send */ + oscar_keepalive, /* keepalive */ + NULL, /* register_user */ + NULL, /* get_cb_info */ + NULL, /* get_cb_away */ + oscar_alias_buddy, /* alias_buddy */ + oscar_move_buddy, /* group_buddy */ + oscar_rename_group, /* rename_group */ + NULL, /* buddy_free */ + oscar_convo_closed, /* convo_closed */ + oscar_normalize, /* normalize */ + oscar_set_icon, /* set_buddy_icon */ + NULL, /* remove_group */ + NULL, /* get_cb_real_name */ + NULL, /* set_chat_topic */ + NULL, /* find_blist_chat */ + NULL, /* roomlist_get_list */ + NULL, /* roomlist_cancel */ + NULL, /* roomlist_expand_category */ + oscar_can_receive_file, /* can_receive_file */ + oscar_send_file, /* send_file */ + oscar_new_xfer, /* new_xfer */ + oscar_offline_message, /* offline_message */ + NULL, /* whiteboard_prpl_ops */ + NULL, /* send_raw */ +}; + +static GaimPluginInfo info = +{ + GAIM_PLUGIN_MAGIC, + GAIM_MAJOR_VERSION, + GAIM_MINOR_VERSION, + GAIM_PLUGIN_PROTOCOL, /**< type */ + NULL, /**< ui_requirement */ + 0, /**< flags */ + NULL, /**< dependencies */ + GAIM_PRIORITY_DEFAULT, /**< priority */ + + "prpl-icq", /**< id */ + "ICQ", /**< name */ + VERSION, /**< version */ + /** summary */ + N_("ICQ Protocol Plugin"), + /** description */ + N_("ICQ Protocol Plugin"), + NULL, /**< author */ + GAIM_WEBSITE, /**< homepage */ + + NULL, /**< load */ + NULL, /**< unload */ + NULL, /**< destroy */ + + NULL, /**< ui_info */ + &prpl_info, /**< extra_info */ + NULL, + oscar_actions +}; + +static void +init_plugin(GaimPlugin *plugin) +{ + GaimAccountOption *option; + + option = gaim_account_option_string_new(_("Server"), "server", OSCAR_DEFAULT_LOGIN_SERVER); + prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); + + option = gaim_account_option_int_new(_("Port"), "port", OSCAR_DEFAULT_LOGIN_PORT); + prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); + + option = gaim_account_option_string_new(_("Encoding"), "encoding", OSCAR_DEFAULT_CUSTOM_ENCODING); + prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); + + option = gaim_account_option_bool_new( + _("Always use ICQ proxy server for file transfers\n(slower, but does not reveal your IP address)"), "always_use_rv_proxy", + OSCAR_DEFAULT_ALWAYS_USE_RV_PROXY); + prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); + + /* Preferences */ + gaim_prefs_add_none("/plugins/prpl/oscar"); + gaim_prefs_add_bool("/plugins/prpl/oscar/recent_buddies", FALSE); + gaim_prefs_add_bool("/plugins/prpl/oscar/show_idle", FALSE); + gaim_prefs_remove("/plugins/prpl/oscar/always_use_rv_proxy"); +} + +GAIM_INIT_PLUGIN(oscar, init_plugin, info); Property changes on: trunk/libgaim/protocols/oscar/libicq.c ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + native Modified: trunk/libgaim/protocols/oscar/oscar.c =================================================================== --- trunk/libgaim/protocols/oscar/oscar.c 2006-11-13 20:10:29 UTC (rev 17746) +++ trunk/libgaim/protocols/oscar/oscar.c 2006-11-14 04:04:04 UTC (rev 17747) @@ -25,6 +25,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ + #include "internal.h" #include "account.h" @@ -44,6 +45,7 @@ #include "util.h" #include "version.h" +#include "oscarcommon.h" #include "oscar.h" #include "peer.h" @@ -202,7 +204,7 @@ static gboolean gaim_icon_timerfunc(gpointer data); static void recent_buddies_cb(const char *name, GaimPrefType type, gconstpointer value, gpointer data); -static void oscar_set_info(GaimConnection *gc, const char *info); +void oscar_set_info(GaimConnection *gc, const char *info); static void oscar_set_info_and_status(GaimAccount *account, gboolean setinfo, const char *rawinfo, gboolean setstatus, GaimStatus *status); static void oscar_set_extendedstatus(GaimConnection *gc); static gboolean gaim_ssi_rerequestdata(gpointer data); @@ -1117,7 +1119,7 @@ return 1; } -static void +void oscar_login(GaimAccount *account) { GaimConnection *gc; @@ -1225,7 +1227,7 @@ ck[0] = 0x5a; } -static void +void oscar_close(GaimConnection *gc) { OscarData *od; @@ -3930,7 +3932,7 @@ return 1; } -static void +void oscar_keepalive(GaimConnection *gc) { OscarData *od; @@ -3942,7 +3944,7 @@ flap_connection_send_keepalive(od, conn); } -static unsigned int +unsigned int oscar_send_typing(GaimConnection *gc, const char *name, GaimTypingState state) { OscarData *od; @@ -4060,7 +4062,7 @@ g_string_free(msg, TRUE); } -static int +int oscar_send_im(GaimConnection *gc, const char *name, const char *message, GaimMessageFlags imflags) { OscarData *od; @@ -4221,7 +4223,7 @@ * everyone, and can request ICQ info from ICQ users, and * AIM users can only request AIM info. */ -static void oscar_get_info(GaimConnection *gc, const char *name) { +void oscar_get_info(GaimConnection *gc, const char *name) { OscarData *od = (OscarData *)gc->proto_data; if (od->icq && aim_sn_is_icq(name)) @@ -4240,7 +4242,7 @@ } #endif -static void oscar_set_idle(GaimConnection *gc, int time) { +void oscar_set_idle(GaimConnection *gc, int time) { OscarData *od = (OscarData *)gc->proto_data; aim_srv_setidle(od, time); } @@ -4267,7 +4269,7 @@ return encoded; } -static void +void oscar_set_info(GaimConnection *gc, const char *rawinfo) { GaimAccount *account; @@ -4453,7 +4455,7 @@ oscar_set_extendedstatus(gc); } -static void +void oscar_set_status(GaimAccount *account, GaimStatus *status) { gaim_debug_info("oscar", "Set status to %s\n", gaim_status_get_name(status)); @@ -4473,14 +4475,14 @@ } #ifdef CRAZY_WARN -static void +void oscar_warn(GaimConnection *gc, const char *name, gboolean anonymous) { OscarData *od = (OscarData *)gc->proto_data; aim_im_warn(od, od->conn, name, anonymous ? AIM_WARN_ANON : 0); } #endif -static void +void oscar_add_buddy(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group) { OscarData *od = (OscarData *)gc->proto_data; @@ -4508,7 +4510,7 @@ aim_icq_getalias(od, buddy->name); } -static void oscar_remove_buddy(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group) { +void oscar_remove_buddy(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group) { OscarData *od = (OscarData *)gc->proto_data; if (od->ssi.received_data) { @@ -4518,7 +4520,7 @@ } } -static void oscar_move_buddy(GaimConnection *gc, const char *name, const char *old_group, const char *new_group) { +void oscar_move_buddy(GaimConnection *gc, const char *name, const char *old_group, const char *new_group) { OscarData *od = (OscarData *)gc->proto_data; if (od->ssi.received_data && strcmp(old_group, new_group)) { gaim_debug_info("oscar", @@ -4527,7 +4529,7 @@ } } -static void oscar_alias_buddy(GaimConnection *gc, const char *name, const char *alias) { +void oscar_alias_buddy(GaimConnection *gc, const char *name, const char *alias) { OscarData *od = (OscarData *)gc->proto_data; if (od->ssi.received_data) { char *gname = aim_ssi_itemlist_findparentname(od->ssi.local, name); @@ -4542,7 +4544,7 @@ /* * FYI, the OSCAR SSI code removes empty groups automatically. */ -static void oscar_rename_group(GaimConnection *gc, const char *old_name, GaimGroup *group, GList *moved_buddies) { +void oscar_rename_group(GaimConnection *gc, const char *old_name, GaimGroup *group, GList *moved_buddies) { OscarData *od = (OscarData *)gc->proto_data; if (od->ssi.received_data) { @@ -5131,7 +5133,7 @@ return 1; } -static GList *oscar_chat_info(GaimConnection *gc) { +GList *oscar_chat_info(GaimConnection *gc) { GList *m = NULL; struct proto_chat_entry *pce; @@ -5153,7 +5155,7 @@ return m; } -static GHashTable *oscar_chat_info_defaults(GaimConnection *gc, const char *chat_name) +GHashTable *oscar_chat_info_defaults(GaimConnection *gc, const char *chat_name) { GHashTable *defaults; @@ -5165,13 +5167,13 @@ return defaults; } -static char * +char * oscar_get_chat_name(GHashTable *data) { return g_strdup(g_hash_table_lookup(data, "room")); } -static void +void oscar_join_chat(GaimConnection *gc, GHashTable *data) { OscarData *od = (OscarData *)gc->proto_data; @@ -5203,7 +5205,7 @@ } } -static void +void oscar_chat_invite(GaimConnection *gc, int id, const char *message, const char *name) { OscarData *od = (OscarData *)gc->proto_data; @@ -5216,7 +5218,7 @@ ccon->exchange, ccon->name, 0x0); } -static void +void oscar_chat_leave(GaimConnection *gc, int id) { GaimConversation *conv; @@ -5232,7 +5234,7 @@ oscar_chat_kill(gc, cc); } -static int oscar_send_chat(GaimConnection *gc, int id, const char *message, GaimMessageFlags flags) { +int oscar_send_chat(GaimConnection *gc, int id, const char *message, GaimMessageFlags flags) { OscarData *od = (OscarData *)gc->proto_data; GaimConversation *conv = NULL; struct chat_connection *c = NULL; @@ -5278,10 +5280,25 @@ return 0; } -static const char *oscar_list_icon(GaimAccount *a, GaimBuddy *b) +const char *oscar_list_icon_icq(GaimAccount *a, GaimBuddy *b) { if ((b == NULL) || (b->name == NULL) || aim_sn_is_sms(b->name)) { + if (a == NULL || aim_sn_is_icq(gaim_account_get_username(a))) + return "icq"; + else + return "aim"; + } + + if (aim_sn_is_icq(b->name)) + return "icq"; + return "aim"; +} + +const char *oscar_list_icon_aim(GaimAccount *a, GaimBuddy *b) +{ + if ((b == NULL) || (b->name == NULL) || aim_sn_is_sms(b->name)) + { if (a != NULL && aim_sn_is_icq(gaim_account_get_username(a))) return "icq"; else @@ -5293,7 +5310,7 @@ return "aim"; } -static void oscar_list_emblems(GaimBuddy *b, const char **se, const char **sw, const char **nw, const char **ne) +void oscar_list_emblems(GaimBuddy *b, const char **se, const char **sw, const char **nw, const char **ne) { GaimConnection *gc = NULL; OscarData *od = NULL; @@ -5370,7 +5387,7 @@ *ne = emblems[3]; } -static void oscar_tooltip_text(GaimBuddy *b, GString *str, gboolean full) { +void oscar_tooltip_text(GaimBuddy *b, GString *str, gboolean full) { GaimConnection *gc = b->account->gc; OscarData *od = gc->proto_data; aim_userinfo_t *userinfo = aim_locate_finduserinfo(od, b->name); @@ -5420,7 +5437,7 @@ } } -static char *oscar_status_text(GaimBuddy *b) +char *oscar_status_text(GaimBuddy *b) { GaimConnection *gc; GaimAccount *account; @@ -5549,7 +5566,7 @@ return 0; } -static void oscar_set_permit_deny(GaimConnection *gc) { +void oscar_set_permit_deny(GaimConnection *gc) { GaimAccount *account = gaim_connection_get_account(gc); OscarData *od = (OscarData *)gc->proto_data; @@ -5577,35 +5594,35 @@ } } -static void oscar_add_permit(GaimConnection *gc, const char *who) { +void oscar_add_permit(GaimConnection *gc, const char *who) { OscarData *od = (OscarData *)gc->proto_data; gaim_debug_info("oscar", "ssi: About to add a permit\n"); if (od->ssi.received_data) aim_ssi_addpermit(od, who); } -static void oscar_add_deny(GaimConnection *gc, const char *who) { +void oscar_add_deny(GaimConnection *gc, const char *who) { OscarData *od = (OscarData *)gc->proto_data; gaim_debug_info("oscar", "ssi: About to add a deny\n"); if (od->ssi.received_data) aim_ssi_adddeny(od, who); } -static void oscar_rem_permit(GaimConnection *gc, const char *who) { +void oscar_rem_permit(GaimConnection *gc, const char *who) { OscarData *od = (OscarData *)gc->proto_data; gaim_debug_info("oscar", "ssi: About to delete a permit\n"); if (od->ssi.received_data) aim_ssi_delpermit(od, who); } -static void oscar_rem_deny(GaimConnection *gc, const char *who) { +void oscar_rem_deny(GaimConnection *gc, const char *who) { OscarData *od = (OscarData *)gc->proto_data; gaim_debug_info("oscar", "ssi: About to delete a deny\n"); if (od->ssi.received_data) aim_ssi_deldeny(od, who); } -static GList * +GList * oscar_status_types(GaimAccount *account) { gboolean is_icq; @@ -5801,7 +5818,7 @@ aim_locate_getinfoshort(gc->proto_data, gaim_buddy_get_name(buddy), 0x00000003); } -static GList *oscar_buddy_menu(GaimBuddy *buddy) { +GList *oscar_buddy_menu(GaimBuddy *buddy) { GaimConnection *gc; OscarData *od; @@ -5878,7 +5895,7 @@ } -static GList *oscar_blist_node_menu(GaimBlistNode *node) { +GList *oscar_blist_node_menu(GaimBlistNode *node) { if(GAIM_BLIST_NODE_IS_BUDDY(node)) { return oscar_buddy_menu((GaimBuddy *) node); } else { @@ -6121,7 +6138,7 @@ gaim_notify_uri(gc, "http://mymobile.aol.com/dbreg/register?action=imf&clientID=1"); } -static void oscar_set_icon(GaimConnection *gc, const char *iconfile) +void oscar_set_icon(GaimConnection *gc, const char *iconfile) { OscarData *od = gc->proto_data; FILE *file; @@ -6162,7 +6179,7 @@ * Called by the Gaim core to determine whether or not we're * allowed to send a file to this user. */ -static gboolean +gboolean oscar_can_receive_file(GaimConnection *gc, const char *who) { OscarData *od; @@ -6191,7 +6208,7 @@ return FALSE; } -static GaimXfer * +GaimXfer * oscar_new_xfer(GaimConnection *gc, const char *who) { GaimXfer *xfer; @@ -6223,7 +6240,7 @@ * Called by the Gaim core when the user indicates that a * file is to be sent to a special someone. */ -static void +void oscar_send_file(GaimConnection *gc, const char *who, const char *file) { GaimXfer *xfer; @@ -6236,7 +6253,7 @@ gaim_xfer_request(xfer); } -static GList * +GList * oscar_actions(GaimPlugin *plugin, gpointer context) { GaimConnection *gc = (GaimConnection *) context; @@ -6322,7 +6339,7 @@ return menu; } -static void oscar_change_passwd(GaimConnection *gc, const char *old, const char *new) +void oscar_change_passwd(GaimConnection *gc, const char *old, const char *new) { OscarData *od = gc->proto_data; @@ -6342,7 +6359,7 @@ } } -static void +void oscar_convo_closed(GaimConnection *gc, const char *who) { OscarData *od; @@ -6387,7 +6404,7 @@ gaim_plugin_pref_frame_add(frame, ppref); #endif -static const char * +const char * oscar_normalize(const GaimAccount *account, const char *str) { static char buf[BUF_LEN]; @@ -6414,7 +6431,7 @@ return buf; } -static gboolean +gboolean oscar_offline_message(const GaimBuddy *buddy) { OscarData *od; @@ -6428,127 +6445,3 @@ return (od->icq && aim_sn_is_icq(gaim_account_get_username(account))); } -static GaimPluginProtocolInfo prpl_info = -{ - OPT_PROTO_MAIL_CHECK | OPT_PROTO_IM_IMAGE, - NULL, /* user_splits */ - NULL, /* protocol_options */ - {"gif,jpeg,bmp,ico", 48, 48, 50, 50, - GAIM_ICON_SCALE_SEND | GAIM_ICON_SCALE_DISPLAY}, /* icon_spec */ - oscar_list_icon, /* list_icon */ - oscar_list_emblems, /* list_emblems */ - oscar_status_text, /* status_text */ - oscar_tooltip_text, /* tooltip_text */ - oscar_status_types, /* status_types */ - oscar_blist_node_menu, /* blist_node_menu */ - oscar_chat_info, /* chat_info */ - oscar_chat_info_defaults, /* chat_info_defaults */ - oscar_login, /* login */ - oscar_close, /* close */ - oscar_send_im, /* send_im */ - oscar_set_info, /* set_info */ - oscar_send_typing, /* send_typing */ - oscar_get_info, /* get_info */ - oscar_set_status, /* set_status */ - oscar_set_idle, /* set_idle */ - oscar_change_passwd, /* change_passwd */ - oscar_add_buddy, /* add_buddy */ - NULL, /* add_buddies */ - oscar_remove_buddy, /* remove_buddy */ - NULL, /* remove_buddies */ - oscar_add_permit, /* add_permit */ - oscar_add_deny, /* add_deny */ - oscar_rem_permit, /* rem_permit */ - oscar_rem_deny, /* rem_deny */ - oscar_set_permit_deny, /* set_permit_deny */ - oscar_join_chat, /* join_chat */ - NULL, /* reject_chat */ - oscar_get_chat_name, /* get_chat_name */ - oscar_chat_invite, /* chat_invite */ - oscar_chat_leave, /* chat_leave */ - NULL, /* chat_whisper */ - oscar_send_chat, /* chat_send */ - oscar_keepalive, /* keepalive */ - NULL, /* register_user */ - NULL, /* get_cb_info */ - NULL, /* get_cb_away */ - oscar_alias_buddy, /* alias_buddy */ - oscar_move_buddy, /* group_buddy */ - oscar_rename_group, /* rename_group */ - NULL, /* buddy_free */ - oscar_convo_closed, /* convo_closed */ - oscar_normalize, /* normalize */ - oscar_set_icon, /* set_buddy_icon */ - NULL, /* remove_group */ - NULL, /* get_cb_real_name */ - NULL, /* set_chat_topic */ - NULL, /* find_blist_chat */ - NULL, /* roomlist_get_list */ - NULL, /* roomlist_cancel */ - NULL, /* roomlist_expand_category */ - oscar_can_receive_file, /* can_receive_file */ - oscar_send_file, /* send_file */ - oscar_new_xfer, /* new_xfer */ - oscar_offline_message, /* offline_message */ - NULL, /* whiteboard_prpl_ops */ - NULL, /* send_raw */ -}; - -static GaimPluginInfo info = -{ - GAIM_PLUGIN_MAGIC, - GAIM_MAJOR_VERSION, - GAIM_MINOR_VERSION, - GAIM_PLUGIN_PROTOCOL, /**< type */ - NULL, /**< ui_requirement */ - 0, /**< flags */ - NULL, /**< dependencies */ - GAIM_PRIORITY_DEFAULT, /**< priority */ - - "prpl-oscar", /**< id */ - "AIM/ICQ", /**< name */ - VERSION, /**< version */ - /** summary */ - N_("AIM/ICQ Protocol Plugin"), - /** description */ - N_("AIM/ICQ Protocol Plugin"), - NULL, /**< author */ - GAIM_WEBSITE, /**< homepage */ - - NULL, /**< load */ - NULL, /**< unload */ - NULL, /**< destroy */ - - NULL, /**< ui_info */ - &prpl_info, /**< extra_info */ - NULL, - oscar_actions -}; - -static void -init_plugin(GaimPlugin *plugin) -{ - GaimAccountOption *option; - - option = gaim_account_option_string_new(_("Server"), "server", OSCAR_DEFAULT_LOGIN_SERVER); - prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); - - option = gaim_account_option_int_new(_("Port"), "port", OSCAR_DEFAULT_LOGIN_PORT); - prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); - - option = gaim_account_option_string_new(_("Encoding"), "encoding", OSCAR_DEFAULT_CUSTOM_ENCODING); - prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); - - option = gaim_account_option_bool_new( - _("Always use AIM/ICQ proxy server for file transfers\n(slower, but does not reveal your IP address)"), "always_use_rv_proxy", - OSCAR_DEFAULT_ALWAYS_USE_RV_PROXY); - prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); - - /* Preferences */ - gaim_prefs_add_none("/plugins/prpl/oscar"); - gaim_prefs_add_bool("/plugins/prpl/oscar/recent_buddies", FALSE); - gaim_prefs_add_bool("/plugins/prpl/oscar/show_idle", FALSE); - gaim_prefs_remove("/plugins/prpl/oscar/always_use_rv_proxy"); -} - -GAIM_INIT_PLUGIN(oscar, init_plugin, info); Added: trunk/libgaim/protocols/oscar/oscarcommon.h =================================================================== --- trunk/libgaim/protocols/oscar/oscarcommon.h (rev 0) +++ trunk/libgaim/protocols/oscar/oscarcommon.h 2006-11-14 04:04:04 UTC (rev 17747) @@ -0,0 +1,81 @@ +/* gaim + * + * Gaim is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +/* oscarcommon.h contains prototypes for the prpl functions used by libaim.c + * and libicq.c + */ + +#include "accountopt.h" +#include "internal.h" +#include "prpl.h" +#include "version.h" + +#define OSCAR_DEFAULT_LOGIN_SERVER "login.oscar.aol.com" +#define OSCAR_DEFAULT_LOGIN_PORT 5190 +#define OSCAR_DEFAULT_CUSTOM_ENCODING "ISO-8859-1" +#define OSCAR_DEFAULT_AUTHORIZATION TRUE +#define OSCAR_DEFAULT_HIDE_IP TRUE +#define OSCAR_DEFAULT_WEB_AWARE FALSE +#define OSCAR_DEFAULT_ALWAYS_USE_RV_PROXY FALSE + +const char *oscar_list_icon_icq(GaimAccount *a, GaimBuddy *b); +const char *oscar_list_icon_aim(GaimAccount *a, GaimBuddy *b); +void oscar_list_emblems(GaimBuddy *b, const char **se, const char **sw, const char **nw, const char **ne); +char *oscar_status_text(GaimBuddy *b); +void oscar_tooltip_text(GaimBuddy *b, GString *str, gboolean full); +GList *oscar_status_types(GaimAccount *account); +GList *oscar_blist_node_menu(GaimBlistNode *node); +GList *oscar_chat_info(GaimConnection *gc); +GHashTable *oscar_chat_info_defaults(GaimConnection *gc, const char *chat_name); +void oscar_login(GaimAccount *account); +void oscar_close(GaimConnection *gc); +int oscar_send_im(GaimConnection *gc, const char *name, const char *message, GaimMessageFlags imflags); +void oscar_set_info(GaimConnection *gc, const char *rawinfo); +unsigned int oscar_send_typing(GaimConnection *gc, const char *name, GaimTypingState state); +void oscar_get_info(GaimConnection *gc, const char *name); +void oscar_set_status(GaimAccount *account, GaimStatus *status); +void oscar_set_idle(GaimConnection *gc, int time); +void oscar_change_passwd(GaimConnection *gc, const char *old, const char *new); +void oscar_add_buddy(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group); +void oscar_remove_buddy(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group); +void oscar_add_permit(GaimConnection *gc, const char *who); +void oscar_add_deny(GaimConnection *gc, const char *who); +void oscar_rem_permit(GaimConnection *gc, const char *who); +void oscar_rem_deny(GaimConnection *gc, const char *who); +void oscar_set_permit_deny(GaimConnection *gc); +void oscar_join_chat(GaimConnection *gc, GHashTable *data); +char *oscar_get_chat_name(GHashTable *data); +void oscar_chat_invite(GaimConnection *gc, int id, const char *message, const char *name); +void oscar_chat_leave(GaimConnection *gc, int id); +int oscar_send_chat(GaimConnection *gc, int id, const char *message, GaimMessageFlags flags); +void oscar_keepalive(GaimConnection *gc); +void oscar_alias_buddy(GaimConnection *gc, const char *name, const char *alias); +void oscar_move_buddy(GaimConnection *gc, const char *name, const char *old_group, const char *new_group); +void oscar_rename_group(GaimConnection *gc, const char *old_name, GaimGroup *group, GList *moved_buddies); +void oscar_convo_closed(GaimConnection *gc, const char *who); +const char *oscar_normalize(const GaimAccount *account, const char *str); +void oscar_set_icon(GaimConnection *gc, const char *iconfile); +gboolean oscar_can_receive_file(GaimConnection *gc, const char *who); +void oscar_send_file(GaimConnection *gc, const char *who, const char *file); +GaimXfer *oscar_new_xfer(GaimConnection *gc, const char *who); +gboolean oscar_offline_message(const GaimBuddy *buddy); +GList *oscar_actions(GaimPlugin *plugin, gpointer context); Property changes on: trunk/libgaim/protocols/oscar/oscarcommon.h ___________________________________________________________________ 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-11-13 20:10:39
|
Revision: 17746 http://svn.sourceforge.net/gaim/?rev=17746&view=rev Author: sadrul Date: 2006-11-13 12:10:29 -0800 (Mon, 13 Nov 2006) Log Message: ----------- Fix bug #1595774: Tab dragging not working properly Modified Paths: -------------- trunk/gtk/gtkconv.c Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-11-13 20:09:36 UTC (rev 17745) +++ trunk/gtk/gtkconv.c 2006-11-13 20:10:29 UTC (rev 17746) @@ -7337,7 +7337,7 @@ dest_page_num = gaim_gtkconv_get_tab_at_xy(dest_win, e->x_root, e->y_root, &to_right); - gtkconv = GAIM_GTK_CONVERSATION(conv); + gtkconv = gaim_gtk_conv_window_get_gtkconv_at_index(win, win->drag_tab); if (win == dest_win) { gtk_notebook_reorder_child(GTK_NOTEBOOK(win->notebook), gtkconv->tab_cont, dest_page_num); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-11-13 20:09:50
|
Revision: 17745 http://svn.sourceforge.net/gaim/?rev=17745&view=rev Author: sadrul Date: 2006-11-13 12:09:36 -0800 (Mon, 13 Nov 2006) Log Message: ----------- Fix bug #1594978: Missing comma in About text Modified Paths: -------------- trunk/gtk/gtkdialogs.c Modified: trunk/gtk/gtkdialogs.c =================================================================== --- trunk/gtk/gtkdialogs.c 2006-11-13 06:47:19 UTC (rev 17744) +++ trunk/gtk/gtkdialogs.c 2006-11-13 20:09:36 UTC (rev 17745) @@ -331,7 +331,7 @@ g_string_append(str, _("Gaim is a modular messaging client capable of using " - "AIM, MSN, Yahoo!, Jabber, ICQ, IRC, SILC, SIP/SIMPLE" + "AIM, MSN, Yahoo!, Jabber, ICQ, IRC, SILC, SIP/SIMPLE, " "Novell GroupWise, Lotus Sametime, Bonjour, Zephyr, " "Gadu-Gadu, and QQ all at once. " "It is written using GTK+.<BR><BR>" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-11-13 17:14:04
|
Revision: 17737 http://svn.sourceforge.net/gaim/?rev=17737&view=rev Author: sadrul Date: 2006-11-11 10:23:57 -0800 (Sat, 11 Nov 2006) Log Message: ----------- Fix the 'scroll when no place to go' bug. Modified Paths: -------------- trunk/console/libgnt/gntwm.c Modified: trunk/console/libgnt/gntwm.c =================================================================== --- trunk/console/libgnt/gntwm.c 2006-11-11 00:59:11 UTC (rev 17736) +++ trunk/console/libgnt/gntwm.c 2006-11-11 18:23:57 UTC (rev 17737) @@ -1015,8 +1015,8 @@ if (strcmp(keys, "\r") == 0 || strcmp(keys, "\033") == 0) { window_reverse(widget, FALSE); wm->mode = GNT_KP_MODE_NORMAL; - return; } + return; } wm->event_stack = TRUE; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sea...@us...> - 2006-11-13 17:04:34
|
Revision: 17716 http://svn.sourceforge.net/gaim/?rev=17716&view=rev Author: seanegan Date: 2006-11-09 15:12:29 -0800 (Thu, 09 Nov 2006) Log Message: ----------- beta5 Modified Paths: -------------- trunk/NEWS trunk/configure.ac Modified: trunk/NEWS =================================================================== --- trunk/NEWS 2006-11-09 22:28:56 UTC (rev 17715) +++ trunk/NEWS 2006-11-09 23:12:29 UTC (rev 17716) @@ -1,5 +1,10 @@ -=[ Gaim ]=- The Pimpin' Penguin IM Client That's Good For The Soul! +2.0.0beta5 (11/9/2006): + Sean: Another release in our endless stream in betas. This one's + pretty awesome; and it fixes major bugs introduced in previous + ones. + 2.0.0beta4 (10/17/2006) Sean: Still beta. Maybe the next one should be a gamma.. :) Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2006-11-09 22:28:56 UTC (rev 17715) +++ trunk/configure.ac 2006-11-09 23:12:29 UTC (rev 17716) @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([gaim], [2.0.0dev], [gai...@li...]) +AC_INIT([gaim], [2.0.0beta5], [gai...@li...]) AC_CANONICAL_SYSTEM AM_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dat...@us...> - 2006-11-13 16:43:01
|
Revision: 17713 http://svn.sourceforge.net/gaim/?rev=17713&view=rev Author: datallah Date: 2006-11-09 12:13:26 -0800 (Thu, 09 Nov 2006) Log Message: ----------- Give a better error message. Point people in (hopefully) the right direction when GTK+ isn't found. Modified Paths: -------------- trunk/gtk/win32/win_gaim.c Modified: trunk/gtk/win32/win_gaim.c =================================================================== --- trunk/gtk/win32/win_gaim.c 2006-11-09 19:58:15 UTC (rev 17712) +++ trunk/gtk/win32/win_gaim.c 2006-11-09 20:13:26 UTC (rev 17713) @@ -63,7 +63,18 @@ static LPFNGAIMMAIN gaim_main = NULL; static LPFNSETDLLDIRECTORY MySetDllDirectory = NULL; +static const char *get_win32_error_message(DWORD err) { + static char err_msg[512]; + FormatMessage( + FORMAT_MESSAGE_FROM_SYSTEM, + NULL, err, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPTSTR) &err_msg, sizeof(err_msg), NULL); + + return err_msg; +} + static BOOL read_reg_string(HKEY key, char* sub_key, char* val_name, LPBYTE data, LPDWORD data_len) { HKEY hkey; BOOL ret = FALSE; @@ -75,17 +86,13 @@ NULL, NULL, data, data_len))) ret = TRUE; else { - TCHAR szBuf[80]; + const char *err_msg = get_win32_error_message(retv); - FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, - NULL, retv, 0, - (LPTSTR) &szBuf, sizeof(szBuf), NULL); - printf("Could not read reg key '%s' subkey '%s' value: '%s'.\nMessage: (%ld) %s\n", ((key == HKEY_LOCAL_MACHINE) ? "HKLM" : (key == HKEY_CURRENT_USER) ? "HKCU" : "???"), - sub_key, val_name, retv, szBuf); + sub_key, val_name, retv, err_msg); } RegCloseKey(hkey); } @@ -545,9 +552,11 @@ printf("Loaded exchndl.dll\n"); } } else { + DWORD dw = GetLastError(); + const char *err_msg = get_win32_error_message(dw); snprintf(errbuf, 512, - "Error getting module filename. Error: %u", - (UINT) GetLastError()); + "Error getting module filename.\nError: (%u) %s", + (UINT) dw, err_msg); MessageBox(NULL, errbuf, NULL, MB_OK | MB_TOPMOST); } @@ -570,9 +579,16 @@ } if (!gaim_main) { - snprintf(errbuf, 512, "Error loading gaim.dll. Error: %u", - (UINT) GetLastError()); - MessageBox(NULL, errbuf, NULL, MB_OK | MB_TOPMOST); + DWORD dw = GetLastError(); + BOOL mod_not_found = (dw == ERROR_MOD_NOT_FOUND || dw == ERROR_DLL_NOT_FOUND); + const char *err_msg = get_win32_error_message(dw); + + snprintf(errbuf, 512, "Error loading gtkgaim.dll.\nError: (%u) %s%s%s", + (UINT) dw, err_msg, + mod_not_found ? "\n" : "", + mod_not_found ? "This probably means that GTK+ can't be found." : ""); + MessageBox(NULL, errbuf, TEXT("Error"), MB_OK | MB_TOPMOST); + return 0; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-11-13 16:41:15
|
Revision: 17736 http://svn.sourceforge.net/gaim/?rev=17736&view=rev Author: sadrul Date: 2006-11-10 16:59:11 -0800 (Fri, 10 Nov 2006) Log Message: ----------- This simply reads input characters and prints the returned value from getch. Added Paths: ----------- trunk/console/libgnt/test/key.c Added: trunk/console/libgnt/test/key.c =================================================================== --- trunk/console/libgnt/test/key.c (rev 0) +++ trunk/console/libgnt/test/key.c 2006-11-11 00:59:11 UTC (rev 17736) @@ -0,0 +1,18 @@ +#include <ncurses.h> + +int main() +{ + int ch; + initscr(); + + noecho(); + + while ((ch = getch()) != 27) { + printw("%d ", ch); + refresh(); + } + + endwin(); + return 0; +} + Property changes on: trunk/console/libgnt/test/key.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-11-13 16:28:30
|
Revision: 17739 http://svn.sourceforge.net/gaim/?rev=17739&view=rev Author: sadrul Date: 2006-11-11 15:35:07 -0800 (Sat, 11 Nov 2006) Log Message: ----------- The doc tells to use _set_current_name instead of set_filename for new files. This fixes the bug reported by TheNux in #gaim. Modified Paths: -------------- trunk/gtk/gtkrequest.c Modified: trunk/gtk/gtkrequest.c =================================================================== --- trunk/gtk/gtkrequest.c 2006-11-11 20:29:35 UTC (rev 17738) +++ trunk/gtk/gtkrequest.c 2006-11-11 23:35:07 UTC (rev 17739) @@ -1527,8 +1527,12 @@ current_folder = gaim_prefs_get_string("/gaim/gtk/filelocations/last_open_folder"); } - if (filename != NULL) - gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(filesel), filename); + if (filename != NULL) { + if (savedialog) + gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(filesel), filename); + else + gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(filesel), filename); + } if ((current_folder != NULL) && (*current_folder != '\0')) { folder_set = gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(filesel), current_folder); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dat...@us...> - 2006-11-13 16:14:37
|
Revision: 17714 http://svn.sourceforge.net/gaim/?rev=17714&view=rev Author: datallah Date: 2006-11-09 12:21:13 -0800 (Thu, 09 Nov 2006) Log Message: ----------- Also print the error to the console. Modified Paths: -------------- trunk/gtk/win32/win_gaim.c Modified: trunk/gtk/win32/win_gaim.c =================================================================== --- trunk/gtk/win32/win_gaim.c 2006-11-09 20:13:26 UTC (rev 17713) +++ trunk/gtk/win32/win_gaim.c 2006-11-09 20:21:13 UTC (rev 17714) @@ -557,6 +557,7 @@ snprintf(errbuf, 512, "Error getting module filename.\nError: (%u) %s", (UINT) dw, err_msg); + printf(errbuf); MessageBox(NULL, errbuf, NULL, MB_OK | MB_TOPMOST); } @@ -587,6 +588,7 @@ (UINT) dw, err_msg, mod_not_found ? "\n" : "", mod_not_found ? "This probably means that GTK+ can't be found." : ""); + printf(errbuf); MessageBox(NULL, errbuf, TEXT("Error"), MB_OK | MB_TOPMOST); return 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-11-13 06:47:23
|
Revision: 17744 http://svn.sourceforge.net/gaim/?rev=17744&view=rev Author: thekingant Date: 2006-11-12 22:47:19 -0800 (Sun, 12 Nov 2006) Log Message: ----------- Stuff we ship should not include gaim.h--we should include individual header files. Eventually 3rd party plugins should just need to include only gaim.h, but not yet Modified Paths: -------------- trunk/gtk/gtkdocklet-x11.c trunk/gtk/win32/gtkwin32dep.c trunk/libgaim/win32/win32dep.c Modified: trunk/gtk/gtkdocklet-x11.c =================================================================== --- trunk/gtk/gtkdocklet-x11.c 2006-11-13 04:16:49 UTC (rev 17743) +++ trunk/gtk/gtkdocklet-x11.c 2006-11-13 06:47:19 UTC (rev 17744) @@ -27,7 +27,6 @@ #include "debug.h" #include "gaimstock.h" -#include "gaim.h" #include "gtkdialogs.h" #include "eggtrayicon.h" Modified: trunk/gtk/win32/gtkwin32dep.c =================================================================== --- trunk/gtk/win32/gtkwin32dep.c 2006-11-13 04:16:49 UTC (rev 17743) +++ trunk/gtk/win32/gtkwin32dep.c 2006-11-13 06:47:19 UTC (rev 17744) @@ -37,7 +37,6 @@ #include <gtk/gtk.h> #include <gdk/gdkwin32.h> -#include "gaim.h" #include "debug.h" #include "notify.h" Modified: trunk/libgaim/win32/win32dep.c =================================================================== --- trunk/libgaim/win32/win32dep.c 2006-11-13 04:16:49 UTC (rev 17743) +++ trunk/libgaim/win32/win32dep.c 2006-11-13 06:47:19 UTC (rev 17744) @@ -32,7 +32,6 @@ #include <glib.h> #include <glib/gstdio.h> -#include "gaim.h" #include "debug.h" #include "notify.h" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-11-13 03:28:28
|
Revision: 17741 http://svn.sourceforge.net/gaim/?rev=17741&view=rev Author: thekingant Date: 2006-11-12 19:28:15 -0800 (Sun, 12 Nov 2006) Log Message: ----------- >From reported to fixed in under two minutes, or your money back. Modified Paths: -------------- trunk/ChangeLog.API Modified: trunk/ChangeLog.API =================================================================== --- trunk/ChangeLog.API 2006-11-12 18:34:25 UTC (rev 17740) +++ trunk/ChangeLog.API 2006-11-13 03:28:15 UTC (rev 17741) @@ -125,7 +125,7 @@ changed to return a pointer to a data structure that can be used to cancel the pending DNS query using gaim_dnsquery_destroy() * gaim_url_fetch(): Renamed to gaim_util_fetch_url() and changed - to return a pointer to a data structer that can be used to cancel + to return a pointer to a data structure that can be used to cancel the pending HTTP request using gaim_util_fetch_url_cancel(). * gaim_gtk_create_imhtml(): Added sw_ret() parameter * gaim_account_get_log(): Added create parameter This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ev...@us...> - 2006-11-12 18:34:35
|
Revision: 17740 http://svn.sourceforge.net/gaim/?rev=17740&view=rev Author: evands Date: 2006-11-12 10:34:25 -0800 (Sun, 12 Nov 2006) Log Message: ----------- As with jabber_recv_cb_ssl(), jabber_login_callback_ssl() needs to either be cancelled properly or check to ensure its GaimConnection is valid when it is triggered. Since the former is not done yet, I've added the latter, with the same TODO comment as is present in jabber_recv_cb_ssl(). Modified Paths: -------------- trunk/libgaim/protocols/jabber/jabber.c Modified: trunk/libgaim/protocols/jabber/jabber.c =================================================================== --- trunk/libgaim/protocols/jabber/jabber.c 2006-11-11 23:35:07 UTC (rev 17739) +++ trunk/libgaim/protocols/jabber/jabber.c 2006-11-12 18:34:25 UTC (rev 17740) @@ -430,8 +430,16 @@ GaimInputCondition cond) { GaimConnection *gc = data; - JabberStream *js = gc->proto_data; + JabberStream *js; + /* TODO: It should be possible to make this check unnecessary */ + if(!GAIM_CONNECTION_IS_VALID(gc)) { + gaim_ssl_close(gsc); + return; + } + + js = gc->proto_data; + if(js->state == JABBER_STREAM_CONNECTING) jabber_send_raw(js, "<?xml version='1.0' ?>", -1); jabber_stream_set_state(js, JABBER_STREAM_INITIALIZING); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ev...@us...> - 2006-11-11 20:29:41
|
Revision: 17738 http://svn.sourceforge.net/gaim/?rev=17738&view=rev Author: evands Date: 2006-11-11 12:29:35 -0800 (Sat, 11 Nov 2006) Log Message: ----------- * Patch from Christopher "cuberoot" to fix the repeated, CPU-intensive call loop on url_fetch_recv_cb() which was discussed on gaim-devl with the subject "Yahoo (and maybe others): gaim_util_fetch_url_request() at 100% CPU until complete with repeated EAGAIN". He writes: "When read() returns 0, that means eof... period. Don't check errno, don't collect $200. The loop was caused by eof condition when errno had previously been EAGAIN/EWOULDBLOCK. The CPU-bound loop stopped when errno happened to be overwritten. I also believe trying to use some/part of an HTTP request on ETIMEDOUT to be a mistake so I removed it. Funny enough the read(2) manpage doesn't document ETIMEDOUT as a possible errno, but it is. (see tcp_timer.c and tcp_subr.c in src/sys/netinet)." This closes Adium Trac ticket #5685. * Added some passing-NULL-to-printf() safety which has been sitting around in this file locally for a while, waiting for a worthwhile commit to accompany. Modified Paths: -------------- trunk/libgaim/util.c Modified: trunk/libgaim/util.c =================================================================== --- trunk/libgaim/util.c 2006-11-11 18:23:57 UTC (rev 17737) +++ trunk/libgaim/util.c 2006-11-11 20:29:35 UTC (rev 17738) @@ -3315,11 +3315,9 @@ } } - if(len <= 0) { + if(len < 0) { if(errno == EAGAIN) { return; - } else if(errno != ETIMEDOUT) { - got_eof = TRUE; } else { gaim_util_fetch_url_error(gfud, _("Error reading from %s: %s"), gfud->website.address, strerror(errno)); @@ -3327,7 +3325,7 @@ } } - if(got_eof) { + if((len == 0) || got_eof) { gfud->webdata = g_realloc(gfud->webdata, gfud->len + 1); gfud->webdata[gfud->len] = '\0'; @@ -3378,7 +3376,7 @@ if (source == -1) { gaim_util_fetch_url_error(gfud, _("Unable to connect to %s: %s"), - gfud->website.address, error_message); + (gfud->website.address ? gfud->website.address : ""), error_message); return; } @@ -3399,9 +3397,10 @@ "Accept: */*\r\n" "Host: %s\r\n\r\n", (gfud->full ? "" : "/"), - (gfud->full ? gfud->url : gfud->website.page), + (gfud->full ? (gfud->url ? gfud->url : "") : (gfud->website.page ? gfud->website.page : "")), (gfud->http11 ? "1.1" : "1.0"), - gfud->user_agent, gfud->website.address); + (gfud->user_agent ? gfud->user_agent : ""), + (gfud->website.address ? gfud->website.address : "")); } else { gfud->request = g_strdup_printf( "GET %s%s HTTP/%s\r\n" @@ -3409,9 +3408,9 @@ "Accept: */*\r\n" "Host: %s\r\n\r\n", (gfud->full ? "" : "/"), - (gfud->full ? gfud->url : gfud->website.page), + (gfud->full ? (gfud->url ? gfud->url : "") : (gfud->website.page ? gfud->website.page : "")), (gfud->http11 ? "1.1" : "1.0"), - gfud->website.address); + (gfud->website.address ? gfud->website.address : "")); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lsc...@us...> - 2006-11-10 14:38:11
|
Revision: 17735 http://svn.sourceforge.net/gaim/?rev=17735&view=rev Author: lschiere Date: 2006-11-10 06:38:08 -0800 (Fri, 10 Nov 2006) Log Message: ----------- (09:35:51) Alver: http://studwww.ugent.be/~lvalboom/zephyr.patch (09:36:03) LSchiere2: how many do you have? (09:36:14) Alver: That's all so far Modified Paths: -------------- trunk/libgaim/protocols/zephyr/Zinternal.c Modified: trunk/libgaim/protocols/zephyr/Zinternal.c =================================================================== --- trunk/libgaim/protocols/zephyr/Zinternal.c 2006-11-10 14:35:37 UTC (rev 17734) +++ trunk/libgaim/protocols/zephyr/Zinternal.c 2006-11-10 14:38:08 UTC (rev 17735) @@ -893,7 +893,7 @@ sizeof(__My_addr)); } message_len = min(notice->z_message_len-offset, fragsize); - partnotice.z_message = notice->z_message+offset; + partnotice.z_message = (char*)notice->z_message+offset; partnotice.z_message_len = message_len; if ((retval = Z_FormatAuthHeader(&partnotice, buffer, Z_MAXHEADERLEN, &ret_len, cert_func)) != ZERR_NONE) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lsc...@us...> - 2006-11-10 14:35:42
|
Revision: 17734 http://svn.sourceforge.net/gaim/?rev=17734&view=rev Author: lschiere Date: 2006-11-10 06:35:37 -0800 (Fri, 10 Nov 2006) Log Message: ----------- Alver really wants gaim to compile Modified Paths: -------------- trunk/libgaim/circbuffer.c Modified: trunk/libgaim/circbuffer.c =================================================================== --- trunk/libgaim/circbuffer.c 2006-11-10 14:30:45 UTC (rev 17733) +++ trunk/libgaim/circbuffer.c 2006-11-10 14:35:37 UTC (rev 17734) @@ -104,7 +104,7 @@ memcpy(buf->inptr, src, len_stored); if (len_stored < len) { - memcpy(buf->buffer, src + len_stored, len - len_stored); + memcpy(buf->buffer, (char*)src + len_stored, len - len_stored); buf->inptr = buf->buffer + (len - len_stored); } else if ((buf->buffer - buf->inptr) == len_stored) { buf->inptr = buf->buffer; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |