49 lines
912 B
C
49 lines
912 B
C
/*
|
|
* fwrite.c
|
|
* Luabins Lua-less write API using FILE * as buffer
|
|
* See copyright notice in luabins.h
|
|
*/
|
|
|
|
#include "luaheaders.h"
|
|
|
|
#include "fwrite.h"
|
|
|
|
/* TODO: Note that stream errors are ignored. Handle them better? */
|
|
|
|
void lbs_fwriteTableHeader(
|
|
FILE * f,
|
|
int array_size,
|
|
int hash_size
|
|
)
|
|
{
|
|
fputc(LUABINS_CTABLE, f);
|
|
fwrite(
|
|
(const unsigned char *)&array_size,
|
|
LUABINS_LINT,
|
|
1,
|
|
f
|
|
);
|
|
fwrite(
|
|
(const unsigned char *)&hash_size,
|
|
LUABINS_LINT,
|
|
1,
|
|
f
|
|
);
|
|
}
|
|
|
|
void lbs_fwriteNumber(FILE * f, lua_Number value)
|
|
{
|
|
fputc(LUABINS_CNUMBER, f);
|
|
fwrite((const unsigned char *)&value, LUABINS_LNUMBER, 1, f);
|
|
}
|
|
|
|
void lbs_fwriteString(
|
|
FILE * f,
|
|
const char * value,
|
|
size_t length
|
|
)
|
|
{
|
|
fputc(LUABINS_CSTRING, f);
|
|
fwrite((const unsigned char *)&length, LUABINS_LSIZET, 1, f);
|
|
fwrite((const unsigned char *)value, length, 1, f);
|
|
}
|