Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package mandoc for openSUSE:Factory checked 
in at 2023-06-11 19:52:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mandoc (Old)
 and      /work/SRC/openSUSE:Factory/.mandoc.new.15902 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mandoc"

Sun Jun 11 19:52:44 2023 rev:8 rq:1091826 version:1.14.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/mandoc/mandoc.changes    2022-12-06 
14:23:06.985494347 +0100
+++ /work/SRC/openSUSE:Factory/.mandoc.new.15902/mandoc.changes 2023-06-11 
19:53:03.242354230 +0200
@@ -1,0 +2,6 @@
+Fri Jun  9 16:23:30 UTC 2023 - Matej Cepl <mc...@suse.com>
+
+- Add boo1209830-endless-loop.patch (boo1209830) avoid endless
+  loop on processing some mandoc files.
+
+-------------------------------------------------------------------

New:
----
  boo1209830-endless-loop.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ mandoc.spec ++++++
--- /var/tmp/diff_new_pack.VHs1E8/_old  2023-06-11 19:53:03.826357751 +0200
+++ /var/tmp/diff_new_pack.VHs1E8/_new  2023-06-11 19:53:03.830357776 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package mandoc
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -25,6 +25,9 @@
 Group:          Productivity/Publishing/Troff
 URL:            http://mandoc.bsd.lv/
 Source:         http://mandoc.bsd.lv/snapshots/mandoc-%{version}.tar.gz
+# PATCH-FIX-UPSTREAM boo1209830-endless-loop.patch bsc#1209830 mc...@suse.com
+# Fix endless loop
+Patch0:         boo1209830-endless-loop.patch
 BuildRequires:  less
 BuildRequires:  zlib-devel
 Requires:       %{name}-bin = %{version}

++++++ boo1209830-endless-loop.patch ++++++
===================================================================
RCS file: /cvsrepo/anoncvs/cvs/a/out.c,v
retrieving revision 1.54
retrieving revision 1.55
---
 out.c |   22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

--- a/out.c
+++ b/out.c
@@ -1,4 +1,4 @@
-/*     $Id: out.c,v 1.82 2021/09/07 17:07:58 schwarze Exp $ */
+/*     $OpenBSD: out.c,v 1.55 2021/09/28 17:06:17 schwarze Exp $ */
 /*
  * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <krist...@bsd.lv>
  * Copyright (c) 2011, 2014, 2015, 2017, 2018, 2019, 2021
@@ -123,6 +123,7 @@ tblcalc(struct rofftbl *tbl, const struc
        const struct tbl_dat    *dp;
        struct roffcol          *col;
        struct tbl_colgroup     *first_group, **gp, *g;
+       size_t                  *colwidth;
        size_t                   ewidth, min1, min2, wanted, width, xwidth;
        int                      done, icol, maxcol, necol, nxcol, quirkcol;
 
@@ -256,16 +257,28 @@ tblcalc(struct rofftbl *tbl, const struc
                        gp = &(*gp)->next;
        }
 
+       colwidth = mandoc_reallocarray(NULL, maxcol + 1, sizeof(*colwidth));
        while (first_group != NULL) {
 
                /*
+                * Rebuild the array of the widths of all columns
+                * participating in spans that require expansion.
+                */
+
+               for (icol = 0; icol <= maxcol; icol++)
+                       colwidth[icol] = SIZE_MAX;
+               for (g = first_group; g != NULL; g = g->next)
+                       for (icol = g->startcol; icol <= g->endcol; icol++)
+                               colwidth[icol] = tbl->cols[icol].width;
+
+               /*
                 * Find the smallest and second smallest column width
                 * among the columns which may need expamsion.
                 */
 
                min1 = min2 = SIZE_MAX;
                for (icol = 0; icol <= maxcol; icol++) {
-                       width = tbl->cols[icol].width;
+                       width = colwidth[icol];
                        if (min1 > width) {
                                min2 = min1;
                                min1 = width;
@@ -283,7 +296,7 @@ tblcalc(struct rofftbl *tbl, const struc
                for (g = first_group; g != NULL; g = g->next) {
                        necol = 0;
                        for (icol = g->startcol; icol <= g->endcol; icol++)
-                               if (tbl->cols[icol].width == min1)
+                               if (colwidth[icol] == min1)
                                        necol++;
                        if (necol == 0)
                                continue;
@@ -300,7 +313,7 @@ tblcalc(struct rofftbl *tbl, const struc
                while ((g = *gp) != NULL) {
                        done = 0;
                        for (icol = g->startcol; icol <= g->endcol; icol++) {
-                               if (tbl->cols[icol].width != min1)
+                               if (colwidth[icol] != min1)
                                        continue;
                                if (g->wanted <= wanted - min1) {
                                        tbl->cols[icol].width += g->wanted;
@@ -317,6 +330,7 @@ tblcalc(struct rofftbl *tbl, const struc
                                gp = &(*gp)->next;
                }
        }
+       free(colwidth);
 
        /*
         * Align numbers with text.

Reply via email to