From 9f546c38a9f2998e00b81a0a56e06730a9fd2791 Mon Sep 17 00:00:00 2001 From: Ilari Liusvaara Date: Sun, 4 Aug 2013 14:17:41 +0300 Subject: [PATCH] Lua: Add basename'd forms for gui.bitmap_load{,_png,_pal} --- lua.lyx | 21 ++++++++++----------- lua.pdf | Bin 166541 -> 166583 bytes src/lua/gui-bitmap.cpp | 21 ++++++++++++++++++--- 3 files changed, 28 insertions(+), 14 deletions(-) diff --git a/lua.lyx b/lua.lyx index 71f49125..1efa1dca 100644 --- a/lua.lyx +++ b/lua.lyx @@ -1102,7 +1102,7 @@ gui.bitmap_load/gui.bitmap_load_str: Load a bitmap from file or string \end_layout \begin_layout Itemize -Syntax: DBITMAP/(BITMAP, PALETTE) gui.bitmap_load(string file) +Syntax: DBITMAP/(BITMAP, PALETTE) gui.bitmap_load(string file[, string base]) \end_layout \begin_layout Itemize @@ -1110,12 +1110,9 @@ Syntax: DBITMAP/(BITMAP, PALETTE) gui.bitmap_load_str(string content) \end_layout \begin_layout Standard -Reads file or string and returns loaded bitmap/dbitmap - (if bitmap, the second return value is palette for bitmap). -\end_layout - -\begin_layout Itemize - +Reads file (resolved relative to ) or string and + returns loaded bitmap/dbitmap (if bitmap, the second return value is palette + for bitmap). \end_layout \begin_layout Subsection @@ -1123,7 +1120,8 @@ gui.bitmap_load_png/gui.bitmap_load_png_str: Load a bitmap from PNG \end_layout \begin_layout Itemize -Syntax: DBITMAP/(BITMAP, PALETTE) gui.bitmap_load_png(string file) +Syntax: DBITMAP/(BITMAP, PALETTE) gui.bitmap_load_png(string file[, string + base]) \end_layout \begin_layout Itemize @@ -1131,7 +1129,8 @@ Syntax: DBITMAP/(BITMAP, PALETTE) gui.bitmap_load_png_str(string content) \end_layout \begin_layout Standard -Load a bitmap from PNG file or BASE64 encoded content . +Load a bitmap from PNG file (resolved relative to ) or BASE64 + encoded content . \end_layout \begin_layout Itemize @@ -1150,7 +1149,7 @@ gui.bitmap_load_pal/gui.bitmap_load_pal_str: Load a palette \end_layout \begin_layout Itemize -Syntax: PALETTE gui.bitmap_load_pal(string file) +Syntax: PALETTE gui.bitmap_load_pal(string file[, string base]) \end_layout \begin_layout Itemize @@ -1158,7 +1157,7 @@ Syntax: PALETTE gui.bitmap_load_pal_str(string content) \end_layout \begin_layout Standard -Load a palette from file or string . +Load a palette from file (resolved relative to ) or string . \end_layout \begin_layout Itemize diff --git a/lua.pdf b/lua.pdf index 9bff9092a9c151558b511f68cb1ded1308751576..355d01e3fcdf246fdb2c58e0a4eb9a6bbb1071a5 100644 GIT binary patch delta 6624 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 int { + std::string name2; std::string name = L.get_string(1, fname.c_str()); - return bitmap_load_fn(L, [&name]() -> lua_loaded_bitmap { return lua_loaded_bitmap::load(name); }); + if(L.type(2) != LUA_TNIL && L.type(2) != LUA_TNONE) + name2 = L.get_string(2, fname.c_str()); + return bitmap_load_fn(L, [&name, &name2]() -> lua_loaded_bitmap { + std::string name3 = resolve_file_relative(name, name2); + return lua_loaded_bitmap::load(name3); + }); }); function_ptr_luafun gui_loadbitmap2(LS, "gui.bitmap_load_str", [](lua_state& L, const std::string& fname) @@ -417,8 +423,14 @@ namespace function_ptr_luafun gui_loadbitmappng(LS, "gui.bitmap_load_png", [](lua_state& L, const std::string& fname) -> int { + std::string name2; std::string name = L.get_string(1, fname.c_str()); - return bitmap_load_png_fn(L, [&name](png_decoded_image& img) { decode_png(name, img); }); + if(L.type(2) != LUA_TNIL && L.type(2) != LUA_TNONE) + name2 = L.get_string(2, fname.c_str()); + return bitmap_load_png_fn(L, [&name, &name2](png_decoded_image& img) { + std::string name3 = resolve_file_relative(name, name2); + decode_png(name3, img); + }); }); function_ptr_luafun gui_loadbitmappng2(LS, "gui.bitmap_load_png_str", [](lua_state& L, @@ -466,8 +478,11 @@ namespace function_ptr_luafun gui_loadpalette(LS, "gui.bitmap_load_pal", [](lua_state& L, const std::string& fname) -> int { + std::string name2; std::string name = L.get_string(1, fname.c_str()); - std::istream& s = open_file_relative(name, ""); + if(L.type(2) != LUA_TNIL && L.type(2) != LUA_TNONE) + name2 = L.get_string(2, fname.c_str()); + std::istream& s = open_file_relative(name, name2); try { int r = bitmap_palette_fn(L, s); delete &s;