From e001d6141c89a41ceca27b1b46e2a629afcc1bde Mon Sep 17 00:00:00 2001 From: Dan Boger Date: Sat, 7 Mar 2009 14:07:39 -0800 Subject: [PATCH] r522 - Allow escaping commas in the twitter_password variables --- twirssi.pl | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/twirssi.pl b/twirssi.pl index 0d4c1e5..44fae63 100644 --- a/twirssi.pl +++ b/twirssi.pl @@ -12,7 +12,7 @@ $Data::Dumper::Indent = 1; use vars qw($VERSION %IRSSI); $VERSION = "2.1.2beta"; -my ($REV) = '$Rev: 521 $' =~ /(\d+)/; +my ($REV) = '$Rev: 522 $' =~ /(\d+)/; %IRSSI = ( authors => 'Dan Boger', contact => 'zigdon@gmail.com', @@ -21,7 +21,7 @@ my ($REV) = '$Rev: 521 $' =~ /(\d+)/; . 'Can optionally set your bitlbee /away message to same', license => 'GNU GPL v2', url => 'http://twirssi.com', - changed => '$Date: 2009-03-07 13:50:54 -0800 (Sat, 07 Mar 2009) $', + changed => '$Date: 2009-03-07 14:07:25 -0800 (Sat, 07 Mar 2009) $', ); my $window; @@ -354,14 +354,26 @@ sub cmd_login { { my @user = split /\s*,\s*/, $autouser; my @pass = split /\s*,\s*/, $autopass; - if ( @user != @pass ) { + + # if a password ends with a '\', it was meant to escape the comma, and + # it should be concatinated with the next one + my @unescaped; + while (@pass) { + my $p = shift @pass; + while ($p =~ /\\$/ and @pass) { + $p .= ",". shift @pass; + } + push @unescaped, $p; + } + + if ( @user != @unescaped ) { ¬ice("Number of usernames doesn't match " . "the number of passwords - auto-login failed" ); } else { my ( $u, $p ); - while ( @user and @pass ) { + while ( @user and @unescaped ) { $u = shift @user; - $p = shift @pass; + $p = shift @unescaped; &cmd_login("$u $p"); } return; -- 2.39.5