diff --git a/data/Makefile.am b/data/Makefile.am index 9cd5ec95bb..50dcc105d4 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -95,11 +95,22 @@ template_files = \ templates/files/program.pas templates = \ - templates/bsd \ templates/changelog \ templates/fileheader \ templates/function \ - templates/gpl + templates/agpl2 \ + templates/agpl3 \ + templates/apache2 \ + templates/bsd-2-clause \ + templates/bsd-3-clause \ + templates/cc0 \ + templates/gpl2 \ + templates/gpl3 \ + templates/lgpl2 \ + templates/lgpl3 \ + templates/mit \ + templates/mpl2 \ + templates/zlib-libpng nobase_dist_pkgdata_DATA = \ $(colorschemes) \ diff --git a/data/geany.glade b/data/geany.glade index 52cbcd43a9..22576d9057 100644 --- a/data/geany.glade +++ b/data/geany.glade @@ -361,21 +361,120 @@ - + True False - Insert _GPL Notice + Insert AGPL v2 Notice True - + - + True False - Insert _BSD License Notice + Insert AGPL v3 Notice True - + + + + + + True + False + Insert _APACHE 2 Notice + True + + + + + + True + False + Insert BSD-2-CLAUSE Notice + True + + + + + + True + False + Insert _BSD-3-Clause Notice + True + + + + + + True + False + Insert _CC0 Notice + True + + + + + + True + False + Insert GPL v2 Notice + True + + + + + + True + False + Insert _GPL v3 Notice + True + + + + + + True + False + Insert LGPL v2 Notice + True + + + + + + True + False + Insert _LGPL v3 Notice + True + + + + + + True + False + Insert MIT Notice + True + + + + + + True + False + Insert _MPL v2 Notice + True + + + + + + True + False + Insert _zlib-libpng Notice + True + @@ -6901,21 +7000,120 @@ - + + True + False + Insert AGPL v2 Notice + True + + + + + + True + False + Insert AGPL v3 Notice + True + + + + + + True + False + Insert _APACHE 2 Notice + True + + + + + + True + False + Insert BSD-2-CLAUSE Notice + True + + + + + + True + False + Insert _BSD-3-Clause Notice + True + + + + + + True + False + Insert _CC0 Notice + True + + + + + + True + False + Insert GPL v2 Notice + True + + + + + + True + False + Insert _GPL v3 Notice + True + + + + + + True + False + Insert LGPL v2 Notice + True + + + + + + True + False + Insert _LGPL v3 Notice + True + + + + + + True + False + Insert MIT Notice + True + + + + + True False - Insert _GPL Notice + Insert _MPL v2 Notice True - + - + True False - Insert _BSD License Notice + Insert _zlib-libpng Notice True - + diff --git a/data/templates/agpl2 b/data/templates/agpl2 new file mode 100644 index 0000000000..0b68196676 --- /dev/null +++ b/data/templates/agpl2 @@ -0,0 +1,14 @@ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation; either version 2 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 Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +MA 02110-1301, USA. diff --git a/data/templates/agpl3 b/data/templates/agpl3 new file mode 100644 index 0000000000..8273a30131 --- /dev/null +++ b/data/templates/agpl3 @@ -0,0 +1,12 @@ +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero 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 Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see . diff --git a/data/templates/apache2 b/data/templates/apache2 new file mode 100644 index 0000000000..758500e86b --- /dev/null +++ b/data/templates/apache2 @@ -0,0 +1,13 @@ +Copyright {year} {developer} + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/data/templates/bsd-2-clause b/data/templates/bsd-2-clause new file mode 100644 index 0000000000..c01cf0c176 --- /dev/null +++ b/data/templates/bsd-2-clause @@ -0,0 +1,24 @@ +Copyright (c) {year}, {developer} +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/data/templates/bsd b/data/templates/bsd-3-clause similarity index 92% rename from data/templates/bsd rename to data/templates/bsd-3-clause index 790f6861dd..69befbaa70 100644 --- a/data/templates/bsd +++ b/data/templates/bsd-3-clause @@ -1,3 +1,6 @@ +Copyright (c) {year}, {developer} +All rights reserved. + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -8,7 +11,7 @@ met: copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. -* Neither the name of the {company} nor the names of its +* Neither the name of the company nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. diff --git a/data/templates/cc0 b/data/templates/cc0 new file mode 100644 index 0000000000..2b6db3f6bb --- /dev/null +++ b/data/templates/cc0 @@ -0,0 +1,4 @@ +CC0 1.0 Universal (CC0 1.0) +Any copyright is dedicated to the Public Domain. +http://creativecommons.org/publicdomain/zero/1.0/ +http://creativecommons.org/publicdomain/zero/1.0/legalcode diff --git a/data/templates/gpl b/data/templates/gpl2 similarity index 100% rename from data/templates/gpl rename to data/templates/gpl2 diff --git a/data/templates/gpl3 b/data/templates/gpl3 new file mode 100644 index 0000000000..9aa03b39be --- /dev/null +++ b/data/templates/gpl3 @@ -0,0 +1,12 @@ +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 . diff --git a/data/templates/lgpl2 b/data/templates/lgpl2 new file mode 100644 index 0000000000..62f962bb3d --- /dev/null +++ b/data/templates/lgpl2 @@ -0,0 +1,14 @@ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2 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 Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +MA 02110-1301, USA. diff --git a/data/templates/lgpl3 b/data/templates/lgpl3 new file mode 100644 index 0000000000..ba47ed30b1 --- /dev/null +++ b/data/templates/lgpl3 @@ -0,0 +1,12 @@ +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser 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 Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program. If not, see . diff --git a/data/templates/mit b/data/templates/mit new file mode 100644 index 0000000000..ff86001fd0 --- /dev/null +++ b/data/templates/mit @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) {year} {developer} + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/data/templates/mpl2 b/data/templates/mpl2 new file mode 100644 index 0000000000..41dc2327f1 --- /dev/null +++ b/data/templates/mpl2 @@ -0,0 +1,3 @@ +This Source Code Form is subject to the terms of the Mozilla Public +License, v. 2.0. If a copy of the MPL was not distributed with this +file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/data/templates/zlib-libpng b/data/templates/zlib-libpng new file mode 100644 index 0000000000..4b476f5d99 --- /dev/null +++ b/data/templates/zlib-libpng @@ -0,0 +1,13 @@ +The zlib/libpng License + +Copyright (c) {year} {developer} + +This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source distribution. diff --git a/src/callbacks.c b/src/callbacks.c index 92872fa206..5b17b7c904 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -1060,27 +1060,134 @@ static void insert_comment_template(GeanyDocument *doc, gint pos, guint template } -static void on_comments_gpl_activate(GtkMenuItem *menuitem, gpointer user_data) +static void on_comments_agpl2_activate(GtkMenuItem *menuitem, gpointer user_data) { - insert_comment_template(document_get_current(), editor_info.click_pos, GEANY_TEMPLATE_GPL); + insert_comment_template(document_get_current(), editor_info.click_pos, GEANY_TEMPLATE_AGPL2); } +static void on_menu_comments_agpl2_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_comment_template(document_get_current(), -1, GEANY_TEMPLATE_AGPL2); +} + +static void on_comments_agpl3_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_comment_template(document_get_current(), editor_info.click_pos, GEANY_TEMPLATE_AGPL3); +} + +static void on_menu_comments_agpl3_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_comment_template(document_get_current(), -1, GEANY_TEMPLATE_AGPL3); +} + +static void on_comments_apache2_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_comment_template(document_get_current(), editor_info.click_pos, GEANY_TEMPLATE_APACHE2); +} + +static void on_menu_comments_apache2_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_comment_template(document_get_current(), -1, GEANY_TEMPLATE_APACHE2); +} + +static void on_comments_bsd_2_clause_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_comment_template(document_get_current(), editor_info.click_pos, GEANY_TEMPLATE_BSD_2_CLAUSE); +} + +static void on_menu_comments_bsd_2_clause_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_comment_template(document_get_current(), -1, GEANY_TEMPLATE_BSD_2_CLAUSE); +} + +static void on_comments_bsd_3_clause_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_comment_template(document_get_current(), editor_info.click_pos, GEANY_TEMPLATE_BSD_3_CLAUSE); +} + +static void on_menu_comments_bsd_3_clause_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_comment_template(document_get_current(), -1, GEANY_TEMPLATE_BSD_3_CLAUSE); +} + +static void on_comments_cc0_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_comment_template(document_get_current(), editor_info.click_pos, GEANY_TEMPLATE_CC0); +} -static void on_menu_comments_gpl_activate(GtkMenuItem *menuitem, gpointer user_data) +static void on_menu_comments_cc0_activate(GtkMenuItem *menuitem, gpointer user_data) { - insert_comment_template(document_get_current(), -1, GEANY_TEMPLATE_GPL); + insert_comment_template(document_get_current(), -1, GEANY_TEMPLATE_CC0); } +static void on_comments_gpl2_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_comment_template(document_get_current(), editor_info.click_pos, GEANY_TEMPLATE_GPL2); +} -static void on_comments_bsd_activate(GtkMenuItem *menuitem, gpointer user_data) +static void on_menu_comments_gpl2_activate(GtkMenuItem *menuitem, gpointer user_data) { - insert_comment_template(document_get_current(), editor_info.click_pos, GEANY_TEMPLATE_BSD); + insert_comment_template(document_get_current(), -1, GEANY_TEMPLATE_GPL2); } +static void on_comments_gpl3_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_comment_template(document_get_current(), editor_info.click_pos, GEANY_TEMPLATE_GPL3); +} + +static void on_menu_comments_gpl3_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_comment_template(document_get_current(), -1, GEANY_TEMPLATE_GPL3); +} + +static void on_comments_lgpl2_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_comment_template(document_get_current(), editor_info.click_pos, GEANY_TEMPLATE_LGPL2); +} + +static void on_menu_comments_lgpl2_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_comment_template(document_get_current(), -1, GEANY_TEMPLATE_LGPL2); +} + +static void on_comments_lgpl3_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_comment_template(document_get_current(), editor_info.click_pos, GEANY_TEMPLATE_LGPL3); +} + +static void on_menu_comments_lgpl3_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_comment_template(document_get_current(), -1, GEANY_TEMPLATE_LGPL3); +} + +static void on_comments_mit_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_comment_template(document_get_current(), editor_info.click_pos, GEANY_TEMPLATE_MIT); +} + +static void on_menu_comments_mit_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_comment_template(document_get_current(), -1, GEANY_TEMPLATE_MIT); +} + +static void on_comments_mpl2_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_comment_template(document_get_current(), editor_info.click_pos, GEANY_TEMPLATE_MPL2); +} + +static void on_menu_comments_mpl2_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_comment_template(document_get_current(), -1, GEANY_TEMPLATE_MPL2); +} + +static void on_comments_zlib_libpng_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_comment_template(document_get_current(), editor_info.click_pos, GEANY_TEMPLATE_ZLIB_LIBPNG); +} -static void on_menu_comments_bsd_activate(GtkMenuItem *menuitem, gpointer user_data) +static void on_menu_comments_zlib_libpng_activate(GtkMenuItem *menuitem, gpointer user_data) { - insert_comment_template(document_get_current(), -1, GEANY_TEMPLATE_BSD); + insert_comment_template(document_get_current(), -1, GEANY_TEMPLATE_ZLIB_LIBPNG); } diff --git a/src/templates.c b/src/templates.c index 512edb04e9..4f85991912 100644 --- a/src/templates.c +++ b/src/templates.c @@ -131,8 +131,19 @@ static void init_general_templates(void) { /* read the contents */ read_template("fileheader", GEANY_TEMPLATE_FILEHEADER); - read_template("gpl", GEANY_TEMPLATE_GPL); - read_template("bsd", GEANY_TEMPLATE_BSD); + read_template("agpl2", GEANY_TEMPLATE_AGPL2); + read_template("agpl3", GEANY_TEMPLATE_AGPL3); + read_template("apache2", GEANY_TEMPLATE_APACHE2); + read_template("bsd-2-clause", GEANY_TEMPLATE_BSD_2_CLAUSE); + read_template("bsd-3-clause", GEANY_TEMPLATE_BSD_3_CLAUSE); + read_template("cc0", GEANY_TEMPLATE_CC0); + read_template("gpl2", GEANY_TEMPLATE_GPL2); + read_template("gpl3", GEANY_TEMPLATE_GPL3); + read_template("lgpl2", GEANY_TEMPLATE_LGPL2); + read_template("lgpl3", GEANY_TEMPLATE_LGPL3); + read_template("mit", GEANY_TEMPLATE_MIT); + read_template("mpl2", GEANY_TEMPLATE_MPL2); + read_template("zlib-libpng", GEANY_TEMPLATE_ZLIB_LIBPNG); read_template("function", GEANY_TEMPLATE_FUNCTION); read_template("changelog", GEANY_TEMPLATE_CHANGELOG); } @@ -425,7 +436,7 @@ gchar *templates_get_template_licence(GeanyDocument *doc, gint licence_type) GString *template; g_return_val_if_fail(DOC_VALID(doc), NULL); - g_return_val_if_fail(licence_type == GEANY_TEMPLATE_GPL || licence_type == GEANY_TEMPLATE_BSD, NULL); + g_return_val_if_fail(licence_type == GEANY_TEMPLATE_AGPL2 || licence_type == GEANY_TEMPLATE_AGPL3 || licence_type == GEANY_TEMPLATE_APACHE2 || licence_type == GEANY_TEMPLATE_BSD_2_CLAUSE || licence_type == GEANY_TEMPLATE_BSD_3_CLAUSE || licence_type == GEANY_TEMPLATE_CC0 || licence_type == GEANY_TEMPLATE_GPL2 || licence_type == GEANY_TEMPLATE_GPL3 || licence_type == GEANY_TEMPLATE_LGPL2 || licence_type == GEANY_TEMPLATE_LGPL3 || licence_type == GEANY_TEMPLATE_MIT || licence_type == GEANY_TEMPLATE_MPL2 || licence_type == GEANY_TEMPLATE_ZLIB_LIBPNG, NULL); template = g_string_new(templates[licence_type]); replace_static_values(template); @@ -446,8 +457,19 @@ static gchar *get_template_fileheader(GeanyFiletype *ft) filetypes_load_config(ft->id, FALSE); /* load any user extension setting */ templates_replace_valist(template, - "{gpl}", templates[GEANY_TEMPLATE_GPL], - "{bsd}", templates[GEANY_TEMPLATE_BSD], + "{agpl2}", templates[GEANY_TEMPLATE_AGPL2], + "{agpl3}", templates[GEANY_TEMPLATE_AGPL3], + "{apache2}", templates[GEANY_TEMPLATE_APACHE2], + "{bsd-2-clause}", templates[GEANY_TEMPLATE_BSD_2_CLAUSE], + "{bsd-3-clause}", templates[GEANY_TEMPLATE_BSD_3_CLAUSE], + "{cc0}", templates[GEANY_TEMPLATE_CC0], + "{gpl2}", templates[GEANY_TEMPLATE_GPL2], + "{gpl3}", templates[GEANY_TEMPLATE_GPL3], + "{lgpl2}", templates[GEANY_TEMPLATE_LGPL2], + "{lgpl3}", templates[GEANY_TEMPLATE_LGPL3], + "{mit}", templates[GEANY_TEMPLATE_MIT], + "{mpl2}", templates[GEANY_TEMPLATE_MPL2], + "{zlib-libpng}", templates[GEANY_TEMPLATE_ZLIB_LIBPNG], NULL); /* we don't replace other wildcards here otherwise they would get done twice for files */ diff --git a/src/templates.h b/src/templates.h index 7e61283c23..0689e0e14d 100644 --- a/src/templates.h +++ b/src/templates.h @@ -64,8 +64,19 @@ struct filetype; enum { - GEANY_TEMPLATE_GPL = 0, - GEANY_TEMPLATE_BSD, + GEANY_TEMPLATE_AGPL2 = 0, + GEANY_TEMPLATE_AGPL3, + GEANY_TEMPLATE_APACHE2, + GEANY_TEMPLATE_BSD_2_CLAUSE, + GEANY_TEMPLATE_BSD_3_CLAUSE, + GEANY_TEMPLATE_CC0, + GEANY_TEMPLATE_GPL2, + GEANY_TEMPLATE_GPL3, + GEANY_TEMPLATE_LGPL2, + GEANY_TEMPLATE_LGPL3, + GEANY_TEMPLATE_MIT, + GEANY_TEMPLATE_MPL2, + GEANY_TEMPLATE_ZLIB_LIBPNG, GEANY_TEMPLATE_FILEHEADER, GEANY_TEMPLATE_CHANGELOG, GEANY_TEMPLATE_FUNCTION,