diff --git a/deps/SPIRV-Cross b/deps/SPIRV-Cross index cc207e32c8..875c32fd39 160000 --- a/deps/SPIRV-Cross +++ b/deps/SPIRV-Cross @@ -1 +1 @@ -Subproject commit cc207e32c8668bfe5a5cc514394e7df8f020ecf6 +Subproject commit 875c32fd39a06f624814effe5eab691b078429f5 diff --git a/deps/glslang/glslang b/deps/glslang/glslang index b56f4ac72c..be8462149a 160000 --- a/deps/glslang/glslang +++ b/deps/glslang/glslang @@ -1 +1 @@ -Subproject commit b56f4ac72c57f5c50f14ddb0bf1f78eaaef21c2b +Subproject commit be8462149a3c150fc89db84e57ef06de3ab90d47 diff --git a/libretro-common/include/net/net_http_parse.h b/libretro-common/include/net/net_http_parse.h new file mode 100644 index 0000000000..a9c65d4d5b --- /dev/null +++ b/libretro-common/include/net/net_http_parse.h @@ -0,0 +1,53 @@ +/* Copyright (C) 2010-2016 The RetroArch team + * + * --------------------------------------------------------------------------------------- + * The following license statement only applies to this file (net_http.h). + * --------------------------------------------------------------------------------------- + * + * 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. + */ + +#ifndef _LIBRETRO_SDK_NET_HTTP_PARSE_H +#define _LIBRETRO_SDK_NET_HTTP_PARSE_H + +#include +#include +#include + +#include + +RETRO_BEGIN_DECLS + +/** + * string_parse_html_anchor: + * @line : Buffer where the tag is stored + * @link : Buffer to store the link URL in + * @name : Buffer to store the link URL in + * @link_size : Size of the link buffer including the NUL-terminator + * @name_size : Size of the name buffer including the NUL-terminator + * + * Parses an HTML anchor link stored in @line in the form of: Title + * The buffer pointed to by @link is filled with the URL path the link points to, + * and @name is filled with the title portion of the link. + * + * Returns: 0 if URL was parsed completely, otherwise 1. + **/ +int string_parse_html_anchor(const char *line, char *link, char *name, + size_t link_size, size_t name_size); + +RETRO_END_DECLS + +#endif diff --git a/libretro-common/net/net_http_parse.c b/libretro-common/net/net_http_parse.c new file mode 100644 index 0000000000..f424fa90b8 --- /dev/null +++ b/libretro-common/net/net_http_parse.c @@ -0,0 +1,99 @@ +/* Copyright (C) 2010-2016 The RetroArch team + * + * --------------------------------------------------------------------------------------- + * The following license statement only applies to this file (net_http_parse.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 + +/** + * string_parse_html_anchor: + * @line : Buffer where the tag is stored + * @link : Buffer to store the link URL in + * @name : Buffer to store the link URL in + * @link_size : Size of the link buffer including the NUL-terminator + * @name_size : Size of the name buffer including the NUL-terminator + * + * Parses an HTML anchor link stored in @line in the form of: Title + * The buffer pointed to by @link is filled with the URL path the link points to, + * and @name is filled with the title portion of the link. + * + * Returns: 0 if URL was parsed completely, otherwise 1. + **/ +int string_parse_html_anchor(const char *line, char *link, char *name, + size_t link_size, size_t name_size) +{ + if (!line || !link || !name) + return 1; + + memset(link, 0, link_size); + memset(name, 0, name_size); + + if(!(line = strcasestr(line, ""); + char *end = strstr(start, ""); + + if (!start || !end) + return 1; + + memcpy(name, start + 2, end - start - 2); + + *(name + (end - start - 2)) = '\0'; + } + } + + return 0; +} + +#ifndef RARCH_INTERNAL +int main(int argc, char *argv[]) +{ + const char *line = "Test\n"; + char link[1024] = {0}; + char name[1024] = {0}; + + string_parse_html_anchor(line, link, name, sizeof(link), sizeof(name)); + + printf("link: %s\nname: %s\n", link, name); + + return 1; +} +#endif