diff --git a/Headers/Additions/GNUstepBase/preface.h.in b/Headers/Additions/GNUstepBase/preface.h.in index 97c7f0ece..670559d11 100644 --- a/Headers/Additions/GNUstepBase/preface.h.in +++ b/Headers/Additions/GNUstepBase/preface.h.in @@ -147,17 +147,23 @@ #define GNUSTEP_BASE_SUBMINOR_VERSION @SUBMINOR_VERSION@ #define GNUSTEP_BASE_GCC_VERSION @GCC_VERSION@ +/* Do not use the following macros! + */ +#define OBJC_DEP(M) \ + ({ static BOOL beenHere = NO; if (beenHere == NO) {\ + beenHere = YES; fprintf(stderr, "%s:%d %s", __FILE__, __LINE__, (M));}}) + #define OBJC_MALLOC(VAR, TYPE, NUM) \ - (fprintf(stderr, "OBJC_MALLOC is deprecated"),(VAR) = (TYPE *) malloc ((unsigned)(NUM)*sizeof(TYPE))) + (OBJC_DEP("OBJC_MALLOC is deprecated ... use malloc\n"),(VAR) = (TYPE *) malloc ((unsigned)(NUM)*sizeof(TYPE))) #define OBJC_VALLOC(VAR, TYPE, NUM) \ - (fprintf(stderr, "OBJC_VALLOC is deprecated"),(VAR) = (TYPE *) valloc ((unsigned)(NUM)*sizeof(TYPE))) + (OBJC_DEP("OBJC_VALLOC is deprecated\n"),(VAR) = (TYPE *) valloc ((unsigned)(NUM)*sizeof(TYPE))) #define OBJC_ATOMIC_MALLOC(VAR, TYPE, NUM) \ - (fprintf(stderr, "OBJC_ATOMIC_MALLOC is deprecated"),(VAR) = (TYPE *) malloc ((unsigned)(NUM)*sizeof(TYPE))) + (OBJC_DEP("OBJC_ATOMIC_MALLOC is deprecated\n"),(VAR) = (TYPE *) malloc ((unsigned)(NUM)*sizeof(TYPE))) #define OBJC_REALLOC(VAR, TYPE, NUM) \ - (fprintf(stderr, "OBJC_REALLOC is deprecated"),(VAR) = (TYPE *) realloc ((VAR), (unsigned)(NUM)*sizeof(TYPE))) + (OBJC_DEP("OBJC_REALLOC is deprecated ... use realloc\n"),(VAR) = (TYPE *) realloc ((VAR), (unsigned)(NUM)*sizeof(TYPE))) #define OBJC_CALLOC(VAR, TYPE, NUM) \ - (fprintf(stderr, "OBJC_CALLOC is deprecated"),(VAR) = (TYPE *) calloc ((unsigned)(NUM), sizeof(TYPE))) -#define OBJC_FREE(PTR) (fprintf(stderr, "OBJC_FREE is deprecated"), free (PTR)) + (OBJC_DEP("OBJC_CALLOC is deprecated ... use calloc\n"),(VAR) = (TYPE *) calloc ((unsigned)(NUM), sizeof(TYPE))) +#define OBJC_FREE(PTR) (OBJC_DEP("OBJC_FREE is deprecated ... use free\n"), free (PTR)) #ifndef MAX #define MAX(a,b) \