libc: move strncpy to core
rockbox-gerrit-noreply--- via rockbox-cvs <[email protected]> Fri, 15 May 2026 10:04:13 -0400
| Newsgroups | gmane.comp.systems.archos.rockbox.cvs |
|---|---|
| Message-ID | <[email protected]> |
commit 5951f6e5e9c9f0174c420b3f0df8b2c61e6a7c00 Author: Skye <[email protected]> Date: Fri May 1 11:20:11 2026 +0900 libc: move strncpy to core Change-Id: If005a0305cedbab85905536238d0f799f19213e1 diff --git a/apps/plugin.c b/apps/plugin.c index 6c689b21e6..98aa34c924 100644 --- a/apps/plugin.c +++ b/apps/plugin.c @@ -875,6 +875,7 @@ static const struct plugin_api rockbox_api = { gui_synclist_scroll_stop, add_event_ex, remove_event_ex, + strncpy, }; static int plugin_buffer_handle; diff --git a/apps/plugin.h b/apps/plugin.h index 50fe1508ab..d20857302d 100644 --- a/apps/plugin.h +++ b/apps/plugin.h @@ -62,7 +62,6 @@ #define splash(__ticks, __str) splashf(__ticks, __str) -char* strncpy(char *, const char *, size_t); void* plugin_get_buffer(size_t *buffer_size); size_t plugin_reserve_buffer(size_t buffer_size); int plugin_open(const char *plugin, const char *parameter); @@ -1038,6 +1037,7 @@ struct plugin_api { void *event_data, void *user_data), void *user_data); + char* (*strncpy)(char * dst, const char * src, size_t count); }; /* plugin header */ diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c index 27bb4bb438..6f187b4f89 100644 --- a/apps/plugins/calculator.c +++ b/apps/plugins/calculator.c @@ -1119,7 +1119,7 @@ static void transcendFunc(char* func, double* tt, int* ttPower) /* Save current function context */ char original_func[3]; - strncpy(original_func, func, 3); + rb->strncpy(original_func, func, 3); transcendFunc("asin", &arcsin_input, &arcsin_power); diff --git a/apps/plugins/doom/rockmacros.h b/apps/plugins/doom/rockmacros.h index c749382952..aced29d3b8 100644 --- a/apps/plugins/doom/rockmacros.h +++ b/apps/plugins/doom/rockmacros.h @@ -76,6 +76,8 @@ int my_close(int id); #define strcmp(a,b) rb->strcmp((a),(b)) #undef strncmp #define strncmp(a,b,c) rb->strncmp((a),(b),(c)) +#undef strncpy +#define strncpy(a,b,c) rb->strncpy((a),(b),(c)) #undef strchr #define strchr(a,b) rb->strchr((a),(b)) #undef strrchr diff --git a/apps/plugins/lib/SOURCES b/apps/plugins/lib/SOURCES index 06adb04426..84495d8585 100644 --- a/apps/plugins/lib/SOURCES +++ b/apps/plugins/lib/SOURCES @@ -15,7 +15,6 @@ highscore.c simple_viewer.c display_text.c printcell_helper.c -strncpy.c stdio_compat.c #if (LCD_DEPTH < 4) diff --git a/apps/plugins/lua/rockconf.h b/apps/plugins/lua/rockconf.h index 15d3f16106..0cd3cbc639 100644 --- a/apps/plugins/lua/rockconf.h +++ b/apps/plugins/lua/rockconf.h @@ -66,6 +66,7 @@ int splash_scroller(int timeout, const char* str); #define strcmp rb->strcmp #define strcpy rb->strcpy #define strlen rb->strlen +#define strncpy rb->strncpy #define strtol rb->strtol #define strtoul rb->strtoul #define strstr rb->strstr diff --git a/apps/plugins/mikmod/mikmod_supp.h b/apps/plugins/mikmod/mikmod_supp.h index aa4ede6873..f7d8d26d2a 100644 --- a/apps/plugins/mikmod/mikmod_supp.h +++ b/apps/plugins/mikmod/mikmod_supp.h @@ -29,6 +29,8 @@ #define strcat(a,b) rb->strcat(a,b) #undef strncmp #define strncmp(a,b,c) rb->strncmp(a,b,c) +#undef strncpy +#define strncpy(a,b,c) rb->strncpy(a,b,c) #undef strcasecmp #define strcasecmp(a,b) rb->strcasecmp(a,b) #undef strstr diff --git a/apps/plugins/puzzles/rbcompat.h b/apps/plugins/puzzles/rbcompat.h index c438a6e110..2b146e72d1 100644 --- a/apps/plugins/puzzles/rbcompat.h +++ b/apps/plugins/puzzles/rbcompat.h @@ -65,6 +65,7 @@ double acos_wrapper(double x); #define strcmp rb->strcmp #define strcpy rb->strcpy #define strlen rb->strlen +#define strncpy rb->strncpy #define strtol rb->strtol #define strtoq strtoq_wrapper #define strtouq strtouq_wrapper diff --git a/apps/plugins/sdl/include/SDL_config_rockbox.h b/apps/plugins/sdl/include/SDL_config_rockbox.h index 5a88378b89..542aeb535c 100644 --- a/apps/plugins/sdl/include/SDL_config_rockbox.h +++ b/apps/plugins/sdl/include/SDL_config_rockbox.h @@ -169,6 +169,7 @@ #define strncat rb->strlcat /* hack */ #endif #define strncmp rb->strncmp +#define strncpy rb->strncpy #ifndef strncat #define strpbrk strpbrk_wrapper #endif diff --git a/apps/plugins/sdl/progs/duke3d/Game/src/cvars.c b/apps/plugins/sdl/progs/duke3d/Game/src/cvars.c index db9ede288b..71b761cee9 100644 --- a/apps/plugins/sdl/progs/duke3d/Game/src/cvars.c +++ b/apps/plugins/sdl/progs/duke3d/Game/src/cvars.c @@ -1,3 +1,4 @@ +#include "duke3d.h" #include "cvars.h" #include "cvar_defs.h" #include <stdlib.h> diff --git a/apps/plugins/xworld/engine.c b/apps/plugins/xworld/engine.c index d99d9df6c6..0aa5f72118 100644 --- a/apps/plugins/xworld/engine.c +++ b/apps/plugins/xworld/engine.c @@ -325,7 +325,7 @@ void engine_saveGameState(struct Engine* e, uint8_t slot, const char *desc) { file_writeUint16BE(&f, CUR_VER); file_writeUint16BE(&f, 0); char hdrdesc[32]; - strncpy(hdrdesc, desc, sizeof(hdrdesc) - 1); + rb->strncpy(hdrdesc, desc, sizeof(hdrdesc) - 1); file_write(&f, hdrdesc, sizeof(hdrdesc)); /* contents */ struct Serializer s; diff --git a/firmware/SOURCES b/firmware/SOURCES index b80dc1a272..3bcdefbddc 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES @@ -356,6 +356,7 @@ libc/strcmp.c libc/strcpy.c libc/strcspn.c libc/strncmp.c +libc/strncpy.c libc/strrchr.c libc/strstr.c libc/mktime.c diff --git a/firmware/libc/include/string.h b/firmware/libc/include/string.h index 6217fff15c..0c5180ce44 100644 --- a/firmware/libc/include/string.h +++ b/firmware/libc/include/string.h @@ -34,6 +34,7 @@ char *_EXFUN(strerror,(int)); size_t _EXFUN(strlen,(const char *)); char *_EXFUN(strncat,(char *, const char *, size_t)); int _EXFUN(strncmp,(const char *, const char *, size_t)); +char *_EXFUN(strncpy, (char *, const char *, size_t)); char *_EXFUN(strpbrk,(const char *, const char *)); char *_EXFUN(strrchr,(const char *, int)); size_t _EXFUN(strspn,(const char *, const char *)); diff --git a/apps/plugins/lib/strncpy.c b/firmware/libc/strncpy.c similarity index 100% rename from apps/plugins/lib/strncpy.c rename to firmware/libc/strncpy.c -- rockbox-cvs mailing list [email protected] https://lists.haxx.se/mailman/listinfo/rockbox-cvs