[LON-CAPA-cvs] cvs: loncom / LONCAPA.pm /lonnet/perl lonnet.pm /xml londefdef.pm

raeburn raeburn at source.lon-capa.org
Thu Aug 6 20:09:31 EDT 2026


raeburn		Fri Aug  7 00:09:31 2026 EDT

  Modified files:              
    /loncom/xml	londefdef.pm 
    /loncom	LONCAPA.pm 
    /loncom/lonnet/perl	lonnet.pm 
  Log:
  - [utf8x]{inputenc} and recent hyperref packages are incompatible. 
  
  
Index: loncom/xml/londefdef.pm
diff -u loncom/xml/londefdef.pm:1.479 loncom/xml/londefdef.pm:1.480
--- loncom/xml/londefdef.pm:1.479	Fri Feb  6 20:30:07 2026
+++ loncom/xml/londefdef.pm	Fri Aug  7 00:09:30 2026
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Tags Default Definition Module
 #
-# $Id: londefdef.pm,v 1.479 2026/02/06 20:30:07 raeburn Exp $
+# $Id: londefdef.pm,v 1.480 2026/08/07 00:09:30 raeburn Exp $
 #
 #
 # Copyright Michigan State University Board of Trustees
@@ -4632,6 +4632,12 @@
 sub latex_header {
     my ($mode,$pdfforms) = @_;
     my $currentstring = '';
+    my $hyperrefyear = '';
+    if (($env{'form.pdfFormFields'} eq 'yes') || ($pdfforms eq 'yes')) {
+        if ($Apache::lonnet::hyperref =~ /^(\d+)\-\d+\-\d+$/) {
+            $hyperrefyear = $1;
+        }
+    }
 
     $currentstring .=
 	"\n% &Apache::lonxml::londefdef \n" .
@@ -4650,8 +4656,16 @@
 	'\usepackage{picins}'."\n".
 	'\usepackage[T1]{fontenc}'."\n".
 	'\usepackage{lmodern}'."\n".
-	'\usepackage[postscript]{ucs}'."\n".
-	'\usepackage[utf8x]{inputenc}'."\n".
+	'\usepackage[postscript]{ucs}'."\n";
+    if ((($env{'form.pdfFormFields'} eq 'yes') || ($pdfforms eq 'yes')) && 
+        ($hyperrefyear > 2022)) {
+        $currentstring .=
+            '\usepackage[utf8]{inputenc}'."\n";
+    } else {
+        $currentstring .=
+            '\usepackage[utf8x]{inputenc}'."\n";
+    }
+    $currentstring .=
 	'\usepackage{pifont}'."\n".
 	'\usepackage{latexsym}'."\n".
 	'\usepackage{epsfig}'."\n".
Index: loncom/LONCAPA.pm
diff -u loncom/LONCAPA.pm:1.37 loncom/LONCAPA.pm:1.38
--- loncom/LONCAPA.pm:1.37	Thu Aug  6 21:45:47 2026
+++ loncom/LONCAPA.pm	Fri Aug  7 00:09:31 2026
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Base routines
 #
-# $Id: LONCAPA.pm,v 1.37 2026/08/06 21:45:47 raeburn Exp $
+# $Id: LONCAPA.pm,v 1.38 2026/08/07 00:09:31 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -181,6 +181,38 @@
     return $year;
 }
 
+# Return the version date of hyperref.sty available on this server.
+
+sub hyperref_versiondate {
+    my ($kpse,$hyperrefsty,$versiondate);
+    $kpse = can_run('kpsewhich');
+    if ($kpse ne '') {
+        my @args = ($kpse,'hyperref.sty');
+        if (open(my $pipe,'-|', at args)) {
+            $hyperrefsty = <$pipe>;
+            chomp($hyperrefsty);
+            close($pipe);
+        }
+        if ($hyperrefsty ne '') {
+            if (open(my $fh,'<',$hyperrefsty)) {
+                my $getnextline;
+                while (my $line=<$fh>) {
+                    if ($line =~ /^\Q\ProvidesPackage{hyperref}\E/) {
+                        $getnextline = 1; 
+                    } elsif ($getnextline) {
+                        if ($line =~ /^\s*\[(\d+\-\d+\-\d+)\s+v/) {
+                            $versiondate = $1;
+                        }
+                        last;
+                    }
+                }
+                close($fh);
+            }
+        }
+    }
+    return $versiondate;
+}
+
 #----------------------------------------------------------------------
 #
 #  some of these subs need a bit of documentation
Index: loncom/lonnet/perl/lonnet.pm
diff -u loncom/lonnet/perl/lonnet.pm:1.1546 loncom/lonnet/perl/lonnet.pm:1.1547
--- loncom/lonnet/perl/lonnet.pm:1.1546	Thu Aug  6 21:45:46 2026
+++ loncom/lonnet/perl/lonnet.pm	Fri Aug  7 00:09:31 2026
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # TCP networking package
 #
-# $Id: lonnet.pm,v 1.1546 2026/08/06 21:45:46 raeburn Exp $
+# $Id: lonnet.pm,v 1.1547 2026/08/07 00:09:31 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -79,7 +79,7 @@
 
 use vars qw(%perlvar %spareid %pr %prp $memcache %packagetab $tmpdir $deftex
             $_64bit %env %protocol %loncaparevs %serverhomeIDs %needsrelease
-            %managerstab $passwdmin $texlive);
+            %managerstab $passwdmin $texlive $hyperref);
 
 my (%badServerCache, $memcache, %courselogs, %accesshash, %domainrolehash,
     %userrolehash, $processmarker, $dumpcount, %coursedombuf,
@@ -16869,6 +16869,11 @@
     $texlive = LONCAPA::texlive_year();
 }
 
+# ------------ get hyperref.sty version
+{
+    $hyperref = LONCAPA::hyperref_versiondate();
+}
+
 $memcache=new Cache::Memcached({'servers'           => ['127.0.0.1:11211'],
 				'compress_threshold'=> 20_000,
  			        });




More information about the LON-CAPA-cvs mailing list