* gnu/packages/patches/texinfo-perl-compat.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/texinfo.scm (texinfo)[source](patches): New field.
		
			
				
	
	
		
			51 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| Fix compatibility with newer Perls.
 | |
| 
 | |
| The first patch is taken from upstream:
 | |
| https://svn.savannah.gnu.org/viewvc/texinfo?view=revision&revision=8008
 | |
| 
 | |
| The second gets rid of a deprecation warning that breaks some tests.
 | |
| Taken from Fedora: <https://bugzilla.redhat.com/show_bug.cgi?id=1590308>.
 | |
| 
 | |
| --- trunk/tp/Texinfo/Convert/XSParagraph/xspara.c	2017/04/30 14:57:26	7765
 | |
| +++ trunk/tp/Texinfo/Convert/XSParagraph/xspara.c	2018/07/13 15:39:29	8008
 | |
| @@ -248,6 +248,11 @@
 | |
|  
 | |
|    dTHX;
 | |
|  
 | |
| +#if PERL_VERSION > 27 || (PERL_VERSION == 27 && PERL_SUBVERSION > 8)
 | |
| +  /* needed due to thread-safe locale handling in newer perls */
 | |
| +  switch_to_global_locale();
 | |
| +#endif
 | |
| +
 | |
|    if (setlocale (LC_CTYPE, "en_US.UTF-8")
 | |
|        || setlocale (LC_CTYPE, "en_US.utf8"))
 | |
|      goto success;
 | |
| @@ -320,6 +325,10 @@
 | |
|      {
 | |
|  success: ;
 | |
|        free (utf8_locale);
 | |
| +#if PERL_VERSION > 27 || (PERL_VERSION == 27 && PERL_SUBVERSION > 8)
 | |
| +      /* needed due to thread-safe locale handling in newer perls */
 | |
| +      sync_locale();
 | |
| +#endif
 | |
|        /*
 | |
|        fprintf (stderr, "tried to set LC_CTYPE to UTF-8.\n");
 | |
|        fprintf (stderr, "character encoding is: %s\n",
 | |
| 
 | |
| diff -up texinfo-6.5/tp/Texinfo/Parser.pm.orig texinfo-6.5/tp/Texinfo/Parser.pm
 | |
| --- texinfo-6.5/tp/Texinfo/Parser.pm.orig	2018-06-12 13:40:29.356030136 +0200
 | |
| +++ texinfo-6.5/tp/Texinfo/Parser.pm	2018-06-12 13:41:28.357725639 +0200
 | |
| @@ -5478,11 +5478,11 @@ sub _parse_special_misc_command($$$$)
 | |
|      }
 | |
|    } elsif ($command eq 'clickstyle') {
 | |
|      # REMACRO
 | |
| -    if ($line =~ /^\s+@([[:alnum:]][[:alnum:]\-]*)({})?\s*/) {
 | |
| +    if ($line =~ /^\s+@([[:alnum:]][[:alnum:]\-]*)(\{})?\s*/) {
 | |
|        $args = ['@'.$1];
 | |
|        $self->{'clickstyle'} = $1;
 | |
|        $remaining = $line;
 | |
| -      $remaining =~ s/^\s+@([[:alnum:]][[:alnum:]\-]*)({})?\s*(\@(c|comment)((\@|\s+).*)?)?//;
 | |
| +      $remaining =~ s/^\s+@([[:alnum:]][[:alnum:]\-]*)(\{})?\s*(\@(c|comment)((\@|\s+).*)?)?//;
 | |
|        $has_comment = 1 if (defined($4));
 | |
|      } else {
 | |
|        $self->line_error (sprintf($self->__(
 |