diff options
author | Luigi Scarso <luigi.scarso@gmail.com> | 2019-01-20 23:58:29 +0000 |
---|---|---|
committer | Luigi Scarso <luigi.scarso@gmail.com> | 2019-01-20 23:58:29 +0000 |
commit | bc3a1be2b5557293ac1a95216287279df82b05ab (patch) | |
tree | f216eff7b5a3537e803dc9c0b8255b31d8adb131 | |
parent | 31268c900d5c42ececed0b7e5e1a918e387a5ef0 (diff) |
luatex: patches for pplib. Small cleanup of the code.
git-svn-id: svn://tug.org/texlive/trunk@49776 c570f23f-e606-0410-a88d-b1316a301751
-rwxr-xr-x | Build/source/libs/lua53/configure | 177 | ||||
-rw-r--r-- | Build/source/libs/lua53/configure.ac | 1 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/NEWS | 8 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/image/epdf.h | 3 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/lua/luainit.c | 18 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/lua/mplibstuff.c | 2 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/luaffi/ffi.c | 2 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/luaffi/ffi.h | 2 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/luapplib/ppconf.h | 13 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/luapplib/ppload.c | 165 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/luapplib/util/utilarm.h | 18 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/luapplib/util/utilfpred.c | 5 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/luatex_svnversion.h | 2 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/tex/errors.c | 3 |
14 files changed, 366 insertions, 53 deletions
diff --git a/Build/source/libs/lua53/configure b/Build/source/libs/lua53/configure index f9bdca4da6c..eaddad073e5 100755 --- a/Build/source/libs/lua53/configure +++ b/Build/source/libs/lua53/configure @@ -4827,6 +4827,183 @@ else 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 diff --git a/Build/source/libs/lua53/configure.ac b/Build/source/libs/lua53/configure.ac index b5f9f0532de..23c9dcc8606 100644 --- a/Build/source/libs/lua53/configure.ac +++ b/Build/source/libs/lua53/configure.ac @@ -16,6 +16,7 @@ AC_CONFIG_MACRO_DIR([../../m4]) KPSE_BASIC([lua53]) AC_PROG_CC +AC_PROG_CC_C99 AC_PROG_RANLIB AC_PROG_LN_S diff --git a/Build/source/texk/web2c/luatexdir/NEWS b/Build/source/texk/web2c/luatexdir/NEWS index dfa8fa8c68d..f590c848a5c 100644 --- a/Build/source/texk/web2c/luatexdir/NEWS +++ b/Build/source/texk/web2c/luatexdir/NEWS @@ -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 ============================================================== diff --git a/Build/source/texk/web2c/luatexdir/image/epdf.h b/Build/source/texk/web2c/luatexdir/image/epdf.h index d0cd7f79ee0..fa66eeb4d23 100644 --- a/Build/source/texk/web2c/luatexdir/image/epdf.h +++ b/Build/source/texk/web2c/luatexdir/image/epdf.h @@ -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 @@ typedef enum { FE_FAIL, FE_RETURN_NULL } file_error_mode; /* 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 */ diff --git a/Build/source/texk/web2c/luatexdir/lua/luainit.c b/Build/source/texk/web2c/luatexdir/lua/luainit.c index 60c654aa0a0..7abf8c8ee5e 100644 --- a/Build/source/texk/web2c/luatexdir/lua/luainit.c +++ b/Build/source/texk/web2c/luatexdir/lua/luainit.c @@ -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 @@ static void parse_options(int ac, char **av) "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 @@ void lua_initialize(int ac, char **av) #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 @@ void lua_initialize(int ac, char **av) } 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 @@ void lua_initialize(int ac, char **av) 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); diff --git a/Build/source/texk/web2c/luatexdir/lua/mplibstuff.c b/Build/source/texk/web2c/luatexdir/lua/mplibstuff.c index f1713ae0e6e..db453ce81bf 100644 --- a/Build/source/texk/web2c/luatexdir/lua/mplibstuff.c +++ b/Build/source/texk/web2c/luatexdir/lua/mplibstuff.c @@ -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. diff --git a/Build/source/texk/web2c/luatexdir/luaffi/ffi.c b/Build/source/texk/web2c/luatexdir/luaffi/ffi.c index 7771b512db5..03667d9f582 100644 --- a/Build/source/texk/web2c/luatexdir/luaffi/ffi.c +++ b/Build/source/texk/web2c/luatexdir/luaffi/ffi.c @@ -3576,7 +3576,7 @@ int luaopen_ffi(lua_State *L) "\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" diff --git a/Build/source/texk/web2c/luatexdir/luaffi/ffi.h b/Build/source/texk/web2c/luatexdir/luaffi/ffi.h index 8be6eccc192..8190a973892 100644 --- a/Build/source/texk/web2c/luatexdir/luaffi/ffi.h +++ b/Build/source/texk/web2c/luatexdir/luaffi/ffi.h @@ -404,6 +404,7 @@ static complex_float mk_complex_float(double real, double imag) { complex_float ret = { real, imag }; return ret; } +//#if !defined(__MINGW64__) static double creal(complex_double c) { return c.real; } @@ -417,6 +418,7 @@ static double cimag(complex_double c) { static float cimagf(complex_float c) { return c.imag; } +//#endif #endif #define CALLBACK_FUNC_USR_IDX 1 diff --git a/Build/source/texk/web2c/luatexdir/luapplib/ppconf.h b/Build/source/texk/web2c/luatexdir/luapplib/ppconf.h index 85d6dcb13a6..67c7d21aede 100644 --- a/Build/source/texk/web2c/luatexdir/luapplib/ppconf.h +++ b/Build/source/texk/web2c/luatexdir/luapplib/ppconf.h @@ -3,12 +3,11 @@ #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: @@ -81,4 +80,4 @@ Aux flags: #define PPSIZEF PPUINTF -#endif
\ No newline at end of file +#endif diff --git a/Build/source/texk/web2c/luatexdir/luapplib/ppload.c b/Build/source/texk/web2c/luatexdir/luapplib/ppload.c index 14b8bca1992..f51f7a5db68 100644 --- a/Build/source/texk/web2c/luatexdir/luapplib/ppload.c +++ b/Build/source/texk/web2c/luatexdir/luapplib/ppload.c @@ -60,6 +60,18 @@ const char ppname_byte_lookup[] = { 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 *)), \ @@ -68,30 +80,26 @@ const char ppname_byte_lookup[] = { 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 - - static ppname ppscan_name (iof *I, ppheap **pheap) { int c, decode; @@ -101,7 +109,16 @@ static ppname ppscan_name (iof *I, ppheap **pheap) 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 @@ static ppname ppscan_name (iof *I, ppheap **pheap) 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 @@ static ppname ppscan_exec (iof *I, ppheap **pheap, int first) 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 @@ static ppname ppscan_exec (iof *I, ppheap **pheap, int first) 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 @@ ppname ppname_encoded (ppname name) 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 @@ ppname ppname_encoded (ppname name) -#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 @@ static ppstring ppscan_string (iof *I, ppheap **pheap) 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 @@ static ppstring ppscan_string (iof *I, ppheap **pheap) } 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,14 +415,25 @@ static ppstring ppscan_base16 (iof *I, ppheap **pheap) 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 == '>') ++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 @@ static ppstring ppstring_buffer (iof *O, ppheap **pheap) 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 @@ static ppstring ppscan_base85 (iof *I, ppheap **pheap) _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 @@ static ppstring ppscan_base85 (iof *I, ppheap **pheap) 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 @@ static ppstring ppscan_crypt_string (iof *I, ppcrypt *crypt, ppheap **pheap) 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 @@ static ppstring ppscan_crypt_string (iof *I, ppcrypt *crypt, ppheap **pheap) } 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 @@ static ppstring ppscan_crypt_base16 (iof *I, ppcrypt *crypt, ppheap **pheap) 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 @@ static ppstring ppscan_crypt_base16 (iof *I, ppcrypt *crypt, ppheap **pheap) 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 @@ static pparray * pppage_node (ppdict *dict, ppuint *count, ppname *type) 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")) diff --git a/Build/source/texk/web2c/luatexdir/luapplib/util/utilarm.h b/Build/source/texk/web2c/luatexdir/luapplib/util/utilarm.h index 546c6d4dd1a..b738fbb28c3 100644 --- a/Build/source/texk/web2c/luatexdir/luapplib/util/utilarm.h +++ b/Build/source/texk/web2c/luatexdir/luapplib/util/utilarm.h @@ -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 diff --git a/Build/source/texk/web2c/luatexdir/luapplib/util/utilfpred.c b/Build/source/texk/web2c/luatexdir/luapplib/util/utilfpred.c index 4416161eab3..5418a520151 100644 --- a/Build/source/texk/web2c/luatexdir/luapplib/util/utilfpred.c +++ b/Build/source/texk/web2c/luatexdir/luapplib/util/utilfpred.c @@ -58,7 +58,8 @@ that are permanently \0. #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 @@ typedef struct predictor_state { }; int flush; int status; -} predictor_state; +} ; /*predictor_state;*/ enum { STATUS_LAST = 0, diff --git a/Build/source/texk/web2c/luatexdir/luatex_svnversion.h b/Build/source/texk/web2c/luatexdir/luatex_svnversion.h index 95d9421d988..4b4d50e8c7e 100644 --- a/Build/source/texk/web2c/luatexdir/luatex_svnversion.h +++ b/Build/source/texk/web2c/luatexdir/luatex_svnversion.h @@ -1 +1 @@ -#define luatex_svn_revision 7018 +#define luatex_svn_revision 7047 diff --git a/Build/source/texk/web2c/luatexdir/tex/errors.c b/Build/source/texk/web2c/luatexdir/tex/errors.c index b630422ee98..0c64927cea2 100644 --- a/Build/source/texk/web2c/luatexdir/tex/errors.c +++ b/Build/source/texk/web2c/luatexdir/tex/errors.c @@ -965,7 +965,8 @@ void normal_warning(const char *t, const char *p) 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." |