Hello community,

here is the log from the commit of package abcm2ps for openSUSE:Factory checked 
in at 2020-02-20 14:56:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/abcm2ps (Old)
 and      /work/SRC/openSUSE:Factory/.abcm2ps.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "abcm2ps"

Thu Feb 20 14:56:21 2020 rev:10 rq:777343 version:8.14.7

Changes:
--------
--- /work/SRC/openSUSE:Factory/abcm2ps/abcm2ps.changes  2019-11-08 
15:28:19.963165604 +0100
+++ /work/SRC/openSUSE:Factory/.abcm2ps.new.26092/abcm2ps.changes       
2020-02-20 14:56:31.738423288 +0100
@@ -1,0 +2,16 @@
+Wed Feb 19 13:35:02 UTC 2020 - Michael Vetter <[email protected]>
+
+- Update to 8.14.7:
+  * crash when %%score with no common voices and next notes with beams
+  * crash when new staff system with only new voices
+  * crash when slash found before a bar and not a (deprecated) measure repeat
+  * crash when %%staves at end of tune and lack of music in the last voice
+  * bad parsing of the note durations
+  * clash of some ties with dots
+  * bad check of the number of measures in Z (multi-rest)
+  * new improved coda sign
+  * Make pkg-config substitutable for cross-compilations
+  * add option tieheight factor to tie height like in slurheight
+  * add some decorations from v2.2 standard
+
+-------------------------------------------------------------------

Old:
----
  abcm2ps-8.14.6.tar.gz

New:
----
  abcm2ps-8.14.7.tar.gz

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

Other differences:
------------------
++++++ abcm2ps.spec ++++++
--- /var/tmp/diff_new_pack.pUYwlt/_old  2020-02-20 14:56:32.910425588 +0100
+++ /var/tmp/diff_new_pack.pUYwlt/_new  2020-02-20 14:56:32.910425588 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package abcm2ps
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany.
 # Copyright (c) 2007 by Edgar Aichinger
 #
 # All modifications and additions to the file contributed by third parties
@@ -18,7 +18,7 @@
 
 
 Name:           abcm2ps
-Version:        8.14.6
+Version:        8.14.7
 Release:        0
 Summary:        A program to typeset abc tunes into Postscript
 License:        LGPL-3.0-or-later

++++++ abcm2ps-8.14.6.tar.gz -> abcm2ps-8.14.7.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/abcm2ps-8.14.6/README.md new/abcm2ps-8.14.7/README.md
--- old/abcm2ps-8.14.6/README.md        2019-11-05 14:02:00.000000000 +0100
+++ new/abcm2ps-8.14.7/README.md        2020-02-19 14:00:51.000000000 +0100
@@ -14,11 +14,15 @@
 (the 'm' of abcm2ps stands for many or multi staves/voices).
 Since this time, it has evolved so it can render many more music kinds.
 
+Note that this program is at end of life. Its successor is
+[abc2svg](https://chiselapp.com/user/moinejf/repository/abc2svg).
+
 ### Features
 
-The main features of abcm2ps are quite the same as the abc2ps ones,
-but they are closer to the ABC draft 2.2 (February 2013):
-    http://abcnotation.com/wiki/abc:standard:v2.2
+The features of abcm2ps are based on the
+[ABC draft 2.2 (February 2013)](http://abcnotation.com/wiki/abc:standard:v2.2).
+The differences are listed in the
+[abcm2ps/abc2svg 
documentation](http://moinejf.free.fr/abcm2ps-doc/features.html).
 
 ### Installation and usage
 
@@ -49,6 +53,8 @@
 
 ### Links
 
+Author's page: http://moinejf.free.fr/
+
 To know more about the ABC music notation, have a look at
     http://abcnotation.com/
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/abcm2ps-8.14.6/abcm2ps.h new/abcm2ps-8.14.7/abcm2ps.h
--- old/abcm2ps-8.14.6/abcm2ps.h        2019-11-05 14:02:00.000000000 +0100
+++ new/abcm2ps-8.14.7/abcm2ps.h        2020-02-19 14:00:51.000000000 +0100
@@ -524,7 +524,7 @@
        float topspace, wordsspace, titlespace, subtitlespace, partsspace;
        float composerspace, musicspace, vocalspace, textspace;
        float breaklimit, maxshrink, lineskipfac, parskipfac, stemheight;
-       float gutter, indent, infospace, slurheight, notespacingfactor, scale;
+       float gutter, indent, infospace, slurheight, tieheight, 
notespacingfactor, scale;
        float staffsep, sysstaffsep, maxstaffsep, maxsysstaffsep, stretchlast;
        int abc2pscompat, alignbars, aligncomposer, autoclef;
        int barsperstaff, breakoneoln, bstemdown, cancelkey, capo;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/abcm2ps-8.14.6/abcparse.c 
new/abcm2ps-8.14.7/abcparse.c
--- old/abcm2ps-8.14.6/abcparse.c       2019-11-05 14:02:00.000000000 +0100
+++ new/abcm2ps-8.14.7/abcparse.c       2020-02-19 14:00:51.000000000 +0100
@@ -3,7 +3,7 @@
  *
  * This file is part of abcm2ps.
  *
- * Copyright (C) 1998-2019 Jean-François Moine (http://moinejf.free.fr)
+ * Copyright (C) 1998-2020 Jean-François Moine (http://moinejf.free.fr)
  * Adapted from abc2ps, Copyright (C) 1996-1998 Michael Methfessel
  *
  * This program is free software; you can redistribute it and/or modify it
@@ -1794,6 +1794,7 @@
                        int *p_len)
 {
        int len, fac;
+       int err = 0;
        char *q;
 
        len = dur_u;
@@ -1801,27 +1802,33 @@
                len *= strtol(p, &q, 10);
                if (len <= 0) {
                        syntax("Bad length", p);
-                       len = BASE_LEN;
+                       len = dur_u;
                }
                p = q;
        }
-       fac = 1;
-       while (*p == '/') {
-               p++;
-               if (isdigit((unsigned char) *p)) {
-                       fac *= strtol(p, &q, 10);
-                       if (fac == 0) {
-                               syntax("Bad length divisor", p - 1);
-                               fac = 1;
-                       }
-                       p = q;
-               } else {
-                       fac *= 2;
+       if (*p != '/') {
+               *p_len = len;
+               return p;
+       }
+       if (isdigit((unsigned char) p[1])) {
+               fac = strtol(p + 1, &q, 10);
+               p = q;
+               if (fac == 0 || (fac & (fac - 1)))
+                       err = 1;
+               else
+                       len /= fac;
+       } else {
+               while (*p == '/') {
+                       if (len & 1)
+                               err = 1;
+                       len /= 2;
+                       p++;
                }
        }
-       if (len % fac)
+       if (err || !len) {
                syntax("Bad length divisor", p - 1);
-       len /= fac;
+               len = dur_u;
+       }
        *p_len = len;
        return p;
 }
@@ -2037,6 +2044,8 @@
                case CHAR_SLASH:                /* '/' */
                        if (flags & ABC_F_GRACE)
                                goto bad_char;
+                       if (char_tb[(unsigned char) p[-1]] != CHAR_BAR)
+                               goto bad_char;
                        q = p;
                        while (*q == '/')
                                q++;
@@ -2332,7 +2341,7 @@
                len = 1;
                if (isdigit((unsigned char) *p)) {
                        len = strtol(p, &q, 10);
-                       if (len == 0 && len > 100) {
+                       if (len == 0 || len > 100) {
                                syntax("Bad number of measures", p);
                                len = 1;
                        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/abcm2ps-8.14.6/configure new/abcm2ps-8.14.7/configure
--- old/abcm2ps-8.14.6/configure        2019-11-05 14:02:00.000000000 +0100
+++ new/abcm2ps-8.14.7/configure        2020-02-19 14:00:51.000000000 +0100
@@ -1,10 +1,11 @@
 #! /bin/sh
 
 # (automatic update)
-VERSION=8.14.6
-VDATE=2019-11-05
+VERSION=8.14.7
+VDATE=2020-02-19
 
 CC=gcc
+PKG_CONFIG=pkg-config
 CFLAGS="-g -O2 -Wall -pipe"
 
 srcdir=.
@@ -57,11 +58,11 @@
        DEFAULT_FDIR="$prefix/share/abcm2ps"
 fi
 
-if which pkg-config > /dev/null ; then
-       if pkg-config --exists freetype2 ; then
-               if pkg-config --exists pangocairo ; then
-                       CPPFLAGS="$CPPFLAGS -DHAVE_PANGO=1 `pkg-config pango 
cairo freetype2 --cflags`"
-                       LDLIBS="$LDLIBS `pkg-config pangocairo pangoft2 
freetype2 --libs`"
+if which $PKG_CONFIG > /dev/null ; then
+       if $PKG_CONFIG --exists freetype2 ; then
+               if $PKG_CONFIG --exists pangocairo ; then
+                       CPPFLAGS="$CPPFLAGS -DHAVE_PANGO=1 `$PKG_CONFIG pango 
cairo freetype2 --cflags`"
+                       LDLIBS="$LDLIBS `$PKG_CONFIG pangocairo pangoft2 
freetype2 --libs`"
                else
                        echo "pangocairo not found - no pango support"
                fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/abcm2ps-8.14.6/deco.c new/abcm2ps-8.14.7/deco.c
--- old/abcm2ps-8.14.6/deco.c   2019-11-05 14:02:00.000000000 +0100
+++ new/abcm2ps-8.14.7/deco.c   2020-02-19 14:00:51.000000000 +0100
@@ -93,6 +93,7 @@
        "emphasis 3 accent 7 4 4",
        "lowermordent 3 lmrd 10 2 2",
        "coda 3 coda 24 10 10",
+       "dacoda 3 dacoda 16 10 10",
        "uppermordent 3 umrd 10 2 2",
        "segno 3 sgno 20 4 4",
        "trill 3 trl 11 4 4",
@@ -121,7 +122,12 @@
        "marcato 3 marcato 9 3 3",
        "^ 3 marcato 9 3 3",
        "D.C. 3 dacs 16 10 10 D.C.",
+       "D.C.alcoda 3 dacs 16 10 10 D.C. al Coda",
+       "D.C.alfine 3 dacs 16 10 10 D.C. al Fine",
+       "dacapo 3 dacs 16 10 10 Da Capo",
        "D.S. 3 dacs 16 10 10 D.S.",
+       "D.S.alcoda 3 dacs 16 10 10 D.S. al Coda",
+       "D.S.alfine 3 dacs 16 10 10 D.S. al Fine",
        "fine 3 dacs 16 10 10 FINE",
        "f 6 pf 18 1 7",
        "ff 6 pf 18 2 10",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/abcm2ps-8.14.6/draw.c new/abcm2ps-8.14.7/draw.c
--- old/abcm2ps-8.14.6/draw.c   2019-11-05 14:02:00.000000000 +0100
+++ new/abcm2ps-8.14.7/draw.c   2020-02-19 14:00:51.000000000 +0100
@@ -3086,6 +3086,11 @@
                        x2 -= 1.5;
                }
 
+               if (k1->dots && !(p1 & 1)
+                && ((s > 0 && k1->doty >= 0)
+                 || (s < 0 && k1->doty < 0)))
+                       x1 += 6;                // avoid clash with dots
+
                y = 3 * (p - 18);
 //fixme: clash when 2 ties on second interval chord
 //             if (p & 1)
@@ -3109,6 +3114,7 @@
 #endif
 
                h = (.04 * (x2 - x1) + 10) * s;
+               h *= cfmt.tieheight;
                slur_out(x1, staff_tb[staff].y + y,
                         x2, staff_tb[staff].y + y,
                         s, h, k1->u.note.notes[m1].ti1 & SL_DOTTED, -1);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/abcm2ps-8.14.6/format.c new/abcm2ps-8.14.7/format.c
--- old/abcm2ps-8.14.6/format.c 2019-11-05 14:02:00.000000000 +0100
+++ new/abcm2ps-8.14.7/format.c 2020-02-19 14:00:51.000000000 +0100
@@ -137,6 +137,7 @@
        {"textfont", &cfmt.font_tb[TEXTFONT], FORMAT_F, 0},
        {"textoption", &cfmt.textoption, FORMAT_I, 4},
        {"textspace", &cfmt.textspace, FORMAT_U, 0},
+       {"tieheight", &cfmt.tieheight, FORMAT_R, 0},
        {"titlecaps", &cfmt.titlecaps, FORMAT_B, 0},
        {"titlefont", &cfmt.font_tb[TITLEFONT], FORMAT_F, 0},
        {"titleformat", &cfmt.titleformat, FORMAT_S, 0},
@@ -379,6 +380,7 @@
        f->textspace = 14 PT;
        f->scale = 1.0;
        f->slurheight = 1.0;
+       f->tieheight = 1.0;
        f->maxshrink = 0.65;
        f->breaklimit = 0.7;
        f->stretchlast = 0.25;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/abcm2ps-8.14.6/music.c new/abcm2ps-8.14.7/music.c
--- old/abcm2ps-8.14.6/music.c  2019-11-05 14:02:00.000000000 +0100
+++ new/abcm2ps-8.14.7/music.c  2020-02-19 14:00:51.000000000 +0100
@@ -2632,8 +2632,10 @@
                                 && new_line == 
staff_clef[staff].clef->u.clef.line)
                                        continue;
                                g = s;
-                               while (g->voice != voice)
+                               while (g && g->voice != voice)
                                        g = g->ts_next;
+                               if (!g)
+                                       continue;
                                if (g->type != CLEF) {
                                        g = insert_clef(g, new_type, new_line);
                                        if (s2->sflags & S_CLEF_AUTO)
@@ -3167,7 +3169,8 @@
 
        s->ts_next = last_s;
        s->ts_prev = last_s->ts_prev;
-       s->ts_prev->ts_next = s;
+       if (s->ts_prev)
+               s->ts_prev->ts_next = s;
        if (!s->ts_prev || s->ts_prev->type != type)
                s->sflags |= S_SEQST;
        last_s->ts_prev = s;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/abcm2ps-8.14.6/parse.c new/abcm2ps-8.14.7/parse.c
--- old/abcm2ps-8.14.6/parse.c  2019-11-05 14:02:00.000000000 +0100
+++ new/abcm2ps-8.14.7/parse.c  2020-02-19 14:00:51.000000000 +0100
@@ -3,7 +3,7 @@
  *
  * This file is part of abcm2ps.
  *
- * Copyright (C) 1998-2019 Jean-François Moine (http://moinejf.free.fr)
+ * Copyright (C) 1998-2020 Jean-François Moine (http://moinejf.free.fr)
  * Adapted from abc2ps, Copyright (C) 1996-1998 Michael Methfessel
  *
  * This program is free software; you can redistribute it and/or modify it
@@ -233,7 +233,8 @@
        for (;;) {
                if (set_sy) {
                    fl = 1;                     // start a new sequence
-                   if (!new_sy) {
+//                 if (!new_sy) {
+                   if (1) {
                        set_sy = 0;
                        multi = -1;
                        memset(vn, -1, sizeof vn);
@@ -2315,7 +2316,7 @@
 /* -- get staves definition (%%staves / %%score) -- */
 static void get_staves(struct SYMBOL *s)
 {
-       struct SYMBOL *s2;
+//     struct SYMBOL *s2;
        struct VOICE_S *p_voice, *p_voice2;
        struct staff_s *p_staff, staves[MAXVOICE];
        int i, flags, voice, staff, range, dup_voice, maxtime;
@@ -2357,18 +2358,18 @@
                curvoice->time = maxtime;
 
                // put the staves before a measure bar (see draw_bar())
-               s2 = curvoice->last_sym;
-               if (s2 && s2->type == BAR && s2->time == maxtime) {
-                       curvoice->last_sym = s2->prev;
-                       if (!curvoice->last_sym)
-                               curvoice->sym = NULL;
-                       sym_link(s, STAVES);
-                       s->next = s2;
-                       s2->prev = s;
-                       curvoice->last_sym = s2;
-               } else {
+//             s2 = curvoice->last_sym;
+//             if (s2 && s2->type == BAR && s2->time == maxtime) {
+//                     curvoice->last_sym = s2->prev;
+//                     if (!curvoice->last_sym)
+//                             curvoice->sym = NULL;
+//                     sym_link(s, STAVES);
+//                     s->next = s2;
+//                     s2->prev = s;
+//                     curvoice->last_sym = s2;
+//             } else {
                        sym_link(s, STAVES); // link the staves in the current 
voice
-               }
+//             }
                s->state = ABC_S_HEAD; /* (output PS sequences immediately) */
                parsys->nstaff = nstaff;
                system_new();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/abcm2ps-8.14.6/svg.c new/abcm2ps-8.14.7/svg.c
--- old/abcm2ps-8.14.6/svg.c    2019-11-05 14:02:00.000000000 +0100
+++ new/abcm2ps-8.14.7/svg.c    2020-02-19 14:00:51.000000000 +0100
@@ -2344,6 +2344,21 @@
                        free(s);
                        return;
                }
+               if (strcmp(op, "dacoda") == 0) {
+                       setg(1);
+                       e = elt_dup(stack);
+                       y = gcur.yoffs - pop_free_val() - 7;
+                       e2 = elt_dup(stack);
+                       e2->u.v += 10;
+                       x = gcur.xoffs + pop_free_val() - 10;
+                       fprintf(fout, "<text style=\"font:16px serif\"\n"
+                               "       x=\"%.2f\" y=\"%.2f\" 
text-anchor=\"middle\">Da</text>\n",
+                               x, y);
+                       push(e2);
+                       push(e);
+                       xysym("coda", D_coda);
+                       return;
+               }
                if (strcmp(op, "def") == 0) {
                        ps_exec("!");
                        return;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/abcm2ps-8.14.6/syms.c new/abcm2ps-8.14.7/syms.c
--- old/abcm2ps-8.14.6/syms.c   2019-11-05 14:02:00.000000000 +0100
+++ new/abcm2ps-8.14.7/syms.c   2020-02-19 14:00:51.000000000 +0100
@@ -535,10 +535,16 @@
        "       M 0.8 SLW -6 1.2 RM 12.6 12.6 RL stroke\n"
        "       7 add exch 6 sub exch 1.2 0 360 arc fill\n"
        "       8 add exch 6 add exch 1.2 0 360 arc fill}!\n"
+       /* x y dacoda - Da Coda */
+       "/dacoda{2 1 roll 10 add 2 1 roll dup 3 -1 roll dup 3 1 roll -23 add 4 
1 roll\n"
+       "       1 SLW 2 add 2 copy M 0 20 RL\n"
+       "       2 copy M -10 10 RM 20 0 RL stroke\n"
+       "       10 add 6 0 360 arc 1.7 SLW stroke\n"
+       "       /Times-Roman 16 selectfont 7 add M (Da) showc}!\n"
        /* x y coda - coda */
        "/coda{ 1 SLW 2 add 2 copy M 0 20 RL\n"
-       "       2 copy M -10 10 RM 20 0 RL stroke\n"
-       "       10 add 6 0 360 arc 1.7 SLW stroke}!\n"
+       "       2 copy M -10 10 RM 20 0 RL 1.1 SLW stroke\n"
+       "       exch -7 add exch (O) 3 1 roll /Times-Bold 18 selectfont 4 add M 
show}!\n"
        /* x y tclef - treble clef */
        "/utclef{<95200072\n"
        "       0000ff2e01c2030c\n"

++++++ compiler_flags.patch ++++++
--- /var/tmp/diff_new_pack.pUYwlt/_old  2020-02-20 14:56:33.006425776 +0100
+++ /var/tmp/diff_new_pack.pUYwlt/_new  2020-02-20 14:56:33.006425776 +0100
@@ -1,21 +1,21 @@
-diff -urEbw abcm2ps-8.14.6/configure abcm2ps-8.14.6.new/configure
---- abcm2ps-8.14.6/configure   2019-11-05 14:02:00.000000000 +0100
-+++ abcm2ps-8.14.6.new/configure       2019-11-08 11:51:14.147405009 +0100
-@@ -5,7 +5,7 @@
- VDATE=2019-11-05
+diff -urEbw abcm2ps-8.14.7/configure abcm2ps-8.14.7.new/configure
+--- abcm2ps-8.14.7/configure   2020-02-19 14:00:51.000000000 +0100
++++ abcm2ps-8.14.7.new/configure       2020-02-19 14:37:35.365351023 +0100
+@@ -6,7 +6,7 @@
  
  CC=gcc
+ PKG_CONFIG=pkg-config
 -CFLAGS="-g -O2 -Wall -pipe"
 +CFLAGS="$RPM_OPT_FLAGS -pipe"
  
  srcdir=.
  prefix=/usr/local
-@@ -60,8 +60,8 @@
- if which pkg-config > /dev/null ; then
-       if pkg-config --exists freetype2 ; then
-               if pkg-config --exists pangocairo ; then
--                      CPPFLAGS="$CPPFLAGS -DHAVE_PANGO=1 `pkg-config pango 
cairo freetype2 --cflags`"
--                      LDLIBS="$LDLIBS `pkg-config pangocairo pangoft2 
freetype2 --libs`"
+@@ -61,8 +61,8 @@
+ if which $PKG_CONFIG > /dev/null ; then
+       if $PKG_CONFIG --exists freetype2 ; then
+               if $PKG_CONFIG --exists pangocairo ; then
+-                      CPPFLAGS="$CPPFLAGS -DHAVE_PANGO=1 `$PKG_CONFIG pango 
cairo freetype2 --cflags`"
+-                      LDLIBS="$LDLIBS `$PKG_CONFIG pangocairo pangoft2 
freetype2 --libs`"
 +                      CPPFLAGS="$CPPFLAGS -DHAVE_PANGO=1 `pkg-config pango 
cairo gobject-2.0 freetype2 --cflags`"
 +                      LDLIBS="$LDLIBS `pkg-config pangocairo pangoft2 
gobject-2.0 freetype2 --libs`"
                else


Reply via email to