no warnings when compiling /W3

compiling all test cases and compilers in test.sbm
   Compilers:
     32-bit:
       VS2015
       VS2013
       VS2008
       VC6 (1998)
       clang-cl 9.0.1
     64-bit
       VS2015
       clang-cl 9.0.1
This commit is contained in:
Sean Barrett 2019-03-04 14:45:06 -08:00
parent 96b4748d57
commit a0b521fcf2
24 changed files with 553 additions and 469 deletions

679
stb.h

File diff suppressed because it is too large Load Diff

View File

@ -514,7 +514,7 @@ static int stb__clex_parse_string(stb_lexer *lexer, char *p, int type)
} }
*out = 0; *out = 0;
lexer->string = lexer->string_storage; lexer->string = lexer->string_storage;
lexer->string_len = out - lexer->string_storage; lexer->string_len = (int) (out - lexer->string_storage);
return stb__clex_token(lexer, type, start, p); return stb__clex_token(lexer, type, start, p);
} }
@ -824,7 +824,7 @@ int stb_c_lexer_get_token(stb_lexer *lexer)
#endif // STB_C_LEXER_IMPLEMENTATION #endif // STB_C_LEXER_IMPLEMENTATION
#ifdef STB_C_LEXER_SELF_TEST #ifdef STB_C_LEXER_SELF_TEST
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
@ -884,11 +884,12 @@ void dummy(void)
{ {
double some_floats[] = { double some_floats[] = {
1.0501, -10.4e12, 5E+10, 1.0501, -10.4e12, 5E+10,
#if 0 // not support in C++ or C-pre-99, so don't try to compile it #if 0 // not supported in C++ or C-pre-99, so don't try to compile it, but let our parser test it
0x1.0p+24, 0xff.FP-8, 0x1p-23, 0x1.0p+24, 0xff.FP-8, 0x1p-23,
#endif #endif
4. 4.
}; };
(void) sizeof(some_floats);
printf("test %d",1); // https://github.com/nothings/stb/issues/13 printf("test %d",1); // https://github.com/nothings/stb/issues/13
} }
@ -897,7 +898,7 @@ int main(int argc, char **argv)
{ {
FILE *f = fopen("stb_c_lexer.h","rb"); FILE *f = fopen("stb_c_lexer.h","rb");
char *text = (char *) malloc(1 << 20); char *text = (char *) malloc(1 << 20);
int len = f ? fread(text, 1, 1<<20, f) : -1; int len = f ? (int) fread(text, 1, 1<<20, f) : -1;
stb_lexer lex; stb_lexer lex;
if (len < 0) { if (len < 0) {
fprintf(stderr, "Error opening file\n"); fprintf(stderr, "Error opening file\n");

View File

@ -709,7 +709,7 @@ static void stbcc__remove_clump_connection(stbcc_grid *g, int x1, int y1, int x2
static void stbcc__add_connections_to_adjacent_cluster(stbcc_grid *g, int cx, int cy, int dx, int dy) static void stbcc__add_connections_to_adjacent_cluster(stbcc_grid *g, int cx, int cy, int dx, int dy)
{ {
unsigned char connected[STBCC__MAX_EDGE_CLUMPS_PER_CLUSTER][STBCC__MAX_EDGE_CLUMPS_PER_CLUSTER/8] = { 0 }; unsigned char connected[STBCC__MAX_EDGE_CLUMPS_PER_CLUSTER][STBCC__MAX_EDGE_CLUMPS_PER_CLUSTER/8] = { { 0 } };
int x = cx * STBCC__CLUSTER_SIZE_X; int x = cx * STBCC__CLUSTER_SIZE_X;
int y = cy * STBCC__CLUSTER_SIZE_Y; int y = cy * STBCC__CLUSTER_SIZE_Y;
int step_x, step_y=0, i, j, k, n; int step_x, step_y=0, i, j, k, n;
@ -751,6 +751,7 @@ static void stbcc__add_connections_to_adjacent_cluster(stbcc_grid *g, int cx, in
n = STBCC__CLUSTER_SIZE_X; n = STBCC__CLUSTER_SIZE_X;
} else { } else {
assert(0); assert(0);
return;
} }
for (k=0; k < n; ++k) { for (k=0; k < n; ++k) {
@ -772,7 +773,7 @@ static void stbcc__add_connections_to_adjacent_cluster(stbcc_grid *g, int cx, in
static void stbcc__remove_connections_to_adjacent_cluster(stbcc_grid *g, int cx, int cy, int dx, int dy) static void stbcc__remove_connections_to_adjacent_cluster(stbcc_grid *g, int cx, int cy, int dx, int dy)
{ {
unsigned char disconnected[STBCC__MAX_EDGE_CLUMPS_PER_CLUSTER][STBCC__MAX_EDGE_CLUMPS_PER_CLUSTER/8] = { 0 }; unsigned char disconnected[STBCC__MAX_EDGE_CLUMPS_PER_CLUSTER][STBCC__MAX_EDGE_CLUMPS_PER_CLUSTER/8] = { { 0 } };
int x = cx * STBCC__CLUSTER_SIZE_X; int x = cx * STBCC__CLUSTER_SIZE_X;
int y = cy * STBCC__CLUSTER_SIZE_Y; int y = cy * STBCC__CLUSTER_SIZE_Y;
int step_x, step_y=0, i, j, k, n; int step_x, step_y=0, i, j, k, n;
@ -811,6 +812,7 @@ static void stbcc__remove_connections_to_adjacent_cluster(stbcc_grid *g, int cx,
n = STBCC__CLUSTER_SIZE_X; n = STBCC__CLUSTER_SIZE_X;
} else { } else {
assert(0); assert(0);
return;
} }
for (k=0; k < n; ++k) { for (k=0; k < n; ++k) {
@ -954,11 +956,12 @@ static void stbcc__build_clumps_for_cluster(stbcc_grid *g, int cx, int cy)
for (j=1; j < STBCC__CLUSTER_SIZE_Y-1; ++j) { for (j=1; j < STBCC__CLUSTER_SIZE_Y-1; ++j) {
for (i=1; i < STBCC__CLUSTER_SIZE_X-1; ++i) { for (i=1; i < STBCC__CLUSTER_SIZE_X-1; ++i) {
stbcc__tinypoint p = cbi.parent[j][i]; stbcc__tinypoint p = cbi.parent[j][i];
if (p.x == i && p.y == j) if (p.x == i && p.y == j) {
if (STBCC__MAP_OPEN(g,x+i,y+j)) if (STBCC__MAP_OPEN(g,x+i,y+j))
cbi.label[j][i] = label++; cbi.label[j][i] = label++;
else else
cbi.label[j][i] = STBCC__NULL_CLUMPID; cbi.label[j][i] = STBCC__NULL_CLUMPID;
}
} }
} }

View File

@ -308,6 +308,10 @@ CREDITS
Per Vognsen -- idea for hash table API/implementation Per Vognsen -- idea for hash table API/implementation
*/ */
#ifdef STBDS_UNIT_TESTS
#define _CRT_SECURE_NO_WARNINGS
#endif
#ifndef INCLUDE_STB_DS_H #ifndef INCLUDE_STB_DS_H
#define INCLUDE_STB_DS_H #define INCLUDE_STB_DS_H
@ -593,6 +597,7 @@ template<class T> static T * stbds_shmode_func_wrapper(T *, size_t elemsize, int
#include <string.h> #include <string.h>
#ifndef STBDS_ASSERT #ifndef STBDS_ASSERT
#define STBDS_ASSERT_WAS_UNDEFINED
#define STBDS_ASSERT(x) ((void) 0) #define STBDS_ASSERT(x) ((void) 0)
#endif #endif
@ -1442,6 +1447,9 @@ void stbds_strreset(stbds_string_arena *a)
#ifdef STBDS_UNIT_TESTS #ifdef STBDS_UNIT_TESTS
#include <stdio.h> #include <stdio.h>
#ifdef STBDS_ASSERT_WAS_UNDEFINED
#undef STBDS_ASSERT
#endif
#ifndef STBDS_ASSERT #ifndef STBDS_ASSERT
#define STBDS_ASSERT assert #define STBDS_ASSERT assert
#include <assert.h> #include <assert.h>
@ -1452,7 +1460,11 @@ typedef struct { int key,b,c,d; } stbds_struct;
static char buffer[256]; static char buffer[256];
char *strkey(int n) char *strkey(int n)
{ {
#if defined(_WIN32) && defined(__STDC_WANT_SECURE_LIB__)
sprintf_s(buffer, sizeof(buffer), "test_%d", n);
#else
sprintf(buffer, "test_%d", n); sprintf(buffer, "test_%d", n);
#endif
return buffer; return buffer;
} }
@ -1595,9 +1607,10 @@ void stbds_unit_tests(void)
for (i=0; i < testsize; i += 1) { for (i=0; i < testsize; i += 1) {
stbds_struct s = { i,i*2,i*3,i*4 }; stbds_struct s = { i,i*2,i*3,i*4 };
stbds_struct t = { i,i*2,i*3,i*4 }; stbds_struct t = { i,i*2,i*3+1,i*4 };
if (i & 1) STBDS_ASSERT(hmgets(map2, s.key).d == 0); if (i & 1) STBDS_ASSERT(hmgets(map2, s.key).d == 0);
else STBDS_ASSERT(hmgets(map2, s.key).d == i*4); else STBDS_ASSERT(hmgets(map2, s.key).d == i*4);
STBDS_ASSERT(hmget(map, t) == 0);
} }
hmfree(map2); hmfree(map2);
#endif #endif

View File

@ -166,7 +166,7 @@ int main(int argc, char **argv)
typedef struct stbhw_tileset stbhw_tileset; typedef struct stbhw_tileset stbhw_tileset;
// returns description of last error produced by any function (not thread-safe) // returns description of last error produced by any function (not thread-safe)
STBHW_EXTERN char *stbhw_get_last_error(void); STBHW_EXTERN const char *stbhw_get_last_error(void);
// build a tileset from an image that conforms to a template created by this // build a tileset from an image that conforms to a template created by this
// library. (you allocate storage for stbhw_tileset and function fills it out; // library. (you allocate storage for stbhw_tileset and function fills it out;
@ -345,10 +345,10 @@ static signed char c_color[STB_HBWANG_MAX_Y+6][STB_HBWANG_MAX_X+6];
static signed char v_color[STB_HBWANG_MAX_Y+6][STB_HBWANG_MAX_X+5]; static signed char v_color[STB_HBWANG_MAX_Y+6][STB_HBWANG_MAX_X+5];
static signed char h_color[STB_HBWANG_MAX_Y+5][STB_HBWANG_MAX_X+6]; static signed char h_color[STB_HBWANG_MAX_Y+5][STB_HBWANG_MAX_X+6];
static char *stbhw_error; static const char *stbhw_error;
STBHW_EXTERN char *stbhw_get_last_error(void) STBHW_EXTERN const char *stbhw_get_last_error(void)
{ {
char *temp = stbhw_error; const char *temp = stbhw_error;
stbhw_error = 0; stbhw_error = 0;
return temp; return temp;
} }
@ -717,7 +717,7 @@ STBHW_EXTERN int stbhw_generate_image(stbhw_tileset *ts, int **weighting, unsign
// to avoid really obvious repetition (which happens easily with extreme weights) // to avoid really obvious repetition (which happens easily with extreme weights)
for (j=0; j < ymax-3; ++j) { for (j=0; j < ymax-3; ++j) {
for (i=0; i < xmax-3; ++i) { for (i=0; i < xmax-3; ++i) {
int p = (i-j+1) & 3; // corner type //int p = (i-j+1) & 3; // corner type // unused, not sure what the intent was so commenting it out
STB_HBWANG_ASSERT(i+3 < STB_HBWANG_MAX_X+6); STB_HBWANG_ASSERT(i+3 < STB_HBWANG_MAX_X+6);
STB_HBWANG_ASSERT(j+3 < STB_HBWANG_MAX_Y+6); STB_HBWANG_ASSERT(j+3 < STB_HBWANG_MAX_Y+6);
if (stbhw__match(i,j) && stbhw__match(i,j+1) && stbhw__match(i,j+2) if (stbhw__match(i,j) && stbhw__match(i,j+1) && stbhw__match(i,j+2)
@ -747,7 +747,7 @@ STBHW_EXTERN int stbhw_generate_image(stbhw_tileset *ts, int **weighting, unsign
} else { } else {
i = phase-4; i = phase-4;
} }
for (i;; i += 4) { for (;; i += 4) {
int xpos = i * sidelen; int xpos = i * sidelen;
if (xpos >= w) if (xpos >= w)
break; break;
@ -798,7 +798,7 @@ STBHW_EXTERN int stbhw_generate_image(stbhw_tileset *ts, int **weighting, unsign
} else { } else {
i = phase-4; i = phase-4;
} }
for (i;; i += 4) { for (;; i += 4) {
int xpos = i * sidelen; int xpos = i * sidelen;
if (xpos >= w) if (xpos >= w)
break; break;

View File

@ -339,11 +339,13 @@ typedef unsigned short stbi_us;
extern "C" { extern "C" {
#endif #endif
#ifndef STBIDEF
#ifdef STB_IMAGE_STATIC #ifdef STB_IMAGE_STATIC
#define STBIDEF static #define STBIDEF static
#else #else
#define STBIDEF extern #define STBIDEF extern
#endif #endif
#endif
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
// //
@ -1182,7 +1184,7 @@ STBI_EXTERN __declspec(dllimport) int __stdcall WideCharToMultiByte(unsigned int
#if defined(_MSC_VER) && defined(STBI_WINDOWS_UTF8) #if defined(_MSC_VER) && defined(STBI_WINDOWS_UTF8)
STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input) STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input)
{ {
return WideCharToMultiByte(65001 /* UTF8 */, 0, input, -1, buffer, bufferlen, NULL, NULL); return WideCharToMultiByte(65001 /* UTF8 */, 0, input, -1, buffer, (int) bufferlen, NULL, NULL);
} }
#endif #endif

View File

@ -193,6 +193,7 @@ typedef uint16_t stbir_uint16;
typedef uint32_t stbir_uint32; typedef uint32_t stbir_uint32;
#endif #endif
#ifndef STBIRDEF
#ifdef STB_IMAGE_RESIZE_STATIC #ifdef STB_IMAGE_RESIZE_STATIC
#define STBIRDEF static #define STBIRDEF static
#else #else
@ -202,7 +203,7 @@ typedef uint32_t stbir_uint32;
#define STBIRDEF extern #define STBIRDEF extern
#endif #endif
#endif #endif
#endif
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
// //
@ -2324,8 +2325,9 @@ static int stbir__resize_allocated(stbir__info *info,
if (alpha_channel < 0) if (alpha_channel < 0)
flags |= STBIR_FLAG_ALPHA_USES_COLORSPACE | STBIR_FLAG_ALPHA_PREMULTIPLIED; flags |= STBIR_FLAG_ALPHA_USES_COLORSPACE | STBIR_FLAG_ALPHA_PREMULTIPLIED;
if (!(flags&STBIR_FLAG_ALPHA_USES_COLORSPACE) || !(flags&STBIR_FLAG_ALPHA_PREMULTIPLIED)) if (!(flags&STBIR_FLAG_ALPHA_USES_COLORSPACE) || !(flags&STBIR_FLAG_ALPHA_PREMULTIPLIED)) {
STBIR_ASSERT(alpha_channel >= 0 && alpha_channel < info->channels); STBIR_ASSERT(alpha_channel >= 0 && alpha_channel < info->channels);
}
if (alpha_channel >= info->channels) if (alpha_channel >= info->channels)
return 0; return 0;

View File

@ -299,7 +299,7 @@ STBIW_EXTERN __declspec(dllimport) int __stdcall WideCharToMultiByte(unsigned in
STBIWDEF int stbiw_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input) STBIWDEF int stbiw_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input)
{ {
return WideCharToMultiByte(65001 /* UTF8 */, 0, input, -1, buffer, bufferlen, NULL, NULL); return WideCharToMultiByte(65001 /* UTF8 */, 0, input, -1, buffer, (int) bufferlen, NULL, NULL);
} }
#endif #endif
@ -736,8 +736,8 @@ static int stbi_write_hdr_core(stbi__write_context *s, int x, int y, int comp, f
char header[] = "#?RADIANCE\n# Written by stb_image_write.h\nFORMAT=32-bit_rle_rgbe\n"; char header[] = "#?RADIANCE\n# Written by stb_image_write.h\nFORMAT=32-bit_rle_rgbe\n";
s->func(s->context, header, sizeof(header)-1); s->func(s->context, header, sizeof(header)-1);
#ifdef STBI_MSC_SECURE_CRT #ifdef __STDC_WANT_SECURE_LIB__
len = sprintf_s(buffer, "EXPOSURE= 1.0000000000000\n\n-Y %d +X %d\n", y, x); len = sprintf_s(buffer, sizeof(buffer), "EXPOSURE= 1.0000000000000\n\n-Y %d +X %d\n", y, x);
#else #else
len = sprintf(buffer, "EXPOSURE= 1.0000000000000\n\n-Y %d +X %d\n", y, x); len = sprintf(buffer, "EXPOSURE= 1.0000000000000\n\n-Y %d +X %d\n", y, x);
#endif #endif

View File

@ -971,7 +971,7 @@ struct stbte_tilemap
short *undo_buffer; short *undo_buffer;
}; };
static char *default_category = "[unassigned]"; static char *default_category = (char*) "[unassigned]";
static void stbte__init_gui(void) static void stbte__init_gui(void)
{ {
@ -1172,7 +1172,9 @@ void stbte_set_property(stbte_tilemap *tm, int x, int y, int n, float val)
tm->props[y][x][n] = val; tm->props[y][x][n] = val;
} }
#ifdef STBTE_ALLOW_LINK
static void stbte__set_link(stbte_tilemap *tm, int src_x, int src_y, int dest_x, int dest_y, int undo_mode); static void stbte__set_link(stbte_tilemap *tm, int src_x, int src_y, int dest_x, int dest_y, int undo_mode);
#endif
enum enum
{ {
@ -1254,7 +1256,7 @@ static int stbte__strequal(char *p, char *q)
static void stbte__compute_tileinfo(stbte_tilemap *tm) static void stbte__compute_tileinfo(stbte_tilemap *tm)
{ {
int i,j,n=0; int i,j;
tm->num_categories=0; tm->num_categories=0;
@ -1649,6 +1651,7 @@ static void stbte__draw_rect(int x0, int y0, int x1, int y1, unsigned int color)
STBTE_DRAW_RECT(x0,y0,x1,y1, color); STBTE_DRAW_RECT(x0,y0,x1,y1, color);
} }
#ifdef STBTE_ALLOW_LINK
static void stbte__draw_line(int x0, int y0, int x1, int y1, unsigned int color) static void stbte__draw_line(int x0, int y0, int x1, int y1, unsigned int color)
{ {
int temp; int temp;
@ -1662,6 +1665,7 @@ static void stbte__draw_link(int x0, int y0, int x1, int y1, unsigned int color)
stbte__draw_line(x0,y0,x0,y1, color); stbte__draw_line(x0,y0,x0,y1, color);
stbte__draw_line(x0,y1,x1,y1, color); stbte__draw_line(x0,y1,x1,y1, color);
} }
#endif
static void stbte__draw_frame(int x0, int y0, int x1, int y1, unsigned int color) static void stbte__draw_frame(int x0, int y0, int x1, int y1, unsigned int color)
{ {
@ -1671,12 +1675,6 @@ static void stbte__draw_frame(int x0, int y0, int x1, int y1, unsigned int color
stbte__draw_rect(x0,y0+1,x0+1,y1,color); stbte__draw_rect(x0,y0+1,x0+1,y1,color);
} }
static void stbte__draw_halfframe(int x0, int y0, int x1, int y1, unsigned int color)
{
stbte__draw_rect(x0,y0,x1,y0+1,color);
stbte__draw_rect(x0,y0+1,x0+1,y1,color);
}
static int stbte__get_char_width(int ch) static int stbte__get_char_width(int ch)
{ {
return stbte__fontdata[ch-16]; return stbte__fontdata[ch-16];
@ -1817,15 +1815,13 @@ static void stbte__draw_textbox(int x0, int y0, int x1, int y1, char *text, int
stbte__draw_text(x0+xoff,y0+yoff, text, x1-x0-xoff-1, stbte__color_table[colormode][STBTE__text][colorindex]); stbte__draw_text(x0+xoff,y0+yoff, text, x1-x0-xoff-1, stbte__color_table[colormode][STBTE__text][colorindex]);
} }
static int stbte__button(int colormode, char *label, int x, int y, int textoff, int width, int id, int toggled, int disabled) static int stbte__button(int colormode, const char *label, int x, int y, int textoff, int width, int id, int toggled, int disabled)
{ {
int x0=x,y0=y, x1=x+width,y1=y+STBTE__BUTTON_HEIGHT; int x0=x,y0=y, x1=x+width,y1=y+STBTE__BUTTON_HEIGHT;
int s = STBTE__BUTTON_INTERNAL_SPACING; int s = STBTE__BUTTON_INTERNAL_SPACING;
int over = !disabled && stbte__hittest(x0,y0,x1,y1,id);
if (stbte__ui.event == STBTE__paint) if (stbte__ui.event == STBTE__paint)
stbte__draw_textbox(x0,y0,x1,y1, label,s+textoff,s, colormode, STBTE__INDEX_FOR_ID(id,disabled,toggled)); stbte__draw_textbox(x0,y0,x1,y1, (char*) label,s+textoff,s, colormode, STBTE__INDEX_FOR_ID(id,disabled,toggled));
if (disabled) if (disabled)
return 0; return 0;
return (stbte__button_core(id) == 1); return (stbte__button_core(id) == 1);
@ -1836,8 +1832,6 @@ static int stbte__button_icon(int colormode, char ch, int x, int y, int width, i
int x0=x,y0=y, x1=x+width,y1=y+STBTE__BUTTON_HEIGHT; int x0=x,y0=y, x1=x+width,y1=y+STBTE__BUTTON_HEIGHT;
int s = STBTE__BUTTON_INTERNAL_SPACING; int s = STBTE__BUTTON_INTERNAL_SPACING;
int over = stbte__hittest(x0,y0,x1,y1,id);
if (stbte__ui.event == STBTE__paint) { if (stbte__ui.event == STBTE__paint) {
char label[2] = { ch, 0 }; char label[2] = { ch, 0 };
int pad = (9 - stbte__get_char_width(ch))/2; int pad = (9 - stbte__get_char_width(ch))/2;
@ -1851,7 +1845,6 @@ static int stbte__button_icon(int colormode, char ch, int x, int y, int width, i
static int stbte__minibutton(int colormode, int x, int y, int ch, int id) static int stbte__minibutton(int colormode, int x, int y, int ch, int id)
{ {
int x0 = x, y0 = y, x1 = x+8, y1 = y+7; int x0 = x, y0 = y, x1 = x+8, y1 = y+7;
int over = stbte__hittest(x0,y0,x1,y1,id);
if (stbte__ui.event == STBTE__paint) { if (stbte__ui.event == STBTE__paint) {
char str[2] = { (char)ch, 0 }; char str[2] = { (char)ch, 0 };
stbte__draw_textbox(x0,y0,x1,y1, str,1,0,colormode, STBTE__INDEX_FOR_ID(id,0,0)); stbte__draw_textbox(x0,y0,x1,y1, str,1,0,colormode, STBTE__INDEX_FOR_ID(id,0,0));
@ -1862,7 +1855,6 @@ static int stbte__minibutton(int colormode, int x, int y, int ch, int id)
static int stbte__layerbutton(int x, int y, int ch, int id, int toggled, int disabled, int colormode) static int stbte__layerbutton(int x, int y, int ch, int id, int toggled, int disabled, int colormode)
{ {
int x0 = x, y0 = y, x1 = x+10, y1 = y+11; int x0 = x, y0 = y, x1 = x+10, y1 = y+11;
int over = !disabled && stbte__hittest(x0,y0,x1,y1,id);
if (stbte__ui.event == STBTE__paint) { if (stbte__ui.event == STBTE__paint) {
char str[2] = { (char)ch, 0 }; char str[2] = { (char)ch, 0 };
int off = (9-stbte__get_char_width(ch))/2; int off = (9-stbte__get_char_width(ch))/2;
@ -1876,7 +1868,6 @@ static int stbte__layerbutton(int x, int y, int ch, int id, int toggled, int dis
static int stbte__microbutton(int x, int y, int size, int id, int colormode) static int stbte__microbutton(int x, int y, int size, int id, int colormode)
{ {
int x0 = x, y0 = y, x1 = x+size, y1 = y+size; int x0 = x, y0 = y, x1 = x+size, y1 = y+size;
int over = stbte__hittest(x0,y0,x1,y1,id);
if (stbte__ui.event == STBTE__paint) { if (stbte__ui.event == STBTE__paint) {
stbte__draw_box(x0,y0,x1,y1, colormode, STBTE__INDEX_FOR_ID(id,0,0)); stbte__draw_box(x0,y0,x1,y1, colormode, STBTE__INDEX_FOR_ID(id,0,0));
} }
@ -1886,7 +1877,6 @@ static int stbte__microbutton(int x, int y, int size, int id, int colormode)
static int stbte__microbutton_dragger(int x, int y, int size, int id, int *pos) static int stbte__microbutton_dragger(int x, int y, int size, int id, int *pos)
{ {
int x0 = x, y0 = y, x1 = x+size, y1 = y+size; int x0 = x, y0 = y, x1 = x+size, y1 = y+size;
int over = stbte__hittest(x0,y0,x1,y1,id);
switch (stbte__ui.event) { switch (stbte__ui.event) {
case STBTE__paint: case STBTE__paint:
stbte__draw_box(x0,y0,x1,y1, STBTE__cexpander, STBTE__INDEX_FOR_ID(id,0,0)); stbte__draw_box(x0,y0,x1,y1, STBTE__cexpander, STBTE__INDEX_FOR_ID(id,0,0));
@ -1912,15 +1902,13 @@ static int stbte__microbutton_dragger(int x, int y, int size, int id, int *pos)
return 0; return 0;
} }
static int stbte__category_button(char *label, int x, int y, int width, int id, int toggled) static int stbte__category_button(const char *label, int x, int y, int width, int id, int toggled)
{ {
int x0=x,y0=y, x1=x+width,y1=y+STBTE__BUTTON_HEIGHT; int x0=x,y0=y, x1=x+width,y1=y+STBTE__BUTTON_HEIGHT;
int s = STBTE__BUTTON_INTERNAL_SPACING; int s = STBTE__BUTTON_INTERNAL_SPACING;
int over = stbte__hittest(x0,y0,x1,y1,id);
if (stbte__ui.event == STBTE__paint) if (stbte__ui.event == STBTE__paint)
stbte__draw_textbox(x0,y0,x1,y1, label, s,s, STBTE__ccategory_button, STBTE__INDEX_FOR_ID(id,0,toggled)); stbte__draw_textbox(x0,y0,x1,y1, (char*) label, s,s, STBTE__ccategory_button, STBTE__INDEX_FOR_ID(id,0,toggled));
return (stbte__button_core(id) == 1); return (stbte__button_core(id) == 1);
} }
@ -1938,7 +1926,6 @@ static int stbte__slider(int x0, int w, int y, int range, int *value, int id)
{ {
int x1 = x0+w; int x1 = x0+w;
int pos = *value * w / (range+1); int pos = *value * w / (range+1);
int over = stbte__hittest(x0,y-2,x1,y+3,id);
int event_mouse_move = STBTE__change; int event_mouse_move = STBTE__change;
switch (stbte__ui.event) { switch (stbte__ui.event) {
case STBTE__paint: case STBTE__paint:
@ -1969,15 +1956,22 @@ static int stbte__slider(int x0, int w, int y, int range, int *value, int id)
return STBTE__none; return STBTE__none;
} }
static int stbte__float_control(int x0, int y0, int w, float minv, float maxv, float scale, char *fmt, float *value, int colormode, int id) #if defined(_WIN32) && defined(__STDC_WANT_SECURE_LIB__)
#define stbte__sprintf sprintf_s
#define stbte__sizeof(s) , sizeof(s)
#else
#define stbte__sprintf sprintf
#define stbte__sizeof(s)
#endif
static int stbte__float_control(int x0, int y0, int w, float minv, float maxv, float scale, const char *fmt, float *value, int colormode, int id)
{ {
int x1 = x0+w; int x1 = x0+w;
int y1 = y0+11; int y1 = y0+11;
int over = stbte__hittest(x0,y0,x1,y1,id);
switch (stbte__ui.event) { switch (stbte__ui.event) {
case STBTE__paint: { case STBTE__paint: {
char text[32]; char text[32];
sprintf(text, fmt ? fmt : "%6.2f", *value); stbte__sprintf(text stbte__sizeof(text), fmt ? fmt : "%6.2f", *value);
stbte__draw_textbox(x0,y0,x1,y1, text, 1,2, colormode, STBTE__INDEX_FOR_ID(id,0,0)); stbte__draw_textbox(x0,y0,x1,y1, text, 1,2, colormode, STBTE__INDEX_FOR_ID(id,0,0));
break; break;
} }
@ -2283,7 +2277,6 @@ static void stbte__alert(const char *msg)
static void stbte__brush_predict(stbte_tilemap *tm, short result[]) static void stbte__brush_predict(stbte_tilemap *tm, short result[])
{ {
int layer_to_paint = tm->cur_layer;
stbte__tileinfo *ti; stbte__tileinfo *ti;
int i; int i;
@ -2322,7 +2315,6 @@ static void stbte__brush_predict(stbte_tilemap *tm, short result[])
static void stbte__brush(stbte_tilemap *tm, int x, int y) static void stbte__brush(stbte_tilemap *tm, int x, int y)
{ {
int layer_to_paint = tm->cur_layer;
stbte__tileinfo *ti; stbte__tileinfo *ti;
// find lowest legit layer to paint it on, and put it there // find lowest legit layer to paint it on, and put it there
@ -2634,7 +2626,6 @@ static void stbte__clear_stack(stbte_tilemap *tm, short result[])
static void stbte__fillrect(stbte_tilemap *tm, int x0, int y0, int x1, int y1, int fill) static void stbte__fillrect(stbte_tilemap *tm, int x0, int y0, int x1, int y1, int fill)
{ {
int i,j; int i,j;
int x=x0,y=y0;
stbte__begin_undo(tm); stbte__begin_undo(tm);
if (x0 > x1) i=x0,x0=x1,x1=i; if (x0 > x1) i=x0,x0=x1,x1=i;
@ -2734,6 +2725,7 @@ static int stbte__in_rect(int x, int y, int x0, int y0, int w, int h)
return x >= x0 && x < x0+w && y >= y0 && y < y0+h; return x >= x0 && x < x0+w && y >= y0 && y < y0+h;
} }
#ifdef STBTE_ALLOW_LINK
static int stbte__in_src_rect(int x, int y) static int stbte__in_src_rect(int x, int y)
{ {
return stbte__in_rect(x,y, stbte__ui.copy_src_x, stbte__ui.copy_src_y, stbte__ui.copy_width, stbte__ui.copy_height); return stbte__in_rect(x,y, stbte__ui.copy_src_x, stbte__ui.copy_src_y, stbte__ui.copy_width, stbte__ui.copy_height);
@ -2743,6 +2735,7 @@ static int stbte__in_dest_rect(int x, int y, int destx, int desty)
{ {
return stbte__in_rect(x,y, destx, desty, stbte__ui.copy_width, stbte__ui.copy_height); return stbte__in_rect(x,y, destx, desty, stbte__ui.copy_width, stbte__ui.copy_height);
} }
#endif
static void stbte__paste(stbte_tilemap *tm, int mapx, int mapy) static void stbte__paste(stbte_tilemap *tm, int mapx, int mapy)
{ {
@ -2934,9 +2927,6 @@ static void stbte__tile_paint(stbte_tilemap *tm, int sx, int sy, int mapx, int m
{ {
int i; int i;
int id = STBTE__IDMAP(mapx,mapy); int id = STBTE__IDMAP(mapx,mapy);
int x0=sx, y0=sy;
int x1=sx+tm->spacing_x, y1=sy+tm->spacing_y;
int over = stbte__hittest(x0,y0,x1,y1, id);
short *data = tm->data[mapy][mapx]; short *data = tm->data[mapy][mapx];
short temp[STBTE_MAX_LAYERS]; short temp[STBTE_MAX_LAYERS];
@ -3366,7 +3356,7 @@ static int stbte__info_value(const char *label, int x, int y, int val, int digit
if (stbte__ui.event == STBTE__paint) { if (stbte__ui.event == STBTE__paint) {
int off = 9-stbte__get_char_width(label[0]); int off = 9-stbte__get_char_width(label[0]);
char text[16]; char text[16];
sprintf(text, label, digits, val); stbte__sprintf(text stbte__sizeof(text), label, digits, val);
stbte__draw_text_core(x+off,y, text, 999, STBTE__TEXTCOLOR(STBTE__cpanel),1); stbte__draw_text_core(x+off,y, text, 999, STBTE__TEXTCOLOR(STBTE__cpanel),1);
} }
if (id) { if (id) {
@ -3414,7 +3404,7 @@ static void stbte__info(stbte_tilemap *tm, int x0, int y0, int w, int h)
static void stbte__layers(stbte_tilemap *tm, int x0, int y0, int w, int h) static void stbte__layers(stbte_tilemap *tm, int x0, int y0, int w, int h)
{ {
static char *propmodes[3] = { static const char *propmodes[3] = {
"default", "always", "never" "default", "always", "never"
}; };
int num_rows; int num_rows;
@ -3449,7 +3439,7 @@ static void stbte__layers(stbte_tilemap *tm, int x0, int y0, int w, int h)
int disabled = (tm->solo_layer >= 0 && tm->solo_layer != i); int disabled = (tm->solo_layer >= 0 && tm->solo_layer != i);
if (i-tm->layer_scroll >= 0 && i-tm->layer_scroll < num_rows) { if (i-tm->layer_scroll >= 0 && i-tm->layer_scroll < num_rows) {
if (str == NULL) if (str == NULL)
sprintf(str=text, "%2d", i+1); stbte__sprintf(str=text stbte__sizeof(text), "%2d", i+1);
if (stbte__button(STBTE__clayer_button, str, x0,y,(i+1<10)*2,xoff-2, STBTE__ID(STBTE__layer,i), tm->cur_layer==i,0)) if (stbte__button(STBTE__clayer_button, str, x0,y,(i+1<10)*2,xoff-2, STBTE__ID(STBTE__layer,i), tm->cur_layer==i,0))
tm->cur_layer = (tm->cur_layer == i ? -1 : i); tm->cur_layer = (tm->cur_layer == i ? -1 : i);
if (stbte__layerbutton(x0+xoff + 0,y+1,'H',STBTE__ID(STBTE__hide,i), tm->layerinfo[i].hidden,disabled,STBTE__clayer_hide)) if (stbte__layerbutton(x0+xoff + 0,y+1,'H',STBTE__ID(STBTE__hide,i), tm->layerinfo[i].hidden,disabled,STBTE__clayer_hide))
@ -3501,10 +3491,7 @@ static void stbte__categories(stbte_tilemap *tm, int x0, int y0, int w, int h)
static void stbte__tile_in_palette(stbte_tilemap *tm, int x, int y, int slot) static void stbte__tile_in_palette(stbte_tilemap *tm, int x, int y, int slot)
{ {
stbte__tileinfo *t = &tm->tiles[slot];
int x0=x, y0=y, x1 = x+tm->palette_spacing_x - 1, y1 = y+tm->palette_spacing_y;
int id = STBTE__ID(STBTE__palette, slot); int id = STBTE__ID(STBTE__palette, slot);
int over = stbte__hittest(x0,y0,x1,y1, id);
switch (stbte__ui.event) { switch (stbte__ui.event) {
case STBTE__paint: case STBTE__paint:
stbte__draw_rect(x,y,x+tm->palette_spacing_x-1,y+tm->palette_spacing_x-1, STBTE_COLOR_TILEPALETTE_BACKGROUND); stbte__draw_rect(x,y,x+tm->palette_spacing_x-1,y+tm->palette_spacing_x-1, STBTE_COLOR_TILEPALETTE_BACKGROUND);
@ -3561,15 +3548,10 @@ static void stbte__palette_of_tiles(stbte_tilemap *tm, int x0, int y0, int w, in
stbte__scrollbar(x1-4, y0+6, y1-2, &tm->palette_scroll, 0, num_total_rows, num_vis_rows, STBTE__ID(STBTE__scrollbar_id, STBTE__palette)); stbte__scrollbar(x1-4, y0+6, y1-2, &tm->palette_scroll, 0, num_total_rows, num_vis_rows, STBTE__ID(STBTE__scrollbar_id, STBTE__palette));
} }
static float stbte__linear_remap(float n, float x0, float x1, float y0, float y1)
{
return (n-x0)/(x1-x0)*(y1-y0) + y0;
}
static float stbte__saved; static float stbte__saved;
static void stbte__props_panel(stbte_tilemap *tm, int x0, int y0, int w, int h) static void stbte__props_panel(stbte_tilemap *tm, int x0, int y0, int w, int h)
{ {
int x1 = x0+w, y1 = y0+h; int x1 = x0+w;
int i; int i;
int y = y0 + 5, x = x0+2; int y = y0 + 5, x = x0+2;
int slider_width = 60; int slider_width = 60;
@ -3585,8 +3567,8 @@ static void stbte__props_panel(stbte_tilemap *tm, int x0, int y0, int w, int h)
for (i=0; i < STBTE_MAX_PROPERTIES; ++i) { for (i=0; i < STBTE_MAX_PROPERTIES; ++i) {
unsigned int n = STBTE_PROP_TYPE(i, data, p); unsigned int n = STBTE_PROP_TYPE(i, data, p);
if (n) { if (n) {
char *s = STBTE_PROP_NAME(i, data, p); char *s = (char*) STBTE_PROP_NAME(i, data, p);
if (s == NULL) s = ""; if (s == NULL) s = (char*) "";
switch (n & 3) { switch (n & 3) {
case STBTE_PROP_bool: { case STBTE_PROP_bool: {
int flag = (int) p[i]; int flag = (int) p[i];

View File

@ -4990,7 +4990,13 @@ stb_vorbis * stb_vorbis_open_file(FILE *file, int close_on_free, int *error, con
stb_vorbis * stb_vorbis_open_filename(const char *filename, int *error, const stb_vorbis_alloc *alloc) stb_vorbis * stb_vorbis_open_filename(const char *filename, int *error, const stb_vorbis_alloc *alloc)
{ {
FILE *f = fopen(filename, "rb"); FILE *f;
#if defined(_WIN32) && defined(__STDC_WANT_SECURE_LIB__)
if (0 != fopen_s(&f, filename, "rb"))
f = NULL;
#else
f = fopen(filename, "rb");
#endif
if (f) if (f)
return stb_vorbis_open_file(f, TRUE, error, alloc); return stb_vorbis_open_file(f, TRUE, error, alloc);
if (error) *error = VORBIS_file_open_failure; if (error) *error = VORBIS_file_open_failure;

View File

@ -3552,7 +3552,7 @@ void stbvox_set_buffer(stbvox_mesh_maker *mm, int mesh, int slot, void *buffer,
stbvox_bring_up_to_date(mm); stbvox_bring_up_to_date(mm);
mm->output_buffer[mesh][slot] = (char *) buffer; mm->output_buffer[mesh][slot] = (char *) buffer;
mm->output_cur [mesh][slot] = (char *) buffer; mm->output_cur [mesh][slot] = (char *) buffer;
mm->output_len [mesh][slot] = len; mm->output_len [mesh][slot] = (int) len;
mm->output_end [mesh][slot] = (char *) buffer + len; mm->output_end [mesh][slot] = (char *) buffer + len;
for (i=0; i < STBVOX_MAX_MESH_SLOTS; ++i) { for (i=0; i < STBVOX_MAX_MESH_SLOTS; ++i) {
if (mm->output_buffer[mesh][i]) { if (mm->output_buffer[mesh][i]) {
@ -3568,7 +3568,7 @@ void stbvox_set_default_mesh(stbvox_mesh_maker *mm, int mesh)
int stbvox_get_quad_count(stbvox_mesh_maker *mm, int mesh) int stbvox_get_quad_count(stbvox_mesh_maker *mm, int mesh)
{ {
return (mm->output_cur[mesh][0] - mm->output_buffer[mesh][0]) / mm->output_size[mesh][0]; return (int) ((mm->output_cur[mesh][0] - mm->output_buffer[mesh][0]) / mm->output_size[mesh][0]);
} }
stbvox_input_description *stbvox_get_input_description(stbvox_mesh_maker *mm) stbvox_input_description *stbvox_get_input_description(stbvox_mesh_maker *mm)

View File

@ -113,7 +113,7 @@ int main(int argc, char **argv)
printf("FAILED 4\n"); printf("FAILED 4\n");
} }
} else { } else {
int i, nope=0; int i;
#ifdef PNGSUITE_PRIMARY #ifdef PNGSUITE_PRIMARY
char **files = stb_readdir_files("pngsuite/primary"); char **files = stb_readdir_files("pngsuite/primary");
#else #else

View File

@ -1,3 +1,6 @@
#ifdef __clang__
#define STBIWDEF static inline
#endif
#define STB_IMAGE_WRITE_STATIC #define STB_IMAGE_WRITE_STATIC
#define STB_IMAGE_WRITE_IMPLEMENTATION #define STB_IMAGE_WRITE_IMPLEMENTATION
#include "stb_image_write.h" #include "stb_image_write.h"

View File

@ -1,3 +1,4 @@
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
@ -56,8 +57,11 @@ void stbir_progress(float p)
STBIR_ASSERT(p >= 0 && p <= 1); STBIR_ASSERT(p >= 0 && p <= 1);
} }
#define STBIR_PROGRESS_REPORT stbir_progress #ifdef __clang__
#define STBIRDEF static inline
#endif
#define STBIR_PROGRESS_REPORT stbir_progress
#define STB_IMAGE_RESIZE_IMPLEMENTATION #define STB_IMAGE_RESIZE_IMPLEMENTATION
#define STB_IMAGE_RESIZE_STATIC #define STB_IMAGE_RESIZE_STATIC
#include "stb_image_resize.h" #include "stb_image_resize.h"
@ -127,7 +131,7 @@ inline float mtfrand()
return (float)(mtrand() % ninenine)/ninenine; return (float)(mtrand() % ninenine)/ninenine;
} }
static void resizer(int argc, char **argv) void resizer(int argc, char **argv)
{ {
unsigned char* input_pixels; unsigned char* input_pixels;
unsigned char* output_pixels; unsigned char* output_pixels;
@ -144,7 +148,7 @@ static void resizer(int argc, char **argv)
exit(0); exit(0);
} }
static void performance(int argc, char **argv) void performance(int argc, char **argv)
{ {
unsigned char* input_pixels; unsigned char* input_pixels;
unsigned char* output_pixels; unsigned char* output_pixels;

View File

@ -2,6 +2,7 @@
* Unit tests for "stb.h" * Unit tests for "stb.h"
*/ */
#define _CRT_SECURE_NO_WARNINGS
//#include <windows.h> //#include <windows.h>
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
@ -110,8 +111,8 @@ void test_classes(void)
while ((psize % s) > (psize >> 3)) { while ((psize % s) > (psize >> 3)) {
psize += kPageSize; psize += kPageSize;
} }
class_to_pages[cl] = psize >> kPageShift; class_to_pages[cl] = (int) (psize >> kPageShift);
wasted_pages += psize; wasted_pages += (int) psize;
} }
printf("TCMalloc can waste as much as %d memory on one-shot allocations\n", wasted_pages); printf("TCMalloc can waste as much as %d memory on one-shot allocations\n", wasted_pages);
@ -356,10 +357,10 @@ void test_threads2(void)
char tc[] = "testing compression test quick test voila woohoo what the hell"; char tc[] = "testing compression test quick test voila woohoo what the hell";
char storage1[1 << 23]; unsigned char storage1[1 << 23];
int test_compression(char *buffer, int length) int test_compression(unsigned char *buffer, int length)
{ {
char *storage2; unsigned char *storage2;
int c_len = stb_compress(storage1, buffer, length); int c_len = stb_compress(storage1, buffer, length);
int dc_len; int dc_len;
printf("Compressed %d to %d\n", length, c_len); printf("Compressed %d to %d\n", length, c_len);
@ -421,7 +422,7 @@ stb_uint stb_adler32_old(stb_uint adler32, stb_uchar *buffer, stb_uint buflen)
return (s2 << 16) + s1; return (s2 << 16) + s1;
} }
static int sample_test[3][5] = int sample_test[3][5] =
{ {
{ 1,2,3,4,5 }, { 1,2,3,4,5 },
{ 6,7,8,9,10, }, { 6,7,8,9,10, },
@ -1579,10 +1580,10 @@ struct
char *digest; char *digest;
} sha1_tests[] = } sha1_tests[] =
{ {
24, { 24,
"616263", "616263",
"a9993e364706816aba3e25717850c26c9cd0d89d", "a9993e364706816aba3e25717850c26c9cd0d89d",
},{
1304, 1304,
"ec29561244ede706b6eb30a1c371d74450a105c3f9735f7fa9fe38cf67f304a5736a106e" "ec29561244ede706b6eb30a1c371d74450a105c3f9735f7fa9fe38cf67f304a5736a106e"
"92e17139a6813b1c81a4f3d3fb9546ab4296fa9f722826c066869edacd73b25480351858" "92e17139a6813b1c81a4f3d3fb9546ab4296fa9f722826c066869edacd73b25480351858"
@ -1590,7 +1591,7 @@ struct
"e31cb413ae29810fd794cad5dfaf29ec43cb38d198fe4ae1da2359780221405bd6712a53" "e31cb413ae29810fd794cad5dfaf29ec43cb38d198fe4ae1da2359780221405bd6712a53"
"05da4b1b737fce7cd21c0eb7728d08235a9011", "05da4b1b737fce7cd21c0eb7728d08235a9011",
"970111c4e77bcc88cc20459c02b69b4aa8f58217", "970111c4e77bcc88cc20459c02b69b4aa8f58217",
},{
2096, 2096,
"5fc2c3f6a7e79dc94be526e5166a238899d54927ce470018fbfd668fd9dd97cbf64e2c91" "5fc2c3f6a7e79dc94be526e5166a238899d54927ce470018fbfd668fd9dd97cbf64e2c91"
"584d01da63be3cc9fdff8adfefc3ac728e1e335b9cdc87f069172e323d094b47fa1e652a" "584d01da63be3cc9fdff8adfefc3ac728e1e335b9cdc87f069172e323d094b47fa1e652a"
@ -1601,7 +1602,7 @@ struct
"e485050e4bbb6235574fc0102be8f7a306d6e8de6ba6becf80f37415b57f9898a5824e77" "e485050e4bbb6235574fc0102be8f7a306d6e8de6ba6becf80f37415b57f9898a5824e77"
"414197422be3d36a6080", "414197422be3d36a6080",
"0423dc76a8791107d14e13f5265b343f24cc0f19", "0423dc76a8791107d14e13f5265b343f24cc0f19",
},{
2888, 2888,
"0f865f46a8f3aed2da18482aa09a8f390dc9da07d51d1bd10fe0bf5f3928d5927d08733d" "0f865f46a8f3aed2da18482aa09a8f390dc9da07d51d1bd10fe0bf5f3928d5927d08733d"
"32075535a6d1c8ac1b2dc6ba0f2f633dc1af68e3f0fa3d85e6c60cb7b56c239dc1519a00" "32075535a6d1c8ac1b2dc6ba0f2f633dc1af68e3f0fa3d85e6c60cb7b56c239dc1519a00"
@ -1615,7 +1616,7 @@ struct
"6afbb27dbbd300477d70c371e7b8963812f5ed4fb784fb2f3bd1d3afe883cdd47ef32bea" "6afbb27dbbd300477d70c371e7b8963812f5ed4fb784fb2f3bd1d3afe883cdd47ef32bea"
"ea", "ea",
"6692a71d73e00f27df976bc56df4970650d90e45", "6692a71d73e00f27df976bc56df4970650d90e45",
},{
3680, 3680,
"4893f1c763625f2c6ce53aacf28026f14b3cd8687e1a1d3b60a81e80fcd1e2b038f9145a" "4893f1c763625f2c6ce53aacf28026f14b3cd8687e1a1d3b60a81e80fcd1e2b038f9145a"
"b64a0718f948f7c3c9ac92e3d86fb669a5257da1a18c776291653688338210a3242120f1" "b64a0718f948f7c3c9ac92e3d86fb669a5257da1a18c776291653688338210a3242120f1"
@ -1631,7 +1632,7 @@ struct
"73c30b39920e726fe861b72483a3f886269ab7a8eefe952f35d25c4eb7f443f4f3f26e43" "73c30b39920e726fe861b72483a3f886269ab7a8eefe952f35d25c4eb7f443f4f3f26e43"
"d51fb54591e6a6dad25fcdf5142033084e5624bdd51435e77dea86b8", "d51fb54591e6a6dad25fcdf5142033084e5624bdd51435e77dea86b8",
"dc5859dd5163c4354d5d577b855fa98e37f04384", "dc5859dd5163c4354d5d577b855fa98e37f04384",
},{
4472, 4472,
"cf494c18a4e17bf03910631471bca5ba7edea8b9a63381e3463517961749848eb03abefd" "cf494c18a4e17bf03910631471bca5ba7edea8b9a63381e3463517961749848eb03abefd"
"4ce676dece3740860255f57c261a558aa9c7f11432f549a9e4ce31d8e17c79450ce2ccfc" "4ce676dece3740860255f57c261a558aa9c7f11432f549a9e4ce31d8e17c79450ce2ccfc"
@ -1650,7 +1651,7 @@ struct
"317746270599424b9248791a0780449c1eabbb9459cc1e588bfd74df9b1b711c85c09d8a" "317746270599424b9248791a0780449c1eabbb9459cc1e588bfd74df9b1b711c85c09d8a"
"a171b309281947e8f4b6ac438753158f4f36fa", "a171b309281947e8f4b6ac438753158f4f36fa",
"4c17926feb6e87f5bca7890d8a5cde744f231dab", "4c17926feb6e87f5bca7890d8a5cde744f231dab",
},{
5264, 5264,
"8236153781bd2f1b81ffe0def1beb46f5a70191142926651503f1b3bb1016acdb9e7f7ac" "8236153781bd2f1b81ffe0def1beb46f5a70191142926651503f1b3bb1016acdb9e7f7ac"
"ced8dd168226f118ff664a01a8800116fd023587bfba52a2558393476f5fc69ce9c65001" "ced8dd168226f118ff664a01a8800116fd023587bfba52a2558393476f5fc69ce9c65001"
@ -1672,7 +1673,7 @@ struct
"5cf62845c2009980a4dfa69fbc7e5a0b1bb20a5958ca967aec68eb31dd8fccca9afcd30a" "5cf62845c2009980a4dfa69fbc7e5a0b1bb20a5958ca967aec68eb31dd8fccca9afcd30a"
"26bab26279f1bf6724ff", "26bab26279f1bf6724ff",
"11863b483809ef88413ca9b0084ac4a5390640af", "11863b483809ef88413ca9b0084ac4a5390640af",
},{
6056, 6056,
"31ec3c3636618c7141441294fde7e72366a407fa7ec6a64a41a7c8dfda150ca417fac868" "31ec3c3636618c7141441294fde7e72366a407fa7ec6a64a41a7c8dfda150ca417fac868"
"1b3c5be253e3bff3ab7a5e2c01b72790d95ee09b5362be835b4d33bd20e307c3c702aa15" "1b3c5be253e3bff3ab7a5e2c01b72790d95ee09b5362be835b4d33bd20e307c3c702aa15"
@ -1697,7 +1698,7 @@ struct
"386719b28a09a8e5934722202beb3429899b016dfeb972fee487cdd8d18f8a681042624f" "386719b28a09a8e5934722202beb3429899b016dfeb972fee487cdd8d18f8a681042624f"
"51", "51",
"f43937922444421042f76756fbed0338b354516f", "f43937922444421042f76756fbed0338b354516f",
},{
6848, 6848,
"21b9a9686ec200456c414f2e6963e2d59e8b57e654eced3d4b57fe565b51c9045c697566" "21b9a9686ec200456c414f2e6963e2d59e8b57e654eced3d4b57fe565b51c9045c697566"
"44c953178f0a64a6e44d1b46f58763c6a71ce4c373b0821c0b3927a64159c32125ec916b" "44c953178f0a64a6e44d1b46f58763c6a71ce4c373b0821c0b3927a64159c32125ec916b"
@ -1724,7 +1725,7 @@ struct
"aac4130293f6f62ae6d50c0d0c3b9876f0728923a94843785966a27555dd3ce68602e7d9" "aac4130293f6f62ae6d50c0d0c3b9876f0728923a94843785966a27555dd3ce68602e7d9"
"0f7c7c552f9bda4969ec2dc3e30a70620db6300e822a93e633ab9a7a", "0f7c7c552f9bda4969ec2dc3e30a70620db6300e822a93e633ab9a7a",
"5d4d18b24b877092188a44be4f2e80ab1d41e795", "5d4d18b24b877092188a44be4f2e80ab1d41e795",
},{
7640, 7640,
"1c87f48f4409c3682e2cf34c63286dd52701b6c14e08669851a6dc8fa15530ad3bef692c" "1c87f48f4409c3682e2cf34c63286dd52701b6c14e08669851a6dc8fa15530ad3bef692c"
"7d2bf02238644561069df19bdec3bccae5311fce877afc58c7628d08d32d9bd2dc1df0a6" "7d2bf02238644561069df19bdec3bccae5311fce877afc58c7628d08d32d9bd2dc1df0a6"
@ -1754,7 +1755,7 @@ struct
"e147c723aca999015230d22c917730b935e902092f83e0a8e6db9a75d2626e0346e67e40" "e147c723aca999015230d22c917730b935e902092f83e0a8e6db9a75d2626e0346e67e40"
"8d5b815439dab8ccb8ea23f828fff6916c4047", "8d5b815439dab8ccb8ea23f828fff6916c4047",
"32e0f5d40ceec1fbe45ddd151c76c0b3fef1c938", "32e0f5d40ceec1fbe45ddd151c76c0b3fef1c938",
},{
8432, 8432,
"084f04f8d44b333dca539ad2f45f1d94065fbb1d86d2ccf32f9486fe98f7c64011160ec0" "084f04f8d44b333dca539ad2f45f1d94065fbb1d86d2ccf32f9486fe98f7c64011160ec0"
"cd66c9c7478ed74fde7945b9c2a95cbe14cedea849978cc2d0c8eb0df48d4834030dfac2" "cd66c9c7478ed74fde7945b9c2a95cbe14cedea849978cc2d0c8eb0df48d4834030dfac2"
@ -1787,7 +1788,7 @@ struct
"b5200b7892554b59532ac63af3bdef590b57bd5df4fbf38d2b3fa540fa5bf89455802963" "b5200b7892554b59532ac63af3bdef590b57bd5df4fbf38d2b3fa540fa5bf89455802963"
"036bd173fe3967ed1b7d", "036bd173fe3967ed1b7d",
"ee976e4ad3cad933b283649eff9ffdb41fcccb18", "ee976e4ad3cad933b283649eff9ffdb41fcccb18",
},{
9224, 9224,
"bd8320703d0cac96a96aeefa3abf0f757456bf42b3e56f62070fc03e412d3b8f4e4e427b" "bd8320703d0cac96a96aeefa3abf0f757456bf42b3e56f62070fc03e412d3b8f4e4e427b"
"c47c4600bb423b96de6b4910c20bc5c476c45feb5b429d4b35088813836fa5060ceb26db" "c47c4600bb423b96de6b4910c20bc5c476c45feb5b429d4b35088813836fa5060ceb26db"
@ -1823,7 +1824,7 @@ struct
"42a756a3e22123cbf38c429373c6a8663130c24b24b2690b000013960b1c46a32d1d5397" "42a756a3e22123cbf38c429373c6a8663130c24b24b2690b000013960b1c46a32d1d5397"
"47", "47",
"2df09b10933afedfcd3f2532dfd29e7cb6213859", "2df09b10933afedfcd3f2532dfd29e7cb6213859",
},{
10016, 10016,
"7a94978bec7f5034b12c96b86498068db28cd2726b676f54d81d8d7350804cc106bead8a" "7a94978bec7f5034b12c96b86498068db28cd2726b676f54d81d8d7350804cc106bead8a"
"252b465a1f413b1c41e5697f8cece49ec0dea4dfb9fa7b1bfe7a4a00981875b420d094bb" "252b465a1f413b1c41e5697f8cece49ec0dea4dfb9fa7b1bfe7a4a00981875b420d094bb"
@ -1861,7 +1862,7 @@ struct
"5740090c1b165ecae7dec0b341d60a88f46d7ad8624aac231a90c93fad61fcfbbea12503" "5740090c1b165ecae7dec0b341d60a88f46d7ad8624aac231a90c93fad61fcfbbea12503"
"59fcd203862a6b0f1d71ac43db6c58a6b60c2c546edc12dd658998e8", "59fcd203862a6b0f1d71ac43db6c58a6b60c2c546edc12dd658998e8",
"f32e70862a16e3e8b199e9d81a9949d66f812cad", "f32e70862a16e3e8b199e9d81a9949d66f812cad",
},{
10808, 10808,
"88dd7f273acbe799219c23184782ac0b07bade2bc46b4f8adbd25ed3d59c0fd3e2931638" "88dd7f273acbe799219c23184782ac0b07bade2bc46b4f8adbd25ed3d59c0fd3e2931638"
"837d31998641bbb7374c7f03d533ca60439ac4290054ff7659cc519bdda3dff2129a7bdb" "837d31998641bbb7374c7f03d533ca60439ac4290054ff7659cc519bdda3dff2129a7bdb"
@ -1902,7 +1903,7 @@ struct
"1fd561274392ee6ee1a14424d5c134a69bcb4333079400f03615952fc4c99bf03f5733a8" "1fd561274392ee6ee1a14424d5c134a69bcb4333079400f03615952fc4c99bf03f5733a8"
"dc71524269fc5c648371f5f3098314d9d10258", "dc71524269fc5c648371f5f3098314d9d10258",
"08632c75676571a5db5971f5d99cb8de6bf1792a", "08632c75676571a5db5971f5d99cb8de6bf1792a",
},{
11600, 11600,
"85d43615942fcaa449329fd1fe9efb17545eb252cac752228f1e9d90955a3cf4e72cb116" "85d43615942fcaa449329fd1fe9efb17545eb252cac752228f1e9d90955a3cf4e72cb116"
"3c3d8e93ccb7e4826206ff58b3e05009ee82ab70943db3f18a32925d6d5aed1525c91673" "3c3d8e93ccb7e4826206ff58b3e05009ee82ab70943db3f18a32925d6d5aed1525c91673"
@ -1946,7 +1947,7 @@ struct
"b16dcde529248a477628067d13d0cb3bf51776f4d39fb3fbc5f669e91019323e40360e4b" "b16dcde529248a477628067d13d0cb3bf51776f4d39fb3fbc5f669e91019323e40360e4b"
"78b6584f077bf9e03b66", "78b6584f077bf9e03b66",
"ab7213f6becb980d40dc89fbda0ca39f225a2d33", "ab7213f6becb980d40dc89fbda0ca39f225a2d33",
},{
12392, 12392,
"7ae3ca60b3a96be914d24980fb5652eb68451fed5fa47abe8e771db8301fbd5331e64753" "7ae3ca60b3a96be914d24980fb5652eb68451fed5fa47abe8e771db8301fbd5331e64753"
"93d96a4010d6551701e5c23f7ecb33bec7dd7bade21381e9865d410c383a139cb4863082" "93d96a4010d6551701e5c23f7ecb33bec7dd7bade21381e9865d410c383a139cb4863082"
@ -1993,7 +1994,7 @@ struct
"09d1af296eb3121d782650e7d038063bab5fa854aac77de5ffebeb53d263f521e3fc02ac" "09d1af296eb3121d782650e7d038063bab5fa854aac77de5ffebeb53d263f521e3fc02ac"
"70", "70",
"b0e15d39025f5263e3efa255c1868d4a37041382", "b0e15d39025f5263e3efa255c1868d4a37041382",
},{
13184, 13184,
"fa922061131282d91217a9ff07463843ae34ff7f8c28b6d93b23f1ea031d5020aa92f660" "fa922061131282d91217a9ff07463843ae34ff7f8c28b6d93b23f1ea031d5020aa92f660"
"8c3d3df0ee24a8958fd41af880ee454e36e26438defb2de8f09c018607c967d2f0e8b80a" "8c3d3df0ee24a8958fd41af880ee454e36e26438defb2de8f09c018607c967d2f0e8b80a"
@ -2042,7 +2043,7 @@ struct
"b409cc322354672a21ea383e870d047551a3af71aaf2f44f49a859cf001e61b592dd036f" "b409cc322354672a21ea383e870d047551a3af71aaf2f44f49a859cf001e61b592dd036f"
"c6625bf7b91ea0fb78c1563cceb8c4345bf4a9fbe6ee2b6bf5e81083", "c6625bf7b91ea0fb78c1563cceb8c4345bf4a9fbe6ee2b6bf5e81083",
"8b6d59106f04300cb57c7c961945cd77f3536b0a", "8b6d59106f04300cb57c7c961945cd77f3536b0a",
},{
13976, 13976,
"162cca41155de90f6e4b76a34261be6666ef65bdb92b5831b47604ce42e0c6c8d2eda265" "162cca41155de90f6e4b76a34261be6666ef65bdb92b5831b47604ce42e0c6c8d2eda265"
"ab9a3716809bf2e745e7831a41768d0f6349a268d9ac6e6adfb832a5d51b75d7951cf60e" "ab9a3716809bf2e745e7831a41768d0f6349a268d9ac6e6adfb832a5d51b75d7951cf60e"
@ -2094,7 +2095,7 @@ struct
"7635eed03558ac673d17280769b2368056276d5d72f5dbc75525f8a7558bd90b544aa6cb" "7635eed03558ac673d17280769b2368056276d5d72f5dbc75525f8a7558bd90b544aa6cb"
"dd964e6c70be79441969bfdf471f17a2dc0c92", "dd964e6c70be79441969bfdf471f17a2dc0c92",
"6144c4786145852e2a01b20604c369d1b9721019", "6144c4786145852e2a01b20604c369d1b9721019",
},{
14768, 14768,
"c9bed88d93806b89c2d028866842e6542ab88c895228c96c1f9f05125f8697c7402538b0" "c9bed88d93806b89c2d028866842e6542ab88c895228c96c1f9f05125f8697c7402538b0"
"6465b7ae33daef847500f73d20c598c86e4804e633e1c4466e61f3ed1e9baadc5723bbed" "6465b7ae33daef847500f73d20c598c86e4804e633e1c4466e61f3ed1e9baadc5723bbed"
@ -2149,6 +2150,7 @@ struct
"f5e1f03c2280e71c6e1ae21312d4ff163eee16ebb1fdee8e887bb0d453829b4e6ed5fa70" "f5e1f03c2280e71c6e1ae21312d4ff163eee16ebb1fdee8e887bb0d453829b4e6ed5fa70"
"8f2053f29b81e277be46", "8f2053f29b81e277be46",
"a757ead499a6ec3d8ab9814f839117354ae563c8" "a757ead499a6ec3d8ab9814f839117354ae563c8"
}
}; };
void test_sha1(void) void test_sha1(void)
@ -2257,14 +2259,14 @@ void do_compressor(int argc,char**argv)
{ {
char *p; char *p;
size_t slen; size_t slen;
int len; unsigned int len;
int window; int window;
if (argc == 2) { if (argc == 2) {
p = stb_file(argv[1], &slen); p = stb_file(argv[1], &slen);
len = (int) slen; len = (unsigned int) slen;
if (p) { if (p) {
int dlen, clen = stb_compress_tofile("data/dummy.bin", p, len); unsigned int dlen, clen = stb_compress_tofile("data/dummy.bin", p, len);
char *q = stb_decompress_fromfile("data/dummy.bin", &dlen); char *q = stb_decompress_fromfile("data/dummy.bin", &dlen);
if (len != dlen) { if (len != dlen) {
@ -2398,7 +2400,7 @@ done:
#if 0 // parser generator
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// //
// stb_parser // stb_parser
@ -2946,7 +2948,7 @@ void test_parser_generator(void)
parser_destroy(p); parser_destroy(p);
} }
#endif #endif
#endif // parser generator
#if 0 #if 0
// stb_threadtest.c // stb_threadtest.c

View File

@ -11,7 +11,7 @@
//#include "stb_file.h" //#include "stb_file.h"
int count; int count;
void c(int truth, char *error) void c(int truth, const char *error)
{ {
if (!truth) { if (!truth) {
fprintf(stderr, "Test failed: %s\n", error); fprintf(stderr, "Test failed: %s\n", error);
@ -19,7 +19,7 @@ void c(int truth, char *error)
} }
} }
char *expects(stb_matcher *m, char *s, int result, int len, char *str) char *expects(stb_matcher *m, char *s, int result, int len, const char *str)
{ {
int res2,len2=0; int res2,len2=0;
res2 = stb_lex(m, s, &len2); res2 = stb_lex(m, s, &len2);
@ -31,7 +31,7 @@ void test_lex(void)
{ {
stb_matcher *m = stb_lex_matcher(); stb_matcher *m = stb_lex_matcher();
// tok_en5 .3 20.1 20. .20 .1 // tok_en5 .3 20.1 20. .20 .1
char *s = "tok_en5.3 20.1 20. .20.1"; char *s = (char*) "tok_en5.3 20.1 20. .20.1";
stb_lex_item(m, "[a-zA-Z_][a-zA-Z0-9_]*", 1 ); stb_lex_item(m, "[a-zA-Z_][a-zA-Z0-9_]*", 1 );
stb_lex_item(m, "[0-9]*\\.?[0-9]*" , 2 ); stb_lex_item(m, "[0-9]*\\.?[0-9]*" , 2 );
@ -53,22 +53,22 @@ void test_lex(void)
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
char *p; char *p;
p = "abcdefghijklmnopqrstuvwxyz"; p = (char*) "abcdefghijklmnopqrstuvwxyz";
c(stb_ischar('c', p), "stb_ischar 1"); c(stb_ischar('c', p), "stb_ischar 1");
c(stb_ischar('x', p), "stb_ischar 2"); c(stb_ischar('x', p), "stb_ischar 2");
c(!stb_ischar('#', p), "stb_ischar 3"); c(!stb_ischar('#', p), "stb_ischar 3");
c(!stb_ischar('X', p), "stb_ischar 4"); c(!stb_ischar('X', p), "stb_ischar 4");
p = "0123456789"; p = (char*) "0123456789";
c(!stb_ischar('c', p), "stb_ischar 5"); c(!stb_ischar('c', p), "stb_ischar 5");
c(!stb_ischar('x', p), "stb_ischar 6"); c(!stb_ischar('x', p), "stb_ischar 6");
c(!stb_ischar('#', p), "stb_ischar 7"); c(!stb_ischar('#', p), "stb_ischar 7");
c(!stb_ischar('X', p), "stb_ischar 8"); c(!stb_ischar('X', p), "stb_ischar 8");
p = "#####"; p = (char*) "#####";
c(!stb_ischar('c', p), "stb_ischar a"); c(!stb_ischar('c', p), "stb_ischar a");
c(!stb_ischar('x', p), "stb_ischar b"); c(!stb_ischar('x', p), "stb_ischar b");
c(stb_ischar('#', p), "stb_ischar c"); c(stb_ischar('#', p), "stb_ischar c");
c(!stb_ischar('X', p), "stb_ischar d"); c(!stb_ischar('X', p), "stb_ischar d");
p = "xXyY"; p = (char*) "xXyY";
c(!stb_ischar('c', p), "stb_ischar e"); c(!stb_ischar('c', p), "stb_ischar e");
c(stb_ischar('x', p), "stb_ischar f"); c(stb_ischar('x', p), "stb_ischar f");
c(!stb_ischar('#', p), "stb_ischar g"); c(!stb_ischar('#', p), "stb_ischar g");

View File

@ -1 +1,7 @@
#include "stretchy_buffer.h" #include "stretchy_buffer.h"
void test_sb(void)
{
char *x = NULL;
sb_push(x, 'x');
}

37
tests/test.sbm Normal file
View File

@ -0,0 +1,37 @@
[compilers]
VS2015 for x64, vcvars_2015_x64
VC6 , vcvars_vc6
VS2008 for x86, vcvars_2008_x86
VS2013 for x86, vcvars_2013_x86
VS2015 for x86, vcvars_2015_x86
clang-cl for x64, vcvars_2015_x64, clang-cl
clang-cl for x86, vcvars_2015_x86, clang32-cl
#these batch files don't work on my machine
#VS2008 for x64, vcvars_2008_x64
#VS2013 for x64, vcvars_2013_x64
[args]
-I .. -W3 -WX -D_DEBUG
[link]
advapi32.lib
[projects]
c_lexer_test.c
image_test.c image_write_test.c
test_cpp_compilation.cpp stb_cpp.cpp ../stb_vorbis.c
resample_test.cpp
-DTT_TEST test_c_compilation.c test_truetype.c
main.c stb.c
main.c stretchy_buffer_test.c
main.c test_c_compilation.c
main.c test_c_lexer.c
main.c test_dxt.c
main.c test_easyfont.c
main.c test_image.c
main.c test_image_write.c
main.c test_perlin.c
main.c test_sprintf.c
main.c test_vorbis.c ../stb_vorbis.c
main.c test_voxel.c
main.c textedit_sample.c

View File

@ -3,6 +3,7 @@
#include "stb_sprintf.h" #include "stb_sprintf.h"
#define STB_IMAGE_WRITE_STATIC #define STB_IMAGE_WRITE_STATIC
#define STBIWDEF static inline
#define STB_IMAGE_WRITE_IMPLEMENTATION #define STB_IMAGE_WRITE_IMPLEMENTATION
#define STB_TRUETYPE_IMPLEMENTATION #define STB_TRUETYPE_IMPLEMENTATION
@ -57,9 +58,18 @@ void my_free(void *) { }
#define STB_IMAGE_RESIZE_IMPLEMENTATION #define STB_IMAGE_RESIZE_IMPLEMENTATION
#include "stb_image_resize.h" #include "stb_image_resize.h"
#include "stretchy_buffer.h" //#include "stretchy_buffer.h" // deprecating
// avoid unused-function complaints
void dummy2(void)
{
stb_easy_font_spacing(1.0);
stb_easy_font_print(0,0,NULL,NULL,NULL,0);
stb_easy_font_width(NULL);
stb_easy_font_height(NULL);
}
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
// //
@ -113,7 +123,7 @@ int insert_chars(STB_TEXTEDIT_STRING *str, int pos, STB_TEXTEDIT_CHARTYPE *newte
// define all the #defines needed // define all the #defines needed
#define KEYDOWN_BIT 0x80000000 #define KEYDOWN_BIT 0x40000000
#define STB_TEXTEDIT_STRINGLEN(tc) ((tc)->stringlen) #define STB_TEXTEDIT_STRINGLEN(tc) ((tc)->stringlen)
#define STB_TEXTEDIT_LAYOUTROW layout_func #define STB_TEXTEDIT_LAYOUTROW layout_func
@ -125,8 +135,8 @@ int insert_chars(STB_TEXTEDIT_STRING *str, int pos, STB_TEXTEDIT_CHARTYPE *newte
#define STB_TEXTEDIT_DELETECHARS delete_chars #define STB_TEXTEDIT_DELETECHARS delete_chars
#define STB_TEXTEDIT_INSERTCHARS insert_chars #define STB_TEXTEDIT_INSERTCHARS insert_chars
#define STB_TEXTEDIT_K_SHIFT 0x40000000 #define STB_TEXTEDIT_K_SHIFT 0x20000000
#define STB_TEXTEDIT_K_CONTROL 0x20000000 #define STB_TEXTEDIT_K_CONTROL 0x10000000
#define STB_TEXTEDIT_K_LEFT (KEYDOWN_BIT | 1) // actually use VK_LEFT, SDLK_LEFT, etc #define STB_TEXTEDIT_K_LEFT (KEYDOWN_BIT | 1) // actually use VK_LEFT, SDLK_LEFT, etc
#define STB_TEXTEDIT_K_RIGHT (KEYDOWN_BIT | 2) // VK_RIGHT #define STB_TEXTEDIT_K_RIGHT (KEYDOWN_BIT | 2) // VK_RIGHT
#define STB_TEXTEDIT_K_UP (KEYDOWN_BIT | 3) // VK_UP #define STB_TEXTEDIT_K_UP (KEYDOWN_BIT | 3) // VK_UP
@ -149,3 +159,12 @@ int insert_chars(STB_TEXTEDIT_STRING *str, int pos, STB_TEXTEDIT_CHARTYPE *newte
#include "stb_textedit.h" #include "stb_textedit.h"
void dummy3(void)
{
stb_textedit_click(0,0,0,0);
stb_textedit_drag(0,0,0,0);
stb_textedit_cut(0,0);
stb_textedit_key(0,0,0);
stb_textedit_initialize_state(0,0);
stb_textedit_paste(0,0,0,0);
}

View File

@ -1 +1,10 @@
#include "stb_easy_font.h" #include "stb_easy_font.h"
void ef_dummy(void)
{
// suppress unsused-function warning
stb_easy_font_spacing(0);
stb_easy_font_print(0,0,0,0,0,0);
stb_easy_font_width(0);
stb_easy_font_height(0);
}

View File

@ -1,3 +1,7 @@
#ifdef __clang__
#define STBIDEF static inline
#endif
#define STB_IMAGE_STATIC #define STB_IMAGE_STATIC
#define STB_IMAGE_IMPLEMENTATION #define STB_IMAGE_IMPLEMENTATION
#include "stb_image.h" #include "stb_image.h"

View File

@ -1,3 +1,7 @@
#ifdef __clang__
#define STBIWDEF static inline
#endif
#define STB_IMAGE_WRITE_IMPLEMENTATION #define STB_IMAGE_WRITE_IMPLEMENTATION
#define STB_IMAGE_WRITE_STATIC #define STB_IMAGE_WRITE_STATIC
#include "stb_image_write.h" #include "stb_image_write.h"

View File

@ -1,7 +1,3 @@
#define STB_IMAGE_STATIC
#define STB_IMAGE_IMPLEMENTATION
#include "stb_image.h"
#define STB_VORBIS_HEADER_ONLY #define STB_VORBIS_HEADER_ONLY
#include "stb_vorbis.c" #include "stb_vorbis.c"
#include "stb.h" #include "stb.h"

View File

@ -82,3 +82,13 @@ int insert_chars(STB_TEXTEDIT_STRING *str, int pos, STB_TEXTEDIT_CHARTYPE *newte
#define STB_TEXTEDIT_IMPLEMENTATION #define STB_TEXTEDIT_IMPLEMENTATION
#include "stb_textedit.h" #include "stb_textedit.h"
void dummy3(void)
{
stb_textedit_click(0,0,0,0);
stb_textedit_drag(0,0,0,0);
stb_textedit_cut(0,0);
stb_textedit_key(0,0,0);
stb_textedit_initialize_state(0,0);
stb_textedit_paste(0,0,0,0);
}