Changeset 87d7e14
- Timestamp:
- Feb 1, 2012, 1:43:40 PM (13 years ago)
- Parents:
- 39a531d (diff), 822e9bd (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent. - Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
perl/modules/Jabber/lib/XML/Stream.pm
ra8d5a39 r822e9bd 2112 2112 2113 2113 return unless defined($mechanisms); 2114 2115 # Here we assume that if 'to' is available, then a domain is being 2116 # specified that does not match the hostname of the jabber server 2117 # and that we should use that to form the bare JID for SASL auth. 2118 my $domain .= $self->{SIDS}->{$sid}->{to} 2119 ? $self->{SIDS}->{$sid}->{to} 2120 : $self->{SIDS}->{$sid}->{hostname}; 2121 2122 my $authname = $username . '@' . $domain; 2114 2123 2115 2124 my $sasl = new Authen::SASL(mechanism=>join(" ",@{$mechanisms}), 2116 2125 callback=>{ 2117 # authname => $username."@".$self->{SIDS}->{$sid}->{hostname}, 2126 authname => $authname, 2127 2118 2128 user => $username, 2119 2129 pass => $password … … 2121 2131 ); 2122 2132 2123 $self->{SIDS}->{$sid}->{sasl}->{client} = $sasl->client_new('xmpp', $ self->{SIDS}->{$sid}->{hostname});2133 $self->{SIDS}->{$sid}->{sasl}->{client} = $sasl->client_new('xmpp', $domain); 2124 2134 $self->{SIDS}->{$sid}->{sasl}->{username} = $username; 2125 2135 $self->{SIDS}->{$sid}->{sasl}->{password} = $password; -
commands.c
rf89cc6f r39a531d 96 96 OWLCMD_ARGS("unbindkey", owl_command_unbindkey, OWL_CTX_ANY, 97 97 "removes a binding in a keymap", 98 " bindkey <keymap> <keyseq>",98 "unbindkey <keymap> <keyseq>", 99 99 "Removes a binding of a key sequence within a keymap.\n" 100 100 "Use 'show keymaps' to see the existing keymaps.\n" … … 1778 1778 1779 1779 if (argc < 3) { 1780 owl_function_makemsg("Usage: bindkey <keymap> <binding>");1780 owl_function_makemsg("Usage: unbindkey <keymap> <binding>"); 1781 1781 return NULL; 1782 1782 } -
doc/barnowl.1
rbad4496 r8135737 35 35 .TP 36 36 \fB\-c\fP, \fB\-\-config\-file\fP=\fIFILE\fP 37 Specify an alternate config file for \fBBarnOwl\fP to use. By default, 38 \fBBarnOwl\fP uses \fI~/.barnowlconf\fP if it exists, and \fI~/.owlconf\fP otherwise. 37 Specify an alternate config file for \fBBarnOwl\fP to use. The config file is 38 an arbitrary Perl script evaluated in the \fImain\fP package, and if it 39 overrides the \fIBarnOwl::startup\fP method that is run when \fBBarnOwl\fP 40 starts. (Compare \fI~/.owl/startup\fP, which contains \fBBarnOwl\fP commands 41 that are run at startup after the config file is loaded.) 42 43 By default, \fBBarnOwl\fP uses the first of \fI~/.owl/init.pl\fP, 44 \fI~/.barnowlconf\fP, or \fI~/.owlconf\fP that exists. 39 45 40 46 .TP -
functions.c
r7803326 rbd482c3 216 216 void owl_function_add_outgoing_zephyrs(const owl_zwrite *z) 217 217 { 218 if (z->cc || owl_zwrite_get_numrecips(z) == 0) {218 if (z->cc && owl_zwrite_is_personal(z)) { 219 219 /* create the message */ 220 220 owl_message *m = g_new(owl_message, 1); … … 225 225 int i; 226 226 for (i = 0; i < owl_zwrite_get_numrecips(z); i++) { 227 owl_message *m; 228 229 if (!owl_zwrite_recip_is_personal(owl_zwrite_get_recip_n(z, i))) 230 continue; 231 227 232 /* create the message */ 228 owl_message *m = g_new(owl_message, 1);233 m = g_new(owl_message, 1); 229 234 owl_message_create_from_zwrite(m, z, owl_zwrite_get_message(z), i); 230 235 … … 373 378 owl_function_makemsg("Waiting for ack..."); 374 379 375 /* If it's personal */ 376 if (owl_zwrite_is_personal(z)) { 377 /* create the outgoing message */ 378 owl_function_add_outgoing_zephyrs(z); 379 } 380 /* create the outgoing message */ 381 owl_function_add_outgoing_zephyrs(z); 380 382 } 381 383 #else … … 427 429 owl_function_makemsg("Waiting for ack..."); 428 430 429 /* If it's personal */ 430 if (owl_zwrite_is_personal(z)) { 431 /* Create the outgoing message. Restore the un-crypted message for display. */ 432 owl_zwrite_set_message_raw(z, old_msg); 433 owl_function_add_outgoing_zephyrs(z); 434 } 435 436 /* free the zwrite */ 431 /* Create the outgoing message. Restore the un-crypted message for display. */ 432 owl_zwrite_set_message_raw(z, old_msg); 433 owl_function_add_outgoing_zephyrs(z); 434 435 /* Clean up. */ 437 436 g_free(cryptmsg); 437 g_free(old_msg); 438 438 } 439 439 -
global.c
r9078f69 r219f52c 75 75 g_free(cd); 76 76 77 owl_messagelist_create(&(g->msglist));77 g->msglist = owl_messagelist_new(); 78 78 79 79 _owl_global_init_windows(g); … … 109 109 110 110 /* Create the widgets */ 111 owl_mainwin_init(&(g->mw),g->mainpanel.recwin);111 g->mw = owl_mainwin_new(g->mainpanel.recwin); 112 112 owl_msgwin_init(&(g->msgwin), g->mainpanel.msgwin); 113 113 owl_sepbar_init(g->mainpanel.sepwin); … … 241 241 /* windows */ 242 242 243 owl_mainwin *owl_global_get_mainwin(owl_global *g) { 244 return(&(g->mw)); 243 owl_mainwin *owl_global_get_mainwin(owl_global *g) 244 { 245 return g->mw; 245 246 } 246 247 … … 256 257 257 258 owl_messagelist *owl_global_get_msglist(owl_global *g) { 258 return (&(g->msglist));259 return g->msglist; 259 260 } 260 261 -
mainwin.c
r099597c rab88b05 4 4 static void owl_mainwin_resized(owl_window *w, void *user_data); 5 5 6 void owl_mainwin_init(owl_mainwin *mw,owl_window *window)6 CALLER_OWN owl_mainwin *owl_mainwin_new(owl_window *window) 7 7 { 8 owl_mainwin *mw = g_new(owl_mainwin, 1); 8 9 mw->curtruncated=0; 9 10 mw->lastdisplayed=-1; … … 16 17 /* For now, we do not bother with connecting up dependencies; that'll be a 17 18 * future refactor of the mainwin */ 19 20 return mw; 18 21 } 19 22 -
message.c
r6646fdb rbff1f22 836 836 837 837 838 /* set the "isprivate" attribute if it's a private zephyr. 839 ``private'' means recipient is non-empty and doesn't start wit 840 `@' */ 841 if (*n->z_recipient && *n->z_recipient != '@') { 838 /* set the "isprivate" attribute if it's a private zephyr. */ 839 if (owl_zwrite_recip_is_personal(n->z_recipient)) { 842 840 owl_message_set_isprivate(m); 843 841 } -
messagelist.c
rf271129 r219f52c 1 1 #include "owl.h" 2 2 3 void owl_messagelist_create(owl_messagelist *ml)3 CALLER_OWN owl_messagelist *owl_messagelist_new(void) 4 4 { 5 owl_messagelist *ml = g_new(owl_messagelist, 1); 5 6 ml->list = g_ptr_array_new(); 7 return ml; 6 8 } 7 9 8 void owl_messagelist_ cleanup(owl_messagelist *ml, bool free_messages)10 void owl_messagelist_delete(owl_messagelist *ml, bool free_messages) 9 11 { 10 12 if (free_messages) 11 13 g_ptr_array_foreach(ml->list, (GFunc)owl_message_delete, NULL); 12 14 g_ptr_array_free(ml->list, true); 15 g_free(ml); 13 16 } 14 17 -
owl.c
r3b17b57 r8135737 41 41 fprintf(stderr, " -v,--version print the Barnowl version number and exit\n"); 42 42 fprintf(stderr, " -h,--help print this help message\n"); 43 fprintf(stderr, " -c,--config-file specify an alternate config file\n");44 43 fprintf(stderr, " -s,--config-dir specify an alternate config dir (default ~/.owl)\n"); 44 fprintf(stderr, " -c,--config-file specify an alternate config file (default ~/.owl/init.pl)\n"); 45 45 fprintf(stderr, " -t,--tty set the tty name\n"); 46 46 } … … 585 585 ); 586 586 587 owl_function_debugmsg("startup: setting context interactive"); 588 589 owl_global_pop_context(&g); 590 owl_global_push_context(&g, OWL_CTX_INTERACTIVE|OWL_CTX_RECV, NULL, "recv", NULL); 591 587 592 /* process the startup file */ 588 593 owl_function_debugmsg("startup: processing startup file"); … … 596 601 owl_function_error("No such style: %s", owl_global_get_default_style(&g)); 597 602 598 owl_function_debugmsg("startup: setting context interactive");599 600 owl_global_pop_context(&g);601 owl_global_push_context(&g, OWL_CTX_INTERACTIVE|OWL_CTX_RECV, NULL, "recv", NULL);602 603 603 source = owl_window_redraw_source_new(); 604 604 g_source_attach(source, NULL); -
owl.h
rb9517cf r219f52c 452 452 char *name; 453 453 owl_filter *filter; 454 owl_messagelist ml;454 owl_messagelist *ml; 455 455 const owl_style *style; 456 456 int cachedmsgid; … … 533 533 534 534 typedef struct _owl_global { 535 owl_mainwin mw;535 owl_mainwin *mw; 536 536 owl_popwin *pw; 537 537 owl_msgwin msgwin; … … 551 551 int curmsg_vert_offset; 552 552 owl_view current_view; 553 owl_messagelist msglist;553 owl_messagelist *msglist; 554 554 WINDOW *input_pad; 555 555 owl_mainpanel mainpanel; -
perl/lib/BarnOwl.pm
r7803326 r8135737 329 329 our @all_commands; 330 330 331 if(!$configfile && -f $ENV{HOME} . "/.barnowlconf") { 332 $configfile = $ENV{HOME} . "/.barnowlconf"; 333 } 334 $configfile ||= $ENV{HOME}."/.owlconf"; 331 if(!$configfile) { 332 if (-f get_config_dir() . "/init.pl") { 333 $configfile = get_config_dir() . "/init.pl"; 334 } elsif (-f $ENV{HOME} . "/.barnowlconf") { 335 $configfile = $ENV{HOME} . "/.barnowlconf"; 336 } else { 337 $configfile = $ENV{HOME}."/.owlconf"; 338 } 339 } 335 340 336 341 # populate global variable space for legacy owlconf files -
perl/lib/BarnOwl/Message/Zephyr.pm
redd0be7 rbf70350 171 171 $class = $self->class; 172 172 $instance = $self->instance; 173 if ($self->recipient eq '*' || $self->recipient eq '') { 174 $to = ''; 175 } elsif ($self->recipient =~ /^@/) { 173 if ($self->recipient eq '' || $self->recipient =~ /^@/) { 176 174 $to = $self->recipient; 177 175 } else { -
perl/modules/Jabber/lib/BarnOwl/Module/Jabber.pm
rb8a3e00 r678f607 1482 1482 } 1483 1483 1484 sub complete_jabberlogout { 1485 my $ctx = shift; 1486 if($ctx->word == 1) { 1487 return ("-A", complete_account() ); 1488 } else { 1489 return (); 1490 } 1491 } 1492 1484 1493 BarnOwl::Completion::register_completer(jwrite => sub { BarnOwl::Module::Jabber::complete_jwrite(@_) }); 1494 BarnOwl::Completion::register_completer(jabberlogout => sub { BarnOwl::Module::Jabber::complete_jabberlogout(@_) }); 1485 1495 1486 1496 1; -
variable.c
rf271129 rd126a19 116 116 "both,in,out"), 117 117 118 OWLVAR_BOOL( "colorztext" /* %OwlVarStub */, 1, 119 "allow @color() in zephyrs to change color", 120 "Note that only messages received after this variable\n" 121 "is set will be affected." ), 118 OWLVAR_BOOL_FULL( "colorztext" /* %OwlVarStub */, 1, 119 "allow @color() in zephyrs to change color", 120 NULL, NULL, owl_variable_colorztext_set, NULL), 122 121 123 122 OWLVAR_BOOL( "fancylines" /* %OwlVarStub */, 1, … … 496 495 } 497 496 return owl_variable_bool_set_default(v, newval); 497 } 498 499 int owl_variable_colorztext_set(owl_variable *v, const void *newval) 500 { 501 int ret = owl_variable_bool_set_default(v, newval); 502 /* flush the format cache so that we see the update, but only if we're done initializing BarnOwl */ 503 if (owl_global_get_msglist(&g) != NULL) 504 owl_messagelist_invalidate_formats(owl_global_get_msglist(&g)); 505 if (owl_global_get_mainwin(&g) != NULL) { 506 owl_function_calculate_topmsg(OWL_DIRECTION_DOWNWARDS); 507 owl_mainwin_redisplay(owl_global_get_mainwin(&g)); 508 } 509 return ret; 498 510 } 499 511 -
view.c
rf271129 r219f52c 6 6 v->filter=f; 7 7 v->style=s; 8 owl_messagelist_create(&(v->ml));8 v->ml = owl_messagelist_new(); 9 9 owl_view_recalculate(v); 10 10 } … … 19 19 { 20 20 if (owl_filter_message_match(v->filter, m)) { 21 owl_messagelist_append_element( &(v->ml), m);21 owl_messagelist_append_element(v->ml, m); 22 22 } 23 23 } … … 30 30 int i, j; 31 31 const owl_messagelist *gml; 32 owl_messagelist *ml;33 32 owl_message *m; 34 33 35 34 gml=owl_global_get_msglist(&g); 36 ml=&(v->ml);37 35 38 36 /* nuke the old list, don't free the messages */ 39 owl_messagelist_ cleanup(ml, false);40 owl_messagelist_create(&(v->ml));37 owl_messagelist_delete(v->ml, false); 38 v->ml = owl_messagelist_new(); 41 39 42 40 /* find all the messages we want */ … … 45 43 m=owl_messagelist_get_element(gml, i); 46 44 if (owl_filter_message_match(v->filter, m)) { 47 owl_messagelist_append_element( ml, m);45 owl_messagelist_append_element(v->ml, m); 48 46 } 49 47 } … … 72 70 owl_message *owl_view_get_element(const owl_view *v, int index) 73 71 { 74 return (owl_messagelist_get_element(&(v->ml), index));72 return owl_messagelist_get_element(v->ml, index); 75 73 } 76 74 77 75 void owl_view_delete_element(owl_view *v, int index) 78 76 { 79 owl_messagelist_delete_element( &(v->ml), index);77 owl_messagelist_delete_element(v->ml, index); 80 78 } 81 79 82 80 void owl_view_undelete_element(owl_view *v, int index) 83 81 { 84 owl_messagelist_undelete_element( &(v->ml), index);82 owl_messagelist_undelete_element(v->ml, index); 85 83 } 86 84 87 85 int owl_view_get_size(const owl_view *v) 88 86 { 89 return (owl_messagelist_get_size(&(v->ml)));87 return owl_messagelist_get_size(v->ml); 90 88 } 91 89 … … 158 156 void owl_view_cleanup(owl_view *v) 159 157 { 160 owl_messagelist_ cleanup(&v->ml, false);158 owl_messagelist_delete(v->ml, false); 161 159 g_free(v->name); 162 160 } -
zephyr.c
rd953ede rf183917 697 697 Code_t ret; 698 698 ZNotice_t notice; 699 char *zsender = NULL; 699 700 700 701 memset(¬ice, 0, sizeof(notice)); … … 708 709 notice.z_class=zstr(class); 709 710 notice.z_class_inst=zstr(instance); 710 notice.z_sender=NULL; 711 if (!strcmp(recipient, "*") || !strcmp(recipient, "@")) { 711 if (!strcmp(recipient, "@")) { 712 712 notice.z_recipient=zstr(""); 713 if (*owl_global_get_zsender(&g))714 notice.z_sender=zstr(owl_global_get_zsender(&g));715 713 } else { 716 714 notice.z_recipient=zstr(recipient); 717 715 } 716 if (!owl_zwrite_recip_is_personal(recipient) && *owl_global_get_zsender(&g)) 717 notice.z_sender = zsender = long_zuser(owl_global_get_zsender(&g)); 718 718 notice.z_default_format=zstr("Class $class, Instance $instance:\nTo: @bold($recipient) at $time $date\nFrom: @bold{$1 <$sender>}\n\n$2"); 719 719 if (opcode) notice.z_opcode=zstr(opcode); … … 730 730 g_free(notice.z_message); 731 731 ZFreeNotice(¬ice); 732 g_free(zsender); 732 733 if (ret != ZERR_NONE) { 733 734 owl_function_error("Error sending zephyr: %s", error_message(ret)); … … 789 790 } else if (!strcmp(retnotice->z_message, ZSRVACK_NOTSENT)) { 790 791 if (retnotice->z_recipient == NULL 791 || *retnotice->z_recipient == 0 792 || *retnotice->z_recipient == '@') { 792 || !owl_zwrite_recip_is_personal(retnotice->z_recipient)) { 793 793 char *buff; 794 794 owl_function_error("No one subscribed to class %s", retnotice->z_class); -
zwrite.c
ref4074b r919cbf2 182 182 } 183 183 184 /* if there are no recipients we won't send a ping, which185 is what we want */186 184 for (i = 0; i < z->recips->len; i++) { 187 185 to = owl_zwrite_get_recip_n_with_realm(z, i); 188 send_ping(to, z->class, z->inst); 186 if (owl_zwrite_recip_is_personal(to)) 187 send_ping(to, z->class, z->inst); 189 188 g_free(to); 190 189 } … … 207 206 g_free(z->message); 208 207 209 if (z-> recips->len > 0 && z->cc) {208 if (z->cc && owl_zwrite_is_personal(z)) { 210 209 message = g_string_new("CC: "); 211 210 for (i = 0; i < z->recips->len; i++) { … … 338 337 } 339 338 340 int owl_zwrite_is_personal(const owl_zwrite *z) 339 bool owl_zwrite_recip_is_personal(const char *recipient) 340 { 341 return recipient[0] && recipient[0] != '@'; 342 } 343 344 bool owl_zwrite_is_personal(const owl_zwrite *z) 341 345 { 342 346 /* return true if at least one of the recipients is personal */ 343 347 int i; 344 char *recip; 345 346 for (i = 0; i < z->recips->len; i++) { 347 recip = z->recips->pdata[i]; 348 if (recip[0] != '@') return 1; 349 } 350 return(0); 348 349 for (i = 0; i < z->recips->len; i++) 350 if (owl_zwrite_recip_is_personal(z->recips->pdata[i])) 351 return true; 352 return false; 351 353 } 352 354
Note: See TracChangeset
for help on using the changeset viewer.