From c97ad67feb628d5c00048275c1c6089437658cc7 Mon Sep 17 00:00:00 2001
From: Luigi Scarso <luigi.scarso@gmail.com>
Date: Mon, 22 Aug 2016 09:37:05 +0000
Subject: [PATCH] fixed bug in withpostscript -- trunk (HH)

---
 source/texk/web2c/mplibdir/mp.w | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/source/texk/web2c/mplibdir/mp.w b/source/texk/web2c/mplibdir/mp.w
index 549e670e6..964c53720 100644
--- a/source/texk/web2c/mplibdir/mp.w
+++ b/source/texk/web2c/mplibdir/mp.w
@@ -2568,7 +2568,7 @@ void mp_new_randoms (MP mp) {
   mp->j_random = 54;
 }
 
-@ To consume a random fraction, the program below will say `|next_random|'. 
+@ To consume a random fraction, the program below will say `|next_random|'.
 Now each number system has its own implementation,
 true to the original as much as possibile.
 
@@ -2597,7 +2597,7 @@ As said before, now each number system has its own implementation.
 @c
 /*Unused.
 static void mp_unif_rand (MP mp, mp_number *ret, mp_number x_orig) {
-  mp_number y;     // trial value 
+  mp_number y;     // trial value
   mp_number x, abs_x;
   mp_number u;
   new_fraction (y);
@@ -31118,15 +31118,10 @@ void mp_scan_with_list (MP mp, mp_node p) {
       }
     } else if (t == with_mp_post_script) {
       if (cur_exp_str ()->len) {
-        mp_node k = NULL;    /* for finding the near-last item in a list  */
         if (bp == MP_VOID)
-          k = p;
-        bp = k;
-        while (k && mp_link (k) != NULL) { /* clang: dereference null pointer 'k' */
-          k = mp_link (k);
-          if (has_color (k))
-            bp = k;
-        }
+           bp = p;
+        while ((bp != NULL) && (!has_color (bp)))
+        bp = mp_link (bp);
         if (bp != NULL) {
           if (mp_post_script (bp) != NULL) {
             unsigned old_setting; /* saved |selector| setting */
-- 
GitLab