diff --git a/libretro-common/samples/compat/snprintf/Makefile b/libretro-common/samples/compat/snprintf/Makefile new file mode 100644 index 0000000000..9a8294a10f --- /dev/null +++ b/libretro-common/samples/compat/snprintf/Makefile @@ -0,0 +1,25 @@ +TARGET := snprintf + +CORE_DIR := . +LIBRETRO_COMM_DIR := ../../.. + +SOURCES_C := \ + $(CORE_DIR)/snprintf_test.c \ + $(LIBRETRO_COMM_DIR)/compat/compat_snprintf.c + +OBJS := $(SOURCES_C:.c=.o) + +CFLAGS += -Wall -pedantic -std=gnu99 -I$(LIBRETRO_COMM_DIR)/include + +all: $(TARGET) + +%.o: %.c + $(CC) -c -o $@ $< $(CFLAGS) + +$(TARGET): $(OBJS) + $(CC) -o $@ $^ $(LDFLAGS) + +clean: + rm -f $(TARGET) $(OBJS) + +.PHONY: clean diff --git a/libretro-common/samples/compat/snprintf/snprintf_test.c b/libretro-common/samples/compat/snprintf/snprintf_test.c new file mode 100644 index 0000000000..f8558c3827 --- /dev/null +++ b/libretro-common/samples/compat/snprintf/snprintf_test.c @@ -0,0 +1,51 @@ +/* Copyright (C) 2010-2020 The RetroArch team + * + * --------------------------------------------------------------------------------------- + * The following license statement only applies to this file (snprintf_test.c). + * --------------------------------------------------------------------------------------- + * + * Permission is hereby granted, free of charge, + * to any person obtaining a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include +#include + +#include + +int main(int argc, char *argv[]) +{ + char s[128]; + char *variable = "test1"; + char *variable2 = "test2"; + char *variable3 = "test3"; + char *variable4 = "test4"; + char *variable5 = "test5"; + char *variable6 = "test6"; + int ret = snprintf(s, + sizeof(s), "%s%s%s%s%s%s%s%s%s%s%s", variable, + " : ", variable2, + " : ", variable3, + " : ", variable4, + " : ", variable5, + " : ", variable6 + ); + + fprintf(stderr, "[%d], %s\n", ret, s); + + return 0; +} diff --git a/libretro-common/samples/compat/strl/Makefile b/libretro-common/samples/compat/strl/Makefile new file mode 100644 index 0000000000..7b4c59f560 --- /dev/null +++ b/libretro-common/samples/compat/strl/Makefile @@ -0,0 +1,25 @@ +TARGET := strl + +CORE_DIR := . +LIBRETRO_COMM_DIR := ../../.. + +SOURCES_C := \ + $(CORE_DIR)/strl_test.c \ + $(LIBRETRO_COMM_DIR)/compat/compat_strl.c + +OBJS := $(SOURCES_C:.c=.o) + +CFLAGS += -Wall -pedantic -std=gnu99 -I$(LIBRETRO_COMM_DIR)/include + +all: $(TARGET) + +%.o: %.c + $(CC) -c -o $@ $< $(CFLAGS) + +$(TARGET): $(OBJS) + $(CC) -o $@ $^ $(LDFLAGS) + +clean: + rm -f $(TARGET) $(OBJS) + +.PHONY: clean diff --git a/libretro-common/samples/compat/strl/strl_test.c b/libretro-common/samples/compat/strl/strl_test.c new file mode 100644 index 0000000000..72ef532236 --- /dev/null +++ b/libretro-common/samples/compat/strl/strl_test.c @@ -0,0 +1,54 @@ +/* Copyright (C) 2010-2020 The RetroArch team + * + * --------------------------------------------------------------------------------------- + * The following license statement only applies to this file (strl_test.c). + * --------------------------------------------------------------------------------------- + * + * Permission is hereby granted, free of charge, + * to any person obtaining a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include +#include + +#include + +int main(int argc, char *argv[]) +{ + char s[128]; + char *variable = "test1"; + char *variable2 = "test2"; + char *variable3 = "test3"; + char *variable4 = "test4"; + char *variable5 = "test5"; + char *variable6 = "test6"; + int ret = strlcpy(s, variable, sizeof(s)); + ret = strlcat(s, " : ", sizeof(s)); + ret = strlcat(s, variable2,sizeof(s)); + ret = strlcat(s, " : ", sizeof(s)); + ret = strlcat(s, variable3,sizeof(s)); + ret = strlcat(s, " : ", sizeof(s)); + ret = strlcat(s, variable4,sizeof(s)); + ret = strlcat(s, " : ", sizeof(s)); + ret = strlcat(s, variable5,sizeof(s)); + ret = strlcat(s, " : ", sizeof(s)); + ret = strlcat(s, variable6,sizeof(s)); + + fprintf(stderr, "[%d], %s\n", ret, s); + + return 0; +}