[897] in BarnOwl Developers
[D-O-H] r886 - in branches/barnowl_unicode/owl: . perl/modules/Jabber/lib/BarnOwl/Module perl/modules/Jabber/lib/BarnOwl/Module/Jabber
daemon@ATHENA.MIT.EDU (asedeno@MIT.EDU)
Thu Oct 29 18:10:54 2009
Resent-From: nelhage@mit.edu
Resent-To: barnowl-dev-mtg@charon.mit.edu
To: dirty-owl-hackers@mit.edu
From: asedeno@MIT.EDU
Reply-to: dirty-owl-hackers@MIT.EDU
Date: Wed, 16 Jan 2008 20:18:25 -0500 (EST)
Author: asedeno
Date: 2008-01-16 20:18:25 -0500 (Wed, 16 Jan 2008)
New Revision: 886
Modified:
branches/barnowl_unicode/owl/editwin.c
branches/barnowl_unicode/owl/perl/modules/Jabber/lib/BarnOwl/Module/Jabber.pm
branches/barnowl_unicode/owl/perl/modules/Jabber/lib/BarnOwl/Module/Jabber/Connection.pm
Log:
unicode/glib branch
More jabber utf-8 sanitizing.
New helper function to validate strings from C and set the utf8 flag if needed.
Modified: branches/barnowl_unicode/owl/editwin.c
===================================================================
--- branches/barnowl_unicode/owl/editwin.c 2008-01-16 19:40:36 UTC (rev 885)
+++ branches/barnowl_unicode/owl/editwin.c 2008-01-17 01:18:25 UTC (rev 886)
@@ -147,7 +147,7 @@
/* if (text[e->lock-1]=='\n') e->lock--; */
/* e->buffx=x; */
/* e->buffy=y; */
- owl_editwin_adjust_for_locktext(e);
+ _owl_editwin_set_xy_by_index(e, e->lock);
owl_editwin_redisplay(e, 0);
}
@@ -291,10 +291,15 @@
/* translate to echochar, *except* for the locktext */
int len;
int dolocklen = e->lock - (ptr1 - e->buff);
+ char *locktext;
+ char tmp = e->buff[dolocklen];
- for (i = 0; i < dolocklen; i++) {
- waddch(e->curswin, buff[i]);
- }
+ e->buff[dolocklen] = '\0';
+ locktext = owl_strdup(e->buff);
+ e->buff[dolocklen] = tmp;
+
+ waddstr(e->curswin, locktext);
+
len = strlen(buff);
for (i = 0; i < len-dolocklen; i++) {
waddch(e->curswin, e->echochar);
Modified: branches/barnowl_unicode/owl/perl/modules/Jabber/lib/BarnOwl/Module/Jabber/Connection.pm
===================================================================
--- branches/barnowl_unicode/owl/perl/modules/Jabber/lib/BarnOwl/Module/Jabber/Connection.pm 2008-01-16 19:40:36 UTC (rev 885)
+++ branches/barnowl_unicode/owl/perl/modules/Jabber/lib/BarnOwl/Module/Jabber/Connection.pm 2008-01-17 01:18:25 UTC (rev 886)
@@ -1,5 +1,6 @@
use warnings;
use strict;
+use utf8;
=head1 NAME
Modified: branches/barnowl_unicode/owl/perl/modules/Jabber/lib/BarnOwl/Module/Jabber.pm
===================================================================
--- branches/barnowl_unicode/owl/perl/modules/Jabber/lib/BarnOwl/Module/Jabber.pm 2008-01-16 19:40:36 UTC (rev 885)
+++ branches/barnowl_unicode/owl/perl/modules/Jabber/lib/BarnOwl/Module/Jabber.pm 2008-01-17 01:18:25 UTC (rev 886)
@@ -25,6 +25,8 @@
use Net::DNS;
use Getopt::Long;
+use utf8;
+
our $VERSION = 0.1;
BEGIN {
@@ -293,9 +295,9 @@
sub cmd_login {
my $cmd = shift;
my $jid = new Net::Jabber::JID;
- $jid->SetJID(shift);
+ $jid->SetJID(check_utf8(shift));
my $password = '';
- $password = shift if @_;
+ $password = check_utf8(shift) if @_;
my $uid = $jid->GetUserID();
my $componentname = $jid->GetServer();
@@ -372,7 +374,7 @@
if ( !$vars{jlogin_havepass} && ( !@result || $result[0] eq '401' || $result[0] eq 'error') ) {
$vars{jlogin_havepass} = 1;
$conn->removeConnection($jidStr);
- BarnOwl::start_password( "Password for $jidStr: ", \&do_login );
+ BarnOwl::start_password("Password for $jidStr: ", \&do_login );
return "";
}
$conn->removeConnection($jidStr);
@@ -476,7 +478,7 @@
return;
}
else {
- $to = shift @ARGV;
+ $to = check_utf8(shift @ARGV);
}
my @candidates = guess_jwrite($from, $to);
@@ -520,7 +522,9 @@
my $cmd = "jwrite $jwrite_to -a $jwrite_from";
$cmd .= " -t $jwrite_thread" if $jwrite_thread;
$cmd .= " -s $jwrite_subject" if $jwrite_subject;
- BarnOwl::start_edit_win( $cmd, \&process_owl_jwrite );
+ queue_admin_msg("$cmd - utf8: ".Encode::is_utf8($cmd));
+
+ BarnOwl::start_edit_win( Encode::encode_utf8($cmd), \&process_owl_jwrite );
}
sub cmd_jmuc {
@@ -1078,6 +1082,14 @@
### Helper functions
+sub check_utf8
+{
+ my $str = shift;
+ Encode::_utf8_on($str);
+ Encode::_utf8_off($str) unless (Encode::is_utf8($str, 1));
+ return $str;
+}
+
sub j2hash {
my $j = shift;
my %initProps = %{ shift() };
@@ -1212,7 +1224,7 @@
}
sub resolveConnectedJID {
- my $givenJIDStr = shift;
+ my $givenJIDStr = check_utf8(shift);
my $givenJID = new Net::Jabber::JID;
$givenJID->SetJID($givenJIDStr);