Blob Blame History Raw
diff -urNp a/extensions/goat-exercises/goat-exercise-lua.lua b/extensions/goat-exercises/goat-exercise-lua.lua
--- a/extensions/goat-exercises/goat-exercise-lua.lua	2022-03-09 09:39:44.007314944 +0100
+++ b/extensions/goat-exercises/goat-exercise-lua.lua	1970-01-01 01:00:00.000000000 +0100
@@ -1,184 +0,0 @@
-#!/usr/bin/env luajit
-
--- GIMP - The GNU Image Manipulation Program
--- Copyright (C) 1995 Spencer Kimball and Peter Mattis
---
--- goat-exercise-lua.lua
--- Copyright (C) Jehan
---
--- This program is free software: you can redistribute it and/or modify
--- it under the terms of the GNU General Public License as published by
--- the Free Software Foundation; either version 3 of the License, or
--- (at your option) any later version.
---
--- This program is distributed in the hope that it will be useful,
--- but WITHOUT ANY WARRANTY; without even the implied warranty of
--- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--- GNU General Public License for more details.
---
--- You should have received a copy of the GNU General Public License
--- along with this program.  If not, see <https://www.gnu.org/licenses/>.
-
-local lgi = require 'lgi'
-
-local GLib    = lgi.GLib
-local GObject = lgi.GObject
-local Gio     = lgi.Gio
-local Gegl    = lgi.Gegl
-local Gimp    = lgi.Gimp
-local GimpUi  = lgi.GimpUi
-local Gtk     = lgi.Gtk
-local Gdk     = lgi.Gdk
-
-local Goat = lgi.package 'Goat'
-local Goat = lgi.Goat
-
-function run(procedure, run_mode, image, drawables, args, run_data)
-  -- procedure:new_return_values() crashes LGI so we construct the
-  -- GimpValueArray manually.
-  local retval = Gimp.ValueArray(1)
-
-  if table.getn(drawables) ~= 1 then
-    local calling_err = GObject.Value(Gimp.PDBStatusType, Gimp.PDBStatusType.CALLING_ERROR)
-    local msg         = "Procedure '%s' only works with one drawable."
-
-    msg = string.format(msg, procedure:get_name())
-
-    retval:append(calling_err)
-    retval:append(GObject.Value(GObject.Type.STRING, msg))
-    return retval
-  end
-
-  local drawable = drawables[1]
-
-  -- Not sure why run_mode has become a string instead of testing
-  -- against Gimp.RunMode.INTERACTIVE.
-  if run_mode == "INTERACTIVE" then
-    GimpUi.init("goat-exercise-lua");
-    local dialog = GimpUi.Dialog {
-      title          = "Exercise a goat (Lua)",
-      role           = "goat-exercise-Lua",
-      use_header_bar = 1
-    }
-    dialog:add_button("_Cancel", Gtk.ResponseType.CANCEL);
-    dialog:add_button("_Source", Gtk.ResponseType.APPLY);
-    dialog:add_button("_OK", Gtk.ResponseType.OK);
-
-    local geometry = Gdk.Geometry()
-    geometry.min_aspect = 0.5;
-    geometry.max_aspect = 1.0;
-    dialog:set_geometry_hints (nil, geometry, Gdk.WindowHints.ASPECT);
-
-    local box = Gtk.Box {
-      orientation = Gtk.Orientation.VERTICAL,
-      spacing     = 2
-    }
-    dialog:get_content_area():add(box)
-    box:show()
-
-    local lang = "Lua"
-    local head_text = "This plug-in is an exercise in '%s' to demo plug-in creation.\n" ..
-                      "Check out the last version of the source code online by clicking the \"Source\" button."
-
-    local label = Gtk.Label { label = string.format(head_text, lang) }
-    box:pack_start(label, false, false, 1)
-    label:show()
-
-    local contents = GLib.file_get_contents(arg[0])
-    if (contents) then
-      local scrolled = Gtk.ScrolledWindow()
-      scrolled:set_vexpand (true)
-      box:pack_start(scrolled, true, true, 1)
-      scrolled:show()
-
-      local view = Gtk.TextView()
-      view:set_wrap_mode(Gtk.WrapMode.WORD)
-      view:set_editable(false)
-      local buffer = view:get_buffer()
-      buffer:set_text(contents, -1)
-      scrolled:add(view)
-      view:show()
-    end
-
-    while (true) do
-      local response = dialog:run()
-      local url = 'https://gitlab.gnome.org/GNOME/gimp/blob/master/extensions/goat-exercises/goat-exercise-lua.lua'
-
-      if response == Gtk.ResponseType.OK then
-        dialog:destroy()
-        break
-      elseif (response == Gtk.ResponseType.APPLY)  then
-        Gio.app_info_launch_default_for_uri(url, nil);
-      else -- CANCEL, CLOSE, DELETE_EVENT
-        dialog:destroy()
-        local cancel = GObject.Value(Gimp.PDBStatusType, Gimp.PDBStatusType.CANCEL)
-        retval:append(cancel)
-        return retval
-      end
-    end
-  end
-
-  local x, y, width, height = drawable:mask_intersect()
-  if width ~= nill and height ~= nil and width > 0 and height > 0 then
-    Gegl.init(nil)
-
-    local buffer = drawable:get_buffer()
-    local shadow_buffer = drawable:get_shadow_buffer()
-
-    local graph = Gegl.Node()
-    local input = graph:create_child("gegl:buffer-source")
-    input:set_property("buffer", GObject.Value(Gegl.Buffer, buffer))
-    local invert = graph:create_child("gegl:invert")
-    local output = graph:create_child("gegl:write-buffer")
-    output:set_property("buffer", GObject.Value(Gegl.Buffer, shadow_buffer))
-    input:link(invert)
-    invert:link(output)
-    output:process()
-
-    shadow_buffer:flush()
-
-    drawable:merge_shadow(true)
-    drawable:update(x, y, width, height)
-    Gimp.displays_flush()
-  end
-
-  local success = GObject.Value(Gimp.PDBStatusType, Gimp.PDBStatusType.SUCCESS)
-  retval:append(success)
-  return retval
-end
-
-Goat:class('Exercise', Gimp.PlugIn)
-
-function Goat.Exercise:do_query_procedures()
-  return { 'plug-in-goat-exercise-lua' }
-end
-
-function Goat.Exercise:do_create_procedure(name)
-  local procedure = Gimp.ImageProcedure.new(self, name,
-                                            Gimp.PDBProcType.PLUGIN,
-                                            run, nil)
-
-  procedure:set_image_types("*");
-  procedure:set_sensitivity_mask(Gimp.ProcedureSensitivityMask.DRAWABLE);
-
-  procedure:set_menu_label("Exercise a Lua goat");
-  procedure:set_icon_name(GimpUi.ICON_GEGL);
-  procedure:add_menu_path('<Image>/Filters/Development/Goat exercises/');
-
-  procedure:set_documentation("Exercise a goat in the Lua language",
-                              "Takes a goat for a walk in Lua",
-                              name);
-  procedure:set_attribution("Jehan", "Jehan", "2019");
-
-  return procedure
-end
-
--- 'arg' is a Lua table. When automatically converted to an array, the
--- value 0 is deleted (because Lua arrays start at 1!), which breaks
--- Gimp.main() call. So let's create our own array starting at 1.
-argv = {}
-for k, v in pairs(arg) do
-  argv[k+1] = v
-end
-
-Gimp.main(GObject.Type.name(Goat.Exercise), argv)
diff -urNp a/extensions/goat-exercises/Makefile.am b/extensions/goat-exercises/Makefile.am
--- a/extensions/goat-exercises/Makefile.am	2022-03-09 09:39:44.007314944 +0100
+++ b/extensions/goat-exercises/Makefile.am	2022-03-09 10:27:14.623108639 +0100
@@ -72,10 +72,10 @@ endif
 
 # Lua (lua-jit + LGI) version.
 
-if BUILD_LUA
-goat_exercise_luadir = $(goat_exercise_c_libexecdir)
-goat_exercise_lua_SCRIPTS = goat-exercise-lua.lua
-endif
+#if BUILD_LUA
+#goat_exercise_luadir = $(goat_exercise_c_libexecdir)
+#goat_exercise_lua_SCRIPTS = goat-exercise-lua.lua
+#endif
 
 # Python 3 (pygobject) version.
 
@@ -135,7 +135,6 @@ org.gimp.extension.goat-exercises.metain
 
 EXTRA_DIST = \
 	goat-exercise-gjs.js	\
-	goat-exercise-lua.lua	\
 	goat-exercise-py3.py	\
 	$(appstream_in_files)
 
diff -urNp a/extensions/goat-exercises/Makefile.in b/extensions/goat-exercises/Makefile.in
--- a/extensions/goat-exercises/Makefile.in	2022-03-09 09:39:44.006314936 +0100
+++ b/extensions/goat-exercises/Makefile.in	2022-03-09 10:28:59.224986448 +0100
@@ -118,7 +118,6 @@ CONFIG_CLEAN_VPATH_FILES =
 am__installdirs = "$(DESTDIR)$(goat_exercise_c_libexecdir)" \
 	"$(DESTDIR)$(goat_exercise_vala_libexecdir)" \
 	"$(DESTDIR)$(goat_exercise_gjsdir)" \
-	"$(DESTDIR)$(goat_exercise_luadir)" \
 	"$(DESTDIR)$(goat_exercise_py3dir)" "$(DESTDIR)$(appdatadir)" \
 	"$(DESTDIR)$(goat_exercise_c_libexecdir)" \
 	"$(DESTDIR)$(goat_exercise_vala_libexecdir)"
@@ -183,7 +182,7 @@ am__uninstall_files_from_dir = { \
     || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
          $(am__cd) "$$dir" && rm -f $$files; }; \
   }
-SCRIPTS = $(goat_exercise_gjs_SCRIPTS) $(goat_exercise_lua_SCRIPTS) \
+SCRIPTS = $(goat_exercise_gjs_SCRIPTS) \
 	$(goat_exercise_py3_SCRIPTS)
 AM_V_P = $(am__v_P_@AM_V@)
 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
@@ -753,8 +752,8 @@ goat_exercise_c_LDADD = \
 @BUILD_JAVASCRIPT_TRUE@goat_exercise_gjs_SCRIPTS = goat-exercise-gjs.js
 
 # Lua (lua-jit + LGI) version.
-@BUILD_LUA_TRUE@goat_exercise_luadir = $(goat_exercise_c_libexecdir)
-@BUILD_LUA_TRUE@goat_exercise_lua_SCRIPTS = goat-exercise-lua.lua
+#@BUILD_LUA_TRUE@goat_exercise_luadir = $(goat_exercise_c_libexecdir)
+#@BUILD_LUA_TRUE@goat_exercise_lua_SCRIPTS = goat-exercise-lua.lua
 
 # Python 3 (pygobject) version.
 @BUILD_PYTHON_TRUE@goat_exercise_py3dir = $(goat_exercise_c_libexecdir)
@@ -795,7 +794,6 @@ appdatadir = $(goat_exercise_c_libexecdi
 appdata_DATA = $(appstream_files)
 EXTRA_DIST = \
 	goat-exercise-gjs.js	\
-	goat-exercise-lua.lua	\
 	goat-exercise-py3.py	\
 	$(appstream_in_files)
 
@@ -977,41 +975,41 @@ uninstall-goat_exercise_gjsSCRIPTS:
 	files=`for p in $$list; do echo "$$p"; done | \
 	       sed -e 's,.*/,,;$(transform)'`; \
 	dir='$(DESTDIR)$(goat_exercise_gjsdir)'; $(am__uninstall_files_from_dir)
-install-goat_exercise_luaSCRIPTS: $(goat_exercise_lua_SCRIPTS)
-	@$(NORMAL_INSTALL)
-	@list='$(goat_exercise_lua_SCRIPTS)'; test -n "$(goat_exercise_luadir)" || list=; \
-	if test -n "$$list"; then \
-	  echo " $(MKDIR_P) '$(DESTDIR)$(goat_exercise_luadir)'"; \
-	  $(MKDIR_P) "$(DESTDIR)$(goat_exercise_luadir)" || exit 1; \
-	fi; \
-	for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
-	done | \
-	sed -e 'p;s,.*/,,;n' \
-	    -e 'h;s|.*|.|' \
-	    -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
-	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
-	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
-	    if ($$2 == $$4) { files[d] = files[d] " " $$1; \
-	      if (++n[d] == $(am__install_max)) { \
-		print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
-	    else { print "f", d "/" $$4, $$1 } } \
-	  END { for (d in files) print "f", d, files[d] }' | \
-	while read type dir files; do \
-	     if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
-	     test -z "$$files" || { \
-	       echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(goat_exercise_luadir)$$dir'"; \
-	       $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(goat_exercise_luadir)$$dir" || exit $$?; \
-	     } \
-	; done
-
-uninstall-goat_exercise_luaSCRIPTS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(goat_exercise_lua_SCRIPTS)'; test -n "$(goat_exercise_luadir)" || exit 0; \
-	files=`for p in $$list; do echo "$$p"; done | \
-	       sed -e 's,.*/,,;$(transform)'`; \
-	dir='$(DESTDIR)$(goat_exercise_luadir)'; $(am__uninstall_files_from_dir)
+#install-goat_exercise_luaSCRIPTS: $(goat_exercise_lua_SCRIPTS)
+#	@$(NORMAL_INSTALL)
+#	@list='$(goat_exercise_lua_SCRIPTS)'; test -n "$(goat_exercise_luadir)" || list=; \
+#	if test -n "$$list"; then \
+#	  echo " $(MKDIR_P) '$(DESTDIR)$(goat_exercise_luadir)'"; \
+#	  $(MKDIR_P) "$(DESTDIR)$(goat_exercise_luadir)" || exit 1; \
+#	fi; \
+#	for p in $$list; do \
+#	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+#	  if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+#	done | \
+#	sed -e 'p;s,.*/,,;n' \
+#	    -e 'h;s|.*|.|' \
+#	    -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+#	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+#	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+#	    if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+#	      if (++n[d] == $(am__install_max)) { \
+#		print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+#	    else { print "f", d "/" $$4, $$1 } } \
+#	  END { for (d in files) print "f", d, files[d] }' | \
+#	while read type dir files; do \
+#	     if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+#	     test -z "$$files" || { \
+#	       echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(goat_exercise_luadir)$$dir'"; \
+#	       $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(goat_exercise_luadir)$$dir" || exit $$?; \
+#	     } \
+#	; done
+
+#uninstall-goat_exercise_luaSCRIPTS:
+#	@$(NORMAL_UNINSTALL)
+#	@list='$(goat_exercise_lua_SCRIPTS)'; test -n "$(goat_exercise_luadir)" || exit 0; \
+#	files=`for p in $$list; do echo "$$p"; done | \
+#	       sed -e 's,.*/,,;$(transform)'`; \
+#	dir='$(DESTDIR)$(goat_exercise_luadir)'; $(am__uninstall_files_from_dir)
 install-goat_exercise_py3SCRIPTS: $(goat_exercise_py3_SCRIPTS)
 	@$(NORMAL_INSTALL)
 	@list='$(goat_exercise_py3_SCRIPTS)'; test -n "$(goat_exercise_py3dir)" || list=; \
@@ -1266,7 +1264,7 @@ check-am: all-am
 check: check-am
 all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(DATA)
 installdirs:
-	for dir in "$(DESTDIR)$(goat_exercise_c_libexecdir)" "$(DESTDIR)$(goat_exercise_vala_libexecdir)" "$(DESTDIR)$(goat_exercise_gjsdir)" "$(DESTDIR)$(goat_exercise_luadir)" "$(DESTDIR)$(goat_exercise_py3dir)" "$(DESTDIR)$(appdatadir)" "$(DESTDIR)$(goat_exercise_c_libexecdir)" "$(DESTDIR)$(goat_exercise_vala_libexecdir)"; do \
+	for dir in "$(DESTDIR)$(goat_exercise_c_libexecdir)" "$(DESTDIR)$(goat_exercise_vala_libexecdir)" "$(DESTDIR)$(goat_exercise_gjsdir)" "$(DESTDIR)$(goat_exercise_py3dir)" "$(DESTDIR)$(appdatadir)" "$(DESTDIR)$(goat_exercise_c_libexecdir)" "$(DESTDIR)$(goat_exercise_vala_libexecdir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
 install: install-am
@@ -1330,7 +1328,6 @@ info: info-am
 info-am:
 
 install-data-am: install-appdataDATA install-goat_exercise_gjsSCRIPTS \
-	install-goat_exercise_luaSCRIPTS \
 	install-goat_exercise_py3SCRIPTS
 
 install-dvi: install-dvi-am
@@ -1385,7 +1382,6 @@ uninstall-am: uninstall-appdataDATA \
 	uninstall-goat_exercise_c_libexecDATA \
 	uninstall-goat_exercise_c_libexecPROGRAMS \
 	uninstall-goat_exercise_gjsSCRIPTS \
-	uninstall-goat_exercise_luaSCRIPTS \
 	uninstall-goat_exercise_py3SCRIPTS \
 	uninstall-goat_exercise_vala_libexecDATA \
 	uninstall-goat_exercise_vala_libexecPROGRAMS
@@ -1403,7 +1399,6 @@ uninstall-am: uninstall-appdataDATA \
 	install-goat_exercise_c_libexecDATA \
 	install-goat_exercise_c_libexecPROGRAMS \
 	install-goat_exercise_gjsSCRIPTS \
-	install-goat_exercise_luaSCRIPTS \
 	install-goat_exercise_py3SCRIPTS \
 	install-goat_exercise_vala_libexecDATA \
 	install-goat_exercise_vala_libexecPROGRAMS install-html \
@@ -1416,7 +1411,6 @@ uninstall-am: uninstall-appdataDATA \
 	uninstall-appdataDATA uninstall-goat_exercise_c_libexecDATA \
 	uninstall-goat_exercise_c_libexecPROGRAMS \
 	uninstall-goat_exercise_gjsSCRIPTS \
-	uninstall-goat_exercise_luaSCRIPTS \
 	uninstall-goat_exercise_py3SCRIPTS \
 	uninstall-goat_exercise_vala_libexecDATA \
 	uninstall-goat_exercise_vala_libexecPROGRAMS