maug
Quick and dirty C mini-augmentation library.
|
Augmented minimal standard library for C89 and legacy compilers.
The API is currently in flux and is not yet completely final!
Current maug-based projects may be found under The maug topic on GitHub!
Maug has the following design goals and constraints:
Inside of the make
subdirectory are a number of Makefiles that can be included from a project's Makefile in order to more conveniently build assets.
#include <retroflt.h>
RetroFlat is a rough, quick-and-dirty compatibility layer for making graphical programs that work on Win16 (32-bit via OpenWatcom's Win386), MS-DOS (32-bit via DOS/32a or DOS4GW via Allegro), and possibly other platforms in the future.
This documentation is also available at https://indigoparadox.github.io/maug/group__maug__retroflt.html.
#include <mtypes.h>
Rough common approximation of types for interoperability between our projects.
Includes common types from stdint.h, guaranteed to be of the named size:
When using this header, do not include stdint.h. This header will include it if the current platform supports it. Otherwise, it will improvise.
#include <uprintf.h>
An augmented printf for tracing, debugging, and error reporting.
To use, include uprintf.h and call logging\_init()
in program startup.
Be sure to call logging\_shutdown()
on program cleanup.
Logging can then be performed by calling:
debug\_printf( lvl, format, ... )
- Prints debug message.lvl
- Immediacy level of debug message. See DEBUG_THRESHOLD below.format
- printf()
-style format string....
- Variable arguments to format
.error\_printf( format, ... )
- Prints to stderr.format
- printf()
-style format string....
- Variable arguments to format
.uprintf's behavior can be modified by defining the following before inclusion:
Define | Description |
---|---|
platform_file | Type to use instead of stdlib's FILE for log ptr. |
platform_fopen | Function to use instead of fopen() to create a log ptr. |
platform_fclose | Function to close log ptr. |
platform_fflush | Function to flush log ptr to buffer. |
platform_fprintf | Function to print to log ptr with a format string. |
DEBUG_THRESHOLD | debug_printf() w/ this or higher lvl will be displayed. |
DEBUG_LOG | If defined, debug will be output to LOG_FILE_NAME. |
ANCIENT_C | Use static functions where vararg macros unsupported. |
RetroFlat can be quite bulky for 16-bit DOS. Please try adding RETROFLAT_DOS_MEM_LARGE=1 to your Makefile before Makefile.inc is included to enable a large code model.
For 16-bit builds, GLOBAL\_DEFINES += -DRETROFLAT\_NO\_RETROGXC
must be specified in the Makefile explicitly, or the cache will be enabled in the DOS stubs.