[LON-CAPA-cvs] cvs: loncom /localize lonlocal.pm

albertel lon-capa-cvs@mail.lon-capa.org
Tue, 23 Sep 2003 02:19:10 -0000


albertel		Mon Sep 22 22:19:10 2003 EDT

  Modified files:              
    /loncom/localize	lonlocal.pm 
  Log:
  - I keep getting crashes without these checks on $lh
     I haven't yet tracked down who was causing these.
  - $r->content_laguages([&current_language]);
       keeps throwing:
   [Mon Sep 22 14:16:50 2003] [error] [client 127.0.0.1] val is not of type APR::ArrayHeader at /home/httpd/lib/perl/Apache/lonlocal.pm line 128.
     I am working around it by ignoring it for now
  
  
  
Index: loncom/localize/lonlocal.pm
diff -u loncom/localize/lonlocal.pm:1.11 loncom/localize/lonlocal.pm:1.12
--- loncom/localize/lonlocal.pm:1.11	Mon Sep 22 18:53:21 2003
+++ loncom/localize/lonlocal.pm	Mon Sep 22 22:19:09 2003
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Localization routines
 #
-# $Id: lonlocal.pm,v 1.11 2003/09/22 22:53:21 www Exp $
+# $Id: lonlocal.pm,v 1.12 2003/09/23 02:19:09 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -184,20 +184,28 @@
 
 sub mt (@) {
     unless ($ENV{'environment.translator'}) {
-	return $lh->maketext(@_);
+	if ($lh) {
+	    return $lh->maketext(@_);
+	} else {
+	    return @_;
+	}
     } else {
-	my $trans=$lh->maketext(@_);
-	my $link='<a target="trans" href="/cgi-bin/translator.pl?arg1='.
-	    &Apache::lonnet::escape($_[0]).'&arg2='.
-	    &Apache::lonnet::escape($_[1]).'&arg3='.
-	    &Apache::lonnet::escape($_[2]).'&lang='.
-	    $ENV{'environment.translator'}.
-	    '">[['.$trans.']]</a>';
-	if ($ENV{'transreroute'}) {
-	    $reroute.=$link;
-	    return $trans;
+	if ($lh) {
+	    my $trans=$lh->maketext(@_);
+	    my $link='<a target="trans" href="/cgi-bin/translator.pl?arg1='.
+		&Apache::lonnet::escape($_[0]).'&arg2='.
+		&Apache::lonnet::escape($_[1]).'&arg3='.
+		&Apache::lonnet::escape($_[2]).'&lang='.
+		$ENV{'environment.translator'}.
+		'">[['.$trans.']]</a>';
+	    if ($ENV{'transreroute'}) {
+		$reroute.=$link;
+		return $trans;
+	    } else {
+		return $link;
+	    }
 	} else {
-	    return $link;
+	    return @_;
 	}
     }
 }
@@ -212,8 +220,12 @@
 # ============================================================== What encoding?
 
 sub current_encoding {
-    my $enc=$lh->maketext('char_encoding');
-    return ($enc eq 'char_encoding'?'':$enc);
+    if ($lh) {
+	my $enc=$lh->maketext('char_encoding');
+	return ($enc eq 'char_encoding'?'':$enc);
+    } else {
+	return undef;
+    }
 }
 
 # ============================================================== Translate hash
@@ -253,7 +265,9 @@
 sub get_language_handle {
     my $r=shift;
     $lh=Apache::localize->get_handle(&Apache::loncommon::preferred_languages);
-    $r->content_languages(["&current_language()"]);
+    if (&Apache::lonnet::mod_perl_version == 1) {
+	$r->content_languages([&current_language()]);
+    }
     my $enc=&current_encoding();
     if ($enc) {