source: MondoRescue/branches/3.0/mondo/src/include/mr_mem.h@ 3510

Last change on this file since 3510 was 3185, checked in by Bruno Cornec, 11 years ago

Simplify the interface of mr_getline and mr_asprintf. With 3.1 compatibility now will allow backports from this branch into 3.0

  • Property svn:eol-style set to native
File size: 1.4 KB
RevLine 
[1054]1/*
2 * $Id$
3 *
4 * Header file of mr_mem: a set of function manipulating memory
5 * Provided under the GPL v2
6 */
7
8#ifndef MR_MEM_H
9#define MR_MEM_H
10
[1061]11#ifndef _GNU_SOURCE
12#define _GNU_SOURCE
13#endif
14#include <stdarg.h>
[1096]15#include <stdio.h>
[1061]16
[1054]17/* functions (public methods) */
18
[1104]19#define mr_free(x) mr_free_int((void **)&x,__LINE__,__FILE__)
[1133]20#define mr_allocstr(x,y) mr_allocstr_int(x,y,__LINE__,__FILE__)
[3185]21#define mr_asprintf(x,y,args...) mr_asprintf_int((char **)&x,__LINE__,__FILE__,y,## args)
22#define mr_getline(x,y) mr_getline_int((char **)&x,y,__LINE__,__FILE__)
[1104]23#define mr_malloc(x) mr_malloc_int((size_t)x,__LINE__,__FILE__)
[1152]24#define mr_setenv(x,y) mr_setenv_int(x,y,__LINE__,__FILE__)
[1196]25#define mr_strcat(x,y,args...) mr_strcat_int((char **)&x, __LINE__,__FILE__, y,## args);
[1054]26
[1104]27/* Internal function bringing debuging info
28 * called indirectly through macros */
29extern inline void mr_free_int(void **allocated, int line, char *file);
30extern inline void mr_allocstr_int(char *alloc, const char *orig, int line, char *file);
31extern inline void mr_asprintf_int(char **alloc, int line, char *file, const char *fmt, ...);
[3128]32extern inline void mr_getline_int(char **lineptr, FILE *stream, int line, char *file);
[1104]33extern inline void *mr_malloc_int(size_t size, int line, char *file);
[1162]34extern inline void mr_setenv_int(const char *name, const char *value, int line, char *file);
[1196]35extern void mr_strcat_int(char **in, int line, char *file, const char *fmt, ...);
[1104]36
[1054]37#endif /* MR_MEM_H */
Note: See TracBrowser for help on using the repository browser.