Ticket #8572: common-file-scanf-gcc-warning.patch

File common-file-scanf-gcc-warning.patch, 1.4 KB (added by salty-horse, 14 years ago)
  • file.h

     
    140140        void seek(int32 offs, int whence = SEEK_SET);
    141141        uint32 read(void *dataPtr, uint32 dataSize);
    142142        uint32 write(const void *dataPtr, uint32 dataSize);
     143
     144        int scanf(const char *format, ...) GCC_SCANF(2, 3);
    143145};
    144146
    145147} // End of namespace Common
  • file.cpp

     
    2020 *
    2121 */
    2222
     23#include <stdarg.h>
     24
    2325#include "common/file.h"
    2426#include "common/fs.h"
    2527#include "common/hashmap.h"
     
    446448        return len;
    447449}
    448450
     451int File::scanf(const char *format, ...) {
     452        va_list arg;
     453        int done;
     454
     455        if (_handle == NULL) {
     456                error("File::scanf: File is not open!");
     457                return 0;
     458        }
     459
     460        va_start(arg, format);
     461        done = vfscanf(_handle, format, arg);
     462        va_end(arg);
     463
     464        return done;
     465}
     466
    449467}       // End of namespace Common
  • scummsys.h

     
    361361#if defined(__GNUC__)
    362362        #define NORETURN __attribute__((__noreturn__))
    363363        #define GCC_PRINTF(x,y) __attribute__((format(printf, x, y)))
     364        #define GCC_SCANF(x,y) __attribute__((format(scanf, x, y)))
    364365#else
    365366        #define GCC_PRINTF(x,y)
     367        #define GCC_SCANF(x,y)
    366368#endif
    367369
    368370