diff --git a/src/core.c b/src/core.c index 5f12fb72..da286923 100644 --- a/src/core.c +++ b/src/core.c @@ -1819,6 +1819,27 @@ int StorageLoadValue(int position) return value; } +// Open URL with default system browser (if available) +void OpenURL(const char *url) +{ + // Max length is "explorer ".length + url.maxlength (which is 2083), + // but we are not wasting that much memory here... let's set it up to 512 + static char cmd[512] = { 0 }; + +#if defined(_WIN32) + strcpy(cmd, "explorer "); +#elif defined(__linux__) + strcpy(cmd, "xdg-open "); // Alternatives: firefox, x-www-browser +#elif defined(__APPLE__) + strcpy(cmd, "open "); +#endif + + strcat(cmd, url); + system(cmd); + + memset(cmd, 0, 512); +} + //---------------------------------------------------------------------------------- // Module Functions Definition - Input (Keyboard, Mouse, Gamepad) Functions //---------------------------------------------------------------------------------- diff --git a/src/raylib.h b/src/raylib.h index aba4e108..ef470389 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -887,6 +887,8 @@ RLAPI long GetFileModTime(const char *fileName); // Get file mo RLAPI void StorageSaveValue(int position, int value); // Save integer value to storage file (to defined position) RLAPI int StorageLoadValue(int position); // Load integer value from storage file (from defined position) +RLAPI void OpenURL(const char *url); // Open URL with default system browser (if available) + //------------------------------------------------------------------------------------ // Input Handling Functions (Module: core) //------------------------------------------------------------------------------------ diff --git a/src/textures.c b/src/textures.c index 6249287d..fce1092a 100644 --- a/src/textures.c +++ b/src/textures.c @@ -1741,10 +1741,10 @@ void ImageDrawRectangle(Image *dst, Rectangle rec, Color color) // Draw rectangle lines within an image void ImageDrawRectangleLines(Image *dst, Rectangle rec, int thick, Color color) { - ImageDrawRectangle(&dst, (Rectangle){ rec.x, rec.y, rec.width, thick }, color); - ImageDrawRectangle(&dst, (Rectangle){ rec.x, rec.y + thick, thick, rec.height - thick*2 }, color); - ImageDrawRectangle(&dst, (Rectangle){ rec.x + rec.width - thick, rec.y + thick, thick, rec.height - thick*2 }, color); - ImageDrawRectangle(&dst, (Rectangle){ rec.x, rec.height - thick, rec.width, thick }, color); + ImageDrawRectangle(dst, (Rectangle){ rec.x, rec.y, rec.width, thick }, color); + ImageDrawRectangle(dst, (Rectangle){ rec.x, rec.y + thick, thick, rec.height - thick*2 }, color); + ImageDrawRectangle(dst, (Rectangle){ rec.x + rec.width - thick, rec.y + thick, thick, rec.height - thick*2 }, color); + ImageDrawRectangle(dst, (Rectangle){ rec.x, rec.height - thick, rec.width, thick }, color); } // Draw text (default font) within an image (destination)