ALL: Mark printf and various other symbols as forbidden

Right now, a few places in the frontend code still use printf and
consorts. We mark the affected files with a FIXME for now, and
add a dedicated exception for each. To be fixed!

Also tweak FORBIDDEN_SYMBOL_REPLACEMENT to hopefully really always
enforce a compiler error
This commit is contained in:
Max Horn 2011-05-02 14:42:08 +02:00
parent 58eebff803
commit 59e77ed667
17 changed files with 164 additions and 35 deletions

View file

@ -351,7 +351,7 @@ void MidiDriver_MT32::send(uint32 b) {
void MidiDriver_MT32::setPitchBendRange(byte channel, uint range) { void MidiDriver_MT32::setPitchBendRange(byte channel, uint range) {
if (range > 24) { if (range > 24) {
printf("setPitchBendRange() called with range > 24: %d", range); warning("setPitchBendRange() called with range > 24: %d", range);
} }
byte benderRangeSysex[9]; byte benderRangeSysex[9];
benderRangeSysex[0] = 0x41; // Roland benderRangeSysex[0] = 0x41; // Roland

View file

@ -19,6 +19,12 @@
* IN THE SOFTWARE. * IN THE SOFTWARE.
*/ */
// FIXME: Avoid using printf
#define FORBIDDEN_SYMBOL_EXCEPTION_printf
// FIXME: Avoid using vprintf
#define FORBIDDEN_SYMBOL_EXCEPTION_vprintf
#include <math.h> #include <math.h>
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>

View file

@ -66,7 +66,7 @@ SdlEventSource::SdlEventSource()
// Enable joystick // Enable joystick
if (SDL_NumJoysticks() > 0) { if (SDL_NumJoysticks() > 0) {
printf("Using joystick: %s\n", SDL_JoystickName(0)); debug("Using joystick: %s", SDL_JoystickName(0));
_joystick = SDL_JoystickOpen(joystick_num); _joystick = SDL_JoystickOpen(joystick_num);
} }
} }

View file

@ -23,6 +23,12 @@
*/ */
#if defined(UNIX) #if defined(UNIX)
// Re-enable some forbidden symbols to avoid clashes with stat.h and unistd.h.
#define FORBIDDEN_SYMBOL_EXCEPTION_chdir
#define FORBIDDEN_SYMBOL_EXCEPTION_mkdir
#define FORBIDDEN_SYMBOL_EXCEPTION_unlink
#include "backends/fs/posix/posix-fs-factory.h" #include "backends/fs/posix/posix-fs-factory.h"
#include "backends/fs/posix/posix-fs.cpp" #include "backends/fs/posix/posix-fs.cpp"

View file

@ -488,9 +488,9 @@ bool OpenGLSdlGraphicsManager::notifyEvent(const Common::Event &event) {
SDL_RWclose(file); SDL_RWclose(file);
} }
if (saveScreenshot(filename)) if (saveScreenshot(filename))
printf("Saved '%s'\n", filename); debug("Saved screenshot '%s'", filename);
else else
printf("Could not save screenshot!\n"); warning("Could not save screenshot");
return true; return true;
} }
} }

View file

@ -2279,9 +2279,9 @@ bool SdlGraphicsManager::notifyEvent(const Common::Event &event) {
SDL_RWclose(file); SDL_RWclose(file);
} }
if (saveScreenshot(filename)) if (saveScreenshot(filename))
printf("Saved '%s'\n", filename); debug("Saved screenshot '%s'", filename);
else else
printf("Could not save screenshot!\n"); warning("Could not save screenshot");
return true; return true;
} }

View file

@ -23,6 +23,8 @@
* *
*/ */
#define FORBIDDEN_SYMBOL_EXCEPTION_mkdir
#include "common/scummsys.h" #include "common/scummsys.h"
#ifdef UNIX #ifdef UNIX
@ -34,6 +36,7 @@
#include <errno.h> #include <errno.h>
#include <sys/stat.h> #include <sys/stat.h>
OSystem_POSIX::OSystem_POSIX(Common::String baseConfigName) OSystem_POSIX::OSystem_POSIX(Common::String baseConfigName)
: :
_baseConfigName(baseConfigName) { _baseConfigName(baseConfigName) {

View file

@ -23,6 +23,9 @@
* *
*/ */
#define FORBIDDEN_SYMBOL_EXCEPTION_time_h
#ifdef WIN32 #ifdef WIN32
#define WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN
#include <windows.h> #include <windows.h>

View file

@ -23,6 +23,10 @@
* *
*/ */
// Enable mkdir
#define FORBIDDEN_SYMBOL_EXCEPTION_mkdir
#include "common/scummsys.h" #include "common/scummsys.h"
#if defined(UNIX) && !defined(DISABLE_DEFAULT_SAVEFILEMANAGER) #if defined(UNIX) && !defined(DISABLE_DEFAULT_SAVEFILEMANAGER)

View file

@ -23,6 +23,9 @@
* *
*/ */
// FIXME: Avoid using printf
#define FORBIDDEN_SYMBOL_EXCEPTION_printf
#include "engines/metaengine.h" #include "engines/metaengine.h"
#include "base/commandLine.h" #include "base/commandLine.h"
#include "base/plugins.h" #include "base/plugins.h"

View file

@ -31,6 +31,9 @@
* of almost all the classes, methods and variables, and how they interact. * of almost all the classes, methods and variables, and how they interact.
*/ */
// FIXME: Avoid using printf
#define FORBIDDEN_SYMBOL_EXCEPTION_printf
#include "engines/engine.h" #include "engines/engine.h"
#include "engines/metaengine.h" #include "engines/metaengine.h"
#include "base/commandLine.h" #include "base/commandLine.h"

View file

@ -41,18 +41,22 @@
#ifndef FORBIDDEN_SYMBOL_ALLOW_ALL #ifndef FORBIDDEN_SYMBOL_ALLOW_ALL
// Make sure scummsys.h is always included first
#include "common/scummsys.h"
/** /**
* The garbage string to use as replacement for forbidden symbols. * The garbage string to use as replacement for forbidden symbols.
* *
* The reason for this particular string is the following: * The reason for this particular string is the following:
* By including a space and "!" we try to ensure a compiler error. * By including a space and some non-alphanumeric symbols we trigger
* By using the words "forbidden symbol" we try to make it a bit * a compiler error. By including the words "forbidden symbol" (which
* clearer what is causing the error. * the compiler will hopefully print along with its own error message),
* we try to make clear what is causing the error.
*/ */
#define FORBIDDEN_SYMBOL_REPLACEMENT FORBIDDEN SYMBOL! #define FORBIDDEN_SYMBOL_REPLACEMENT FORBIDDEN SYMBOL !%*
/*
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_printf #ifndef FORBIDDEN_SYMBOL_EXCEPTION_printf
#undef printf #undef printf
#define printf FORBIDDEN_SYMBOL_REPLACEMENT #define printf FORBIDDEN_SYMBOL_REPLACEMENT
@ -62,7 +66,16 @@
#undef fprintf #undef fprintf
#define fprintf FORBIDDEN_SYMBOL_REPLACEMENT #define fprintf FORBIDDEN_SYMBOL_REPLACEMENT
#endif #endif
*/
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_vprintf
#undef vprintf
#define vprintf FORBIDDEN_SYMBOL_REPLACEMENT
#endif
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_vfprintf
#undef vfprintf
#define vfprintf FORBIDDEN_SYMBOL_REPLACEMENT
#endif
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_FILE #ifndef FORBIDDEN_SYMBOL_EXCEPTION_FILE
#undef FILE #undef FILE
@ -131,30 +144,102 @@
#endif #endif
// Disable various symbols from time.h
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_time_h
/* /*
time_t #ifndef FORBIDDEN_SYMBOL_EXCEPTION_time_t
#undef time_t
time #define time_t FORBIDDEN_SYMBOL_REPLACEMENT
#endif
difftime
mktime
localtime
clock
gmtime
system
remove
setlocale
setvbuf
*/ */
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_asctime
#undef asctime
#define asctime(a) FORBIDDEN_SYMBOL_REPLACEMENT
#endif
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_clock
#undef clock
#define clock() FORBIDDEN_SYMBOL_REPLACEMENT
#endif
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_ctime
#undef ctime
#define ctime(a) FORBIDDEN_SYMBOL_REPLACEMENT
#endif
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_difftime
#undef difftime
#define difftime(a,b) FORBIDDEN_SYMBOL_REPLACEMENT
#endif
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_getdate
#undef getdate
#define getdate(a) FORBIDDEN_SYMBOL_REPLACEMENT
#endif
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_gmtime
#undef gmtime
#define gmtime(a) FORBIDDEN_SYMBOL_REPLACEMENT
#endif
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_localtime
#undef localtime
#define localtime(a) FORBIDDEN_SYMBOL_REPLACEMENT
#endif
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_mktime
#undef mktime
#define mktime(a) FORBIDDEN_SYMBOL_REPLACEMENT
#endif
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_time
#undef time
#define time(a) FORBIDDEN_SYMBOL_REPLACEMENT
#endif
#endif // FORBIDDEN_SYMBOL_EXCEPTION_time_h
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_chdir
#undef chdir
#define chdir(a) FORBIDDEN_SYMBOL_REPLACEMENT
#endif
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_mkdir
#undef mkdir
#define mkdir(a,b) FORBIDDEN_SYMBOL_REPLACEMENT
#endif
/*
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_setlocale
#undef setlocale
#define setlocale(a,b) FORBIDDEN_SYMBOL_REPLACEMENT
#endif
*/
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_setvbuf
#undef setvbuf
#define setvbuf(a,b,c,d) FORBIDDEN_SYMBOL_REPLACEMENT
#endif
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_unlink
#undef unlink
#define unlink(a) FORBIDDEN_SYMBOL_REPLACEMENT
#endif
/*
* We also would like to disable the following symbols;
* however, these are also frequently used in regular code,
* e.g. for method names, so we don't override them.
* - read
* - remove
* - write
* - ...
*/
#endif #endif

View file

@ -367,7 +367,7 @@
#if defined(__GNUC__) #if defined(__GNUC__)
#define NORETURN_POST __attribute__((__noreturn__)) #define NORETURN_POST __attribute__((__noreturn__))
#define PACKED_STRUCT __attribute__((__packed__)) #define PACKED_STRUCT __attribute__((__packed__))
#define GCC_PRINTF(x,y) __attribute__((__format__(printf, x, y))) #define GCC_PRINTF(x,y) __attribute__((__format__(__printf__, x, y)))
#if !defined(FORCEINLINE) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) #if !defined(FORCEINLINE) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
#define FORCEINLINE inline __attribute__((__always_inline__)) #define FORCEINLINE inline __attribute__((__always_inline__))
@ -375,7 +375,7 @@
#elif defined(__INTEL_COMPILER) #elif defined(__INTEL_COMPILER)
#define NORETURN_POST __attribute__((__noreturn__)) #define NORETURN_POST __attribute__((__noreturn__))
#define PACKED_STRUCT __attribute__((__packed__)) #define PACKED_STRUCT __attribute__((__packed__))
#define GCC_PRINTF(x,y) __attribute__((__format__(printf, x, y))) #define GCC_PRINTF(x,y) __attribute__((__format__(__printf__, x, y)))
#else #else
#define PACKED_STRUCT #define PACKED_STRUCT
#define GCC_PRINTF(x,y) #define GCC_PRINTF(x,y)

View file

@ -23,6 +23,13 @@
* *
*/ */
// FIXME: Avoid using fprintf
#define FORBIDDEN_SYMBOL_EXCEPTION_fprintf
// FIXME: Avoid using vfprintf
#define FORBIDDEN_SYMBOL_EXCEPTION_vfprintf
#include "common/xmlparser.h" #include "common/xmlparser.h"
#include "common/archive.h" #include "common/archive.h"
#include "common/fs.h" #include "common/fs.h"

View file

@ -23,6 +23,9 @@
* *
*/ */
// FIXME: Avoid using printf
#define FORBIDDEN_SYMBOL_EXCEPTION_printf
#include "common/debug.h" #include "common/debug.h"
#include "common/util.h" #include "common/util.h"
#include "common/hash-str.h" #include "common/hash-str.h"

View file

@ -23,6 +23,9 @@
* *
*/ */
// FIXME: Avoid using printf
#define FORBIDDEN_SYMBOL_EXCEPTION_printf
#include "base/plugins.h" #include "base/plugins.h"
#include "engines/advancedDetector.h" #include "engines/advancedDetector.h"

View file

@ -23,6 +23,9 @@
* *
*/ */
// FIXME: Avoid using printf
#define FORBIDDEN_SYMBOL_EXCEPTION_printf
#include "base/plugins.h" #include "base/plugins.h"
#include "common/archive.h" #include "common/archive.h"