texlive[49776] Build/source: luatex: patches for pplib.

commits+lscarso at tug.org commits+lscarso at tug.org
Mon Jan 21 00:58:29 CET 2019


Revision: 49776
          http://tug.org/svn/texlive?view=revision&revision=49776
Author:   lscarso
Date:     2019-01-21 00:58:29 +0100 (Mon, 21 Jan 2019)
Log Message:
-----------
luatex: patches for pplib. Small cleanup of the code.

Modified Paths:
--------------
    trunk/Build/source/libs/lua53/configure
    trunk/Build/source/libs/lua53/configure.ac
    trunk/Build/source/texk/web2c/luatexdir/NEWS
    trunk/Build/source/texk/web2c/luatexdir/image/epdf.h
    trunk/Build/source/texk/web2c/luatexdir/lua/luainit.c
    trunk/Build/source/texk/web2c/luatexdir/lua/mplibstuff.c
    trunk/Build/source/texk/web2c/luatexdir/luaffi/ffi.c
    trunk/Build/source/texk/web2c/luatexdir/luaffi/ffi.h
    trunk/Build/source/texk/web2c/luatexdir/luapplib/ppconf.h
    trunk/Build/source/texk/web2c/luatexdir/luapplib/ppload.c
    trunk/Build/source/texk/web2c/luatexdir/luapplib/util/utilarm.h
    trunk/Build/source/texk/web2c/luatexdir/luapplib/util/utilfpred.c
    trunk/Build/source/texk/web2c/luatexdir/luatex_svnversion.h
    trunk/Build/source/texk/web2c/luatexdir/tex/errors.c

Modified: trunk/Build/source/libs/lua53/configure
===================================================================
--- trunk/Build/source/libs/lua53/configure	2019-01-20 23:20:10 UTC (rev 49775)
+++ trunk/Build/source/libs/lua53/configure	2019-01-20 23:58:29 UTC (rev 49776)
@@ -4827,6 +4827,183 @@
 fi
 
 
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5
+$as_echo_n "checking for $CC option to accept ISO C99... " >&6; }
+if ${ac_cv_prog_cc_c99+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_prog_cc_c99=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <wchar.h>
+#include <stdio.h>
+
+// Check varargs macros.  These examples are taken from C99 6.10.3.5.
+#define debug(...) fprintf (stderr, __VA_ARGS__)
+#define showlist(...) puts (#__VA_ARGS__)
+#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
+static void
+test_varargs_macros (void)
+{
+  int x = 1234;
+  int y = 5678;
+  debug ("Flag");
+  debug ("X = %d\n", x);
+  showlist (The first, second, and third items.);
+  report (x>y, "x is %d but y is %d", x, y);
+}
+
+// Check long long types.
+#define BIG64 18446744073709551615ull
+#define BIG32 4294967295ul
+#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
+#if !BIG_OK
+  your preprocessor is broken;
+#endif
+#if BIG_OK
+#else
+  your preprocessor is broken;
+#endif
+static long long int bignum = -9223372036854775807LL;
+static unsigned long long int ubignum = BIG64;
+
+struct incomplete_array
+{
+  int datasize;
+  double data[];
+};
+
+struct named_init {
+  int number;
+  const wchar_t *name;
+  double average;
+};
+
+typedef const char *ccp;
+
+static inline int
+test_restrict (ccp restrict text)
+{
+  // See if C++-style comments work.
+  // Iterate through items via the restricted pointer.
+  // Also check for declarations in for loops.
+  for (unsigned int i = 0; *(text+i) != '\0'; ++i)
+    continue;
+  return 0;
+}
+
+// Check varargs and va_copy.
+static void
+test_varargs (const char *format, ...)
+{
+  va_list args;
+  va_start (args, format);
+  va_list args_copy;
+  va_copy (args_copy, args);
+
+  const char *str;
+  int number;
+  float fnumber;
+
+  while (*format)
+    {
+      switch (*format++)
+	{
+	case 's': // string
+	  str = va_arg (args_copy, const char *);
+	  break;
+	case 'd': // int
+	  number = va_arg (args_copy, int);
+	  break;
+	case 'f': // float
+	  fnumber = va_arg (args_copy, double);
+	  break;
+	default:
+	  break;
+	}
+    }
+  va_end (args_copy);
+  va_end (args);
+}
+
+int
+main ()
+{
+
+  // Check bool.
+  _Bool success = false;
+
+  // Check restrict.
+  if (test_restrict ("String literal") == 0)
+    success = true;
+  char *restrict newvar = "Another string";
+
+  // Check varargs.
+  test_varargs ("s, d' f .", "string", 65, 34.234);
+  test_varargs_macros ();
+
+  // Check flexible array members.
+  struct incomplete_array *ia =
+    malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
+  ia->datasize = 10;
+  for (int i = 0; i < ia->datasize; ++i)
+    ia->data[i] = i * 1.234;
+
+  // Check named initializers.
+  struct named_init ni = {
+    .number = 34,
+    .name = L"Test wide string",
+    .average = 543.34343,
+  };
+
+  ni.number = 58;
+
+  int dynamic_array[ni.number];
+  dynamic_array[ni.number - 1] = 543;
+
+  // work around unused variable warnings
+  return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
+	  || dynamic_array[ni.number - 1] != 543);
+
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_c99=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c99" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c99" in
+  x)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c99"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+$as_echo "$ac_cv_prog_cc_c99" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c99" != xno; then :
+
+fi
+
+
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2

Modified: trunk/Build/source/libs/lua53/configure.ac
===================================================================
--- trunk/Build/source/libs/lua53/configure.ac	2019-01-20 23:20:10 UTC (rev 49775)
+++ trunk/Build/source/libs/lua53/configure.ac	2019-01-20 23:58:29 UTC (rev 49776)
@@ -16,6 +16,7 @@
 KPSE_BASIC([lua53])
 
 AC_PROG_CC
+AC_PROG_CC_C99
 AC_PROG_RANLIB
 AC_PROG_LN_S
 

Modified: trunk/Build/source/texk/web2c/luatexdir/NEWS
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/NEWS	2019-01-20 23:20:10 UTC (rev 49775)
+++ trunk/Build/source/texk/web2c/luatexdir/NEWS	2019-01-20 23:58:29 UTC (rev 49776)
@@ -1,4 +1,12 @@
 ==============================================================
+LuaTeX 1.09.2 2019-01-19
+==============================================================
+
+This is a transitional release to LuaTeX 1.10 for TeX Live 2019
+
+
+
+==============================================================
 LuaTeX 1.09 2018-10-23
 ==============================================================
 

Modified: trunk/Build/source/texk/web2c/luatexdir/image/epdf.h
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/image/epdf.h	2019-01-20 23:20:10 UTC (rev 49775)
+++ trunk/Build/source/texk/web2c/luatexdir/image/epdf.h	2019-01-20 23:58:29 UTC (rev 49776)
@@ -37,6 +37,7 @@
 #  include <stdio.h>
 #  include <string.h>
 #  include <kpathsea/c-ctype.h>
+#  include <kpathsea/simpletypes.h>
 #  include <sys/stat.h>
 #  include <dirent.h>
 
@@ -50,7 +51,7 @@
 
 /* the following code is extremly ugly but needed for including web2c/config.h */
 
-typedef const char *const_string;   /* including kpathsea/types.h doesn't work on some systems */
+/*typedef const char *const_string;*/   /* including kpathsea/types.h doesn't work on some systems */
 
 #  define KPATHSEA_CONFIG_H     /* avoid including other kpathsea header files */
 

Modified: trunk/Build/source/texk/web2c/luatexdir/lua/luainit.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/lua/luainit.c	2019-01-20 23:20:10 UTC (rev 49775)
+++ trunk/Build/source/texk/web2c/luatexdir/lua/luainit.c	2019-01-20 23:58:29 UTC (rev 49776)
@@ -2,7 +2,7 @@
 
 luainit.w
 
-Copyright 2006-2018 Taco Hoekwater <taco@@luatex.org>
+Copyright 2006-2019 Taco Hoekwater <taco@@luatex.org>
 
 This file is part of LuaTeX.
 
@@ -425,7 +425,7 @@
                  "the terms of the GNU General Public License, version 2 or (at your option)\n"
                  "any later version. For more information about these matters, see the file\n"
                  "named COPYING and the LuaTeX source.\n\n"
-                 "LuaTeX is Copyright 2018 Taco Hoekwater and the LuaTeX Team.\n");
+                 "LuaTeX is Copyright 2019 Taco Hoekwater and the LuaTeX Team.\n");
             /* *INDENT-ON* */
             uexit(0);
         } else if (ARGUMENT_IS("credits")) {
@@ -926,8 +926,11 @@
 #if defined(WIN32) || defined(__MINGW32__) || defined(__CYGWIN__)
     mk_suffixlist();
 #endif
-    /*tex Must be initialized before options are parsed.  */
+    /*tex Must be initialized before options are parsed and might get adapted by config table.  */
     interactionoption = 4;
+    filelineerrorstylep = false;
+    haltonerrorp = false;
+    tracefilenames = 1;
     dump_name = NULL;
     /*tex
         In the next option 0 means ``disable Synchronize TeXnology''. The
@@ -1075,7 +1078,6 @@
         }
         kpse_init = -1;
         get_lua_boolean("texconfig", "kpse_init", &kpse_init);
-
         if (kpse_init != 0) {
             /*tex re-enable loading of texmf.cnf values, see luatex.ch */
             luainit = 0;
@@ -1083,14 +1085,16 @@
             kpse_init = 1;
         }
         /*tex |prohibit_file_trace| (boolean) */
-        tracefilenames = 1;
         get_lua_boolean("texconfig", "trace_file_names", &tracefilenames);
         /*tex |file_line_error| */
-        filelineerrorstylep = false;
         get_lua_boolean("texconfig", "file_line_error", &filelineerrorstylep);
         /*tex |halt_on_error| */
-        haltonerrorp = false;
         get_lua_boolean("texconfig", "halt_on_error", &haltonerrorp);
+        /*tex |interactionoption| */
+        get_lua_number("texconfig", "interaction", &interactionoption);
+        if ((interactionoption < 0) || (interactionoption > 4)) {
+            interactionoption = 4;
+        }
         /*tex |restrictedshell| */
         v1 = NULL;
         get_lua_string("texconfig", "shell_escape", &v1);

Modified: trunk/Build/source/texk/web2c/luatexdir/lua/mplibstuff.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/lua/mplibstuff.c	2019-01-20 23:20:10 UTC (rev 49775)
+++ trunk/Build/source/texk/web2c/luatexdir/lua/mplibstuff.c	2019-01-20 23:58:29 UTC (rev 49776)
@@ -2,7 +2,7 @@
 
 mplibstuff.w
 
-Copyright 2017 LuaTeX team <bugs@@luatex.org>
+Copyright 2019 LuaTeX team <bugs@@luatex.org>
 
 This file is part of LuaTeX.
 

Modified: trunk/Build/source/texk/web2c/luatexdir/luaffi/ffi.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaffi/ffi.c	2019-01-20 23:20:10 UTC (rev 49775)
+++ trunk/Build/source/texk/web2c/luatexdir/luaffi/ffi.c	2019-01-20 23:58:29 UTC (rev 49776)
@@ -3576,7 +3576,7 @@
 "\n"
 "The ARM processor is currently not supported. There are subtle\n"
 "differences between this module and the one in luajitTeX \n"
-"and we hope to be in sync around TeXLive 2018.\n"
+"and we hope to be in sync around TeXLive 2020.\n"
 "Different OS can have different interfaces,\n"
 "for instance OS_WIN has not 'complex.h'. If you want portable\n"
 "code, stick to the most common concepts.\n"

Modified: trunk/Build/source/texk/web2c/luatexdir/luaffi/ffi.h
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luaffi/ffi.h	2019-01-20 23:20:10 UTC (rev 49775)
+++ trunk/Build/source/texk/web2c/luatexdir/luaffi/ffi.h	2019-01-20 23:58:29 UTC (rev 49776)
@@ -404,6 +404,7 @@
     complex_float ret = { real, imag };
     return ret;
 }
+//#if !defined(__MINGW64__)
 static double creal(complex_double c) {
     return c.real;
 }
@@ -417,6 +418,7 @@
 static float cimagf(complex_float c) {
     return c.imag;
 }
+//#endif
 #endif
 
 #define CALLBACK_FUNC_USR_IDX 1

Modified: trunk/Build/source/texk/web2c/luatexdir/luapplib/ppconf.h
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luapplib/ppconf.h	2019-01-20 23:20:10 UTC (rev 49775)
+++ trunk/Build/source/texk/web2c/luatexdir/luapplib/ppconf.h	2019-01-20 23:58:29 UTC (rev 49776)
@@ -3,13 +3,12 @@
 #define PP_CONF_H
 
 //#include "utilarm.h" // keep in sync
-#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ ||( defined(__sun) && defined(__SVR4))
-#  define ARM_COMPLIANT 1
-#else
-#  define ARM_COMPLIANT 0
-#endif
+#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ ||( defined(__sun) && defined(__SVR4))
+#  define ARM_COMPLIANT 1
+#else
+#  define ARM_COMPLIANT 0
+#endif
 
-
 /*
 Aux flags:
   PPDLL -- indicates a part of a shared library
@@ -81,4 +80,4 @@
 
 #define PPSIZEF PPUINTF
 
-#endif
\ No newline at end of file
+#endif

Modified: trunk/Build/source/texk/web2c/luatexdir/luapplib/ppload.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luapplib/ppload.c	2019-01-20 23:20:10 UTC (rev 49775)
+++ trunk/Build/source/texk/web2c/luatexdir/luapplib/ppload.c	2019-01-20 23:58:29 UTC (rev 49776)
@@ -60,8 +60,20 @@
    ghost->size = siz - sizeof(_ppname) - 1, \
   (ppname)(ghost + 1))
 
+#if ARM_COMPLAINT
 #define ppname_flush_with_ego(O, ghost, siz, flgs) \
   (iof_put(O, '\0'), \
+   pad=(O->pos - pos_begin)%(sizeof(ppname*)), \
+   iof_ensure(O, pad+sizeof(ppname *)),		\
+   O->pos += sizeof(ppname *), \
+   O->pos += pad, \
+   ghost = (_ppname *)ppheap_flush(O, &siz), \
+   ghost->flags = flgs, \
+   ghost->size = siz - sizeof(_ppname) - 1 - pad - sizeof(ppname *), \
+  (ppname)(ghost + 1))
+#else
+#define ppname_flush_with_ego(O, ghost, siz, flgs) \
+  (iof_put(O, '\0'), \
    iof_ensure(O, sizeof(ppname *)), \
    O->pos += sizeof(ppname *), \
    ghost = (_ppname *)ppheap_flush(O, &siz), \
@@ -68,22 +80,20 @@
    ghost->flags = flgs, \
    ghost->size = siz - sizeof(_ppname) - 1 - sizeof(ppname *), \
   (ppname)(ghost + 1))
+#endif
 
-
-#if ARM_COMPLIANT
-#define ppname_set_alter_ego(name, ghost, ego) do {\
-    ppname temp;\
-    ppname *temp1;\
-    temp =  (name + (ghost)->size + 1) ; \
-    temp1 = (ppname *)((void*)temp); \
-    *temp1= ego; \
-    }while(0)
+#if ARM_COMPLIANT 
+#define ppname_set_alter_ego(name, ghost, ego) do{ \
+  size_t t = ((ghost)->size + 1); \
+  t = (t%sizeof(ppname *))==0?t: (t/sizeof(ppname *)+1)*sizeof(ppname *); \
+  (*((ppname *)(name + t)) = ego);		       \
+}while(0)
 #else
 #define ppname_set_alter_ego(name, ghost, ego) (*((ppname *)(name + (ghost)->size + 1)) = ego)
 #endif
 
 #if ARM_COMPLIANT
-#define ppname_get_alter_ego(name) (*((ppname *)( (void*)(name + ppname_size(name) + 1))))
+#define ppname_get_alter_ego(name) (*((ppname *)((name + (ppname_size(name)+1)%sizeof(ppname *) == 0 ? (ppname_size(name)+1) : ( (ppname_size(name)+1)/sizeof(ppname *) + 1 )*sizeof(ppname *)   ))))
 #else
 #define ppname_get_alter_ego(name) (*((ppname *)(name + ppname_size(name) + 1)))
 #endif
@@ -90,8 +100,6 @@
 
 
 
-
-
 static ppname ppscan_name (iof *I, ppheap **pheap)
 {
   int c, decode;
@@ -101,7 +109,16 @@
   size_t size;
   const char *p, *e;
   uint8_t v1, v2;
+#if ARM_COMPLIANT
+  ptrdiff_t pad;
+  uint8_t* pos_begin;
+#endif  
+
   O = ppheap_buffer(pheap, sizeof(_ppname), PPNAME_INIT);
+#if ARM_COMPLIANT
+  pad=0;
+  pos_begin = O->pos;
+#endif  
   for (decode = 0, c = iof_char(I); c >= 0 && ppname_byte_lookup[c]; c = iof_next(I))
   {
     if (c == '#')
@@ -112,6 +129,10 @@
     return ppname_flush(O, ghost1, size, 0);
   encoded = ppname_flush_with_ego(O, ghost1, size, 0|PPNAME_ENCODED);
   O = ppheap_buffer(pheap, sizeof(_ppname), PPNAME_INIT);
+#if ARM_COMPLIANT
+  pad=0;
+  pos_begin = O->pos;
+#endif  
   for (p = encoded, e = encoded + ghost1->size; p < e; ++p)
   {
     if (*p == '#' && p + 2 < e) {
@@ -138,8 +159,15 @@
   size_t size;
   const char *p, *e;
   uint8_t v1, v2;
-
+#if ARM_COMPLIANT
+  ptrdiff_t pad;
+  uint8_t* pos_begin;
+#endif  
   O = ppheap_buffer(pheap, sizeof(_ppname), PPNAME_INIT);
+#if ARM_COMPLIANT
+  pad=0;
+  pos_begin = O->pos;
+#endif  
   iof_put(O, first);
   for (decode = 0, c = iof_char(I); c >= 0 && ppname_byte_lookup[c]; c = iof_next(I))
   {
@@ -151,6 +179,10 @@
     return ppname_flush(O, ghost1, size, PPNAME_EXEC);
   encoded = ppname_flush_with_ego(O, ghost1, size, PPNAME_EXEC|PPNAME_ENCODED);
   O = ppheap_buffer(pheap, sizeof(_ppname), PPNAME_INIT);
+#if ARM_COMPLIANT
+  pad=0;
+  pos_begin = O->pos;
+#endif  
   for (p = encoded, e = encoded + ghost1->size; p < e; ++p)
   {
     if (*p == '#' && p + 2 < e) {
@@ -203,14 +235,27 @@
    ghost->size = siz - sizeof(_ppstring) - 1, \
   (ppstring)(ghost + 1))
 
+#if ARM_COMPLAINT
 #define ppstring_flush_with_ego(O, ghost, siz, flgs) \
   (iof_put(O, '\0'), \
-   iof_ensure(O, sizeof(ppstring *)), \
+   pad=(O->pos - pos_begin)%(sizeof(ppstring*)), \
+   iof_ensure(O, pad+sizeof(ppstring *)),		\
    O->pos += sizeof(ppstring *), \
+   O->pos += pad, \
    ghost = (_ppstring *)ppheap_flush(O, &siz), \
    ghost->flags = flgs, \
+   ghost->size = siz - sizeof(_ppstring) - 1 - pad - sizeof(ppstring *), \
+  (ppstring)(ghost + 1))
+#else
+#define ppstring_flush_with_ego(O, ghost, siz, flgs)	\
+  (iof_put(O, '\0'), \
+   iof_ensure(O, sizeof(ppstring *)),		\
+   O->pos += sizeof(ppstring *), \
+   ghost = (_ppstring *)ppheap_flush(O, &siz), \
+   ghost->flags = flgs, \
    ghost->size = siz - sizeof(_ppstring) - 1 - sizeof(ppstring *), \
   (ppstring)(ghost + 1))
+#endif
 
 #define ppstring_utf16be_bom(decoded) (decoded[0] == ((char)0xFE) && decoded[1] == ((char)0xFF) )
 #define ppstring_utf16le_bom(decoded) (decoded[0] == ((char)0xFF) && decoded[1] == ((char)0xFE))
@@ -225,15 +270,19 @@
 
 
 
-#if ARM_COMPLIANT
-#define ppstring_set_alter_ego(string, ghost, ego) (*((ppstring *)((void *)(string + (ghost)->size + 1))) = ego)
+#if ARM_COMPLIANT 
+#define ppstring_set_alter_ego(string, ghost, ego) do{ \
+  size_t t = ((ghost)->size + 1); \
+  t = (t%sizeof(ppstring *))==0?t: (t/sizeof(ppstring *)+1)*sizeof(ppstring *); \
+  (*((ppstring *)(string + t)) = ego);		       \
+}while(0)
 #else
-#define ppstring_set_alter_ego(string, ghost, ego) (*((ppstring *)(string + (ghost)->size + 1)) = ego)
+#define ppstring_set_alter_ego(string, ghost, ego) (*((ppstring *)((string + (ghost)->size + 1))) = ego)
 #endif
 
 
-#if ARM_COMPLIANT
-#define ppstring_get_alter_ego(string) (*((ppstring *)((void *)(string + ppstring_size(string) + 1))))
+#if ARM_COMPLIANT 
+#define ppstring_get_alter_ego(string) (*((ppstring *)((string + (ppstring_size(string)+1)%sizeof(ppstring *) == 0 ? (ppstring_size(string)+1) : ( (ppstring_size(string)+1)/sizeof(ppstring *) + 1 )*sizeof(ppstring *)   ))))
 #else
 #define ppstring_get_alter_ego(string) (*((ppstring *)(string + ppstring_size(string) + 1)))
 #endif
@@ -249,7 +298,16 @@
   uint8_t *p, *e;
   ppstring encoded, decoded;
   size_t size;
+#if ARM_COMPLIANT
+  ptrdiff_t pad;
+  uint8_t* pos_begin;
+#endif  
+
   O = ppheap_buffer(pheap, sizeof(_ppstring), PPSTRING_INIT);
+#if ARM_COMPLIANT
+  pad=0;
+  pos_begin = O->pos;
+#endif  
   for (decode = 0, balance = 0, c = iof_char(I); c >= 0; )
   {
     switch (c)
@@ -292,6 +350,10 @@
   }
   encoded = ppstring_flush_with_ego(O, ghost1, size, 0|PPSTRING_ENCODED);
   O = ppheap_buffer(pheap, sizeof(_ppstring), PPSTRING_INIT);
+#if ARM_COMPLIANT
+  pad=0;
+  pos_begin = O->pos;
+#endif  
   for (p = (uint8_t *)encoded, e = (uint8_t *)encoded + ghost1->size; p < e; ++p)
   {
     if (*p == '\\')
@@ -353,8 +415,15 @@
   size_t size;
   ppstring encoded, decoded;
   uint8_t *p, *e;
-
+#if ARM_COMPLIANT
+  ptrdiff_t pad;
+  uint8_t* pos_begin;
+#endif  
   O = ppheap_buffer(pheap, sizeof(_ppstring), PPSTRING_INIT);
+#if ARM_COMPLIANT
+  pad=0;
+  pos_begin = O->pos;
+#endif  
   for (c = iof_char(I); c >= 0 && (base16_digit(c) || ignored_char(c)); c = iof_next(I))
     iof_put(O, c);
   if (c == '>')
@@ -361,6 +430,10 @@
     ++I->pos;
   encoded = ppstring_flush_with_ego(O, ghost1, size, PPSTRING_BASE16|PPSTRING_ENCODED);
   O = ppheap_buffer(pheap, sizeof(_ppstring), (ghost1->size >> 1) + 1);
+#if ARM_COMPLIANT
+  pad=0;
+  pos_begin = O->pos;
+#endif  
   for (p = (uint8_t *)encoded, e = (uint8_t *)encoded + ghost1->size; p < e; ++p)
   {
     if ((v1 = base16_value(*p)) < 0) // ignored
@@ -383,9 +456,20 @@
    ppstring encoded, decoded;
    uint8_t *p, *e;
    size_t size;
-
+#if ARM_COMPLIANT
+  ptrdiff_t pad;
+  uint8_t* pos_begin;
+#endif  
+#if ARM_COMPLIANT
+  pad=0;
+  pos_begin = O->pos;
+#endif  
    decoded = ppstring_flush_with_ego(O, ghost2, size, 0|PPSTRING_DECODED);
    O = ppheap_buffer(pheap, sizeof(_ppstring), (ghost2->size << 1) + 1);
+#if ARM_COMPLIANT
+  pad=0;
+  pos_begin = O->pos;
+#endif  
    for (p = (uint8_t *)decoded, e = (uint8_t *)decoded + ghost2->size; p < e; ++p)
      iof_set2(O, base16_uc_alphabet[(*p)>>4], base16_uc_alphabet[(*p)&15]);
    encoded = ppstring_flush_with_ego(O, ghost1, size, PPSTRING_BASE16|PPSTRING_ENCODED);
@@ -412,7 +496,15 @@
   _ppstring *ghost1, *ghost2;
   size_t size;
   ppstring encoded, decoded;
+#if ARM_COMPLIANT
+  ptrdiff_t pad;
+  uint8_t* pos_begin;
+#endif  
   O = ppheap_buffer(pheap, sizeof(_ppstring), PPSTRING_INIT);
+#if ARM_COMPLIANT
+  pad=0;
+  pos_begin = O->pos;
+#endif  
   for (c = iof_char(I); (c >= '!' && c <= 'u') || c == 'z' || c == 'y'; c = iof_next(I))
     iof_put(O, c);
   if (c == '~')
@@ -421,6 +513,10 @@
   encoded = ppstring_flush_with_ego(O, ghost1, size, PPSTRING_BASE85|PPSTRING_ENCODED);
   iof_string_reader(&B, encoded, ghost1->size);
   O = ppheap_buffer(pheap, sizeof(_ppstring), (ghost1->size * 5 / 4) + 1);
+#if ARM_COMPLIANT
+  pad=0;
+  pos_begin = O->pos;
+#endif  
   base85_decode(&B, O);
   decoded = ppstring_flush_with_ego(O, ghost2, size, 0|PPSTRING_DECODED);
   ppstring_check_bom2(decoded, ghost1, ghost2);
@@ -462,8 +558,16 @@
   ppstring encoded, decoded;
   uint8_t *p, *e;
   size_t size;
+#if ARM_COMPLIANT
+  ptrdiff_t pad;
+  uint8_t* pos_begin;
+#endif  
 
   O = ppheap_buffer(pheap, sizeof(_ppstring), PPSTRING_INIT);
+#if ARM_COMPLIANT
+  pad=0;
+  pos_begin = O->pos;
+#endif  
   for (balance = 0, encode = 0, c = iof_char(I); c >= 0; )
   {
     switch (c)
@@ -557,6 +661,10 @@
   }
   decoded = ppstring_flush_with_ego(O, ghost2, size, PPSTRING_DECODED);
   O = ppheap_buffer(pheap, sizeof(_ppstring), ghost2->size);
+#if ARM_COMPLIANT
+  pad=0;
+  pos_begin = O->pos;
+#endif  
   for (p = (uint8_t *)decoded, e = (uint8_t *)decoded + ghost2->size; p < e; ++p)
   {
     switch ((b = ppstring_byte_escape[*p]))
@@ -588,8 +696,15 @@
   ppstring encoded, decoded;
   uint8_t *p, *e;
   size_t size;
-
+#if ARM_COMPLIANT
+  ptrdiff_t pad;
+  uint8_t* pos_begin;
+#endif  
   O = ppheap_buffer(pheap, sizeof(_ppstring), PPSTRING_INIT);
+#if ARM_COMPLIANT
+  pad=0;
+  pos_begin = O->pos;
+#endif  
   // base16_decode(I, O); // no info about the last char..
   for (c = iof_char(I); c != '>' && c >= 0; )
   {
@@ -625,6 +740,10 @@
   decoded = ppstring_flush_with_ego(O, ghost2, size, PPSTRING_DECODED);
   /* recreate an encoded form */
   O = ppheap_buffer(pheap, sizeof(_ppstring), (ghost2->size << 1) + 1);
+#if ARM_COMPLIANT
+  pad=0;
+  pos_begin = O->pos;
+#endif  
   for (p = (uint8_t *)decoded, e = (uint8_t *)decoded + ghost2->size; p < e; ++p)
     iof_set2(O, base16_uc_alphabet[(*p)>>4], base16_uc_alphabet[(*p)&15]);
   encoded = ppstring_flush_with_ego(O, ghost1, size, PPSTRING_BASE16|PPSTRING_ENCODED);
@@ -2190,7 +2309,7 @@
         break;
       case 'C':
         if (ppname_is(key, "Count"))
-          ppobj_get_uint(obj, *count);
+          ppobj_rget_uint(obj, *count);
         break;
       case 'K':
         if (ppname_is(key, "Kids"))

Modified: trunk/Build/source/texk/web2c/luatexdir/luapplib/util/utilarm.h
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luapplib/util/utilarm.h	2019-01-20 23:20:10 UTC (rev 49775)
+++ trunk/Build/source/texk/web2c/luatexdir/luapplib/util/utilarm.h	2019-01-20 23:58:29 UTC (rev 49776)
@@ -1,10 +1,10 @@
-#ifndef UTIL_ARM_H
-#define UTIL_ARM_H
-
-#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ ||( defined(__sun) && defined(__SVR4))
-#  define ARM_COMPLIANT 1
-#else
-#  define ARM_COMPLIANT 0
-#endif
-
+#ifndef UTIL_ARM_H
+#define UTIL_ARM_H
+
+#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ ||( defined(__sun) && defined(__SVR4))
+#  define ARM_COMPLIANT 1
+#else
+#  define ARM_COMPLIANT 0
+#endif
+
 #endif
\ No newline at end of file

Modified: trunk/Build/source/texk/web2c/luatexdir/luapplib/util/utilfpred.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luapplib/util/utilfpred.c	2019-01-20 23:20:10 UTC (rev 49775)
+++ trunk/Build/source/texk/web2c/luatexdir/luapplib/util/utilfpred.c	2019-01-20 23:58:29 UTC (rev 49776)
@@ -58,7 +58,8 @@
 
 #define MAX_COMPONENTS 8
 
-typedef struct predictor_state {
+/*typedef */
+struct predictor_state {
   int default_predictor;                      /* default predictor indicator */
   int current_predictor;                      /* current predictor, possibly taken from algorithm marker in PNG data */
   int rowsamples;                             /* number of pixels in a scanline (/DecodeParms << /Columns ... >>) */
@@ -90,7 +91,7 @@
   };
   int flush;
   int status;
-} predictor_state;
+} ; /*predictor_state;*/
 
 enum {
   STATUS_LAST = 0,

Modified: trunk/Build/source/texk/web2c/luatexdir/luatex_svnversion.h
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luatex_svnversion.h	2019-01-20 23:20:10 UTC (rev 49775)
+++ trunk/Build/source/texk/web2c/luatexdir/luatex_svnversion.h	2019-01-20 23:58:29 UTC (rev 49776)
@@ -1 +1 @@
-#define luatex_svn_revision 7018
+#define luatex_svn_revision 7047

Modified: trunk/Build/source/texk/web2c/luatexdir/tex/errors.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/tex/errors.c	2019-01-20 23:20:10 UTC (rev 49775)
+++ trunk/Build/source/texk/web2c/luatexdir/tex/errors.c	2019-01-20 23:58:29 UTC (rev 49776)
@@ -965,7 +965,8 @@
         new_line_char_par = 10;
         report_id = callback_defined(show_lua_error_hook_callback);
         if (report_id == 0) {
-            tprint(p);
+	    if (p != NULL) 
+	      tprint(p);
             help2(
                 "The lua interpreter ran into a problem, so the",
                 "remainder of this lua chunk will be ignored."



More information about the tex-live-commits mailing list