[897] in BarnOwl Developers

home help back first fref pref prev next nref lref last post

[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);
 


home help back first fref pref prev next nref lref last post