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 .
-
-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('/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