Formalized the macro magic that actually works into sharedbits/{start,end}.h. Now to do arrays!

This commit is contained in:
Pietro Gagliardi 2019-05-30 23:23:02 -04:00
parent 6493faf529
commit 2dd68fc47f
7 changed files with 25 additions and 36 deletions

4
sharedbits/TODO.md Normal file
View File

@ -0,0 +1,4 @@
- figure out how to tell meson to look here for changes, if I need to
- document this properly (I should also write development documentation for all of libui in general...)
- note that none of these files should have include guards
- figure out if we can macro-ize macro names (likely not)

View File

@ -1,11 +1,6 @@
// 30 may 2019
#ifndef sharedbitsPrefix
#error you must define sharedbitsPrefix before including this
#endif
#define sharedbitsPrefixMakeName(x, y) x ## y
#define sharedbitsPrefixExpandMakeName(x, y) sharedbitsPrefixMakeName(x, y)
#define sharedbitsPrefixName(Name) sharedbitsPrefixExpandMakeName(sharedbitsPrefix, Name)
#include "start.h"
extern void *sharedbitsPrefixName(Alloc)(size_t n, const char *what);
extern void *sharedbitsPrefixName(Realloc)(void *p, size_t nOld, size_t nNew, const char *what);
@ -19,6 +14,4 @@ you may also want to define the following:
#define sharedbitsPrefixName(ResizeArray)(x, T, old, new) ((T *) sharedbitsPrefix ## Realloc(x, old * sizeof (T), new * sizeof (T), #T "[]"))
*/
#undef sharedbitsPrefixName
#undef sharedbitsPrefixExpand
#undef sharedbitsPrefixMakeName
#include "end.h"

View File

@ -1,12 +1,7 @@
// 30 may 2019
// requires: alloc_header.h
#ifndef sharedbitsPrefix
#error you must define sharedbitsPrefix before including this
#endif
#define sharedbitsPrefixMakeName(x, y) x ## y
#define sharedbitsPrefixExpandMakeName(x, y) sharedbitsPrefixMakeName(x, y)
#define sharedbitsPrefixName(Name) sharedbitsPrefixExpandMakeName(sharedbitsPrefix, Name)
#include "start.h"
extern void sharedbitsPrefixName(InternalError)(const char *fmt, ...);
@ -36,6 +31,4 @@ void sharedbitsPrefixName(Free)(void *p)
free(p);
}
#undef sharedbitsPrefixName
#undef sharedbitsPrefixExpand
#undef sharedbitsPrefixMakeName
#include "end.h"

View File

@ -1,13 +1,6 @@
// 30 may 2019
// requires: alloc_header.h
#ifndef sharedbitsPrefix
#error you must define sharedbitsPrefix before including this
#endif
#define sharedbitsPrefixMakeName(x, y) x ## y
#define sharedbitsPrefixExpand(x) x
#define sharedbitsPrefixName(Name) sharedbitsPrefixMakeName(sharedbitsPrefixExpand(sharedbitsPrefix), Name)
#include "start.h"
#undef sharedbitsPrefixName
#undef sharedbitsPrefixExpand
#undef sharedbitsPrefixMakeName
#include "end.h"

View File

@ -1,13 +1,6 @@
// 30 may 2019
// requires: array_header.h
#ifndef sharedbitsPrefix
#error you must define sharedbitsPrefix before including this
#endif
#define sharedbitsPrefixMakeName(x, y) x ## y
#define sharedbitsPrefixExpand(x) x
#define sharedbitsPrefixName(Name) sharedbitsPrefixMakeName(sharedbitsPrefixExpand(sharedbitsPrefix), Name)
#include "start.h"
#undef sharedbitsPrefixName
#undef sharedbitsPrefixExpand
#undef sharedbitsPrefixMakeName
#include "end.h"

5
sharedbits/end.h Normal file
View File

@ -0,0 +1,5 @@
// 30 may 2019
#undef sharedbitsPrefixName
#undef sharedbitsPrefixExpandMakeName
#undef sharedbitsPrefixMakeName

8
sharedbits/start.h Normal file
View File

@ -0,0 +1,8 @@
// 30 may 2019
#ifndef sharedbitsPrefix
#error you must define sharedbitsPrefix before including this
#endif
#define sharedbitsPrefixMakeName(x, y) x ## y
#define sharedbitsPrefixExpandMakeName(x, y) sharedbitsPrefixMakeName(x, y)
#define sharedbitsPrefixName(Name) sharedbitsPrefixExpandMakeName(sharedbitsPrefix, Name)