get rid of MAX_PATH_CHARACTERS in factory.c
This commit is contained in:
		
							parent
							
								
									79446a9c72
								
							
						
					
					
						commit
						651d12b87b
					
				@ -2339,7 +2339,7 @@ void Run_script(const char *script_subdirectory, const char *script_filename)
 | 
			
		||||
  lua_State* L;
 | 
			
		||||
  const char* message;
 | 
			
		||||
  byte  old_cursor_shape = Cursor_shape;
 | 
			
		||||
  char buf[MAX_PATH_CHARACTERS];
 | 
			
		||||
  char * path;
 | 
			
		||||
  int original_image_width = Main.image_width;
 | 
			
		||||
  int original_image_height = Main.image_height;
 | 
			
		||||
  int original_current_layer = Main.current_layer;
 | 
			
		||||
@ -2358,36 +2358,39 @@ void Run_script(const char *script_subdirectory, const char *script_filename)
 | 
			
		||||
  
 | 
			
		||||
  // This chdir is for the script's sake. Grafx2 itself will (try to)
 | 
			
		||||
  // not rely on what is the system's current directory.
 | 
			
		||||
  Extract_path(buf, Last_run_script);
 | 
			
		||||
  Change_directory(buf);
 | 
			
		||||
  path = Extract_path(NULL, Last_run_script);
 | 
			
		||||
  Change_directory(path);
 | 
			
		||||
  free(path);
 | 
			
		||||
 | 
			
		||||
  L = luaL_newstate(); // used to be lua_open() on Lua 5.1, deprecated on 5.2
 | 
			
		||||
 | 
			
		||||
  /// @todo as the value doesn't vary, this should be
 | 
			
		||||
  /// done once at the start of the program
 | 
			
		||||
  strcpy(buf, Data_directory);
 | 
			
		||||
  Append_path(buf, SCRIPTS_SUBDIRECTORY, NULL);
 | 
			
		||||
  Append_path(buf, LUALIB_SUBDIRECTORY, NULL);
 | 
			
		||||
  Append_path(buf, "?.lua", NULL);
 | 
			
		||||
  path = malloc(strlen(Data_directory) + strlen(SCRIPTS_SUBDIRECTORY) + strlen(LUALIB_SUBDIRECTORY) + 5 + 3 * strlen(PATH_SEPARATOR) + 9 + 1);
 | 
			
		||||
  strcpy(path, Data_directory);
 | 
			
		||||
  Append_path(path, SCRIPTS_SUBDIRECTORY, NULL);
 | 
			
		||||
  Append_path(path, LUALIB_SUBDIRECTORY, NULL);
 | 
			
		||||
  Append_path(path, "?.lua", NULL);
 | 
			
		||||
  // SetEnvironmentVariableA() won't work because lua uses getenv()
 | 
			
		||||
#if defined(_MSC_VER)
 | 
			
		||||
  if (_putenv_s("LUA_PATH", buf) < 0)
 | 
			
		||||
    GFX2_Log(GFX2_ERROR, "_putenv_s(\"LUA_PATH\", \"%s\") failed\n", buf);
 | 
			
		||||
  if (_putenv_s("LUA_PATH", path) < 0)
 | 
			
		||||
    GFX2_Log(GFX2_ERROR, "_putenv_s(\"LUA_PATH\", \"%s\") failed\n", path);
 | 
			
		||||
#elif defined(WIN32)
 | 
			
		||||
  // Mingw has neither setenv() nor _putenv_s()
 | 
			
		||||
  memmove(buf + 9, buf, strlen(buf) + 1);
 | 
			
		||||
  memcpy(buf, "LUA_PATH=", 9);
 | 
			
		||||
  if (putenv(buf) < 0)
 | 
			
		||||
    GFX2_Log(GFX2_ERROR, "putenv(\"%s\") failed\n", buf);
 | 
			
		||||
  memmove(path + 9, path, strlen(path) + 1);
 | 
			
		||||
  memcpy(path, "LUA_PATH=", 9);
 | 
			
		||||
  if (putenv(path) < 0)
 | 
			
		||||
    GFX2_Log(GFX2_ERROR, "putenv(\"%s\") failed\n", path);
 | 
			
		||||
#else
 | 
			
		||||
  /* From linux man :
 | 
			
		||||
   * This function makes
 | 
			
		||||
   * copies of the strings pointed to by name and value (by contrast with
 | 
			
		||||
   * putenv(3)).
 | 
			
		||||
   */
 | 
			
		||||
  if (setenv("LUA_PATH", buf, 1) < 0)
 | 
			
		||||
    GFX2_Log(GFX2_ERROR, "setenv(\"LUA_PATH\", \"%s\", 1) failed\n", buf);
 | 
			
		||||
  if (setenv("LUA_PATH", path, 1) < 0)
 | 
			
		||||
    GFX2_Log(GFX2_ERROR, "setenv(\"LUA_PATH\", \"%s\", 1) failed\n", path);
 | 
			
		||||
#endif
 | 
			
		||||
  free(path);
 | 
			
		||||
  
 | 
			
		||||
  // Drawing
 | 
			
		||||
  lua_register(L,"putbrushpixel",L_PutBrushPixel);
 | 
			
		||||
@ -2866,6 +2869,7 @@ void Button_Brush_Factory(void)
 | 
			
		||||
  {
 | 
			
		||||
    Display_cursor();
 | 
			
		||||
  }
 | 
			
		||||
  Free_fileselector_list(&Scripts_selector);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#else // NOLUA
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,8 @@
 | 
			
		||||
/* vim:expandtab:ts=2 sw=2:
 | 
			
		||||
*/
 | 
			
		||||
#ifndef FACTORY_H__
 | 
			
		||||
#define FACTORY_H__
 | 
			
		||||
 | 
			
		||||
void Button_Brush_Factory(int);
 | 
			
		||||
void Repeat_script(void);
 | 
			
		||||
 | 
			
		||||
@ -16,3 +19,5 @@ void Run_numbered_script(byte index);
 | 
			
		||||
/// Returns a string stating the included Lua engine version,
 | 
			
		||||
/// or "Disabled" if Grafx2 is compiled without Lua.
 | 
			
		||||
const char * Lua_version(void);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user