From 84917974086e834e1fcb0b50baa0c48092c2a351 Mon Sep 17 00:00:00 2001
From: Peter Pentchev <roam@ringlet.net>
Date: Wed, 9 Mar 2011 18:59:13 +0200
Subject: [PATCH 14/15] Fix some more compiler warnings.

---
 debian/changelog                       |    1 +
 debian/patches/compiler-warnings.patch |  324 ++++++++++++++++++++++++++++++++
 debian/patches/series                  |    1 +
 debian/rules                           |    5 +-
 4 files changed, 330 insertions(+), 1 deletions(-)
 create mode 100644 debian/patches/compiler-warnings.patch

diff --git a/debian/changelog b/debian/changelog
index da53939..ce1128f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -22,6 +22,7 @@ alex4 (1.1-4) UNRELEASED; urgency=low
   * Convert the copyright file to the DEP 5 candidate format.
   * Convert all patch file headers to the DEP 3 format.
   * Build with -Werror if the non-standard "werror" build option is set.
+  * Add the compiler-warnings patch to fix some, well, compiler warnings.
 
  -- Peter Pentchev <roam@ringlet.net>  Wed, 09 Mar 2011 14:14:04 +0200
 
diff --git a/debian/patches/compiler-warnings.patch b/debian/patches/compiler-warnings.patch
new file mode 100644
index 0000000..496b8ff
--- /dev/null
+++ b/debian/patches/compiler-warnings.patch
@@ -0,0 +1,324 @@
+Description: Fix some compiler warnings.
+ - mark a couple of function parameters as unused
+ - remove a couple of unused function parameters
+ - remove a couple of stray semicolons outside of functions
+ - define _XOPEN_SOURCE for strdup(3)
+ - constify a couple of character pointers
+ - replace some int -> float casts with a multiplication by 1.0
+Forwarded: no
+Author: Peter Pentchev <roam@ringlet.net>
+Last-Update: 2011-03-09
+
+--- a/src/main.c
++++ b/src/main.c
+@@ -17,13 +17,14 @@
+  *    http://www.gnu.org for license information.             *
+  **************************************************************/
+  
+- 
++#define _XOPEN_SOURCE	700
+  
+ #include <allegro.h>
+ #include <aldumb.h>
+ #include <string.h>
+ #include <ctype.h>
+ 
++#include "defs.h"
+ #include "timer.h"
+ #include "map.h"
+ #include "control.h"
+@@ -42,7 +43,6 @@
+ 
+ #include "../data/data.h"
+ 
+-
+ // some game status defines
+ #define GS_OK				1
+ #define GS_GAMEOVER			2
+@@ -153,7 +153,7 @@
+ 
+ 
+ // loggs the text to the text file
+-void log2file(char *format, ...) {
++void log2file(const char *format, ...) {
+ 	va_list ptr; /* get an arg pointer */
+ 	
+ 	if (log_fp) {
+@@ -254,7 +254,7 @@
+ 
+ 
+ // shows a little message
+-void msg_box(char *str) {
++void msg_box(const char *str) {
+ 	if (got_sound) al_pause_duh(dp);
+ 	alert("Alex 4: Message", NULL, str, "OK", NULL, 0, 0);
+ 	if (got_sound) al_resume_duh(dp);
+@@ -306,7 +306,7 @@
+ 	{
+ 		sr = dumb_it_start_at_order(duh, n_channels, startorder);
+ 		dp = al_duh_encapsulate_sigrenderer(sr,
+-			((float)(get_config_int("sound", "music_volume", 255)) / 255.0),
++			((get_config_int("sound", "music_volume", 255) * 1.0) / 255.0),
+ 			get_config_int("dumb", "buffer_size", 4096),
+ 			get_config_int("dumb", "sound_freq", 44100));
+ 		if (!dp) duh_end_sigrenderer(sr); // howto.txt doesn't mention that this is necessary! dumb.txt does ...
+@@ -565,7 +565,7 @@
+ 
+ 
+ // loads a sample from disk
+-SAMPLE *load_path_sample(char *fname) {
++SAMPLE *load_path_sample(const char *fname) {
+ 	char buf[1024];
+ 	SAMPLE *s;
+ 	sprintf(buf, "%s/%s", get_config_string("sound", "sfx_path", "sfx"), fname);
+@@ -581,7 +581,7 @@
+ 
+ // counts number of maps
+ // invoked when loading the map datafile
+-void count_maps_callback(DATAFILE *d) {
++void count_maps_callback(DATAFILE *d __unused) {
+ 	num_levels ++;
+ }
+ 
+@@ -1579,7 +1579,7 @@
+ 
+ 
+ // tidies up after a map has been used
+-void deinit_map(Tmap *m) {
++void deinit_map(void) {
+ 	int i;
+ 
+ 	// stop any playing sounds
+@@ -1724,7 +1724,7 @@
+ // starts a new level
+ // level_id < 0 -> load fname
+ // uses datafile map o/w
+-void new_level(char *fname, int level_id, int draw) {
++void new_level(const char *fname, int level_id, int draw) {
+ 	int tox;
+ 	int i;
+ 	int x, y;
+@@ -2367,7 +2367,7 @@
+ 
+ 
+ // play the game!
+-int play(int level) {
++int play(void) {
+ 	int i;
+ 	int playing_go_music = 0;
+ 
+@@ -2819,8 +2819,8 @@
+ 			draw_frame(swap_screen, 1);
+ 			blit_to_screen(swap_screen);
+ 			fade_in_pal(100);
+-			status = play(-1);
+-			deinit_map(map);
++			status = play();
++			deinit_map();
+ 		}
+ 		else {
+ 			log2file(" *** failed");
+@@ -2877,10 +2877,10 @@
+ 
+ 			// actual game starts here
+ 			show_lets_go();
+-			status = play(level);
++			status = play();
+ 			// done playing level
+ 
+-			deinit_map(map);
++			deinit_map();
+ 
+ 			// act on different outcomes
+ 			if (status == GS_GAME_DIED) {
+@@ -3112,7 +3112,7 @@
+ 		fclose(log_fp);
+ 
+ 	return 0;
+-} END_OF_MAIN(); 
++} END_OF_MAIN() 
+ 
+ 
+ 
+--- /dev/null
++++ b/src/defs.h
+@@ -0,0 +1,12 @@
++#ifndef _INCLUDED_DEFS_H
++#define _INCLUDED_DEFS_H
++
++#ifndef __unused
++#ifdef __GNUC__
++#define __unused __attribute__((unused))
++#else  /* __GNUC__ */
++#define __unused
++#endif /* __GNUC__ */
++#endif /* __unused */
++
++#endif /* _INCLUDED */
+--- a/src/particle.c
++++ b/src/particle.c
+@@ -20,7 +20,7 @@
+  
+  
+ 
+-
++#include "defs.h"
+ #include "particle.h"
+ 
+ // pointer to datafile
+@@ -92,7 +92,7 @@
+ }
+ 
+ // updates particle with map
+-void update_particle_with_map(Tparticle *p, Tmap *m) {
++void update_particle_with_map(Tparticle *p, Tmap *m __unused) {
+ 	update_particle(p);
+ 
+ 	/* bouncing algo removed 
+--- a/src/timer.c
++++ b/src/timer.c
+@@ -30,7 +30,7 @@
+ 	lps = logic_count;
+ 	logic_count = 0;
+ }
+-END_OF_FUNCTION(fps_counter);
++END_OF_FUNCTION(fps_counter)
+ 
+ 
+ // keeps track of internal game speed
+@@ -38,7 +38,7 @@
+ 	cycle_count++;
+ 	game_count++;
+ }
+-END_OF_FUNCTION(game_counter);
++END_OF_FUNCTION(game_counter)
+ 
+ 
+ // initiates the timers
+--- a/src/token.c
++++ b/src/token.c
+@@ -18,7 +18,7 @@
+  **************************************************************/
+  
+  
+- 
++#define _XOPEN_SOURCE	700 
+ 
+ #include <stdio.h>
+ #include <string.h>
+@@ -32,7 +32,7 @@
+ ////////////////////////////////////////////////////////////////
+ 
+ // creates a new token
+-Ttoken *create_token(char *word) {
++Ttoken *create_token(const char *word) {
+     Ttoken *tok = malloc(sizeof(Ttoken));
+     if (tok != NULL) {
+         tok->word = strdup(word);
+--- a/src/main.h
++++ b/src/main.h
+@@ -63,13 +63,13 @@
+ // functions
+ char *get_init_string();
+ void textout_outline_center(BITMAP *bmp, const char *txt, int cx, int y);
+-void log2file(char *format, ...);
++void log2file(const char *format, ...);
+ int do_pause_menu(BITMAP *bg);
+ void take_screenshot(BITMAP *bmp);
+ void set_map(Tmap *m);
+-void msg_box(char *str);
++void msg_box(const char *str);
+ void new_game(int reset_player_data);
+-void new_level(char *fname, int level_id, int draw);
++void new_level(const char *fname, int level_id, int draw);
+ Tactor *get_alex();
+ void draw_frame(BITMAP *bmp, int draw_status_bar);
+ void blit_to_screen(BITMAP *bmp);
+--- a/src/shooter.c
++++ b/src/shooter.c
+@@ -321,7 +321,7 @@
+ 	s_stop_music();
+ 
+ 	{
+-		s_music_vol = (float)(get_config_int("sound", "music_volume", 255)) / 255.0;
++		s_music_vol = (get_config_int("sound", "music_volume", 255) * 1.0) / 255.0;
+ 		s_sr = dumb_it_start_at_order(s_duh, n_channels, startorder);
+ 		s_dp = al_duh_encapsulate_sigrenderer(s_sr, 
+ 			s_music_vol,
+--- a/src/edit.c
++++ b/src/edit.c
+@@ -44,7 +44,7 @@
+ }
+ 
+ // set the path for the current map
+-void set_edit_path_and_file(char *str) {
++void set_edit_path_and_file(const char *str) {
+ 	strcpy(edit_path_and_file, str);
+ 	log2file("  edit path set to: <%s>", edit_path_and_file);
+ }
+--- a/src/edit.h
++++ b/src/edit.h
+@@ -33,7 +33,7 @@
+ // functions
+ void set_edit_mode(int mode);
+ char *get_edit_path_and_file();
+-void set_edit_path_and_file(char *str);
++void set_edit_path_and_file(const char *str);
+ void draw_edit_mode(BITMAP *bmp, Tmap *map, int mx, int my);
+ void update_edit_mode(Tmap *map, BITMAP *bmp, int mx, int my, int mb);
+ 
+--- a/src/hisc.c
++++ b/src/hisc.c
+@@ -84,7 +84,7 @@
+ }
+ 
+ // Resets the table to the values specified
+-void reset_hisc_table(Thisc *table, char *name, int hi, int lo) {
++void reset_hisc_table(Thisc *table, const char *name, int hi, int lo) {
+ 	int i;
+ 	int d = (hi-lo)/(MAX_SCORES - 1);
+ 	int acc = lo;
+--- a/src/hisc.h
++++ b/src/hisc.h
+@@ -41,7 +41,7 @@
+ int qualify_hisc_table(Thisc *table, Thisc post);
+ void sort_hisc_table(Thisc *table);
+ void enter_hisc_table(Thisc *table, Thisc post);
+-void reset_hisc_table(Thisc *table, char *name, int hi, int lo);
++void reset_hisc_table(Thisc *table, const char *name, int hi, int lo);
+ int load_hisc_table(Thisc *table, PACKFILE *fp);
+ void save_hisc_table(Thisc *table, PACKFILE *fp);
+ 
+--- a/src/map.c
++++ b/src/map.c
+@@ -102,7 +102,7 @@
+ }
+ 
+ // loads one splendind map from disk
+-Tmap *load_map(char *fname) {
++Tmap *load_map(const char *fname) {
+ 	Tmap *m;
+ 	FILE *fp;
+     char header[6];
+--- a/src/map.h
++++ b/src/map.h
+@@ -93,7 +93,7 @@
+ // functions
+ Tmap *create_map(int w, int h);
+ void destroy_map(Tmap *m);
+-Tmap *load_map(char *fname);
++Tmap *load_map(const char *fname);
+ Tmap *load_map_from_memory(void *mem);
+ int save_map(Tmap *m, char *fname);
+ void change_map_size(Tmap *m, int dw, int dh, int dir_flags);
+--- a/src/token.h
++++ b/src/token.h
+@@ -32,7 +32,7 @@
+ 
+ 
+ // functions
+-Ttoken *create_token(char *word);
++Ttoken *create_token(const char *word);
+ void destroy_token(Ttoken *t);
+ void flush_tokens(Ttoken *head);
+ void insert_token(Ttoken *list, Ttoken *t);
diff --git a/debian/patches/series b/debian/patches/series
index 3c01019..5a94e0c 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,3 +3,4 @@ dot-files-endian-clean.patch
 save-some-cpu-cycles.patch
 allegro-4.2.patch
 fsf-address.patch
+compiler-warnings.patch
diff --git a/debian/rules b/debian/rules
index 64dd688..ad96cb5 100755
--- a/debian/rules
+++ b/debian/rules
@@ -7,7 +7,10 @@ CFLAGS:=	$(shell dpkg-buildflags --get CFLAGS)
 CPPFLAGS:=	$(shell dpkg-buildflags --get CPPFLAGS)
 LDFLAGS:=	$(shell dpkg-buildflags --get LDFLAGS)
 
-CFLAGS+=	-Wall
+CFLAGS+=	-Wall -W -Wbad-function-cast \
+		-Wcast-align -Wcast-qual -Wchar-subscripts -Winline \
+		-Wnested-externs -Wpointer-arith \
+		-Wredundant-decls -Wwrite-strings
 ifneq (,$(filter werror,$(DEB_BUILD_OPTIONS)))
 	CFLAGS+=	-Werror
 endif
-- 
1.7.2.3

