-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi,
While reviewing the source, I found a number of problems which are not
addressed by Andreas' patch.
1) -Wformat-non-literal is replaced by -Wformat-nonliteral, so
replacing, rather than removing, this flag may be more
appropriate.
2) Most of the sources only include the Standard headers if building
with MicroSoft Visual C version 6. The following patch makes it
use these headers when building with any ANSI compiler, by
checking if __STDC__ is defined. This corrects a huge number of
compiler warnings.
3) There are a number of other warnings about comments within
comments, unused variables, not using parentheses around
assignment of truth values in conditionals. I have fixed most of
these.
4) There are many warnings about uninitialised variables being used
all over the place. These should be investigated.
The patch includes a changelog entry for NMU, which may be safely
removed. I will NMU with just the header (__STDC__) fixes and the
debian/rules compiler flag fix within the week, unless it's fixed
sooner. I suggest sending the other fixes upstream, as well as
applying the patch for Debian.
Regards,
Roger
$ diffstat abcmidi-stdc.diff
crack.c | 7 ++++++-
debian/changelog | 10 ++++++++++
debian/rules | 4 ++--
debug.c | 1 -
drawtune.c | 2 +-
genmidi.c | 2 +-
mftext.c | 3 ++-
midi2abc.c | 14 +++++++-------
midicopy.c | 11 ++++++++++-
midifile.c | 19 +++++++++++++++++--
midifile.h | 16 ----------------
parseabc.c | 4 ++--
position.c | 2 +-
pslib.c | 2 +-
store.c | 5 ++---
toabc.c | 5 ++---
yapstree.c | 2 +-
17 files changed, 65 insertions(+), 44 deletions(-)
- --
Roger Leigh
Printing on GNU/Linux? http://gimp-print.sourceforge.net/
Debian GNU/Linux http://www.debian.org/
GPG Public Key: 0x25BFB848. Please sign and encrypt your mail.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Processed by Mailcrypt 3.5.8 <http://mailcrypt.sourceforge.net/>
iD8DBQFC0Q7/VcFcaSW/uEgRAgXvAKC11SmPB/osWXVE9TpTpKMj45q2bQCghLJH
bxCuwbLgTMeRDRKPoOjG+uA=
=P27G
-----END PGP SIGNATURE-----
diff -urN abcmidi-20050101.original/crack.c abcmidi-20050101/crack.c
--- abcmidi-20050101.original/crack.c 2000-07-30 06:49:36.000000000 +0100
+++ abcmidi-20050101/crack.c 2005-07-10 12:53:37.738661336 +0100
@@ -63,6 +63,11 @@
*/
#include <stdio.h>
+#include <string.h>
+
+#ifdef __STDC__
+#include <stdlib.h>
+#endif
/* define USE_INDEX if your C libraries have index() instead of strchr() */
#ifdef USE_INDEX
@@ -76,7 +81,7 @@
char* crack(argc, argv, flags, ign)
int argc; char **argv; char *flags; int ign;
{
- char *pv, *flgp, *strchr();
+ char *pv, *flgp;
while ((arg_index) < argc)
{
if (pvcon != NULL)
diff -urN abcmidi-20050101.original/debian/changelog abcmidi-20050101/debian/changelog
--- abcmidi-20050101.original/debian/changelog 2005-07-10 12:20:07.000000000 +0100
+++ abcmidi-20050101/debian/changelog 2005-07-10 12:24:22.135553576 +0100
@@ -1,3 +1,13 @@
+abcmidi (20050101-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Replace the -Wformat-non-literal argument from CFLAGS in
+ debian/rules, which is not supported by GCC 4.0, with
+ -Wformat-nonliteral (Closes: #288770). Reported by
+ Andreas Jochens.
+
+ -- Roger Leigh <[EMAIL PROTECTED]> Sun, 10 Jul 2005 12:23:47 +0100
+
abcmidi (20050101-1) unstable; urgency=low
* New upstream release
diff -urN abcmidi-20050101.original/debian/rules abcmidi-20050101/debian/rules
--- abcmidi-20050101.original/debian/rules 2005-07-10 12:20:07.000000000 +0100
+++ abcmidi-20050101/debian/rules 2005-07-10 12:23:43.108486592 +0100
@@ -13,9 +13,9 @@
# This is K&R C, so don't worry about a couple of classes of warnings.
ifeq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
-CFLAGS="-O2 -Wall -Wno-implicit -Wno-return-type -Wformat-non-literal -c"
+CFLAGS="-O2 -Wall -Wno-implicit -Wno-return-type -Wformat-nonliteral -c"
else
-CFLAGS="-O2 -g -Wall -Wno-implicit -Wno-return-type -Wformat-non-literal -c"
+CFLAGS="-O2 -g -Wall -Wno-implicit -Wno-return-type -Wformat-nonliteral -c"
endif
build: build-stamp
diff -urN abcmidi-20050101.original/debug.c abcmidi-20050101/debug.c
--- abcmidi-20050101.original/debug.c 2004-11-21 13:09:28.000000000 +0000
+++ abcmidi-20050101/debug.c 2005-07-10 12:54:16.751730448 +0100
@@ -203,7 +203,6 @@
char* atitle;
int notesdone;
struct voice* thisvoice;
- int doneline;
notesdone = 0;
atitle = firstitem(&t->title);
diff -urN abcmidi-20050101.original/drawtune.c abcmidi-20050101/drawtune.c
--- abcmidi-20050101.original/drawtune.c 2004-09-18 13:05:04.000000000 +0100
+++ abcmidi-20050101/drawtune.c 2005-07-10 12:29:49.263822520 +0100
@@ -29,7 +29,7 @@
#endif
#include <stdio.h>
-#ifdef ANSILIBS
+#if defined(ANSILIBS) || defined(__STDC__)
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
diff -urN abcmidi-20050101.original/genmidi.c abcmidi-20050101/genmidi.c
--- abcmidi-20050101.original/genmidi.c 2004-12-18 19:32:07.000000000 +0000
+++ abcmidi-20050101/genmidi.c 2005-07-10 12:30:20.931008376 +0100
@@ -39,7 +39,7 @@
#include "genmidi.h"
#include "midifile.h"
#include <stdio.h>
-#ifdef ANSILIBS
+#if defined(ANSILIBS) || defined(__STDC__)
#include <string.h>
#include <ctype.h>
#endif
diff -urN abcmidi-20050101.original/mftext.c abcmidi-20050101/mftext.c
--- abcmidi-20050101.original/mftext.c 2003-03-29 18:59:28.000000000 +0000
+++ abcmidi-20050101/mftext.c 2005-07-10 12:52:41.324237632 +0100
@@ -8,8 +8,9 @@
*/
#include <stdio.h>
-#ifdef ANSILIBS
+#if defined(ANSILIBS) || defined(__STDC__)
#include <ctype.h>
+#include <stdlib.h>
#endif
#include "midifile.h"
diff -urN abcmidi-20050101.original/midi2abc.c abcmidi-20050101/midi2abc.c
--- abcmidi-20050101.original/midi2abc.c 2004-12-18 19:31:28.000000000 +0000
+++ abcmidi-20050101/midi2abc.c 2005-07-10 12:50:07.767581792 +0100
@@ -61,7 +61,7 @@
#define strchr index
#endif
-#ifdef ANSILIBS
+#if defined(ANSILIBS) || defined(__STDC__)
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
@@ -190,7 +190,7 @@
struct atrack track[64];
int trackcount = 0;
int maxbarcount = 0;
-/* maxbarcount is used to return the numbers of bars created.
+/* maxbarcount is used to return the numbers of bars created. */
/* obpl is a flag for one bar per line. */
/* double linked list of notes */
@@ -246,7 +246,7 @@
char msg[256];
sprintf(msg, "Error: Time=%ld Track=%d %s\n", Mf_currtime, trackno, s);
- printf(msg);
+ puts(msg);
}
@@ -1626,7 +1626,7 @@
void handletext(t, textplace, trackno)
/* print out text occuring in the body of the track */
/* The text is printed out at the appropriate place within the track */
-/* In addition the function handles key signature and time
+/* In addition the function handles key signature and time */
/* signature changes that can occur in the middle of the tune. */
long t;
struct tlistx** textplace;
@@ -1848,8 +1848,8 @@
abc file.
*/
char * loc;
-while (loc = (char *) strchr(str,'\r')) *loc = ' ';
-while (loc = (char *) strchr(str,'\n')) *loc = ' ';
+while ((loc = (char *) strchr(str,'\r'))) *loc = ' ';
+while ((loc = (char *) strchr(str,'\n'))) *loc = ' ';
}
@@ -2368,7 +2368,7 @@
};
/* If key signature is not known find the best one. */
- if (keysig == -50 && gotkeysig ==0 || guessk) {
+ if ((keysig == -50 && gotkeysig ==0) || guessk) {
keysig = findkey(maintrack);
if (summary>0) printf("Best key signature = %d flats/sharps\n",keysig);
}
diff -urN abcmidi-20050101.original/midicopy.c abcmidi-20050101/midicopy.c
--- abcmidi-20050101.original/midicopy.c 2004-09-18 13:25:26.000000000 +0100
+++ abcmidi-20050101/midicopy.c 2005-07-10 12:32:55.620492000 +0100
@@ -44,14 +44,23 @@
#define NULLFUNC 0
#define NULL 0
+/* Microsoft Visual C++ Version 6.0 or higher */
+#ifdef _MSC_VER
+#define ANSILIBS
+#endif
+
#ifndef PCCFIX
#include <stdlib.h>
#endif
#include <stdio.h>
+#if defined(ANSILIBS) || defined(__STDC__)
+#include <string.h>
+#include <stdlib.h>
+#else
char *strcpy(), *strcat();
-
+#endif
/* Functions to be called while processing the MIDI file. */
int (*Mf_arbitrary) () = NULLFUNC;
diff -urN abcmidi-20050101.original/midifile.c abcmidi-20050101/midifile.c
--- abcmidi-20050101.original/midifile.c 2004-10-16 22:15:07.000000000 +0100
+++ abcmidi-20050101/midifile.c 2005-07-10 12:46:19.373303000 +0100
@@ -59,7 +59,7 @@
#include <stdio.h>
#include <stdlib.h>
-#ifdef ANSILIBS
+#if defined(ANSILIBS) || defined(__STDC__)
#include <string.h>
#include <stdlib.h>
#else
@@ -68,7 +68,22 @@
/* int exit(), free(); */ /* Line commmented out JRA 19/12/95 */
-/* public stuff */
+static int readtrack();
+static void readheader();
+static void badbyte();
+static void metaevent();
+static void sysex();
+static void chanmessage();
+static void msginit();
+static void msgadd();
+static void biggermsg();
+static void mf_write_track_chunk();
+static void mf_write_header_chunk();
+static void WriteVarLen();
+static void write32bit();
+static void write16bit();
+static int msgleng();
+static int eputc();
/* Functions to be called while processing the MIDI file. */
int (*Mf_getc)() = NULLFUNC;
diff -urN abcmidi-20050101.original/midifile.h abcmidi-20050101/midifile.h
--- abcmidi-20050101.original/midifile.h 2003-03-29 15:38:38.000000000 +0000
+++ abcmidi-20050101/midifile.h 2005-07-10 12:44:03.894898848 +0100
@@ -34,26 +34,10 @@
long mf_sec2ticks();
void mfwrite();
void mfread();
-static int readtrack();
int mf_write_meta_event();
int mf_write_midi_event();
void mf_write_tempo();
-static void readheader();
void mferror();
-static void badbyte();
-static void metaevent();
-static void sysex();
-static void chanmessage();
-static void msginit();
-static void msgadd();
-static void biggermsg();
-static void mf_write_track_chunk();
-static void mf_write_header_chunk();
-static void WriteVarLen();
-static void write32bit();
-static void write16bit();
-static int msgleng();
-static int eputc();
/* MIDI status commands most significant bit is 1 */
#define note_off 0x80
diff -urN abcmidi-20050101.original/parseabc.c abcmidi-20050101/parseabc.c
--- abcmidi-20050101.original/parseabc.c 2004-11-09 15:22:07.000000000 +0000
+++ abcmidi-20050101/parseabc.c 2005-07-10 12:40:49.203496440 +0100
@@ -34,6 +34,7 @@
#include "parseabc.h"
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#define SIZE_ABBREVIATIONS ('Z' - 'H' + 1)
@@ -55,7 +56,7 @@
#define strchr index
#endif
-#ifdef ANSILIBS
+#if defined(ANSILIBS) || defined(__STDC__)
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
@@ -1462,7 +1463,6 @@
int i;
char playonrep_list[80];
int decorators[DECSIZE];
- int n,m;
event_startmusicline();
endchar = ' ';
diff -urN abcmidi-20050101.original/position.c abcmidi-20050101/position.c
--- abcmidi-20050101.original/position.c 2004-09-17 00:12:44.000000000 +0100
+++ abcmidi-20050101/position.c 2005-07-10 12:34:11.939889688 +0100
@@ -25,7 +25,7 @@
/* a line of music. */
#include <stdio.h>
-#ifdef ANSILIBS
+#if defined(ANSILIBS) || defined(__STDC__)
#include <stdlib.h>
#endif
#include "abc.h"
diff -urN abcmidi-20050101.original/pslib.c abcmidi-20050101/pslib.c
--- abcmidi-20050101.original/pslib.c 2002-01-24 07:23:30.000000000 +0000
+++ abcmidi-20050101/pslib.c 2005-07-10 12:34:36.088218584 +0100
@@ -41,7 +41,7 @@
/* #define ANSILIBS is just used to access time functions for */
/* %%CreationDate . This can safely be removed if it causes */
/* compilation problems */
-#ifdef ANSILIBS
+#if defined(ANSILIBS) || defined(__STDC__)
#include <time.h>
#endif
#include "drawtune.h"
diff -urN abcmidi-20050101.original/store.c abcmidi-20050101/store.c
--- abcmidi-20050101.original/store.c 2005-07-10 12:20:07.000000000 +0100
+++ abcmidi-20050101/store.c 2005-07-10 12:41:38.736966208 +0100
@@ -61,7 +61,7 @@
#define strchr index
#endif
-#ifdef ANSILIBS
+#if defined(ANSILIBS) || defined(__STDC__)
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
@@ -785,7 +785,6 @@
char msg[200], command[40];
char *p;
int done;
- int bytesleft;
if (strcmp(package, "MIDI") == 0) {
int ch;
@@ -1235,7 +1234,7 @@
/* converts a P: field to a list of part labels */
/* e.g. P:A(AB)3(CD)2 becomes P:AABABABCDCD */
-/********** This feature is not supported ********[SS] 2004-10-08
+/********** This feature is not supported ********[SS] 2004-10-08 */
/* A '+' indicates 'additive' behaviour (a part may include repeats). */
/* A '-' indicates 'non-additive' behaviour (repeat marks in the music */
/* are ignored and only repeats implied by the part order statement */
diff -urN abcmidi-20050101.original/toabc.c abcmidi-20050101/toabc.c
--- abcmidi-20050101.original/toabc.c 2004-11-09 15:20:20.000000000 +0000
+++ abcmidi-20050101/toabc.c 2005-07-10 12:52:19.832504872 +0100
@@ -37,7 +37,7 @@
#define strchr index
#endif
-#ifdef ANSILIBS
+#if defined(ANSILIBS) || defined(__STDC__)
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
@@ -256,7 +256,7 @@
printf("w:");
foundtext = 1;
};
- printf(barlyrics->words);
+ puts(barlyrics->words);
};
count = new_barcount(p->type, &foundbar, count);
p = p->next;
@@ -2116,7 +2116,6 @@
/* accidental = 10 nothing specified, determine from context */
{
int p;
- int acc;
int mul, noteno;
static int scale[7] = {0, 2, 4, 5, 7, 9, 11};
char *anoctave = "cdefgab";
diff -urN abcmidi-20050101.original/yapstree.c abcmidi-20050101/yapstree.c
--- abcmidi-20050101.original/yapstree.c 2004-12-18 19:31:46.000000000 +0000
+++ abcmidi-20050101/yapstree.c 2005-07-10 12:36:29.261013704 +0100
@@ -33,7 +33,7 @@
#define ANSILIBS
#endif
-#ifdef ANSILIBS
+#if defined(ANSILIBS) || defined(__STDC__)
#include <ctype.h>
#include <stdlib.h>
#include <string.h>