Changes in / [19cc7b00:d4ecc78]
- Files:
-
- 1 deleted
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
perl/lib/BarnOwl/Complete/Zephyr.pm
r84db778 r8f16dcd 30 30 } 31 31 32 sub complete_sub { 33 my $ctx = shift; 34 return complete_flags($ctx, 35 [], 36 { 37 "-r" => \&complete_realm, 38 }); 39 } 40 32 41 sub on_message { 33 42 my $m = shift; … … 41 50 BarnOwl::Completion::register_completer(zcrypt => \&complete_zwrite); 42 51 52 # TODO: Handle aliases transparently in the core completion code? 53 BarnOwl::Completion::register_completer(sub => \&complete_sub); 54 BarnOwl::Completion::register_completer(subscribe => \&complete_sub); 55 43 56 $BarnOwl::Hooks::newMessage->add("BarnOwl::Complete::Zephyr::on_message"); 44 57 -
perl/lib/BarnOwl/Completion.pm
rc4efb46 rf987504 18 18 point_move replace_region); 19 19 20 use List::Util qw(m infirst);20 use List::Util qw(max first); 21 21 22 22 our %completers = (); … … 76 76 sub common_prefix { 77 77 my @words = @_; 78 my $len = m in(map {length($_)} @words);78 my $len = max(map {length($_)} @words); 79 79 my $pfx = ''; 80 80 for my $i (1..$len) { -
perl/modules/IRC/lib/BarnOwl/Module/IRC.pm
rab9cd8f r96f7b07 18 18 use BarnOwl::Message::IRC; 19 19 use BarnOwl::Module::IRC::Connection qw(is_private); 20 use BarnOwl::Module::IRC::Completion;21 20 22 21 use Net::IRC; -
perl/modules/Jabber/lib/BarnOwl/Module/Jabber.pm
r57ba9f1 r004d683 19 19 use BarnOwl::Module::Jabber::Connection; 20 20 use BarnOwl::Module::Jabber::ConnectionManager; 21 use BarnOwl::Completion::Util qw(complete_flags);22 21 23 22 use Authen::SASL qw(Perl); … … 63 62 $conn ||= BarnOwl::Module::Jabber::ConnectionManager->new; 64 63 our %vars; 65 our %completion_jids;66 64 67 65 sub onStart { … … 166 164 167 165 $blistStr .= sprintf '%-15s %s', $name, $buddy->GetJID(); 168 $completion_jids{$name} = 1;169 $completion_jids{$buddy->GetJID()} = 1;170 166 171 167 if ($res) { … … 431 427 BarnOwl::error( "Error in connect: " . join( " ", @result ) ); 432 428 } else { 433 my $roster = $conn->getRosterFromJID($jidStr); 434 $roster->fetch(); 429 $conn->getRosterFromJID($jidStr)->fetch(); 435 430 $client->PresenceSend( priority => 1 ); 436 431 my $fullJid = $client->{SESSION}->{FULLJID} || $jidStr; … … 442 437 #queue_admin_msg("Connected to jabber as $fullJid ($client->{fileno})"); 443 438 BarnOwl::add_dispatch($client->{fileno}, sub { $client->OwlProcess() }); 444 445 # populate completion from roster.446 for my $buddy ( $roster->jids('all') ) {447 my %jq = $roster->query($buddy);448 my $name = $jq{name} || $buddy->GetUserID();449 $completion_jids{$name} = 1;450 $completion_jids{$buddy->GetJID()} = 1;451 }452 439 } 453 440 } … … 660 647 MaxChars => 0 661 648 }); 662 $completion_jids{$muc} = 1;663 649 return; 664 650 } … … 715 701 716 702 my $presence = "JIDs present in " . $m->BaseJID; 717 $completion_jids{$m->BaseJID} = 1;718 703 if($m->Anonymous) { 719 704 $presence .= " [anonymous MUC]"; … … 890 875 $name = "" unless (1 == scalar(@ARGV)); 891 876 892 $completion_jids{$baseJID} = 1;893 $completion_jids{$name} = 1 if $name;894 895 877 foreach my $to (@ARGV) { 896 878 my %jq = $roster->query($to); … … 1075 1057 1076 1058 sub process_presence_available { 1059 return unless (BarnOwl::getvar('jabber:show_logins') eq 'on'); 1077 1060 my ( $sid, $p ) = @_; 1078 1061 my $from = $p->GetFrom('jid')->GetJID('base'); 1079 $completion_jids{$from} = 1;1080 return unless (BarnOwl::getvar('jabber:show_logins') eq 'on');1081 1062 my $to = $p->GetTo(); 1082 1063 my $type = $p->GetType(); … … 1228 1209 if ($connection->FindMUC(jid => $to)); 1229 1210 } 1230 1231 # Populate completion.1232 if ($dir eq 'in') {1233 $completion_jids{ $props{sender} }= 1;1234 }1235 else {1236 $completion_jids{ $props{recipient} } = 1;1237 }1238 1211 } 1239 1212 elsif ( $jtype eq 'groupchat' ) { 1240 1213 my $nick = $props{nick} = $from->GetResource(); 1241 1214 my $room = $props{room} = $from->GetJID('base'); 1242 $completion_jids{$room} = 1;1243 1215 1244 1216 $props{sender} = $nick || $room; … … 1412 1384 } 1413 1385 1414 ################################################################################1415 ### Completion1416 1417 sub complete_user_or_muc { return keys %completion_jids; }1418 sub complete_account { return $conn->getJIDs(); }1419 1420 sub complete_jwrite {1421 my $ctx = shift;1422 return complete_flags($ctx,1423 [qw(-t -i -s)],1424 {1425 "-a" => \&complete_account,1426 },1427 \&complete_user_or_muc1428 );1429 }1430 1431 BarnOwl::Completion::register_completer(jwrite => sub { BarnOwl::Module::Jabber::complete_jwrite(@_) });1432 1433 1386 1; -
perlglue.xs
rd77e909 r6dc2d6b 332 332 CODE: 333 333 owl_select_remove_perl_dispatch(fd); 334 335 336 AV*337 all_filters()338 PREINIT:339 AV *filters;340 owl_list *fl;341 owl_filter *f;342 int i;343 CODE:344 {345 fl = owl_global_get_filterlist(&g);346 filters = newAV();347 for(i=0;i<owl_list_get_size(fl);i++) {348 f = owl_list_get_element(fl, i);349 av_push(filters, newSVpv(owl_filter_get_name(f), 0));350 }351 RETVAL = filters;352 sv_2mortal((SV*)RETVAL);353 }354 OUTPUT:355 RETVAL356 334 357 335 MODULE = BarnOwl PACKAGE = BarnOwl::Internal -
t/completion.t
rc4efb46 r7be5d8b 122 122 is(BarnOwl::Completion::common_prefix(qw(abc abc)), 'abc'); 123 123 124 is(BarnOwl::Completion::common_prefix('a', ''), '');125 126 124 ## Test complete_flags 127 125
Note: See TracChangeset
for help on using the changeset viewer.