diff --git a/command.c b/command.c index a1efc824fd..b6ef5ad914 100755 --- a/command.c +++ b/command.c @@ -319,7 +319,7 @@ static bool command_read_ram(const char *arg) else { strlcpy(reply_at, " -1\n", sizeof(reply) - strlen(reply)); - command_reply(reply, reply_at + strlen(" -1\n") - reply); + command_reply(reply, reply_at + STRLEN_CONST(" -1\n") - reply); } free(reply); return true; diff --git a/core_info.c b/core_info.c index 4908ce0694..01176bac9f 100644 --- a/core_info.c +++ b/core_info.c @@ -55,10 +55,9 @@ static void core_info_list_resolve_all_extensions( (strlen(core_info_list->list[i].supported_extensions) + 2); } - all_ext_len += strlen("7z|") + strlen("zip|"); + all_ext_len += STRLEN_CONST("7z|") + STRLEN_CONST("zip|"); - if (all_ext_len) - all_ext = (char*)calloc(1, all_ext_len); + all_ext = (char*)calloc(1, all_ext_len); if (!all_ext) return; diff --git a/gfx/drivers/d3d10.c b/gfx/drivers/d3d10.c index e97ddc3dba..b0a3dbb9c5 100644 --- a/gfx/drivers/d3d10.c +++ b/gfx/drivers/d3d10.c @@ -422,7 +422,7 @@ static bool d3d10_gfx_set_shader(void* data, const char* slang_path = d3d10->shader_preset->pass[i].source.path; const char* vs_src = d3d10->shader_preset->pass[i].source.string.vertex; const char* ps_src = d3d10->shader_preset->pass[i].source.string.fragment; - int base_len = strlen(slang_path) - strlen(".slang"); + int base_len = strlen(slang_path) - STRLEN_CONST(".slang"); strlcpy(vs_path, slang_path, sizeof(vs_path)); strlcpy(ps_path, slang_path, sizeof(ps_path)); diff --git a/gfx/drivers/d3d12.c b/gfx/drivers/d3d12.c index cc68c70b54..c479177c43 100644 --- a/gfx/drivers/d3d12.c +++ b/gfx/drivers/d3d12.c @@ -433,7 +433,7 @@ static bool d3d12_gfx_set_shader(void* data, enum rarch_shader_type type, const const char* slang_path = d3d12->shader_preset->pass[i].source.path; const char* vs_src = d3d12->shader_preset->pass[i].source.string.vertex; const char* ps_src = d3d12->shader_preset->pass[i].source.string.fragment; - int base_len = strlen(slang_path) - strlen(".slang"); + int base_len = strlen(slang_path) - STRLEN_CONST(".slang"); strlcpy(vs_path, slang_path, sizeof(vs_path)); strlcpy(ps_path, slang_path, sizeof(ps_path)); diff --git a/gfx/drivers/gx2_gfx.c b/gfx/drivers/gx2_gfx.c index 671cd54ca2..5bda58f966 100644 --- a/gfx/drivers/gx2_gfx.c +++ b/gfx/drivers/gx2_gfx.c @@ -935,9 +935,11 @@ static void wiiu_gfx_update_uniform_block(wiiu_video_t *wiiu, int pass, float *u continue; } - if (!strncmp(id, "OriginalHistorySize", strlen("OriginalHistorySize"))) + if (!strncmp(id, "OriginalHistorySize", + STRLEN_CONST("OriginalHistorySize"))) { - unsigned index = strtoul(id + strlen("OriginalHistorySize"), NULL, 0); + unsigned index = strtoul(id + STRLEN_CONST("OriginalHistorySize"), + NULL, 0); if(index > pass) index = 0; @@ -952,9 +954,10 @@ static void wiiu_gfx_update_uniform_block(wiiu_video_t *wiiu, int pass, float *u continue; } - if ((pass > 0 ) && !strncmp(id, "PassOutputSize", strlen("PassOutputSize"))) + if ((pass > 0 ) && !strncmp(id, "PassOutputSize", + STRLEN_CONST("PassOutputSize"))) { - unsigned index = strtoul(id + strlen("PassOutputSize"), NULL, 0); + unsigned index = strtoul(id + STRLEN_CONST("PassOutputSize"), NULL, 0); if(index > pass - 1) index = pass - 1; GX2Surface *output = &wiiu->pass[index].texture.surface; @@ -966,9 +969,9 @@ static void wiiu_gfx_update_uniform_block(wiiu_video_t *wiiu, int pass, float *u } /* feedback not supported yet */ - if (!strncmp(id, "PassFeedbackSize", strlen("PassFeedbackSize"))) + if (!strncmp(id, "PassFeedbackSize", STRLEN_CONST("PassFeedbackSize"))) { - unsigned index = strtoul(id + strlen("PassFeedbackSize"), NULL, 0); + unsigned index = strtoul(id + STRLEN_CONST("PassFeedbackSize"), NULL, 0); if(index > wiiu->shader_preset->passes - 1) index = wiiu->shader_preset->passes - 1; GX2Surface *output = &wiiu->pass[index].texture.surface; @@ -981,8 +984,9 @@ static void wiiu_gfx_update_uniform_block(wiiu_video_t *wiiu, int pass, float *u for (int k = 0; k < wiiu->shader_preset->luts; k++) { - if (!strncmp(id, wiiu->shader_preset->lut[k].id, strlen(wiiu->shader_preset->lut[k].id)) - && !!strcmp(id + strlen(wiiu->shader_preset->lut[k].id), "Size")) + size_t lut_id_size = strlen(wiiu->shader_preset->lut[k].id); + if (!strncmp(id, wiiu->shader_preset->lut[k].id, lut_id_size) + && !!strcmp(id + lut_id_size, "Size")) { GX2Surface *surface = &wiiu->luts[k].surface; ((GX2_vec4 *)dst)->x = surface->width; @@ -1189,9 +1193,9 @@ static bool wiiu_gfx_frame(void *data, const void *frame, continue; } - if (!strncmp(wiiu->pass[i].gfd->ps->samplerVars[j].name, "OriginalHistory", strlen("OriginalHistory"))) + if (!strncmp(wiiu->pass[i].gfd->ps->samplerVars[j].name, "OriginalHistory", STRLEN_CONST("OriginalHistory"))) { - unsigned index = strtoul(wiiu->pass[i].gfd->ps->samplerVars[j].name + strlen("OriginalHistory"), NULL, 0); + unsigned index = strtoul(wiiu->pass[i].gfd->ps->samplerVars[j].name + STRLEN_CONST("OriginalHistory"), NULL, 0); if(index > i) index = 0; @@ -1207,9 +1211,9 @@ static bool wiiu_gfx_frame(void *data, const void *frame, continue; } - if ((i > 0) && !strncmp(wiiu->pass[i].gfd->ps->samplerVars[j].name, "PassOutput", strlen("PassOutput"))) + if ((i > 0) && !strncmp(wiiu->pass[i].gfd->ps->samplerVars[j].name, "PassOutput", STRLEN_CONST("PassOutput"))) { - unsigned index = strtoul(wiiu->pass[i].gfd->ps->samplerVars[j].name + strlen("PassOutput"), NULL, 0); + unsigned index = strtoul(wiiu->pass[i].gfd->ps->samplerVars[j].name + STRLEN_CONST("PassOutput"), NULL, 0); if(index > i - 1) index = i - 1; GX2SetPixelTexture(&wiiu->pass[index].texture, wiiu->pass[i].gfd->ps->samplerVars[j].location); @@ -1221,9 +1225,9 @@ static bool wiiu_gfx_frame(void *data, const void *frame, } /* feedback not supported yet */ - if (!strncmp(wiiu->pass[i].gfd->ps->samplerVars[j].name, "PassFeedback", strlen("PassFeedback"))) + if (!strncmp(wiiu->pass[i].gfd->ps->samplerVars[j].name, "PassFeedback", STRLEN_CONST("PassFeedback"))) { - unsigned index = strtoul(wiiu->pass[i].gfd->ps->samplerVars[j].name + strlen("PassFeedback"), NULL, 0); + unsigned index = strtoul(wiiu->pass[i].gfd->ps->samplerVars[j].name + STRLEN_CONST("PassFeedback"), NULL, 0); if(index > wiiu->shader_preset->passes - 1) index = wiiu->shader_preset->passes - 1; diff --git a/gfx/drivers_shader/glslang_util.cpp b/gfx/drivers_shader/glslang_util.cpp index 0ca684a982..9d5c7d046e 100644 --- a/gfx/drivers_shader/glslang_util.cpp +++ b/gfx/drivers_shader/glslang_util.cpp @@ -305,7 +305,7 @@ bool glslang_parse_meta(const vector &lines, glslang_meta *meta) return false; } - str = line_c + strlen("#pragma name "); + str = line_c + STRLEN_CONST("#pragma name "); while (*str == ' ') str++; @@ -363,7 +363,7 @@ bool glslang_parse_meta(const vector &lines, glslang_meta *meta) return false; } - str = line_c + strlen("#pragma format "); + str = line_c + STRLEN_CONST("#pragma format "); while (*str == ' ') str++; diff --git a/libretro-common/file/config_file.c b/libretro-common/file/config_file.c index 42f77eeeb8..f581fa9df0 100644 --- a/libretro-common/file/config_file.c +++ b/libretro-common/file/config_file.c @@ -341,7 +341,7 @@ static bool parse_line(config_file_t *conf, comment++; if (strstr(comment, "include ") == comment) { - char *line = comment + strlen("include "); + char *line = comment + STRLEN_CONST("include "); char *path = extract_value(line, false); if (!path) @@ -1026,7 +1026,7 @@ void config_file_dump_orbis(config_file_t *conf, int fd) { char cad[256]; sprintf(cad,"#include %s\n", includes->path); - orbisWrite(fd,cad,strlen(cad)); + orbisWrite(fd, cad, strlen(cad)); includes = includes->next; } @@ -1039,7 +1039,7 @@ void config_file_dump_orbis(config_file_t *conf, int fd) { char newlist[256]; sprintf(newlist,"%s = %s\n", list->key, list->value); - orbisWrite(fd,newlist,strlen(newlist)); + orbisWrite(fd, newlist, strlen(newlist)); } list = list->next; } diff --git a/libretro-common/formats/xml/rxml.c b/libretro-common/formats/xml/rxml.c index 430d51ceb1..0b60faa1f2 100644 --- a/libretro-common/formats/xml/rxml.c +++ b/libretro-common/formats/xml/rxml.c @@ -308,7 +308,7 @@ static struct rxml_node *rxml_parse_node(const char **ptr_) } node->data = strdup_range(cdata_start + - strlen("data = strdup_range(closing + 1, closing_start); @@ -404,7 +404,7 @@ static char *purge_xml_comments(const char *str) memcpy(copy_dest, copy_src, copy_len); copy_dest += copy_len; - copy_src = comment_end + strlen("-->"); + copy_src = comment_end + STRLEN_CONST("-->"); } /* Avoid strcpy() as OpenBSD is anal and hates you diff --git a/libretro-common/include/string/stdstring.h b/libretro-common/include/string/stdstring.h index 0348018264..7ddaa1ac14 100644 --- a/libretro-common/include/string/stdstring.h +++ b/libretro-common/include/string/stdstring.h @@ -45,6 +45,8 @@ static INLINE bool string_is_equal(const char *a, const char *b) return (a && b) ? !strcmp(a, b) : false; } +#define STRLEN_CONST(x) ((sizeof((x))-1)) + #define string_is_not_equal(a, b) !string_is_equal((a), (b)) #define string_add_pair_open(s, size) strlcat((s), " (", (size)) diff --git a/libretro-common/net/net_http.c b/libretro-common/net/net_http.c index fef8400012..eea5a8c195 100644 --- a/libretro-common/net/net_http.c +++ b/libretro-common/net/net_http.c @@ -106,9 +106,9 @@ void urlencode_lut_init(void) caller is responsible for deleting the destination buffer */ void net_http_urlencode(char **dest, const char *source) { - char *enc = NULL; + char *enc = NULL; /* Assume every character will be encoded, so we need 3 times the space. */ - size_t len = strlen(source) * 3 + 1; + size_t len = strlen(source) * 3 + 1; size_t count = len; if (!urlencode_lut_inited) @@ -189,7 +189,8 @@ static int net_http_new_socket(struct http_connection_t *conn) #ifdef HAVE_SSL if (conn->sock_state.ssl) { - ret = ssl_socket_connect(conn->sock_state.ssl_ctx, (void*)next_addr, true, true); + ret = ssl_socket_connect(conn->sock_state.ssl_ctx, + (void*)next_addr, true, true); if (ret >= 0) break; @@ -218,20 +219,25 @@ static int net_http_new_socket(struct http_connection_t *conn) return fd; } -static void net_http_send_str(struct http_socket_state_t *sock_state, bool *error, const char *text) +static void net_http_send_str( + struct http_socket_state_t *sock_state, bool *error, const char *text) { + size_t text_size; if (*error) return; + text_size = strlen(text); #ifdef HAVE_SSL if (sock_state->ssl) { - if (!ssl_socket_send_all_blocking(sock_state->ssl_ctx, text, strlen(text), true)) + if (!ssl_socket_send_all_blocking( + sock_state->ssl_ctx, text, text_size, true)) *error = true; } else #endif { - if (!socket_send_all_blocking(sock_state->fd, text, strlen(text), true)) + if (!socket_send_all_blocking( + sock_state->fd, text, text_size, true)) *error = true; } } @@ -239,10 +245,10 @@ static void net_http_send_str(struct http_socket_state_t *sock_state, bool *erro struct http_connection_t *net_http_connection_new(const char *url, const char *method, const char *data) { - char **domain = NULL; + bool error = false; + char **domain = NULL; struct http_connection_t *conn = (struct http_connection_t*)calloc(1, sizeof(*conn)); - bool error = false; if (!conn) return NULL; @@ -261,11 +267,11 @@ struct http_connection_t *net_http_connection_new(const char *url, if (!conn->urlcopy) goto error; - if (!strncmp(url, "http://", strlen("http://"))) - conn->scan = conn->urlcopy + strlen("http://"); - else if (!strncmp(url, "https://", strlen("https://"))) + if (!strncmp(url, "http://", STRLEN_CONST("http://"))) + conn->scan = conn->urlcopy + STRLEN_CONST("http://"); + else if (!strncmp(url, "https://", STRLEN_CONST("https://"))) { - conn->scan = conn->urlcopy + strlen("https://"); + conn->scan = conn->urlcopy + STRLEN_CONST("https://"); conn->sock_state.ssl = true; } else @@ -566,19 +572,20 @@ bool net_http_update(struct http_t *state, size_t* progress, size_t* total) if (state->part == P_HEADER_TOP) { - if (strncmp(state->data, "HTTP/1.", strlen("HTTP/1."))!=0) + if (strncmp(state->data, "HTTP/1.", STRLEN_CONST("HTTP/1."))!=0) goto fail; - state->status = (int)strtoul(state->data + strlen("HTTP/1.1 "), NULL, 10); + state->status = (int)strtoul(state->data + + STRLEN_CONST("HTTP/1.1 "), NULL, 10); state->part = P_HEADER; } else { if (!strncmp(state->data, "Content-Length: ", - strlen("Content-Length: "))) + STRLEN_CONST("Content-Length: "))) { state->bodytype = T_LEN; state->len = strtol(state->data + - strlen("Content-Length: "), NULL, 10); + STRLEN_CONST("Content-Length: "), NULL, 10); } if (string_is_equal(state->data, "Transfer-Encoding: chunked")) state->bodytype = T_CHUNK; diff --git a/libretro-db/libretrodb.c b/libretro-db/libretrodb.c index 3a959dc7f2..e0a4722a59 100644 --- a/libretro-db/libretrodb.c +++ b/libretro-db/libretrodb.c @@ -98,7 +98,7 @@ static int libretrodb_read_metadata(RFILE *fd, libretrodb_metadata_t *md) static int libretrodb_write_metadata(RFILE *fd, libretrodb_metadata_t *md) { rmsgpack_write_map_header(fd, 1); - rmsgpack_write_string(fd, "count", strlen("count")); + rmsgpack_write_string(fd, "count", STRLEN_CONST("count")); return rmsgpack_write_uint(fd, md->count); } @@ -196,11 +196,11 @@ static int libretrodb_read_index_header(RFILE *fd, libretrodb_index_t *idx) static void libretrodb_write_index_header(RFILE *fd, libretrodb_index_t *idx) { rmsgpack_write_map_header(fd, 3); - rmsgpack_write_string(fd, "name", strlen("name")); + rmsgpack_write_string(fd, "name", STRLEN_CONST("name")); rmsgpack_write_string(fd, idx->name, (uint32_t)strlen(idx->name)); - rmsgpack_write_string(fd, "key_size", (uint32_t)strlen("key_size")); + rmsgpack_write_string(fd, "key_size", (uint32_t)STRLEN_CONST("key_size")); rmsgpack_write_uint(fd, idx->key_size); - rmsgpack_write_string(fd, "next", strlen("next")); + rmsgpack_write_string(fd, "next", STRLEN_CONST("next")); rmsgpack_write_uint(fd, idx->next); } diff --git a/libretro-db/query.c b/libretro-db/query.c index 6bcb0e2f7a..4ec54ffc0a 100644 --- a/libretro-db/query.c +++ b/libretro-db/query.c @@ -32,6 +32,7 @@ #include #include +#include #include "libretrodb.h" #include "query.h" @@ -408,13 +409,14 @@ static struct buffer query_expect_eof(struct buffer buff, const char ** error) static int query_peek(struct buffer buff, const char * data) { - size_t remain = buff.len - buff.offset; + size_t remain = buff.len - buff.offset; + size_t size_data = strlen(data); - if (remain < strlen(data)) + if (remain < size_data) return 0; return (strncmp(buff.data + buff.offset, - data, strlen(data)) == 0); + data, size_data) == 0); } static int query_is_eot(struct buffer buff) @@ -526,20 +528,20 @@ static struct buffer query_parse_value(struct buffer buff, if (query_peek(buff, "nil")) { - buff.offset += strlen("nil"); - value->type = RDT_NULL; + buff.offset += STRLEN_CONST("nil"); + value->type = RDT_NULL; } else if (query_peek(buff, "true")) { - buff.offset += strlen("true"); - value->type = RDT_BOOL; - value->val.bool_ = 1; + buff.offset += STRLEN_CONST("true"); + value->type = RDT_BOOL; + value->val.bool_ = 1; } else if (query_peek(buff, "false")) { - buff.offset += strlen("false"); - value->type = RDT_BOOL; - value->val.bool_ = 0; + buff.offset += STRLEN_CONST("false"); + value->type = RDT_BOOL; + value->val.bool_ = 0; } else if (query_peek(buff, "b") || query_peek(buff, "\"") || query_peek(buff, "'")) buff = query_parse_string(buff, value, error); diff --git a/menu/widgets/menu_widgets.c b/menu/widgets/menu_widgets.c index 305f733da4..8c096347ec 100644 --- a/menu/widgets/menu_widgets.c +++ b/menu/widgets/menu_widgets.c @@ -1006,13 +1006,9 @@ static void menu_widgets_draw_task_msg(menu_widget_msg_t *msg, video_frame_info_ if (msg->task_finished) { if (msg->task_error) - { snprintf(task_percentage, sizeof(task_percentage), "Task failed"); - } else - { snprintf(task_percentage, sizeof(task_percentage), " "); - } } else if (msg->task_progress >= 0 && msg->task_progress <= 100) { diff --git a/playlist.c b/playlist.c index 690cdbd9d1..fda15dd82d 100644 --- a/playlist.c +++ b/playlist.c @@ -746,14 +746,17 @@ void playlist_write_runtime_file(playlist_t *playlist) JSON_Writer_WriteStartObject(context.writer); JSON_Writer_WriteNewLine(context.writer); JSON_Writer_WriteSpace(context.writer, 2); - JSON_Writer_WriteString(context.writer, "version", strlen("version"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "version", + STRLEN_CONST("version"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); - JSON_Writer_WriteString(context.writer, "1.0", strlen("1.0"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "1.0", + STRLEN_CONST("1.0"), JSON_UTF8); JSON_Writer_WriteComma(context.writer); JSON_Writer_WriteNewLine(context.writer); JSON_Writer_WriteSpace(context.writer, 2); - JSON_Writer_WriteString(context.writer, "items", strlen("items"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "items", + STRLEN_CONST("items"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); JSON_Writer_WriteStartArray(context.writer); @@ -766,18 +769,28 @@ void playlist_write_runtime_file(playlist_t *playlist) JSON_Writer_WriteNewLine(context.writer); JSON_Writer_WriteSpace(context.writer, 6); - JSON_Writer_WriteString(context.writer, "path", strlen("path"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "path", + STRLEN_CONST("path"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); - JSON_Writer_WriteString(context.writer, playlist->entries[i].path ? playlist->entries[i].path : "", playlist->entries[i].path ? strlen(playlist->entries[i].path) : 0, JSON_UTF8); + JSON_Writer_WriteString(context.writer, + playlist->entries[i].path + ? playlist->entries[i].path + : "", + playlist->entries[i].path + ? strlen(playlist->entries[i].path) + : 0, + JSON_UTF8); JSON_Writer_WriteComma(context.writer); JSON_Writer_WriteNewLine(context.writer); JSON_Writer_WriteSpace(context.writer, 6); - JSON_Writer_WriteString(context.writer, "core_path", strlen("core_path"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "core_path", + STRLEN_CONST("core_path"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); - JSON_Writer_WriteString(context.writer, playlist->entries[i].core_path, strlen(playlist->entries[i].core_path), JSON_UTF8); + JSON_Writer_WriteString(context.writer, playlist->entries[i].core_path, + strlen(playlist->entries[i].core_path), JSON_UTF8); JSON_Writer_WriteComma(context.writer); JSON_Writer_WriteNewLine(context.writer); @@ -787,7 +800,8 @@ void playlist_write_runtime_file(playlist_t *playlist) snprintf(tmp, sizeof(tmp), "%u", playlist->entries[i].runtime_hours); JSON_Writer_WriteSpace(context.writer, 6); - JSON_Writer_WriteString(context.writer, "runtime_hours", strlen("runtime_hours"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "runtime_hours", + STRLEN_CONST("runtime_hours"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); JSON_Writer_WriteNumber(context.writer, tmp, strlen(tmp), JSON_UTF8); @@ -799,7 +813,8 @@ void playlist_write_runtime_file(playlist_t *playlist) snprintf(tmp, sizeof(tmp), "%u", playlist->entries[i].runtime_minutes); JSON_Writer_WriteSpace(context.writer, 6); - JSON_Writer_WriteString(context.writer, "runtime_minutes", strlen("runtime_minutes"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "runtime_minutes", + STRLEN_CONST("runtime_minutes"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); JSON_Writer_WriteNumber(context.writer, tmp, strlen(tmp), JSON_UTF8); @@ -811,7 +826,8 @@ void playlist_write_runtime_file(playlist_t *playlist) snprintf(tmp, sizeof(tmp), "%u", playlist->entries[i].runtime_seconds); JSON_Writer_WriteSpace(context.writer, 6); - JSON_Writer_WriteString(context.writer, "runtime_seconds", strlen("runtime_seconds"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "runtime_seconds", + STRLEN_CONST("runtime_seconds"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); JSON_Writer_WriteNumber(context.writer, tmp, strlen(tmp), JSON_UTF8); @@ -823,7 +839,8 @@ void playlist_write_runtime_file(playlist_t *playlist) snprintf(tmp, sizeof(tmp), "%u", playlist->entries[i].last_played_year); JSON_Writer_WriteSpace(context.writer, 6); - JSON_Writer_WriteString(context.writer, "last_played_year", strlen("last_played_year"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "last_played_year", + STRLEN_CONST("last_played_year"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); JSON_Writer_WriteNumber(context.writer, tmp, strlen(tmp), JSON_UTF8); @@ -835,7 +852,8 @@ void playlist_write_runtime_file(playlist_t *playlist) snprintf(tmp, sizeof(tmp), "%u", playlist->entries[i].last_played_month); JSON_Writer_WriteSpace(context.writer, 6); - JSON_Writer_WriteString(context.writer, "last_played_month", strlen("last_played_month"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "last_played_month", + STRLEN_CONST("last_played_month"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); JSON_Writer_WriteNumber(context.writer, tmp, strlen(tmp), JSON_UTF8); @@ -847,10 +865,12 @@ void playlist_write_runtime_file(playlist_t *playlist) snprintf(tmp, sizeof(tmp), "%u", playlist->entries[i].last_played_day); JSON_Writer_WriteSpace(context.writer, 6); - JSON_Writer_WriteString(context.writer, "last_played_day", strlen("last_played_day"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "last_played_day", + STRLEN_CONST("last_played_day"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); - JSON_Writer_WriteNumber(context.writer, tmp, strlen(tmp), JSON_UTF8); + JSON_Writer_WriteNumber(context.writer, tmp, + strlen(tmp), JSON_UTF8); JSON_Writer_WriteComma(context.writer); JSON_Writer_WriteNewLine(context.writer); @@ -859,7 +879,8 @@ void playlist_write_runtime_file(playlist_t *playlist) snprintf(tmp, sizeof(tmp), "%u", playlist->entries[i].last_played_hour); JSON_Writer_WriteSpace(context.writer, 6); - JSON_Writer_WriteString(context.writer, "last_played_hour", strlen("last_played_hour"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "last_played_hour", + STRLEN_CONST("last_played_hour"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); JSON_Writer_WriteNumber(context.writer, tmp, strlen(tmp), JSON_UTF8); @@ -871,7 +892,8 @@ void playlist_write_runtime_file(playlist_t *playlist) snprintf(tmp, sizeof(tmp), "%u", playlist->entries[i].last_played_minute); JSON_Writer_WriteSpace(context.writer, 6); - JSON_Writer_WriteString(context.writer, "last_played_minute", strlen("last_played_minute"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "last_played_minute", + STRLEN_CONST("last_played_minute"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); JSON_Writer_WriteNumber(context.writer, tmp, strlen(tmp), JSON_UTF8); @@ -883,10 +905,12 @@ void playlist_write_runtime_file(playlist_t *playlist) snprintf(tmp, sizeof(tmp), "%u", playlist->entries[i].last_played_second); JSON_Writer_WriteSpace(context.writer, 6); - JSON_Writer_WriteString(context.writer, "last_played_second", strlen("last_played_second"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "last_played_second", + STRLEN_CONST("last_played_second"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); - JSON_Writer_WriteNumber(context.writer, tmp, strlen(tmp), JSON_UTF8); + JSON_Writer_WriteNumber(context.writer, tmp, + strlen(tmp), JSON_UTF8); JSON_Writer_WriteNewLine(context.writer); } @@ -962,14 +986,17 @@ void playlist_write_file(playlist_t *playlist) JSON_Writer_WriteStartObject(context.writer); JSON_Writer_WriteNewLine(context.writer); JSON_Writer_WriteSpace(context.writer, 2); - JSON_Writer_WriteString(context.writer, "version", strlen("version"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "version", + STRLEN_CONST("version"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); - JSON_Writer_WriteString(context.writer, "1.0", strlen("1.0"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "1.0", + STRLEN_CONST("1.0"), JSON_UTF8); JSON_Writer_WriteComma(context.writer); JSON_Writer_WriteNewLine(context.writer); JSON_Writer_WriteSpace(context.writer, 2); - JSON_Writer_WriteString(context.writer, "items", strlen("items"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "items", + STRLEN_CONST("items"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); JSON_Writer_WriteStartArray(context.writer); @@ -982,60 +1009,97 @@ void playlist_write_file(playlist_t *playlist) JSON_Writer_WriteNewLine(context.writer); JSON_Writer_WriteSpace(context.writer, 6); - JSON_Writer_WriteString(context.writer, "path", strlen("path"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "path", + STRLEN_CONST("path"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); - JSON_Writer_WriteString(context.writer, playlist->entries[i].path ? playlist->entries[i].path : "", playlist->entries[i].path ? strlen(playlist->entries[i].path) : 0, JSON_UTF8); + JSON_Writer_WriteString(context.writer, + playlist->entries[i].path + ? playlist->entries[i].path + : "", + playlist->entries[i].path + ? strlen(playlist->entries[i].path) + : 0, + JSON_UTF8); JSON_Writer_WriteComma(context.writer); JSON_Writer_WriteNewLine(context.writer); JSON_Writer_WriteSpace(context.writer, 6); - JSON_Writer_WriteString(context.writer, "label", strlen("label"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "label", + STRLEN_CONST("label"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); - JSON_Writer_WriteString(context.writer, playlist->entries[i].label ? playlist->entries[i].label : "", playlist->entries[i].label ? strlen(playlist->entries[i].label) : 0, JSON_UTF8); + JSON_Writer_WriteString(context.writer, + playlist->entries[i].label + ? playlist->entries[i].label + : "", + playlist->entries[i].label + ? strlen(playlist->entries[i].label) + : 0, + JSON_UTF8); JSON_Writer_WriteComma(context.writer); JSON_Writer_WriteNewLine(context.writer); JSON_Writer_WriteSpace(context.writer, 6); - JSON_Writer_WriteString(context.writer, "core_path", strlen("core_path"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "core_path", + STRLEN_CONST("core_path"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); - JSON_Writer_WriteString(context.writer, playlist->entries[i].core_path, strlen(playlist->entries[i].core_path), JSON_UTF8); + JSON_Writer_WriteString(context.writer, + playlist->entries[i].core_path, + strlen(playlist->entries[i].core_path), JSON_UTF8); JSON_Writer_WriteComma(context.writer); JSON_Writer_WriteNewLine(context.writer); JSON_Writer_WriteSpace(context.writer, 6); - JSON_Writer_WriteString(context.writer, "core_name", strlen("core_name"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "core_name", + STRLEN_CONST("core_name"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); - JSON_Writer_WriteString(context.writer, playlist->entries[i].core_name, strlen(playlist->entries[i].core_name), JSON_UTF8); + JSON_Writer_WriteString(context.writer, + playlist->entries[i].core_name, + strlen(playlist->entries[i].core_name), JSON_UTF8); JSON_Writer_WriteComma(context.writer); JSON_Writer_WriteNewLine(context.writer); JSON_Writer_WriteSpace(context.writer, 6); - JSON_Writer_WriteString(context.writer, "crc32", strlen("crc32"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "crc32", + STRLEN_CONST("crc32"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); - JSON_Writer_WriteString(context.writer, playlist->entries[i].crc32 ? playlist->entries[i].crc32 : "", playlist->entries[i].crc32 ? strlen(playlist->entries[i].crc32) : 0, JSON_UTF8); + JSON_Writer_WriteString(context.writer, playlist->entries[i].crc32 ? playlist->entries[i].crc32 : "", + playlist->entries[i].crc32 + ? strlen(playlist->entries[i].crc32) + : 0, + JSON_UTF8); JSON_Writer_WriteComma(context.writer); JSON_Writer_WriteNewLine(context.writer); JSON_Writer_WriteSpace(context.writer, 6); - JSON_Writer_WriteString(context.writer, "db_name", strlen("db_name"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "db_name", + STRLEN_CONST("db_name"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); - JSON_Writer_WriteString(context.writer, playlist->entries[i].db_name ? playlist->entries[i].db_name : "", playlist->entries[i].db_name ? strlen(playlist->entries[i].db_name) : 0, JSON_UTF8); + JSON_Writer_WriteString(context.writer, playlist->entries[i].db_name ? playlist->entries[i].db_name : "", + playlist->entries[i].db_name + ? strlen(playlist->entries[i].db_name) + : 0, + JSON_UTF8); if (!string_is_empty(playlist->entries[i].subsystem_ident)) { JSON_Writer_WriteComma(context.writer); JSON_Writer_WriteNewLine(context.writer); JSON_Writer_WriteSpace(context.writer, 6); - JSON_Writer_WriteString(context.writer, "subsystem_ident", strlen("subsystem_ident"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "subsystem_ident", + STRLEN_CONST("subsystem_ident"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); - JSON_Writer_WriteString(context.writer, playlist->entries[i].subsystem_ident ? playlist->entries[i].subsystem_ident : "", playlist->entries[i].subsystem_ident ? strlen(playlist->entries[i].subsystem_ident) : 0, JSON_UTF8); + JSON_Writer_WriteString(context.writer, playlist->entries[i].subsystem_ident ? playlist->entries[i].subsystem_ident : "", + playlist->entries[i].subsystem_ident + ? strlen(playlist->entries[i].subsystem_ident) + : 0, + JSON_UTF8); } if (!string_is_empty(playlist->entries[i].subsystem_name)) @@ -1043,20 +1107,29 @@ void playlist_write_file(playlist_t *playlist) JSON_Writer_WriteComma(context.writer); JSON_Writer_WriteNewLine(context.writer); JSON_Writer_WriteSpace(context.writer, 6); - JSON_Writer_WriteString(context.writer, "subsystem_name", strlen("subsystem_name"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "subsystem_name", + STRLEN_CONST("subsystem_name"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); - JSON_Writer_WriteString(context.writer, playlist->entries[i].subsystem_name ? playlist->entries[i].subsystem_name : "", playlist->entries[i].subsystem_name ? strlen(playlist->entries[i].subsystem_name) : 0, JSON_UTF8); + JSON_Writer_WriteString(context.writer, + playlist->entries[i].subsystem_name + ? playlist->entries[i].subsystem_name + : "", + playlist->entries[i].subsystem_name + ? strlen(playlist->entries[i].subsystem_name) + : 0, JSON_UTF8); } - if (playlist->entries[i].subsystem_roms && playlist->entries[i].subsystem_roms->size > 0) + if ( playlist->entries[i].subsystem_roms && + playlist->entries[i].subsystem_roms->size > 0) { unsigned j; JSON_Writer_WriteComma(context.writer); JSON_Writer_WriteNewLine(context.writer); JSON_Writer_WriteSpace(context.writer, 6); - JSON_Writer_WriteString(context.writer, "subsystem_roms", strlen("subsystem_roms"), JSON_UTF8); + JSON_Writer_WriteString(context.writer, "subsystem_roms", + STRLEN_CONST("subsystem_roms"), JSON_UTF8); JSON_Writer_WriteColon(context.writer); JSON_Writer_WriteSpace(context.writer, 1); JSON_Writer_WriteStartArray(context.writer); @@ -1066,7 +1139,14 @@ void playlist_write_file(playlist_t *playlist) { const struct string_list *roms = playlist->entries[i].subsystem_roms; JSON_Writer_WriteSpace(context.writer, 8); - JSON_Writer_WriteString(context.writer, !string_is_empty(roms->elems[j].data) ? roms->elems[j].data : "", !string_is_empty(roms->elems[j].data) ? strlen(roms->elems[j].data) : 0, JSON_UTF8); + JSON_Writer_WriteString(context.writer, + !string_is_empty(roms->elems[j].data) + ? roms->elems[j].data + : "", + !string_is_empty(roms->elems[j].data) + ? strlen(roms->elems[j].data) + : 0, + JSON_UTF8); if (j < playlist->entries[i].subsystem_roms->size - 1) { diff --git a/record/drivers/record_ffmpeg.c b/record/drivers/record_ffmpeg.c index db4d21bc05..b9ac661691 100644 --- a/record/drivers/record_ffmpeg.c +++ b/record/drivers/record_ffmpeg.c @@ -29,6 +29,7 @@ #include #include #include