geany-2.1/0000755000175000017500000000000015032474733007470 500000000000000geany-2.1/ChangeLog0000644000175000017500001137343615032474733011204 00000000000000# Generated by Makefile. Do not edit. commit cb5ff3cf0b63971010e60ea2feedd1a0181c1ace Author: Enrico Tröger Date: Sun Jul 6 14:55:03 2025 +0200 Set release date NEWS | 2 +- doc/geany.1.in | 2 +- doc/geany.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 309b044753de08accecc6e99b6d39cec8df5c1ee Author: Colomban Wendling Date: Sun Jul 6 15:17:06 2025 +0200 Tiny update of the French translation Use Unicode arrows instead of ASCII `->` to avoid wrapping in the middle of it. This is useful because the default Prefs dialog size leads to such wrapping of the note on the Editor->Indentation page. po/fr.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 39c2d33dc995d2d5e4791523dc89aa604a0ad9fe Merge: 04634ffe6 bb190f7d6 Author: Colomban Wendling Date: Sun Jul 6 14:31:26 2025 +0200 Merge pull request #4315 from b4n/news Update NEWS for 2.1 commit 04634ffe6be06f0720591e43d00c7dd4dfd26ba6 Author: Enrico Tröger Date: Sun Jul 6 14:14:16 2025 +0200 Update screenshots for Geany 2.1 documentation (#4365) doc/images/main_window.png | Bin 111339 -> 93797 bytes doc/images/pref_dialog_edit_completions.png | Bin 70244 -> 68421 bytes doc/images/pref_dialog_edit_display.png | Bin 76687 -> 66311 bytes doc/images/pref_dialog_edit_features.png | Bin 49188 -> 55967 bytes doc/images/pref_dialog_edit_indentation.png | Bin 55680 -> 54985 bytes doc/images/pref_dialog_files.png | Bin 66429 -> 63297 bytes doc/images/pref_dialog_gen_misc.png | Bin 56811 -> 55967 bytes doc/images/pref_dialog_gen_startup.png | Bin 55734 -> 52530 bytes doc/images/pref_dialog_interface_interface.png | Bin 64267 -> 61978 bytes doc/images/pref_dialog_interface_notebook.png | Bin 55721 -> 55743 bytes doc/images/pref_dialog_interface_toolbar.png | Bin 51371 -> 50024 bytes doc/images/pref_dialog_keys.png | Bin 75181 -> 64449 bytes doc/images/pref_dialog_printing.png | Bin 45788 -> 44094 bytes doc/images/pref_dialog_templ.png | Bin 50928 -> 49013 bytes doc/images/pref_dialog_tools.png | Bin 46469 -> 43498 bytes doc/images/pref_dialog_various.png | Bin 84969 -> 71574 bytes doc/images/pref_dialog_vte.png | Bin 60611 -> 58744 bytes 17 files changed, 0 insertions(+), 0 deletions(-) commit 67d764087f108ea0005a378f5eff24f2732677e8 Merge: edc8d43fd 77ed65c32 Author: Colomban Wendling Date: Sun Jul 6 14:12:33 2025 +0200 Merge pull request #4366 from b4n/prefs-indent-warning prefs: Show indentation warning without a project commit 77ed65c324a46df0ea96d59107ca13c8665edc29 Author: Colomban Wendling Date: Sun Jul 6 13:38:37 2025 +0200 prefs: Show indentation warning without a project This got broken in #4099, the label was moved to the box that is shown only when a project is open, but this note applies to all cases. data/geany.glade | 14 ++++++++++++++ src/prefs.c | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) commit bb190f7d66e95b55e81ccae45ff6beff23192bd7 Author: Colomban Wendling Date: Fri May 30 02:09:31 2025 +0200 Update NEWS for 2.1 NEWS | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) commit edc8d43fd7e26ff86fd9aebf1117c04c8ef6b54c Merge: fa323c999 64f9f1bdb Author: Colomban Wendling Date: Sun Jul 6 11:55:32 2025 +0200 Merge pull request #4360 from giuspen/GP_CairoOlderVersion Temporarily pin Cairo and Pango to older versions. commit 64f9f1bdbb185008a439e5556184341c66d0d8d1 Author: Giuseppe Penone Date: Fri Jul 4 14:47:22 2025 +0100 gtk-bundle-from-msys2.sh: Temporarily pin Cairo and Pango Explicitly use Cairo 1.18.4-1 and Pango 1.56.3-2 due to performance issues in their latest MSYS2 versions. See https://github.com/geany/geany-plugins/issues/1466, https://gitlab.freedesktop.org/cairo/cairo/-/issues/905 and https://github.com/geany/geany/pull/4360. scripts/gtk-bundle-from-msys2.sh | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) commit fa323c999ffd3cf7f7744550974b932ec47a7820 Author: Giuseppe Penone Date: Fri Jul 4 16:07:50 2025 +0100 Add release signing for Windows workflow Sign using signpath.io .github/workflows/windows-msys2-build.yml | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) commit 2dd3a687127b2f599da5d451640bf269ef27d568 Merge: 526e41b0e 0da703401 Author: Colomban Wendling Date: Fri Jul 4 00:19:44 2025 +0200 Merge pull request #4352 from techee/sci_locate2 Avoid introspecting widget hierarchy when obtaining doc from page commit 526e41b0e4e9b80ce005db5c45aa55624088dd19 Merge: d0129bd13 dfd8cdd62 Author: Colomban Wendling Date: Wed Jul 2 23:19:51 2025 +0200 Merge pull request #4348 from techee/overview_fix Move editor_goto_pos() to the end of document_new_file() Fixes geany/geany-plugins#1354 commit d0129bd13528d5799ad7e7f1f44be053f1a100e2 Merge: 452306eb4 1788ad8f3 Author: Frank Lanitz Date: Wed Jul 2 16:51:08 2025 +0200 Merge pull request #4358 from anenasa/master Update of Chinese (Traditional) translation commit 452306eb479a3b85a5aac4234cbb99cd3520c2b1 Merge: 4e7f410b1 d11d278e2 Author: Colomban Wendling Date: Tue Jul 1 22:21:05 2025 +0200 Merge pull request #4359 from techee/hacking_versions Update notes about glib and Glade versions in HACKING commit d11d278e2a59f45f6bb9861e5c2b0972e1f9bc47 Author: Jiří Techet Date: Tue Jul 1 20:42:46 2025 +0200 Update notes about glib and Glade versions in HACKING The paragraph about Glade 3.8.5 is pretty much obsolete these days and can be removed. We now require glib 2.56 and gtk 3.24 so update the documentation accordingly. HACKING | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 1788ad8f347f05f8498392b78f759d2a076bcccf Author: anenasa Date: Tue Jul 1 18:42:22 2025 +0800 Update of Chinese (Traditional) translation po/zh_TW.po | 680 ++++++++++++++++-------------------------------------------- 1 file changed, 173 insertions(+), 507 deletions(-) commit 4e7f410b1970349e014a6e914415f4f973b9212a Merge: 4dcc1becf 727dd8463 Author: Jiří Techet Date: Mon Jun 30 15:45:25 2025 +0200 Merge pull request #4353 from techee/win_geany_css Add comment to geany.css regarding font in search entries on Windows commit 4dcc1becff23da49e23b3dc2d5d51dbea10d2db3 Merge: f1c33cd93 f04c620b8 Author: Jiří Techet Date: Sun Jun 29 23:14:33 2025 +0200 Merge pull request #4354 from techee/update_themes Update to the latest version of geany-themes commit f1c33cd9390dfcd86b8c0b934d7bb28103853fdf Merge: 63a9be6c7 a3d26533f Author: Frank Lanitz Date: Sun Jun 29 21:09:10 2025 +0200 Merge pull request #4347 from andrej-herceg/sk-po Update of Slovak translation commit 727dd8463e113e0457d44f5e44da628f5941c32f Author: Jiří Techet Date: Sun Jun 29 13:28:23 2025 +0200 Remove css settings for GTK < 3.20 from the documentation doc/geany.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit f04c620b883061180626500a0ec70a00c7ba6e7a Author: Jiří Techet Date: Sun Jun 29 12:12:56 2025 +0200 Update to the latest version of geany-themes Fixes #4340. data/Makefile.am | 1 + data/colorschemes/gruvbox-dark.conf | 164 +++++++++++++++++++++++++++++++++ data/colorschemes/metallic-bottle.conf | 4 +- scripts/update-themes.py | 1 + 4 files changed, 168 insertions(+), 2 deletions(-) commit 855a4b292dc6f43c25e9e884b7c0e0e1f9d697f8 Author: Jiří Techet Date: Sun Jun 29 10:57:52 2025 +0200 Add comment to geany.css regarding font in search entries on Windows data/geany.css | 1 + 1 file changed, 1 insertion(+) commit 0da70340172671978b1db1209b8f345dcc454171 Author: Jiří Techet Date: Fri Jun 27 15:18:47 2025 +0200 Avoid introspecting widget hierarchy when obtaining doc from page This patch avoids widget hierarchy introspection to find GeanyDocument corresponding to a notebook tab widget by assigning it to the widget using g_object_set_data(). The previous method looking for the Scintilla widget would fail if the hierarchy contained another Scintilla widget coming e.g. from a plugin (such as the Overview plugin). Fixes https://github.com/geany/geany-plugins/issues/730 Fixes https://github.com/geany/geany-plugins/issues/1149 Fixes https://github.com/geany/geany-plugins/issues/1180 src/document.c | 61 ++++++++-------------------------------------------------- src/document.h | 2 -- src/notebook.c | 2 ++ 3 files changed, 10 insertions(+), 55 deletions(-) commit 63a9be6c75cde9a1f32d683603354613ef8605d5 Merge: fa19879f3 9ad34cc71 Author: Colomban Wendling Date: Thu Jun 26 22:37:23 2025 +0200 Merge pull request #4351 from b4n/codespell Fix typos in comments and documentation commit fa19879f3d66ae33a24a656f49e552f28d80b419 Author: Giuseppe Penone Date: Thu Jun 26 10:27:38 2025 +0100 Add native Windows build and release CI job (#4223) * Import the script geany-release.py so far hosted in the wiki, renamed to make it clear it is for windows/msys2 * Add CI job * Many improvements and adjustments .github/workflows/windows-msys2-build.yml | 58 ++++++++++++++++++ .gitignore | 1 + scripts/msys2-geany-release.py | 98 +++++++++++++++++++++++++++++++ 3 files changed, 157 insertions(+) commit 9ad34cc7129ecc04aa672460f2d879fdb528370c Author: Colomban Wendling Date: Thu Jun 26 11:17:24 2025 +0200 Fix typos in comments and documentation Mostly spotted by `codespell`. HACKING | 6 +++--- NEWS | 6 +++--- doc/geany.txt | 8 ++++---- geany.nsi.in | 2 +- plugins/demoplugin.c | 2 +- plugins/htmlchars.c | 4 ++-- plugins/saveactions.c | 4 ++-- src/build.c | 2 +- src/document.c | 4 ++-- src/documentprivate.h | 2 +- src/encodings.c | 2 +- src/highlighting.c | 2 +- src/highlightingmappings.h | 2 +- src/keyfile.c | 2 +- src/navqueue.c | 2 +- src/plugindata.h | 2 +- src/pluginextension.h | 2 +- src/pluginutils.c | 2 +- src/prefix.h | 2 +- src/spawn.c | 6 +++--- src/stash.c | 2 +- src/tagmanager/tm_tag.c | 6 +++--- src/tagmanager/tm_workspace.c | 2 +- src/utils.c | 12 ++++++------ 24 files changed, 43 insertions(+), 43 deletions(-) commit 8cbf43b8f06d734703694f378e3741b889a3433f Merge: 73ae405f2 382420668 Author: Jiří Techet Date: Wed Jun 25 12:08:10 2025 +0200 Merge pull request #4334 from eht16/issue4332_increase_default_linenumber_margin_width Increase line number margin default width commit dfd8cdd62a0f70fdf42b50aadb5177a5f483cc55 Author: Jiří Techet Date: Mon Jun 23 19:52:06 2025 +0200 Move editor_goto_pos() to the end of document_new_file() Within editor_goto_pos(), document_show_tab() is called which realizes the Scintilla widget. This: 1. Makes the code more similar to document_open_file_full() where editor_goto_pos() is called at the end as well. 2. Ensures that the editor is focused after creating a new file (which didn't get focused before). 3. Fixes the Overview plugin crash for when creating empty document made Geany crash after editor click. To (3): I don't know how exactly this is fixed but when debugging the issue, I noticed that Scintilla's realize() gets called 3 times for new documents while only 2 times when opening existing document (2 times makes sense - once for the editor widget, once for the overview view). After adding some traces, one realize() gets called when editor_goto_pos() is invoked and the other two after sending the "document-new" signal. I haven't investigated what exactly happens but since moving editor_goto_pos() fixes the problem and makes the code work more like document_open_file_full(), it's probably a "good" solution. src/document.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit a3d26533f4e96189acec4a5a12969d30781d68f7 Author: Andrej Herceg Date: Sun Jun 22 22:02:04 2025 +0200 Update of Slovak translation po/sk.po | 306 ++++++++++++++++++--------------------------------------------- 1 file changed, 86 insertions(+), 220 deletions(-) commit 73ae405f212f066e43b1f8910728dafa95e31821 Author: Frank Lanitz Date: Thu Jun 19 23:38:44 2025 +0200 Update of German translation po/de.po | 513 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 256 insertions(+), 257 deletions(-) commit d6f064aec0544acfca38c7770bfb928bd95c3a7c Merge: 01abec351 9f75b8c72 Author: Colomban Wendling Date: Mon Jun 16 21:51:11 2025 +0200 Merge pull request #4338 from techee/print_fname Show parsed file name in error messages related to invalid promises commit 01abec351af7e6ac68652bb280aaac13edbcd36f Merge: 674c84ecf 0bfb37f7f Author: Colomban Wendling Date: Mon Jun 16 21:29:08 2025 +0200 Merge pull request #4337 from techee/cobol_styles Cobol: Use SCE_COBOL_* defines for highlighting mappings commit 9f75b8c72060251c221c4ee3ae9fcd6012479291 Author: Jiří Techet Date: Mon Jun 16 17:50:11 2025 +0200 Show parsed file name in error messages related to invalid promises ctags/main/promise.c | 4 +++- ctags/main/read.c | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) commit 0bfb37f7f8221855eaf5ea777835a5d93ae6902a Author: Jiří Techet Date: Mon Jun 16 17:29:28 2025 +0200 Cobol: add empty "secondary" and "extended_kewywords" for better discoverability data/filedefs/filetypes.cobol | 2 ++ 1 file changed, 2 insertions(+) commit 8c2754e336b9f220a8075073de707baf2d4aa102 Author: Jiří Techet Date: Mon Jun 16 11:48:42 2025 +0200 Cobol: Use SCE_COBOL_* defines for highlighting mappings Some notes: - SCE_COBOL_WORD3 corresponds to SCE_C_UUID and "uuid" name - but since it has never been mapped in filetypes.cobol, it makes more sense to name it "word3" - "quotedidentifier" originally mapped in filetypes.cobol doesn't correspond to anything in C lexer or in Cobol lexer so it has been removed - "preprocessor" has been mapped to the preprocessor theme style data/filedefs/filetypes.cobol | 3 ++- src/highlightingmappings.h | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) commit 674c84ecfe628c3d1bbb9efcd1441862fb8e7ffa Merge: 232d15503 e18acc36e Author: Jiří Techet Date: Mon Jun 16 12:00:38 2025 +0200 Merge pull request #4335 from b4n/html-subparsers Improve symbols support for mixed HTML/PHP/JavaScript commit 9a1a62efa8ecbf4076ef9b1e87105ed6d3744ab8 Author: Jiří Techet Date: Mon Jun 16 11:42:02 2025 +0200 Cobol: fix keyword group name in fileypes.cobol It seems cobol keywords have never been highlighted :-/ data/filedefs/filetypes.cobol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e18acc36ecb975b335873520a0ee43cacda8a946 Author: Colomban Wendling Date: Sun Jun 15 22:54:35 2025 +0200 Add basic tests for combined HTML/PHP/JavaScript tests/ctags/Makefile.am | 2 ++ tests/ctags/combined.html | 28 ++++++++++++++++++++++++++++ tests/ctags/combined.html.tags | 8 ++++++++ tests/ctags/combined.php | 28 ++++++++++++++++++++++++++++ tests/ctags/combined.php.tags | 8 ++++++++ tests/meson.build | 2 ++ 6 files changed, 76 insertions(+) commit 28d11558bf90f3c232bef2c05f6d0f06d9415da7 Author: Colomban Wendling Date: Sun Jun 15 11:35:08 2025 +0200 Add support for JavaScript and HTML embedded in PHP src/tagmanager/tm_parser.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit 88b420e1edbe33955722c1d7d4236e635268aabe Author: Colomban Wendling Date: Sun Jun 15 11:34:38 2025 +0200 Extend support for JavaScript and PHP embedded in HTML src/tagmanager/tm_parser.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) commit 232d155033e82bdb69156d99f41267b0dc0265da Merge: bc096d5e5 e1374e4d2 Author: Frank Lanitz Date: Sun Jun 15 20:25:01 2025 +0200 Merge pull request #4336 from lucasvieites/master Updated Spanish translation for Geany 2.1 commit bc096d5e5f82304fba66e754c763d4510b2c0814 Merge: 0e11e4be7 1b8cb9d67 Author: Colomban Wendling Date: Sun Jun 15 20:10:53 2025 +0200 Merge pull request #4330 from techee/ctags_crash Fix ctags crash by checking promise ranges Fixes #3939 Fixes #4270 commit 1b8cb9d672495b0a6c352300833fe95421a43a0a Author: Jiří Techet Date: Fri Jun 13 21:54:34 2025 +0200 When creating a promise, check if identical promise already exists If there's identical promise, don't append it to the promise array. All promises, including the executed ones, are kept inside the promises array so the only thing we have to do is go through the array and check if there's an identical promise. Co-authored-by: Colomban Wendling ctags/main/promise.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit db7ea125d890aaa8c997969cb3bb3bf9c886dda7 Author: Colomban Wendling Date: Fri Jun 13 22:08:54 2025 +0200 php: Fix HTML promises ranges with an open tag at EOF Fix the end offset when the PHP open tag is the very last thing in the stream, which prevents the HTML parser from rightfully seeing a PHP open tag and giving the PHP parser the input back (and so on and so forth). ctags/parsers/php.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b4b9fbd4b8c049204ff2426aa1fbd5c3c3d84db1 Author: Colomban Wendling Date: Sun Jun 1 10:56:48 2025 +0200 Add test for PHP parser crash tests/ctags/Makefile.am | 1 + tests/ctags/wp-guest.php | 57 +++++++++++++++++++++++++++++++++++++++++++ tests/ctags/wp-guest.php.tags | 2 ++ tests/meson.build | 3 ++- 4 files changed, 62 insertions(+), 1 deletion(-) commit 80606b4d3af5525434c864e55e4779539b75c6b6 Author: Colomban Wendling Date: Tue Nov 12 00:44:05 2024 +0100 html: Avoid infinite ping-pong loop with JSP tags Fix #4097 JSP tags shouldn't trigger the PHP parser. This used to happen and trigger an infinite loop of a ping-pong effect with the HTML parser asking the PHP parser to parse the JSP block, and the PHP parser, not recognizing the input, asking the HTML one to deal with it. Rinse and repeat. ctags/parsers/html.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 23a254547cd696431232a79f79879a93dfe9ed81 Author: Colomban Wendling Date: Tue Oct 8 22:38:44 2024 +0200 php: Fix HTML promises ranges Don't include (part of) the PHP open tag in the HTML input. ctags/parsers/php.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 4f57234ad613fc5e1c139360f8efc5f0ab24f1e4 Author: Jiří Techet Date: Tue Jun 3 20:00:19 2025 +0200 Add checks testing the validity of promises If a promise is made with an invalid range (behind EOF or start position behind end position), it is rejected and parsing with a subparser is skipped. Co-authored-by: Colomban Wendling ctags/main/parse.c | 12 +++++++----- ctags/main/read.c | 34 ++++++++++++++++++++++++++++------ ctags/main/read_p.h | 2 +- 3 files changed, 36 insertions(+), 12 deletions(-) commit e1374e4d2441f57f5586f074a8737bcc935c800c Author: Lucas Vieites Date: Sun Jun 15 14:12:29 2025 +0200 Updated Spanish translation for Geany 2.1 Updated es.po dor Geany 2.1 po/es.po | 238 ++++++++++++++++++++++++++++----------------------------------- 1 file changed, 105 insertions(+), 133 deletions(-) commit e36b5d6608fe4370e836bb798b005bd4211a7edd Author: Colomban Wendling Date: Sun Jun 15 11:32:37 2025 +0200 Improve group names for JavaScript properties and constants src/tagmanager/tm_parser.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 38242066856c7e2dd2b4f595ce907504fcb7e714 Author: Enrico Tröger Date: Sun Jun 15 11:04:00 2025 +0200 Increase line number margin default width Closes #4332. src/sciwrappers.c | 4 ++++ 1 file changed, 4 insertions(+) commit 0e11e4be798edf497c3b50192ae79117a0555a1f Merge: 5e42b5c50 9ebf7daf5 Author: Frank Lanitz Date: Tue Jun 10 18:22:50 2025 +0200 Merge pull request #4327 from b4n/saveactions-wrong-mnemonic saveactions: Fix mnemonic not activating the right widget commit 5e42b5c501f3bdd49bea23ae641f68449cb968cf Merge: cd5e14417 cb2586ecb Author: Jiří Techet Date: Tue Jun 10 08:32:30 2025 +0200 Merge pull request #4326 from techee/win_font Use Consolas as the default font on Windows commit cd5e14417e655c396190674656b52124200db5ba Merge: b99dc8af8 c1538ef66 Author: Jiří Techet Date: Tue Jun 10 00:22:59 2025 +0200 Merge pull request #4222 from techee/column_edit_doc Fix documentation of rectangular selection commit 9ebf7daf5ab09bac905e2c8101b9ae6a1a95373e Author: Colomban Wendling Date: Tue Jun 10 00:14:47 2025 +0200 saveactions: Fix mnemonic not activating the right widget plugins/saveactions.c | 1 - 1 file changed, 1 deletion(-) commit c1538ef66187c26939d3bf94ee4ce39a30a8f756 Author: Jiří Techet Date: Fri Jan 31 21:34:53 2025 +0100 Fix documentation of rectangular selection Co-authored-by: Colomban Wendling doc/geany.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit b99dc8af8c2e7d7050a396d8128cb1af11b0dd36 Author: Colomban Wendling Date: Mon Jun 9 23:37:12 2025 +0200 French translation update po/fr.po | 176 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 87 insertions(+), 89 deletions(-) commit cb2586ecb8a7acd9c811654b93abf3f3ec67fb49 Author: Jiří Techet Date: Sun Jun 8 21:16:56 2025 +0200 Use Consolas as the default font on Windows By default, the monospaced font on Windows is Courier New which isn't exactly the nicest font for development because of the serifs (plus it is rendered extremely thin on HiDPI displays). I expect that the first thing everyone has to do on Windows is to change this font to something else. Since Windows Vista, Microsoft seems to ship a "modern" sans-serif monospaced font called Consolas which looks as a much better font for coding. The rest of the patch just moves existing font configuration for other platforms under a single ifdef/elif/else. src/keyfile.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 721c93bf4d7855183a3f389c3c05da72a3ec971d Author: Frank Lanitz Date: Mon Jun 9 22:11:23 2025 +0200 Update po files for string freeze of Geany 2.1 po/ar.po | 3054 ++++++++++++++++++++++++++----------------------- po/ast.po | 3152 ++++++++++++++++++++++++++------------------------ po/be.po | 3128 +++++++++++++++++++++++++++----------------------- po/bg.po | 3165 ++++++++++++++++++++++++++------------------------ po/ca.po | 3130 +++++++++++++++++++++++++++----------------------- po/cs.po | 3191 +++++++++++++++++++++++++++------------------------ po/da.po | 3676 +++++++++++++++++++++++++++++++---------------------------- po/de.po | 919 ++++++++------- po/el.po | 3160 +++++++++++++++++++++++++++----------------------- po/en_GB.po | 3159 ++++++++++++++++++++++++++------------------------ po/es.po | 3636 ++++++++++++++++++++++++++++++---------------------------- po/et.po | 3126 +++++++++++++++++++++++++++----------------------- po/eu.po | 3094 ++++++++++++++++++++++++++----------------------- po/fa.po | 3156 ++++++++++++++++++++++++++------------------------ po/fi.po | 3165 ++++++++++++++++++++++++++------------------------ po/fr.po | 3195 +++++++++++++++++++++++++++------------------------ po/gl.po | 3152 +++++++++++++++++++++++++++----------------------- po/he.po | 3128 +++++++++++++++++++++++++++----------------------- po/hi.po | 2959 ++++++++++++++++++++++++----------------------- po/hu.po | 3146 +++++++++++++++++++++++++++----------------------- po/id.po | 3149 +++++++++++++++++++++++++++----------------------- po/ie.po | 3087 ++++++++++++++++++++++++++----------------------- po/it.po | 3180 +++++++++++++++++++++++++++------------------------ po/ja.po | 3148 +++++++++++++++++++++++++++----------------------- po/kk.po | 3111 +++++++++++++++++++++++++++----------------------- po/ko.po | 3126 +++++++++++++++++++++++++++----------------------- po/ku.po | 3054 ++++++++++++++++++++++++++----------------------- po/lb.po | 3158 ++++++++++++++++++++++++++------------------------ po/lt.po | 3131 +++++++++++++++++++++++++++----------------------- po/lv.po | 3164 +++++++++++++++++++++++++++----------------------- po/mn.po | 3049 ++++++++++++++++++++++++++----------------------- po/nl.po | 3179 +++++++++++++++++++++++++++------------------------ po/nn.po | 2974 ++++++++++++++++++++++++----------------------- po/pl.po | 3151 ++++++++++++++++++++++++++------------------------ po/pt.po | 3467 ++++++++++++++++++++++++++++--------------------------- po/pt_BR.po | 914 ++++++++------- po/ro.po | 3159 ++++++++++++++++++++++++++------------------------ po/ru.po | 3204 +++++++++++++++++++++++++++------------------------ po/sk.po | 3155 +++++++++++++++++++++++++++----------------------- po/sl.po | 3158 +++++++++++++++++++++++++++----------------------- po/sr.po | 3112 +++++++++++++++++++++++++++----------------------- po/sv.po | 3141 +++++++++++++++++++++++++++----------------------- po/tr.po | 3154 +++++++++++++++++++++++++++----------------------- po/uk.po | 3115 +++++++++++++++++++++++++++----------------------- po/vi.po | 3145 ++++++++++++++++++++++++++------------------------ po/zh_CN.po | 3139 +++++++++++++++++++++++++++----------------------- po/zh_TW.po | 3120 +++++++++++++++++++++++++++----------------------- 47 files changed, 77171 insertions(+), 66964 deletions(-) commit 07ca62f79cbef124895fc86c981ec653ab1aa661 Merge: 623e83fb9 37491ab4c Author: Jiří Techet Date: Mon Jun 9 18:55:03 2025 +0200 Merge pull request #4081 from techee/bash_fix sh: enable lexer styles for command substitution and related styling commit 37491ab4c9a0d70ce5209ee6e3aeb33ea4955c94 Author: Jiří Techet Date: Tue Nov 26 22:26:43 2024 +0100 sh: enable lexer styles for command substitution and related styling Fixes #1754 Fixes #1821 data/filedefs/filetypes.sh | 6 ++++++ 1 file changed, 6 insertions(+) commit 623e83fb912b7f26f6b27eb6ba36a150494da19e Merge: 6f71cb11f d3330b168 Author: Jiří Techet Date: Mon Jun 9 18:43:06 2025 +0200 Merge pull request #4306 from techee/lexer_string TOML, Dart, Zig, Nix: Add error state for unterminated string commit 6f71cb11fd03a885d23f0bf84f569d2bf4e82d9f Merge: e48b1f813 720b79a11 Author: Jiří Techet Date: Mon Jun 9 15:55:54 2025 +0200 Merge pull request #4197 from techee/win_small_toolbar_icons Use small toolbar icons by default on Windows commit e48b1f813b864a897ed5202b796f7f1a9233b44e Merge: b428e7a29 0e74da542 Author: Colomban Wendling Date: Mon Jun 9 12:24:51 2025 +0200 Merge pull request #4320 from b4n/ci-show-logs-on-check-error CI: show test logs on test failures commit 0e74da54264ff9a42cd8f69c04631631ae0dfab1 Author: Colomban Wendling Date: Sun Jun 1 11:23:42 2025 +0200 CI: show test logs on test failures .github/workflows/build.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit b428e7a29e45d86af960bbbc6f6d117082964bb2 Merge: 1edb71980 f893aa195 Author: Jiří Techet Date: Mon Jun 9 11:05:49 2025 +0200 Merge pull request #4322 from techee/win_help_fix Drop win32_open_browser() commit f893aa195433e07e7a04635ae626411f5b93d1bc Author: Jiří Techet Date: Sun Jun 8 13:50:18 2025 +0200 Don't use specific settings for GEANY_DEFAULT_TOOLS_BROWSER on macOS Use the default value "" which is used on other platforms too. This settings then uses gtk_show_uri_on_window() which opens the browser that is configured as the default browser. src/keyfile.c | 5 ++--- src/prefs.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) commit 1edb719804662d46afa62cdbb7e3accdfefc8bb3 Merge: 42ec87a05 b6e75c1bb Author: Enrico Tröger Date: Mon Jun 9 00:03:16 2025 +0200 Merge pull request #4236 from eht16/meson_create_geany_nsi Create geany.nsi with Meson commit 42ec87a050acb282dc001b2e608759f51f16e021 Merge: c776c7fe8 c98e97760 Author: Colomban Wendling Date: Sun Jun 8 21:42:10 2025 +0200 Merge pull request #4318 from b4n/placeholders Fix %p build placeholder, and various placeholder replacement fixes and improvements commit 597c05afc0e47c19f5ceb2f78970b73dddb9f459 Author: Jiří Techet Date: Sun Jun 8 13:46:21 2025 +0200 Make browser entry configuration insensitive on Windows On Windows, gtk_show_uri_on_window() is always used no matter what is configured in preferences. src/prefs.c | 5 +++++ 1 file changed, 5 insertions(+) commit c776c7fe8ab2fead248afa7f9aa2045fcae194dd Merge: 8dd1f0083 c43aec2c4 Author: Colomban Wendling Date: Sat Jun 7 23:49:19 2025 +0200 Merge pull request #4319 from b4n/print-cmd-compat prefs: Migrate pre-2.1 print_cmd format commit c98e97760af9883a9276cb54e8e0e9b8462b4078 Author: Colomban Wendling Date: Sat Jun 7 23:01:55 2025 +0200 Emit a debug message when an unknown placeholder is encountered This should not happen with properly written format strings, and is likely not to result in the expected result, so warn about it. src/utils.c | 2 ++ 1 file changed, 2 insertions(+) commit 86066b46523638324bcbd82b132e42221ca038b0 Author: Colomban Wendling Date: Sat Jun 7 22:44:44 2025 +0200 Update documentation with new placeholders doc/geany.txt | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) commit f826655f6cc26019773ce8d4b7f9e423e05fd84c Author: Colomban Wendling Date: Sat Jun 7 22:20:24 2025 +0200 Improve status message when replacing %p without a project open src/utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f802134892ff237970b05e50e016b32ac9a6cce3 Author: Colomban Wendling Date: Sat Jun 7 22:18:45 2025 +0200 Replace placeholders with an empty value when the document has no path This is all but theoretical though, as all current use of the document placeholders substitution won't call it when the document is not valid nor has a proper on-disk path. src/utils.c | 19 ++++++++++++++++--- tests/test_utils.c | 12 ++++++------ 2 files changed, 22 insertions(+), 9 deletions(-) commit 98eeaa244af146f5647006690ad91a6fb3fad015 Author: Colomban Wendling Date: Sat May 31 22:25:18 2025 +0200 Fix external print command tooltip data/geany.glade | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 7ca41c62d81c4809ccf66abbd450e22d8909d195 Author: Colomban Wendling Date: Sat May 31 22:11:08 2025 +0200 Use utils_replace_placeholders() in ui_update_statusbar() This moves the string management logic outside the placeholder replacement logic, and fixes a corner case, when there is a % at the end of the format string. It also changes handling of unknown placeholders, keeping them entirely unmodified instead of inserting only the character after the `%`. Neither is necessarily perfect, but I don't think it's a regression or a change that is relevant regarding compatibility. src/ui_utils.c | 250 +++++++++++++++++++++++++++------------------------------ 1 file changed, 118 insertions(+), 132 deletions(-) commit 84cfce078118450b710838d456cb3a649c97b5b2 Author: Colomban Wendling Date: Sat May 31 19:47:42 2025 +0200 utils: Add utils_replace_placeholders() src/utils.c | 19 ++++++++++++++++++- src/utils.h | 4 ++++ tests/test_utils.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+), 1 deletion(-) commit 0f488326188070c68754023675c0cce801a41b1e Author: Colomban Wendling Date: Sat May 31 19:44:54 2025 +0200 Remove position argument from ui_update_statusbar() This function is always actually called with the document's current position, and all but one caller pass `-1` already -- the only one giving an explicit position gives `sci_get_current_position()`, which behaves exactly the same as `-1`. Thus, remove the unnecessary argument, which simplifies the calls and will simplify an upcoming change. src/callbacks.c | 14 +++++++------- src/document.c | 24 ++++++++++++------------ src/editor.c | 4 ++-- src/keybindings.c | 2 +- src/prefs.c | 2 +- src/ui_utils.c | 8 ++++---- src/ui_utils.h | 2 +- 7 files changed, 28 insertions(+), 28 deletions(-) commit 839eaa6f256ac757405fb78506e6b5cace369991 Author: Colomban Wendling Date: Sat May 31 18:39:06 2025 +0200 Fix build placeholder replacement Fixes `%p` support that was broken in #4250, and avoids finding placeholders in replacement strings that can lead to unexpected or dangerous issues (e.g. if a path contains a placeholder). The implementation is a little over-engineered, but might allow to share the placeholder replacement logic with other code, as well as decoupling string management and replacement generation. Fixes #4314. src/build.c | 8 +- src/printing.c | 4 +- src/utils.c | 226 ++++++++++++++++++++++++----------------------------- src/utils.h | 2 +- tests/test_utils.c | 33 ++++++++ 5 files changed, 141 insertions(+), 132 deletions(-) commit c43aec2c4acf320e920e3d7f3c4e39323da6661e Author: Colomban Wendling Date: Sun Jun 1 00:07:24 2025 +0200 prefs: Migrate pre-2.1 print_cmd format External print command placeholders have been changed in #4250, so update the default value and migrate a previous format to the new one automatically to make the transition smoother. src/keyfile.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) commit 8dd1f00837b348a2f69efd4bf6746e0d5a1890a0 Merge: d81942fe5 92df8c7b8 Author: Jiří Techet Date: Thu Jun 5 23:19:05 2025 +0200 Merge pull request #4323 from techee/fix_base_path_open Fix project base path button when using native dialogs commit 155b60f7164fc489fc101a091e7f580bb9b2958e Author: Jiří Techet Date: Thu Jun 5 21:18:03 2025 +0200 Drop win32_open_browser() On Windows, I get ``` 21:15:27: Failed to open URI "C:/Program Files/Geany/share/doc/geany/html/index.html#general-startup-preferences": The system cannot find the file specified. ``` when pressing the Help button from the Preferences dialog. The problem seems to be caused by the #suffix of the URI. Using gtk_show_uri_on_window() instead of win32_open_browser() seems to "work" so the web browser is shown - however, the #suffix is removed so it doesn't navigate to the linked section in help. Still better than not showing the help window at all. src/utils.c | 2 +- src/win32.c | 24 ------------------------ src/win32.h | 3 --- 3 files changed, 1 insertion(+), 28 deletions(-) commit 92df8c7b88f62dfd7a18af801ebc536c8f1e3d89 Author: Jiří Techet Date: Thu Jun 5 22:19:43 2025 +0200 Fix project base path button when using native dialogs The button next to the Project->Properties->Base path entry doesn't work when using "platform-native" dialogs because of forgotten use of "universal dialog run" function. Fix that. src/project.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d81942fe50bb8783d0e29ec564d3e03ec93c2be0 Author: Colomban Wendling Date: Fri May 30 19:39:08 2025 +0200 NEWS: Fix PR link in 2.0 section NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4814dbc138025f9ea461acdc03707dbe37d3e4cd Merge: 837198829 98e73cee7 Author: Colomban Wendling Date: Fri May 30 21:43:28 2025 +0200 Merge pull request #4316 from b4n/techee-is-a-main-dev Credit Jiří as a main developer commit 98e73cee768446031bc9f7acf6ce6d2b0fb2dc3a Author: Colomban Wendling Date: Fri May 30 19:40:06 2025 +0200 Credit Jiří as a main developer Because he really is, willingly or not :) src/about.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 8371988294df92309804fb200afec844bcc58a52 Merge: 82ab2eca8 e58156381 Author: Colomban Wendling Date: Thu May 29 22:59:05 2025 +0200 Merge pull request #4313 from b4n/entryaction-cleanup geanyentryaction: Fix duplicate signals and simplify code commit e58156381be644e5cb7eb4c749d160a338f26c1d Author: Colomban Wendling Date: Wed May 28 22:47:32 2025 +0200 geanyentryaction: Fix duplicate signals and simplify code Assuming GtkRecentAction implementation in GTK is a good inspiration, we don't actually need to delay signal connection to `connect_proxy()`: it only allows to connect proxies we didn't create ourselves, and we don't actually *want* to connect those. Doing it in `connect_proxy()` the way we did actually creates an issue: foreign proxies can be created (e.g. menu items in the toolbar overflow menu), and for those we must not re-connect on the entry, otherwise we would duplicate signal connections, leading to odd behavior. As we don't need to actually connect signals on foreign proxies, we can simply connect them when creating our own entry. This has a couple benefits: * We don't risk connecting twice, as we only connect on fresh entries, never on previously existing ones. * We don't use a cached entry inside the action, which makes creating more than one tool item for the same action a lot more robust, as the action don't keep track of *any* entry anymore, instead of tracking only the one created last. Fixes #4012. src/geanyentryaction.c | 73 +++++++++++++++++++------------------------------- 1 file changed, 27 insertions(+), 46 deletions(-) commit 82ab2eca80b52c6be93f71674e1a06bdae39e04c Merge: efb6adb6d a0a771b9f Author: Colomban Wendling Date: Sun May 25 23:51:46 2025 +0200 Merge pull request #4311 from b4n/tr-comments Restore translator comments commit a0a771b9f205ee4b433fcd028f7b455112ceeb76 Author: Colomban Wendling Date: Sun May 25 13:54:54 2025 +0200 Restore translator comments after the intltool parting This also unifies the format for comments targeting translators which makes it easier to notice in the source, and avoids unrelated comment from being extracted. po/Makevars | 2 +- src/document.c | 4 ++-- src/libmain.c | 4 ++-- src/project.c | 2 +- src/spawn.c | 2 +- src/symbols.c | 2 +- src/ui_utils.c | 18 ++++++++++-------- 7 files changed, 18 insertions(+), 16 deletions(-) commit dc4791bbde7b45aae84a8f51a14b592fdf7d8e32 Author: Colomban Wendling Date: Sun May 25 13:53:31 2025 +0200 po: Add support for g_dngettext() and UTF-8 source strings We use neither currently, but that is a more standard option set and might save us from trouble if this ever changes. po/Makevars | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit efb6adb6d2bbaede6698c917ad9f7bf04e198198 Author: Colomban Wendling Date: Sun May 25 13:50:13 2025 +0200 autogen: Quote srcdir This might allow building inside directories that contain shell meta-characters, like e.g. space. autogen.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit e580d9d15e6a0692d9e26b767ac6b4103d2d4a60 Merge: 876242d8b e97ec4a45 Author: Colomban Wendling Date: Fri May 23 00:00:59 2025 +0200 Merge pull request #4307 from techee/fb_assertion_fix filebrowser: Eliminate runtime error when preferences confirmed commit e97ec4a453d3fb439027ac68e3b8675fb5ecabc6 Author: Jiří Techet Date: Fri May 16 00:37:44 2025 +0200 filebrowser: Eliminate runtime error when preferences confirmed Steps to reproduce: 1. Start Geany and make sure that the file browser plugin is loaded and that the Files tab hasn't been shown yet (some other tab is displayed after Geany start) 2. Open Plugin Preferences and confirm it with OK. 3. In the terminal you get (geany:942499): GLib-CRITICAL **: 00:36:11.316: g_file_test: assertion 'filename != NULL' failed This happens because when the Files tab isn't shown, the current_dir isn't updated and is still set to NULL when the preferences dialog appears. plugins/filebrowser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 876242d8bb754afd17a60c6871a1a05861970114 Author: Jiří Techet Date: Wed May 14 22:30:54 2025 +0200 Make sure that parents appear before their children when constructing symbol tree (#4063) The symbol tree construction code assumes that tag parents appear before their children. At the moment tag list is sorted by line numbers which works for C structs struct Foo { int bar; int baz; } where the tag Foo (which is a parent of bar and baz) is sorted before bar and baz. However, this doesn't work when the name of the struct (or a variable of an anonymous struct) follows the struct members such as in the following SystemVerilog example: struct packed { byte s_a, s_b, s_c; string s_str; } s_member; Here the members are sorted before the parent and the symbol tree construction code doesn't work correctly. This patch sorts symbols so that parents are sorted before their members - only if tags aren't in a parent-child relationship the original sorting by line is performed. Fixes #4060. Co-authored-by: Colomban Wendling src/symbols.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) commit 1bf0e8f0a308a0a254c62477bc2991001bff505f Merge: c254e4e81 56fcf568a Author: Jiří Techet Date: Wed May 14 12:47:18 2025 +0200 Merge pull request #4098 from techee/search_dlg_size Improve search/replace dialog sizing under various locales commit d3330b1684b438c9d5f84ee55f5b874e875658d5 Author: Jiří Techet Date: Sun May 11 15:48:55 2025 +0200 toml: add lexer support for highlighting unterminated strings data/filedefs/filetypes.toml | 1 + scintilla/lexilla/include/SciLexer.h | 1 + scintilla/lexilla/lexers/LexTOML.cxx | 12 ++++++++++++ src/highlighting.c | 3 ++- src/highlightingmappings.h | 5 +++-- 5 files changed, 19 insertions(+), 3 deletions(-) commit e28e6abd58b8c3c940037c5f234d13f0579d9682 Author: Jiří Techet Date: Sun May 11 15:51:31 2025 +0200 zig: add lexer support for highlighting unterminated strings data/filedefs/filetypes.zig | 1 + scintilla/lexilla/include/SciLexer.h | 1 + scintilla/lexilla/lexers/LexZig.cxx | 13 +++++++++++++ src/highlighting.c | 3 ++- src/highlightingmappings.h | 3 ++- 5 files changed, 19 insertions(+), 2 deletions(-) commit bdf6be6398bb274ac313fdbc6da7474c24f45f80 Author: Jiří Techet Date: Sun May 11 15:50:59 2025 +0200 nix: add lexer support for highlighting unterminated strings data/filedefs/filetypes.nix | 1 + scintilla/lexilla/include/SciLexer.h | 1 + scintilla/lexilla/lexers/LexNix.cxx | 13 +++++++++++++ src/highlighting.c | 3 ++- src/highlightingmappings.h | 1 + 5 files changed, 18 insertions(+), 1 deletion(-) commit da685eeb422749a9a0ac741552daaa7e8accda31 Author: Jiří Techet Date: Sun May 11 15:50:12 2025 +0200 dart: add lexer support for highlighting unterminated strings data/filedefs/filetypes.dart | 1 + scintilla/lexilla/include/SciLexer.h | 1 + scintilla/lexilla/lexers/LexDart.cxx | 13 +++++++++++++ src/highlighting.c | 3 ++- src/highlightingmappings.h | 1 + 5 files changed, 18 insertions(+), 1 deletion(-) commit c254e4e81bfe2479848b62eefd92eb26e489a302 Merge: d6eedb6b7 c340e2d6f Author: Frank Lanitz Date: Sun Apr 27 19:48:54 2025 +0200 Merge pull request #4287 from strepon/update-czech Update Czech localization commit d6eedb6b7bb9352bf750e4fc24128d74fda7c1dd Merge: 7833f6401 543d95590 Author: Enrico Tröger Date: Sun Apr 27 19:41:03 2025 +0200 Merge pull request #4250 from Pynckels/print-external Add %d %e %p to print_external, align meaning of %f with build commit 543d9559084154439d73f95dfa41d2eaec35fac0 Author: Pynckels Date: Thu Apr 24 16:13:06 2025 +0200 Add %d %e %p to print_external, align meaning of %f with build .gitignore | 1 + src/build.c | 66 ++----------------------- src/printing.c | 6 +-- src/utils.c | 148 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/utils.h | 4 ++ 5 files changed, 160 insertions(+), 65 deletions(-) commit 7833f640114bc4596d52c2575cace99202aa1102 Author: Frank Lanitz Date: Wed Apr 23 21:13:26 2025 +0200 Small update of German translation po/de.po | 2711 +++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 1435 insertions(+), 1276 deletions(-) commit 31b4fae468068aa378c29e3194c5c40313ee5481 Author: Frank Lanitz Date: Wed Apr 23 21:04:16 2025 +0200 Update of Brazilian Portuguese translation po/pt_BR.po | 3217 +++++++++++++++++++++++++++++++---------------------------- 1 file changed, 1680 insertions(+), 1537 deletions(-) commit c340e2d6f19275f984f6b6c8bb5e159aea109973 Author: Stanislav Horacek Date: Sun Apr 6 22:06:11 2025 +0200 update Czech localization po/cs.po | 110 +++++++++++++++++++++------------------------------------------ 1 file changed, 36 insertions(+), 74 deletions(-) commit 6a266bff0f70199a727aaabea0cf0b6e94c68ae3 Merge: 230e2e886 4c5363c7b Author: Colomban Wendling Date: Sun Mar 23 22:44:13 2025 +0100 Merge pull request #4278 from techee/multipaste Allow pasting and autocompletion for multiple cursors commit 4c5363c7b0638dfa6546fd1b5c0c09ddbae960ff Author: Jiří Techet Date: Sun Mar 23 10:16:01 2025 +0100 Allow pasting and autocompletion for multiple cursors Without this, when having a column mode caret, paste only inserts the text into the primary cursor position but not to all of them. Similarly, without the patch, autocomplete only works for the primary cursor position only. Fixes #625. Closes #2328. src/editor.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 230e2e8861516e877ef3ba22222cc5afa01f216b Merge: 045d28bfc 68918428b Author: Jiří Techet Date: Sun Mar 23 08:53:26 2025 +0100 Merge pull request #4044 from techee/themes Add themes from geany-themes commit 68918428bffd811320fe7939450e3cb0ce7a4502 Author: Jiří Techet Date: Wed Nov 13 22:20:28 2024 +0100 Add themes from geany-themes This patch: - adds a scripts/update-themes.py script copying themes with compatible licenses (themes with no explicit license are skipped for now) - copies these themes under data/colorschemes - adds lgpl-2.0.txt, lgpl-2.1.txt to data/colorschemes to cover themes not falling under Geany's GPL 2.0 or later Fixes #4035. data/Makefile.am | 47 ++- data/colorschemes/abc-dark.conf | 120 ++++++++ data/colorschemes/abc-light.conf | 120 ++++++++ data/colorschemes/alt.conf | 23 +- data/colorschemes/bespin.conf | 121 ++++++++ data/colorschemes/black.conf | 125 ++++++++ data/colorschemes/carbonfox.conf | 114 +++++++ data/colorschemes/cyber-sugar.conf | 135 +++++++++ data/colorschemes/darcula.conf | 149 +++++++++ data/colorschemes/dark-colors.conf | 136 +++++++++ data/colorschemes/dark-fruit-salad.conf | 121 ++++++++ data/colorschemes/dark.conf | 120 ++++++++ data/colorschemes/delt-dark.conf | 106 +++++++ data/colorschemes/earthsong.conf | 120 ++++++++ data/colorschemes/epsilon.conf | 119 ++++++++ data/colorschemes/evg-ega-dark.conf | 148 +++++++++ data/colorschemes/gedit.conf | 120 ++++++++ data/colorschemes/github.conf | 122 ++++++++ data/colorschemes/grey8.conf | 116 +++++++ data/colorschemes/hacker.conf | 116 +++++++ data/colorschemes/himbeere.conf | 135 +++++++++ data/colorschemes/inkpot.conf | 118 ++++++++ data/colorschemes/kugel.conf | 132 ++++++++ data/colorschemes/kurayami.conf | 153 ++++++++++ data/colorschemes/lgpl-2.0.txt | 480 +++++++++++++++++++++++++++++ data/colorschemes/lgpl-2.1.txt | 501 +++++++++++++++++++++++++++++++ data/colorschemes/matcha.conf | 130 ++++++++ data/colorschemes/mc.conf | 117 ++++++++ data/colorschemes/metallic-bottle.conf | 115 +++++++ data/colorschemes/notepad-plus-plus.conf | 122 ++++++++ data/colorschemes/oblivion2.conf | 120 ++++++++ data/colorschemes/octagon.conf | 136 +++++++++ data/colorschemes/one-dark.conf | 148 +++++++++ data/colorschemes/pygments.conf | 131 ++++++++ data/colorschemes/retro.conf | 115 +++++++ data/colorschemes/sleepy-pastel.conf | 102 +++++++ data/colorschemes/slushpoppies.conf | 120 ++++++++ data/colorschemes/solarized-dark.conf | 147 +++++++++ data/colorschemes/solarized-light.conf | 147 +++++++++ data/colorschemes/spyder-dark.conf | 118 ++++++++ data/colorschemes/steampunk.conf | 123 ++++++++ data/colorschemes/tango-dark.conf | 130 ++++++++ data/colorschemes/tango-light.conf | 120 ++++++++ data/colorschemes/tinge.conf | 128 ++++++++ data/colorschemes/ubuntu.conf | 116 +++++++ data/colorschemes/underthesea.conf | 114 +++++++ data/colorschemes/vibrant-ink.conf | 123 ++++++++ doc/making-a-release | 3 + scripts/update-themes.py | 119 ++++++++ 49 files changed, 6558 insertions(+), 3 deletions(-) commit 045d28bfc3b7f0e6a85ef080094e663b208fee0f Author: Enrico Tröger Date: Sun Feb 23 18:05:09 2025 +0100 Add new filetype and ctags parser for Terraform HCL language (#4246) ctags/Makefile.am | 1 + ctags/optlib/terraform.c | 88 ++++++++++++++++++++++++++++++++++++++++ data/Makefile.am | 1 + data/filedefs/filetypes.HCL.conf | 39 ++++++++++++++++++ data/filetype_extensions.conf | 1 + meson.build | 1 + src/tagmanager/tm_parser.c | 18 ++++++++ src/tagmanager/tm_parser.h | 1 + src/tagmanager/tm_parsers.h | 3 +- tests/ctags/Makefile.am | 1 + tests/ctags/simple.tf | 29 +++++++++++++ tests/ctags/simple.tf.tags | 12 ++++++ tests/meson.build | 1 + 13 files changed, 195 insertions(+), 1 deletion(-) commit 2eb4b6c70ad2fab2cae6da25a2cdf0e30c5c4b14 Merge: 6a674d4cf 0e8f06e8a Author: Colomban Wendling Date: Tue Feb 18 13:15:02 2025 +0100 Merge pull request #4242 from b4n/doxygiwarn Silence spurious undocumented warnings when generating GI commit 6a674d4cfb1cf74cbccd38403e13670655dabb24 Merge: 707ad9799 838795b72 Author: Colomban Wendling Date: Tue Feb 18 13:14:12 2025 +0100 Merge pull request #4247 from techee/param_doc pluginextension: Add basic parameter documentation to avoid doxygen warnings. commit 838795b7295fd69c34bb45361a9f56aae0161a83 Author: Jiří Techet Date: Mon Feb 17 17:54:17 2025 +0100 pluginextension: Add basic parameter documentation to avoid doxygen warnings src/pluginextension.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 707ad9799f5ad07473277ae3000c39d69973a063 Merge: 0282e55d0 6010c380b Author: Colomban Wendling Date: Mon Feb 17 01:56:54 2025 +0100 Merge pull request #4241 from b4n/meson-deprecated meson: Stop using features deprecated in our base target version commit 0282e55d04f0c43068aa91adfd8064af8c7b3c48 Merge: 528b1a252 7f253f99e Author: Colomban Wendling Date: Mon Feb 17 01:50:33 2025 +0100 Merge pull request #4243 from b4n/ci-ubuntu CI: Update to Ubuntu 22.04 runners as 20.04 are getting deprecated commit 7f253f99e7461438c23350dc1cfd8536767e5cae Author: Colomban Wendling Date: Wed Feb 12 12:19:17 2025 +0100 CI: Update to Ubuntu 22.04 runners as 20.04 are getting deprecated See https://github.com/actions/runner-images/issues/11101 .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 528b1a25263124dfc3021d6bb40c0f52179cc57e Author: Colomban Wendling Date: Wed Feb 12 12:16:01 2025 +0100 Fix Doxygen markup for a return value src/symbols.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 0e8f06e8afa594a2b5247cd07267fdfe1eae8e30 Author: Colomban Wendling Date: Wed Feb 12 10:44:25 2025 +0100 Silence spurious undocumented warnings when generating GI Weirdly enough, if the HTML (or possibly LATEX?) output is not generated, Doxygen incorrectly warns about all parameters and return values not being documented. Workaround this by disabling undocumented warnings when generating GI which only produces XML, and thus triggers the bug. See https://stackoverflow.com/a/38745256 doc/Doxyfile.in | 4 ++-- doc/Makefile.am | 2 ++ doc/meson.build | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) commit 6010c380b255246bbe743072b4f77fb2e3f42017 Author: Colomban Wendling Date: Wed Feb 12 10:40:33 2025 +0100 meson: Stop using features deprecated in our base target version Stop using features deprecated in Meson 0.56, given we depend on it. meson.build | 6 +++--- tests/meson.build | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) commit b6e75c1bb7b427a040e34f0636bc3d848e4ebf7d Author: Enrico Tröger Date: Sun Feb 9 16:34:11 2025 +0100 Create geany.nsi with Meson meson.build | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 909e88ea6bad60708e9048df8363faa453bcda28 Merge: 716c681c0 ff0ce020f Author: Colomban Wendling Date: Thu Feb 6 23:11:42 2025 +0100 Merge pull request #4231 from techee/meson_test Add ctags unit test for meson commit 716c681c0c93506557cff478ae5483c3a53189d3 Merge: 645e9c6a2 8d47a666b Author: Jiří Techet Date: Thu Feb 6 23:02:55 2025 +0100 Merge pull request #4232 from techee/regex_unused regex: Remove unused variable commit ff0ce020f577d087fde3022d5cb719f0357e5074 Author: Jiří Techet Date: Sun Nov 24 23:31:10 2024 +0100 Add unit test for meson tests/ctags/Makefile.am | 1 + tests/ctags/simple.Meson_unittest | 48 ++++++++++++++++++++++++++++++++++ tests/ctags/simple.Meson_unittest.tags | 24 +++++++++++++++++ tests/meson.build | 1 + 4 files changed, 74 insertions(+) commit 645e9c6a2526757e164aebce792f2f5a5af1331d Merge: fd559b914 3f94f5e88 Author: Colomban Wendling Date: Thu Feb 6 22:17:41 2025 +0100 Merge pull request #4226 from b4n/kb-change-kaboom Fixes keybinding editing after bloopers from #4192. commit fd559b91434b49ec276a9c94ece7b498b03e49f7 Merge: be86af8f8 a595a37e5 Author: Colomban Wendling Date: Thu Feb 6 22:15:26 2025 +0100 Merge pull request #4225 from b4n/unittest-ext tests/ctags: Allow testing filetypes with no suffix patterns commit 8d47a666b806351cb922a3671dd70e521a727e9a Author: Jiří Techet Date: Thu Feb 6 16:15:48 2025 +0100 regex: Remove unused variable clang reports: ../ctags/gnu_regex/regex_internal.c:697:36: warning: variable 'q' set but not used [-Wunused-but-set-variable] 697 | const unsigned char *raw, *p, *q, *end; ctags/gnu_regex/regex_internal.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit be86af8f8012d9085dadc1fdf97f71038c39e5a7 Merge: 416714a74 a949e6952 Author: Colomban Wendling Date: Thu Feb 6 01:00:22 2025 +0100 Merge pull request #4221 from b4n/line-end-pref-sensitive Fix initial sensitivity of the inconsistent line end pref commit 416714a74b6e6e51430bd313003d8628d021557c Merge: 6f33aefb7 196659319 Author: Colomban Wendling Date: Thu Feb 6 00:49:11 2025 +0100 Merge pull request #4228 from techee/kr_fix Fix some warnings on macOS with clang commit 1966593193dffdd3d4c908b6fea42bffd7318c66 Author: Jiří Techet Date: Thu Feb 6 00:45:21 2025 +0100 Fix clang warning in regex.h Without this patch, clang generates warnings like the below because of the clash with the __used attribute: ./gnu_regex/regex.h:367:3: warning: declaration does not declare anything [-Wmissing-declarations] 367 | unsigned long int __REPB_PREFIX(used); | ^~~~~~~~~~~~~~~~~ CC optlib/meson.lo Patch provided by Colomban Wendling, thanks! ctags/gnu_regex/regex.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 265e32cc805d84db2f73b36325979c93ed791686 Author: Jiří Techet Date: Wed Feb 5 21:40:23 2025 +0100 Avoid warning about unused variable when using quartz src/socket.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eddaf38690b7e0119e46b5576f5ac0cd3e5ea221 Author: Jiří Techet Date: Wed Feb 5 21:39:53 2025 +0100 Remove unused variables ctags/parsers/geany_lcpp.c | 2 -- src/filetypes.c | 2 -- 2 files changed, 4 deletions(-) commit 6f33aefb7c51e99a7534de44ee97e91d8c23ddf2 Merge: 10efabbbc a253555f4 Author: Colomban Wendling Date: Thu Feb 6 00:30:01 2025 +0100 Merge pull request #4230 from b4n/string-plus-int Avoid clang string-plus-int warning commit 10efabbbc8151b384a9c1647b8079a6fe34d267e Merge: 6ac79a310 018b83e4f Author: Jiří Techet Date: Wed Feb 5 23:58:04 2025 +0100 Merge pull request #4205 from techee/win_dark_experiment Use themed title bar on Windows commit 6ac79a310c99d10c05967e57cd995e40f138f546 Merge: bebd35400 101bd516d Author: Jiří Techet Date: Wed Feb 5 23:51:42 2025 +0100 Merge pull request #4204 from techee/win_scintilla_cursor Workaround incorrect scaling of "reverse arrow" cursor under Windows and HiDPI screens commit 018b83e4fd4e286d873984a976acb587c5ef4aea Author: Jiří Techet Date: Sat Jan 11 22:55:32 2025 +0100 Use themed title bar on Windows Based on a patch from @GabrielFrigo4. Thanks! Modified to connect to the realized signal using a patch from Colomban Wendling. Thanks! src/search.c | 13 +++++++++++++ src/ui_utils.c | 5 +++++ src/win32.c | 38 ++++++++++++++++++++++++++++++++++++++ src/win32.h | 2 ++ 4 files changed, 58 insertions(+) commit bebd354001729f05c0b7012d6350640f3acfa7d5 Merge: be946d5d0 aeb2c5ed7 Author: Jiří Techet Date: Wed Feb 5 22:52:47 2025 +0100 Merge pull request #4224 from b4n/pref_size Allow shrinking the preferences dialog again commit a253555f4b89e459b2e9780d1b479d9657675006 Author: Colomban Wendling Date: Wed Feb 5 22:51:43 2025 +0100 Avoid clang string-plus-int warning Some versions of CLang warn when performing pointer arithmetic on strings, trying to avoid people thinking `+` is a string concatenation operator in C. It's kind of silly, but given we only seem to have one of those instances, just "fix" it using array syntax instead. Fixes #4229. tests/test_encodings.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bcba6305d39e2db9ece500ceeb0a4a9860b677ff Author: Jiří Techet Date: Wed Feb 5 19:44:07 2025 +0100 regex: Eliminate K&R function parameter syntax to avoid warnings ctags/gnu_regex/regcomp.c | 19 +++-------- ctags/gnu_regex/regexec.c | 80 +++++++++++++++-------------------------------- 2 files changed, 30 insertions(+), 69 deletions(-) commit be946d5d07b5c4582068580d06a3b940c4d378f0 Merge: 43e126597 c5e9d98a2 Author: Jiří Techet Date: Wed Feb 5 18:35:52 2025 +0100 Merge pull request #4181 from techee/macos_regex Use builtin regex on macOS for performance reasons commit c5e9d98a269475dc7b41222b744f14ca657630f2 Author: Jiří Techet Date: Thu Jan 2 22:59:13 2025 +0100 Use builtin regex on macOS for performance reasons configure.ac | 18 +++++++++++------- meson.build | 6 +++++- 2 files changed, 16 insertions(+), 8 deletions(-) commit 3f94f5e88262fea5f0c1b1ef72c27bbeb86a4f0a Author: Colomban Wendling Date: Wed Feb 5 00:41:42 2025 +0100 prefs: Edit the correct keybinding when there is a filter When the keybinding list is filtered and the keybinding cell is edited, store the value in the correct row instead of the one corresponding to the Nth visible one, but in the unfiltered tree. E.g., if filtering with `redo` it shows only 1 item, and editing it should change that one (Edit/Redo), not the first of the unfiltered list (File/New). Related-to: #4192 src/prefs.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit b43827e346a62e6bb1c9eaa02a7bf2f143a01dbc Author: Colomban Wendling Date: Wed Feb 5 00:33:29 2025 +0100 prefs: Fix crash changing a keybinding Fix crash when changing a keybinding using the key input dialog. Related-to: #4192 src/prefs.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit a595a37e582a117189d3c2aa6c541bd8d3676cb5 Author: Colomban Wendling Date: Mon Feb 3 18:32:51 2025 +0100 tests/ctags: Allow testing filetypes with no suffix patterns Filetypes need not have a filename suffix pattern (like e.g. `*.c`), but can have other form of patterns (e.g. `Makefile`, `meson.build`, etc.), or even no patterns at all. Such less common patterns make it impossible to match them in unittests, as filenames used there need to be of the form `test_*`. Fix this by adding a fake extension to each filetype that is the name of the filetype followed with `_unittest`, e.g. `CMake_unittest` or `Meson_unittest`. Fixes #4074. tests/ctags/runner.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit aeb2c5ed7406db3616a820655837bb225c115f05 Author: Colomban Wendling Date: Sat Feb 1 23:44:30 2025 +0100 Allow shrinking the preferences dialog again Use a more flexible way of setting the default preference window size to allow shrinking the window if desired. Related to #4195. data/geany.glade | 1 + src/prefs.c | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) commit 43e12659798fabc73e1c141c84261c84b977e48f Merge: 75cbdf714 6b41a0e6c Author: Jiří Techet Date: Fri Jan 31 22:12:49 2025 +0100 Merge pull request #4218 from techee/open_doc_warning_fix Re-convert filter_iter after removing/re-adding iter from/to store commit 6b41a0e6cdecf7656e290c8ae0c67bb1f7cb6915 Author: Jiří Techet Date: Tue Jan 28 00:19:08 2025 +0100 Re-convert filter_iter after removing/re-adding iter from/to store By openfiles_remove(doc); sidebar_openfiles_add(doc); doc->priv->iter (which is pointed to by iter) is re-created. This invalidates filter_iter which has to be re-converted from iter to avoid runtime warning. src/sidebar.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit 75cbdf714039eba3d02fe35dc132f5ccd1b436c4 Merge: 1f6590a6c 85dd68883 Author: Colomban Wendling Date: Fri Jan 31 00:22:50 2025 +0100 Merge pull request #4217 from techee/glade_save Re-save geany.glade with Glade commit a949e69524c6e467ed74075a0ffc7c12b3a510c8 Author: Colomban Wendling Date: Fri Jan 31 00:16:19 2025 +0100 Fix initial sensitivity of the inconsistent line end pref src/prefs.c | 1 + 1 file changed, 1 insertion(+) commit 85dd688836019b8d52594b3ea286e007e6732420 Author: Jiří Techet Date: Sun Jan 26 22:18:10 2025 +0100 Re-save geany.glade with Glade Seems to always generate this set of diffs (which are possibly a result of merging some old PRs made with older Glade version). data/geany.glade | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) commit 1f6590a6c941cbd4038058778b331a4e74dcde72 Merge: 3bd3acf35 bb6bfdffa Author: Jiří Techet Date: Sun Jan 26 22:14:00 2025 +0100 Merge pull request #4210 from techee/doc_filter Add filter for open documents sidebar item commit bb6bfdffaf9550a3e5da9d6a74146987c586c7f9 Author: Jiří Techet Date: Wed Jan 22 11:55:13 2025 +0100 Document the filtering feature The documentation just refers to the Symbols tab documentation which is more or less identical so there's no need of duplicated text. doc/geany.txt | 1 + 1 file changed, 1 insertion(+) commit f54843ac4f341774bb44245791e1f0e86e717cc5 Author: Jiří Techet Date: Mon Jan 20 16:59:35 2025 +0100 Remove redundant sidebar_openfiles_select() There is already sidebar_select_openfiles_item() which does more or less the same (plus tree expanding and scrolling to the given item which we probably always want). src/document.c | 2 +- src/sidebar.c | 19 +------------------ src/sidebar.h | 2 -- 3 files changed, 2 insertions(+), 21 deletions(-) commit 74d3b271fbb2e1ba63239f84e166557720f43794 Author: Jiří Techet Date: Sun Jan 19 20:54:46 2025 +0100 Add code for filtering document tree data/geany.glade | 40 ++++++++++++++++++++++++++++----- src/callbacks.c | 31 ++++++++++++++++++++++++++ src/callbacks.h | 6 +++++ src/sidebar.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- src/sidebar.h | 2 ++ 5 files changed, 141 insertions(+), 6 deletions(-) commit 3bd3acf35b463e9219017dc4a4c2ee5d563f7260 Merge: c1e25dafd 433ef5515 Author: Jiří Techet Date: Sun Jan 26 21:15:00 2025 +0100 Merge pull request #4199 from techee/glib_version Bump required glib version to 2.56 commit c1e25dafd6f2ae270f082caccb1a1188cc57b883 Merge: eb5c3fb35 93c9ea64f Author: Enrico Tröger Date: Sun Jan 26 17:29:50 2025 +0100 Merge pull request #4209 from eht16/saveactions_fix_new_files_from_cli SaveActions: Ignore files open from CLI for InstantSave and PUD commit 7c19704c186b10828be9513f320a516c5bc2c6c6 Author: Jiří Techet Date: Sun Jan 19 20:37:48 2025 +0100 Move code for selecting document in sidebar to sidebar.c This removes the internal logic from document.c and moves it to sidebar.c where it belongs. src/document.c | 16 +--------------- src/sidebar.c | 17 +++++++++++++++++ src/sidebar.h | 2 ++ 3 files changed, 20 insertions(+), 15 deletions(-) commit b2e70fd16b678f2954e54ed84eef0df1b7c22ad8 Author: Jiří Techet Date: Sun Jan 19 20:31:07 2025 +0100 Set GtkTreeModelFilter as a model for document tree This commit doesn't perform any filtering yet - it only uses GtkTreeModelFilter and makes sure that existing functionality works as before. The reason for the additional changes is the fact that some tree operations work on top of GtkTreeIter/GtkTreePath referring the filtered model (typically "visual" things like item selection or expanding/collapsing) while other operations work on top of the original model/store - typically insertions/deletions/modifications of the stored data. When needed, conversions from one type of iterator/path to the other were added. src/document.c | 14 +++++-- src/sidebar.c | 116 ++++++++++++++++++++++++++++++++++++++++++--------------- src/sidebar.h | 2 + 3 files changed, 99 insertions(+), 33 deletions(-) commit eb5c3fb35110c21d7e28a88c24a8606013b24d3d Merge: 1206c1bb0 6dbcd514c Author: Enrico Tröger Date: Sun Jan 19 15:25:22 2025 +0100 Merge pull request #4192 from eht16/issue2848_add_filter_for_keybindings Add filter for keybindings in preferences dialog commit 6dbcd514c5f86c016c631bbb4423085290321034 Author: Enrico Tröger Date: Sun Jan 5 11:03:08 2025 +0100 Preferences: Retitle assign keybinding dialog title Related to #4185. src/prefs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 54d67e308394a5d88ed52515d101f786ed5f22a7 Author: Enrico Tröger Date: Sun Jan 5 11:02:21 2025 +0100 Plugin Manager: Bind Ctrl-F shortcut to focus the filter entry src/plugins.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 71f5865f080dd370d87dbab5987ea3749f352212 Author: Enrico Tröger Date: Sun Jan 5 11:01:39 2025 +0100 Preferences: add filter entry for keybindings Closes #2848. data/geany.glade | 18 ++++++++- src/prefs.c | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 129 insertions(+), 10 deletions(-) commit 93c9ea64fd78bd138444dc13924d2438a3012d10 Author: Enrico Tröger Date: Sun Jan 19 12:52:39 2025 +0100 SaveActions: Ignore files open from CLI for InstantSave and PUD When opening new files via command line, those files should be ignored by Instant Save and Persistent Untitled Documents to not override the provided filename and should not be treated as new files. plugins/saveactions.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1206c1bb035157963e46469bf3d0ab34494b8cf1 Merge: 49b3bdc6a 53a09b5b8 Author: Jiří Techet Date: Wed Jan 15 16:08:55 2025 +0100 Merge pull request #4195 from techee/pref_size Set some reasonable minimum width for the preferences dialog commit 49b3bdc6a7d9009b61c80cfde6222d7767006331 Merge: 89c036a98 5350136b4 Author: Jiří Techet Date: Wed Jan 15 15:12:52 2025 +0100 Merge pull request #4095 from techee/scss Add support for SCSS/LESS commit 89c036a98d419b543d9f506524cf2eaf81ca6c6b Merge: 5f0b74661 cd097ad14 Author: Jiří Techet Date: Wed Jan 15 15:12:18 2025 +0100 Merge pull request #3934 from techee/toml Add TOML support commit 101bd516de3da8f3e47056aa72cdbbaf5685fa60 Author: Jiří Techet Date: Tue Jan 14 22:21:24 2025 +0100 Workaround incorrect scaling of "reverse arrow" cursor under Windows and HiDPI screens The GDK_RIGHT_PTR cursor is provided only by GTK - there's no native Windows cursor of this shape so GTK renders the cursor by itself from the cursor theme bitmap. The code doing this is apparently buggy and does not take into account HiDPI screens so on a screen with 300% scaling, the cursor is 3x smaller. Workaround this by using GDK_HAND2 which maps to a native Windows cursor that doesn't suffer from this problem. See https://sourceforge.net/p/scintilla/bugs/2460/ scintilla/gtk/PlatGTK.cxx | 6 ++++++ 1 file changed, 6 insertions(+) commit 433ef5515eb7f420b24a4ca69b9ea4f7d977b504 Author: Jiří Techet Date: Thu Jan 9 11:10:58 2025 +0100 Replace deprecated GTrashStack with GSList Using GTrashStack after the glib version bump produces warnings now. Replace it with GSList (as GTrashStack is a list internally anyway and in fact, GTrashStack wasn't used in Geany for its intended purpose; for undo/redo Geany just needs a stack-like behavior). src/document.c | 54 +++++++++++++++++++++++++++++++++------------------ src/documentprivate.h | 4 ++-- 2 files changed, 37 insertions(+), 21 deletions(-) commit 8280bc2c32485083e79aa88b3369790c38d372fd Author: Jiří Techet Date: Thu Jan 9 11:07:39 2025 +0100 Bump required glib version to 2.56 Also remove now unneeded GLIB_CHECK_VERSION() checks. m4/geany-gtk.m4 | 6 +++--- meson.build | 6 +++--- src/libmain.c | 11 ----------- src/spawn.c | 4 ---- src/tagmanager/tm_workspace.c | 25 ------------------------- 5 files changed, 6 insertions(+), 46 deletions(-) commit 720b79a112a2199d6668ee45d3aa87c12514b4f8 Author: Jiří Techet Date: Wed Jan 8 18:44:39 2025 +0100 Add adwaita-icon-theme-legacy package scripts/gtk-bundle-from-msys2.sh | 2 ++ 1 file changed, 2 insertions(+) commit c7f592e1760832b9651bb4233c8fcfbd8384ca03 Author: Jiří Techet Date: Sun Jan 5 21:06:43 2025 +0100 Make toolbar icons small by default This makes the toolbar icons look more similar to other Windows applications. scripts/gtk-bundle-from-msys2.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cd097ad1495156079ee48b7890e7acb76e7bb594 Author: Jiří Techet Date: Tue Nov 26 20:03:22 2024 +0100 Move languages without strings to the end of the switch src/highlighting.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 573b8e158b0459c1023ed9da2371828910ce2368 Author: Jiří Techet Date: Fri Aug 16 14:14:18 2024 +0200 iniconf: some adjustments for parsing TOML This patch: - allows . and - in keys - improve parsing of TOML [[arrays_of_tables]] - adds support for 'single quoted keys' = true and "double quoted keys" = true See https://github.com/universal-ctags/ctags/pull/4099 ctags/parsers/iniconf.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 606f65b458e0436c6a5a17617352c68aa20fd324 Author: Jiří Techet Date: Tue Aug 13 15:21:55 2024 +0200 Add TOML support This commit adds TOML configuration language support to Geany. It uses the recently merged Scintilla TOML lexer; for ctags parsing it uses the conf file parser which works reasonably well for TOML as well. See https://github.com/ScintillaOrg/lexilla/pull/261 Fixes #1268 data/Makefile.am | 1 + data/filedefs/filetypes.toml | 57 +++++ data/filetype_extensions.conf | 1 + meson.build | 1 + scintilla/Makefile.am | 1 + scintilla/lexilla/lexers/LexTOML.cxx | 482 +++++++++++++++++++++++++++++++++++ scintilla/lexilla/src/Lexilla.cxx | 1 + scintilla/scintilla_changes.patch | 3 +- src/filetypes.c | 1 + src/filetypes.h | 1 + src/highlighting.c | 11 + src/highlightingmappings.h | 27 ++ 12 files changed, 586 insertions(+), 1 deletion(-) commit 5f0b746613c87095ff4670929bb356092da43f17 Merge: f38709bd9 631c5d775 Author: Jiří Techet Date: Wed Jan 8 13:16:25 2025 +0100 Merge pull request #4168 from techee/scintilla_update Update to Scintilla 5.5.4 and Lexilla 5.4.2 commit 53a09b5b8f99ffe76b4312c324556e9552eecc2a Author: Jiří Techet Date: Sun Jan 5 19:54:23 2025 +0100 Set some reasonable minimum width for the preferences dialog src/prefs.c | 1 + 1 file changed, 1 insertion(+) commit f38709bd967c8021771942972c7b0dcfa4ccb20c Merge: 518fc6ea9 d3cb1f16b Author: Jiří Techet Date: Sun Jan 5 14:28:57 2025 +0100 Merge pull request #4069 from techee/geany_quit_signal Add the geany-before-quit signal emitted before Geany is quitting commit d3cb1f16bb275147edaf98a49fdf7b7104c90a97 Author: Jiří Techet Date: Sat Nov 23 17:28:52 2024 +0100 Remove misleading main_status.quitting assignment main_status.quitting = TRUE is already set in main_quit() which is the only caller of do_main_quit() and the assignment here makes the false impression it isn't set for the code above it. src/libmain.c | 2 -- 1 file changed, 2 deletions(-) commit 012ce4029c1de65618ac5d2757fa296f168c23a6 Author: Jiří Techet Date: Sat Nov 23 12:12:41 2024 +0100 Add the geany-before-quit signal emitted before Geany is quitting doc/pluginsignals.c | 12 ++++++++++++ src/geanyobject.c | 6 ++++++ src/geanyobject.h | 1 + src/libmain.c | 2 ++ src/plugindata.h | 2 +- 5 files changed, 22 insertions(+), 1 deletion(-) commit 518fc6ea99b64bce595f0b16be99e5d70d5e1ad9 Merge: e76af66ae fed6542c3 Author: Enrico Tröger Date: Sun Jan 5 11:44:44 2025 +0100 Merge pull request #4190 from eht16/windows_gtk_bundle_curl_retry Windows: Let "curl" retry package downloads and show errors commit 54551a2879e61fc43b59029406a8684f85df69db Author: Enrico Tröger Date: Sun Jan 5 10:59:05 2025 +0100 Move UTF-8 capable sub string matching from plugin manager to utils src/plugins.c | 44 +------------------------------------------- src/utils.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ src/utils.h | 2 ++ 3 files changed, 51 insertions(+), 43 deletions(-) commit e76af66aec5b4e941444b3d3b490b755576456bb Merge: ddcfcbd8a 015e488fe Author: Enrico Tröger Date: Sun Jan 5 11:34:44 2025 +0100 Merge pull request #4088 from eht16/windows_add_new_dependencies Windows add new dependencies commit 015e488fed9b91e837a6197a4d9cd469ba4e8c78 Author: Enrico Tröger Date: Thu Jan 2 17:53:13 2025 +0100 Windows: Add "shared-mime-info" dependency to GTK bundle scripts/gtk-bundle-from-msys2.sh | 2 ++ 1 file changed, 2 insertions(+) commit af3ac3d1dc171012b94f28f80dc2758ec752c0b5 Author: Enrico Tröger Date: Wed Jan 1 13:56:40 2025 +0100 Revert "CI: Copy used C++ runtime library into the GTK bundle" This reverts commit 354c7ba4e66803f16d9e0452b7829d47cb742587. After upgrading the Docker base image to Debian Trixie and so using newer cross compiler toolchain versions, this hack might not be necessary any longer. scripts/ci_mingw64_geany.sh | 7 ------- 1 file changed, 7 deletions(-) commit 53c6ebbd119d0eb16bb49553a2ad1d7890410167 Author: Enrico Tröger Date: Sat Nov 30 12:41:37 2024 +0100 Windows: Include gspawn-win64-helper*.exe binaries into GTK bundle scripts/gtk-bundle-from-msys2.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ad9446759a71214b7b63517a42b4df329a829bb5 Author: Enrico Tröger Date: Sat Nov 30 12:41:11 2024 +0100 Windows: Add new dependencies to GTK bundle Closes #4084. scripts/gtk-bundle-from-msys2.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit ddcfcbd8a5217486087a26efd2fb832c76adf258 Merge: 3eeb361b6 4cf437f31 Author: Jiří Techet Date: Sat Jan 4 19:38:22 2025 +0100 Merge pull request #4096 from techee/search_focus Focus the search/replace dialog after the wrap dialog is dismissed commit fed6542c3528d1b913fafed7dc0510ca1789be42 Author: Enrico Tröger Date: Sat Jan 4 15:04:54 2025 +0100 Windows: Let "curl" retry package downloads and show errors scripts/gtk-bundle-from-msys2.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3eeb361b6a2e29cdbc473cf4dc277cbe5b23283b Merge: 2e8456a00 bb1ebf675 Author: Frank Lanitz Date: Fri Dec 27 14:26:21 2024 +0100 Merge pull request #3820 from ntrel/doc-search [docs] Add Document List tips commit 631c5d7752cd3ee5beafb0d7f931ac273ca11d32 Author: Jiří Techet Date: Sun Dec 22 22:36:22 2024 +0100 Update HACKING with Lexilla update in addition to Scintilla HACKING | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) commit 2e8456a00fffc00a128a184c4b5a966848a0b4d0 Merge: 7a017c764 6840f130e Author: Jiří Techet Date: Sun Dec 22 20:10:24 2024 +0100 Merge pull request #4149 from techee/date_dialog_width Make the label in custom date format dialog shorter commit 72fa1b457e932bb70c3380f157792a1b36ad9cb5 Author: Jiří Techet Date: Fri Dec 20 23:34:35 2024 +0100 Add mappings for newly introduced styles Also fixes incorrectly spelled (wrt. the config file) SCE_RUST_BYTESTRINGR name. data/filedefs/filetypes.html | 2 +- data/filedefs/filetypes.rust | 2 ++ src/highlighting.c | 4 ++++ src/highlightingmappings.h | 8 ++++++-- 4 files changed, 13 insertions(+), 3 deletions(-) commit 68b6a36f9d0f692cb40806ebce3e9ed9e49251f2 Author: Jiří Techet Date: Fri Dec 20 22:38:16 2024 +0100 Update to Scintilla 5.5.4 and Lexilla 5.4.2 meson.build | 4 + scintilla/Makefile.am | 4 + scintilla/gtk/PlatGTK.cxx | 30 +- scintilla/gtk/ScintillaGTK.cxx | 14 +- scintilla/gtk/ScintillaGTK.h | 2 +- scintilla/include/ILoader.h | 13 + scintilla/include/Scintilla.h | 42 +- scintilla/include/Scintilla.iface | 102 ++- scintilla/include/ScintillaCall.h | 41 +- scintilla/include/ScintillaMessages.h | 27 + scintilla/include/ScintillaTypes.h | 16 + scintilla/lexilla/include/Lexilla.h | 16 +- scintilla/lexilla/include/SciLexer.h | 2 + scintilla/lexilla/lexers/LexAU3.cxx | 2 +- scintilla/lexilla/lexers/LexAbaqus.cxx | 2 +- scintilla/lexilla/lexers/LexAda.cxx | 2 +- scintilla/lexilla/lexers/LexAsciidoc.cxx | 2 +- scintilla/lexilla/lexers/LexAsm.cxx | 89 ++- scintilla/lexilla/lexers/LexBash.cxx | 86 ++- scintilla/lexilla/lexers/LexBasic.cxx | 6 +- scintilla/lexilla/lexers/LexBatch.cxx | 74 ++- scintilla/lexilla/lexers/LexCIL.cxx | 2 +- scintilla/lexilla/lexers/LexCOBOL.cxx | 262 ++++---- scintilla/lexilla/lexers/LexCPP.cxx | 313 +++++---- scintilla/lexilla/lexers/LexCSS.cxx | 2 +- scintilla/lexilla/lexers/LexCaml.cxx | 2 +- scintilla/lexilla/lexers/LexCmake.cxx | 2 +- scintilla/lexilla/lexers/LexCoffeeScript.cxx | 2 +- scintilla/lexilla/lexers/LexD.cxx | 5 +- scintilla/lexilla/lexers/LexDart.cxx | 2 +- scintilla/lexilla/lexers/LexDiff.cxx | 2 +- scintilla/lexilla/lexers/LexErlang.cxx | 2 +- scintilla/lexilla/lexers/LexForth.cxx | 2 +- scintilla/lexilla/lexers/LexFortran.cxx | 4 +- scintilla/lexilla/lexers/LexGDScript.cxx | 7 +- scintilla/lexilla/lexers/LexHTML.cxx | 690 ++++++++++++-------- scintilla/lexilla/lexers/LexHaskell.cxx | 4 +- scintilla/lexilla/lexers/LexJulia.cxx | 7 +- scintilla/lexilla/lexers/LexLaTeX.cxx | 2 +- scintilla/lexilla/lexers/LexLisp.cxx | 2 +- scintilla/lexilla/lexers/LexLua.cxx | 419 ++++++++---- scintilla/lexilla/lexers/LexMake.cxx | 2 +- scintilla/lexilla/lexers/LexMarkdown.cxx | 2 +- scintilla/lexilla/lexers/LexMatlab.cxx | 4 +- scintilla/lexilla/lexers/LexNim.cxx | 2 +- scintilla/lexilla/lexers/LexNsis.cxx | 2 +- scintilla/lexilla/lexers/LexNull.cxx | 2 +- scintilla/lexilla/lexers/LexPO.cxx | 2 +- scintilla/lexilla/lexers/LexPascal.cxx | 2 +- scintilla/lexilla/lexers/LexPerl.cxx | 90 ++- scintilla/lexilla/lexers/LexPowerShell.cxx | 2 +- scintilla/lexilla/lexers/LexProps.cxx | 50 +- scintilla/lexilla/lexers/LexPython.cxx | 197 +++--- scintilla/lexilla/lexers/LexR.cxx | 5 +- scintilla/lexilla/lexers/LexRaku.cxx | 7 +- scintilla/lexilla/lexers/LexRuby.cxx | 29 +- scintilla/lexilla/lexers/LexRust.cxx | 152 +++-- scintilla/lexilla/lexers/LexSQL.cxx | 115 ++-- scintilla/lexilla/lexers/LexSmalltalk.cxx | 13 +- scintilla/lexilla/lexers/LexTCL.cxx | 2 +- scintilla/lexilla/lexers/LexTxt2tags.cxx | 2 +- scintilla/lexilla/lexers/LexVHDL.cxx | 2 +- scintilla/lexilla/lexers/LexVerilog.cxx | 4 +- scintilla/lexilla/lexers/LexVisualProlog.cxx | 2 +- scintilla/lexilla/lexers/LexYAML.cxx | 2 +- scintilla/lexilla/lexers/LexZig.cxx | 2 +- scintilla/lexilla/lexlib/CatalogueModules.h | 6 +- scintilla/lexilla/lexlib/CharacterCategory.cxx | 106 ++- scintilla/lexilla/lexlib/CharacterCategory.h | 12 +- scintilla/lexilla/lexlib/CharacterSet.cxx | 14 + scintilla/lexilla/lexlib/CharacterSet.h | 1 + scintilla/lexilla/lexlib/InList.cxx | 37 ++ scintilla/lexilla/lexlib/InList.h | 18 + scintilla/lexilla/lexlib/LexAccessor.cxx | 13 +- scintilla/lexilla/lexlib/LexAccessor.h | 8 +- scintilla/lexilla/lexlib/LexerSimple.cxx | 14 +- scintilla/lexilla/lexlib/LexerSimple.h | 4 +- scintilla/lexilla/lexlib/OptionSet.h | 9 + scintilla/lexilla/lexlib/SparseState.h | 3 +- scintilla/lexilla/lexlib/StyleContext.cxx | 6 +- scintilla/lexilla/lexlib/StyleContext.h | 9 +- scintilla/lexilla/lexlib/SubStyles.h | 23 +- scintilla/lexilla/lexlib/WordList.cxx | 10 +- scintilla/lexilla/lexlib/WordList.h | 4 +- scintilla/lexilla/src/Lexilla.cxx | 282 ++++---- scintilla/lexilla/version.txt | 2 +- scintilla/src/AutoComplete.cxx | 83 +-- scintilla/src/AutoComplete.h | 5 +- scintilla/src/CallTip.cxx | 39 +- scintilla/src/CallTip.h | 2 +- scintilla/src/CellBuffer.cxx | 551 +++++++--------- scintilla/src/CellBuffer.h | 113 ++-- scintilla/src/ChangeHistory.cxx | 157 +++-- scintilla/src/ChangeHistory.h | 30 +- scintilla/src/CharacterCategoryMap.cxx | 106 ++- scintilla/src/CharacterCategoryMap.h | 12 +- scintilla/src/Decoration.cxx | 1 + scintilla/src/Document.cxx | 462 ++++++++------ scintilla/src/Document.h | 55 +- scintilla/src/EditModel.cxx | 1 + scintilla/src/EditModel.h | 3 +- scintilla/src/EditView.cxx | 69 +- scintilla/src/Editor.cxx | 851 +++++++++++++++---------- scintilla/src/Editor.h | 15 +- scintilla/src/Geometry.h | 40 +- scintilla/src/Indicator.cxx | 1 + scintilla/src/Indicator.h | 6 +- scintilla/src/KeyMap.cxx | 1 + scintilla/src/LineMarker.cxx | 1 + scintilla/src/LineMarker.h | 6 +- scintilla/src/MarginView.cxx | 2 +- scintilla/src/Partitioning.h | 2 +- scintilla/src/PerLine.cxx | 1 + scintilla/src/Platform.h | 7 +- scintilla/src/PositionCache.cxx | 15 +- scintilla/src/PositionCache.h | 4 +- scintilla/src/RESearch.cxx | 237 ++++--- scintilla/src/RESearch.h | 25 +- scintilla/src/RunStyles.cxx | 26 +- scintilla/src/ScintillaBase.cxx | 36 +- scintilla/src/ScintillaBase.h | 4 + scintilla/src/Selection.cxx | 49 +- scintilla/src/Selection.h | 16 +- scintilla/src/SparseVector.h | 4 +- scintilla/src/Style.cxx | 9 +- scintilla/src/Style.h | 1 + scintilla/src/UndoHistory.cxx | 635 ++++++++++++++++++ scintilla/src/UndoHistory.h | 160 +++++ scintilla/src/UniConversion.cxx | 32 +- scintilla/src/UniConversion.h | 17 +- scintilla/src/ViewStyle.cxx | 135 ++-- scintilla/src/ViewStyle.h | 1 + scintilla/src/XPM.cxx | 3 +- scintilla/version.txt | 2 +- 134 files changed, 4832 insertions(+), 2785 deletions(-) commit 56fcf568afb170b34195834b0c8aaa8242ff54d6 Author: Jiří Techet Date: Wed Dec 18 14:54:36 2024 +0100 Remove now unused ui_hbutton_box_copy_layout() src/ui_utils.c | 27 --------------------------- src/ui_utils.h | 2 -- 2 files changed, 29 deletions(-) commit 7a017c764038bcdfcb99db7365c3196fd8aebdbf Merge: 1e8f519b0 2b03a7c08 Author: Jiří Techet Date: Fri Dec 13 14:27:24 2024 +0100 Merge pull request #4071 from dkondor/xdg_activation Pass DESKTOP_STARTUP_ID via the socket to focus window commit 1e8f519b080adeceb222fa812e5fed67b8ac2b55 Merge: 453ece0e7 19ff75d22 Author: Jiří Techet Date: Fri Dec 13 14:26:37 2024 +0100 Merge pull request #4148 from techee/powershell_fix powershell: use the latest parser from ctags supporting herestrings commit 6840f130e68df9387369dfc3f203b53452b49627 Author: Jiří Techet Date: Wed Dec 11 14:09:52 2024 +0100 Make the label in custom date format dialog shorter Fixes #3625. src/ui_utils.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 453ece0e730d58958f4c5cf08ee7b091b43cf076 Merge: 397bb5eac b6244c6b4 Author: Jiří Techet Date: Mon Dec 9 12:29:45 2024 +0100 Merge pull request #4079 from techee/plugin_manager_warning Fix GTK runtime errors generated by the plugin manager commit 397bb5eac38b24bbbc3b8c434766dc109af2d7f8 Merge: 2ac0280c0 e6c39c6e9 Author: Jiří Techet Date: Mon Dec 9 12:28:29 2024 +0100 Merge pull request #4061 from techee/saveactions_str Split label in saveactions preferences to make the dialog less wide commit 19ff75d22f6cfcb09e7d3a4ec173a49fb045e157 Author: Jiří Techet Date: Sun Dec 8 18:37:21 2024 +0100 powershell: use the latest parser from ctags Fixes 4089. ctags/parsers/powershell.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) commit 2ac0280c0c7e76304678c613e0021adb01b7cee0 Merge: 5ed56a09f 8ceddadfd Author: Jiří Techet Date: Sat Dec 7 17:38:58 2024 +0100 Merge pull request #4099 from techee/pref_wrap_label Move long label from glade to prefs.c and use geany_wrap_label for it commit 8ceddadfde2f79dab8a3648e1e1588faa0592c90 Author: Jiří Techet Date: Thu Dec 5 22:19:20 2024 +0100 Move long label from glade to prefs.c and use geany_wrap_label for it This is done similarly to other long strings from the prefs dialog. Makes the dialog less wide under some locales. data/geany.glade | 15 --------------- src/prefs.c | 6 ++++++ 2 files changed, 6 insertions(+), 15 deletions(-) commit 3b1a11fa080e70256b135bab4fc26a09e425b687 Author: Jiří Techet Date: Thu Dec 5 18:50:34 2024 +0100 Add padding between the "Find all" expander and "Close dialog" below it This patch adds 6px between them so they don't appear so close to each other. src/search.c | 2 ++ 1 file changed, 2 insertions(+) commit f7088c1d6520d6f1d486e7dfed7a0fcc240bc453 Author: Jiří Techet Date: Thu Dec 5 18:44:52 2024 +0100 Drop homogenous sizing for checkbox buttons The hbox into which the 3+3 checkboxes with options are stored is spaced homogenously right now. In some locales (German for instance) some translation in the first column is much larger than all the tranlsations in the second column which with the homogenous sizing leads to a lot of wasted space in the second column and too wide dialog. This patch fixes that by dropping the homogenous spacing. src/search.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit d0c593693af773ab66eab590a0f04ce2577b117f Author: Jiří Techet Date: Thu Dec 5 17:47:27 2024 +0100 Drop homogenous spacing of additional buttons in search/replace dialog In some languages, the text in the buttons of the search-replace dialog is quite long. For instance, in Czech the "In session" button contains "Ve všech otevřených dokumentech" (in all open documents). Homogenous spacing of all the buttons means that all of them have the width of the longest string which makes the search dialog extremely wide. This patch drops the use of the GtkButtonBox which uses homogenous spacing and uses ordinary GtkBox instead. However, to semi-simulate the "homogenous" appearance of buttons, the patch sets the minimum width of the buttons to 130 so all buttons whose text fits to this width have the same size (for most languages I tried, nearly all strings fit this width). Note that the buttons in the action area of the dialog are still sized homogenously as I didn't find a way to modify this behavior. However, this doesn't seem to be a problem in practice with the languages I tested. src/search.c | 83 +++++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 51 insertions(+), 32 deletions(-) commit 4cf437f31c7133786642889214c7f48b1e35c935 Author: Jiří Techet Date: Wed Dec 4 21:21:54 2024 +0100 Remove parent argument from document_find_text() and search_show_wrap_dialog() Since find/replace dialogs are hidden now when the wrap dialog is shown, the parent of the wrap dialog is always the main window and the parameter is unnecessary. src/document.c | 10 +++++----- src/document.h | 2 +- src/search.c | 17 +++++++---------- src/search.h | 4 ++-- 4 files changed, 15 insertions(+), 18 deletions(-) commit e171d2a1d764717d0b359feadfe4b90399f9735d Author: Jiří Techet Date: Wed Dec 4 21:08:59 2024 +0100 Hide find/replace dialogs when wrap dialog is shown These dialogs are restored once the wrap dialog is closed. In addition to a cleaner interface where two dialogs are not displayed on top of each other, once the find/replace dialog is restored, it gains focus so users can keep searching without interruption (without this patch, the editor window gets focus so users have to press Ctrl+F again to get to the search dialog again). src/search.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 83c1ad8ae46b7b1b684176b5030109064a052491 Author: Jiří Techet Date: Fri Nov 29 00:34:55 2024 +0100 Move show_wrap_search_dialog() to search.h This will allow the wrap dialog access search and replace dialogs in the following commits. src/document.c | 38 +------------------------------------- src/search.c | 37 ++++++++++++++++++++++++++++++++++++- src/search.h | 4 +++- 3 files changed, 40 insertions(+), 39 deletions(-) commit 5350136b43f0fe0896c1a71f57176798f5060de4 Author: Jiří Techet Date: Wed Dec 4 15:59:13 2024 +0100 Don't use CSS parser for LESS It doesn't seem to produce very good results. In any case, add commented-out options to use either CSS or SCSS parsers so users can experiment with them. data/filedefs/filetypes.LESS.conf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit fe9cf586ca4f09a5814886208b92e15285cd2d2b Author: Jiří Techet Date: Wed Dec 4 15:57:58 2024 +0100 Use SCSS ctags optlib parser ctags/Makefile.am | 1 + ctags/optlib/scss.c | 212 ++++++++++++++++++++++++++++++++++++++ data/filedefs/filetypes.SCSS.conf | 2 +- meson.build | 1 + src/tagmanager/tm_parser.c | 19 ++++ src/tagmanager/tm_parser.h | 1 + src/tagmanager/tm_parsers.h | 3 +- tests/ctags/Makefile.am | 1 + tests/ctags/simple.scss | 89 ++++++++++++++++ tests/ctags/simple.scss.tags | 38 +++++++ tests/meson.build | 1 + 11 files changed, 366 insertions(+), 2 deletions(-) commit fdef23cc65ee7e5743efd2e124760ff47522f07b Author: Jiří Techet Date: Wed Dec 4 14:43:34 2024 +0100 Minor updates to match Geany style data/filedefs/filetypes.LESS.conf | 3 --- data/filedefs/filetypes.SCSS.conf | 3 --- data/filetype_extensions.conf | 4 ++-- 3 files changed, 2 insertions(+), 8 deletions(-) commit 8594bb7bd722acdbb32bf3942f81245660fcb9a3 Author: Kirill Zhumarin Date: Sat Apr 1 22:07:10 2023 +0300 fix file naming data/Makefile.am | 4 ++-- data/filedefs/{filetypes.less.conf => filetypes.LESS.conf} | 0 data/filedefs/{filetypes.scss.conf => filetypes.SCSS.conf} | 0 3 files changed, 2 insertions(+), 2 deletions(-) commit 8f9e31a12c9c7fe1d7a69570bee0b120cae09796 Author: Kirill Zhumarin Date: Sat Apr 1 17:47:13 2023 +0300 add less and scss file types data/Makefile.am | 2 ++ data/filedefs/filetypes.less.conf | 19 +++++++++++++++++++ data/filedefs/filetypes.scss.conf | 26 ++++++++++++++++++++++++++ data/filetype_extensions.conf | 2 ++ 4 files changed, 49 insertions(+) commit 5ed56a09f9bdaf882d33aa37bb8762129175b61d Author: Azq2 Date: Wed Dec 4 01:29:22 2024 +0300 update JS keywords and extensions (#3440) Co-authored-by: Jiří Techet data/filedefs/filetypes.javascript | 2 +- data/filetype_extensions.conf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit e6c39c6e92a8c70e0bfb307bd9241c6f836dd021 Author: Jiří Techet Date: Sat Nov 30 16:31:03 2024 +0100 Make saveaction preference strings shorter The existing strings make the dialog too wide and they are a little too verbose. I believe the substitutes contain roughly the same information value. plugins/saveactions.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 34c97386f471df7dc923145dda30df3d879f0c66 Merge: ce817f715 896dfa13f Author: Jiří Techet Date: Sat Nov 30 16:04:38 2024 +0100 Merge pull request #4077 from LiquidCake/saveactions_persistent_temp_files_doc persistent-temp-files-plugin: (persistent-untitled-documents) added p… commit ce817f7159aa4ff3ae7489adc3f6e8a5f53ac1e3 Merge: 22a8a1f55 b40afcb85 Author: Jiří Techet Date: Sat Nov 30 16:03:24 2024 +0100 Merge pull request #3911 from LiquidCake/saveactions_persistent_temp_files "persistent temp files" feature for saveactions plugin (sqashed PR) commit b40afcb856a222b1217b953bfadc2267c3b2bb42 Author: Jiří Techet Date: Thu Nov 28 14:49:37 2024 +0100 Make padding identical to instant save settings in the dialog plugins/saveactions.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 99a292e9b389f954c2c37729e63a3f5a84cb5404 Author: Jiří Techet Date: Thu Nov 28 09:42:46 2024 +0100 Make instantsave and persistent document save work for templates and similar We don't want to convert non-empty documents to instant save or persistent untitled documents immediately since these may just be temporary files with some information that the user wants to close after their creation. Instead, these converted to files only after they are modified for the first time. plugins/saveactions.c | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) commit a6d1346a76b17deb2180ad04ea62c64d059f3c6d Author: LiquidCake Date: Wed Nov 27 21:47:58 2024 +0200 autosave: fixed inability to disabled feature plugins/saveactions.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 8cb2871dc2613ee41a747c5ccf049696ec3dcb4c Author: LiquidCake Date: Wed Nov 27 02:42:10 2024 +0200 untitled docs plugin: fixed issue with unset document file type plugins/saveactions.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit 2b03a7c08278aa13e4e3c1f9b547f7b4f5b5203f Author: Kondor Dániel Date: Sat Nov 23 22:40:41 2024 +0100 socket: support startup_id tokens on X11 and Wayland This allows requesting the main window to be activated when opening files via the socket interface. This relies on the following protocols: - X11: Startup notification: https://specifications.freedesktop.org/startup-notification-spec/latest/ - Wayland: xdg-activation: https://wayland.app/protocols/xdg-activation-v1 Both are natively supported by GTK, the only change required is some extra plumbing to get the activation token to the already running Geany instance. src/libmain.c | 16 +++++++++++++++- src/socket.c | 41 +++++++++++++++++++++++++++++++++++++---- src/socket.h | 2 +- 3 files changed, 53 insertions(+), 6 deletions(-) commit 896dfa13f233615a0dc159733c3c4a1001445f89 Author: LiquidCake Date: Mon Nov 25 21:14:56 2024 +0200 persistent-temp-files-plugin: (persistent-untitled-documents) added plugin description doc/geany.txt | 44 ++++++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 12 deletions(-) commit 22a8a1f55e30db8566f752211bcd895c707ea24c Merge: 32ef42eb9 13a5b085a Author: Jiří Techet Date: Tue Nov 26 19:47:41 2024 +0100 Merge pull request #3954 from techee/nix Add Nix support commit b6244c6b4e66c5f51a8564e652079f90cc5a3f3b Author: Jiří Techet Date: Tue Nov 26 18:48:38 2024 +0100 Fix GTK runtime errors generated by the plugin manager The use of geany_wrap_label_new() together with the list below seems to interact in a strange way somehow and generate lots of runtime warnings/errors. This is a (cowardly) attempt by fixing this without having to understand what is going on ;-). Simply using gtk_label_new() seems to resolve the issue. Also, I think the text can be made a bit shorter in case the translation is too wide for some languages. The "at startup" is kind of misleading anyway since plugins are loaded immediately when checked in the box below and since this is a preference, it's remembered so I think it's pretty clear it happens at startup too. Fixes #2065. src/plugins.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 32ef42eb9e41029e89e52a9cee78afd06706aa7a Merge: 0e5a873f0 c7d5a2603 Author: Jiří Techet Date: Tue Nov 26 16:31:24 2024 +0100 Merge pull request #4073 from techee/optlib_tests Re-enable Forth ctags parser and add unit test for it commit 0e5a873f0249bed118764754575c09d85acaa085 Merge: 4264d0c50 a7ae4b583 Author: Jiří Techet Date: Mon Nov 25 17:01:48 2024 +0100 Merge pull request #4075 from cousteaulecommandant/sv tagmanager: (System)Verilog: don't tag module of instances commit a7ae4b583ebebe6aa056edbe1e640d71493b1753 Author: Javier Mora Date: Sun Nov 24 23:57:14 2024 +0100 tagmanager: Verilog: don't tag module of instances Currently, for a Verilog line like `a_module inst (clk, d, q);`, ctags will emit both an "instance" tag and a "module" reference, which Geany incorrectly interprets as a module definition. Disable ctags roles for Verilog (and SystemVerilog) modules to prevent this. src/tagmanager/tm_parser.c | 3 +++ tests/ctags/sysverilog.sv | 4 ++-- tests/ctags/sysverilog.sv.tags | 4 ---- 3 files changed, 5 insertions(+), 6 deletions(-) commit dd9f5151355f452a35d404465d34ac54e6d11b0e Author: Javier Mora Date: Thu Nov 21 22:49:08 2024 +0100 Change icon of SystemVerilog struct/enum objects Unlike in the C parser, "struct" in SystemVerilog refers to declarations of struct/union *objects*, not definitions of struct/union "types". The same goes for enum declarations. Unlike in C, there is no way to define a "struct type" (or union/enum) except by using a typedef. Therefore, all "structure definitions" use typedef; otherwise they're simply declaring struct objects. This puts the ctags "struct" and "enum" in the same category as "net" or "register"; the tm_parser should reflect this. - Put Enums on the same tm_parser group as Structs and Unions, separate from Typedefs. - Change the icon for the Structs/Unions/Enums to "three gray boxes" (OTHER), so that it resembles an "aggregate of multiple signals" or "a grayed-out (anonymous/signal-ified) type". src/tagmanager/tm_parser.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c7d5a2603de6a3a021d60414624c84cb25056541 Author: Jiří Techet Date: Sun Nov 24 23:30:18 2024 +0100 Add forth ctags unit test tests/ctags/Makefile.am | 1 + tests/ctags/simple.fth | 31 +++++++++++++++++++++++++++++++ tests/ctags/simple.fth.tags | 18 ++++++++++++++++++ tests/meson.build | 1 + 4 files changed, 51 insertions(+) commit 7f9bed009033c0a861e057aa3e69c7ff99cc79c1 Author: Jiří Techet Date: Sun Nov 24 23:28:52 2024 +0100 Re-enable Forth ctags parser Accidentally removed in #3977. src/filetypes.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a76de4a033c99210e8cb7edce1165a638cf277ec Author: LiquidCake Date: Sun Nov 24 18:50:46 2024 +0200 persistent-temp-files-plugin: (persistent-untitled-documents) added 'persistent-untitled-documents' feature, re-organized 'instantsave' feature config plugins/saveactions.c | 1034 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 888 insertions(+), 146 deletions(-) commit c32c92feaeb9724559e62251bb01d12be5afa59a Author: LiquidCake Date: Sun Nov 24 18:48:40 2024 +0200 persistent-temp-files-plugin: (persistent-untitled-documents) added function to API src/libmain.c | 12 ++++++++++++ src/main.h | 2 ++ src/plugindata.h | 2 +- 3 files changed, 15 insertions(+), 1 deletion(-) commit 4264d0c507abc32c4e9f13aebaaec53d0c9e376b Author: Frank Lanitz Date: Sun Nov 24 15:47:41 2024 +0100 Add Latgalian translation provided by Artūrs po/ltg.po | 5929 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 5929 insertions(+) commit 13a5b085af525f6aa9e90aa1ae1484db9e7712f2 Author: Jiří Techet Date: Wed Aug 14 11:04:15 2024 +0200 Add Nix support data/Makefile.am | 1 + data/filedefs/filetypes.nix | 62 +++++ data/filetype_extensions.conf | 1 + meson.build | 1 + scintilla/Makefile.am | 1 + scintilla/lexilla/include/SciLexer.h | 32 +++ scintilla/lexilla/lexers/LexNix.cxx | 527 +++++++++++++++++++++++++++++++++++ scintilla/lexilla/src/Lexilla.cxx | 3 + scintilla/scintilla_changes.patch | 3 +- src/editor.c | 1 + src/filetypes.c | 1 + src/filetypes.h | 1 + src/highlighting.c | 11 + src/highlightingmappings.h | 31 +++ 14 files changed, 675 insertions(+), 1 deletion(-) commit 4a07dd715e600a801ada4015f321642173edaec9 Merge: 4c1191ac4 87cdc362b Author: Jiří Techet Date: Sat Nov 23 18:46:36 2024 +0100 Merge pull request #4042 from techee/find_wrap Make "Find" the default button in the wrap search dialog commit 4c1191ac442e1bcceb60d7c2497e0baf5d5f4fa9 Merge: 382776fd3 8fad65c66 Author: Jiří Techet Date: Wed Nov 20 16:08:04 2024 +0100 Merge pull request #3977 from techee/filetype_groups Regroup filetypes by letter commit 8fad65c66c6f088a78eeae2c0397ab4c4f470bee Author: Jiří Techet Date: Mon Nov 18 19:35:36 2024 +0100 Update documentation HACKING | 3 +-- doc/geany.txt | 29 ----------------------------- 2 files changed, 1 insertion(+), 31 deletions(-) commit 0b4732d9f7fae9d7064c5330316f7ed654425294 Author: Jiří Techet Date: Sun Oct 6 13:49:16 2024 +0200 Regroup filetypes by letter This patch converts the currently used groups like "Programming languages", "Scripting languages", etc. to groups based on the starting letter of the language only. There are two main reasons for this change: 1. Some languages are hard to categorize by some semantic group name and the group names are not really fitting. In addition, the currently used group name "Programming languages" isn't very good as "Scripting languages" are also a subset of programming languages. On the other hand it's hard to find a good substitute for "Programming languages" - mostly these are "Compiled languages" but not always and some languages allow to be both interpreted and compiled which complicates the situation. 2. The "Programming languages" group is too big and the menu is so long that it doesn't fit the display on smaller screens and one has to scroll the menu to get to the right item which isn't user friendly. Things will get only worse as there are still many "Programming languages" that Geany does not support yet and that might be added to the editor in the future. The newly introduced alphabetic groups are: A-B C D-E-F G-H-I J-K-L M-N-O P-Q R-S T-U-V-W X-Y-Z These allow roughly even distribution of existing languages into smaller groups with enough space for possible future language additions. While it would be possible to make the group names more symmetrical, e.g. by having "R-S-T", "U-V-W", I found that the asymmetry helps quicker navigation as one remembers the group with his favorite language is e.g. "the one before the long group" without thinking where exactly in the alphabet the letter is. Some notes to the implementation: 1. It mostly follows the existing implementation trying to do minimal changes and doing things in a "dumb and straightforward way". This means that group names are hard coded (they could also be autogenerated, possibly auto-attempting to distribute languages into evenly sized groups). 2. Technically this change breaks API as it modifies GeanyFiletypeGroupID which is used for the group member of GeanyFiletype which is accessible to plugins. However, this member isn't documented to plugins and no existing plugin from geany-plugins uses it so probably not a big problem. 3. Because grouping happens automatically now, the [Groups] section from filetype_extensions.conf can be removed and is not read any more. 4. Because grouping happens automatically now, the [5] argument from FT_INIT() can be removed. 5. In addition, this patch also removes the [4] argument from FT_INIT() which determined the suffix in the filetype menu like "C++ source file" - IMO the "source file", "file", etc. suffix for all the languages in the menu introduced just a visual clutter and made legibility worse. In addition with the removal of [Groups] from filetype_extensions.conf in (3), it would not be possible to determine the right suffix for custom file types. 6. The newly introduced groups are untranslatable strings - there should be no need to translate those. 7. If users create a non-builtin filetype starting with a non-alphabetic character, it will be placed into a group called Other. This group won't be displayed if there are no such filetype. 8. Human-readable names of languages are converted to non-translatable strings because otherwise their placement into groups may be confusing. Also, these names should start with the same letter like the language name itself otherwise the grouping in Tools->Configuration Files-> Filetype Configuration might not correspond to the language name. data/filetype_extensions.conf | 8 -- src/dialogs.c | 60 +++++++-- src/filetypes.c | 292 +++++++++++++++++++++--------------------- src/filetypes.h | 15 ++- 4 files changed, 203 insertions(+), 172 deletions(-) commit 382776fd3e5c09cc9c005798d2d1e6a2d7a666f8 Merge: f998f789f ffc8f62b5 Author: Jiří Techet Date: Wed Nov 20 14:50:04 2024 +0100 Merge pull request #4037 from cousteaulecommandant/verilog_keywords filetypes.verilog: add Verilog-2005 keywords commit f998f789fa0424fc928ba86a5be7b7ab69a1ef9c Merge: c043996a9 4b7c56e5f Author: Jiří Techet Date: Wed Nov 20 14:45:41 2024 +0100 Merge pull request #4039 from cousteaulecommandant/sv Add support for SystemVerilog commit 4b7c56e5f482d2fb562fe81bd45b8641c5642828 Author: Javier Mora Date: Mon Nov 18 20:25:13 2024 +0100 Add SystemVerilog ctags unit tests Added two ctags unit tests for SystemVerilog: one with a "normal" design (an executable testbench) to exercise logic and simulation constructs, and one with a package and several OOP-related constructs. It should be noted that some incorrect behavior has been found in ctags when writing the tests; these were written down as comments in the test files, and should be fixed in upstream ctags. tests/ctags/Makefile.am | 2 + tests/ctags/oop.sv | 145 +++++++++++++++++++++++++++++++ tests/ctags/oop.sv.tags | 118 +++++++++++++++++++++++++ tests/ctags/sysverilog.sv | 192 +++++++++++++++++++++++++++++++++++++++++ tests/ctags/sysverilog.sv.tags | 118 +++++++++++++++++++++++++ tests/meson.build | 2 + 6 files changed, 577 insertions(+) commit e7a215ddedc345e06a1878705c037b6694467868 Author: Javier Mora Date: Sun Nov 17 23:23:54 2024 +0100 Regenerate Verilog ctags unit tests Regenerate tests/ctags/*.v.tags, which were broken as a result of modifying the Verilog ctags parser in commit "Unify Verilog and SystemVerilog tags". tests/ctags/bug1111214-j-chan.v.tags | 12 +++++------ tests/ctags/bug1111214.v.tags | 4 ++-- tests/ctags/bug1743330.v.tags | 4 ++-- tests/ctags/bug2747828.v.tags | 4 ++-- tests/ctags/bug960316.v.tags | 8 ++++---- tests/ctags/bug961001.v.tags | 32 ++++++++++++++--------------- tests/ctags/state_machine.v.tags | 16 +++++++-------- tests/ctags/traffic_signal.v.tags | 40 +++++++++++++++++++++--------------- 8 files changed, 64 insertions(+), 56 deletions(-) commit b26b7fc801316433683848da3b5d558cafcd8e5d Author: Javier Mora Date: Sun Nov 17 22:47:25 2024 +0100 Add missing SystemVerilog tasks/functions Add all tasks and functions from SystemVerilog-2017 section 21 ("Input/output system tasks and system functions") in addition to those from section 20 ("Utility system tasks and system functions"). (These were listed in a single section in the Verilog-2005 standard, but SystemVerilog split them into two sections, hence the confusion.) data/filedefs/filetypes.SystemVerilog.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 85564aa10dbdc8b2e47354d913c797f39fd5c4fa Author: Javier Mora Date: Sun Nov 17 14:43:24 2024 +0100 Split SystemVerilog keywords into type / not type Moved all SystemVerilog keywords that are used when declaring signals to a separate `word3` category, as it was done for Verilog in PR #4037. The list has been obtained by picking all the keywords marked as K_(EVENT|REGISTER|LOCALPARAM|PORT|PARAMETER|CONSTANT|SPECPARAM|NET) in ctags/parsers/verilog.c, extended with additional keywords from SystemVerilog-2017 section 6.7 "Net declarations" (as it was done for Verilog in PR #4037), and with `signed` and `unsigned`. The result is a superset of the `word3` category for Verilog, extended with some keywords such as `logic`, `int`, `ref`, etc. data/filedefs/filetypes.SystemVerilog.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 66710b09699d416e024574bb744f80ebe09eb186 Author: Javier Mora Date: Sun Nov 17 00:53:04 2024 +0100 tagmanager: Unify Verilog and SystemVerilog tags Use a consistent and unified map_* and group_* for Verilog and SystemVerilog. Some SystemVerilog features have been mirrored into Verilog, resulting in the following changes to the latter: - The following categories have been split: - constant <--> define - port <--> net/register - The following categories have been merged: - event -><- net/register - The following categories have been added (enabled): - block - instance - Changes in group icons. Note that module instantiation (in both Verilog and SystemVerilog) now creates two ctags: one for a module definition and one for an instance. The former should be removed, since the module isn't being defined here, and Ctrl-click on the module name shouldn't take us here. This needs to be fixed in ctags. src/tagmanager/tm_parser.c | 78 ++++++++++++++++++---------------------------- 1 file changed, 31 insertions(+), 47 deletions(-) commit bee6076de639bcadd57eef4afd426e4e20cb1a32 Author: Javier Mora Date: Sun Nov 10 18:45:58 2024 +0100 tagmanager: SystemVerilog: map ctags Extend SystemVerilog with additional tags supported by ctags. The tag `tm_tag_other_t` has been left unassigned for future expansion. src/tagmanager/tm_parser.c | 60 ++++++++++++++++++++++++++++------------------ 1 file changed, 37 insertions(+), 23 deletions(-) commit 4ad90857cf94f8f0628f0eaeb440c06d070231db Author: Javier Mora Date: Sun Nov 10 02:20:58 2024 +0100 Add SystemVerilog filetype Add SystemVerilog filetype and syntax highlighting: - Create SystemVerilog filedefs file, including all the standard keywords from SystemVerilog-2017 (IEEE Std 1800-2017). - Set it to use the existing Verilog lexer and ctags parser (which already supported both Verilog and SystemVerilog). - Create an initial draft for a ctags mapping for SystemVerilog. The ctags parser is currently underutilized, since classes and other SystemVerilog constructs are tagged but not shown in the Symbols panel. These will be added in a future commit. data/Makefile.am | 1 + data/filedefs/filetypes.SystemVerilog.conf | 45 ++++++++++++++++++++++++++++++ data/filetype_extensions.conf | 5 ++-- src/tagmanager/tm_parser.c | 43 ++++++++++++++++++++++++++++ src/tagmanager/tm_parser.h | 1 + src/tagmanager/tm_parsers.h | 3 +- 6 files changed, 95 insertions(+), 3 deletions(-) commit ffc8f62b5d94625e614c53784bc1f3a7b00140d7 Author: Javier Mora Date: Sat Nov 9 19:26:44 2024 +0100 filetypes.verilog: add Verilog-2005 keywords - Add Verilog-2001 and Verilog-2005 keywords to filetypes.verilog (right now only Verilog-1995 keywords are highlighted). These keywords were already included in ctags. - Add all System tasks and functions as of Verilog-2005 to `word2` list (right now only a handful appear; perhaps from an older standard). Details on added/removed keywords: Add new keywords from Verilog-2001 and Verilog-2005 standard (Annex B) (right now only Verilog-1995 keywords are listed): automatic generate endgenerate genvar localparam uwire config endconfig cell design instance liblist use library incdir include pulsestyle_ondetect pulsestyle_onevent showcancelled noshowcancelled Remove invalid Verilog keywords: attribute endattribute strength @ Put all "keywords used to declare nets/variables/constants/events" in `word3` list; leave rest in `word`. Add all functions/tasks listed under "System tasks and functions" in the Verilog-2005 standard (chapter 17). data/filedefs/filetypes.verilog | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 87cdc362bfe480f830c97ac009d328978156c887 Author: Jiří Techet Date: Tue Nov 12 20:02:19 2024 +0100 Make "Find" the default button in the wrap search dialog When the "Wrap search and find again?" dialog appears, it makes more sense to wrap instead of cancel the dialog by default (the dialog can always be canceled by Escape). The implementation of this patch more or less duplicates the code of dialogs_show_question_full() and makes the Find button default. While it would be possible to add one more parameter to dialogs_show_question_full() controlling this behavior, there's currently no other use of this in Geany (in all other cases, the action button performs a destructive action so Cancel is default) so I believe having this local implementation of the dialog is a better option not complicating other uses. Fixes #1192. src/document.c | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) commit c043996a9a3dc1b0aa36571cd5f5d61fd8d2eb59 Merge: bf35b7b77 c8586cb78 Author: Jiří Techet Date: Sun Nov 10 17:40:18 2024 +0100 Merge pull request #3973 from techee/dart Add Dart support commit c8586cb7893982a7ff4b10d39a18128063ada030 Author: Jiří Techet Date: Wed Aug 14 11:04:15 2024 +0200 Add Dart support This PR adds support for the Dart language: 1. It uses the Dart lexer which has been recently merged to lexilla 2. The keywords are based on Notepad4 keywords 3. Build menu settings is based on https://github.com/geany/geany/issues/371 data/Makefile.am | 1 + data/filedefs/filetypes.dart | 93 +++++ data/filetype_extensions.conf | 1 + meson.build | 1 + scintilla/Makefile.am | 1 + scintilla/lexilla/lexers/LexDart.cxx | 702 +++++++++++++++++++++++++++++++++++ scintilla/lexilla/src/Lexilla.cxx | 3 + scintilla/scintilla_changes.patch | 3 +- src/editor.c | 2 + src/filetypes.c | 4 +- src/filetypes.h | 1 + src/highlighting.c | 18 + src/highlightingmappings.h | 42 +++ 13 files changed, 870 insertions(+), 2 deletions(-) commit bf35b7b778d085b81df11c8b2e71ded47c6a8379 Merge: 2900a447e 6dc240625 Author: Jiří Techet Date: Sat Nov 9 17:08:04 2024 +0100 Merge pull request #3892 from ajpf44/add-filetype-support Add support for .tsx and .jsx file extensions to commit 2900a447e7ef288cb37247b663d42970b0b50f30 Merge: c5d68efa7 274f56062 Author: Jiří Techet Date: Fri Nov 8 16:25:57 2024 +0100 Merge pull request #3974 from techee/zig Add Zig support commit 274f560628f4db504cf6b917b1b7652a18e9710a Author: Jiří Techet Date: Thu Oct 3 22:47:12 2024 +0200 Add Zig support Fixes #3724. data/Makefile.am | 3 +- data/filedefs/filetypes.zig | 74 ++++++ data/filetype_extensions.conf | 1 + meson.build | 1 + scintilla/Makefile.am | 3 +- scintilla/lexilla/include/SciLexer.h | 92 +++++++ scintilla/lexilla/lexers/LexZig.cxx | 463 +++++++++++++++++++++++++++++++++++ scintilla/lexilla/src/Lexilla.cxx | 3 + scintilla/scintilla_changes.patch | 3 +- src/document.c | 1 + src/editor.c | 2 + src/filetypes.c | 1 + src/filetypes.h | 1 + src/highlighting.c | 13 + src/highlightingmappings.h | 33 +++ 15 files changed, 691 insertions(+), 3 deletions(-) commit c5d68efa7edb4c37af00283e0c684aa7365a61d0 Merge: 3122fb1db e1a5e9848 Author: Jiří Techet Date: Mon Nov 4 16:13:53 2024 +0100 Merge pull request #4029 from cousteaulecommandant/fix-readme-rst Fix README: highlight code as such using ``code`` commit 3122fb1dbcc1906df32a89f0a9d19253fa44288f Merge: 6ffe16b10 fd70da00d Author: Jiří Techet Date: Sun Nov 3 18:22:51 2024 +0100 Merge pull request #4013 from techee/optlib Use Forth and Meson optlib-based ctags parsers commit fd70da00d9ae846b63d533f6d7d63dc3d96e0a5c Author: Jiří Techet Date: Fri Nov 1 21:51:19 2024 +0100 Fix current_scope value passed to tm_workspace_is_autocomplete_tag() When the parser doesn't provide scope, symbols_get_current_function() returns "unknown" in its tagname argument. We have to set it to NULL in this case so tm_workspace_is_autocomplete_tag() works correctly. src/symbols.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit dcd2f3e6201c5a51252bedb005df3f3c5b285bf8 Author: Jiří Techet Date: Fri Oct 25 22:47:38 2024 +0200 Use Forth and Meson optlib-based ctags parsers This patch also updates update-ctags.py to update parsers in the optlib directory. ctags/Makefile.am | 2 + ctags/optlib/forth.c | 76 +++++++++++ ctags/optlib/meson.c | 261 +++++++++++++++++++++++++++++++++++++ data/filedefs/filetypes.Meson.conf | 1 + meson.build | 2 + scripts/update-ctags.py | 7 + src/filetypes.c | 2 +- src/tagmanager/tm_parser.c | 36 +++++ src/tagmanager/tm_parser.h | 2 + src/tagmanager/tm_parsers.h | 4 +- 10 files changed, 391 insertions(+), 2 deletions(-) commit 6ffe16b104e306ec50548bcf032a558ac5b380e0 Merge: eb831d7c8 a3ab9b63f Author: Enrico Tröger Date: Sat Nov 2 11:03:01 2024 +0100 Merge pull request #1193 from techee/editorconfig Add .editorconfig commit e1a5e9848ba014cc411f6aeb2f790e036613d2c6 Author: Javier Mora Date: Sat Nov 2 00:44:10 2024 +0100 Fix README: highlight code as such using ``code`` Code snippets in README(.rst) should use ``double backticks`` rather than `single backticks`. Otherwise it's hard to tell apart code from text in the README render (especially when it says "`code 1` or `code 2`"). README | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit eb831d7c846abdf567c79fe0e0d64ce212acf7ca Merge: 3469b9799 b46ca22f1 Author: Jiří Techet Date: Fri Nov 1 18:02:28 2024 +0100 Merge pull request #4014 from techee/java_kw Java: add Java SE23 keywords commit b46ca22f173bf323eef4adafa750b56824c99c9d Author: Jiří Techet Date: Fri Oct 25 23:07:18 2024 +0200 Java: add Java SE23 keywords See https://docs.oracle.com/javase/specs/jls/se23/html/jls-3.html#jls-3.9 data/filedefs/filetypes.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3469b9799d5845eeb07a371b57b27e8bfab2caf3 Merge: 8d3a2eed7 bc0f01f63 Author: Jiří Techet Date: Fri Nov 1 16:00:02 2024 +0100 Merge pull request #4015 from techee/groovy_comments Groovy: add multi-line comment settings commit bc0f01f63d2c43c970b85e8fed59882508b2beab Author: Jiří Techet Date: Fri Oct 25 23:18:03 2024 +0200 Groovy: add comment settings data/filedefs/filetypes.Groovy.conf | 3 +++ 1 file changed, 3 insertions(+) commit 8d3a2eed7d9d54cb780414c3e74efffe2a4bd7c9 Merge: 7e6b83594 7296fbcc2 Author: Jiří Techet Date: Sat Oct 26 21:11:53 2024 +0200 Merge pull request #4016 from techee/busybox Recognize shell scripts when using busybox commit 7296fbcc2ae88cd30dcb7ad8fe289e9654bf1d8c Author: Jiří Techet Date: Fri Oct 25 23:33:35 2024 +0200 Recognize shell scripts when using busybox Pretty much stolen patch from Colomban Wendling from https://github.com/geany/geany/issues/3884 and converted to a pull request. Also tested, seems to work as expected. src/filetypes.c | 4 ++++ 1 file changed, 4 insertions(+) commit 7e6b83594847b32df4b7cf15bd5cd12643925eec Merge: 2973111fa 6c1fdf6f8 Author: Jiří Techet Date: Thu Oct 24 17:47:02 2024 +0200 Merge pull request #3898 from techee/session_fix2 Fix a problem when multiple project opens clear the default session commit 2973111fae8f6d743b94e0ae9b22bae8875846c0 Merge: 1d717384b 458a77adb Author: Jiří Techet Date: Thu Oct 24 17:45:45 2024 +0200 Merge pull request #3950 from techee/file_save2 Modify utils_write_file() to always use g_file_replace_contents() commit 1d717384b55465a5614bf2bb0a41d434d2bf06d7 Merge: 78f1f3f51 2cccabfac Author: Jiří Techet Date: Wed Oct 16 21:23:56 2024 +0200 Merge pull request #4000 from techee/java_triple_quotes Support triple-quoted strings in Java commit 2cccabfac66d6f2e0daba3eeb17dad0795d7b22e Author: Jiří Techet Date: Wed Oct 16 10:13:06 2024 +0200 Support triple-quoted strings in Java Fixes #3995 data/filedefs/filetypes.java | 1 + 1 file changed, 1 insertion(+) commit 78f1f3f516f14ac7f6088fe07c77fc3842497d8f Merge: ddb627889 55c83ade6 Author: Jiří Techet Date: Mon Oct 14 18:54:06 2024 +0200 Merge pull request #3991 from techee/hacking_patch Update HACKING to better describe what has to be changed in scintilla_changes.patch commit 55c83ade67f7cee741c94e27ae6c3c7e6f53f413 Author: Jiří Techet Date: Fri Oct 11 20:38:32 2024 +0200 Update HACKING to better describe what has to be changed in scintilla_changes.patch HACKING | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit ddb627889997df7b5a5a44ce581f7973824478cc Merge: 46b540c8d efadb4a7c Author: Jiří Techet Date: Fri Oct 11 20:24:59 2024 +0200 Merge pull request #3982 from b4n/scintilla-update-script-fix Fix Scintilla update script commit efadb4a7c0ae9f77cebb160bb83c66d0965a370e Author: Colomban Wendling Date: Mon Oct 7 22:52:26 2024 +0200 Fix scintilla_changes.patch scintilla/scintilla_changes.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e75602bf8eb4527cd2849c6df6c79929f9cae633 Author: Colomban Wendling Date: Mon Oct 7 22:50:50 2024 +0200 Fix Scintilla update script scintilla/README is not a directory, so the test wouldn't ever pass. Also fix updating Lexilla lexers if the current directory contains a .cxx file, which would then match the unescaped `*.cxx` pattern. scripts/update-scintilla.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 46b540c8d017d3d40152594953c300d4f68e4812 Merge: 4c8a3d38f 669395588 Author: Jiří Techet Date: Sun Oct 6 21:26:54 2024 +0200 Merge pull request #3976 from eht16/issue3873_add_pyi_extension Add .pyi extension for Python commit 4c8a3d38f22d35e13c32e4d2c5c247cb33a846b8 Merge: 30f84de9a e05048135 Author: Jiří Techet Date: Sun Oct 6 19:07:08 2024 +0200 Merge pull request #3967 from kugel-/for-upstream Rename enum member to workaround GI issue commit 669395588a126c8ae6d698699e017867a38d0bc8 Author: Enrico Tröger Date: Sun Oct 6 13:31:23 2024 +0200 Add .pyi extension for Python Closes #3873. data/filetype_extensions.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e050481355ee44ea49f263ff356f52d0daabe8d1 Author: Thomas Martitz Date: Wed Oct 2 07:52:04 2024 +0200 Rename enum member to workaround GI issue GI synthesizes an enum type "TMTagAttrType" with the members none_t, name_t and so on (common prefix "tm_tag_attr_" removed). In that context, tm_tag_attr_time_ aka. time_t clashes with the global time_t type. Since the member is unused so far simply rename it as an easy way out. src/tagmanager/tm_tag.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 458a77adb0a7c7b3d649bcaedfcbd07604c5dd5f Author: Jiří Techet Date: Fri Sep 13 13:03:55 2024 +0200 Modify utils_write_file() to always use g_file_replace_contents() From having a look at where this function is used, by Geany it's used only to store configuration files in the .config directory and some auxiliary functions like writing the export file by the exporter plugin. In the geany-plugins project this function is used only for saving configuration files. Before this patch, the fwrite() method was used by default for saving configuration files (because g_file_replace_contents() normally used by Geany wasn't used in this function) which wasn't very safe and could lead to configuration file loss under some extreme conditions. The documentation of this function was changed to reflect the situation better than now - the previous comment made the impression that file permissions were always preserved with this method but it wasn't the case and depended on the exact configuration. src/utils.c | 69 +++++++++++++++++++++---------------------------------------- 1 file changed, 23 insertions(+), 46 deletions(-) commit 30f84de9a5eb477a0898664a0aac941af252fe21 Merge: 96fa14ac3 a6c651804 Author: Jiří Techet Date: Fri Sep 13 10:15:05 2024 +0200 Merge pull request #3948 from techee/warning_fix2 Fix indentation to suppress clangd warnings commit 96fa14ac37fab523da2b38ac2b353d42b3538f66 Merge: eea0a25d5 10e8e786b Author: Jiří Techet Date: Fri Sep 13 10:12:58 2024 +0200 Merge pull request #3949 from techee/cache_gitignore Add the .cache directory to .gitignore commit 10e8e786b83d1fe833cf3e5f43086d588f55399b Author: Jiří Techet Date: Thu Sep 12 16:26:27 2024 +0200 Add the .cache directory to .gitignore This is where clangd stores its precompiled files. .gitignore | 1 + 1 file changed, 1 insertion(+) commit a6c6518042df3b0370bb47a16a916663864105ee Author: Jiří Techet Date: Thu Sep 12 16:21:37 2024 +0200 Fix indentation to suppress clangd warnings src/editor.c | 3 +-- src/libmain.c | 3 +-- src/ui_utils.c | 6 ++---- 3 files changed, 4 insertions(+), 8 deletions(-) commit eea0a25d5de5914f6dfef99776c7a73e29dc6b5f Merge: 6a954b96d 3a530ec2d Author: Jiří Techet Date: Tue Sep 10 16:05:39 2024 +0200 Merge pull request #3945 from techee/extension_opening Don't call plugin extension functions when opening session files commit 3a530ec2d9be3b1d0a973a0648faabf30035370c Author: Jiří Techet Date: Tue Sep 10 15:48:43 2024 +0200 Don't call plugin extension functions when opening session files Without this, the symbol_highlight_provided() function is called for all the session files which starts LSP servers for all filetypes of the open files instead of lazily as the file tabs of individual files get selected. src/pluginextension.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 6a954b96d330e4d9f28f8ab12f07171c5f58b04a Merge: 2522d6a79 e53025eda Author: Jiří Techet Date: Tue Sep 10 15:04:46 2024 +0200 Merge pull request #3943 from techee/extension_closing Don't call plugin extension functions when quitting or closing all files commit e53025edabe3d921374a163fe51ff5f0560d7065 Author: Jiří Techet Date: Fri Sep 6 21:17:38 2024 +0200 Don't call plugin extension functions when quitting or closing all files Plugins may need to call the _provided() function e.g. inside Scintilla event handler which can get called for every file when batch-closing a session. For the LSP plugin, the _provided() call then keeps starting the server even though it should be terminated when closing project or quitting Geany. src/pluginextension.c | 5 +++++ 1 file changed, 5 insertions(+) commit 2522d6a795303e1dd3d48e0af383ee83e49bee15 Merge: 4ff60a36b 3c6021ee6 Author: Jiří Techet Date: Sun Aug 18 14:06:01 2024 +0200 Merge pull request #3648 from techee/nim_lexer Convert Nim to builtin filetype and use Scintilla Nim lexer for it commit 3c6021ee6614d987b7b6bfcb4eab1c049b067732 Author: Jiří Techet Date: Mon Oct 23 11:59:43 2023 +0200 Convert Nim to builtin filetype and use Scintilla Nim lexer for it data/Makefile.am | 2 +- data/filedefs/filetypes.Nim.conf | 64 --- data/filedefs/filetypes.nim | 71 ++++ data/filetype_extensions.conf | 2 +- meson.build | 1 + scintilla/Makefile.am | 1 + scintilla/lexilla/lexers/LexNim.cxx | 814 ++++++++++++++++++++++++++++++++++++ scintilla/lexilla/src/Lexilla.cxx | 1 + scintilla/scintilla_changes.patch | 1 + src/filetypes.c | 1 + src/filetypes.h | 1 + src/highlighting.c | 15 + src/highlightingmappings.h | 29 ++ 13 files changed, 937 insertions(+), 66 deletions(-) commit 4ff60a36bfd453415b2cc1dfe83206e6be5b8fe6 Merge: d9255cb4f 588427236 Author: Jiří Techet Date: Fri Aug 16 22:06:50 2024 +0200 Merge pull request #3171 from techee/prolog Add Prolog filetype support commit 588427236ea7f14ff3a9d8f233653f32f8371d9f Author: Jiří Techet Date: Sat Apr 16 19:51:00 2022 +0200 Add Prolog filetype support This patch adds basic Prolog support (only scintilla laxer, there's no ctags parser). I used swi-prolog for the compiler and run commands which I believe is the most commonly used prolog implementation. This patch contains keyword suggestions made by @rdipardo, thanks. data/Makefile.am | 1 + data/filedefs/filetypes.prolog | 78 +++ data/filetype_extensions.conf | 1 + meson.build | 1 + scintilla/Makefile.am | 1 + scintilla/lexilla/lexers/LexVisualProlog.cxx | 695 +++++++++++++++++++++++++++ scintilla/lexilla/src/Lexilla.cxx | 1 + scintilla/scintilla_changes.patch | 1 + src/filetypes.c | 1 + src/filetypes.h | 1 + src/highlighting.c | 17 + src/highlightingmappings.h | 33 ++ 12 files changed, 831 insertions(+) commit d9255cb4f75e28a5920eab10e96baab21820f3dc Author: Hugo Carvalho Date: Thu Aug 15 19:13:16 2024 +0100 Update Portuguese translation (#3933) Update pt.po file po/pt.po | 2143 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 1093 insertions(+), 1050 deletions(-) commit 4fadf8e5d5f123b1bcf5e34d9d9925d63c6fd382 Merge: 5c32d4b56 12f56701e Author: Jiří Techet Date: Sat Aug 10 00:44:28 2024 +0200 Merge pull request #3560 from techee/cancel_popups Hide autocompletion and calltip popups when code scrolled commit 12f56701eff1a8ac504fff7d0cfc4998811c05f7 Author: Jiří Techet Date: Sun Sep 24 11:15:06 2023 +0200 Hide autocompletion and calltip popups when code scrolled When autocompletion or calltip popup is displayed and the user scrolls the editor window (e.g. using a mouse wheel), these popups are still displayed and become detached from the original point which is quite ugly. We can just simply dismiss them when the window scrolls. src/editor.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 5c32d4b56cc8e5d1da28a54fdcdb1029ca224770 Merge: 473c058e8 c942622e4 Author: Jiří Techet Date: Fri Aug 9 23:22:56 2024 +0200 Merge pull request #3480 from froonix/cil Add CIL lexer/filetype commit 473c058e8da74779ff230e12dd77ef6cefeae2b2 Author: Puro_osso <125617376+daviii-lopes@users.noreply.github.com> Date: Sun Aug 4 08:51:35 2024 -0300 Update pt_br translation (#3929) Co-authored-by: Davi Lopes po/pt_BR.po | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) commit 6444a182e205ee2598be78cee02fdeb10379e2ff Merge: edd733013 d9dcf1edf Author: Jiří Techet Date: Sat Aug 3 16:41:50 2024 +0200 Merge pull request #3849 from techee/lsp2 Plugin extensions (aka LSP API) commit c942622e453362f1f93a9d73e143815c5ae26db8 Author: Christian Schrötter Date: Fri Aug 2 02:03:00 2024 +0200 Add CIL lexer/filetype data/Makefile.am | 1 + data/filedefs/filetypes.cil | 61 ++++++ data/filetype_extensions.conf | 1 + meson.build | 1 + scintilla/Makefile.am | 1 + scintilla/lexilla/lexers/LexCIL.cxx | 410 ++++++++++++++++++++++++++++++++++++ scintilla/lexilla/src/Lexilla.cxx | 1 + scintilla/scintilla_changes.patch | 1 + src/editor.c | 1 + src/filetypes.c | 1 + src/filetypes.h | 1 + src/highlighting.c | 11 + src/highlightingmappings.h | 25 +++ 13 files changed, 516 insertions(+) commit edd733013047c1f2a4786a64e2364f8b30c41be9 Merge: 71969f600 8056d620b Author: Colomban Wendling Date: Thu Aug 1 23:12:17 2024 +0200 Merge pull request #3921 from techee/warning_fix Fix some runtime warnings commit 71969f600023a333bcd3b717a434082a7039f316 Merge: a93f5fefa 9cf72b0d4 Author: Enrico Tröger Date: Sun Jul 28 14:12:13 2024 +0200 Merge pull request #3811 from Biswa96/meson-fix-win-console-popup meson: Prevent showing console after running geany in Windows commit 9cf72b0d42679ae8bf551d0d83836c9a83f77335 Author: Enrico Tröger Date: Sun Jul 7 14:02:42 2024 +0200 CI: use Ubuntu 22.04 for Meson build .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2259ae9197007b279924645e8b43acc8778a5669 Author: Enrico Tröger Date: Sun Jul 7 13:44:37 2024 +0200 Require Meson 0.56 or newer meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a93f5fefa663fe1947537ba80aff608a86011d03 Author: alevtina-karashokova <122361137+alevtina-karashokova@users.noreply.github.com> Date: Sun Jul 7 13:58:23 2024 +0300 Update Russian translation (#3918) po/ru.po | 152 +++++++++++++++++++++++++++++---------------------------------- 1 file changed, 70 insertions(+), 82 deletions(-) commit 8056d620bc067d153197ae5b4b5fae00163c711a Author: Jiří Techet Date: Tue Jul 2 11:10:15 2024 +0200 Fix open document check in document_get_from_page() The check `page_num >= documents_array->len` isn't correct as `documents_array->len` isn't the number of open documents. This array never shrinks and closed documents are only marked as invalid. Without this patch, when closing a Geany project and the default session doesn't contain any document, the following warning appears: ``` (geany:1740553): Geany-CRITICAL **: 11:02:39.105: document_get_from_notebook_child: assertion 'GTK_IS_BOX(page)' failed ``` The corresponding stack trace when using `--g-fatal-warnings` is: ``` #5 0x0000fffff7c241d0 in document_get_from_notebook_child (page=) at document.c:335 #6 0x0000fffff7c242a4 in document_get_from_page (page_num=) at document.c:361 #7 0x0000fffff7c4b248 in configuration_open_files (session_files=) at keyfile.c:1390 #8 0x0000fffff7c4b354 in configuration_open_default_session () at keyfile.c:1404 #9 0x0000fffff7c5e430 in destroy_project (open_default=1) at project.c:480 #10 0x0000fffff7c5e4d8 in project_close (open_default=1) at project.c:435 ``` This patch fixes that. src/document.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e5ee2227807c50604176b73119f9d8c90c6b0e02 Author: Jiří Techet Date: Tue Jul 2 10:56:59 2024 +0200 Fix runtime warning when opening Geany without open files When Geany is opened with no open document, the following warning appears: ``` (geany:1735619): Geany-CRITICAL **: 10:49:58.729: document_get_notebook_child: assertion 'doc != NULL' failed ``` The corresponding stack trace when using `--g-fatal-warnings` is: ``` #5 0x0000fffff7c232c8 in document_get_notebook_child (doc=) at document.c:269 #6 0x0000fffff7c24140 in document_get_notebook_page (doc=) at document.c:291 #7 0x0000fffff7c25198 in document_show_tab (doc=0x0) at document.c:1269 #8 0x0000fffff7c4b24c in configuration_open_files (session_files=) at keyfile.c:1390 #9 0x0000fffff7c4b354 in configuration_open_default_session () at keyfile.c:1404 #10 0x0000fffff7c4dfb0 in load_startup_files (argv=0xffffffffeef8, argc=1) at libmain.c:987 ``` This patch fixes that. src/document.c | 3 +++ 1 file changed, 3 insertions(+) commit d9dcf1edfc214e23415ebe175f1c176a8c1e7e76 Author: Jiří Techet Date: Sun Jun 30 11:16:21 2024 +0200 Bump plugin API src/plugindata.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 03ad03b13127f4d0fb839fc83f845a1c66a22705 Author: Jiří Techet Date: Thu Jun 20 23:52:56 2024 +0200 Add simple PluginExtension demo plugins/Makefile.am | 5 ++ plugins/demopluginext.c | 130 ++++++++++++++++++++++++++++++++++++++++++++++++ plugins/meson.build | 1 + 3 files changed, 136 insertions(+) commit 358d585c297d75f62bfe051ff1f250c4a38ca95b Author: Jiří Techet Date: Wed Jun 12 23:40:12 2024 +0200 Add PluginExtension documentation Co-authored-by: Colomban Wendling Co-authored-by: Lex Trotman doc/plugins.dox | 143 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/pluginextension.c | 102 +++++++++++++++++++++++++++++++++++ src/pluginextension.h | 129 ++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 373 insertions(+), 1 deletion(-) commit ef70f3b7d12207a19e4b2ae904028bf911c5fc1c Author: Jiří Techet Date: Sat Apr 20 20:51:19 2024 +0200 Add Geany code delegating keyword highlighting to plugins src/document.c | 4 ++++ 1 file changed, 4 insertions(+) commit 2fba3420c51753da1d25e07a128c14d33b23a86f Author: Jiří Techet Date: Sun Jun 30 11:38:08 2024 +0200 Add Geany code delegating symbol goto to plugins Most of the changes just make it possible for the extension freely decide whether to perform goto based on its internal logic. This moves obtaining the current word and related logic for Geany's TM-based goto into symbols_goto_tag(). Co-authored-by: Colomban Wendling src/editor.c | 6 +----- src/keybindings.c | 8 +------- src/symbols.c | 41 ++++++++++++++++++++++++++++++++--------- src/symbols.h | 2 +- 4 files changed, 35 insertions(+), 22 deletions(-) commit 554b5078e8e219c6aa491bd59c905eb0b9b3ae9f Author: Jiří Techet Date: Sat Apr 20 19:30:40 2024 +0200 Add Geany code delegating calltips to plugins src/editor.c | 14 +++++++++----- src/keybindings.c | 5 ++++- 2 files changed, 13 insertions(+), 6 deletions(-) commit 3edf06b7252a9f40a0ee54dfcebefa30f71bb368 Author: Jiří Techet Date: Sun Jun 30 01:59:40 2024 +0200 Add Geany code delegating autocompletion to plugins src/editor.c | 12 +++++++----- src/keybindings.c | 6 +++++- 2 files changed, 12 insertions(+), 6 deletions(-) commit 7a741bea339e74894ffdf537832d1ea9c039b34d Author: Jiří Techet Date: Sat Apr 20 19:03:59 2024 +0200 Add interface used by plugins to replace some Geany functionality with their own implementation Co-authored-by: Colomban Wendling meson.build | 3 + plugins/geanyplugin.h | 1 + src/Makefile.am | 2 + src/pluginextension.c | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/pluginextension.h | 64 ++++++++++++++++++ 5 files changed, 245 insertions(+) commit 9bf5769f582cbf3d82a1faca035e7f63e8908afe Merge: 20908b843 39ce0c095 Author: Jiří Techet Date: Sat Jun 29 15:45:50 2024 +0200 Merge pull request #3916 from techee/symtree_icons Export some types/functions so plugins have access to Geany symbol icons commit 39ce0c095967964db6b49b411f6bf54d08ae53d1 Author: Jiří Techet Date: Sat Apr 20 20:58:19 2024 +0200 Export some types/functions so plugins have access to Geany symbol icons src/symbols.c | 21 +++++++++++++++++++-- src/symbols.h | 1 + src/tagmanager/tm_parser.h | 34 ++++++++++++++++++++-------------- 3 files changed, 40 insertions(+), 16 deletions(-) commit 20908b843eb46fe185f32baf2fde96d0e20f70da Merge: 422a75883 2aaa66b3b Author: Enrico Tröger Date: Sun Jun 23 22:55:03 2024 +0200 Merge pull request #3823 from ntrel/msg-tree-search [RFC] Enable keyboard searching for Compiler and Messages tree views commit 422a7588357f1e1e4a9ac7f4edaa842ae2a99409 Merge: 7e01e3dd8 8f00b04ce Author: Jiří Techet Date: Sat Jun 22 09:07:35 2024 +0100 Merge pull request #3903 from techee/win_msg Drop win32_message_dialog()s commit 6c1fdf6f8e78512bd43ba2e84169f0321979eebf Author: Jiří Techet Date: Thu Jun 20 12:46:20 2024 +0200 Add an explanation comment src/project.c | 5 +++++ 1 file changed, 5 insertions(+) commit 7e01e3dd8af374ea80ba0932f99bcdcb41955a88 Merge: 6d420cf52 0a25af7d1 Author: Jiří Techet Date: Thu Jun 20 10:23:17 2024 +0100 Merge pull request #3913 from techee/include_fix Don't include geanyfunctions.h from geanyplugin.h commit 6d420cf5207bca801250479edfb4856d2f34f76d Merge: 90027ebf0 944f188f0 Author: Jiří Techet Date: Thu Jun 20 10:13:52 2024 +0100 Merge pull request #3912 from techee/utils_private Move utils_utf8_strdown() under GEANY_PRIVATE in utils.h commit 0a25af7d16bebf84729694ea6c4dd224b6deabd8 Author: Jiří Techet Date: Thu Jun 20 00:32:54 2024 +0200 Don't include geanyfunctions.h from geanyplugin.h Clangd complains with main file cannot be included recursively when building a preamble and I suspect geanyfunctions.h is the old (and now empty) version of geanyplugin.h so there's no need to include it anyway. plugins/geanyplugin.h | 1 - 1 file changed, 1 deletion(-) commit 944f188f018af3264dd132ca83c91c3a500cc6d0 Author: Jiří Techet Date: Thu Jun 20 00:13:53 2024 +0200 Move utils_utf8_strdown() under GEANY_PRIVATE in utils.h src/utils.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 90027ebf0f7034f0aad61d509c0f1f9a1dda7ea3 Merge: 4ce9018b8 abbe1c984 Author: Jiří Techet Date: Sun Jun 16 19:05:52 2024 +0200 Merge pull request #3909 from techee/infobar_fix Avoid unwanted selection when infobar shows by mouse click in Scintilla commit 4ce9018b8fcd580d667d1462326dcf887d5c2218 Merge: 948387391 e01d7c4f0 Author: Colomban Wendling Date: Sat Jun 15 22:14:11 2024 +0200 Merge pull request #3877 from techee/ctags_sync6 Update ctags to p6.1.20240519.0 commit 94838739140cd0552a91a3eecc0013d00f99a11f Merge: b7f3e327c 0cf693037 Author: Colomban Wendling Date: Fri Jun 14 23:28:43 2024 +0200 Merge pull request #3902 from techee/progressbar_cpu Fix elevated CPU usage after ui_progress_bar_start/stop() is used commit b7f3e327c3bc0080325f8efcd35e44ba2077f556 Merge: 37e861805 293157c7a Author: Colomban Wendling Date: Fri Jun 14 22:34:42 2024 +0200 Merge pull request #3891 from b4n/document_activate_fix_2 Fix emission of document-activate signal and associated UI glitches commit abbe1c984f6da1f1a1fa89851b9d010e5d3a19ae Author: Jiří Techet Date: Fri Jun 14 13:17:41 2024 +0200 Avoid unwanted selection when infobar shows by mouse click in Scintilla Steps to reporduce: 1. Open file A in Geany 2. In a separate window, edit the same file (using e.g. vi) 3. Click to Geany editor so it regains focus 4. An infobar appears. As it appears, several lines in editor are selected The selection is caused by the fact that as the same time the editor is being clicked, Geany checks if the document was modified and shows the info bar. The info bar makes the Scintilla editor smaller and it scrolls by the amount of lines corresponding to the height of the infobar. All this happens in the click handler and for Scintilla it appears as if the mouse button was presses during the scroll and it makes the selection. Showing infobars on idle seems to fix the problem. Fixes #3906. src/document.c | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) commit 293157c7a99880523900e29a1e3191800c2018fe Author: Colomban Wendling Date: Sat Jun 1 22:25:21 2024 +0200 Fix emission of document-activate signal and associated UI glitches PR https://github.com/geany/geany/pull/3267 broke handling of several special tab switch cases: * By showing the tab's child too early, it prevented the switch-page handler to properly work in situations where there was only one page, as the tab switch would happen at page creation yet the document would not be valid yet. * It removed explicit emission of the switch-page signal when the source and target pages are the same after session opening, which happens if the active session page is the first one. Fix this by mostly reverting 23367de0c5237558ea63cb8c711d46390d978267 and implementing the delay directly in the switch-page handler. Fixes #3684. src/callbacks.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++----------- src/document.c | 39 +++++++++----------------------------- src/editor.c | 7 ++----- src/keyfile.c | 6 +++--- src/libmain.c | 2 +- src/notebook.c | 2 -- 6 files changed, 63 insertions(+), 52 deletions(-) commit 37e8618052e8cf6c4a534911625e160c40d7a5c9 Merge: a0964041b 0dfd4655a Author: Jiří Techet Date: Thu Jun 13 00:07:58 2024 +0200 Merge pull request #3572 from techee/document_before_save_as Add "document-before-save-as" signal commit a0964041b874f79a435271356326d0ac87721b6d Merge: 05286579a 350434025 Author: Colomban Wendling Date: Wed Jun 12 22:50:46 2024 +0200 Merge pull request #3650 from b4n/autotools-gmo-update Autotools: regenerate gmo files when po files are updated commit 8f00b04cefd88630e1860e100ffab3e8dd81f2a2 Author: Jiří Techet Date: Wed Jun 12 13:43:35 2024 +0200 Drop win32_message_dialog()s There doesn't seem to be much need for these and they look a little different from the rest of Geany (or a lot different when Windows uses the dark theme and Geany the light one). Before removing the native win32 file open dialogs, win32_message_dialog() was called from the native file dialog implementations so its presence was necessary but I think normal GTK dialogs will serve their purpose well. src/dialogs.c | 35 +--------------------------------- src/win32.c | 61 ----------------------------------------------------------- src/win32.h | 2 -- 3 files changed, 1 insertion(+), 97 deletions(-) commit 05286579a253e2806192e863475b28b47843b2aa Merge: 7909ce299 3106a9385 Author: Jiří Techet Date: Wed Jun 12 14:01:33 2024 +0200 Merge pull request #3861 from techee/native_dialogs Use GtkFileChooserNative for opening files on Windows and macOS commit 3106a938506c3b73e775d055025fb774aa828b80 Author: Colomban Wendling Date: Tue Jun 11 22:21:26 2024 +0200 Do not create empty file filters The xdg-desktop-portal file chooser implementation (that can be forced with `GTK_USE_PORTAL=1`) doesn't allow those and fails to create the dialog if there are any such filter. This seems like a potential xdg-desktop-portal bug, but it's easy enough to workaround, and there's no guarantee yet it will change. It's also unlikely to actually happen that we create such an empty filter, but it is possible if a filetype doesn't have a corresponding filetype_extensions.conf entry. src/dialogs.c | 12 +++++++----- src/filetypes.c | 17 +++++++++++++++++ 2 files changed, 24 insertions(+), 5 deletions(-) commit f1a2870609d855c4ba3acbfc341bb314cc96b687 Author: Jiří Techet Date: Tue Jun 11 13:06:44 2024 +0200 Remove some more win32 code that was previously used by native dialogs src/win32.c | 121 ------------------------------------------------------------ 1 file changed, 121 deletions(-) commit 0cf69303741737f2b7fd0a0de024f5ecc0755985 Author: Jiří Techet Date: Mon Jun 10 21:47:29 2024 +0200 Fix elevated CPU usage after ui_progress_bar_start/stop() is used After calling ``` ui_progress_bar_start("foo"); ... ui_progress_bar_stop(); ``` which should theoretically completely stop the progress bar, I get elevated CPU usage of the whole Geany process ~1% CPU on idle (and around 4% on macOS) compared to 0% after Geany launch before the status bar progress bar is used (e.g. by compiling). GTK seems to keep the widget connected to "tick callback" which causes the higher CPU (in fact, there's no gtk_progress_bar_stop() so it can't do it). The workaround to fix this problem is to call ``` gtk_progress_bar_set_fraction() ``` which switches the progress bar to the mode where it shows the user-provided progress and this removes the "tick callback". src/printing.c | 2 ++ src/ui_utils.c | 4 ++++ 2 files changed, 6 insertions(+) commit 7a259e8ed7e76f3861d192afa083dae78de44e7b Author: Jiří Techet Date: Mon Jun 10 00:03:43 2024 +0200 Apply Colomban's patch allowing to remember selected file filter src/dialogs.c | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) commit 2337e3e9e4334b8c9ce44460b6f6f8ed94ab2986 Author: Jiří Techet Date: Sun Jun 9 19:15:46 2024 +0200 Reword help tooltip for the native dialogs data/geany.glade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7909ce299350e1ea882be3a559240aa374cec454 Merge: be7e3cea3 b3b2eed0a Author: Enrico Tröger Date: Sun Jun 9 13:52:46 2024 +0200 Merge pull request #3815 from ntrel/fb-open [plugins/filebrowser] Change external open default to `xdg-open` commit be7e3cea30d723d9d4a3fcaa8ea3e7e83cd60c44 Merge: 539287d6f 41620fc86 Author: Enrico Tröger Date: Sun Jun 9 13:46:03 2024 +0200 Merge pull request #3833 from ntrel/custom-dialog [build] Improve custom command dialog commit 539287d6f2d45ee6fa62e8f88612f7f25ea77cdd Merge: b17d6b2ba 186166f5c Author: Enrico Tröger Date: Sun Jun 9 13:39:32 2024 +0200 Merge pull request #3893 from techee/version_fix meson: make VERSION contain string, not a double commit b17d6b2baea9691a610a927ef7a038c035a82df6 Merge: 1ec795330 17f87f857 Author: Enrico Tröger Date: Sun Jun 9 13:30:03 2024 +0200 Merge pull request #3878 from eht16/issue3660_rename_win32_macro Remove custom WIN32 compiler macro in favor of _WIN32 commit 1ec79533008a3afd16514c689f84e444e3f8a9ad Merge: 96e6fb7d3 65aab5a43 Author: Enrico Tröger Date: Sun Jun 9 13:26:07 2024 +0200 Merge pull request #3885 from eht16/win32_add_glib_compile_schemas Windows: Add glib-compile-schemas.exe to GTK bundle commit d267fa2d92b069a9c0c19675a0b88a842d967181 Author: Jiří Techet Date: Sat Jun 8 23:08:27 2024 +0200 Fix a problem when multiple project opens clear the default session Steps to reproduce: 1. With no project open, open some files 2. Open project A 3. Without closing project A first, open project B 4. Close project B 5. The originally open files from (1) are gone The problem is that when project A closes and all its files are closed, load_config() gets called which contains configuration_save_default_session(); This saves the session with all files closed and replaces the original session. This patch modifies the code to call configuration_save_default_session() only when there are some open tabs so the above problem gets solved. Even though I was worried that this would break saving default session when all its files get closed and then a project is loaded, it doesn't seem to be the case (I haven't investigated deep enough why). An alternative to this approach would be to pass a boolean as a parameter of quite many functions and propagate the information whether project close preceded its opening but it introduces a much bigger diff and makes the complicated session opening stuff even wilder. Fixes #3897. src/project.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4b1be9a5776d1ca125a2b70177b618acee9b9db5 Author: Jiří Techet Date: Sat Jun 8 20:52:56 2024 +0200 Use GTK_IS_NATIVE_DIALOG() in tests instead of GTK_IS_WIDGET() plugins/saveactions.c | 12 ++++++------ src/dialogs.c | 16 ++++++++-------- 2 files changed, 14 insertions(+), 14 deletions(-) commit da3442e2172c901762a74098655e0b1855b977a1 Author: Jiří Techet Date: Sat Jun 8 20:30:10 2024 +0200 Use default labels in native dialogs plugins/saveactions.c | 2 +- src/dialogs.c | 4 ++-- src/project.c | 6 +++--- src/symbols.c | 2 +- src/ui_utils.c | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) commit cf8c5c52d794ce39fc951075435689671d7f6af0 Author: Jiří Techet Date: Sat Jun 8 12:22:57 2024 +0200 Make strings translatable plugins/saveactions.c | 2 +- src/dialogs.c | 4 ++-- src/project.c | 6 +++--- src/symbols.c | 2 +- src/ui_utils.c | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) commit 26a1143fe9ca55f1b2172569598b5b4d129a807e Author: Jiří Techet Date: Sat Jun 8 11:44:25 2024 +0200 Convert the saveactions plugin to use native dialogs plugins/saveactions.c | 41 ++++++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 9 deletions(-) commit 186166f5ca30d126cb4ee663df73947dfa616d10 Author: Jiří Techet Date: Fri Jun 7 22:12:49 2024 +0200 meson: make VERSION contain string, not a double In autotools, the generated config.h contains #define VERSION "2.1" while in meson it's #define VERSION 2.1 meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6dc240625f4ace92bd18edf67d8961e77efb3ed6 Author: ajpf44 Date: Thu Jun 6 09:24:55 2024 -0300 Add support for .tsx and .jsx file extensions to filetype_extensions.conf data/filetype_extensions.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 96e6fb7d3d924354a1bc9226f389124d29506010 Merge: dec5450cd e366b21fc Author: Enrico Tröger Date: Sun Jun 2 18:47:51 2024 +0200 Merge pull request #3757 from andy5995/iss-3752 Add Dockerfile filedef commit dec5450cd3fce2c4a0d4509b556d169dff73caa2 Author: Colomban Wendling Date: Fri May 31 09:47:56 2024 +0200 PowerShell: Update keywords (#3886) https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_language_keywords?view=powershell-7.4 data/filedefs/filetypes.powershell | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e366b21fcc5eea51cc36ac151af2363dcedec8ac Author: andy5995 Date: Fri Feb 9 06:29:32 2024 -0600 Add Dockerfile filedef Per @elextr will require further discussion. Closes https://github.com/geany/geany/issues/3752 but data/Makefile.am | 1 + data/filedefs/filetypes.Dockerfile.conf | 14 ++++++++++++++ data/filetype_extensions.conf | 3 ++- 3 files changed, 17 insertions(+), 1 deletion(-) commit ac357ed1c84d07a4e19d2dbb00251eaec6500e3c Merge: 6f0519c32 dcd46bbe6 Author: Jiří Techet Date: Mon May 27 17:18:41 2024 +0200 Merge pull request #3865 from techee/none_crash Fix crash by protecting tm_ctags_*() functions against TM_PARSER_NONE commit dcd46bbe62e32d3ed1f6f25b977cdfeecd95ee2d Author: Jiří Techet Date: Sun May 5 00:26:59 2024 +0200 Protect tm_ctags_*() functions against TM_PARSER_NONE language parameter This can happen when in the filetype configuration we set [settings] tag_parser= This then leads to a crash in the ctags code. src/tagmanager/tm_ctags.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) commit e01d7c4f00f0c168326568cdc17e2b3d6341351a Author: Jiří Techet Date: Sun May 26 23:20:18 2024 +0200 Update to the latest jscript parser which contains some fixes ctags/parsers/jscript.c | 70 ++++++++++++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 30 deletions(-) commit ca9789473ad32a696d8f6bc712b4631bbf86f159 Author: Jiří Techet Date: Sun May 26 23:17:58 2024 +0200 Map Matlab variables back to tm_tag_undef_t The parser makes tags for each assignment which is too noisy. src/tagmanager/tm_parser.c | 3 +-- tests/ctags/matlab_backtracking.m.tags | 10 ---------- tests/ctags/matlab_test.m.tags | 2 -- 3 files changed, 1 insertion(+), 14 deletions(-) commit 834d81ce2b8ddcc495f70eb65ed2809689a7b47d Author: Jiří Techet Date: Sun May 26 22:31:24 2024 +0200 Map powershell enumlabel to tm_tag_enumerator_t src/tagmanager/tm_parser.c | 14 +++++++------- tests/ctags/enum.ps1.tags | 16 ++++++++++++++++ 2 files changed, 23 insertions(+), 7 deletions(-) commit 6f0519c3207e4752ff60f1d7d275becf32b42a8a Author: Peter C. S. Scholtens Date: Sun May 26 00:46:32 2024 +0200 Update nl.po (#3881) Removed two typo's po/nl.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 65aab5a43de127c9aa62c9a29c9abff8f7610921 Author: Enrico Tröger Date: Sat May 25 13:06:55 2024 +0200 Windows: Compile GLib schemas after installation geany.nsi.in | 2 ++ 1 file changed, 2 insertions(+) commit f5c2985eeb92f5882143699422a0f6a1b92f1add Author: Enrico Tröger Date: Sat May 25 13:06:03 2024 +0200 Windows: Add glib-compile-schemas.exe to GTK bundle This is necessary to compile GLib schemas, e.g. when installing plugins with their dependencies. scripts/gtk-bundle-from-msys2.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7d1b0ca805f1b830a9276ab48ceec2d8acb239de Author: Chocobo1 Date: Tue May 21 17:33:21 2024 +0800 Add file extensions for TypeScript (#3867) `.cts`: CommonJS TypeScript `.mts`: ES TypeScript See: https://www.typescriptlang.org/docs/handbook/modules/reference.html#module-format-detection data/filetype_extensions.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 17f87f857adf4b2a4cea95f292e0899ba92e42ec Author: Enrico Tröger Date: Mon May 20 16:33:22 2024 +0200 Remove custom WIN32 compiler macro in favor of _WIN32 Closes #3660. ctags/gnu_regex/regex_internal.h | 2 +- m4/geany-mingw.m4 | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) commit 266bf72d20e8ddc8fc2862c0ab3a5ab9cd523259 Merge: 529f5d496 bb15a702a Author: Enrico Tröger Date: Mon May 20 16:02:41 2024 +0200 Merge pull request #3851 from eht16/issue3702_add_various_pref_replace_in_session Closes #3702. commit f52ed0e95f74f714789bb156752d9921fff11606 Author: Jiří Techet Date: Sun May 19 14:25:13 2024 +0200 Update matlab unit test output tests/ctags/matlab_test.m.tags | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit df6aca53349f12501ab9849da0e941337b981c53 Author: Jiří Techet Date: Sun May 19 14:20:30 2024 +0200 Add missing powershell mapping src/tagmanager/tm_parser.c | 1 + 1 file changed, 1 insertion(+) commit 1b92bace7c781053ede56004bb7cbaf5200dd6e4 Author: Jiří Techet Date: Sun May 19 14:14:35 2024 +0200 Update ctags to p6.1.20240519.0 ctags/libreadtags/readtags.c | 298 ++++++++++++++++++++++++++++++------------- ctags/libreadtags/readtags.h | 20 ++- ctags/main/repoinfo.h | 2 +- ctags/parsers/jscript.c | 96 ++++++++++---- ctags/parsers/matlab.c | 11 +- ctags/parsers/pascal.c | 11 ++ ctags/parsers/powershell.c | 35 +++++ 7 files changed, 354 insertions(+), 119 deletions(-) commit 529f5d496b0182e495b3262407fa6e86533000fc Author: Chocobo1 Date: Sun May 19 09:26:03 2024 +0800 Add `.cjs` extension for JavaScript (#3866) `.cjs` is a commonly used file extension for Node.js and it is the complementary of `.mjs`. See: https://nodejs.org/docs/latest/api/esm.html#enabling data/filetype_extensions.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d7bb8210d7ad880b0c903b78b0f66c46b755dae7 Author: Jiří Techet Date: Sat May 18 15:44:25 2024 +0200 update-ctags.py: Also copy the readtags library scripts/update-ctags.py | 4 ++++ 1 file changed, 4 insertions(+) commit 2d1b3d5cbc2c33f7371a7bb8393c454398a99759 Merge: 11b4a00a3 ae75c73b4 Author: Jiří Techet Date: Tue May 14 13:45:19 2024 +0200 Merge pull request #3859 from techee/ctags_sync2 Sync our ctags to the latest tag version (p6.1.20240421.0) commit ae75c73b48db70a5d59e2dc02a566f1ebfa2ef46 Author: Colomban Wendling Date: Mon May 13 22:32:25 2024 +0200 Fix a JavaScript test Remove invalid code (despite what the code says) that now confuses the parser, leading to missing tags after it. tests/ctags/simple.js | 3 ++- tests/ctags/simple.js.tags | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) commit 77614bd228aaba187faaef3631d127f231fce1f4 Author: Colomban Wendling Date: Mon May 13 22:04:02 2024 +0200 Map PowerShell classes and enums src/tagmanager/tm_parser.c | 6 ++++-- tests/ctags/Makefile.am | 2 ++ tests/ctags/class.ps1 | 29 +++++++++++++++++++++++++++++ tests/ctags/class.ps1.tags | 12 ++++++++++++ tests/ctags/enum.ps1 | 23 +++++++++++++++++++++++ tests/ctags/enum.ps1.tags | 8 ++++++++ tests/meson.build | 2 ++ 7 files changed, 80 insertions(+), 2 deletions(-) commit 2d8d4f2edacbfc82743a4d020d9c22bc6526b92b Author: Jiří Techet Date: Sun May 12 22:38:57 2024 +0200 Use GTK_RESPONSE_ACCEPT which is also used by GtkFileChooserNative src/symbols.c | 4 ++-- src/ui_utils.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 4dff3767b9f80719dab3d1a83443be52cd377fa8 Author: Jiří Techet Date: Sun May 12 21:46:41 2024 +0200 Use GtkFileChooserNative in ui_utils.c src/ui_utils.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) commit ee8f885acf554c494b00f0f3a80a3c17676838ca Author: Jiří Techet Date: Sun May 12 21:38:15 2024 +0200 Remove usage of windows-native dialogs from ui_utils.c and win32.c/h src/ui_utils.c | 16 ----------- src/win32.c | 89 ---------------------------------------------------------- src/win32.h | 4 --- 3 files changed, 109 deletions(-) commit 91fb8850281979356cdc38b5ea2b97e1b7132461 Author: Jiří Techet Date: Sun Apr 28 19:53:35 2024 +0200 Use GtkFileChooserNative depending on user configuration data/geany.glade | 16 +++++ src/dialogs.c | 197 +++++++++++++++++++++++++++++++++---------------------- src/dialogs.h | 3 + src/keyfile.c | 11 +++- src/prefs.c | 8 +++ src/project.c | 118 +++++++++++++++++++-------------- src/symbols.c | 29 ++++---- src/ui_utils.h | 2 +- 8 files changed, 239 insertions(+), 145 deletions(-) commit 0dfd4655a98778c74ba2f3c2de135627acb84e01 Author: Jiří Techet Date: Tue Sep 19 20:37:23 2023 +0200 Add "document-before-save-as" signal Right now only the "document-save" is fired when performing "save as" which lacks the information about the original file name (which, for instance, is necessary for the LSP client where it needs to notify the server that the "old" document was closed and the document under the new name opened). doc/pluginsignals.c | 11 +++++++++++ src/document.c | 2 ++ src/geanyobject.c | 7 +++++++ src/geanyobject.h | 1 + 4 files changed, 21 insertions(+) commit acb4678486110d90dd46eb6dea336f5907cafb14 Author: Jiří Techet Date: Fri May 10 23:27:17 2024 +0200 Map freepascal namespaces and add a unit test for them src/tagmanager/tm_parser.c | 5 +++-- tests/ctags/Makefile.am | 1 + tests/ctags/namespace.bas | 15 +++++++++++++++ tests/ctags/namespace.bas.tags | 12 ++++++++++++ tests/meson.build | 1 + 5 files changed, 32 insertions(+), 2 deletions(-) commit 0b52e79c93942d115d94a2df6015a1c704fb0ad6 Author: Jiří Techet Date: Fri May 10 23:08:50 2024 +0200 Add dummy TMParserMapGroup for ldscript to avoid warnings src/tagmanager/tm_parser.c | 1 + 1 file changed, 1 insertion(+) commit 11b4a00a3020b1c9ace3d3ae65aa5ec7d5ff84e0 Merge: ef2255bce 1ae53900e Author: Colomban Wendling Date: Fri May 10 21:50:42 2024 +0200 Merge pull request #3759 from andy5995/meson-fix-deprecated-str-fmt Fix deprecation warning about str.format() during meson setup commit 1ae53900e616eee1415fbbb90ed1733a3a54422e Author: andy5995 Date: Fri Feb 9 07:36:33 2024 -0600 Fix deprecation warning about str.format() during meson setup Each object in the list is a file object, not a string: `ctags_tests = files([...` hence the message: "tests/meson.build:359: DEPRECATION: Project uses feature that was always broken, and is now deprecated since '1.3.0': str.format: Value other than strings, integers, bools, options, dictionaries and lists thereof..." tests/meson.build | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ef2255bced523a3ad75773bac3e77b02725f10fd Author: Frank Lanitz Date: Wed May 1 13:49:00 2024 +0200 Small update of German translation po/de.po | 1850 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 941 insertions(+), 909 deletions(-) commit bb15a702a9a0ae9eb4e2f805e391f30c6a9f06ad Author: Enrico Tröger Date: Sun Apr 28 14:50:31 2024 +0200 fixup: do not increase plugin API version src/plugindata.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d515bce2167fd8623c83dc51e38562a4b822d019 Author: Jiří Techet Date: Sat Apr 27 22:11:33 2024 +0200 Use repoinfo.h with the used tag version ctags/main/repoinfo.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aa0c796b5c1e6a1b6a4050086309a5864819eca3 Author: Jiří Techet Date: Sat Apr 27 22:09:38 2024 +0200 Switch to uctags regex-based matlab parser Even though the output isn't perfect, I'd prefer not to maintain our own version of the parser (with different kinds which makes ctags files incompatible with our version). ctags/Makefile.am | 2 +- ctags/parsers/geany_matlab.c | 150 --------------------------------- ctags/parsers/matlab.c | 53 ++++++++++++ meson.build | 2 +- src/tagmanager/tm_parser.c | 6 +- tests/ctags/matlab_backtracking.m.tags | 10 +++ tests/ctags/matlab_test.m.tags | 6 +- 7 files changed, 73 insertions(+), 156 deletions(-) commit 978eb03e3bb33612013495054238fbc2a66683cf Author: Jiří Techet Date: Sat Apr 27 19:38:51 2024 +0200 Update unit tests for javascript There are lots of differences because of https://github.com/universal-ctags/ctags/commit/6d85089456ed215ce6b6a673744ae42ccc5e0e99 Also https://github.com/universal-ctags/ctags/commit/b1870b826a384c35671937743720464947af3b7e seems to confuse the parser in simple.js so it doesn't generate my_global_var2. Finally, Geany reports (geany:820768): Tagmanager-WARNING **: 20:38:28.755: ignoring null tag in /home/parallels/projects/geany/doc/reference/jquery.js(line: 2, language: JavaScript) tests/ctags/1795612.js.tags | 4 +- tests/ctags/1850914.js.tags | 4 +- tests/ctags/1878155.js.tags | 4 +- tests/ctags/1880687.js.tags | 4 +- tests/ctags/3470609.js.tags | 8 +- tests/ctags/arraylist.js.tags | 34 +++++++- tests/ctags/bracematch.js.tags | 8 +- tests/ctags/bug1950327.js.tags | 4 +- tests/ctags/bug2888482.js.tags | 2 + tests/ctags/bug3571233.js.tags | 6 +- tests/ctags/complex-return.js.tags | 16 ++-- tests/ctags/js-class-related-unterminated.js.tags | 4 +- tests/ctags/js-const.js.tags | 4 +- tests/ctags/js-let.js.tags | 4 +- tests/ctags/js-string-continuation.js.tags | 4 +- tests/ctags/js-unknown-construct-nesting.js.tags | 4 +- tests/ctags/jsFunc_tutorial.js.tags | 98 ++++++++++++++--------- tests/ctags/parenthesis-rvalue.js.tags | 8 +- tests/ctags/secondary_fcn_name.js.tags | 12 +-- tests/ctags/simple.js.tags | 10 ++- tests/ctags/ui5.controller.js.tags | 2 + 21 files changed, 146 insertions(+), 98 deletions(-) commit 27659bdef5000de4cdf79ca0c154f7c9ad1dcd01 Author: Jiří Techet Date: Sat Apr 27 19:15:59 2024 +0200 Disable roles for macro kinds in C/C++ When role kinds are enabled, they report tags also for checks like #ifdef MY_MACRO in which we are not interested. src/tagmanager/tm_parser.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 65bad205df3ce7a5bc089d3a71beac27e03b54de Author: Jiří Techet Date: Sat Apr 27 19:07:12 2024 +0200 Update asm test Note: in C and other languages function arguments contain braces but it doesn't seem to be the case here. So instead of mymacro(args) we get mymacroargs in the pretty-printer script. Not sure if it's our problem or if the asm parser should be updated upstream. tests/ctags/masm.asm.tags | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 786819ba79574afcfd0cd92d0ac561a925441c1c Author: Jiří Techet Date: Sat Apr 27 19:00:31 2024 +0200 Map filter to tm_tag_function_t for powershell to get the same output as before src/tagmanager/tm_parser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cdf1aa1fbc7ba8d93dc3373a0c8600a80a4c03be Author: Jiří Techet Date: Sat Apr 27 18:55:31 2024 +0200 Map defines to tm_tag_variable_t of verilog so we get the same output as before src/tagmanager/tm_parser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e00a2684d34446ae7426ee8e00349f8d3595e2fc Author: Jiří Techet Date: Sat Apr 27 18:49:46 2024 +0200 Map title/subtitle of the rst parser Without it we might not get proper hierarchy in the sidebar because of missing parent tags. src/tagmanager/tm_parser.c | 6 ++++-- tests/ctags/simple.rst | 8 ++++++++ tests/ctags/simple.rst.tags | 12 ++++++++---- 3 files changed, 20 insertions(+), 6 deletions(-) commit f21e1de08482a73fdc41694e7dbc81c9735a29dc Author: Jiří Techet Date: Sat Apr 27 18:36:38 2024 +0200 Update parser kind mappings All extra kinds are mapped to undef_t. Geany starts after this step. src/tagmanager/tm_parser.c | 51 ++++++++++++++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 18 deletions(-) commit 7943b7d9ec47805caac6b071ca13da4a73c14326 Author: Jiří Techet Date: Sat Apr 27 10:52:19 2024 +0200 Add ldscript parser The parser isn't used by Geany itself but is started from within the cxx parser and the asm parser which don't run correctly without it. ctags/Makefile.am | 1 + ctags/parsers/ldscript.c | 925 ++++++++++++++++++++++++++++++++++++++++++++ meson.build | 1 + src/tagmanager/tm_parser.c | 12 + src/tagmanager/tm_parser.h | 1 + src/tagmanager/tm_parsers.h | 3 +- 6 files changed, 942 insertions(+), 1 deletion(-) commit baaed02db0c345da0034d7f87fa3aa8c2f55b753 Author: Jiří Techet Date: Sat Apr 27 00:59:31 2024 +0200 Update all parsers and related files to ctags p6.1.20240421.0 Geany compiles fine after this step, it just doesn't run because of incorrect mappings. ctags/Makefile.am | 11 + ctags/dsl/es.c | 37 +- ctags/dsl/es.h | 6 + ctags/dsl/optscript.c | 240 ++- ctags/dsl/optscript.h | 2 +- ctags/main/CommonPrelude.c | 96 ++ ctags/main/args.c | 6 +- ctags/main/colprint.c | 11 +- ctags/main/ctags.h | 50 +- ctags/main/debug.c | 5 +- ctags/main/debug.h | 14 +- ctags/main/dependency.c | 26 +- ctags/main/dependency.h | 1 + ctags/main/dependency_p.h | 1 + ctags/main/e_msoft.h | 1 - ctags/main/entry.c | 551 ++++-- ctags/main/entry.h | 159 +- ctags/main/error_p.h | 4 +- ctags/main/field.c | 155 +- ctags/main/field.h | 10 +- ctags/main/field_p.h | 12 +- ctags/main/fmt.c | 12 +- ctags/main/general.h | 2 +- ctags/main/htable.c | 200 ++- ctags/main/htable.h | 16 +- ctags/main/interval_tree_generic.h | 197 +++ ctags/main/keyword.c | 38 +- ctags/main/keyword.h | 20 + ctags/main/kind.c | 7 +- ctags/main/lregex.c | 977 ++++++++--- ctags/main/lregex_p.h | 7 +- ctags/main/lxpath.c | 17 +- ctags/main/lxpath.h | 2 + ctags/main/lxpath_p.h | 1 + ctags/main/main.c | 2 +- ctags/main/mbcs.c | 4 +- ctags/main/mini-geany.c | 48 +- ctags/main/nestlevel.c | 50 +- ctags/main/nestlevel.h | 17 +- ctags/main/numarray.c | 12 +- ctags/main/numarray.h | 3 +- ctags/main/options.c | 238 +-- ctags/main/options_p.h | 5 +- ctags/main/param.c | 92 +- ctags/main/param.h | 4 +- ctags/main/param_p.h | 21 +- ctags/main/parse.c | 655 +++++-- ctags/main/parse.h | 35 +- ctags/main/parse_p.h | 24 +- ctags/main/parsers_p.h | 40 +- ctags/main/promise.c | 56 +- ctags/main/promise.h | 2 + ctags/main/ptag.c | 39 +- ctags/main/ptag_p.h | 5 + ctags/main/ptrarray.c | 18 +- ctags/main/ptrarray.h | 4 +- ctags/main/rbtree.c | 713 ++++---- ctags/main/rbtree.h | 193 +-- ctags/main/rbtree_augmented.h | 247 +++ ctags/main/read.c | 144 +- ctags/main/read.h | 21 +- ctags/main/read_p.h | 9 +- ctags/main/repoinfo.h | 2 +- ctags/main/routines.c | 59 +- ctags/main/routines.h | 5 +- ctags/main/script.c | 10 +- ctags/main/script_p.h | 6 +- ctags/main/seccomp.c | 2 + ctags/main/selectors.c | 445 +++-- ctags/main/selectors.h | 20 +- ctags/main/sort.c | 44 +- ctags/main/strlist.c | 4 +- ctags/main/subparser.h | 1 + ctags/main/subparser_p.h | 1 - ctags/main/trace.h | 14 +- ctags/main/trashbox.c | 1 + ctags/main/types.h | 4 +- ctags/main/unwindi.c | 6 +- ctags/main/utf8_str.c | 83 + ctags/main/utf8_str.h | 22 + ctags/main/vstring.c | 32 +- ctags/main/vstring.h | 61 +- ctags/main/writer-ctags.c | 79 +- ctags/main/writer-json.c | 34 +- ctags/main/writer.c | 4 +- ctags/main/writer_p.h | 8 +- ctags/main/xtag.c | 6 +- ctags/main/xtag_p.h | 4 +- ctags/parsers/abaqus.c | 6 +- ctags/parsers/ada.c | 74 +- ctags/parsers/asciidoc.c | 42 +- ctags/parsers/asm.c | 654 ++++++- ctags/parsers/autoit.c | 34 +- ctags/parsers/basic.c | 326 +++- ctags/parsers/bibtex.c | 93 +- ctags/parsers/bibtex.h | 25 + ctags/parsers/clojure.c | 38 +- ctags/parsers/cobol.c | 12 +- ctags/parsers/cpreprocessor.c | 505 +++++- ctags/parsers/cpreprocessor.h | 26 +- ctags/parsers/css.c | 9 +- ctags/parsers/cxx/cxx.c | 16 + ctags/parsers/cxx/cxx_debug.c | 17 +- ctags/parsers/cxx/cxx_keyword.c | 81 +- ctags/parsers/cxx/cxx_keyword.h | 15 +- ctags/parsers/cxx/cxx_parser.c | 133 +- ctags/parsers/cxx/cxx_parser_block.c | 100 +- ctags/parsers/cxx/cxx_parser_function.c | 76 +- ctags/parsers/cxx/cxx_parser_internal.h | 16 + ctags/parsers/cxx/cxx_parser_lambda.c | 3 +- ctags/parsers/cxx/cxx_parser_module.c | 331 ++++ ctags/parsers/cxx/cxx_parser_namespace.c | 4 +- ctags/parsers/cxx/cxx_parser_template.c | 43 +- ctags/parsers/cxx/cxx_parser_tokenizer.c | 86 +- ctags/parsers/cxx/cxx_parser_typedef.c | 13 +- ctags/parsers/cxx/cxx_parser_using.c | 26 +- ctags/parsers/cxx/cxx_parser_variable.c | 123 +- ctags/parsers/cxx/cxx_qtmoc.c | 3 +- ctags/parsers/cxx/cxx_scope.c | 25 +- ctags/parsers/cxx/cxx_scope.h | 5 + ctags/parsers/cxx/cxx_side_chain.c | 230 +++ ctags/parsers/cxx/cxx_side_chain.h | 33 + ctags/parsers/cxx/cxx_tag.c | 159 +- ctags/parsers/cxx/cxx_tag.h | 50 +- ctags/parsers/cxx/cxx_token.c | 18 +- ctags/parsers/cxx/cxx_token.h | 11 +- ctags/parsers/cxx/cxx_token_chain.c | 92 +- ctags/parsers/cxx/cxx_token_chain.h | 10 +- ctags/parsers/diff.c | 4 +- ctags/parsers/erlang.c | 10 +- ctags/parsers/flex.c | 18 +- ctags/parsers/fortran.c | 188 +- ctags/parsers/gdscript.c | 74 +- ctags/parsers/geany_lcpp.h | 23 + ctags/parsers/go.c | 13 +- ctags/parsers/haskell.c | 2 +- ctags/parsers/haxe.c | 57 +- ctags/parsers/html.c | 181 +- ctags/parsers/iniconf.c | 24 +- ctags/parsers/jscript.c | 2752 ++++++++++++++++++------------ ctags/parsers/jscript.h | 32 + ctags/parsers/json.c | 7 +- ctags/parsers/julia.c | 16 +- ctags/parsers/lisp.c | 18 +- ctags/parsers/lua.c | 18 +- ctags/parsers/make.c | 85 +- ctags/parsers/markdown.c | 190 ++- ctags/parsers/markdown.h | 37 + ctags/parsers/nsis.c | 34 +- ctags/parsers/objc.c | 14 +- ctags/parsers/ocaml.c | 18 +- ctags/parsers/pascal.c | 18 +- ctags/parsers/perl.c | 334 +++- ctags/parsers/perl.h | 1 + ctags/parsers/php.c | 75 +- ctags/parsers/powershell.c | 234 ++- ctags/parsers/python.c | 190 ++- ctags/parsers/r.c | 19 +- ctags/parsers/rst.c | 410 ++++- ctags/parsers/ruby.c | 665 ++++++-- ctags/parsers/ruby.h | 43 + ctags/parsers/rust.c | 25 +- ctags/parsers/sh.c | 515 +++++- ctags/parsers/sh.h | 42 + ctags/parsers/sql.c | 358 +++- ctags/parsers/tcl.c | 21 +- ctags/parsers/tcloo.c | 11 +- ctags/parsers/tex.c | 9 +- ctags/parsers/typescript.c | 14 +- ctags/parsers/verilog.c | 687 +++++--- ctags/parsers/vhdl.c | 12 +- meson.build | 11 + 172 files changed, 13120 insertions(+), 4504 deletions(-) commit 7b14e1a8a31a6b52700c33c5880093e6e9a28d28 Author: Jiří Techet Date: Fri Apr 26 23:47:52 2024 +0200 Update perl6.c to raku.c parser The file name has been changed and we cannot use the script for the update. ctags/Makefile.am | 2 +- ctags/parsers/{perl6.c => raku.c} | 105 ++++++++++++++++++++++++-------------- meson.build | 2 +- 3 files changed, 69 insertions(+), 40 deletions(-) commit de4f029fb23c4058a71db6f05a4c892643a0ec62 Merge: 9a507b47b aa4e90180 Author: Jiří Techet Date: Wed Apr 24 00:09:36 2024 +0200 Merge pull request #3785 from techee/anon_fix Rename both scope and var_type of anonymous types commit aa4e901807e8f0294f25d9f4ef3516b775ce0b8d Author: Jiří Techet Date: Wed Mar 6 23:11:36 2024 +0100 Rename both scope and var_type of anonymous types In addition to scope, anonymous type can appear also inside var_type which should be renamed as well. Thanks to Colomban Wendling for improving the original version of this patch. Fixes #3717. src/tagmanager/tm_ctags.c | 59 ++++++++++++++++++++++++------------------ tests/ctags/Makefile.am | 1 + tests/ctags/nested_anon.c | 5 ++++ tests/ctags/nested_anon.c.tags | 6 +++++ tests/meson.build | 1 + 5 files changed, 47 insertions(+), 25 deletions(-) commit c0cd092a49a3162f57691099f115fc2689515774 Author: Enrico Tröger Date: Tue Apr 23 22:45:46 2024 +0200 fixup: move new search pref to the end of struct src/search.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9a507b47bc514514d15838d0dbf442317ed987fd Author: Colomban Wendling Date: Mon Apr 22 22:20:14 2024 +0200 meson: Use host instead of target They are gonna be the same in practice, but it's not how "target" is supposed to be used, see [1] and [2]. Streamline this to use "host", which also makes things match our Autotools closer. [1] https://mesonbuild.com/Cross-compilation.html [2] https://www.gnu.org/software/autoconf/manual/html_node/Specifying-Target-Triplets.html meson.build | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 15831f4dfb7c8cd7de5080e8dfddf7d84ca60c4f Merge: 9fff38560 c8365fd88 Author: Colomban Wendling Date: Sun Apr 21 21:34:31 2024 +0200 Merge pull request #3720 from b4n/encodings-ui-improvements Encodings UI improvements commit 9fff385604685e6707b0741ed9a737aaa5c23248 Merge: a168fac8f 053667e3a Author: Colomban Wendling Date: Sun Apr 21 21:33:21 2024 +0200 Merge pull request #3716 from b4n/encodings-fixes Various encodings conversion fixes commit a168fac8f683668f78517087b4efbc63cf48f98f Merge: 2c4261510 c509b9000 Author: Colomban Wendling Date: Sun Apr 21 19:50:41 2024 +0200 Merge pull request #3163 from techee/ocaml_parser Add Ocaml ctags parser commit 8c9818eb861065ca48854e0d7aed5b2daf52310a Author: Enrico Tröger Date: Sun Apr 21 17:57:49 2024 +0200 Reformat various prefs table in docs doc/geany.txt | 271 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 136 insertions(+), 135 deletions(-) commit 0a817aaca27051522321a9c9a1717eed41f56d35 Author: Enrico Tröger Date: Sun Apr 21 17:47:45 2024 +0200 Add missing various pref docs doc/geany.txt | 3 +++ 1 file changed, 3 insertions(+) commit 8bc9132acd14d6e9a1792bc9a9e7e2829b675c79 Author: Enrico Tröger Date: Sun Apr 21 17:47:15 2024 +0200 Add a various pref to skip 'replace in session' confirmation dialog Closes #3702. doc/geany.txt | 4 ++++ src/keyfile.c | 2 ++ src/plugindata.h | 2 +- src/search.c | 3 ++- src/search.h | 2 ++ 5 files changed, 11 insertions(+), 2 deletions(-) commit 2c4261510de9cf7d6024a3faffa0ad37704ef1b2 Merge: 679d79f98 6f72e72a1 Author: Enrico Tröger Date: Sun Apr 21 17:34:53 2024 +0200 Merge pull request #3656 from cx384/fortran_keywords Update fortran keywords commit 679d79f9870ea37802598634c6e3fc6c905725de Author: Colomban Wendling Date: Sat Apr 20 19:46:39 2024 +0200 tests: Mark several functions static tests/test_sidebar.c | 8 ++++---- tests/test_utils.c | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) commit 548c971499aecfa1021541b00ff40b0c6506cabb Merge: 3f60bdef1 53a42c6de Author: Colomban Wendling Date: Sat Apr 20 17:26:59 2024 +0200 Merge pull request #3846 from b4n/utils-get-initials Fix invalid memory access and Unicode support in utils_get_initials() commit 53a42c6de7875b0f112b4ed22eb3f3e1c9cf967c Author: Colomban Wendling Date: Fri Apr 19 23:15:14 2024 +0200 Fix invalid memory access and Unicode support in utils_get_initials() Fix utils_get_initials() reading past the end of the input string if that string was empty. Also fix support for non-ASCII initials for which the UTF-8 character representation would have been truncated to the first byte only, leading to an invalid value. Fixes #3844. src/utils.c | 32 ++++++++++++++++++++++++-------- tests/test_utils.c | 23 +++++++++++++++++++++++ 2 files changed, 47 insertions(+), 8 deletions(-) commit 3f60bdef185421f9d9934f4579b942f78fe82bc3 Merge: 0acee692b c120dcb36 Author: Colomban Wendling Date: Fri Apr 19 01:44:44 2024 +0200 Merge pull request #3837 from b4n/erl-ns Erlang: display module node in the symbols tree commit 0acee692b122890c7bd1085c9b8b1dcd63a51bd8 Merge: 32bbe1061 3bc2cf5ef Author: Colomban Wendling Date: Fri Apr 19 01:42:53 2024 +0200 Merge pull request #3838 from b4n/search-after-toolbar-edit Fix search entry after editing the toolbar commit 32bbe106195f953e980bfa756b5a7ccad1ee209d Author: Nick Treleaven Date: Mon Apr 15 13:05:01 2024 +0100 Fix Find in Files invalid directory error (#3818) When the Find in Files path doesn't exist, the status bar says "Cannot execute grep tool...: Failed to change the working directory. Check the path setting in Preferences". Which is confusing and hides the real problem in the middle of irrelevant text. Instead, show a dialog with the correct error only. Fixes #1347. * Fix FiF capitalization * Set FIF search/directory entry background to indicate error data/geany.glade | 2 +- src/search.c | 20 +++++++++++++++----- src/ui_utils.c | 5 +++++ 3 files changed, 21 insertions(+), 6 deletions(-) commit fc9126271c9cf8268b1bf71eb7cefe660d6cdd33 Merge: 36f794ae7 067cc9e14 Author: Enrico Tröger Date: Sun Apr 14 15:30:16 2024 +0200 Merge pull request #3812 from Biswa96/meson-add-geany-icon meson: Add icon with geany program commit 36f794ae7f4d83afa58ae3c60b3fb3ddda60f9d3 Author: Enrico Tröger Date: Sun Apr 14 14:05:21 2024 +0200 Windows: Update indirect dependencies for bundle creation The MSYS2 gettext package was split into multiple packages, we need "gettext-runtime" now. scripts/gtk-bundle-from-msys2.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3bc2cf5efb0e6d71dccc88105658656e70282a61 Author: Colomban Wendling Date: Sun Apr 14 01:54:28 2024 +0200 Fix search entry after editing the toolbar According to b0b0ebb469a6b7eb74d321e6f5d7fe6f0bfcf6ba we guard against proxying the widget more than once for some Windows reasons, but this breaks the case where the same GeanyEntryAction has to re-create a fresh proxy, like when moving the item around. So, move the guard value to the proxied widget, not the action. Fixes #3831. src/geanyentryaction.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit c120dcb368c55157ca2051a917287ae539498f25 Author: Colomban Wendling Date: Sun Apr 14 00:37:15 2024 +0200 Erlang: display module node in the symbols tree Properly display the module node itself in the symbols tree so it can be the module content's parent instead of having each content node showing the module name as prefix. Fixes #2650. src/tagmanager/tm_parser.c | 3 ++- tests/ctags/maze.erl.tags | 2 ++ tests/ctags/test.erl.tags | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) commit a44df8bb570e5d43f882649826e5d34ca3907a63 Author: Nick Treleaven Date: Sat Apr 13 12:24:56 2024 +0100 [msgwin] Reset compiler/messages treeview width at start of build/search (#3816) * [build] Reset compiler treeview width at start of build If the previous build had a long error message, I have to scroll to the right. The next build is still scrolled to the right and I can't see all the normal length messages until I manually scroll back to the left. * Same for Find in Files, Find Usage src/build.c | 2 ++ src/search.c | 17 +++++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) commit 41620fc8626ab2c0f1b00b9d695b5b773273745d Author: Nick Treleaven Date: Fri Apr 12 17:55:07 2024 +0100 [build] Improve custom command dialog Show the command stem in the label. Use command label for dialog title. src/build.c | 13 ++++++++++--- src/dialogs.c | 1 + 2 files changed, 11 insertions(+), 3 deletions(-) commit 2aaa66b3b59780f298576fb3ea90ae0f77282502 Author: Nick Treleaven Date: Mon Apr 8 11:16:22 2024 +0100 Enable keyboard searching for Compiler and Messages tree views src/msgwindow.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bb1ebf675c902f842ebe934f1005dc128f14273d Author: Nick Treleaven Date: Mon Apr 8 11:01:14 2024 +0100 Toggling treeview parent is GTK; Add note about GTK2 notebook tabs doc/geany.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit dbaf99e3528a2f9007c4ab0ced416bdd87c22574 Author: Nick Treleaven Date: Mon Apr 8 10:35:38 2024 +0100 Document *Go to line* offsets (#3817) doc/geany.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit fd6d4ceec27e68486cde9d8c33038e1d18e48612 Author: Nick Treleaven Date: Fri Apr 5 19:23:22 2024 +0100 [docs] Add Document List tips doc/geany.txt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit b3b2eed0a7a3fb9730790981a753ea8b3f717399 Author: Nick Treleaven Date: Fri Apr 5 10:48:57 2024 +0100 [filebrowser] Change external open default to xdg-open plugins/filebrowser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1735daeb2cff6022cf9f5da6b13d6f2340cca6e1 Author: தமிழ்நேரம் <67970539+TamilNeram@users.noreply.github.com> Date: Fri Apr 5 00:54:00 2024 +0530 Added தமிழ் translation file - ta.po (#3723) Added தமிழ் translation po/ta.po | 6218 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 6218 insertions(+) commit bfbbb21bfd0944c08f15ac77df0947af9452e1d2 Author: Frank Lanitz Date: Thu Apr 4 21:10:59 2024 +0200 Remove pointer to removed intl_stats.sh README.I18N | 8 -------- 1 file changed, 8 deletions(-) commit 067cc9e1494c52d84a91c38410e487b494bb50de Author: Biswapriyo Nath Date: Thu Apr 4 13:35:31 2024 +0000 meson: Add icon with geany program meson.build | 4 ++++ 1 file changed, 4 insertions(+) commit 90968916af982c0a8f26d5a1b3f4623200312e9e Author: Biswapriyo Nath Date: Wed Apr 3 14:39:58 2024 +0000 meson: Prevent showing console after running geany in Windows Previously, a console window is shown in background when geany.exe is executed. This change fixes the above issue by specifying _windows_ subsystem type. meson.build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3a92129d61d4d8e96136e29d4709bb638527be40 Merge: 8320f20cd 546fb85b2 Author: Enrico Tröger Date: Thu Mar 28 09:56:55 2024 +0100 Merge pull request #3791 from eht16/issue3627_remove_win32_native_dialog_from_glade Remove "Use Windows native dialogs" GUI setting commit 8320f20cdc874e0489778d7951b666382973c29b Merge: 847dc92d0 34956bc80 Author: Jiří Techet Date: Wed Mar 20 21:36:54 2024 +0100 Merge pull request #3795 from techee/hacking2 Update HACKING with find_shebang() and editor_set_indentation_guides() commit 34956bc802ebd7cb697612f70cb9422893f6f4e1 Author: Jiří Techet Date: Tue Mar 19 23:19:15 2024 +0100 Update HACKING with find_shebang() and ditor_set_indentation_guides() HACKING | 5 +++++ 1 file changed, 5 insertions(+) commit c509b9000633acd9c9af93f15a84a3f4e6dd5ad3 Author: Jiří Techet Date: Tue Apr 12 21:37:36 2022 +0200 Add Ocaml ctags parser ctags/Makefile.am | 1 + ctags/parsers/ocaml.c | 2094 +++++++++++++++++++++++++++++++++++++++++++ meson.build | 1 + src/filetypes.c | 2 +- src/tagmanager/tm_parser.c | 22 + src/tagmanager/tm_parser.h | 1 + src/tagmanager/tm_parsers.h | 3 +- tests/ctags/Makefile.am | 1 + tests/ctags/simple.ml | 35 + tests/ctags/simple.ml.tags | 20 + tests/meson.build | 1 + 11 files changed, 2179 insertions(+), 2 deletions(-) commit 847dc92d0e412baff0a9b640bbd25b1cbe546cfa Merge: dcefe723a fad5af87e Author: Jiří Techet Date: Tue Mar 19 22:23:32 2024 +0100 Merge pull request #3169 from techee/perl6 Add Raku (Perl 6) filetype support (lexer and ctags parser) commit fad5af87e74dbb3850c0e3a5cb764894dbc2151c Author: Jiří Techet Date: Mon Mar 18 23:07:24 2024 +0100 fixup! Add Raku (Perl 6) filetype support (lexer and ctags parser) src/filetypes.c | 1 + 1 file changed, 1 insertion(+) commit 3b666ca60dc70039b6ede71a9323eb994256f6b4 Author: Jiří Techet Date: Sun Mar 17 23:22:55 2024 +0100 fixup! Add Raku (Perl 6) filetype support (lexer and ctags parser) src/filetypes.c | 1 + 1 file changed, 1 insertion(+) commit 546fb85b22ea8cf48d7c6ac373c713a608707d5e Author: Enrico Tröger Date: Sun Mar 17 18:17:45 2024 +0100 Remove "Use Windows native dialogs" GUI setting This is a left-over from #3219 and should have been removed already. Fixes #3627. data/geany.glade | 16 ---------------- src/prefs.c | 3 --- 2 files changed, 19 deletions(-) commit dcefe723a79f24107dcb08bbc63b1ef4581f2849 Merge: 8d97d8f15 a8bb8700e Author: Enrico Tröger Date: Sun Mar 17 15:11:40 2024 +0100 Merge pull request #3769 from andy5995/ci-add-codeql CI: Add CodeQL Analysis workflow commit a8bb8700e1d55e63c71fa2850d9862d211178677 Author: andy5995 Date: Mon Mar 11 01:47:23 2024 -0500 Change concurrency rules .github/workflows/build.yml | 2 +- .github/workflows/codeql.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit e5a73c9e3608ca7185c508fe8f0d1199a4a89078 Author: andy5995 Date: Sun Mar 3 20:27:21 2024 -0600 Add CodeQL Analysis workflow .github/workflows/codeql.yml | 80 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) commit 8d97d8f15dda2f9691232820bb6814162fb2473e Author: Enrico Tröger Date: Sun Mar 3 17:59:46 2024 +0100 Windows: Remove only existing directories when bundling GTK scripts/gtk-bundle-from-msys2.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b3a1eae2b2ea0579bb94dd0cbbf43dba76113117 Merge: 06acd17cb 6e2dee3cf Author: Enrico Tröger Date: Sun Mar 3 14:39:29 2024 +0100 Merge pull request #3760 from eht16/3746_add_screenshot_to_readme Add screenshot to README commit 06acd17cbeab6c0154e752b584aaf5001d9af1e8 Merge: 0494e3417 ae29d6938 Author: Enrico Tröger Date: Mon Feb 12 23:49:02 2024 +0100 Merge pull request #3765 from geany/dependabot/github_actions/actions/upload-artifact-4 Bump actions/upload-artifact from 3 to 4 commit 0494e3417e13a58be7222c9db4d231a363513991 Merge: 6fc6f9384 a17e35225 Author: Enrico Tröger Date: Mon Feb 12 23:47:07 2024 +0100 Merge pull request #3764 from geany/dependabot/github_actions/docker/login-action-3 Bump docker/login-action from 2 to 3 commit 6fc6f938416933f69a2d523a2ad2beef9d1884ec Merge: abc80e894 82b0d10d9 Author: Enrico Tröger Date: Mon Feb 12 23:45:35 2024 +0100 Merge pull request #3763 from geany/dependabot/github_actions/actions/cache-4 Bump actions/cache from 3 to 4 commit abc80e894e391e1c73fa97315271c1e646a29059 Merge: eb28f070b 0eca44124 Author: Enrico Tröger Date: Mon Feb 12 23:43:01 2024 +0100 Merge pull request #3762 from geany/dependabot/github_actions/actions/checkout-4 Bump actions/checkout from 3 to 4 commit ae29d6938eb7c1791a8ebedecedd888828cf7ce8 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Feb 12 22:37:21 2024 +0000 Bump actions/upload-artifact from 3 to 4 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a17e35225fa01d5f3e12965b7d2b660190382af5 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Feb 12 22:37:16 2024 +0000 Bump docker/login-action from 2 to 3 Bumps [docker/login-action](https://github.com/docker/login-action) from 2 to 3. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/v2...v3) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 82b0d10d97b931dfa20d8f9e3c1c5fd3699bcd88 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Feb 12 22:37:16 2024 +0000 Bump actions/cache from 3 to 4 Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/cache dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0eca441248c2fed63baf6cb851c24a710d0d8028 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Feb 12 22:37:13 2024 +0000 Bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] .github/workflows/build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit eb28f070bd54878951c27b1b66f16b4b2c0f87ad Merge: 06b8e6b1c a5d9d5c35 Author: Enrico Tröger Date: Mon Feb 12 23:36:49 2024 +0100 Merge pull request #3758 from andy5995/add-dependabot Add dependabot.yml for Github Actions updates commit a5d9d5c351faf7350807094377f3d20e3014a7cd Author: andy5995 Date: Fri Feb 9 07:05:30 2024 -0600 Add dependabot.yml This will cause dependabot to open PRs to bump any actions, such as "checkout" when never major versions are released. https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file .github/dependabot.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 6e2dee3cf3df8d2d446d99c3241fc4bfc5cb8758 Author: Enrico Tröger Date: Sat Feb 10 23:52:30 2024 +0100 Add screenshot to README Related to #3746. README | 5 +++++ 1 file changed, 5 insertions(+) commit 06b8e6b1c9c73636906d23d2c272d85dabc0ff56 Merge: 512e88df8 c090698fa Author: Colomban Wendling Date: Wed Dec 20 12:02:05 2023 +0100 Merge pull request #3719 from eht16/remove_deprecated_doxygen_settings Remove deprecated Doxygen settings commit c8365fd881b0e0880be14f8a850a1f3c179f3966 Author: Colomban Wendling Date: Sun Dec 10 23:32:25 2023 +0100 Don't try knowingly unsupported encodings src/encodings.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9e4c6e8b72980a83199d2fb78e21cf1766e2c704 Author: Colomban Wendling Date: Sun Dec 10 23:32:03 2023 +0100 Don't display unsupported encodings src/encodings.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 3a019a43e96b8df423ce7af2d6a74231bbac0205 Author: Colomban Wendling Date: Sun Dec 10 23:16:12 2023 +0100 encodings: Add a flag for whether the encoding is supported This adds support for checking whether an encoding is actually supported on the system, as some are commonly not supported everywhere, e.g. ISO-IR-111, ISO-8859-8-I or HZ. Here we assume that a conversion to UTF-8 means it also works the other way around (e.g. from UTF-8, assuming the data can be represented, of course). This is a valid assumption if GNU libc or GNU libiconv is used, and might or might not hold for other implementations. This assumption however makes the code a fair bit simpler, and should have little impact in reality as this flag is mostly a suggestion that can be used to hide UI elements or skip attempts, and that in most situations it doesn't make much sense for us to be able to *write* to an encoding we cannot read. As for startup performances, checking all encodings takes about 10ms on my machine, which sounds Good Enough™. This is currently unused, but subsequent commits will start using this. src/encodings.c | 27 ++++++++++++++++++++++++++- src/encodingsprivate.h | 1 + 2 files changed, 27 insertions(+), 1 deletion(-) commit 3b10790a41d570bb52cd1a40952914dd3641a743 Author: Colomban Wendling Date: Mon Dec 11 21:52:04 2023 +0100 prefs: Remove separate checkbox for default open encoding Show and use the "Detect from file" combo member instead of having a dedicated checkbox for this. I don't see the value of having a separate checkbox for this: * We don't save two values anyway, so the value when detection is enabled is artificial; * It makes the UI more complex by having more controls; * It takes screen estate; * We already have the code for adding a "Detect from file" in the combo box. data/geany.glade | 16 ---------------- doc/geany.txt | 10 +++++----- src/prefs.c | 40 +++++++++------------------------------- 3 files changed, 14 insertions(+), 52 deletions(-) commit c090698fafaf238e8a9b450c2cc4f2aaaaca3780 Author: Enrico Tröger Date: Tue Dec 12 22:58:25 2023 +0100 Remove deprecated Doxygen settings This removes the followings warnings when generating the docs: warning: Tag 'LATEX_SOURCE_CODE' at line 1758 of file 'Doxyfile.tmp' has become obsolete. To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u" warning: Tag 'CLASS_DIAGRAMS' at line 2113 of file 'Doxyfile.tmp' has become obsolete. To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u" warning: Changing CLASS_GRAPH option to TEXT because obsolete option CLASS_DIAGRAM was found and set to NO. doc/Doxyfile.in | 19 ------------------- 1 file changed, 19 deletions(-) commit 053667e3a95650691f1a48673c94794d98b1da37 Author: Colomban Wendling Date: Tue Dec 12 22:38:11 2023 +0100 Report actual error to the caller in encodings_convert_to_utf8_auto() This allows the caller to produce a more precise error message, and in some cases handle specific failures specifically if it wants to. src/document.c | 16 ++++++---------- src/encodings.c | 43 ++++++++++++++++++++++++++----------------- src/encodingsprivate.h | 3 ++- src/templates.c | 7 +++++-- tests/test_encodings.c | 10 ++++++++-- 5 files changed, 47 insertions(+), 32 deletions(-) commit effe633ef710c690eeff4bb37ce5ce1d13d1c8fc Author: Colomban Wendling Date: Sun Dec 10 22:49:16 2023 +0100 Small code cleanup Use more idiomatic loops. src/encodings.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) commit 512e88df8d97284c191459450bce4dd7877b9c2b Merge: ffaa38365 17523e5f8 Author: Colomban Wendling Date: Sun Dec 10 00:34:06 2023 +0100 Merge pull request #3640 from eht16/issue3624_do_not_none_charset Do not show charset "None" in the list of encodings commit ffaa38365b229f370d2085ed560575b7dbc2fd70 Merge: aaaf1ed59 ea2458e44 Author: Colomban Wendling Date: Sun Dec 10 00:18:54 2023 +0100 Merge pull request #3681 from BayashiPascal/master Fix focusing the symbol list through key binding commit ea2458e4472fe0d42d4e8ae460596b561b1d37c7 Author: Baillehache Pascal Date: Sat Nov 11 10:20:57 2023 +0900 Fix focusing the symbol list through key binding Fixes #3678 Co-authored-by: Colomban Wendling src/sidebar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aaaf1ed59b56aecb5fb8d76b93a177b3652f3a17 Merge: e5680fe85 0629be7ac Author: Colomban Wendling Date: Sat Dec 9 23:59:45 2023 +0100 Merge pull request #3698 from TheDcoder/patch-1 Add `.mjs` extension for JavaScript commit 9b054d16b4ed54de2486c6762ea00478f041b08c Author: Colomban Wendling Date: Sat Dec 9 21:06:48 2023 +0100 meson: Add encodings test tests/meson.build | 1 + 1 file changed, 1 insertion(+) commit cb68cdb2f1b5c544b3235edde3bb12f149360fe7 Author: Colomban Wendling Date: Mon Dec 4 22:54:47 2023 +0100 Refactor to remove duplication, lower assumptions and improve safety * Do not have repeated code paths having to manually update `buffer->size` with `strlen(buffer->data)`; * This also reduces how many code paths assume `buffer->data` is NUL-free at this stage -- we still have some, but they are a little less critical, and it's a step in the right direction anyway; * Perform the NUL-freeness check unconditionally, only assuming `buffer->size` is correct, which it ought to be anyway. src/encodings.c | 71 ++++++++++++++++++++++++++++++--------------------------- 1 file changed, 38 insertions(+), 33 deletions(-) commit 3d4761788ab284687f46ae4c1285363a6b73ad22 Author: Colomban Wendling Date: Fri Dec 8 21:57:05 2023 +0100 Fix silently truncating files with NULs This is slightly brittle, so it might require some refactoring. src/encodings.c | 63 +++++++++++++++++++++++++------------------------- src/encodingsprivate.h | 2 +- tests/test_encodings.c | 47 +++++++++++++++---------------------- 3 files changed, 50 insertions(+), 62 deletions(-) commit 65250c8359a3c02ccb6c872a912a92be52c9d8a3 Author: Colomban Wendling Date: Mon Dec 4 22:09:58 2023 +0100 Add some tests for empty data with BOM tests/test_encodings.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit a0ed61aad298c6b291d2703edd004807bcd065c5 Author: Colomban Wendling Date: Wed Nov 29 23:31:23 2023 +0100 Add some basic UTF-7 tests tests/test_encodings.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit e3177c8c3816904b896325aae06c4a3758ba13cf Author: Colomban Wendling Date: Wed Nov 29 21:37:50 2023 +0100 Add basic tests for UTF-16* and UTF-32* tests/test_encodings.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) commit 187e04624ff04105199ee0a405d21de754836d3c Author: Colomban Wendling Date: Tue Nov 28 23:28:22 2023 +0100 Remove unused code src/encodings.c | 4 ---- 1 file changed, 4 deletions(-) commit b23201c01390e6ed6d631cf232e404691ffe91ec Author: Colomban Wendling Date: Fri Dec 8 21:43:40 2023 +0100 encodings: Fix detection of non-UTF-8 inline encodings If there are non-UTF-8 data in the first 512 bytes we failed to detect the inline encoding using the regex match, because our regexes required a fully valid UTF-8 buffer. This kind of defeats the purpose of the feature; so relax the match to use plain bytes instead. src/encodings.c | 2 +- tests/test_encodings.c | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) commit ae01d302425e53b82a90d87c4445d98441a77414 Author: Colomban Wendling Date: Tue Nov 28 23:18:33 2023 +0100 Add some basic tests for encoding detection and conversion src/encodings.c | 31 +++++-- src/encodingsprivate.h | 1 + src/libmain.c | 2 + tests/Makefile.am | 3 +- tests/test_encodings.c | 217 +++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 245 insertions(+), 9 deletions(-) commit e5680fe85de536fc61ff0f2d4eadc54171d6c982 Author: rdipardo <59004801+rdipardo@users.noreply.github.com> Date: Thu Nov 23 02:56:19 2023 -0500 Update Pascal filedef and extension mappings (#3694) * Update Pascal filedef and extension mappings #### filetypes.pascal - add line comments - pair the 'fpc' compile command with another common Free Pascal utility [^1], 'instantfpc', to build and run the current file in a single step #### filetype_extensions.conf - add Lazarus project files (*.lpr) * Replace obsolete [build_settings] with [build-menu] data/filedefs/filetypes.pascal | 18 ++++++++++++++---- data/filetype_extensions.conf | 2 +- 2 files changed, 15 insertions(+), 5 deletions(-) commit 0629be7ac2b97dc254fc51f1beda8dfe83c952a8 Author: Damon Harris Date: Wed Nov 22 17:38:16 2023 +0530 Add `.mjs` extension for JavaScript The `.mjs` extension is used by Node.js and others to denote JavaScript module files, unlike normal `.js` files these files are treated like ES6 modules by default. data/filetype_extensions.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 88a0bfcb3618b2533a5e7e253c7ef7af3c0b0590 Merge: b02ee9a95 c42004402 Author: Colomban Wendling Date: Thu Nov 16 13:50:01 2023 +0100 Merge pull request #3665 from b4n/less-warnings With this, you should be able to build src/ and plugins/ warning-free with: CFLAGS="-Wall -Wextra -g -Og -Wno-unused-parameter -Wunreachable-code -Wformat=2 -Wundef -Wshadow -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Werror-implicit-function-declaration" (or just `-Wall -Wextra -g -Og -Wno-unused-parameter -Wwrite-strings` to start with) but for some Lexilla prototype and one deprecated Lexilla call. commit c42004402ecefea7d809d4a51f7b427937ff4270 Author: Colomban Wendling Date: Sun Oct 29 23:08:25 2023 +0100 Silence some -Wcast-function-type warnings We choose to think that unused extra parameters to a function are safely ignored, so that we can safely use a `void(*)(void*)` and call it as `void(*)(void*, void*)` and it'll Do the Right Thing™. However, the compiler might easily warn about that, so hush it up. Although kind of shady, this should work on any platform where GTK does, so we should be fine. plugins/splitwindow.c | 2 +- src/dialogs.c | 2 +- src/editor.c | 2 +- src/notebook.c | 2 +- src/symbols.c | 2 +- src/utils.h | 4 ++++ 6 files changed, 9 insertions(+), 5 deletions(-) commit 50f4178ecce6abf802a44f563107bd0bca90720a Author: Colomban Wendling Date: Sun Oct 29 21:13:16 2023 +0100 Do not use GtkResponseType as response ID type `GtkResponseType` is supposed to be extensible by user code, and as such is not used as a type in GTK public API, but as `gint`, which allows passing other values (possibly from other enumerations) without risking type conversion issues or compiler warnings. Do the same in our own helper not to trigger GCC's `-Wenum-conversion`. src/document.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 496519d6631dfdef8d41559c642deac933e22f97 Author: Colomban Wendling Date: Thu Oct 26 21:48:21 2023 +0200 Only pass literals as format strings for e.g. printf-style functions Passing a non-literal prevents the compiler from checking the arguments match the format, potentially hiding otherwise easy to detect bugs. src/document.c | 15 +++++++++------ src/libmain.c | 16 +++++++++------- src/search.c | 10 ++++++---- 3 files changed, 24 insertions(+), 17 deletions(-) commit 2705dd623e5c5b88679f7c2e790c3af5e371025b Author: Colomban Wendling Date: Thu Oct 26 21:33:10 2023 +0200 Fix variable shadowing Instead of renaming the local variable, rename the global one with the `build_` prefix to be a tad more clear and consistent. src/build.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) commit 09b1558d3496a193d2efdd2f99adcb321743fffb Author: Colomban Wendling Date: Wed Oct 25 00:58:22 2023 +0200 Silence warnings on appropriate GSourceFunc casts `g_source_set_callback()` is a generic API that takes a `GFunc`, but some specific `GSource`s use other signatures for their callback, so the cast is valid (given the callback is effectively correct). Silence warnings from `-Wcast-function-type` by inserting an intermediate `(void(*)(void))` cast, but keep some type checking by first casting to the actually wanted type: (GSourceFunc) (void(*)(void)) (GChildWatchFunc) spawn_watch_cb which reads from right to left: - `spawn_watch_cb`, the callback that should match `GChildWatchFunc`; - `(GChildWatchFunc)`, which allows the compiler to verify the function is effectively compatible with what we know it should be; - `(void(*)(void))`, dummy cast to silence `-Wcast-function-type`; - `(GSourceFunc)`, cast to the type expected by the generic API call. We could use GLib's `G_SOURCE_FUNC()` cast macro to some extent (everything but the rightmost cast), but it's in 2.58 which is newer than our target. src/spawn.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit f3d466a359c9c501d815938602f24dff6ab622ff Author: Colomban Wendling Date: Wed Oct 25 00:47:46 2023 +0200 Avoid an easy-to-fix function cast plugin_free_leaf() is only used as a GFunc, so make it be one. src/plugins.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 727e8cde61d5357a63538df96ab4ca6c4cc8f931 Author: Colomban Wendling Date: Wed Oct 25 00:31:33 2023 +0200 Use g_*list_free_full() instead of g_*list_foreach() Simplifies code and avoids unnecessary or shady casts passing the element free function. plugins/filebrowser.c | 12 ++++-------- src/dialogs.c | 3 +-- src/filetypes.c | 3 +-- src/plugins.c | 6 ++---- src/toolbar.c | 3 +-- 5 files changed, 9 insertions(+), 18 deletions(-) commit 0e0a96ef8e7fec5117f67f3aea1bcfa685d3f6d0 Author: Colomban Wendling Date: Tue Oct 24 22:29:32 2023 +0200 Remove invalid placeholder code Since 9c49eceec823f042ffc93bea6e11e1e72d85df90 we don't have any per-GTK-version CSS data, so the array holding those and the associated metadata is empty. However an array in ISO C cannot be zero-sized, so just drop this placeholder code we might never need again anyway. src/ui_utils.c | 27 --------------------------- 1 file changed, 27 deletions(-) commit 910a7e651fb102fae18e788080da2666f31bd6c4 Author: Colomban Wendling Date: Tue Oct 24 22:26:40 2023 +0200 Add casts for irrelevant -Wwrite-strings warnings Unfortunately GtkTargetEntry and GtkStockItem string members are not declared `const`, although they are used as so. This requires adding casts when using literals together with -Wwrite-strings. src/notebook.c | 12 ++++++------ src/toolbar.c | 2 +- src/ui_utils.c | 8 ++++---- src/vte.c | 10 +++++----- 4 files changed, 16 insertions(+), 16 deletions(-) commit 73658f185b0398b2ec8610d6060f84033906001d Author: Colomban Wendling Date: Tue Oct 24 22:13:01 2023 +0200 "Fix" passing const arguments to spawn functions `char**` doesn't coerce to `const char**` or any variant thereof, so APIs expecting a `const char *const *` (like execv-style functions) usually just use `char**` as it's usually effectively *more* convenient for a caller. However, this means that if we want to pass const data, we need a cast (that is safe, as we know the API contract). If making the compiler treat string literals as const (using e.g. GCC's -Wwrite-strings), building an argument list composed of literals still need to be const, so make it so and add a cast to the API call. src/build.c | 4 ++-- src/printing.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 7f630aaf917b733c76640574610017fc3a7c15ab Author: Colomban Wendling Date: Tue Oct 24 21:29:45 2023 +0200 Fix fairly nasty implicit integer conversion Subtracting two unsigned values result in an unsigned value, and here to use a different sign on each side of a ternary operator. src/tagmanager/tm_workspace.c: In function 'sort_found_tags': src/tagmanager/tm_workspace.c:909:45: warning: operand of '?:' changes signedness from 'int' to 'gulong' {aka 'long unsigned int'} due to unsignedness of other operand [-Wsign-compare] 909 | return info->sort_by_name ? g_strcmp0(t1->name, t2->name) : t2->line - t1->line; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This is an especially valid concern as TMTag::line is an unsigned long, and the function returns an int, leading to possible sign swapping with extreme values. This is fairly theoretical as it's unlikely actual files have enough lines for this to actually matter, but still. src/tagmanager/tm_workspace.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit ffad343f21be323b55b3ca44c6f2d0d4d9a008fb Author: Colomban Wendling Date: Tue Oct 24 21:27:00 2023 +0200 Fix harmless GCC warning src/tagmanager/tm_ctags.c: In function 'rename_anon_tags': src/tagmanager/tm_ctags.c:323:68: warning: array subscript has type 'char' [-Wchar-subscripts] 323 | anon_counter = ++anon_counter_table[kind]; | ^ -Wchar-subscripts Warn if an array subscript has type "char". This is a common cause of error, as programmers often forget that this type is signed on some machines. This warning is enabled by -Wall. src/tagmanager/tm_ctags.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b02ee9a95a48690836f08ba10ccc9db89ee89c10 Author: Hugo Carvalho Date: Sun Nov 5 21:09:05 2023 +0000 Update pt.po (#3654) Update Portuguese translation po/pt.po | 702 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 353 insertions(+), 349 deletions(-) commit 2dc8c226760c1593c6ce2489dc534f99bca52b61 Merge: 5a0df3862 4b5430642 Author: Colomban Wendling Date: Fri Nov 3 00:00:59 2023 +0100 Merge pull request #3643 from b4n/prefs-virtual-spaces-no-visual Move "Virtual Spaces" preference to "Editor -> Features" commit 5a0df3862c19940705600b406fab2fd02b0812ac Author: Colomban Wendling Date: Mon Oct 30 23:28:20 2023 +0100 meson: Clean up VTE conditional meson.build | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 34ba3ddf1825271d337c2314eaf92ff7c71b7d17 Author: Colomban Wendling Date: Mon Oct 30 23:27:32 2023 +0100 meson: Do not list Windows source files twice meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fb202dc583a9deefa3c17046fd7d5ad23c21e180 Author: Colomban Wendling Date: Mon Oct 30 23:21:01 2023 +0100 meson: Only perform macos checks on macos Fixes #3649. meson.build | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit 1e61b996ff4522a065724c05f290553b7ee4bab6 Merge: 949c11b6d 215271b02 Author: Colomban Wendling Date: Thu Nov 2 23:51:08 2023 +0100 Merge pull request #3642 from b4n/meson-cfg_data-type meson: Use only a single type for a given configuration data item commit 949c11b6d7f3299c87ff7e1b3206c9b37a24f201 Merge: eef67ecc2 4b791b27b Author: Jiří Techet Date: Thu Nov 2 20:15:04 2023 +0100 Merge pull request #3670 from techee/hacking_fix2 HACKING: use the correct function name to be updated for highlighting commit 4b791b27bb182b17fe11cc9f511206bb683f4307 Author: Jiří Techet Date: Wed Nov 1 23:07:59 2023 +0100 HACKING: use the correct function name to be updated for highlighting HACKING | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eef67ecc200a6cf07f277c28282facf9854cd2ea Merge: b7dd86194 158b89854 Author: Colomban Wendling Date: Sun Oct 29 20:32:37 2023 +0100 Merge pull request #3657 from b4n/format-size Replace utils_make_human_readable_str() with g_format_size() commit b7dd861941218b340abc5edf8e344907135ec721 Author: Enrico Tröger Date: Sat Oct 28 13:19:02 2023 +0200 Increase the default width for the sidebar (#3637) This should prevent the sidebar from being cutoff or clipped of the window. The new value is about 25% of the default window width. Closes #3630. src/keyfile.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 158b89854627752d266094b316b9ed08360a1858 Author: Colomban Wendling Date: Wed Oct 25 21:36:53 2023 +0200 Replace utils_make_human_readable_str() with g_format_size() This allows removing a needlessly complex and tricky function (I dare you understanding what it actually does the first time around) in which we even introduced subtle (but luckily invisible for now) bugs over time as it was probably not understood properly, and more sensitive to breakage than it ought to be. It also actually improves results, as we unit for bytes, and proper translation for the units. Note that this switches to SI units, which is probably actually better. src/dialogs.c | 2 +- src/utils.c | 49 ------------------------------------------------- src/utils.h | 3 --- 3 files changed, 1 insertion(+), 53 deletions(-) commit ba6fc4a4fa48239daca7350ec05d25e44cc89169 Merge: 7fd2507e6 d0b67df06 Author: Colomban Wendling Date: Wed Oct 25 21:29:02 2023 +0200 Merge pull request #2398 from b4n/gcc8-array-size Rewrite HL_N_ENTRIES macro to avoid a GCC8 false positive warning commit 35043402562a8ba8566f0cd4d7be6a1c94f006ba Author: Colomban Wendling Date: Mon Oct 23 21:05:13 2023 +0200 Autotools: regenerate gmo files when po files are updated Make sure the gmo files are regenerated when the corresponding po files are updated, not to have stale translations after updating a po file. This behavior most likely changed with the switch from GLib gettext infrastructure to to plain gettext one in 32977676a90244e0410524614757d2cf214bae43. I had a hard time finding a rationale for the behavior of not automatically updating the gmo files when their source changed; all I could find is [1] which suggests it's intentional. Still, at least with our configuration of PO_DEPENDS_ON_POT=no, which means po files are not updated all the time, the point seems moot and does more harm than good. Fix this by manually adding the correct dependency to the main target so the gmo files are updated automatically when the po changes. The only case where I can see it performing "useless" work is when calling update-po, which will effectively update all po files, and thus rebuild all gmo files. But that doesn't sound like any kind of problem, and rather expected. [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=400453#24 po/Rules-gmo | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 7fd2507e6054617354fe941f2964be68b4536f44 Merge: fabca6be6 afb66ce5d Author: Jiří Techet Date: Mon Oct 23 21:50:27 2023 +0200 Merge pull request #3587 from techee/unused_remove VTE cleanup related to GTK 3.24 requirement commit fabca6be6c19c5f982f488be47e75745ba7eba71 Author: scootergrisen Date: Mon Oct 23 21:39:52 2023 +0200 Update da.po (#3636) po/da.po | 832 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 419 insertions(+), 413 deletions(-) commit 726baec73496395161964c9ff3d3d0f59d820c75 Author: Hugo Carvalho Date: Mon Oct 23 20:34:21 2023 +0100 Portuguese translation update (#3645) Minor corretcion po/pt.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 96c8f4ea953145e152b5e9cef023382d326eb737 Merge: d6ce2dd34 cb10577f6 Author: Jiří Techet Date: Mon Oct 23 19:32:29 2023 +0200 Merge pull request #3641 from techee/hacking_update Update some paths in HACKING commit d6ce2dd34558eb266a927b779ec17ee0bcebc6cb Author: Enrico Tröger Date: Thu Oct 19 20:40:34 2023 +0200 Add meson.build to release howto and replace IRC by Matrix doc/making-a-release | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 6f72e72a11d715fd5e719e18eaeb4c272965e0ea Author: cx384 Date: Mon Oct 23 17:24:27 2023 +0200 update fortran keywords data/filedefs/filetypes.fortran | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit cb10577f633e178ad533f4fc79cc797618d9d004 Author: Jiří Techet Date: Mon Oct 23 12:19:51 2023 +0200 Update HACKING Co-authored-by: Colomban Wendling HACKING | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 1f3c9d53effcf0c242430f4cdd5ab843d9b4c1bd Author: Jiří Techet Date: Mon Oct 23 12:11:07 2023 +0200 fixup! Add Raku (Perl 6) filetype support (lexer and ctags parser) src/editor.c | 1 + 1 file changed, 1 insertion(+) commit ba9190284610d798db447868f65e21075678754a Author: Colomban Wendling Date: Sun Oct 22 23:09:06 2023 +0200 saveactions: Fix a couple mnemonics in the French translation po/fr.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4b54306424918c2e4a3f3d3a553463065420cf7c Author: Colomban Wendling Date: Sun Oct 22 22:52:33 2023 +0200 Move "Virtual Spaces" preference to "Editor -> Features" "Editor -> Display" is very crowded already, and virtual spaces are not merely a display feature, but rather a tool for editing. Close #3605. data/geany.glade | 171 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 86 insertions(+), 85 deletions(-) commit 4946d547d33de6d46285d2688cf5bc87a1e283f5 Merge: fefef5556 656b03bc0 Author: Colomban Wendling Date: Sun Oct 22 21:57:07 2023 +0200 Merge pull request #3634 from eht16/issue3628_enable_nls_for_stash_c Enable translations in the "Various" tab in preferences dialog commit 215271b02dbfa13e54bee77b6d3a8a76ec1fad68 Author: Colomban Wendling Date: Sun Oct 22 21:44:03 2023 +0200 meson: Use only a single type for a given configuration data item When a value could either be defined or not, we used to call either `set(varname, 1)` or `set(varname, false)` respectively. This however leads to the value type of `varname` to be conditional, making it virtually unusable for testing its value. Instead, just do not emit anything when we used to emit `false`. The only difference is that it will not generate any entry for the disabled values, but that is what Autotools do already anyway -- although Autotools emit a comment. This fixes build if either `HAVE_FNMATCH` or `HAVE_REGCOMP` is `false` (that is, if either `fmatch()` or `regcomp()` functions are not found on the system). Fixes #3618. meson.build | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) commit def46d39d25627285f93f0d195e9d0f688f6921d Author: Jiří Techet Date: Sun Oct 22 17:55:55 2023 +0200 Update some paths in HACKING HACKING | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit a9363bc15d2c66ea91eeec923961f93e41bff216 Author: Jiří Techet Date: Thu Apr 14 01:34:32 2022 +0200 Add Raku (Perl 6) filetype support (lexer and ctags parser) ctags/Makefile.am | 1 + ctags/parsers/perl6.c | 338 +++++++ data/Makefile.am | 1 + data/filedefs/filetypes.raku | 90 ++ data/filetype_extensions.conf | 1 + meson.build | 2 + scintilla/Makefile.am | 1 + scintilla/lexilla/lexers/LexRaku.cxx | 1637 ++++++++++++++++++++++++++++++++++ scintilla/lexilla/src/Lexilla.cxx | 1 + scintilla/scintilla_changes.patch | 1 + src/filetypes.c | 1 + src/filetypes.h | 1 + src/highlighting.c | 17 + src/highlightingmappings.h | 47 + src/tagmanager/tm_parser.c | 22 + src/tagmanager/tm_parser.h | 1 + src/tagmanager/tm_parsers.h | 3 +- tests/ctags/Makefile.am | 1 + tests/ctags/simple.raku | 142 +++ tests/ctags/simple.raku.tags | 68 ++ tests/meson.build | 1 + 21 files changed, 2376 insertions(+), 1 deletion(-) commit 17523e5f8ba6ac0c93290fac4ad64f23d005b3b1 Author: Enrico Tröger Date: Sun Oct 22 13:31:44 2023 +0200 Do not show charset "None" in the list of encodings The charset "None" would be shown for the encoding name "Without encoding" and so it would be rather redundant and the special value "None" should be translatable but isn't. Closes #3624. src/encodings.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit fefef55569424b72e540bafa4bec514e7e2fd6f5 Author: scootergrisen Date: Sat Oct 21 23:30:21 2023 +0200 Add missing space before "(without the path)" src/printing.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 656b03bc00fe3a17b6b369f41b436c1473fa953d Author: Enrico Tröger Date: Sat Oct 21 23:22:14 2023 +0200 Enable translations in the "Various" tab in preferences dialog "config.h" is needed as it defines the GETTEXT_PACKAGE which is necessary to enable translations at all. Fixes #3628. src/stash.c | 4 ++++ 1 file changed, 4 insertions(+) commit f86c4de5863d1a2609345a045d7cfff5c35651b4 Merge: 0fd68e418 6104d0007 Author: Frank Lanitz Date: Fri Oct 20 16:35:59 2023 +0200 Merge pull request #3607 from hieeupomalrf/R_commands Add R execution command commit 0fd68e4182bf2540249810da52382e2f1c4810aa Author: Colomban Wendling Date: Thu Oct 19 23:02:51 2023 +0200 scripts/github-news: Handle continuation lines Merge continuation lines with the previous line not to get spurious line breaks. scripts/github-news | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) commit da951d00537b2593780542920fb1823c78161a8c Author: Enrico Tröger Date: Thu Oct 19 20:28:18 2023 +0200 Post release version bump Say hello to Geany 2.1 "Yage"! NEWS | 3 +++ configure.ac | 2 +- doc/geany.txt | 2 +- geany.exe.manifest | 2 +- geany_private.rc | 4 ++-- meson.build | 2 +- src/geany.h | 2 +- 7 files changed, 10 insertions(+), 7 deletions(-) commit 4a1fda547fecdd3b5cb49d8f345cef84741210c3 Author: Enrico Tröger Date: Thu Oct 19 17:53:50 2023 +0200 Set release date NEWS | 2 +- doc/geany.1.in | 2 +- doc/geany.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 13bc05d80f456d8ed745e4fbfbf4286a49d1acaf Author: Enrico Tröger Date: Thu Oct 19 17:32:10 2023 +0200 Replace never released version 1.39 by 2.0 po/fr.po | 2 +- src/keybindings.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit e9af6b5c8b3e69ac51095aece9fb1672782af02a Merge: 5f992d07e 93070a580 Author: Enrico Tröger Date: Thu Oct 19 17:26:54 2023 +0200 Merge pull request #3593 from eht16/release_2_0_documentation Release 2.0 documentation commit 93070a5808e93d350ba5a1ac6ff47486cb8dc46e Author: Enrico Tröger Date: Wed Oct 11 12:31:50 2023 +0200 Update documentation screenshots doc/geany.txt | 4 ++++ doc/images/build_menu_commands_dialog.png | Bin 58390 -> 69439 bytes doc/images/find_dialog.png | Bin 22820 -> 28136 bytes doc/images/find_in_files_dialog.png | Bin 27172 -> 34669 bytes doc/images/main_window.png | Bin 88195 -> 111339 bytes doc/images/pref_dialog_edit_completions.png | Bin 64205 -> 70244 bytes doc/images/pref_dialog_edit_display.png | Bin 56210 -> 76687 bytes doc/images/pref_dialog_edit_features.png | Bin 43978 -> 49188 bytes doc/images/pref_dialog_edit_indentation.png | Bin 47779 -> 55680 bytes doc/images/pref_dialog_files.png | Bin 56651 -> 66429 bytes doc/images/pref_dialog_gen_misc.png | Bin 49642 -> 56811 bytes doc/images/pref_dialog_gen_startup.png | Bin 45304 -> 55734 bytes doc/images/pref_dialog_interface_interface.png | Bin 53042 -> 64267 bytes doc/images/pref_dialog_interface_notebook.png | Bin 46578 -> 55721 bytes doc/images/pref_dialog_interface_toolbar.png | Bin 43424 -> 51371 bytes doc/images/pref_dialog_keys.png | Bin 50802 -> 75181 bytes doc/images/pref_dialog_printing.png | Bin 37487 -> 45788 bytes doc/images/pref_dialog_templ.png | Bin 41617 -> 50928 bytes doc/images/pref_dialog_tools.png | Bin 36071 -> 46469 bytes doc/images/pref_dialog_various.png | Bin 53035 -> 84969 bytes doc/images/pref_dialog_vte.png | Bin 51623 -> 60611 bytes doc/images/replace_dialog.png | Bin 28978 -> 34624 bytes 22 files changed, 4 insertions(+) commit 80fec378d9f5d6967f084c99f09ac2907fd92374 Author: Enrico Tröger Date: Wed Oct 11 12:31:17 2023 +0200 Add documentation for new Scintilla feature "Change history" doc/Makefile.am | 1 + doc/geany.txt | 32 ++++++++++++++++++++++++++++++++ doc/images/edit_change_history.png | Bin 0 -> 16415 bytes doc/meson.build | 1 + 4 files changed, 34 insertions(+) commit 514adec504e3325945297b3db4d2e45230245963 Author: Enrico Tröger Date: Wed Oct 11 12:30:09 2023 +0200 Add NEWS for Geany 2.0 NEWS | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) commit 5f992d07ec4d8319b8f55f72181cb6cb28afcfee Merge: 4246298dd bc9f6e4dc Author: Colomban Wendling Date: Thu Oct 19 16:31:30 2023 +0200 Merge pull request #3616 from b4n/asciidoc-crash Fix crash opening an AsciiDoc document commit bc9f6e4dccea09b746510c0f262c2e3bf0ce11c9 Author: Colomban Wendling Date: Thu Oct 19 14:26:37 2023 +0200 Restore AsciiDoc lexer This got lost in 19336d22946b77bbcb5131544ea0e6317cdcf6b5, probably as a mistake. Fixes #3615. scintilla/lexilla/src/Lexilla.cxx | 1 + scintilla/scintilla_changes.patch | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) commit f1723b3bdd194c3a2dbec293c05a0835ff20d521 Author: Colomban Wendling Date: Thu Oct 19 14:24:55 2023 +0200 Fix crash setting an invalid lexer ID `LexerNameFromID()` will return `NULL` for unknown IDs, and `CreateLexer()` does not gracefully handle it, so we need to check this on our end. Part of #3615. src/sciwrappers.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 6104d0007a6df4ed3f6055551e55080475d3066a Author: hieeupomalrf Date: Thu Oct 19 03:28:11 2023 +0200 add R execution command data/filedefs/filetypes.r | 5 +++++ 1 file changed, 5 insertions(+) commit 4246298dd8b3c70528cdad0554000f5d54f39765 Author: Colomban Wendling Date: Tue Oct 17 23:27:30 2023 +0200 Fix startup files order when placing tabs next to the current one When the `tab_order_beside` option is enabled, tabs are opened on either side of the active tab, depending on `tab_order_ltr`, rather than at either end. However, when loading startup files we don't switch to the last opened document right away, but postpone this to the very end. This affects the order tabs are loaded, as the active one is always the first one at this stage. Rather than over-complicating the loading order to compensate the various options' effect, temporarily revert to an set of options that is easy to handle, and restore it after loading is finished. This also simplifies the existing logic as a basic forward iteration is now enough. Fixes #3609. src/keyfile.c | 17 +---------------- src/notebook.c | 21 +++++++++++++-------- 2 files changed, 14 insertions(+), 24 deletions(-) commit 83c833230159ad8b3ddece4e6674ea2468a5afde Author: Frank Lanitz Date: Wed Oct 18 21:31:10 2023 +0200 Correct language code for Ukrainian language NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c67415404732fc34d09dd08e31f3ed6b73375af3 Merge: 98c84ba90 f41263641 Author: Jiří Techet Date: Wed Oct 18 15:12:13 2023 +0200 Merge pull request #3612 from techee/tab_label_length Change default tab_label_length from 99999 to 1000 commit f412636412b65394108bfd1b4c8211841cefdbd5 Author: Jiří Techet Date: Wed Oct 18 11:07:21 2023 +0200 Change default tab_label_length from 99999 to 1000 The whole value 99999 doesn't fit into the entry which looks ugly and, to me, somehow a rounded value like 1000 (which is still sufficient in terms of "unlimited" number of characters in a tab) looks more pleasing. src/ui_utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 98c84ba90ce6ecaf6e491f677e12cac1ec653c5d Merge: 73554ef7f ec30b893a Author: Colomban Wendling Date: Tue Oct 17 23:23:49 2023 +0200 Merge pull request #3599 from eht16/version_bump_for_meson Update meson.build also on version bumps commit 73554ef7fbd0fd0f8965a338bdba0db1e9edd4f3 Merge: 1b06889fe 432cd5867 Author: Jiří Techet Date: Tue Oct 17 21:33:27 2023 +0200 Merge pull request #3608 from techee/meson_mac_ext macOS: use ".so" extension for plugins instead of ".dylib" commit 432cd586704ce4488046550e9cd42b67946a5499 Author: Jiří Techet Date: Tue Oct 17 15:15:07 2023 +0200 macOS: use ".so" extension for plugins instead of ".dylib" Geany currently loads only plugins with the ".so" extension on macOS. This extension is still needed since we use autotools for geany-plugins which also generate ".so". plugins/meson.build | 6 ++++++ 1 file changed, 6 insertions(+) commit 1b06889fe2f24f37d746621aca055869b6834c48 Merge: a7479cdd3 d23c9279e Author: Frank Lanitz Date: Tue Oct 17 09:41:39 2023 +0200 Merge pull request #3602 from rdipardo/feat/markdown-header-eolfill Enable EOL-filled Markdown headings commit a7479cdd3321255bc194444e5571995301869f65 Merge: 3955065df 3f6f10c62 Author: Colomban Wendling Date: Tue Oct 17 09:34:47 2023 +0200 Merge pull request #3049 from techee/ctags_readtags Use the official 'libreadtags' library from ctags for parsing ctags files. commit 3f6f10c627ab33cdc04dfbee6c889768b784ec99 Author: Jiří Techet Date: Fri Oct 13 00:17:31 2023 +0200 Update geany.txt with ctags usage for generating tag files Co-authored-by: Colomban Wendling doc/geany.txt | 87 +++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 61 insertions(+), 26 deletions(-) commit 3a0230e0285fe65d00c758b0f2747ac29f269b6b Author: Jiří Techet Date: Wed Dec 8 00:39:09 2021 +0100 Use the readtags library to parse ctags files Use the official 'readtags' library from ctags to parser files in the ctags file format. This allows us not to worry about parsing itself and just extract the information from ctags files we need. In addition, this patch also reads some extra ctags fields we are interested in. It also detects scope key based on the kind used by the given language (not the hard-coded values that are valid for C/C++ only). Finally, this patch also detects the "language" field that specifies for which language the given tag is in the case that the tags file contains tags from multiple languages. When loading language this way, we have to postpone the update of scope ('s' ctags field) until we get the language field because its key is a kind name that is specific to the used language. Note that even after this change tags files still have to be named so that they contain the language in the file's extension because this is needed for other tag file formats supported by Geany. It will, however, be overridden by the "language" field. Co-authored-by: Colomban Wendling doc/geany.txt | 9 +- src/tagmanager/Makefile.am | 1 + src/tagmanager/tm_source_file.c | 209 ++++++++++++++++++++++------------------ 3 files changed, 121 insertions(+), 98 deletions(-) commit 3955065df7644d12b006e5d31c43c8a15704266b Merge: 2f2b38349 449a55ad8 Author: Jiří Techet Date: Tue Oct 17 00:32:34 2023 +0200 Merge pull request #3604 from b4n/tag-goto-blooper Fix blooper leading to incorrect variable formatting commit 2f2b383499c9dde1d7298c42824c0bf6ee424573 Author: Colomban Wendling Date: Mon Oct 16 23:25:54 2023 +0200 French translation update po/fr.po | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) commit 449a55ad8c5e5da3ac8baebad7126ebf9d3314a7 Author: Colomban Wendling Date: Mon Oct 16 22:56:07 2023 +0200 Fix blooper leading to incorrect variable formatting 188038a06a1050308fd7621f11147883d7e5b8fc extended the formatting options, but a blooper made it effectively ignore the language-specific rules, always using the default one. This affects formatting for Go, Pascal and Python, as well as introducing memory leaks for those. src/tagmanager/tm_parser.c | 3 +++ 1 file changed, 3 insertions(+) commit 1a7e2f5caca3f01ff171424fa5cea8e02f0b3331 Author: Colomban Wendling Date: Mon Oct 16 22:48:31 2023 +0200 Constify some arguments Even GCC complains, given how it's used (assuming `-Wwrite-strings`): ../../../src/tagmanager/tm_parser.c: In function 'tm_parser_update_scope': ../../../src/tagmanager/tm_parser.c:1469:65: warning: passing argument 2 of 'replace_string_if_present' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] 1469 | return replace_string_if_present(scope, "\\", "::"); | ^~~~ ../../../src/tagmanager/tm_parser.c:1447:66: note: expected 'gchar *' {aka 'char *'} but argument is of type 'const char *' 1447 | static gchar *replace_string_if_present(gchar *haystack, gchar *needle, gchar *subst) | ~~~~~~~^~~~~~ ../../../src/tagmanager/tm_parser.c:1469:71: warning: passing argument 3 of 'replace_string_if_present' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] 1469 | return replace_string_if_present(scope, "\\", "::"); | ^~~~ ../../../src/tagmanager/tm_parser.c:1447:82: note: expected 'gchar *' {aka 'char *'} but argument is of type 'const char *' 1447 | static gchar *replace_string_if_present(gchar *haystack, gchar *needle, gchar *subst) | ~~~~~~~^~~~~ src/tagmanager/tm_parser.c | 4 ++-- src/tagmanager/tm_parser.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 34767d48ff6bc378ae2516c27b9657dd4f6ebc74 Author: Frank Lanitz Date: Mon Oct 16 22:20:57 2023 +0200 NEWS: Update i18n section with updates since last release NEWS | 4 ++++ 1 file changed, 4 insertions(+) commit 074ce918bc05afe8735a4eeb4dff877e8221d890 Author: Frank Lanitz Date: Mon Oct 16 22:01:01 2023 +0200 Update of German translation po/de.po | 234 +++++++++++++++++++++++++++++---------------------------------- 1 file changed, 109 insertions(+), 125 deletions(-) commit 84f8c601938bcac8adb75f00033d2f9f38a2c44e Author: Enrico Tröger Date: Sat Oct 14 10:28:06 2023 +0200 Link to libiconv explicitly for Windows/mingw64 builds This was removed in e465a2b456e7c0aba6aefc1c4b406b8089386d1a erroneously but it still needed on Windows/mingw64 builds. configure.ac | 1 + 1 file changed, 1 insertion(+) commit 24a945f24fff7865225f04342fb748dc8c3fc62b Author: Enrico Tröger Date: Mon Oct 16 12:56:56 2023 +0200 Windows: Include "Prof-Gnome" GTK theme from geany-osx (#3129) Closes #3063. scripts/gtk-bundle-from-msys2.sh | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit ec30b893a7f4a1ef747bbca3ab047bbbca678ff2 Author: Enrico Tröger Date: Mon Oct 16 12:01:33 2023 +0200 Update scripts/version-bump Co-authored-by: Colomban Wendling scripts/version-bump | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 906b19343227ce8b6ff513d0208b166455d80b9c Author: Colomban Wendling Date: Sun Oct 15 23:23:26 2023 +0200 Remove unused variable This is not used since 4980a03d50e975f9c64538e8fc8beefd5ea2f8ef. src/editor.c | 4 ---- 1 file changed, 4 deletions(-) commit 40ae11b5b3d08548bf8be96655f4acb8715f313b Author: Colomban Wendling Date: Sun Oct 15 22:38:29 2023 +0200 Remove unused variable Remove variable leftover from 4f45f7014b3e7aabf650a68153ea38db4ffc5fcb src/tagmanager/tm_workspace.c | 1 - 1 file changed, 1 deletion(-) commit d23c9279e57a145dfbe297a356fe9e5824190c47 Author: Robert Di Pardo Date: Sun Oct 15 16:55:53 2023 -0400 Enable EOL-filled Markdown headings Closes #2026 (*) --- (*) See esp. https://github.com/geany/geany/issues/2026#issuecomment-1166210507 data/filedefs/filetypes.markdown | 3 +++ 1 file changed, 3 insertions(+) commit 5a5b85d6c3886c54e18853f3c6df8f48148b9ac5 Merge: 45467ba31 d10cfb503 Author: Colomban Wendling Date: Sun Oct 15 22:14:41 2023 +0200 Merge pull request #3316 from dolik-rce/fix-goto-popup-location Fix goto popup location commit 45467ba318f5f1910e30e7e387bbf62b5cbbf79d Author: zenobit Date: Sun Oct 15 08:16:19 2023 +0200 update czech translation (#3595) po/cs.po | 452 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 233 insertions(+), 219 deletions(-) commit 0549a7b8082e839ddd64e47254ea9142a427b07c Author: Colomban Wendling Date: Sat Oct 14 12:48:08 2023 +0200 Fix meson build without git repo (#3597) Fixes #3424. meson.build | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 20c39c858bc7a4bd6f3d062df4de3484b979fd1f Merge: b17b389a9 19feb68c2 Author: Jiří Techet Date: Sat Oct 14 11:25:37 2023 +0200 Merge pull request #3358 from cousteaulecommandant/matlab-ctag-bug ctags: Matlab: generate tag with only the function name, not the function name plus arguments commit 9eeaa691a1d1a68069030226b9d8b0d84cbb9ba7 Author: Enrico Tröger Date: Sat Oct 14 10:23:02 2023 +0200 Update meson.build also on version bumps meson.build | 2 +- scripts/version-bump | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit d10cfb503d30ee9bb7848f171dc857e2e90f0de5 Author: Colomban Wendling Date: Thu Oct 12 23:45:30 2023 +0200 Position goto popup at the mouse when triggered with it Recent changes made it always popup at the caret, which is almost OK as the caret is moved to the click location, but it is still better to actually popup at the pointer when a click triggered it so the position relative to the pointer is always the same. src/symbols.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 705dc3c8eb39c43e54daf171811b412d6eaa5032 Author: Colomban Wendling Date: Thu Oct 12 23:39:50 2023 +0200 Use gtk_menu_popup_at_pointer() in filebrowser as well plugins/filebrowser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 869606ee1427b3611d01ee37c4811942241bb320 Author: Colomban Wendling Date: Thu Oct 12 23:36:23 2023 +0200 Pass the event to gtk_menu_popup_at_pointer() when possible It is slightly better to do so as it allows GTK so select the right pointer in some less common situations. src/callbacks.c | 2 +- src/editor.c | 2 +- src/msgwindow.c | 6 +++--- src/notebook.c | 8 ++++---- src/plugins.c | 2 +- src/prefs.c | 8 ++++---- src/sidebar.c | 6 +++--- src/vte.c | 2 +- 8 files changed, 18 insertions(+), 18 deletions(-) commit b17b389a962f99f3941f91e98461369b40ac40ee Author: Enrico Tröger Date: Thu Oct 12 23:02:31 2023 +0200 CI: Fix version parsing and calculating for 2.0 (#3594) The previous logic failed on 2.0 to make the new version number 1.99.99. This is fixed now even though the code is not perfect or good at all but should work well enough for its purposes. scripts/ci_mingw64_geany.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 3498fe12a3be953511b810e568991e4149f2613a Author: Colomban Wendling Date: Sun Oct 8 23:07:11 2023 +0200 Fix popup position on a wrapping corner case src/symbols.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d364c30e7973ceaf387f8c64211d3980a462f90b Author: Jiří Techet Date: Thu Dec 23 17:53:50 2021 +0100 Fix compilation when TM_DEBUG is defined This function doesn't get normally compiled because TM_DEBUG is undefined and its declaration in header differs from its implementation. src/tagmanager/tm_tag.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e1ae976a7284d59f24b387825e967a2e6794a330 Author: Jiří Techet Date: Tue Dec 7 18:34:57 2021 +0100 Add ctags 'readtags' library to allow us parse ctags files ctags/Makefile.am | 2 + ctags/libreadtags/readtags.c | 1310 ++++++++++++++++++++++++++++++++++++++++++ ctags/libreadtags/readtags.h | 295 ++++++++++ meson.build | 4 +- 4 files changed, 1610 insertions(+), 1 deletion(-) commit 485d7d936682a23ea1e9f265016fc02888c39fbf Author: Colomban Wendling Date: Thu Oct 12 21:59:41 2023 +0200 Do not enable Scintilla's Change History by default (#3591) * It looks either a bit confusing or to have some bugs (without having investigated deeply, it did things I didn't understand); * It marks all lines when reloading a file (instead of resetting to a blank slate); * If marker margin is not visible, it can render the editor unreadable with the default settings; * I don't see any obvious use case given its current behavior that warrants a so visible feature by default; * I don't think the feature is obvious at first glance, which could easily lead users to wonder what that line is about. It also looks similar to other editor's VCS commit status indicator (including git-changebar Geany plugin) display, yet behaves very differently, possibly increasing confusion. So for now, I think it's better to have it disabled by default. src/keyfile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fb9d6676fe7f3462c28d767440b506c1b35894d6 Author: Enrico Tröger Date: Sun Oct 8 15:39:48 2023 +0200 Update URLs to use https consistenly Most URLs just needed to prefixed with https. Some other URLs were outdated or broken and got updated to the recent location. HACKING | 10 +++++----- README.I18N | 8 ++++---- data/filedefs/filetypes.Clojure.conf | 2 +- data/filedefs/filetypes.Groovy.conf | 4 ++-- data/filedefs/filetypes.julia | 2 +- data/templates/files/main.md | 4 ++-- data/ui_toolbar.xml | 2 +- doc/geany.txt | 16 ++++++++-------- doc/plugins.dox | 4 ++-- doc/pluginsignals.c | 2 +- geany.nsi.in | 4 ++-- geany_private.rc | 2 +- plugins/demoplugin.c | 2 +- scripts/create_py_tags.py | 2 +- scripts/gen-api-gtkdoc.py | 2 +- src/editor.c | 2 +- src/geanywraplabel.c | 2 +- src/keybindings.c | 2 +- src/sciwrappers.c | 6 +++--- src/tagmanager/tm_source_file.c | 4 ++-- src/toolbar.c | 2 +- src/ui_utils.c | 2 +- 22 files changed, 43 insertions(+), 43 deletions(-) commit 173744b2bd7bb1c7785163d3c2503ac51226a5e2 Merge: c46ffb0dc b18c76edc Author: Enrico Tröger Date: Wed Oct 11 12:51:43 2023 +0200 Merge pull request #3568 from eht16/use_mingw_posix_crosscompiler CI: Use mingw posix crosscompiler commit 4a2999c18e2db59bb40b90ad6453732a2596a316 Author: Jan Dolinar Date: Sat Dec 31 13:09:45 2022 +0100 Fix popup overlapping the carret src/symbols.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit bbfc201313f948f0528280a9089bc79af1af98a0 Author: Jan Dolinar Date: Sun Oct 23 18:28:06 2022 +0200 drop ui_menu_popup function src/callbacks.c | 2 +- src/editor.c | 2 +- src/msgwindow.c | 6 +++--- src/notebook.c | 2 +- src/plugins.c | 2 +- src/prefs.c | 2 +- src/sidebar.c | 6 +++--- src/symbols.c | 16 +++++++++++++++- src/ui_utils.c | 20 -------------------- src/ui_utils.h | 2 -- src/vte.c | 2 +- 11 files changed, 27 insertions(+), 35 deletions(-) commit 956409479a4dda51e95357cbb28336c121724238 Author: Jan Dolinar Date: Tue Oct 18 19:40:39 2022 +0200 Drop support for GTK 3.21 and older src/callbacks.c | 2 +- src/editor.c | 2 +- src/msgwindow.c | 9 ++---- src/notebook.c | 8 +++--- src/plugins.c | 3 +- src/prefs.c | 21 +++----------- src/sidebar.c | 8 ++---- src/symbols.c | 13 +-------- src/ui_utils.c | 89 +-------------------------------------------------------- src/ui_utils.h | 2 +- src/vte.c | 2 +- 11 files changed, 21 insertions(+), 138 deletions(-) commit d906453916469769e68a2b35345813aa66737e7e Author: Jan Dolinar Date: Tue Oct 18 06:50:08 2022 +0200 Fix go to symbol definition popup location src/callbacks.c | 2 +- src/editor.c | 2 +- src/msgwindow.c | 6 ++-- src/notebook.c | 2 +- src/plugins.c | 2 +- src/prefs.c | 2 +- src/sidebar.c | 6 ++-- src/symbols.c | 80 +------------------------------------------- src/ui_utils.c | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- src/ui_utils.h | 2 +- src/vte.c | 2 +- 11 files changed, 112 insertions(+), 95 deletions(-) commit c46ffb0dcdf50760b362c076922bdc747be24937 Merge: 65c816124 3fbc42690 Author: Jiří Techet Date: Tue Oct 10 12:48:47 2023 +0200 Merge pull request #3547 from techee/goto_impr Improve tag-goto popup commit 65c8161249e32b2a5269039c1f4838394d6cb37d Merge: e141cdd0c 357f2af9f Author: Jiří Techet Date: Tue Oct 10 12:21:05 2023 +0200 Merge pull request #3586 from techee/hacking Update HACKING with up-to-date build instructions commit e141cdd0cdae5c0634ebcb5ed8decaeb1fa3dc64 Author: Peter C. S. Scholtens Date: Mon Oct 9 23:33:27 2023 +0200 Update nl.po (#3582) po/nl.po | 200 ++++++++++++++++++++++++++++----------------------------------- 1 file changed, 89 insertions(+), 111 deletions(-) commit 8da35293dbfdb6c90c7d00ad2274c69b53b0a1b7 Author: scootergrisen Date: Mon Oct 9 23:29:03 2023 +0200 Update da.po (#3579) po/da.po | 3166 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 1580 insertions(+), 1586 deletions(-) commit b88284b467b3e17a5f3c71583e982101eb287cb4 Author: Andrej Herceg Date: Mon Oct 9 23:01:13 2023 +0200 Update of Slovak translation (#3581) po/sk.po | 160 +++++++++++++++++++++++---------------------------------------- 1 file changed, 59 insertions(+), 101 deletions(-) commit aa20e670dcee5e4f8f3dcd869784597fbf115317 Author: Giuseppe Penone Date: Mon Oct 9 21:58:04 2023 +0100 it.po 100% (#3584) po/it.po | 152 +++++++++++++++++++++++++++------------------------------------ 1 file changed, 65 insertions(+), 87 deletions(-) commit afb66ce5d1a3ceee8e9a177ecb76b4f0a530d6c9 Author: Jiří Techet Date: Mon Oct 9 20:12:33 2023 +0200 VTE cleanup related to GTK 3.24 requirement The patch bumping the requirement to 3.24 always sets vte_config.im_submenu = NULL; so some code isn't executed and needed any more. src/vte.c | 7 ------- src/vte.h | 1 - 2 files changed, 8 deletions(-) commit 3fbc4269063230facc8104b8cab0bd5c74de3fe6 Author: Jiří Techet Date: Mon Oct 9 19:40:39 2023 +0200 Remove translatable strings where not needed src/symbols.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 357f2af9f4b496802b5373fcc656901e543c56d9 Author: Jiří Techet Date: Mon Oct 9 19:06:20 2023 +0200 Update HACKING with up-to-date build instructions HACKING | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 987cc3f106bf1eb6c0c0667bf5f24582022180ae Merge: f9c14c34c 9c49eceec Author: Jiří Techet Date: Mon Oct 9 10:56:25 2023 +0200 Merge pull request #3580 from techee/gtk_3_24 Bump GTK version requirement to 3.24 commit f9c14c34c09072d1cdd622cb72f0b1665944623b Merge: f3f0cf198 35d556ede Author: Colomban Wendling Date: Sun Oct 8 23:21:30 2023 +0200 Merge pull request #3535 from b4n/openfiles-3527 Fix crash closing directory from the openfiles sidebar commit 9c49eceec823f042ffc93bea6e11e1e72d85df90 Author: Jiří Techet Date: Sun Oct 8 16:29:36 2023 +0200 Remove geany-3.0.css and geany-3.20.css Since we require GTK 3.24, the css will be the same everywhere. The stuff from geany-3.20.css can be moved directly to geany.css. data/Makefile.am | 2 -- data/geany-3.0.css | 8 -------- data/geany-3.20.css | 9 --------- data/geany.css | 6 ++++++ data/meson.build | 2 -- geany.nsi.in | 1 - src/ui_utils.c | 6 ++++-- 7 files changed, 10 insertions(+), 24 deletions(-) commit 337daf7619f7029c6fe09511fa84905e9f7f1bda Author: Jiří Techet Date: Sun Oct 8 15:53:17 2023 +0200 Update geany.txt with the required GTK version doc/geany.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4bd14af80055e38ed5269a214c7d51872dde9766 Author: Jiří Techet Date: Sun Oct 8 15:52:31 2023 +0200 Remove GTK < 3.24 stuff from geany.css data/geany.css | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 0764b642b64f54af8f11e8dd07a9c60dd2a21acc Author: Jiří Techet Date: Sun Oct 8 15:15:16 2023 +0200 Align all all signatures in the goto tag popup This makes the signatures separated visually and easier to read overall. Patch provided by Colomban Wendling, thanks! src/symbols.c | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) commit f3f0cf19840e0acfb27bc33966f20326a0c72d4e Author: Colomban Wendling Date: Sat Oct 7 22:00:05 2023 +0200 "Fix" some GCC -Wparentheses warnings It's a useful warning in general, so explicitly parenthesize cases that actually do it on purpose. src/symbols.c | 2 +- src/tagmanager/tm_workspace.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) commit e9127911bc89c8cba0a4ecbd5c450efcc4b08a52 Author: Colomban Wendling Date: Sat Oct 7 21:54:04 2023 +0200 Fix missing return value in copy_tags() Actually make this function not return anything as no caller seem to need it, and it's not entirely trivial to return a useful value (it could return the number of copied tags, but it'd have to be computed, which is not useful if not used). src/tagmanager/tm_workspace.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 31dfef5e12bc5adfe9ca7ed3baf6192dab24b2eb Author: Jiří Techet Date: Sat Oct 7 19:54:40 2023 +0200 Bump GTK version requirement to 3.24 HACKING | 5 +---- m4/geany-gtk.m4 | 2 +- meson.build | 2 +- plugins/splitwindow.c | 29 ----------------------------- src/dialogs.c | 24 +++++------------------- src/editor.c | 8 -------- src/vte.c | 26 +------------------------- 7 files changed, 9 insertions(+), 87 deletions(-) commit 57631f1e1b82d7c4068e1c5cdcdb6e9b0e91e190 Merge: 4e3e6a80d 2fd242b94 Author: Colomban Wendling Date: Sat Oct 7 17:59:45 2023 +0200 Merge pull request #3490 from techee/local_fix Mark tags as "local" only for files with a known C/C++ source extension commit 4e3e6a80d2e250cc97732c604d824b11ef9b0f8d Author: Frank Lanitz Date: Sat Oct 7 16:45:03 2023 +0200 Update Portuguese (Portugal) translation provided by Pedro Albuquerque po/pt.po | 3130 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 1586 insertions(+), 1544 deletions(-) commit d1596a8baf1ef6be5d1cd1de680d95b8f7b4493e Author: Frank Lanitz Date: Sat Oct 7 16:39:22 2023 +0200 Update Kazakh translation provided by Baurzhan Muftakhidinov po/kk.po | 207 ++++++++++++++++++++++++--------------------------------------- 1 file changed, 79 insertions(+), 128 deletions(-) commit 0e445b6cca9a8c7d459a03da98c7784c2b9056a3 Author: Lucas Vieites Date: Sat Oct 7 16:25:11 2023 +0200 Update es.po for release 2.0 (#3573) Translated pending Spanish strings for Geany 2.0 po/es.po | 3009 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 1532 insertions(+), 1477 deletions(-) commit 8521ad5fbccfc47ba6dc2c4050efdd452dff34d3 Merge: c1c471548 408974134 Author: Jiří Techet Date: Fri Oct 6 19:46:13 2023 +0200 Merge pull request #3576 from techee/css_config_comment Don't comment global content unless it is Conf commit 4089741340522053319969975cebba19c3fce52b Author: Jiří Techet Date: Thu Oct 5 19:39:03 2023 +0200 Don't comment global content unless it is Conf When using Tools->Config Files to open a user file that doesn't exist. This fixes the first line of geany.css being wrongly uncommented (and the rest unchanged) due to toggle comment being used and CSS not having a line comment. (Verbatim copy-paste of Nick's description of the previous version of the patch, thanks :-) src/ui_utils.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) commit c1c4715486293cc8aa7e5708c98c4ead090ae911 Merge: 87ab25dc2 0fbec848b Author: Jiří Techet Date: Fri Oct 6 12:26:42 2023 +0200 Merge pull request #3553 from techee/colorize_fix Fix keyword colorization on filetype change commit 87ab25dc2abc276a93fde4e5d8ec0d8702993b4d Merge: 3374ea815 0045d92ad Author: Enrico Tröger Date: Thu Oct 5 23:09:01 2023 +0200 Merge pull request #3569 from eht16/bump_version_to_2_0 Pre-release version bump to 2.0 commit 3374ea8154b007cb155afd513d6cfdb34a09e5e6 Author: Colomban Wendling Date: Thu Oct 5 22:13:25 2023 +0200 Fix out-of-bounds read in foreach_ptr_array() (#3536) foreach_ptr_array() was reading one element past the end of the array. This was not usually noticeable because the resulting garbage pointer was not actually used, and it's highly unlikely there is protected or foreign memory right after the array, but there is actually no such guarantee, and it's bad nonetheless. This actually resulted in Valgrind complaining, and hence me noticing: ==1217514== Invalid read of size 8 ==1217514== at 0x49120B9: keyfile_action (stash.c:271) ==1217514== by 0x49130BB: stash_group_load_from_key_file (stash.c:308) ==1217514== by 0x48F179D: settings_action (keyfile.c:396) ==1217514== by 0x48F2D5E: read_config_file (keyfile.c:1245) ==1217514== by 0x48F3FAB: configuration_load (keyfile.c:1278) ==1217514== by 0x48F5393: load_settings (libmain.c:917) ==1217514== by 0x48F667F: main_lib (libmain.c:1154) ==1217514== by 0x109141: main (main.c:27) ==1217514== Address 0x910a3f0 is 0 bytes after a block of size 16 alloc'd ==1217514== at 0x48406C4: malloc (vg_replace_malloc.c:380) ==1217514== by 0x5B2C717: g_realloc (gmem.c:201) ==1217514== by 0x5AF2AA3: g_ptr_array_maybe_expand (garray.c:1640) ==1217514== by 0x5AF4066: g_ptr_array_add (garray.c:1962) ==1217514== by 0x4912247: add_pref (stash.c:491) ==1217514== by 0x491331E: stash_group_add_integer (stash.c:531) ==1217514== by 0x48F3857: init_pref_groups (keyfile.c:339) ==1217514== by 0x48F42A1: configuration_init (keyfile.c:1500) ==1217514== by 0x48F6661: main_lib (libmain.c:1146) ==1217514== by 0x109141: main (main.c:27) ==1217514== or: ==1217514== Invalid read of size 8 ==1217514== at 0x48EA315: keybindings_foreach (keybindings.c:768) ==1217514== by 0x48EC9B4: load_user_kb (keybindings.c:817) ==1217514== by 0x48EFBDC: keybindings_load_keyfile (keybindings.c:846) ==1217514== by 0x48F6756: main_lib (libmain.c:1206) ==1217514== by 0x109141: main (main.c:27) ==1217514== Address 0xd570830 is 0 bytes after a block of size 32 alloc'd ==1217514== at 0x484582F: realloc (vg_replace_malloc.c:1437) ==1217514== by 0x5B2C717: g_realloc (gmem.c:201) ==1217514== by 0x5AF2AA3: g_ptr_array_maybe_expand (garray.c:1640) ==1217514== by 0x5AF4066: g_ptr_array_add (garray.c:1962) ==1217514== by 0x48ECC43: keybindings_set_item (keybindings.c:180) ==1217514== by 0x48ECD92: add_kb (keybindings.c:295) ==1217514== by 0x48EE686: init_default_kb (keybindings.c:518) ==1217514== by 0x48EFB7C: keybindings_init (keybindings.c:751) ==1217514== by 0x48F6698: main_lib (libmain.c:1160) ==1217514== by 0x109141: main (main.c:27) The problematic code was setting the new value for the item pointer after incrementing the index, but before validating it was still in the valid range. Fix this by moving the item assignment in the condition expression. This requires using a comma operator and a logical AND to make sure the expression does not contribute to the test (allowing e.g. NULL values) yet being dependent on the index validation passing. Note that this change, as implemented here, slightly affects behavior: `item` will point to the last *actual* node of the array (not out of bounds) after the loop, but also it will not be set at all if the array has no items. Before this change, the value was NULL for no items, and garbage otherwise. As the value after the loop was effectively only usable for empty arrays, it sounds safe enough to assume no caller depended on an empty array leading to initializing `item`, so we can drop this special case. And unsurprisingly no caller in Geany itself depend on that. src/utils.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 7d5ab8d14c69f253429cdb5d4ca040d525c9120e Author: Frank Lanitz Date: Wed Oct 4 23:48:56 2023 +0200 Update po files for upcoming 2.0 string freeze part II po/ar.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/ast.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/be.po | 633 ++++++++++++++++++++++++++++++----------------------------- po/bg.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/ca.po | 633 ++++++++++++++++++++++++++++++----------------------------- po/cs.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/da.po | 633 ++++++++++++++++++++++++++++++----------------------------- po/de.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/el.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/en_GB.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/es.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/et.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/eu.po | 633 ++++++++++++++++++++++++++++++----------------------------- po/fa.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/fi.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/fr.po | 633 ++++++++++++++++++++++++++++++----------------------------- po/gl.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/he.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/hi.po | 632 ++++++++++++++++++++++++++++++----------------------------- po/hu.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/id.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/ie.po | 633 ++++++++++++++++++++++++++++++----------------------------- po/it.po | 633 ++++++++++++++++++++++++++++++----------------------------- po/ja.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/kk.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/ko.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/ku.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/lb.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/lt.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/lv.po | 633 ++++++++++++++++++++++++++++++----------------------------- po/mn.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/nl.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/nn.po | 631 ++++++++++++++++++++++++++++++----------------------------- po/pl.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/pt.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/pt_BR.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/ro.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/ru.po | 633 ++++++++++++++++++++++++++++++----------------------------- po/sk.po | 633 ++++++++++++++++++++++++++++++----------------------------- po/sl.po | 633 ++++++++++++++++++++++++++++++----------------------------- po/sr.po | 633 ++++++++++++++++++++++++++++++----------------------------- po/sv.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/tr.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/uk.po | 633 ++++++++++++++++++++++++++++++----------------------------- po/vi.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/zh_CN.po | 636 +++++++++++++++++++++++++++++++----------------------------- po/zh_TW.po | 636 +++++++++++++++++++++++++++++++----------------------------- 47 files changed, 15225 insertions(+), 14619 deletions(-) commit 4af1965d3435af338382c6de33c028b52e2f1a5f Merge: b8d0f509d 35b244bde Author: Thomas Martitz Date: Wed Oct 4 22:48:02 2023 +0200 Merge pull request #3551 from kugel-/scintilla * Update Scintilla to version 5.3.7 and Lexilla to 5.2.7 * Implement change bar feature and enable by default * New styling options for python, R and Ruby commit 35b244bde0532a9c8376711574395e67269c7de6 Author: Thomas Martitz Date: Wed Oct 4 21:56:10 2023 +0200 Bump plugin API EditorPrefs was extended and scintilla was updated. Be helpful and allow plugins to detect this. src/plugindata.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 63e31a3ec2c8ceae27fcaeb1522320643c3886f8 Author: Thomas Martitz Date: Wed Sep 27 08:17:53 2023 +0200 Enable new Scintilla "Change History" Makes Geany feel a litttle bit more modern. Can be enabled/disabled via Prefs. Default is to show the change history in the markers margin. Note: Scintilla tracks only its own change history and is not connected to any VCS, unlike the git-changebar plugin. Also, change history is lost when the document is closed and re-opened. data/geany.glade | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/editor.c | 9 ++++++++ src/editor.h | 2 ++ src/keyfile.c | 4 ++++ 4 files changed, 78 insertions(+) commit c2a96e82a40566a61f1fd05eb16d7b83832981b1 Author: Thomas Martitz Date: Tue Sep 26 08:20:13 2023 +0200 Update scintilla/scintilla_changes.patch and update-scintilla.sh We previously imported the README but did not keep it up-to-date. This was adding noise to the diff to pristine scintilla. scintilla/README | 98 ++++++++++++++++++++++++++++++++++----- scintilla/scintilla_changes.patch | 25 +++++----- scripts/update-scintilla.sh | 1 + 3 files changed, 99 insertions(+), 25 deletions(-) commit 59d8aee1a8bbb125c38257b60da85a5ae46de36f Author: Thomas Martitz Date: Fri Sep 22 20:02:44 2023 +0200 Handle new nodepath style for gdscript While at it, fix annotation style. Somehow an earlier lexilla import falsely used decorator in filetypes.gdscript. data/filedefs/filetypes.gdscript | 3 ++- src/highlightingmappings.h | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) commit 0f04b2437c4f6e6dd9bd4ed5ace1c27dd16c1efb Author: Thomas Martitz Date: Thu Sep 21 08:41:35 2023 +0200 Handle new styles for strings in R (rawstrings, backticks, espaces) Note:With escapes there is still an issue, thus we disable it for now via lexer properties. See also: https://github.com/ScintillaOrg/lexilla/issues/206 data/filedefs/filetypes.r | 9 ++++++++- src/highlightingmappings.h | 28 ++++++++++++++++------------ 2 files changed, 24 insertions(+), 13 deletions(-) commit 7f78ddf694cda6a50f93dacb2d6008d6c6bcfdfe Author: Thomas Martitz Date: Wed Sep 20 08:05:44 2023 +0200 Map new ruby lex classes to existing styles, for now. %i, %I, %w and %s are newly recognized by Scintilla. See also: https://docs.ruby-lang.org/en/master/syntax/literals_rdoc.html#label-Percent+Literals src/highlightingmappings.h | 4 ++++ 1 file changed, 4 insertions(+) commit 9aa597e945876aa61024de1ff6398fa5eba281f0 Author: Thomas Martitz Date: Wed Sep 6 16:35:47 2023 +0200 Map new python "attribute" mapping to identifier_2, by default. "attribute" is for highlighting object attributes or methods, i.e. to style foo and bar differently in foo.bar. Also set lexer properties to allow scintilla using different styles. See https://github.com/ScintillaOrg/lexilla/pull/49 data/filedefs/filetypes.python.in | 3 +++ src/highlightingmappings.h | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) commit 19336d22946b77bbcb5131544ea0e6317cdcf6b5 Author: Thomas Martitz Date: Wed Aug 30 07:48:46 2023 +0200 Update Scintilla to version 5.3.7 Notable changes since 5.1.5 - multithreaded layouting and line wrapping. Neil says this can lead to dramatic improvements. Disabled by default, see SCI_SETLAYOUTTHREADS (i.e. we don't use it yet) - New APIs to support 64-bit document positions on Win32: SCI_GETSTYLEDTEXTFULL, SCI_GETTEXTRANGEFULL, SCI_FINDTEXTFULL, and SCI_FORMATRANGEFULL We should move should move to these APIs, as the predecessors will be deprecated sooner or later. Not sure if it affects GTK-backend on win32 as well? - Change bar (will be enabled in a separate commit) Also update Lexilla to 5.2.7, changes since 5.1.4: - Tons of LexBash improvements - Also numerous improvements to languages (Ruby, Matlab, F# and many more) meson.build | 3 + scintilla/Makefile.am | 3 + scintilla/gtk/Converter.h | 7 +- scintilla/gtk/PlatGTK.cxx | 497 +++++----- scintilla/gtk/ScintillaGTK.cxx | 291 +++--- scintilla/gtk/ScintillaGTK.h | 14 +- scintilla/gtk/ScintillaGTKAccessible.cxx | 9 +- scintilla/gtk/Wrappers.h | 109 ++ scintilla/include/Scintilla.h | 60 +- scintilla/include/Scintilla.iface | 80 +- scintilla/include/ScintillaCall.h | 21 + scintilla/include/ScintillaMessages.h | 13 + scintilla/include/ScintillaStructures.h | 26 + scintilla/include/ScintillaTypes.h | 35 +- scintilla/lexilla/include/Lexilla.h | 16 +- scintilla/lexilla/include/SciLexer.h | 32 +- scintilla/lexilla/lexers/LexBash.cxx | 1024 +++++++++++-------- scintilla/lexilla/lexers/LexBatch.cxx | 59 +- scintilla/lexilla/lexers/LexCPP.cxx | 271 +++-- scintilla/lexilla/lexers/LexCmake.cxx | 2 +- scintilla/lexilla/lexers/LexCoffeeScript.cxx | 8 + scintilla/lexilla/lexers/LexDiff.cxx | 57 +- scintilla/lexilla/lexers/LexGDScript.cxx | 43 +- scintilla/lexilla/lexers/LexHTML.cxx | 246 ++--- scintilla/lexilla/lexers/LexJulia.cxx | 4 +- scintilla/lexilla/lexers/LexLua.cxx | 6 +- scintilla/lexilla/lexers/LexMake.cxx | 36 +- scintilla/lexilla/lexers/LexMarkdown.cxx | 123 ++- scintilla/lexilla/lexers/LexMatlab.cxx | 200 +++- scintilla/lexilla/lexers/LexNsis.cxx | 4 + scintilla/lexilla/lexers/LexPowerShell.cxx | 83 +- scintilla/lexilla/lexers/LexProps.cxx | 39 +- scintilla/lexilla/lexers/LexPython.cxx | 137 ++- scintilla/lexilla/lexers/LexR.cxx | 252 +++-- scintilla/lexilla/lexers/LexRuby.cxx | 778 +++++++++------ scintilla/lexilla/lexers/LexRust.cxx | 2 +- scintilla/lexilla/lexers/LexSQL.cxx | 6 +- scintilla/lexilla/lexers/LexVHDL.cxx | 18 +- scintilla/lexilla/lexers/LexVerilog.cxx | 14 +- scintilla/lexilla/lexers/LexYAML.cxx | 87 +- scintilla/lexilla/lexlib/CatalogueModules.h | 17 +- scintilla/lexilla/lexlib/CharacterCategory.cxx | 190 +++- scintilla/lexilla/lexlib/CharacterSet.h | 15 +- scintilla/lexilla/lexlib/DefaultLexer.cxx | 3 +- scintilla/lexilla/lexlib/LexAccessor.cxx | 9 +- scintilla/lexilla/lexlib/LexAccessor.h | 30 +- scintilla/lexilla/lexlib/LexerModule.cxx | 2 +- scintilla/lexilla/lexlib/LexerModule.h | 2 +- scintilla/lexilla/lexlib/OptionSet.h | 36 +- scintilla/lexilla/lexlib/PropSetSimple.cxx | 8 +- scintilla/lexilla/lexlib/StyleContext.cxx | 41 + scintilla/lexilla/lexlib/StyleContext.h | 104 +- scintilla/lexilla/lexlib/SubStyles.h | 4 +- scintilla/lexilla/lexlib/WordList.cxx | 25 +- scintilla/lexilla/lexlib/WordList.h | 1 + scintilla/lexilla/src/Lexilla.cxx | 17 +- scintilla/lexilla/version.txt | 2 +- scintilla/src/CallTip.cxx | 22 +- scintilla/src/CallTip.h | 6 +- scintilla/src/CaseConvert.cxx | 197 ++-- scintilla/src/CaseFolder.cxx | 34 +- scintilla/src/CaseFolder.h | 8 +- scintilla/src/CellBuffer.cxx | 182 +++- scintilla/src/CellBuffer.h | 33 +- scintilla/src/ChangeHistory.cxx | 422 ++++++++ scintilla/src/ChangeHistory.h | 112 +++ scintilla/src/CharacterCategoryMap.cxx | 190 +++- scintilla/src/ContractionState.cxx | 83 +- scintilla/src/ContractionState.h | 1 + scintilla/src/Decoration.cxx | 48 +- scintilla/src/Decoration.h | 2 +- scintilla/src/Document.cxx | 239 +++-- scintilla/src/Document.h | 70 +- scintilla/src/EditModel.cxx | 8 + scintilla/src/EditModel.h | 6 +- scintilla/src/EditView.cxx | 1268 +++++++++++++----------- scintilla/src/EditView.h | 53 +- scintilla/src/Editor.cxx | 741 +++++++++----- scintilla/src/Editor.h | 60 +- scintilla/src/Geometry.cxx | 20 +- scintilla/src/Geometry.h | 29 +- scintilla/src/Indicator.cxx | 28 +- scintilla/src/KeyMap.cxx | 4 +- scintilla/src/KeyMap.h | 2 + scintilla/src/LineMarker.cxx | 47 +- scintilla/src/MarginView.cxx | 101 +- scintilla/src/MarginView.h | 2 +- scintilla/src/Partitioning.h | 128 +-- scintilla/src/PerLine.cxx | 57 +- scintilla/src/PerLine.h | 42 +- scintilla/src/Platform.h | 2 +- scintilla/src/PositionCache.cxx | 304 +++++- scintilla/src/PositionCache.h | 67 +- scintilla/src/RESearch.cxx | 31 +- scintilla/src/RESearch.h | 2 - scintilla/src/RunStyles.cxx | 118 ++- scintilla/src/RunStyles.h | 10 +- scintilla/src/ScintillaBase.cxx | 82 +- scintilla/src/ScintillaBase.h | 4 +- scintilla/src/Selection.h | 10 +- scintilla/src/SparseVector.h | 143 +-- scintilla/src/SplitVector.h | 28 +- scintilla/src/Style.cxx | 3 +- scintilla/src/Style.h | 1 + scintilla/src/UniConversion.cxx | 4 +- scintilla/src/UniConversion.h | 2 +- scintilla/src/UniqueString.cxx | 2 - scintilla/src/UniqueString.h | 7 - scintilla/src/ViewStyle.cxx | 89 +- scintilla/src/ViewStyle.h | 18 +- scintilla/src/XPM.cxx | 22 +- scintilla/src/XPM.h | 4 +- scintilla/version.txt | 2 +- 113 files changed, 6655 insertions(+), 3766 deletions(-) commit 19feb68c28427d423015b71428962ed766fc8c57 Author: Javier Mora Date: Mon Dec 26 12:34:04 2022 +0000 Improve ctags tests for Matlab tests/ctags/matlab_test.m now captures more corner cases (comments with `=` and variable names starting with `function`). This will prevent accidental regressions in future commits. For now, block comments (text between `%{` and `%}`) are NOT ignored. tests/ctags/matlab_test.m | 3 +++ tests/ctags/matlab_test.m.tags | 4 ++++ 2 files changed, 7 insertions(+) commit 568806ea78e98ac2e82b288fa15d443600631294 Author: Javier Mora Date: Sun Dec 25 23:47:45 2022 +0000 Modify (fix) test accordingly tests/ctags/matlab_backtracking.m.tags | 4 ++-- tests/ctags/matlab_test.m.tags | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) commit 56afcc71d19fb6ed26441b6eaf5adddc620999d1 Author: Javier Mora Date: Sun Dec 25 22:48:47 2022 +0000 ctags: Matlab: function name only, without args A line like `function y = foo(a, b, c)` should yield a tag of `foo`, not `foo(a, b, c)`. That way, Ctrl-clicking `foo` somewhere in the code will take me there. The function name is `foo` after all, not `foo(a, b c)`. Also, fixed issue where a line like `function foo() % this = bug` would yield a tag of `bug` instead of `foo` because the `=` in the comment was not ignored. ctags/parsers/geany_matlab.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) commit b8d0f509d3fd52e90abae669a9df2f823aeada12 Author: Frank Lanitz Date: Tue Oct 3 19:54:33 2023 +0200 Update po files for upcoming 2.0 string freeze po/ar.po | 3912 ++++++++++++++++++++++++++++---------------------------- po/ast.po | 4010 ++++++++++++++++++++++++++++++---------------------------- po/be.po | 4024 ++++++++++++++++++++++++++++++---------------------------- po/bg.po | 4006 +++++++++++++++++++++++++++++---------------------------- po/ca.po | 4029 ++++++++++++++++++++++++++++++---------------------------- po/cs.po | 4037 ++++++++++++++++++++++++++++++---------------------------- po/da.po | 4038 ++++++++++++++++++++++++++++++---------------------------- po/de.po | 640 +++++----- po/el.po | 4039 ++++++++++++++++++++++++++++++---------------------------- po/en_GB.po | 4003 +++++++++++++++++++++++++++++---------------------------- po/es.po | 2988 +++++++++++++++++++++---------------------- po/et.po | 4034 ++++++++++++++++++++++++++++++---------------------------- po/eu.po | 3952 +++++++++++++++++++++++++++++---------------------------- po/fa.po | 4007 +++++++++++++++++++++++++++++---------------------------- po/fi.po | 4023 ++++++++++++++++++++++++++++++---------------------------- po/fr.po | 1197 +++++++++--------- po/gl.po | 4043 ++++++++++++++++++++++++++++++---------------------------- po/he.po | 4003 +++++++++++++++++++++++++++++---------------------------- po/hi.po | 3592 +++++++++++++++++++++++++++------------------------- po/hu.po | 4027 ++++++++++++++++++++++++++++++---------------------------- po/id.po | 4037 ++++++++++++++++++++++++++++++---------------------------- po/ie.po | 4039 ++++++++++++++++++++++++++++++---------------------------- po/it.po | 4063 ++++++++++++++++++++++++++++++---------------------------- po/ja.po | 4016 ++++++++++++++++++++++++++++++---------------------------- po/kk.po | 3991 +++++++++++++++++++++++++++++---------------------------- po/ko.po | 3947 +++++++++++++++++++++++++++++---------------------------- po/ku.po | 3912 ++++++++++++++++++++++++++++---------------------------- po/lb.po | 4015 ++++++++++++++++++++++++++++++---------------------------- po/lt.po | 4018 ++++++++++++++++++++++++++++++---------------------------- po/lv.po | 3030 ++++++++++++++++++++++---------------------- po/mn.po | 3852 ++++++++++++++++++++++++++++--------------------------- po/nl.po | 4040 ++++++++++++++++++++++++++++++---------------------------- po/nn.po | 3725 +++++++++++++++++++++++++++-------------------------- po/pl.po | 4061 ++++++++++++++++++++++++++++++---------------------------- po/pt.po | 4025 ++++++++++++++++++++++++++++++---------------------------- po/pt_BR.po | 4046 ++++++++++++++++++++++++++++++---------------------------- po/ro.po | 4010 ++++++++++++++++++++++++++++++---------------------------- po/ru.po | 4044 ++++++++++++++++++++++++++++++---------------------------- po/si.po | 2 +- po/sk.po | 4023 ++++++++++++++++++++++++++++++---------------------------- po/sl.po | 4078 ++++++++++++++++++++++++++++++----------------------------- po/sr.po | 3984 +++++++++++++++++++++++++++++---------------------------- po/sv.po | 4013 ++++++++++++++++++++++++++++++---------------------------- po/tr.po | 4018 ++++++++++++++++++++++++++++++---------------------------- po/uk.po | 3279 +++++++++++++++++++++++++---------------------- po/vi.po | 4024 ++++++++++++++++++++++++++++++---------------------------- po/zh_CN.po | 3985 +++++++++++++++++++++++++++++---------------------------- po/zh_TW.po | 3991 +++++++++++++++++++++++++++++---------------------------- 48 files changed, 91970 insertions(+), 86902 deletions(-) commit 73f5491168ba9e9ab9a60d262d904e6597749cf7 Merge: 579c07474 2e72ba943 Author: Jiří Techet Date: Tue Oct 3 19:39:28 2023 +0200 Merge pull request #3541 from techee/abi_bump Bump Geany ABI to mitigate Scintilla 5.1.5 changes commit 0045d92ad3ceea20e5354d43c941ed02f28dd40f Author: Enrico Tröger Date: Tue Oct 3 18:12:57 2023 +0200 Pre-release version bump Say hello to Geany 2.0 "Pryce"! NEWS | 2 +- configure.ac | 2 +- doc/geany.txt | 2 +- geany.exe.manifest | 2 +- geany_private.rc | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) commit b18c76edc9eb10a5c0097d4231c387885e2f266f Author: Enrico Tröger Date: Tue Oct 3 14:40:03 2023 +0200 CI: Log compiler and library versions in build output scripts/ci_mingw64_geany.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 354c7ba4e66803f16d9e0452b7829d47cb742587 Author: Enrico Tröger Date: Tue Oct 3 14:39:41 2023 +0200 CI: Copy used C++ runtime library into the GTK bundle scripts/ci_mingw64_geany.sh | 7 +++++++ 1 file changed, 7 insertions(+) commit 579c0747437c3a99b93530b8a6e59e9a7d701fed Author: Abel Serrano Juste Date: Thu Sep 28 22:54:04 2023 +0200 Renamed pep8 to pycodestyle (#1776) pep8 has been renamed to pycodestyle, see [1] , [2] and [3] for more info. [1] https://github.com/PyCQA/pycodestyle/issues/466 [2] https://github.com/PyCQA/pycodestyle/issues/481 [3] https://github.com/PyCQA/pycodestyle/commit/2344a34a628b2f2e9df1c2539d9316005a35053d data/filedefs/filetypes.python.in | 2 +- doc/geany.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit b3dde4d21d55f97475b623f714a1156c8d2a46d9 Author: Thomas Martitz Date: Tue Sep 26 08:05:18 2023 +0200 Use gtk_show_uri_on_window() in utils_open_browser() by default (#3178) Instead of requiring the user to specify a browser just try to use the system default browser through gtk_show_uri_on_window(). This is done when tool_prefs.browser_cmd is empty which is also the new default. This aligns with windows where we do this already. Though we're bypassing tool_prefs.browser_cmd there entirely, while on non-Windows we still honor tool_prefs.browser_cmd when it's set. This is primarily useful for flatpak support where we cannot just execute arbitrary commands on the host (unless using flatpak-spawn). Also, firefox is arguably a bad default these days, given the declined market share. data/geany.glade | 1 + src/keyfile.c | 3 ++- src/utils.c | 27 ++++++++++++++++++++------- 3 files changed, 23 insertions(+), 8 deletions(-) commit 0fbec848bb563692445bfadf3317701718527bf2 Author: Jiří Techet Date: Sun Sep 10 23:51:54 2023 +0200 Fix keyword colorization on filetype change When filetype is changed to a compatible filetype (such as C->C++ and then possibly back to C), colorization is lost. It seems that with Scintilla 5, when language-specific highlighting changes, SCI_SETKEYWORDS has to be called again to take effect. By setting keyword_hash to 0 we force Geany to call sci_set_keywords() in document_highlight_tags() which fixes the problem. src/document.c | 3 +++ 1 file changed, 3 insertions(+) commit 3787677de43204d1396c8f5439e82e90fe61b8a4 Merge: 3381706a6 486d9d8b6 Author: Frank Lanitz Date: Mon Sep 4 20:05:17 2023 +0200 Merge pull request #3545 from Usland123/Usland123-patch-1 Update uk.po commit 188038a06a1050308fd7621f11147883d7e5b8fc Author: Jiří Techet Date: Wed Aug 23 21:33:54 2023 +0200 Improve tag-goto popup 1. Show signature for all tag types using get_symbol_name() when get_symbol_tooltip() returns NULL. Modify get_symbol_name() to drop line number when needed. (More or less taken over the complete implementation from Colomban) 2. Add scope information to the signature both when using get_symbol_name() and get_symbol_tooltip(). (Based on Nick's idea) 3. Truncate the length of the popup to at most 80 characters (More or less taken over the complete implementation from Nick) 4. Improve formatting of entries in the popup so individual pieces of information are easier to distinguish: - file name and line number are always in italics - the following signature is in small monospaced font 5. Add tooltip to every entry (based on Nick's implementation). - split the tooltip into two lines - the first line shows the file and the line number, the second line the signature - both of the lines are formatted in the same way as described in (4) (Thanks to Nick Treleaven and Colomban Wendling for the original implementation.) src/symbols.c | 42 +++++++++++++++++++++++++++--------------- src/tagmanager/tm_parser.c | 20 ++++++++++++++++---- src/tagmanager/tm_parser.h | 3 ++- 3 files changed, 45 insertions(+), 20 deletions(-) commit 486d9d8b6994d8165c8f80b071c916f227d4d30b Author: Usland <72984028+Usland123@users.noreply.github.com> Date: Sat Aug 19 18:12:18 2023 +0300 Update uk.po Настройки is Russian word. Налаштування is Ukrainian word. po/uk.po | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) commit 2e72ba9431754e7ff6e6ad5562388f6e8263c9e5 Author: Jiří Techet Date: Sun Aug 13 00:44:05 2023 +0200 Bump Geany ABI to mitigate Scintilla 5.1.5 changes This is to mitigate this change in Scintilla 5.1.5: When calling SCI_GETTEXT, SCI_GETSELTEXT, and SCI_GETCURLINE with a NULL buffer argument to discover the length that should be allocated, do not include the terminating NUL in the returned value. The value returned is 1 less than previous versions of Scintilla. Applications should allocate a buffer 1 more than this to accommodate the NUL. The wParam (length) argument to SCI_GETTEXT and SCI_GETCURLINE also omits the NUL. This is more consistent with other APIs. While it doesn't prevent simple recompilation of existing plugins without fixing the possible problems in them, at least it doesn't allow users using binary releases to load old, unfixed plugins. src/plugindata.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3381706a6b7a16bc994391e7eeb3bcfa83506eb0 Merge: c5d5a577f c62b87955 Author: Jiří Techet Date: Sat Aug 12 22:48:12 2023 +0200 Merge pull request #3460 from techee/autoit_mapping autoit: use local/global variable tags commit c5d5a577f6774642e65127a749431724556d7935 Merge: ee2519bef 9739a89ea Author: Frank Lanitz Date: Tue Aug 8 23:45:49 2023 +0200 Merge pull request #3522 from lucasvieites/patch-2 Update Spanish translation commit ee2519befb93597f988f58c23499ef06f5993e0e Author: Frank Lanitz Date: Tue Aug 8 23:43:11 2023 +0200 Small update of German translation po/de.po | 4016 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 2055 insertions(+), 1961 deletions(-) commit e806a54a9661bf39dd4af8a6c7daad5b6be8fa28 Merge: a3518b7c4 49ce92541 Author: Enrico Tröger Date: Sat Aug 5 23:06:34 2023 +0200 Merge pull request #3512 from eht16/generate_php_global_tags_in_ctags_format Generate PHP global tags in ctags format commit a3518b7c41371e3e022cec7949b880cc22faf7d1 Merge: 2198888ba 7daf6eec7 Author: Enrico Tröger Date: Sat Aug 5 23:04:42 2023 +0200 Merge pull request #3487 from eht16/update_nsis_keywords Update NSIS filetype keywords commit 2198888ba1cb5e2e86dc780cc2fa4ce56a719c8f Author: Enrico Tröger Date: Sat Aug 5 23:03:59 2023 +0200 Remove obsolete helper scripts (#3486) * Remove obsolete helper scripts scripts/changelist.pl: process ChangeLog which we do not use anymore scripts/cross-build-mingw.sh: old cross build script, replaced by #3315 scripts/rstrip-whitespace.py: probably unused scripts/fix-alignment.pl scripts/fix-cxx-comments.pl scripts/warning-summary.pl scripts/changelist.pl | 135 ------------------------------------------- scripts/cross-build-mingw.sh | 98 ------------------------------- scripts/fix-alignment.pl | 108 ---------------------------------- scripts/fix-cxx-comments.pl | 78 ------------------------- scripts/rstrip-whitespace.py | 23 -------- scripts/warning-summary.pl | 78 ------------------------- 6 files changed, 520 deletions(-) commit cc324f401c6cc1dfa9db4b6bf6df84e7922415cd Author: Thomas Lange Date: Tue Aug 1 02:07:24 2023 +0200 Support syntax highlighting for Meson options file (#3534) See also: https://mesonbuild.com/Build-options.html#build-options data/filedefs/filetypes.Meson.conf | 2 +- data/filetype_extensions.conf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 35d556ede85efb358d1cac156dd0fc8d44b20201 Author: Colomban Wendling Date: Sun Jul 30 23:41:02 2023 +0200 Fix crash closing directory from the openfiles sidebar When the openfiles sidebar shows documents as a tree, closing a document can lead to sever re-layout of the view (e.g. collapsing directory nodes together). This makes walking the tree and closing documents at the same time highly tricky, as nodes might be shifting as we go. This lead to invalid memory access, and unexpected results, when closing some tree structures. One example of Valgrind showing how bad things are: ==917061== Invalid read of size 8 ==917061== at 0x5B31345: g_node_nth_child (gnode.c:1052) ==917061== by 0x50A7361: gtk_tree_store_iter_nth_child (gtktreestore.c:793) ==917061== by 0x491DB76: on_openfiles_document_action_apply (sidebar.c:1330) ==917061== by 0x491DC0C: on_openfiles_document_action (sidebar.c:1347) ==917061== by 0x5A833AF: g_closure_invoke (gclosure.c:832) ==917061== by 0x5A96075: signal_emit_unlocked_R.isra.0 (gsignal.c:3796) ==917061== by 0x5A9CBF4: g_signal_emit_valist (gsignal.c:3549) ==917061== by 0x5A9CDBE: g_signal_emit (gsignal.c:3606) ==917061== by 0x50D7833: gtk_widget_activate (gtkwidget.c:7845) ==917061== by 0x4F8A935: gtk_menu_shell_activate_item (gtkmenushell.c:1375) ==917061== by 0x4F8AC70: gtk_menu_shell_button_release (gtkmenushell.c:791) ==917061== by 0x4DFBCB3: _gtk_marshal_BOOLEAN__BOXEDv (gtkmarshalers.c:130) ==917061== Address 0x9bcdc20 is 32 bytes inside a block of size 40 free'd ==917061== at 0x484317B: free (vg_replace_malloc.c:872) ==917061== by 0x5B3068B: g_nodes_free (gnode.c:123) ==917061== by 0x5B3068B: g_node_destroy (gnode.c:143) ==917061== by 0x50AA8F2: gtk_tree_store_remove (gtktreestore.c:1229) ==917061== by 0x491F851: sidebar_openfiles_remove_iter (sidebar.c:959) ==917061== by 0x491F8AE: openfiles_remove (sidebar.c:972) ==917061== by 0x491FA6C: sidebar_remove_document (sidebar.c:1027) ==917061== by 0x48D0B5B: remove_page (document.c:733) ==917061== by 0x48D29C0: document_remove_page (document.c:787) ==917061== by 0x48D29FC: document_close (document.c:695) ==917061== by 0x491DAED: document_action (sidebar.c:1299) ==917061== by 0x491DB47: on_openfiles_document_action_apply (sidebar.c:1322) ==917061== by 0x491DB9E: on_openfiles_document_action_apply (sidebar.c:1332) ==917061== Block was alloc'd at ==917061== at 0x48407B4: malloc (vg_replace_malloc.c:381) ==917061== by 0x5B2C678: g_malloc (gmem.c:130) ==917061== by 0x5B45011: g_slice_alloc (gslice.c:1074) ==917061== by 0x5B305BD: g_node_new (gnode.c:110) ==917061== by 0x50AAF0B: gtk_tree_store_insert_before (gtktreestore.c:1375) ==917061== by 0x491E725: tree_add_new_dir (sidebar.c:654) ==917061== by 0x491E89A: get_parent_for_file (sidebar.c:840) ==917061== by 0x491E995: sidebar_openfiles_add_iter (sidebar.c:869) ==917061== by 0x491F5C7: sidebar_openfiles_add (sidebar.c:901) ==917061== by 0x48D0CE4: document_create (document.c:662) ==917061== by 0x48D3840: document_open_file_full (document.c:1349) ==917061== by 0x48D3C81: document_open_file (document.c:914) Fix this by decoupling tree walking from closing documents. We now do two passes: first we collect documents to work on walking the tree as before, and only then we perform the action on each node of the list. Fixes #3527. src/sidebar.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) commit 8bf521cd5d99ebb1f1e6942ca5b35e42b4d11dfb Author: Colomban Wendling Date: Thu Jul 13 12:14:59 2023 +0200 Proper C prototype src/tagmanager/tm_ctags.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8ba3bce69e1b573d075fd42a705dbece6a200b11 Author: Colomban Wendling Date: Sun Jul 30 23:39:33 2023 +0200 sidebar_openfiles_remove_iter() should be static src/sidebar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 23367de0c5237558ea63cb8c711d46390d978267 Author: Thomas Martitz Date: Tue Jul 18 08:03:15 2023 +0200 Restore startup behavior to focus files from the command line after session files (#3267) commit 22aac44 ("Save & restore default session independently of projects", PR #3125) broke that accidentally by moving the "switch to last used tab" to an idle callback. This runs after opening files from the command line. Now, showing the "current" document is generally done via an idle callback. This is implemented in the new helper "document_show_tab_idle()" that should be used during batch-opening. document_show_tab_idle() is smart enough to only allow the last call to be effective in case it's called multiple times before the idle callback actually runs. Command line files, of course, call this after session files. Fixes #3210 src/document.c | 52 +++++++++++++++++++++++++++++++++------------------- src/document.h | 1 + src/editor.c | 8 ++++++-- src/keyfile.c | 25 ++----------------------- src/libmain.c | 2 +- src/notebook.c | 2 ++ 6 files changed, 45 insertions(+), 45 deletions(-) commit 2b069958686d169f6f1abd2b0b37c2edec64d235 Merge: 45e7455f6 9a69bb667 Author: Enrico Tröger Date: Sun Jul 16 19:08:32 2023 +0200 Merge pull request #3517 from peter-scholtens/patch-3 Create file.md commit 9739a89eadd25453209a05d485c1c9818aa07bfd Author: Lucas Vieites Date: Fri Jul 7 14:57:18 2023 +0200 Update Spanish translation Updated es.po with latest new strings po/es.po | 3265 +++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 1719 insertions(+), 1546 deletions(-) commit 45e7455f6f9e359a30fa1a9e874b52193359ee06 Merge: d6ce258ce 5d26b62bd Author: Frank Lanitz Date: Sun Jun 25 18:22:06 2023 +0200 Merge pull request #3503 from OlesyaGerasimenko/master Update Russian translation commit 9a69bb667395ca8416c713ad037e28a0b24e5f67 Author: Peter C. S. Scholtens Date: Thu Jun 15 11:30:43 2023 +0200 A template file for Markdown is added. data/Makefile.am | 1 + data/templates/files/main.md | 52 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) commit 49ce92541e12d0bf35435f52dc8f1eb07dfee35e Author: Enrico Tröger Date: Sun Jun 4 18:25:24 2023 +0200 Generate PHP global tags in ctags format data/tags/std.php.tags | 18624 ++++++++++++++++++++++--------------------- scripts/create_php_tags.py | 39 +- 2 files changed, 9332 insertions(+), 9331 deletions(-) commit a6c04edcd26f2d50b732989fca10e87e8567109e Author: Enrico Tröger Date: Sun Jun 4 18:24:27 2023 +0200 Add helper script for generating ctags files in Python scripts/create_py_tags.py | 31 ++++--------------- scripts/create_tags_helper.py | 70 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 26 deletions(-) commit d6ce258cec790da1e81db48476507bb114c7e482 Merge: 82502cfe9 706ee56f0 Author: Enrico Tröger Date: Sun May 21 19:21:36 2023 +0200 Merge pull request #3039 from eht16/py3_tags_v2 Rewrite Python standard library tags creation script for Python 3 commit 82502cfe987a9a5ef5da27d100e8d03b8352c14f Merge: 99b846166 721550ca7 Author: Enrico Tröger Date: Sun May 21 19:20:12 2023 +0200 Merge pull request #3488 from eht16/update_php_script_and_tags Port create_php_tags to Python3 and generate new PHP tags file commit 5d26b62bd7cab3966db1ce5387c0c3f4790a5007 Author: OlesyaGerasimenko <53296253+OlesyaGerasimenko@users.noreply.github.com> Date: Wed May 17 11:14:08 2023 +0300 Update Russian translation po/ru.po | 51 ++++++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 23 deletions(-) commit 2fd242b94c41f9254b2288fdb39a1c20d819b53d Author: Jiří Techet Date: Mon May 8 13:52:13 2023 +0200 For C/C++ only mark tag as local if it originates from a source file src/tagmanager/tm_ctags.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit db5d7e5cac00de7f9e2aee48b05bde5397370dd2 Author: Jiří Techet Date: Mon May 8 13:34:08 2023 +0200 Add a flag indicating whether to trust isFileScope from ctags ctags treats unknown C/C++ file extensions as if they were source files. Because of this, the isFileScope flag is incorrectly set to TRUE for such files even if they are headers and the defined tags don't have a file-only scope. To fix this, we intorduce a flag called trust_file_scope which we set to TRUE only when the source file name matches one of the known C/C++ extensions. For all other languages the flag is set to TRUE. src/tagmanager/tm_source_file.c | 19 +++++++++++++++++++ src/tagmanager/tm_source_file.h | 1 + 2 files changed, 20 insertions(+) commit 99b846166a53182493467feec789b7fd6ccb73f5 Merge: 546659983 3b98f68e0 Author: Enrico Tröger Date: Fri May 12 23:02:50 2023 +0200 Merge pull request #3485 from eht16/port_main_py_template_to_python3 Port "main.py" template to Python3 commit 706ee56f0f0b2c09744c380b033b2ff44682a95e Author: Enrico Tröger Date: Wed May 10 23:46:46 2023 +0200 Fix doc typos scripts/create_py_tags.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 721550ca76caa155dc3ea2c7e0edb4710ef6c7e9 Author: Enrico Tröger Date: Sun May 7 11:01:48 2023 +0200 Port create_php_tags to Python3 and generate new PHP tags file Related to #2615. data/tags/std.php.tags | 10332 +++++++++++++++++-------------------------- scripts/create_php_tags.py | 26 +- 2 files changed, 3983 insertions(+), 6375 deletions(-) commit 54665998383eb03c5565aa360ff56ed4f7792aa6 Author: Nick Treleaven Date: Mon May 8 12:44:00 2023 +0100 Make Go to Symbol commands show signature list (#3475) When there is more than one matching symbol. For variables, show type. For callables, show (at least) parameter list. Show non-first item using italic `file:line:`. src/symbols.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 7daf6eec76aa2e52afd4b208456a3692f6b6f0e4 Author: Enrico Tröger Date: Sun May 7 10:38:05 2023 +0200 Update NSIS filetype keywords Created by "scripts/update-nsis-functions.sh". data/filedefs/filetypes.nsis | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3b98f68e01488e79b5f041aa2102af9dafd6a077 Author: Enrico Tröger Date: Sun May 7 09:58:21 2023 +0200 Port "main.py" template to Python3 Related to #2615. data/templates/files/main.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit d350dad27a45656cd9c84a0ac9dfb3a0412d6604 Author: Enrico Tröger Date: Thu Dec 2 12:23:11 2021 +0100 Rewrite Python standard library tags creation script for Python 3 data/tags/std.py.tags | 21550 ++++++++++++++++++++++++++++++++------------ scripts/create_py_tags.py | 514 +- 2 files changed, 15872 insertions(+), 6192 deletions(-) commit 1d9681d78c0294c8c29925cdc89c2d8ae19b5abf Merge: d3de0fb1b e465a2b45 Author: Enrico Tröger Date: Sat May 6 16:19:37 2023 +0200 Merge pull request #3465 from eht16/issue3461_fix_mingw_ci_build Fix Mingw CI build commit d3de0fb1b9c07597d9e3e0159ce5aa537f80d69c Author: Peter C. S. Scholtens Date: Thu May 4 02:21:35 2023 +0200 Update of 2018 edition of Rust (#3484) Some keywords added, as also the 128-bit integers, see: https://doc.rust-lang.org/reference/keywords.html data/filedefs/filetypes.rust | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 18aa2dd1cd027c8a1b437a5483843737a5d9e459 Author: Nick Treleaven Date: Wed May 3 16:44:40 2023 +0100 [docs] Move CSS section to Configuration Files (#3472) * [docs] Move CSS section to Configuration Files * Mention Tools menu item doc/geany.txt | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) commit c62b87955c8ed52f0425f61b2b8e828dd5f273db Author: Jiří Techet Date: Fri Apr 28 16:46:02 2023 +0200 Autoit: drop $ from variable names This patch has been upstreamed in https://github.com/universal-ctags/ctags/pull/3697 ctags/parsers/autoit.c | 2 +- tests/ctags/simple.au3.tags | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) commit 0562f8edbcc2481b230e8f75c0df38db6d167238 Author: Jiří Techet Date: Sun Apr 16 20:33:37 2023 +0200 autoit: use local/global variable tags Note that "local" variables seem to be local for the given file and not local within a certain function so mapping them to tm_tag_local_var_t isn't appropriate. src/tagmanager/tm_parser.c | 5 +++-- tests/ctags/simple.au3.tags | 6 ++++++ 2 files changed, 9 insertions(+), 2 deletions(-) commit 5c98161a33055c7632e0937e5d830ebf47fdb8fd Author: Nick Treleaven Date: Thu Apr 27 16:39:36 2023 +0100 Refactor tm_parser_format_function: merge double `switch (lang)` (#3463) * [tm_parser_format_function] Merge double `switch (lang)` * Update src/tagmanager/tm_parser.c Co-authored-by: Colomban Wendling --------- Co-authored-by: Colomban Wendling src/tagmanager/tm_parser.c | 47 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 24 deletions(-) commit d3b363b91e83c78da59881a28ce7186926983979 Author: Nick Treleaven Date: Thu Apr 27 02:17:07 2023 +0100 [docs] Add/tweak links for workspace section (#3471) doc/geany.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit cec97d3d09aab59e65ced714abd56840afbeda70 Author: Nick Treleaven Date: Thu Apr 27 02:10:48 2023 +0100 Add docs for calltips (#3470) doc/geany.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 907d1db1c8b58964aed457961a238d36a36f5a3a Merge: 7af6eafc0 2a1784fc4 Author: Enrico Tröger Date: Sun Apr 23 13:32:38 2023 +0200 Merge pull request #3438 from AntumDeluge/workflow_manual_dispatch Allow Dispatching CI Build Workflow Manually commit e465a2b456e7c0aba6aefc1c4b406b8089386d1a Author: Enrico Tröger Date: Thu Apr 20 22:51:16 2023 +0200 Remove unnecessary compiler and linker flags for Mingw builds configure.ac | 1 - scripts/ci_mingw64_geany.sh | 8 -------- src/Makefile.am | 2 +- 3 files changed, 1 insertion(+), 10 deletions(-) commit 9a8dd9aea503735ea56040efd66fd5f80b608ff6 Author: Enrico Tröger Date: Thu Apr 20 22:45:30 2023 +0200 Define "lt_cv_deplibs_check_method" to fix Mingw linker errors scripts/ci_mingw64_geany.sh | 1 + 1 file changed, 1 insertion(+) commit 2a1784fc4a9aa176cb2c76836c07a98a4531025f Author: Jordan Irwin Date: Thu Mar 23 16:37:27 2023 -0700 Allow dispatching CI Build workflow manually .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) commit 7af6eafc0525bfafc8bdb2fbd29452b5f5409f56 Merge: 5b2c3523a 9c146b912 Author: Enrico Tröger Date: Sun Apr 16 23:24:35 2023 +0200 Merge pull request #3456 from ntrel/ft-kotlin [filetypes] Update Kotlin basic types commit 5b2c3523aff5b779a1b10e0b140a8f746f42cc2c Merge: 83b8f7be0 e14a07638 Author: Jiří Techet Date: Sun Apr 16 19:10:03 2023 +0200 Merge pull request #1752 from Skif-off/geany-autoit Add AutoIt syntax highlighting and Ctags parser for AutoIt commit 83b8f7be0567757e74bd33d479f80a31c18f8a78 Merge: 5298f51f4 1ac3580a8 Author: Enrico Tröger Date: Sun Apr 16 16:29:31 2023 +0200 Merge pull request #3432 from eht16/ci_enable_parallel_make_jobs CI: Define JOBS environment variable and use it for make commit e14a07638393019d38b36bdbf70fcd17fb54a867 Author: Skif-off Date: Sat Jan 27 06:54:02 2018 +0400 Add AutoIt syntax highlighting and Ctags parser for AutoIt ctags/Makefile.am | 1 + ctags/parsers/autoit.c | 319 +++++++++++++ data/Makefile.am | 1 + data/filedefs/filetypes.autoit | 69 +++ data/filetype_extensions.conf | 1 + meson.build | 2 + scintilla/Makefile.am | 1 + scintilla/lexilla/lexers/LexAU3.cxx | 911 ++++++++++++++++++++++++++++++++++++ scintilla/lexilla/src/Lexilla.cxx | 1 + scintilla/scintilla_changes.patch | 3 +- src/filetypes.c | 1 + src/filetypes.h | 1 + src/highlighting.c | 9 + src/highlightingmappings.h | 35 ++ src/tagmanager/tm_parser.c | 14 + src/tagmanager/tm_parser.h | 1 + src/tagmanager/tm_parsers.h | 3 +- tests/ctags/Makefile.am | 1 + tests/ctags/simple.au3 | 34 ++ tests/ctags/simple.au3.tags | 8 + tests/meson.build | 1 + 21 files changed, 1415 insertions(+), 2 deletions(-) commit 9c146b912b3b98d2123dd65c071d0aa54704cc5d Author: Nick Treleaven Date: Wed Apr 12 12:59:41 2023 +0100 Add Any, Nothing, Unit; Remove Void data/filedefs/filetypes.Kotlin.conf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 5298f51f41bb29e41970456652d2314ce609bcce Author: Nick Treleaven Date: Tue Apr 11 17:17:06 2023 +0100 [filetype config] Remove outdated comment (#3449) E.g. %e can be used twice in the same command. data/filedefs/filetypes.CUDA.conf | 1 - data/filedefs/filetypes.Clojure.conf | 1 - data/filedefs/filetypes.Scala.conf | 1 - data/filedefs/filetypes.TypeScript.conf | 1 - data/filedefs/filetypes.abaqus | 1 - data/filedefs/filetypes.actionscript | 1 - data/filedefs/filetypes.ada | 1 - data/filedefs/filetypes.asm | 1 - data/filedefs/filetypes.c | 1 - data/filedefs/filetypes.caml | 1 - data/filedefs/filetypes.cpp | 1 - data/filedefs/filetypes.cs | 1 - data/filedefs/filetypes.d | 1 - data/filedefs/filetypes.erlang | 1 - data/filedefs/filetypes.f77 | 1 - data/filedefs/filetypes.fortran | 1 - data/filedefs/filetypes.freebasic | 1 - data/filedefs/filetypes.gdscript | 1 - data/filedefs/filetypes.glsl | 1 - data/filedefs/filetypes.haskell | 1 - data/filedefs/filetypes.haxe | 1 - data/filedefs/filetypes.html | 1 - data/filedefs/filetypes.java | 1 - data/filedefs/filetypes.javascript | 1 - data/filedefs/filetypes.julia | 1 - data/filedefs/filetypes.latex | 1 - data/filedefs/filetypes.lisp | 1 - data/filedefs/filetypes.lua | 1 - data/filedefs/filetypes.matlab | 1 - data/filedefs/filetypes.nsis | 1 - data/filedefs/filetypes.objectivec | 1 - data/filedefs/filetypes.pascal | 1 - data/filedefs/filetypes.perl | 1 - data/filedefs/filetypes.php | 1 - data/filedefs/filetypes.po | 1 - data/filedefs/filetypes.powershell | 1 - data/filedefs/filetypes.python.in | 1 - data/filedefs/filetypes.ruby | 1 - data/filedefs/filetypes.sh | 1 - data/filedefs/filetypes.tcl | 1 - data/filedefs/filetypes.vala | 1 - data/filedefs/filetypes.xml | 1 - data/filedefs/filetypes.zephir | 1 - 43 files changed, 43 deletions(-) commit 92d8d22878aa25db956c3a578cfe82962a8bc518 Author: Nick Treleaven Date: Tue Apr 11 17:06:27 2023 +0100 [filetypes] Update Kotlin basic types data/filedefs/filetypes.Kotlin.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b143e481ef472da1d49c8aabb3842ff20ba7b32c Author: Nick Treleaven Date: Sun Apr 9 15:18:03 2023 +0100 docs: Document Open dialog options (#2355) * docs: Document Open dialog options * Add Startup links * Add *Opening files* heading * More options applies to multiple files doc/geany.txt | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) commit 2615967c672107eb6242086a94668078a4264eb6 Author: Nick Treleaven Date: Sun Apr 9 15:17:15 2023 +0100 Tweak templates/snippets docs (#3400) doc/geany.txt | 45 +++++++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 20 deletions(-) commit c092c1fb776d0811a3c0187df23e1440fad40836 Author: Nick Treleaven Date: Sun Apr 9 15:16:31 2023 +0100 Update CLI filenames docs (#3405) doc/geany.txt | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) commit 406c6cd910dc64d4d8278508bbfebc1295946635 Merge: e2ce7db70 8cfa9278e Author: Jiří Techet Date: Thu Apr 6 22:54:08 2023 +0200 Merge pull request #3443 from techee/tm_crash_fix Prevent possible crash when using tm_workspace API by plugins commit 8cfa9278e62863228731df00c270578bb47f5c05 Author: Jiří Techet Date: Mon Apr 3 00:32:21 2023 +0200 Prevent possible crash when using tm_workspace API by plugins The current code uses an unreffed TMSourceFile->short_name as the key into source_file_map. With Geany itself this is no problem as the TMSourceFiles are always destroyed after their removal from the hash table. However, if a plugin adds 2 different files to the TM using tm_workspace_add_source_file(file1); tm_workspace_add_source_file(file2); that have a different path but the same file name, such as /A/B/myfile.c /C/D/myfile.c and at a later point removes them using something like tm_workspace_remove_source_file(file1); tm_source_file_free(file1); tm_workspace_remove_source_file(file2); tm_source_file_free(file2); the tm_source_file_free(file1); call deallocates the key in the hash table which is now an invalid pointer and the subsequent tm_workspace_remove_source_file(file2); crashes the plugin. While it would be possible to solve this crash at the plugin level by reordering the operations such as tm_workspace_remove_source_file(file1); tm_workspace_remove_source_file(file2); tm_source_file_free(file1); tm_source_file_free(file2); this is not obvious from the plugin's perspective which doesn't know Geany's internals so better to solve it at Geany's level by using a g_strdupped value as the key. This problem currently happens with the ProjectOrganizer plugin. src/tagmanager/tm_workspace.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e2ce7db7063d6d854ba859dd975d4b0de6d0f384 Merge: f0e3ee273 dea43baf4 Author: Jiří Techet Date: Fri Mar 24 23:27:29 2023 +0100 Merge pull request #3433 from techee/kw_table ctags: Add quick path for looking up too long strings in the keyword table commit dea43baf477ab71650cdfc54fa976714def9c170 Author: Jiří Techet Date: Tue Mar 21 15:46:46 2023 +0100 ctags: Add quick path for looking up too long strings in the keyword table Parser code like vString *str = vStringNew(); while (someCondition) { int c = getcFromInputFile(); vStringPut(str, c); if (lookupCaseKeyword (vStringValue(str), some_lang)) { do_stuff(); vStringClear(str); } } is prone to quadratic complexity because when someCondition isn't satisfied in the parsed file, the string str grows by one in each iteration and in each iteration lookupCaseKeyword() has to go through strlen(str) characters to compute the hash. Since we know the maximum length of the strings inside the keyword hash table, we can store this value and if the queried string is longer than this value, we can be sure it isn't present in the hash table and return quickly without having to compute the full hash of the string. ctags/main/keyword.c | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) commit 1ac3580a8be5e6a05194a28ddb93209ec6e5d585 Author: Enrico Tröger Date: Sun Mar 19 15:15:26 2023 +0100 CI: Define JOBS environment variable and use it for make .github/workflows/build.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit f0e3ee273e67387f85506ea629b9dbe34d47b8ca Author: Enrico Tröger Date: Sun Mar 19 14:45:23 2023 +0100 CI: Fix copied Geany source file permissions This prevents mixed file permissions if an existing Geany source tree is copied into the build container which could break git in the CI script. scripts/ci_mingw64_geany.sh | 1 + 1 file changed, 1 insertion(+) commit 957da21ddfc6e9e00f1a7b208d55e7ed3f7ebe20 Author: Enrico Tröger Date: Sun Mar 19 14:43:47 2023 +0100 CI: Use "JOBS" environment variable for make if set scripts/ci_mingw64_geany.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5bf54df14ddd8807c7f690fe7ca132e59b430825 Author: Enrico Tröger Date: Sun Mar 19 14:41:44 2023 +0100 Windows: Update indirect dependencies for bundle creation scripts/gtk-bundle-from-msys2.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 40d1db873b5242156732ac9e18e665ea72e76fc3 Merge: e0221218e 04938a38a Author: Colomban Wendling Date: Mon Mar 13 14:43:58 2023 +0100 Merge pull request #3428 from techee/conf_comments Improve some comments in filetype conf files commit e0221218e3f768a6eebf895e3bb5b322a40f2a0a Merge: 39d1e7f53 6018c5239 Author: Colomban Wendling Date: Mon Mar 13 14:43:13 2023 +0100 Merge pull request #3413 from techee/config_comment Improve code commenting-out global config files commit 6018c523948e50f645af10f5338a56cda1eccf0b Author: Jiří Techet Date: Fri Feb 24 23:17:01 2023 +0100 Improve code commenting-out global config files Right now, when a config file from Tools->Configuration Files is edited for the first time, the global config file is taken and all lines in it are commented-out. When modified, such a file is copied into the user's config directory. The logic behind this is that the user typically wants to modify just one or few config options while leaving the rest in the default state. However, commenting-out all lines is problemmatic. Consider for instance the beginning of filetypes.common when all lines are commented-out by the current code: ``` #~ # For complete documentation of this file, please see Geany's main documentation #~ [styling] #~ # use foreground;background;bold;italic or named_style,bold,italic #~ #~ # used for filetype All/None #~ #default=default ``` 1. Already commented-out lines are commented out once more which is ugly 2. Sections are commented out. This is problematic because users don't have to just comment-out the variable they want to modify, they must also comment-out the section in which the variable is which is easy to forget. 3. Empty lines are commented out which is unnecessary This patch goes through the config file line by line and keeps sections, comments and empty lines unmodified so the result of the above example is this: ``` # For complete documentation of this file, please see Geany's main documentation [styling] # use foreground;background;bold;italic or named_style,bold,italic # used for filetype All/None #default=default ``` The patch does this only for .conf filetype and uses the original code for other file types. src/ui_utils.c | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) commit 04938a38ac5cab5963227132a75975dae192aafc Author: Jiří Techet Date: Sun Mar 12 23:31:54 2023 +0100 Reword "wordchars" description using the description from the manual data/filedefs/filetypes.CUDA.conf | 3 ++- data/filedefs/filetypes.Clojure.conf | 3 ++- data/filedefs/filetypes.Genie.conf | 3 ++- data/filedefs/filetypes.Graphviz.conf | 3 ++- data/filedefs/filetypes.Scala.conf | 3 ++- data/filedefs/filetypes.Swift.conf | 3 ++- data/filedefs/filetypes.TypeScript.conf | 3 ++- data/filedefs/filetypes.abaqus | 3 ++- data/filedefs/filetypes.actionscript | 3 ++- data/filedefs/filetypes.ada | 3 ++- data/filedefs/filetypes.asm | 3 ++- data/filedefs/filetypes.batch | 3 ++- data/filedefs/filetypes.c | 3 ++- data/filedefs/filetypes.caml | 3 ++- data/filedefs/filetypes.cmake | 3 ++- data/filedefs/filetypes.cobol | 3 ++- data/filedefs/filetypes.conf | 3 ++- data/filedefs/filetypes.cpp | 3 ++- data/filedefs/filetypes.cs | 3 ++- data/filedefs/filetypes.css | 3 ++- data/filedefs/filetypes.d | 3 ++- data/filedefs/filetypes.diff | 3 ++- data/filedefs/filetypes.docbook | 3 ++- data/filedefs/filetypes.erlang | 3 ++- data/filedefs/filetypes.f77 | 3 ++- data/filedefs/filetypes.forth | 3 ++- data/filedefs/filetypes.fortran | 3 ++- data/filedefs/filetypes.freebasic | 3 ++- data/filedefs/filetypes.glsl | 3 ++- data/filedefs/filetypes.go | 3 ++- data/filedefs/filetypes.haskell | 3 ++- data/filedefs/filetypes.haxe | 3 ++- data/filedefs/filetypes.html | 3 ++- data/filedefs/filetypes.java | 3 ++- data/filedefs/filetypes.javascript | 3 ++- data/filedefs/filetypes.latex | 3 ++- data/filedefs/filetypes.lisp | 3 ++- data/filedefs/filetypes.lua | 3 ++- data/filedefs/filetypes.makefile | 3 ++- data/filedefs/filetypes.matlab | 3 ++- data/filedefs/filetypes.nsis | 3 ++- data/filedefs/filetypes.objectivec | 3 ++- data/filedefs/filetypes.pascal | 3 ++- data/filedefs/filetypes.perl | 3 ++- data/filedefs/filetypes.php | 3 ++- data/filedefs/filetypes.po | 3 ++- data/filedefs/filetypes.powershell | 3 ++- data/filedefs/filetypes.python.in | 3 ++- data/filedefs/filetypes.r | 3 ++- data/filedefs/filetypes.restructuredtext | 3 ++- data/filedefs/filetypes.ruby | 3 ++- data/filedefs/filetypes.sh | 3 ++- data/filedefs/filetypes.smalltalk | 3 ++- data/filedefs/filetypes.sql | 3 ++- data/filedefs/filetypes.tcl | 3 ++- data/filedefs/filetypes.vala | 3 ++- data/filedefs/filetypes.verilog | 3 ++- data/filedefs/filetypes.vhdl | 3 ++- data/filedefs/filetypes.xml | 3 ++- data/filedefs/filetypes.yaml | 3 ++- 60 files changed, 120 insertions(+), 60 deletions(-) commit b51d35bbc6252aaab9da7ca0fb2dcf52931ec1df Author: Jiří Techet Date: Sun Mar 12 22:58:16 2023 +0100 Place # at the beginning of the line with the example in filetype conf files The previous syntax with indented # was an invalid conf file syntax and Scintilla didn't highlight these lines correctly. data/filedefs/filetypes.Arduino.conf | 4 ++-- data/filedefs/filetypes.CUDA.conf | 4 ++-- data/filedefs/filetypes.Clojure.conf | 4 ++-- data/filedefs/filetypes.Graphviz.conf | 4 ++-- data/filedefs/filetypes.TypeScript.conf | 4 ++-- data/filedefs/filetypes.abaqus | 4 ++-- data/filedefs/filetypes.actionscript | 4 ++-- data/filedefs/filetypes.ada | 4 ++-- data/filedefs/filetypes.asm | 4 ++-- data/filedefs/filetypes.batch | 4 ++-- data/filedefs/filetypes.c | 4 ++-- data/filedefs/filetypes.caml | 4 ++-- data/filedefs/filetypes.cmake | 4 ++-- data/filedefs/filetypes.cobol | 4 ++-- data/filedefs/filetypes.conf | 4 ++-- data/filedefs/filetypes.cpp | 4 ++-- data/filedefs/filetypes.cs | 4 ++-- data/filedefs/filetypes.css | 4 ++-- data/filedefs/filetypes.d | 4 ++-- data/filedefs/filetypes.docbook | 4 ++-- data/filedefs/filetypes.erlang | 4 ++-- data/filedefs/filetypes.f77 | 4 ++-- data/filedefs/filetypes.forth | 4 ++-- data/filedefs/filetypes.fortran | 4 ++-- data/filedefs/filetypes.freebasic | 4 ++-- data/filedefs/filetypes.gdscript | 4 ++-- data/filedefs/filetypes.glsl | 4 ++-- data/filedefs/filetypes.go | 4 ++-- data/filedefs/filetypes.haskell | 4 ++-- data/filedefs/filetypes.haxe | 4 ++-- data/filedefs/filetypes.html | 4 ++-- data/filedefs/filetypes.java | 4 ++-- data/filedefs/filetypes.javascript | 4 ++-- data/filedefs/filetypes.latex | 4 ++-- data/filedefs/filetypes.lisp | 4 ++-- data/filedefs/filetypes.lua | 4 ++-- data/filedefs/filetypes.makefile | 4 ++-- data/filedefs/filetypes.matlab | 4 ++-- data/filedefs/filetypes.nsis | 4 ++-- data/filedefs/filetypes.objectivec | 4 ++-- data/filedefs/filetypes.pascal | 4 ++-- data/filedefs/filetypes.perl | 4 ++-- data/filedefs/filetypes.php | 4 ++-- data/filedefs/filetypes.po | 4 ++-- data/filedefs/filetypes.powershell | 4 ++-- data/filedefs/filetypes.python.in | 4 ++-- data/filedefs/filetypes.r | 4 ++-- data/filedefs/filetypes.restructuredtext | 4 ++-- data/filedefs/filetypes.ruby | 4 ++-- data/filedefs/filetypes.rust | 4 ++-- data/filedefs/filetypes.sh | 6 +++--- data/filedefs/filetypes.smalltalk | 4 ++-- data/filedefs/filetypes.sql | 4 ++-- data/filedefs/filetypes.tcl | 4 ++-- data/filedefs/filetypes.vala | 4 ++-- data/filedefs/filetypes.verilog | 4 ++-- data/filedefs/filetypes.vhdl | 4 ++-- data/filedefs/filetypes.xml | 4 ++-- data/filedefs/filetypes.yaml | 4 ++-- 59 files changed, 119 insertions(+), 119 deletions(-) commit 39d1e7f53a2b77cb0527f8368a49164b7ae6372f Author: Colomban Wendling Date: Thu Mar 9 22:39:10 2023 +0100 Recognize .F77 extension (uppercase) as FORTRAN77 Fixes #3425. data/filetype_extensions.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8a9e9be88545f83c91d378d6662790efa38959d4 Author: Nick Treleaven Date: Thu Mar 9 16:24:37 2023 +0000 Add filetype submenus for new file with template menus (#3397) * Put items with submenus at the top of the menu * Add filetype submenus for new file template menus Add submenus when there's more than one template per filetype. * Remove redundant checks for null ft * Update docs doc/geany.txt | 3 ++- src/filetypes.c | 3 ++- src/templates.c | 37 ++++++++++++++++++++++++++++++++++++- src/ui_utils.c | 9 ++++----- src/ui_utils.h | 2 ++ 5 files changed, 46 insertions(+), 8 deletions(-) commit afec6557e0f453a38b2976069de3763b8e1d09d1 Merge: 2509e2152 9b3aa43f8 Author: Jiří Techet Date: Tue Mar 7 09:58:22 2023 +0100 Merge pull request #3412 from techee/asciidoc_lvl5 Map asciidoc level 5 section so it can be shown in the sidebar commit 2509e21526d36034f5251381a76555e7300fbfc0 Author: Nick Treleaven Date: Sat Feb 25 17:17:37 2023 +0000 Tweak Join Lines command (#3402) * Add Format->Join Lines menu item * Don't require reflow column width for Join Lines Fixes #1591. * Document Join Lines data/geany.glade | 9 +++++++++ doc/geany.txt | 4 ++++ src/callbacks.c | 6 ++++++ src/keybindings.c | 12 ++---------- 4 files changed, 21 insertions(+), 10 deletions(-) commit 9b3aa43f8c6d10ccc6f4f405bb7065da86f93daf Author: Jiří Techet Date: Fri Feb 24 13:49:15 2023 +0100 Map asciidoc level 5 section so it can be shown in the sidebar Fixes #3411. src/tagmanager/tm_parser.c | 3 ++- tests/ctags/simple.asciidoc.tags | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) commit ae1f499e3b2fa108d749942008431ec1aaf0294b Merge: 93202ab9a be8d1f147 Author: Colomban Wendling Date: Mon Feb 20 11:27:41 2023 +0100 Merge pull request #3408 from b4n/tm-i18n tagmanager: Use more idiomatic i18n macros commit be8d1f1476a41e4cab635b3e8192515aef8a1f54 Author: Colomban Wendling Date: Sat Feb 18 21:27:40 2023 +0100 tagmanager: Use more idiomatic i18n macros The common name for the macro to merely mark strings as translatable without actually making any call is N_(), not _(). Also, streamline the way i18n is conditionally enabled, similar to what is done in src/support.h. Follow-up to 3f8733f083e72be58e00ab2dde1e2584fe276cc5 and 201ac64545ea0d2857f55dcd7440b07a1672bbcb. src/tagmanager/tm_parser.c | 500 ++++++++++++++++++++++----------------------- 1 file changed, 250 insertions(+), 250 deletions(-) commit 93202ab9a7d0f4bf354a36938da67f2fccfd196c Merge: 00aaf374c 1a9db47b7 Author: Frank Lanitz Date: Sun Feb 19 17:28:11 2023 +0100 Merge pull request #3401 from b4n/po/fr French translation update commit 00aaf374cb706032293f2834566a8d6e99cbfca6 Author: Nick Treleaven Date: Fri Feb 17 20:46:49 2023 +0000 Only insert multi-line comment continuation if previous line has it (#3392) Don't insert * after new line in multi-line comment if previous line doesn't start with * Fixes #3386. doc/geany.txt | 3 ++- src/editor.c | 15 +++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) commit 597b101c88bd45dffbcb36831cf0279780d5cc9e Author: Jiří Techet Date: Sun Apr 17 19:27:50 2022 +0200 Add batch file ctags parser ctags/Makefile.am | 1 + ctags/parsers/dosbatch.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ meson.build | 1 + src/filetypes.c | 2 +- src/tagmanager/tm_parser.c | 10 ++++++++++ src/tagmanager/tm_parser.h | 1 + src/tagmanager/tm_parsers.h | 3 ++- tests/ctags/Makefile.am | 1 + tests/ctags/simple.bat | 30 ++++++++++++++++++++++++++++++ tests/ctags/simple.bat.tags | 8 ++++++++ tests/meson.build | 1 + 11 files changed, 100 insertions(+), 2 deletions(-) commit 54cc6add80c72739de299fd671e75d57b6b528eb Author: Nick Treleaven Date: Wed Feb 8 15:09:36 2023 +0000 Add recent filename on saving when real_path is not set real_path is set for any documents on disk. Don't add new document opened from CLI to recent files, because it doesn't exist yet. No need now to add recent file on Save As, because real_path is nulled before calling document_save_file. src/document.c | 4 +--- src/libmain.c | 2 -- 2 files changed, 1 insertion(+), 5 deletions(-) commit 1a9db47b71e8820a11f6b54fbc652ebfb5b5f917 Author: Colomban Wendling Date: Wed Feb 15 23:30:25 2023 +0100 French translation update Translate new strings and fix a few mnemonic clashes. po/fr.po | 4054 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 2074 insertions(+), 1980 deletions(-) commit 27ec0f9f2b5a2f6da0096999ddc2295706abe4b0 Merge: 518e157e4 02d43840c Author: Frank Lanitz Date: Sun Feb 12 22:55:40 2023 +0100 Merge pull request #3347 from melhiors/master Update of Latvian translation commit 518e157e4b7833b10f3cbcb3ea09fd4990d8d4e7 Merge: e8a55b8e7 5c4632fe4 Author: Enrico Tröger Date: Sun Feb 12 15:33:10 2023 +0100 Merge pull request #3390 from ntrel/mru-modified Show modified MRU docs in red commit e8a55b8e7f7ff36b0387a199f8b48e92466ed5d0 Author: Nick Treleaven Date: Mon Feb 6 18:19:42 2023 +0000 Fix #2599 - Save As dialog can save the wrong document src/dialogs.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 5c4632fe4b6272832f7614c218aaa571716a4c85 Author: Nick Treleaven Date: Wed Feb 8 16:01:55 2023 +0000 Show modified MRU docs in red (Shown when pressing Ctrl-Tab). Also use GString to build markup label text. src/notebook.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit 4508f77a1150b37d5e16c3e7fc9c7223bc591e88 Author: Abdul Rafey <96364226+00AR@users.noreply.github.com> Date: Sun Jan 29 21:14:17 2023 +0530 Make tab label length and window title length configurable (#3365) Closes #3344 and #2112. data/geany.glade | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ doc/geany.txt | 4 ++++ src/document.c | 2 +- src/keyfile.c | 1 + src/plugindata.h | 2 +- src/prefs.c | 5 +++++ src/ui_utils.c | 4 +++- src/ui_utils.h | 2 ++ 8 files changed, 67 insertions(+), 3 deletions(-) commit d54b2a899dca95639fa6f52d5e16034498c332d9 Author: Tim Coalson Date: Fri Jan 20 11:27:32 2023 -0600 Add preference for backspace unindenting (#3355) data/geany.glade | 16 ++++++++++++++++ doc/geany.txt | 5 +++++ src/editor.c | 2 +- src/editor.h | 1 + src/keyfile.c | 2 ++ 5 files changed, 25 insertions(+), 1 deletion(-) commit 469db1505508e1f4b9091e2ebe9be5d7434ac98a Merge: 4b6a4a1d3 641f3eae0 Author: Enrico Tröger Date: Sun Jan 15 18:41:56 2023 +0100 Merge pull request #3334 from eht16/show_d_python_global_class_calltips Use constructor method calltip only if available commit 641f3eae03571b803e84ae1bd1da02cdc72da45c Author: Enrico Tröger Date: Sun Nov 13 15:29:40 2022 +0100 Use constructor method calltip only if available For D and Python, we try to read the calltip from the constructor method (e.g. "__init__" for Python) instead of from the class tag itself. If we don't find a matching constructor method tag, now we continue looking at the class tag itself. This is useful for global tags where the constructor signature might be defined on the class tag itself. src/editor.c | 73 +++++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 58 insertions(+), 15 deletions(-) commit 4b6a4a1d342e2b9ac1ea9622d4a1b000238ed795 Merge: 607fcec1f e2066d4f5 Author: Enrico Tröger Date: Sun Jan 15 18:20:58 2023 +0100 Merge pull request #3315 from eht16/ci_add_windows_build CI: Use MSYS2 for Windows build commit e2066d4f5f9600b0d8acd0ebeaeddebc93d1f15a Author: Enrico Tröger Date: Sun Jan 15 18:10:32 2023 +0100 Use Ubuntu 20.04 for Linux CI builds .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f146c2eb70715e94d1e31931cdebb08c86f81799 Author: Enrico Tröger Date: Sun Oct 16 16:15:57 2022 +0200 CI: Use MSYS2 for Windows build .github/workflows/build.yml | 126 +++++++++------- scripts/ci_mingw64_geany.sh | 305 +++++++++++++++++++++++++++++++++++++++ scripts/gtk-bundle-from-msys2.sh | 1 - 3 files changed, 379 insertions(+), 53 deletions(-) commit 607fcec1fa5aff005090fbda17280976dcee68c8 Merge: bb45e3b74 770a0db55 Author: Jiří Techet Date: Sun Jan 1 23:20:46 2023 +0100 Merge pull request #3353 from techee/doc_tag_format Document generating ctags tests using the pretty-printing script commit 770a0db552663912a8887d7d5f392c89cefce66c Author: Jiří Techet Date: Tue Dec 20 21:20:52 2022 +0100 Document generating ctags tests using the pretty-printing script HACKING | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit bb45e3b7485e27f29bf652968b9094da322d0bc7 Author: FMuro Date: Tue Dec 13 21:52:26 2022 +0100 Better highlighting for YAML keys (#1838) * Better highlighting for YAML keys A more appropriate highlighting for keys in YAML files. The improvement can be noticed in any color scheme, particularly in the default one, where keys would have the same color and face than the ordinary text. data/filedefs/filetypes.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 02d43840ce399c9f1f55877d1f4a50f3ad44035d Author: Ingmārs Dīriņš Date: Sun Dec 4 12:51:55 2022 +0200 Update of Latvian translation po/lv.po | 974 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 493 insertions(+), 481 deletions(-) commit 8dd9200e5c382fb471da54bd0bcc67db170c582c Author: Nick Treleaven Date: Mon Nov 21 21:39:21 2022 +0000 Make New command focus editor src/callbacks.c | 2 +- src/keybindings.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit 96342f3eb94dc6d49a05a65c9d73becca9009aa0 Merge: b2f6e5be3 e90f5a180 Author: Jiří Techet Date: Tue Nov 15 09:58:17 2022 +0100 Merge pull request #3301 from techee/integration_fix2 Fix gtk-mac-integration not being used when using meson commit e90f5a1801f4ebccb3c5bfde6556f24249ceae2e Author: Jiří Techet Date: Mon Nov 14 22:46:51 2022 +0100 Rename mac_integration to dep_mac_integration to match other dependencies meson.build | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 4ed2f5c6076fb8fd4fde41ce66f4d824207714e4 Author: Jiří Techet Date: Fri Sep 23 18:31:22 2022 +0200 Fix gtk-mac-integration not being used when using meson meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b2f6e5be3f185ecb07386da76582ee974c03f3d6 Merge: 8f35d3342 f5f3b7a84 Author: Enrico Tröger Date: Sun Nov 13 13:40:29 2022 +0100 Merge pull request #3277 from eht16/issue3263_python_keywords_match_case Add soft keywords to Python keyword list commit 8f35d3342df724145ee9a6873e4ed3a18446211d Merge: f1c366556 b6de99ddb Author: Enrico Tröger Date: Sun Nov 13 13:39:37 2022 +0100 Merge pull request #3287 from eht16/feature/show_only_differing_eols Add option to only show line endings if they differ from file default commit f1c36655683ac727782e293054a4926d6040045c Merge: 967e00450 151bf6438 Author: Jiří Techet Date: Fri Nov 11 19:48:13 2022 +0100 Merge pull request #3269 from techee/autocomplete_header2 Sort autocompletion tags also based on their presence in included files commit 151bf64384799ed0f13b74ee7617460ac11dd430 Author: Jiří Techet Date: Mon Aug 29 23:52:33 2022 +0200 Sort autocompletion tags also based on their presence in included files This patch extends the current sorting of the tags which looks this way: - sort local vars first (with highest line number first), - followed by tags from current file, - followed by workspace tags, - followed by global tags by two new entries so it looks this way: - sort local vars first (with highest line number first), - followed by tags from current file, - NEW: followed by tags from header, - NEW: followed by tags from other included files, - followed by workspace tags, - followed by global tags Sorting tags from included files seems to be a natural heuristic as users explicitly included these and want their symbols to be present in the current file. As a special case, symbols from the header of the current source file (included file with the same base name as the current file) are listed in front of symbols from other included files as headers tend to be tightly coupled with corresponding source files in C/C++. src/tagmanager/tm_workspace.c | 146 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 142 insertions(+), 4 deletions(-) commit a24655d61d6bd4b7b7ebb0b1d3a8b3603f43975e Author: Jiří Techet Date: Thu May 5 00:07:34 2022 +0200 Process header tags Enable header tag generation in ctags, introduce new tm_tag_header_t TMTagType. Disable usage of this tag for normal Geany usage such as symbol tree, tag generation or autocompletion. We'll use this tag type only for sorting autocompletion symbols. src/symbols.c | 2 +- src/tagmanager/tm_parser.c | 4 ++-- src/tagmanager/tm_parser.h | 3 ++- src/tagmanager/tm_workspace.c | 7 ++++--- 4 files changed, 9 insertions(+), 7 deletions(-) commit 967e004504d58ef7afc5bc7503a77d2968d339ca Merge: e59a2412f ddc814398 Author: Frank Lanitz Date: Sat Oct 22 20:07:01 2022 +0200 Merge pull request #3309 from Aruna-Hewapathirane/master Update sinhala translation commit ddc814398de464161bff03320237038fff8baa5d Author: Aruna Hewapathirane Date: Thu Oct 6 20:29:47 2022 -0400 Update sinhala translation po/si.po | 5815 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 5815 insertions(+) commit e59a2412f9c4d316f6eab1a4ac5a77469a326d0a Merge: 263a9897e 35ac13cb2 Author: Frank Lanitz Date: Sun Oct 2 18:41:43 2022 +0200 Merge pull request #3094 from nomadbyte/po/uk PO:(uk) Update translation commit 263a9897eb3e84d089de1a30780811f2a59b0686 Merge: 3e72f637c b7ecec1f1 Author: Frank Lanitz Date: Sun Oct 2 18:26:09 2022 +0200 Merge pull request #3251 from hugok79/patch-1 Update Portuguese translation commit 3e72f637c832c1a815b3d9c2342af8f3b1f2642c Merge: b9891f291 b0e11d784 Author: Frank Lanitz Date: Sun Oct 2 18:25:41 2022 +0200 Merge pull request #3276 from melhiors/master Update of Latvian translation commit b9891f2912a7e7374e3121f74b587af1e7b3901d Author: Ben Young Date: Wed Sep 21 22:10:03 2022 -0500 Added error_regex to filetypes.rust (#3300) data/filedefs/filetypes.rust | 1 + 1 file changed, 1 insertion(+) commit 740377e6d05ceb27145f41b731e521621ff2917a Merge: 0bc92b0f5 fc852aa83 Author: Jiří Techet Date: Wed Sep 21 23:36:07 2022 +0200 Merge pull request #3203 from techee/cxx_mem_leak cxx: use a trashbox for deleteing tokens allocated for anonymous parameters commit 0bc92b0f54423f376f49fb5dcbd8dcfa5c30d618 Merge: 395218272 6809d3a8e Author: Jiří Techet Date: Wed Sep 21 23:32:58 2022 +0200 Merge pull request #3172 from techee/flat_tree Add option to show symbols in symbol tree without root groups commit 3952182724b84c465f680e0a82e1333fefc94f64 Merge: 3698462af 06e8bdc1b Author: Jiří Techet Date: Wed Sep 21 23:32:25 2022 +0200 Merge pull request #3275 from techee/local_python Enable local variable and parameter tag reporting for various languages commit 3698462af9480b0cf2ea54ade32f6f7712f50785 Merge: 465e60bef 3bffc4518 Author: Enrico Tröger Date: Sat Sep 17 10:04:02 2022 +0000 Merge pull request #3011 from dolik-rce/fix-context-menus-on-wayland Fix context menus on wayland (#3009) commit 465e60bef6018b99f5e9b3432134bf8dbaad9bb3 Author: Enrico Tröger Date: Sat Sep 17 09:57:33 2022 +0000 Remove native file and color dialogs on Windows (#3219) Their implementation was buggy, use very old Windows APIs and require double implementation and maintenance efforts for us The GTK dialogs work well for all other users already, so they probably will also for Windows users. Closes #3209. doc/geany.txt | 4 - src/dialogs.c | 46 ++---- src/keyfile.c | 2 - src/prefs.c | 8 -- src/project.c | 105 +++++--------- src/tools.c | 9 -- src/ui_utils.h | 2 +- src/win32.c | 443 +-------------------------------------------------------- src/win32.h | 14 -- 9 files changed, 52 insertions(+), 581 deletions(-) commit 6809d3a8eabbe6b3ffe362c80cbbf29280e02bf7 Author: Jiří Techet Date: Sun Apr 17 14:44:07 2022 +0200 Add option to show symbols in symbol tree without root groups While the current way of grouping symbols under various categories like "Functions", "Structures", "Macros" etc. may be useful in some situations, it doesn't allow true sorting by name or sorting by line number because this sorting is only valid within the group and not globally which makes it sometimes hard to find some symbol. This patch adds the option to switch between two views of the symbol tree by using a new checkbox called "Group by Type" to the context menu: - checked - the original view used by Geany - unchecked - view with a single root element "Symbols" in which all symbols are rooted and all of them either sorted by line number or alphabetically The core of the implementation is rather simple - there's always the "Symbols" root present at position 0 in tv_iters and when categorized view is selected, this root is used for all the tags. (We still need to keep the category roots in this situation to copy the icons for the tags from them but they are always empty and hidden). The rest is some UI stuff for creating entries in the context menu, I also added a config preference so this settings is remembered across Geany re-launches. I made this option global for all open files because I would find it annoying to apply this setting manually for every open file. So the code also checks whether the view type changed for the given file when switching tabs and re-creates the tree with the new setting. doc/geany.txt | 1 + src/document.c | 1 + src/documentprivate.h | 2 ++ src/keyfile.c | 2 ++ src/symbols.c | 40 ++++++++++++++++++++++++++++++++++++---- src/tagmanager/tm_parser.c | 26 ++++++++++++++++++-------- src/ui_utils.h | 1 + 7 files changed, 61 insertions(+), 12 deletions(-) commit 3bffc4518de6d514de1b419fed36399b013e0301 Author: Jan Dolinar Date: Fri Aug 19 12:25:09 2022 +0200 Refactor context menu code to ui_menu_popup src/callbacks.c | 6 +----- src/editor.c | 7 +------ src/msgwindow.c | 24 ++++++------------------ src/notebook.c | 6 +----- src/plugins.c | 8 ++------ src/prefs.c | 6 +----- src/sidebar.c | 23 +++++------------------ src/symbols.c | 8 ++------ src/ui_utils.c | 12 ++++++++++++ src/ui_utils.h | 2 ++ src/vte.c | 6 +----- 11 files changed, 34 insertions(+), 74 deletions(-) commit b6de99ddb652bd70c87facf9fa6029486450691c Author: Enrico Tröger Date: Sun Sep 11 17:35:41 2022 +0200 Change default label for end of line characters to "EOL" in statusbar doc/geany.txt | 2 +- src/ui_utils.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 39e129bf382324cf27caa8d07dea10071f13e4da Author: Enrico Tröger Date: Sun Sep 11 14:32:11 2022 +0200 Add option to only show line endings if they differ from file default data/geany.glade | 52 +++++++++++++++++++++++++++++++++++++++------------- doc/geany.txt | 4 ++++ src/editor.c | 1 + src/editor.h | 1 + src/keyfile.c | 2 ++ src/plugindata.h | 2 +- src/prefs.c | 19 +++++++++++++++++++ src/sciwrappers.c | 25 +++++++++++++++++++++++++ src/sciwrappers.h | 1 + 9 files changed, 93 insertions(+), 14 deletions(-) commit 563d94d856ff5ee799f8c8505681ba4544514c33 Merge: 6b5e711c7 6db1b3a7b Author: Enrico Tröger Date: Sun Sep 11 13:50:26 2022 +0000 Merge pull request #3265 from kugel-/fix-rightclick Fix intermittent, erratic right-click behavior on documents sidebar page commit f5f3b7a847e723e2826bf47f1f0290c9830e7e22 Author: Enrico Tröger Date: Sun Sep 4 16:59:18 2022 +0200 Add soft keywords to Python keyword list and update to Python 3.10 Closes #3263. data/filedefs/filetypes.python.in | 4 ++-- scripts/update-python-identifiers.sh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 6b5e711c76c083bc2a8e56fdfb57cafb6fa632f1 Author: Thomas Martitz Date: Thu Sep 8 23:23:51 2022 +0200 Properly fallback to geany.conf for session data (#3264) The fallback was not applied for loading the user session files (i.e. the opened files) but only for other session config. Fixes #3236 src/keyfile.c | 79 +++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 55 insertions(+), 24 deletions(-) commit e441e514d4810aa0d3bf70487c7b10f64745608f Author: Jiří Techet Date: Wed May 4 22:43:18 2022 +0200 Maintain a hash table of TMSourceFiles inside TMWorkspace This allows us to quickly access TMSourceFile based on the file name. src/tagmanager/tm_workspace.c | 46 +++++++++++++++++++++++++++++++++++-------- src/tagmanager/tm_workspace.h | 1 + 2 files changed, 39 insertions(+), 8 deletions(-) commit 2884b02fac8797fadd0a5154925aa7a9078f8be1 Merge: 5b12e286a 8c7081c65 Author: Jiří Techet Date: Sun Sep 4 22:33:43 2022 +0200 Merge pull request #3204 from techee/separate_parsing Don't use temporary file when creating tag files without running preprocessor commit 5b12e286ae8fea69933740d58224742e59bbeba5 Merge: 2b424581d 10fba80d8 Author: Jiří Techet Date: Sun Sep 4 22:28:41 2022 +0200 Merge pull request #3268 from techee/local_tags Ignore local tags for autocompletion in other files commit 2b424581dc45caafd72b1f06583eca9d3480398c Merge: 5cdfe35cf b8754a7a3 Author: Enrico Tröger Date: Sun Sep 4 13:20:08 2022 +0000 Merge pull request #3273 from techee/anon_rename_fix3 Fix renaming tag type containing anonymous type commit b0e11d7847feb806d2786e3b2f064653d1c2c29a Author: Ingmārs Dīriņš Date: Sat Sep 3 22:04:18 2022 +0300 Update of Latvian translation po/lv.po | 3165 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 1644 insertions(+), 1521 deletions(-) commit 06e8bdc1b3cd516a068c43bd68b76a498e1adeee Author: Jiří Techet Date: Fri Apr 29 01:15:11 2022 +0200 Enable local variable and parameter tag reporting for various languages This patch enables local variable and function parameter reporting for Python, GDScript, PHP, and Typescript. Because these are dynamic languages and Geany scope autocompletion relies on static type information, scope completion doesn't work for these languages. However, at least we get non-scope autocompletion for local variables and function parameters. Local variables in GDScript were previously mapped to tm_tag_other_t and were displayed in the sidebar. We don't display these tags for C/C++ in the sidebar and they should also be mapped to tm_tag_local_var_t which is why there is a diff in unit tests removing these variables from the output. The python parser generates a slightly different output when function parameter parsing is enabled (whitespace only change) which causes the change of the output of some python unit tests. src/tagmanager/tm_parser.c | 23 +++++++++++------------ tests/ctags/cython_sample.pyx.tags | 4 ++-- tests/ctags/gdscript-inner-class.gd.tags | 20 -------------------- tests/ctags/gdscript-modifiers.gd.tags | 16 ---------------- tests/ctags/gdscript-no-implicit-class.gd.tags | 14 -------------- tests/ctags/simple.py.tags | 4 ++-- 6 files changed, 15 insertions(+), 66 deletions(-) commit 41b40120eaf3c1fcb46f9156de3585d3eaf2ec87 Author: Jiří Techet Date: Sat Sep 3 00:04:47 2022 +0200 Update python parser to the latest version from uctags This version contains fixes related to parsing function parameters. ctags/parsers/python.c | 258 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 206 insertions(+), 52 deletions(-) commit b8754a7a32e2972761e07ebb191db44ab01ec6bb Author: Jiří Techet Date: Thu Sep 1 23:05:29 2022 +0200 Fix renaming tag type containing anonymous type The current code assumes that the whole var_type string consists of the anonymous type name. This works for simple cases like struct {} X; where X is of the type __anonXXXX but not for cases like struct {} X[2]; where X is of type __anonXXXX[]. For these cases checking for equality of var_tag->var_type, orig_name isn't sufficient and we have to check whether orig_name is a substring of var_tag->var_type and replace this substring with the new anon name. This problem can be seen for instance in the symbol tree tooltip of the symbols_icons variable inside symbols.c src/tagmanager/tm_ctags.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 10fba80d84fa940c10f193bc351f96e2cc32d92b Author: Jiří Techet Date: Mon Aug 29 19:35:46 2022 +0200 Ignore local tags for autocompletion in other files ctags sets the tag's "local" flag to true for tags whose visibility is limited to the current file only. These are for instance "static" functions in C. We can ignore these tags for autocompletion in other files than the tag's file which reduces the number of irrelevant tags in the autocompletion popup. src/tagmanager/tm_workspace.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 8c7081c652bd7a932138b749fd4da3731af01f4a Author: Jiří Techet Date: Fri Apr 15 18:44:18 2022 +0200 Don't use temporary file when creating tag files without running preprocessor The tm_workspace_create_global_tags() function generates tags for two cases: 1. Source files pre-processed by C pre-processor. It first generates a file combining the parsed header files by creating a temporary file in which all the header files are included and this file is passed to the pre-processor. The result of the pre-processed file is then parsed by the ctags parser. 2. Source files directly parsed by the ctags parser. In this case all the source files are concatenated to a single file which is then parsed by the ctags parser. This patch leaves (1) more or less unchanged; however, the creation of the temporary file in (2) is unnecessary - the individual files can be parsed directly, the tags from all the parses can be combined, sorted and pruned without creating the temporary file. The temporary file is a problem for unit tests where some languages use the file name as the name of module in which the tags are defined and by using a different name, the unit test generates a different tag file every time it's run. Note the changed output of the process_order unit test caused by this change. The test parses two files, one containing enum { I1_E1, I1_E2, }; the other contining enum { I2_E1, I2_E2, }; Previously, because the files were concatenated the enums were different tags and the anonnymous tag renaming function renamed them to anon_enum_1 and anon_enum_2. Because now the files are parsed separately, the enum from the first file gets renamed to anon_enum_1 and when parsing the second file, we get the name anon_enum_1 as well for the second enum. This however isn't a problem - we don't display global tags in the symbol tree, autocompletion, and they are also ignored in scope completion so this shouldn't matter much. src/tagmanager/tm_workspace.c | 148 ++++++++++++++++++++------------------- tests/ctags/process_order.c.tags | 10 ++- 2 files changed, 80 insertions(+), 78 deletions(-) commit 30f5514465e1e98383cff9dc7e88627f13aafd41 Author: Jiří Techet Date: Fri Apr 15 14:32:59 2022 +0200 Rename variables in tag file writing functions to make things clearer The code was probably originally written for c/c++ only and all the mentions of "include files" mean "source files" for other languages. src/tagmanager/tm_workspace.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) commit 5cdfe35cf26ca6935eddc652cceb799e0cbad142 Merge: 86cefe6a2 a91a9c6ca Author: Thomas Martitz Date: Sun Aug 28 13:38:27 2022 +0200 Merge PR #3185 Enable local variables for C/C++ and improve autocompletion commit a91a9c6ca17e5a7a163b095d5a9065afa7e8af77 Author: Jiří Techet Date: Sat Jun 11 19:55:22 2022 +0200 Update documentation related to scope autocompletion doc/geany.txt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit db1c862d5efc3a6a8aadf4232dda2d0093455f00 Author: Jiří Techet Date: Sat Aug 27 23:48:57 2022 +0200 Remove unnecessary "lang" parameter of various functions In functions where we pass the current file as an argument, we can get the used language from the file and this extra parameter is unnecessary. src/editor.c | 2 +- src/tagmanager/tm_workspace.c | 10 ++++------ src/tagmanager/tm_workspace.h | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) commit 4f45f7014b3e7aabf650a68153ea38db4ffc5fcb Author: Jiří Techet Date: Sun Apr 24 19:32:59 2022 +0200 Sort non-scope autocompletion results by locality To present more relevant results at the top of the list, sort them in the following order: local variables tags from current file workspace tags global tags and alphabetically within a single group. In addition, we need to remove duplicates from the list of displayed names. Finally, since the entries are not sorted alphabetically, we need to call SSM(sci, SCI_AUTOCSETORDER, SC_ORDER_CUSTOM, 0); so Scintilla knows it shouldn't sort the list alphabetically. src/editor.c | 1 + src/tagmanager/tm_workspace.c | 127 ++++++++++++++++++++++++++++++++---------- 2 files changed, 99 insertions(+), 29 deletions(-) commit 2a5da2225f7aa87bdc7f82c3966f6fb32754ae5c Author: Jiří Techet Date: Sat Apr 23 22:25:08 2022 +0200 Rewrite member_at_method_scope() to handle more situations When performing scope completion for void A::foo() { bar. // <-- } we need to determine what 'bar' is. It could be a global variable, in which case we should look for variable tags, it could however also be a member of A in which case we should look for member tags. To determine this, the previous code checked whether there's a tag named 'bar' with the same scope as the method tag. One drawback of this approach is that it doesn't take namespace manipulation functions like 'using namespace' into account so for header namespace X { class A { Baz bar; }; }; and source using namespace X; void A::foo() { bar. // <-- } it wouldn't find 'bar' because ctags reports foo() to have scope A and bar to have scope X::A. Another drawback of this approach is that it doesn't take inheritance into account so it wouldn't find 'bar' when defined in a super-class, such as class B { Baz bar; }; class A : B { void foo(); } To avoid these problems, this patch rewrites member_at_method_scope() (and renames it to member_accessible()) so it gets the class name from the scope of the method in which we are (A in the above example) and returns all members of A (including the super-classes members). Afterwards, it checks if one of the members is really the member tag we are interested in ('bar' in the above example). src/tagmanager/tm_workspace.c | 54 ++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 29 deletions(-) commit e4f2ed745238708673bef4c9a65e5e933f2215b2 Author: Jiří Techet Date: Wed Apr 20 21:27:55 2022 +0200 Support (multiple) inheritance by scope completion The code simply checks for inherited classes, strips unneeded stuff like templates, etc. from inherited classes, detects multiple inheritance by splitting the string using "," and calling tm_workspace_get_parents() recursively on every parent class and collecting the returned tags. The code limits the recursion depth to 10 to avoid possible inheritance cycles and infinite recursion. Also remove #if 0'd old code from TM implementing inheritance that we kept for reference as we now have a better implementation. src/tagmanager/tm_workspace.c | 126 ++++++++++++++++++++---------------------- 1 file changed, 61 insertions(+), 65 deletions(-) commit 2cf2e87bda17de13fea495b965816b9c19aec920 Author: Jiří Techet Date: Tue Apr 19 19:17:57 2022 +0200 Strip more things from variable type We are interested in pure type name and ctags returns types including pointers, references, arrays, template parameters and keywords such as "const" or "struct". Strip all those. Also move strip_type() above so it's usable by other functions. src/tagmanager/tm_workspace.c | 92 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 73 insertions(+), 19 deletions(-) commit 13bdb37cf7496a27b0b77c9893839c0fc3aba186 Author: Jiří Techet Date: Mon Apr 18 00:38:12 2022 +0200 Update goto symbol definitions to take into account local variables We only want to use local variables within the current function for the goto. This means we want to filter out local variable tags that: 1. Are from a different file 2. Are declared later in the file than where the current cursor is 3. Have different scope than the current function scope Fundamentally the same requirements as for (non-scope) autocompletion. src/symbols.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 25f150931e376d57654fb1df59b892c48af80e5a Author: Jiří Techet Date: Tue Apr 19 19:14:01 2022 +0200 Update scope completion to take into account local variables The code removes invalid local variables from other functions and behind current position. In addition, it sorts the found tags corresponding to the name in the editor for which we perform scope completion so local variables are searched first for their members, followed by tags from the current file, followed by workspace tags and finally using global tags. src/editor.c | 3 +- src/tagmanager/tm_workspace.c | 65 ++++++++++++++++++++++++++++++++++++++----- src/tagmanager/tm_workspace.h | 4 ++- 3 files changed, 63 insertions(+), 9 deletions(-) commit 9e4ef229a666b0aae746b964514d8ecdb12c9d37 Author: Jiří Techet Date: Mon Apr 18 22:49:33 2022 +0200 Update (non-scope) autocompletion to take into account local variables We have to ignore local variables that: 1. Are from a different file 2. Are declared later in the file than where the current cursor is 3. Have different scope than the current function scope src/editor.c | 11 ++++++++-- src/tagmanager/tm_workspace.c | 49 +++++++++++++++++++++++++++++++++---------- src/tagmanager/tm_workspace.h | 4 +++- 3 files changed, 50 insertions(+), 14 deletions(-) commit 86cefe6a26d6e1c28f777d955c29081dcf647d79 Merge: 34ce1724a fe4c0738e Author: Jiří Techet Date: Sun Aug 28 00:33:56 2022 +0200 Merge pull request #3195 from techee/anon_rename_fix Fix anonymous tag renaming when interleaved by scopeless macros commit fe4c0738ebbed148117fed85ad44528dec089e90 Author: Jiří Techet Date: Fri May 6 23:05:33 2022 +0200 Fix anonymous tag renaming when interleaved by scopeless macros This problem can be seen on scintilla/src/Document.cxx where not all anonymous tags are renamed because of macros. Fix that by not breaking the rename loop for macros for C-like languages. src/tagmanager/tm_ctags.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit d5cc1d05fb82218d01f1d61a9329c09a43cf0d77 Author: Jiří Techet Date: Sun Apr 17 22:46:15 2022 +0200 Enable local tag generation for C/C++ Enable generating these tags both for local variables and function parameters - those are more or less identical for what we will be using local tags for so they can be mapped to the same type. Local tags aren't interesting for tag files so filter them out when generating these (but this also means that we cannot create unit tests for them). src/symbols.c | 2 +- src/tagmanager/tm_parser.c | 6 +++--- src/tagmanager/tm_workspace.c | 5 ++++- 3 files changed, 8 insertions(+), 5 deletions(-) commit 8ff56a5c779ffcccef0ceb0b412be62f606c76e1 Author: Jiří Techet Date: Sun Apr 17 21:13:16 2022 +0200 Rename tm_tag_file_t to tm_tag_local_var_t tm_tag_file_t is unused in Geany (and we'll probably never need tags for files) so let's use it for local variable tags. src/tagmanager/tm_parser.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6db1b3a7bdb6680da0f28cfaab8257403ba2b293 Author: Thomas Martitz Date: Sat Aug 27 22:20:11 2022 +0200 Fix intermittent, erratic right-click behavior documents sidebar page Sometimes right-click to open a the popup menu in the document sidebar wouldn't change the selection before showing the popup. Then the popup wasn't related to the document that was clicked. This was especially bad with middle-click to close. It closed anything but the clicked document (or folder in case of tree view). This was caused by some unexpected calls to the "activate" signal handler for the "openfiles_path_mode" menu items. The handler might re-create the document list which in turn invalidates the current selection. Now the signal handler has some protection against unexpected calls and the selection properly updates upon right-click before spawing the popup. src/sidebar.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) commit 85de03686c39993d11adab0ef87aaed2dd97b186 Author: Jan Dolinar Date: Thu Nov 18 16:18:00 2021 +0100 fix context menus on wayland (#3009) src/callbacks.c | 4 ++++ src/editor.c | 5 ++++- src/msgwindow.c | 12 ++++++++++++ src/notebook.c | 4 ++++ src/plugins.c | 4 ++++ src/prefs.c | 4 ++++ src/sidebar.c | 12 ++++++++++++ src/symbols.c | 4 ++++ src/vte.c | 4 ++++ 9 files changed, 52 insertions(+), 1 deletion(-) commit b7ecec1f11a7a39b62edaa8663511e2172b54700 Author: Hugo Carvalho Date: Fri Aug 12 12:07:54 2022 +0100 Update portuguese translators credits THANKS | 3 +++ 1 file changed, 3 insertions(+) commit 69e6328b1e53597616d38ca45b7f33b598984356 Author: Hugo Carvalho Date: Fri Aug 12 12:06:07 2022 +0100 Update/improve Portuguese translation Minor corrections po/pt.po | 91 +++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 47 insertions(+), 44 deletions(-) commit 34ce1724a510e86f197ec14d60e89f6bc10eb440 Author: Nilankan Betal <92252352+NilankanBetal@users.noreply.github.com> Date: Tue Aug 9 13:16:05 2022 +0530 Remove extra parentheses Fixes #3238 src/tagmanager/tm_parser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fef873d485040bd3a679439802e5067ad9447d87 Merge: def1600a5 aba66f07c Author: Enrico Tröger Date: Wed Jun 15 19:33:59 2022 +0200 Merge pull request #3051 from techee/display_tags Add human-readable representation of tags to unit test results commit aba66f07cca62b28d33534ec88c686b600fe2533 Author: Jiří Techet Date: Fri Dec 10 18:09:56 2021 +0100 Update unit tests to use the pretty-printed format tests/ctags/1795612.js.tags | 5 +- tests/ctags/1850914.js.tags | 4 +- tests/ctags/1878155.js.tags | 5 +- tests/ctags/1880687.js.tags | 42 +++++- tests/ctags/2023624.js.tags | 3 +- tests/ctags/3184782.sql.tags | 6 +- tests/ctags/3470609.js.tags | 13 +- tests/ctags/3526726.tex.tags | 149 ++++++++++++++++++++- tests/ctags/68hc11.asm.tags | 11 +- tests/ctags/Package.pm.tags | 13 +- tests/ctags/actionscript/as-first-token.as.tags | 2 +- tests/ctags/actionscript/classes.as.tags | 13 +- tests/ctags/actionscript/const.as.tags | 6 +- tests/ctags/actionscript/const2.as.tags | 3 +- tests/ctags/actionscript/method-attributes.as.tags | 10 +- tests/ctags/actionscript/packages.as.tags | 7 +- tests/ctags/actionscript/sampler.as.tags | 16 ++- tests/ctags/ada-adb.adb.tags | 20 ++- tests/ctags/ada-ads.ads.tags | 17 ++- .../ctags/ada-expression-function-generic.adb.tags | 6 +- tests/ctags/ada-expression-function.adb.tags | 10 +- tests/ctags/ada-overriding.ads.tags | 4 +- tests/ctags/ada-package-generic.ads.tags | 10 +- tests/ctags/ada-task.adb.tags | 6 +- tests/ctags/angle_bracket.cpp.tags | 4 +- tests/ctags/anonymous_functions.php.tags | 9 +- tests/ctags/array-spec.f90.tags | 7 +- tests/ctags/array_ref_and_out.cs.tags | 6 +- tests/ctags/array_spec.f90.tags | 9 +- tests/ctags/arraylist.js.tags | 9 +- tests/ctags/attributes.cs.tags | 7 +- tests/ctags/auto.f.tags | 5 +- tests/ctags/backslashes.c.tags | 12 +- tests/ctags/bit_field.c.tags | 24 +++- tests/ctags/block.f90.tags | 7 +- tests/ctags/bracematch.js.tags | 7 +- tests/ctags/bug1020715.c.tags | 2 +- tests/ctags/bug1020715.cpp.tags | 2 +- tests/ctags/bug1086609.c.tags | 2 +- tests/ctags/bug1093123.cpp.tags | 2 +- tests/ctags/bug1111214-j-chan.v.tags | 4 +- tests/ctags/bug1111214.v.tags | 2 +- tests/ctags/bug1201689.c.tags | 2 +- tests/ctags/bug1447756.java.tags | 3 +- tests/ctags/bug1458930.c.tags | 3 +- tests/ctags/bug1466117.c.tags | 4 +- tests/ctags/bug1491666.c.tags | 5 +- tests/ctags/bug1515910.cs.tags | 10 +- tests/ctags/bug1548443.cpp.tags | 5 +- tests/ctags/bug1563476.cpp.tags | 4 +- tests/ctags/bug1570779.sql.tags | 5 +- tests/ctags/bug1575055.cpp.tags | 4 +- tests/ctags/bug1585745.cpp.tags | 7 +- tests/ctags/bug1611054.cs.tags | 4 +- tests/ctags/bug1691412.java.tags | 4 +- tests/ctags/bug1742588.rb.tags | 4 +- tests/ctags/bug1743330.v.tags | 2 +- tests/ctags/bug1764143.h.tags | 3 +- tests/ctags/bug1764148.py.tags | 2 +- tests/ctags/bug1770479.cpp.tags | 3 +- tests/ctags/bug1773926.cpp.tags | 5 +- tests/ctags/bug1777344.java.tags | 10 +- tests/ctags/bug1799340.cpp.tags | 4 +- tests/ctags/bug1799343-1.cpp.tags | 7 +- tests/ctags/bug1799343-2.cpp.tags | 15 ++- tests/ctags/bug1800065.cs.tags | 4 +- tests/ctags/bug1809024.py.tags | 2 +- tests/ctags/bug1830343.cs.tags | 3 +- tests/ctags/bug1830344.cs.tags | 3 +- tests/ctags/bug1856363.py.tags | 2 +- tests/ctags/bug1906062.py.tags | 3 +- tests/ctags/bug1907083.cpp.tags | 5 +- tests/ctags/bug1924919.cpp.tags | 4 +- tests/ctags/bug1938565.sql.tags | 6 +- tests/ctags/bug1944150.sql.tags | 2 +- tests/ctags/bug1950327.js.tags | 14 +- tests/ctags/bug1988026.py.tags | 5 +- tests/ctags/bug1988027.py.tags | 2 +- tests/ctags/bug1988130.py.tags | 3 +- tests/ctags/bug2049723.java.tags | 4 +- tests/ctags/bug2075402.py.tags | 3 +- tests/ctags/bug2117073.java.tags | 4 +- tests/ctags/bug2374109.vhd.tags | 3 +- tests/ctags/bug2411878.cs.tags | 3 +- tests/ctags/bug2747828.v.tags | 2 +- tests/ctags/bug2777310.js.tags | 6 +- tests/ctags/bug2781264.rb.tags | 4 +- tests/ctags/bug2886870.tex.tags | 40 +++++- tests/ctags/bug2888482.js.tags | 3 +- tests/ctags/bug3036476.js.tags | 5 +- tests/ctags/bug3168705.py.tags | 4 +- tests/ctags/bug3571233.js.tags | 11 +- tests/ctags/bug507864.c.tags | 3 +- tests/ctags/bug538629.asm.tags | 2 +- tests/ctags/bug556645.c.tags | 3 +- tests/ctags/bug556646.c.tags | 21 ++- tests/ctags/bug565813.f90.tags | 8 +- tests/ctags/bug612019.pas.tags | 4 +- tests/ctags/bug612621.pl.tags | 3 +- tests/ctags/bug620288.f.tags | 3 +- tests/ctags/bug639639.h.tags | 5 +- tests/ctags/bug639644.hpp.tags | 3 +- tests/ctags/bug665086.cpp.tags | 4 +- tests/ctags/bug670433.f90.tags | 5 +- tests/ctags/bug699171.py.tags | 3 +- tests/ctags/bug722501.sql.tags | 2 +- tests/ctags/bug726712.f90.tags | 4 +- tests/ctags/bug726875.f90.tags | 4 +- tests/ctags/bug734933.f90.tags | 17 ++- tests/ctags/bug762027.v.tags | 3 +- tests/ctags/bug814263.java.tags | 4 +- tests/ctags/bug823000.sql.tags | 4 +- tests/ctags/bug842077.pl.tags | 2 +- tests/ctags/bug849591.cpp.tags | 2 +- tests/ctags/bug852368.cpp.tags | 2 +- tests/ctags/bug858165.f90.tags | 6 +- tests/ctags/bug872494.cpp.tags | 4 +- tests/ctags/bug877956.f90.tags | 4 +- tests/ctags/bug960316.v.tags | 7 +- tests/ctags/bug961001.v.tags | 9 +- tests/ctags/byte.f.tags | 11 +- tests/ctags/c-digraphs.c.tags | 12 +- tests/ctags/c-trigraphs.c.tags | 15 ++- tests/ctags/case_sensitivity.php.tags | 17 ++- tests/ctags/char-selector.f90.tags | 11 +- tests/ctags/classes.php.tags | 8 +- tests/ctags/cobol/helloworld.cbl.tags | 11 +- tests/ctags/cobol/helloworld2.cbl.tags | 11 +- tests/ctags/cobol/levels.cbl.tags | 22 ++- tests/ctags/cobol/quoted-program-id.cbl.tags | 5 +- tests/ctags/cobol/simple.cbl.tags | 22 ++- tests/ctags/common.f.tags | 5 +- tests/ctags/complex-return.js.tags | 20 ++- tests/ctags/continuation.f90.tags | 5 +- tests/ctags/continuation.mak.tags | 3 +- tests/ctags/countall.sql.tags | 8 +- tests/ctags/cpp_destructor.cpp.tags | 4 +- tests/ctags/css-at-rules.css.tags | 3 +- tests/ctags/css-at-supports.css.tags | 2 +- tests/ctags/css-attribute-selectors.css.tags | 6 +- tests/ctags/css-comma-no-space.css.tags | 3 +- tests/ctags/css-namespace-selectors.css.tags | 4 +- tests/ctags/css-pseudo-classes.css.tags | 12 +- tests/ctags/css-simple.css.tags | 11 +- .../css-singlequote-in-comment-issue2.css.tags | 3 +- tests/ctags/css-tag-types.css.tags | 37 ++++- tests/ctags/css-trivial.css.tags | 6 +- tests/ctags/cxx11-final.cpp.tags | 9 +- tests/ctags/cxx11-noexcept.cpp.tags | 5 +- tests/ctags/cxx11-override.cpp.tags | 9 +- tests/ctags/cxx11-raw-strings.cpp.tags | 23 +++- tests/ctags/cxx11enum.cpp.tags | 19 ++- tests/ctags/cxx14-combined.cpp.tags | 6 +- tests/ctags/cython_sample.pyx.tags | 12 +- tests/ctags/cython_sample2.pyx.tags | 4 +- tests/ctags/db-trig.sql.tags | 3 +- tests/ctags/debian_432872.f90.tags | 3 +- tests/ctags/directives.c.tags | 20 ++- tests/ctags/dopbl2.f.tags | 2 +- tests/ctags/dotted-names.json.tags | 20 ++- tests/ctags/enum.c.tags | 5 +- tests/ctags/enum.f90.tags | 48 ++++++- tests/ctags/enum.java.tags | 13 +- tests/ctags/enumerators.f90.tags | 29 +++- tests/ctags/events.cs.tags | 15 ++- tests/ctags/extern_variable.h.tags | 3 +- tests/ctags/forall_module.f90.tags | 5 +- tests/ctags/format.pl.tags | 3 +- tests/ctags/fortran_associate.f90.tags | 5 +- tests/ctags/fortran_line_continuation.f90.tags | 3 +- tests/ctags/func_typedef.h.tags | 2 +- tests/ctags/gdscript-inner-class.gd.tags | 39 +++++- tests/ctags/gdscript-modifiers.gd.tags | 14 +- tests/ctags/gdscript-no-implicit-class.gd.tags | 35 ++++- tests/ctags/geany.nsi.tags | 21 ++- tests/ctags/general.cs.tags | 15 ++- tests/ctags/hex2dec.sql.tags | 3 +- tests/ctags/implied_program.f.tags | 2 +- tests/ctags/indexer.cs.tags | 5 +- tests/ctags/infinite_loop.java.tags | 2 +- tests/ctags/ingres_procedures.sql.tags | 7 +- tests/ctags/initialization.f90.tags | 4 +- tests/ctags/interface_indexers.cs.tags | 6 +- tests/ctags/interface_properties.cs.tags | 9 +- tests/ctags/interfaces.f90.tags | 8 +- tests/ctags/internal.cs.tags | 3 +- tests/ctags/intro.tex.tags | 14 +- tests/ctags/intro_orig.tex.tags | 42 +++++- tests/ctags/invalid_name.f90.tags | 8 +- tests/ctags/java_enum.java.tags | 15 ++- tests/ctags/js-broken-strings.js.tags | 5 +- tests/ctags/js-class-related-unterminated.js.tags | 17 ++- tests/ctags/js-const.js.tags | 8 +- tests/ctags/js-implicit-semicolons.js.tags | 15 ++- tests/ctags/js-let.js.tags | 8 +- tests/ctags/js-scope.js.tags | 4 +- tests/ctags/js-signature.js.tags | 10 +- tests/ctags/js-string-continuation.js.tags | 6 +- tests/ctags/js-sub-block-scope.js.tags | 8 +- tests/ctags/js-unknown-construct-nesting.js.tags | 5 +- tests/ctags/jsFunc_tutorial.js.tags | 71 +++++++++- tests/ctags/julia-corner_cases.jl.tags | 66 ++++++++- tests/ctags/keyword_abstract.cs.tags | 8 +- tests/ctags/keyword_catch_try.cs.tags | 4 +- tests/ctags/keyword_class.cs.tags | 9 +- tests/ctags/keyword_const.cs.tags | 9 +- tests/ctags/keyword_delegate.cs.tags | 12 +- tests/ctags/keyword_enum.cs.tags | 14 +- tests/ctags/keyword_event.cs.tags | 22 ++- tests/ctags/keyword_explicit.cs.tags | 7 +- tests/ctags/keyword_extern.cs.tags | 4 +- tests/ctags/keyword_implicit.cs.tags | 7 +- tests/ctags/keyword_interface.cs.tags | 9 +- tests/ctags/keyword_names.f90.tags | 8 +- tests/ctags/keyword_namespace.cs.tags | 9 +- tests/ctags/keyword_out.cs.tags | 4 +- tests/ctags/keyword_override.cs.tags | 10 +- tests/ctags/keyword_params.cs.tags | 5 +- tests/ctags/keyword_private.cs.tags | 8 +- tests/ctags/keyword_protected.cs.tags | 6 +- tests/ctags/keyword_public.cs.tags | 6 +- tests/ctags/keyword_sealed.cs.tags | 6 +- tests/ctags/keyword_static.cs.tags | 10 +- tests/ctags/keyword_struct.cs.tags | 7 +- tests/ctags/keyword_virtual.cs.tags | 19 ++- tests/ctags/keyword_volatile.cs.tags | 5 +- tests/ctags/labels.sql.tags | 2 +- tests/ctags/lanus.for.tags | 6 +- tests/ctags/line_directives.c.tags | 4 +- tests/ctags/local.c.tags | 3 +- tests/ctags/macros.c.tags | 6 +- tests/ctags/make-comment-in-rule.mak.tags | 2 +- tests/ctags/make-gnumake-pattern-rules.mak.tags | 6 +- tests/ctags/make-multi-target.mak.tags | 5 +- tests/ctags/make-parentheses.mak.tags | 5 +- tests/ctags/make-target-with-parentheses.mak.tags | 3 +- tests/ctags/make-variable-on-cmdline.mak.tags | 2 +- tests/ctags/masm.asm.tags | 12 +- tests/ctags/matlab_backtracking.m.tags | 2 +- tests/ctags/matlab_test.m.tags | 4 +- tests/ctags/maze.erl.tags | 11 +- tests/ctags/members.f90.tags | 8 +- tests/ctags/misc_types.f.tags | 4 +- tests/ctags/misc_types.f90.tags | 17 ++- tests/ctags/mode.php.tags | 11 +- tests/ctags/moniker.x68.asm.tags | 16 ++- tests/ctags/namelist.f.tags | 2 +- tests/ctags/namespace.cpp.tags | 7 +- tests/ctags/namespaces.php.tags | 14 +- tests/ctags/namespaces2.php.tags | 12 +- tests/ctags/no_terminator.js.tags | 6 +- tests/ctags/non-ascii-ident1.php.tags | 5 +- tests/ctags/numlib.f90.tags | 4 +- tests/ctags/objectivec_implementation.mm.tags | 12 +- tests/ctags/objectivec_interface.mm.tags | 24 +++- tests/ctags/objectivec_property.mm.tags | 5 +- tests/ctags/objectivec_protocol.mm.tags | 3 +- tests/ctags/parenthesis-rvalue.js.tags | 23 +++- tests/ctags/php5_5_class_kw.php.tags | 5 +- tests/ctags/preprocessor.f90.tags | 5 +- tests/ctags/procedure_pointer_module.f90.tags | 5 +- tests/ctags/process_order.c.tags | 7 +- tests/ctags/procpoint.f90.tags | 13 +- tests/ctags/property.cs.tags | 8 +- tests/ctags/prototype.h.tags | 3 +- tests/ctags/pure_elem.f95.tags | 5 +- tests/ctags/py-skipped-string.py.tags | 4 +- tests/ctags/py_constructor_arglist.py.tags | 25 +++- ...ython-anonymous-nestlevel_ctags-bug-356.py.tags | 4 +- tests/ctags/python-comments.py.tags | 2 +- tests/ctags/qualified_types.f90.tags | 11 +- tests/ctags/random.sql.tags | 19 ++- tests/ctags/readlob.sql.tags | 10 +- tests/ctags/readlong.sql.tags | 9 +- tests/ctags/recursive.f95.tags | 9 +- tests/ctags/refcurs.sql.tags | 8 +- tests/ctags/regexp.js.tags | 17 ++- tests/ctags/return-hint.zep.tags | 5 +- tests/ctags/return-types.go.tags | 6 +- tests/ctags/ruby-block-call.rb.tags | 3 +- .../ctags/ruby-class-method-in-lt-lt-self.rb.tags | 2 - tests/ctags/ruby-doc.rb.tags | 5 +- tests/ctags/ruby-namespaced-class.rb.tags | 4 +- .../ctags/ruby-scope-after-anonymous-class.rb.tags | 4 +- tests/ctags/ruby-sf-bug-364.rb.tags | 8 +- tests/ctags/rules.t2t.tags | 22 ++- tests/ctags/sample.t2t.tags | 14 +- tests/ctags/secondary_fcn_name.js.tags | 6 +- tests/ctags/semicolon.f90.tags | 4 +- tests/ctags/shebang.js.tags | 2 +- tests/ctags/signature.cpp.tags | 6 +- tests/ctags/simple.abc.tags | 7 +- tests/ctags/simple.asciidoc.tags | 13 +- tests/ctags/simple.bas.tags | 8 +- tests/ctags/simple.clj.tags | 7 +- tests/ctags/simple.conf.tags | 24 +++- tests/ctags/simple.d.tags | 24 +++- tests/ctags/simple.diff.tags | 5 +- tests/ctags/simple.docbook.tags | 7 +- tests/ctags/simple.hs.tags | 9 +- tests/ctags/simple.html.tags | 6 +- tests/ctags/simple.hx.tags | 10 +- tests/ctags/simple.inp.tags | 4 +- tests/ctags/simple.js.tags | 26 +++- tests/ctags/simple.json.tags | 20 ++- tests/ctags/simple.ksh.tags | 3 +- tests/ctags/simple.lisp.tags | 9 +- tests/ctags/simple.lua.tags | 3 +- tests/ctags/simple.mak.tags | 14 +- tests/ctags/simple.md.tags | 28 +++- tests/ctags/simple.php.tags | 12 +- tests/ctags/simple.pl.tags | 5 +- tests/ctags/simple.ps1.tags | 16 ++- tests/ctags/simple.py.tags | 29 +++- tests/ctags/simple.rb.tags | 10 +- tests/ctags/simple.rst.tags | 9 +- tests/ctags/simple.sh.tags | 4 +- tests/ctags/simple.tcl.tags | 14 +- tests/ctags/simple.ts.tags | 108 ++++++++++++++- tests/ctags/simple.vala.tags | 22 ++- tests/ctags/simple.zep.tags | 5 +- tests/ctags/size_t_wchar_t_alias.d.tags | 3 +- tests/ctags/size_t_wchar_t_typedef.c.tags | 3 +- tests/ctags/spurious_label_tags.c.tags | 2 +- tests/ctags/sql_single_quote.sql.tags | 4 +- tests/ctags/square_parens.f90.tags | 15 ++- tests/ctags/state_machine.v.tags | 7 +- tests/ctags/static_array.c.tags | 2 +- tests/ctags/stdcall.f.tags | 22 ++- tests/ctags/strings.php.tags | 9 +- tests/ctags/strings.rb.tags | 14 +- tests/ctags/structure.f.tags | 20 ++- tests/ctags/tabindent.py.tags | 2 +- tests/ctags/test.erl.tags | 6 +- tests/ctags/test.go.tags | 39 +++++- tests/ctags/test.py.tags | 4 +- tests/ctags/test_input.rs.tags | 58 +++++++- tests/ctags/test_input2.rs.tags | 21 ++- tests/ctags/titles.t2t.tags | 17 ++- tests/ctags/traffic_signal.v.tags | 14 +- tests/ctags/traits.php.tags | 9 +- tests/ctags/ui5.controller.js.tags | 6 +- tests/ctags/union.f.tags | 8 +- tests/ctags/value.f.tags | 4 +- tests/ctags/var-and-return-type.cpp.tags | 20 ++- tests/ctags/vhdl-component.vhd.tags | 9 +- tests/ctags/vhdl-local.vhd.tags | 36 ++++- tests/ctags/vhdl-port.vhd.tags | 7 +- tests/ctags/vhdl-process.vhd.tags | 13 +- tests/ctags/vhdl-type.vhd.tags | 121 ++++++++++++++++- tests/ctags/whitespaces.php.tags | 9 +- 351 files changed, 3252 insertions(+), 352 deletions(-) commit ad304cf79afbf4dd8080417abbdd27e904b521a9 Author: Jiří Techet Date: Fri Dec 10 18:03:49 2021 +0100 Use the formatting script when running unit tests tests/ctags/runner.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 4753344ce886d74878c0eede924527615b22874b Author: Jiří Techet Date: Fri Dec 10 17:59:34 2021 +0100 Add script for pretty-printing geany tags files This script reads Geany binary tags files from stdin and writes to stdout a file where each of the tags is followed by a line where the tag is printed in the following human-readable form: tag_type: return_value scope :: tag_name(arglist) additional_stuff Especially the tag_type is currently hard to understand when looking at unit tests and easy to miss if there's a problem. Makefile.am | 1 + scripts/print-tags.py | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) commit def1600a5bcdcf2729f9580b04f531179f5f5f13 Merge: 0f205913c 8932304f6 Author: Thomas Martitz Date: Wed Jun 8 14:47:23 2022 +0200 Merge PR #1813 This adds a tree view mode to the document list in the sidebar and enables it by default. Based on previous work by Pavel Roschin , see #259 commit 8932304f678f063b489619cd4dccbb9c1a4a6789 Author: Thomas Martitz Date: Thu May 26 16:16:23 2022 +0200 Add item to NEWS for tree view of open documents NEWS | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 20bd9c44ea638fb7c29dc6df374f39df4947cd3f Author: Thomas Martitz Date: Sun Apr 17 13:15:02 2022 +0200 Add a unit test program to check the new sidebar documents tree view The test program checks if open documents are grouped correctly by their parent directory. The older modes (plain document list and two-level tree) also get a distinct test. For this to work some symbols must become visible from libgeany. The test uses g_strv_length() which is relatively new. Autoconf and meson checks are added as needed. configure.ac | 1 + m4/geany-gtk.m4 | 15 +++++ meson.build | 6 +- src/Makefile.am | 5 +- src/libmain.c | 25 ++++++--- src/main.h | 2 + src/sidebar.c | 32 +++-------- src/sidebar.h | 25 +++++++++ src/ui_utils.c | 2 +- tests/Makefile.am | 12 ++-- tests/meson.build | 4 +- tests/test_sidebar.c | 154 +++++++++++++++++++++++++++++++++++++++++++++++++++ 12 files changed, 236 insertions(+), 47 deletions(-) commit 9e1c79079bc5cf22cb417831697a6a65c7e3d7e5 Author: Thomas Martitz Date: Sun Apr 17 13:15:02 2022 +0200 Refactor GTK-related autoconf checks - Move to separate file geany-gtk.m4 - Merge gthread checks into the main gtk ones configure.ac | 19 +------------------ m4/geany-gtk.m4 | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 18 deletions(-) commit 6dcdefc18547ee5ce4a56f78caa316689d86b309 Author: Thomas Martitz Date: Sat Apr 16 22:41:00 2022 +0200 Add (and default to) tree view of open documents in the sidebar Currently you can chose between a flat document list and a two-level tree that groups the files by their directory. With the new tree view the latter mode is extended to a true tree where directory rows only represent the direct parent directory of open documents. Except that single-child subtrees are collapsed to a single row. See the manual for glory details. The new mode allows to quickly close entire subtrees and is visually close to the file system layout. As with the two-level tree, the home directory and project base directory (if any project is open) are treated specially and usually get a distict row - home directory appears as "~" - project base directory path is replaced by the project name The new mode is the default. Existing installations will use the new mode because a new pref is introduced. Closes #259 Based on work by RPG doc/Makefile.am | 5 +- doc/geany.txt | 44 +- doc/images/sidebar_documents_only.png | Bin 0 -> 1626 bytes doc/images/sidebar_show_paths.png | Bin 0 -> 2417 bytes doc/images/sidebar_show_tree.png | Bin 0 -> 2400 bytes doc/meson.build | 3 + src/keyfile.c | 2 +- src/sidebar.c | 820 +++++++++++++++++++++++++++------- src/sidebar.h | 6 - src/ui_utils.h | 2 +- src/utils.c | 6 +- src/utils.h | 2 + 12 files changed, 718 insertions(+), 172 deletions(-) commit 0f205913c694c37791f94aadc465ab9bae189f8f Author: Enrico Tröger Date: Sun May 29 16:24:34 2022 +0200 Doxygen: remove deprecated option COLS_IN_ALPHA_INDEX Resolves warnings like: warning: Tag 'COLS_IN_ALPHA_INDEX' at line 1075 of file 'Doxyfile' has become obsolete. To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u" doc/Doxyfile.in | 7 ------- 1 file changed, 7 deletions(-) commit 6c0b48c809bd91fa0ea3cc5062feb3b78b1ad624 Merge: af7718404 36f751117 Author: Enrico Tröger Date: Sun May 22 14:40:12 2022 +0000 Merge pull request #2924 from eht16/update_python_identifiers_py3_only Generate Python identifiers only for Python 3 commit af771840404a42187fc0b597447d7b2cf46c3342 Merge: 36933af43 cb6282d9a Author: Enrico Tröger Date: Sun May 22 14:34:30 2022 +0000 Merge pull request #3193 from techee/short_name Use G_DIR_SEPARATOR instead of / when getting short name commit 36933af43a7cc20bd58b6e341ffda070f7466660 Merge: 66b28eb01 41d771c20 Author: Enrico Tröger Date: Sun May 22 13:13:57 2022 +0000 Merge pull request #3207 from techee/glob_removal Remove built in globbing support when generating tag files commit 66b28eb01a1e8e839780095e3eb5d6706daa8eb4 Merge: 20ad19ecb af7582d13 Author: Enrico Tröger Date: Sun May 22 12:54:08 2022 +0000 Merge pull request #3153 from eht16/vte_handle_null_command VTE: Fix crash when "send_cmd_prefix" is NULL commit 20ad19ecba500360b0f3c1d6b8f515ba89646494 Author: Enrico Tröger Date: Sun May 22 14:51:22 2022 +0200 Remove non-existing Doxygen reference on PLUGIN_KEY_GROUP doc/plugins.dox | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 41d771c205302dbe28a6f6f1b60efb9ff360268c Author: Jiří Techet Date: Tue May 17 18:51:52 2022 +0200 Remove built in globbing support when generating tag files We can rely on shell to expand wildcards for us and the current detection of whether globbing should be enabled based on \" presence is questionable, undocumented and probably unused. configure.ac | 2 +- meson.build | 1 - src/tagmanager/tm_workspace.c | 69 ++++--------------------------------------- 3 files changed, 6 insertions(+), 66 deletions(-) commit af7582d137dfaf407ba47b085bca721a5eb6cf00 Author: Enrico Tröger Date: Thu Apr 7 21:23:37 2022 +0200 VTE: Fix crash when "send_cmd_prefix" is NULL src/vte.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit fc852aa839acde3c0c854c20dc667d655771704a Author: Jiří Techet Date: Fri May 13 12:32:32 2022 +0200 cxx: use a trashbox for deleteing tokens allocated for anonymous parameters This is a cherry-picked commit 55ba7264c0722c9519c0fdfacdf2363ad1c59e94 from uctags to address a memory leak reported in https://github.com/universal-ctags/ctags/issues/3372 ctags/parsers/cxx/cxx_parser_function.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 37d20a823fb1bca67cea57ef73aa9e64009d8138 Merge: be58f2964 51b2a26b9 Author: Jiří Techet Date: Fri May 13 02:51:34 2022 +0200 Merge pull request #3194 from techee/meson Support gtk-mac-integration by meson build commit be58f2964fec39dde986e755fcb47b57a538d8cd Merge: 76f5349ec 2ed895588 Author: Jiří Techet Date: Fri May 13 02:46:49 2022 +0200 Merge pull request #3166 from techee/ada_parser Add ADA ctags parser commit 51b2a26b96eeaa3a63fa59fd655db7d03b0f95f2 Author: Jiří Techet Date: Fri May 6 00:52:36 2022 +0200 Support gtk-mac-integration by meson build This library is used by the autotools build to provide improved system integration on macOS such as global menus or various dock features. Add this for the meson build too. meson.build | 4 ++++ meson_options.txt | 1 + 2 files changed, 5 insertions(+) commit 76f5349ecae260bfcea6fb8bf578ae10e6a67aec Merge: 272706848 ef2265c45 Author: Jiří Techet Date: Fri May 13 02:43:13 2022 +0200 Merge pull request #3196 from techee/anon_rename_fix2 Fix renaming of variables with anonymous type commit 2ed8955886b142a44e6bb69dc30f75d4bd02063b Author: Jiří Techet Date: Wed Apr 13 01:25:18 2022 +0200 Add ADA ctags parser ctags/Makefile.am | 1 + ctags/parsers/ada.c | 2395 ++++++++++++++++++++ meson.build | 1 + src/filetypes.c | 2 +- src/tagmanager/tm_parser.c | 40 +- src/tagmanager/tm_parser.h | 2 +- src/tagmanager/tm_parsers.h | 2 +- tests/ctags/Makefile.am | 7 + tests/ctags/ada-adb.adb | 64 + tests/ctags/ada-adb.adb.tags | 20 + tests/ctags/ada-ads.ads | 50 + tests/ctags/ada-ads.ads.tags | 17 + tests/ctags/ada-expression-function-generic.adb | 18 + .../ctags/ada-expression-function-generic.adb.tags | 6 + tests/ctags/ada-expression-function.adb | 38 + tests/ctags/ada-expression-function.adb.tags | 10 + tests/ctags/ada-overriding.ads | 42 + tests/ctags/ada-overriding.ads.tags | 4 + tests/ctags/ada-package-generic.ads | 16 + tests/ctags/ada-package-generic.ads.tags | 10 + tests/ctags/ada-task.adb | 19 + tests/ctags/ada-task.adb.tags | 6 + tests/meson.build | 7 + 23 files changed, 2773 insertions(+), 4 deletions(-) commit 272706848bbf388d17cbbc60a25497f5c2833b1b Merge: 4b573b7a4 d82cd9879 Author: Jiří Techet Date: Fri May 13 02:27:02 2022 +0200 Merge pull request #3160 from techee/fortran_sync Use the upstream Fortran parser commit 4b573b7a402347cb6b74c07057d862b66959fa2a Merge: 16a8ba30f 642553bb8 Author: Jiří Techet Date: Fri May 13 02:19:35 2022 +0200 Merge pull request #3042 from techee/project_create2 Improve user experience when creating new projects, attempt 2 commit d82cd9879fb778dc4cca89a4811e23a6d3e13195 Author: Jiří Techet Date: Mon Apr 11 16:58:51 2022 +0200 Update unit tests Update qualified_types.f90 and members.f90 to remove the "kind" and "len" specifiers after integers. I haven't seen this usage documented anywhere and the syntax, when used should include braces such as integer(len=5). The previous Geany Fortran parser used to parse these but since I don't think it's a valid syntax, I didn't submit the corresponding patch upstream. The rest of the tests is mostly added function arguments and different names for anonymous tags. tests/ctags/bug565813.f90.tags | 4 ++-- tests/ctags/bug670433.f90.tags | 2 +- tests/ctags/bug726712.f90.tags | 6 +++--- tests/ctags/enum.f90.tags | 26 +++++++++++++------------- tests/ctags/forall_module.f90.tags | 2 +- tests/ctags/fortran_associate.f90.tags | 2 +- tests/ctags/members.f90.tags | 2 +- tests/ctags/numlib.f90.tags | 1 + tests/ctags/procedure_pointer_module.f90.tags | 2 +- tests/ctags/qualified_types.f90 | 4 ++-- tests/ctags/square_parens.f90.tags | 2 +- tests/ctags/stdcall.f.tags | 4 ++-- tests/ctags/structure.f.tags | 2 +- 13 files changed, 30 insertions(+), 29 deletions(-) commit a99677f220676d27e8f01278c31b9954b1d744a6 Author: Jiří Techet Date: Mon Apr 11 12:27:28 2022 +0200 Use the upstream Fortran parser ctags/Makefile.am | 2 +- ctags/parsers/{geany_fortran.c => fortran.c} | 738 +++++++++++++++++++-------- meson.build | 2 +- src/filetypes.c | 2 +- src/tagmanager/tm_ctags.c | 2 +- src/tagmanager/tm_parser.c | 22 +- src/tagmanager/tm_parser.h | 2 +- src/tagmanager/tm_parsers.h | 2 +- 8 files changed, 556 insertions(+), 216 deletions(-) commit 16a8ba30ffd5ca999297492908ed214c98edb02b Merge: a506215ee 74c2b3912 Author: Jiří Techet Date: Fri May 13 02:01:18 2022 +0200 Merge pull request #3165 from techee/typescript_parser Add typescript ctags parser commit 74c2b3912635437f20c917c5964881d5cb656092 Author: Jiří Techet Date: Wed Apr 13 16:10:43 2022 +0200 Add typescript ctags parser ctags/Makefile.am | 1 + ctags/parsers/typescript.c | 2139 +++++++++++++++++++++++++++++++ data/filedefs/filetypes.TypeScript.conf | 1 + meson.build | 1 + src/tagmanager/tm_parser.c | 29 + src/tagmanager/tm_parser.h | 1 + src/tagmanager/tm_parsers.h | 3 +- tests/ctags/Makefile.am | 1 + tests/ctags/simple.ts | 231 ++++ tests/ctags/simple.ts.tags | 108 ++ tests/meson.build | 1 + 11 files changed, 2515 insertions(+), 1 deletion(-) commit a506215ee782c6bdc3c016259c6a4c2d81a9cb9f Merge: 7bd665d4e dbfc2542d Author: Jiří Techet Date: Fri May 13 01:49:37 2022 +0200 Merge pull request #3164 from techee/lisp_parser Add lisp ctags parser commit dbfc2542d675becab5f428db2ea4e6efdac4d90d Author: Jiří Techet Date: Wed Apr 13 00:16:45 2022 +0200 Add lisp ctags parser Alternatively, there's also EmacsLisp parser (also inside lisp.c) which could be used instead. ctags/Makefile.am | 1 + ctags/parsers/lisp.c | 389 +++++++++++++++++++++++++++++++++++++++++++ meson.build | 1 + src/filetypes.c | 2 +- src/tagmanager/tm_parser.c | 15 ++ src/tagmanager/tm_parser.h | 1 + src/tagmanager/tm_parsers.h | 3 +- tests/ctags/Makefile.am | 1 + tests/ctags/simple.lisp | 17 ++ tests/ctags/simple.lisp.tags | 9 + tests/meson.build | 1 + 11 files changed, 438 insertions(+), 2 deletions(-) commit 7bd665d4e63fceda587d16e221b719b60df9b5c2 Merge: f0ecf92e8 a5d5ae3d8 Author: Jiří Techet Date: Fri May 13 01:34:21 2022 +0200 Merge pull request #3162 from techee/clojure_parser Add Clojure ctags parser commit a5d5ae3d87f7760ac83d17991faad63644a5aa9d Author: Jiří Techet Date: Wed Apr 13 01:59:56 2022 +0200 Add Clojure ctags parser ctags/Makefile.am | 1 + ctags/parsers/clojure.c | 195 +++++++++++++++++++++++++++++++++++ data/filedefs/filetypes.Clojure.conf | 2 + meson.build | 1 + src/tagmanager/tm_parser.c | 11 ++ src/tagmanager/tm_parser.h | 1 + src/tagmanager/tm_parsers.h | 3 +- tests/ctags/Makefile.am | 1 + tests/ctags/simple.clj | 15 +++ tests/ctags/simple.clj.tags | 7 ++ tests/meson.build | 1 + 11 files changed, 237 insertions(+), 1 deletion(-) commit f0ecf92e89309a23f914383ebb2968d665df911a Merge: 34d0f2e14 38c3656d1 Author: Jiří Techet Date: Fri May 13 01:11:49 2022 +0200 Merge pull request #3159 from techee/tex_sync Use the upstream latex parser commit 38c3656d1c25c9ab79ead94160641c3e95075804 Author: Jiří Techet Date: Tue Apr 12 14:28:20 2022 +0200 Update to the upstream latex parser The new parser reports scope so update the corresponding functions. In addition this patch adds new root "Part" for reporting parts and adds a separate "Bibitem" root (bibitem and label items used to be reported together which I think is a bit confusing). ctags/Makefile.am | 3 +- ctags/parsers/geany_tex.c | 242 -------- ctags/parsers/tex.c | 1253 +++++++++++++++++++++++++++++++++++++++ ctags/parsers/tex.h | 114 ++++ meson.build | 3 +- src/tagmanager/tm_parser.c | 29 +- tests/ctags/3526726.tex.tags | 266 ++++----- tests/ctags/bug2886870.tex.tags | 19 +- tests/ctags/intro.tex.tags | 18 +- tests/ctags/intro_orig.tex | 15 + tests/ctags/intro_orig.tex.tags | 20 +- 11 files changed, 1570 insertions(+), 412 deletions(-) commit 34d0f2e14149faa4ac7efb655e998848d9be5b77 Merge: 73a6dd5b0 9bf6ac286 Author: Jiří Techet Date: Fri May 13 00:56:19 2022 +0200 Merge pull request #3161 from techee/markdown_sync Use the upstream Markdown parser commit 73a6dd5b02aca5f9a8bd0f29c49d04d4fafe6869 Merge: 2fdd948c5 8483fc78c Author: Jiří Techet Date: Fri May 13 00:55:45 2022 +0200 Merge pull request #3158 from techee/vhdl_sync Use the upstream VHDL parser commit 8483fc78c1cdb2d58882f59a22a06f7eb61545fb Author: Jiří Techet Date: Mon Apr 11 20:32:36 2022 +0200 Use the upstream VHDL parser The new parser supports scope reporting so update tm_parser_has_full_scope(). ctags/Makefile.am | 2 +- ctags/parsers/geany_vhdl.c | 289 ---------- ctags/parsers/vhdl.c | 1083 +++++++++++++++++++++++++++++++++++ meson.build | 2 +- src/tagmanager/tm_parser.c | 36 +- tests/ctags/bug2374109.vhd.tags | 2 +- tests/ctags/vhdl-component.vhd.tags | 11 +- tests/ctags/vhdl-local.vhd | 4 + tests/ctags/vhdl-local.vhd.tags | 59 +- tests/ctags/vhdl-port.vhd.tags | 5 + tests/ctags/vhdl-process.vhd.tags | 16 +- tests/ctags/vhdl-type.vhd.tags | 142 ++++- 12 files changed, 1286 insertions(+), 365 deletions(-) commit 2fdd948c57dfd6677b18b8e49e0d7665dee6ae3e Merge: cfa913d0d ef316b415 Author: Jiří Techet Date: Fri May 13 00:45:31 2022 +0200 Merge pull request #3157 from techee/tcl_sync Use the upstream TCL parser commit ef2265c451b93e0990e151c6e7764841f16e2bc9 Author: Jiří Techet Date: Sat May 7 00:32:28 2022 +0200 Fix renaming of variables with anonymous type It is possible to define variables such as struct {/* someting */} a, b; In this case, we need to change the 'var_type' to correspond to the renamed anonymous struct. src/tagmanager/tm_ctags.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit cb6282d9a778545c131720f96d29c79668e2a533 Author: Jiří Techet Date: Thu May 5 13:17:13 2022 +0200 Use G_DIR_SEPARATOR instead of / when getting short name src/tagmanager/tm_source_file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cfa913d0d4a4bd78eff330cd8916c43c182ee228 Author: xiota Date: Mon May 2 22:36:22 2022 -0700 Remove deprecated symbols: plugindata.h (PR #3072) This PR removes remaining deprecated symbols from plugindata.h. (See #3019 for overview of currently deprecated symbols.) - GeanyFunctions - GeanyKeyGroupInfo - PluginFields - PluginFlags - PLUGIN_KEY_GROUP - document_reload_file - DOC_IDX(doc_ptr) - DOC_IDX_VALID(doc_idx) - GEANY_WINDOW_MINIMAL_HEIGHT - GEANY_WINDOW_MINIMAL_WIDTH The multiterm plugin, which currently doesn't compile because of GTK2-related dependencies, refers to the following symbols: PluginFlags, PluginFields, document_reload_file The other symbols removed in this PR are not used by any known plugins. src/plugindata.h | 73 ----------------------------------------------------- src/pluginprivate.h | 1 - src/plugins.c | 49 ----------------------------------- 3 files changed, 123 deletions(-) commit 55aea4cb243decf288b7ae0c397a120d6c5b806a Merge: 3ebcfee4c 278177450 Author: Jiří Techet Date: Sun May 1 12:03:54 2022 +0200 Merge pull request #3187 from techee/docbook_leak Fix docbook parser memory leak commit 3ebcfee4c729e745979c6f830ed8dc2ba7c7cace Merge: c3f3eca86 394b2d394 Author: Jiří Techet Date: Sun May 1 00:44:51 2022 +0200 Merge pull request #3176 from techee/autocomplete_icon Show correct icons in autocompletion popups commit 278177450081a1a7665ae79849708736de519d63 Author: Jiří Techet Date: Sat Apr 30 16:13:21 2022 +0200 Fix docbook parser memory leak ctags/parsers/geany_docbook.c | 2 ++ 1 file changed, 2 insertions(+) commit 642553bb887dcc1322a3c65598991054e8c11a02 Author: Jiří Techet Date: Tue Apr 5 18:08:30 2022 +0200 Update geany.txt with the Project->New from Folder item doc/geany.txt | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) commit c3f3eca869eef59dd45e435fbc446c86d4aef993 Author: Thomas Martitz Date: Wed Apr 27 17:11:03 2022 +0200 session.conf split follow-up: plugins (PR #3183) Move plugin layout to session.conf The plugin related settings can be considered session data. They encode local paths that wouldn't work on other machines. Also I would say it's not unusual to have a different set of plugins enabled on a different machine. The "load_pluings" key is moved as well to keep things simple. No idea what's the use case to set this off. Typically you just have no plugins enabled and the debugging aid `geany -p` bypasses any of this anyway. src/keyfile.c | 14 ++++++++++++-- src/keyfile.h | 2 +- src/plugins.c | 2 +- src/search.c | 2 +- src/sidebar.c | 2 +- 5 files changed, 16 insertions(+), 6 deletions(-) commit d84f146d9b34b82b44a7ee896cb848d2e5e53f99 Author: Thomas Martitz Date: Sun Apr 24 22:43:51 2022 +0200 session.conf split follow-up: sidebar_page (PR #3168) Move sidebar_page layout to session.conf The current tab of the sidebar notebook is now considered "session-related", and thus moved from geany.conf to session.conf. To allow of "sidebar_page" to be loaded from session.conf, the "documents_show_paths" key is moved to keyfile.c, otherwise it would also become session-related (due to the StashGroup in sidebar.c being tied to session.conf). src/keyfile.c | 5 +++-- src/sidebar.c | 17 +++++++---------- src/sidebar.h | 6 ++++++ src/ui_utils.h | 1 + 4 files changed, 17 insertions(+), 12 deletions(-) commit a86fc9bf8199a640d23d52584842921dcafef9c5 Merge: df27d1b22 acacbe305 Author: Jiří Techet Date: Sun Apr 24 17:07:11 2022 +0200 Merge pull request #3099 from techee/sc_fix Update sci_get_selected_text_length() after change to Scintilla 5.1.5 commit 394b2d3944ca90c32e59d4097c9bc8690b397dca Author: Jiří Techet Date: Wed Apr 20 23:23:17 2022 +0200 Show correct icons in autocompletion popups Since we can easily query icons assigned to specific TM types now (together with having the possibility to change the icons to whatever we like independently of TM type), we can display the same icon that is used in the symbol tree and goto symbol definition/declaration popup for autocompletion too. src/editor.c | 22 +++++++++++++++------- src/symbols.c | 8 ++++++++ src/symbols.h | 2 ++ 3 files changed, 25 insertions(+), 7 deletions(-) commit 1c27f9908d0c57a98b6ce7619d9ddd88a7ff62cf Author: Jiří Techet Date: Mon Apr 11 20:59:44 2022 +0200 Add VHDL unit tests from uctags and remove the giant test.vhd The test.vhd file is more than 8000 LOCs, it seems to be multiple concatenated VHDL sources and because of the large amount of tags, it's hard to see the changes. tests/ctags/Makefile.am | 6 +- tests/ctags/test.vhd | 8174 ----------------------------------- tests/ctags/test.vhd.tags | 358 -- tests/ctags/vhdl-component.vhd | 54 + tests/ctags/vhdl-component.vhd.tags | 6 + tests/ctags/vhdl-local.vhd | 203 + tests/ctags/vhdl-local.vhd.tags | 27 + tests/ctags/vhdl-port.vhd | 5 + tests/ctags/vhdl-port.vhd.tags | 2 + tests/ctags/vhdl-process.vhd | 51 + tests/ctags/vhdl-process.vhd.tags | 7 + tests/ctags/vhdl-type.vhd | 325 ++ tests/ctags/vhdl-type.vhd.tags | 25 + tests/meson.build | 6 +- 14 files changed, 715 insertions(+), 8534 deletions(-) commit 9bf6ac286dc6e99a0b75216f0c81c98283e0523d Author: Jiří Techet Date: Mon Apr 11 00:16:00 2022 +0200 Use the upstream Markdown parser This is a new Markdown parser supporting scope generation. ctags/Makefile.am | 3 +- ctags/parsers/geany_markdown.c | 103 ---------- ctags/parsers/markdown.c | 420 +++++++++++++++++++++++++++++++++++++++++ ctags/parsers/markdown.h | 29 +++ meson.build | 3 +- src/tagmanager/tm_parser.c | 20 +- tests/ctags/simple.md.tags | 54 +++--- 7 files changed, 497 insertions(+), 135 deletions(-) commit ef316b41573dd88c390efb586ace4a2110a07809 Author: Jiří Techet Date: Tue Apr 12 01:08:13 2022 +0200 Use the upstream TCL parser The TCL parser is split into three parts: tcl - for parsing pure tcl code tcloo - for parsing tcloo OO extension of tcl itcl - for parsing itcl OO extension of tcl TCLOO and ITCL parsers run the TCL parser as a subparser but it isn't possible to combine all three parsers at the same time. Since TCLOO is the "modern" (but 10 years old) OO extension, it seems to be a better choice for Geany (if needed, a new filetype could be introduced for ITCL). Since it's run as a subparser, we need to introduce also a subparser tag type mapping for TCL (types are mapped to the same values here because they don't conflict with the TCLOO types). Also, the new parser reports full scope information so take care of that. In addition, scope by the TCL parser is prefixed by :: which we need to strip because the TM doesn't expect scope in this format. Update the unit test based on several uctags unit tests to cover the tags we generate with this parser. ctags/Makefile.am | 4 +- ctags/parsers/geany_tcl.c | 145 --------- ctags/parsers/tcl.c | 716 ++++++++++++++++++++++++++++++++++++++++++++ ctags/parsers/tcl.h | 51 ++++ ctags/parsers/tcloo.c | 201 +++++++++++++ meson.build | 4 +- src/filetypes.c | 2 +- src/tagmanager/tm_parser.c | 31 +- src/tagmanager/tm_parser.h | 1 + src/tagmanager/tm_parsers.h | 3 +- tests/ctags/simple.tcl | 59 +++- tests/ctags/simple.tcl.tags | 19 +- 12 files changed, 1071 insertions(+), 165 deletions(-) commit df27d1b226bd7261be5482b06d3a69123ff0c514 Author: Thomas Martitz Date: Mon Apr 11 00:09:38 2022 +0200 Setup VTE stash group in init_pref_groups() (PR #3156) Like with all other stash groups, the VTE one is now set up in init_pref_groups(), along with the terminal various pref group. Since be739e2 ("session.conf split follow-up #3"), the send_cmd_prefix pref was read from the configuration before setting up the stash group, which caused the "Follow path of the current file" feature to crash Geany. I.e. the fix is to set up the stash group even earlier. In my optionion, it's also beneficial that the overall stash groups do not depend on loading libvte or not. For example, previously the terminal various pref group was only added when loading libvte was not disabled. When it was disabled the end result was inconsistent with the manual. Now the terminal group appears unconditionally. Fixes be739e2 ("session.conf split follow-up #3") Fixes #3151 src/keyfile.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) commit 1364b1cb6ace476324c93b6e731f8123536e14cc Author: Thomas Martitz Date: Mon Apr 11 00:02:48 2022 +0200 Statically allocate VteConfig (PR #3156) In preparation of always setting up the VTE stash group, the global VteConfig pointer is replaced by a plain global variable that does not need to be allocated. VteConfig is small and not loading libvte is probably a niche use case so this change is generally beneficial by simplifying things. src/build.c | 13 ++++----- src/callbacks.c | 2 +- src/keybindings.c | 6 ++-- src/keyfile.c | 3 +- src/msgwindow.c | 2 +- src/prefs.c | 4 +++ src/vte.c | 86 +++++++++++++++++++++++++++---------------------------- src/vte.h | 2 +- 8 files changed, 61 insertions(+), 57 deletions(-) commit 0a0b89c961c80ffae56bcbf3f843941584e47a24 Author: Enrico Tröger Date: Mon Apr 11 23:58:43 2022 +0200 HACKING: Fix restructuredText syntax HACKING | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9ce7c72064c6da5a70e61aa54bf5657ae2ed1b8f Merge: 5856e4bdb 417dd0072 Author: Enrico Tröger Date: Mon Apr 11 21:36:17 2022 +0000 Merge pull request #3134 from lah7/tab-scroll-gtk3 Add ability to scroll over document tabs commit 13a58c2b2e58d4a3157e93a7f2bd0d006b884cdf Author: Jiří Techet Date: Mon Apr 11 16:33:36 2022 +0200 Fix anonymous tag renaming for Fortran structures See comment in the added code. src/tagmanager/tm_ctags.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 417dd007255b2fbe1307b698c3f5c39d9de5eda3 Author: Luke Horwell Date: Wed Mar 2 17:53:33 2022 +0000 Add ability to scroll over document tabs This commit reimplements a feature that GTK3 removed a long time ago. Only concerns the main document tabs. Addresses #872. Based on this commit for MATE Caja (GPLv2): https://github.com/mate-desktop/caja/commit/0b4c7a6b8c25afb987d08bfd2c4c9be57de23960 src/notebook.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit 5856e4bdb6510b1353ed7044935eed66cac87821 Merge: c832f316a 0dc98c500 Author: Enrico Tröger Date: Sun Apr 10 19:31:09 2022 +0000 Merge pull request #3130 from Codeberg-AsGithubAlternative-buhtz/patch-1 Add "el" as "Lisp" filetyp extension commit c832f316a670f7c3d34f5c75d63743e2f9bf6563 Merge: 8385b048b 7863c2abc Author: Enrico Tröger Date: Sun Apr 10 19:30:23 2022 +0000 Merge pull request #3091 from eht16/issue2813_fix_vte_paste_crash Manually realize the VTE widget on startup commit 8385b048bf71f26100432028c7411968e5661826 Merge: d9fbb8dcb 230337d54 Author: Enrico Tröger Date: Sun Apr 10 19:28:53 2022 +0000 Merge pull request #3137 from techee/tree_mapping Move symbol tree root mappings to tm_parser.c commit 230337d54e2bc245d59b4c58ede4fa1352719aa1 Author: Jiří Techet Date: Tue Apr 5 14:35:26 2022 +0200 Update HACKING with up-to-date information about ctags parser addition Previously "tagmanager" was a synonym for ctags+tagmanager but these are separate now and tagmanager is more or less par of core Geany now and not a separate library so update/remove things related to tagmanager. Anjuta and exuberant ctags parsers aren't compatible with current universal-ctags parsers (or the current tag manager) so they can be removed from the description too. The rest is just updates related to the move of stuff from symbols.c to tm_parsers.c. HACKING | 41 +++++++++++++++++++---------------------- 1 file changed, 19 insertions(+), 22 deletions(-) commit 13ae2edf2eb372aa1a0dd0fb1aa5f485ff0b5dea Author: Jiří Techet Date: Tue Apr 5 01:09:29 2022 +0200 Fix -Wunused-variable warnings src/editor.c | 1 - src/keyfile.c | 3 --- src/symbols.c | 2 +- 3 files changed, 1 insertion(+), 5 deletions(-) commit d9f3f3b85f0c6ce790ce3cfd88b6bff01b6b6b7e Author: Jiří Techet Date: Tue Apr 5 01:03:38 2022 +0200 Fix -Wsign-compare warning src/tagmanager/tm_ctags.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 201ac64545ea0d2857f55dcd7440b07a1672bbcb Author: Jiří Techet Date: Mon Mar 21 18:34:17 2022 +0100 Translate symbol tree roots Using _() macros from glib/gi18n-lib.h for translatable strings isn't possible because we need to use them in global static initializers where g_dgettext() (to which _() expands) cannot be called. Still, we need to define _() and use it to mark translatable strings so the command-line xgettext finds them. Then, we can call g_dgettext() manually at the appropriate place to get the translated string. po/POTFILES.in | 1 + src/tagmanager/tm_parser.c | 8 ++++++++ 2 files changed, 9 insertions(+) commit 0333c75a08cfc64b347c8780cc7cd3b9af8d94b1 Author: Jiří Techet Date: Thu Dec 16 23:23:04 2021 +0100 Add code verifying that all tag types for a language are mapped to some group First, lang_types is constructed to contain all tag types used in map_LANGUAGE mapping, then, group_types is constructed to contain all tag types from group_LANGUAGE. Since some groups are used for more languages (e.g. group_C) and contain more tag types than tag types used for the given language, the check doesn't simply do group_types != lang_types but rather (group_types & lang_types) != lang_types to eliminate types from the group not used for the given language. src/tagmanager/tm_parser.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 3f8733f083e72be58e00ab2dde1e2584fe276cc5 Author: Jiří Techet Date: Wed Dec 15 23:21:02 2021 +0100 Move symbol tree root mappings to tm_parser.c There are several problems with the current mapping done in symbols.c: 1. All other language-specific mappings are done in tm_parser.c now and this is the only thing that is done elsewhere. Having all the mappings at one place makes things much clearer and makes tm_parser.c the only place to play with when introducing new parser or when updating a parser to a new upstream version. 2. The mapping is extremely confusing. First, there are several hard-coded iterator names in TreeviewSymbols which don't cover all tag types but which are just a subset of them. Then, there is get_tag_type_iter() which is another mapping that groups certain tag types to TreeViewSymbols members. So when looking at mappings defined in add_top_level_items(), it isn't clear by just looking at it how tag types of certain languages get mapped to their roots without also having a look at get_tag_type_iter(). 3. Since the groupings in get_tag_type_iter() are hard-coded, some tag types have to be grouped together whether it makes sense for the given language or not. For instance, for C we have "Typedefs / Enums" grouped together because get_tag_type_iter() returns the same root for tm_tag_typedef_t and tm_tag_enum_t and even if we wanted to change this for C, we would affect other languages too because this mapping is the same for all languages. 4. Because of the hard-coded grouping of some tag types, we have to make a decision whether we want something to show as we want in the symbol tree or whether we map a ctags kind to tag type that is semantically close to the construct in the given language. For instance, we could separate "Typedefs / Enums" to separate roots in the symbol tree by e.g. mapping typedefs to tm_tag_typedef_t and enums to tm_tag_field_t which have separate roots but then enum is represented by tm_tag_field_t which would confuse some more advanced Geany features like scope completion. 5. In addition, the hard-coded grouping effectively reduces the number of roots to 11 which may not be enough for some languages. 6. Tag icons for autocompletion popup are hard-coded in get_tag_class() and may differ from the icons used by the symbol tree. This isn't fixable easily with the current way of mapping. This patch tries to solve these problems by moving root symbol tree mappings to tm_parser.c (so all the mappings are at one place) together with more flexible and easier to maintain way of mapping definition. For instance, consider kind mappings for the HAXE programming language which until now looked this way. static TMParserMapEntry map_HAXE[] = { {'m', tm_tag_method_t}, // method {'c', tm_tag_class_t}, // class {'e', tm_tag_enum_t}, // enum {'v', tm_tag_variable_t}, // variable {'i', tm_tag_interface_t}, // interface {'t', tm_tag_typedef_t}, // typedef }; In addition, after this patch, tm_parser.c contains also the following mapping for the symbol tree roots: static TMParserMapGroup group_HAXE[] = { {_("Interfaces"), TM_ICON_STRUCT, tm_tag_interface_t}, {_("Classes"), TM_ICON_CLASS, tm_tag_class_t}, {_("Methods"), TM_ICON_METHOD, tm_tag_method_t}, {_("Types"), TM_ICON_MACRO, tm_tag_typedef_t | tm_tag_enum_t}, {_("Variables"), TM_ICON_VAR, tm_tag_variable_t}, }; This declaration says that there are 5 roots with the given names, icons attached to these roots, and, finally, the TM types which will appear under these roots. Notice that there may be multiple types under a single root which can be OR-ed using | because TM types are bit fields. This definition gives us enough flexibility to overcome the problems mentioned above and by having everything at one place, we can manage TM languages much more easily. There isn't anything particularly interesting about the rest of the patch - there are 2 auciliary functions in th_parser.c/h: - tm_parser_get_sidebar_group(): returns index of a group for the provided language and TM tag type - tm_parser_get_sidebar_info(): returns root name and icon for the provided language and group index Inside symbols.c tv_iters was converted to an array of size MAX_SYMBOL_TYPES of GtkTreeIter instead of the previous struct of hard-coded roots and the rest of the code is updated to use this array and the above 2 functions to get the mappings. src/symbols.c | 628 ++----------------------- src/tagmanager/tm_parser.c | 1120 +++++++++++++++++++++++++++++--------------- src/tagmanager/tm_parser.h | 18 + 3 files changed, 799 insertions(+), 967 deletions(-) commit 7863c2abcfe4a235d60a2fffba173b9166012c12 Author: Enrico Tröger Date: Sun Jan 9 12:35:27 2022 +0100 Manually realize the VTE widget on startup This should fix crashes when pasting text into the widget before it has been fully realized (e.g. when it was never shown before). Fixes #2813. src/vte.c | 4 ++++ 1 file changed, 4 insertions(+) commit d9fbb8dcb0ffaea8e0415ade1fac795972562801 Merge: 378e5e8a0 53a3eff36 Author: Thomas Martitz Date: Thu Apr 7 22:32:22 2022 +0200 Merge pull request #2761 from kugel-/meson Port to the meson build system. Meson generally provides much faster incremental builds and configuration. This is still kind of beta. Meson builds might not work on all systems out there and I don't know if it's suitable for generating releases but it's a start. commit 8abf31d3c6f559df18505fd1c69ac771b23cd94c Author: Jiří Techet Date: Sat Mar 19 17:32:13 2022 +0100 Improve project directory determination When using "New from Folder", open the directory selection dialog at current document's directory to simplify new project creation for opened files. Fall back to "project files" directory if no file opened and if this directory isn't set in preferences, fall back to user's home directory. In addition take into account that the "project files" directory may not be set when filling in entries in the "New Project" dialog and fall back to currently opened document's directory or to home directory when no document is opened. src/project.c | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) commit f8768399d32b817ecaccd2f28f43e8e0d55a06e6 Author: Jiří Techet Date: Sat Dec 4 17:19:16 2021 +0100 Make the New Project dialog a little wider With the current width, the created project file name gets hidden even for not-so-long paths. Consider for instance the following path: /home/my_name/projects/project/project.geany It consists of 43 characters where "/home/my_name/projects/" is a typical prefix of someone with not terribly long user name and also "project/project.geany" is fairly normal project name and directory name length. Even though the patch says 40, this 43-character string still fits in on my machine (50 makes the window a little too wide). src/project.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1bc7d8ff4eefc859f9bf2c2bf81d0952f8663c40 Author: Jiří Techet Date: Thu Nov 25 00:37:20 2021 +0100 Store project files in base directory by default Project files are, by default, stored inside the configured "projects" directory. The problem is that for new users of Geany, the default ~/projects most probably points to a non-existent directory and then, the project creation experience is not quite optimal. In addition, this is what most editors do and most Geany newcomers will expect this behavior. src/keyfile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0837989188fa0adcfec4ccf84cd344faae736713 Author: Jiří Techet Date: Sat Dec 4 16:56:57 2021 +0100 Add keybindings for "Project->New from Folder" src/keybindings.c | 5 +++++ src/keybindings.h | 2 ++ src/plugindata.h | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) commit ce66dc92231cf7fb4aa47e1846f4ab127b8ee873 Author: Jiří Techet Date: Sat Dec 4 16:56:12 2021 +0100 Improve user experience when creating new projects At the moment, when creating a project, the user is greeted with the dialog containing: 1. Name 2. Filename 3. Base path The user is expected to type the name of the project into (1), and then, Geany tries to guess the base path and file name. The guess simply takes the project directory specified in settings and appends the name. When the project is located anywhere else than in the projects directory, the guessed values are wrong and have to be entered manually which is quite annoying. In addition, the dialog doesn't make it clear that the user should start with (1), when he starts with (2) or (3), he has to fill in all 3 values manually. This patch adds another method of project creation which is more suitable for creating projects from existing directory with source files. There's a new "Project->New from Folder..." option that in the first step asks user to provide the base path and based on this path fills in the entries in the New Project dialog. With this approach, Project->New from Folder...: a. First pops up a open directory dialog to specify base path b. After that, opens the (currently used) New Project dialog which is pre-filled in the following way: 1. Name: The last directory in base_path 2. Filename: depending on "store project file inside the project base directory" settings either in base_path/(1).geany or projects_dir/(1).geany 3. Base path: path specified in (a) This way, in most cases, the user will only have to select the base directory in the first step and use the pre-filled values without any modification no matter whether the project is stored in the projects directory or not. After this patch, there will be 2 different ways to create projects: 1. Project->New - more suitable for creating empty projects from scratch inside the "projects" directory 2. Project->New from Folder - more suitable for creating projects from existing sources data/geany.glade | 17 +++++++++++++ src/callbacks.c | 8 +++++- src/callbacks.h | 2 ++ src/project.c | 75 +++++++++++++++++++++++++++++++++++++++++++------------- src/project.h | 2 +- src/ui_utils.c | 15 ++++++++++++ src/ui_utils.h | 2 ++ 7 files changed, 102 insertions(+), 19 deletions(-) commit 53a3eff3601ec4164a4ad80fa892920fb1989268 Author: Thomas Martitz Date: Sat Feb 5 00:12:28 2022 +0100 Port to the meson build system. Benefits are blazing fast builds and more user friendly configuration. This is promised by meson and I would agree in the case of Geany. Autotools is supported and still the default. Meson builds might have rough edges but should generally work OK. Time will tell if it superseeds autotools builds completely. .github/workflows/build.yml | 63 +++ README | 32 ++ data/meson.build | 22 ++ doc/meson.build | 138 +++++++ icons/meson.build | 46 +++ meson.build | 912 ++++++++++++++++++++++++++++++++++++++++++++ meson_options.txt | 8 + plugins/meson.build | 28 ++ po/meson.build | 1 + tests/meson.build | 354 +++++++++++++++++ 10 files changed, 1604 insertions(+) commit dcc0f2959bb490be4801ec9e98058d6bd136c1df Author: Thomas Martitz Date: Sat Feb 5 00:10:37 2022 +0100 Add build directories to gitignore Meson won't support in-tree builds. Add some common build directories to .gitignore. .gitignore | 3 +++ 1 file changed, 3 insertions(+) commit 5e22dfae22bc09084ae556b367159e7eaa713591 Author: Thomas Martitz Date: Fri Feb 4 23:00:08 2022 +0100 Prepare for meson build system Autotools-based builds will be supported for some time. This patch makes some modifications to the Autotools build system necessary to to co-exist with meson. - LOCALEDIR and DATADIR won't be defined, replace with GEANY_* where necessary - VERSION won't be defined, use PACKAGE_VERSION and PACKAGE_STRING instead - Doxyfile cannot be generated by configure, which wouldn't run in a meson build. Generate both Doxyfile and Doxyfile-gi manually using sed - actual shell script to generate signallist.i (inline shell not a thing in meson) - path of signallist.i will change, exclude callbacks.c from doxygen to make it happy - geany icon for 24x24 size such that one exists for all sizes - install license file for Lexilla - change how tests are run a bit so that runner.sh will also work for meson - check for dirent.h, required by ctags Makefile.am | 1 + configure.ac | 3 +-- doc/Doxyfile.in | 15 +++++++-------- doc/Makefile.am | 42 +++++++++++++++++++++++++++++------------- icons/24x24/Makefile.am | 7 ++++++- icons/24x24/geany.png | Bin 0 -> 1678 bytes plugins/Makefile.am | 7 +++---- plugins/classbuilder.c | 2 +- plugins/demoplugin.c | 5 ++++- plugins/export.c | 8 ++++---- plugins/filebrowser.c | 4 ++-- plugins/htmlchars.c | 4 ++-- plugins/saveactions.c | 2 +- plugins/splitwindow.c | 2 +- scripts/gen-signallist.sh | 8 ++++++++ src/Makefile.am | 6 +----- src/libmain.c | 4 ++-- src/templates.c | 2 +- src/utils.c | 2 +- tests/ctags/Makefile.am | 6 ++++-- tests/ctags/runner.sh | 10 +++++----- 21 files changed, 84 insertions(+), 56 deletions(-) commit 378e5e8a0db18364cd9ec848aa81f5eded508da5 Merge: 4eb741ec3 33b3e7760 Author: Jiří Techet Date: Mon Mar 14 20:39:39 2022 +0100 Merge pull request #3031 from techee/python_sync Use python parser from uctags commit 33b3e776030d822e0306a71416feb1f3d809c76d Author: Jiří Techet Date: Fri Dec 3 09:31:08 2021 +0100 Improve output of 'import A as B' Without this patch the import looks this way Imports A so it misses the B. With this patch, it generates Imports A B This isn't quite correct, the A shouldn't be there but it is currently hard to distinguish from other "module" kinds because we don't take roles into account. But having extra A seems to me better than missing B. src/tagmanager/tm_parser.c | 2 +- tests/ctags/cython_sample2.pyx.tags | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit 72f0b6e8ec400f54047d48aa292a7172fb683c6d Author: Jiří Techet Date: Sun Nov 28 11:52:32 2021 +0100 Update python unit tests The main change is the import change discussed in previous commit. The rest is just a better parsing of the new parser. tests/ctags/cython_sample2.pyx.tags | 2 +- tests/ctags/py_constructor_arglist.py.tags | 33 +++++++++++++++++++----------- tests/ctags/simple.py.tags | 6 ++++-- tests/ctags/tabindent.py.tags | 2 +- 4 files changed, 27 insertions(+), 16 deletions(-) commit 83c0439cec5616f2fe27e553fdc0d5b2617debe7 Author: Jiří Techet Date: Sun Nov 28 11:51:13 2021 +0100 Update mappings in tm_parser.c The new parser generates 2 tags for import statements like from A import B For A tag of the 'i' kind is generated, for B, tag of the kind 'x' is generated. B includes A in its scope and when we omit generation of 'i', imports are printed in the sidebar with the full scope information like Imports django.views.decorators.csrf.csrf_exempt django.views.decorators.csrf.csrf_exempt2 django.views.decorators.http.require_POST When we generate 'i' and map it to something (I used tm_tag_externvar_t like for the imports themselves, there's nothing in the tag types we have that would be a good semantic candidate here), the result in the sidebar is Imports django.views.decorators.csrf csrf_exempt csrf_exempt2 django.views.decorators.http require_POST which is more readable IMO. src/tagmanager/tm_parser.c | 4 ++++ 1 file changed, 4 insertions(+) commit 37f76c9a7b593f266104777b13dc61be5314fe48 Author: Jiří Techet Date: Sun Nov 28 11:34:42 2021 +0100 Use uctags version of python ctags/Makefile.am | 2 +- ctags/parsers/geany_python.c | 862 ----------------------- ctags/parsers/python.c | 1597 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1598 insertions(+), 863 deletions(-) commit 4eb741ec374630c200107faac52b4502fdb0bd62 Merge: c83a616fe 7396613f0 Author: Jiří Techet Date: Mon Mar 14 20:19:19 2022 +0100 Merge pull request #3035 from techee/different_parsers Use some parsers from uctags with better implementation commit c83a616fe5ec9e9b98071fe8cc55425650062b76 Merge: 6671d3c31 92e2a7837 Author: Jiří Techet Date: Mon Mar 14 20:15:18 2022 +0100 Merge pull request #3073 from techee/glsl Use C parser for GLSL files commit 7396613f0b40830cf858c5e51dda71590ad06162 Author: Jiří Techet Date: Mon Nov 29 23:42:12 2021 +0100 Add R and Verilog to languages reporting context src/tagmanager/tm_parser.c | 2 ++ 1 file changed, 2 insertions(+) commit a99e3275053e28e488bb048fda71788c5c30a4ff Author: Jiří Techet Date: Mon Nov 29 21:05:54 2021 +0100 Update verilog unit tests The difference seems to be the scope information produced by the new parsers. tests/ctags/bug1111214-j-chan.v.tags | 4 ++-- tests/ctags/traffic_signal.v.tags | 24 ++++++++++++------------ 2 files changed, 14 insertions(+), 14 deletions(-) commit 0fe3b9b2c101abded4042b16a898c1483ddbf60c Author: Jiří Techet Date: Mon Nov 29 21:05:06 2021 +0100 Update mappings for verilog parser src/tagmanager/tm_parser.c | 2 ++ 1 file changed, 2 insertions(+) commit ddb05fff2d9bc8391a16e49c329d75e697b674f7 Author: Jiří Techet Date: Mon Nov 29 21:04:46 2021 +0100 Use uctags verilog parser The new parser is token-based and appears to be significantly improved. ctags/Makefile.am | 2 +- ctags/parsers/geany_verilog.c | 332 ------- ctags/parsers/verilog.c | 2024 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 2025 insertions(+), 333 deletions(-) commit 793f567d40a83491146adb4217485e093534f70d Author: Jiří Techet Date: Mon Nov 29 16:37:11 2021 +0100 Update mappings for sh parser src/tagmanager/tm_parser.c | 3 +++ 1 file changed, 3 insertions(+) commit d5e2b706899dfbbf95272e5276a2eefe98dba537 Author: Jiří Techet Date: Mon Nov 29 16:36:44 2021 +0100 Use uctags parser for sh The parser is also only line-based but seems to handle many more things than our sh parser. ctags/Makefile.am | 2 +- ctags/parsers/geany_sh.c | 110 ----------- ctags/parsers/sh.c | 490 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 491 insertions(+), 111 deletions(-) commit 9b4daab179211fa7768c1cd8cd2cf87b3c951e97 Author: Jiří Techet Date: Mon Nov 29 16:21:12 2021 +0100 Update R kind mappings src/tagmanager/tm_parser.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 5d5d05d63e8e55cacf60f6d95bda65c4027027eb Author: Jiří Techet Date: Mon Nov 29 16:20:43 2021 +0100 Use uctags R parser The uctags R parser is token-based and seems to be much more advanced than our ad-hoc parser. ctags/Makefile.am | 3 +- ctags/parsers/geany_r.c | 177 ------ ctags/parsers/r.c | 1470 +++++++++++++++++++++++++++++++++++++++++++++++ ctags/parsers/r.h | 111 ++++ 4 files changed, 1583 insertions(+), 178 deletions(-) commit 92e2a783795b2c893185a309dd7675d40d970850 Author: Jiří Techet Date: Thu Dec 30 17:19:27 2021 +0100 Use C parser for GLSL files and CUDA parser for CUDA files The GLSL portion of c.c doesn't seem to do anything - it's just a synonym for a C parser which can be used directly instead. This way we can switch to the new cxx parser for GLSL too and reduce one more language to care about in c.c. For reference, the GLSL "parser" was introduced in commit 6ce421f1411060b8576bdac982cca11229b8ef96 Since we need to keep original identifiers for parsers and need some parser instead of the removed GLSL parser, we can replace it with the CUDA parser that is part of the new cxx parser and we can use this parser for parsing CUDA files instead of C++ (the CUDA parser is basically just C++ parsers with different keywords). ctags/parsers/geany_c.c | 19 ------------------- data/filedefs/filetypes.CUDA.conf | 2 +- src/filetypes.c | 2 +- src/tagmanager/tm_parser.c | 8 ++++---- src/tagmanager/tm_parser.h | 2 +- src/tagmanager/tm_parsers.h | 2 +- 6 files changed, 8 insertions(+), 27 deletions(-) commit 6671d3c3145e0beaa5af4f4c6fafd884fd658904 Merge: 3c61af7fc c0b7940f9 Author: Jiří Techet Date: Mon Mar 14 19:41:29 2022 +0100 Merge pull request #3075 from techee/remove_ferite_parser Remove Ferite filetype commit 3c61af7fc08561bbd647164f33affc7ea257d2e8 Merge: 591c35df4 66d30a9d4 Author: Jiří Techet Date: Mon Mar 14 19:39:02 2022 +0100 Merge pull request #3084 from techee/basic basic: use the upstream ctags parser commit 591c35df487ea69fafc28cedff9e737fbd0c78a5 Merge: 22aac4436 344c30fe0 Author: Jiří Techet Date: Mon Mar 14 19:38:20 2022 +0100 Merge pull request #3062 from techee/asm_parser Use asm parser from uctags commit 22aac4436da749d69aa1b330feb517ad0a4bac74 Merge: be739e28a 27982f333 Author: Thomas Martitz Date: Sat Mar 5 00:03:19 2022 +0100 Merge pull request #3125 from kugel-/project_session Save & restore default session independently of projects (fixes #267) commit 0dc98c50007c2ca59ec9adfddef011fe0d3e9560 Author: Codeberg-AsGithubAlternative-buhtz Date: Wed Feb 23 11:20:16 2022 +0100 Added semicolon data/filetype_extensions.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e58cbca6752cdfacc8885d8c92aa1e5d387f3c02 Author: Codeberg-AsGithubAlternative-buhtz Date: Wed Feb 23 09:28:37 2022 +0100 Add "el" as "Lisp" filetyp extension The suffix "el" is very common in the context of Lisp and Emacs (a Lisp interpreter). data/filetype_extensions.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 27982f333d731607e6efcf83d03a6129f45ef05e Author: Thomas Martitz Date: Sun Feb 13 00:04:34 2022 +0100 Disconnect default session and project session files Currently, when loading "projects" (i.e. named sessions), the file list overwrites the default session. Therefore, when loading a project, the previously opened files are lost. With this the default session is maintained separately. Any time a project is opened it is written to session.conf and can be restored later on. src/keyfile.c | 110 ++++++++++++++++++++++++++------------------------- src/keyfile.h | 8 ++-- src/libmain.c | 13 +++++- src/project.c | 22 ++++++----- src/projectprivate.h | 1 + 5 files changed, 88 insertions(+), 66 deletions(-) commit a7647cd9a92c95a2b4b2bb611660ae53f0051099 Author: Thomas Martitz Date: Sat Feb 12 23:51:37 2022 +0100 Change main_status.opening_session_files to a counter This flag is actually set and cleared recursively: - libmain.c sets it before calling load_startup_files() - inside load_startup_files(), configuration_open_files() sets and clears the flag - when libmain.c clears the flag, it's already unset A counter allows such recursive usage to work as expected. src/keyfile.c | 8 +++++--- src/libmain.c | 6 +++--- src/main.h | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) commit 2ed4fc9eb6fa12fe03de3917ebe00b4485894f8a Author: Thomas Martitz Date: Fri Feb 11 14:15:49 2022 +0100 Remove pref "Use project-based session files", now always enabled As per #267 we agreed that this pref makes little sense. Especially as we're considering to move the project session files to a completely separate file (so neither geany.conf nor $project.geany). Currently, if not checked, the project session files would be stored in the (new) session.conf file, overwriting the non-project session. This is what #267 is about. data/geany.glade | 16 ---------------- src/keyfile.c | 2 -- src/libmain.c | 2 +- src/prefs.c | 6 ------ src/project.c | 56 ++++++++++++++++++++++---------------------------------- src/project.h | 1 - 6 files changed, 23 insertions(+), 60 deletions(-) commit be739e28a6e29aeb08912af36620a4fb78b31176 Author: Thomas Martitz Date: Thu Feb 17 22:36:55 2022 +0100 session.conf split follow-up #3 (#3014) Move search positions and layout to session.conf This will remember the x,y positions as well as the find/replace dialog expanders as part of session.conf. To implemenet this, a new interface configuration_add_session_group() is created that connects a StashGroup to session.conf. src/keyfile.c | 68 +++++++++++++++++++++++++++++++++-------------------------- src/keyfile.h | 2 ++ src/search.c | 5 ++++- 3 files changed, 44 insertions(+), 31 deletions(-) commit da125332f779eb367ffaea8569259940c1e8803a Merge: b3e0cfb91 295f59da9 Author: Enrico Tröger Date: Sun Feb 13 16:41:40 2022 +0000 Merge pull request #3033 from eht16/add_confirmation_on_session_replace Add a confirmation dialog on search & replace for the whole session commit b3e0cfb91c2acbb585ea7824fc83e2e052f94551 Author: Thomas Martitz Date: Sun Feb 13 00:01:07 2022 +0100 Session files must be saved to session.conf where they are loaded from. This bug was present since the original session.conf merge: b11d05a53cd3 Split geany.conf into geany.conf (preferences) and session.conf … src/keyfile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bb8649460b6d18a83b40eec33eb09331a35241ff Author: Thomas Martitz Date: Sat Feb 12 23:10:06 2022 +0100 Make distcheck happy, LexicalStyles.iface was removed from the repo scintilla/Makefile.am | 1 - 1 file changed, 1 deletion(-) commit 021144e60ddd07ad2e5e1fbcb54be8e32874e4f6 Author: Thomas Martitz Date: Sat Feb 12 22:57:21 2022 +0100 Update GDScript test Anonymous enums are now flagged as such (last digit == 1). GDScript support (#3012) and the anonymous tags PR (#3059) did not know about each other so this wasn't catched by CI until now. tests/ctags/gdscript-no-implicit-class.gd.tags | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9642f17d83ce8d2e4e8d3e08c3cfd589f98741d8 Merge: a3031e96b 6f6261678 Author: Thomas Martitz Date: Sat Feb 12 22:38:16 2022 +0100 Merge pull request #3059 from techee/anon4 There are several problems with how we handle anonymous tags which this pull request tries to resolve: 1. Anonymous tags are currently determined based on how these tags are named by ctags which may not be completely reliable and unnecessary. ctags now has XTAG_ANONYMOUS flag we can query and determine whether a tag is anonymous or not based on that. Our fortran parser didn't report XTAG_ANONYMOUS so it has been updated to do so. 2. In order to store the information about anonymous tags, this pull request renames the unused `pointerOrder` member of TMTag (see the corresponding commit about more details to `flags` and uses one bit to indicate whether a tag is anonymous. This is technically a API change but since pointerOrder always contained 0 and was unused (or maybe used by some super-old parser 15 years back), it doesn't really matter (no g-p plugin uses this field). 3. With the introduction of the new cxx parser, anonymous tags are reported as `__anonNUM` - before they were reported as e.g `anon_struct_NUM` - i.e. they contained information about the type in their name which made them easier to identify in the symbol tree. This pull request adds back this naming. 4. In addition to (3), the NUM in the previous parser was global for all types - i.e. tags were named as `anon_enum_1`, `anon_struct_2`, `anon_enum_3` which is a bit strange as it suggests there are 3 enums but there are 2 instead. This pull request makes these numbers per-type so the above becomes `anon_enum_1`, `anon_struct_1`, `anon_enum_2`. 5. This pull request sets the name of anonymous tag if it's followed by the corresponding typedef tag and the typedef tag is removed. For instance, for `typedef struct{int a} Foo;` you would previously get an anonymous tag for the struct under which `a` would be shown and then separately tag `Foo` as a typedef. After this patch, you get a tag `Foo` for the struct with `a` as its member and the anonymous name is dropped which makes things much clearer in the sidebar. And finally, thanks to the fact that we do renaming of anonymous tags ourselves now, the last diff against ctags main can be dropped so we can use the upstream version without any modifications and the patch file isn't necessary any more. Hurray!!! commit a3031e96bda15f77c9b132dcf138cf791c085e2d Author: Antonio Cebrián Date: Sat Feb 12 15:14:59 2022 +0100 Imports and enables Asciidoc lexer from Lexilla 5.1.4 (#3097) data/filedefs/filetypes.asciidoc | 50 ++-- scintilla/Makefile.am | 1 + scintilla/lexilla/lexers/LexAsciidoc.cxx | 393 +++++++++++++++++++++++++++++++ scintilla/lexilla/src/Lexilla.cxx | 1 + src/highlighting.c | 2 + src/highlightingmappings.h | 33 +++ 6 files changed, 454 insertions(+), 26 deletions(-) commit ed26d13f0f01ecff2f93ba0b174221c59a88b82a Author: Thomas Martitz Date: Sat Feb 12 15:11:33 2022 +0100 Remove LexicalStyles.iface We do not use it, nor update it on import, so remove it. It's always available in upstream lexilla tarball. scintilla/lexilla/include/LexicalStyles.iface | 2271 ------------------------- 1 file changed, 2271 deletions(-) commit 1fc1291090437f2d6bfef4abdb897340189b03c8 Author: Thomas Martitz Date: Fri Feb 11 14:12:27 2022 +0100 Use g_return_val_if_fail() in non-void sci_get_contents() src/sciwrappers.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 305b324a1b5c29dca5184d6917011b7067870c3a Author: xiota Date: Fri Feb 11 13:48:21 2022 +0100 Update geany.glade to target gtk+3.20 (#3026) data/geany.glade | 6107 +++++++++++++++++++++++++++--------------------------- 1 file changed, 3020 insertions(+), 3087 deletions(-) commit 1ed5560ae77e3730716f788988be75085b66baaf Merge: 1b3851397 630b40521 Author: Thomas Martitz Date: Thu Feb 10 22:10:06 2022 +0100 Merge pull request #3092 from kugel-/autoreconf Do not pass --force to autoreconf and fix a few autoreconf warnings. commit 630b40521b63dbd13bda878b99ed152bea064a28 Author: Thomas Martitz Date: Mon Jan 10 23:48:38 2022 +0100 Allow autogen.sh to be run in a seperate build directory Some preperations were already in place but the final autoreconf call must be done in the source tree. Note, this wasn't possible before the switch to autoreconf either. autogen.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c760e4d172f82d50644916b1185a4c3527128c9b Author: Thomas Martitz Date: Sun Jan 9 22:26:45 2022 +0100 Resolve a few warnings reported by autoreconf on my system - AC_PROG_CC_C99 is deprecated, replace with just AC_PROG_CC and an explicit test for C99 using cache values. - AM_PROG_LIBTOOL is deprecated, replace with LT_INIT - AC_USE_SYSTEM_EXTENSIONS must be used before AC_LINK_IFELSE, apparently configure.ac | 13 ++++++++----- m4/geany-plugins.m4 | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) commit cda112541a651e7dd6984422949e58ae3f7532ef Author: Thomas Martitz Date: Sun Jan 9 22:22:20 2022 +0100 autotools: Do not pass --force to autoreconf This option causes autoreconf to replace files, some of which are tracked by git and thus cause unecessary noise, since they gonna be changed, depending on the local versions of autotools. Without --force only missing files are copied. autogen.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1b3851397612ef92b1b12677ce1e33fa70c4bbdb Author: elextr Date: Mon Feb 7 07:05:47 2022 +1000 Switch to Python 3 for GTK doc header generation (#2903) Use python3 whenever possible. Python 2 is EOL and the python binary might not be installed. This obsoletes a Debian patch applied to their package. Co-authored-by: Enrico Tröger m4/geany-gtkdoc-header.m4 | 2 +- scripts/gen-api-gtkdoc.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 977928a1bcc683c2896281421c9228140f6efe07 Merge: 5a369a41e 55deaab40 Author: Enrico Tröger Date: Sun Jan 30 21:40:24 2022 +0000 Merge pull request #3037 from eht16/issue2968_windows_strftime Use GDateTime for date and time formatting commit 5a369a41e3cb6fd1bc57e602fa567e8c0d153bfc Merge: 8c222f8f1 bd93be412 Author: Enrico Tröger Date: Sun Jan 23 23:06:51 2022 +0000 Merge pull request #3055 from techee/tagfilter-new Filter for symbol tree - improved version commit bd93be412a5eb286cad978928d01f7e9c26da59e Author: Jiří Techet Date: Thu Jan 13 16:14:12 2022 +0100 Add tm_parser_scope_separator_printable() The added tm_parser_scope_separator_printable() function is a human readable representation of scope separator. For most languages, this is equal to the scope separator but for some (mostly markup languages), some "strange" scope separators are used like \0x3 or \"\" and we need something more readable when displayed to users. " > " seems to look good. This new function can be used to: 1. Format calltips (though real languages use human-readable scope sep) 2. Symbol tree filter and display. src/symbols.c | 4 ++-- src/tagmanager/tm_parser.c | 18 +++++++++++++++++- src/tagmanager/tm_parser.h | 2 ++ 3 files changed, 21 insertions(+), 3 deletions(-) commit 79295ce727e9b7c667b616516655a8c61566e181 Author: Jiří Techet Date: Thu Jan 13 16:03:28 2022 +0100 Use tm_parser_scope_separator() instead of symbols_get_context_separator() symbols_get_context_separator() uses filetype ID as its argument and tm_parser_scope_separator() uses parser ID as its argument and those are easy to confuse. Use just one of them in Geany code to avoid errors. src/symbols.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7ccf2bba6ceb8de2aefaa1c44c8eeebe996702f8 Author: Jiří Techet Date: Thu Jan 13 15:57:32 2022 +0100 Rename tm_parser_has_full_context() to tm_parser_has_full_scope() HACKING | 2 +- src/symbols.c | 4 ++-- src/tagmanager/tm_parser.c | 2 +- src/tagmanager/tm_parser.h | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) commit c1e0ae3851c8abf01642693c19fd7f8671060924 Author: Jiří Techet Date: Thu Jan 13 15:53:50 2022 +0100 Rename tm_parser_context_separator() to tm_parser_scope_separator() This thing is called "scope separator" officially in ctags and when someone adds a new parser to Geany, it's unnecessary to cause a confusion to that person by strange naming. HACKING | 2 +- src/editor.c | 6 +++--- src/symbols.c | 6 +++--- src/tagmanager/tm_parser.c | 8 ++++---- src/tagmanager/tm_parser.h | 2 +- src/tagmanager/tm_tag.c | 2 +- src/tagmanager/tm_workspace.c | 6 +++--- 7 files changed, 16 insertions(+), 16 deletions(-) commit c180040dd3870afe5bc583d6502309e4d73df912 Author: Jiří Techet Date: Mon Jan 10 18:34:28 2022 +0100 Add documentation about the filtering feature Thanks to @elextr for most of the text. doc/geany.txt | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit 0c311c02fd3f1b527d777ca21a5f83f198d57537 Author: Jiří Techet Date: Mon Dec 13 15:21:36 2021 +0100 Use per-document filter for symbol tree src/callbacks.c | 16 +++++++++++++++- src/document.c | 2 ++ src/documentprivate.h | 2 ++ src/symbols.c | 4 +--- 4 files changed, 20 insertions(+), 4 deletions(-) commit f15f5a5dd87e4128bb14e3aa97ad5aacb7c28c69 Author: Jiří Techet Date: Sun Dec 12 22:54:01 2021 +0100 Minor improvements related to the search entry * Add search icon to the entry * Mention the possibility to use more filters separated by space in tooltip * Focus the tree when pressing enter in the search entry data/geany.glade | 4 +++- src/callbacks.c | 15 +++++++++++++++ src/callbacks.h | 2 ++ 3 files changed, 20 insertions(+), 1 deletion(-) commit 3b2844b27c7fc5871dd188f283e03fedc809764e Author: Jiří Techet Date: Sun Dec 12 23:35:36 2021 +0100 Clear symbol tree before filtering to ensure it's fully re-created src/callbacks.c | 4 ++++ 1 file changed, 4 insertions(+) commit a2fb228578ad465eabc60d0020d7832e3e4513e3 Author: Jiří Techet Date: Sun Dec 12 23:16:50 2021 +0100 Perform filtering in full name with scope src/symbols.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 8c222f8f18217f5f2daa8bf5ec7017fb525edafd Merge: 25f6cb655 ee0df54d9 Author: Enrico Tröger Date: Sun Jan 23 13:22:53 2022 +0000 Merge pull request #3093 from eht16/win_bundle_xz Windows: Bundle xz in installer commit 25f6cb655c53886e2ba3e956b3e07f96f804563c Merge: 981c04d00 e371eb6c4 Author: Enrico Tröger Date: Sun Jan 23 12:32:08 2022 +0000 Merge pull request #3096 from deining/contrib Fixing typos commit 981c04d0002d737805aa9946be0739429377fce7 Author: Enrico Tröger Date: Sun Jan 23 13:12:10 2022 +0100 Fix spurious space in docs The additional space character caused the warning: /home/runner/work/geany/geany/doc/geany.txt:3618: (WARNING/2) Block quote ends without a blank line; unexpected unindent. The additional space character was added in e964499. doc/geany.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 612978108c6255e3d46ec356941d0b67a4f77669 Merge: e964499ec 8e33c750e Author: Enrico Tröger Date: Sun Jan 23 11:22:54 2022 +0000 Merge pull request #3090 from techee/ico Add 64 and 256 icon sizes to geany.ico commit e964499ec833ab384f1d187db2e0e1d4701a7655 Author: Garrett-M-code <84481668+Garrett-M-code@users.noreply.github.com> Date: Sat Jan 22 18:24:33 2022 -0500 Updated geany.txt for "Go to" consistency (#3110) Changed the keybinding section to add consistency in "Go to" instead of "Goto" fixes #2995. doc/geany.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit a57f61159b8aef5b67fb517f79c4ab22422154c0 Author: David Yang Date: Sat Jan 22 10:44:26 2022 +0800 Fix diff mistake (#3109) scintilla/lexilla/src/Lexilla.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c0b7940f9065f9cebecd3e2dfc39a28e3d8dd854 Author: Jiří Techet Date: Sat Jan 15 20:32:23 2022 +0100 Remove the Ferite filetype Replace the gap in filetypes array with the recently added GDScript filetype. data/Makefile.am | 1 - data/filedefs/filetypes.ferite | 46 ------------------------------------------ data/filetype_extensions.conf | 1 - data/snippets.conf | 4 ---- src/filetypes.c | 3 +-- src/filetypes.h | 3 +-- src/highlighting.c | 2 -- src/highlightingmappings.h | 12 ----------- src/msgwindow.c | 20 ------------------ src/tagmanager/tm_parser.c | 5 +---- src/tagmanager/tm_parser.h | 3 +-- src/tagmanager/tm_parsers.h | 5 ++--- 12 files changed, 6 insertions(+), 99 deletions(-) commit c9cb5e4fe2b715e3e407cb7a1d870d431e73ef7f Author: Jiří Techet Date: Thu Dec 30 18:17:34 2021 +0100 Remove Ferite parser from c.c This language seems officially dead (last release from 2004, its "master site" link to www.ferite.org linking to a porn page, other mirrors dead and nearly no downloads from the Sourceforge site and those few are just probably from some bots). RIP. Since we should try reduce differences against uctags and this language isn't worth submitting to uctags, I'd suggest to remove the support of its parser from c.c. The filetype can still stay as it doesn't mean any maintenance cost for us. For reference, Ferite parser was introduced in: 010d6581e5d567c5479f2ca643922a0ef6ccadf2 We need to keep original identifiers for parsers we want to keep so let's keep some dummy value for the removed parser (which can later be filled in by a newly added parser). ctags/parsers/geany_c.c | 36 +++++------------------------------- src/filetypes.c | 2 +- src/tagmanager/tm_parser.c | 5 ++--- src/tagmanager/tm_parser.h | 2 +- src/tagmanager/tm_parsers.h | 2 +- 5 files changed, 10 insertions(+), 37 deletions(-) commit 266c96e0344ed8c499399942ae5a9da2c5f8cac8 Merge: 142b8ffdd c8653dbc4 Author: Jiří Techet Date: Sat Jan 15 13:28:57 2022 +0100 Merge pull request #3012 from Davidy22/gdscript Add GDScript file type commit c8653dbc4001a453a5cef9e5660fe6bbfd72aaae Author: David Yang Date: Wed Jan 12 11:58:02 2022 +0800 Add test files for GDScript tests/ctags/Makefile.am | 3 + tests/ctags/gdscript-inner-class.gd | 96 ++++++++++++++++++++++ tests/ctags/gdscript-inner-class.gd.tags | 39 +++++++++ tests/ctags/gdscript-modifiers.gd | 28 +++++++ tests/ctags/gdscript-modifiers.gd.tags | 14 ++++ tests/ctags/gdscript-no-implicit-class.gd | 105 +++++++++++++++++++++++++ tests/ctags/gdscript-no-implicit-class.gd.tags | 35 +++++++++ 7 files changed, 320 insertions(+) commit acacbe30574a42a698d49385628e84d9cbdc1241 Author: Jiří Techet Date: Thu Jan 13 23:00:54 2022 +0100 Add sci_get_selected_text_length2() and deprecate sci_get_selected_text_length() src/sciwrappers.c | 12 ++++++++++++ src/sciwrappers.h | 3 ++- src/ui_utils.c | 4 ++-- 3 files changed, 16 insertions(+), 3 deletions(-) commit f59e52008e93bf3b1585a918bb248bf5d406e383 Author: David Yu Yang Date: Sat Nov 20 20:39:27 2021 +0800 Add GDScript file type Heavily borrowed from python due to GDScript's syntax being heavily borrowed from python ctags/Makefile.am | 1 + ctags/main/entry.c | 5 + ctags/main/entry.h | 1 + ctags/parsers/gdscript.c | 1410 +++++++++++++++++++++++++ data/Makefile.am | 1 + data/filedefs/filetypes.gdscript | 69 ++ data/filetype_extensions.conf | 1 + scintilla/Makefile.am | 1 + scintilla/lexilla/include/LexicalStyles.iface | 19 + scintilla/lexilla/lexers/LexGDScript.cxx | 734 +++++++++++++ scintilla/lexilla/src/Lexilla.cxx | 1 + scintilla/scintilla_changes.patch | 1 + src/filetypes.c | 1 + src/filetypes.h | 1 + src/highlighting.c | 13 + src/highlightingmappings.h | 29 + src/symbols.c | 12 + src/tagmanager/tm_parser.c | 17 + src/tagmanager/tm_parser.h | 1 + src/tagmanager/tm_parsers.h | 3 +- 20 files changed, 2320 insertions(+), 1 deletion(-) commit 45169f78516e20ee3e36c45c0f147dc8aec5689a Author: Jiří Techet Date: Sun Dec 12 22:48:19 2021 +0100 Make tag filtering case-insensitive Code mostly stolen from the plugin manager. src/symbols.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) commit 684c189bf2910c20d21f830dc14a91ecc8c66472 Author: Jiří Techet Date: Sun Dec 12 22:18:30 2021 +0100 Simplify the filtering code a bit and follow Geany style src/symbols.c | 39 ++++++++++++++++----------------------- 1 file changed, 16 insertions(+), 23 deletions(-) commit d3ded11ad2c8caeb0dd4aef2fcff517c5672b2e2 Author: Dmitry Date: Sat Nov 14 06:02:40 2020 +1000 Filter symbols in the Symbol List (new feature) data/geany.glade | 43 +++++++++++++++++++++++++++++++++++++------ src/callbacks.c | 16 +++++++++++++++- src/callbacks.h | 4 ++++ src/symbols.c | 28 ++++++++++++++++++++++++++-- 4 files changed, 82 insertions(+), 9 deletions(-) commit 88f802260fb12c8b713c44867116aa28be1fa542 Author: Jiří Techet Date: Wed Jan 12 21:34:43 2022 +0100 Bump API version for the Scintilla 5.1.5 change src/plugindata.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 412a72b2c4feab7752f5172e9c9d5f81a00fd00d Author: Jiří Techet Date: Wed Jan 12 21:17:49 2022 +0100 Fix warning src/sciwrappers.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0aab15d83dd6e7b11df59450077fd6ae596bef75 Author: Jiří Techet Date: Wed Jan 12 21:15:24 2022 +0100 Update sci_get_selected_text_length() after change to Scintilla 5.1.5 Update sci_get_selected_text_length() so it returns the same value like Scintilla 5.1.4 and earlier versions. src/sciwrappers.c | 4 ++-- src/ui_utils.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 142b8ffdd4b7372b77966abbc99435644210515a Author: Thomas Martitz Date: Tue Jan 11 23:13:04 2022 +0100 Scintilla 5.1.5 aftermath (#3098) This commit fixes a few problems introduced by the last Scintilla update. That update caused some headache around the incompatible changes to `SCI_GETTEXT`, `SCI_GETSELTEXT`, and `SCI_GETCURLINE`. - An explicit NUL termination was added to `sci_get_text()`. This is both superflous and wrong (it writes behind the allocated buffer) as SCI_GETTEXT already does NUL termination. - In `sci_get_contents()`, sci_get_string() cannot be used. That would call SCI_GETTEXT with length == 0 which is not the desired outcome. Instead, basically revert to the old implementation but account for the API change. - The callers of sci_get_selected_text_length() must be adapted, this was missing yet. sci_get_selected_text_length() return value does not include the NUL termination anymore. Resolves #3095 Fixes: d7c985e47 ("Adapt to SCI_GETTEXT changes") src/sciwrappers.c | 20 ++++++++------------ src/ui_utils.c | 4 ++-- 2 files changed, 10 insertions(+), 14 deletions(-) commit e371eb6c4c9fc6f2ff4a356c8bd88aa1810474cb Author: Andreas Deininger Date: Tue Jan 11 11:39:14 2022 +0100 Fixing typos HACKING | 2 +- doc/geany.txt | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) commit 35ac13cb2cdc4bf0d12237667c1080cc99c2abc0 Author: nomadbyte Date: Mon Jan 10 22:13:52 2022 -0600 PO:(uk) Update translation po/uk.po | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 0d8580a6e6eb142dd3ae9eab78d3034a4fee2e94 Author: nomadbyte Date: Mon Jan 10 21:24:02 2022 -0600 PO:(uk) Update translation; metadata only po/uk.po | 2822 ++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 1375 insertions(+), 1447 deletions(-) commit ee0df54d9341ea2c3e4f2fc5f376fba1402e25fc Author: Enrico Tröger Date: Mon Jan 10 23:22:37 2022 +0100 Windows: Bundle xz in installer Xz is needed for librsvg. scripts/gtk-bundle-from-msys2.sh | 1 + 1 file changed, 1 insertion(+) commit 6f6261678fb91100269521ad5952d441d184c849 Author: Jiří Techet Date: Sun Dec 19 22:24:32 2021 +0100 Update unit tests with the anonymous tag changes tests/ctags/bit_field.c.tags | 32 ++++++++++++++--------------- tests/ctags/bug1466117.c.tags | 4 ---- tests/ctags/bug1491666.c.tags | 7 +++---- tests/ctags/bug556646.c.tags | 41 +++++++++++++++++++------------------- tests/ctags/bug639639.h.tags | 4 ++-- tests/ctags/bug639644.hpp.tags | 4 ++-- tests/ctags/complex-return.js.tags | 4 ++-- tests/ctags/enum.f90.tags | 4 ++-- tests/ctags/enumerators.f90.tags | 18 ++++++++--------- tests/ctags/interfaces.f90.tags | 2 +- tests/ctags/namespace.cpp.tags | 4 ++-- tests/ctags/numlib.f90.tags | 2 +- tests/ctags/process_order.c.tags | 12 +++++------ tests/ctags/recursive.f95.tags | 4 ++-- tests/ctags/structure.f.tags | 2 +- 15 files changed, 68 insertions(+), 76 deletions(-) commit dbd0ebc914d5ac56baef3fe1c28acda9d7ff3e09 Author: Jiří Techet Date: Mon Dec 6 22:35:46 2021 +0100 Consistently rename anonymous tags and drop the last ctags diff Check all the collected tags once a file is parsed (i.e. when we have all tags, including those from subparsers) and renamea them in the form anon_enum_1 anon_struct_1 anon_enum_2 anon_struct_2 where the second component is a ctags kind and the number is per-kind. In addition, scopes of the nested tags have to be updated if the parent tag is an anonymous tag. Finally, for anonymous tags of the form typedef struct Foo{int a;}; we can use the name of the typedef instead of generating the anonymous name. In this case we can drop the typedef tag once the anonymous tag is updated with its name. More details can be found in comments. ctags/ctags_changes.patch | 24 ------- ctags/main/parse.c | 6 -- scripts/update-ctags.py | 3 - src/tagmanager/tm_ctags.c | 141 ++++++++++++++++++++++++++++++++++++++++ src/tagmanager/tm_source_file.c | 5 +- src/tagmanager/tm_tag.h | 1 + 6 files changed, 145 insertions(+), 35 deletions(-) commit ea660f8b1fab4c0da5a399db79487e56b59dc7da Author: Jiří Techet Date: Sat Dec 11 17:00:18 2021 +0100 Determine anonymous tags based on name only when necessary At this point all built in parsers should report anonymous tags correctly so for them we don't need to determine anonymous tags based on tag name. Since tag files might be generated without this information, we still have to determine anonymous tags based on name for them. src/tagmanager/tm_ctags.c | 2 +- src/tagmanager/tm_parser.c | 21 +++++++++++++++++++++ src/tagmanager/tm_parser.h | 2 ++ src/tagmanager/tm_source_file.c | 13 ++++++++++--- src/tagmanager/tm_tag.c | 15 ++------------- 5 files changed, 36 insertions(+), 17 deletions(-) commit b4afb8e75bda1a648020bdea731316bf0d162b20 Author: Jiří Techet Date: Wed May 29 03:46:43 2019 -0700 Add a flag representing anonymous tags The flag is set when XTAG_ANONYMOUS is defined and is used for detecting anonymous tags inside tm_tag_is_anon(). src/tagmanager/tm_ctags.c | 4 +++- src/tagmanager/tm_tag.c | 3 +++ src/tagmanager/tm_tag.h | 7 +++++++ 3 files changed, 13 insertions(+), 1 deletion(-) commit 8805f56bbe14b218356c3ce4c2c3e318aecef251 Author: Jiří Techet Date: Mon Dec 6 22:10:45 2021 +0100 Use XTAG_ANONYMOUS in Fortran parser Report anonymous tags using XTAG_ANONYMOUS. These anonymous tags aren't generated by the upstream uctags parser so this change hasn't been made available there (will have to be part of some future sync). ctags/parsers/geany_fortran.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 9cfd7ebbf9b6f61abc874f105b926831cd55d3a2 Author: Jiří Techet Date: Wed May 29 03:36:30 2019 -0700 Rename pointerOrder TMtag member to flags We now use varType instead of pointerOrder and it has been the case for quite and we can use the pointerOrder field for storing something useful. When we store something else inside the renamed pointerOrder, we will break compatibility with some very old tag files but I don't think there are any such files around (also pointerOrder was probably just reported by the C parser). Bump API for the pointerOrder change to flags src/plugindata.h | 2 +- src/tagmanager/tm_ctags.c | 2 +- src/tagmanager/tm_source_file.c | 12 ++++++------ src/tagmanager/tm_tag.c | 2 +- src/tagmanager/tm_tag.h | 4 ++-- 5 files changed, 11 insertions(+), 11 deletions(-) commit a04f361ef357335e007a23ef04f3a3a4eec16c85 Merge: efbfe7dea d7c985e47 Author: Thomas Martitz Date: Sun Jan 9 23:50:41 2022 +0100 Merge pull request #3046 from kugel-/scintilla5-trad Update to Scintilla 5.1.5 and Lexilla 5.1.4 commit efbfe7dea7929a53415da0d20412f605a0354c82 Author: Jiří Techet Date: Fri Dec 17 22:08:51 2021 +0100 Display python type annotations correctly formatted src/tagmanager/tm_parser.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 7340a8786b6e60d205ee2df0cff606c30273f334 Author: Jiří Techet Date: Tue Dec 14 18:40:54 2021 +0100 Remove invalid python-specific code The code in the comment maybe used to be true some time ago but now no kind maps to namespace for Python. src/symbols.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 4980a03d50e975f9c64538e8fc8beefd5ea2f8ef Author: Jiří Techet Date: Tue Dec 14 17:58:39 2021 +0100 Move language-specific parts of whether to trigger scope autocompletion to tm_parser src/editor.c | 47 ++++++++++++++++++++-------------------------- src/tagmanager/tm_parser.c | 27 ++++++++++++++++++++++++++ src/tagmanager/tm_parser.h | 2 ++ 3 files changed, 49 insertions(+), 27 deletions(-) commit b814cf666bc9f7c769839417eed267aa56bf6518 Author: Jiří Techet Date: Tue Dec 14 13:59:39 2021 +0100 Move language-specific part of constructor calltip lookup to tm_parser src/editor.c | 11 +++++------ src/tagmanager/tm_parser.c | 17 +++++++++++++++++ src/tagmanager/tm_parser.h | 2 ++ 3 files changed, 24 insertions(+), 6 deletions(-) commit 424882040f890288e98e11e99c2adb8d1bd32a27 Author: Jiří Techet Date: Mon Dec 13 22:58:59 2021 +0100 Handle calltips of Python constructors like D constructors There were two different ways of how __init__() (or this() in D) constructor calltips were attached to classes so when typing 'MyClass(' the parameters from the constructor were taken: 1. For Python, the arglist of __init__() was attached to the class and when invoking the class, the arglist was shown. The disadvantage of this approach was that it allowed attaching arglist of only one constructor but not multiple ones. 2. For D the query for the calltip was done at the runtime, searching for the constructor inside the corresponding class, allowing multiple constructor tooltips to be shown. Since (2) allows multiple constructors, it is a better approach and can be used for Python too. In addition, this patch creates full scope of the searched constructor so it works also for deeply nested classes. src/editor.c | 17 ++++++++++----- src/tagmanager/tm_ctags.c | 33 ------------------------------ tests/ctags/cython_sample.pyx.tags | 2 +- tests/ctags/py_constructor_arglist.py.tags | 2 +- tests/ctags/simple.py.tags | 2 +- 5 files changed, 15 insertions(+), 41 deletions(-) commit 64f6aa66e69747adff9fb56bd1a6d63935dfe781 Author: Jiří Techet Date: Mon Dec 13 18:48:36 2021 +0100 Move function/variable formatting into tm_parser src/editor.c | 66 +++---------------------------------------- src/editor.h | 2 -- src/symbols.c | 11 ++------ src/tagmanager/tm_parser.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++ src/tagmanager/tm_parser.h | 5 ++++ 5 files changed, 82 insertions(+), 72 deletions(-) commit bcadc6aba428dbc3821720266b2147b7a59d6bff Author: David Yang Date: Mon Jan 10 04:50:43 2022 +0800 Switch PO_DEPENDS_ON_POT to no (#3089) Stops generating/changing masses of translation files on every build. .gitignore | 1 + po/Makevars | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) commit 8e33c750eb5f037cc5fc048c622c7c84a6a47eb8 Author: Jiří Techet Date: Sun Jan 9 10:45:31 2022 +0100 Add 64 and 256 icon sizes to geany.ico On Windows with HiDPI screen the Geany ico is really blurry and hopefully this fixes it. The icon was generated with the following commands: ``` inkscape -w 64 -h 64 -e 64.png scalable/geany.svg inkscape -w 256 -h 256 -e 256.png scalable/geany.svg convert 256.png 64.png 48x48/geany.png 32x32/geany.png 16x16/geany.png geany.ico ``` (requires inkscape and imagemagick installed) Based on https://docs.microsoft.com/en-us/windows/win32/uxguide/vis-icons Microsoft recommends 16, 32, 48, 256 sizes of ico files and 64 for "classic mode" so the generated sizes should cover all of them. I didn't make a Windows build with this icon so I actually haven't tested it myself if it fixes the problem. icons/geany.ico | Bin 23558 -> 72517 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit bb955d0db773ec833859449c5adcc19e488b3afd Author: Enrico Tröger Date: Sat Jan 1 11:56:16 2022 +0100 Use microseconds for log dates only if supported Fixes #3071. src/utils.c | 4 ++++ 1 file changed, 4 insertions(+) commit 66d30a9d40251f9e393530a408853c2920469221 Author: Jiří Techet Date: Wed Jan 5 11:00:29 2022 +0100 basic: use the upstream ctags parser In the original "ctags sync" pull request I didn't notice an improvement that was present in the Geany version. I submitted this change upstream in https://github.com/universal-ctags/ctags/pull/3249 and in addition fixed #2461. I re-checked the pull request "sync uctags parsers with big changes" and basic should be the only parser where something substantial was missed. Fixes #2461. ctags/parsers/basic.c | 223 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 157 insertions(+), 66 deletions(-) commit 0601c73f7a7abc40fe9ddbff6b906b0d0e5b5f79 Author: Enrico Tröger Date: Tue Jan 4 22:34:06 2022 +0000 Windows: Bundle librsvg in installer (#3082) While not strictly needed to run Geany, librsvg enables SVG support which might used by GTK themes. See also #3063 for GTK theme discussion. scripts/gtk-bundle-from-msys2.sh | 4 ++++ 1 file changed, 4 insertions(+) commit 843456cb52507b38c089cf4145b70de2920db28c Merge: ce44db885 db1b054ab Author: Jiří Techet Date: Mon Jan 3 16:17:13 2022 +0100 Merge pull request #3080 from eht16/fix_potential_crash_on_tag_tree_update Update doc->priv->tag_tree_dirty only if doc is set commit db1b054abdaa693d5e7b08ff283f81e55f3e73c5 Author: Enrico Tröger Date: Sun Jan 2 19:05:21 2022 +0100 Update doc->priv->tag_tree_dirty only if doc is set This prevents a potential crash if sidebar_update_tag_list() is called with update=true and document=NULL. src/sidebar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ce44db88502eba3d09968c446bccddf4acaee174 Author: Enrico Tröger Date: Sun Jan 2 18:56:58 2022 +0100 Windows installer: do not hardcode NSIS plugin paths This makes it easier to build against different installations of NSIS where the plugin path can differ. geany.nsi.in | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 63a60f6ad799ebaac511e0ab3d251a44ff6c0061 Merge: 48d4f5896 683c84687 Author: Jiří Techet Date: Tue Dec 28 21:04:31 2021 +0100 Merge pull request #3043 from eht16/pascal_sync Use Pascal parser from uctags commit 48d4f58966ea81a06e77b9f75079dc989f4636ea Merge: 32977676a b8c9d99bb Author: Jiří Techet Date: Mon Dec 27 09:52:43 2021 +0100 Merge pull request #3061 from techee/css_statusbar Make it easier to discover how to reduce the size of the statusbar commit 32977676a90244e0410524614757d2cf214bae43 Author: Thomas Martitz Date: Sat Dec 25 20:55:05 2021 +0100 autotools: use autoreconf and gettext (#2938) autoreconf is much more convenient over calling the autotools programs individually. Standard gettext should be used over glib's glue these days. AM_GLIB_GNU_GETTEXT and glib-gettextize are deprecated. This helps the meson build (#2761) as well as working with intltool is harder over there. gettext, on the other hand, is supported out of the box in meson. Beware, autopoint is a new dependency when building from git,should not affect tarballs. Inspired by: https://wiki.gnome.org/Initiatives/GnomeGoals/GettextMigration https://gitlab.gnome.org/GNOME/gedit/-/commit/0b4d03017fe7ba2e5c7d33d364de49c611a6e6e9 .github/workflows/build.yml | 4 +- .gitignore | 41 ++++- INSTALL | 422 +++++++++++++++++++++++++++++++------------- Makefile.am | 20 +-- README | 8 +- autogen.sh | 67 +------ configure.ac | 8 +- doc/plugins.dox | 2 +- geany.desktop.in | 8 +- m4/geany-i18n.m4 | 26 --- po/LINGUAS | 1 + po/Makevars | 82 +++++++++ 12 files changed, 446 insertions(+), 243 deletions(-) commit 1eb956525b6e563525ee4b076bdd3aaad4a5d464 Author: jmb6 Date: Thu Dec 23 18:18:47 2021 +1100 Add new C++20 keywords (#3065) data/filedefs/filetypes.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 344c30fe095f37e667bf70041e3cf4656e09c39f Author: Jiří Techet Date: Mon Dec 20 15:53:29 2021 +0100 Use asm parser from uctags ctags/Makefile.am | 2 +- ctags/parsers/{geany_asm.c => asm.c} | 196 +++++++++++++++++++++++------------ src/tagmanager/tm_parser.c | 1 + 3 files changed, 130 insertions(+), 69 deletions(-) commit b8c9d99bb7012127017dac7433cec85cde45561e Author: Jiří Techet Date: Mon Dec 20 10:51:41 2021 +0100 Make it easier to discover how to reduce the size of the statusbar data/geany.css | 7 +++++++ 1 file changed, 7 insertions(+) commit 5ea3e3ec77eaa87ff709f003743dbb80285e3b6f Author: Jiří Techet Date: Sun Dec 19 01:04:54 2021 +0100 Use cxx parser from uctags (#3032) * Add "l" prefix to functions in lcpp.c/h This is to avoid clash with cpreprocessor.c/h used by the new cxx parser. Merging lcpp.c/h with cpreprocessor.c/h would be difficult (at least for now) because of the differences in c.c so keep them separate for now. * Rename C/C++ parsers to "Old" As a result, when we copy the new cxx parser, we don't have clashes of these symbols from the two different parsers. * Add the new cxx parser This patch only makes the parser compile, it doesn't enable it yet. * Enable the new cxx parser There are several things needed for this: 1. The new preprocessor has to be defined as a separate parser. 2. Tags from the new c/c++ parsers and the preprocessor parser have to be mapped to Geany types. We still need to keep the old mappings because some parsers like Ferite or GLSL still use the old C parser. 3. Anonymous tags have a different name so we have to reflect this in tm_tag_is_anon(). * Update C/C++ unit tests The changes are mostly these: 1. Spaces in function argument list (int var1, int var2, ...) - before (int var1,int var2,...) - now 2. Anonymous tags anon_struct_1 anon_union_2 anon_typedef_3 vs __anon1 __anon2 __anon3 3. Improved parsing of the new parser * Eliminate console warning for cxx 'using' tags Fix from https://github.com/universal-ctags/ctags/commit/fb305d8814c4dc53a94fcbc5f0c0d2d701f176fa * Update update-ctags.py to also update the cxx parser * Pass our ignore.tags file with ignored symbols to cxx preprocessor The syntax is slightly different from the previous syntax and is described here: https://docs.ctags.io/en/latest/parser-cxx.html Basic usage should be the same, uctags just doesn't support Geany's wildcard ignores like G_GNUC_*. On the other hand the new parser is much more resilient to macros so there shouldn't be so much need for manual ignores. The original code is still kept for parsers from c.c that still use the old preprocessor. * Update documentation regarding ignore.tags ctags/Makefile.am | 32 + ctags/parsers/cpreprocessor.c | 2297 ++++++++++++++++++++++++++++ ctags/parsers/cpreprocessor.h | 137 ++ ctags/parsers/cxx/cxx.c | 163 ++ ctags/parsers/cxx/cxx_debug.c | 182 +++ ctags/parsers/cxx/cxx_debug.h | 63 + ctags/parsers/cxx/cxx_debug_type.c | 54 + ctags/parsers/cxx/cxx_keyword.c | 639 ++++++++ ctags/parsers/cxx/cxx_keyword.h | 178 +++ ctags/parsers/cxx/cxx_parser.c | 2023 ++++++++++++++++++++++++ ctags/parsers/cxx/cxx_parser.h | 27 + ctags/parsers/cxx/cxx_parser_block.c | 804 ++++++++++ ctags/parsers/cxx/cxx_parser_function.c | 2281 +++++++++++++++++++++++++++ ctags/parsers/cxx/cxx_parser_internal.h | 388 +++++ ctags/parsers/cxx/cxx_parser_lambda.c | 332 ++++ ctags/parsers/cxx/cxx_parser_namespace.c | 345 +++++ ctags/parsers/cxx/cxx_parser_template.c | 858 +++++++++++ ctags/parsers/cxx/cxx_parser_tokenizer.c | 1689 ++++++++++++++++++++ ctags/parsers/cxx/cxx_parser_typedef.c | 491 ++++++ ctags/parsers/cxx/cxx_parser_using.c | 170 ++ ctags/parsers/cxx/cxx_parser_variable.c | 917 +++++++++++ ctags/parsers/cxx/cxx_qtmoc.c | 342 +++++ ctags/parsers/cxx/cxx_scope.c | 276 ++++ ctags/parsers/cxx/cxx_scope.h | 86 ++ ctags/parsers/cxx/cxx_subparser.c | 125 ++ ctags/parsers/cxx/cxx_subparser.h | 45 + ctags/parsers/cxx/cxx_subparser_internal.h | 27 + ctags/parsers/cxx/cxx_tag.c | 699 +++++++++ ctags/parsers/cxx/cxx_tag.h | 202 +++ ctags/parsers/cxx/cxx_token.c | 185 +++ ctags/parsers/cxx/cxx_token.h | 124 ++ ctags/parsers/cxx/cxx_token_chain.c | 1220 +++++++++++++++ ctags/parsers/cxx/cxx_token_chain.h | 288 ++++ ctags/parsers/geany_c.c | 130 +- ctags/parsers/geany_lcpp.c | 48 +- ctags/parsers/geany_lcpp.h | 32 +- ctags/parsers/geany_verilog.c | 2 +- doc/geany.txt | 34 +- scripts/update-ctags.py | 9 + src/symbols.c | 14 +- src/tagmanager/tm_ctags.c | 22 + src/tagmanager/tm_ctags.h | 2 + src/tagmanager/tm_parser.c | 62 +- src/tagmanager/tm_parser.h | 1 + src/tagmanager/tm_parsers.h | 5 +- src/tagmanager/tm_tag.c | 2 +- tests/ctags/backslashes.c.tags | 10 +- tests/ctags/bit_field.c.tags | 46 +- tests/ctags/bug1201689.c.tags | 2 +- tests/ctags/bug1466117.c.tags | 8 +- tests/ctags/bug1491666.c.tags | 8 +- tests/ctags/bug1563476.cpp.tags | 1 - tests/ctags/bug1575055.cpp.tags | 2 +- tests/ctags/bug1585745.cpp.tags | 8 +- tests/ctags/bug1764143.h.tags | 4 +- tests/ctags/bug1770479.cpp.tags | 2 +- tests/ctags/bug1773926.cpp.tags | 2 +- tests/ctags/bug1799340.cpp.tags | 6 +- tests/ctags/bug1907083.cpp.tags | 8 +- tests/ctags/bug1924919.cpp.tags | 4 +- tests/ctags/bug507864.c.tags | 6 +- tests/ctags/bug556645.c.tags | 3 +- tests/ctags/bug556646.c.tags | 42 +- tests/ctags/bug639639.h.tags | 6 +- tests/ctags/bug639644.hpp.tags | 4 +- tests/ctags/c-digraphs.c.tags | 6 +- tests/ctags/c-trigraphs.c.tags | 6 +- tests/ctags/cpp_destructor.cpp.tags | 6 +- tests/ctags/cxx11-final.cpp.tags | 6 +- tests/ctags/cxx11-noexcept.cpp.tags | 4 +- tests/ctags/cxx11-override.cpp.tags | 6 +- tests/ctags/cxx11enum.cpp.tags | 10 +- tests/ctags/cxx14-combined.cpp.tags | 6 +- tests/ctags/extern_variable.h.tags | 2 - tests/ctags/func_typedef.h.tags | 2 +- tests/ctags/local.c.tags | 2 +- tests/ctags/macros.c.tags | 4 +- tests/ctags/namespace.cpp.tags | 4 +- tests/ctags/process_order.c.tags | 12 +- tests/ctags/prototype.h.tags | 2 +- tests/ctags/signature.cpp.tags | 9 +- tests/ctags/static_array.c.tags | 2 +- tests/ctags/var-and-return-type.cpp.tags | 6 +- 83 files changed, 18037 insertions(+), 282 deletions(-) commit ed1048918a0a92dd8b001a46cb049c862b4aa173 Merge: d031d6f2f 95c9947e6 Author: Jiří Techet Date: Wed Dec 15 10:42:06 2021 +0100 Merge pull request #3013 from techee/default_colors Use dark-theme friendly colors for compiler messages commit 683c846873461d35f3deeabb7648a5d09bc73050 Author: Enrico Tröger Date: Sun Dec 5 13:11:06 2021 +0100 Use Pascal parser from uctags Fixes #2358, fixes #2982, fixes #2428 and fixes #2987. ctags/Makefile.am | 2 +- ctags/parsers/{geany_pascal.c => pascal.c} | 100 ++++++++++++----------------- tests/ctags/bug612019.pas.tags | 2 +- 3 files changed, 44 insertions(+), 60 deletions(-) commit d031d6f2fcb12e9670dade20fc9a657dedb5a5c2 Author: Zoom Date: Fri Dec 10 23:49:24 2021 +0000 Update Nim filetype config (#2988) * Update Nim filetype config Keywords taken from official Manual. Identifiers list expanded with: 1. Some basic types from the System module, which is always implicitly imported. 2. Additional keywords (`lent, spawn, parallel`) from Nim experimental features. Styling and build-menu settings taken from @HJarausch config in #2669 * Fixup: Nim filetype: add `sink` * Add multiline comments to Nim filetype ...which won't work until the Nim lexer from lexilla is added. data/filedefs/filetypes.Nim.conf | 59 ++++++++++++++++++++++++++++++++-------- 1 file changed, 47 insertions(+), 12 deletions(-) commit d7c985e47412f8a53c5a8202a0f8b669c4fd5e08 Author: Thomas Martitz Date: Tue Dec 7 16:15:02 2021 +0100 Adapt to SCI_GETTEXT changes SCI_GETTEXT second parameter, the buffer length, does not account for the NUL termination anymore. Therefore, take care to not tell Scintilla to overwrite the last byte reserved for NUL termination. src/sciwrappers.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) commit c603bbfad5a92a00b5d2e6f7cf758963e55577ca Author: Thomas Martitz Date: Tue Dec 7 07:37:16 2021 +0100 Update to Scintilla 5.1.5 and Lexilla 5.1.4 Scintilla: - SCI_GETTEXT, SCI_GETSELTEXT, and SCI_GETCURLINE behaviorial changes - Autocompletion on Wayland (see #3009) Lexilla: - New parsers: gdscript (see #3012) and asciidoc (see #2986) but not imported yet scintilla/gtk/PlatGTK.cxx | 11 +++++ scintilla/lexilla/include/SciLexer.h | 42 +++++++++++++++++ scintilla/lexilla/lexers/LexBatch.cxx | 64 ++++++++++++------------- scintilla/lexilla/src/Lexilla.cxx | 4 ++ scintilla/lexilla/version.txt | 2 +- scintilla/src/AutoComplete.cxx | 5 ++ scintilla/src/Document.cxx | 89 +++++++---------------------------- scintilla/src/Editor.cxx | 69 ++++++++++++--------------- scintilla/version.txt | 2 +- scripts/update-scintilla.sh | 2 +- 10 files changed, 145 insertions(+), 145 deletions(-) commit ad1debc0ff45b1ee2dac117e7a494e43523723aa Author: Jiří Techet Date: Tue Dec 7 01:17:33 2021 +0100 Sync ctags parsers with big changes with Geany (#2991) * Remove the geany_ prefix from selected parsers and use the corresponding uctags version * Update tag mappings in tm_parser.c * Update PHP and zephir context separator to "\\" which is used in uctags now * Update ruby unit tests, the tests only differ in added "()" to all functions in generated tags. * Update nsis unit tests, the section name seems to be parsed correctly now. * Update go unit tests, the new go tags contain extra scope information. * Update php and zephir unit tests, PHP and zephir now use "\\" as the context separator instead of "::". For zephir, return values of methods are now parsed. * Update Objective-C unit tests, the new parser parses also method arguments. * Update lua unit tests, Scope information seems to be correctly parsed now. * Add uctags iniconf parser * Update tag mappings for the iniconf parser * Add a way to modify scope information if needed and use it to unify php separators This patch introduces a new function tm_parser_update_scope() which can be used to modify scope information when the provided value from ctags doesn't suit our needs. This patch uses it to replace php scope separator \ with :: so there's a single scope separator for this language. * Remove comment regarding ruby scope separator "." is used as the context separator in ruby now, the comment is probably just some historic artifact. * Add comment explaining why we modify PHP scope separators * Add a mechanism to enable/disable roles for certain kinds This patch allows us to enable/disable ctags roles for certain languages and kinds. Roles are currently disabled only for the Go kind 'p' for the reasons mentioned in the comment message in the patch. * Add a mechanism to enable/disable some ctags kinds This patch is similar to the patch allowing us to enable/disable roles, it just does this for ctags kinds. This can be useful when there is a bug in a ctags parser causing incorrect parsing when certain kind is enabled - which is what happens when parsing cython source files with the 'z' flag enabled. * Add LUA to the list of parsers returning full scope * Enable/disable kinds in ctags based on whether we use them or not Instead of enabling all kinds and then manually disabling them if there are problems with them, we can enable/disable them based on whether we actually use them - i.e., when they are mapped to something else than tm_tag_undef_t. ctags/Makefile.am | 33 +- ctags/parsers/basic.c | 206 +++ ctags/parsers/{geany_diff.c => diff.c} | 93 +- ctags/parsers/geany_basic.c | 252 ---- ctags/parsers/geany_go.c | 831 ------------ ctags/parsers/geany_iniconf.c | 128 -- ctags/parsers/geany_lua.c | 120 -- ctags/parsers/geany_nsis.c | 142 -- ctags/parsers/geany_perl.c | 380 ------ ctags/parsers/geany_ruby.c | 564 -------- ctags/parsers/go.c | 1416 ++++++++++++++++++++ ctags/parsers/{geany_html.c => html.c} | 168 ++- ctags/parsers/iniconf.c | 238 ++++ ctags/parsers/iniconf.h | 41 + ctags/parsers/{geany_jscript.c => jscript.c} | 462 +++++-- ctags/parsers/lua.c | 257 ++++ ctags/parsers/{geany_make.c => make.c} | 171 ++- ctags/parsers/make.h | 34 + ctags/parsers/nsis.c | 394 ++++++ ctags/parsers/{geany_objc.c => objc.c} | 333 ++++- ctags/parsers/perl.c | 738 ++++++++++ ctags/parsers/perl.h | 44 + ctags/parsers/{geany_php.c => php.c} | 806 ++++++++--- ctags/parsers/ruby.c | 1108 +++++++++++++++ ctags/parsers/{geany_rust.c => rust.c} | 95 +- ctags/parsers/{geany_sql.c => sql.c} | 1338 +++++++++++++----- src/tagmanager/tm_ctags.c | 34 +- src/tagmanager/tm_parser.c | 108 +- src/tagmanager/tm_parser.h | 6 + src/tagmanager/tm_parsers.h | 2 +- tests/ctags/bug1742588.rb.tags | 4 +- tests/ctags/bug2781264.rb.tags | 4 +- tests/ctags/geany.nsi.tags | 2 +- tests/ctags/namespaces.php.tags | 8 +- tests/ctags/namespaces2.php.tags | 8 +- tests/ctags/objectivec_implementation.mm.tags | 22 +- tests/ctags/objectivec_interface.mm.tags | 20 +- tests/ctags/objectivec_property.mm.tags | 2 +- tests/ctags/objectivec_protocol.mm.tags | 4 +- tests/ctags/return-hint.zep.tags | 4 +- tests/ctags/return-types.go.tags | 8 +- tests/ctags/ruby-block-call.rb.tags | 4 +- tests/ctags/ruby-doc.rb.tags | 8 +- .../ctags/ruby-scope-after-anonymous-class.rb.tags | 4 +- tests/ctags/ruby-sf-bug-364.rb.tags | 12 +- tests/ctags/simple.lua.tags | 4 +- tests/ctags/simple.rb.tags | 14 +- tests/ctags/strings.rb.tags | 24 +- tests/ctags/test.go.tags | 74 +- 49 files changed, 7447 insertions(+), 3325 deletions(-) commit 0c39cc4e944ea622eaef60c916fd39849126a02d Author: Claude Paroz Date: Tue Oct 20 10:00:02 2020 +0200 Refs #2615 - Convert create_py_tags.py to Python 3 scripts/create_py_tags.py | 59 +++++++++++++++++++++++++++++------------------ 1 file changed, 36 insertions(+), 23 deletions(-) commit 808b7a30cba153e91fdb56b8b7af92f0f55a8ee5 Author: Jiří Techet Date: Thu Dec 2 11:39:16 2021 +0100 Sync ctags parsers with small changes with Geany (#2990) * Remove the geany_ prefix from parsers with trivial changes against ctags This will allow the update-ctags.py script to replace these parsers with parsers from uctags. * Update parsers to the uctags versions and update Geany where needed This patch copies over parsers without the geany_ prefix from uctags tag p5.9.20211031.0. Next, it updates our mapping of kinds to tag types when there was a change. The deleted kind in ABC mapping was never generated by the ABC parser and was removed in the upstream version. The new 'C' and 'd' kinds of HAXE parser were mapped to tm_tag_undef_t. Finally, txt2tags uses a different context separator (\"\" instead of \x03) so tm_parser_context_separator() was updated accordingly and so were the unit tests. At the same time I removed TM_PARSER_ASCIIDOC from tm_parser_context_separator() because the parser doesn't use context separator at all and it's unnecessary there. * Add julia test to Makefile.am This test was missing and the unit test wasn't performed. * Remove REST from tm_parser_context_separator() The mentioned scope separator ":::" isn't used in the REST parser. The parser only includes one-level scope (only immediate parent) so scope separators aren't used for it. * Undo previous commit removing REST scope separator and improve comment * Add asciidoc among languages without nested scope It was removed in the initial commit but even though it doesn't use nested scope, '.' could appear in the title so use something less probable. * Use "\x3" as the improbable character for scope separator It was used previously as a txt2tags scope separator and since it's unprintable, it's better than ::: that could be written in the title. On the way, move the real "\"\"" scope separator above in the switch list so the special "\x3" case is listed last. ctags/Makefile.am | 30 +++++----- ctags/parsers/{geany_abaqus.c => abaqus.c} | 12 ++-- ctags/parsers/{geany_abc.c => abc.c} | 65 +++------------------ ctags/parsers/{geany_asciidoc.c => asciidoc.c} | 6 +- ctags/parsers/{geany_bibtex.c => bibtex.c} | 22 ++++---- ctags/parsers/{geany_cobol.c => cobol.c} | 0 ctags/parsers/{geany_css.c => css.c} | 1 + ctags/parsers/{geany_erlang.c => erlang.c} | 3 +- ctags/parsers/{geany_flex.c => flex.c} | 16 +----- ctags/parsers/{geany_haskell.c => haskell.c} | 16 +++--- ctags/parsers/{geany_haxe.c => haxe.c} | 10 ++-- ctags/parsers/{geany_json.c => json.c} | 54 ++++++++++++++---- ctags/parsers/{geany_julia.c => julia.c} | 0 ctags/parsers/{geany_powershell.c => powershell.c} | 17 +++--- ctags/parsers/{geany_rst.c => rst.c} | 59 ++++++++++++++----- ctags/parsers/{geany_txt2tags.c => txt2tags.c} | 10 ++-- src/tagmanager/tm_parser.c | 33 +++++------ tests/ctags/Makefile.am | 1 + tests/ctags/julia-corner_cases.jl.tags | 66 ++++++++++++++++++++++ tests/ctags/rules.t2t.tags | 6 +- tests/ctags/titles.t2t.tags | 24 ++++---- 21 files changed, 261 insertions(+), 190 deletions(-) commit 55deaab40499c2fed5c0b77903f2a6ea2924dfef Author: Enrico Tröger Date: Wed Dec 1 14:29:43 2021 +0100 Use GDateTime for date and time formatting This replaces the use of the native strftime() function to use GLib's GDateTime functions which should work more platform agnostic. Fixes #2968. data/geany.glade | 8 ++++---- doc/geany.txt | 29 ++++++++++++----------------- plugins/saveactions.c | 2 +- src/printing.c | 2 +- src/ui_utils.c | 2 +- src/utils.c | 44 +++++++++++++------------------------------- 6 files changed, 32 insertions(+), 55 deletions(-) commit d8f2f14a16fe57fb1a98e767a2263846a0135431 Author: xiota Date: Mon Nov 29 00:35:02 2021 -0800 Expand ABI/API explanation in HACKING (#3027) * Expand ABI/API explanation in HACKING HACKING | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit f8573625e55d5ad2f9b4e3a31ee50736076b62dd Author: xiota Date: Sun Nov 28 22:25:42 2021 -0800 Remove deprecated symbols: PROXY_IGNORED, PROXY_MATCHED, PROXY_NOLOAD (#3030) The only known plugin affected is geanypy. But it is currently broken because of GTK2 dependencies. See #3019 src/plugindata.h | 13 ------------- 1 file changed, 13 deletions(-) commit 614a19045c8e94ea070e341cdc202412897695ad Author: xiota Date: Sun Nov 28 22:19:49 2021 -0800 Remove deprecated symbols (#3020) * documents_foreach(i) from document.h * filetype_id from filetypes.h src/document.h | 8 -------- src/filetypes.h | 4 ---- 2 files changed, 12 deletions(-) commit 295f59da91d2a2c08a5289d56d30f3caa2d2d507 Author: Enrico Tröger Date: Sun Nov 28 16:56:54 2021 +0100 Add a confirmation dialog on search & replace for the whole session Replacing some text in the whole session can be accidentally clicked too easily and the result might not want the user wanted to do. So ask for confirmation *before* potentially all files in the session will be modified. src/search.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit eabc09a5591e8f2efd95ca136f5870c8dcba5483 Author: Enrico Tröger Date: Tue Nov 9 23:22:13 2021 +0100 Use bundled regex library for tagmanager if necessary src/tagmanager/Makefile.am | 5 +++++ 1 file changed, 5 insertions(+) commit ebb7fcd005e405062a7eba123db5a8213faf1b92 Author: Jiří Techet Date: Fri Nov 5 18:33:24 2021 +0100 Call initRegexOptscript() in tm_ctags_init() Since the optscript library is now used by ctags, it has to be initialized, otherwise Geany crashes. src/tagmanager/tm_ctags.c | 1 + 1 file changed, 1 insertion(+) commit 589a3429e6f083c67ccb4d2ce5eae967aebd2632 Author: Jiří Techet Date: Fri Nov 5 18:07:45 2021 +0100 Update to version p5.9.20211031.0 of ctags This change was mostly made by the update-ctags.py script. Apart from that, the ctags/Makefile.am file was updated to add newly added files in ctags and also include headers from the new dsl directory (inclusion of the dsl directory had to be performed in src/tagmanager/Makefile.am file too). ctags/Makefile.am | 10 + ctags/dsl/es.c | 3332 ++++++++++++++++++++++++++++++++ ctags/dsl/es.h | 274 +++ ctags/dsl/optscript.c | 4422 +++++++++++++++++++++++++++++++++++++++++++ ctags/dsl/optscript.h | 88 + ctags/main/CommonPrelude.c | 162 ++ ctags/main/args.c | 106 +- ctags/main/dependency.c | 47 +- ctags/main/entry.c | 48 +- ctags/main/entry.h | 17 +- ctags/main/entry_p.h | 2 +- ctags/main/error.c | 8 +- ctags/main/field.c | 1036 ++++++++-- ctags/main/field.h | 43 +- ctags/main/field_p.h | 15 +- ctags/main/flags.c | 13 +- ctags/main/flags_p.h | 3 +- ctags/main/fmt.c | 4 +- ctags/main/htable.c | 94 +- ctags/main/htable.h | 23 +- ctags/main/kind_p.h | 1 + ctags/main/lregex-default.c | 127 ++ ctags/main/lregex-pcre2.c | 140 ++ ctags/main/lregex.c | 1542 +++++++++++++-- ctags/main/lregex_p.h | 51 +- ctags/main/main.c | 9 +- ctags/main/mio.c | 27 +- ctags/main/options.c | 762 ++++---- ctags/main/options.h | 1 - ctags/main/options_p.h | 17 +- ctags/main/parse.c | 233 ++- ctags/main/parse.h | 13 +- ctags/main/parse_p.h | 12 +- ctags/main/parsers_p.h | 21 +- ctags/main/promise.c | 45 +- ctags/main/promise.h | 4 + ctags/main/ptag.c | 10 + ctags/main/ptag_p.h | 7 +- ctags/main/ptrarray.c | 69 +- ctags/main/ptrarray.h | 9 +- ctags/main/read.c | 44 +- ctags/main/read_p.h | 4 +- ctags/main/repoinfo.h | 2 +- ctags/main/routines.c | 1 + ctags/main/routines.h | 3 +- ctags/main/routines_p.h | 3 + ctags/main/script.c | 527 ++++++ ctags/main/script_p.h | 62 + ctags/main/seccomp.c | 7 + ctags/main/selectors.c | 21 + ctags/main/selectors.h | 3 + ctags/main/strlist.c | 10 + ctags/main/strlist.h | 16 + ctags/main/subparser.h | 2 + ctags/main/tokeninfo.c | 4 + ctags/main/tokeninfo.h | 8 + ctags/main/trace.c | 16 + ctags/main/trace.h | 26 +- ctags/main/vstring.c | 7 +- ctags/main/vstring.h | 6 +- ctags/main/writer-ctags.c | 66 +- ctags/main/writer-json.c | 8 +- ctags/main/writer.c | 8 +- ctags/main/writer_p.h | 4 +- ctags/main/xtag.c | 6 +- ctags/main/xtag_p.h | 12 +- src/tagmanager/Makefile.am | 1 + 67 files changed, 12772 insertions(+), 952 deletions(-) commit 31d2375ae4c2689da660005d6e6a7d8723194f87 Author: Jiří Techet Date: Fri Nov 5 12:42:14 2021 +0100 Update update-ctags.py to copy some files from the dsl directory The main part of ctags now uses some functions from files defined in the dsl directory. Copy these when updating ctags. scripts/update-ctags.py | 5 +++++ 1 file changed, 5 insertions(+) commit 2dfb361997271dec2a0152caac6534f779fa0ece Author: Enrico Tröger Date: Wed Nov 24 12:15:16 2021 +0100 Run CI jobs only on pushes to master and pull requests .github/workflows/build.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit 95c9947e6c54ce2570c25b7724264981a76bdc2e Author: Jiří Techet Date: Sat Nov 20 18:18:18 2021 +0100 Use dark-theme friendly colors for compiler messages These colors seem to provide good legibility for both light and dark themes and seem to be better defaults regardless of what theme users use. data/filedefs/filetypes.common | 2 +- data/geany.css | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) commit 6856edd6511e8aa9a225098ac2aab9171b10167f Merge: 5d4e7cfd5 55f0c8cea Author: Thomas Martitz Date: Mon Nov 22 16:49:35 2021 +0100 Merge branch 'session_split' By Thomas Martitz (2) and Adam Morris (1) * upstream/session_split: session.conf split follow-up #2 (#2779) session.conf split follow-up Split geany.conf into geany.conf (preferences) and session.conf (recent files and VTE session) (#2776) commit 5d4e7cfd5b12647b4cab9bda7278abd7f63e9c2f Merge: e39a45e67 fb7ab270d Author: Thomas Martitz Date: Wed Nov 17 16:12:03 2021 +0100 Merge pull request #2930 Update to Scintilla 5.1.4 and Lexilla 5.1.3 commit e39a45e672fe23f48850c13e5cce65d07ff9eb0d Author: xiota Date: Wed Nov 17 02:27:08 2021 -0800 Stash Settings: Add double key type (#3004) Export the new function to plugins (including utils_get_setting_double()). doc/stash-example.c | 12 ++++++++---- src/plugindata.h | 2 +- src/stash.c | 38 ++++++++++++++++++++++++++++++++++++-- src/stash.h | 3 +++ src/utils.c | 31 +++++++++++++++++++++++++++++++ src/utils.h | 2 ++ 6 files changed, 81 insertions(+), 7 deletions(-) commit cf77c8c0f1f0cc6ad7bf3132ea1d59639a7a83e7 Author: Thomas Martitz Date: Wed Nov 17 09:45:26 2021 +0100 Use union to store StashPref default values (#3005) This gives better type-safety than casting everything to gpointer. src/stash.c | 66 ++++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 39 insertions(+), 27 deletions(-) commit 6e4a84772f07657102f8a8e3fe84608959d27ddf Author: Enrico Tröger Date: Thu Oct 14 22:43:34 2021 +0200 Migrate from Travis CI to Github Actions .github/workflows/build.yml | 166 ++++++++++++++++++++++++++++++++++++++++++++ .travis.yml | 39 ----------- 2 files changed, 166 insertions(+), 39 deletions(-) commit fb7ab270d9e20b2d39f1d14b9a45c6967e691a84 Author: Thomas Martitz Date: Mon Nov 15 07:36:52 2021 +0100 Update to Scintilla 5.1.4 and Lexilla 5.1.3 Scintilla: - On GTK, fix primary selection paste within same instance. Bug #2287. - On GTK, fix potential crash when closing Scintilla instances due to releasing global settings object. Lexilla: - Various Rust fixes scintilla/gtk/PlatGTK.cxx | 2 +- scintilla/gtk/ScintillaGTK.cxx | 26 ++--- scintilla/gtk/ScintillaGTK.h | 3 +- scintilla/include/Scintilla.h | 1 + scintilla/include/Scintilla.iface | 3 +- scintilla/include/ScintillaCall.h | 2 +- scintilla/include/ScintillaTypes.h | 1 + scintilla/lexilla/lexers/LexPython.cxx | 21 ++-- scintilla/lexilla/lexers/LexRust.cxx | 12 +-- scintilla/lexilla/lexlib/Accessor.h | 2 +- scintilla/lexilla/lexlib/LexerBase.cxx | 6 +- scintilla/lexilla/lexlib/WordList.cxx | 8 +- scintilla/lexilla/version.txt | 2 +- scintilla/src/CellBuffer.cxx | 4 +- scintilla/src/CharClassify.cxx | 2 +- scintilla/src/CharacterType.h | 84 ++++++++++----- scintilla/src/ContractionState.cxx | 4 +- scintilla/src/Document.cxx | 188 ++++++++++++++------------------- scintilla/src/Document.h | 2 +- scintilla/src/EditView.cxx | 107 ++++++++++++------- scintilla/src/Editor.cxx | 12 +-- scintilla/src/KeyMap.cxx | 2 +- scintilla/src/MarginView.cxx | 2 +- scintilla/src/MarginView.h | 2 +- scintilla/src/PerLine.cxx | 2 +- scintilla/src/PositionCache.cxx | 98 +++++++++-------- scintilla/src/PositionCache.h | 24 ++--- scintilla/src/ViewStyle.cxx | 32 +++--- scintilla/src/ViewStyle.h | 38 +++---- scintilla/src/XPM.cxx | 29 ++--- scintilla/src/XPM.h | 20 +--- scintilla/version.txt | 2 +- 32 files changed, 377 insertions(+), 366 deletions(-) commit 6d109b309165ff0bfb17a2b21056bd498d54c032 Author: Thomas Martitz Date: Mon Oct 11 13:49:21 2021 +0200 Update to Scintilla 5.1.3 and Lexilla 5.1.2 Notable changes: Scintilla: - Add SC_ELEMENT_FOLD_LINE to set the colour of fold lines. Add SC_ELEMENT_HIDDEN_LINE to show where lines are hidden. - On GTK, fix the line spacing so that underscores and accents are visible for some fonts such as DejaVu Sans Mono 10. Lexilla - Implement conditional group rules in CSS. Issue #25, Pull request #28. - Check PHP numeric literals, showing invalid values with default style instead of numeric. Issue #20. The CSS change causes compatiblity trouble. We exposed the changed style in filetypes.css. Users must update local copies. data/filedefs/filetypes.css | 2 +- scintilla/gtk/PlatGTK.cxx | 4 +- scintilla/gtk/ScintillaGTK.cxx | 50 ++- scintilla/gtk/ScintillaGTK.h | 3 + scintilla/gtk/ScintillaGTKAccessible.cxx | 1 + scintilla/include/Scintilla.h | 6 + scintilla/include/Scintilla.iface | 14 + scintilla/include/ScintillaCall.h | 4 + scintilla/include/ScintillaMessages.h | 4 + scintilla/include/ScintillaTypes.h | 2 + scintilla/lexilla/include/SciLexer.h | 2 +- scintilla/lexilla/lexers/LexCSS.cxx | 8 +- scintilla/lexilla/lexers/LexHTML.cxx | 140 +++++++- scintilla/lexilla/lexers/LexMarkdown.cxx | 9 +- scintilla/lexilla/lexlib/WordList.cxx | 85 ++--- scintilla/lexilla/lexlib/WordList.h | 9 +- scintilla/lexilla/version.txt | 2 +- scintilla/src/AutoComplete.cxx | 4 +- scintilla/src/AutoComplete.h | 7 +- scintilla/src/CallTip.cxx | 4 +- scintilla/src/CallTip.h | 2 +- scintilla/src/CaseConvert.cxx | 10 +- scintilla/src/CaseFolder.cxx | 3 - scintilla/src/CaseFolder.h | 1 - scintilla/src/CellBuffer.cxx | 2 +- scintilla/src/ContractionState.cxx | 2 +- scintilla/src/Decoration.cxx | 12 +- scintilla/src/Document.cxx | 23 +- scintilla/src/Document.h | 38 ++- scintilla/src/EditModel.cxx | 1 + scintilla/src/EditModel.h | 1 - scintilla/src/EditView.cxx | 95 +++--- scintilla/src/Editor.cxx | 48 ++- scintilla/src/Editor.h | 7 +- scintilla/src/Geometry.cxx | 24 ++ scintilla/src/Geometry.h | 28 +- scintilla/src/Indicator.cxx | 4 +- scintilla/src/KeyMap.cxx | 4 - scintilla/src/KeyMap.h | 1 - scintilla/src/LineMarker.cxx | 2 +- scintilla/src/MarginView.cxx | 528 ++++++++++++++++--------------- scintilla/src/MarginView.h | 2 + scintilla/src/PositionCache.cxx | 98 ++++-- scintilla/src/PositionCache.h | 21 +- scintilla/src/RESearch.cxx | 4 - scintilla/src/RESearch.h | 1 - scintilla/src/ScintillaBase.cxx | 34 +- scintilla/src/Selection.cxx | 3 - scintilla/src/Selection.h | 1 - scintilla/src/Style.cxx | 116 ++----- scintilla/src/Style.h | 50 ++- scintilla/src/UniConversion.h | 2 +- scintilla/src/UniqueString.cxx | 6 +- scintilla/src/UniqueString.h | 4 +- scintilla/src/ViewStyle.cxx | 316 +++++++++--------- scintilla/src/ViewStyle.h | 30 +- scintilla/version.txt | 2 +- src/highlightingmappings.h | 2 +- 58 files changed, 1039 insertions(+), 849 deletions(-) commit a0333989f72e17cc221c41dbec7c16d50549b023 Author: xiota Date: Mon Nov 8 20:17:35 2021 -0800 When "go to line" is out of bounds, go to beginning or end of document (#2973) * When "go to line" is out of bounds, go to beginning or end of document * change offset to gboolean in editor_goto_line() remove get_line_and_offset_from_text() * use gint for line_count src/callbacks.c | 32 ++++---------------------------- src/editor.c | 28 ++++++++++++++-------------- src/editor.h | 2 +- 3 files changed, 19 insertions(+), 43 deletions(-) commit 8318ed4f5f1115eff8239b2d3a81770f86a58973 Author: xiota Date: Tue Oct 26 14:50:48 2021 -0700 Add option to hide project close/save warning when opening another project doc/geany.txt | 2 ++ src/plugindata.h | 2 +- src/project.c | 3 ++- src/ui_utils.c | 2 ++ src/ui_utils.h | 2 ++ 5 files changed, 9 insertions(+), 2 deletions(-) commit 04566236d3f9811d55d6c7bcc492b3a60369fd20 Author: Avinash Sonawane Date: Wed Oct 27 23:46:52 2021 +0000 Free `accel_string` only after its last use (#2961) Found by: scan-build src/editor.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 951bbaa518cf033b73382e9f8f61407583c9df75 Author: Avinash Sonawane Date: Mon Oct 18 21:56:24 2021 +0000 Don't use volatile (#2907) `g_once_init_enter()` parameter shouldn't be volatile anymore. The low-level atomic access API don't use volatile such that a warning is shown on clang. src/stash.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dda15b4748ac4b49360de1da410e6faee9988457 Author: Thomas Martitz Date: Mon Oct 11 13:36:14 2021 +0200 Bugfix update-scintilla.sh, now copies Lex*.cpp too. scripts/update-scintilla.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7d4815cd72f13836be08550fcf313994f0072b51 Author: Thomas Martitz Date: Mon Oct 11 13:09:53 2021 +0200 Install SciLexer.h that got lost during the lexilla transition Also update some place where its old path was mentioned. scintilla/Makefile.am | 3 ++- scripts/update-scintilla.sh | 4 ++-- src/highlighting.c | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) commit 36f7511173c251db14615a17af464cd63a75e98d Author: Enrico Tröger Date: Sun Oct 10 16:42:15 2021 +0200 Generate Python identifiers only for Python 3 Python 2 is EOL since almost two years now, so remove Python2 keywords and simplify the script to generate them. data/filedefs/filetypes.python.in | 8 ++++---- scripts/update-python-identifiers.sh | 14 +++++--------- 2 files changed, 9 insertions(+), 13 deletions(-) commit b90059829a90087950ee98220a6caceb690cab89 Author: Enrico Tröger Date: Sun Oct 10 16:38:15 2021 +0200 Fix target filename for updating Python identifiers in filetype definition scripts/update-python-identifiers.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7694aa5acb730fb7d0bbd1b4212140e63d315215 Author: Thomas Martitz Date: Sun Oct 10 01:46:37 2021 +0200 Update to Scintilla5 (#2867) * Update Scintilla to version 5.1.1 A few notes: - C++17 is required Not exactly new since we already imported the latest julia lexer. - upstream split out lexers into a lexilla library We do "comply" by building a separate static library. So in effect, all lexers are built-in like before. In the future it may be possible to add lexer plugins at runtime. - Lexer IDs are deprecated in favor of names For now we use LexerNameFromID() to map IDs to names but we should transition to names soon. That being said, the upstream transition seems also not complete. There is no name-based version of SCI_GETLEXER, so we're stuck with IDs there. Closes #2824 * Update scintilla_changes.patch The "which lexers" part is now a separate function that should be less of a pain when updating to scintilla version that adds lexers. * Update update-scintilla.sh You need to extract lexilla sources too now and pass it to the script. Also the script calls dos2unix for the files, kill that CRLF! configure.ac | 1 - plugins/Makefile.am | 1 + scintilla/License.txt | 4 +- scintilla/Makefile.am | 341 +- scintilla/gtk/PlatGTK.cxx | 1211 +++--- scintilla/gtk/ScintillaGTK.cxx | 639 +-- scintilla/gtk/ScintillaGTK.h | 61 +- scintilla/gtk/ScintillaGTKAccessible.cxx | 189 +- scintilla/gtk/ScintillaGTKAccessible.h | 18 +- scintilla/include/Compat.h | 70 - scintilla/include/ILexer.h | 22 +- scintilla/include/ILoader.h | 4 + scintilla/include/Makefile.am | 15 - scintilla/include/Platform.h | 549 --- scintilla/include/Scintilla.h | 117 +- scintilla/include/Scintilla.iface | 2459 +----------- scintilla/include/ScintillaCall.h | 881 ++++ scintilla/include/ScintillaMessages.h | 788 ++++ scintilla/include/ScintillaStructures.h | 103 + scintilla/include/ScintillaTypes.h | 803 ++++ scintilla/julia_lexilla_v5.patch | 36 - scintilla/lexilla/License.txt | 20 + scintilla/lexilla/include/LexicalStyles.iface | 2252 +++++++++++ scintilla/lexilla/include/Lexilla.h | 108 + scintilla/{ => lexilla}/include/SciLexer.h | 22 +- scintilla/{ => lexilla}/lexers/LexAbaqus.cxx | 5 +- scintilla/{ => lexilla}/lexers/LexAda.cxx | 3 +- scintilla/{ => lexilla}/lexers/LexAsm.cxx | 9 +- scintilla/{ => lexilla}/lexers/LexBash.cxx | 7 +- scintilla/{ => lexilla}/lexers/LexBasic.cxx | 11 +- scintilla/{ => lexilla}/lexers/LexBatch.cxx | 57 +- scintilla/{ => lexilla}/lexers/LexCOBOL.cxx | 5 +- scintilla/{ => lexilla}/lexers/LexCPP.cxx | 134 +- scintilla/{ => lexilla}/lexers/LexCSS.cxx | 5 +- scintilla/{ => lexilla}/lexers/LexCaml.cxx | 139 +- scintilla/{ => lexilla}/lexers/LexCmake.cxx | 5 +- scintilla/{ => lexilla}/lexers/LexCoffeeScript.cxx | 5 +- scintilla/{ => lexilla}/lexers/LexD.cxx | 9 +- scintilla/{ => lexilla}/lexers/LexDiff.cxx | 5 +- scintilla/{ => lexilla}/lexers/LexErlang.cxx | 17 +- scintilla/{ => lexilla}/lexers/LexForth.cxx | 5 +- scintilla/{ => lexilla}/lexers/LexFortran.cxx | 5 +- scintilla/{ => lexilla}/lexers/LexHTML.cxx | 69 +- scintilla/{ => lexilla}/lexers/LexHaskell.cxx | 9 +- scintilla/{ => lexilla}/lexers/LexJulia.cxx | 12 +- scintilla/{ => lexilla}/lexers/LexLaTeX.cxx | 8 +- scintilla/{ => lexilla}/lexers/LexLisp.cxx | 5 +- scintilla/{ => lexilla}/lexers/LexLua.cxx | 49 +- scintilla/{ => lexilla}/lexers/LexMake.cxx | 5 +- scintilla/{ => lexilla}/lexers/LexMarkdown.cxx | 67 +- scintilla/{ => lexilla}/lexers/LexMatlab.cxx | 7 +- scintilla/{ => lexilla}/lexers/LexNsis.cxx | 5 +- scintilla/{ => lexilla}/lexers/LexNull.cxx | 5 +- scintilla/{ => lexilla}/lexers/LexPO.cxx | 5 +- scintilla/{ => lexilla}/lexers/LexPascal.cxx | 5 +- scintilla/{ => lexilla}/lexers/LexPerl.cxx | 7 +- scintilla/{ => lexilla}/lexers/LexPowerShell.cxx | 5 +- scintilla/{ => lexilla}/lexers/LexProps.cxx | 3 +- scintilla/{ => lexilla}/lexers/LexPython.cxx | 7 +- scintilla/{ => lexilla}/lexers/LexR.cxx | 5 +- scintilla/{ => lexilla}/lexers/LexRuby.cxx | 55 +- scintilla/{ => lexilla}/lexers/LexRust.cxx | 7 +- scintilla/{ => lexilla}/lexers/LexSQL.cxx | 7 +- scintilla/{ => lexilla}/lexers/LexSmalltalk.cxx | 5 +- scintilla/{ => lexilla}/lexers/LexTCL.cxx | 12 +- scintilla/{ => lexilla}/lexers/LexTxt2tags.cxx | 5 +- scintilla/{ => lexilla}/lexers/LexVHDL.cxx | 5 +- scintilla/{ => lexilla}/lexers/LexVerilog.cxx | 7 +- scintilla/{ => lexilla}/lexers/LexYAML.cxx | 15 +- scintilla/{ => lexilla}/lexlib/Accessor.cxx | 9 +- scintilla/{ => lexilla}/lexlib/Accessor.h | 6 +- scintilla/{ => lexilla}/lexlib/CatalogueModules.h | 8 +- .../{ => lexilla}/lexlib/CharacterCategory.cxx | 149 +- scintilla/{ => lexilla}/lexlib/CharacterCategory.h | 2 +- scintilla/{ => lexilla}/lexlib/CharacterSet.cxx | 4 +- scintilla/{ => lexilla}/lexlib/CharacterSet.h | 103 +- scintilla/{ => lexilla}/lexlib/DefaultLexer.cxx | 11 +- scintilla/{ => lexilla}/lexlib/DefaultLexer.h | 10 +- scintilla/lexilla/lexlib/LexAccessor.cxx | 70 + scintilla/{ => lexilla}/lexlib/LexAccessor.h | 43 +- scintilla/{ => lexilla}/lexlib/LexerBase.cxx | 13 +- scintilla/{ => lexilla}/lexlib/LexerBase.h | 10 +- scintilla/{ => lexilla}/lexlib/LexerModule.cxx | 5 +- scintilla/{ => lexilla}/lexlib/LexerModule.h | 8 +- .../{ => lexilla}/lexlib/LexerNoExceptions.cxx | 9 +- scintilla/{ => lexilla}/lexlib/LexerNoExceptions.h | 10 +- scintilla/{ => lexilla}/lexlib/LexerSimple.cxx | 7 +- scintilla/{ => lexilla}/lexlib/LexerSimple.h | 8 +- scintilla/{ => lexilla}/lexlib/OptionSet.h | 4 +- scintilla/lexilla/lexlib/PropSetSimple.cxx | 75 + scintilla/lexilla/lexlib/PropSetSimple.h | 31 + scintilla/{ => lexilla}/lexlib/SparseState.h | 2 +- scintilla/{ => lexilla}/lexlib/StringCopy.h | 2 +- scintilla/{ => lexilla}/lexlib/StyleContext.cxx | 35 +- scintilla/{ => lexilla}/lexlib/StyleContext.h | 11 +- scintilla/{ => lexilla}/lexlib/SubStyles.h | 46 +- scintilla/{ => lexilla}/lexlib/WordList.cxx | 2 +- scintilla/{ => lexilla}/lexlib/WordList.h | 2 +- scintilla/lexilla/src/Lexilla.cxx | 432 ++ scintilla/lexilla/version.txt | 1 + scintilla/lexlib/PropSetSimple.cxx | 157 - scintilla/lexlib/PropSetSimple.h | 28 - scintilla/scintilla_changes.patch | 214 +- scintilla/src/AutoComplete.cxx | 61 +- scintilla/src/AutoComplete.h | 16 +- scintilla/src/CallTip.cxx | 168 +- scintilla/src/CallTip.h | 25 +- scintilla/src/CaseConvert.cxx | 65 +- scintilla/src/CaseConvert.h | 18 +- scintilla/src/CaseFolder.cxx | 4 +- scintilla/src/CaseFolder.h | 2 +- scintilla/src/Catalogue.cxx | 117 - scintilla/src/Catalogue.h | 24 - scintilla/src/CellBuffer.cxx | 250 +- scintilla/src/CellBuffer.h | 54 +- scintilla/src/CharClassify.cxx | 20 +- scintilla/src/CharClassify.h | 17 +- scintilla/src/CharacterCategoryMap.cxx | 4105 +++++++++++++++++++ scintilla/src/CharacterCategoryMap.h | 52 + scintilla/src/CharacterType.cxx | 51 + scintilla/src/CharacterType.h | 112 + scintilla/src/ContractionState.cxx | 22 +- scintilla/src/ContractionState.h | 2 +- scintilla/src/DBCS.cxx | 16 +- scintilla/src/DBCS.h | 3 +- scintilla/src/Debugging.h | 44 + scintilla/src/Decoration.cxx | 27 +- scintilla/src/Decoration.h | 2 +- scintilla/src/Document.cxx | 850 ++-- scintilla/src/Document.h | 97 +- scintilla/src/EditModel.cxx | 51 +- scintilla/src/EditModel.h | 15 +- scintilla/src/EditView.cxx | 1408 ++++--- scintilla/src/EditView.h | 89 +- scintilla/src/Editor.cxx | 4217 +++++++++++--------- scintilla/src/Editor.h | 284 +- scintilla/src/ElapsedPeriod.h | 14 +- scintilla/src/ExternalLexer.cxx | 221 - scintilla/src/ExternalLexer.h | 17 - scintilla/src/FontQuality.h | 14 +- scintilla/src/Geometry.cxx | 98 + scintilla/src/Geometry.h | 311 ++ scintilla/src/Indicator.cxx | 284 +- scintilla/src/Indicator.h | 25 +- scintilla/src/IntegerRectangle.h | 29 - scintilla/src/KeyMap.cxx | 202 +- scintilla/src/KeyMap.h | 38 +- scintilla/src/LineMarker.cxx | 670 ++-- scintilla/src/LineMarker.h | 24 +- scintilla/src/MarginView.cxx | 299 +- scintilla/src/MarginView.h | 11 +- scintilla/src/Partitioning.h | 11 +- scintilla/src/PerLine.cxx | 41 +- scintilla/src/PerLine.h | 2 +- scintilla/src/Platform.h | 379 ++ scintilla/src/Position.h | 2 +- scintilla/src/PositionCache.cxx | 530 ++- scintilla/src/PositionCache.h | 120 +- scintilla/src/RESearch.cxx | 27 +- scintilla/src/RESearch.h | 2 +- scintilla/src/RunStyles.cxx | 23 +- scintilla/src/RunStyles.h | 2 +- scintilla/src/SVector.h | 123 - scintilla/src/ScintillaBase.cxx | 600 ++- scintilla/src/ScintillaBase.h | 32 +- scintilla/src/Selection.cxx | 32 +- scintilla/src/Selection.h | 16 +- scintilla/src/SparseVector.h | 6 +- scintilla/src/SplitVector.h | 49 +- scintilla/src/Style.cxx | 65 +- scintilla/src/Style.h | 53 +- scintilla/src/UniConversion.cxx | 111 +- scintilla/src/UniConversion.h | 29 +- scintilla/src/UnicodeFromUTF8.h | 32 - scintilla/src/UniqueString.cxx | 15 +- scintilla/src/UniqueString.h | 6 +- scintilla/src/ViewStyle.cxx | 472 ++- scintilla/src/ViewStyle.h | 186 +- scintilla/src/XPM.cxx | 53 +- scintilla/src/XPM.h | 20 +- scintilla/version.txt | 2 +- scripts/update-scintilla.sh | 68 +- src/Makefile.am | 2 + src/sciwrappers.c | 7 +- 184 files changed, 19749 insertions(+), 10977 deletions(-) commit 11a1f32fd490b3918d069f0d05cca5bbc6c4b5ad Author: Colomban Wendling Date: Sat Oct 9 17:43:42 2021 +0200 Post release version bump Say hello to Geany 1.39 "Pryce"! It might end up with another version number, but 1.39 is good enough for now at least. NEWS | 3 +++ configure.ac | 2 +- doc/geany.txt | 2 +- geany.exe.manifest | 2 +- geany_private.rc | 4 ++-- src/geany.h | 2 +- 6 files changed, 9 insertions(+), 6 deletions(-) commit acb7b066c1ecfdba5a8e0ea9e0ddea894b2c6670 Author: Enrico Tröger Date: Sat Oct 9 16:57:35 2021 +0200 NEWS for release 1.38 NEWS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a740f661ecfb22b0d0395332b476c0359744aa1f Author: Colomban Wendling Date: Sat Oct 9 16:55:30 2021 +0200 Update French translation NEWS | 2 +- po/fr.po | 32 +++++++++++++++++--------------- 2 files changed, 18 insertions(+), 16 deletions(-) commit b10b42b7e7cdbf38f3e51bc813d2a61936f618cd Author: Colomban Wendling Date: Sat Oct 9 15:47:55 2021 +0200 Fix a signal parameter documentation doc/pluginsignals.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ea311cd0cc759a71bbc4564e88cdd94f8ae9c548 Author: Frank Lanitz Date: Sat Oct 9 13:11:52 2021 +0200 Update of German translation po/de.po | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) commit 7c357d3c31598b0a79e301f15655a4a4fe64fa33 Author: Enrico Tröger Date: Sat Oct 9 13:08:57 2021 +0200 Set release date NEWS | 2 +- doc/geany.1.in | 2 +- doc/geany.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit b4946586c199117c950a9d8d10354ce04a457def Author: Enrico Tröger Date: Sat Oct 9 13:07:26 2021 +0200 NEWS for release 1.38 NEWS | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) commit 2977a91f6425d7062dc2d9130720ff5cdeff7dc1 Author: Enrico Tröger Date: Thu Sep 30 08:27:14 2021 +0200 Remove left over lock file from intltool on "make distcheck" Debian and ArchLinux (and maybe more) patched their "intltool" package to use a lock file. But this lock file is not removed after its use and so "make distcheck" complains about it. Makefile.am | 6 ++++++ 1 file changed, 6 insertions(+) commit 9fd7e7afa947d915d621fd069df3e0a96a0b9477 Author: Enrico Tröger Date: Mon Sep 6 23:33:17 2021 +0200 Windows: Install development files by default with "Full" install target This helps with automated CI installations and should be OK for ordinary users. geany.nsi.in | 1 + 1 file changed, 1 insertion(+) commit ad4f4747838d02a05517b7e0be74c01dc983c2c9 Author: Enrico Tröger Date: Wed Sep 1 23:28:27 2021 +0200 Windows: Update indirect dependencies for bundle creation scripts/gtk-bundle-from-msys2.sh | 44 +++++++++++++++++----------------------- 1 file changed, 19 insertions(+), 25 deletions(-) commit 0f856a4a0e9076dbc6636f3aca351034b2b08302 Author: Enrico Tröger Date: Tue Aug 31 00:19:12 2021 +0200 Windows: Compile and include GSettings schemas on bundle creation Without these schemas, Geany crashes when the file open dialog is shown. scripts/gtk-bundle-from-msys2.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8395267fc9f285f49d9dc66fb06abcaf43981593 Author: Enrico Tröger Date: Tue Aug 31 00:17:25 2021 +0200 Windows: Ignore Pacman cache on bundle creation Also use long command line arguments for curl to fix a typo in -L. scripts/gtk-bundle-from-msys2.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 999e918b6c10e1d86b66cdc6a01dccec3772e486 Author: Enrico Tröger Date: Tue Aug 31 00:12:37 2021 +0200 Windows: Ignore package signatures on bundle creation scripts/gtk-bundle-from-msys2.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit b15aa208fa7308ba6f269d409503283280c7fde6 Author: Enrico Tröger Date: Sat Nov 7 12:03:11 2020 +0100 Windows: Replace GTK2 by (upcoming) GTK4 in bundle script scripts/gtk-bundle-from-msys2.sh | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit 3e69d3e833af3ccc50bd242bf5ab2145859b7599 Author: Enrico Tröger Date: Sun Sep 20 15:39:07 2020 +0200 Remove hard-coded paths and installer name from NSIS installer script This makes the paths for external resources configurable using command line flags (e.g. /DGEANY_THEMES_DIR=/something/geany-themes) and also the resulting installer filename can be set via command line flags. The "INCLUDE_GTK" command line is removed as we always include the GTK bundle. The GTK version detection was removed and now we always bundle the GTK3 specific CSS files. geany.nsi.in | 96 +++++++++++++++++++++++++++++------------------------------- 1 file changed, 47 insertions(+), 49 deletions(-) commit d452994a75627dc282ef3223b235fc379d090cb0 Author: Enrico Tröger Date: Sun Sep 20 15:16:15 2020 +0200 Windows: Create GTK bundle for x86_64 and suppt non-native execution Changes in the bundle creation script: - the GTK (and other dependencies) bundle is now created for the x86_64 platform - the new parameter "-x" allows to run script on a Linux system using Wine, therefore it is necessary to run the post-install scripts after all packages have been extracted. - use "-Sdd" for Pacman to ignore dependencies as we resolve them manually - do not use "tar -x --xz" as Pacman nowadays also downloads .zst packages, instead just download the file and let tar choose the format automatically based on the filename - install grep with Pacman as the build and target platform are now identical - update GTK dependencies to match current packages scripts/gtk-bundle-from-msys2.sh | 105 ++++++++++++++++++++++++--------------- 1 file changed, 64 insertions(+), 41 deletions(-) commit 5b307bc05dbb055a06dc83c1d749ffab46e259e4 Author: Frank Lanitz Date: Mon Oct 4 20:57:10 2021 +0200 Update of Greek translation po/el.po | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) commit 4c92873fb98b3aa6b58db11411786ff4621e9a3c Author: Frank Lanitz Date: Mon Oct 4 20:55:46 2021 +0200 Update Japanese translation po/ja.po | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) commit 8d22d7551b9ddbd145a8c2a3128598a44ad05a04 Author: Enrico Tröger Date: Sun Sep 5 16:03:12 2021 +0200 Windows: Do not manually realize the main window prematurely This has been added in 9431eea24 but seems no longer necessary and actually causes problems with setting the message window height. After each start of Geany, the message window will be set a bit lower until it is not visible anymore at all. The manual realize step was maybe necessary with older GTK2 versions but actually works contrarily on recent GTK3 builds. Fixes #2591. src/libmain.c | 5 ----- 1 file changed, 5 deletions(-) commit bc8be1fb820c7f0884d77dbe5a550a706a5af560 Merge: 1f7906373 3a9ebdc20 Author: Frank Lanitz Date: Sat Oct 2 09:41:58 2021 +0200 Merge pull request #2908 from andrej-herceg/sk-po Update of Slovak translation commit 1f7906373eae66912b47011f78a5761018cfec34 Merge: 5cc6f1a46 16bee9ee6 Author: Frank Lanitz Date: Sat Oct 2 09:41:40 2021 +0200 Merge pull request #2909 from xhacker/zh-CN-update Update zh_CN localization commit 5cc6f1a46d1b901624071522cd39a60ca283590d Merge: 4166618d3 dea971184 Author: Frank Lanitz Date: Sat Oct 2 09:41:26 2021 +0200 Merge pull request #2913 from seqizz/g_trupdate Update Turkish translation commit dea9711847c0dda4863ca7e810f44b6588145ccb Author: Gürkan Gür Date: Fri Oct 1 21:06:01 2021 +0200 Update Turkish translation po/tr.po | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) commit 4166618d303f02f28064b9fd17214982e38d021c Author: Andy Alt Date: Thu Sep 30 15:52:25 2021 -0500 Add @mesonbuild filetype support (#2850) data/Makefile.am | 1 + data/filedefs/filetypes.Meson.conf | 13 +++++++++++++ data/filetype_extensions.conf | 3 ++- 3 files changed, 16 insertions(+), 1 deletion(-) commit 16bee9ee603978cd08e82e107c70a6315e73f69a Author: 柳东原 · Dongyuan Liu Date: Mon Sep 27 14:35:03 2021 +0800 Update zh_CN localization po/zh_CN.po | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) commit 3a9ebdc20bf6deaab2e5132f79fdf4d722654ddf Author: Andrej Herceg Date: Sun Sep 26 12:14:14 2021 +0200 Update of Slovak translation po/sk.po | 70 ++++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) commit 8dc51a705b0ea830796dc23bd87f582a2090e9a9 Author: Frank Lanitz Date: Sat Sep 25 13:46:48 2021 +0200 Update of Portuguese translation NEWS | 2 +- po/pt.po | 79 ++++++++++++++++++++++++++++++++-------------------------------- 2 files changed, 41 insertions(+), 40 deletions(-) commit d7821c7502dadfe20278ebdaf42d58054ffa529d Author: Frank Lanitz Date: Sat Sep 25 09:11:09 2021 +0200 Add i18n section to 1.38's news NEWS | 4 ++++ 1 file changed, 4 insertions(+) commit a79d9f868bbfd6383f033bae2b3c19359191ad25 Merge: 72e0346cc ad0afb921 Author: Frank Lanitz Date: Sat Sep 25 09:10:01 2021 +0200 Merge pull request #2902 from scootergrisen/patch-8 Update Danish translation to 1.38 commit 72e0346ccb6a32bba9b0fa91c03ae61c2ace1cae Merge: b8cd6d4fc 0de5da0b2 Author: Frank Lanitz Date: Sat Sep 25 09:09:28 2021 +0200 Merge pull request #2901 from giuspen/it_po updated it.po commit b8cd6d4fc13c7eea95d4846fed620237bccf6c7b Merge: 9fdd3024a 99e035373 Author: Frank Lanitz Date: Sat Sep 25 09:08:58 2021 +0200 Merge pull request #2904 from lucasvieites/patch-1 Updated es.po for 1.38 commit 99e035373051e23db48f87750b44657e3b174c1d Author: Lucas Vieites Date: Wed Sep 22 09:34:36 2021 +0200 Updated es.po for 1.38 Updated es.po for 1.38 po/es.po | 49 +++++++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 24 deletions(-) commit ad0afb92122697fe8a5d13426e07af41cf1ce99a Author: scootergrisen Date: Tue Sep 21 20:30:32 2021 +0200 Update Danish translation to 1.38 po/da.po | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) commit 0de5da0b297fd729e72e8d85199945a1572f198d Author: Giuseppe Penone Date: Tue Sep 21 19:19:09 2021 +0100 updated it.po po/it.po | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) commit 9fdd3024a8481f59838fa4295e8765bcd89941bf Author: Frank Lanitz Date: Tue Sep 21 19:04:19 2021 +0200 Update po files for string freeze of 1.38 release po/ar.po | 1398 ++++++++++++++++++++++++++++++---------------------------- po/ast.po | 1398 ++++++++++++++++++++++++++++++---------------------------- po/be.po | 1399 ++++++++++++++++++++++++++++++---------------------------- po/bg.po | 1397 ++++++++++++++++++++++++++++++---------------------------- po/ca.po | 1400 ++++++++++++++++++++++++++++++---------------------------- po/cs.po | 1407 +++++++++++++++++++++++++++++----------------------------- po/da.po | 1289 ++++++++++++++++++++++++++++-------------------------- po/de.po | 1396 ++++++++++++++++++++++++++++++---------------------------- po/el.po | 1399 ++++++++++++++++++++++++++++++---------------------------- po/en_GB.po | 1404 ++++++++++++++++++++++++++++++---------------------------- po/es.po | 1401 ++++++++++++++++++++++++++++++---------------------------- po/et.po | 1399 ++++++++++++++++++++++++++++++---------------------------- po/eu.po | 1398 ++++++++++++++++++++++++++++++---------------------------- po/fa.po | 1404 ++++++++++++++++++++++++++++++---------------------------- po/fi.po | 1399 ++++++++++++++++++++++++++++++---------------------------- po/fr.po | 1406 +++++++++++++++++++++++++++++----------------------------- po/gl.po | 1401 ++++++++++++++++++++++++++++++---------------------------- po/he.po | 1399 ++++++++++++++++++++++++++++++---------------------------- po/hi.po | 1393 ++++++++++++++++++++++++++++++---------------------------- po/hu.po | 1399 ++++++++++++++++++++++++++++++---------------------------- po/id.po | 1405 ++++++++++++++++++++++++++++++---------------------------- po/ie.po | 1399 ++++++++++++++++++++++++++++++---------------------------- po/it.po | 1399 ++++++++++++++++++++++++++++++---------------------------- po/ja.po | 1402 ++++++++++++++++++++++++++++++---------------------------- po/kk.po | 1399 ++++++++++++++++++++++++++++++---------------------------- po/ko.po | 1398 ++++++++++++++++++++++++++++++---------------------------- po/ku.po | 1398 ++++++++++++++++++++++++++++++---------------------------- po/lb.po | 1400 ++++++++++++++++++++++++++++++---------------------------- po/lt.po | 1399 ++++++++++++++++++++++++++++++---------------------------- po/lv.po | 1399 ++++++++++++++++++++++++++++++---------------------------- po/mn.po | 1397 ++++++++++++++++++++++++++++++---------------------------- po/nl.po | 1399 ++++++++++++++++++++++++++++++---------------------------- po/nn.po | 1396 ++++++++++++++++++++++++++++++---------------------------- po/pl.po | 1408 +++++++++++++++++++++++++++++----------------------------- po/pt.po | 1399 ++++++++++++++++++++++++++++++---------------------------- po/pt_BR.po | 1410 ++++++++++++++++++++++++++++++----------------------------- po/ro.po | 1398 ++++++++++++++++++++++++++++++---------------------------- po/ru.po | 1399 ++++++++++++++++++++++++++++++---------------------------- po/sk.po | 1402 ++++++++++++++++++++++++++++++---------------------------- po/sl.po | 1400 ++++++++++++++++++++++++++++++---------------------------- po/sr.po | 1398 ++++++++++++++++++++++++++++++---------------------------- po/sv.po | 1405 ++++++++++++++++++++++++++++++---------------------------- po/tr.po | 1288 +++++++++++++++++++++++++++-------------------------- po/uk.po | 1364 +++++++++++++++++++++++++++++---------------------------- po/vi.po | 1398 ++++++++++++++++++++++++++++++---------------------------- po/zh_CN.po | 1399 ++++++++++++++++++++++++++++++---------------------------- po/zh_TW.po | 1399 ++++++++++++++++++++++++++++++---------------------------- 47 files changed, 33898 insertions(+), 31645 deletions(-) commit 5e9be8324c9c835189ec5d4bed557cb095e20a3b Author: Enrico Tröger Date: Sun Sep 19 15:16:06 2021 +0200 SaveActions: Add configurable target directory for instantly saved files (#2769) Closes #640. plugins/saveactions.c | 118 +++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 92 insertions(+), 26 deletions(-) commit 75f79e1608afb1e3ed3bd0174fcd1fb9fbf72cad Merge: 917edb52a b636e3b3c Author: Frank Lanitz Date: Sun Sep 19 14:54:26 2021 +0200 Merge pull request #2855 from RobinvanderVliet/patch-1 Update Dutch translation (nl) commit 917edb52a858ee5df9e6ed7df998b948b664a74b Merge: e61fec9cc f476303b9 Author: Frank Lanitz Date: Sun Sep 19 14:53:44 2021 +0200 Merge pull request #2789 from scootergrisen/patch-7 Update danish translation commit e61fec9cc30fa2da873812808fefe5f6f5f6040c Merge: 22778bb49 6da3d0c83 Author: Frank Lanitz Date: Sun Sep 19 14:52:59 2021 +0200 Merge pull request #2816 from Jalakas/master Update Estonian translation commit 22778bb4921ec6154581aa974b3a8d963ee38322 Merge: 6ffaf515e dcd01103d Author: Frank Lanitz Date: Sun Sep 19 14:50:36 2021 +0200 Merge pull request #2881 from wsalmeida/master Changed pt_BR.po commit 6ffaf515ef66d84ebece41abffda3bcdc390ab44 Author: Enrico Tröger Date: Thu Sep 16 23:18:13 2021 +0200 Add data/filedefs/filetypes.python to .gitignore .gitignore | 1 + 1 file changed, 1 insertion(+) commit 09706bdf8bd61f740a053aa1ea709fc4f65845c5 Author: Enrico Tröger Date: Sun Nov 15 14:15:42 2020 +0100 Add microseconds to timestamp in debug log messages src/log.c | 2 +- src/msgwindow.c | 2 +- src/utils.c | 19 ++++++++++--------- src/utils.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) commit 3608d6717b092e3d69acbd7c023b4c2f1f914c41 Author: David Yang Date: Sun Sep 12 18:12:00 2021 +0800 Add reload all keybinding (#2859) doc/geany.txt | 2 ++ src/callbacks.c | 37 +++++++++++++++++++++++++++++++++++++ src/callbacks.h | 2 ++ src/keybindings.c | 5 +++++ src/keybindings.h | 2 ++ src/plugindata.h | 2 +- 6 files changed, 49 insertions(+), 1 deletion(-) commit ebf7d80f6ba645e44bbc235efeda49c78ffccc1a Author: Matthew Brush Date: Mon Sep 6 17:17:58 2021 -0700 Update C++ compiler check to require C++17 (#2862) configure.ac | 2 +- m4/ax_cxx_compile_stdcxx.m4 | 962 +++++++++++++++++++++++++++++++++++++++++ m4/ax_cxx_compile_stdcxx_11.m4 | 142 ------ m4/ax_cxx_compile_stdcxx_17.m4 | 35 ++ 4 files changed, 998 insertions(+), 143 deletions(-) commit 6d9e24e78d053758f3db682ff1af3231159608f6 Author: Enrico Tröger Date: Sat Sep 4 00:25:00 2021 +0200 Use "encoding" keyword argument for lxml's tostring() Newer versions of libxml2 (used by lxml) crash in tostring() when no encoding argument is present. Passing "unicode" as encoding makes tostring() returning already a Python unicode string, so we don't need to decode it anymore. scripts/gen-api-gtkdoc.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit b7bd5fa38ef832451dc8ca22d8ae1d9aa10fb4c1 Author: Justin Blanchard Date: Thu Sep 2 18:21:12 2021 -0400 Correct the backport of UniqueStringSet::Save to Scintilla 3.x. (String comparison was intended, not identity.) Fixes #2883. (#2884) scintilla/src/UniqueString.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dcd01103df4e2608dbb0a615f6eb2cbd45a389ef Author: Wellington Almeida <38542279+wsalmeida@users.noreply.github.com> Date: Mon Aug 30 17:16:08 2021 -0300 Update pt_BR.po po/pt_BR.po | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit e7505dac1b38ff04bcf1ecdd3cea15a7e63c1a65 Author: Wellington Almeida <38542279+wsalmeida@users.noreply.github.com> Date: Mon Aug 30 16:45:00 2021 -0300 Update pt_BR.po po/pt_BR.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit b94e06dc35c6cb67be12a7a0145ad2c61ae2944e Author: Wellington Almeida <38542279+wsalmeida@users.noreply.github.com> Date: Sun Aug 29 23:02:25 2021 -0300 Update pt_BR.po po/pt_BR.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c4e65b36c6b980d1e4983d123ab51da7000f63d9 Author: Wellington Almeida <38542279+wsalmeida@users.noreply.github.com> Date: Sun Aug 29 20:04:31 2021 -0300 Update pt_BR.po po/pt_BR.po | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 6bf03cc98e6f74bfa48a71d06686e47726e5b948 Author: Wellington Almeida <38542279+wsalmeida@users.noreply.github.com> Date: Sun Aug 29 15:19:08 2021 -0300 Update pt_BR.po po/pt_BR.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit b636e3b3c160cffa099f87dbbfda4bbb4a442bf4 Author: Robin van der Vliet Date: Mon Jul 26 18:34:52 2021 +0200 Update Dutch translation (nl) po/nl.po | 96 +++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 50 insertions(+), 46 deletions(-) commit 90c6096ed6ea167f9100ce8f74229a3f47acc29a Author: getzze Date: Tue Jul 20 05:05:49 2021 +0100 Create julia lexer and tags parser (#2584) * Create julia parser, ctags and lexilla * add ctags test file ctags/Makefile.am | 1 + ctags/parsers/geany_julia.c | 1554 +++++++++++++++++++++++++++++++++++++ data/Makefile.am | 1 + data/filedefs/filetypes.common | 3 + data/filedefs/filetypes.julia | 81 ++ data/filetype_extensions.conf | 1 + scintilla/Makefile.am | 1 + scintilla/include/SciLexer.h | 23 + scintilla/include/Scintilla.iface | 25 + scintilla/julia_lexilla_v5.patch | 36 + scintilla/lexers/LexJulia.cxx | 1269 ++++++++++++++++++++++++++++++ scintilla/src/Catalogue.cxx | 1 + src/filetypes.c | 1 + src/filetypes.h | 1 + src/highlighting.c | 12 + src/highlightingmappings.h | 36 + src/symbols.c | 14 + src/tagmanager/tm_parser.c | 14 + src/tagmanager/tm_parser.h | 1 + src/tagmanager/tm_parsers.h | 1 + tests/ctags/julia-corner_cases.jl | 500 ++++++++++++ 21 files changed, 3576 insertions(+) commit f94d7ea6aab73371b10b4b063b8d4769e52acc8f Author: elextr Date: Mon Jul 12 12:43:18 2021 +1000 Set ctrl-shift-v to properties to stop it crashing VTE (#2843) Some VTE versions crash if paste happens with focus outside the window, bind the accelerator to something innocuous in Geany to override it outside the VTE window. src/keybindings.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6da3d0c83bd91acd383183e04902eb03f9a774a6 Author: Jalakas Date: Sat May 29 21:12:41 2021 +0300 Update Estonian translation po/et.po | 1162 +++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 620 insertions(+), 542 deletions(-) commit 55f0c8ceadca54b8fb82e271b2f5d462e77c3daf Author: Thomas Martitz Date: Sat May 29 14:34:10 2021 +0200 session.conf split follow-up #2 (#2779) Also store some UI-related prefs in the new session.conf, that is: treeview_position=156 msgwindow_position=593 geometry=0;57;1176;825;0; src/keyfile.c | 45 ++++++++++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 19 deletions(-) commit b524a58e12e85c94a32f64fb72615978b2628af1 Merge: 9368d79fa 973623032 Author: Thomas Martitz Date: Sat May 29 14:17:04 2021 +0200 Merge branch 'gh-codebrainz/remove-gtk2' into master This merge removes GTK2 support entirely only GTK3 is left. Closes #2602 commit 9368d79fa3cdf6551ae6ad7fcd12841d85f54e03 Author: elextr Date: Mon May 24 19:22:14 2021 +1000 Update base distro in CI to one thats supported (#2814) .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f476303b91aa52775381c3aafa2ee7b9fd490151 Author: scootergrisen Date: Sun Apr 18 19:06:37 2021 +0200 Update danish translation po/da.po | 186 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 93 insertions(+), 93 deletions(-) commit fcfb1b8fe4f4fc4306b335084acf6aecf0cff730 Author: Thomas Martitz Date: Wed Apr 7 13:09:04 2021 +0200 session.conf split follow-up Also store prefs within the [project] key in the new session.conf, that is: session_file=/path/to/geany.geany project_file_path=/home/user/Projekte src/keyfile.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b11d05a53cd3a18861b85b9da24f8ea9a6c6c93a Author: Adam Morris Date: Wed Apr 7 13:07:13 2021 +0200 Split geany.conf into geany.conf (preferences) and session.conf (recent files and VTE session) (#2776) Related to #1763. ## New behaviour Preferences are written to and read from `geany.conf` (like before), whereas "session data" is written to and read from `session.conf`. For the sake of backwards compatibility, if `session.conf` does not exist, the data is read from `geany.conf` instead. ## Implementation I introduced an `enum` in `src/keyfile.c` called `ConfigPayload` which determines whether to read/write preference-data or session-data. The strings `"geany.conf"` and `"session.conf"` are now defined as preprocessor macros `PREFERENCES_FILE` and `SESSION_FILE`, respectively. ## Matters of taste - The old recent files are not cleared from `geany.conf` - The string `"geany.conf"` still appears in `src/keybindings.c` and `src/libmain.c`, so changing the `PREFERENCES_FILE` macro in `src/keyfile.c` is not enough to rename this file. src/keyfile.c | 109 ++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 76 insertions(+), 33 deletions(-) commit 41624c411702d29834da0ff926f3c9f7c895bb47 Author: Frank Lanitz Date: Sun Mar 21 09:18:17 2021 +0100 Update of Turkish translation po/tr.po | 341 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 167 insertions(+), 174 deletions(-) commit 77630564ad5446df89e9973f74bd378a84fc817e Merge: e027e240c 7b7f0def0 Author: Frank Lanitz Date: Sat Feb 13 21:50:46 2021 +0100 Merge pull request #2724 from nomadbyte/po/uk PO:(uk) Update translation commit e027e240c279040c2f6bc9ea0aaccc2cac2ca94e Merge: 01604687a f600937dd Author: Colomban Wendling Date: Sun Feb 7 22:37:55 2021 +0100 Merge pull request #2747 from geany/startup-speed Fix startup speed commit 01604687a7f61aab7e841b2d2cfe9872d8856dfc Merge: d9f8cdbad c5303c949 Author: Colomban Wendling Date: Sun Feb 7 22:26:12 2021 +0100 Merge pull request #2666 from techee/ctags_sync5 Synchronize with upstream universal-ctags commit f600937dd8f592ff00150867537166b2d86aa4dd Author: Colomban Wendling Date: Fri Feb 5 14:32:34 2021 +0100 Use plain comparison instead of naive hashing It voids any kind of clashes, and is possibly easier to understand. It results in a slight memory overhead sorting a little more cache data, but it should not matter much here. src/sciwrappers.c | 44 +++++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 19 deletions(-) commit b08ae0fe65c0942dca20281d6841dc83406d8b5e Author: Colomban Wendling Date: Thu Feb 4 22:54:13 2021 +0100 Aggressively cache line height for computing margin sizes Computing the line height is a very costly operation that involves font loading and measuring, but the value stays mostly the same over time, as it depends on font, zoom and a couple other style settings which rarely change. As line height used to compute margin widths dominates startup timings, we now cache the latest result. This caching makes line height computation barely noticeable in startup times now. Fixes #2649. src/sciwrappers.c | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) commit b0160ec162e4d34a73307d02d41e073aa96e6987 Author: Colomban Wendling Date: Thu Feb 4 22:49:26 2021 +0100 Avoid redundant margin computation when creating a new Scintilla widget Avoid recomputing margin widths 2 or 3 times when initially creating the editing widget. As computing the margin widths might be costly, this can make widget creation about twice as fast. Part of #2649. src/editor.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit 7b7f0def021715a44ac1e8c3938becb28270b71f Author: nomadbyte Date: Fri Jan 8 16:50:30 2021 -0600 PO:(uk) Update translation po/uk.po | 3865 +++++++++++++++++++++-------------------------------------- src/about.c | 5 +- 2 files changed, 1395 insertions(+), 2475 deletions(-) commit d9f8cdbad58d09f0c18ca8acccb49209263018f0 Author: Jan Dolinár Date: Tue Dec 29 05:09:13 2020 +0100 add comment_single configuration for kotlin (#2710) data/filedefs/filetypes.Kotlin.conf | 1 + 1 file changed, 1 insertion(+) commit 9f5b430458192388a7bf611943fc61b2a8b44246 Author: Edgar <40885610+etkaar@users.noreply.github.com> Date: Mon Dec 28 21:32:46 2020 +0100 Update search phrase for search/replace dialogs (#2697) Always use selected text on dialog reopening (especially when using shortcuts). src/search.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) commit d2740f21feb84b6f951398c6f683674b2b56bfed Author: Enrico Tröger Date: Sun Nov 15 12:48:05 2020 +0100 Remove unnecessary code when reading IPC socket port on Windows src/libmain.c | 8 -------- 1 file changed, 8 deletions(-) commit c5303c9499bb6f0d632e0ca5b42e15f84d64ac52 Author: Colomban Wendling Date: Sun Nov 22 22:35:24 2020 +0100 Check for asprintf and tempnam and cleanup function checks - Add the missing check for asprintf which brakes build on Windows/MSYS. - Add fallback check for tempnam if mkstemp is not found. - Group functions checks for u-ctags together. configure.ac | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit b1c9096394c9819342747f1215274af469a19483 Author: Colomban Wendling Date: Sun Nov 22 11:22:11 2020 +0100 Add bundled fnmatch from upstream ctags If we don't have `fnmatch()` (e.g. on Windows), use the bundled version from upstream ctags. configure.ac | 2 + ctags/Makefile.am | 15 +++- ctags/fnmatch/fnmatch.c | 190 ++++++++++++++++++++++++++++++++++++++++++++++++ ctags/fnmatch/fnmatch.h | 40 ++++++++++ 4 files changed, 246 insertions(+), 1 deletion(-) commit 33fc269ea8d4d03453489ca55a9ca208ec15aae2 Author: Colomban Wendling Date: Sat Nov 21 23:37:09 2020 +0100 Add GNU regex bundle from upstream ctags and use it if missing If we don't have `regcomp()` (e.g. on Windows), use the bundled GNU regex from upstream ctags. configure.ac | 8 + ctags/Makefile.am | 22 + ctags/gnu_regex/README.txt | 5 + ctags/gnu_regex/regcomp.c | 3818 +++++++++++++++++++++++++++++++++ ctags/gnu_regex/regex.c | 74 + ctags/gnu_regex/regex.h | 575 +++++ ctags/gnu_regex/regex_internal.c | 1715 +++++++++++++++ ctags/gnu_regex/regex_internal.h | 773 +++++++ ctags/gnu_regex/regexec.c | 4344 ++++++++++++++++++++++++++++++++++++++ 9 files changed, 11334 insertions(+) commit 3f0bb8ed4c2073387eba6686774497f974da7424 Author: Jiří Techet Date: Sat Nov 21 13:43:20 2020 -0800 Add a script performing update of Geany ctags from universal ctags The script: 1. Copies all parsers from universal ctags not starting with geany_ 2. Copies all files from universal ctags main 3. Prints files which were added/removed to/from main so the corresponding changes can be done manually in Makefile.am 4. Patches main with the provided patch scripts/update-ctags.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) commit ab681681312acea05b2a484e99dd25647d21dddd Author: Jiří Techet Date: Wed Nov 18 09:25:54 2020 -0800 Don't use tag identifier F It's used for file tags upstram and might interfere with it. ctags/parsers/geany_objc.c | 2 +- ctags/parsers/geany_ruby.c | 2 +- ctags/parsers/geany_rust.c | 2 +- ctags/parsers/geany_sql.c | 2 +- src/tagmanager/tm_parser.c | 8 ++++---- 5 files changed, 8 insertions(+), 8 deletions(-) commit 0347e7411661401f7ef82c26c646c5123fba6653 Author: Jiří Techet Date: Wed Nov 18 15:45:46 2020 -0800 Add the geany_ prefix to all parser files The geany_ prefix is meant to indicate that the parser either has a geany-specific implementation or that there are some things in the parser which should be committed upstream. Once a parser is fully synced with the upstream version, we can drop the geany_ prefix. This helps us know which parsers are synced (and for which we can just copy the uctags version) and where we still have some work to do. In this initial commit, add the geany_ prefix everywhere - some parsers are already fully synced and the geany_ prefix can be dropped when we update to the up-to-date uctags version. ctags/Makefile.am | 90 +++++++++++----------- ctags/parsers/{abaqus.c => geany_abaqus.c} | 0 ctags/parsers/{abc.c => geany_abc.c} | 0 ctags/parsers/{asciidoc.c => geany_asciidoc.c} | 0 ctags/parsers/{asm.c => geany_asm.c} | 0 ctags/parsers/{basic.c => geany_basic.c} | 0 ctags/parsers/{bibtex.c => geany_bibtex.c} | 0 ctags/parsers/{c.c => geany_c.c} | 2 +- ctags/parsers/{cobol.c => geany_cobol.c} | 0 ctags/parsers/{css.c => geany_css.c} | 0 ctags/parsers/{diff.c => geany_diff.c} | 0 ctags/parsers/{docbook.c => geany_docbook.c} | 0 ctags/parsers/{erlang.c => geany_erlang.c} | 0 ctags/parsers/{flex.c => geany_flex.c} | 0 ctags/parsers/{fortran.c => geany_fortran.c} | 0 ctags/parsers/{go.c => geany_go.c} | 0 ctags/parsers/{haskell.c => geany_haskell.c} | 0 ctags/parsers/{haxe.c => geany_haxe.c} | 0 ctags/parsers/{html.c => geany_html.c} | 0 ctags/parsers/{iniconf.c => geany_iniconf.c} | 0 ctags/parsers/{jscript.c => geany_jscript.c} | 0 ctags/parsers/{json.c => geany_json.c} | 0 ctags/parsers/{lcpp.c => geany_lcpp.c} | 2 +- ctags/parsers/{lcpp.h => geany_lcpp.h} | 0 ctags/parsers/{lua.c => geany_lua.c} | 0 ctags/parsers/{make.c => geany_make.c} | 0 ctags/parsers/{markdown.c => geany_markdown.c} | 0 ctags/parsers/{matlab.c => geany_matlab.c} | 0 ctags/parsers/{nsis.c => geany_nsis.c} | 0 ctags/parsers/{objc.c => geany_objc.c} | 0 ctags/parsers/{pascal.c => geany_pascal.c} | 0 ctags/parsers/{perl.c => geany_perl.c} | 0 ctags/parsers/{php.c => geany_php.c} | 0 ctags/parsers/{powershell.c => geany_powershell.c} | 0 ctags/parsers/{python.c => geany_python.c} | 0 ctags/parsers/{r.c => geany_r.c} | 0 ctags/parsers/{rst.c => geany_rst.c} | 0 ctags/parsers/{ruby.c => geany_ruby.c} | 0 ctags/parsers/{rust.c => geany_rust.c} | 0 ctags/parsers/{sh.c => geany_sh.c} | 0 ctags/parsers/{sql.c => geany_sql.c} | 0 ctags/parsers/{tcl.c => geany_tcl.c} | 0 ctags/parsers/{tex.c => geany_tex.c} | 0 ctags/parsers/{txt2tags.c => geany_txt2tags.c} | 0 ctags/parsers/{verilog.c => geany_verilog.c} | 2 +- ctags/parsers/{vhdl.c => geany_vhdl.c} | 0 46 files changed, 48 insertions(+), 48 deletions(-) commit 81c5a2e0ed653ccc36bd38483647a86d31556aa8 Author: Jiří Techet Date: Wed Nov 18 12:46:43 2020 -0800 Update HACKING HACKING | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) commit fffb3c2bf2e78255a7b32540a6587f7c6ab6a6e3 Author: Jiří Techet Date: Wed Nov 18 12:46:27 2020 -0800 Update tests tests/ctags/Package.pm.tags | 3 +++ tests/ctags/bug1938565.sql.tags | 2 ++ tests/ctags/random.sql.tags | 7 +++++++ tests/ctags/refcurs.sql.tags | 2 ++ 4 files changed, 14 insertions(+) commit a2ecdab6d79b19806a5be3feae2058292620f0cc Author: Jiří Techet Date: Wed Nov 18 12:44:07 2020 -0800 Update TM to use latest universal ctags Introduce new tm_ctags.c/h files which roughly correspond to the previously used ctags-api.c/h files and which serve as an interface between ctags and Geany. Move init_tag() and update_python_arglist() from tm_source_file.c to tm_ctags.c. Use the new functions from tm_ctags in the rest of the tag manager. Define external parser list inside tm_parsers.h which is injected to ctags using the EXTERNAL_PARSER_LIST macro. src/tagmanager/Makefile.am | 5 +- src/tagmanager/tm_ctags.c | 275 ++++++++++++++++++++++++++++++++++++++++ src/tagmanager/tm_ctags.h | 34 +++++ src/tagmanager/tm_parser.c | 21 ++- src/tagmanager/tm_parser.h | 2 +- src/tagmanager/tm_parsers.h | 70 ++++++++++ src/tagmanager/tm_source_file.c | 133 ++----------------- src/tagmanager/tm_source_file.h | 4 + src/tagmanager/tm_tag.c | 2 +- src/tagmanager/tm_workspace.c | 10 +- 10 files changed, 412 insertions(+), 144 deletions(-) commit ccd5330a21318a0f39bcaf330dac1188e25ab6aa Author: Jiří Techet Date: Wed Nov 18 14:45:30 2020 -0800 Update cobol and flex parsers to use latest ctags main definitions ctags/parsers/cobol.c | 6 +++--- ctags/parsers/flex.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit 3847b6c2a9e090a3362d35dac51c3859f628cacd Author: Jiří Techet Date: Wed Nov 18 11:38:50 2020 -0800 Rename nestingLevelsGetNth() to nestingLevelsGetNthFromRoot() See 0f753a22a23ec861f2d80f011e8050d1bdedc6ca upstream. ctags/parsers/python.c | 6 +++--- ctags/parsers/ruby.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit 99a993fbfed30075610a30432ffe5ae1c3ae2fc3 Author: Jiří Techet Date: Wed Nov 18 10:16:00 2020 -0800 useCork is now a bit field See 6b1a862e526d5017f9f212a321f59d67c859d521 upstream. ctags/parsers/asciidoc.c | 2 +- ctags/parsers/python.c | 2 +- ctags/parsers/rst.c | 2 +- ctags/parsers/ruby.c | 2 +- ctags/parsers/txt2tags.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) commit 2927ec4dbb139528a07209d551897098425f3ebe Author: Jiří Techet Date: Wed Nov 18 10:12:03 2020 -0800 attachParserField now takes an extra parameter See aa4def1793bf3cadfdb89c325d093e28cb67adc1 upstream. ctags/parsers/rst.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 04eec181710a1e8537b7f4f83e98658e3cf18907 Author: Jiří Techet Date: Wed Nov 18 10:03:29 2020 -0800 Rename vStringItem to vStringChar See 7171591b6943df46a75e52a3995afc39a193a8ee upstream. ctags/parsers/css.c | 2 +- ctags/parsers/verilog.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 353ceff30518ea0291a1f8cae279d66dd0a1c469 Author: Jiří Techet Date: Wed Nov 18 12:05:37 2020 -0800 Various parser updates to make them compatible with latest ctags main ctags/parsers/c.c | 4 +- ctags/parsers/erlang.c | 1 + ctags/parsers/go.c | 4 +- ctags/parsers/haxe.c | 1 - ctags/parsers/lcpp.c | 1086 ++++++++++++++++++++++++++++++++++++++++++++ ctags/parsers/lcpp.h | 84 ++++ ctags/parsers/make.c | 1 + ctags/parsers/nsis.c | 1 - ctags/parsers/objc.c | 3 +- ctags/parsers/pascal.c | 2 +- ctags/parsers/perl.c | 1 + ctags/parsers/powershell.c | 1 - ctags/parsers/python.c | 2 +- ctags/parsers/r.c | 1 + ctags/parsers/ruby.c | 2 +- ctags/parsers/rust.c | 5 +- ctags/parsers/sql.c | 2 +- 17 files changed, 1186 insertions(+), 15 deletions(-) commit 28fa776956d4547955b439466159496a22a2e21a Author: Jiří Techet Date: Wed Nov 18 12:55:12 2020 -0800 Move EXTERNAL_PARSER_LIST to the beginning of BuiltInParsers Without this we get incorrect parser numbers. This regression has been introduced in universal ctags and will be reported as a bug. ctags/main/parse.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit ae9a456a5d70ec6c457931ff7e2ba6ea515865ee Author: Jiří Techet Date: Wed Nov 18 12:15:10 2020 -0800 Add patch to modify anonymous tag name This patch has to be applied every time we update to the latest ctags. ctags/ctags_changes.patch | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 92382dcdbcccb7f531569dc291c33e275a2a9e44 Author: Jiří Techet Date: Wed Nov 18 12:10:32 2020 -0800 Update to latest ctags main See commit 2aa034a30dc54f5db18db2c9140821f64426283e upstream. configure.ac | 3 +- ctags/Makefile.am | 81 +- ctags/main/args.c | 6 +- ctags/main/{args.h => args_p.h} | 6 +- ctags/main/cmd.c | 22 + ctags/main/colprint.c | 295 +++ ctags/main/colprint_p.h | 37 + ctags/main/ctags-api.c | 144 -- ctags/main/ctags-api.h | 57 - ctags/main/ctags.h | 10 +- ctags/main/debug.c | 103 +- ctags/main/debug.h | 32 +- ctags/main/dependency.c | 353 ++- ctags/main/dependency.h | 26 +- ctags/main/dependency_p.h | 58 + ctags/main/e_msoft.h | 23 +- ctags/main/entry.c | 1190 +++++++--- ctags/main/entry.h | 207 +- ctags/main/entry_p.h | 77 + ctags/main/entry_private.c | 38 + ctags/main/error.c | 43 +- ctags/main/{error.h => error_p.h} | 0 ctags/main/field.c | 929 +++++--- ctags/main/field.h | 82 +- ctags/main/field_p.h | 80 + ctags/main/flags.c | 107 +- ctags/main/{flags.h => flags_p.h} | 16 +- ctags/main/fmt.c | 76 +- ctags/main/{fmt.h => fmt_p.h} | 0 ctags/main/gcc-attr.h | 8 +- ctags/main/general.h | 24 +- ctags/main/gvars.h | 29 + ctags/main/htable.c | 61 +- ctags/main/htable.h | 46 +- ctags/main/interactive_p.h | 29 + ctags/main/keyword.c | 36 +- ctags/main/keyword.h | 20 +- ctags/main/keyword_p.h | 26 + ctags/main/kind.c | 750 +++++- ctags/main/kind.h | 89 +- ctags/main/kind_p.h | 82 + ctags/main/lcpp.c | 1020 -------- ctags/main/lcpp.h | 80 - ctags/main/lregex.c | 2767 +++++++++++++++++----- ctags/main/lregex.h | 47 + ctags/main/lregex_p.h | 77 + ctags/main/lxcmd.c | 1227 ---------- ctags/main/lxpath.c | 87 +- ctags/main/lxpath.h | 110 + ctags/main/lxpath_p.h | 28 + ctags/main/main.c | 321 +-- ctags/main/main.h | 26 - ctags/main/main_p.h | 22 + ctags/main/mbcs.c | 113 + ctags/main/mbcs.h | 29 +- ctags/main/mbcs_p.h | 32 + ctags/main/mini-geany.c | 346 +++ ctags/main/mio.c | 58 +- ctags/main/mio.h | 4 +- ctags/main/nestlevel.c | 38 +- ctags/main/nestlevel.h | 8 +- ctags/main/numarray.c | 17 +- ctags/main/numarray.h | 14 +- ctags/main/objpool.c | 8 +- ctags/main/options.c | 2330 ++++++++++-------- ctags/main/options.h | 168 +- ctags/main/options_p.h | 198 ++ ctags/main/output-ctags.c | 59 - ctags/main/output.h | 50 - ctags/main/param.c | 58 + ctags/main/param.h | 38 + ctags/main/param_p.h | 36 + ctags/main/parse.c | 4695 ++++++++++++++++++++++++++++--------- ctags/main/parse.h | 260 +- ctags/main/parse_p.h | 177 ++ ctags/main/parsers.h | 71 - ctags/main/parsers_p.h | 155 ++ ctags/main/pcoproc.c | 296 --- ctags/main/pcoproc.h | 29 - ctags/main/portable-dirent_p.h | 944 ++++++++ ctags/main/portable-scandir.c | 240 ++ ctags/main/promise.c | 224 +- ctags/main/promise.h | 12 +- ctags/main/promise_p.h | 26 + ctags/main/ptag.c | 204 +- ctags/main/{ptag.h => ptag_p.h} | 39 +- ctags/main/ptrarray.c | 9 +- ctags/main/ptrarray.h | 7 +- ctags/main/rbtree.c | 468 ++++ ctags/main/rbtree.h | 230 ++ ctags/main/read.c | 691 +++--- ctags/main/read.h | 52 +- ctags/main/read_p.h | 81 + ctags/main/repoinfo.h | 2 +- ctags/main/routines.c | 192 +- ctags/main/routines.h | 76 +- ctags/main/routines_p.h | 98 + ctags/main/seccomp.c | 80 + ctags/main/selectors.c | 228 +- ctags/main/selectors.h | 16 +- ctags/main/sort.c | 104 +- ctags/main/{sort.h => sort_p.h} | 0 ctags/main/stats.c | 85 + ctags/main/stats_p.h | 28 + ctags/main/strlist.c | 46 +- ctags/main/strlist.h | 1 + ctags/main/subparser.h | 68 + ctags/main/subparser_p.h | 48 + ctags/main/tokeninfo.c | 207 ++ ctags/main/tokeninfo.h | 97 + ctags/main/trace.c | 120 + ctags/main/trace.h | 101 +- ctags/main/trashbox.h | 47 +- ctags/main/trashbox_p.h | 30 + ctags/main/types.h | 28 +- ctags/main/unwindi.c | 358 +++ ctags/main/unwindi.h | 84 + ctags/main/vstring.c | 14 + ctags/main/vstring.h | 23 +- ctags/main/writer-ctags.c | 434 ++++ ctags/main/writer-etags.c | 202 ++ ctags/main/writer-json.c | 294 +++ ctags/main/writer-xref.c | 106 + ctags/main/writer.c | 189 ++ ctags/main/writer_p.h | 106 + ctags/main/xtag.c | 362 ++- ctags/main/xtag.h | 33 +- ctags/main/xtag_p.h | 52 + 128 files changed, 19470 insertions(+), 8116 deletions(-) commit 0a0b4b000cf18e837b921057a461ad05a08e41d3 Merge: 8a30ce2b6 26f4813f0 Author: Colomban Wendling Date: Sun Nov 8 18:51:20 2020 +0100 Merge branch '1.37' commit 26f4813f0fad0c377c4698e28b0912afac7950a8 Author: Colomban Wendling Date: Sun Nov 8 18:14:11 2020 +0100 Set release date NEWS | 2 +- doc/geany.1.in | 2 +- doc/geany.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 5807af0f36f670fe1db3c3997d541f792ddd565a Author: Colomban Wendling Date: Sat Nov 7 22:30:56 2020 +0100 Update NEWS NEWS | 3 +++ 1 file changed, 3 insertions(+) commit 847a758c054dd1006e53fe2cfbf4c6c5a720d9a6 Author: Enrico Tröger Date: Sat Nov 7 12:42:16 2020 +0100 Fix wrong format specifier in debug message This led to crashes on Windows when starting without an existing configuration file. Closes #2639. src/libmain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ee754a3fb2f1655eb7826bd6c62c61b3cb4c3ba8 Author: Colomban Wendling Date: Sat Nov 7 22:25:32 2020 +0100 Version bump for 1.37.1 NEWS | 3 +++ configure.ac | 2 +- doc/geany.txt | 2 +- geany.exe.manifest | 2 +- geany_private.rc | 4 ++-- 5 files changed, 8 insertions(+), 5 deletions(-) commit 8a30ce2b6db593001159525f628f355bb1cf45eb Author: Frank Lanitz Date: Sat Nov 7 13:58:40 2020 +0100 Small update of German translation po/de.po | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) commit ad2bacbf95330e11164e69871bb7f4854f0563e7 Author: Frank Lanitz Date: Fri Nov 6 21:22:30 2020 +0100 Update an email at about dialog src/about.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d243b25fd83035104a15902fbdef2fdbe6695083 Author: Colomban Wendling Date: Fri Nov 6 15:06:54 2020 +0100 Small update of the French translation po/fr.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 2ae3072c1b8165f4018532b0069719310d43a444 Author: Frank Lanitz Date: Fri Nov 6 00:25:17 2020 +0100 Update wording at saveactions-plugin Fixes #2635 plugins/saveactions.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 973623032716617defa4383232ab23dd03941d21 Author: Colomban Wendling Date: Mon Nov 2 21:08:19 2020 +0100 doc: Re-add the section about print preview, updated for GTK3 doc/geany.txt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit a99426b01953559863a11f6cb9101d5a4f38c7db Author: Colomban Wendling Date: Mon Nov 2 20:44:12 2020 +0100 doc: Re-add the search fields font customization section doc/geany.txt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit aa1cb5c59bfa6165a9e519eb52d0178c3e247a67 Author: Colomban Wendling Date: Sat Oct 10 13:31:50 2020 +0200 Drop use of deprecated GTK2-era GDK key names plugins/filebrowser.c | 8 +- src/callbacks.c | 5 +- src/document.c | 11 +-- src/editor.c | 5 +- src/keybindings.c | 265 +++++++++++++++++++++++++------------------------- src/keybindings.h | 2 +- src/msgwindow.c | 2 +- src/notebook.c | 27 +++-- src/prefs.c | 5 +- src/search.c | 5 +- src/sidebar.c | 6 +- src/ui_utils.c | 9 +- src/vte.c | 17 ++-- 13 files changed, 179 insertions(+), 188 deletions(-) commit d548b72518c398dd44a8ad5af66d95c90ac3e837 Author: Colomban Wendling Date: Sat Oct 10 13:29:41 2020 +0200 Drop use of GTK2 API plugins/classbuilder.c | 2 +- plugins/demoplugin.c | 2 +- plugins/export.c | 2 +- plugins/filebrowser.c | 10 +++++----- plugins/saveactions.c | 20 ++++++++++---------- plugins/splitwindow.c | 4 ++-- src/about.c | 8 ++++---- src/build.c | 11 +++++------ src/dialogs.c | 5 ++--- src/document.c | 4 ++-- src/documentprivate.h | 2 +- src/filetypesprivate.h | 2 +- src/gb.c | 6 +++--- src/libmain.c | 3 +-- src/log.c | 2 +- src/navqueue.c | 2 +- src/notebook.c | 6 +++--- src/pluginprivate.h | 2 -- src/plugins.c | 5 ++--- src/pluginutils.c | 2 +- src/printing.c | 6 +++--- src/project.c | 2 +- src/search.c | 31 ++++++++++++++++--------------- src/socket.c | 2 +- src/symbols.c | 3 +-- src/templates.c | 3 +-- src/toolbar.c | 4 ++-- src/tools.c | 5 ++--- src/ui_utils.c | 6 +++--- src/vte.c | 4 ++-- 30 files changed, 79 insertions(+), 87 deletions(-) commit 9c2b7da3f58474285338696bf0617c79bd3ee45c Author: Colomban Wendling Date: Sat Oct 10 10:28:58 2020 +0200 Remove some more GTK2 occurrences and adjust a few comments .travis.yml | 3 ++- HACKING | 12 ++++++------ doc/plugins.dox | 2 +- plugins/splitwindow.c | 4 ---- scripts/gtk-bundle-from-msys2.sh | 8 +------- src/geanywraplabel.c | 1 - src/gtkcompat.h | 3 ++- src/msgwindow.c | 10 ---------- src/plugindata.h | 6 +++--- src/stash.c | 4 ++-- src/ui_utils.c | 1 - src/vte.c | 6 ++---- 12 files changed, 19 insertions(+), 41 deletions(-) commit 2292c4148974c43bfa28bde93e1911cfa55b5b9d Author: Enrico Tröger Date: Sat Oct 31 10:52:36 2020 +0100 Update release information about website cache doc/making-a-release | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 00ca7e7af8409ae3e5aacde602a59b5604d542cf Author: Colomban Wendling Date: Sun Oct 25 19:39:01 2020 +0100 Post release version bump Say hello to Geany 1.38 "Sulamar"! NEWS | 3 +++ configure.ac | 2 +- doc/geany.txt | 2 +- geany.exe.manifest | 2 +- geany_private.rc | 4 ++-- src/geany.h | 2 +- 6 files changed, 9 insertions(+), 6 deletions(-) commit 9bf62f899eacfb13ce60f3e65c425e6dc909a4ae Author: Colomban Wendling Date: Sun Oct 25 19:36:55 2020 +0100 Add a note not to worry about the website not updating doc/making-a-release | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit bc345bf9a8d4ca7bd23b49a8ce89d6966e7157c5 Author: Colomban Wendling Date: Sun Oct 25 18:06:56 2020 +0100 Small NEWS update NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e42a963d6b4f1b2ef2063e59fc4139a250dfe709 Merge: cef52a830 ca2c904e4 Author: Colomban Wendling Date: Sun Oct 25 18:01:38 2020 +0100 Merge pull request #1738 from b4n/symbols-margin-auto-width Size symbols and fold margins proportional to line height Replaces #2140. commit cef52a830fbd2daa89d68e32987fec9c91b3d643 Author: Enrico Tröger Date: Sun Oct 25 14:07:55 2020 +0100 Set release date NEWS | 2 +- doc/geany.1.in | 2 +- doc/geany.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 7dbf234b69ade1294d5e1dbcf765b21db0e57baf Author: Frank Lanitz Date: Sun Oct 25 11:16:07 2020 +0100 Remove intl_stats.sh script It's not working anymore and most functionaly can be founda at https://www.geany.org/contribute/translation/statistics/ anyway Makefile.am | 1 - po/intl_stats.sh | 99 -------------------------------------------------------- 2 files changed, 100 deletions(-) commit f10eb7679767d1c561e6970e2cb37a78704cefb5 Author: Colomban Wendling Date: Sun Oct 25 11:09:43 2020 +0100 Update NEWS NEWS | 2 ++ 1 file changed, 2 insertions(+) commit ca2c904e47295b54f57555849695801c670a23b3 Author: Colomban Wendling Date: Sun Oct 25 10:49:08 2020 +0100 Recalculate margins size when changing font src/editor.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit 6673ea5b49260beffe2c258889f9bd1427f33bac Author: Colomban Wendling Date: Mon Jan 8 01:17:51 2018 -0800 Size symbols and fold margins proportional to line height This makes those margin better adapt larger font sizes and zooms. Fixes #1733. src/editor.c | 2 ++ src/sciwrappers.c | 25 +++++++++++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) commit 97f8f3c7afea387adbfa91df04de006f6af0c6d7 Author: Colomban Wendling Date: Sun Oct 25 10:33:19 2020 +0100 Revert "add 'folding margin width setting' (#2140)" This reverts commit d8f532b5adf41ae57b99b6ac95d336401ba15e35. data/filedefs/filetypes.common | 3 --- src/editor.c | 2 ++ src/highlighting.c | 21 --------------------- src/sciwrappers.c | 16 ++++++++++++++++ src/sciwrappers.h | 1 + 5 files changed, 19 insertions(+), 24 deletions(-) commit ad54ee5999d41e635f46a131b62067bb145c6050 Merge: 110b7c839 56fa64135 Author: Colomban Wendling Date: Sun Oct 25 10:25:26 2020 +0100 Merge pull request #2618 from codebrainz/os-info-improvements OS Info Improvements commit 110b7c839b70c10cebed676434a5e4bef89b2dbc Author: Colomban Wendling Date: Sat Oct 24 22:39:16 2020 +0200 vte: Free VteFunctions after destroying the widget The widget could possibly still emit signal or otherwise lead to calling our code, which might still use VteFunctions pointers. So, move the freeing of it after other cleanups. src/vte.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 35d27a4a2809e2c9ae9da2ae2c00eaebc74904ba Merge: 0ac835c54 ab4378aa3 Author: Colomban Wendling Date: Sat Oct 24 22:34:22 2020 +0200 Merge pull request #2634 from madpilot78/FreeBSD_crash_on_close_fix Disconnect signal handler from vte before destroying the widget. commit 0ac835c5405e7eadf3df625a36962ff773a3df87 Author: Frank Lanitz Date: Sat Oct 24 21:35:08 2020 +0200 Revert update of German translation due to unclean local checkout po/de.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 14582261cf3b28c6810157a8c992a131f729dbac Author: Frank Lanitz Date: Sat Oct 24 21:32:45 2020 +0200 Update of German translation po/de.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 9f79f801f46a6e64135b12519a621d2feda8ee32 Author: Enrico Tröger Date: Sat Oct 24 11:33:24 2020 +0200 Windows: Update indirect dependencies for bundle creation scripts/gtk-bundle-from-msys2.sh | 1 + 1 file changed, 1 insertion(+) commit ab4378aa3524f3e4923bcdc7d0b4e97feb73da57 Author: Guido Falsi Date: Sat Oct 24 10:36:04 2020 +0200 Disconnect signal handler from vte before destroying the widget. Patch sent to FreeBSD bugzilla by Hodong https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=250403 Could be a fix for issue #2457 src/vte.c | 1 + 1 file changed, 1 insertion(+) commit 50fd246d0e2a73ec5491e384422295f3c2b8cf30 Author: Frank Lanitz Date: Thu Oct 22 22:59:44 2020 +0200 Dutch translation was updated, too NEWS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 02ec513cf0e50596fecbc5176abef43b23dae564 Merge: e78318b45 638a27289 Author: Frank Lanitz Date: Thu Oct 22 22:58:57 2020 +0200 Merge pull request #2633 from peter-scholtens/patch-2 Update nl.po commit 638a27289d0c1a3d37fbde11bf6877abef25f1dc Author: Peter C. S. Scholtens Date: Thu Oct 22 21:38:35 2020 +0200 Update nl.po It looks to me that "_Filetype to use for newly opened files:" would be described better as: "_Filetype to use for newly created files:" (../plugins/saveactions.c:688) po/nl.po | 159 ++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 75 insertions(+), 84 deletions(-) commit e78318b45f150757b7d8f24ec8f1823113764d46 Author: Enrico Tröger Date: Sun Oct 18 18:43:08 2020 +0200 Add note about programming ligatures support on Windows to NEWS NEWS | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 56fa641354c18eb2477af0017d7d363b0784713e Author: Matthew Brush Date: Sat Oct 10 14:02:06 2020 -0700 Use new `utils_get_os_info_string` function src/libmain.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) commit ad67839f5ffc3e1c9a7d75728943e0dd0547ccbe Author: Matthew Brush Date: Sat Oct 10 14:01:49 2020 -0700 Add utils function to get OS info string src/utils.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/utils.h | 2 ++ 2 files changed, 70 insertions(+) commit 9a8b5c9e27e986ecd41ddbdfcb6548c62fb1e391 Merge: 20f39e0c0 6fae80056 Author: Frank Lanitz Date: Thu Oct 15 20:25:02 2020 +0200 Merge pull request #2627 from dmitryunruh/ru_update Update Russian translation commit 6fae80056dda8c294397ea379fd0340f13acc02f Author: Dmitry Date: Fri Oct 16 02:53:26 2020 +1000 Update Russian translation po/ru.po | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) commit 20f39e0c0939269ea65e9affd0e02fbf34da83b9 Author: Frank Lanitz Date: Wed Oct 14 17:59:29 2020 +0200 Update NEWS with recent translation updates NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8db14275ec92b2db3020ec49ec2f4853844e8323 Author: Frank Lanitz Date: Wed Oct 14 17:59:06 2020 +0200 Update Portugese translation po/pt.po | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) commit b27f40d94db5d7271966f386bd0f2e90bd3f6d4e Merge: 84938aab3 a0021cd48 Author: Frank Lanitz Date: Wed Oct 14 17:53:17 2020 +0200 Merge pull request #2624 from xhacker/zh_CN Update zh_CN.po commit 84938aab3c74adf0e8344b114156c89e72683b6f Merge: e15fa9ea6 29fcc92c4 Author: Frank Lanitz Date: Wed Oct 14 17:52:52 2020 +0200 Merge pull request #2625 from lucasvieites/patch-1 Updated Spanish translation commit 29fcc92c4fb5af532a296f445f69e0ac10e57ba1 Author: Lucas Vieites Date: Wed Oct 14 16:13:31 2020 +0200 Updated Spanish translation Updates es.po translation for 1.37 po/es.po | 37 ++++++++++++++++--------------------- 1 file changed, 16 insertions(+), 21 deletions(-) commit a0021cd4850fada0aa36e3b195a868e83c2d6ca9 Author: 柳东原 · Dongyuan Liu Date: Tue Oct 13 23:09:02 2020 +0800 Update zh_CN.po po/zh_CN.po | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) commit e15fa9ea64a4b6f492b0ae5913eee3c7985b1105 Author: Frank Lanitz Date: Tue Oct 13 08:33:19 2020 +0200 Italian and Japanese translation were updated for 1.37 NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 00a340a0e59ffda788ce163627ef76f41492d620 Author: Frank Lanitz Date: Tue Oct 13 08:32:32 2020 +0200 Update Japanese translation po/ja.po | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) commit 8f2c150b3c8694e6c90d4c1a1a8141f36326a8ba Merge: bac4f01c9 e9d5bca7b Author: Frank Lanitz Date: Tue Oct 13 08:30:28 2020 +0200 Merge pull request #2623 from giuspen/it.po it.po for 1.37 commit e9d5bca7bb57bcb3ebe659385bc57a98d662503b Author: Giuseppe Penone Date: Mon Oct 12 21:37:16 2020 +0100 it.po for 1.37 po/it.po | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) commit bac4f01c9114073bfa973d2b5dd1e4fc42e737cf Author: Frank Lanitz Date: Mon Oct 12 16:21:12 2020 +0200 Adding update of Greek and Slovak translation to NEWS NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 563ce1dd96400055d5632150535d3a30197c7d03 Merge: c9f231f99 071646594 Author: Frank Lanitz Date: Mon Oct 12 16:20:05 2020 +0200 Merge pull request #2622 from mmisirlis/master Greek translation update for Geany 1.37 commit c9f231f99e77d9971d5538b1d80d8d106e3efcac Merge: 1d035ca7e 453f61ebe Author: Frank Lanitz Date: Mon Oct 12 16:19:33 2020 +0200 Merge pull request #2621 from andrej-herceg/sk-po Update of Slovak translation commit 071646594d23a89ff635fe4ffc7967ba05de4c50 Author: Michael Misirlis Date: Mon Oct 12 15:21:49 2020 +0300 Greek translation update for Geany 1.37 po/el.po | 64 ++++++++++++++++++++++++++++------------------------------------ 1 file changed, 28 insertions(+), 36 deletions(-) commit 453f61ebef7f574cd8b46b34e58e956d6289a0b1 Author: Andrej Herceg Date: Mon Oct 12 14:21:29 2020 +0200 Update of Slovak translation po/sk.po | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) commit 1d035ca7e741401ba67c69e75c4e8eba0a40d459 Author: Frank Lanitz Date: Mon Oct 12 10:42:00 2020 +0200 Danish translation was updated NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 427a952147111b9c7a24f64abc8010eeaca19d64 Merge: 72e589b63 76d364a1d Author: Frank Lanitz Date: Mon Oct 12 10:41:18 2020 +0200 Merge pull request #2620 from scootergrisen/patch-6 Update Danish translation to 1.37 commit 76d364a1d910a84997410c6190770cce52e495eb Author: scootergrisen Date: Mon Oct 12 03:40:23 2020 +0200 Update Danish translation to 1.37 po/da.po | 35 ++++++++++++----------------------- 1 file changed, 12 insertions(+), 23 deletions(-) commit 72e589b63e1c3b59bb103709a9dc093a23c50bd8 Author: Colomban Wendling Date: Sun Oct 11 22:59:37 2020 +0200 Small update of the French translation NEWS | 2 +- po/fr.po | 21 ++++++++++----------- 2 files changed, 11 insertions(+), 12 deletions(-) commit f27a9f568dc73c1fc0daa0388a65c476dbd9bbfa Author: Frank Lanitz Date: Sun Oct 11 21:35:17 2020 +0200 Update po files for string freeze of 1.37 po/ar.po | 522 ++++++++++++++++++++++++++++++-------------------------- po/ast.po | 519 +++++++++++++++++++++++++++++-------------------------- po/be.po | 528 +++++++++++++++++++++++++++++--------------------------- po/bg.po | 519 +++++++++++++++++++++++++++++-------------------------- po/ca.po | 530 +++++++++++++++++++++++++++++--------------------------- po/cs.po | 531 ++++++++++++++++++++++++++++++--------------------------- po/da.po | 530 +++++++++++++++++++++++++++++--------------------------- po/de.po | 64 +++---- po/el.po | 530 +++++++++++++++++++++++++++++--------------------------- po/en_GB.po | 530 +++++++++++++++++++++++++++++--------------------------- po/es.po | 534 ++++++++++++++++++++++++++++++--------------------------- po/et.po | 523 ++++++++++++++++++++++++++++++-------------------------- po/eu.po | 522 ++++++++++++++++++++++++++++++-------------------------- po/fa.po | 523 ++++++++++++++++++++++++++++++-------------------------- po/fi.po | 522 ++++++++++++++++++++++++++++++-------------------------- po/fr.po | 530 +++++++++++++++++++++++++++++--------------------------- po/gl.po | 530 +++++++++++++++++++++++++++++--------------------------- po/he.po | 528 +++++++++++++++++++++++++++++--------------------------- po/hi.po | 519 +++++++++++++++++++++++++++++-------------------------- po/hu.po | 530 +++++++++++++++++++++++++++++--------------------------- po/id.po | 559 ++++++++++++++++++++++++++++++++---------------------------- po/ie.po | 68 ++++---- po/it.po | 529 +++++++++++++++++++++++++++++--------------------------- po/ja.po | 530 +++++++++++++++++++++++++++++--------------------------- po/kk.po | 523 ++++++++++++++++++++++++++++++-------------------------- po/ko.po | 522 ++++++++++++++++++++++++++++++-------------------------- po/ku.po | 522 ++++++++++++++++++++++++++++++-------------------------- po/lb.po | 519 +++++++++++++++++++++++++++++-------------------------- po/lt.po | 530 +++++++++++++++++++++++++++++--------------------------- po/lv.po | 530 +++++++++++++++++++++++++++++--------------------------- po/mn.po | 517 +++++++++++++++++++++++++++++-------------------------- po/nl.po | 530 +++++++++++++++++++++++++++++--------------------------- po/nn.po | 518 +++++++++++++++++++++++++++++-------------------------- po/pl.po | 530 +++++++++++++++++++++++++++++--------------------------- po/pt.po | 530 +++++++++++++++++++++++++++++--------------------------- po/pt_BR.po | 530 +++++++++++++++++++++++++++++--------------------------- po/ro.po | 519 +++++++++++++++++++++++++++++-------------------------- po/ru.po | 530 +++++++++++++++++++++++++++++--------------------------- po/sk.po | 530 +++++++++++++++++++++++++++++--------------------------- po/sl.po | 530 +++++++++++++++++++++++++++++--------------------------- po/sr.po | 523 ++++++++++++++++++++++++++++++-------------------------- po/sv.po | 64 +++---- po/tr.po | 530 +++++++++++++++++++++++++++++--------------------------- po/uk.po | 519 +++++++++++++++++++++++++++++-------------------------- po/vi.po | 519 +++++++++++++++++++++++++++++-------------------------- po/zh_CN.po | 535 ++++++++++++++++++++++++++++++--------------------------- po/zh_TW.po | 528 +++++++++++++++++++++++++++++--------------------------- 47 files changed, 12412 insertions(+), 10966 deletions(-) commit 915cf6e8d0b63482e23564c68b2f478cc3ff9cb2 Author: Colomban Wendling Date: Sat Oct 10 17:49:51 2020 +0200 Update NEWS to upcoming 1.37 release NEWS | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) commit 8d6fca4c821ed3e6d319b758038f5b7ebefb396e Author: Frank Lanitz Date: Sat Oct 10 12:30:57 2020 +0200 Update NEWS with transaltions updates done so far since 1.36 NEWS | 3 +++ 1 file changed, 3 insertions(+) commit b2151bd5f0abdbae94b2fe6b0a39e3b0a6e4f583 Merge: 397b24d6d 13f7618e1 Author: Colomban Wendling Date: Sat Oct 10 09:29:23 2020 +0200 Merge pull request #2223 from b4n/windows-py-command Allow to select the Python command, and use `py` on Windows commit 397b24d6da711f32836a564928c4bb8004d438eb Merge: fb2872097 5dc643ee1 Author: Colomban Wendling Date: Fri Oct 9 11:28:55 2020 +0200 Merge pull request #2613 from techee/integration_fix Fix gtk2/gtk3 mac integration test commit fb2872097dc66ab7508962192bd5d0e840160968 Merge: d369123a2 d7d1810d2 Author: Colomban Wendling Date: Fri Oct 9 11:26:16 2020 +0200 Merge pull request #2399 from b4n/smalltalk Add Smalltalk filetype commit d369123a2d2fe3a9d10422e16211f6bb4e882721 Merge: 8184f91a8 9f049a7b4 Author: Colomban Wendling Date: Fri Oct 9 11:17:00 2020 +0200 Merge pull request #2333 from foresto/nomatch-text-color Define text color when setting dark background in find dialog commit 5dc643ee18181b6b4bfb8ca79a4591e6c2f25a9a Author: Jiří Techet Date: Thu Oct 8 06:27:16 2020 -0700 Fix gtk2/gtk3 mac integration test m4/geany-mac-integration.m4 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d7d1810d2607574e57d94674a2637bc4dcdff84f Author: Snowflake the Pony Date: Sat Nov 16 18:21:24 2019 +0100 Add Smalltalk filetype data/Makefile.am | 1 + data/filedefs/filetypes.smalltalk | 56 +++++++ data/filetype_extensions.conf | 1 + scintilla/Makefile.am | 1 + scintilla/lexers/LexSmalltalk.cxx | 324 ++++++++++++++++++++++++++++++++++++++ scintilla/scintilla_changes.patch | 2 +- scintilla/src/Catalogue.cxx | 1 + src/filetypes.c | 1 + src/filetypes.h | 1 + src/highlighting.c | 2 + src/highlightingmappings.h | 29 ++++ 11 files changed, 418 insertions(+), 1 deletion(-) commit 12383562064b28ff11436106fb7a051eb267785c Author: Matthew Brush Date: Sun Oct 4 06:01:25 2020 -0700 Remove GTK2 from `cross-build-mingw.sh` script scripts/cross-build-mingw.sh | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) commit 29d10f925adabef6bf01a75f160fa47fe9df5b8a Author: Matthew Brush Date: Wed Sep 30 00:02:42 2020 -0700 Remove GTK2 from geany-mac-integration.m4 Not tested m4/geany-mac-integration.m4 | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit eebc01e3a52e1722b774cc467562b0351b3672a9 Author: Matthew Brush Date: Tue Sep 29 23:53:55 2020 -0700 Remove GTK2 from travis.yaml .travis.yml | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit afc39c287cfa0b48aa0ba14d7ed80f3c716f7188 Author: Matthew Brush Date: Tue Sep 29 23:49:01 2020 -0700 Remove gtkrc file and related documentation data/geany.gtkrc | 71 ------------------------------------------------- doc/geany.txt | 81 ++------------------------------------------------------ src/libmain.c | 2 +- 3 files changed, 3 insertions(+), 151 deletions(-) commit eed0f3b61a206af37067228b0b09927efc5d269b Author: Matthew Brush Date: Tue Sep 29 23:42:48 2020 -0700 Remove now dead code guarded with GTK_CHECK_VERSION(3, 0, 0) src/build.c | 24 ++++++------------------ src/document.c | 11 ----------- src/editor.c | 15 +-------------- src/gb.c | 39 +++------------------------------------ src/geanywraplabel.c | 46 +++++----------------------------------------- src/libmain.c | 50 +------------------------------------------------- src/sidebar.c | 10 ---------- src/socket.c | 7 ------- src/symbols.c | 4 ---- src/toolbar.c | 2 -- src/ui_utils.c | 7 ------- src/vte.c | 23 +++++------------------ 12 files changed, 21 insertions(+), 217 deletions(-) commit d065c5098508f660d5f8ac16700d1c5a3e4e653c Author: Matthew Brush Date: Tue Sep 29 23:18:11 2020 -0700 Initial pass at remove GTK+2 Updating the build system and some of the conditional code. More to come. HACKING | 3 --- README | 8 +++--- configure.ac | 29 +++----------------- data/Makefile.am | 5 ---- src/gtkcompat.h | 81 ++++---------------------------------------------------- src/plugindata.h | 11 +++----- src/stash.c | 10 +++---- 7 files changed, 20 insertions(+), 127 deletions(-) commit 8184f91a8fdf6869775f20acc907e6573354c40b Author: Matthew Brush Date: Fri Oct 2 11:05:23 2020 -0700 Make GTK3 build default, and GTK2 build optional * Replace `--enable-gtk3` with `--enable-gtk2` * Update Travis CI builds * Change `cross-build-mingw.sh` default to GTK3 and cleanup a little After this commit it will be required to pass `--enable-gtk2` to the Autoconf script in order to build with GTK+2, otherwise GTK+3 will be required. .travis.yml | 16 ++++++++-------- configure.ac | 25 +++++++++++-------------- scripts/cross-build-mingw.sh | 23 ++++++++++++----------- 3 files changed, 31 insertions(+), 33 deletions(-) commit f6624c69df64628f4e5fd65c45b9670c672ed495 Author: Enrico Tröger Date: Sun Sep 20 17:13:21 2020 +0200 Update FreeBasic keywords Closes #2583. data/filedefs/filetypes.freebasic | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f4b3bb548d578a1edac91076a24922a3a24d2504 Author: Enrico Tröger Date: Sun Aug 16 17:22:42 2020 +0200 Remove deprecated config options for Doxygen doc/Doxyfile.in | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) commit 1ca666fd5d73cfb6a7381cd0c9d8852ad29ac160 Author: Enrico Tröger Date: Sun Aug 16 17:34:06 2020 +0200 Use Python interpreter detected by autotools for geany-gtkdoc.h This should work fine on systems with only Python3, only Python2 and also with both versions installed and do not rely on just being "python" available in $PATH. doc/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6118e5506b51239c94256e2e7ffadb133830b698 Author: Filip Szymański Date: Sun Oct 4 01:30:26 2020 +0200 filetypes.lua: Change block comment (#2566) See: https://www.lua.org/pil/1.3.html data/filedefs/filetypes.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 402d277f80b508e89440fe3669ce3f2f45768cc7 Author: Matthew Brush Date: Thu Sep 24 19:43:59 2020 -0700 Persist colour picker palette Closes #2595 src/keyfile.c | 10 ++++++++++ src/libmain.c | 1 + src/tools.c | 15 +++++++++++++++ src/ui_utils.h | 3 +++ 4 files changed, 29 insertions(+) commit 2587fc249d1f9516609a0faf68c6002ce447547f Author: Matthew Brush Date: Fri May 8 23:54:18 2020 -0700 Show OS info in debug messages src/libmain.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 919d4d01146280dbf53eab68ccf59fda52e85f01 Merge: 8f0909685 4cff1df5a Author: Frank Lanitz Date: Thu Oct 1 10:51:57 2020 +0200 Merge pull request #2604 from samsulmaarif/master Update Indonesian translation commit 4cff1df5a41e112d2150374894330f078295cfce Author: Samsul Maarif Date: Thu Oct 1 11:05:45 2020 +0700 Fix wrong email address for Samsul Maarif Signed-off-by: Samsul Maarif po/id.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ba7812fc5e151a700dda55ad1d86c43681e25d3c Author: Samsul Maarif Date: Thu Oct 1 11:00:23 2020 +0700 Update Indonesian translation Signed-off-by: Samsul Maarif po/id.po | 171 +++++++++++++++++++++++++++++---------------------------------- 1 file changed, 78 insertions(+), 93 deletions(-) commit 8f0909685dad46096ecf92152e82d309b0852bfd Author: Enrico Tröger Date: Sat Sep 26 10:03:07 2020 +0000 Update Scintilla to version 3.21.1 (#2506) scintilla/Makefile.am | 1 + scintilla/gtk/Converter.h | 5 + scintilla/gtk/PlatGTK.cxx | 159 +++--- scintilla/gtk/ScintillaGTK.cxx | 185 ++++--- scintilla/gtk/ScintillaGTK.h | 19 +- scintilla/gtk/ScintillaGTKAccessible.cxx | 9 +- scintilla/gtk/ScintillaGTKAccessible.h | 2 +- scintilla/include/Compat.h | 70 +++ scintilla/include/ILexer.h | 9 +- scintilla/include/Makefile.am | 1 + scintilla/include/Platform.h | 70 +-- scintilla/include/SciLexer.h | 73 +++ scintilla/include/Scintilla.h | 76 ++- scintilla/include/Scintilla.iface | 905 +++++++++++++++++++++---------- scintilla/lexers/LexAbaqus.cxx | 2 +- scintilla/lexers/LexAsm.cxx | 21 +- scintilla/lexers/LexBash.cxx | 7 +- scintilla/lexers/LexBasic.cxx | 15 +- scintilla/lexers/LexBatch.cxx | 838 +++++++++++++++------------- scintilla/lexers/LexCPP.cxx | 81 +-- scintilla/lexers/LexCmake.cxx | 5 +- scintilla/lexers/LexD.cxx | 6 +- scintilla/lexers/LexHTML.cxx | 62 ++- scintilla/lexers/LexHaskell.cxx | 9 +- scintilla/lexers/LexLaTeX.cxx | 21 + scintilla/lexers/LexMatlab.cxx | 2 +- scintilla/lexers/LexPerl.cxx | 41 +- scintilla/lexers/LexProps.cxx | 18 +- scintilla/lexers/LexPython.cxx | 94 ++-- scintilla/lexers/LexR.cxx | 2 +- scintilla/lexers/LexRuby.cxx | 6 +- scintilla/lexers/LexRust.cxx | 7 +- scintilla/lexers/LexSQL.cxx | 17 +- scintilla/lexers/LexTCL.cxx | 5 +- scintilla/lexers/LexVHDL.cxx | 4 +- scintilla/lexers/LexVerilog.cxx | 6 +- scintilla/lexlib/CatalogueModules.h | 70 +++ scintilla/lexlib/CharacterCategory.cxx | 175 +++--- scintilla/lexlib/CharacterCategory.h | 2 +- scintilla/lexlib/CharacterSet.cxx | 4 +- scintilla/lexlib/CharacterSet.h | 75 +-- scintilla/lexlib/DefaultLexer.cxx | 20 +- scintilla/lexlib/DefaultLexer.h | 10 +- scintilla/lexlib/LexAccessor.h | 12 +- scintilla/lexlib/LexerBase.cxx | 21 +- scintilla/lexlib/LexerBase.h | 6 +- scintilla/lexlib/LexerModule.cxx | 17 +- scintilla/lexlib/LexerModule.h | 29 +- scintilla/lexlib/LexerSimple.cxx | 8 + scintilla/lexlib/LexerSimple.h | 3 + scintilla/lexlib/OptionSet.h | 21 +- scintilla/lexlib/PropSetSimple.cxx | 18 +- scintilla/lexlib/PropSetSimple.h | 2 +- scintilla/lexlib/SparseState.h | 8 +- scintilla/lexlib/StyleContext.h | 10 +- scintilla/lexlib/SubStyles.h | 34 +- scintilla/lexlib/WordList.cxx | 58 +- scintilla/lexlib/WordList.h | 18 +- scintilla/scintilla_changes.patch | 6 +- scintilla/src/AutoComplete.h | 4 +- scintilla/src/CallTip.cxx | 242 +++++---- scintilla/src/CallTip.h | 35 +- scintilla/src/CaseConvert.cxx | 19 +- scintilla/src/CaseConvert.h | 2 +- scintilla/src/CaseFolder.cxx | 4 +- scintilla/src/CaseFolder.h | 4 +- scintilla/src/Catalogue.cxx | 40 +- scintilla/src/Catalogue.h | 2 +- scintilla/src/CellBuffer.cxx | 312 +++++++---- scintilla/src/CellBuffer.h | 55 +- scintilla/src/CharClassify.cxx | 4 +- scintilla/src/CharClassify.h | 6 +- scintilla/src/ContractionState.cxx | 82 +-- scintilla/src/ContractionState.h | 24 +- scintilla/src/Decoration.cxx | 66 +-- scintilla/src/Decoration.h | 32 +- scintilla/src/Document.cxx | 277 ++++++---- scintilla/src/Document.h | 109 ++-- scintilla/src/EditModel.cxx | 5 +- scintilla/src/EditModel.h | 5 +- scintilla/src/EditView.cxx | 290 ++++++---- scintilla/src/EditView.h | 10 +- scintilla/src/Editor.cxx | 518 +++++++++++------- scintilla/src/Editor.h | 64 ++- scintilla/src/ElapsedPeriod.h | 2 +- scintilla/src/ExternalLexer.cxx | 108 +++- scintilla/src/ExternalLexer.h | 58 +- scintilla/src/Indicator.cxx | 356 ++++++------ scintilla/src/Indicator.h | 14 +- scintilla/src/KeyMap.cxx | 4 +- scintilla/src/KeyMap.h | 6 +- scintilla/src/LineMarker.cxx | 632 +++++++++++---------- scintilla/src/LineMarker.h | 6 +- scintilla/src/MarginView.cxx | 31 +- scintilla/src/Partitioning.h | 58 +- scintilla/src/PerLine.cxx | 176 +++--- scintilla/src/PerLine.h | 36 +- scintilla/src/Position.h | 5 - scintilla/src/PositionCache.cxx | 57 +- scintilla/src/PositionCache.h | 27 +- scintilla/src/RESearch.cxx | 26 +- scintilla/src/RESearch.h | 26 +- scintilla/src/RunStyles.cxx | 8 +- scintilla/src/ScintillaBase.cxx | 47 +- scintilla/src/ScintillaBase.h | 7 +- scintilla/src/Selection.cxx | 100 ++-- scintilla/src/Selection.h | 125 ++--- scintilla/src/SparseVector.h | 103 +++- scintilla/src/SplitVector.h | 14 +- scintilla/src/Style.cxx | 10 +- scintilla/src/Style.h | 11 +- scintilla/src/UniConversion.cxx | 2 +- scintilla/src/UniConversion.h | 17 +- scintilla/src/UniqueString.cxx | 6 +- scintilla/src/UniqueString.h | 4 +- scintilla/src/ViewStyle.cxx | 72 ++- scintilla/src/ViewStyle.h | 18 +- scintilla/src/XPM.cxx | 37 +- scintilla/src/XPM.h | 28 +- scintilla/version.txt | 2 +- 120 files changed, 4919 insertions(+), 3011 deletions(-) commit c5def0133267917257a2c1f14e112e7c2e8d94b7 Author: Enrico Tröger Date: Sat Sep 26 10:00:59 2020 +0000 Windows: Make TCP socket port number configurable (#2585) Windows: Make TCP socket port number configurable Make the previously hard-coded TCP port number for IPC on Windows configurable and change the default value to be outside of the dynamic port range used by Hyper-V. doc/geany.txt | 6 ++++++ src/keyfile.c | 9 +++++++++ src/libmain.c | 34 +++++++++++++++++++++++++++++++++- src/prefs.h | 3 +++ src/socket.c | 7 +++---- src/socket.h | 7 ++++++- 6 files changed, 60 insertions(+), 6 deletions(-) commit da31230fef2e6bc08591c127aeb40590c70e60f7 Merge: 2eb14d7ab 64f35a9f7 Author: Frank Lanitz Date: Sat Sep 26 11:49:25 2020 +0200 Merge pull request #2596 from napcok/master Polish translation update commit 64f35a9f768c44a4c54f49b24109de0effc8013a Author: Daniel Napora Date: Thu Sep 24 11:52:18 2020 +0200 Polish translation update po/pl.po | 148 ++++++++++++++++++++++++++------------------------------------- 1 file changed, 62 insertions(+), 86 deletions(-) commit 2eb14d7aba3f7f1ec4f098ce782c4914fa23e1ba Author: Frank Lanitz Date: Wed Sep 23 17:28:58 2020 +0200 Small update of German translation po/de.po | 82 ++++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 43 insertions(+), 39 deletions(-) commit 1f01c138942fd5f9f05b9a8d0657e92576e53ea3 Author: Matthew Brush Date: Sun Sep 20 14:03:22 2020 -0700 Remove geany.glade from POTFILES.skip This file is no longer compiled to `src/interface.c`, has moved, and is in fact now translated. po/POTFILES.skip | 2 -- 1 file changed, 2 deletions(-) commit 55e0998c3b131e8febe118245778702e65d4086f Author: Frank Lanitz Date: Tue Aug 18 19:36:28 2020 +0200 Small update of German translation on Replace and Search Fixes #2524 po/de.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2e71ff023dbfbceb2544a16380e31437ec156de0 Author: Frank Lanitz Date: Sat Aug 15 20:03:31 2020 +0200 Small upate of metadata po/ie.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit adf412d3f1cbcf719d56b35c4b78bae244fa795a Merge: bae9bc803 59ef1fda2 Author: Frank Lanitz Date: Sat Aug 15 19:57:57 2020 +0200 Merge pull request #2570 from Carmina16/interlingue Add Interlingue translation commit bae9bc803b91a050b5136ed4c5f4e12686fe35ba Merge: d8f532b5a 9cdbd4a0b Author: Frank Lanitz Date: Wed Aug 12 20:47:35 2020 +0200 Merge pull request #2568 from y-salnikov/master Corrected russian translation. commit 59ef1fda2228544b3b0dc5e0407f5885e96d9eb6 Author: Carmina16 Date: Tue Aug 11 10:32:46 2020 +0700 Add Interlingue translation Add a new Interlingue translation po/ie.po | 6155 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 6155 insertions(+) commit 9cdbd4a0b29304358d46dfb16da1f21f1fdad263 Author: Yaroslav Salnikov Date: Sat Aug 8 15:15:41 2020 +0400 Corrected russian translation. "Find Document Usage" was translated as "Find usage of document". Now it's "Find usage in document". po/ru.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d8f532b5adf41ae57b99b6ac95d336401ba15e35 Author: Andy Alt Date: Sun Jun 21 21:45:26 2020 -0500 add 'folding margin width setting' (#2140) data/filedefs/filetypes.common | 3 +++ src/editor.c | 2 -- src/highlighting.c | 21 +++++++++++++++++++++ src/sciwrappers.c | 16 ---------------- src/sciwrappers.h | 1 - 5 files changed, 24 insertions(+), 19 deletions(-) commit 2b6d5956eb5b3f17a2f15889a8bea1271cedce1b Author: Matthew Brush Date: Fri Jun 5 16:38:02 2020 -0700 Set a default widget name on all GtkBuilder widgets. (#2469) Allows selecting individual widgets in Gtk CSS using #name selector. src/ui_utils.c | 5 +++++ 1 file changed, 5 insertions(+) commit ea649d8024b14ce55a922e146078ad1bc15533df Author: Enrico Tröger Date: Wed Apr 29 23:48:18 2020 +0200 Windows: bundle the GLib GSpawn helper binaries with the installer We do not need those anymore in Geany directly. But there are still some plugins using this API instead of Geany's spawn API. So to support those plugins, provide the GLib helper binaries. scripts/gtk-bundle-from-msys2.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b38fc8db13f50d19df91ca85227d850926735f94 Merge: 64b5eadf1 08d8cec33 Author: Enrico Tröger Date: Mon Apr 27 21:36:25 2020 +0000 Merge pull request #2486 from dmitryunruh/js_keywords Sync javascript keywords commit 08d8cec33053f9d48cc5ef14512c0118c940510a Author: Dmitry Date: Tue Apr 28 06:27:25 2020 +1000 Sync javascript keywords data/filedefs/filetypes.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 64b5eadf129509726da56447830aebca6d3a99e8 Merge: bcafa1c04 e9594f5ee Author: Frank Lanitz Date: Sun Apr 26 10:06:21 2020 +0200 Merge pull request #2477 from dmitryunruh/master Corrected a Russian translation of the word Appearance in Preferences commit e9594f5eeb30cc1798646692e333cbf065363d83 Author: Dmitry Date: Sat Apr 18 11:35:38 2020 +1000 Corrected a Russian translation of the word Appearance in Preferences po/ru.po | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit bcafa1c04f540da772d577b106eb6d90a48b6056 Author: Dominic Hopf Date: Thu Apr 9 01:18:17 2020 +0200 #2459: Add Geany to Category TextEditor (#2460) geany.desktop.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 18794d3715cd767c1d1c7cc2e400e79d9241e296 Merge: f1de94bb8 7448f2adb Author: Frank Lanitz Date: Wed Apr 8 17:06:20 2020 +0200 Merge pull request #2467 from pmraps/master Fix a typo in pt translation commit 7448f2adbf9b339d342a9b5ed21d1f71a7ca82bd Author: pmralbuquerque Date: Tue Apr 7 17:15:54 2020 +0100 --all pt Translations Update - Typo po/pt.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit f1de94bb88f1c41c817a683da2d789561a36a9ce Author: Frank Lanitz Date: Sun Jan 26 20:21:58 2020 +0100 Update of Swedish translation po/sv.po | 501 +++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 266 insertions(+), 235 deletions(-) commit e390377884ae811689d994d44435034c20843531 Author: Colomban Wendling Date: Wed Jan 15 22:42:48 2020 +0100 Remove explicit static accessible name from the main window Users expect accessible name of the window to match the window title, so remove the custom explicit name of "Geany" which was added at the very beginnings of Geany, presumably without real a11y reasons. Without this, GTK forwards the window title to the a11y name for us, leading to the expected result and matching most other apps. Fixes #2421. data/geany.glade | 5 ----- 1 file changed, 5 deletions(-) commit 5cc69b3d6728a714637caabf0238759363e91e85 Merge: fe7015cf0 ba074dedf Author: Frank Lanitz Date: Tue Nov 26 10:15:06 2019 +0100 Merge pull request #2371 from ntrel/fif-strings Find in files: Update file pattern label and tooltip commit fe7015cf06205a098d987183d3860e266e71e963 Author: Frank Lanitz Date: Wed Oct 30 21:59:30 2019 +0100 Small update of German translation po/de.po | 435 ++++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 233 insertions(+), 202 deletions(-) commit 9904b33170fc6699a44b1a3fbfe6aadcb8d0275d Author: Admiraldesvl <40477748+Admiraldesvl@users.noreply.github.com> Date: Sun Nov 24 22:22:48 2019 +0800 a minor translation update. (#2367) THANKS | 1 + po/zh_CN.po | 52 ++++++++++++++++++++++++++-------------------------- 2 files changed, 27 insertions(+), 26 deletions(-) commit 32607105d6dcd7e4c38a18bdd80df4916505870e Author: Pino Toscano Date: Sat Nov 23 01:31:43 2019 +0100 Include for pathconf() (#2402) The get_path_max() function uses pathconf() in case PATH_MAX is not defined, and for that is needed. src/tagmanager/tm_source_file.c | 1 + 1 file changed, 1 insertion(+) commit d0b67df06967e6a9b5d6c18fce0ef35a211714b5 Author: Colomban Wendling Date: Sat Nov 16 18:29:43 2019 +0100 Rewrite HL_N_ENTRIES macro to avoid a GCC8 false positive warning GCC 8 introduced `-Wsizeof-pointer-div` which is enabled by `-Wall` and warns for sizeof divisions that look like they would compute the size of a static array but are called on something on which this doesn't work (e.g. a pointer as LHS). This is quite reasonable and useful, but it fails to detect the case where the computation is guarded against being called on problematic values, like our HL_N_ENTRIES() macro that accepts NULLs but won't use the sizeof computation result then. Work around this by implementing HL_N_ENTRIES() macro in a way that cannot trigger such a warning yet yield the same result. src/highlightingmappings.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 8abe5342c528be02bb62b9927b8c25e8aa4e2a35 Merge: 6e769d128 1d94ba2c3 Author: Matthew Brush Date: Tue Oct 29 17:12:02 2019 -0700 Merge pull request #2212 from TwlyY29/bibtex-parser Added a bibtex parser that extracts identifiers of entries in bib-fil… commit 6e769d12892250f3ba435a16dbf49b73fd73aff1 Author: Ingmārs Dīriņš Date: Sat Oct 26 16:55:00 2019 +0300 Small update of Latvian translation (#2383) po/lv.po | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit ba074dedf840f2c0ea8c098ffcec9755f502a2e0 Author: Nick Treleaven Date: Sun Oct 13 17:47:17 2019 +0100 Use project file patterns tooltip from #2356 in Find in Files dialog src/search.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 278de05d81b20ae90d429ab509684b1a40d936ba Author: Nick Treleaven Date: Sun Oct 13 17:38:44 2019 +0100 Re-use "File patterns" string in Find in Files dialog vs "Files" (New string already used in Project properties). src/search.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 75def8a24eb2dab8d376ae051806128827d34fbe Author: Nick Treleaven Date: Fri Oct 11 13:15:19 2019 +0100 Fix gcc warning: "/*" within comment src/utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1067841a7bf83a895416ba75fa1067dd4e418d7b Author: Nick Treleaven Date: Thu Aug 22 15:51:00 2019 +0100 build_menu_update: Only enable next/prev error items when errors found src/build.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 99180dbc6b62ceddcc3de6dcabcae266bdbdc6c3 Author: Nick Treleaven Date: Thu Aug 22 15:14:17 2019 +0100 build.c: Only set next/prev error menu items sensitive on first error src/build.c | 6 ++++++ src/msgwindow.c | 4 ---- 2 files changed, 6 insertions(+), 4 deletions(-) commit 431c68aa994434aa000f0be80f3f0097d1411c1b Author: LarsGit223 Date: Fri Oct 4 16:36:26 2019 +0200 doc: added documentation for the Color Chooser doc/geany.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 0da0fd4073ca0afa238d56172eb26ce3585a4cf7 Merge: 66823da6a ffae809a6 Author: Enrico Tröger Date: Sun Oct 6 17:10:27 2019 +0000 Merge pull request #2114 from eht16/save_config_on_doclist_change Save main and project configuration whenever documents are opened/closed commit 66823da6ac03ed9e2222437e8a567371c729f762 Author: Nick Treleaven Date: Sat Sep 21 14:28:55 2019 +0100 g_printerr handler: Don't add newline src/log.c | 4 ++-- src/tagmanager/tm_workspace.c | 2 +- src/utils.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) commit ad4cca60774eed24413347f5f6f667ea4b12c5c9 Author: Nick Treleaven Date: Thu Sep 19 14:10:25 2019 +0100 g_print handler: Don't add newline src/log.c | 4 ++-- src/pluginutils.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 2c80d94f714feca323629da6a9795278dee7c6f7 Author: Nick Treleaven Date: Sat Oct 5 11:30:14 2019 +0100 Wrap joined paragraphs doc/geany.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 2eedf488c1cd864aaf19aca1b0febf982891c5f6 Author: Nick Treleaven Date: Sat Sep 28 12:26:25 2019 +0100 review tweaks doc/geany.txt | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 28defee433023f6138124983bd09c07665321ec6 Author: Nick Treleaven Date: Fri Sep 27 13:37:07 2019 +0100 Break long lines doc/geany.txt | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) commit 38320911b1d95e48eaf706ab0eba22986528197e Author: Nick Treleaven Date: Fri Sep 27 13:30:00 2019 +0100 Clarify editing build commands from preferences doc/geany.txt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 4ed084a438a415f6364dd841fabd1adf8162c1bd Author: Nick Treleaven Date: Fri Sep 27 11:25:16 2019 +0100 Tweak build docs doc/geany.txt | 41 +++++++++++++++++------------------------ 1 file changed, 17 insertions(+), 24 deletions(-) commit 27f611c86d95e11e931fb5ecf2abc12831b2fe2e Author: Nick Treleaven Date: Fri Sep 27 12:39:32 2019 +0100 Rename superseded "Build menu commands" command to "Set Build Commands" doc/geany.txt | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) commit f2cbc85db18814eaba32515a4b7a0e31eff05c41 Author: Nick Treleaven Date: Fri Sep 27 11:02:23 2019 +0100 docs: Clarify that "filetype & independent commands" mean build commands Also use bullet list for configurable build keybindings. doc/geany.txt | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) commit ffae809a6c85ebd23db3edccfc8298e4d7a5ae27 Author: Enrico Tröger Date: Fri Mar 29 13:57:29 2019 +0100 Add setting, defaulting to TRUE, to disable automatic configuration save doc/geany.txt | 14 ++++++++++++-- src/document.h | 1 + src/keyfile.c | 7 +++++-- 3 files changed, 18 insertions(+), 4 deletions(-) commit 26996aa1aaec0d48c0cc4fa6519d4876e4d57855 Author: Enrico Tröger Date: Thu Mar 28 20:35:05 2019 +0100 Save main and project configuration whenever documents are opened/closed The main idea is to save the session file list more often to prevent accidental lost but saving the rest of the configuration might help as well. To prevent too many save attempts, an idle function is used and it's only added once until it was executed. doc/pluginsignals.c | 3 ++- src/keyfile.c | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) commit 9f049a7b40838e4f026270533eb877761e7f6945 Author: Forest Date: Tue Oct 1 11:54:28 2019 -0700 Define text color when setting dark background Some Gtk themes define a dark foreground color for selected text, so when we set the background to dark red, it becomes difficult to read. We must therefore set a foreground color that will remain legible against our background. Fixes #2332 data/geany.css | 1 + data/geany.gtkrc | 1 + 2 files changed, 2 insertions(+) commit 82590af4cc2d52fc0060eda872ddb2a5782e6e6c Author: Enrico Tröger Date: Sun Sep 22 13:38:28 2019 +0200 Add missing HAVE_SOCKET guard on in main_lib() src/libmain.c | 2 ++ 1 file changed, 2 insertions(+) commit f40569d1c327af162726dbab14a78fd83ca5e0b8 Author: Nick Treleaven Date: Sat Jun 8 17:28:06 2019 +0100 Opening recent projects: Don't ask whether to close current project Unlikely to be done accidentally. src/ui_utils.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit bcbae3d49abdb6d27d3627c686bb3b96b338b997 Author: Nick Treleaven Date: Sat Jun 8 11:27:09 2019 +0100 Make New Project dialog cancellable without closing existing session Move logic to handle_current_session(), run_new_dialog(). src/project.c | 83 ++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 45 insertions(+), 38 deletions(-) commit ad5a684c32e2474d00846e4a3edf0c5b8e2a1d47 Author: Nick Treleaven Date: Sat Jun 8 15:45:17 2019 +0100 Make Open Project dialog cancellable without closing existing session src/project.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 22c2b86fbe7df74430835331eccbbce667e149fc Author: Frank Lanitz Date: Sun Sep 29 13:38:50 2019 +0200 Small update of German translation po/de.po | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 4acdebf46ec2f0e701f541748a941d51b5b9fa94 Author: Colomban Wendling Date: Sat Sep 28 15:55:47 2019 +0200 Small update of making-a-release Simplify it a little recommending using the script early, and add new website URLs. doc/making-a-release | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) commit c9bdd73d82540bbfe9b13c6b6623e7c96a862f89 Author: Colomban Wendling Date: Sat Sep 28 15:52:12 2019 +0200 Post release version bump Say hello to Geany 1.37 "Wolbam"! NEWS | 3 +++ configure.ac | 2 +- doc/geany.txt | 2 +- geany.exe.manifest | 2 +- geany_private.rc | 4 ++-- src/geany.h | 2 +- 6 files changed, 9 insertions(+), 6 deletions(-) commit 825acb21eabd33390616b224b0454886dc7d6ec2 Author: Colomban Wendling Date: Sat Sep 28 14:36:12 2019 +0200 Set release date NEWS | 2 +- doc/geany.1.in | 2 +- doc/geany.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 51d307c178b4c1f2d7f1220280f5da9a88a6b766 Author: Colomban Wendling Date: Sat Sep 28 14:35:55 2019 +0200 Update NEWS for upcoming 1.36 release NEWS | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit 83c9042ab75bcc12b87d1fea3399fa5166d00bd0 Author: Enrico Tröger Date: Sat Sep 28 13:52:43 2019 +0200 Add "Nim" to the Programming file types group Previously Nim was grouped on the top-level menu because the group was missing. data/filetype_extensions.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 16e3aa29e24ad9ba419665c86c75e79a87202191 Author: Frank Lanitz Date: Sat Sep 28 08:25:45 2019 +0200 Small update of German translation po/de.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 99eacb4416b9a0adfed0a1e46ba2740581535fae Author: Colomban Wendling Date: Fri Sep 27 13:16:46 2019 +0200 Fix static build When using the uncommon `--enable-static` flag, we need to explicitly use the C++ linker as we do for libgeany. src/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit 24caa7f6b160f3176376c98acd18ed1e9c230396 Author: Frank Lanitz Date: Fri Sep 27 09:30:54 2019 +0200 Add updated zh_CN to NEWS NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7d540edbccc32e9164e21db4f38a796e6f744568 Author: 柳东原 · Dongyuan Liu Date: Fri Sep 27 15:30:24 2019 +0800 Update zh_CN.po (#2324) * Update zh_CN.po * Update Project-Id-Version of zh_CN po/zh_CN.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit b055f59dfdae86e93b9457ebc4957cc4742f5e51 Merge: 30a2ff697 f8f4dd891 Author: Enrico Tröger Date: Thu Sep 26 20:43:48 2019 +0000 Merge pull request #2315 from djbaldey/django-syntax Django highlighting in templates. commit 30a2ff697deb6551b8f65aa2a96346e0c0936f04 Author: Frank Lanitz Date: Thu Sep 26 08:54:31 2019 +0200 Add updated sk and lv translation to NEWS NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4fc18ea17916cce8536c27534229cc96ef3f797f Author: Andrej Herceg Date: Thu Sep 26 08:53:46 2019 +0200 Update of Slovak translation (#2318) po/sk.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 81f007297275a21e3d5cb42f3eb243eb1ab49455 Author: Ingmārs Dīriņš Date: Thu Sep 26 09:53:22 2019 +0300 Update of Latvian translation (#2319) po/lv.po | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 328e39a6a419cbf653380716f41916fb96106cbe Author: Frank Lanitz Date: Mon Sep 23 21:48:03 2019 +0200 Update of Spanish translation NEWS | 2 +- po/es.po | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) commit c669e69f000ca1b73ac8729f7614374200dfb43c Author: Frank Lanitz Date: Mon Sep 23 09:53:51 2019 +0200 Updated Danish and Italian translation NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 751644ccc7264d50180c2d99c7ddc2a8dea4c32f Author: Giuseppe Date: Mon Sep 23 08:53:07 2019 +0100 it.po for 1.36 (#2311) po/it.po | 73 +++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 38 insertions(+), 35 deletions(-) commit 64bd04b1bfb5d2218eee96afccab9c37d59edebb Author: scootergrisen Date: Mon Sep 23 09:52:51 2019 +0200 Update danish translation to 1.36 (#2313) po/da.po | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) commit f8f4dd891bf1f21c9ebfba6daeb8407cdcb03650 Author: Grigoriy Kramarenko Date: Mon Sep 23 14:53:29 2019 +1000 Django highlighting in templates. See https://docs.djangoproject.com/en/2.2/ref/templates/builtins/#is-operator data/filedefs/filetypes.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 94a944114ba3d9db4e442472c44127fecf642a42 Author: Frank Lanitz Date: Sun Sep 22 21:40:40 2019 +0200 Update of Portuguese translation NEWS | 2 +- po/pt.po | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) commit 736aa5566aa66a7847735361f8a346316c68526d Author: Frank Lanitz Date: Sun Sep 22 15:11:16 2019 +0200 Update of Japanese translation po/ja.po | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit b52a1ef8fd5e201d35921002fa4549fa7b5a4ac1 Author: Frank Lanitz Date: Sun Sep 22 12:53:07 2019 +0200 Update of NEWS for translation updates since 1.35 NEWS | 4 ++++ 1 file changed, 4 insertions(+) commit 9e1bccc1c4b057eb4a2f14066ac6f46aa8f7e7c2 Author: Frank Lanitz Date: Sun Sep 22 12:51:08 2019 +0200 Small update of German translation po/de.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a4e27a04a96fa6f80ee78927da18569a91837c0c Author: Frank Lanitz Date: Sun Sep 22 12:50:11 2019 +0200 Update version info for French translation po/fr.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0a9d076c688e72dc5e6211e287e00933cd6a3f44 Author: Colomban Wendling Date: Sun Sep 22 12:38:05 2019 +0200 Small update of the French translation po/fr.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 21488bc4b225e777130daa72d2470e8da87970f8 Author: Frank Lanitz Date: Sun Sep 22 11:56:24 2019 +0200 Update po files for string freeze of 1.36 po/ar.po | 765 +++++++++++++++++++++++++++++----------------------------- po/ast.po | 765 +++++++++++++++++++++++++++++----------------------------- po/be.po | 765 +++++++++++++++++++++++++++++----------------------------- po/bg.po | 765 +++++++++++++++++++++++++++++----------------------------- po/ca.po | 765 +++++++++++++++++++++++++++++----------------------------- po/cs.po | 765 +++++++++++++++++++++++++++++----------------------------- po/da.po | 769 +++++++++++++++++++++++++++++----------------------------- po/de.po | 657 +++++++++++++++++++++++++------------------------- po/el.po | 765 +++++++++++++++++++++++++++++----------------------------- po/en_GB.po | 765 +++++++++++++++++++++++++++++----------------------------- po/es.po | 769 +++++++++++++++++++++++++++++----------------------------- po/et.po | 765 +++++++++++++++++++++++++++++----------------------------- po/eu.po | 765 +++++++++++++++++++++++++++++----------------------------- po/fa.po | 765 +++++++++++++++++++++++++++++----------------------------- po/fi.po | 765 +++++++++++++++++++++++++++++----------------------------- po/fr.po | 765 +++++++++++++++++++++++++++++----------------------------- po/gl.po | 765 +++++++++++++++++++++++++++++----------------------------- po/he.po | 765 +++++++++++++++++++++++++++++----------------------------- po/hi.po | 765 +++++++++++++++++++++++++++++----------------------------- po/hu.po | 765 +++++++++++++++++++++++++++++----------------------------- po/id.po | 765 +++++++++++++++++++++++++++++----------------------------- po/it.po | 765 +++++++++++++++++++++++++++++----------------------------- po/ja.po | 786 +++++++++++++++++++++++++++++++----------------------------- po/kk.po | 765 +++++++++++++++++++++++++++++----------------------------- po/ko.po | 765 +++++++++++++++++++++++++++++----------------------------- po/ku.po | 765 +++++++++++++++++++++++++++++----------------------------- po/lb.po | 765 +++++++++++++++++++++++++++++----------------------------- po/lt.po | 765 +++++++++++++++++++++++++++++----------------------------- po/lv.po | 765 +++++++++++++++++++++++++++++----------------------------- po/mn.po | 765 +++++++++++++++++++++++++++++----------------------------- po/nl.po | 765 +++++++++++++++++++++++++++++----------------------------- po/nn.po | 765 +++++++++++++++++++++++++++++----------------------------- po/pl.po | 765 +++++++++++++++++++++++++++++----------------------------- po/pt.po | 765 +++++++++++++++++++++++++++++----------------------------- po/pt_BR.po | 765 +++++++++++++++++++++++++++++----------------------------- po/ro.po | 765 +++++++++++++++++++++++++++++----------------------------- po/ru.po | 769 +++++++++++++++++++++++++++++----------------------------- po/sk.po | 769 +++++++++++++++++++++++++++++----------------------------- po/sl.po | 765 +++++++++++++++++++++++++++++----------------------------- po/sr.po | 765 +++++++++++++++++++++++++++++----------------------------- po/sv.po | 537 +++++++++++++++++++++-------------------- po/tr.po | 765 +++++++++++++++++++++++++++++----------------------------- po/uk.po | 765 +++++++++++++++++++++++++++++----------------------------- po/vi.po | 765 +++++++++++++++++++++++++++++----------------------------- po/zh_CN.po | 765 +++++++++++++++++++++++++++++----------------------------- po/zh_TW.po | 765 +++++++++++++++++++++++++++++----------------------------- 46 files changed, 17740 insertions(+), 17151 deletions(-) commit 1d94ba2c32f2b57a059dcf7eff3cbeb5ea5003c5 Author: Mirco Schoenfeld Date: Sat Sep 21 05:02:51 2019 +0200 moved bibtex definition to the end of filetypes and parser definitions ctags/main/parsers.h | 4 ++-- src/filetypes.h | 2 +- src/tagmanager/tm_parser.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 411aa99c00f6af1156f0a7d891dfcf0ed072e476 Author: Nick Treleaven Date: Sat Sep 21 01:10:25 2019 +0100 configure: check for realpath function now MSYS2 has it (#2263) Fixes #2261. configure.ac | 2 +- src/tagmanager/tm_source_file.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 746697ab07e87077758c0b71280cf90cd01a5146 Merge: c88c27e2d 4b4a41e7f Author: Thomas Martitz Date: Fri Sep 20 23:11:49 2019 +0200 Merge pull request #2262 from kugel-/fix-1445 Fixes and refactorings to utils_strv_shorten_file_list() and friends. Also, initial unit tests using Glibs testing framework. commit 4b4a41e7f54eb1de3941854fc66f53811fb70ef9 Author: Thomas Martitz Date: Fri Aug 16 15:00:18 2019 +0200 utils: move utils_strv_shorten_file_list() out of GEANY_PRIVATE utils_strv_shorten_file_list() is part of the plugin API so hiding it inside GEANY_PRIVATE is plain wrong. src/utils.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 72d9f378e0de976a6d3d9b5fb3107c1979f8895b Author: Thomas Martitz Date: Fri Aug 16 07:42:03 2019 +0200 utils: refactor utils_strv_shorten_file_list() and friends Since utils_strv_find_lcs() respects path components by itself, utils_strv_shorten_file_list() can be massively simplified. The path list does not be prepared and post-processed around utils_strv_find_lcs() anymore because it does the right thing already. This saves a lot of complexity and also duplicating the string vector once. src/utils.c | 104 ++++++++++++++++++++++++++---------------------------------- 1 file changed, 45 insertions(+), 59 deletions(-) commit 30a486d62462ad2bf34ac7af48547053f7167441 Author: Thomas Martitz Date: Fri Aug 16 14:58:09 2019 +0200 utils: fix suboptimal elipsis substitution by utils_strv_shorten_file_list() Because utils_strv_find_lcs() didn't consisider path component boundaries it have have found substrings that are longest in itself but not so ideal when utils_strv_shorten_file_list() applied path boundaries. utils_strv_find_lcs() now can optionally restrict the substring between delimiters (i.e. dir separators). In that mode it will find the longest substring that is also sorrounded by the delimiters (there may be more delimiters inside the string). The unit test that demonstrated the deficient is fixed since now the expected substitution takes place. src/utils.c | 14 ++++++- src/utils.h | 2 +- tests/test_utils.c | 116 +++++++++++++++++++++++++++++++++++++++-------------- 3 files changed, 98 insertions(+), 34 deletions(-) commit 64a32db5e1d202b9055dd90dab335f7c2afa62c0 Author: Thomas Martitz Date: Wed Aug 14 23:56:28 2019 +0200 tests: unit test for some util strv functions We didn't use unit tests so far so I have picked up the glib testing framework. While there are better frameworks out there glib's it gets the job done and doesn't impose extra dependencies. For upcoming fixes and refactorings to utils_strv_find_lcs and utils_strv_shorten_file_list I would like to make sure to not introduce regressions and unit tests are ideal for that. A function to be tested must be exported by libgeany.so. Use GEANY_EXPORT_SYMBOL for that. It's not the same as GEANY_API_SYMBOL to avoid the impression that it's OK to use them in plugins. Also no doxygen comments for those. I resurrected utils_strv_new() because it's convinient to have in the tests. The function has its own test suite since it's otherwise unused. src/utils.c | 15 +-- src/utils.h | 4 + tests/Makefile.am | 11 ++ tests/test_utils.c | 367 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 389 insertions(+), 8 deletions(-) commit 6e3aa9cf791afba66bc513334f8a351e305c8d6d Author: Mirco Schoenfeld Date: Wed Sep 18 13:36:18 2019 +0200 added lexer-settings for comments to be highlighted data/filedefs/filetypes.bibtex | 48 ++---------------------------------------- 1 file changed, 2 insertions(+), 46 deletions(-) commit 67456e0cc3b801121c00ac4853d65d4dfb946e34 Author: Mirco Schoenfeld Date: Wed Sep 18 13:27:35 2019 +0200 Copied BibTeX-parser from https://github.com/universal-ctags/ctags/pull/2137 ctags/main/parsers.h | 2 +- ctags/parsers/bibtex.c | 493 ++++++++++++++++++++++++++++++++++----------- src/symbols.c | 7 +- src/tagmanager/tm_parser.c | 20 +- 4 files changed, 393 insertions(+), 129 deletions(-) commit dc6c58c86b41cb9bb10a02c656bf518971264d80 Merge: e652dd909 c88c27e2d Author: Mirco Schoenfeld Date: Wed Sep 18 12:53:17 2019 +0200 Merge remote-tracking branch 'upstream/master' into bibtex-parser commit c88c27e2d22dbff72488d8a57a825830fb833682 Author: Enrico Tröger Date: Sat Aug 31 12:34:38 2019 +0200 Fix broken markup in HACKING Make "*_foreach" an inline literal to escape the asterisk and so fix broken markup by the unbalanced asterisk which would start an emphasis otherwise. HACKING:223: (WARNING/2) Inline emphasis start-string without end-string. HACKING | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0ce5d5484e39edc25bc996cc0bf01f5bdc2b5221 Author: Nick Treleaven Date: Thu Aug 29 17:26:18 2019 +0100 build.c: Remove g_ptr_array_foreach with gpointer user_data & update HACKING (#2270) * build.c: Remove g_ptr_array_foreach with untyped user_data Also avoids passing &ft_names to the function. * HACKING: Avoid untyped pointers & *_foreach() with non-NULL user_data * Avoid using foreach_ macro * HACKING: merge 2 rules, simplify user_data clause HACKING | 8 ++++++-- src/build.c | 42 ++++++++++++++++++------------------------ 2 files changed, 24 insertions(+), 26 deletions(-) commit f088e7bdf62b706cb3a3970cf2f937a7e7408d66 Author: Nick Treleaven Date: Thu Aug 22 16:52:18 2019 +0100 Move GEANY_GBO_COMPILE etc to build.c src/build.c | 16 ++++++++++++++++ src/build.h | 16 ---------------- 2 files changed, 16 insertions(+), 16 deletions(-) commit 434cfe580b0fdf4cf4cd02f4f7cb0bbbfa922f5e Author: Nick Treleaven Date: Wed Aug 21 14:29:21 2019 +0100 build.h: Move GBO_TO_* macros to build.c Format the macros so they are a bit more readable. Move build keybinding action code to build.c. src/build.c | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/build.h | 30 ++----------------- src/keybindings.c | 58 +----------------------------------- 3 files changed, 92 insertions(+), 85 deletions(-) commit d80e36e85a031fc266fe200add05f0626a0696ad Author: Jacob Pratt Date: Tue Mar 28 22:20:43 2017 -0400 TypeScript syntax highlighting data/Makefile.am | 1 + data/filedefs/filetypes.TypeScript.conf | 54 +++++++++++++++++++++++++++++++++ data/filetype_extensions.conf | 3 +- 3 files changed, 57 insertions(+), 1 deletion(-) commit d19f7719a5c3c81b4fa87df4bd2c7d8f3959e117 Author: Nick Treleaven Date: Sat Aug 17 11:34:44 2019 +0100 Add Groovy custom filetype (#2188) * Add Groovy custom filetype * Don't highlight lines with unterminated string literal; C++ tags * filetype registration * Add *.gradle and build menu commands data/Makefile.am | 1 + data/filedefs/filetypes.Groovy.conf | 30 ++++++++++++++++++++++++++++++ data/filetype_extensions.conf | 3 ++- 3 files changed, 33 insertions(+), 1 deletion(-) commit aa90ea7035d0c01d1c5f00d97a0820a9daefac02 Author: Nick Treleaven Date: Mon Aug 12 14:54:09 2019 +0100 build.c: Replace ASSIGNIF inline macro with assign_cmd function src/build.c | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) commit ec0e11ca040ef142ca1ab09f34951bf809b8839d Author: Nick Treleaven Date: Mon Aug 12 17:22:55 2019 +0100 [docs] Move error_regex section to [build-menu]; add filetype example doc/geany.txt | 55 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 40 insertions(+), 15 deletions(-) commit c29bf208530f4a852c176afd6b8f65e1436c4611 Author: Matthew Brush Date: Fri Aug 16 16:02:15 2019 -0700 Show the GTK/GLib versions in about dialog (#2163) src/about.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 46d5e7542b8396ed593f2e319f71d153a67684dc Author: Pedro Henrique Antunes de Oliveira Date: Wed Jan 21 15:08:41 2015 -0200 Add support for fractional font sizes Closes #2250 and closes #703. src/editor.c | 7 ++++--- src/sciwrappers.c | 15 +++++++++++++-- src/sciwrappers.h | 2 ++ 3 files changed, 19 insertions(+), 5 deletions(-) commit 7214a646f8b467f5c790c786bcc4c2f8b4226e21 Author: szc126 Date: Mon Aug 12 10:50:04 2019 -0700 Update ja.po: "Appearance" "外観"→"出現" (#2255) cf. "Sort by _Appearance" "出現順に並び替え(_A)" po/ja.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 21b06d1e4bf18f2cab137ab08a976dbf14274d58 Author: Thomas Martitz Date: Sat Aug 3 23:41:02 2019 +0200 prefer XDG_RUNTIME_DIR over /tmp for the socket (#2222) Prefer XDG_RUNTIME_DIR over /tmp for the socket $XDG_RUNTIME_DIR is the place where to put socket files these days. It seems good practice to create a sub-directory as well, perhaps we create more files there in the future. The fallback to write in /tmp remains for the rare occasions where $XDG_RUNTIME_DIR cannot be used. Changes during review process: - use utils_mkdir(), instead of g_mkdir_with_parents() to create the geany directory. - keep the mechanism to give the socket a random file ame src/socket.c | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) commit 9c91c287803ae05ce0f2aacd605564301e0ef4aa Author: ziryan Date: Thu Jul 25 12:08:04 2019 +0300 create "ku" po file (#2221) * create "ku" po file * update translate * Update ku.po po/ku.po | 5958 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 5958 insertions(+) commit d11cbff9ba3c3d13143e7eb39b209f2e990f32ac Author: Nick Treleaven Date: Mon Jun 3 13:10:25 2019 +0100 Show Various pref group prefixes E.g. *editor.use_gtk_word_boundaries*. stash_tree_setup() now puts a prefix before the key name. stash_group_set_various() can set a prefix otherwise group->name is used. This is useful as Geany prefs all use PACKAGE for the group name apart from "build-menu". This allows us to regroup various prefs without breaking user config. Put `allow_always_save` in `files` group rather than `interface`. Put `extract_filetype_regex` in `files` group. doc/geany.txt | 35 +++++++++++++++++------------------ src/keyfile.c | 39 ++++++++++++++++++++++++++------------- src/keyfile.h | 3 ++- src/stash.c | 14 +++++++++++--- src/stash.h | 3 ++- src/ui_utils.c | 4 +--- 6 files changed, 59 insertions(+), 39 deletions(-) commit 4f76bebab4348e7b3164436cd825ac371fd49bc4 Author: Nick Treleaven Date: Thu Jun 13 16:25:46 2019 +0100 Use more usual build command labels data/filedefs/filetypes.Kotlin.conf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 618510cdc96159d0cb92e929f95930df47cb2b14 Author: Nick Treleaven Date: Thu Jun 13 13:00:32 2019 +0100 Add Kotlin custom filetype from github.com/esotericpig data/Makefile.am | 1 + data/filedefs/filetypes.Kotlin.conf | 31 +++++++++++++++++++++++++++++++ data/filetype_extensions.conf | 3 ++- 3 files changed, 34 insertions(+), 1 deletion(-) commit b67ec3dd4ed8d8eb3f3ef30abf4dd67ff56a0d06 Author: Nick Treleaven Date: Fri May 31 10:41:47 2019 +0100 Let longest filename pattern win Use g_pattern_match_simple as GPatternSpec is only used once. src/filetypes.c | 50 +++++++++++++++++++------------------------------- 1 file changed, 19 insertions(+), 31 deletions(-) commit 386d418c332c7466da81ec13e9eb1afdb19284cd Author: Andy Alt Date: Fri Jul 19 03:40:46 2019 -0500 Fix configure to show "default=auto" for --enable-api-docs (#2190) This fixes the discrepancy where configure --help shows "default=no" but the api-docs are built anyway (only if dependencies are found). The actual default is auto which is intended. Fixes #2189 m4/geany-doxygen.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 13f7618e101f0ec18d637d98038901b004d8243d Author: Colomban Wendling Date: Thu Jul 18 18:20:44 2019 +0200 Use the `py` launcher for Python filetype on Windows Fixes #2211. configure.ac | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 28a5b1029b4f43a405f6dd1fa4eac66abf6dcb00 Author: Colomban Wendling Date: Thu Jul 18 18:15:22 2019 +0200 Add support for selecting the default Python command Add a configure option to select the command used as the Python interpreter by default in the Python filetype. This can typically be useful if a setup has non-standard paths or do not provide a generic `python` interpreter but only versioned ones. configure.ac | 9 +++++++++ data/Makefile.am | 12 +++++++++--- data/filedefs/{filetypes.python => filetypes.python.in} | 4 ++-- 3 files changed, 20 insertions(+), 5 deletions(-) commit 7e7e0879017d2ac41d368c5d51e87c5079f877c2 Author: Rajesh Pandian M Date: Fri Jul 12 12:23:37 2019 +0530 Updated error_regex in filetypes.CUDA.conf data/filedefs/filetypes.CUDA.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e652dd909d1b2858ae699656aa5c8ac89924faaf Author: Mirco Schoenfeld Date: Thu Jul 11 09:58:17 2019 +0200 added filetypes.bibtex to relevant Makefile plus made lookup of bibtex keywords case insensitive ctags/parsers/bibtex.c | 4 ++-- data/Makefile.am | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) commit 82e09b5d9b9eed03d42b5ef82c6efaacb0fffc7b Author: Mirco Schoenfeld Date: Tue Jul 9 16:33:53 2019 +0200 added a bibtex parser that extracts identifiers of entries in bib-files and makes them accessible on the sidebar ctags/Makefile.am | 1 + ctags/main/parsers.h | 1 + ctags/parsers/bibtex.c | 180 +++++++++++++++++++++++++++++++++++++++++ data/filedefs/filetypes.bibtex | 51 ++++++++++++ data/filetype_extensions.conf | 3 +- src/filetypes.c | 1 + src/filetypes.h | 1 + src/symbols.c | 11 +++ src/tagmanager/tm_parser.c | 8 ++ src/tagmanager/tm_parser.h | 1 + 10 files changed, 257 insertions(+), 1 deletion(-) commit aa54866f982390cb5458e3265cedf954b03dd3f1 Merge: 770cda406 3820a4fb6 Author: Enrico Tröger Date: Sat Jul 6 13:24:38 2019 +0000 Merge pull request #2181 from eht16/nsis_upgrade NSIS upgrade to 3.x commit 3820a4fb6e57865d4acb4988a6e6a9647cce9173 Author: Enrico Tröger Date: Mon Jun 10 14:45:24 2019 +0200 Update functions and variables for the NSIS filetype And add a script to make this task easier in the future. data/filedefs/filetypes.nsis | 4 ++-- scripts/update-nsis-functions.sh | 51 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 2 deletions(-) commit c159d1ae6fd34dff9dfa905b98478d1a9e846231 Author: Enrico Tröger Date: Mon Jun 10 14:39:50 2019 +0200 Windows installer: Migrate to NSIS 3.x Closes #1302. geany.nsi.in | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 770cda40646e8ebfe6591df03356e2bcb71b875c Merge: 56fa037df 41122c07b Author: Nick Treleaven Date: Mon Jun 10 12:15:43 2019 +0100 Merge pull request #2166 from ntrel/user-ft-ext Always allow user filetype extensions to override system config file commit 56fa037df9ba176ba690a015c673a9c44f01b820 Author: Nick Treleaven Date: Mon Jun 10 11:32:02 2019 +0100 [doc] Add tip to put commonly used filetypes in the None group (#2175) doc/geany.txt | 7 +++++++ 1 file changed, 7 insertions(+) commit 3afdba5716c5c5f2d4f1b9f8733ef392c759a3ff Author: Simon Krauter Date: Sat Jun 8 19:44:18 2019 +0200 Add Nim filetype (#2085) * Add Nim filetype Add support for the Nim programming language using the Python lexer. Nim website: https://nim-lang.org/ * Correct file name * Add filetypes.Nim.conf to Makefile.am As requested by b4n * Remove unneeded lexer_properties and indentation width As requested by b4n * Fix run_cmd * Improved keywords data/Makefile.am | 1 + data/filedefs/filetypes.Nim.conf | 29 +++++++++++++++++++++++++++++ data/filetype_extensions.conf | 1 + 3 files changed, 31 insertions(+) commit 55382df297e287bb46793bdcfa19aafe04c0cc14 Author: Nick Treleaven Date: Sat Jun 1 11:49:21 2019 +0100 Comment out copied contents opening `Tools->Configuration Files` Discourage the user from overriding system settings unnecessarily. src/ui_utils.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit b9ef191c2a0b7a49ee92093ff095a86e62af2821 Author: Frank Lanitz Date: Mon Jun 3 21:03:23 2019 +0200 Update of Swedish translation po/sv.po | 286 +++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 148 insertions(+), 138 deletions(-) commit 95c0c06cba3dc0d988c2c0a74c5d52fa2e9f3a93 Author: ankitpati Date: Sat Nov 26 19:08:26 2016 +0530 Add support for Apple Swift language data/Makefile.am | 1 + data/filedefs/filetypes.Swift.conf | 45 ++++++++++++++++++++++++++++++++++++++ data/filetype_extensions.conf | 3 ++- 3 files changed, 48 insertions(+), 1 deletion(-) commit 41122c07bca2a45cd3750311398d42da404c85fa Author: Nick Treleaven Date: Thu May 16 16:01:53 2019 +0100 Always allow user filetype extensions to override system config file Before the user would sometimes have to override 'UnwantedFiletype=' in the user config file to remove an extension written in the system file. Geany would ignore an overridden filetype in the user config file that also matches the extension. This happened when the wanted filetype had a higher index than the unwanted one in filetypes_array. src/filetypes.c | 17 ++++++++++++++++- src/filetypesprivate.h | 1 + 2 files changed, 17 insertions(+), 1 deletion(-) commit 0082fb2a99b306a7d7b995cd6ca3d087c3bca7cd Author: Nick Treleaven Date: Thu May 16 15:55:36 2019 +0100 Kill filetypes_find(), rename static function It's not worth abstracting finding through filetypes_array, it's not bug prone, and it may even cause bugs with non-type-safe predicate signature. It was only used once anyway. src/filetypes.c | 33 +++++++++++---------------------- src/filetypes.h | 3 --- 2 files changed, 11 insertions(+), 25 deletions(-) commit 868da11715ed86d08c1c2c4deaf1b2aa6c209df4 Merge: 9d4aa7f80 a4027f9f8 Author: Colomban Wendling Date: Fri May 3 19:52:02 2019 +0200 Merge pull request #2138 from b4n/scintilla/update-3-10-4 Update Scintilla to version 3.10.4 commit a4027f9f8fdf4ab9efc984f88b945c9911e583b6 Author: Colomban Wendling Date: Mon Apr 29 13:32:11 2019 +0200 scintilla: Fix GCC 4.8 support wrt noexcept move constructors X-Scintilla-Commit-ID: ee3fe56c6fe815781d02fbc7d55d9f15f9c439aa scintilla/src/XPM.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 4bceddb449b8727e1d8b449a5d92af5fa53a2405 Author: Colomban Wendling Date: Sun Apr 28 19:02:15 2019 +0200 Update Scintilla to version 3.10.4 scintilla/Makefile.am | 1 + scintilla/gtk/Converter.h | 14 +- scintilla/gtk/PlatGTK.cxx | 393 ++++++++-------- scintilla/gtk/ScintillaGTK.cxx | 773 ++++++++++++++++--------------- scintilla/gtk/ScintillaGTK.h | 49 +- scintilla/gtk/ScintillaGTKAccessible.cxx | 100 ++-- scintilla/include/Platform.h | 12 + scintilla/include/SciLexer.h | 12 + scintilla/include/Scintilla.h | 9 + scintilla/include/Scintilla.iface | 35 +- scintilla/lexers/LexCPP.cxx | 163 ++++--- scintilla/lexers/LexHaskell.cxx | 1 + scintilla/lexers/LexTCL.cxx | 4 +- scintilla/lexlib/CharacterCategory.cxx | 33 ++ scintilla/lexlib/CharacterCategory.h | 17 + scintilla/lexlib/CharacterSet.h | 12 +- scintilla/lexlib/StyleContext.cxx | 1 - scintilla/scintilla_changes.patch | 7 +- scintilla/src/CallTip.cxx | 2 +- scintilla/src/CaseConvert.cxx | 8 +- scintilla/src/CaseFolder.cxx | 2 +- scintilla/src/CaseFolder.h | 2 +- scintilla/src/CharClassify.cxx | 5 +- scintilla/src/ContractionState.cxx | 8 +- scintilla/src/ContractionState.h | 1 - scintilla/src/DBCS.h | 8 + scintilla/src/Document.cxx | 29 +- scintilla/src/Document.h | 20 +- scintilla/src/EditModel.cxx | 20 + scintilla/src/EditModel.h | 6 +- scintilla/src/EditView.cxx | 51 +- scintilla/src/EditView.h | 16 +- scintilla/src/Editor.cxx | 137 +++--- scintilla/src/Editor.h | 81 ++-- scintilla/src/ElapsedPeriod.h | 2 +- scintilla/src/Indicator.cxx | 8 +- scintilla/src/Indicator.h | 8 +- scintilla/src/KeyMap.h | 2 +- scintilla/src/LineMarker.cxx | 68 +-- scintilla/src/LineMarker.h | 24 +- scintilla/src/MarginView.cxx | 4 +- scintilla/src/MarginView.h | 2 +- scintilla/src/PerLine.h | 2 +- scintilla/src/PositionCache.cxx | 25 +- scintilla/src/PositionCache.h | 28 +- scintilla/src/RESearch.h | 17 +- scintilla/src/ScintillaBase.cxx | 9 +- scintilla/src/ScintillaBase.h | 4 +- scintilla/src/Selection.cxx | 2 +- scintilla/src/Selection.h | 14 +- scintilla/src/Style.cxx | 20 +- scintilla/src/Style.h | 20 +- scintilla/src/UniConversion.cxx | 31 +- scintilla/src/UniConversion.h | 10 +- scintilla/src/UniqueString.cxx | 55 +++ scintilla/src/UniqueString.h | 34 +- scintilla/src/ViewStyle.cxx | 72 ++- scintilla/src/ViewStyle.h | 61 ++- scintilla/src/XPM.h | 17 +- scintilla/version.txt | 2 +- 60 files changed, 1480 insertions(+), 1093 deletions(-) commit 9d4aa7f8071da54efce0508dd92c0930703304a0 Author: Colomban Wendling Date: Sun Apr 28 18:38:32 2019 +0200 Update making-a-release a little doc/making-a-release | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 11436f58defe5312c4d6eec1225868c5dca585e4 Author: Colomban Wendling Date: Sun Apr 28 17:36:02 2019 +0200 Post release version bump Say hello to Geany 1.36 "Poliff"! NEWS | 3 +++ configure.ac | 2 +- doc/geany.txt | 2 +- geany.exe.manifest | 2 +- geany_private.rc | 4 ++-- src/geany.h | 2 +- 6 files changed, 9 insertions(+), 6 deletions(-) commit 2d4f369937c0dd08046e7f68a5d0a8c6c8e1b866 Author: Colomban Wendling Date: Sun Apr 28 16:06:53 2019 +0200 Set release date NEWS | 2 +- doc/geany.1.in | 2 +- doc/geany.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 58ae0952670b481dd866bdf841c8b7e84902b55f Author: Colomban Wendling Date: Sun Apr 28 16:05:34 2019 +0200 Update NEWS for upcoming 1.35 release NEWS | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit 349b8c40e252ddf1b335e0849ffcd37c403d72e9 Merge: 12f03f677 ec6e2320d Author: Colomban Wendling Date: Sun Apr 28 11:14:33 2019 +0200 Merge pull request #2134 from b4n/ctags/new-flex-parser Add new upstream candidate Flex parser commit 12f03f67737ea018620dfff7f15c7a02023af6b6 Merge: e696a680f de097ddf6 Author: Enrico Tröger Date: Sun Apr 28 08:59:12 2019 +0000 Merge pull request #2116 from eht16/issue352_vte_full_restart Restart the shell if VTE restart is requested commit e696a680f46bf2f9c92a19787e67c51c75f1916f Author: Frank Lanitz Date: Sun Apr 28 10:56:02 2019 +0200 Add notes about updated transaltions to NEWS NEWS | 3 +++ 1 file changed, 3 insertions(+) commit f94a1c54d5041901fcb54a22285c2d81ed5ba643 Author: Frank Lanitz Date: Sun Apr 28 10:46:51 2019 +0200 Update of German translation po/de.po | 264 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 136 insertions(+), 128 deletions(-) commit f6b04480c8b09942da11f4e59f542eddf881ef81 Author: Colomban Wendling Date: Sun Apr 28 01:37:18 2019 +0200 Don't perform line breaking in rectangular selection mode (#2135) Doing so drops the rectangular selection, and there is no obvious correct behavior for line breaking with a rectangular selection. So, just don't do line breaking in this case. Fixes #2051. src/editor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d551765d59f0f92d5ffa68dba3f541f4c00c2c12 Author: Colomban Wendling Date: Sat Apr 27 16:12:50 2019 +0200 scintilla: Fix invalid memory access in MoveSelectedLines Fixes #2066. X-Scintilla-Commit-ID: df5c32512d3d6b71ee6138c709b392258c3a1991, 25a0367e9349c8475c619a054af7bf1daf15b04c X-Scintilla-Bug-ID: https://sourceforge.net/p/scintilla/bugs/2078/ scintilla/src/Editor.cxx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 44c26adbc35a6f5e3b6d84945b78634d7550e86b Merge: 1223743b7 585b16b0d Author: Colomban Wendling Date: Sat Apr 27 15:21:36 2019 +0200 Merge pull request #2128 from b4n/ctags/new-cobol-parser COBOL: Import new upstream candidate parser commit ec6e2320dd48bb4043b9d373c05ac24b97e3d7f5 Author: Colomban Wendling Date: Fri Apr 26 15:38:59 2019 +0200 Add new upstream candidate Flex parser See: https://github.com/universal-ctags/ctags/pull/2084 This import has 3 difference with upstream, not to use newer API than current Geany has, and to workaround current limitations of Geany ctags calls: imports are enabled by default and don't have a specific role. ctags/Makefile.am | 2 +- ctags/main/parsers.h | 2 +- ctags/parsers/actionscript.c | 99 - ctags/parsers/flex.c | 2636 ++++++++++++++++++++ src/symbols.c | 1 + src/tagmanager/tm_parser.c | 15 +- tests/ctags/Makefile.am | 7 + tests/ctags/actionscript/as-first-token.as | 1 + tests/ctags/actionscript/as-first-token.as.tags | 2 + tests/ctags/actionscript/classes.as | 16 + tests/ctags/actionscript/classes.as.tags | 13 + tests/ctags/actionscript/const.as | 8 + tests/ctags/actionscript/const.as.tags | 6 + tests/ctags/actionscript/const2.as | 7 + tests/ctags/actionscript/const2.as.tags | 3 + tests/ctags/actionscript/method-attributes.as | 12 + tests/ctags/actionscript/method-attributes.as.tags | 10 + tests/ctags/actionscript/packages.as | 9 + tests/ctags/actionscript/packages.as.tags | 7 + tests/ctags/actionscript/sampler.as | 66 + tests/ctags/actionscript/sampler.as.tags | 16 + 21 files changed, 2831 insertions(+), 107 deletions(-) commit 1223743b70a234d57787c12dad98427861acab60 Author: Enrico Tröger Date: Mon Apr 22 22:37:51 2019 +0200 Windows installer: Install GTK translations only if selected Closes #2090. geany.nsi.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0504d1631665b5394c3e852e40e5925a55a1af8f Author: Frank Lanitz Date: Sun Apr 21 21:58:05 2019 +0200 Update of Japanese translation po/ja.po | 219 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 110 insertions(+), 109 deletions(-) commit b9c8e7b0949d799fba906cd156e9e57022fa5067 Author: 柳东原 LIU Dongyuan Date: Mon Apr 22 22:56:18 2019 +0800 Update zh_CN.po (#2130) * Update zh_CN.po * Update zh_CN.po po/zh_CN.po | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) commit 1c567038fc5f14925690b1ebbafc08289bedc2dc Author: Ingmārs Dīriņš Date: Sat Apr 20 21:51:15 2019 +0300 Update of the Latvian translation (#2127) po/lv.po | 249 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 128 insertions(+), 121 deletions(-) commit 2ae6cd9c1a304d4882a47e38253bc8fcb57bec1b Author: Colomban Wendling Date: Sat Apr 20 11:50:36 2019 +0200 Fix incomplete prototype Use `void` for empty argument lists. src/tagmanager/tm_parser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 585b16b0daec4f0f3a6e396692560cdb678774d6 Author: Colomban Wendling Date: Sat Apr 20 10:54:27 2019 +0200 COBOL: Import new upstream candidate parser This fixes support for COBOL symbols after the recent breakage of regex parsers, as well as introducing additional features and bug fixes. Also import some of the tests. https://github.com/universal-ctags/ctags/pull/2076 Part of #2119. ctags/parsers/cobol.c | 520 +++++++++++++++++++++++++-- src/symbols.c | 2 + src/tagmanager/tm_parser.c | 3 + tests/ctags/Makefile.am | 8 +- tests/ctags/cobol/helloworld.cbl | 14 + tests/ctags/cobol/helloworld.cbl.tags | 11 + tests/ctags/cobol/helloworld2.cbl | 19 + tests/ctags/cobol/helloworld2.cbl.tags | 11 + tests/ctags/cobol/levels.cbl | 27 ++ tests/ctags/cobol/levels.cbl.tags | 22 ++ tests/ctags/cobol/quoted-program-id.cbl | 7 + tests/ctags/cobol/quoted-program-id.cbl.tags | 5 + tests/ctags/{ => cobol}/simple.cbl | 0 tests/ctags/cobol/simple.cbl.tags | 22 ++ tests/ctags/simple.cbl.tags | 19 - 15 files changed, 645 insertions(+), 45 deletions(-) commit acebc2d6db11b7ba05a4fecbfbddb511ab9d8114 Author: Colomban Wendling Date: Fri Apr 5 14:00:01 2019 +0200 scintilla: Accessible: emit the text deletion signal before deletion This allows the accessibility layer to request detail, such as which characters have been deleted. ATK will query the deleted range to report the data that was removed, so it must still be available for the query to give a correct answer. So, emit the signal in BEFOREDELETE instead of DELETETEXT. X-Scintilla-Bug-URL: https://sourceforge.net/p/scintilla/bugs/2095/ X-Scintilla-Commit-ID: 0a937b4c0b2be02042473baed62543ff73d90807 scintilla/gtk/ScintillaGTKAccessible.cxx | 10 +++------- scintilla/gtk/ScintillaGTKAccessible.h | 2 -- 2 files changed, 3 insertions(+), 9 deletions(-) commit a587385de0b004399090480b852a907ced46f66f Author: Colomban Wendling Date: Fri Apr 5 14:06:48 2019 +0200 scintilla: Accessible: use the built-in character position cache It's quite a lot faster even after trying and optimizing the custom version, and it makes the code simpler. Also improve ByteOffsetFromCharacterOffset() to make use of the cache, making it drastically faster. X-Scintilla-Bug-URL: https://sourceforge.net/p/scintilla/bugs/2094/ X-Scintilla-Commit-ID: 01aab5f24e50ed14551c8c9c8ecce7ece0594c09 X-Scintilla-Commit-ID: 2c8b52af4ae5de2abe7c00fd18e78be60340cbf9 Fixes #2092. scintilla/gtk/ScintillaGTK.cxx | 2 +- scintilla/gtk/ScintillaGTKAccessible.cxx | 16 ++++++---------- scintilla/gtk/ScintillaGTKAccessible.h | 32 ++++++++++++++++++-------------- 3 files changed, 25 insertions(+), 25 deletions(-) commit b6a132bc12df47bc92994792572ea962fd6f4aa6 Author: Colomban Wendling Date: Wed Apr 17 19:22:48 2019 +0200 Small update of the French translation po/fr.po | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 75a736bf7188e1db06417d4fc5140b9f36ae60e5 Merge: f744f34d4 b6fc42f5f Author: Frank Lanitz Date: Wed Apr 17 18:41:09 2019 +0200 Merge branch 'master' of github.com:geany/geany commit f744f34d4a3f71c11c32a22eccdc455116a53a48 Author: Frank Lanitz Date: Wed Apr 17 18:39:40 2019 +0200 Update of Russian translation po/ru.po | 29 +++++++---------------------- 1 file changed, 7 insertions(+), 22 deletions(-) commit b6fc42f5f7e3538d27bfaaa73c6285fadc894361 Author: Andrej Herceg Date: Wed Apr 17 09:01:44 2019 +0200 Update of Slovak translation (#2126) po/sk.po | 41 ++++++++++++++--------------------------- src/about.c | 5 +++-- 2 files changed, 17 insertions(+), 29 deletions(-) commit 46797da804cbea7f011feeb715e4220cb26d52b5 Author: Frank Lanitz Date: Tue Apr 16 17:46:14 2019 +0200 Update off Spanish translation po/es.po | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) commit ada85ab331490b4449007947388ad6ce38a578ae Author: Frank Lanitz Date: Tue Apr 16 17:18:39 2019 +0200 Update of Portugese translation po/pt.po | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit b1d10d55bf7c82635575062971c88d806cbb28db Author: scootergrisen Date: Mon Apr 15 23:44:36 2019 +0200 Update danish translation to 1.35 (#2125) Add 2 new strings po/da.po | 25 +++++-------------------- 1 file changed, 5 insertions(+), 20 deletions(-) commit 2e366f8b8e11a0f3a20f6d74df579dec8fcc55fd Author: Frank Lanitz Date: Mon Apr 15 17:14:30 2019 +0200 Update po files for upcoming 1.35 release po/ar.po | 20 ++++++++++++-------- po/ast.po | 24 +++++++++++++----------- po/be.po | 20 ++++++++++++-------- po/bg.po | 20 ++++++++++++-------- po/ca.po | 20 ++++++++++++-------- po/cs.po | 24 +++++++++++++----------- po/da.po | 20 ++++++++++++-------- po/de.po | 13 +++++++------ po/el.po | 20 ++++++++++++-------- po/en_GB.po | 24 +++++++++++++----------- po/es.po | 20 ++++++++++++-------- po/et.po | 20 ++++++++++++-------- po/eu.po | 20 ++++++++++++-------- po/fa.po | 24 +++++++++++++----------- po/fi.po | 24 +++++++++++++----------- po/fr.po | 27 ++++++++++++++------------- po/gl.po | 28 +++++++++++++++------------- po/he.po | 20 ++++++++++++-------- po/hi.po | 20 ++++++++++++-------- po/hu.po | 24 +++++++++++++----------- po/id.po | 24 +++++++++++++----------- po/it.po | 20 ++++++++++++-------- po/ja.po | 24 +++++++++++++----------- po/kk.po | 20 ++++++++++++-------- po/ko.po | 20 ++++++++++++-------- po/lb.po | 25 +++++++++++++------------ po/lt.po | 20 ++++++++++++-------- po/lv.po | 20 ++++++++++++-------- po/mn.po | 20 ++++++++++++-------- po/nl.po | 20 ++++++++++++-------- po/nn.po | 20 ++++++++++++-------- po/pl.po | 20 ++++++++++++-------- po/pt.po | 28 +++++++++++++++------------- po/pt_BR.po | 24 +++++++++++++----------- po/ro.po | 20 ++++++++++++-------- po/ru.po | 20 ++++++++++++-------- po/sk.po | 20 ++++++++++++-------- po/sl.po | 20 ++++++++++++-------- po/sr.po | 20 ++++++++++++-------- po/sv.po | 26 ++++++++++++++------------ po/tr.po | 24 +++++++++++++----------- po/uk.po | 20 ++++++++++++-------- po/vi.po | 24 +++++++++++++----------- po/zh_CN.po | 20 ++++++++++++-------- po/zh_TW.po | 20 ++++++++++++-------- 45 files changed, 557 insertions(+), 414 deletions(-) commit 938da95c9def39377380e7a15c88eb6bb712d7cc Merge: 9ce8a4499 405f772b3 Author: Colomban Wendling Date: Sun Apr 14 15:53:13 2019 +0200 Merge pull request #1326 from b4n/default-open-enc Fix loading the default open encoding option commit 9ce8a44996b1566092ad185db970cf7a82cece66 Author: Frank Lanitz Date: Sat Apr 13 18:03:45 2019 +0200 Small update of German translation po/de.po | 73 +++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 38 insertions(+), 35 deletions(-) commit ccbf0df24a93421720be0f9bcbb94f2e19c17fae Author: Colomban Wendling Date: Tue Apr 9 14:50:54 2019 +0200 Avoid passing plain strings as format Introduced in #2111, this gets caught by GCC's -Wformat-security which is enabled as an error in our nightly builds. src/libmain.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e2d2a569f27e7bc02b5776ef2d68771b0ff902fd Merge: 00a568824 1526af406 Author: Enrico Tröger Date: Sun Apr 7 09:52:27 2019 +0000 Merge pull request #2106 from eht16/update_copyright_years Update all copyright notices to mention only the first publish year commit 1526af4068aa0911df990587e1709e484db6963b Author: Enrico Tröger Date: Tue Mar 19 11:08:17 2019 +0100 Update all copyright notices to mention only the first publish year And so remove the current year to ease maintenance and since it is not strictly necessary. Also remove individual copyright holders (where appropriate) and replace the name with "The Geany contributors". The detailed authorship information is still available in the GIT history. Also remove copyright notice and author names from READMEs. README | 10 - README.Packagers | 10 - doc/geany.txt | 2 +- doc/plugins.dox | 8 +- doc/pluginsignals.c | 5 +- doc/pluginsymbols.c | 3 +- geany.nsi.in | 5 +- geany_private.rc | 2 +- plugins/classbuilder.c | 4 +- plugins/demoplugin.c | 3 +- plugins/demoproxy.c | 4 +- plugins/export.c | 3 +- plugins/filebrowser.c | 3 +- plugins/geanyfunctions.h | 2 +- plugins/geanyplugin.h | 3 +- plugins/htmlchars.c | 4 +- plugins/saveactions.c | 3 +- plugins/splitwindow.c | 3 +- po/ar.po | 1745 ++++++++++++++++++------------------ po/ast.po | 1745 ++++++++++++++++++------------------ po/be.po | 1774 ++++++++++++++++++------------------- po/bg.po | 1745 ++++++++++++++++++------------------ po/ca.po | 1774 ++++++++++++++++++------------------- po/cs.po | 1774 ++++++++++++++++++------------------- po/da.po | 1771 ++++++++++++++++++------------------- po/de.po | 1773 ++++++++++++++++++------------------- po/el.po | 1815 +++++++++++++++++++------------------- po/en_GB.po | 1745 ++++++++++++++++++------------------ po/es.po | 1772 ++++++++++++++++++------------------- po/et.po | 1774 ++++++++++++++++++------------------- po/eu.po | 1774 ++++++++++++++++++------------------- po/fa.po | 1745 ++++++++++++++++++------------------ po/fi.po | 1774 ++++++++++++++++++------------------- po/fr.po | 1773 ++++++++++++++++++------------------- po/gl.po | 1774 ++++++++++++++++++------------------- po/he.po | 1772 ++++++++++++++++++------------------- po/hi.po | 1745 ++++++++++++++++++------------------ po/hu.po | 1774 ++++++++++++++++++------------------- po/id.po | 1774 ++++++++++++++++++------------------- po/intl_stats.sh | 3 +- po/it.po | 1773 ++++++++++++++++++------------------- po/ja.po | 1843 ++++++++++++++++++++------------------- po/kk.po | 1774 ++++++++++++++++++------------------- po/ko.po | 1745 ++++++++++++++++++------------------ po/lb.po | 1745 ++++++++++++++++++------------------ po/lt.po | 1772 ++++++++++++++++++------------------- po/lv.po | 1772 ++++++++++++++++++------------------- po/mn.po | 1745 ++++++++++++++++++------------------ po/nl.po | 1774 ++++++++++++++++++------------------- po/nn.po | 1745 ++++++++++++++++++------------------ po/pl.po | 1772 ++++++++++++++++++------------------- po/pt.po | 1774 ++++++++++++++++++------------------- po/pt_BR.po | 1774 ++++++++++++++++++------------------- po/ro.po | 1744 ++++++++++++++++++------------------ po/ru.po | 1779 ++++++++++++++++++------------------- po/sk.po | 1843 ++++++++++++++++++++------------------- po/sl.po | 1774 ++++++++++++++++++------------------- po/sr.po | 1774 ++++++++++++++++++------------------- po/sv.po | 1771 ++++++++++++++++++------------------- po/tr.po | 1772 ++++++++++++++++++------------------- po/uk.po | 1817 +++++++++++++++++++------------------- po/vi.po | 1745 ++++++++++++++++++------------------ po/zh_CN.po | 1771 ++++++++++++++++++------------------- po/zh_TW.po | 1843 ++++++++++++++++++++------------------- scripts/changelist.pl | 2 +- scripts/fix-alignment.pl | 2 +- scripts/gen-api-gtkdoc.py | 2 +- scripts/update-scintilla.sh | 2 +- scripts/update-year-in-po.sh | 2 + src/about.c | 6 +- src/about.h | 3 +- src/app.h | 4 +- src/build.c | 4 +- src/build.h | 5 +- src/callbacks.c | 3 +- src/callbacks.h | 3 +- src/dialogs.c | 3 +- src/dialogs.h | 3 +- src/document.c | 3 +- src/document.h | 3 +- src/documentprivate.h | 3 +- src/editor.c | 4 +- src/editor.h | 3 +- src/encodings.c | 3 +- src/encodings.h | 3 +- src/encodingsprivate.h | 3 +- src/filetypes.c | 3 +- src/filetypes.h | 3 +- src/filetypesprivate.h | 3 +- src/gb.c | 4 +- src/geany.h | 3 +- src/geanyentryaction.c | 3 +- src/geanyentryaction.h | 3 +- src/geanymenubuttonaction.c | 3 +- src/geanymenubuttonaction.h | 3 +- src/geanyobject.c | 3 +- src/geanyobject.h | 3 +- src/geanywraplabel.c | 3 +- src/geanywraplabel.h | 3 +- src/gtkcompat.h | 2 +- src/highlighting.c | 4 +- src/highlighting.h | 3 +- src/highlightingmappings.h | 4 +- src/keybindings.c | 9 +- src/keybindings.h | 7 +- src/keybindingsprivate.h | 4 +- src/keyfile.c | 3 +- src/keyfile.h | 3 +- src/libmain.c | 3 +- src/log.c | 3 +- src/log.h | 3 +- src/main.c | 2 +- src/main.h | 3 +- src/msgwindow.c | 3 +- src/msgwindow.h | 3 +- src/navqueue.c | 4 +- src/navqueue.h | 4 +- src/notebook.c | 3 +- src/notebook.h | 5 +- src/osx.c | 6 +- src/osx.h | 2 +- src/plugindata.h | 3 +- src/pluginprivate.h | 3 +- src/plugins.c | 3 +- src/plugins.h | 3 +- src/pluginutils.c | 3 +- src/pluginutils.h | 3 +- src/prefs.c | 3 +- src/prefs.h | 3 +- src/printing.c | 4 +- src/printing.h | 3 +- src/project.c | 5 +- src/project.h | 3 +- src/projectprivate.h | 3 +- src/sciwrappers.c | 3 +- src/sciwrappers.h | 3 +- src/search.c | 5 +- src/search.h | 3 +- src/sidebar.c | 3 +- src/sidebar.h | 3 +- src/socket.c | 3 +- src/socket.h | 3 +- src/spawn.c | 2 +- src/spawn.h | 4 +- src/stash.c | 3 +- src/stash.h | 3 +- src/support.h | 3 +- src/symbols.c | 4 +- src/symbols.h | 3 +- src/tagmanager/tm_parser.c | 2 +- src/tagmanager/tm_parser.h | 2 +- src/tagmanager/tm_source_file.c | 9 +- src/tagmanager/tm_source_file.h | 1 + src/tagmanager/tm_tag.c | 27 +- src/tagmanager/tm_tag.h | 5 +- src/tagmanager/tm_workspace.c | 25 +- src/tagmanager/tm_workspace.h | 1 + src/templates.c | 5 +- src/templates.h | 3 +- src/toolbar.c | 3 +- src/toolbar.h | 3 +- src/tools.c | 5 +- src/tools.h | 3 +- src/ui_utils.c | 6 +- src/ui_utils.h | 3 +- src/utils.c | 3 +- src/utils.h | 3 +- src/vte.c | 3 +- src/vte.h | 3 +- src/win32.c | 3 +- src/win32.h | 3 +- 171 files changed, 40090 insertions(+), 40146 deletions(-) commit 00a568824978704ff11906e9f2e23fef79f83f8e Merge: a1cf475fc 690df746b Author: Enrico Tröger Date: Sun Apr 7 09:41:24 2019 +0000 Merge pull request #2111 from eht16/win32_socket_handling Improve IPC socket handling commit 690df746bfb1ce5b28484b953918c9e9852385c1 Author: Enrico Tröger Date: Mon Mar 25 19:31:19 2019 +0100 Windows: Use SO_EXCLUSIVEADDRUSE flag for IPC socket SO_REUSEADDR on Windows allows to bind to an already used port without an error. This way we never notice if the port is already used. So use the Windows special flag SO_EXCLUSIVEADDRUSE to ensure we receive an error if the port is already used. Part of #641. src/socket.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d951db1e8a9f4ad154055a2534c1e965df6a44b7 Author: Enrico Tröger Date: Mon Mar 25 19:26:44 2019 +0100 On Windows, raise the main window only when needed for IPC calls We need to explicitly raise the main window on IPC commands only when opening files and similar. For query commands like "doclist" the focus should stay on the remote instance. src/socket.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit bd938af032298b7bef3410641dc6a07f4996fbb8 Author: Enrico Tröger Date: Mon Mar 25 19:23:51 2019 +0100 Use GLib logging for socket error messages The "perror" logs were not very visible on non-Windows systems (i.e. the user could see and notice them only when Geany was started from the command line). On Windows, those messages were never visible at all. Add a new debug log message if Geany received an IPC command from a remote instance. Also, add a status bar and status window message if the initial socket creation failed. src/libmain.c | 14 ++++++++++-- src/socket.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 66 insertions(+), 16 deletions(-) commit a1cf475fcf2c81420bfa90307585ec645cfb4dc1 Author: Jiří Techet Date: Sat Apr 6 04:14:30 2019 +0200 Sync ctags with upstream so that most parsers can be copied from uctags (#2018) * Use latest version of htable * Use latest version of mio * Use latest version of objpool * Use latest version of ptrarray * Use latest version of vstring This also requires adding trashbox.c/h which is now used by vstring and inline macros from inline.h. * Rename fieldSpec to fieldDefinition See b56bd065123d69087acd6f202499d71a86a7ea7a upstream. * Rename kindOption to kindDefinition See e112e8ab6e0933b5bd7922e0dfb969b1f28c60fa upstream * Rename kinds field in parserDefinition to kindTable See 09ae690face8b5cde940e2d7cf40f8860381067b upstream. * Rename structure fields about field in parserDefinition See a739fa5fb790bc349a66b2bee0bf42cf289994e8 upstream. * Use kindIndex instead of kindDefinition This patch replaces kindDefinition related entries from sTagEntryInfo with kindIndex so kinds are referenced indirectly using the index. For more info please refer to commits: 16a2541c0698bd8ee03c1be8172ef3191f6e695a f92e6bf2aeb21fd6b04756487f98d0eefa16d9ce Some other changes had to be made to make the sources compile (without bringing all the diffs from upstream). At some places, which aren't used by Geany, only stub implementations have been created. In particular, the regex parser has been disabled (for now?) because its current implementation doesn't allow accessing kindDefinitions using index and allowing this would require big changes in its implementation. The affected parsers are Cobol, ActionScript and HTML. For HTML we can use the token-based parser from upstream, and we should consider whether Cobol and ActionScript are worth the effort to maintain a separate regex implementation using GRegex (IMO these languages are dead enough not to justify the extra effort). The patch also disables tests for languages using regex parsers. * Rename roleDesc to roleDefinition See 1345725842c196cc0523ff60231192bcd588961b upstream. Since we don't care about roles in Geany, we don't have to do the additional stuff the upstream patch does. * Add XTAG_ANONYMOUS used by jscript See 0e4c5d4a0461bc8d9616fe3b97d75b91d014246e upstream. * Include stdint.h in entry.h * Don't use hash value as an Anonymous field identifier Instead of something like "Anonymous0ab283cd9402" use sequential integer values like "Anonymous1". * Call anonReset in main part See 3c91b1ea509df238feb86c9cbd552b621e462653 upstream. * Use upstream javascript parser * Use upstream css parser * Create correctly sized MIO for 0 size See https://github.com/universal-ctags/ctags/pull/1951 * Always enable promise API and subparsers for Geany * Support subparsers in Geany and add HTML parser demonstrating this feature This feature requires several changes: 1. Propagating language of the tag from ctags to Geany so we know whether the tag comes from a master parser or a subparser. 2. We need to address the problem that tag types from a subparsers can clash with tag types from master parsers or other subparsers used by the master parser. For instance, HTML and both its css and javascript subparsers use tm_tag_class_t but HTML uses it for

headings, and css and javascript for classes. Representing all of them using tm_tag_class_t would lead to complete mess where all of these types would for instance be listed in the same branch of the tree in the sidebar. To avoid this problem, this patch adds another mapping for subparsers where each tag type can be mapped to another tag type (which isn't used neither by master parser or other subparsers). To avoid unwanted clashes with other parsers, only tags explicitly mentioned in such mappings are added to tag manager; other subparser tags are discarded. For HTML this patch introduces mapping only for tm_tag_function_t (which in this case maps to the same type) to mimick the previous HTML parser behavior but other javascript and css tag types can be added this way in the future too. 3. Since in most of the code Geany and tag manager assume that tags from one file use the same language, subparser's tags are modified to have the same language like the master parser. 4. HTML parser itself was copied from upstream without any modifications. Tests were fixed as the parser now correctly ignores comments. * Rename truncateLine field of tagEntryInfo See 0e70b22791877322598f03ecbe3eb26a6b661001 upstream. Needed for Fortran parser. * Add dummy mbcs.h and trace.h Included by javascript parser. * Introduce an accessor to `locate' field of `Option' See fb5ef68859f71ff2949f1d9a7cab7515f523532f upstream. Needed for Fortran. * Add numarray.c/h Needed by various parsers. * Add getLanguageForFilename() and getLanguageForCommand() See 416c5e6b8807feaec318d7f8addbb4107370c187 334e072f9d6d9954ebd3eb89bbceb252c20ae9dd upstream. Needed for Sh parser. * txt2tags: Fix scope separator definition and re-enable tests * Rename rest.c to rst.c to match upstream filename * Use upstream asciidoc and rst parsers * Add asciidoc and rst unit tests * Rename conf.c to iniconf.c to match upstream filename * Add tests of conf, diff, md parsers from universal ctags * Add more ctags unit tests This patch adds unit tests for: nsis, docbook, haskell, haxe, abaqus, vala, abc. The only missing unit tests are for GLSL and Ferite parsers which however share the implementation with the C parser and should be reasonably well covered by other C-like language tests. The tests were put together from various tutorials and help of the languages in order to cover the tags these parsers generate. No guarantee they'd compile with real parsers. * Rename latex.c to tex.c to match upstream filename * Rename entry points of parsers to match upstream names * Initialize trashbox * Add newline to the end of file ctags/Makefile.am | 13 +- ctags/main/ctags-api.c | 13 +- ctags/main/ctags-api.h | 1 + ctags/main/dependency.c | 12 +- ctags/main/entry.c | 86 +- ctags/main/entry.h | 25 +- ctags/main/field.c | 63 +- ctags/main/field.h | 6 +- ctags/main/htable.c | 71 +- ctags/main/htable.h | 24 +- ctags/main/inline.h | 26 + ctags/main/kind.c | 27 +- ctags/main/kind.h | 27 +- ctags/main/lcpp.c | 16 +- ctags/main/lcpp.h | 2 +- ctags/main/lregex.c | 34 +- ctags/main/lxcmd.c | 36 +- ctags/main/lxpath.c | 15 +- ctags/main/mbcs.h | 1 + ctags/main/mio.c | 32 +- ctags/main/mio.h | 2 +- ctags/main/numarray.c | 175 +++ ctags/main/numarray.h | 48 + ctags/main/objpool.c | 7 +- ctags/main/objpool.h | 5 +- ctags/main/options.c | 11 +- ctags/main/options.h | 5 +- ctags/main/parse.c | 213 ++-- ctags/main/parse.h | 26 +- ctags/main/parsers.h | 8 +- ctags/main/promise.c | 4 + ctags/main/ptrarray.c | 28 + ctags/main/ptrarray.h | 6 +- ctags/main/read.c | 12 +- ctags/main/read.h | 6 +- ctags/main/trace.h | 1 + ctags/main/trashbox.c | 246 +++++ ctags/main/trashbox.h | 41 + ctags/main/types.h | 8 +- ctags/main/vstring.c | 59 +- ctags/main/vstring.h | 31 +- ctags/main/xtag.c | 2 + ctags/main/xtag.h | 1 + ctags/parsers/abaqus.c | 6 +- ctags/parsers/abc.c | 6 +- ctags/parsers/asciidoc.c | 276 ++++- ctags/parsers/asm.c | 12 +- ctags/parsers/basic.c | 14 +- ctags/parsers/c.c | 50 +- ctags/parsers/css.c | 47 +- ctags/parsers/diff.c | 6 +- ctags/parsers/docbook.c | 6 +- ctags/parsers/erlang.c | 12 +- ctags/parsers/fortran.c | 14 +- ctags/parsers/go.c | 8 +- ctags/parsers/haskell.c | 8 +- ctags/parsers/haxe.c | 16 +- ctags/parsers/html.c | 540 ++++++++- ctags/parsers/{conf.c => iniconf.c} | 10 +- ctags/parsers/jscript.c | 1209 ++++++++++++++++----- ctags/parsers/json.c | 8 +- ctags/parsers/lua.c | 6 +- ctags/parsers/make.c | 8 +- ctags/parsers/markdown.c | 6 +- ctags/parsers/matlab.c | 10 +- ctags/parsers/nsis.c | 10 +- ctags/parsers/objc.c | 8 +- ctags/parsers/pascal.c | 10 +- ctags/parsers/perl.c | 12 +- ctags/parsers/php.c | 12 +- ctags/parsers/powershell.c | 8 +- ctags/parsers/python.c | 28 +- ctags/parsers/r.c | 6 +- ctags/parsers/rest.c | 207 ---- ctags/parsers/rst.c | 379 +++++++ ctags/parsers/ruby.c | 14 +- ctags/parsers/rust.c | 8 +- ctags/parsers/sh.c | 6 +- ctags/parsers/sql.c | 8 +- ctags/parsers/tcl.c | 6 +- ctags/parsers/{latex.c => tex.c} | 12 +- ctags/parsers/txt2tags.c | 9 +- ctags/parsers/verilog.c | 8 +- ctags/parsers/vhdl.c | 10 +- src/tagmanager/tm_parser.c | 108 +- src/tagmanager/tm_parser.h | 2 + src/tagmanager/tm_source_file.c | 10 +- tests/ctags/Makefile.am | 16 +- tests/ctags/complex-return.js.tags | 2 + tests/ctags/geany.nsi | 470 ++++++++ tests/ctags/geany.nsi.tags | 21 + tests/ctags/js-class-related-unterminated.js.tags | 3 +- tests/ctags/js-let.js.tags | 2 +- tests/ctags/js-string-continuation.js.tags | 2 +- tests/ctags/jsFunc_tutorial.js.tags | 10 +- tests/ctags/simple.abc | 78 ++ tests/ctags/simple.abc.tags | 7 + tests/ctags/simple.asciidoc | 59 + tests/ctags/simple.asciidoc.tags | 13 + tests/ctags/simple.conf | 33 + tests/ctags/simple.conf.tags | 24 + tests/ctags/simple.diff | 170 +++ tests/ctags/simple.diff.tags | 5 + tests/ctags/simple.docbook | 45 + tests/ctags/simple.docbook.tags | 7 + tests/ctags/simple.hs | 8 + tests/ctags/simple.hs.tags | 9 + tests/ctags/simple.html.tags | 4 +- tests/ctags/simple.hx | 23 + tests/ctags/simple.hx.tags | 10 + tests/ctags/simple.inp | 106 ++ tests/ctags/simple.inp.tags | 4 + tests/ctags/simple.js.tags | 3 +- tests/ctags/simple.md | 51 + tests/ctags/simple.md.tags | 28 + tests/ctags/simple.rst | 39 + tests/ctags/simple.rst.tags | 9 + tests/ctags/simple.vala | 46 + tests/ctags/simple.vala.tags | 22 + 119 files changed, 4786 insertions(+), 1177 deletions(-) commit de097ddf693e26c008d13d0a1f36fb06609bbcad Author: Enrico Tröger Date: Sun Mar 31 15:26:34 2019 +0200 Restart the shell if VTE restart is requested This happened in the past until d35e66493c7f80768dc5b8761d62ec74434bfdae because of https://sourceforge.net/p/geany/bugs/163/ and https://bugzilla.gnome.org/show_bug.cgi?id=540161. But since the VTE bug has been fixed for long, we can remove the workaround. Closes #352. src/vte.c | 1 + 1 file changed, 1 insertion(+) commit 70ebfbd52988c8af5e57d5a59791c88db3dec048 Author: Enrico Tröger Date: Tue Mar 19 11:05:16 2019 +0100 Fix regex to resolve confusion on the removed double space Also fix a typo in the variable name for the output. scripts/update-year-in-po.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit b8cdfddf985f666ec09b79237f5ae19fc02a9e9a Author: Andy Alt Date: Wed Mar 6 01:59:20 2019 -0600 remove unneeded #include (tm_tag.h) (#2034) Fixes the FIXME comment in the code. src/app.h | 1 - 1 file changed, 1 deletion(-) commit 806e762a0a4c250085c603a54771964c2a99836d Merge: ef8119089 4bad8ef5d Author: Enrico Tröger Date: Sun Mar 3 12:25:29 2019 +0100 Merge pull request #2064 from eht16/remove_spec_file Remove unused spec (RPM) file commit ef8119089ea0d82d97f47e3ab22d444a6696a876 Author: woodmix <33674867+woodmix@users.noreply.github.com> Date: Tue Feb 26 19:20:57 2019 +0900 Update ja.po (#2089) revise translation of "_Mark All" po/ja.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4bad8ef5d459d5fcb26230f794e3f6c49569e9ca Author: Enrico Tröger Date: Sun Jan 20 22:47:24 2019 +0100 Remove unused spec (RPM) file The original intention was to easily build RPM packages by users and developers. Nowadays, there are professional Fedora, Suse and whatever RPM spec files available for the according distributions. So we can remove this unmaintained file to reduce confusions. Fixes #2044. .gitignore | 1 - Makefile.am | 1 - README.Packagers | 2 +- configure.ac | 1 - geany.spec.in | 107 ------------------------------------------------------- 5 files changed, 1 insertion(+), 111 deletions(-) commit bf5c9eddd8a500577719af7fc7f1c1ffb8044a49 Merge: c825b581b 096fcbd0c Author: Colomban Wendling Date: Fri Jan 18 17:08:45 2019 +0100 Merge pull request #2028 from andy5995/issue_453 geany-vte.m4:explicitly display "VTE" in STATUS commit c825b581bfabf6912eeb737a4af607e70c6c07a9 Author: Andy Alt Date: Tue Jan 15 01:45:54 2019 -0600 README.rst grammar fix#2047 * README.rst change to not refer to "few" when there are 20+ options. Also fixes missing "are" as a side effect. README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cd267de29c1de897d7b08aef62af32b9713d272e Merge: ecf98b1ef a2c9c22f2 Author: Colomban Wendling Date: Sun Jan 13 15:43:12 2019 +0100 Merge pull request #2036 from techee/symbol_tree_vartype Show variable type in a tooltip in symbol tree commit ecf98b1efbf9f58d808a0fe8ea1257bb10eddc93 Author: Colomban Wendling Date: Sat Jan 12 23:52:53 2019 +0100 Update Scintilla to version 3.10.2 Closes #971, closes #1947. scintilla/gtk/ScintillaGTK.cxx | 7 +- scintilla/gtk/ScintillaGTKAccessible.cxx | 2 +- scintilla/include/Platform.h | 5 + scintilla/include/SciLexer.h | 48 +++++ scintilla/include/Scintilla.h | 14 ++ scintilla/include/Scintilla.iface | 90 +++++++- scintilla/lexers/LexBash.cxx | 279 ++++++++++++++++++++---- scintilla/lexers/LexCPP.cxx | 56 +++-- scintilla/lexers/LexFortran.cxx | 8 +- scintilla/lexers/LexMarkdown.cxx | 60 +++--- scintilla/lexers/LexVerilog.cxx | 6 +- scintilla/lexlib/CharacterCategory.cxx | 240 +++++++++++++++------ scintilla/lexlib/PropSetSimple.cxx | 2 +- scintilla/scintilla_changes.patch | 5 +- scintilla/src/CaseConvert.cxx | 16 +- scintilla/src/Catalogue.cxx | 4 +- scintilla/src/CellBuffer.cxx | 349 ++++++++++++++++++++++++++++++- scintilla/src/CellBuffer.h | 10 + scintilla/src/ContractionState.cxx | 2 +- scintilla/src/Document.cxx | 102 +++++---- scintilla/src/Document.h | 27 ++- scintilla/src/EditModel.cxx | 2 +- scintilla/src/EditView.cxx | 2 +- scintilla/src/Editor.cxx | 106 +++++++--- scintilla/src/Editor.h | 2 + scintilla/src/ExternalLexer.cxx | 4 +- scintilla/src/Indicator.cxx | 7 +- scintilla/src/KeyMap.cxx | 4 + scintilla/src/KeyMap.h | 1 + scintilla/src/PerLine.cxx | 4 +- scintilla/src/PositionCache.cxx | 7 +- scintilla/src/PositionCache.h | 2 +- scintilla/src/RESearch.cxx | 4 +- scintilla/src/RunStyles.cxx | 6 +- scintilla/src/ScintillaBase.cxx | 26 +-- scintilla/src/Style.cxx | 6 +- scintilla/src/UniConversion.cxx | 16 ++ scintilla/src/UniConversion.h | 1 + scintilla/src/ViewStyle.cxx | 6 +- scintilla/version.txt | 2 +- 40 files changed, 1248 insertions(+), 292 deletions(-) commit fb11f90ec8bac6bca9e49bcf1defa89e981b947e Merge: 6330a76bf 6a0c2ef91 Author: Colomban Wendling Date: Thu Jan 10 21:46:25 2019 +0100 Merge pull request #2043 from cristicc/feature/diff-lexer-fix Fix stripping trailing spaces for custom file types using the DIFF lexer. Fixes #2041. commit 6330a76bfb024405a66c2b4df9d8b645b04666df Author: Vangelis Skarmoutsos Date: Wed Jan 9 19:16:04 2019 +0200 Update el.po (#2042) po/el.po | 793 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 397 insertions(+), 396 deletions(-) commit 6a0c2ef91cd4dd711a5ea12dc1582a3aa9178dc3 Author: Cristian Ciocaltea Date: Wed Jan 9 18:36:25 2019 +0200 Fix stripping trailing spaces for custom file types using the DIFF lexer (#2041) src/editor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a2c9c22f2cb8f7293f5b4ae07a7d69d180ce35e3 Author: Jiří Techet Date: Thu Jan 3 20:45:46 2019 +0100 Show variable type in a tooltip in symbol tree Similarly to function prototypes, it shows the tooltip in a language specific way. src/symbols.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit c113d47e208725309461b34e7e46e7ac8d960df8 Merge: 83d36f00b 41ca47390 Author: Colomban Wendling Date: Fri Jan 4 17:15:47 2019 +0100 Merge branch '1.34' commit 41ca47390932e8d9797db1b63ef7cfa3f0afa87e Author: Colomban Wendling Date: Fri Jan 4 16:25:20 2019 +0100 Set release date NEWS | 2 +- doc/geany.1.in | 2 +- doc/geany.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit adda5013c8ed58cc9138d9779810acab36ebd576 Author: Colomban Wendling Date: Fri Jan 4 16:24:47 2019 +0100 Bump version for 1.34.1 configure.ac | 2 +- doc/geany.txt | 2 +- geany.exe.manifest | 2 +- geany_private.rc | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) commit b54f4fac89f702b90a82541a743f6b376f8cfd34 Author: Colomban Wendling Date: Fri Jan 4 16:13:42 2019 +0100 Update NEWS for upcoming 1.34.1 release NEWS | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 234df96eaafa9f491319311d63c127975a00d35f Author: Frank Lanitz Date: Sun Dec 16 15:09:50 2018 +0100 Minor update of Ukrainian translation po/uk.po | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit a3d723f0cfbe710d6138a483aab03c2f365b2f0f Author: Colomban Wendling Date: Wed Jan 2 14:10:07 2019 +0100 Fix modifier for creating rectangular selections on Windows 33dafac8f0713de79f04e2ebce2399fb914d6792 restored the pre-Scintilla 3.10 default on non-Windows, but also changed the Windows one. Fix this so the modifier keeps its historical value on Windows as well. src/editor.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 83d36f00ba9ff22a0bd0503dd847b395bc7b154c Merge: 969e00a03 9fc709e1d Author: Colomban Wendling Date: Fri Jan 4 12:53:26 2019 +0100 Merge pull request #2032 from b4n/scintilla-rectangular-modifier-windows Fix modifier for creating rectangular selections on Windows commit f47bae101f426b3dadad3e6c0e3858dde6ae9d52 Author: elextr Date: Fri Dec 28 16:02:49 2018 +1000 Fix broken line breaking on existing lines sci_get_position_from_col() takes line number, not position of start of line. src/editor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c6356444b12b0f2759546334caabb42fd6a28097 Author: Colomban Wendling Date: Wed Jan 2 22:24:36 2019 +0100 Fix escaping of infobar text against entity injection from filename Fixes #2033. src/document.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9838a8e9a03c473516523982ff18d9b064f413d3 Author: Colomban Wendling Date: Sun Dec 16 17:45:45 2018 +0100 Remove non-existing language from 1.34 translation NEWS It most likely was a typo for `da`, and all actually updated translations are properly listed. NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 969e00a03f4e7d80f138498de78bb762cf844e60 Merge: f3a85525a baa88de70 Author: Colomban Wendling Date: Wed Jan 2 22:42:16 2019 +0100 Merge pull request #2027 from geany/elextr-patch-4 Fix broken line breaking on existing lines commit f3a85525aeff921097209d6ade6f9bb1cf2b7097 Author: Colomban Wendling Date: Wed Jan 2 22:24:36 2019 +0100 Fix escaping of infobar text against entity injection from filename Fixes #2033. src/document.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9fc709e1dce1ace0fa97afe1a8afcd03c3580531 Author: Colomban Wendling Date: Wed Jan 2 14:10:07 2019 +0100 Fix modifier for creating rectangular selections on Windows 33dafac8f0713de79f04e2ebce2399fb914d6792 restored the pre-Scintilla 3.10 default on non-Windows, but also changed the Windows one. Fix this so the modifier keeps its historical value on Windows as well. src/editor.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 096fcbd0c283ee62766636cd2a7928db9fa210c1 Author: andy5995 Date: Mon Dec 31 15:56:54 2018 -0600 geany-vte.m4:explicity display "VTE" in STATUS closes #453 Signed-off-by: andy5995 m4/geany-vte.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit baa88de7078fbbd088bdc4a722a5873191a04750 Author: elextr Date: Fri Dec 28 16:02:49 2018 +1000 Fix broken line breaking on existing lines sci_get_position_from_col() takes line number, not position of start of line. src/editor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4452b365bfc42b434465577dc6411ff30d176afb Merge: b6fe9f17a 457658dcf Author: Colomban Wendling Date: Mon Dec 17 21:37:43 2018 +0100 Merge pull request #1263 from techee/ctags_sync_main First part of syncing with Universal-CTags. commit 457658dcfb9d25ce32c644e543c898eec0a4566a Author: Jiří Techet Date: Mon Dec 17 21:19:52 2018 +0100 Avoid warnings about unused variables in rest and asciidoc parsers We don't use the return value of getNestingLevel(), only its nestingLevelsPop() semantics. Get rid of the return value and rename the function to avoid confusion. ctags/parsers/asciidoc.c | 7 +++---- ctags/parsers/rest.c | 7 +++---- 2 files changed, 6 insertions(+), 8 deletions(-) commit b6fe9f17aeae40ab48e73481e618877e65db464b Merge: 529ba51e8 99851b592 Author: Colomban Wendling Date: Sun Dec 16 18:55:06 2018 +0100 Merge pull request #1878 from b4n/issue-1876 Various fixes reported in #1876 commit 529ba51e8569a7f4e6ceb13fc7a05024b7e7cdce Author: Colomban Wendling Date: Sun Dec 16 17:45:45 2018 +0100 Remove non-existing language from 1.34 translation NEWS It most likely was a typo for `da`, and all actually updated translations are properly listed. NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 41a3c3c92efafc048e0faac8cc5df72ed103045c Author: Frank Lanitz Date: Sun Dec 16 15:09:50 2018 +0100 Minor update of Ukrainian translation po/uk.po | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 72bb3fc27f784604e0651bd7ebc47ccdb51c690a Merge: 560e559a2 f40859332 Author: Enrico Tröger Date: Sun Dec 16 14:55:44 2018 +0100 Merge pull request #2017 from eht16/use_own_mirror_for_gtk_bundle Update link to GTK+2 bundle for test builds to self-hosted version commit f40859332b106f3795fd3321706be19b843b3839 Author: Enrico Tröger Date: Sun Dec 16 14:12:51 2018 +0100 Update link to GTK+2 bundle for test builds to self-hosted version Make us more independent from ftp.gnome.org and host the, probably never ever changing, bundle ourselves. scripts/cross-build-mingw.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 560e559a2ab371ad41ff4c90e9fdad54c9bd5f8f Author: Colomban Wendling Date: Sun Dec 16 13:47:25 2018 +0100 Post release version bump Say hello to Geany 1.35 "Siralt"! NEWS | 3 +++ configure.ac | 2 +- doc/geany.txt | 2 +- geany.exe.manifest | 2 +- geany_private.rc | 4 ++-- src/geany.h | 2 +- 6 files changed, 9 insertions(+), 6 deletions(-) commit 54946bddd1a281f2fff8aafdf5c4f2e899a6f993 Author: Colomban Wendling Date: Sun Dec 16 12:02:19 2018 +0100 Set release date NEWS | 2 +- doc/geany.1.in | 2 +- doc/geany.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit a1e95fcb614b3506e91919a127c9b4534d5cebb9 Author: Colomban Wendling Date: Sun Dec 16 12:29:08 2018 +0100 Avoid user Git setting when generating the ChangeLog for distribution Makefile.am | 1 + 1 file changed, 1 insertion(+) commit 7593e77fe688911b10bed8fc5b25876a13acf14c Author: Colomban Wendling Date: Sun Dec 16 11:45:40 2018 +0100 Fix fuzzy strings due to last minute capitalization of a sentence po/ar.po | 2 +- po/ast.po | 4 ++-- po/be.po | 4 ++-- po/bg.po | 4 ++-- po/ca.po | 4 ++-- po/cs.po | 2 +- po/el.po | 4 ++-- po/en_GB.po | 4 ++-- po/et.po | 4 ++-- po/eu.po | 4 ++-- po/fa.po | 4 ++-- po/fi.po | 4 ++-- po/gl.po | 2 +- po/he.po | 2 +- po/hi.po | 2 +- po/hu.po | 4 ++-- po/id.po | 4 ++-- po/it.po | 2 +- po/kk.po | 4 ++-- po/ko.po | 2 +- po/lb.po | 2 +- po/lt.po | 4 ++-- po/lv.po | 4 ++-- po/mn.po | 4 ++-- po/nl.po | 2 +- po/nn.po | 2 +- po/pl.po | 4 ++-- po/pt.po | 4 ++-- po/pt_BR.po | 4 ++-- po/ro.po | 4 ++-- po/sl.po | 4 ++-- po/sr.po | 4 ++-- po/tr.po | 4 ++-- po/vi.po | 4 ++-- po/zh_CN.po | 2 +- 35 files changed, 59 insertions(+), 59 deletions(-) commit 053b2b666a2809025dc3cb18f82f0da230f21cfb Author: Colomban Wendling Date: Sun Dec 16 11:22:19 2018 +0100 Fix NEWS for Danish translation that is new, no simply updated NEWS | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit ad5af377749a79dde2056c3b03e64266decf8441 Author: Frank Lanitz Date: Sun Dec 16 11:15:22 2018 +0100 Update a few translations files for fuzzy string po/ja.po | 128 ++++++++++++++++++++++++++++++------------------------------ po/sk.po | 122 ++++++++++++++++++++++++++++----------------------------- po/uk.po | 122 ++++++++++++++++++++++++++++----------------------------- po/zh_TW.po | 120 ++++++++++++++++++++++++++++---------------------------- 4 files changed, 246 insertions(+), 246 deletions(-) commit ffc47cbcbdbd17f416c895007e01aa7e8f559885 Author: Enrico Tröger Date: Sun Dec 16 10:35:18 2018 +0100 Windows: Add new Pango dependencies to bundle creation script scripts/gtk-bundle-from-msys2.sh | 2 ++ 1 file changed, 2 insertions(+) commit 9843d100284ed506523caf93ea1eadc4216b1f31 Author: Colomban Wendling Date: Fri Dec 14 10:35:21 2018 +0100 Update NEWS with the latest changes NEWS | 8 ++++++++ 1 file changed, 8 insertions(+) commit 5f386751141a38efc6a64508afec92c9a82b6c06 Author: Jason Cumbie <> Date: Sun May 13 08:48:32 2018 -0700 Do not report incorrect value for GeanyDocument:changed when quitting Fix document_account_for_unsaved() so it does not alter the `changed` flag on documents, in order for plugins to have a reliable value there at all times. Patch by @chrontec with small additional tidying up. Closes #1857. src/document.c | 25 ++++++------------------- src/libmain.c | 25 ++++++++++++++----------- 2 files changed, 20 insertions(+), 30 deletions(-) commit 5c428b912b83e26f24d9924a3ad74920ac55fead Author: Frank Lanitz Date: Mon Dec 10 20:17:14 2018 +0100 Update of Japanese translation po/ja.po | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) commit 8f7f98cb5ce9a461ade115019c0b956aecf6ff44 Author: Frank Lanitz Date: Mon Dec 10 15:51:20 2018 +0100 Update of Swedish translation po/sv.po | 51 ++++++++++++++++++++++----------------------------- 1 file changed, 22 insertions(+), 29 deletions(-) commit 3458045af40bd650b12201c097296bd9973db67d Merge: 23607a8bb 13559896f Author: Colomban Wendling Date: Sun Dec 9 11:49:41 2018 +0100 Merge pull request #1182 from b4n/gtk3-auto-detect_v2 Autotools: Detect GTK version to use automatically. GTK2 is still the default if both GTK2 and GTK3 are present. commit 13559896fe19346966a664d6f1a9862d3629a925 Author: Colomban Wendling Date: Sat Apr 4 14:13:18 2015 +0200 autotools: Detect GTK version to use automatically configure.ac | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) commit 23607a8bb6fcce968152f96e056ac306ff87948b Author: Colomban Wendling Date: Sun Dec 9 11:23:07 2018 +0100 Properly categorize VHDL strings src/highlighting.c | 4 ++++ 1 file changed, 4 insertions(+) commit fb64009aae3a4ce9a9e73ec66a2ac69eafbd553b Author: 柳东原 LIU Dongyuan Date: Sun Dec 9 18:04:09 2018 +0800 Update zh_CN.po (#2013) * Update zh_CN.po * Update version number for zh_CN translation po/zh_CN.po | 44 ++++++++++++++++++-------------------------- 1 file changed, 18 insertions(+), 26 deletions(-) commit 66a08f6570c189e66b31863d60ec68052e1d2d5f Author: Colomban Wendling Date: Sat Dec 8 21:12:24 2018 +0100 Remove an unused variable and fix a related comment ctags/main/lcpp.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 1c3634ebb9d5b179cbddcbbb567fe81446dd069f Author: Colomban Wendling Date: Sat Dec 8 21:07:54 2018 +0100 Update functions and declarations checks for current ctags configure.ac | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 89a934edeec10d4d584896dd29d02fa15f2c2fca Author: Colomban Wendling Date: Sat Dec 8 21:06:50 2018 +0100 Guard some more code for non-library builds only ctags/main/main.c | 4 ++++ ctags/main/options.c | 4 ++++ ctags/main/parse.c | 8 ++++++++ ctags/main/strlist.c | 4 ++-- 4 files changed, 18 insertions(+), 2 deletions(-) commit e792d4fdf959516a193d2c2e4ac3f737a6e1954d Author: Colomban Wendling Date: Sat Dec 8 21:06:02 2018 +0100 Don't export some local functions They are already fixed upstream, so it doesn't add to the diff. ctags/main/entry.c | 2 +- ctags/main/parse.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit f61bd540b760005a6bb78bde8c813d48e759d5a9 Author: Colomban Wendling Date: Sat Dec 8 20:59:20 2018 +0100 Remove two unused variables ctags/parsers/python.c | 2 -- 1 file changed, 2 deletions(-) commit f93aa1478809fb5c5842ac9dd3bad35beab29067 Author: Colomban Wendling Date: Sat Dec 8 20:54:06 2018 +0100 Remove an unused function that was removed upstream ctags/parsers/c.c | 13 ------------- 1 file changed, 13 deletions(-) commit 749ab56058f22b0048d1627b8e930fbcd070833a Author: Masatake YAMATO Date: Wed Apr 12 14:57:22 2017 +0900 main: remove duplicated declarations Signed-off-by: Masatake YAMATO ctags/main/htable.h | 3 --- 1 file changed, 3 deletions(-) commit 33a102ee918b0f12b2bda0abba7a4b86bce60efd Author: Masatake YAMATO Date: Wed Jun 7 13:52:12 2017 +0900 Add dummy definitions to Assert* macros for suppressing compiler warnings main/field.c:968:23: warning: \ suggest braces around empty body in an ‘else’ statement [-Wempty-body] AssertNotReached(); Signed-off-by: Masatake YAMATO ctags/main/debug.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 27737ae5dbea547698bac81e2198f337c5475313 Author: Giuseppe Date: Sun Dec 9 08:29:58 2018 +0000 updated it.po (#2012) * updated it.po * Update some copyright times on it.po po/it.po | 40 ++++++++++++++++------------------------ 1 file changed, 16 insertions(+), 24 deletions(-) commit c2c23ad30980b88f80f2bbb86f29911946f0a416 Author: Frank Lanitz Date: Fri Dec 7 17:39:46 2018 +0100 Update of Russian translation po/ru.po | 516 ++++----------------------------------------------------------- 1 file changed, 33 insertions(+), 483 deletions(-) commit 33dafac8f0713de79f04e2ebce2399fb914d6792 Author: Colomban Wendling Date: Thu Dec 6 22:26:59 2018 +0100 Revert to previous modifier for creating rectangular selections This is the default since forever, so don't change it on the users, no matter what is the new default in Scintilla 3.10.0. Fixes #2010. src/editor.c | 3 +++ 1 file changed, 3 insertions(+) commit afa6efe44e29e2c9a9e2b39dd53c5f51c868caca Author: Colomban Wendling Date: Thu Dec 6 22:14:40 2018 +0100 Small update of the French translation After 3b1c6f36359fdcc180aa23d670fe525e4b8996bc (PR#2005) a string slightly changed, so update the translation to match. po/fr.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d22bc1aec10e191664c49ace8b00fc88ece5225b Author: Frank Lanitz Date: Thu Dec 6 21:13:33 2018 +0100 Update of Portugese translation po/pt.po | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) commit 4d787658f6d07a4732de5b1a26057ed5d404ac3f Author: 張修銘 Date: Thu Dec 6 17:16:10 2018 +0800 Update of Traditional Chinese translation (#2009) * Update of Traditional Chinese translation * Correct version number on zh_TW.po po/zh_TW.po | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) commit 57c418e4badc4c7a24b055d122d223b7ee9dd3e0 Author: Frank Lanitz Date: Wed Dec 5 20:55:18 2018 +0100 Small update of NEWS NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eaab6f7f4824d47a1fb91eefcd48c659ea621f8d Author: Frank Lanitz Date: Wed Dec 5 20:54:59 2018 +0100 Update of German translation po/de.po | 51 ++++++++++++++++++++++----------------------------- 1 file changed, 22 insertions(+), 29 deletions(-) commit 7132eb3877f2a0afc1bbcaabc058e855e1a687c1 Author: Frank Lanitz Date: Wed Dec 5 20:53:42 2018 +0100 Update of Spanish translation po/es.po | 62 +++++++++++++++++++++++++++----------------------------------- 1 file changed, 27 insertions(+), 35 deletions(-) commit 25f1c7529e5ddfdca3450afba1261f56dd9ea193 Author: Frank Lanitz Date: Wed Dec 5 17:21:49 2018 +0100 Small update of NEWS NEWS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 74113324380585a0783fdf278b60707c4f35b08c Author: Frank Lanitz Date: Wed Dec 5 17:20:41 2018 +0100 Remvoe a fuzzy string from da.po po/da.po | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) commit c2f48e4219f4f715989b2c1b3e5c5b82c5303c7a Author: scootergrisen Date: Wed Dec 5 17:04:05 2018 +0100 Update da.po to 1.34 (#2006) po/da.po | 89 ++++++++++++++++++++++++++++++---------------------------------- 1 file changed, 41 insertions(+), 48 deletions(-) commit 3b1c6f36359fdcc180aa23d670fe525e4b8996bc Author: scootergrisen Date: Wed Dec 5 01:01:12 2018 +0100 email to Email (#2005) data/geany.glade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9cc18f9143a50bb7402bbbd499ec7081d009f931 Merge: 7681a8777 8f16685d9 Author: Colomban Wendling Date: Tue Dec 4 22:43:18 2018 +0100 Merge pull request #1445 from kugel-/fix-1069 Improve goto-symbols popup commit 7681a8777288abe30152f5439483118d3f6ef793 Author: Andrej Herceg Date: Tue Dec 4 20:10:56 2018 +0100 Update of Slovak translation (#2004) po/sk.po | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) commit 23f51e4edfebc82229888b1a4adae8596b4c1f5e Author: Colomban Wendling Date: Mon Dec 3 23:02:30 2018 +0100 Small update of the French translation NEWS | 2 +- po/fr.po | 30 +++++++++++------------------- 2 files changed, 12 insertions(+), 20 deletions(-) commit 8f16685d9e29fc260eb43c6eb61bbf6ee54ee4df Author: Colomban Wendling Date: Sun Dec 2 10:41:09 2018 +0100 Fix a few signed vs unsigned comparisons src/utils.c | 33 +++++++++++++++++---------------- src/utils.h | 2 +- 2 files changed, 18 insertions(+), 17 deletions(-) commit 724e7886dec8da92cc3e7b50c861499a6b6932eb Author: Thomas Martitz Date: Sun Nov 18 13:35:00 2018 +0100 Changes for review comments - Notably the utils_strv_{find_common_prefix,find_lcs,shorten_file_list} now take -1 for num to mean to compute the array length. - utils_strv_find_common_prefix implementation simplified. - if num == 0 is passed to the above functions the passed strv is not dereferenced (so could be NULL). src/symbols.c | 4 ++-- src/utils.c | 47 ++++++++++++++++++++++------------------------- src/utils.h | 2 +- 3 files changed, 25 insertions(+), 28 deletions(-) commit e0a2c6277ae739de6af6c1df311fc9979b54915a Author: Thomas Martitz Date: Thu Mar 15 17:15:59 2018 +0100 Refactoring and review comments - Fix lots of compiler warnings - Fix a bug where a long base name would prevent ellipsizing the longest common substring - rewrite utils_strv_shorten_file_list to be more clear (hopefully) - use g_strlcpy - optimize case where the longest common substring need not be searched for src/utils.c | 115 +++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 63 insertions(+), 52 deletions(-) commit fb9673eb61c44baba6a94f7ad3ef429ffa021c73 Author: Thomas Martitz Date: Thu Mar 30 08:02:29 2017 +0200 api: pass gtkdoc annotation parameter as-is The array annotation has many possible parameters, this avoids having a Doxygen command for each one. Luckily you can define Doxygen commands multiple times with different a number of parameters each. doc/Doxyfile.in | 2 +- src/utils.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 7fdd360b85fe3a920f9510a18e32afa6ee83fe22 Author: Thomas Martitz Date: Fri Mar 24 07:24:48 2017 +0100 Fix one oops and a couple of mistakes in comments, found by review. src/utils.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit c05837055b0533504b85966852b6f26551616e30 Author: Thomas Martitz Date: Thu Mar 23 22:16:11 2017 +0100 api: export new utils_strv_shorten_file_list() function Since I based the algorithm of the above function on code in one of my python plugins, I would like to remove the implementation in my plugin and call Geany's function. src/utils.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 3512f6cc7430cbc8c52b0b474e5b72d58ed75863 Author: Thomas Martitz Date: Thu Mar 23 22:12:39 2017 +0100 gtkdoc: add support for array annotions We can now use @array and @arraylen{param} annotations for arrays that will make it to the generated gtkdoc header. g-ir-scanner cannot properly parse 'gchar **' parameters without this. doc/Doxyfile.in | 2 ++ scripts/gen-api-gtkdoc.py | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) commit b116a66862eb89b0c12833eb9bc6ecafcb6c7284 Author: Thomas Martitz Date: Thu Mar 23 21:58:43 2017 +0100 symbols: provide a bit more path information in the goto-symbol popup. From #1069: > At the moment if symbols of the same name are defined in identically named > files, it's hard to distinguish which file is which because there's no path > in the popup. > The popup should show part of the path until a directory where the paths > differ so it's possible to distinguish the different files. At the same time > there should probably be some top limit for the length of the paths as they > can make the popup too wide. This addresses the above by showing more of the file's paths but still try to make it as short as possible. The file list is processed by the new utils_strv_shorten_file_list(), as a result the popup will list files with the common prefix stripped and the longest common sub-path ellipsized. As a result, the file list shows enough of the path to make them unique but still is still very short and doesn't make the dialog too wide. Fixes #1069. src/symbols.c | 13 +++++++++++-- src/utils.c | 9 +++------ 2 files changed, 14 insertions(+), 8 deletions(-) commit 4956b05d1e9052861deb3608673da25741bc6013 Author: Thomas Martitz Date: Thu Mar 23 21:46:23 2017 +0100 utils: add functions to process file name list 1) utils_strv_find_common_prefix Locates the common prefix. 2) utils_strv_find_lcs Finds the longest common substring. 3) utils_strv_shorten_file_list Transforms the file list by removing the common prefix and ellipsizing the longest common substring. This is intended to be used for fixing #1069. Although only 3 will be used immediately, I separated the functionality, so that the other two function can be used on their own. src/utils.c | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/utils.h | 2 + 2 files changed, 194 insertions(+) commit dce02fcc6cf36ccbe91b5d9a4f43a181c7140f83 Author: Frank Lanitz Date: Mon Dec 3 21:06:10 2018 +0100 Update po files for upcoming string freeze po/ar.po | 427 ++++++++++++++++++++++++++++++---------------------------- po/ast.po | 427 ++++++++++++++++++++++++++++++---------------------------- po/be.po | 428 ++++++++++++++++++++++++++++++---------------------------- po/bg.po | 424 +++++++++++++++++++++++++++++---------------------------- po/ca.po | 428 ++++++++++++++++++++++++++++++---------------------------- po/cs.po | 428 ++++++++++++++++++++++++++++++---------------------------- po/da.po | 53 +++++--- po/de.po | 37 +++-- po/el.po | 428 ++++++++++++++++++++++++++++++---------------------------- po/en_GB.po | 427 ++++++++++++++++++++++++++++++---------------------------- po/es.po | 428 ++++++++++++++++++++++++++++++---------------------------- po/et.po | 430 ++++++++++++++++++++++++++++++---------------------------- po/eu.po | 428 ++++++++++++++++++++++++++++++---------------------------- po/fa.po | 427 ++++++++++++++++++++++++++++++---------------------------- po/fi.po | 428 ++++++++++++++++++++++++++++++---------------------------- po/fr.po | 428 ++++++++++++++++++++++++++++++---------------------------- po/gl.po | 428 ++++++++++++++++++++++++++++++---------------------------- po/he.po | 428 ++++++++++++++++++++++++++++++---------------------------- po/hi.po | 420 +++++++++++++++++++++++++++++---------------------------- po/hu.po | 422 +++++++++++++++++++++++++++++---------------------------- po/id.po | 428 ++++++++++++++++++++++++++++++---------------------------- po/it.po | 428 ++++++++++++++++++++++++++++++---------------------------- po/ja.po | 440 +++++++++++++++++++++++++++++++----------------------------- po/kk.po | 428 ++++++++++++++++++++++++++++++---------------------------- po/ko.po | 427 ++++++++++++++++++++++++++++++---------------------------- po/lb.po | 427 ++++++++++++++++++++++++++++++---------------------------- po/lt.po | 428 ++++++++++++++++++++++++++++++---------------------------- po/lv.po | 429 ++++++++++++++++++++++++++++++---------------------------- po/mn.po | 423 +++++++++++++++++++++++++++++---------------------------- po/nl.po | 428 ++++++++++++++++++++++++++++++---------------------------- po/nn.po | 424 +++++++++++++++++++++++++++++---------------------------- po/pl.po | 428 ++++++++++++++++++++++++++++++---------------------------- po/pt.po | 433 ++++++++++++++++++++++++++++++----------------------------- po/pt_BR.po | 428 ++++++++++++++++++++++++++++++---------------------------- po/ro.po | 426 ++++++++++++++++++++++++++++++---------------------------- po/ru.po | 2 +- po/sk.po | 428 ++++++++++++++++++++++++++++++---------------------------- po/sl.po | 428 ++++++++++++++++++++++++++++++---------------------------- po/sr.po | 426 ++++++++++++++++++++++++++++++---------------------------- po/sv.po | 403 ++++++++++++++++++++++++++++--------------------------- po/tr.po | 428 ++++++++++++++++++++++++++++++---------------------------- po/uk.po | 426 ++++++++++++++++++++++++++++++---------------------------- po/vi.po | 428 ++++++++++++++++++++++++++++++---------------------------- po/zh_CN.po | 37 +++-- po/zh_TW.po | 37 +++-- 45 files changed, 8950 insertions(+), 8292 deletions(-) commit 5efcaf0b4dcbefb5c61c1ca6f32b6ed54c17d82f Author: Frank Lanitz Date: Mon Dec 3 18:56:44 2018 +0100 Update of Russian translation po/ru.po | 44 ++++++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 18 deletions(-) commit 75094bd9c884ac2767e828eecac00146f75fb37f Author: Colomban Wendling Date: Sun Dec 2 20:19:54 2018 +0100 binreloc: Properly undef a macro before re-defining it src/prefix.h | 1 + 1 file changed, 1 insertion(+) commit 499ca112f57aa989ec3a1a2ebffa47651b19b18c Author: Colomban Wendling Date: Sun Dec 2 22:56:41 2018 +0100 travis: Add binreloc to the build matrix .travis.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 9542d574c2fbe3a5bbf14195a0f3d413ad8a0d7a Author: Colomban Wendling Date: Sun Dec 2 20:03:10 2018 +0100 travis: Run distcheck .travis.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 1cd03a641785b612f9450219977d40af53fc98ec Author: Colomban Wendling Date: Sun Dec 2 19:27:32 2018 +0100 travis: Enable ccache cache .travis.yml | 1 + 1 file changed, 1 insertion(+) commit dbf1d009d4b31b9cf2a64cf0ccd3c918eceb1c47 Author: Colomban Wendling Date: Mon Oct 17 20:05:22 2016 +0200 Add mnemonics keys for some preferences data/geany.glade | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) commit 51385f2a735135eba2e1e0f6243619471e3ccfef Author: Colomban Wendling Date: Mon Oct 17 19:59:26 2016 +0200 Add relations between label widgets and labelled widgets data/geany.glade | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) commit 837a2ff5db397bd8a96712f7ef726f1e0ce63851 Author: Colomban Wendling Date: Sun Dec 2 09:06:27 2018 +0100 Fix distribution of Scintilla's ILoader.h scintilla/include/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit 2fdf45730aad2f1e425f36543d6deb717e99f672 Author: Colomban Wendling Date: Fri Nov 30 17:47:30 2018 +0100 Update NEWS for upcoming release NEWS | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) commit 8e6e3037ba8cec0944fdbb300eb8e6aedf37110e Author: Colomban Wendling Date: Mon Nov 26 15:32:26 2018 +0100 Always show icons in the go to symbol popup This uses a menu and is thus subject to the menu icons visibility setting, but here it should reflect the view from the symbols list, and thus show the icon in all cases. src/symbols.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 10252bea6eaa9738b1652fcb8644c55185a74b40 Merge: 9cec0a8fc 9ecabc20f Author: Enrico Tröger Date: Sun Nov 25 15:04:57 2018 +0100 Merge pull request #1932 from eht16/issue1912_change_batch_comment_to_rem Use REM as single comment marker for Batch files commit 9cec0a8fc4e75c42e979005ba6da81ff32f9e8a7 Merge: 09d17e864 2a0e52afa Author: Enrico Tröger Date: Sun Nov 25 14:53:51 2018 +0100 Merge pull request #1992 from eht16/issue692_windows_dpi_aware Windows: Enable DPI-aware mode in Windows Assembly Manifest commit 09d17e8646f17c9e03bf77f0eb97ac8b170113df Merge: 653b06e07 a00471f50 Author: Enrico Tröger Date: Sun Nov 25 14:48:32 2018 +0100 Merge pull request #1970 from dmaphy/master Update std.php.tags to be current with PHP 7.2 commit 653b06e07ae99ac75c4eb56dfc23a237243a5dca Author: elextr Date: Sun Nov 18 19:29:54 2018 +1000 Fix line breaking with multibyte characters (#1960) Fixes #1958 Also replace GDK_space with ASCII space, its searching for that, not the keycode (which just happens to have the same value, lucky). src/editor.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7956fd5b3a1aad46275a18e5c2356496c951cf72 Author: Frank Lanitz Date: Sun Nov 18 10:15:44 2018 +0100 Update of Traditional Chinese translation NEWS | 2 +- po/zh_TW.po | 1083 +++++++++++++++++++++++++++-------------------------------- 2 files changed, 489 insertions(+), 596 deletions(-) commit 2a0e52afa719560d6653b4743078ab1d0a776237 Author: Enrico Tröger Date: Wed Nov 14 23:25:50 2018 +0100 Windows: Enable DPI-aware mode in Windows Assembly Manifest This should solve display issues with HiDPI displays. Closes #692. geany.exe.manifest | 6 ++++++ 1 file changed, 6 insertions(+) commit 193430f497fa43527e906df6cd01836a60d7dfe8 Author: Frank Lanitz Date: Wed Nov 14 17:23:09 2018 +0100 Update NEWS for 1.34 with translation changes done since 1.33 NEWS | 3 +++ 1 file changed, 3 insertions(+) commit e01afc6ce9f022536e0a7e4e4ff419944d4bafdf Author: Frank Lanitz Date: Wed Nov 14 08:03:35 2018 +0100 Fix typo in Russian translation po/ru.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fb39f67f90376f3334dd78a80ef984cc5373bae0 Merge: 97547edb5 8b68c5a2c Author: Colomban Wendling Date: Tue Nov 13 08:38:45 2018 +0100 Merge pull request #1991 from b4n/tm-lookup-includes-cleaup Process files in the order they appear on the command line when generating tags file, instead of a more or less random order. Closes #1989. commit 8b68c5a2caec368d243c5a588c12121f7b20550c Author: Colomban Wendling Date: Mon Nov 12 11:34:55 2018 +0100 Add a test for the processing order when generating a tags file tests/ctags/Makefile.am | 10 ++++++++++ tests/ctags/process_order.c.tags | 7 +++++++ tests/ctags/process_order_1.h | 4 ++++ tests/ctags/process_order_2.h | 4 ++++ tests/ctags/runner.sh | 18 +++++++++++++++--- 5 files changed, 40 insertions(+), 3 deletions(-) commit 939dab08e0c12fb55aa34a1fab5d84e031dcb1fb Author: Colomban Wendling Date: Mon Nov 12 11:33:58 2018 +0100 Process files in the order they are listed when generating a tags file src/tagmanager/tm_workspace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fc6a9bb9cb780e89cafe62a1a1a9126dca1f48dd Author: Colomban Wendling Date: Fri Nov 9 14:29:54 2018 +0100 tm: Cleanup include lookup Don't use the files inode as the hash. Although it looks like a good idea for de-duplicating links as well, it has several issues, including non-uniqueness of inodes across file systems. The way it was done hashing the inode but comparing the file name string pointers also made the hash mostly irrelevant, as it just stored filenames sharing the same inode in the same hash bucket but without actually doing any de-duplication, making the whole thing a convoluted way of converting to a list. Instead, hash and compare the filenames themselves, which, even though it doesn't handle links de-duplication, is better than the non-functional previous code. Also, directly build the list and only use the hash table as a way for checking for duplicates, which is both faster and gives a stable output. src/tagmanager/tm_workspace.c | 35 ++++------------------------------- 1 file changed, 4 insertions(+), 31 deletions(-) commit 97547edb52e34b8f78f44a13548a0fb55baf1a44 Author: Dmytro Semenchenko <39010377+gospodima@users.noreply.github.com> Date: Sun Oct 21 01:20:49 2018 +0200 Update uk.po (#1976) Delete Fuzzy flags after https://github.com/geany/geany/pull/1968 po/uk.po | 14 -------------- 1 file changed, 14 deletions(-) commit 0f9d00c2012403ea382dc2318f2ccf36eb24ec3e Author: pmraps <43935667+pmraps@users.noreply.github.com> Date: Sun Oct 21 00:19:46 2018 +0100 minor typo (#1980) po/pt.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 99e0f208b2ca17e488d0981709805d1458932b96 Merge: 248c970aa 719305c5b Author: Jiří Techet Date: Sat Oct 13 14:25:12 2018 +0200 Merge branch 'master' into ctags_sync_main # Conflicts: # ctags/main/lcpp.c # ctags/main/parse.c commit 248c970aa0d72d9418b915c6ba1c37855c084407 Author: Jiří Techet Date: Sat Oct 13 13:38:08 2018 +0200 Add missing void ctags/main/lcpp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 25e8ebc444b5b23e37e90d18804e4cb4ce66741b Author: Jiří Techet Date: Sat Oct 13 13:36:38 2018 +0200 Fix indent ctags/main/ctags-api.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9b44e9fa422136bf1178b71ad8de6ebee652431e Author: Jiří Techet Date: Sat Oct 13 13:33:23 2018 +0200 Fix parsing with sub-parsers The previous code would skip parsing with sub-parsers so these would not work. Running full createTagsWithFallback1() in this case would cause two problems: 1. We would have to propagate the extra callback arguments to runParserInNarrowedInputStream() 2. And the callbacks after each pass should not actually be called in this case because the caller expects these are called for the master parser, not the sub-parsers. So instead just do simple parsing without re-tries which are used only in the C and Fortran parsers which lack sub-parser capability anyway. ctags/main/parse.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit a00471f50f3c3a5d479c7c41a65b1d0dfee28a3e Author: Dominic Hopf Date: Sun Oct 7 12:02:58 2018 +0200 Update std.php.tags to be current with PHP 7.2 data/tags/std.php.tags | 3601 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 2587 insertions(+), 1014 deletions(-) commit 719305c5b1c80cbdb5bebbf9364379cfb77aaa57 Author: Dmytro Semenchenko <39010377+gospodima@users.noreply.github.com> Date: Wed Oct 3 18:25:27 2018 +0200 Update uk.po (#1968) po/uk.po | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) commit 61756967fbd1b5e4fe792caa75b8e66af41b6143 Author: Frank Lanitz Date: Tue Oct 2 08:41:36 2018 +0200 Update of Russian translation po/ru.po | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) commit 749c409b6f17230c6c95998afd53ce213f632f11 Author: Frank Lanitz Date: Sun Sep 30 21:32:55 2018 +0200 Small update of Russian translation po/ru.po | 396 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 198 insertions(+), 198 deletions(-) commit 4a47a7dee98a8cd9c99c4c51f54b00d80b9a9773 Author: Frank Lanitz Date: Sat Sep 29 10:17:54 2018 +0200 Update of Chinese Simplified translation po/zh_CN.po | 393 ++++++++++++++++++++++++++++++------------------------------ 1 file changed, 197 insertions(+), 196 deletions(-) commit 7208f3c12c365273de0907792ada7044ba76b84c Author: Frank Lanitz Date: Mon Sep 24 22:18:38 2018 +0200 Small update of German translation po/de.po | 372 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 186 insertions(+), 186 deletions(-) commit c415d1d19d5818c8b6bf40c32ba5b238d3472236 Merge: 0b75601ac a098fa847 Author: Colomban Wendling Date: Fri Sep 21 11:16:26 2018 +0200 Merge pull request #1931 from eht16/issue1930_fix_gtk3_bundle_download Update link to GTK+3 bundle for test builds to self-hosted version commit 0b75601ac88c59832434904780ce3161cab1327f Merge: a7599c5d0 ea47c6c71 Author: Colomban Wendling Date: Wed Sep 19 08:44:37 2018 +0200 Merge pull request #1914 from b4n/scintilla/update-3-10-0 Update Scintilla to version 3.10.0 Fixes #1421. commit 9ecabc20f0e51e33bf6a46d13bc1a0b47dcc437d Author: Enrico Tröger Date: Sun Aug 26 12:48:17 2018 +0200 Use REM as single comment marker for Batch files REM seems to be the standard comment marker while "::" is rather deprecated. Closes #1912. data/filedefs/filetypes.batch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a098fa847b985582087e06b68b29d4ef71b8d9ac Author: Enrico Tröger Date: Sun Aug 26 09:52:42 2018 +0200 Update link to GTK+3 bundle for test builds to self-hosted version The host win32builder.gnome.org seems dead and so host the GTK+3 bundle we use to test builds for Windows cross-compilation on our own. scripts/cross-build-mingw.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a7599c5d06e05f7f6722e7423ac6f85c09c65d1e Author: Frank Lanitz Date: Mon Aug 20 19:09:42 2018 +0200 Update of Danish translation po/da.po | 374 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 187 insertions(+), 187 deletions(-) commit 60621434c9892471f0a91e599ce3b82185675cc1 Author: Enrico Tröger Date: Sun Aug 19 23:32:02 2018 +0200 Windows: Update indirect dependencies for bundle creation Pango now requires fribidi, so we need to install it. Update the download URL for UnxUtils. Remove unnecessary cmake files after installation. scripts/gtk-bundle-from-msys2.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 3d280fef46374f87cb7a80e1e988873406751fd8 Merge: 3f20ad363 3182ed5e0 Author: Enrico Tröger Date: Sun Aug 19 16:21:09 2018 +0200 Merge pull request #1894 from hroncok/patch-1 Update Python identifiers with Python 3.7 commit 3f20ad363a38e9f6b08877d5ade1290d7c69e670 Author: Colomban Wendling Date: Sun Jul 23 22:24:44 2017 -0700 Don't beep if there is no next snippet cursor Now the keybinding can be overridden (e.g. using Tab for it as well as normal behavior), beeping when there is no next cursor is more annoying than useful. Part of #1554. src/editor.c | 1 - 1 file changed, 1 deletion(-) commit ea47c6c713493c7b0c358a39b51da76e3af2d2a0 Author: Colomban Wendling Date: Wed Aug 1 14:53:30 2018 +0200 Update Diff styles for new Scintilla version The new styles are for "diff of a diff", e.g. lines starting with `++`, `+-`, `-+` and `--`. Those are currently mapped conservatively keeping the previous display behavior, until we have good style matches for them. data/filedefs/filetypes.diff | 8 ++++++++ src/highlightingmappings.h | 20 ++++++++++++-------- 2 files changed, 20 insertions(+), 8 deletions(-) commit 3fa7576e13e129900a6e0acbd5460237f9a1b614 Author: Colomban Wendling Date: Wed Aug 1 14:51:52 2018 +0200 Update Scintilla to version 3.10.0 Scintilla 3.7.6/4.0.0 deprecated `SCE_*STYLEBITS*` and moved it to deprecated features that require a build-time flag to be available. Thus, drop use of those (as they are now no-ops anyway) and bump the ABI (so plugins depending on those don't build mistakenly load) and API (so a developer can guard use of those if wanted) version accordingly. plugins/export.c | 10 +- scintilla/License.txt | 28 +- scintilla/Makefile.am | 6 + scintilla/gtk/Converter.h | 4 - scintilla/gtk/PlatGTK.cxx | 280 ++---- scintilla/gtk/ScintillaGTK.cxx | 183 ++-- scintilla/gtk/ScintillaGTK.h | 17 +- scintilla/gtk/ScintillaGTKAccessible.cxx | 7 +- scintilla/gtk/ScintillaGTKAccessible.h | 6 +- scintilla/gtk/scintilla-marshal.c | 33 +- scintilla/gtk/scintilla-marshal.h | 44 +- scintilla/gtk/scintilla-marshal.list | 4 +- scintilla/include/ILexer.h | 22 +- scintilla/include/ILoader.h | 21 + scintilla/include/Platform.h | 287 +++--- scintilla/include/SciLexer.h | 14 + scintilla/include/Sci_Position.h | 12 +- scintilla/include/Scintilla.h | 26 +- scintilla/include/Scintilla.iface | 85 +- scintilla/lexers/LexAbaqus.cxx | 2 - scintilla/lexers/LexAda.cxx | 2 - scintilla/lexers/LexAsm.cxx | 5 +- scintilla/lexers/LexBash.cxx | 2 - scintilla/lexers/LexBasic.cxx | 5 +- scintilla/lexers/LexBatch.cxx | 2 - scintilla/lexers/LexCOBOL.cxx | 2 - scintilla/lexers/LexCPP.cxx | 183 ++-- scintilla/lexers/LexCSS.cxx | 6 +- scintilla/lexers/LexCaml.cxx | 7 +- scintilla/lexers/LexCmake.cxx | 2 - scintilla/lexers/LexCoffeeScript.cxx | 7 +- scintilla/lexers/LexD.cxx | 5 +- scintilla/lexers/LexDiff.cxx | 10 +- scintilla/lexers/LexErlang.cxx | 7 +- scintilla/lexers/LexForth.cxx | 2 - scintilla/lexers/LexFortran.cxx | 16 +- scintilla/lexers/LexHTML.cxx | 818 +++++++++++------ scintilla/lexers/LexHaskell.cxx | 5 +- scintilla/lexers/LexLaTeX.cxx | 4 +- scintilla/lexers/LexLisp.cxx | 2 - scintilla/lexers/LexLua.cxx | 184 ++-- scintilla/lexers/LexMake.cxx | 2 - scintilla/lexers/LexMarkdown.cxx | 2 - scintilla/lexers/LexMatlab.cxx | 29 +- scintilla/lexers/LexNsis.cxx | 2 - scintilla/lexers/LexNull.cxx | 2 - scintilla/lexers/LexPO.cxx | 2 - scintilla/lexers/LexPascal.cxx | 2 - scintilla/lexers/LexPerl.cxx | 18 +- scintilla/lexers/LexPowerShell.cxx | 2 - scintilla/lexers/LexProps.cxx | 2 - scintilla/lexers/LexPython.cxx | 53 +- scintilla/lexers/LexR.cxx | 2 - scintilla/lexers/LexRuby.cxx | 4 +- scintilla/lexers/LexRust.cxx | 11 +- scintilla/lexers/LexSQL.cxx | 7 +- scintilla/lexers/LexTCL.cxx | 3 +- scintilla/lexers/LexTxt2tags.cxx | 2 - scintilla/lexers/LexVHDL.cxx | 103 ++- scintilla/lexers/LexVerilog.cxx | 5 +- scintilla/lexers/LexYAML.cxx | 2 - scintilla/lexlib/Accessor.cxx | 2 - scintilla/lexlib/Accessor.h | 4 - scintilla/lexlib/CharacterCategory.cxx | 9 +- scintilla/lexlib/CharacterCategory.h | 4 - scintilla/lexlib/CharacterSet.cxx | 14 +- scintilla/lexlib/CharacterSet.h | 16 +- scintilla/lexlib/DefaultLexer.cxx | 125 +++ scintilla/lexlib/DefaultLexer.h | 51 ++ scintilla/lexlib/LexAccessor.h | 18 +- scintilla/lexlib/LexerBase.cxx | 65 +- scintilla/lexlib/LexerBase.h | 46 +- scintilla/lexlib/LexerModule.cxx | 35 +- scintilla/lexlib/LexerModule.h | 33 +- scintilla/lexlib/LexerNoExceptions.cxx | 2 - scintilla/lexlib/LexerNoExceptions.h | 12 +- scintilla/lexlib/LexerSimple.cxx | 6 +- scintilla/lexlib/LexerSimple.h | 10 +- scintilla/lexlib/OptionSet.h | 4 - scintilla/lexlib/PropSetSimple.cxx | 36 +- scintilla/lexlib/PropSetSimple.h | 6 +- scintilla/lexlib/SparseState.h | 22 +- scintilla/lexlib/StringCopy.h | 4 - scintilla/lexlib/StyleContext.cxx | 8 +- scintilla/lexlib/StyleContext.h | 17 +- scintilla/lexlib/SubStyles.h | 38 +- scintilla/lexlib/WordList.cxx | 14 +- scintilla/lexlib/WordList.h | 4 - scintilla/scintilla_changes.patch | 4 +- scintilla/src/AutoComplete.cxx | 17 +- scintilla/src/AutoComplete.h | 18 +- scintilla/src/CallTip.cxx | 53 +- scintilla/src/CallTip.h | 8 +- scintilla/src/CaseConvert.cxx | 435 +++++---- scintilla/src/CaseConvert.h | 4 - scintilla/src/CaseFolder.cxx | 5 +- scintilla/src/CaseFolder.h | 6 +- scintilla/src/Catalogue.cxx | 6 +- scintilla/src/Catalogue.h | 6 +- scintilla/src/CellBuffer.cxx | 215 +++-- scintilla/src/CellBuffer.h | 64 +- scintilla/src/CharClassify.cxx | 4 +- scintilla/src/CharClassify.h | 4 - scintilla/src/ContractionState.cxx | 274 ++++-- scintilla/src/ContractionState.h | 78 +- scintilla/src/DBCS.cxx | 42 + scintilla/src/DBCS.h | 17 + scintilla/src/Decoration.cxx | 226 +++-- scintilla/src/Decoration.h | 86 +- scintilla/src/Document.cxx | 717 ++++++++------- scintilla/src/Document.h | 181 ++-- scintilla/src/EditModel.cxx | 10 +- scintilla/src/EditModel.h | 10 +- scintilla/src/EditView.cxx | 430 ++++----- scintilla/src/EditView.h | 26 +- scintilla/src/Editor.cxx | 1432 +++++++++++++++--------------- scintilla/src/Editor.h | 86 +- scintilla/src/ElapsedPeriod.h | 35 + scintilla/src/ExternalLexer.cxx | 4 +- scintilla/src/ExternalLexer.h | 13 +- scintilla/src/FontQuality.h | 4 - scintilla/src/Indicator.cxx | 132 +-- scintilla/src/Indicator.h | 4 - scintilla/src/IntegerRectangle.h | 29 + scintilla/src/KeyMap.cxx | 3 +- scintilla/src/KeyMap.h | 4 - scintilla/src/LineMarker.cxx | 137 ++- scintilla/src/LineMarker.h | 46 +- scintilla/src/MarginView.cxx | 80 +- scintilla/src/MarginView.h | 4 - scintilla/src/Partitioning.h | 87 +- scintilla/src/PerLine.cxx | 26 +- scintilla/src/PerLine.h | 44 +- scintilla/src/Position.h | 15 +- scintilla/src/PositionCache.cxx | 113 +-- scintilla/src/PositionCache.h | 45 +- scintilla/src/RESearch.cxx | 48 +- scintilla/src/RESearch.h | 12 +- scintilla/src/RunStyles.cxx | 142 +-- scintilla/src/RunStyles.h | 59 +- scintilla/src/ScintillaBase.cxx | 210 +++-- scintilla/src/ScintillaBase.h | 20 +- scintilla/src/Selection.cxx | 12 +- scintilla/src/Selection.h | 4 - scintilla/src/SparseVector.h | 58 +- scintilla/src/SplitVector.h | 91 +- scintilla/src/Style.cxx | 12 +- scintilla/src/Style.h | 18 +- scintilla/src/UniConversion.cxx | 350 ++++---- scintilla/src/UniConversion.h | 42 +- scintilla/src/UniqueString.h | 4 - scintilla/src/ViewStyle.cxx | 21 +- scintilla/src/ViewStyle.h | 16 +- scintilla/src/XPM.cxx | 59 +- scintilla/src/XPM.h | 25 +- scintilla/version.txt | 2 +- src/highlighting.c | 2 - src/plugindata.h | 4 +- 158 files changed, 5479 insertions(+), 4248 deletions(-) commit 958deb55fe80e2ef27d8f7a4f1a500531933116c Author: Colomban Wendling Date: Wed Aug 1 14:41:00 2018 +0200 Add a few extra hints in the Scintilla update script scripts/update-scintilla.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 0c658c6a32fc0643eafd157e6ccfc657b9979ff9 Author: Salvatore Manfredi Date: Wed Jul 25 21:54:24 2018 +0200 Fix incorrect translation (#1905) These two strings have probably been translated with a generic online tool which lacks of contextual translation po/it.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 63eaf257ded7120fe06b9d099a5ffc7241a3a281 Author: LarsGit223 Date: Sun Jul 15 23:53:01 2018 +0200 keybindings: Added missing "Strip Trailing Spaces" (#1806) Fixes #395. src/keybindings.c | 5 +++++ src/keybindings.h | 2 ++ src/plugindata.h | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) commit 3182ed5e032b7691c73a6f11da950ed29ab64a98 Author: Miro Hrončok Date: Fri Jul 6 22:16:44 2018 +0200 Update Python identifiers with Python 3.7 Fixes https://github.com/geany/geany/issues/1351 data/filedefs/filetypes.python | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 935c16ea25374d323ec4212a1a49bdce68d4603b Author: Balázs Meskó Date: Mon Jun 18 06:47:26 2018 +0200 Update Hungarian translation (#1880) po/hu.po | 848 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 412 insertions(+), 436 deletions(-) commit 8cdf1d1ee862a62c0968187d52571b31091bf370 Author: Colomban Wendling Date: Fri Jun 15 23:08:54 2018 +0200 Make a local function static src/msgwindow.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 99851b592a77d06229cc1b5a14d89c3db347a268 Author: Colomban Wendling Date: Fri Jun 15 22:53:59 2018 +0200 Remove unused parameter Since 320e4b9d762e0bd7d550c62be614873db5a04ac4 the "smart line indentation" explicitly doesn't restore cursor position, and doesn't make use of the position parameter, which no caller really use anyway. Remove it altogether to avoid confusion. src/editor.c | 5 +---- src/editor.h | 2 +- src/keybindings.c | 2 +- 3 files changed, 3 insertions(+), 6 deletions(-) commit 4641ce3e9ff5574eb2a9268451198733aad46ea2 Author: Colomban Wendling Date: Fri Jun 15 22:37:13 2018 +0200 Remove an unnecessary local variable src/editor.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit 40fc6775a38c15699e30823c9ab204e1b555908d Author: Colomban Wendling Date: Fri Jun 15 22:34:57 2018 +0200 Add a sanity check on the Save As callback Add a defensive check to make sure to catch the unlikely but maybe theoretically possible case where the document last document is closed while the Save As dialog is running. src/dialogs.c | 1 + 1 file changed, 1 insertion(+) commit 46ee2a826f47abc2335040af8ec4a0cde13c6b8f Author: Colomban Wendling Date: Fri Jun 15 22:17:12 2018 +0200 Report subroutine declarations as such They were reported as subroutines because kind was assigned after being used, which was likely a bug. ctags/parsers/perl.c | 1 + 1 file changed, 1 insertion(+) commit 592c68b123a5414360581e2552dfcb5749745bee Author: Deimos715 <32176134+Deimos715@users.noreply.github.com> Date: Sat Jun 2 22:21:07 2018 +0300 Update some links to HTTPS See also b10b2a716784d7fa3fd953ebde55982c39878313 (PR #1840) Closes #1868 README | 4 ++-- src/geany.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit b778e4b56f7cda19da0f9970d8e9f584e19a4732 Merge: 38a0e4f5b 604eac9f0 Author: Colomban Wendling Date: Sat May 26 12:17:11 2018 -0400 Merge pull request #1843 from b4n/smooth-scroll-bug Fix horizontal and page scroll on GTK3 commit 38a0e4f5b01ac2ed6ad91de8724cd769c0cfab37 Author: Jiří Techet Date: Tue May 22 01:35:44 2018 +0200 Allow plugins to process keypress events before Geany (#1829) In addition, the signal allows plugins swallow the event so it's not processed by Geany. doc/pluginsignals.c | 20 ++++++++++++++++++++ src/geanyobject.c | 9 +++++++++ src/geanyobject.h | 1 + src/keybindings.c | 6 ++++++ src/plugindata.h | 2 +- 5 files changed, 37 insertions(+), 1 deletion(-) commit 07643499cda03ab89a64df6c6c5c6cbb70c94914 Author: Wuerstchen Date: Fri May 18 00:19:18 2018 +0200 Update de.po (#1858) Small typo (grammar) po/de.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit af158988239e806be1b93268c9dfb387b689b1f7 Author: FMuro Date: Sat May 5 20:36:08 2018 +0200 Fix boldface and italics (#1837) Before, **boldface** or *italics* (also _italics_) would not generally show as that, definitely not with the default color scheme. After this change, they appear with the same color as normal text but with that typography, in all color schemes. data/filedefs/filetypes.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1507f867cebca0a0cf329005bc613375b764c1ce Merge: 1611e3f94 b10b2a716 Author: Enrico Tröger Date: Wed Apr 25 20:05:07 2018 +0200 Merge pull request #1840 from paulmenzel/use-https-url-for-www.geany.org Use HTTPS URL for domain www.geany.org commit 604eac9f06e506a2b8a1e2cc04992f32cf3bb426 Author: Colomban Wendling Date: Mon Apr 23 20:19:13 2018 -0300 Fix horizontal and page scroll on GTK3 Our custom scroll handler for horizontal (Shift+Scroll) and page (Alt+Scroll) scroll didn't properly check the scroll direction and assume that if it's not down it's up. This was mostly not a problem because the other types only were left and right scroll events, which are a lot less common. However, it became a lot more problematic with GTK 3.4 that introduced "smooth scrolling", and thus a new scroll type that can happen for events in any direction. We then would scroll up (as we assume "not down" is up) regardless of the actual direction of the event. It's still not clear why we'd get smooth scroll events on X11 as no code I can find asks for it and we generally don't get those, but sometimes a Scintilla widget starts receiving them, leading to the bug. On Wayland on the other hand, Scintilla asks for smooth scroll events, so we need to have a fix for it in any case. src/editor.c | 4 ++++ 1 file changed, 4 insertions(+) commit b10b2a716784d7fa3fd953ebde55982c39878313 Author: Paul Menzel Date: Mon Apr 23 17:11:37 2018 +0200 Use HTTPS URL for domain www.geany.org Replace all occurrences with the command below. git grep -l 'http://www.geany.org' | xargs sed -i 's,http://www.geany.org,https://www.geany.org,g' HACKING | 2 +- README | 4 ++-- README.I18N | 4 ++-- data/ui_toolbar.xml | 2 +- doc/geany.1.in | 2 +- doc/geany.txt | 12 ++++++------ doc/plugins.dox | 4 ++-- geany.nsi.in | 2 +- geany.spec.in | 2 +- src/geany.h | 6 +++--- src/toolbar.c | 2 +- 11 files changed, 21 insertions(+), 21 deletions(-) commit 1611e3f94960a821ced0af9b99052afa6ade2111 Merge: 4d252c7a1 bec383235 Author: Colomban Wendling Date: Thu Apr 5 15:47:30 2018 -0400 Merge pull request #1748 from kugel-/msgwin-api Add GI-compatible msgwin_*_add() Closes #1748. commit bec3832359cf3a7d9f9d5d0a9ac3a622d6387d66 Author: Colomban Wendling Date: Thu Apr 5 15:35:05 2018 -0400 Bump API version src/msgwindow.c | 6 +++--- src/plugindata.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit 78644a8260ae6ee1e8828ad4330275d4685c7a1c Author: Thomas Martitz Date: Fri Jan 26 07:46:24 2018 +0100 msgwin: improve doxygen comments Make the brief text be distinct between msgwin_*_add and msgwin_*_add_string(). Also add @see directives where appropriate. Lastly, add @since to msgwin_status_add() for completeness. src/msgwindow.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) commit cb179943ad8819e7c1bf9a8e359264cf87ee27f4 Author: Thomas Martitz Date: Tue Jan 23 22:28:50 2018 +0100 msgwin: beautify doxygen comments a bit src/msgwindow.c | 93 +++++++++++++++++++++++++++++++-------------------------- 1 file changed, 51 insertions(+), 42 deletions(-) commit d3417b7b37d289fc2a7d985f54c5b8a5385f295e Author: Thomas Martitz Date: Tue Jan 23 19:05:28 2018 +0100 api: add non-variadic variants of msgwin_*_add to the API The variadic variants cannot be gobject-introspected, i.e. are not available in Peasy. In fact, msgwin_compiler_add_string() and msgwin_msg_add_string() already existed and have just been exported. msgwin_status_add_string() is new but msgwin_status_add() becaume a wrapper around it in the same fashion as the other two pairs. src/msgwindow.c | 59 +++++++++++++++++++++++++++++++++++++++++++++------------ src/msgwindow.h | 7 +++---- 2 files changed, 50 insertions(+), 16 deletions(-) commit 4d252c7a19e84d7c71571a751a213b906522b29c Merge: 11da5557a 373852c73 Author: Colomban Wendling Date: Tue Apr 3 17:52:19 2018 -0400 Merge pull request #1799 from b4n/plugin-manager/selection-on-double-click Fix PM button desynchronization and possible crash commit 11da5557a0addb47ede0273d3975486daf9c82c0 Author: Colomban Wendling Date: Fri Mar 23 00:48:18 2018 -0400 Skip the format specifier when loading a global tag file This prevents loading a spurious tag for the format specifier line, as well as fixing loading of CTags format with a format specifier line. Before this change, the file pointer was rewound after reading a format specifier line; but this had various unwanted side effects depending on the recognized format: * For TagManager and Pipe formats, it led to loading a tag named after the format specifier (e.g. a literal "# format=tagmanager"). This was fairly harmless and only introduced a spurious tag seldom even used because "#" isn't usually considered for looking up completions. * For CTags format, having an explicit specifier led to failure to load the file in most cases because the specifier line would be parsed but doesn't usually follow the format's requirements, leading to early abortion loading that file. On some very specific specifier lines actually following CTags format, it could have led to loading a spurious tag instead. Fixes #1814 and closes #1816. src/tagmanager/tm_source_file.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 7c6b4794b1c0f9696465fb8920ccffc107f5b4d8 Author: Frank Lanitz Date: Sat Mar 17 18:45:20 2018 +0100 Small update of German translation po/de.po | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 6e4eece98138d07063962926f4a6f877edbd8bb9 Author: LarsGit223 Date: Wed Mar 14 23:46:23 2018 +0100 manual: added documentation about replacement of 'untitled.ext' with filename (#1804) On "Save As..." a text in the form 'untitled.ext' will be replaced with the chosen filename if it is found in the first 3 lines of the document. This PR adds a description of the feature to the manual. Fixes #753. doc/geany.txt | 9 +++++++++ 1 file changed, 9 insertions(+) commit 7fd73a06a7aab8582af36891f7b2a19dbe08188b Author: LarsDW223 Date: Tue Mar 13 20:47:01 2018 +0100 keyfile: Output unescaped filename if session file cannot be opened Fixes #779. src/keyfile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 08a60e3c7e2234c0f3906ef6411bcbfde04606da Author: LarsDW223 Date: Tue Mar 13 20:03:39 2018 +0100 spawn: Changed confusing macro name, fixes #1256 src/spawn.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit e4bc8c3de13db79e3955b501fb910b8081660742 Author: Frank Lanitz Date: Mon Mar 12 12:39:39 2018 +0100 Update of Swedish translation po/sv.po | 70 ++++++++++++++++++++++++++++++---------------------------------- 1 file changed, 33 insertions(+), 37 deletions(-) commit 373852c737a4181dd576c02ffe085a915b79a953 Author: Colomban Wendling Date: Sat Mar 10 17:25:22 2018 -0500 Fix plugin manager UI synchronization on double click When toggling a plugin, we temporarily set the tree store's row entry for the plugin pointer to NULL as we destroy and reload the selected plugin, and its pointer would be invalid in the meantime. This results in the filter we use to display search results to temporarily hide the row, changing the actual number of rows and thus, depending on timing, this will or will not change the selected row (it will when double clicking, not when single-clicking), in a seemingly more or less random fashion as we use a sorted model. Finally, as we manually update the buttons visibility for the toggled plugin (as we otherwise do only for changing selection, which should not happen in this case -- well, most of the time as you can see), this can lead to the buttons to be updated for a now unselected row, getting those out of sync. The fix here is not to actually hide rows with a NULL plugin, because it can only happen in 2 cases, where we actually want to see it: 1. while toggling a plugin, as explained above, in which case it had to match the search already. 2. when there is no plugins and we want to display a "No plugins available" message, and the search should not affect this. This incidentally also fix the "No plugins available" so it's actually visible, instead of always hidden. Fixes #1781. src/plugins.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 99150b0ccac9a0f43b9ca342a5aca31c3bdc1768 Author: Colomban Wendling Date: Sat Mar 10 17:23:29 2018 -0500 Check plugin actually has a help function before invoking it This should not be needed in normal operation, but is safer if the UI gets out of sync for some reason. src/plugins.c | 3 +++ 1 file changed, 3 insertions(+) commit 175e45ab47068f6bad24815609889d1f61021bf8 Author: Colomban Wendling Date: Thu Feb 15 22:55:23 2018 -0600 spawn: Add debugging information when switching to timeout source src/spawn.c | 5 +++++ 1 file changed, 5 insertions(+) commit 29d14b1c9934189018374a2ce24ab269c10e0239 Merge: 5a2f4b401 1a19b3972 Author: Colomban Wendling Date: Fri Mar 9 19:53:00 2018 -0500 Merge pull request #1461 from zhekov/master Handle continuous G_IO_IN-s without any data. This fixes spawn clients using recursive sources, like the Scope plugin. commit 5a2f4b401074c399197d79cdc78fab8486097c57 Author: Colomban Wendling Date: Thu Mar 1 16:45:45 2018 -0600 Remove a double space in a string Part of #1789 po/ar.po | 2 +- po/ast.po | 2 +- po/be.po | 2 +- po/bg.po | 2 +- po/ca.po | 2 +- po/cs.po | 2 +- po/de.po | 2 +- po/el.po | 2 +- po/en_GB.po | 2 +- po/es.po | 2 +- po/et.po | 2 +- po/eu.po | 2 +- po/fa.po | 2 +- po/fi.po | 2 +- po/fr.po | 2 +- po/gl.po | 2 +- po/he.po | 2 +- po/hi.po | 2 +- po/hu.po | 2 +- po/id.po | 2 +- po/it.po | 2 +- po/ja.po | 2 +- po/kk.po | 2 +- po/ko.po | 2 +- po/lb.po | 2 +- po/lt.po | 2 +- po/lv.po | 2 +- po/mn.po | 2 +- po/nl.po | 2 +- po/nn.po | 2 +- po/pl.po | 2 +- po/pt.po | 2 +- po/pt_BR.po | 2 +- po/ro.po | 2 +- po/ru.po | 2 +- po/sk.po | 2 +- po/sl.po | 2 +- po/sr.po | 2 +- po/sv.po | 2 +- po/tr.po | 2 +- po/uk.po | 2 +- po/vi.po | 2 +- po/zh_CN.po | 2 +- po/zh_TW.po | 2 +- src/search.c | 2 +- 45 files changed, 45 insertions(+), 45 deletions(-) commit 09a1f9df1a37e8f3f0f0737f1b769b4389d0ad8d Author: Frank Lanitz Date: Thu Mar 1 19:31:21 2018 +0100 Add Danish translation po/da.po | 5989 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 5989 insertions(+) commit 65a156f0bc0229503eea06a78a73dfd1aa0a2f0c Author: scootergrisen Date: Wed Feb 28 17:46:47 2018 +0100 Remove a space (#1790) Should there not only be one space here? src/about.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 51d815ff44cbf4a788ad3bba558632bb5f4544c4 Author: Frank Lanitz Date: Wed Feb 28 17:23:45 2018 +0100 Add missing space in string. Fixes #1789 src/document.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 045a92a7a4a3facd0ab161b178ae330969aafe08 Author: Frank Lanitz Date: Wed Feb 28 17:20:27 2018 +0100 Update of Japanese translation po/ja.po | 50 ++++++++++++++++++++++---------------------------- 1 file changed, 22 insertions(+), 28 deletions(-) commit bcc8e70c8a553ea394ab491326e2d37b15b9cc64 Author: Skif-off Date: Mon Feb 26 01:00:05 2018 +0400 Small fix of Russian translation (#1770) po/ru.po | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 824b2cb6605567e474a3d23af946b9fccaf0d723 Author: Enrico Tröger Date: Sun Feb 25 15:47:55 2018 +0100 Update copyright years README | 2 +- geany.nsi.in | 2 +- src/about.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 6c531e7143d11573556cf0e6e44518c67808e423 Author: Enrico Tröger Date: Sun Feb 25 15:47:14 2018 +0100 Post release version bump Say hello to Geany 1.34 "Keong"! NEWS | 3 +++ configure.ac | 2 +- doc/geany.txt | 2 +- geany.exe.manifest | 2 +- geany_private.rc | 4 ++-- src/geany.h | 2 +- 6 files changed, 9 insertions(+), 6 deletions(-) commit 632575995e1ad513f1c7e73a3052caa43f27369a Merge: b1ef8f0cc e001518dc Author: Enrico Tröger Date: Sun Feb 25 14:00:45 2018 +0100 Merge branch 'master' of github.com:geany/geany commit e001518dcdb9e70512689a36991646fb7980ad28 Author: Frank Lanitz Date: Sun Feb 25 14:00:35 2018 +0100 Add last minute update of Italian translation NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1bc12273724faa89e964cc03043a37c26de7d340 Author: Giuseppe Date: Sun Feb 25 12:59:41 2018 +0000 updated it.po for 1.33 (#1783) po/it.po | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit b1ef8f0ccf7b68aeef428752c98c4a29e8c1e0cd Author: Enrico Tröger Date: Sun Feb 25 13:55:59 2018 +0100 Set release date doc/geany.1.in | 2 +- doc/geany.txt | 4 ++-- geany_private.rc | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit d61b2b9c169673a9947dede55350c9ca9c558503 Author: Enrico Tröger Date: Sun Feb 25 13:43:50 2018 +0100 Update NEWS for 1.33 NEWS | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) commit 7d2e6182110a24b505c732f221dd79415f174024 Author: elextr Date: Sun Feb 25 18:03:50 2018 +1000 Mention GTK 3 for the first time (#1780) * Mention GTK 3 for the first time in HACKING and say how to select. HACKING | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit f50e36efb67f41b54635cad5d6a02a9a6dad4fd3 Author: Frank Lanitz Date: Sat Feb 24 17:32:10 2018 +0100 Update NEWS with recent translations NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 68090b9460db763cd1f9cf4a0fc9755929bac864 Author: Frank Lanitz Date: Sat Feb 24 17:31:53 2018 +0100 Update of Greek translation po/el.po | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) commit d0ecf3c4d54760d4d4c2518baf2c437eeaed4b03 Author: agdo <34210256+agdo@users.noreply.github.com> Date: Mon Feb 19 20:13:11 2018 +0300 Updated tr.po - Fixed some misspellings (#1775) Fixed misspellings po/tr.po | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit e5accd636412169b2997cf5e992ba43a676db603 Author: 柳东原 LIU Dongyuan Date: Mon Feb 19 01:39:13 2018 +0800 Update zh_CN.po (#1773) po/zh_CN.po | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit fd1d35f1787eb4c0a1a89c7d208da479f4844c4d Author: Frank Lanitz Date: Sun Feb 18 10:33:24 2018 +0100 Update of Spanish translation NEWS | 2 +- po/es.po | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) commit d109311d817a519fc912bf96cb73f8d7be702e76 Author: Frank Lanitz Date: Sun Feb 18 10:11:22 2018 +0100 Update of Latvian translation NEWS | 2 +- po/lv.po | 263 ++++++++++++++++++++++++++++++++------------------------------- 2 files changed, 135 insertions(+), 130 deletions(-) commit 27fd8c25e43060d174ba1f4bad8bc3f485a53e29 Author: Colomban Wendling Date: Thu Feb 15 22:58:43 2018 -0600 Small update of the French translation po/fr.po | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit f4f6ea8816f0e86122f5fabc8ab436f0b7071873 Author: Frank Lanitz Date: Thu Feb 15 21:25:14 2018 +0100 Update NEWS for 1.33 with updated trnaslation for now NEWS | 3 +++ 1 file changed, 3 insertions(+) commit d94b4b8402db815ef17d425b36a77b73bd5252a6 Author: Frank Lanitz Date: Thu Feb 15 21:23:16 2018 +0100 Update of Portuguese translation po/pt.po | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 58aa099c3e17e51b5629e3d5455cfbd287708796 Author: Abel Serrano Juste Date: Wed Feb 14 07:46:38 2018 +0100 Update of Spanish translation (#1771) po/es.po | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 69dd8298c2159ffc20290ed07e1e30d287feb44a Author: Andrej Herceg Date: Tue Feb 13 18:52:39 2018 +0100 Update of Slovak translation (#1769) po/sk.po | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 8076b0d56798d293aea2b5bc678896d11cee1ce3 Author: Frank Lanitz Date: Sun Feb 11 17:28:16 2018 +0100 Make po files update for string freeze of Geany 1.33 po/ar.po | 227 ++++++++++++++++++++++++++++--------------------------- po/ast.po | 227 ++++++++++++++++++++++++++++--------------------------- po/be.po | 227 ++++++++++++++++++++++++++++--------------------------- po/bg.po | 227 ++++++++++++++++++++++++++++--------------------------- po/ca.po | 227 ++++++++++++++++++++++++++++--------------------------- po/cs.po | 227 ++++++++++++++++++++++++++++--------------------------- po/el.po | 167 ++++++++++++++++++++-------------------- po/en_GB.po | 227 ++++++++++++++++++++++++++++--------------------------- po/es.po | 167 ++++++++++++++++++++-------------------- po/et.po | 227 ++++++++++++++++++++++++++++--------------------------- po/eu.po | 226 +++++++++++++++++++++++++++--------------------------- po/fa.po | 227 ++++++++++++++++++++++++++++--------------------------- po/fi.po | 227 ++++++++++++++++++++++++++++--------------------------- po/fr.po | 227 ++++++++++++++++++++++++++++--------------------------- po/gl.po | 227 ++++++++++++++++++++++++++++--------------------------- po/he.po | 227 ++++++++++++++++++++++++++++--------------------------- po/hi.po | 226 +++++++++++++++++++++++++++--------------------------- po/hu.po | 227 ++++++++++++++++++++++++++++--------------------------- po/id.po | 227 ++++++++++++++++++++++++++++--------------------------- po/it.po | 227 ++++++++++++++++++++++++++++--------------------------- po/ja.po | 227 ++++++++++++++++++++++++++++--------------------------- po/kk.po | 227 ++++++++++++++++++++++++++++--------------------------- po/ko.po | 227 ++++++++++++++++++++++++++++--------------------------- po/lb.po | 227 ++++++++++++++++++++++++++++--------------------------- po/lt.po | 227 ++++++++++++++++++++++++++++--------------------------- po/mn.po | 227 ++++++++++++++++++++++++++++--------------------------- po/nl.po | 167 ++++++++++++++++++++-------------------- po/nn.po | 226 +++++++++++++++++++++++++++--------------------------- po/pl.po | 248 +++++++++++++++++++++++++++++++----------------------------- po/pt.po | 167 ++++++++++++++++++++-------------------- po/pt_BR.po | 227 ++++++++++++++++++++++++++++--------------------------- po/ro.po | 227 ++++++++++++++++++++++++++++--------------------------- po/ru.po | 227 ++++++++++++++++++++++++++++--------------------------- po/sk.po | 227 ++++++++++++++++++++++++++++--------------------------- po/sl.po | 227 ++++++++++++++++++++++++++++--------------------------- po/sr.po | 227 ++++++++++++++++++++++++++++--------------------------- po/sv.po | 227 ++++++++++++++++++++++++++++--------------------------- po/tr.po | 227 ++++++++++++++++++++++++++++--------------------------- po/uk.po | 227 ++++++++++++++++++++++++++++--------------------------- po/vi.po | 227 ++++++++++++++++++++++++++++--------------------------- po/zh_CN.po | 227 ++++++++++++++++++++++++++++--------------------------- po/zh_TW.po | 227 ++++++++++++++++++++++++++++--------------------------- 42 files changed, 4760 insertions(+), 4552 deletions(-) commit cb84d1b877b9266ca6bf63d96003d3fd8e48b3f2 Author: Skif-off Date: Tue Feb 6 01:37:52 2018 +0400 Small update of Russian translation (fix fuzzy-string and other) (#1761) po/ru.po | 55 +++++++++++++++++++++++-------------------------------- 1 file changed, 23 insertions(+), 32 deletions(-) commit 16020ddc6cd32a3aa121b89edc8aeb6a45e78775 Author: Matthew Brush Date: Thu Sep 21 17:35:39 2017 -0700 Add cast to `GtkWidget*` to match previous behaviour This fixes minor problem which affected C++ plugins since 3e649dddef93723ebc2487d30023fc5f62d894ca where they would have to add a the cast themselves. src/gtkcompat.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c3c1921c16c58e791ed6a3b9e1924537da4302cd Author: Frank Lanitz Date: Thu Jan 18 23:35:35 2018 +0100 Small update of German translation po/de.po | 246 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 126 insertions(+), 120 deletions(-) commit 65097208df76439f0f059bafad5945624131475b Author: elextr Date: Sat Jan 13 15:03:22 2018 +1000 TravisCI: Remove requirement to fail build on aggregate return (#1740) Returning large aggregates as values is a potential performance problem, but preventing all aggregate returns is inappropriate because: 1. returning small aggregates that are mostly handled as complete objects as return values often makes code clearer. 2. Modern (well not so modern actually) ABIs allow for small aggregates to be returned in registers, so forcing all returns to memory is actually likely to be slower. 3. if code review does not notice a large aggregate return and nobody notices a performance issue then it doesn't matter .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cc035ab99db99996d6667957a1a15cc93a555f2d Merge: 662257417 681c13841 Author: Matthew Brush Date: Fri Jan 12 14:07:49 2018 -0800 Merge branch 'gcc-warnings' commit 6622574172a23993c19b3ce02e5190f252f01faf Author: Matthew Brush Date: Fri Jan 12 13:52:32 2018 -0800 Fix double context menu in Terminal tab This was introduced in 1f71ccd because the VTE widget's existing button-press handler didn't return `TRUE` and so the event propogated up to the notebook showing both of their context menus. src/vte.c | 1 + 1 file changed, 1 insertion(+) commit 7e1ab31c18ab977f1756c7afa3eeb4061b9eb09e Author: Matthew Brush Date: Fri Jan 12 13:45:38 2018 -0800 Return GdkColor via out parameter rather than return value For some reason the TravisCI build has `-Waggregate-return` enabled as an error even though it's completely valid code. Also constify the input `color_name` argument to `load_color` function. src/msgwindow.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) commit 6b973bc70b6118c1d904d6d21626843b5e70beaa Author: Matthew Brush Date: Fri Jan 12 12:46:50 2018 -0800 Theme improvements (#1382) * Improve GTK+3 theme loading - Merge geany-3.0.css into geany.css - Load geany-3.20.css to override if runtime version dictates - Load geany.css from app->configdir if it exists. * Add initial documentation for GTK+ CSS theming * Add geany.css file to the `Tools->Configuration Files` menu Also mark such config files as changed if they don't already exist to force the user to save or discard any newly created config files. * Allow customizing message window using GTK+ themes * Improve GTK+3 CSS docs a bit State which classes are meant to be overridden by themes. * Go back to conditionally loading geany-3.0.css It can't be merged into geany.css since GTK+ CSS parser doesn't ignore invalid properties when prefixed with vendor extension (ie. -Gtk). * Don't mark unedited config files as changed They probably should be marked as changed since they don't exist on disk yet, but for the time being leave it how it was. * Fix misuse of CSS ID vs class in manual * Minor colour value tweaks Based on feedback from @b4n data/geany-3.0.css | 2 -- data/geany-3.20.css | 2 -- data/geany.css | 11 ++++++ data/geany.gtkrc | 17 +++++++++ doc/geany.txt | 21 +++++++++++ src/msgwindow.c | 53 +++++++++++++++++++++++----- src/ui_utils.c | 100 +++++++++++++++++++++++++++++++++++----------------- 7 files changed, 162 insertions(+), 44 deletions(-) commit 385fff7b270e1b9e4c43c01d7636158fd5cd294a Merge: 1f71ccd40 01b0fc6a5 Author: Colomban Wendling Date: Thu Jan 11 22:18:16 2018 -0800 Merge pull request #1642 from LarsGit223/NoActionCmd Show status message on attempt to execute empty context action. commit 01b0fc6a536441f88ec16c5371980507585472e8 Author: LarsDW223 Date: Sat Oct 14 10:11:47 2017 +0200 Show status message on attempt to execute empty context action. If a user selects "context action" from the context menu then now the status message 'No context action set.' will be shown. Closes #1641. src/callbacks.c | 4 ++++ 1 file changed, 4 insertions(+) commit 1f71ccd40ac4e6754d7609bec7f81773fa181146 Author: Matthew Brush Date: Thu Dec 21 17:40:57 2017 -0800 Enable popup menu on sidebar and message window notebooks (#1726) data/geany.glade | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 681c13841a7d6a3a91b60645d86012b10b820c59 Author: Matthew Brush Date: Wed Dec 20 18:59:16 2017 -0800 Work around potentially uninitialized variable warning Simply zero-initializes the variable. Requires -O3 optimization level to trigger. src/document.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c61bc6784b45b50773bc0e1d1f83b09aed58ede6 Author: Matthew Brush Date: Wed Dec 20 18:46:52 2017 -0800 Work around a `-Wformat-overflow` warning Requires -O3 optimization level to trigger the warning. Discussed in and fixes #1683 src/build.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fce58626b1605981655090fcea06824f29aaa823 Author: Matthew Brush Date: Wed Dec 20 17:18:03 2017 -0800 Add 'fall through' comments and fix actual bug To document when switch cases fall through intentionally, hiding the warning by GCC at the same time. Moved the break statement outside of the if conditional in keybindings.c as I believe this was an actual bug found by GCC's warnings. src/highlighting.c | 3 +++ src/keybindings.c | 2 +- src/search.c | 1 + src/tools.c | 1 + 4 files changed, 6 insertions(+), 1 deletion(-) commit 1b5deea61208ab8eed5e8189ec823e5ee054f17d Author: Matthew Brush Date: Wed Dec 20 17:02:06 2017 -0800 Fix comparison between signed and unsigned integers Where an enumerator was treated as signed. src/encodings.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 36f44741b5daa67f08c4251c147457b95545ef14 Author: Matthew Brush Date: Wed Dec 20 16:56:47 2017 -0800 Remove some unused variables These were introduced in #1470 and a fix was also provided in #1554. src/editor.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 43122ea7d95808b04e44d03a4650de0d28d04d97 Author: Matthew Brush Date: Wed Dec 20 16:47:00 2017 -0800 Add more 'fall through' comments for switch cases TODO: make sure these are actually meant to fall-through. ctags/parsers/perl.c | 2 ++ ctags/parsers/r.c | 1 + 2 files changed, 3 insertions(+) commit bf28794635735d97ba60d458f964bdb46972f9e5 Author: Matthew Brush Date: Wed Dec 20 16:41:39 2017 -0800 Adjust 'fall through' comments to be recognized by GCC As per the documentation[0], GCC will silence these warnings when the comments are formatted correctly. [0]: https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html ctags/parsers/fortran.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 243d55fa58947da80b4cf08ac4be63413281d8de Author: Matthew Brush Date: Wed Dec 20 16:36:46 2017 -0800 Fix missing initializer for field warnings in parsers ctags/parsers/actionscript.c | 20 ++++++++++---------- ctags/parsers/cobol.c | 12 ++++++------ ctags/parsers/html.c | 10 +++++----- 3 files changed, 21 insertions(+), 21 deletions(-) commit 81144dc4011e30870d652402b1c8852fb44af85e Author: Matthew Brush Date: Wed Dec 20 15:46:35 2017 -0800 Fix missing initializer for field warnings This is basically a false-positive by GCC since static variables are unambiguously zeroed-out per the language standard, but the workaround is simple enough. ctags/main/xtag.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit dbd0573dd6a5175ec9b536c4053bb66caac0f665 Author: Matthew Brush Date: Wed Dec 20 15:35:52 2017 -0800 Fix comparison between signed and unsigned integers ctags/main/parse.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 63850b3eb7302b6ce1c4223581be7687dc231a11 Author: Matthew Brush Date: Wed Dec 20 15:34:44 2017 -0800 Fix pointer and character constant comparison ctags/main/parse.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a46d8752dce953c0fcd1bf02136e3140ced9d6f4 Merge: 69a537dbd 7d53e1c79 Author: Colomban Wendling Date: Wed Dec 20 16:35:11 2017 -0800 Merge pull request #1650 from b4n/project-indent-settings-note Add a note for applying the indent settings in the project preferences commit 69a537dbd05d9bb25dfc4a63badfa1aa4cf94e92 Merge: 60b93105c 05fce1a2e Author: Colomban Wendling Date: Wed Dec 20 16:34:41 2017 -0800 Merge pull request #1598 from b4n/symbols/more-robust-hierarchy Fix the symbols tree hierarchy when several tags have the same name commit 60b93105cbadd911574a63e7c79087eb897dbf02 Author: Piotr Orzechowski Date: Tue Dec 19 09:12:35 2017 +0100 Fix Polish assembly translation (#1722) po/pl.po | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 22fd1cb06bbe1beddd514d9339b803602f4f7f21 Author: Piotr Orzechowski Date: Sun Dec 17 10:52:31 2017 +0100 Update Polish translation (#1721) po/pl.po | 139 ++++++++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 92 insertions(+), 47 deletions(-) commit 39b894c3d8c47faca2d10fd600c5a08fe8eabe55 Author: Matthew Brush Date: Mon Dec 4 04:50:00 2017 -0800 Simplify confusing plugin howto code example doc/plugins.dox | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit f5fe073586e8c6dc9b180a5a73d481b508f51f69 Merge: 4a304e983 419550ab0 Author: Colomban Wendling Date: Sun Dec 3 23:12:18 2017 -0800 Merge pull request #1706 from b4n/document-items-tooltip Add a tooltip showing the full path on menu items representing documents commit 4a304e983c63cd4fc5c8c621e9159bc7ef4cd956 Author: Colomban Wendling Date: Sun Dec 3 18:22:52 2017 -0800 Fix critical when right-clicking on the document notebook outside a tab src/notebook.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 419550ab0567c769d35a807397284ba1434a3040 Author: Colomban Wendling Date: Sun Dec 3 18:05:00 2017 -0800 Add a tooltip showing the full path on menu items representing documents src/ui_utils.c | 1 + 1 file changed, 1 insertion(+) commit bd22fef0605d25b0c74a36cf8266edae40a55fce Author: Colomban Wendling Date: Sun Dec 3 10:53:30 2017 -0800 CSS: Update Grid properties See: * https://www.w3.org/TR/css3-grid/#property-index * https://drafts.csswg.org/css-grid/#property-index * https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout#CSS_properties Closes #1705. data/filedefs/filetypes.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ca16aff4c5cb73ccb6b1c9db58389a33ad027e4f Author: Enrico Tröger Date: Sun Nov 19 13:57:22 2017 +0100 Post release version bump Say hello to Geany 1.33 "Gorgon"! NEWS | 3 +++ configure.ac | 2 +- doc/geany.txt | 2 +- geany.exe.manifest | 2 +- geany_private.rc | 4 ++-- src/geany.h | 2 +- 6 files changed, 9 insertions(+), 6 deletions(-) commit 80f33c8071ea26918652ff375b64f1149df1e2c6 Author: Enrico Tröger Date: Sun Nov 19 12:44:52 2017 +0100 Remove spurious colon NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 918b5f07f52058af1ed9e93ba58c77d33cc6e559 Author: Enrico Tröger Date: Sun Nov 19 11:46:31 2017 +0100 Set release date doc/geany.1.in | 2 +- doc/geany.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 525952cebf08b3f080819b019a77efc258ad5000 Author: Enrico Tröger Date: Sun Nov 19 11:44:04 2017 +0100 Update NEWS for 1.32 NEWS | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) commit 26985624ea00737ba116a4086e128ee7c8e1d5e7 Author: Frank Lanitz Date: Thu Nov 16 23:04:04 2017 +0100 Update of Greek translation NEWS | 3 +- po/el.po | 172 +++++++++++++++++++++++++++++---------------------------------- 2 files changed, 82 insertions(+), 93 deletions(-) commit 4a5ccf748ac2ce13a6c71cc41b354c33b6abd715 Author: Colomban Wendling Date: Mon Aug 14 21:59:16 2017 -0700 Fix backward compatibility of the geometry saving setting Keep the previous behavior if the user had disabled saving window position and geometry, by using the existing setting as default for the new one. src/keyfile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 667d0b51420844ba8ea82659684bffedd7c7ce3a Author: Colomban Wendling Date: Mon Aug 14 21:58:58 2017 -0700 Fix indentation src/keyfile.c | 8 ++++---- src/prefs.c | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) commit b0d3b5ed0faadb34edb68bfd7715ffd5d9e0878a Author: LarsGit223 Date: Tue Nov 14 23:02:00 2017 +0100 Close "Deleted from Disk" Infobar on Reload. (#1628) Cancel 'MSG_TYPE_RESAVE' info bar if still open in function 'document_reload_force'. This closes the "Deleted from Disk" message if the user clicks on the reload button. Fixes #1330. src/document.c | 4 ++++ 1 file changed, 4 insertions(+) commit 66abc600f38fec83b5bc644eee80e0e33f951c03 Author: Frank Lanitz Date: Mon Nov 13 14:12:29 2017 +0100 Update of Spanish translation NEWS | 2 +- po/es.po | 111 ++++++++++++++++++++++++++++----------------------------------- 2 files changed, 51 insertions(+), 62 deletions(-) commit a14adc78c9be246e3b0f06170db159325606ee5a Author: Enrico Tröger Date: Mon Nov 13 10:25:14 2017 +0100 Reword two phrases in German translation (#1686) Including typo fixes. po/de.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit dd58ab6f49e8b382d9278c3ebc533f08b8aec84e Author: elextr Date: Thu Nov 9 21:54:36 2017 +1000 Make Python comment hash space (#1682) data/filedefs/filetypes.python | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b54a117de1026879cdb779884a1cfbbdd1d24d25 Author: Giuseppe Date: Thu Nov 9 09:01:45 2017 +0000 updated it.po (#1680) * updated it.po * Small update of metadata on Italian translation po/it.po | 56 +++++++++++++++++++++++--------------------------------- 1 file changed, 23 insertions(+), 33 deletions(-) commit f770ff3df960514af113469a3a70722e99800519 Author: Frank Lanitz Date: Tue Nov 7 12:49:12 2017 +0100 Update NEWS to reflect latest translations updates NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fdaabd4720a73e2ef38cf1da3ac157006d81a856 Author: gymka Date: Tue Nov 7 13:47:00 2017 +0200 updated lithuanian trasnlation (#1676) * updated lithuanian translation * Revert "updated lithuanian translation" This reverts commit e45985679464ed2e495bef6bf16383a472a237c4. * updated lithuanian translation po/lt.po | 46 ++++++++++++++++++---------------------------- 1 file changed, 18 insertions(+), 28 deletions(-) commit d1cdfe097173cbe6cd389029271075a355a679c0 Author: 柳东原 LIU Dongyuan Date: Tue Nov 7 19:45:29 2017 +0800 Update zh_CN.po (#1677) * Update zh_CN.po * Update metadata po/zh_CN.po | 77 ++++++++++++++++++++++++++----------------------------------- 1 file changed, 33 insertions(+), 44 deletions(-) commit 54a98688fbf5b5841c3e4d8dcf3e46bff59131f3 Author: Peter C. S. Scholtens Date: Tue Nov 7 10:20:23 2017 +0100 Update of Dutch translation. (#1674) po/nl.po | 126 ++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 59 insertions(+), 67 deletions(-) commit 687813b5240a3667ccb34997f25e1848bb9b7dbb Author: Frank Lanitz Date: Mon Nov 6 21:28:48 2017 +0100 Sync NEWS-file with update translations for 1.32 NEWS | 3 +++ 1 file changed, 3 insertions(+) commit bc39afa4112827db0c27b8a10638a7b8a11d66e4 Author: Frank Lanitz Date: Mon Nov 6 21:25:52 2017 +0100 Update of Portuguese translation po/pt.po | 608 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 301 insertions(+), 307 deletions(-) commit 26f8539c1017da4e25c9a7c0de6fdcd645fbdb46 Author: Frank Lanitz Date: Mon Nov 6 21:22:20 2017 +0100 Update of Catalan translation po/ca.po | 55 +++++++++++++++++++++++-------------------------------- 1 file changed, 23 insertions(+), 32 deletions(-) commit e7b4c3406c4b0dd94fba8c3a466ef03ab0a9854b Author: Frank Lanitz Date: Mon Nov 6 21:20:21 2017 +0100 Small update of Italian translation This is based upon a suggestion by Andrea on i18n mailing list po/it.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 393cdb301a38ba0a496e85934c35d07a62915cb4 Author: Andrej Herceg Date: Mon Nov 6 20:59:09 2017 +0100 Update of Slovak translation (#1673) po/sk.po | 51 ++++++++++++++++++++------------------------------- 1 file changed, 20 insertions(+), 31 deletions(-) commit 2c8f754988bb597bcc6d3493f58d55c8b36c0c9f Merge: a8512a2a1 cb669e2a0 Author: Enrico Tröger Date: Sun Nov 5 23:02:24 2017 +0100 Merge pull request #1667 from eht16/issue1018_win_execute_builtin_path Use utils_get_uri_file_prefix() as file URI prefix commit a8512a2a1fc7ab4a155672234d160baf831330a0 Author: Frank Lanitz Date: Sun Nov 5 20:33:48 2017 +0100 Update of German translation po/de.po | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) commit 47cfe3e2709becb7db7f9a0c0d8bd729a532748b Author: Frank Lanitz Date: Sun Nov 5 14:42:09 2017 +0100 Update po-files for string freeze of Geany 1.32 po/ar.po | 1441 ++++++++++++++++++++++++++++++---------------------------- po/ast.po | 1450 ++++++++++++++++++++++++++++++---------------------------- po/be.po | 1449 ++++++++++++++++++++++++++++++---------------------------- po/bg.po | 1448 ++++++++++++++++++++++++++++++---------------------------- po/ca.po | 1449 ++++++++++++++++++++++++++++++---------------------------- po/cs.po | 1449 ++++++++++++++++++++++++++++++---------------------------- po/de.po | 392 ++++++++-------- po/el.po | 1451 ++++++++++++++++++++++++++++++---------------------------- po/en_GB.po | 1449 ++++++++++++++++++++++++++++++---------------------------- po/es.po | 1450 ++++++++++++++++++++++++++++++---------------------------- po/et.po | 1441 ++++++++++++++++++++++++++++++---------------------------- po/eu.po | 1445 ++++++++++++++++++++++++++++++---------------------------- po/fa.po | 1449 ++++++++++++++++++++++++++++++---------------------------- po/fi.po | 1449 ++++++++++++++++++++++++++++++---------------------------- po/fr.po | 2 +- po/gl.po | 1449 ++++++++++++++++++++++++++++++---------------------------- po/he.po | 1449 ++++++++++++++++++++++++++++++---------------------------- po/hi.po | 1435 ++++++++++++++++++++++++++++++---------------------------- po/hu.po | 1449 ++++++++++++++++++++++++++++++---------------------------- po/id.po | 1450 ++++++++++++++++++++++++++++++---------------------------- po/it.po | 1450 ++++++++++++++++++++++++++++++---------------------------- po/ja.po | 1453 ++++++++++++++++++++++++++++++----------------------------- po/kk.po | 1449 ++++++++++++++++++++++++++++++---------------------------- po/ko.po | 1448 ++++++++++++++++++++++++++++++---------------------------- po/lb.po | 1450 ++++++++++++++++++++++++++++++---------------------------- po/lt.po | 1449 ++++++++++++++++++++++++++++++---------------------------- po/mn.po | 1440 ++++++++++++++++++++++++++++++---------------------------- po/nl.po | 1450 ++++++++++++++++++++++++++++++---------------------------- po/nn.po | 1435 ++++++++++++++++++++++++++++++---------------------------- po/pl.po | 1451 ++++++++++++++++++++++++++++++---------------------------- po/pt.po | 1449 ++++++++++++++++++++++++++++++---------------------------- po/pt_BR.po | 1449 ++++++++++++++++++++++++++++++---------------------------- po/ro.po | 1446 ++++++++++++++++++++++++++++++---------------------------- po/ru.po | 1449 ++++++++++++++++++++++++++++++---------------------------- po/sk.po | 1449 ++++++++++++++++++++++++++++++---------------------------- po/sl.po | 1450 ++++++++++++++++++++++++++++++---------------------------- po/sr.po | 1449 ++++++++++++++++++++++++++++++---------------------------- po/sv.po | 404 +++++++++-------- po/tr.po | 1448 ++++++++++++++++++++++++++++++---------------------------- po/uk.po | 1448 ++++++++++++++++++++++++++++++---------------------------- po/vi.po | 1448 ++++++++++++++++++++++++++++++---------------------------- po/zh_CN.po | 1449 ++++++++++++++++++++++++++++++---------------------------- po/zh_TW.po | 1449 ++++++++++++++++++++++++++++++---------------------------- 43 files changed, 30343 insertions(+), 28365 deletions(-) commit b305936983b9d41a2091a7aa927bcbb0d3f082c6 Author: Frank Lanitz Date: Sat Nov 4 22:20:53 2017 +0100 Update of Latvian translation po/lv.po | 426 ++++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 227 insertions(+), 199 deletions(-) commit cb669e2a019eb5cb9a62e39c886ce928350ba699 Author: Enrico Tröger Date: Sun Oct 29 16:20:53 2017 +0100 Use utils_get_uri_file_prefix() as file URI prefix utils_get_uri_file_prefix() gives "file:///" for Windows and "file://" for all other platforms. So we don't need "g_path_skip_root()" any longer. Using "g_path_skip_root()" removed the drive letter from the URI which worked only as long as the file to be opened was on drive C: (or whatever drive Windows considers as the default). But since local file URIs including the drive letter are supported on Windows, we should use it, so opening files on other drives works as well. Fixes #1018. src/build.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit a1991c4d379cc76917dd8f85e68fcc9b0b3aa301 Author: Enrico Tröger Date: Sun Oct 29 16:16:17 2017 +0100 Use utility function to get a file URI prefix On Windows, we need "file:///" for local file URIs while on all other platforms the prefix is "file://" for absolute filenames. The utility function saves us from replicating the platform specific logic. src/utils.c | 22 +++++++++++++++------- src/utils.h | 1 + 2 files changed, 16 insertions(+), 7 deletions(-) commit fca450e10b8631641731e8cb01ad89f23873f211 Author: Jean-Philippe Moal Date: Wed Oct 25 09:14:34 2017 +0200 Update of French translation (#1653) po/fr.po | 1484 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 761 insertions(+), 723 deletions(-) commit 7d53e1c790dfa58cc59078acc8fad089a3f03a6a Author: Colomban Wendling Date: Mon Oct 16 18:49:38 2017 -0700 Add a note for applying the indent settings in the project preferences Add the same note about applying indentation settings on currently open documents in the project preferences as there already is in the main preferences dialog. data/geany.glade | 54 +++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 37 insertions(+), 17 deletions(-) commit 958974338d4a8a64736101c7ac8f1896da3e4a7b Author: Colomban Wendling Date: Mon Oct 16 00:33:01 2017 -0700 Remove redundant and erroneous file patterns from Doxygen doc/Doxyfile.in | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 960a0d5aae9c4b8697b33f84b26cff67c357429d Author: Matthew Brush Date: Sat Oct 14 22:52:45 2017 -0700 Improve CLI argument help src/libmain.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 9185395c40c68b87cc462fe8ac5bdc95e069ea93 Merge: deff041a6 83e8ae173 Author: Colomban Wendling Date: Thu Oct 12 15:14:11 2017 -0700 Merge pull request #1636 from techee/kb_osx_fix Make sure GDK_MOD2_MASK is cleared when getting modifiers. commit deff041a66868cb566c63baa1398a269ac1c58cc Author: Frank Lanitz Date: Thu Oct 12 23:29:51 2017 +0200 Make translation of a string consistent in German translation Fixes #390 po/de.po | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 83e8ae1737910d9be8520ac9246cc8f77703040d Author: Jiří Techet Date: Thu Oct 12 19:27:56 2017 +0200 Make sure GDK_MOD2_MASK is cleared when getting modifiers gtk_accelerator_get_default_mod_mask() behaves differently on OS X under GTK 3 when compared to GTK 2. On GTK 2 it used to clear the GDK_MOD2_MASK bit while on GTK 3 it's preserved. We need to clear it ourselves otherwise e.g. S leads to S and none of the keybindings work under GTK 3. src/keybindings.c | 3 +++ 1 file changed, 3 insertions(+) commit 3fb94c235c91a980a7fd7aa159f373b457833148 Author: Jiří Techet Date: Sat Oct 7 02:48:47 2017 +0200 Use non-symlinked VTE libraries on macOS (#1625) * Try non-symlinked VTE libraries on macOS before the symlinked ones Plugins using VTE such as multiterm or debugger are linked against the non-symlinked version of the library like libvte.9.dylib and not libvte.dylib. When a bundle is created, all symlinks are replaced by a copy of the symlinked file. This means there are both libvte.dylib and libvte.9.dylib in the bundle both containing the same code. When Geany loads libvte.dylib and plugins load libvte.9.dylib the same code gets loaded twice and when the same type gets registered by GTK, it fails and the whole application freezes. This problem doesn't exist on linux or when running from the command line on macOS because the operating system detects it's the same library because of the symlink and it's loaded only once. Loading the same library as the one used by plugins fixes the issue with macOS bundle. The original symlinked name is still used as a fallback. The patch also adds #ifdef __APPLE__ around the Apple-specific library names which also prevents unnecessary retries on other platforms. Loading *.so libraries is still kept as a fallback on Apple as these are legal too and could in theory be used on OS X as well. * Try loading newer VTE versions before older ones on GTK 2 src/vte.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit b4415b16dacff0d79ff15747dfdbf87b2a282848 Author: Frank Lanitz Date: Fri Oct 6 15:52:33 2017 +0200 Update of Swedish translation po/sv.po | 1295 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 654 insertions(+), 641 deletions(-) commit 0e26c726e3bc54f1e6e8c9f20058a8368b10ee3f Author: Frank Lanitz Date: Tue Oct 3 10:21:30 2017 +0200 Update of German translation po/de.po | 1118 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 565 insertions(+), 553 deletions(-) commit 05fce1a2ee4b3d51ad4b1469016372ffb3633e19 Author: Colomban Wendling Date: Sat Sep 23 12:53:59 2017 -0700 Move some functions from tm_tag to tm_parser namespace Those don't actually work on tags, so it makes more sense to have them in the parser namespace. HACKING | 6 +-- src/editor.c | 2 +- src/symbols.c | 10 ++--- src/tagmanager/tm_parser.c | 88 +++++++++++++++++++++++++++++++++++++++++++ src/tagmanager/tm_parser.h | 6 +++ src/tagmanager/tm_tag.c | 88 +------------------------------------------ src/tagmanager/tm_tag.h | 6 --- src/tagmanager/tm_workspace.c | 12 +++--- 8 files changed, 110 insertions(+), 108 deletions(-) commit 198a0cf2bac46942d1b379a98a20ccc04a9ef5aa Author: Colomban Wendling Date: Sat Sep 23 11:59:20 2017 -0700 Update a comment to better reflect the internal data changes src/symbols.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit fda8b97ea634877952acc86d58b75b25537486bb Author: Colomban Wendling Date: Sat Aug 19 17:17:48 2017 -0700 Keep the current tab when closing documents to the right of another tab src/notebook.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 87b7e3cf426c25343716c94fbdeacebde720435d Author: Frank Lanitz Date: Tue Sep 12 11:10:09 2017 +0200 Add Latvian translation po/lv.po | 6011 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 6011 insertions(+) commit b1e0d0948c48153ec11e6f4b6c5fa5012c87293d Author: Colomban Wendling Date: Fri Sep 1 23:57:42 2017 -0700 Fix a typo (#1597) po/ar.po | 2 +- po/ast.po | 2 +- po/be.po | 2 +- po/bg.po | 2 +- po/ca.po | 2 +- po/cs.po | 2 +- po/de.po | 2 +- po/el.po | 2 +- po/en_GB.po | 2 +- po/es.po | 2 +- po/et.po | 2 +- po/eu.po | 2 +- po/fa.po | 2 +- po/fi.po | 2 +- po/fr.po | 2 +- po/gl.po | 2 +- po/he.po | 2 +- po/hi.po | 2 +- po/hu.po | 2 +- po/id.po | 2 +- po/it.po | 2 +- po/ja.po | 2 +- po/kk.po | 2 +- po/ko.po | 2 +- po/lb.po | 2 +- po/lt.po | 2 +- po/mn.po | 2 +- po/nl.po | 2 +- po/nn.po | 2 +- po/pl.po | 2 +- po/pt.po | 2 +- po/pt_BR.po | 2 +- po/ro.po | 2 +- po/ru.po | 2 +- po/sk.po | 2 +- po/sl.po | 2 +- po/sr.po | 2 +- po/sv.po | 2 +- po/tr.po | 2 +- po/uk.po | 2 +- po/vi.po | 2 +- po/zh_CN.po | 2 +- po/zh_TW.po | 2 +- src/document.c | 2 +- 44 files changed, 44 insertions(+), 44 deletions(-) commit 6522332ba9d54da7d750b1f2d719b07af6e861cf Author: Colomban Wendling Date: Fri Sep 1 16:22:11 2017 -0700 Fix the symbols tree hierarchy when several tags have the same name Fix the symbols tree hierarchy by considering the whole scope when adding a tag, avoiding choosing the wrong parent when several tags have the same name. Until now, to avoid such misbehavior we only used to choose the parent candidate that appeared last (line-wise) before the child. It works in most typical situations as generally tag names are fairly unique, and children appear right after their parent. However, there are cases that are trickier and cannot be handled that way. In the following valid C++ snippet, it is impossible to know whether `function` should be listed under the namespace `A` or the class `A` without looking at its full scope: ```C++ namespace A { namespace B { class A { void method() {} }; }; void function() {} }; ``` And it is a real-world problem for some parsers like the JSON parser that generates numeric indices for array elements name, often leading to several possibly close duplicates. Additionally, to prevent trying to set a tag as its own parent, the code guarded against accepting a parent if the child had the same name, lading to incorrect hierarchy for `method` in cases like this: ```C++ namespace A { class A { void method() {} }; }; ``` So to fix this, consider the whole hierarchy of a tag for choosing its parent, when that information is available from the parser. Fixes #1583. HACKING | 6 +++- src/symbols.c | 78 ++++++++++++++++++++++++++----------------------- src/tagmanager/tm_tag.c | 41 ++++++++++++++++++++++++++ src/tagmanager/tm_tag.h | 2 ++ 4 files changed, 89 insertions(+), 38 deletions(-) commit 76c69a9bac4eeb11dc65483820b2b8a62c351b76 Author: Matthew Brush Date: Sun Feb 14 02:16:20 2016 -0800 Add GNU assembler extensions Closes #904 data/filetype_extensions.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0dc1e4c6d3129135b768f20b848c653e84c135ee Author: Frank Lanitz Date: Mon Aug 28 10:07:12 2017 +0200 Change wordorder on Russian translation to fit with actual meaning of button Closes #1589 po/ru.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f1b84c995bac5df2effa3d291a48533ec0aa43ac Author: LarsGit223 Date: Tue Aug 22 01:38:31 2017 +0200 Mention G_GNUC_UNUSED macro. (#1582) Mention G_GNUC_UNUSED as an alternative to `-Wno-unused-parameter`. HACKING | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 3ffc5773a032e9a741792981cca6733143a11f8a Author: Colomban Wendling Date: Sat Aug 19 17:16:21 2017 -0700 Mark a local function static src/notebook.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit adc22a453b546b05f507fd6522ea13f3a92943c2 Author: kloun Date: Tue Aug 8 07:40:58 2017 +0300 bash may not found in the system (#1574) exampe openbsd. tests/ctags/runner.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 44f96d08a8c4b171e637b8964fbf4e38c83040e6 Author: Matthew Brush Date: Sun Sep 11 07:07:26 2016 -0700 Mark tm_get_real_path with G_DEPRECATED_FOR This will allow the compiler to notify any callers that it's deprecated. The macro is guarded-out for when Geany is compiling so it won't cause warnings when tagmanager uses it internally and for the utils_ wrapper. src/tagmanager/tm_source_file.c | 2 +- src/tagmanager/tm_source_file.h | 6 +++++- src/utils.c | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) commit 4a60cdd12727f8f252a3e0d6921e26377ef84904 Author: Matthew Brush Date: Sun Sep 11 06:58:34 2016 -0700 Add utils_get_real_path() and use it This is a wrapper around tm_get_real_path() but is in a more suitable namespace/module. src/app.h | 2 +- src/document.c | 8 ++++---- src/libmain.c | 2 +- src/plugindata.h | 2 +- src/tagmanager/tm_source_file.c | 2 ++ src/utils.c | 29 ++++++++++++++++++++++++++++- src/utils.h | 1 + 7 files changed, 38 insertions(+), 8 deletions(-) commit 7261742f8169b19fd5ac7f10a0845a684287e2d9 Author: Matthew Brush Date: Sat Sep 17 18:45:50 2016 -0700 Allow plugins to get the data they set src/plugindata.h | 3 ++- src/pluginutils.c | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) commit a108f9162cc98e501e2458cd8b35c499b7f87384 Author: Matthew Brush Date: Wed Oct 5 09:27:34 2016 -0700 Re-enable SIGTERM handling Now that a new enough GLib is available the signal can be handled cleanly on the main loop using the GSource for Unix signals. This replaces the illegal SIGTERM handling that was disabled in fbb89f523af47b35e238678d348cfa98e56c760a. Closes #1255 src/libmain.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) commit fd38a49b55d7a4bfdb98069ac3bc839bf49d803b Author: Matthew Brush Date: Sat Oct 29 07:31:48 2016 -0700 Add note about data types to HACKING Closes #1282 HACKING | 5 +++++ 1 file changed, 5 insertions(+) commit 092f2a936af3d2973055d7d4125f19a4a6d8e5c1 Author: Matthew Brush Date: Sat Oct 29 05:38:53 2016 -0700 Fixups HACKING | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit ea217b7d4d9997e46a41f97d0da180639105d6ad Author: Matthew Brush Date: Sat Oct 29 04:52:48 2016 -0700 Update HACKING for best practices (C99) HACKING | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit a40823084e1615e04464f974f616794a7b3570da Author: Matthew Brush Date: Thu Jan 12 08:58:05 2017 -0800 Add "Close Documents to the Right" feature Similar to applications like Firefox and Chromium. src/notebook.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit 3e864317ba051512c102beb2a939caa4698515de Author: Jiří Techet Date: Mon Feb 20 16:17:17 2017 +0100 filebrowser: Don't change directory on project save This behavior might be unwanted when changing project settings which is unrelated to project base path and also fixes filebrowser behavior with the updated way project-save signal is emitted. The patch also handles the situation where "realized" is called after project-save is called and overrides file browser's path (which is something we don't want). plugins/filebrowser.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) commit e43c8d831445669bd94f960ff289bc1155668cd0 Author: Jiří Techet Date: Mon Feb 20 15:53:43 2017 +0100 Always emit the project-save signal when writing project file For some reason "project-save" isn't emitted when closing project - see write_config(FALSE) in project_close(). This means that in this case plugins cannot save their configuration into the config file. This doesn't even correspond to the documentation of the signal "Sent when a project is saved (happens when the project is created, the properties dialog is closed or Geany is exited)" as the signal isn't emitted when exiting Geany because at this point Geany closes the project. The comment seems to indicate that the reason is that "project-save" shouldn't be emitted when "project-close" is emitted but I don't see any reason why. Bump API so plugins can rely on the changed behavior. doc/pluginsignals.c | 5 +++-- src/project.c | 20 +++++++------------- 2 files changed, 10 insertions(+), 15 deletions(-) commit 180e1da427b4b23478360c720549c4c4e6ec92a7 Author: Thomas Martitz Date: Fri Aug 4 09:50:14 2017 +0200 api: the commits 745f424 and 169feae should have incremented the API version, do so now Increment one time for both, and fix the corresponding doc comments. The comment for keybindings_load_keyfile() is reflowed to split into brief/detail sections properly. src/keybindings.c | 17 +++++++++-------- src/plugindata.h | 2 +- src/tagmanager/tm_tag.c | 2 +- 3 files changed, 11 insertions(+), 10 deletions(-) commit 38147b2590f6d4e695c3637dd360631a1b7cc7f5 Author: delt Date: Fri Mar 31 00:24:52 2017 -0400 Added an option to save/reload either window position or size, but optionally not both. data/geany.glade | 24 ++++++++++++++++++++---- src/keyfile.c | 8 +++++--- src/libmain.c | 32 ++++++++++++++++++++------------ src/prefs.c | 14 ++++++++++---- src/prefs.h | 1 + 5 files changed, 56 insertions(+), 23 deletions(-) commit 745f424b7752e1f181e0ef82b1d00ed99d6c69a7 Author: Jiří Techet Date: Wed Mar 15 21:32:06 2017 +0100 Export keybindings_load_keyfile() for plugins This allows plugins to reload keybindings later during their execution. For more info see the comment in the commit. Closes #1430 src/keybindings.c | 9 +++++++++ src/keybindings.h | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) commit 169feae90e72d54049c7765c6975fa9a009268aa Author: Thomas Martitz Date: Mon Apr 10 08:18:08 2017 +0200 api: export tm_tag_get_type() This indicates that TMTag is GBoxed-derived, and can be copied/ref'd. This helps plugins that must store a tag pointer for later usage while the tagmanager might let it go in the meantime (can happen quickly if the user comments a function out when starting a doxygen-comment). Closes #1465 doc/Doxyfile.in | 1 + src/tagmanager/tm_tag.c | 6 +++++- src/tagmanager/tm_tag.h | 5 ++--- 3 files changed, 8 insertions(+), 4 deletions(-) commit bc7e64f78f33ef867c9c1dfc2dc3ab76fd962ed1 Author: Matthew Brush Date: Thu Aug 3 22:20:40 2017 -0700 Fix message formatting string src/sciwrappers.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) commit f90ebafe563280662c7e7553f1c80e9d8131a594 Author: Matthew Brush Date: Thu Aug 3 19:57:18 2017 -0700 Improve Scintilla status messages output src/sciwrappers.c | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) commit 6d663cbb0ee2d2da9d65be4f704044cafa9bbe42 Author: Matthew Brush Date: Thu Aug 3 19:19:08 2017 -0700 Change all scintilla_send_message calls to use SSM macro src/callbacks.c | 2 +- src/document.c | 2 +- src/editor.c | 6 +++--- src/keybindings.c | 8 ++++++-- src/printing.c | 14 +++++++------- src/search.c | 4 ++-- src/symbols.c | 10 +++++----- 7 files changed, 25 insertions(+), 21 deletions(-) commit 6c6eccd994dd4af68afe32b6b606b935e7328d2d Author: Matthew Brush Date: Thu Aug 3 19:11:58 2017 -0700 Check Scintilla status in debug builds In the future, this could be moved to release-mode runtime errors which try and pop-up a dialog message and/or recover gracefully. src/sciwrappers.c | 26 ++++++++++++++++++++++++++ src/sciwrappers.h | 13 +++++++++---- 2 files changed, 35 insertions(+), 4 deletions(-) commit 371810181dcdd0752d4b299073c6deef6204a437 Author: Matthew Brush Date: Thu Aug 3 18:34:31 2017 -0700 Remove redundant SSM macros src/editor.c | 4 ---- src/highlighting.c | 4 ---- src/sciwrappers.c | 3 --- src/sciwrappers.h | 5 +++++ 4 files changed, 5 insertions(+), 11 deletions(-) commit b7c4bb0b4d3022bb0102627cb6baa854cec93dd1 Author: Jiří Techet Date: Tue Apr 25 23:50:39 2017 +0200 Create correct path for filetype config files Since filedef config files are now stored under the "filedef" subdirectory of app->datadir, we need to add the subdirectory name when creating path from the corresponding app->configdir otherwise the file isn't found. Closes #1482 src/ui_utils.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) commit 08e2714c1cf6e341da9a9c253ab938ae5bea12c5 Author: sinpowei Date: Sat Jun 10 21:18:43 2017 +0800 Add an editor option to enable IME's candidate window display inline, fix the issue that candidate window can't follow cursor. Closes #1514 doc/geany.txt | 3 +++ src/editor.c | 5 ++++- src/editor.h | 1 + src/keyfile.c | 2 ++ 4 files changed, 10 insertions(+), 1 deletion(-) commit 59e6a8c75f3a742de7b2550b56e6ec564e14375c Author: Enrico Tröger Date: Fri Aug 4 08:03:50 2017 +0200 Add missing string and comment styles for various lexers (#1502) * Add missing string and comment styles for various lexers A bunch of string and comment styles were missing and so Geany could not detect the corresponding styles in code. * Add more string styles * Add regex styles as string styles src/highlighting.c | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 97 insertions(+), 3 deletions(-) commit df2a99f2751b9601e37b69bcde71a8dda908904d Author: Franz König Date: Sat Jul 29 16:43:23 2017 +0200 a little typo in the list of translators (#1565) src/about.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 03e5bb9facd4e35ac0757781e054c7389362d129 Author: Colomban Wendling Date: Thu Jul 27 21:15:55 2017 -0700 Fix crash if plugin manager is opened more than once (#1564) Do not allow more than one plugin manager dialog at a time. It doesn't make sense and the code is not fully re-entrant and leads to a crash toggling plugins in both dialogs. Fixes #1563. src/plugins.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 18d524525df6612a8ab7fd690aa99d815c59f80d Author: Thomas Martitz Date: Wed Jul 26 09:33:35 2017 +0200 editor: fix incorrect variable reference The variable used for setting the cursor isn't used anymore and was used uninitialized. It's simply deleted now and the correct var is used. This was only a problem if editor_insert_text_block() was used directly, the snippet code path doesn't reach to it. src/editor.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 18360460abb4f4bec23dff127031ecf4e9120f7f Author: Colomban Wendling Date: Mon Jul 24 16:24:05 2017 -0700 Update Scintilla to version 3.7.5 (#1503) * Update Scintilla to version 3.7.5 This now requires a C++11-capable compiler. Closes #1308. * Test using newer dist on Travis Since Scintilla needs C++11 * Add debugging code for when configure fails * Workaround a pkg-config-corsswrapper bug on Ubuntu 14.04 See https://bugs.launchpad.net/ubuntu/+source/mingw-w64/+bug/1327242 .travis.yml | 5 +- configure.ac | 1 + m4/ax_cxx_compile_stdcxx_11.m4 | 142 +++++ scintilla/Makefile.am | 1 + scintilla/gtk/PlatGTK.cxx | 158 +++--- scintilla/gtk/ScintillaGTK.cxx | 154 +++--- scintilla/gtk/ScintillaGTK.h | 90 ++-- scintilla/gtk/ScintillaGTKAccessible.cxx | 83 +-- scintilla/gtk/ScintillaGTKAccessible.h | 44 +- scintilla/include/Platform.h | 12 +- scintilla/include/SciLexer.h | 1 + scintilla/include/Scintilla.h | 7 + scintilla/include/Scintilla.iface | 36 +- scintilla/lexers/LexAsm.cxx | 22 +- scintilla/lexers/LexBash.cxx | 17 +- scintilla/lexers/LexBasic.cxx | 22 +- scintilla/lexers/LexCPP.cxx | 108 ++-- scintilla/lexers/LexD.cxx | 22 +- scintilla/lexers/LexDiff.cxx | 2 +- scintilla/lexers/LexFortran.cxx | 242 ++++++++- scintilla/lexers/LexHTML.cxx | 8 +- scintilla/lexers/LexHaskell.cxx | 22 +- scintilla/lexers/LexLaTeX.cxx | 4 +- scintilla/lexers/LexLua.cxx | 30 +- scintilla/lexers/LexPerl.cxx | 22 +- scintilla/lexers/LexPowerShell.cxx | 16 +- scintilla/lexers/LexProps.cxx | 18 +- scintilla/lexers/LexPython.cxx | 322 +++++++---- scintilla/lexers/LexRust.cxx | 22 +- scintilla/lexers/LexSQL.cxx | 22 +- scintilla/lexers/LexVHDL.cxx | 8 +- scintilla/lexers/LexVerilog.cxx | 42 +- scintilla/lexers/LexYAML.cxx | 6 +- scintilla/lexlib/Accessor.cxx | 12 +- scintilla/lexlib/CharacterCategory.cxx | 771 ++++++++++++++++++++++---- scintilla/lexlib/CharacterCategory.h | 6 + scintilla/lexlib/CharacterSet.cxx | 15 +- scintilla/lexlib/CharacterSet.h | 11 + scintilla/lexlib/LexAccessor.h | 2 +- scintilla/lexlib/LexerBase.cxx | 9 +- scintilla/lexlib/LexerModule.cxx | 8 +- scintilla/lexlib/LexerModule.h | 4 +- scintilla/lexlib/LexerNoExceptions.cxx | 16 +- scintilla/lexlib/LexerSimple.cxx | 8 +- scintilla/lexlib/PropSetSimple.cxx | 5 +- scintilla/lexlib/StyleContext.cxx | 8 +- scintilla/lexlib/StyleContext.h | 9 +- scintilla/lexlib/WordList.cxx | 17 +- scintilla/scintilla_changes.patch | 3 +- scintilla/src/AutoComplete.cxx | 28 +- scintilla/src/AutoComplete.h | 6 +- scintilla/src/CallTip.cxx | 37 +- scintilla/src/CallTip.h | 12 +- scintilla/src/CaseConvert.cxx | 222 +++++++- scintilla/src/CaseFolder.h | 4 +- scintilla/src/Catalogue.cxx | 23 +- scintilla/src/CellBuffer.cxx | 186 +++---- scintilla/src/CellBuffer.h | 97 ++-- scintilla/src/CharClassify.cxx | 4 +- scintilla/src/CharClassify.h | 2 +- scintilla/src/ContractionState.cxx | 110 ++-- scintilla/src/ContractionState.h | 55 +- scintilla/src/Decoration.cxx | 142 +++-- scintilla/src/Decoration.h | 27 +- scintilla/src/Document.cxx | 682 +++++++++++------------ scintilla/src/Document.h | 263 ++++----- scintilla/src/EditModel.cxx | 22 +- scintilla/src/EditModel.h | 15 +- scintilla/src/EditView.cxx | 500 +++++++++-------- scintilla/src/EditView.h | 62 ++- scintilla/src/Editor.cxx | 897 ++++++++++++++++--------------- scintilla/src/Editor.h | 258 +++++---- scintilla/src/ExternalLexer.cxx | 101 +--- scintilla/src/ExternalLexer.h | 28 +- scintilla/src/Indicator.cxx | 8 +- scintilla/src/KeyMap.cxx | 2 +- scintilla/src/LineMarker.cxx | 26 +- scintilla/src/LineMarker.h | 30 +- scintilla/src/MarginView.cxx | 64 ++- scintilla/src/MarginView.h | 8 +- scintilla/src/Partitioning.h | 23 +- scintilla/src/PerLine.cxx | 273 ++++------ scintilla/src/PerLine.h | 114 ++-- scintilla/src/Position.h | 1 + scintilla/src/PositionCache.cxx | 127 +++-- scintilla/src/PositionCache.h | 54 +- scintilla/src/RESearch.cxx | 38 +- scintilla/src/RESearch.h | 17 +- scintilla/src/RunStyles.cxx | 37 +- scintilla/src/RunStyles.h | 9 +- scintilla/src/ScintillaBase.cxx | 59 +- scintilla/src/ScintillaBase.h | 31 +- scintilla/src/Selection.cxx | 72 +-- scintilla/src/Selection.h | 46 +- scintilla/src/SparseVector.h | 122 ++--- scintilla/src/SplitVector.h | 153 ++++-- scintilla/src/Style.cxx | 3 +- scintilla/src/Style.h | 5 +- scintilla/src/UniConversion.cxx | 53 +- scintilla/src/UniConversion.h | 7 +- scintilla/src/UniqueString.h | 34 ++ scintilla/src/ViewStyle.cxx | 195 ++++--- scintilla/src/ViewStyle.h | 33 +- scintilla/src/XPM.cxx | 40 +- scintilla/src/XPM.h | 10 +- scintilla/version.txt | 2 +- scripts/cross-build-mingw.sh | 5 +- 107 files changed, 4735 insertions(+), 3364 deletions(-) commit b2668dae67dcca97740d5f4adc4200519cdde8a0 Author: Thomas Martitz Date: Fri Jul 21 08:42:58 2017 +0200 Better snippets (#1470) * snippets: Allow keybinding overloading of snippet-next-cursor. This allows to use the same key as for inserting snippets, or plugins to map something to the same keybinding (e.g. if they implement a similar facility). * snippets: Remove cursor position at the end of constructs. This is not consistently done for all languages, and hard to get right e.g. for python. It's probably not terribly useful either. * snippets: Use Scintilla indicators for cursor posititons * api: Increment API version. * snippets: restore behavior of cursor-less snippets * snippts: use ascii character for the placeholder. Do not require documents to be UTF-8 for using snippets. * snippets: fix start/end detection, when searching for the next cursor Tested @vfaronov data/snippets.conf | 34 +++++------ src/editor.c | 173 +++++++++++++++++++++++++++++------------------------ src/editor.h | 5 +- src/highlighting.c | 5 ++ src/keybindings.c | 4 +- src/plugindata.h | 2 +- 6 files changed, 123 insertions(+), 100 deletions(-) commit e0dd1ee109132f77a82794facced7b229193783d Author: klaxian Date: Fri Jul 21 02:02:56 2017 -0400 Added missing PHP keywords, especially for PHP 7.x. (#1547) data/filedefs/filetypes.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2abf72a178301c6b90656229bbc11c9eb0b81765 Author: Vasiliy Faronov Date: Fri Jul 21 08:59:36 2017 +0300 Push current position to navqueue before navigating back (#1537) src/navqueue.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 088aaefea0c67a4de1c5ec45a707e70bb66b94c1 Merge: 75a69aad9 8b25d0997 Author: Colomban Wendling Date: Thu Jul 20 21:32:49 2017 -0700 Merge pull request #1544 from b4n/python/sub-identifiers Python: Don't highlight sub-identifiers as keywords commit 8b25d09978a5e37e2918a130add3a700111c6a0f Author: Colomban Wendling Date: Wed Jul 19 22:07:13 2017 -0700 Cython: Inherit lexer properties from the Python filetype data/filedefs/filetypes.Cython.conf | 2 ++ 1 file changed, 2 insertions(+) commit c03af5b4348c16ee8da3508fc07cf9551a8a1792 Author: Colomban Wendling Date: Wed Jul 19 22:02:17 2017 -0700 Python: Remove obsolete lexer property data/filedefs/filetypes.python | 1 - 1 file changed, 1 deletion(-) commit 75a69aad932e81c97291b4944a738b90df75b033 Author: Mark O'Donovan Date: Mon Jul 17 08:44:54 2017 +0100 Added option to auto reload files changed on disk (#1246) When option is enabled geany automatically reloads files which have changed on disk but have no changes in the buffer. When the option is disabled (default) geany shows the reload dialog as before. Tested @vfaronov doc/geany.txt | 5 +++++ src/document.c | 6 ++++++ src/document.h | 1 + src/keyfile.c | 2 ++ 4 files changed, 14 insertions(+) commit 2d9f97debd308ef891903731e48b215255be8411 Author: Enrico Tröger Date: Sun Jul 16 15:29:55 2017 +0200 Post release version bump Say hello to Geany 1.32 "Bemos"! NEWS | 3 +++ configure.ac | 2 +- doc/geany.txt | 2 +- geany.exe.manifest | 2 +- geany_private.rc | 4 ++-- src/geany.h | 2 +- 6 files changed, 9 insertions(+), 6 deletions(-) commit 4af55534c59b149e81432f3a6bb8e46f3fd956dd Author: Enrico Tröger Date: Sun Jul 16 12:58:13 2017 +0200 Set release date NEWS | 2 +- doc/geany.1.in | 2 +- doc/geany.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit b2b81359c3e271f7ea835fd1ba25bd2ca59514d9 Author: Colomban Wendling Date: Sat Jul 15 21:03:53 2017 -0700 Python: Don't highlight sub-identifiers as keywords For example, highlight `file` as a builtin when appearing by itself, but not in a construct like `obj.file`. Fixes #1542. data/filedefs/filetypes.python | 1 + 1 file changed, 1 insertion(+) commit 30f23bb8477bce7f611b34e158cad8a56ff645ce Author: Enrico Tröger Date: Sat Jul 15 12:57:19 2017 +0200 Add recently merged PRs to NEWS NEWS | 3 +++ 1 file changed, 3 insertions(+) commit e185f4784f1d93f2b9b322ee9ba132ba286607ab Merge: 702737799 4f1b2a031 Author: Enrico Tröger Date: Sat Jul 15 12:37:12 2017 +0200 Merge pull request #1536 from vfaronov/fix-color-chooser Fix converting color to hex for insertion commit 70273779981e4ce3610955ee4d27f557188c3717 Author: Vasiliy Faronov Date: Wed Jul 12 02:44:53 2017 +0300 Update HTML keywords (#1530) * Add newly standardized HTML elements to filetypes.html To enable highlighting them as keywords in HTML documents, add the following elements defined in W3C HTML 5.1 (https://www.w3.org/TR/html51/fullindex.html#index-elements): - menuitem - picture - rb - rtc - template as well as the following elements defined in WHATWG HTML Living Standard (https://html.spec.whatwg.org/multipage/indices.html#elements-3): - math - slot - svg * Add newly standardized HTML attributes to filetypes.html To enable highlighting them as keywords in HTML documents, add 30 attributes defined in W3C HTML 5.1 (https://www.w3.org/TR/html51/fullindex.html#attributes-table) and a further 15 attributes defined in the WHATWG HTML Living Standard (https://html.spec.whatwg.org/multipage/indices.html#attributes-3). * Sort the list of HTML keywords data/filedefs/filetypes.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 71b8fea91da0fab6b17f1ebb85a3099cd256282e Author: Colomban Wendling Date: Mon Jul 10 18:49:21 2017 -0700 Update NEWS NEWS | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 4f1b2a031377cd4104d3bc60c02c7f3ee89268dd Author: Vasiliy Faronov Date: Sat Jul 8 18:46:01 2017 +0300 Fix converting color to hex for insertion Fixes #1527. In win32_show_color_dialog, utils_scale_round is not necessary at all because Get{R,G,B}Value [1] already return 0..255, which we can immediately render as hex. [1] https://msdn.microsoft.com/en-us/library/windows/desktop/dd144923.aspx src/utils.c | 14 +++++++++----- src/win32.c | 5 +---- 2 files changed, 10 insertions(+), 9 deletions(-) commit 35a5d457f48c92ecb71b5a2ecf7d718701d5ef63 Author: Frank Lanitz Date: Sun Jul 2 18:47:42 2017 +0200 Update of Lithuanian translation po/lt.po | 152 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 77 insertions(+), 75 deletions(-) commit 1d100ae45748f63804016f6367a7ed550ae1468a Author: Frank Lanitz Date: Sun Jul 2 18:45:45 2017 +0200 Update of Japanese translation po/ja.po | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit 4406ccf97055dd4d6a8fa19faeff9555da198aed Author: Yan Pashkovsky Date: Tue Jun 27 10:15:30 2017 +0300 Cmake and Csharp Keywords (#1315) * cmake cs keywords * cs and cmake keywords update c sharp keywords https://msdn.microsoft.com/en-us/library/x53a06bb.aspx * reviewed cmake keywords reviewed cmake keywords according to https://cmake.org/cmake/help/v3.0/manual/cmake-commands.7.html * public private interface * cmake alphabetical kws * comments data/filedefs/filetypes.cmake | 6 +++--- data/filedefs/filetypes.cs | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) commit 174fac750c886e172ff91f71a6982fe47b40cc5e Author: Frank Lanitz Date: Sun Jun 25 11:02:09 2017 +0200 Update po-files for string freeze of Geany 1.31 po/ar.po | 126 ++--- po/ast.po | 126 ++--- po/be.po | 126 ++--- po/bg.po | 126 ++--- po/ca.po | 32 +- po/cs.po | 126 ++--- po/de.po | 34 +- po/el.po | 1775 +++++++++++++++++++++++++++++++++-------------------------- po/en_GB.po | 126 ++--- po/es.po | 32 +- po/et.po | 126 ++--- po/eu.po | 126 ++--- po/fa.po | 126 ++--- po/fi.po | 126 ++--- po/fr.po | 126 ++--- po/gl.po | 126 ++--- po/he.po | 126 ++--- po/hi.po | 126 ++--- po/hu.po | 126 ++--- po/id.po | 129 ++--- po/it.po | 126 ++--- po/ja.po | 126 ++--- po/kk.po | 126 ++--- po/ko.po | 126 ++--- po/lb.po | 126 ++--- po/lt.po | 126 ++--- po/mn.po | 126 ++--- po/nl.po | 126 ++--- po/nn.po | 126 ++--- po/pl.po | 126 ++--- po/pt.po | 126 ++--- po/pt_BR.po | 126 ++--- po/ro.po | 126 ++--- po/ru.po | 126 ++--- po/sk.po | 126 ++--- po/sl.po | 126 ++--- po/sr.po | 126 ++--- po/sv.po | 126 ++--- po/tr.po | 126 ++--- po/uk.po | 126 ++--- po/vi.po | 126 ++--- po/zh_CN.po | 126 ++--- po/zh_TW.po | 126 ++--- 43 files changed, 3504 insertions(+), 3286 deletions(-) commit fbe6106216353fa112b92635248b32b4a59d313c Author: Giorgioggì Date: Fri Jun 23 18:52:43 2017 +0200 Fix comment/uncomment keyboard shortcut for Arduino filetype (#1510) data/filedefs/filetypes.Arduino.conf | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 1305b43a9813e952f4a85be4c22e7589961c7467 Author: Samsul Ma'arif Date: Thu May 25 15:20:15 2017 +0700 Update Indonesian translation (#1501) Signed-off-by: Samsul Ma'arif THANKS | 3 ++ po/id.po | 112 ++++++++++++++++++++++++------------------------------------ src/about.c | 3 ++ 3 files changed, 51 insertions(+), 67 deletions(-) commit 84253714771f48dbc7fab02f7de43f253734dee2 Author: Colomban Wendling Date: Tue May 2 05:46:28 2017 +0200 Haxe: Update keywords (#1216) Update keywords with https://haxe.org/manual/expression.html#keywords. `trace` is kept although it's not a keyword, because it was already there and http://try.haxe.org/ highlights it identically to some other keywords. data/filedefs/filetypes.haxe | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fefc3a51b95c9c15193bff50c377164c8f8edc68 Author: Vasiliy Faronov Date: Tue May 2 01:42:59 2017 +0300 Explain the behavior of search keybindings regarding word boundaries (#1478) Fixes #1467. doc/geany.txt | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) commit 9f4407ca29ac4dd6401fbc0688fb8c244158ae3d Author: Jacob H. Pratt Date: Fri Apr 28 21:20:38 2017 -0400 Add `require_relative` in ruby syntax highlighting (#1472) data/filedefs/filetypes.ruby | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1a19b397216210b9b5f19592da7bb73e87570a4c Author: Dimitar Toshkov Zhekov Date: Wed Apr 26 21:32:00 2017 +0300 Read stdout/stderr in a loop when using timeout callbacks With single reads, the input processing is limited to (1/0.050 * DEFAULT_IO_LENGTH) KB/sec, which is pretty low. Moved the check whether the maximum empty G_IO_IN-s are reached to a macro, SPAWN_CHANNEL_GIO_WATCH(sc). src/spawn.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit dbcf456031127ce7e371606dcc75507024eb95df Author: Vasiliy Faronov Date: Tue Apr 25 11:09:40 2017 +0300 Update HACKING (#1479) * Update obsolete references to GLib 2.27/28 in HACKING Fixes #1476. * Replace obsolete gcc -W option with -Wextra in HACKING According to gcc --help=warnings, -W is a deprecated option and -Wextra should be used instead. HACKING | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit c296efed642611f3dba238c5c576b712786b424e Author: yurayko Date: Sun Apr 23 21:07:29 2017 +0400 fix typo in russian translation (#1474) po/ru.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 6f692112e39fa0714d882332b8f935419fd69a27 Author: Colomban Wendling Date: Thu Apr 20 08:57:02 2017 +0200 C: Fix line continuation handling (#1370) Escaped newlines were properly handled inside preprocessor directives, but not otherwise. Seeing `continue` here suggests the code used to work a long time ago but some loop refactoring broke it, as now it would not stay in the loop unless in a preprocessor directive. Or maybe it only ever worked for preprocessor directives, and the `continue` was superfluous? Fixes #1370. ctags/main/lcpp.c | 5 ++++- tests/ctags/Makefile.am | 1 + tests/ctags/backslashes.c | 29 +++++++++++++++++++++++++++++ tests/ctags/backslashes.c.tags | 12 ++++++++++++ 4 files changed, 46 insertions(+), 1 deletion(-) commit 673a71464565cf4f92154b31e90cca265bae29b0 Author: Dimitar Toshkov Zhekov Date: Sun Apr 16 18:06:55 2017 +0300 Fix the maximum number of G_IO_IN-s without any data They should have been 200, not 3. src/spawn.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2707006286fa52400776c24ad6c393d2459324fa Author: Jiří Techet Date: Sat Apr 15 12:48:03 2017 +0200 Fix crash when plugin_set_key_group() is called several times by plugins (#1426) When plugin calls plugin_set_key_group() several times for the same group (when creating keybindings dynamically and needs to reset them), it crashes with the current code the second time it gets called. The reason is that group->plugin_keys is an array into which entries of group->key_items point and when calling g_ptr_array_set_size(group->key_items, 0); it calls free_key_binding() for every item - when these items are deallocated by g_free(group->plugin_keys) previously, calls of free_key_binding() reference an invalid memory. Just first resizing group->key_items (and calling free_key_binding() for its items) and freeing group->plugin_keys afterwards fixes the problem. src/keybindings.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 5539c3f908f9957ac2a181e38b3d10e392a0e551 Author: Nick Treleaven Date: Fri Apr 7 13:10:41 2017 +0100 Update status bar after clicking detect indent type menu item src/callbacks.c | 1 + 1 file changed, 1 insertion(+) commit ce284096a95243abab99934bc1b0da2c6f6f0959 Author: Dimitar Toshkov Zhekov Date: Fri Apr 7 20:12:17 2017 +0300 Handle continuous G_IO_IN-s without any data Some versions of GLib under Linux continuously generate G_IO_IN-s without any data to read when using recusrive channel watch sources, causing 100% CPU load. This patch detects such a situation, and automatically switches the affected source from channel watch to 50ms timeout. src/spawn.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 61 insertions(+), 7 deletions(-) commit 2386153df445c905710b0d4f3d905c2f5d97ed8e Author: Baurzhan Muftakhidinov Date: Mon Mar 27 20:37:16 2017 +0500 Fix the typo in Kazakh translation (#1447) po/kk.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d34ebce039389cdbf911540cb333e269346b2788 Author: Robert Antoni Buj Gelonch Date: Wed Mar 22 11:18:16 2017 +0100 Update Catalan translators (#1440) THANKS | 1 + src/about.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) commit 33762f5225cb7751e42808cce6d65f471c2dc678 Author: A. Tombs Date: Wed Mar 22 00:06:47 2017 +0000 Add parfor to Matlab keyword list (#1021) Add parfor to Matlab keyword list Add `parfor` to the list of keywords to be highlighted in Matlab script sources. `parfor` is a Matlab keyword that can be used in place of `for` to achieve parallel processing. data/filedefs/filetypes.matlab | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 06f70e5b786941e6ce25c31ef38b1178e71a33b7 Author: Robert Antoni Buj Gelonch Date: Sun Mar 19 18:58:51 2017 +0100 Catalan translation: use unique accelerator keys for menus (#1434) po/ca.po | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 6e1a1633b5192cd5a788dc30810978caa86bc7e2 Author: Frank Lanitz Date: Sun Mar 19 18:57:38 2017 +0100 Update bugtracker URL to github configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4f388e515ce76535766cef730f1fdcab2fc396ef Merge: 46812c47f a1929f1c8 Author: Frank Lanitz Date: Sun Mar 19 18:52:45 2017 +0100 Backmerge bugfix release branch 1.30 from 1.30.1 to master commit 46812c47fbb363cd8d8f418cf3c7b10f280f7051 Author: Colomban Wendling Date: Sun Mar 19 18:18:11 2017 +0100 Fix scripts/set-release-date when LC_TIME is set We actually need to override LC_TIME if it is set, so use LC_ALL which overrides everything rather than LANG that is used as a fallback. scripts/set-release-date | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a1929f1c80695489be4e687d74217f5f970ec9c0 Author: Colomban Wendling Date: Sun Mar 19 18:16:55 2017 +0100 Set release date NEWS | 2 +- doc/geany.1.in | 2 +- doc/geany.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 0dd13069a0d5bf33d8c2a0f15e18a5ed8f501f6b Merge: be91746d7 79f9a716c Author: Frank Lanitz Date: Sat Mar 18 20:55:31 2017 +0100 Merge pull request #1433 from b4n/po/copyright-years Fix copyright years translations commit 79f9a716c25aaa7910c84f8db15aaa7481332b70 Author: Colomban Wendling Date: Sat Mar 18 20:17:47 2017 +0100 Unfuzzy strings that were only marked as such because of years update po/be.po | 1 - po/cs.po | 1 - po/et.po | 1 - po/eu.po | 1 - po/fi.po | 1 - po/gl.po | 1 - po/he.po | 1 - po/hu.po | 1 - po/id.po | 1 - po/lt.po | 1 - po/pl.po | 1 - po/pt_BR.po | 1 - po/sl.po | 1 - po/sr.po | 1 - 14 files changed, 14 deletions(-) commit def32abfed702be8ffe27818e3e86b9b0c2ad909 Author: Colomban Wendling Date: Sat Mar 18 20:01:31 2017 +0100 Fixup copyright years translations po/ar.po | 2 +- po/ast.po | 2 +- po/be.po | 4 ++-- po/bg.po | 2 +- po/ca.po | 4 ++-- po/cs.po | 4 ++-- po/en_GB.po | 2 +- po/et.po | 4 ++-- po/eu.po | 4 ++-- po/fa.po | 2 +- po/fi.po | 4 ++-- po/fr.po | 4 ++-- po/gl.po | 4 ++-- po/he.po | 4 ++-- po/hi.po | 2 +- po/hu.po | 4 ++-- po/id.po | 4 ++-- po/it.po | 4 ++-- po/ja.po | 4 ++-- po/kk.po | 4 ++-- po/ko.po | 2 +- po/lb.po | 2 +- po/lt.po | 4 ++-- po/mn.po | 2 +- po/nl.po | 4 ++-- po/nn.po | 2 +- po/pl.po | 4 ++-- po/pt.po | 4 ++-- po/pt_BR.po | 4 ++-- po/ro.po | 2 +- po/ru.po | 4 ++-- po/sk.po | 4 ++-- po/sl.po | 4 ++-- po/sr.po | 4 ++-- po/sv.po | 4 ++-- po/tr.po | 4 ++-- po/uk.po | 2 +- po/vi.po | 2 +- po/zh_CN.po | 4 ++-- po/zh_TW.po | 2 +- 40 files changed, 66 insertions(+), 66 deletions(-) commit 1aa82c3e6e0ac62f8cc7fa5469298dc0d254f26c Author: Colomban Wendling Date: Sat Mar 18 19:59:52 2017 +0100 Add a script to fixup copyright years translations scripts/update-year-in-po.sh | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit aada81e8caac9f95402985303ea83b20d907f528 Author: Frank Lanitz Date: Sat Mar 18 17:44:52 2017 +0100 Update NEWS and cleanup a unneeded fuzzy string inside Catalan translation NEWS | 2 +- po/ca.po | 100 +++++++++++++++++++++++++++++++-------------------------------- 2 files changed, 51 insertions(+), 51 deletions(-) commit 231e29c79ecf5f78c52680573a3fbff5c0e2e406 Author: Robert Antoni Buj Gelonch Date: Sat Mar 18 17:42:34 2017 +0100 Update Catalan translation (#1432) po/ca.po | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) commit be91746d7e516f619c5d52dc9eeebf2697f8dbc8 Author: Robert Antoni Buj Gelonch Date: Sat Mar 18 17:42:34 2017 +0100 Update Catalan translation (#1432) po/ca.po | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) commit 28b046722a8cddfddf6af0f027a62fd33bfda609 Author: Frank Lanitz Date: Fri Mar 17 23:02:08 2017 +0100 Update NEWS for 1.30.1 for backported translations NEWS | 3 +++ 1 file changed, 3 insertions(+) commit 6e0e6a4aabf085e5bb0fbd53467996fc1617527a Author: Frank Lanitz Date: Fri Mar 17 15:55:39 2017 +0100 Update of Greek translation po/el.po | 1826 +++++++++++++++++++++++++++----------------------------------- 1 file changed, 804 insertions(+), 1022 deletions(-) commit b4eb662b8202600cecbad78a3a503eef6b7944fa Author: Frank Lanitz Date: Wed Mar 15 15:42:04 2017 +0100 Small update of German translation po/de.po | 100 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 50 insertions(+), 50 deletions(-) commit 8d88401292ac745c014ed860147449df258befcb Author: Frank Lanitz Date: Mon Mar 13 10:52:31 2017 +0100 Update of Spanish translation po/es.po | 106 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 53 insertions(+), 53 deletions(-) commit ec1bde008db0e8174947ac8760358a0804b6af1e Author: Andrej Herceg Date: Mon Mar 6 20:01:24 2017 +0100 Update of Slovak translation (#1424) po/sk.po | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit 420c10960974e193a611cf6c00c71ae280060482 Author: Colomban Wendling Date: Fri Mar 17 20:44:06 2017 +0100 Update NEWS NEWS | 4 ++++ 1 file changed, 4 insertions(+) commit 03ee2e2b00c707ce6451694c1b59ec77b832957c Author: Colomban Wendling Date: Mon Mar 6 14:16:35 2017 +0100 GTK: Fix popup positioning on monitors not positioned at 0,0 Fixes #1422. X-Scintilla-Bug-URL: https://sourceforge.net/p/scintilla/bugs/1920/ X-Scintilla-Commit-ID: 8e0cb37c4972cd66b33293b88031acf453685cfd scintilla/gtk/PlatGTK.cxx | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) commit 241402972769b617dfaf1a2fbbc60f0b9f903ed7 Author: Colomban Wendling Date: Fri Mar 17 20:19:56 2017 +0100 Bump version in preparation for 1.30.1 NEWS | 3 +++ configure.ac | 2 +- doc/geany.txt | 2 +- geany.exe.manifest | 2 +- geany_private.rc | 4 ++-- 5 files changed, 8 insertions(+), 5 deletions(-) commit ffb71f95b3024501e10849ed8ba6a95a065c606d Author: Frank Lanitz Date: Fri Mar 17 15:55:39 2017 +0100 Update of Greek translation po/el.po | 1826 +++++++++++++++++++++++++++----------------------------------- 1 file changed, 804 insertions(+), 1022 deletions(-) commit 7514212d32d3a562051c03ee2e9522ba3c13bf1f Author: Colomban Wendling Date: Mon Mar 6 14:16:35 2017 +0100 GTK: Fix popup positioning on monitors not positioned at 0,0 Fixes #1422. X-Scintilla-Bug-URL: https://sourceforge.net/p/scintilla/bugs/1920/ X-Scintilla-Commit-ID: 8e0cb37c4972cd66b33293b88031acf453685cfd scintilla/gtk/PlatGTK.cxx | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) commit 2a2b8d11b8ab84cc80039c951ef11ee498d9e209 Author: Frank Lanitz Date: Wed Mar 15 15:42:04 2017 +0100 Small update of German translation po/de.po | 100 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 50 insertions(+), 50 deletions(-) commit 709acc0be219c6868f1e9322719647241045d6ce Author: Frank Lanitz Date: Mon Mar 13 10:52:31 2017 +0100 Update of Spanish translation po/es.po | 106 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 53 insertions(+), 53 deletions(-) commit 994cb4797d50c6d9a100d2f2188f3daa6888b6e0 Author: Andrej Herceg Date: Mon Mar 6 20:01:24 2017 +0100 Update of Slovak translation (#1424) po/sk.po | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit 3303bde75844033e4262f649a3437e0dbcc316d0 Author: Colomban Wendling Date: Sun Mar 5 16:17:03 2017 +0100 Post release version bump Say hello to Geany 1.31 "Trevin"! NEWS | 3 +++ configure.ac | 2 +- doc/geany.txt | 2 +- geany.exe.manifest | 2 +- geany_private.rc | 4 ++-- src/geany.h | 2 +- 6 files changed, 9 insertions(+), 6 deletions(-) commit a15dcc3b715097fd7f29dc4449031d2de4721856 Author: Colomban Wendling Date: Sun Mar 5 15:12:53 2017 +0100 Finish updating NEWS NEWS | 8 ++++++++ 1 file changed, 8 insertions(+) commit 119f05e5e2b8d9f5e9aab0311bd3a1217acf5126 Author: Colomban Wendling Date: Sun Mar 5 14:40:26 2017 +0100 Small update of the French translation NEWS | 2 +- po/fr.po | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) commit 7ccd37bd04d77c483a250557e906f652b3f6e7f5 Author: Enrico Tröger Date: Sun Mar 5 14:37:39 2017 +0100 Update NEWS preparing for next release NEWS | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) commit 5a7a308adacdda8d119a0addc0f869f0e425decb Author: Enrico Tröger Date: Sun Mar 5 14:00:43 2017 +0100 Set release date NEWS | 4 ++-- doc/geany.1.in | 2 +- doc/geany.txt | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 344de2d442ce1fef994f7303a7b676c3f21cd4f1 Author: Frank Lanitz Date: Sun Mar 5 13:42:10 2017 +0100 Remove faulty empty lines INSTALL | 5 ----- 1 file changed, 5 deletions(-) commit fc6f3ffebee174db268daec4b0fb114767c43acf Author: Enrico Tröger Date: Sun Mar 5 13:27:15 2017 +0100 Update copyright years README | 2 +- doc/geany.txt | 2 +- geany.nsi.in | 2 +- geany_private.rc | 2 +- src/about.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) commit 3838a0800e0132a401005be215d7805284f006da Author: Frank Lanitz Date: Sun Mar 5 12:42:01 2017 +0100 There was also an it.po update for 1.30 INSTALL | 5 +++++ NEWS | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) commit 94620f4450b91476dfa3cce3c5be3bbcf0bcf2c1 Author: Giuseppe Date: Fri Mar 3 23:50:22 2017 +0100 updated it.po (#1405) po/it.po | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit cc7f7f7164956c8ba872f6c9ffa5ed0f6712a9d7 Merge: 8001086ba 7b091809d Author: elextr Date: Fri Mar 3 21:00:27 2017 +1000 Merge pull request #1406 from kugel-/for-upstream api: new function geany_api_version for dynamic languages checking API version at runtime commit 8001086ba54e9f21442514b6311252e8382905e4 Author: Frank Lanitz Date: Thu Mar 2 12:30:13 2017 +0100 Fix po creation time meta data po/sr.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a32ee97760136330abfbb6cd413169b0230aa56b Author: Frank Lanitz Date: Thu Mar 2 12:28:17 2017 +0100 Set language metadata in header of some po files po/ar.po | 2 +- po/en_GB.po | 2 +- po/fa.po | 2 +- po/fi.po | 2 +- po/lb.po | 2 +- po/ro.po | 2 +- po/uk.po | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) commit b7900b3f05d37818a1cd38f2c83e2c17e22c47ee Merge: 3b105ec82 ed46b65c0 Author: Colomban Wendling Date: Mon Feb 27 18:09:59 2017 +0100 Merge pull request #1399 from techee/osx_start Avoid gdk_display_get_name() on OS X commit 3b105ec8279aa53001cab68dc68dfa0bee1ba51c Merge: 6d0062201 9a230e1f4 Author: Colomban Wendling Date: Mon Feb 27 14:18:50 2017 +0100 Merge pull request #1404 from b4n/search/gtk-3-20-history Fix search history filling on GTK >= 3.20 commit 6d0062201ee2701acceed9af0227c61e9777037d Author: Colomban Wendling Date: Tue Feb 21 22:18:34 2017 +0100 Scintilla: speed up converting byte offsets to character offsets Use a per-line cache to avoid re-computing the offset from the start of the buffer each time. This dramatically speeds up multiple replacements on large files. X-Scintilla-Bug-ID: https://sourceforge.net/p/scintilla/bugs/1910/ scintilla/gtk/ScintillaGTKAccessible.cxx | 7 +++++++ scintilla/gtk/ScintillaGTKAccessible.h | 16 +++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) commit b07c8b01c08e0f85b0122211129c952b2f22aecb Merge: 1421a3f9c 0b85db49e Author: Colomban Wendling Date: Sun Feb 26 20:24:13 2017 +0100 Merge branch 'scintilla/update-373' Update Scintilla to version 3.7.3 plus a fix for a regression on it. Closes #1320. commit 1421a3f9c59a41074636a26cca6b431c3af40226 Author: Colomban Wendling Date: Sun Feb 26 20:01:52 2017 +0100 scintilla: Fix crash after destroying the widget on GTK < 3.3.6 On GTK2 and GTK3 < 3.3.6 there is no GtkAccessibleClass::widget_unset() method, so we can't destroy our accessible object right away. So, to avoid accessing a destroyed widget, we need to check whether the widget still exists in the the ScintillaGTKAccessible destructor. In other methods it's not necessary because the wrapping GObject class makes sure not to forward other when the widget has been destroyed, but we still have to destroy the C++ instance no matter what, so the check has to be on this side. Fixes #1410. scintilla/gtk/ScintillaGTKAccessible.cxx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit df05fc87120141da8e9fc5b67ac10dd550891e04 Author: Frank Lanitz Date: Sun Feb 26 12:07:15 2017 +0100 Update NEWS NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7125769d54903c7de1e67fc45732fd12508af2cf Author: Frank Lanitz Date: Sun Feb 26 12:04:20 2017 +0100 Update NEWS NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f4c3363c6943e77cb47c724156ae56fe06881a87 Author: Frank Lanitz Date: Sun Feb 26 12:03:33 2017 +0100 Update of Portuguese translation po/pt.po | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 7b091809db5d03d6373e39183bd796a8b485e709 Author: Thomas Martitz Date: Thu Feb 23 07:41:40 2017 +0100 api: new function geany_api_version This allows plugins to detect the API version of Geany at runtime. This enables soft dependencies based on Geany's API version, perhaps using a new feature with a fallback for older API versions. Previously the only alternatives were hard-depending on a more recent Geany version or ignoring new features. src/plugindata.h | 2 +- src/pluginutils.c | 16 ++++++++++++++++ src/pluginutils.h | 1 + 3 files changed, 18 insertions(+), 1 deletion(-) commit 1c2d35a5419a9222cc72dbe23ffa7b8277a624ed Author: Abel Serrano Juste Date: Fri Feb 24 09:16:41 2017 +0100 Solved spanish fuzzy translation for Geany 1.30 (#1408) po/es.po | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 0b85db49e6ca258746546f9221ee0ec1e1b071b5 Author: Colomban Wendling Date: Tue Feb 21 22:58:01 2017 +0100 GTK: Fix double scrolling under X11 Really restrict smooth scrolling handling to Wayland. X-Scintilla-Bug-URL: https://sourceforge.net/p/scintilla/bugs/1901/ X-Scintilla-Commit-ID: ae52e0c68190d423505624ae1d26e442e015d48f scintilla/gtk/ScintillaGTK.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ed4fd6a5c7f2b4d377e9400e93246ed86d4515df Author: Frank Lanitz Date: Wed Feb 22 18:00:00 2017 +0100 Update po-files for string freeze of Geany 1.30 po/ar.po | 794 +++++++++++++++++++++++++++++---------------------------- po/ast.po | 795 +++++++++++++++++++++++++++++---------------------------- po/be.po | 791 +++++++++++++++++++++++++++++---------------------------- po/bg.po | 795 +++++++++++++++++++++++++++++---------------------------- po/ca.po | 791 +++++++++++++++++++++++++++++---------------------------- po/cs.po | 791 +++++++++++++++++++++++++++++---------------------------- po/el.po | 389 ++++++++++++++-------------- po/en_GB.po | 795 +++++++++++++++++++++++++++++---------------------------- po/es.po | 389 ++++++++++++++-------------- po/et.po | 790 ++++++++++++++++++++++++++++----------------------------- po/eu.po | 794 +++++++++++++++++++++++++++++---------------------------- po/fa.po | 795 +++++++++++++++++++++++++++++---------------------------- po/fi.po | 793 +++++++++++++++++++++++++++++---------------------------- po/fr.po | 791 +++++++++++++++++++++++++++++---------------------------- po/gl.po | 791 +++++++++++++++++++++++++++++---------------------------- po/he.po | 791 +++++++++++++++++++++++++++++---------------------------- po/hi.po | 790 ++++++++++++++++++++++++++++----------------------------- po/hu.po | 791 +++++++++++++++++++++++++++++---------------------------- po/id.po | 830 ++++++++++++++++++++++++++++++------------------------------ po/it.po | 793 +++++++++++++++++++++++++++++---------------------------- po/ja.po | 791 +++++++++++++++++++++++++++++---------------------------- po/kk.po | 791 +++++++++++++++++++++++++++++---------------------------- po/ko.po | 791 +++++++++++++++++++++++++++++---------------------------- po/lb.po | 795 +++++++++++++++++++++++++++++---------------------------- po/lt.po | 797 +++++++++++++++++++++++++++++---------------------------- po/mn.po | 795 +++++++++++++++++++++++++++++---------------------------- po/nl.po | 791 +++++++++++++++++++++++++++++---------------------------- po/nn.po | 789 ++++++++++++++++++++++++++++----------------------------- po/pl.po | 793 +++++++++++++++++++++++++++++---------------------------- po/pt.po | 792 ++++++++++++++++++++++++++++----------------------------- po/pt_BR.po | 791 +++++++++++++++++++++++++++++---------------------------- po/ro.po | 795 +++++++++++++++++++++++++++++---------------------------- po/ru.po | 791 +++++++++++++++++++++++++++++---------------------------- po/sk.po | 791 +++++++++++++++++++++++++++++---------------------------- po/sl.po | 791 +++++++++++++++++++++++++++++---------------------------- po/sr.po | 790 +++++++++++++++++++++++++++++---------------------------- po/sv.po | 791 +++++++++++++++++++++++++++++---------------------------- po/tr.po | 791 +++++++++++++++++++++++++++++---------------------------- po/uk.po | 795 +++++++++++++++++++++++++++++---------------------------- po/vi.po | 795 +++++++++++++++++++++++++++++---------------------------- po/zh_CN.po | 791 +++++++++++++++++++++++++++++---------------------------- po/zh_TW.po | 795 +++++++++++++++++++++++++++++---------------------------- 42 files changed, 16230 insertions(+), 16281 deletions(-) commit 9a230e1f45275d8b293e00d78b06862c20144b24 Author: Colomban Wendling Date: Tue Feb 21 23:15:36 2017 +0100 Fix search history filling on GTK >= 3.20 Since GTK 3.19.12, GtkComboBox has an intermediate GtkBox internal child wrapping the inner GtkEntry. To get the entry, `gtk_bin_get_child()` still works as it is part of the API, but the change breaks the assumption we had that it works the other way around, that `gtk_widget_get_parent(gtk_bin_get_child(combobox)) == combobox`. So, while this assumption seemed reasonable, stop relying on it as it is effectively not correct on GTK 3.20 and newer. See: https://git.gnome.org/browse/gtk+/commit/?id=222c43fc60362eeb97ce2d5e3a5583a69a2e30ef src/search.c | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) commit 93f273428aeecfbf47236c22b85f6a1ecc1dfba0 Author: Colomban Wendling Date: Tue Feb 21 14:16:56 2017 +0100 Update for new Scintilla styles data/filedefs/filetypes.python | 4 ++++ src/highlighting.c | 4 ++++ src/highlightingmappings.h | 4 ++++ 3 files changed, 12 insertions(+) commit 2219ab720cf69362f08bc4506ae6cb6b58007368 Author: Colomban Wendling Date: Tue Feb 21 14:16:23 2017 +0100 Update Scintilla to version 3.7.3 scintilla/gtk/PlatGTK.cxx | 62 +++++++++++--- scintilla/gtk/ScintillaGTK.cxx | 42 ++++++++- scintilla/gtk/ScintillaGTK.h | 2 + scintilla/include/SciLexer.h | 4 + scintilla/include/Scintilla.iface | 8 +- scintilla/lexers/LexDiff.cxx | 4 +- scintilla/lexers/LexLua.cxx | 4 +- scintilla/lexers/LexMatlab.cxx | 33 +++++-- scintilla/lexers/LexPython.cxx | 175 ++++++++++++++++++++++++++++++-------- scintilla/lexlib/WordList.cxx | 10 +-- scintilla/src/Document.cxx | 2 +- scintilla/src/Document.h | 2 +- scintilla/src/EditView.cxx | 10 ++- scintilla/src/EditView.h | 2 +- scintilla/src/Editor.cxx | 6 +- scintilla/src/ScintillaBase.cxx | 2 +- scintilla/src/XPM.cxx | 2 +- scintilla/src/XPM.h | 2 +- scintilla/version.txt | 2 +- 19 files changed, 293 insertions(+), 81 deletions(-) commit f096fa2163c1b05ce1f3b8fd32c050e33d6ef5b3 Author: Frank Lanitz Date: Sun Feb 19 19:14:26 2017 +0100 Small update of German translation po/de.po | 130 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 65 insertions(+), 65 deletions(-) commit ed46b65c00ff3b5c33782a8761c75b47fa953b52 Author: Jiří Techet Date: Thu Feb 16 11:45:46 2017 +0100 Avoid gdk_display_get_name() on OS X More in the comment. src/socket.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 73476315635faab9a30102956362dce19a39ba1a Author: Vasiliy Faronov Date: Thu Feb 16 01:44:53 2017 +0300 Fix setting menu item labels dynamically Fixes https://github.com/geany/geany-plugins/issues/462 src/build.c | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) commit bf4eb8f093ddcf8abec947397ab57a8bb8108800 Author: Jiří Techet Date: Wed Feb 15 12:03:41 2017 +0100 lcpp: use eStrdup() instead of strdup() ctags/main/lcpp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit df0ae9b77a8ffd6ea636f8ae8b7a9a9dd8ae90c2 Author: Jiří Techet Date: Wed Feb 15 12:00:17 2017 +0100 python: minor cleanups ctags/parsers/python.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit e5b5326cc0092aa72149da1a6e32e12565496e52 Author: Jiří Techet Date: Wed Feb 15 11:58:02 2017 +0100 python: Rename corkPair struct to corkInfo ctags/parsers/python.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) commit 3e8365c7f2285c32ef1372f45afd698449a01ac4 Author: Jiří Techet Date: Wed Feb 15 11:50:22 2017 +0100 asciidoc, rest: Remove unnecessary scope assignments Should be handled by cork. ctags/parsers/asciidoc.c | 5 ----- ctags/parsers/rest.c | 5 ----- 2 files changed, 10 deletions(-) commit 617684666a256681d0372b3d2843158e24c3d96b Author: Jiří Techet Date: Wed Feb 15 11:36:56 2017 +0100 Remove unnecessary use of AH_TEMPLATE configure.ac | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit cf6653a4cebec4aaf02e573c487c2cb99767e01c Author: Jiří Techet Date: Wed Feb 15 01:13:57 2017 +0100 Don't check if kind is enabled for library Library users probably want all found tags and decide themselves whether the tag is interesting for them or not. Revert "enabled" values in c.c to their previous values to match uctags as these are ignored now. ctags/main/entry.c | 4 ++++ ctags/parsers/c.c | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) commit 634719aff60d0d607fc81ce60682d7521a4c0e33 Author: Jiří Techet Date: Wed Feb 15 00:35:56 2017 +0100 c.c: Eliminate useless kind_for_define variable ctags/parsers/c.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit d5823ced94cb727bf49a77445885c2df7d9f607c Author: Jiří Techet Date: Wed Feb 15 00:34:34 2017 +0100 c.c: Reinitialize rescan variable in case longjmp() happens ctags/parsers/c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8455f8e70d608bf2cc689af4d335482cc962ea8d Author: Jiří Techet Date: Wed Feb 15 00:31:10 2017 +0100 lcpp, c: Fix signature collection First, make sure that when calling cppGetc() and cppUngetc() the signature is properly updated. Second, make sure that signature is cleared when preparing for new token read. ctags/main/lcpp.c | 10 ++++++++++ ctags/main/lcpp.h | 1 + ctags/parsers/c.c | 1 + tests/ctags/bug507864.c.tags | 4 ++-- 4 files changed, 14 insertions(+), 2 deletions(-) commit 170ebf610f33ac414799f1a841ae01c1e058d567 Author: Colomban Wendling Date: Wed Feb 8 22:39:24 2017 +0100 scintilla: Fix build with older GCC Don't convert function pointer to non-function pointer. This is undefined behavior, and some older GCC don't like it. scintilla/gtk/ScintillaGTKAccessible.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b0f71a166651b65a0a6184b02d90327d696cfea2 Merge: 0df7d5a03 2c1a71ad2 Author: Colomban Wendling Date: Sun Feb 5 17:32:54 2017 +0100 Merge branch 'Forkest/copy-items-nonlatin' Work around incorrect keybinding handling with multiple layouts so cut/copy/delete keybindings work via menuitem activation if we failed to trigger the action ourselves. Closes #1386. commit 2c1a71ad2bbe7bc73abb37cb94f065c0137f84c7 Author: Colomban Wendling Date: Sun Feb 5 15:34:24 2017 +0100 Use :select/:deselect signals for consistency Instead of having a handler on 2 separate objects, use :select and :deselect on the same one. Those signals are appropriate, as the documentation mentions that submenus are popped up on :select. data/geany.glade | 4 ++-- src/callbacks.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) commit 67d6562f203ad1d46969c36be70606fee0b73096 Author: Forkest Date: Sun Feb 5 02:15:22 2017 +0200 Fix cut and copy actions in non-Latin keyboard layouts Mark the associated menu items sensitive when the menu is hidden, so that GTK's accelerator handling can trigger them. This works around incorrect handling in Geany's code of keybindings coming from multiple layouts for cut/copy/delete actions. Partial workaround for #998, #1286 and #1368. data/geany.glade | 1 + src/callbacks.c | 10 ++++++++++ src/ui_utils.c | 15 +++++++++++---- src/ui_utils.h | 2 ++ 4 files changed, 24 insertions(+), 4 deletions(-) commit 0df7d5a03a3f3681294d246d3b3adcf9a9d01485 Author: Colomban Wendling Date: Thu Feb 2 14:33:56 2017 +0100 scintilla: Prevent running signal handlers on a destroyed a11y object Avoid crash when detaching the widget from the accessible object without destroying that widget. In such situations, the widget is still valid but we will have destroyed the orphaned accessible object. Thus, we must make sure we disconnected the signal handlers the late accessible had set up on the widget, as they won't be implicitly disconnected by widget finalization in this case. Fixes #1385. scintilla/gtk/ScintillaGTKAccessible.cxx | 1 + 1 file changed, 1 insertion(+) commit 38d59835dbcf44bba73ea86b8511b60ef8c1626e Author: Robert Antoni Buj Gelonch Date: Tue Jan 24 09:38:15 2017 +0100 Update Catalan translation (#1375) po/ca.po | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) commit 00a3aef94de14f157b27a0fabb9cd19f6d66708a Merge: 59935a357 c6984699d Author: Colomban Wendling Date: Mon Jan 23 14:10:45 2017 +0100 Merge pull request #1361 from Akronix/keywords-js.filetypes Updated filetypes.javascript keywords commit c6984699d3fc9f7055eb25a5362afe990b9c82a6 Author: Abel 'Akronix' Serrano Juste Date: Sat Jan 14 21:26:36 2017 +0100 Removed 'alert' from secondary keywords since it depends on a DOM environment data/filedefs/filetypes.javascript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 59935a3579df0d418cb483aa7f63515210690ce1 Merge: 1724bab3b d4a35947d Author: Colomban Wendling Date: Thu Jan 12 19:39:42 2017 +0100 Merge pull request #1356 from b4n/snippets-keybindings-signature Fix snippets keybindings not blocking handled events commit c328051382385ea663eca73c1bb0aa1d969ef321 Author: Abel 'Akronix' Serrano Juste Date: Wed Jan 11 23:06:23 2017 +0100 Some adjustmenys in javascript keywords: Deleted 'each' from secondary keywords data/filedefs/filetypes.javascript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6fad4c017cf6edcf03ddb78b82f0cfade0d26df7 Author: Abel 'Akronix' Serrano Juste Date: Wed Jan 11 23:05:05 2017 +0100 Updated js keywords with ES6 data/filedefs/filetypes.javascript | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1724bab3b8048d8c37046f0128d85cf5bda523bf Author: Colomban Wendling Date: Wed Jan 11 14:32:37 2017 +0100 scripts/github-news: Fix issues link Closes #1360. scripts/github-news | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d4a35947d31fa1c150d90e3fd1cc6b060baed9a3 Author: Colomban Wendling Date: Mon Jan 9 14:42:20 2017 +0100 Fix snippets keybindings not blocking handled events Fix signature of the snippets keybindings callback, properly blocking further propagation of handled events thus avoiding possibly activating another action (like a builtin Scintilla keybinding). Fixes #1354. src/editor.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 43b7982b2efe48c858e902a14cf33ef57d428ec9 Merge: 4780b2a82 129389c75 Author: Colomban Wendling Date: Mon Jan 9 14:18:16 2017 +0100 Merge pull request #1350 from kugel-/for-upstream api: rework GeanyProxyProbeResults compat symbols as defines commit 4780b2a82751c69975b2bed63eaf4065bc168a87 Author: Frank Lanitz Date: Fri Jan 6 14:52:50 2017 +0100 Update of German translation po/de.po | 323 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 162 insertions(+), 161 deletions(-) commit c914598dbaf12a1b6877f590604d5e4b8c0d439c Author: Colomban Wendling Date: Fri Dec 30 18:29:43 2016 +0100 Update Scintilla to version 3.7.2 scintilla/src/EditView.cxx | 5 +-- scintilla/src/EditView.h | 2 +- scintilla/src/Editor.cxx | 79 +++++++++++++++++++++++-------------------- scintilla/src/Editor.h | 3 +- scintilla/src/PositionCache.h | 17 ++++++++++ scintilla/version.txt | 2 +- 6 files changed, 67 insertions(+), 41 deletions(-) commit 16ea1d35a6fa9cd0164bddf2b2813b7db8e2455e Author: Enrico Tröger Date: Wed Dec 28 23:20:47 2016 +0100 Fix file names of generated tags files for C, PHP and Python scripts/create_c_tags.sh | 2 +- scripts/create_php_tags.py | 4 ++-- scripts/create_py_tags.py | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) commit 59f080d058a0eb6f602e770ee6b71c0c63cabd79 Author: Enrico Tröger Date: Wed Dec 28 22:59:46 2016 +0100 Update tags and filedefs path references in scripts This is a follow-up of #485. scripts/create_c_tags.sh | 2 +- scripts/create_php_tags.py | 4 ++-- scripts/create_py_tags.py | 4 ++-- scripts/update-python-identifiers.sh | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) commit 129389c75bd416c33d10e64cb73017df47c90ab5 Author: Thomas Martitz Date: Wed Dec 28 00:30:54 2016 +0100 api: rework GeanyProxyProbeResults compat symbols as defines Constants with different namespace in the same enum confuse g-ir-scanner. src/plugindata.h | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) commit cad224d204b08f0e0b96f87dfa4bfefadfeb9a77 Merge: a8bc89054 19af3caa7 Author: Colomban Wendling Date: Thu Dec 22 13:54:16 2016 +0100 Merge pull request #1280 from b4n/current-scope Fix the current scope shown in the statusbar commit 19af3caa73a916d51ab9f151bc15015026dbd598 Author: Colomban Wendling Date: Thu Oct 27 17:33:58 2016 +0200 Fix the current scope shown in the statusbar Since the Scintilla C++ lexer started to fold on `()` [1], the code looking up the current scope is confused whenever the function signature spans multiple lines. Fix this by skipping fold levels that correspond to parentheses. Fixes #1279. [1] https://sourceforge.net/p/scintilla/feature-requests/1138/ imported in 24f91981c057a7e212c09da66fb974c3ccc85bd6 src/symbols.c | 48 ++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 4 deletions(-) commit a8bc8905411ff65f825a504966fcf8fbef49af86 Merge: 9fdb014b0 07c665197 Author: Colomban Wendling Date: Tue Dec 20 21:46:28 2016 +0100 Merge branch 'scintilla/accessible-fixes' Fix some various issues with accessibility code in Scintilla. commit 07c665197f8130b293007a7e3d7a58cf51af18fb Author: Colomban Wendling Date: Sun Dec 18 16:36:13 2016 +0100 GTK: Ensure styles are valid when retrieving them for accessibility purposes scintilla/gtk/ScintillaGTKAccessible.cxx | 7 ++++--- scintilla/gtk/ScintillaGTKAccessible.h | 6 ++++++ 2 files changed, 10 insertions(+), 3 deletions(-) commit a31a43efe15a55ea249c2224f6688c9dcf5f5b64 Author: Colomban Wendling Date: Sun Dec 18 16:35:22 2016 +0100 GTK: Fix reporting deletion length in the accessible We cannot compute the length in characters after the text has been deleted, so we need to compute it in BEFOREDELETE. However, we need to emit the signal once the buffer has actually changed, so we need to cache the value in-between those events. scintilla/gtk/ScintillaGTKAccessible.cxx | 10 ++++++++-- scintilla/gtk/ScintillaGTKAccessible.h | 2 ++ 2 files changed, 10 insertions(+), 2 deletions(-) commit 745d15de2e82a636985c32d5ac149416783ef5a6 Author: Colomban Wendling Date: Sun Dec 18 16:35:06 2016 +0100 GTK: Fix off-by-one error in accessible attribute runs scintilla/gtk/ScintillaGTKAccessible.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 2f327b767b1b6659083d0d6e0a1f34ae52fb6a12 Author: Colomban Wendling Date: Sun Dec 18 16:34:20 2016 +0100 GTK: Fix accessible object lifetime on GTK < 3.8 scintilla/gtk/ScintillaGTKAccessible.cxx | 40 ++++++++++++++++---------------- 1 file changed, 20 insertions(+), 20 deletions(-) commit 407cb36cebdc58231c08fbc7f7bb535fcdc0e465 Author: Colomban Wendling Date: Mon Oct 24 12:22:26 2016 +0200 GTK: Add some documentation on accessible object reference ownerships scintilla/gtk/ScintillaGTKAccessible.cxx | 22 ++++++++++++++++++++++ scintilla/gtk/ScintillaGTKAccessible.h | 1 + 2 files changed, 23 insertions(+) commit 9fdb014b073f9035bc8df9b843213a9d1e997ccb Author: Colomban Wendling Date: Sun Dec 18 17:28:23 2016 +0100 javascript: Partial highlighting of ES6 template strings This doesn't support nested templates or escaped `es, but at least handles the most obvious cases for now. Part of #934. data/filedefs/filetypes.javascript | 2 ++ 1 file changed, 2 insertions(+) commit 21b37f553fdcaa37463465bd24d9ca5537800f0a Author: SukkoPera Date: Thu Dec 15 00:21:27 2016 +0100 Add Arduino custom filetype Closes #1339 data/Makefile.am | 1 + data/filedefs/filetypes.Arduino.conf | 44 ++++++++++++++++++++++++++++++++++++ data/filetype_extensions.conf | 3 ++- 3 files changed, 47 insertions(+), 1 deletion(-) commit 9573a3886d92c1ffa28e7aab9afa1fa535d7dd28 Author: tsvisimcha Date: Fri Dec 16 00:27:00 2016 -0800 Update HACKING (#1340) HACKING | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3ddea9c3aefc5efcaf03a2b293d4785d7d5ed9ec Author: Colomban Wendling Date: Sat Dec 10 11:31:50 2016 +0100 Update NEWS for Scintilla 3.7.1 It actually introduces a few new things worth mentioning. NEWS | 10 ++++++++++ 1 file changed, 10 insertions(+) commit aa11c3ea48a67eee384605cace71e3111745b68f Author: Colomban Wendling Date: Mon Dec 5 14:23:34 2016 +0100 Update Scintilla to version 3.7.1 scintilla/Makefile.am | 4 + scintilla/gtk/PlatGTK.cxx | 7 +- scintilla/gtk/ScintillaGTK.cxx | 401 ++++------ scintilla/gtk/ScintillaGTK.h | 287 +++++++ scintilla/gtk/ScintillaGTKAccessible.cxx | 1205 ++++++++++++++++++++++++++++++ scintilla/gtk/ScintillaGTKAccessible.h | 171 +++++ scintilla/include/Platform.h | 4 - scintilla/include/SciLexer.h | 10 + scintilla/include/Scintilla.h | 66 +- scintilla/include/Scintilla.iface | 59 +- scintilla/lexers/LexCPP.cxx | 2 +- scintilla/lexers/LexMatlab.cxx | 117 ++- scintilla/lexers/LexPerl.cxx | 2 +- scintilla/lexers/LexYAML.cxx | 76 +- scintilla/lexlib/LexerModule.h | 2 +- scintilla/scintilla_changes.patch | 5 +- scintilla/src/CaseConvert.cxx | 9 + scintilla/src/CaseConvert.h | 3 + scintilla/src/CellBuffer.h | 16 - scintilla/src/ContractionState.cxx | 32 +- scintilla/src/ContractionState.h | 8 + scintilla/src/Document.cxx | 12 +- scintilla/src/EditModel.cxx | 1 + scintilla/src/EditModel.h | 1 + scintilla/src/EditView.cxx | 236 +++++- scintilla/src/EditView.h | 8 +- scintilla/src/Editor.cxx | 78 +- scintilla/src/Editor.h | 9 +- scintilla/src/Indicator.cxx | 15 +- scintilla/src/Indicator.h | 2 +- scintilla/src/PositionCache.cxx | 8 +- scintilla/src/PositionCache.h | 12 +- scintilla/src/ScintillaBase.cxx | 14 +- scintilla/src/ScintillaBase.h | 4 +- scintilla/src/SparseVector.h | 186 +++++ scintilla/src/ViewStyle.cxx | 13 + scintilla/src/ViewStyle.h | 4 + scintilla/version.txt | 2 +- 38 files changed, 2596 insertions(+), 495 deletions(-) commit 405f772b39f26ed5305d567700edd484dbfcfabb Author: Colomban Wendling Date: Mon Nov 28 11:59:56 2016 +0100 Fix loading the default open encoding option This got broken by 907a79263d907fa354d3b4c6570f33047801dd84 back in 2011 as encoding names started to be compared more permissively, leading to "none" matching the "None" encoding. This shouldn't be too much of a problem as trying the None encoding first should not cause any issue, but fix loading of the option anyway. This however won't restore settings from existing configuration files that used the previous code, as there is no way to tell whether the user selected the None encoding voluntarily or not. src/keyfile.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit cdd12cfaeb2a14d7d58b6be1ef9389bb25bca914 Author: Frank Lanitz Date: Wed Nov 23 18:26:20 2016 +0100 Update NEWS for recent Lithuanian translation update NEWS | 3 +++ 1 file changed, 3 insertions(+) commit 5425e308bc2576320efb7cee42d84ffca5876952 Merge: b29a97321 62a2294a0 Author: Frank Lanitz Date: Wed Nov 23 18:23:18 2016 +0100 Merge branch 'master' of git://github.com/zygimantus/geany commit 62a2294a00932458503acd33ccbae0bb5f882a22 Author: zygimantus Date: Tue Nov 22 23:05:20 2016 +0200 Lithuanian translation changes po/lt.po | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit b29a973217979f8a32e47460cad8b2bac165ef47 Author: Chris Pilkington Date: Fri Nov 18 12:25:03 2016 +1100 Grammar "and the end of lines" -> "at the end of lines" (#1307) po/en_GB.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8330c68a296e611d8d1e147adc793941185f3ff1 Author: Frank Lanitz Date: Fri Nov 18 02:23:50 2016 +0100 Fix a small grammatical issue data/geany.glade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0d29e1b8de605be202aea148e0b8398811b21df1 Author: Colomban Wendling Date: Sun Nov 13 19:06:55 2016 +0100 Update making-a-release to mention new scripts doc/making-a-release | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 26c0d6266eea68d715254fd3a4439a9a9e8789a1 Author: Colomban Wendling Date: Sun Nov 13 19:04:37 2016 +0100 Add a script to set the release date scripts/set-release-date | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit a4990e9da549c9224740a304ddeaf11123c81e48 Author: Colomban Wendling Date: Sun Nov 13 18:48:20 2016 +0100 Add a script to make the version bump scripts/version-bump | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 5241f40dcfe2bf2287c0f81b7b4bbc463873f775 Author: Colomban Wendling Date: Sun Nov 13 18:15:45 2016 +0100 Add a script to convert NEWS to GitHub release format scripts/github-news | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit a0449320b79eeda3e2994e5a004131ce82b69980 Author: Colomban Wendling Date: Sun Nov 13 18:03:47 2016 +0100 Post release version bump Say hello to Geany 1.30 "Calron"! NEWS | 3 +++ configure.ac | 2 +- doc/geany.txt | 2 +- geany.exe.manifest | 2 +- geany_private.rc | 4 ++-- src/geany.h | 2 +- 6 files changed, 9 insertions(+), 6 deletions(-) commit a249866d06b2bd3a214b9c61148c514cf8122dbc Author: Colomban Wendling Date: Sun Nov 13 16:43:45 2016 +0100 Set release date NEWS | 2 +- doc/geany.1.in | 2 +- doc/geany.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit e3b74214771bd3de920d44a8001aa08d4857d774 Author: Enrico Tröger Date: Sun Nov 13 16:35:36 2016 +0100 Update NEWS for Windows related changes NEWS | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 5f879126cecd443d2e1a4be4eacaf8ac1d43ffa8 Merge: 156c64b36 b9605ee02 Author: Colomban Wendling Date: Sun Nov 13 16:29:43 2016 +0100 Merge pull request #1095 from eht16/issue1076_win32_build_working_dir_locale Windows: Improve executing external commands on non-ASCII paths, effectively fixing most known issues. commit 156c64b36cb0bed389c457629d5d5aad3ee845c0 Merge: 88137b9b0 973a72157 Author: Enrico Tröger Date: Sun Nov 13 15:12:59 2016 +0000 Merge pull request #1301 from eht16/issue1229_win_grep_from_msys2 Use pre-compiled 'grep' binary from MSYS2 on Windows commit b9605ee02eb389cb16abb5cd00d8e4f1da4fe042 Author: Enrico Tröger Date: Sun Nov 13 13:56:13 2016 +0100 Windows: install and remove new run script helper in the installer geany.nsi.in | 4 ++++ 1 file changed, 4 insertions(+) commit d61b92f20260389222d2ab5fd48a65825afb363c Author: Enrico Tröger Date: Sun Nov 13 01:51:00 2016 +0100 Revert "Implement the run helper as a script" on non-Windows This restores the previous behavior as it has been on non-Windows systems before. Post-1.29 we will merge #1300 which implements run helper script support for non-Windows systems more sophisticated. src/Makefile.am | 2 -- src/build.c | 86 ++++++++++++++++++++++++++++++++++++++++++++-------- src/geany-run-helper | 28 ----------------- 3 files changed, 74 insertions(+), 42 deletions(-) commit f1f577ea72352b4d6010f87cd8097179d0642d54 Author: Colomban Wendling Date: Sat Nov 12 18:50:45 2016 +0100 spawn: Don't depend on utils.h, and fix locale compat on Windows utils_get_utf8_from_locale() is actually a no-op on Windows, so use the GLib conversion directly. We really mean locale here, not "filename encoding". src/Makefile.am | 4 ++-- src/build.c | 6 +++++- src/geany-run-helper | 5 ++++- src/geany-run-helper.bat | 5 ++++- src/spawn.c | 18 +++++++++++++----- src/win32.c | 0 src/win32.h | 0 7 files changed, 28 insertions(+), 10 deletions(-) commit 1d5d4e278ab5a9e4f364f4534e39048f613748b4 Author: Colomban Wendling Date: Sat Nov 12 11:59:46 2016 +0100 Implement the run helper as a script Apparently using arguments instead of putting paths directly in the script is enough for it to work on Windows, so use a simple script instead of a program, so it's both shorter and easier to tune. src/Makefile.am | 10 ++- src/build.c | 37 +++++---- src/geany-run-helper | 25 ++++++ src/geany-run-helper.bat | 27 ++++++ src/geany-run-helper.c | 208 ----------------------------------------------- src/win32.c | 45 +++------- src/win32.h | 4 - 7 files changed, 88 insertions(+), 268 deletions(-) commit 265e27a7f31b470f5845d8831def9b6a34776025 Author: Colomban Wendling Date: Wed Nov 9 19:38:28 2016 +0100 Use a program run helper rather than a script This removes all encoding issues from passing on a script to cmd.exe on Windows, as it now uses proper wide character API there. Not much changes on other OSes, but we don't create temporary scripts anymore. src/Makefile.am | 7 ++ src/build.c | 102 ++++++------------------ src/geany-run-helper.c | 208 +++++++++++++++++++++++++++++++++++++++++++++++++ src/prefix.h | 1 + src/utils.c | 3 + src/utils.h | 1 + 6 files changed, 243 insertions(+), 79 deletions(-) commit a45091413a0dae1bc72546281210674fa250db5c Author: Colomban Wendling Date: Mon Nov 7 15:47:19 2016 +0100 spawn: Use Wide API on Windows Try and use Unicode variants of the Windows process creation API in order to support filenames (and possibly environment) outside the locale codepage. WARNING: Implications on using Unicode environment are unknown. It might affect the called process, or not, not sure. src/spawn.c | 123 ++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 66 insertions(+), 57 deletions(-) commit 26adcabd694014328f61b3ca5fe0d5be610849c0 Author: Enrico Tröger Date: Tue Jun 28 16:46:46 2016 +0200 Windows: Convert generated batch script into system codepage Instead of fiddling with the "chcp" command in the generated batch script on Windows, convert the whole script content into the system codepage before executing it. src/build.c | 15 +++---- src/spawn.c | 129 +++++++++++++++++++++++++++++++++++++----------------------- src/win32.c | 22 ++++++++++- src/win32.h | 2 + 4 files changed, 110 insertions(+), 58 deletions(-) commit 127e94199ba92f2584d9c83fb90126e42265bbb9 Author: Enrico Tröger Date: Tue Jun 28 00:36:20 2016 +0200 Windows: Convert working directory into locale encoding before spawning commands The working directory is passed in in UTF-8 encoding but Windows API expects locale encoding here, so convert it. Fixes #1076. src/build.c | 9 ++++++++- src/spawn.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++-- src/win32.c | 12 ++++++++++++ src/win32.h | 2 ++ 4 files changed, 68 insertions(+), 3 deletions(-) commit 973a721574364f10995eb94a03e501e4c60c1d56 Author: Enrico Tröger Date: Sun Nov 13 11:33:59 2016 +0100 Use pre-compiled 'grep' binary from MSYS2 on Windows This drops the self-compiled 'grep' version which caused issues with recursive searches on Windows as well as with non-ASCII characters in paths. The pre-compiled 'grep' binary from MSYS2 (matching the target ABI) seems to solve probably all of the known problems on Windows. The only drawback is that we need to ship a few additional MSYS2 libraries on which the 'grep' binary depends. Closes #1229 and #1260. scripts/gtk-bundle-from-msys2.sh | 46 +++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 20 deletions(-) commit 88137b9b087325465644ee892d1b4eb19bcbd01a Author: Frank Lanitz Date: Sun Nov 13 13:35:46 2016 +0100 Update of German translation po/de.po | 417 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 207 insertions(+), 210 deletions(-) commit fdd9768978b0ead00483e82d68cb0a5373d7f26e Author: Frank Lanitz Date: Sun Nov 13 13:33:16 2016 +0100 Fix a little inside NEWS NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a74a6af2574d2b24b000f1e14fa9a0802db7d88a Author: Frank Lanitz Date: Sat Nov 12 17:19:40 2016 +0100 Another small update of Dutch translation po/nl.po | 64 +++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 31 insertions(+), 33 deletions(-) commit 2e97ec493ea79f6126e0650c826de726a10a9dad Author: Frank Lanitz Date: Fri Nov 11 09:22:20 2016 +0100 Update of Greek translation NEWS | 2 +- po/el.po | 539 +++++++++++++++++++++++++++++++-------------------------------- 2 files changed, 270 insertions(+), 271 deletions(-) commit 16760235bd333fd7c83c7be59a742f07c5263d2f Author: Frank Lanitz Date: Mon Nov 7 17:32:14 2016 +0100 NEWS: Update updates translations NEWS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0890d74b0e6f0c92792211e692f760c451ccc3c5 Author: Frank Lanitz Date: Mon Nov 7 17:26:20 2016 +0100 Update of Spanish translation po/es.po | 435 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 217 insertions(+), 218 deletions(-) commit 5753b3c15da8ecd2031b4cfdeabfeaa3339854fb Author: Peter C. S. Scholtens Date: Mon Nov 7 17:17:10 2016 +0100 Update of Dutch transation. (#1289) * Update of Dutch transation. * Update nl.po po/nl.po | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) commit 42a9098959c2b05f33bb8caef9d40e3ed58c4b3a Author: 柳东原 LIU Dongyuan Date: Tue Nov 8 00:15:06 2016 +0800 Update zh_CN translation (#1292) po/zh_CN.po | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit 513659372463af2cd24319f39dec4836572746c3 Author: Andrej Herceg Date: Sat Nov 5 23:50:50 2016 +0100 Update of Slovak translation (#1291) po/sk.po | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) commit e1450f5dea6b7f19d7a523cb08d500ae1b965f1b Author: Abel Serrano Juste Date: Thu Nov 3 08:15:46 2016 +0100 Updated spanish translation es.po (#1288) po/es.po | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) commit b9c8abb4b80a6cc7a5067f4b9bbb11878b6abbc1 Author: Colomban Wendling Date: Tue Nov 1 11:23:11 2016 +0100 Small NEWS updates NEWS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 743e30ddea398915449f86ff547a684d7f7d56fc Merge: 96b11092f b0cb8440b Author: Colomban Wendling Date: Tue Nov 1 11:10:25 2016 +0100 Merge pull request #1181 from b4n/vte-2.91 Support for VTE 2.91 commit 96b11092f74588b0f0fac50cb774e701784d13b9 Author: Giuseppe Date: Tue Nov 1 07:45:51 2016 +0000 updated it.po (#1285) po/it.po | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit ac5c261c0b7f0220e292f49f7a9ad1805bb1e5d0 Author: Baurzhan Muftakhidinov Date: Mon Oct 31 14:00:43 2016 +0500 Update Kazakh translation. (#1284) po/kk.po | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) commit 3d6524ea90e6186369b4710f0dce76a3cec27e7f Author: Bervianto Leo Pratama Date: Mon Oct 31 15:58:18 2016 +0700 Update Indonesian Translation (#1283) "kata" should not in there. po/id.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 689f32e861da87793f9c36f78139f05a62ed575d Author: Frank Lanitz Date: Sun Oct 30 18:13:03 2016 +0100 Update of Portuguese translation NEWS | 2 +- po/pt.po | 21 +++++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) commit 869457377e19549b82265fe3aa07ff4f9dd0ad4e Author: Frank Lanitz Date: Sun Oct 30 12:59:58 2016 +0100 Added es as updated translation NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 02cd961edd569962f4e90bfcd70595e963c2cf3e Author: FabianInostroza Date: Sun Oct 30 08:59:13 2016 -0300 Better translation. (#1242) po/es.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6db87912c6cf064f82a8eb1f2c48276a59d5abd0 Author: Frank Lanitz Date: Sun Oct 30 12:56:18 2016 +0100 Add update trnaslations NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 805fee50ea534b73eb33c5f10cfc3ebbaa41e5b5 Author: Frank Lanitz Date: Sun Oct 30 12:55:02 2016 +0100 Fix some typos in Catalan translation. This is based upon PR #1273 but ported manually. po/ca.po | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) commit 41102a6c2e141cb3e00c2490e9f65b4e1ba674a6 Author: Frank Lanitz Date: Sun Oct 30 12:47:31 2016 +0100 i18n: Indonesian seems to only have one plural form po/id.po | 7 ------- 1 file changed, 7 deletions(-) commit 93ab56fd7876931953305690905bff0e99dd6c2c Author: Frank Lanitz Date: Sun Oct 30 12:45:25 2016 +0100 i18n: Adding plural form definition for Indonesian po/id.po | 1 + 1 file changed, 1 insertion(+) commit 879249b638fbdaeff19e8646b9e07e054a821d36 Merge: af79e6bb5 9bb459d53 Author: Frank Lanitz Date: Sun Oct 30 12:43:09 2016 +0100 Update Indonesian translation commit 9bb459d53e9a88f3154439e736f2328bc3ebe41e Author: Bervianto Leo Pratama Date: Sun Oct 30 16:33:11 2016 +0700 Update id.po po/id.po | 12 ------------ 1 file changed, 12 deletions(-) commit fb081f77320cb4a375e3399d8afb10e932f2bd11 Author: bervianto <13514047@std.stei.itb.ac.id> Date: Sun Oct 30 23:08:14 2016 +0700 update id.po po/id.po | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 4695f6f2aa8f72e7d16c596922eb9477fc2f021f Merge: ee16fdca5 5b588f67b Author: bervianto <13514047@std.stei.itb.ac.id> Date: Sun Oct 30 23:05:20 2016 +0700 rebase commit 5b588f67b595209bdf2de4a1434a47796f47c78a Author: bervianto <13514047@std.stei.itb.ac.id> Date: Sun Oct 30 23:02:23 2016 +0700 Update id.po po/id.po | 74 +++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 36 insertions(+), 38 deletions(-) commit 38d2fb9df1be93eebfe0c94197293bf20afb1b60 Author: Bervianto Leo Pratama Date: Sat Oct 29 02:42:57 2016 +0700 Improvement Indonesian Translation Change with kata baku in Indonesia po/id.po | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) commit 361642b7b5c3af1dc1b27b8291b3d57472b31aeb Author: Bervianto Leo Pratama Date: Sat Oct 29 02:02:45 2016 +0700 Update id.po po/id.po | 91 ++++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 45 insertions(+), 46 deletions(-) commit 5056a855b3cd52def1144feaff036330b5a46091 Author: Bervianto Leo Pratama Date: Fri Oct 28 12:12:52 2016 +0700 Update id.po po/id.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ee16fdca50a8a989855b41b669f241f4b3a52f21 Author: Bervianto Leo Pratama Date: Sat Oct 29 03:27:34 2016 +0700 Update id.po po/id.po | 6661 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 6659 insertions(+), 2 deletions(-) commit af79e6bb5d7608065fcf68294f9ea1402b246a47 Author: Frank Lanitz Date: Sat Oct 29 20:38:27 2016 +0200 Update po files in preperation of 1.29 cycle po/ar.po | 1268 +++++++++++++++++---------------- po/ast.po | 1269 +++++++++++++++++---------------- po/be.po | 1269 +++++++++++++++++---------------- po/bg.po | 1269 +++++++++++++++++---------------- po/ca.po | 2272 ++++++++++++++++++++++++++++++++--------------------------- po/cs.po | 1269 +++++++++++++++++---------------- po/de.po | 64 +- po/el.po | 1278 ++++++++++++++++----------------- po/en_GB.po | 1269 +++++++++++++++++---------------- po/es.po | 1285 ++++++++++++++++----------------- po/et.po | 1269 +++++++++++++++++---------------- po/eu.po | 1269 +++++++++++++++++---------------- po/fa.po | 1269 +++++++++++++++++---------------- po/fi.po | 1269 +++++++++++++++++---------------- po/fr.po | 54 +- po/gl.po | 1269 +++++++++++++++++---------------- po/he.po | 1269 +++++++++++++++++---------------- po/hi.po | 1267 +++++++++++++++++---------------- po/hu.po | 1278 ++++++++++++++++----------------- po/id.po | 1278 ++++++++++++++++----------------- po/it.po | 1278 ++++++++++++++++----------------- po/ja.po | 1289 ++++++++++++++++----------------- po/kk.po | 1269 +++++++++++++++++---------------- po/ko.po | 1269 +++++++++++++++++---------------- po/lb.po | 1269 +++++++++++++++++---------------- po/lt.po | 1269 +++++++++++++++++---------------- po/mn.po | 1267 +++++++++++++++++---------------- po/nl.po | 1278 ++++++++++++++++----------------- po/nn.po | 1267 +++++++++++++++++---------------- po/pl.po | 1269 +++++++++++++++++---------------- po/pt.po | 1278 ++++++++++++++++----------------- po/pt_BR.po | 1269 +++++++++++++++++---------------- po/ro.po | 1269 +++++++++++++++++---------------- po/ru.po | 1278 ++++++++++++++++----------------- po/sk.po | 1276 ++++++++++++++++----------------- po/sl.po | 1269 +++++++++++++++++---------------- po/sr.po | 1269 +++++++++++++++++---------------- po/sv.po | 1278 ++++++++++++++++----------------- po/tr.po | 1279 ++++++++++++++++----------------- po/uk.po | 1268 +++++++++++++++++---------------- po/vi.po | 1269 +++++++++++++++++---------------- po/zh_CN.po | 1276 ++++++++++++++++----------------- po/zh_TW.po | 1269 +++++++++++++++++---------------- 43 files changed, 27099 insertions(+), 26175 deletions(-) commit 638b999e8eeea79c50ee37530a73d5b49ae82c03 Author: Colomban Wendling Date: Sat Oct 29 17:11:55 2016 +0200 Update NEWS for recent items NEWS | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit b7839a6e421431c8fa83204db351ccee3411cce1 Author: Matthew Brush Date: Sat Sep 10 18:28:15 2016 -0700 Add "project-before-close" signal to API Closes #1223. doc/pluginsignals.c | 9 +++++++++ src/geanyobject.c | 6 ++++++ src/geanyobject.h | 1 + src/plugindata.h | 2 +- src/project.c | 2 ++ 5 files changed, 19 insertions(+), 1 deletion(-) commit b0cb8440b15b08368d28ae643ad9ed051969969e Author: Colomban Wendling Date: Mon Aug 22 15:03:46 2016 +0200 VTE: Respect GTK setting for whether to show the IM method menu src/vte.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit 6cdb1842be9e3a5ff8fe994c44ed212b26575e7b Author: Colomban Wendling Date: Fri Aug 19 01:49:12 2016 +0200 VTE: Remove support for background image It's a more than questionable feature that was dropped in VTE 2.91, so remove it altogether instead of conditionally supporting it. data/geany.glade | 76 ++++++++------------------------------------------------ src/keyfile.c | 2 -- src/prefs.c | 7 ------ src/vte.c | 10 -------- src/vte.h | 1 - 5 files changed, 10 insertions(+), 86 deletions(-) commit 16e90968c7d01d7435b2f21f8ea7fc89c6d7f46a Author: Colomban Wendling Date: Fri Aug 19 01:48:09 2016 +0200 VTE: add VTE 2.91 DSO names src/vte.c | 1 + 1 file changed, 1 insertion(+) commit f4b4f2b540452e34e1cdaf1b256b1a9d35ae712e Author: Colomban Wendling Date: Fri Aug 19 00:23:34 2016 +0200 VTE: Don't hard-require vte_terminal_im_append_menuitems() VTE 2.91 dropped it, and it seems that recent GTK3 doesn't have IM context menu entries in input field's popups anymore anyway. src/vte.c | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) commit 65710c526a5c605705cbaf8c333ea86d898f5845 Author: Colomban Wendling Date: Fri Aug 19 00:20:31 2016 +0200 VTE: Add support for 2.91 GdkRGBA API variant The 2.91 API switched from GdkColor to GdkRGBA, but kept the same function names, so we need to detect this version and wrap the affected API to convert our GdkColors to GdkRGBAs. src/vte.c | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 81 insertions(+), 7 deletions(-) commit 65e2c7cb05916debb919b6f6d1b60e7e711e0b1d Author: Colomban Wendling Date: Fri Aug 19 00:12:39 2016 +0200 VTE: don't hard-require vte_terminal_set_word_chars() VTE 0.38 removed it, so only use it when available. With >= 0.40, use vte_terminal_set_word_char_exceptions() instead. src/vte.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 5c757d9ec2f088709a6b743660168af52f301017 Author: Colomban Wendling Date: Thu Sep 25 16:52:05 2014 +0200 VTE: add debugging info to known which library was actually loaded src/vte.c | 1 + 1 file changed, 1 insertion(+) commit 079fe58ce9e75be3be2dbf8bae5be01024d937be Author: Colomban Wendling Date: Thu Sep 25 16:50:46 2014 +0200 VTE: add support for vte_terminal_spawn_sync() VTE 0.38 removed vte_terminal_fork_command() in favor of the new vte_terminal_spawn_sync(), so add support for this. src/vte.c | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) commit f789aa138d1f43532998bfc61c642f9abd64ff0f Author: Colomban Wendling Date: Thu Sep 25 16:18:32 2014 +0200 VTE: drop support for selecting the emulated terminal VTE 0.38 dropped the capability to emulate various terminals to only support xterm. This shouldn't be so much of a problem for us, as our setting to select the emulated terminal is hidden since 2008 and defaults to xterm since forever, and xterm is highly compatible. doc/geany.txt | 3 --- src/keyfile.c | 3 --- src/vte.c | 4 ---- src/vte.h | 1 - 4 files changed, 11 deletions(-) commit 20cb94255bd132c7ff1370cd3fd62b6cfd15e1c6 Author: Colomban Wendling Date: Thu Sep 25 16:07:00 2014 +0200 VTE: stop using vte_terminal_set_font_from_string() vte_terminal_set_font_from_string() has been removed in 0.38, so use vte_terminal_set_font() instead. src/vte.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit d27831fa30998c4404676777469ccac518d17719 Author: Colomban Wendling Date: Thu Sep 25 14:47:37 2014 +0200 VTE: use proper accessor for the vertical adjustment Use vte_terminal_get_adjustment() to get the adjustment, and provide an appropriate default implementation for use if it isn't available (on VTE < 0.9 or > 0.36). src/vte.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) commit 931df75faa4a48ea248e157e18360b06481c4d05 Merge: ae114e263 85a2f4bc6 Author: Colomban Wendling Date: Sat Oct 29 15:35:21 2016 +0200 Merge pull request #1233 from b4n/proxy/dotted-extension-warning-only Do not strip dots from proxy plugin extensions commit 85a2f4bc6fbb9f3f5f4de26b676ae0120554b707 Author: Colomban Wendling Date: Fri Sep 16 11:48:31 2016 +0200 Do not strip dots from proxy plugin extensions Only warn when an extension starts with a dot, because it's unlikely to be what the author wanted, but leave the dot there. This forces the author to fix the extension instead of ignoring the warning. Also, include the proxy plugin name in the warning message. Follow-up to #1212. src/plugins.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) commit ae114e263c058f44738484c6da7ba1207beb0451 Merge: 6f54690b0 bee3806d4 Author: Colomban Wendling Date: Sat Oct 29 15:15:43 2016 +0200 Merge pull request #1185 from b4n/error-indic-color Allow to configure the error indicator color commit 054576e972ccb3dce8cd63a954589241deb68633 Author: Bervianto Leo Pratama Date: Sat Oct 29 03:02:56 2016 +0700 Update id.po po/id.po | 6660 +------------------------------------------------------------- 1 file changed, 2 insertions(+), 6658 deletions(-) commit 7b875dc96f3b92bcbeed5add6c3d66ec0f9128ea Author: Bervianto Leo Pratama Date: Sat Oct 29 03:01:37 2016 +0700 Update id.po po/id.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bc9facd815c14f34bfc63f3c7300dda0bb5e7ce5 Author: Bervianto Leo Pratama Date: Sat Oct 29 02:42:57 2016 +0700 Improvement Indonesian Translation Change with kata baku in Indonesia po/id.po | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) commit 124dd24ad71937ba8dfa101f10594fc68fda865a Author: Bervianto Leo Pratama Date: Sat Oct 29 02:02:45 2016 +0700 Update id.po po/id.po | 91 ++++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 45 insertions(+), 46 deletions(-) commit c4307ce11de3e79d6a25bd4b5342525934d48659 Author: Bervianto Leo Pratama Date: Fri Oct 28 12:12:52 2016 +0700 Update id.po po/id.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 6f54690b0b94e8750dd769d3f0c90c7f7732b1a2 Author: Colomban Wendling Date: Thu Oct 27 10:30:55 2016 +0200 Small update of the French translation po/fr.po | 1255 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 638 insertions(+), 617 deletions(-) commit 460f8dec00df5e3cf1d4f1185f4ebf9d018e9048 Author: Frank Lanitz Date: Mon Oct 24 20:18:17 2016 +0200 Update of German translation po/de.po | 1236 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 629 insertions(+), 607 deletions(-) commit 0a6acff8186aa372e8a906ad627acf27fa9dbad8 Author: Jiří Techet Date: Mon Oct 24 14:52:11 2016 +0200 Remove mbcs.c/h Currently unused by Geany. ctags/Makefile.am | 2 - ctags/main/mbcs.c | 112 ------------------------------------------------------ ctags/main/mbcs.h | 22 ----------- 3 files changed, 136 deletions(-) commit efc40f40075d8281e0a2827e48cd89e3e7c6d140 Author: Jiří Techet Date: Mon Oct 24 13:11:43 2016 +0200 #if 0 most of options.c We don't need command-line options parsing so we can remove most of the file. Add dummy implementations of functions called from elsewhere. ctags/main/options.c | 40 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) commit 40ed52cf6472fdbc99681a3358a5bec87b428812 Author: Jiří Techet Date: Mon Oct 24 12:47:50 2016 +0200 Remove output writer implementations Not needed by Geany, just keep dummy implementation so we don't have to change the rest of the files. ctags/Makefile.am | 3 - ctags/main/output-ctags.c | 221 ++++++---------------------------------------- ctags/main/output-etags.c | 107 ---------------------- ctags/main/output-json.c | 189 --------------------------------------- ctags/main/output-xref.c | 60 ------------- 5 files changed, 28 insertions(+), 552 deletions(-) commit bee3806d47aed09f495bb74dbd6b48032a70f166 Author: Colomban Wendling Date: Sun Aug 21 14:20:21 2016 +0200 Allow to configure the error indicator color Related to #1116. data/filedefs/filetypes.common | 3 +++ doc/geany.txt | 7 +++++++ src/highlighting.c | 5 ++++- 3 files changed, 14 insertions(+), 1 deletion(-) commit dba7c763eddee4575d06b0b732920e61c05f0b3a Merge: 6834c5a83 9fa27cb16 Author: Colomban Wendling Date: Mon Oct 24 11:31:24 2016 +0200 Merge pull request #1272 from b4n/splitwindow/show-menu-gtk316 splitwindow: Fix document selection popup on GTK >= 3.15.9 && <= 3.21.4 commit 6834c5a830a3e446a89560fb04a207f099acf5de Author: Colomban Wendling Date: Sun Oct 23 10:41:27 2016 +0200 GTK: Don't forward calls to NULL scrollbars Once Dispose() has been called, scrollbars will be NULL, so we need to check against this in code that might run after Dispose(). Fixes scary warnings on certain widget destruction scenarios. Closes #993. X-Scintilla-Bug-URL: https://sourceforge.net/p/scintilla/bugs/1873/ X-Scintilla-Commit-ID: 4e67e6ee45732a048907ef1577cf1efc25729313 scintilla/gtk/ScintillaGTK.cxx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 605bfa833949bb29178cb4e1ec639ec9c011f38c Author: Colomban Wendling Date: Sun Oct 23 16:27:32 2016 +0200 Update NEWS preparing for next release NEWS | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) commit 9fa27cb16ba6f82489fa91514052854774f000f6 Author: Colomban Wendling Date: Sat Oct 22 15:09:50 2016 +0200 splitwindow: Fix document selection popup on GTK >= 3.15.9 && <= 3.21.4 Works around GTK bug https://bugzilla.gnome.org/show_bug.cgi?id=769287. Stop emission of the ::show-menu signal if it was first emitted from an inactive toggle button, which happens only in the buggy case. This workaround tries to not negatively affect a correctly behaving GTK version in the unlikely case some distributions patched their version. Fixes #1149. plugins/splitwindow.c | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) commit 21845805c696ecb95f7f970f55e472b9b62422c8 Merge: f5c4b1b6e dd4c851ca Author: Colomban Wendling Date: Fri Oct 21 14:47:26 2016 +0200 Merge pull request #1200 from b4n/terminal-focus Fix focusing the Terminal tab in the message window commit f5c4b1b6e52f556d1abbd17d2c707b1e6223d70d Author: Colomban Wendling Date: Sun Oct 16 22:37:40 2016 +0200 Update Scintilla to version 3.7.0 scintilla/include/SciLexer.h | 59 ++--- scintilla/include/Scintilla.h | 10 + scintilla/include/Scintilla.iface | 332 ++++++++++++++----------- scintilla/lexers/LexCoffeeScript.cxx | 72 +++++- scintilla/lexers/LexPowerShell.cxx | 2 + scintilla/lexers/LexYAML.cxx | 24 +- scintilla/lexlib/CharacterSet.cxx | 8 +- scintilla/lexlib/CharacterSet.h | 9 +- scintilla/lexlib/StyleContext.cxx | 17 ++ scintilla/lexlib/StyleContext.h | 23 +- scintilla/lexlib/WordList.cxx | 60 +++++ scintilla/lexlib/WordList.h | 1 + scintilla/src/Document.cxx | 462 ++++++++++++++++++++++++++--------- scintilla/src/Document.h | 36 +-- scintilla/src/EditView.cxx | 62 +++-- scintilla/src/Editor.cxx | 75 ++++-- scintilla/src/Editor.h | 2 + scintilla/src/MarginView.cxx | 5 +- scintilla/src/SplitVector.h | 22 +- scintilla/src/ViewStyle.cxx | 16 +- scintilla/src/ViewStyle.h | 20 +- scintilla/version.txt | 2 +- 22 files changed, 920 insertions(+), 399 deletions(-) commit b8df6e02adc5ceb41b72e72dc1d527affb45dcd1 Author: Jiří Techet Date: Sat Oct 15 19:40:17 2016 +0200 Eliminate use of fnmatch() which isn't present on MINGW We could add the fnmatch implementation from uctags (see the fnmatch directory) but since we don't use fileNameMatched(), we can just drop it. ctags/main/strlist.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 0dd9f3a36291c9bf2bacfc22b756b08f1c032020 Author: Jiří Techet Date: Sat Oct 15 19:24:20 2016 +0200 Eliminate use of regex from read.c readLineFromBypassSlow() isn't used in Geany so we can drop it for now. Preferably in the future part of this code should be moved to lregex.c. ctags/main/read.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 09e13d50cf9227f082c1a2c6dc3ca6b37167f810 Author: Jiří Techet Date: Sat Oct 15 18:17:57 2016 +0200 Don't compile bigger part of main for CTAGS_LIB Without this clock_t definition is missing (haven't investigated why) but we don't need the stuff from main anyway. ctags/main/main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0633a2815655fee8658866ffcf48899332fe5c4c Author: Jiří Techet Date: Sat Oct 15 18:06:38 2016 +0200 Remove -Werror=aggregate-return from travis flags There are functions like MIOPos getInputFilePosition (void); which return (small) aggregate but which aren't anything wrong we should worry about. The flag is a bit too strict. .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 38403d1ca0a5b7391bee1cb8fcdd3d1d2061c681 Author: Jiří Techet Date: Sat Oct 15 16:55:52 2016 +0200 Annotate geany-specific diffs This makes it clearer to see which diffs are related to Geany. Only for files which are synced, not e.g. for lcpp where changes are everywhere. ctags/main/entry.c | 4 ++++ ctags/main/entry.h | 2 ++ ctags/main/options.c | 4 ++++ ctags/main/options.h | 2 ++ 4 files changed, 12 insertions(+) commit e1b4d1409771c06f1d54db0e299fbaab7b109b9f Author: Jiří Techet Date: Sat Oct 15 16:43:14 2016 +0200 Add the remaining missing files from uctags ctags/Makefile.am | 6 + ctags/main/mbcs.c | 112 +++++++++++++++ ctags/main/mbcs.h | 22 +++ ctags/main/objpool.c | 79 ++++++++++ ctags/main/objpool.h | 39 +++++ ctags/main/selectors.c | 382 +++++++++++++++++++++++++++++++++++++++++++++++++ ctags/main/selectors.h | 35 +++++ 7 files changed, 675 insertions(+) commit 06f1a19c4b38fbe2663daabb460d0c5d8d525439 Author: Jiří Techet Date: Sat Oct 15 16:29:40 2016 +0200 Make LanguageTable variable private in parse.c This requires having some accessor to LanguageTable for the API functions which is done by getParserDefinition(). ctags/main/ctags-api.c | 8 ++++---- ctags/main/parse.c | 11 +++++++++-- ctags/main/parse.h | 4 ++-- 3 files changed, 15 insertions(+), 8 deletions(-) commit 3390e2acc87925fe9ad268da3d9630eafe69a4d7 Author: Jiří Techet Date: Sat Oct 15 15:16:45 2016 +0200 Move ctags "API" from Geany to ctags This commit basically just moves stuff from tm_ctags_wrappers.c/h to ctags. The "api.h" file has been renamed to "ctags-api.h" to make it clearer it belongs to ctags when included. The code also tries to completely isolate ctags from the caller; previously we were using tagEntryInfo to pass information to Geany. This however required including entry.h which added lots of other stuff we don't want in the API. Instead create an auxiliary struct that holds all the needed information from tagEntryInfo (currently only the stuff used by Geany) and copy all the info from tagEntryInfo before invoking the callback. ctags/Makefile.am | 4 +- ctags/main/api.c | 17 ---- ctags/main/api.h | 19 ----- ctags/main/ctags-api.c | 141 ++++++++++++++++++++++++++++++++ ctags/main/ctags-api.h | 56 +++++++++++++ ctags/main/entry.c | 23 +++++- ctags/main/entry.h | 2 +- ctags/main/parse.h | 2 +- src/tagmanager/Makefile.am | 4 +- src/tagmanager/tm_ctags_wrappers.c | 162 ------------------------------------- src/tagmanager/tm_ctags_wrappers.h | 65 --------------- src/tagmanager/tm_parser.c | 18 ++--- src/tagmanager/tm_source_file.c | 48 +++++------ src/tagmanager/tm_tag.c | 2 +- src/tagmanager/tm_workspace.c | 4 +- 15 files changed, 260 insertions(+), 307 deletions(-) commit 32dfa2878ac69140e781482c5b6520bc6c056f44 Author: Jiří Techet Date: Sat Oct 15 00:14:37 2016 +0200 Some initial work on ctags as a library Protect library-specific stuff by CTAGS_LIB macro which also makes it better visible what changes had to be made to convert ctags into library. Changes which need further Geany sync and aren't library-related aren't protected by the macro. Move things from geany.c/h to the locations where they belong and rename geany.c/h to api.c/h into which API-like functions will be moved in the next commits (mostly things from tm_ctags_wrappers.c/h). Add complete main.c from uctags and just remove main() using the CTAGS_LIB macro. configure.ac | 2 + ctags/Makefile.am | 4 +- ctags/main/api.c | 17 ++ ctags/main/api.h | 19 ++ ctags/main/entry.c | 28 +- ctags/main/entry.h | 5 + ctags/main/geany.c | 97 ------- ctags/main/geany.h | 23 -- ctags/main/main.c | 545 +++++++++++++++++++++++++++++++++++++ ctags/main/options.c | 70 ++++- ctags/main/options.h | 1 + ctags/main/parse.c | 95 ++++++- ctags/main/parse.h | 4 +- ctags/main/read.c | 2 + ctags/main/read.h | 2 + ctags/parsers/c.c | 1 - src/tagmanager/tm_ctags_wrappers.c | 2 +- 17 files changed, 780 insertions(+), 137 deletions(-) commit 29d801aa7bd44000728327da3f4c09b329ec996e Author: Jiří Techet Date: Fri Oct 14 23:28:30 2016 +0200 tmp ctags/main/field.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f82218ab07500aca28016772f3301cbc441f91ac Author: Jiří Techet Date: Fri Oct 14 23:26:59 2016 +0200 Sync error.c completely and create a custom error printer Make sure the custom error printer never ends with fatal errors terminating the application. ctags/main/error.c | 4 ++-- src/tagmanager/tm_ctags_wrappers.c | 21 ++++++++++++++++++++- 2 files changed, 22 insertions(+), 3 deletions(-) commit c56047be5af44718d49e4c293ddccb0f34edb507 Author: Jiří Techet Date: Fri Oct 14 22:59:10 2016 +0200 Some minor syncs ctags/main/entry.h | 1 - ctags/main/parse.c | 2 -- 2 files changed, 3 deletions(-) commit de214944e8bf971a659cb5f832501dc53cdebc96 Author: Jiří Techet Date: Fri Oct 14 22:58:58 2016 +0200 read: backport patch from uctags See cd460f4c19bf940fc4290b5ceca1dba873baf7cb eb347f8fe08ac0d5467b4020aceb1a5ecbdd12aa That said the readLineRaw() is completely mad and wrong. In the first iteration pLastChar is set to position -2 where it's assigned '\0' so there's invalid memory access. Since iFileGetLine() uses mio_gets() too, we should unify the two. ctags/main/read.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bbdd3a1e366deb5bd582a345abf701ad7b259dd3 Author: Jiří Techet Date: Fri Oct 14 20:57:42 2016 +0200 Add typeRef to sTagEntryInfo Even though we don't use it, we can keep it there and get rid of some diffs against uctags. ctags/main/entry.c | 8 ++++++++ ctags/main/entry.h | 3 +++ ctags/main/field.c | 3 --- ctags/main/output-ctags.c | 2 -- 4 files changed, 11 insertions(+), 5 deletions(-) commit 97bf03c8f7b3af419a4f5db5520973bb38a4cdb9 Author: Jiří Techet Date: Fri Oct 14 20:49:40 2016 +0200 grab uctags debug.c/h If we don't define the DEBUG macro (which we don't), all the assert operations will be NOOPs. The asserts aren't that terribly useful (usually the crash happens just the following line) and uctags should be reasonably well tested by the uctags project so we can drop them. ctags/main/debug.c | 113 ++++++++++++++++++++++++++++++++++++++++++++++++-- ctags/main/debug.h | 65 +++++++++++++++++++++++++---- ctags/main/lregex.c | 2 +- ctags/main/routines.c | 4 +- 4 files changed, 170 insertions(+), 14 deletions(-) commit 829ea7d38b5f9995d7c44a23f36827a8af7ac297 Author: Jiří Techet Date: Fri Oct 14 18:07:31 2016 +0200 Grab uctags version of parse.c/h and nestlevel.c/h plus additional fallout At this point the only remaining files with big changes are parser.c/h and nestlevel.c/h. However, the amount of changes is big and these changes cannot be easily separated into individual small patches. Fortunately by looking at parse.c there doesn't seem to be anything really valuable in Geany's version and we can just simply take over the ctags one and only apply the necessary changes on top of that. nestlevel.c/h has to be synced at the same time as the changes are related to cork introduction which was done in both of them. A few points: createTagsWithFallback1() and createTagsWithFallback() have been modified so they don't do anything with the output tags file which we don't use. Because they contain all the reparsing logic we originally had in tm_ctags_parse(), this function got simplified and just calls createTagsWithFallback(). In Options EX_PATTERN has been changed to EX_LINENUM (there's some strange thing with EX_PATTERN in uctags as it always checks the previous line in the output tags file - and we don't have output tags file so it crashes). Lots of previously commented-out lines (because we didn't have all the functions from uctags at that point) could be uncommented. lxpath.c has been added. Parsers had to be adjusted to work with the updated nestlevel and cork. Changes in asciidoc and rest were based on the "rst.c" parser from uctags. txt2tags has been modified manually. The ruby changes wer taken directly from the uctags ruby parser and the python ones were based on the last commit before the introduction of the token-based parser. The parser now respects if kinds are enabled/disabled so prototypes and externvars had to be enabled in the c.c parser to get the same output. The parse2() function now returns rescanReason union instead of simple bool to indicate reparsing should happen - c.c and fortran have been changed accordingly. tm_ctags_init() has been changed to call all the initialization that happens in uctags except of output tag file initialization which we don't use. In addition it calls initializeParser (LANG_AUTO) This forces all parsers to get initialized. Without it parsers get initialized lazily as they are used but the problem is code like isInputLanguage (Lang_java) in c.c which just does ((lang) == getInputLanguage ()) works incorrectly because getInputLanguage () returns 0 for C and when uninitialized, Lang_java is also 0 and we have a problem. This problem isn't present in uctags because there the 0th parser is always CTagsSelfTestParser so this cannot happen. ctags/Makefile.am | 1 + ctags/main/entry.c | 43 +- ctags/main/field.c | 51 +- ctags/main/fmt.c | 3 +- ctags/main/geany.h | 3 +- ctags/main/lregex.c | 2 +- ctags/main/lxpath.c | 217 ++++ ctags/main/main.c | 3 +- ctags/main/nestlevel.c | 61 +- ctags/main/nestlevel.h | 19 +- ctags/main/options.c | 28 +- ctags/main/options.h | 4 +- ctags/main/output-ctags.c | 7 +- ctags/main/output-etags.c | 6 +- ctags/main/parse.c | 2493 ++++++++++++++++++++++++++++++++++-- ctags/main/parse.h | 186 ++- ctags/main/promise.c | 4 +- ctags/main/ptag.c | 28 +- ctags/main/ptrarray.c | 1 - ctags/main/read.c | 11 +- ctags/parsers/asciidoc.c | 22 +- ctags/parsers/c.c | 17 +- ctags/parsers/fortran.c | 12 +- ctags/parsers/python.c | 107 +- ctags/parsers/rest.c | 20 +- ctags/parsers/ruby.c | 38 +- ctags/parsers/txt2tags.c | 58 +- src/tagmanager/tm_ctags_wrappers.c | 60 +- 28 files changed, 3071 insertions(+), 434 deletions(-) commit 40d023dafc37af5abb7aa0c21714afadc96f7ae6 Author: Jiří Techet Date: Wed Oct 12 22:52:27 2016 +0200 lregex: Add the remaining missing functions from uctags None of them invokes directly GNU regex so no change is needed here. Sync also the regex part of parse.h. ctags/main/lregex.c | 205 ++++++++++++++++++++++++++++++++++++++++++++++++++++ ctags/main/parse.h | 11 ++- 2 files changed, 215 insertions(+), 1 deletion(-) commit fb432c8ccfcc0fcaaa76d160d4083ebe422e6348 Author: Jiří Techet Date: Wed Oct 12 22:47:07 2016 +0200 lregex: sync the remaining parts of the existing code ctags/main/lregex.c | 52 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 44 insertions(+), 8 deletions(-) commit 73be5c644da79b66e8bc3bf2ab4e4aafb4db5174 Author: Jiří Techet Date: Wed Oct 12 22:39:24 2016 +0200 lregex: add new flag processing For 'b', 'e', 'i' keep the corresponding GRegex flags. ctags/main/lregex.c | 120 +++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 104 insertions(+), 16 deletions(-) commit 56936a8614c90d7c3cc60ef8ab9e2e0ee8bfe38d Author: Jiří Techet Date: Wed Oct 12 17:55:59 2016 +0200 lregex: some harmless syncs ctags/main/lregex.c | 33 +++++++++++++++++++++++++++++++-- ctags/main/parse.c | 9 +++++++++ ctags/main/parse.h | 1 + 3 files changed, 41 insertions(+), 2 deletions(-) commit 112f136a0aba0a4ad2a4de76f10f0b7d0fdf8446 Author: Jiří Techet Date: Wed Oct 12 17:38:48 2016 +0200 lregex: introduce findRegexTagsMainloop() Does the same thing like the previous code. ctags/main/lregex.c | 16 ++++++++++++++-- ctags/main/parse.h | 1 + 2 files changed, 15 insertions(+), 2 deletions(-) commit ca19e6e3b3a6c65e5ab00c488ad9bf94343029c7 Author: Jiří Techet Date: Wed Oct 12 17:32:01 2016 +0200 lregex: sync some function prototypes ctags/main/lregex.c | 43 ++++++++++++++++++++++++++++++------------- ctags/main/parse.c | 3 ++- ctags/main/parse.h | 10 +++++++--- 3 files changed, 39 insertions(+), 17 deletions(-) commit 017e1be502d01fbc6ec046f6413148f77609e231 Author: Jiří Techet Date: Wed Oct 12 17:13:32 2016 +0200 lregex: Add missing fields to regexPattern ctags/main/lregex.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 501ebe94d59ea21a590d501019a24541e900fb6b Author: Jiří Techet Date: Wed Oct 12 17:09:19 2016 +0200 lregex: Initialize lregex structures the universal-ctags way I didn't check in detail what the changes are but since no GRegex code is involved and since everything seems to work after the patch, I think it's OK. ctags/main/lregex.c | 196 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 145 insertions(+), 51 deletions(-) commit 8c4c570eb6ec4e8017386162e87f2b7e3ef3e5a0 Author: Jiří Techet Date: Wed Oct 12 12:17:34 2016 +0200 lregex: remove unused functions So it's easier to sync them by simply getting the uctags versions. ctags/main/lregex.c | 69 +---------------------------------------------------- ctags/main/parse.h | 3 --- 2 files changed, 1 insertion(+), 71 deletions(-) commit 380a662a25011b53d3746d31c975208eb91b16b4 Author: Jiří Techet Date: Wed Oct 12 12:06:06 2016 +0200 lregex: some simple syncs ctags/main/lregex.c | 57 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 34 insertions(+), 23 deletions(-) commit ca1622412fc87819b8c47609e4ef7f71d564a46e Author: Jiří Techet Date: Wed Oct 12 13:26:39 2016 +0200 lregex: replace regexBroken with regexAvailable ctags/main/lregex.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 59d6375b0924e188a6b4afcbc667252a5d162acd Author: Jiří Techet Date: Wed Oct 12 11:48:57 2016 +0200 lregex: sync includes ctags/main/lregex.c | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) commit b6ca38712f944c87ecdcafbbf3dba55a6279405b Author: Jiří Techet Date: Tue Oct 11 23:40:20 2016 +0200 parse: other small syncs ctags/main/parse.c | 102 ++++++++++++++++++++++++------------- ctags/main/parse.h | 13 ++--- src/tagmanager/tm_ctags_wrappers.c | 2 +- 3 files changed, 72 insertions(+), 45 deletions(-) commit 051b780745db947e5e63cf25b0b02f6ecba96eb2 Author: Jiří Techet Date: Tue Oct 11 23:04:13 2016 +0200 parse: some simple syncs and include syncs Addition of dependency.c/h and promise.c/h. Also moved tagEntryFunction definitions to geany.c/h. ctags/Makefile.am | 4 ++ ctags/main/dependency.c | 102 +++++++++++++++++++++++++++++++++++++ ctags/main/dependency.h | 45 ++++++++++++++++ ctags/main/entry.c | 4 +- ctags/main/geany.c | 17 +++++++ ctags/main/geany.h | 8 +++ ctags/main/parse.c | 63 ++++++++--------------- ctags/main/parse.h | 28 +++++----- ctags/main/promise.c | 102 +++++++++++++++++++++++++++++++++++++ ctags/main/promise.h | 27 ++++++++++ ctags/parsers/abc.c | 1 + ctags/parsers/asciidoc.c | 1 + ctags/parsers/conf.c | 1 + ctags/parsers/markdown.c | 1 + ctags/parsers/rest.c | 1 + ctags/parsers/txt2tags.c | 1 + src/tagmanager/tm_ctags_wrappers.c | 2 +- 17 files changed, 348 insertions(+), 60 deletions(-) commit 2f83d0d164a94ab5073eb6e804fca05c17b7bb4d Author: Jiří Techet Date: Tue Oct 11 17:30:06 2016 +0200 parse: remove things unused by Geany for simpler merge ctags/main/parse.c | 237 +---------------------------------------------------- ctags/main/parse.h | 2 - 2 files changed, 2 insertions(+), 237 deletions(-) commit 8436b975ed941ebb9757080066c3af9645313bd8 Author: Jiří Techet Date: Tue Oct 11 17:15:34 2016 +0200 read: add the remaining stuff from uctags ctags/main/read.c | 279 +++++++++++++++++++++++++++++++++++++++++++++++++++++- ctags/main/read.h | 23 +++++ 2 files changed, 301 insertions(+), 1 deletion(-) commit 53f83e7ceef29ba75472094b12a92df334c52874 Author: Jiří Techet Date: Tue Oct 11 17:09:54 2016 +0200 read: add lineFposMap ctags/main/read.c | 43 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 4 deletions(-) commit ed03c2042de388f34301838552cd092a65632958 Author: Jiří Techet Date: Tue Oct 11 17:05:56 2016 +0200 read: introduce langStack for source files ctags/main/read.c | 92 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 83 insertions(+), 9 deletions(-) commit f89e9f8014674a330c44a2b88512d0c56bc93f8f Author: Jiří Techet Date: Tue Oct 11 16:59:10 2016 +0200 read: Add function to initialize common parts of input/source files and use it Also correct input/source file usage in the file and initialize everything like in universal-ctags. ctags/main/read.c | 105 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 67 insertions(+), 38 deletions(-) commit aafb12702427793cfe1e4f9dd1b77db9c5c9f3cc Author: Jiří Techet Date: Tue Oct 11 12:26:51 2016 +0200 read: implement openBuffer() using openInputFile() In addition, add automatic memory MIO opening to read.c for small files and remove the same optimization from Geany. Simplify tm_ctags_parse() as the memory/file branches are identical now. ctags/main/parse.c | 2 +- ctags/main/read.c | 83 +++++++++++++++++++++----------------- ctags/main/read.h | 12 ++++-- src/tagmanager/tm_ctags_wrappers.c | 20 ++------- src/tagmanager/tm_source_file.c | 28 +------------ 5 files changed, 61 insertions(+), 84 deletions(-) commit 2f4d43ac93e79fd97cec8ccaefe70d644cfb50a3 Author: Jiří Techet Date: Tue Oct 11 00:45:15 2016 +0200 read: Some function renaming ctags/main/parse.c | 4 ++-- ctags/main/read.c | 6 +++--- ctags/main/read.h | 12 ++++++------ src/tagmanager/tm_ctags_wrappers.c | 10 +++++----- 4 files changed, 16 insertions(+), 16 deletions(-) commit dac3afbbfa2fa193c238bed3409f5c9bf5efee03 Author: Jiří Techet Date: Tue Oct 11 00:24:33 2016 +0200 read: use makeFileTag() ctags/main/read.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) commit eecfff0da799e6c399a53fe1e5b4dc8072fb4ca2 Author: Jiří Techet Date: Tue Oct 11 00:22:48 2016 +0200 read: Add some extra data structures ctags/main/read.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit c1acde7eff0cb98ec34588c7d45bcfe1be20e7e8 Author: Jiří Techet Date: Tue Oct 11 00:13:25 2016 +0200 read: move sInputFileInfo, sInputFile and File to read.c ctags/main/read.c | 41 ++++++++++++++++++++++++++++++++++++++--- ctags/main/read.h | 36 ------------------------------------ 2 files changed, 38 insertions(+), 39 deletions(-) commit 63fbe2f6a27fb051285ee6321c9c90e0d176e7f5 Author: Jiří Techet Date: Tue Oct 11 00:03:18 2016 +0200 c.c, lcpp.c: Avoid using File.mio In uctags File is made private and mio gets inaccessible. At the moment it's used by c.c and lcpp.c to get the parameter list. The C parser "marks" the position where the argument list starts and once the right ")" is reached, string corresponding to this range is read from MIO, filtered and used for parameter list. For macro parameters the end of parameter list is handled in a slightly obfuscated way - since the code from read.c reads the code by lines, getInputFilePosition() returns the position of EOL so the parameter list is read between '(' and EOL. The code had to be modified to collect the potential parameter string on the way - vString *signature has been added to lcpp.c and every getcFromInputFile() and ungetcToInputFile() has been converted to getcAndCollect() and ungetcAndCollect(), respectively, which in addition perform the parameter collection when needed. Unfortunately this involves many places in lcpp.c and we must be careful to always use these instead of the standard ones from read.c. We cannot rely on the implicit reading of whole lines and must add such a code ourselves: just plain reading and collecting is enough. In addition I added handling of multi-line signatures which was missing before. In tests "bug1585745.cpp" and "cpp_destructor.cpp" the new code fixes missing () in destructors when there's a space between tilde and name. In "simple.d" test it fixes wrong function prototype. The output of test "bug507864.c" seems to be worse than before but it was already broken before and apparently the compiler is confused by it. ctags/main/lcpp.c | 179 +++++++++++++++++++----------------- ctags/main/lcpp.h | 5 +- ctags/parsers/c.c | 11 +-- tests/ctags/bug1585745.cpp.tags | 6 +- tests/ctags/bug507864.c.tags | 7 +- tests/ctags/cpp_destructor.cpp.tags | 2 +- tests/ctags/simple.d.tags | 2 +- 7 files changed, 114 insertions(+), 98 deletions(-) commit b36c5c54ede9120590fc79db1165c4bbf205702e Author: Jiří Techet Date: Sun Oct 9 22:58:59 2016 +0200 read: change macros into functions and move them into c Still with commented-out code at some places and using "source" instead of "input". Also syncs includes and some minor stuff. ctags/main/read.c | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++ ctags/main/read.h | 30 +++++++++++-------- ctags/parsers/c.c | 2 +- ctags/parsers/php.c | 4 +-- 4 files changed, 104 insertions(+), 15 deletions(-) commit 8e804b3145db03b674e634fab876979d04df424e Author: Jiří Techet Date: Sun Oct 9 19:58:24 2016 +0200 entry: Add the remaining code from uctags Also enable compilation of forgotten kind.c ctags/Makefile.am | 1 + ctags/main/entry.c | 782 ++++++++++++++++++++++++++++++++++++++++++++++++++++- ctags/main/entry.h | 33 ++- ctags/main/parse.c | 15 - 4 files changed, 809 insertions(+), 22 deletions(-) commit 00920360da8d93fa9145da1e07ce916b258c0096 Author: Jiří Techet Date: Sun Oct 9 16:49:13 2016 +0200 entry: Sync initTagEntry() code For now use "source" instead of "input" for various functions inside read.c which we need as we don't initialize "input" yet. ctags/main/entry.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++------- ctags/main/entry.h | 15 ++++++++++- ctags/main/read.c | 15 +++++++++++ ctags/main/read.h | 3 +++ 4 files changed, 99 insertions(+), 10 deletions(-) commit f23b56b0272c4fd12f2607cce6c692be21951e8b Author: Jiří Techet Date: Sun Oct 9 15:22:42 2016 +0200 entry: make makeTakEntry() implementation closer to uctags For now, comment-out code that we don't use and that doesn't work. ctags/main/entry.c | 67 +++++++++++++++++++++++++++++++++++++++++++++--------- ctags/main/entry.h | 2 +- 2 files changed, 57 insertions(+), 12 deletions(-) commit 6ce628da2cd73d736d1f53f1197efc8fcb19ae01 Author: Jiří Techet Date: Sun Oct 9 14:47:54 2016 +0200 entry: Some more or less formal changes ctags/main/entry.c | 31 ++++++++++++++++--------------- ctags/main/entry.h | 2 -- 2 files changed, 16 insertions(+), 17 deletions(-) commit 87111f268f13f56dc9cb57ee450fb956d25e9a82 Author: Colomban Wendling Date: Sun Oct 9 12:58:44 2016 +0200 Ferite: Fix a memory leak ctags/parsers/c.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3f52bfb4ab95598f125673049bac76226772b77b Author: Jiří Techet Date: Sun Oct 9 12:48:49 2016 +0200 entry: Take over uctags tag writing code We don't use it so we can grab whatever is there. ctags/main/entry.c | 122 ++++++++++++++++++++++++++++++++++------------------- ctags/main/entry.h | 1 + 2 files changed, 79 insertions(+), 44 deletions(-) commit 4cde630dd78282cead151a9afb14bd7056c7f407 Author: Jiří Techet Date: Sun Oct 9 12:40:08 2016 +0200 Sync the beginning of entry.c/h Mostly sTagEntryInfo and eTagFile taken from uctags and sync of includes. ctags/main/entry.c | 57 +++++++++++++++++++++++++++----------------- ctags/main/entry.h | 69 ++++++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 90 insertions(+), 36 deletions(-) commit 848fa0dce3c95d8cdd767875e08d13e16d4121e6 Author: Jiří Techet Date: Sun Oct 9 11:56:49 2016 +0200 Move eTagFile from entry.h to entry.c Add access functions and use them outside entry.c. In addition to functions defined in uctags setMaxTagsLine() had to be added because it is needed in parser.c (at the moment, will be probably gone in some of the next commits). ctags/main/entry.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ ctags/main/entry.h | 35 +++++++++++------------------- ctags/main/parse.c | 10 ++++----- ctags/main/read.c | 6 +++--- 4 files changed, 82 insertions(+), 31 deletions(-) commit e685d956d66651139d6deaf779bcec3b7f4aa0d2 Author: Jiří Techet Date: Sun Oct 9 11:04:51 2016 +0200 Some sync of lcpp.c/h Sync things which are possible to sync from lcpp.c/h. This file is heavily dependent on c.c and since our c.c differs quite significantly, it's not possible to use the universal-ctags implementation right now. ctags/main/entry.h | 1 + ctags/main/lcpp.c | 74 +++++++++++++++++++++++++++++++++--------------------- ctags/main/lcpp.h | 34 ++++++++++++++++++++++--- ctags/parsers/c.c | 7 +++++- 4 files changed, 82 insertions(+), 34 deletions(-) commit 1a43ee2afa2cbecd497554aa3c07163ea5dabd01 Author: Jiří Techet Date: Sat Oct 8 17:38:31 2016 +0200 Grab uctags kind.c/h ctags/main/kind.c | 158 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ ctags/main/kind.h | 69 +++++++++++++++++++++++- 2 files changed, 226 insertions(+), 1 deletion(-) commit 2a9f473d782431c433c390dd002f9f3302b12d34 Author: Jiří Techet Date: Sat Oct 8 15:48:42 2016 +0200 Sync options.c/h (and introduce a lot of new garbage) This commit started innocently as an attempt to grab options.c/h from uctags. However it started referencing other files (which started referencing other files) so the result is lots of new files are added. When trying to make it compile, I run into many differences of existing code which would have to be resolved. As all the added code is more or less garbage for Geany, I just simply commented-out various function bodies so it compiles without additional modifications. Should get fixed once more files get synced with uctags. ctags/Makefile.am | 18 + ctags/main/entry.c | 14 +- ctags/main/entry.h | 13 +- ctags/main/field.c | 935 ++++++++++ ctags/main/field.h | 111 ++ ctags/main/flags.c | 107 ++ ctags/main/flags.h | 29 + ctags/main/fmt.c | 355 ++++ ctags/main/fmt.h | 25 + ctags/main/htable.c | 271 +++ ctags/main/htable.h | 47 + ctags/main/lcpp.c | 3 +- ctags/main/lregex.c | 5 +- ctags/main/lxcmd.c | 1227 +++++++++++++ ctags/main/options.c | 3347 +++++++++++++++++++++++++++++++++++- ctags/main/options.h | 169 +- ctags/main/output-ctags.c | 227 +++ ctags/main/output-etags.c | 109 ++ ctags/main/output-json.c | 189 ++ ctags/main/output-xref.c | 60 + ctags/main/output.h | 50 + ctags/main/parse.c | 97 +- ctags/main/parse.h | 16 +- ctags/main/pcoproc.c | 296 ++++ ctags/main/pcoproc.h | 29 + ctags/main/ptag.c | 260 +++ ctags/main/ptag.h | 63 + ctags/main/types.h | 8 + ctags/parsers/c.c | 2 +- ctags/parsers/fortran.c | 2 +- src/tagmanager/tm_ctags_wrappers.c | 2 +- 31 files changed, 7932 insertions(+), 154 deletions(-) commit 0a0ed51792b9af2693b9ec632c1456e62ace0af3 Author: Jiří Techet Date: Fri Oct 7 16:00:49 2016 +0200 Create geany.c/h and put isIgnoreToken() This is a (hopefully) temporary file where we put geany-specific code that for some reason has to be still in ctags. Put isIgnoreToken() in this file. ctags/Makefile.am | 2 ++ ctags/main/geany.c | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++ ctags/main/geany.h | 14 +++++++++ ctags/main/options.c | 66 ------------------------------------------- ctags/main/options.h | 1 - ctags/parsers/c.c | 1 + src/symbols.c | 2 +- 7 files changed, 98 insertions(+), 68 deletions(-) commit f1dbf2cb7b4b5695a3f735c4819b35c3254f3493 Author: Jiří Techet Date: Fri Oct 7 15:45:16 2016 +0200 Grab ctags implementation of sort.c/h I haven't studies the changes much but this file is responsible for sorting tag files which isn't interesing for us. ctags/main/options.h | 5 +++ ctags/main/sort.c | 105 ++++++++++++++++++++++++++++++++------------------- ctags/main/sort.h | 15 ++++++-- 3 files changed, 83 insertions(+), 42 deletions(-) commit 88cbe3871c75fa47be0995d52c3e1afe75e51a92 Author: Jiří Techet Date: Fri Oct 7 15:26:42 2016 +0200 Grab ctags version of general.h and make related changes Added e_msoft.h, changed configure.ac to make more checks for header files so we have corresponding macros defined, drop HAVE_REGEX macro check which isn't defined any more, drop debugging function from lua parser (complains about missing definition of errout). Tested only on Linux (TODO: Windows, OS X) configure.ac | 7 +++- ctags/Makefile.am | 1 + ctags/main/e_msoft.h | 71 +++++++++++++++++++++++++++++++++++++++ ctags/main/general.h | 93 +++++++++++----------------------------------------- ctags/main/lregex.c | 23 ------------- ctags/main/parse.c | 17 ---------- ctags/main/parse.h | 2 -- ctags/parsers/lua.c | 8 ----- 8 files changed, 97 insertions(+), 125 deletions(-) commit 37f015d993ad1bc1e052503582a745e5b3c94ca7 Author: Jiří Techet Date: Thu Oct 6 23:58:17 2016 +0200 Implement iFileGetLine() using gets() ctags/main/read.c | 197 ++++++++++++++++++++++-------------------------------- ctags/main/read.h | 3 - 2 files changed, 81 insertions(+), 119 deletions(-) commit a5dea8091bdd84de1f70c7989ff2a3c79d31a9ee Author: Jiří Techet Date: Thu Oct 6 23:45:52 2016 +0200 Grab all MIO changes from uctags ctags/main/mio.c | 382 ++++++++++++++++++++++++++++++++++++++++++++++++++----- ctags/main/mio.h | 40 ++---- 2 files changed, 363 insertions(+), 59 deletions(-) commit 580beba0c7fe8361afa52976901bb67d8d45b084 Author: Jiří Techet Date: Thu Oct 6 23:37:29 2016 +0200 Remove all unused code from main.c ctags/main/main.c | 122 ------------------------------------------------------ 1 file changed, 122 deletions(-) commit ded5ea3eeaefa0c7ac25f685015668b34dbf4fcb Author: Jiří Techet Date: Thu Oct 6 23:28:24 2016 +0200 Move debug related code to debug.c/h ctags/Makefile.am | 1 + ctags/main/debug.c | 23 +++++++++++++++++++++++ ctags/main/debug.h | 15 ++++++++++++--- ctags/main/entry.c | 1 + ctags/main/general.h | 6 ------ ctags/main/lregex.c | 1 + ctags/main/main.c | 8 -------- ctags/main/parse.c | 2 +- ctags/main/sort.c | 1 + ctags/parsers/powershell.c | 1 + 10 files changed, 41 insertions(+), 18 deletions(-) commit 7ebcfb77dca3accd06effb8f4698f8ab04ab5e8f Author: Jiří Techet Date: Thu Oct 6 22:31:00 2016 +0200 Define gcc attributes inside gcc-attr.h ctags/Makefile.am | 1 + ctags/main/gcc-attr.h | 30 ++++++++++++++++++++++++++++++ ctags/main/general.h | 13 +------------ 3 files changed, 32 insertions(+), 12 deletions(-) commit 85a894b09789f2ed7201ba6f92be3d0092e33da4 Author: Jiří Techet Date: Thu Oct 6 22:02:06 2016 +0200 Grab args.c/h uctags implementation Basically dead code for us. ctags/main/args.c | 50 +++++++++++++++++++++++++++++++++++++++++++------- ctags/main/args.h | 6 +++--- 2 files changed, 46 insertions(+), 10 deletions(-) commit c6294e37c9e511228bd31819548f809537980156 Author: Jiří Techet Date: Thu Oct 6 21:34:16 2016 +0200 Grab uctags ctags.h and add repoinfo.c/h ctags/Makefile.am | 2 ++ ctags/main/ctags.h | 21 +++++++++++++++------ ctags/main/entry.c | 2 +- ctags/main/repoinfo.c | 12 ++++++++++++ ctags/main/repoinfo.h | 1 + 5 files changed, 31 insertions(+), 7 deletions(-) commit 2b8c7ae5ad0f8875b45472c2bdad5e022e270601 Author: Jiří Techet Date: Thu Oct 6 21:18:05 2016 +0200 Sync the rest of routines.c/h Requires checking for errno.h limits.h in autoconf as there are ifdefs around those in routines.c. configure.ac | 2 +- ctags/main/routines.c | 193 ++++++++++++++++++++++++++++++++++++++++++++++++-- ctags/main/routines.h | 17 +++++ 3 files changed, 207 insertions(+), 5 deletions(-) commit 65f782b6d2acb7e967be717a1a4dafa76b3ae38c Author: Jiří Techet Date: Thu Oct 6 20:24:13 2016 +0200 Don't initialize ExecutableProgram and ExecutableName We shouldn't need it. ctags/main/routines.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d5b60d2f21560d0dd0479ff32090cd6865c49a3f Author: Jiří Techet Date: Thu Oct 6 20:23:27 2016 +0200 Use uctags implementation of strstr() ctags/main/routines.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 3219d9783c770d4ee6dd598bf1f932c3fe53e694 Author: Jiří Techet Date: Thu Oct 6 20:15:26 2016 +0200 Make sure that file extension is taken from file (not preceding directory) ctags/main/routines.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9e7eade7c068d62dd37046cff3e168d317b3e554 Author: Jiří Techet Date: Thu Oct 6 20:13:29 2016 +0200 Use parse separator utilities in routines.c ctags/main/routines.c | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) commit f0e7af2c3279cd8ced9806050f38629c930502f3 Author: Jiří Techet Date: Thu Oct 6 20:01:52 2016 +0200 Make combinePathAndFile() return char * instead of vString Also move eStrdup() to the correct position in the header. In addition add the same includes into debug.h as those in uctags (the removal of vstring inclusion inside routines.h causes compilation errors - it would be best to explicitly include all needed files in every source to avoid problems like this but let's do just syncing the two implementations for now). ctags/main/debug.h | 22 ++++++++++++++++++++++ ctags/main/read.c | 7 +++++-- ctags/main/routines.c | 12 ++++-------- ctags/main/routines.h | 5 ++--- 4 files changed, 33 insertions(+), 13 deletions(-) commit fb4fc07b6a2197d5fdf9ea304c8d51d507ad5f2c Author: Jiří Techet Date: Thu Oct 6 19:39:03 2016 +0200 Make tempFile() return MIO ctags/main/entry.c | 11 +++++------ ctags/main/routines.c | 6 ++++-- ctags/main/routines.h | 3 ++- 3 files changed, 11 insertions(+), 9 deletions(-) commit ed01b7edb4dd8f24857fdefe9a226fc6e5c7473d Author: Jiří Techet Date: Thu Oct 6 19:30:59 2016 +0200 Grab uctags keyword.c/h and add types.h with type declarations keyword.c/h contains only changes made by me. To make the sync complete, add type.h with type declarations (and remove the added declarations from their original locations). ctags/Makefile.am | 1 + ctags/main/entry.h | 5 +++-- ctags/main/keyword.c | 22 +++++++++++++++++----- ctags/main/keyword.h | 4 +++- ctags/main/kind.h | 4 ++-- ctags/main/lcpp.h | 3 +-- ctags/main/parse.h | 1 - ctags/main/types.h | 21 +++++++++++++++++++++ 8 files changed, 48 insertions(+), 13 deletions(-) commit a52137f414aaa3d3d9a160c8c061a51ce142ad33 Author: Jiří Techet Date: Thu Oct 6 19:10:32 2016 +0200 Grab uctags implementation of strlist Except missing mio_free() in stringListNewFromFile() which has been ported to uctags. Except the use of ptrarray for strlist implementation, there's nothing interesting in the Geany version which would be worth preserving. ctags/main/strlist.c | 164 ++++++++++++++++++++++----------------------------- ctags/main/strlist.h | 20 ++++--- 2 files changed, 82 insertions(+), 102 deletions(-) commit ed6d24bb9a3ce9f8393e97eb753bdb3f57feed84 Author: Jiří Techet Date: Thu Oct 6 18:39:56 2016 +0200 Remove unused functions from options.c/h ctags/main/options.c | 53 ---------------------------------------------------- ctags/main/options.h | 6 ------ 2 files changed, 59 deletions(-) commit 2f1ad0232b4410f874ea7f7521e1f50302c88ffe Author: Jiří Techet Date: Thu Oct 6 18:27:36 2016 +0200 Remove most uses of glib calls Some special cases which require more work still remain, plus there's still GRegex. ctags/main/entry.c | 14 ++++++-------- ctags/main/lcpp.c | 8 ++++---- ctags/main/parse.c | 2 +- ctags/main/read.c | 3 +-- ctags/main/routines.c | 7 ++----- ctags/main/sort.c | 20 +++++++++----------- ctags/main/strlist.c | 3 +-- 7 files changed, 24 insertions(+), 33 deletions(-) commit 560107804ce5c081326624d3d6de433e0d5eb75d Author: Jiří Techet Date: Sat Oct 8 14:12:35 2016 +0200 Drop some more unused functions from routines.c/h Also get the error() implementation from error.c/h (modified slightly to make sure exit() isn't called and which doesn't call errorPrinter() as this one should be set somewhere else in the code and it doesn't happen now). ctags/Makefile.am | 2 + ctags/main/error.c | 59 ++++++++++++++++++++ ctags/main/error.h | 26 +++++++++ ctags/main/parse.c | 2 +- ctags/main/routines.c | 146 -------------------------------------------------- ctags/main/routines.h | 16 ++---- 6 files changed, 92 insertions(+), 159 deletions(-) commit d88a9dd3fc32fe0877eefac3d0211a421dea9a99 Author: Jiří Techet Date: Thu Oct 6 17:20:36 2016 +0200 Eliminate uses of g_stat() Convert g_stat() to stat() and introduce eStat() to routines.c/h and use it instead of getFileSize() and isExecutable(). On the way grab implementations of isSameFile() and tempFile() from universal-ctags (I haven't checked in detail if all the ifdef cases do the right thing but these functions aren't probably called in Geany so we don't have to worry much). Also drop unused setCurrentDirectory(). ctags/main/read.c | 6 +- ctags/main/routines.c | 184 ++++++++++++++++++++++++++++++++++++-------------- ctags/main/routines.h | 32 ++++++++- 3 files changed, 168 insertions(+), 54 deletions(-) commit 992306aec3af31868cef702d87bf5d7b99a91112 Author: Jiří Techet Date: Thu Oct 6 15:41:19 2016 +0200 Add generic pointer array ctags/Makefile.am | 2 + ctags/main/ptrarray.c | 153 ++++++++++++++++++++++++++++++++++++++++++++++++++ ctags/main/ptrarray.h | 46 +++++++++++++++ 3 files changed, 201 insertions(+) commit 227b8087993505348188fd75f22b9dcd74b50ee8 Author: Jiří Techet Date: Thu Oct 6 15:33:24 2016 +0200 Grab the complete uctags vString implementation All the changes in the first half of .c/.h were introduced by me in uctags (and thus they are guaranteed to be great ;-). The following functions were missing in our ctags implementation and are added by this commit (currently unused): extern vString *vStringNewOrClear (vString *const string); extern char *vStringDeleteUnwrap (vString *const string); extern void vStringCatSWithEscaping (vString* b, const char *s); extern void vStringCatSWithEscapingAsPattern (vString *output, const char* input); read.c has been updated to use vStringResize() instead of vStringAutoResize(). ctags/main/read.c | 8 +- ctags/main/vstring.c | 214 ++++++++++++++++++++++++++++++++++++++++----------- ctags/main/vstring.h | 29 +++++-- 3 files changed, 193 insertions(+), 58 deletions(-) commit 7ae1d031efe8dd1b967c89ee404ab6fb2172ec4c Merge: 12b9f27a7 40396a392 Author: Colomban Wendling Date: Tue Oct 4 18:10:24 2016 +0200 Merge pull request #1251 from techee/bool CTags: boolean to C99 bool conversion and vStringTerminate() removal commit 40396a392e5239ed79aad79ad1b1f1239670cbe7 Author: Jiří Techet Date: Sun Oct 2 00:35:50 2016 +0200 ctags: drop vStringTerminate() It's call is unnecesssary. Corresponds to universal-ctags commit cfc45e3bd9000e8ce193399c7e0ecf2bbeb57977. HACKING | 1 - ctags/main/args.c | 2 -- ctags/main/lcpp.c | 1 - ctags/main/lregex.c | 1 - ctags/main/options.c | 1 - ctags/main/parse.c | 1 - ctags/main/read.c | 1 - ctags/main/routines.c | 3 --- ctags/main/vstring.c | 3 +-- ctags/main/vstring.h | 1 - ctags/parsers/abaqus.c | 1 - ctags/parsers/abc.c | 3 --- ctags/parsers/asciidoc.c | 2 -- ctags/parsers/asm.c | 4 ---- ctags/parsers/basic.c | 3 --- ctags/parsers/c.c | 5 ----- ctags/parsers/conf.c | 3 --- ctags/parsers/css.c | 2 -- ctags/parsers/diff.c | 1 - ctags/parsers/docbook.c | 1 - ctags/parsers/erlang.c | 1 - ctags/parsers/fortran.c | 11 ----------- ctags/parsers/go.c | 2 -- ctags/parsers/haskell.c | 1 - ctags/parsers/haxe.c | 6 ------ ctags/parsers/jscript.c | 8 -------- ctags/parsers/json.c | 3 --- ctags/parsers/latex.c | 3 --- ctags/parsers/lua.c | 1 - ctags/parsers/make.c | 2 -- ctags/parsers/markdown.c | 2 -- ctags/parsers/matlab.c | 2 -- ctags/parsers/nsis.c | 3 --- ctags/parsers/objc.c | 4 ---- ctags/parsers/perl.c | 1 - ctags/parsers/php.c | 9 --------- ctags/parsers/powershell.c | 6 ------ ctags/parsers/python.c | 4 ---- ctags/parsers/r.c | 2 -- ctags/parsers/rest.c | 1 - ctags/parsers/ruby.c | 2 -- ctags/parsers/sh.c | 1 - ctags/parsers/sql.c | 4 ---- ctags/parsers/tcl.c | 1 - ctags/parsers/txt2tags.c | 1 - ctags/parsers/verilog.c | 1 - ctags/parsers/vhdl.c | 1 - 47 files changed, 1 insertion(+), 122 deletions(-) commit 662765852fb2f5ca72de8087646ab8bd6d82c889 Author: Jiří Techet Date: Sun Oct 2 00:06:58 2016 +0200 ctags: Use bool definitions from stdbool.h Since Geany requires C99 parser, the patch just simply includes stdbool.h in general.h and drops the TRUE, FALSE definitions inside the same file. The rest is purely mechanical boolean -> bool TRUE -> true FALSE -> false plus some alignment fixes. This patch corresponds to universal-ctags commit ce990805a0a0269c. ctags/main/args.c | 10 +- ctags/main/args.h | 4 +- ctags/main/entry.c | 14 +- ctags/main/entry.h | 10 +- ctags/main/general.h | 12 +- ctags/main/keyword.c | 8 +- ctags/main/kind.h | 2 +- ctags/main/lcpp.c | 146 +++++++-------- ctags/main/lcpp.h | 6 +- ctags/main/lregex.c | 50 ++--- ctags/main/main.c | 7 +- ctags/main/main.h | 2 +- ctags/main/mio.c | 44 ++--- ctags/main/mio.h | 4 +- ctags/main/options.c | 88 ++++----- ctags/main/options.h | 68 +++---- ctags/main/parse.c | 100 +++++----- ctags/main/parse.h | 30 +-- ctags/main/read.c | 64 +++---- ctags/main/read.h | 16 +- ctags/main/routines.c | 66 +++---- ctags/main/routines.h | 10 +- ctags/main/sort.c | 6 +- ctags/main/sort.h | 4 +- ctags/main/strlist.c | 44 ++--- ctags/main/strlist.h | 12 +- ctags/main/vstring.c | 4 +- ctags/main/vstring.h | 2 +- ctags/main/xtag.c | 30 +-- ctags/main/xtag.h | 8 +- ctags/parsers/abaqus.c | 10 +- ctags/parsers/abc.c | 20 +- ctags/parsers/asciidoc.c | 10 +- ctags/parsers/asm.c | 52 ++--- ctags/parsers/basic.c | 12 +- ctags/parsers/c.c | 458 ++++++++++++++++++++++----------------------- ctags/parsers/conf.c | 14 +- ctags/parsers/css.c | 16 +- ctags/parsers/diff.c | 6 +- ctags/parsers/docbook.c | 16 +- ctags/parsers/erlang.c | 18 +- ctags/parsers/fortran.c | 204 ++++++++++---------- ctags/parsers/go.c | 70 +++---- ctags/parsers/haskell.c | 8 +- ctags/parsers/haxe.c | 16 +- ctags/parsers/jscript.c | 178 +++++++++--------- ctags/parsers/json.c | 28 +-- ctags/parsers/latex.c | 18 +- ctags/parsers/lua.c | 12 +- ctags/parsers/make.c | 42 ++--- ctags/parsers/markdown.c | 14 +- ctags/parsers/matlab.c | 8 +- ctags/parsers/nsis.c | 10 +- ctags/parsers/objc.c | 78 ++++---- ctags/parsers/pascal.c | 74 ++++---- ctags/parsers/perl.c | 78 ++++---- ctags/parsers/php.c | 112 +++++------ ctags/parsers/powershell.c | 40 ++-- ctags/parsers/python.c | 68 +++---- ctags/parsers/r.c | 6 +- ctags/parsers/rest.c | 14 +- ctags/parsers/ruby.c | 66 +++---- ctags/parsers/rust.c | 142 +++++++------- ctags/parsers/sh.c | 14 +- ctags/parsers/sql.c | 166 ++++++++-------- ctags/parsers/tcl.c | 12 +- ctags/parsers/txt2tags.c | 20 +- ctags/parsers/verilog.c | 38 ++-- ctags/parsers/vhdl.c | 44 ++--- 69 files changed, 1537 insertions(+), 1546 deletions(-) commit 12b9f27a795f7ec8c1faf6c225314a09b6c5f7af Author: Colomban Wendling Date: Thu Sep 22 15:43:04 2016 +0200 Fix double escaping of markup in bold labels (oops) 2499b96ea1d1eb523733c95e7ec73af827b6032e fixed missing escaping of markup text, but failed to remove explicit escaping from ui_label_new_bold(), leading to dual escaping of bold labels. src/ui_utils.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit d8ee2ccf8e4a477dd663c7966ed28c137cb00aa1 Author: Landrok Date: Mon Sep 19 09:33:47 2016 +0200 Fix some typos in French translation (#1227) po/fr.po | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) commit 2a2ae728341d12b7cea29b671beb08e441f62d95 Merge: 6bc43f745 3f1408610 Author: Enrico Tröger Date: Sun Sep 11 11:12:18 2016 +0200 Merge pull request #1166 from eht16/fix_template_error_message Improve template command error message commit 6bc43f745e27a45a7fd1b981ca452e8b97929c0e Merge: cc18dd0e6 7b2b9609e Author: Matthew Brush Date: Sat Sep 10 19:40:38 2016 -0700 Merge pull request #1203 from codebrainz/document-data Document data commit cc18dd0e60938141bc702ed3da3218e1144de2a4 Author: Matthew Brush Date: Sat Sep 10 19:24:16 2016 -0700 Gracefully handle proxies registering invalid extensions (#1212) It is very hard to debug if the proxy plugin happens to give extensions starting with a dot. If they do, detect this case, warn in the debug messages, and fix the extension. It seems unlikely that files with two dot extensions will be desired, so it should case no harm. src/plugins.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit 7d172ceeb3b024c6d206758a0b80631c0b935590 Author: Matthew Brush Date: Sat Sep 10 19:18:10 2016 -0700 Improve GeanyProxyProbeResults a litte (#1213) * Add GEANY_ prefix to enumerators. * Use a discrete set of enumerators so the proxy doesn't have to worry about flag bitmasks, which isn't required. * Update documentation. * Use the new enumerators in Geany. * Improve debug output for bogus values a bit. doc/plugins.dox | 13 ++++++------- plugins/demoproxy.c | 2 +- src/plugindata.h | 39 ++++++++++++++++++++++++++------------- src/plugins.c | 13 ++++++++----- 4 files changed, 41 insertions(+), 26 deletions(-) commit afaec63ffb0fb7e52e2a7d97e9c8fba33faaff1e Merge: 13ef73d10 63c054a61 Author: Colomban Wendling Date: Sat Sep 10 09:24:15 2016 +0200 Merge pull request #1160 from techee/ctags_sync Ctags sync, part 1 commit 13ef73d109ad6fba3189b2f69c3c88b3f30e9772 Author: Simon Marchi Date: Mon Mar 28 14:20:26 2016 -0400 Recognize .exp (Expect) files as Tcl Expect [1] scripts filenames generally end in .exp, although the code itself is actually in Tcl. I find my self manually selecting Tcl quite often, so I think it would be nice if Geany would recognize it direcly as Tcl. [1] http://expect.sourceforge.net/ Signed-off-by: Simon Marchi data/filetype_extensions.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 63c054a61ec0294f0a473be3c44e3b2cfc2aed45 Author: Jiří Techet Date: Fri Sep 9 18:00:41 2016 +0200 #if 0 currently unused code to avoid compiler warning ctags/main/main.c | 4 ++++ 1 file changed, 4 insertions(+) commit f511787f31905e74baa4a91f12d2607b1105b2a2 Author: Jiří Techet Date: Fri Sep 9 17:46:13 2016 +0200 Add missing prototypes ctags/main/parse.h | 1 + ctags/main/read.h | 3 +++ 2 files changed, 4 insertions(+) commit 1e14667bbce230964384b8756bf752c039bd2c75 Author: Jiří Techet Date: Fri Sep 9 17:18:17 2016 +0200 Don't compare foreign values to enumeration type Clang warns when comparing an enumeration type with a value not found in this enumeration: warning: comparison of constant VALUE with expression of type 'TYPE' is always false [-Wtautological-constant-out-of-range-compare] If the compiler then decides to optimize the test away because it assumes the it is indeed always false, it can lead to pretty subtle and nasty issues. Ported universal-ctags patch from Colomban Wendling ctags/parsers/c.c | 5 +++-- ctags/parsers/fortran.c | 5 +++-- ctags/parsers/go.c | 5 +++-- ctags/parsers/jscript.c | 5 +++-- ctags/parsers/php.c | 5 +++-- ctags/parsers/sql.c | 5 +++-- 6 files changed, 18 insertions(+), 12 deletions(-) commit a5a888c5e3c4be965907e1fa6671e3510815658d Merge: db6f67113 c9d0bd721 Author: Colomban Wendling Date: Wed Sep 7 11:09:52 2016 +0200 Merge pull request #1217 from b4n/filetypes/c-lexer-properties Inherit C lexer_properties in all filetypes inheriting C styles commit db6f671135511bd107d18d512270503047eb19ac Author: Colomban Wendling Date: Tue Sep 6 19:56:17 2016 +0200 GTK: Fix autoc font size on GTK >= 3.21.0 GTK 3.21.0 fixed font size handling, leading to properly interpreting pixels and points in CSS declarations. However, as older versions incorrectly handled those, the code has to handle both behaviours. From CSS, GTK < 3.21.0 actually applied the conversion to points, but incorrectly: 10px was used as 10pt, but 10pt was scaled up twice. So, assuming 96 DPI, it leads to: font-size | 3.20.0 | 3.21.0 | ----------|---------|---------| 10px | 13.33px | 10px | 10pt | 17.77px | 13.33px | So, we need to fix the code to accommodate for both (either scaling ourselves, or adapting the unit: I chose the second, simpler, option). See https://git.gnome.org/browse/gtk+/commit/?id=df08fc91bdc1d2e4c866122304fabe4dd298a7de X-Scintilla-Bug-URL: https://sourceforge.net/p/scintilla/bugs/1859/ X-Scintilla-Commit-ID: a4b5da8b3a0a05a1e67ba7eb08474106d421b088 scintilla/gtk/PlatGTK.cxx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 3f140861061ad0367f004a06caf391f1b9f94507 Author: Enrico Tröger Date: Sun Aug 7 16:37:28 2016 +0200 Improve template command error message The previous string was a bit confusing what the placeholders could mean. There was an error in the German translation where the second placeholder was interpreted as template name instead of the error message. This change should make it more clear and also put the error message to the end of the string. src/templates.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit c9d0bd7214b01a436ad9af99351a17accaf1eb92 Author: Colomban Wendling Date: Tue Sep 6 12:18:48 2016 +0200 Inherit C lexer_properties in all filetypes inheriting C styles `lexer.cpp.track.preprocessor` lexer properties affects which styles are used, and we don't set those, so no filetype inheriting C styles should set it to 1. Similarly, some properties like `styling.within.preprocessor` are mostly general settings rather than selecting syntax details, so they should probably match in all filetypes for consistency. So, inherit the C lexer_properties everywhere C styles are used, and only override specific properties in the inheriting filetype. data/filedefs/filetypes.CUDA.conf | 4 +--- data/filedefs/filetypes.Genie.conf | 2 +- data/filedefs/filetypes.Graphviz.conf | 4 ++-- data/filedefs/filetypes.JSON.conf | 2 ++ data/filedefs/filetypes.Scala.conf | 2 +- data/filedefs/filetypes.actionscript | 2 ++ data/filedefs/filetypes.cpp | 4 +--- data/filedefs/filetypes.cs | 4 +--- data/filedefs/filetypes.ferite | 2 ++ data/filedefs/filetypes.glsl | 4 +--- data/filedefs/filetypes.go | 3 +-- data/filedefs/filetypes.haxe | 2 +- data/filedefs/filetypes.java | 1 + data/filedefs/filetypes.javascript | 2 ++ data/filedefs/filetypes.vala | 4 +--- 15 files changed, 20 insertions(+), 22 deletions(-) commit bbdf56fc2e2c978de6a61c3be56dfeb5bc6963ef Author: Colomban Wendling Date: Tue Sep 6 11:31:57 2016 +0200 Haxe: Do not track preprocessor for styling We don't set the styles for inactive preprocessor sections, so we should make sure they aren't used. Also, Haxe has different preprocessor directives than C does, which confuses LexCPP tracking anyway. Fixes #936. data/filedefs/filetypes.haxe | 4 ++++ 1 file changed, 4 insertions(+) commit 09796ef727aa430588ee12fa6c83223acd1794a2 Author: Colomban Wendling Date: Tue Sep 6 11:08:52 2016 +0200 Remove SciTE properties from filetype definitions Those are SciTE-specific things that Scintilla itself never used, and that were simply erroneously imported into Geany. data/filedefs/filetypes.CUDA.conf | 4 ---- data/filedefs/filetypes.Graphviz.conf | 1 - data/filedefs/filetypes.c | 4 ---- data/filedefs/filetypes.cpp | 4 ---- data/filedefs/filetypes.cs | 4 ---- data/filedefs/filetypes.glsl | 4 ---- data/filedefs/filetypes.vala | 4 ---- 7 files changed, 25 deletions(-) commit 18db459632b62aa95bc3699a9e38c914d1220e79 Author: Colomban Wendling Date: Mon Sep 5 22:14:48 2016 +0200 Update Scintilla to version 3.6.7 Fixes #1143. scintilla/gtk/ScintillaGTK.cxx | 2 +- scintilla/include/Scintilla.h | 1 + scintilla/include/Scintilla.iface | 1 + scintilla/lexers/LexAbaqus.cxx | 14 ++++++------ scintilla/lexers/LexCPP.cxx | 17 +++++++++++--- scintilla/lexers/LexHTML.cxx | 13 ++++++++++- scintilla/src/CharClassify.cxx | 2 +- scintilla/src/CharClassify.h | 2 +- scintilla/src/Document.cxx | 2 +- scintilla/src/Document.h | 2 +- scintilla/src/Editor.cxx | 47 +++++++++++++++++++++++++-------------- scintilla/src/Editor.h | 3 ++- scintilla/src/ScintillaBase.cxx | 2 +- scintilla/src/XPM.cxx | 4 ++-- scintilla/version.txt | 2 +- 15 files changed, 76 insertions(+), 38 deletions(-) commit b7688b04b26deee0a23a965e11574489605fb1cf Author: Frank Lanitz Date: Mon Sep 5 11:13:26 2016 +0200 Update of Swedish translation NEWS | 2 +- po/sv.po | 148 ++++++++++++++++++++++++++++----------------------------------- 2 files changed, 67 insertions(+), 83 deletions(-) commit d51daca2840fadf633d014e5a321368fe177d29f Author: Frank Lanitz Date: Sun Sep 4 17:36:50 2016 +0200 Little update of NEWS for recent translation updates NEWS | 3 +++ 1 file changed, 3 insertions(+) commit 39eb8ac66f666ac5a97bb1d17a38013b7557cc12 Author: Robert Antoni Buj Gelonch Date: Sun Sep 4 13:06:08 2016 +0200 Update Catalan translation (#1206) po/ca.po | 2219 +++++++++++++++++++++++++++++--------------------------------- 1 file changed, 1053 insertions(+), 1166 deletions(-) commit 7ccee5287afb660f1085f68f1045f33eff12e390 Author: Marcelo Camargo Date: Fri Sep 2 09:50:45 2016 -0300 i18n: Fixed incorrect word in pt_BR (#1202) * Changed gender of noun IDE * Fixed incorrect word in pt_BR po/pt_BR.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 7b2b9609e473bdc591010a68794df46dac52e1be Author: Matthew Brush Date: Thu Sep 1 18:40:40 2016 -0700 Add plugin API functions to get/set document data TODO: add doc-comment annotations for GObject-Introspection src/plugins.c | 39 ++++++++++++++ src/pluginutils.c | 153 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/pluginutils.h | 11 ++++ 3 files changed, 203 insertions(+) commit ce6c0fad9481549c62c308a42ccfe774bacf3b55 Author: Matthew Brush Date: Wed Aug 31 21:02:24 2016 -0700 Add support for Keyed Data Lists for documents src/document.c | 23 +++++++++++++++++++++++ src/document.h | 7 +++++++ src/documentprivate.h | 2 ++ 3 files changed, 32 insertions(+) commit dd4c851cabad8f52c7aba00f71e675740217ffa2 Author: Colomban Wendling Date: Tue Aug 30 16:19:58 2016 +0200 Fix focusing the Terminal tab in the message window Use more generic code to not fall into the same issue next time layout changes, and to potentially support plugin tabs in the message window. Fixes #1198. src/keybindings.c | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) commit a3ab9b63f731498a8b70074f8355beb343cfbfd3 Author: Jiří Techet Date: Thu Aug 25 16:03:00 2016 +0200 Add .editorconfig .editorconfig | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 095d88958296200ee890dc2b45e0123f1559705b Author: Colomban Wendling Date: Mon Aug 22 19:52:25 2016 +0200 VTE: Fix crash when trying to change VTE directory at startup 2150302fe6e88f88e5eba78502b478be2b78c662 introduced a bug, because configuration_load_session_files() calls VTE code if vte_info.have_vte is non-FALSE, before vte_init() has been called. So, it relied in the implicit 0-initialization of the vte_info global, which the above commit changed carelessly. So, instead of altering vte_info.have_vte early, add a specific flag for whether VTE is disabled on the command line. Also, explicitly initialize vte_info to suggest to the reader the default values does matter. src/keyfile.c | 2 +- src/libmain.c | 6 ++---- src/vte.c | 2 +- src/vte.h | 5 +++-- 4 files changed, 7 insertions(+), 8 deletions(-) commit cb7da79824ccd023c495de37f047ae1441b45fd5 Author: Jiří Techet Date: Mon Aug 22 14:54:19 2016 +0200 Add CTAGS_ATTR_ prefix to UNUSED() and PRINTF() macros Also fix the macro use in objc.c to appear behind variables. ctags/main/general.h | 8 ++++---- ctags/main/lregex.c | 30 +++++++++++++++--------------- ctags/main/mio.h | 4 ++-- ctags/main/options.c | 2 +- ctags/main/options.h | 2 +- ctags/main/parse.c | 2 +- ctags/main/parse.h | 2 +- ctags/main/routines.h | 2 +- ctags/main/xtag.c | 2 +- ctags/parsers/c.c | 4 ++-- ctags/parsers/lua.c | 2 +- ctags/parsers/objc.c | 10 +++++----- 12 files changed, 35 insertions(+), 35 deletions(-) commit d3b0bbec268c7f063a2d018c9f27602f989e0d81 Merge: c5d409340 a4a4accc4 Author: Colomban Wendling Date: Sun Aug 21 13:56:25 2016 +0200 Merge pull request #1154 from b4n/lines-around-scroll Add support for keeping the cursor a number of lines from the edges commit a4a4accc42de4f21fde16bb183844dc1bf8db4d4 Author: Colomban Wendling Date: Fri Jul 29 16:06:58 2016 +0200 Add support for keeping the cursor a number of lines from the edges Closes #1152. data/geany.glade | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ doc/geany.txt | 6 ++++++ src/editor.c | 9 ++++++++- src/editor.h | 1 + src/keyfile.c | 2 ++ 5 files changed, 65 insertions(+), 1 deletion(-) commit c5d409340b8a488ecd4cb47c19709d5866761d3f Merge: 42c02db14 29bffe692 Author: Colomban Wendling Date: Sat Aug 20 19:58:42 2016 +0200 Merge pull request #1174 from b4n/escape-markup Escape format arguments passed to ui_label_set_markup(), and deprecate ui_frame_new_with_alignment() which exposed a broken API because of it. commit 42c02db149391e32801543f3b6dbebcf43b4ff3b Merge: 5002f92dc e3f7d256c Author: Colomban Wendling Date: Sat Aug 20 19:55:26 2016 +0200 Merge pull request #1155 from b4n/cxx-check Test whether the C++ compiler works by compiling a test program commit 5002f92dc6418849e7f88ab9ae809f64721ff6b0 Merge: 0c01192a3 2150302fe Author: Colomban Wendling Date: Sat Aug 20 01:48:43 2016 +0200 Merge pull request #651 from b4n/vte-in-various-prefs Show some hidden VTE preferences in the Various preferences page commit 2150302fe6e88f88e5eba78502b478be2b78c662 Author: Colomban Wendling Date: Sat Aug 20 01:47:30 2016 +0200 VTE: Don't show the various settings when VTE is disabled on the CLI src/keyfile.c | 2 +- src/libmain.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) commit 29bffe6923b803ce4559a032b51e1b1f14ca8519 Author: Colomban Wendling Date: Fri Aug 19 21:39:48 2016 +0200 Deprecate ui_frame_new_with_alignment() It has no usage inside Geany itself, had a bug in handling of markup in the label, has only one user in Geany-Plugins, and is fairly easy to reproduce. src/ui_utils.c | 2 ++ src/ui_utils.h | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) commit b7f7ce267546d4e43511b613594daeb6e8051559 Author: Jiří Techet Date: Fri Aug 19 15:16:32 2016 +0100 Drop vi modelines ctags/main/args.c | 2 -- ctags/main/args.h | 2 -- ctags/main/ctags.h | 2 -- ctags/main/entry.c | 2 -- ctags/main/entry.h | 2 -- ctags/main/general.h | 2 -- ctags/main/keyword.c | 2 -- ctags/main/keyword.h | 2 -- ctags/main/lcpp.c | 2 -- ctags/main/lcpp.h | 2 -- ctags/main/lregex.c | 2 -- ctags/main/main.c | 2 -- ctags/main/main.h | 2 -- ctags/main/nestlevel.c | 2 -- ctags/main/nestlevel.h | 2 -- ctags/main/options.c | 2 -- ctags/main/options.h | 2 -- ctags/main/parse.c | 2 -- ctags/main/parse.h | 2 -- ctags/main/parsers.h | 2 -- ctags/main/read.c | 2 -- ctags/main/read.h | 2 -- ctags/main/routines.c | 3 --- ctags/main/routines.h | 2 -- ctags/main/sort.c | 2 -- ctags/main/sort.h | 2 -- ctags/main/strlist.c | 2 -- ctags/main/strlist.h | 2 -- ctags/main/vstring.c | 2 -- ctags/main/vstring.h | 2 -- ctags/parsers/asciidoc.c | 2 -- ctags/parsers/asm.c | 2 -- ctags/parsers/basic.c | 2 -- ctags/parsers/c.c | 1 - ctags/parsers/cobol.c | 2 -- ctags/parsers/conf.c | 2 -- ctags/parsers/diff.c | 2 -- ctags/parsers/erlang.c | 2 -- ctags/parsers/fortran.c | 1 - ctags/parsers/haskell.c | 2 -- ctags/parsers/html.c | 2 -- ctags/parsers/jscript.c | 1 - ctags/parsers/lua.c | 2 -- ctags/parsers/make.c | 2 -- ctags/parsers/matlab.c | 2 -- ctags/parsers/nsis.c | 2 -- ctags/parsers/pascal.c | 2 -- ctags/parsers/perl.c | 2 -- ctags/parsers/php.c | 2 -- ctags/parsers/powershell.c | 2 -- ctags/parsers/python.c | 2 -- ctags/parsers/r.c | 2 -- ctags/parsers/rest.c | 2 -- ctags/parsers/ruby.c | 2 -- ctags/parsers/sh.c | 2 -- ctags/parsers/sql.c | 2 -- ctags/parsers/tcl.c | 2 -- ctags/parsers/verilog.c | 2 -- ctags/parsers/vhdl.c | 2 -- 59 files changed, 116 deletions(-) commit a974f35752558173a470df92fb505cabb395af2a Author: Jiří Techet Date: Tue Aug 16 13:18:50 2016 +0100 Define KEYWORD_NONE in keyword.h so it doesn't have to be defined by parsers ctags/main/keyword.h | 2 ++ ctags/parsers/c.c | 1 - ctags/parsers/fortran.c | 1 - ctags/parsers/go.c | 1 - ctags/parsers/jscript.c | 1 - ctags/parsers/php.c | 1 - ctags/parsers/sql.c | 1 - 7 files changed, 2 insertions(+), 6 deletions(-) commit d0cc3dc132558b277444c7b269874b1120ee806b Author: Jiří Techet Date: Wed Aug 10 11:55:02 2016 +0200 Remove TagEntryFunction check in c.c It's always non-null in Geany, it's value is checked in makeTagEntry() anyway and parsers shouldn't know about it. ctags/parsers/c.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 2499b96ea1d1eb523733c95e7ec73af827b6032e Author: Colomban Wendling Date: Wed Aug 10 03:00:56 2016 +0200 Escape format arguments passed to ui_label_set_markup() src/ui_utils.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 0c01192a31f38c0472fe49f545bef5ba5592f1be Author: Colomban Wendling Date: Wed Aug 10 02:16:48 2016 +0200 search: Fix the tooltip to mention Perl-like, not PCRE regular expressions Follow-up to #1168. Closes #1170. src/search.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fa699cc4c9f270b98094398d96a2229ec44155c3 Author: Stefan Date: Tue Aug 9 07:32:18 2016 +0200 Fixes spelling mistake in German translation for geany.glade.h:425. (#1167) po/de.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0eca258e58693ebdf0670b74e6934acc6ed2a7b9 Author: Jiří Techet Date: Tue Aug 9 00:34:29 2016 +0200 Fix incorrect use of MIO ctags/main/entry.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e866a976c960fe4d2a6150c3980ff278b21ed8b2 Author: Jiří Techet Date: Mon Aug 8 23:01:14 2016 +0200 entry: Move functions around a bit to reduce the amount of diffs ctags/main/entry.c | 76 +++++++++++++++++++++++++++--------------------------- 1 file changed, 38 insertions(+), 38 deletions(-) commit c354384c3a466b5416a0ce4603f0dd9e9399c829 Author: Colomban Wendling Date: Mon Aug 8 21:39:51 2016 +0200 search: Fix the tooltip to mention PCRE, not POSIX regular expressions src/search.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ca65fa22367042ea8c88efab7e76d5f0ba209947 Author: Jiří Techet Date: Sun Aug 7 16:57:55 2016 +0200 Sync whitespace and comments in main ctags/main/args.c | 8 ++++---- ctags/main/args.h | 15 ++++++++------- ctags/main/ctags.h | 12 +++++++----- ctags/main/entry.c | 21 ++++++++++----------- ctags/main/entry.h | 13 ++++++------- ctags/main/general.h | 13 ++++++------- ctags/main/lcpp.c | 2 +- ctags/main/lregex.c | 5 +++-- ctags/main/main.c | 2 +- ctags/main/nestlevel.c | 2 +- ctags/main/nestlevel.h | 8 ++++---- ctags/main/options.c | 15 +++++++-------- ctags/main/options.h | 6 +++--- ctags/main/parse.c | 11 +++++------ ctags/main/parse.h | 33 ++++++++++++++++----------------- ctags/main/parsers.h | 13 ++++++------- ctags/main/read.c | 8 ++++---- ctags/main/read.h | 33 +++++++++++++++------------------ ctags/main/routines.c | 11 +++++------ ctags/main/sort.c | 15 +++++++-------- ctags/main/sort.h | 12 ++++++------ ctags/main/strlist.c | 2 +- ctags/main/strlist.h | 8 ++++---- ctags/main/vstring.c | 14 +++++++------- ctags/main/vstring.h | 50 +++++++++++++++++++++++++------------------------- 25 files changed, 162 insertions(+), 170 deletions(-) commit 967b572240513689fc2f6f9aefa929e7d54f6bfc Author: Jiří Techet Date: Sun Aug 7 12:16:24 2016 +0200 Rename MIO variables from fp to mio ctags/main/entry.c | 4 ++-- ctags/main/read.c | 14 +++++++------- ctags/main/read.h | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) commit 02138f9e59cc5d57b3db617561d00bb09110b1a0 Author: Jiří Techet Date: Sun Aug 7 11:51:24 2016 +0200 Rename TM_DEBUG macro to DEBUG ctags/main/keyword.c | 2 +- ctags/main/keyword.h | 2 +- ctags/main/main.c | 2 +- ctags/parsers/c.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit 25c1d220cf5b54d0908fc4b8bf1768043d0447bf Author: Jiří Techet Date: Sun Aug 7 11:29:49 2016 +0200 objc: Remove unnecessary redefinition of UNUSED ctags/parsers/objc.c | 11 ----------- 1 file changed, 11 deletions(-) commit a59f82ec69737cc50533367c172ba3ddadbd51d1 Author: Jiří Techet Date: Sun Aug 7 01:41:14 2016 +0200 Rename getArglistFromFilePos() to cppGetArglistFromFilePos() to match the rest ctags/main/lcpp.c | 4 ++-- ctags/main/lcpp.h | 2 +- ctags/parsers/c.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 20ad9ad4285b93ee80757408fa3a9d8d0d7dd9b9 Author: Jiří Techet Date: Sun Aug 7 01:38:56 2016 +0200 Make getArglistFromStr() static ctags/main/lcpp.c | 60 +++++++++++++++++++++++++------------------------- ctags/main/lcpp.h | 1 - ctags/parsers/python.c | 2 +- 3 files changed, 31 insertions(+), 32 deletions(-) commit d1222299020b7fb81e04e6441d900ac3a9b03ba0 Author: Jiří Techet Date: Sun Aug 7 01:29:28 2016 +0200 Rename skipOverCComment() to cppSkipOverCComment() ctags/main/lcpp.c | 4 ++-- ctags/main/lcpp.h | 2 +- ctags/parsers/verilog.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 4910e2554bbe4aefeb29b25b743c8ae0d2cb284a Author: Jiří Techet Date: Sun Aug 7 01:26:30 2016 +0200 Rename getDirectiveNestLevel() to cppGetDirectiveNestLevel() ctags/main/lcpp.c | 2 +- ctags/main/lcpp.h | 3 ++- ctags/parsers/c.c | 6 +++--- 3 files changed, 6 insertions(+), 5 deletions(-) commit 2638899379cafb09fbf4ef5cbfa3dd7e58834692 Author: Jiří Techet Date: Sun Aug 7 01:24:21 2016 +0200 Rename isBraceFormat to cppIsBraceFormat() ctags/main/lcpp.c | 2 +- ctags/main/lcpp.h | 2 +- ctags/parsers/c.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) commit 88a8724d1ce42c1c2c1437c6c1ac137c3f5e2f84 Author: Jiří Techet Date: Sun Aug 7 01:22:21 2016 +0200 Rename isident1() to cppIsident1() ctags/main/lcpp.c | 6 +++--- ctags/main/lcpp.h | 2 +- ctags/parsers/c.c | 22 +++++++++++----------- 3 files changed, 15 insertions(+), 15 deletions(-) commit 95f94629f0fd5d4d40d7d3343014f79b2cc75988 Author: Jiří Techet Date: Sun Aug 7 01:19:23 2016 +0200 Rename isident() to cppIsident() ctags/main/lcpp.c | 8 ++++---- ctags/main/lcpp.h | 2 +- ctags/parsers/c.c | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) commit 1d48599d3cf6f0c8c92b2e1fb8d61b9b8af96769 Author: Jiří Techet Date: Sun Aug 7 01:14:38 2016 +0200 Remove R regex parser Unused by us, not present in uctags. ctags/parsers/r.c | 26 -------------------------- 1 file changed, 26 deletions(-) commit 2671d73b6759a9ba2c7cab1ae54a84e52cb40874 Author: Jiří Techet Date: Sun Aug 7 01:12:21 2016 +0200 Use skipToCharacterInInputFile() in all parsers ctags/parsers/jscript.c | 16 +++------------- ctags/parsers/php.c | 12 +----------- ctags/parsers/powershell.c | 12 +----------- 3 files changed, 5 insertions(+), 35 deletions(-) commit 76818f94394c5715ba08e31e9e39639279fc32ad Author: Jiří Techet Date: Sun Aug 7 01:06:39 2016 +0200 Change getSourceFileName() to getInputFileName() ctags/main/read.c | 3 +++ ctags/main/read.h | 3 +-- ctags/parsers/rust.c | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) commit 2161b73864973cc63a85526158cea35f59e849a8 Author: Jiří Techet Date: Sun Aug 7 00:59:54 2016 +0200 Change isHeaderFile() to isInputHeaderFile() ctags/main/lcpp.c | 2 +- ctags/main/read.c | 1 + ctags/main/read.h | 2 +- ctags/parsers/c.c | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) commit 7bd81abc1d95b0033257967f6849351d6def262b Author: Jiří Techet Date: Sun Aug 7 00:57:17 2016 +0200 Change isLanguage() to isInputLanguage() ctags/main/read.c | 1 + ctags/main/read.h | 2 +- ctags/parsers/c.c | 136 +++++++++++++++++++++++++++--------------------------- 3 files changed, 70 insertions(+), 69 deletions(-) commit 082a9724f12d2beda1002081b2ed16611e04e12f Author: Jiří Techet Date: Sun Aug 7 00:49:51 2016 +0200 Use ARRAY_SIZE() in parsers ctags/parsers/c.c | 14 +++++++------- ctags/parsers/perl.c | 2 +- ctags/parsers/php.c | 4 ++-- ctags/parsers/powershell.c | 4 +--- ctags/parsers/ruby.c | 2 +- ctags/parsers/verilog.c | 3 +-- 6 files changed, 13 insertions(+), 16 deletions(-) commit 9745d470c6288d88b455436a918f92e13e271df4 Author: Jiří Techet Date: Sun Aug 7 00:35:51 2016 +0200 Sync whitespace in parsers ctags/parsers/asm.c | 2 +- ctags/parsers/basic.c | 3 +- ctags/parsers/c.c | 413 ++++++++++++++++++++++++------------------------ ctags/parsers/fortran.c | 84 +++++----- ctags/parsers/html.c | 1 - ctags/parsers/jscript.c | 23 +-- ctags/parsers/pascal.c | 46 +++--- ctags/parsers/php.c | 2 +- ctags/parsers/python.c | 39 +++-- ctags/parsers/r.c | 37 ++--- ctags/parsers/ruby.c | 8 +- ctags/parsers/sql.c | 154 +++++++++--------- ctags/parsers/tcl.c | 4 +- 13 files changed, 407 insertions(+), 409 deletions(-) commit 11dcc5e3e5a0014905fbb76457b52991135dc410 Author: Jiří Techet Date: Sat Aug 6 22:42:37 2016 +0200 Fix indentation ctags/main/routines.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 026da60fd0a28d8c86a22ead262d261b9e6c7be4 Author: Jiří Techet Date: Sat Aug 6 22:42:15 2016 +0200 Move selected() under Miscellaneous macros ctags/main/routines.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0650707ce548273b1a0bb73680246645b2e3f49a Author: Jiří Techet Date: Sat Aug 6 22:06:41 2016 +0200 Fix pascal tag initizalization ctags/parsers/pascal.c | 3 +++ 1 file changed, 3 insertions(+) commit 0ec3590e199eb9f4576eacaffc7785dca2e5f847 Author: Jiří Techet Date: Sat Aug 6 22:01:05 2016 +0200 Remove makeSimpleScopedTag() and fix scope for conf filetype ctags/main/parse.c | 18 ------------------ ctags/main/parse.h | 1 - ctags/parsers/conf.c | 12 ++++++++---- ctags/parsers/haxe.c | 10 ---------- 4 files changed, 8 insertions(+), 33 deletions(-) commit 530f47584a6d3ff48362951857f95ad854bd9756 Author: Jiří Techet Date: Sat Aug 6 16:34:37 2016 +0200 Revert "Rename "mio" member of sInputFile to "fp"" Let's rename fp to mio in uctags instead. This reverts commit 3dd1fb4853952d8fd80963952a03299e9b2c8012. Conflicts: ctags/main/read.c ctags/main/read.h ctags/main/lcpp.c | 12 ++++----- ctags/main/read.c | 76 +++++++++++++++++++++++++++---------------------------- ctags/main/read.h | 2 +- ctags/parsers/c.c | 2 +- 4 files changed, 46 insertions(+), 46 deletions(-) commit eb45c80058bc74fb3331e91d78d41e54b1ff482b Author: Jiří Techet Date: Wed Aug 3 12:21:51 2016 +0200 Always define ExecutableName variable ctags/main/routines.c | 3 --- 1 file changed, 3 deletions(-) commit 7e0845b083e56f59b87390507df9444c4f99b826 Author: Jiří Techet Date: Wed Aug 3 12:20:57 2016 +0200 Make PathDelimiters match the declaration in header ctags/main/routines.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9c4c113488f6d5743c79865c74f2d6d4e8dd875a Author: Jiří Techet Date: Wed Aug 3 12:00:14 2016 +0200 Remove some additional functions from ctags which we don't need in Geany These are useless for Geany and introduce some compilation errors at the moment so drop them for now. ctags/main/main.c | 102 -------------------------------------------------- ctags/main/routines.c | 4 -- 2 files changed, 106 deletions(-) commit ea72ecc00fc22f24eced3ffce7c7db67d5f02271 Author: Jiří Techet Date: Wed Aug 3 00:27:22 2016 +0200 Remove ctags.c and move its content to routines.c, main.c and options.c This is mostly just moving code with just some minor modifications: - removal of code of unsupported platforms (VAX, OS2, etc.) - syncing includes/headers of affected files with uctags - removal of some functions we don't need in Geany and whose movement would require additional changes (those will get added back when doing final sync with uctags) - minor whitespace syncs ctags/Makefile.am | 3 +- ctags/main/args.c | 2 +- ctags/main/ctags.c | 1397 ----------------------------------------------- ctags/main/entry.c | 1 + ctags/main/general.h | 111 +--- ctags/main/lregex.c | 2 +- ctags/main/main.c | 277 ++++++++++ ctags/main/main.h | 66 +-- ctags/main/nestlevel.c | 2 + ctags/main/options.c | 59 +- ctags/main/options.h | 4 +- ctags/main/parse.c | 1 + ctags/main/routines.c | 788 ++++++++++++++++++++++++++ ctags/main/routines.h | 82 ++- ctags/main/sort.c | 2 +- ctags/main/strlist.c | 2 +- ctags/main/vstring.c | 2 +- ctags/parsers/asm.c | 1 - ctags/parsers/c.c | 1 - ctags/parsers/fortran.c | 1 - ctags/parsers/jscript.c | 1 - ctags/parsers/json.c | 1 - ctags/parsers/matlab.c | 2 +- ctags/parsers/pascal.c | 1 - ctags/parsers/perl.c | 1 - ctags/parsers/php.c | 1 - ctags/parsers/sh.c | 1 - ctags/parsers/sql.c | 1 - 28 files changed, 1210 insertions(+), 1603 deletions(-) commit d440a81166e62d41e2b06d555b471db5fdd8d80d Author: Jiří Techet Date: Mon Aug 1 23:48:06 2016 +0200 Add tagRegexTable to parserDefinition and use it to define regex parsers Also whitespace-format regexes so they match uctags. ctags/main/parse.c | 32 +++++++++++++++++--- ctags/main/parse.h | 22 +++++++++++++- ctags/parsers/actionscript.c | 62 +++++++++++++++++++------------------- ctags/parsers/cobol.c | 38 ++++++++++++----------- ctags/parsers/html.c | 49 +++++++++++++----------------- src/tagmanager/tm_ctags_wrappers.c | 2 +- 6 files changed, 121 insertions(+), 84 deletions(-) commit 1b32ac5481d826a4fbc729ef06a4b664e5448d21 Author: Jiří Techet Date: Mon Aug 1 18:58:27 2016 +0200 Add full xtag implementation and use it to check XTAG_QUALIFIED_TAGS ctags/Makefile.am | 1 + ctags/main/options.c | 3 +- ctags/main/options.h | 12 ++-- ctags/main/routines.h | 3 + ctags/main/xtag.c | 155 ++++++++++++++++++++++++++++++++++++++++++++++++++ ctags/main/xtag.h | 55 ++++++++++++++++++ ctags/parsers/c.c | 2 +- ctags/parsers/go.c | 4 +- ctags/parsers/perl.c | 4 +- 9 files changed, 227 insertions(+), 12 deletions(-) commit 8c0bfbb0f388124f601049301e2742bb1d7ccf1b Author: Jiří Techet Date: Mon Aug 1 18:33:21 2016 +0200 Add parserNewFull() and use it for selected parsers For now just to eliminate diff from parsers, the actual custom file tag isn't supported (unused by Geany anyway). ctags/main/kind.h | 2 ++ ctags/main/parse.c | 9 +++++++++ ctags/main/parse.h | 1 + ctags/parsers/objc.c | 2 +- ctags/parsers/ruby.c | 2 +- ctags/parsers/rust.c | 2 +- ctags/parsers/sql.c | 2 +- 7 files changed, 16 insertions(+), 4 deletions(-) commit 781f4ef1caba2c0c3fbaa5dbc9481a9e14a031a9 Author: Jiří Techet Date: Mon Aug 1 01:34:50 2016 +0200 Use getInputLineNumber() instead of getSourceLineNumber() in parsers We want the line number of the tag appearance, not the line after #line directives are processed. ctags/parsers/c.c | 2 +- ctags/parsers/css.c | 2 +- ctags/parsers/fortran.c | 4 ++-- ctags/parsers/go.c | 8 ++++---- ctags/parsers/jscript.c | 12 ++++++------ ctags/parsers/json.c | 4 ++-- ctags/parsers/php.c | 6 +++--- ctags/parsers/powershell.c | 6 +++--- ctags/parsers/rust.c | 4 ++-- ctags/parsers/sql.c | 10 +++++----- 10 files changed, 29 insertions(+), 29 deletions(-) commit 4fbd38f6904a9ba93b1961a10d9d977bb83d277c Author: Jiří Techet Date: Mon Aug 1 00:43:18 2016 +0200 Pass kind information into initTagEntry() The usage in lregex is hacky (casting const char * to char *) but it's the quickest way to implement it right now (the question is whether we shouldn't revert back to POSIX regex and simply use the uctags implementation). ctags/main/entry.c | 3 ++- ctags/main/entry.h | 5 ++--- ctags/main/kind.h | 5 +++++ ctags/main/lcpp.c | 10 ++++++---- ctags/main/lcpp.h | 3 ++- ctags/main/lregex.c | 22 +++++++--------------- ctags/main/parse.c | 34 ++++++++++++++++++++++++---------- ctags/main/parse.h | 2 ++ ctags/main/read.c | 9 ++++++--- ctags/main/read.h | 4 ++++ ctags/parsers/abc.c | 4 +--- ctags/parsers/asciidoc.c | 4 +--- ctags/parsers/c.c | 6 ++---- ctags/parsers/css.c | 4 +--- ctags/parsers/erlang.c | 4 +--- ctags/parsers/fortran.c | 4 +--- ctags/parsers/go.c | 4 +--- ctags/parsers/jscript.c | 4 +--- ctags/parsers/json.c | 4 +--- ctags/parsers/markdown.c | 4 +--- ctags/parsers/objc.c | 4 +--- ctags/parsers/pascal.c | 6 +----- ctags/parsers/perl.c | 5 +---- ctags/parsers/php.c | 8 ++------ ctags/parsers/powershell.c | 4 +--- ctags/parsers/python.c | 24 +++++++++--------------- ctags/parsers/r.c | 5 +---- ctags/parsers/rest.c | 4 +--- ctags/parsers/ruby.c | 4 +--- ctags/parsers/rust.c | 5 +---- ctags/parsers/sql.c | 4 +--- ctags/parsers/txt2tags.c | 5 +---- src/tagmanager/tm_source_file.c | 2 +- 33 files changed, 93 insertions(+), 126 deletions(-) commit 359c60b81b8d80af4551f638b2b8c894066cd82c Author: Jiří Techet Date: Sun Jul 31 21:00:58 2016 +0200 Rename get.c/h to lcpp.c/h ctags/Makefile.am | 4 ++-- ctags/main/{get.c => lcpp.c} | 8 +++++--- ctags/main/{get.h => lcpp.h} | 8 ++++---- ctags/parsers/c.c | 2 +- ctags/parsers/verilog.c | 2 +- 5 files changed, 13 insertions(+), 11 deletions(-) commit e3f7d256c32307d211b728582fb688512cddfb24 Author: Colomban Wendling Date: Sun Jul 31 00:40:58 2016 +0200 Test whether the C++ compiler works by compiling a test program This is more reliable than using `which`, which doesn't work if the CXX environment variable is set to something else than an executable (e.g contains options), and is apparently less portable on some systems. See: * http://lists.geany.org/pipermail/devel/2009-September/001367.html, which lead to 5bb28825aadb43ea8ba536c34970d53860b50759. * https://sourceforge.net/p/geany/bugs/455/, which lead to a revert of the above, 5b9605a9d6d799629b8ed3163596069c8c948b06. Fixes #829. configure.ac | 6 +----- m4/geany-prog-cxx.m4 | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 5 deletions(-) commit 0ed5c16b4614a12e6881a897bc8b2eb28e708c3e Author: Jiří Techet Date: Sat Jul 30 16:04:06 2016 +0200 Rename tagEntryInfo.extensionFields.scope This requires moving kindOption into a separate file because of circular include dependency. Also eliminate now redundant tagLetter() function in c.c. ctags/Makefile.am | 1 + ctags/main/entry.h | 6 +++++- ctags/main/kind.h | 20 ++++++++++++++++++++ ctags/main/parse.c | 6 +++--- ctags/main/parse.h | 7 ------- ctags/parsers/asciidoc.c | 4 ++-- ctags/parsers/c.c | 42 +++++++++++++---------------------------- ctags/parsers/erlang.c | 4 ++-- ctags/parsers/fortran.c | 4 ++-- ctags/parsers/go.c | 4 ++-- ctags/parsers/jscript.c | 4 ++-- ctags/parsers/json.c | 4 ++-- ctags/parsers/objc.c | 4 ++-- ctags/parsers/php.c | 4 ++-- ctags/parsers/powershell.c | 4 ++-- ctags/parsers/python.c | 20 ++++++++++---------- ctags/parsers/rest.c | 4 ++-- ctags/parsers/ruby.c | 4 ++-- ctags/parsers/rust.c | 4 ++-- ctags/parsers/sql.c | 4 ++-- ctags/parsers/txt2tags.c | 4 ++-- src/tagmanager/tm_source_file.c | 6 +++--- 22 files changed, 83 insertions(+), 81 deletions(-) commit cb1c15483bce9e5bad735113ca2b185cb7ff8924 Author: Jiří Techet Date: Sat Jul 30 13:49:53 2016 +0200 Eliminate some trivial diffs in read.c Mostly indentation and comment stuff. We can replace the implementation of readSourceLine() with readLineFromBypass() as it's never used in Geany. ctags/main/read.c | 64 ++++++++++++++++++++++++++----------------------------- 1 file changed, 30 insertions(+), 34 deletions(-) commit 781738fe10153e808dbce08879618f1ce91d685f Author: Jiří Techet Date: Sat Jul 30 13:11:45 2016 +0200 Replace fileGetc() with getcFromInputFile() also in comments ctags/main/read.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ba2209e4a614731f7b1035af225bd9d2f1dcff07 Author: Jiří Techet Date: Sat Jul 30 13:10:10 2016 +0200 Rename readLine() to readLineRaw() Plus make some minor changes in its implementation to match uctags. ctags/main/entry.c | 8 ++++---- ctags/main/lregex.c | 2 +- ctags/main/parse.c | 2 +- ctags/main/read.c | 21 ++++++++++----------- ctags/main/read.h | 2 +- ctags/main/sort.c | 2 +- ctags/main/strlist.c | 2 +- 7 files changed, 19 insertions(+), 20 deletions(-) commit bbbbb309baa0ff6a94f50437e99cc962aa7b047f Author: Jiří Techet Date: Sat Jul 30 12:57:22 2016 +0200 Rename fileReadLine() to readLineFromInputFile() ctags/main/lregex.c | 2 +- ctags/main/read.c | 6 +++--- ctags/main/read.h | 2 +- ctags/parsers/abaqus.c | 2 +- ctags/parsers/abc.c | 2 +- ctags/parsers/asciidoc.c | 2 +- ctags/parsers/asm.c | 2 +- ctags/parsers/basic.c | 2 +- ctags/parsers/conf.c | 2 +- ctags/parsers/diff.c | 2 +- ctags/parsers/docbook.c | 2 +- ctags/parsers/erlang.c | 2 +- ctags/parsers/haxe.c | 2 +- ctags/parsers/latex.c | 2 +- ctags/parsers/lua.c | 2 +- ctags/parsers/markdown.c | 2 +- ctags/parsers/matlab.c | 2 +- ctags/parsers/nsis.c | 2 +- ctags/parsers/objc.c | 6 +++--- ctags/parsers/pascal.c | 4 ++-- ctags/parsers/perl.c | 6 +++--- ctags/parsers/python.c | 4 ++-- ctags/parsers/r.c | 4 ++-- ctags/parsers/rest.c | 2 +- ctags/parsers/ruby.c | 2 +- ctags/parsers/sh.c | 2 +- ctags/parsers/tcl.c | 2 +- ctags/parsers/txt2tags.c | 2 +- 28 files changed, 37 insertions(+), 37 deletions(-) commit bf2b64239a7958168ae1ffc9e9623c320e14d2ab Author: Jiří Techet Date: Sat Jul 30 12:51:24 2016 +0200 Rename fileGetNthPrevC() to getNthPrevCFromInputFile() ctags/main/get.c | 6 +++--- ctags/main/read.c | 2 +- ctags/main/read.h | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) commit 61278d40314db93beab70377f593cce586e7f312 Author: Jiří Techet Date: Sat Jul 30 12:50:57 2016 +0200 Rename fileSkipToCharacter() to skipToCharacterInInputFile() ctags/main/read.c | 2 +- ctags/main/read.h | 2 +- ctags/parsers/go.c | 2 +- ctags/parsers/sql.c | 8 ++++---- 4 files changed, 7 insertions(+), 7 deletions(-) commit 357e4fe1bd55861e5a6f70b3d2417a05ca2b29a0 Author: Jiří Techet Date: Sat Jul 30 12:31:59 2016 +0200 Rename fileUngetc() to ungetcToInputFile() ctags/main/get.c | 36 ++++++++++++++++++------------------ ctags/main/read.c | 2 +- ctags/main/read.h | 2 +- ctags/parsers/css.c | 4 ++-- ctags/parsers/fortran.c | 6 +++--- ctags/parsers/go.c | 12 ++++++------ ctags/parsers/haskell.c | 4 ++-- ctags/parsers/jscript.c | 20 ++++++++++---------- ctags/parsers/json.c | 2 +- ctags/parsers/make.c | 10 +++++----- ctags/parsers/php.c | 34 +++++++++++++++++----------------- ctags/parsers/powershell.c | 12 ++++++------ ctags/parsers/sql.c | 12 ++++++------ ctags/parsers/verilog.c | 2 +- 14 files changed, 79 insertions(+), 79 deletions(-) commit acdc44074fc79183c5813b1fad5ca2151cfd2d1b Author: Jiří Techet Date: Sat Jul 30 12:23:42 2016 +0200 Rename fileGetc() to getcFromInputFile() ctags/main/get.c | 58 +++++++++++------------ ctags/main/read.c | 4 +- ctags/main/read.h | 2 +- ctags/parsers/css.c | 16 +++---- ctags/parsers/fortran.c | 20 ++++---- ctags/parsers/go.c | 16 +++---- ctags/parsers/haskell.c | 16 +++---- ctags/parsers/jscript.c | 28 +++++------ ctags/parsers/json.c | 6 +-- ctags/parsers/make.c | 4 +- ctags/parsers/php.c | 116 ++++++++++++++++++++++----------------------- ctags/parsers/powershell.c | 24 +++++----- ctags/parsers/rust.c | 2 +- ctags/parsers/sql.c | 18 +++---- ctags/parsers/verilog.c | 8 ++-- ctags/parsers/vhdl.c | 6 +-- 16 files changed, 172 insertions(+), 172 deletions(-) commit 1e36d2367e2b1180a84d7830b0f0e79be2dc44c8 Author: Jiří Techet Date: Sat Jul 30 11:53:26 2016 +0200 Add separate "input" entry to sInputFile and use it This patch basically just replaces sInputFile.name -> sInputFile.input.name sInputFile.lineNumber -> sInputFile.input.lineNumber plus some minor related stuff. ctags/main/entry.c | 2 +- ctags/main/read.c | 25 +++++++++++++------------ ctags/main/read.h | 29 +++++++++++++++++------------ ctags/main/vstring.c | 10 ++++++++++ ctags/main/vstring.h | 2 ++ ctags/parsers/sh.c | 2 +- 6 files changed, 44 insertions(+), 26 deletions(-) commit 7ac17b662facd503d0c822cd61726f329b3a4607 Author: Jiří Techet Date: Sat Jul 30 00:40:37 2016 +0200 Eliminate readNextChar() and pushBackChar() ctags/main/read.c | 39 ++++++++++++++------------------------- 1 file changed, 14 insertions(+), 25 deletions(-) commit 3dd1fb4853952d8fd80963952a03299e9b2c8012 Author: Jiří Techet Date: Sat Jul 30 00:32:59 2016 +0200 Rename "mio" member of sInputFile to "fp" ctags/main/get.c | 12 ++++++------ ctags/main/read.c | 52 ++++++++++++++++++++++++++-------------------------- ctags/main/read.h | 2 +- ctags/parsers/c.c | 2 +- 4 files changed, 34 insertions(+), 34 deletions(-) commit ae8dc545cec1eb7e951d5c36d053615ea548b486 Author: Jiří Techet Date: Fri Jul 29 22:50:11 2016 +0200 Add keywordTable to parserDefinition and use a common way to initialize keywords ctags/main/parse.c | 39 +++++++++++++++++++++++++++++++++++---- ctags/main/parse.h | 7 +++++++ ctags/parsers/asm.c | 14 ++------------ ctags/parsers/fortran.c | 18 ++++-------------- ctags/parsers/go.c | 10 ++-------- ctags/parsers/jscript.c | 17 +++-------------- ctags/parsers/objc.c | 17 ++--------------- ctags/parsers/php.c | 17 ++++------------- ctags/parsers/sql.c | 17 +++-------------- ctags/parsers/vhdl.c | 10 ++-------- 10 files changed, 64 insertions(+), 102 deletions(-) commit 6bc579798716dbe94a171a016f9989c92c4b67e2 Author: Jiří Techet Date: Fri Jul 29 22:03:56 2016 +0200 Don't use combination of tabs and spaces for indentation This was done using Geany's "replace tabs with spaces" followed by "replace spaces with tabs" plus a lot of manual work because the indentation was inconsistent in many cases. ctags/main/args.c | 320 +++++----- ctags/main/args.h | 40 +- ctags/main/ctags.c | 1496 +++++++++++++++++++++++----------------------- ctags/main/ctags.h | 12 +- ctags/main/entry.c | 458 +++++++------- ctags/main/entry.h | 70 +-- ctags/main/general.h | 12 +- ctags/main/main.h | 2 +- ctags/main/options.c | 144 ++--- ctags/main/options.h | 100 ++-- ctags/main/parse.c | 798 ++++++++++++------------- ctags/main/parse.h | 52 +- ctags/main/parsers.h | 106 ++-- ctags/main/read.c | 796 ++++++++++++------------ ctags/main/read.h | 100 ++-- ctags/main/sort.c | 254 ++++---- ctags/main/sort.h | 6 +- ctags/main/vstring.c | 170 +++--- ctags/main/vstring.h | 44 +- ctags/parsers/asciidoc.c | 2 +- ctags/parsers/c.c | 2 +- ctags/parsers/conf.c | 48 +- ctags/parsers/css.c | 14 +- ctags/parsers/diff.c | 2 +- ctags/parsers/fortran.c | 44 +- ctags/parsers/haskell.c | 494 +++++++-------- ctags/parsers/haxe.c | 326 +++++----- ctags/parsers/latex.c | 336 +++++------ ctags/parsers/matlab.c | 32 +- ctags/parsers/nsis.c | 2 +- ctags/parsers/pascal.c | 508 ++++++++-------- ctags/parsers/python.c | 4 +- ctags/parsers/r.c | 288 ++++----- ctags/parsers/rest.c | 2 +- ctags/parsers/sh.c | 114 ++-- ctags/parsers/vhdl.c | 248 ++++---- 36 files changed, 3723 insertions(+), 3723 deletions(-) commit bf0702e2ec63009c731a6a65d40c89f5ac6695d2 Author: Jiří Techet Date: Fri Jul 29 16:55:07 2016 +0200 Use uctags implementation of keyword.c/h Basically just the stuff I added to uctags to improve hashing of keywords. This patch drops some extra stuff from uctags we don't need at the moment and which would require changes in other files. ctags/main/keyword.c | 284 ++++++++++++++++++++++++--------------------------- ctags/main/keyword.h | 15 ++- 2 files changed, 138 insertions(+), 161 deletions(-) commit 282ed7def72c8e736eb45a88d07b705a2667f3dc Author: Jiří Techet Date: Thu Jul 28 23:55:12 2016 +0200 Define ARRAY_SIZE() and use it instead of KIND_COUNT() ctags/main/parse.h | 2 -- ctags/main/routines.h | 28 ++++++++++++++++++++++++++++ ctags/parsers/abaqus.c | 3 ++- ctags/parsers/abc.c | 3 ++- ctags/parsers/asciidoc.c | 3 ++- ctags/parsers/asm.c | 2 +- ctags/parsers/basic.c | 2 +- ctags/parsers/c.c | 16 ++++++++-------- ctags/parsers/conf.c | 3 ++- ctags/parsers/css.c | 2 +- ctags/parsers/diff.c | 2 +- ctags/parsers/docbook.c | 3 ++- ctags/parsers/erlang.c | 2 +- ctags/parsers/fortran.c | 4 ++-- ctags/parsers/go.c | 2 +- ctags/parsers/haskell.c | 5 +++-- ctags/parsers/haxe.c | 3 ++- ctags/parsers/jscript.c | 2 +- ctags/parsers/json.c | 2 +- ctags/parsers/latex.c | 3 ++- ctags/parsers/lua.c | 2 +- ctags/parsers/make.c | 2 +- ctags/parsers/markdown.c | 3 ++- ctags/parsers/matlab.c | 3 ++- ctags/parsers/nsis.c | 3 ++- ctags/parsers/objc.c | 2 +- ctags/parsers/pascal.c | 2 +- ctags/parsers/perl.c | 2 +- ctags/parsers/php.c | 4 ++-- ctags/parsers/powershell.c | 3 ++- ctags/parsers/python.c | 2 +- ctags/parsers/r.c | 3 ++- ctags/parsers/rest.c | 3 ++- ctags/parsers/ruby.c | 2 +- ctags/parsers/rust.c | 2 +- ctags/parsers/sh.c | 2 +- ctags/parsers/sql.c | 2 +- ctags/parsers/tcl.c | 2 +- ctags/parsers/txt2tags.c | 3 ++- ctags/parsers/verilog.c | 2 +- ctags/parsers/vhdl.c | 2 +- 41 files changed, 92 insertions(+), 51 deletions(-) commit 001c7f65e485a223530e23146604d84fa867a9aa Author: Jiří Techet Date: Thu Jul 28 23:27:59 2016 +0200 Move keywordTable definition to parse.h and use it for all parsers ctags/main/parse.h | 5 +++++ ctags/parsers/asm.c | 11 +++-------- ctags/parsers/fortran.c | 12 ++---------- ctags/parsers/go.c | 12 ++---------- ctags/parsers/jscript.c | 12 ++---------- ctags/parsers/objc.c | 10 ++-------- ctags/parsers/php.c | 9 ++------- ctags/parsers/sql.c | 13 ++----------- ctags/parsers/verilog.c | 11 +++-------- ctags/parsers/vhdl.c | 11 +++-------- 10 files changed, 26 insertions(+), 80 deletions(-) commit 7b9d0dd83ce0874593758a620a9b9a2d256503c1 Author: Jiří Techet Date: Thu Jul 28 21:54:26 2016 +0200 Make parser includes closer to uctags and sync parser license header Adds (currently empty) debug.h, routines.h and xtag.h and uses them at the same places like uctags. ctags/Makefile.am | 3 +++ ctags/main/debug.h | 0 ctags/main/routines.h | 0 ctags/main/xtag.h | 0 ctags/parsers/asm.c | 4 +++- ctags/parsers/basic.c | 3 ++- ctags/parsers/c.c | 10 ++++++---- ctags/parsers/cobol.c | 3 ++- ctags/parsers/css.c | 3 ++- ctags/parsers/diff.c | 3 ++- ctags/parsers/erlang.c | 4 ++-- ctags/parsers/fortran.c | 9 ++++++--- ctags/parsers/go.c | 6 ++++++ ctags/parsers/html.c | 3 ++- ctags/parsers/jscript.c | 6 +++++- ctags/parsers/json.c | 4 +++- ctags/parsers/lua.c | 3 ++- ctags/parsers/make.c | 4 +++- ctags/parsers/objc.c | 3 ++- ctags/parsers/pascal.c | 5 +++-- ctags/parsers/perl.c | 5 ++++- ctags/parsers/php.c | 4 +++- ctags/parsers/python.c | 7 +++++-- ctags/parsers/r.c | 7 ++++--- ctags/parsers/ruby.c | 2 ++ ctags/parsers/rust.c | 3 ++- ctags/parsers/sh.c | 6 ++++-- ctags/parsers/sql.c | 6 +++--- ctags/parsers/tcl.c | 3 ++- ctags/parsers/verilog.c | 11 +++++++---- ctags/parsers/vhdl.c | 2 ++ 31 files changed, 92 insertions(+), 40 deletions(-) commit f791e91e1884a76754d88b7cd92fff4df3383947 Author: Jiří Techet Date: Thu Jul 28 21:06:59 2016 +0200 ctags: Rename Geany-specific tagEntryInfo::arglist to upstream's ::signature Based on patch from Colomban Wendling. ctags/main/entry.h | 2 +- ctags/main/get.c | 4 ++-- ctags/parsers/c.c | 6 +++--- ctags/parsers/go.c | 2 +- ctags/parsers/jscript.c | 2 +- ctags/parsers/pascal.c | 2 +- ctags/parsers/php.c | 2 +- ctags/parsers/powershell.c | 2 +- ctags/parsers/python.c | 2 +- ctags/parsers/rust.c | 2 +- src/tagmanager/tm_source_file.c | 4 ++-- 11 files changed, 15 insertions(+), 15 deletions(-) commit 7068e7c89219c333632ba9ce700f2ac992e55ad8 Author: Jiří Techet Date: Thu Jul 28 21:02:40 2016 +0200 ctags: Remove useless Geany-specific tagEntryInfo::type field Original patch from Colomban Wendling, only converted to apply to the new ctags location in the source tree. ctags/main/entry.h | 1 - ctags/parsers/c.c | 9 ++++----- 2 files changed, 4 insertions(+), 6 deletions(-) commit ffa09b0ae2d2486b80ac32da49584dacacb77e08 Author: Jiří Techet Date: Thu Jul 28 20:57:03 2016 +0200 ctags: Remove unused Geany-specific tagEntryInfo fields Original patch from Colomban Wendling, only converted to apply to the new ctags location in the source tree. ctags/main/entry.h | 2 -- 1 file changed, 2 deletions(-) commit 5d8e291c6f7e5dfdfaf11cfe11e46684ffc669b5 Merge: cbe2c542e af3ad0b6f Author: Colomban Wendling Date: Mon Jul 25 02:06:20 2016 +0200 Merge pull request #1070 from techee/tm_move Move TM and ctags files commit cbe2c542e0a8bf809c7ea43674941053c1fee05e Merge: 3cf016152 b7f47f293 Author: Colomban Wendling Date: Mon Jul 25 02:02:50 2016 +0200 Merge pull request #1133 from techee/readme_rst Minor README updates commit b7f47f29328b0c5a32893674da91fc271a830cc2 Author: Jiří Techet Date: Mon Jul 25 01:02:59 2016 +0200 Update Colomban's email address README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit af3ad0b6f0b877696f832d9c719b9ee6864035bb Author: Jiří Techet Date: Sat Jul 23 00:36:04 2016 +0200 Rename variable to avoid warning about variable being shadowed ctags/main/mio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3cf0161527db804f0393a6f49e67dee97ef7f46e Author: Jiří Techet Date: Mon Feb 29 14:49:43 2016 +0100 Store "equal" tags into binary trees instead of lists in Symbol tree At the moment tags with identical names are stored into a linked list in tags_table and parents_table. This however leads to quadratic complexity when looking up the nearest parent or tag in tree because the whole list has to be traversed. Use binary trees indexed by line number instead of lists so the lookup can be performed in log(N) time and the overall complexity is N*log(N) instead of N^2. The GTree API is a little stupid because during the search it doesn't give access to the value and it doesn't tell when a leaf node was reached. For this reason the lookup has to be made in two steps - first, the best line number is found (returned in user_data) and then a normal search for the found line number is made to get the value stored in the tree. This patch fixes the problem described in #577 when e.g. a big json export file contains many identically named tags. src/symbols.c | 239 ++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 141 insertions(+), 98 deletions(-) commit f95656cbe818d69bb4432d14b978ec83764872b2 Author: Jiří Techet Date: Sun Jun 12 23:13:35 2016 +0200 Remove makefile.win32 based build system No more needed using MSYS2. HACKING | 3 - Makefile.am | 4 +- ctags/Makefile.am | 3 - ctags/makefile.win32 | 60 -------- doc/Makefile.am | 3 +- doc/makefile.win32 | 36 ----- doc/making-a-release | 3 +- makefile.win32 | 71 ---------- plugins/Makefile.am | 1 - plugins/makefile.win32 | 80 ----------- scintilla/Makefile.am | 3 +- scintilla/gtk/makefile.win32 | 80 ----------- src/Makefile.am | 3 +- src/makefile.win32 | 99 ------------- src/tagmanager/Makefile.am | 3 - src/tagmanager/makefile.win32 | 57 -------- win32-config.h | 319 ------------------------------------------ 17 files changed, 5 insertions(+), 823 deletions(-) commit 3b4d9fadf8cf5f2a063217ba932602f5c4ac2d3e Author: Jiří Techet Date: Sat Jun 11 14:08:42 2016 +0200 Rename js.c to jscript.c to match universal-ctags ctags/Makefile.am | 2 +- ctags/parsers/{js.c => jscript.c} | 0 2 files changed, 1 insertion(+), 1 deletion(-) commit 470d99ee944244e66b591c3814e1607486ecae4d Author: Jiří Techet Date: Sat Jun 11 14:08:02 2016 +0200 Update various comments mentioning tagmanager/src HACKING | 2 +- ctags/main/parsers.h | 2 +- scripts/create_php_tags.py | 4 ++-- src/filetypes.h | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) commit 03becc77894bf4e3c2ac357bdf3d07f5e16a97c4 Author: Jiří Techet Date: Sat Jun 11 14:07:01 2016 +0200 Update paths for doxygen doc/Doxyfile.in | 12 ++++++------ doc/Makefile.am | 8 ++++---- 2 files changed, 10 insertions(+), 10 deletions(-) commit eb2865a8199f3808d72a14f3149183a0b428037c Author: Jiří Techet Date: Sat Jun 11 13:47:20 2016 +0200 Separate ctags into parsers and main sources configure.ac | 1 - ctags/Makefile.am | 90 +++++++++++++++++++++++++++++++++- ctags/main/Makefile.am | 89 --------------------------------- ctags/{main => }/makefile.win32 | 0 ctags/{main => parsers}/abaqus.c | 0 ctags/{main => parsers}/abc.c | 0 ctags/{main => parsers}/actionscript.c | 0 ctags/{main => parsers}/asciidoc.c | 0 ctags/{main => parsers}/asm.c | 0 ctags/{main => parsers}/basic.c | 0 ctags/{main => parsers}/c.c | 0 ctags/{main => parsers}/cobol.c | 0 ctags/{main => parsers}/conf.c | 0 ctags/{main => parsers}/css.c | 0 ctags/{main => parsers}/diff.c | 0 ctags/{main => parsers}/docbook.c | 0 ctags/{main => parsers}/erlang.c | 0 ctags/{main => parsers}/fortran.c | 0 ctags/{main => parsers}/go.c | 0 ctags/{main => parsers}/haskell.c | 0 ctags/{main => parsers}/haxe.c | 0 ctags/{main => parsers}/html.c | 0 ctags/{main => parsers}/js.c | 0 ctags/{main => parsers}/json.c | 0 ctags/{main => parsers}/latex.c | 0 ctags/{main => parsers}/lua.c | 0 ctags/{main => parsers}/make.c | 0 ctags/{main => parsers}/markdown.c | 0 ctags/{main => parsers}/matlab.c | 0 ctags/{main => parsers}/nsis.c | 0 ctags/{main => parsers}/objc.c | 0 ctags/{main => parsers}/pascal.c | 0 ctags/{main => parsers}/perl.c | 0 ctags/{main => parsers}/php.c | 0 ctags/{main => parsers}/powershell.c | 0 ctags/{main => parsers}/python.c | 0 ctags/{main => parsers}/r.c | 0 ctags/{main => parsers}/rest.c | 0 ctags/{main => parsers}/ruby.c | 0 ctags/{main => parsers}/rust.c | 0 ctags/{main => parsers}/sh.c | 0 ctags/{main => parsers}/sql.c | 0 ctags/{main => parsers}/tcl.c | 0 ctags/{main => parsers}/txt2tags.c | 0 ctags/{main => parsers}/verilog.c | 0 ctags/{main => parsers}/vhdl.c | 0 src/tagmanager/Makefile.am | 3 +- 47 files changed, 89 insertions(+), 94 deletions(-) commit 18b7527fcc237053716c5b8d54a15c1d36dca0ef Author: Jiří Techet Date: Sat Jun 11 13:02:23 2016 +0200 Use the single-file implementation of MIO from universal-ctags The version of MIO corresponds to commit 509a47dbc in universal-ctags which contains just minimal changes mostly related to changing MIO from a library into a single ctags source file: - replaced the glib types with ordinary C types - removed the "virtual" calls and replaced them with simple if/else - made the implementation in a single file - reformatted the library to more or less match universal-ctags style - removed the MIO_FORCE_ANSI ifdef as it included some glib file and we don't really need it - added mio_flush() - of course makes sense just for the file backend (calls fflush()) - made mio_free() return error code from fclose() - changed mio_new_fp() to return NULL when the passed FILE is NULL (simplifies logic at one place in ctags and makes sense IMO) configure.ac | 1 - ctags/Makefile.am | 2 +- ctags/main/Makefile.am | 4 +- ctags/main/c.c | 2 +- ctags/main/entry.h | 3 +- ctags/main/fortran.c | 2 +- ctags/main/js.c | 2 +- ctags/main/lregex.c | 2 +- ctags/main/mio.c | 1063 ++++++++++++++++++++++++++++++++++++++++++++++ ctags/main/mio.h | 178 ++++++++ ctags/main/parse.c | 2 +- ctags/main/read.h | 2 +- ctags/mio/COPYING | 339 --------------- ctags/mio/Makefile.am | 13 - ctags/mio/README | 3 - ctags/mio/makefile.win32 | 53 --- ctags/mio/mio-file.c | 175 -------- ctags/mio/mio-memory.c | 480 --------------------- ctags/mio/mio.c | 656 ---------------------------- ctags/mio/mio.h | 221 ---------- 20 files changed, 1251 insertions(+), 1952 deletions(-) commit 3d2e7d4fcacf39c5331af5d226a5e0037b880c52 Author: Jiří Techet Date: Sat Jun 11 12:35:11 2016 +0200 Move TM into src Move the tag manager implementation to src as it really is part of Geany sources and start making the ctags directory structure similar to the universal-ctags one. In principle, the patch does mv tagmanager/src src/tagmanager mv tagmanager/ctags tagmanager/main mv tagmanager ctags plus corresponding Makefile.am and configure.ac updates. Makefile.am | 2 +- configure.ac | 8 ++++---- {tagmanager => ctags}/Makefile.am | 2 +- {tagmanager/ctags => ctags/main}/Makefile.am | 0 {tagmanager/ctags => ctags/main}/abaqus.c | 0 {tagmanager/ctags => ctags/main}/abc.c | 0 {tagmanager/ctags => ctags/main}/actionscript.c | 0 {tagmanager/ctags => ctags/main}/args.c | 0 {tagmanager/ctags => ctags/main}/args.h | 0 {tagmanager/ctags => ctags/main}/asciidoc.c | 0 {tagmanager/ctags => ctags/main}/asm.c | 0 {tagmanager/ctags => ctags/main}/basic.c | 0 {tagmanager/ctags => ctags/main}/c.c | 0 {tagmanager/ctags => ctags/main}/cobol.c | 0 {tagmanager/ctags => ctags/main}/conf.c | 0 {tagmanager/ctags => ctags/main}/css.c | 0 {tagmanager/ctags => ctags/main}/ctags.c | 0 {tagmanager/ctags => ctags/main}/ctags.h | 0 {tagmanager/ctags => ctags/main}/diff.c | 0 {tagmanager/ctags => ctags/main}/docbook.c | 0 {tagmanager/ctags => ctags/main}/entry.c | 0 {tagmanager/ctags => ctags/main}/entry.h | 0 {tagmanager/ctags => ctags/main}/erlang.c | 0 {tagmanager/ctags => ctags/main}/fortran.c | 0 {tagmanager/ctags => ctags/main}/general.h | 0 {tagmanager/ctags => ctags/main}/get.c | 0 {tagmanager/ctags => ctags/main}/get.h | 0 {tagmanager/ctags => ctags/main}/go.c | 0 {tagmanager/ctags => ctags/main}/haskell.c | 0 {tagmanager/ctags => ctags/main}/haxe.c | 0 {tagmanager/ctags => ctags/main}/html.c | 0 {tagmanager/ctags => ctags/main}/js.c | 0 {tagmanager/ctags => ctags/main}/json.c | 0 {tagmanager/ctags => ctags/main}/keyword.c | 0 {tagmanager/ctags => ctags/main}/keyword.h | 0 {tagmanager/ctags => ctags/main}/latex.c | 0 {tagmanager/ctags => ctags/main}/lregex.c | 0 {tagmanager/ctags => ctags/main}/lua.c | 0 {tagmanager/ctags => ctags/main}/main.h | 0 {tagmanager/ctags => ctags/main}/make.c | 0 {tagmanager/ctags => ctags/main}/makefile.win32 | 0 {tagmanager/ctags => ctags/main}/markdown.c | 0 {tagmanager/ctags => ctags/main}/matlab.c | 0 {tagmanager/ctags => ctags/main}/nestlevel.c | 0 {tagmanager/ctags => ctags/main}/nestlevel.h | 0 {tagmanager/ctags => ctags/main}/nsis.c | 0 {tagmanager/ctags => ctags/main}/objc.c | 0 {tagmanager/ctags => ctags/main}/options.c | 0 {tagmanager/ctags => ctags/main}/options.h | 0 {tagmanager/ctags => ctags/main}/parse.c | 0 {tagmanager/ctags => ctags/main}/parse.h | 0 {tagmanager/ctags => ctags/main}/parsers.h | 0 {tagmanager/ctags => ctags/main}/pascal.c | 0 {tagmanager/ctags => ctags/main}/perl.c | 0 {tagmanager/ctags => ctags/main}/php.c | 0 {tagmanager/ctags => ctags/main}/powershell.c | 0 {tagmanager/ctags => ctags/main}/python.c | 0 {tagmanager/ctags => ctags/main}/r.c | 0 {tagmanager/ctags => ctags/main}/read.c | 0 {tagmanager/ctags => ctags/main}/read.h | 0 {tagmanager/ctags => ctags/main}/rest.c | 0 {tagmanager/ctags => ctags/main}/ruby.c | 0 {tagmanager/ctags => ctags/main}/rust.c | 0 {tagmanager/ctags => ctags/main}/sh.c | 0 {tagmanager/ctags => ctags/main}/sort.c | 0 {tagmanager/ctags => ctags/main}/sort.h | 0 {tagmanager/ctags => ctags/main}/sql.c | 0 {tagmanager/ctags => ctags/main}/strlist.c | 0 {tagmanager/ctags => ctags/main}/strlist.h | 0 {tagmanager/ctags => ctags/main}/tcl.c | 0 {tagmanager/ctags => ctags/main}/txt2tags.c | 0 {tagmanager/ctags => ctags/main}/verilog.c | 0 {tagmanager/ctags => ctags/main}/vhdl.c | 0 {tagmanager/ctags => ctags/main}/vstring.c | 0 {tagmanager/ctags => ctags/main}/vstring.h | 0 {tagmanager => ctags}/mio/COPYING | 0 {tagmanager => ctags}/mio/Makefile.am | 0 {tagmanager => ctags}/mio/README | 0 {tagmanager => ctags}/mio/makefile.win32 | 0 {tagmanager => ctags}/mio/mio-file.c | 0 {tagmanager => ctags}/mio/mio-memory.c | 0 {tagmanager => ctags}/mio/mio.c | 0 {tagmanager => ctags}/mio/mio.h | 0 plugins/Makefile.am | 2 +- src/Makefile.am | 5 +++-- {tagmanager/src => src/tagmanager}/Makefile.am | 6 +++--- {tagmanager/src => src/tagmanager}/makefile.win32 | 0 {tagmanager/src => src/tagmanager}/tm_ctags_wrappers.c | 0 {tagmanager/src => src/tagmanager}/tm_ctags_wrappers.h | 0 {tagmanager/src => src/tagmanager}/tm_parser.c | 0 {tagmanager/src => src/tagmanager}/tm_parser.h | 0 {tagmanager/src => src/tagmanager}/tm_source_file.c | 0 {tagmanager/src => src/tagmanager}/tm_source_file.h | 0 {tagmanager/src => src/tagmanager}/tm_tag.c | 0 {tagmanager/src => src/tagmanager}/tm_tag.h | 0 {tagmanager/src => src/tagmanager}/tm_workspace.c | 0 {tagmanager/src => src/tagmanager}/tm_workspace.h | 0 97 files changed, 13 insertions(+), 12 deletions(-) commit 89d3bf71555a715ce58d7d01bf31cbb308957a5d Merge: 313b85a14 5d74eef54 Author: Colomban Wendling Date: Sat Jul 16 03:38:06 2016 +0200 Merge pull request #1137 from b4n/adwaita-fixes Custom theming fixes for Adwaita 3.20/GTK 3.20 commit 5d74eef5468400c0064148995b4985b1a2d817b2 Author: Colomban Wendling Date: Thu Jul 14 17:07:38 2016 +0200 Set custom selection color on no-match search entry on GTK2 Follows the GTK3 behavior, and avoid text becoming invisible if the selection background is too light (unlikely, but possible). data/geany.gtkrc | 1 + 1 file changed, 1 insertion(+) commit 4b163bcdab5e9ae4e167e656b4c18a4f549033f2 Author: Colomban Wendling Date: Thu Jul 14 17:06:55 2016 +0200 Restore custom selection color on no-match search entry on GTK3 data/geany.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a35816c92fe5d43a65b3bfd83740690ce84f7420 Author: Colomban Wendling Date: Thu Jul 14 16:55:36 2016 +0200 Fix custom search entry background on Adwaita 3.20 under GTK2 Adwaita 3.20 on GTK2 uses the pixmap engine to set a background image on all states of all GtkEntries. Earlier versions did the same but with a transparent background, thus not hiding our background color. Fixes #1135, fixes #1101. data/geany.gtkrc | 9 +++++++++ 1 file changed, 9 insertions(+) commit 313b85a149dcb71940073062839087dd0245af04 Author: Matthew Brush Date: Wed Jul 13 16:06:17 2016 -0700 Move enumerator to end of enum (oops) This fixes the plugin ABI break that happened in previous commmit. src/keybindings.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 14904a18ff75926a75a648f55dcf71376cc2be23 Author: Abel 'Akronix' Serrano Juste Date: Wed Jul 13 01:23:18 2016 +0200 Added keybinding for Delete from line start to current position Closes #1134 doc/geany.txt | 3 +++ src/editor.c | 1 + src/keybindings.c | 6 ++++++ src/keybindings.h | 1 + 4 files changed, 11 insertions(+) commit 88ee4983f9f590a8d61ed6ba26d969b09af1badc Author: Jiří Techet Date: Mon Jul 11 22:35:22 2016 +0200 README: Update part regarding patch submission README | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 4928ed437ce535bc4ba0e91af9fa100ec51c9f70 Author: Jiří Techet Date: Mon Jul 11 23:12:54 2016 +0200 Minor formal updates of README - slight rst formatting improvements - Mac OSX -> Mac OS - punctuation README | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) commit fdcf8601567d86d6097b623cd68c2f3a51bf05d0 Author: Enrico Tröger Date: Sun Jul 10 16:30:01 2016 +0200 Add the IRC command to get channel OP permissions doc/making-a-release | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 69b44afbb5a4147e55210031a34de5fc828d9972 Author: Colomban Wendling Date: Sun Jul 10 16:27:44 2016 +0200 Improve making-a-release a little doc/making-a-release | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 5b6b89fd5b783b9d77c33dfce127c3bb32c0a112 Author: Colomban Wendling Date: Sun Jul 10 16:07:56 2016 +0200 Post release version bump Say hello to Geany 1.29 "Jowar"! NEWS | 3 +++ configure.ac | 2 +- doc/geany.txt | 2 +- geany.exe.manifest | 2 +- geany_private.rc | 4 ++-- src/geany.h | 2 +- win32-config.h | 2 +- 7 files changed, 10 insertions(+), 7 deletions(-) commit 06e85355f116553ab0997e756a696e765208f68d Author: Colomban Wendling Date: Sun Jul 10 14:22:20 2016 +0200 Set release date doc/geany.1.in | 2 +- doc/geany.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit f81a3c734d6ef0d17091fdd8c21233bd66098546 Author: Enrico Tröger Date: Sun Jul 10 12:40:32 2016 +0200 NEWS: add release date, line break and a PR prefix NEWS | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 1f915bd03a768d7e732bee18e934abd9d9bcad27 Merge: 0c1666787 acd4a9219 Author: Enrico Tröger Date: Sat Jul 9 23:40:13 2016 +0200 Merge pull request #1108 from eht16/win32_installer_c_runtime Windows installer: C and GTK runtime installation commit 0c16667875c8850a939042c604322ee1bcffcb28 Author: Colomban Wendling Date: Sat Jul 9 22:19:07 2016 +0200 Small NEWS update NEWS | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 5ce91157139cab3697c9dc099c8565134bd3eeb4 Author: Frank Lanitz Date: Sat Jul 9 14:01:26 2016 +0200 Another small update of NEWS to reflect latest changes on translations NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7ff5580c5059a33809dadcaae691a213cddbf977 Author: RPG Date: Sat Jul 9 12:36:47 2016 +0400 Update Russian translation (#1131) po/ru.po | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 6cd266186d33b86bddfc97d0a780acb097a8d091 Author: Frank Lanitz Date: Sat Jul 9 01:09:17 2016 +0200 Update NEWS for recent translation updates NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 005c8c3eae25541f14d51b12aa6e25e69ea76aba Author: zygimantus Date: Sat Jul 9 02:08:28 2016 +0300 Lithuanian translation updates (#1129) po/lt.po | 82 +++++++++++++++++++++++++--------------------------------------- 1 file changed, 32 insertions(+), 50 deletions(-) commit a260a5ac9ad7cdf915e6ee7578dce51787a8aac4 Merge: 8384e2fdc 9ba7f6723 Author: Colomban Wendling Date: Sat Jul 9 00:26:32 2016 +0200 Merge pull request #1126 from b4n/plugin-key-group-strings-lifetime Don't require plugin key group name and label strings to be static commit 9ba7f67238dad49e36e5754df9784f47f2c4881e Author: Colomban Wendling Date: Thu Jul 7 17:53:43 2016 +0200 Don't require plugin key group name and label strings to be static Take a copy of the strings not to require them to live live as long as the plugin does. This is mostly useful for plugins implemented in dynamic languages (e.g. through a plugin proxy), as most C plugins will use a static string here; but it makes the API more straightforward and avoids odd issues if any plugin doesn't use static strings here, even C ones. Closes #1125. src/keybindings.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit aafbfa02b2158ca0d1917583de1602b7434d39a0 Author: zygimantus Date: Fri Jul 8 23:27:06 2016 +0300 Lithuanian translation updates po/lt.po | 82 +++++++++++++++++++++++++--------------------------------------- 1 file changed, 32 insertions(+), 50 deletions(-) commit 8384e2fdcf4c62d0f602bf43952f2823f3e4d5af Author: Philipp Wiesemann Date: Wed Jul 6 22:42:35 2016 +0200 Fix typos in French translation (#1119) po/fr.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 1abd2b6b668a5569cd424b0691844f5a07a5adec Author: Frank Lanitz Date: Tue Jul 5 21:16:07 2016 +0200 Update of Portuguese translation NEWS | 2 +- po/pt.po | 23 +++++++++++------------ 2 files changed, 12 insertions(+), 13 deletions(-) commit 30f8481c840d6781718b4d4ca72700093703d2ed Author: Frank Lanitz Date: Tue Jul 5 21:11:45 2016 +0200 Update of Catalan translation NEWS | 2 +- po/ca.po | 1555 +++++++++++--------------------------------------------------- 2 files changed, 258 insertions(+), 1299 deletions(-) commit 8ac5946a950e442ef198481ad56b1c3ef157c401 Author: Frank Lanitz Date: Mon Jul 4 20:44:31 2016 +0200 Update of NEWS NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c4630c8b3f344da8a721d2a78c39361545be0a89 Author: Frank Lanitz Date: Mon Jul 4 20:43:47 2016 +0200 Update of Spanish translation po/es.po | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) commit 91b63049852964fe4d9a32c5245f74c0f6c104bf Author: Colomban Wendling Date: Mon Jul 4 19:19:36 2016 +0200 Fix utils_spawn_async()::child_pid annotations src/utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eb7cc73660f30d03e1412cce0149925ea5cb3d83 Author: Enrico Tröger Date: Sun Jul 3 11:30:30 2016 +0200 Ignore generated doc/doxygen_* files For example "doc/doxygen_sqlite3.db" is created on Windows/MSYS2. .gitignore | 1 + 1 file changed, 1 insertion(+) commit 8925ddb5d4ff008d4bd016f2e7b5c01cf08e3301 Author: Enrico Tröger Date: Sun Jul 3 11:22:00 2016 +0200 Ignore generated file src/geany_private.res The location of the file changed since we are using MSYS2. .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 296ad2488d375b217f199a15126e88dd9a979780 Merge: 6a4cb61a5 613bb135c Author: Frank Lanitz Date: Sat Jul 2 19:34:13 2016 +0200 Merge pull request #1109 from andrej-herceg/sk-po Update of Slovak translation commit 613bb135c0b6e215b612cb8d991161daa6c44695 Author: Andrej Herceg Date: Sat Jul 2 16:02:37 2016 +0200 Update of Slovak translation po/sk.po | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit acd4a92199e03b65a3f099cdc785bae89e379f20 Author: Enrico Tröger Date: Sat Jul 2 14:46:05 2016 +0200 Windows installer: Add C runtime libraries to default installation While the installation of the GTK runtime environment is optional, we need the C runtime environment in every case and so install it unconditionally. geany.nsi.in | 4 ++++ 1 file changed, 4 insertions(+) commit 6a4cb61a554a01c542a5b829a8bd6e5aa89b0008 Author: Enrico Tröger Date: Sat Jul 2 14:39:13 2016 +0200 Windows installer: copyright and NSIS version update geany.nsi.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4a150096ca1a8096fbe74a2fc05e8e51f5858df4 Author: Frank Lanitz Date: Sat Jul 2 11:24:17 2016 +0200 Change a proposition at German translation based upon a suggestion from i18n mailing list po/de.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1a817910edab5433ea30b7fa74d16ff0f4a023dd Author: Frank Lanitz Date: Sat Jul 2 11:19:03 2016 +0200 Update of Japanese translation NEWS | 2 +- po/ja.po | 86 +++++++++++++++++++++++++--------------------------------------- 2 files changed, 35 insertions(+), 53 deletions(-) commit 8cda93063409820103dc04fa2619a684dd04a30d Author: Frank Lanitz Date: Sat Jul 2 11:14:08 2016 +0200 Correct string in German translation to be more clear po/de.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit be73ff0f5ab8a56085e66c2019597cf211a07af7 Merge: 52f4f7314 85f7f9344 Author: Frank Lanitz Date: Sat Jul 2 00:33:51 2016 +0200 Merge pull request #1106 from philippwiesemann/fix-po-de-fuzzy Fix fuzzy entries in German translation commit 85f7f9344ce8b6de8c1765444a7fa02d138d521c Author: Philipp Wiesemann Date: Fri Jul 1 23:07:07 2016 +0200 Fix fuzzy entries in German translation po/de.po | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 52f4f731467f3b582ab7267c3e314b8ce1c7c734 Author: Frank Lanitz Date: Fri Jul 1 11:17:42 2016 +0200 Update NEWS for recent i18n updates NEWS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit af48d2fac7d3403c0aa5fbeaea6f5a2512e50a4e Merge: 87ab6052b d084c6ba4 Author: Frank Lanitz Date: Fri Jul 1 11:16:56 2016 +0200 Merge pull request #1105 from xhacker/update-zh-cn Update zh_CN translation commit d084c6ba41a505dc95c561086efa4b56f2ed53fc Author: 柳东原 LIU Dongyuan Date: Fri Jul 1 00:53:30 2016 -0700 Update zh_CN translation po/zh_CN.po | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit 87ab6052bdd59a1afb3d155a858c43208fd50de7 Author: Colomban Wendling Date: Fri Jul 1 01:52:05 2016 +0200 CSS: Add missing `:last-child` pseudo-class Fixes #1102. data/filedefs/filetypes.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a14a492c32804a8c5c43c9a229a7d6cebfa81339 Merge: f9ea9c4e2 e7a316f76 Author: Frank Lanitz Date: Thu Jun 30 23:18:57 2016 +0200 Merge pull request #1103 from giuspen/giuspen updated it.po for upcoming 1.28 commit e7a316f769430fc58ba3a251a5f452a3f2085e12 Author: Giuseppe Penone Date: Thu Jun 30 19:09:23 2016 +0100 updated it.po for upcoming 1.28 po/it.po | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) commit f9ea9c4e26d16aa6a394de5c245a6d3b24f6e3f8 Merge: 0dbe74a02 b1267cc82 Author: Colomban Wendling Date: Wed Jun 29 17:45:51 2016 +0200 Merge pull request #1093 from kugel-/api-tmtag Properly expose TMTag which already contains documented members. commit b1267cc82cc271684f3d19b024469743aed93c7f Author: Colomban Wendling Date: Wed Jun 29 17:44:56 2016 +0200 api: Annotate element type for TMSourceFile::tags_array tagmanager/src/tm_source_file.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0dbe74a02619f87429fb1d67f4c63251b3da6bfa Author: Colomban Wendling Date: Wed Jun 29 16:56:26 2016 +0200 autotools: Avoid listing the same files twice doc/Makefile.am | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 987124d41729088f9f857530bd8c67f68b0fe4ad Author: Colomban Wendling Date: Wed Jun 29 16:23:38 2016 +0200 autotools: Fix circular dependencies in doc/ when building in srcdir Don't use wildcards that can catch generated files. While at it, also avoid Doxygen picking up those generated files. doc/Doxyfile.in | 6 +++++- doc/Makefile.am | 7 +++++-- 2 files changed, 10 insertions(+), 3 deletions(-) commit 659b277ef6861ea1b55e996e62ece24f9134a94b Author: Thomas Martitz Date: Tue Jun 28 16:52:46 2016 +0200 api: annotate element types in the TMWorkspace arrays This allows GI-based plugins to traverse/inspect the array and consequently Geany loaded tags. tagmanager/src/tm_workspace.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit cef4751fa4e6f4770770c5e20a55a11feb42ded2 Author: Thomas Martitz Date: Mon Jun 27 23:01:42 2016 +0200 doxygen: make doxygen scan necessary tagmanager files tm_tag.h and tm_parser.h contain documented symbols so doxygen shall process them. doc/Doxyfile.in | 1 + doc/Makefile.am | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) commit 989af29bb14853f9eb793f8ea4a664188d447384 Author: Thomas Martitz Date: Mon Jun 27 22:59:56 2016 +0200 api: formally put struct TMTag into the API It's members are already documented so it's kind of half-exported anyway. Since geanygendoc already uses the structure (and I plan on writing a plugin that requires it too) just make it official. tagmanager/src/tm_tag.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 2ebe961c9e86197ce1b6224b8d2d41b13e631889 Author: Colomban Wendling Date: Tue Jun 28 20:47:22 2016 +0200 Add missing element-type annotation for GeanyData::filetypes_by_title src/plugindata.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 114e339a7eb6296f0ad8a0ea7764ea22dcea47c3 Author: Colomban Wendling Date: Tue Jun 28 20:46:24 2016 +0200 Restore element-type annotation for GeanyData::documents_array Broken in #966. src/plugindata.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 64edf2d3ba9918f8b7f32cc8c21c95bb41439d83 Merge: c2168714d 24c8d4c3e Author: Colomban Wendling Date: Tue Jun 28 20:27:56 2016 +0200 Merge pull request #1087 from b4n/readme-autogen Improve README commit c2168714d6459d2db47408e28be993ecae01fb8e Author: Frank Lanitz Date: Tue Jun 28 20:21:41 2016 +0200 Little update of NEWS for 1.28 for recent udpated translations NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0f721bc65a305caa35a0daffc59266dfc20a778d Author: Frank Lanitz Date: Tue Jun 28 20:21:14 2016 +0200 Update of Turkish translation po/tr.po | 223 ++++++++++++++++++++++++++++----------------------------------- 1 file changed, 98 insertions(+), 125 deletions(-) commit 8cf5569442b89fb45a8780d6e96bed1d0145598b Author: Frank Lanitz Date: Mon Jun 27 22:36:06 2016 +0200 Update of Greek translation po/el.po | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit 300f2f294d2424582b0b7ac0147272125d3ab318 Author: Frank Lanitz Date: Mon Jun 27 18:58:01 2016 +0200 Update po files for string freeze of Geany 1.28 po/ar.po | 1056 +++++++++++++++++++++++++-------------------------- po/ast.po | 1058 +++++++++++++++++++++++++-------------------------- po/be.po | 1058 +++++++++++++++++++++++++-------------------------- po/bg.po | 1058 +++++++++++++++++++++++++-------------------------- po/ca.po | 1058 +++++++++++++++++++++++++-------------------------- po/cs.po | 1057 +++++++++++++++++++++++++-------------------------- po/de.po | 404 ++++++++++---------- po/el.po | 664 ++++++++++++++++---------------- po/en_GB.po | 1057 +++++++++++++++++++++++++-------------------------- po/es.po | 1064 ++++++++++++++++++++++++++-------------------------- po/et.po | 1050 +++++++++++++++++++++++++-------------------------- po/eu.po | 1050 +++++++++++++++++++++++++-------------------------- po/fa.po | 1057 +++++++++++++++++++++++++-------------------------- po/fi.po | 1056 +++++++++++++++++++++++++-------------------------- po/fr.po | 176 ++++----- po/gl.po | 1058 +++++++++++++++++++++++++-------------------------- po/he.po | 1056 +++++++++++++++++++++++++-------------------------- po/hi.po | 1050 +++++++++++++++++++++++++-------------------------- po/hu.po | 1062 ++++++++++++++++++++++++++-------------------------- po/id.po | 1062 ++++++++++++++++++++++++++-------------------------- po/it.po | 1051 ++++++++++++++++++++++++++------------------------- po/ja.po | 1063 ++++++++++++++++++++++++++-------------------------- po/kk.po | 1053 +++++++++++++++++++++++++-------------------------- po/ko.po | 1062 ++++++++++++++++++++++++++-------------------------- po/lb.po | 1058 +++++++++++++++++++++++++-------------------------- po/lt.po | 1056 +++++++++++++++++++++++++-------------------------- po/mn.po | 1058 +++++++++++++++++++++++++-------------------------- po/nl.po | 1204 ++++++++++++++++++++++++++++++----------------------------- po/nn.po | 1049 +++++++++++++++++++++++++-------------------------- po/pl.po | 1058 +++++++++++++++++++++++++-------------------------- po/pt.po | 673 +++++++++++++++++---------------- po/pt_BR.po | 1058 +++++++++++++++++++++++++-------------------------- po/ro.po | 1058 +++++++++++++++++++++++++-------------------------- po/ru.po | 1065 ++++++++++++++++++++++++++-------------------------- po/sk.po | 1062 ++++++++++++++++++++++++++-------------------------- po/sl.po | 1057 +++++++++++++++++++++++++-------------------------- po/sr.po | 1058 +++++++++++++++++++++++++-------------------------- po/sv.po | 1058 +++++++++++++++++++++++++-------------------------- po/tr.po | 1057 +++++++++++++++++++++++++-------------------------- po/uk.po | 1058 +++++++++++++++++++++++++-------------------------- po/vi.po | 1058 +++++++++++++++++++++++++-------------------------- po/zh_CN.po | 1060 ++++++++++++++++++++++++++-------------------------- po/zh_TW.po | 1056 +++++++++++++++++++++++++-------------------------- 43 files changed, 22003 insertions(+), 21298 deletions(-) commit 24c8d4c3ebf8086a209ec6820a7b51a5dcb70d00 Author: Enrico Tröger Date: Mon Jun 27 16:10:57 2016 +0200 README: Further improve installation instructions README | 41 +++++++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 14 deletions(-) commit 076f510e8c0ceb6e49cd2f871cb1ab43fc2ecd5b Author: Colomban Wendling Date: Sun Jun 26 14:03:34 2016 +0200 README: Update year README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4401dc7268708a8c788d67ca9bbd2d66618d887d Author: Enrico Tröger Date: Sun Jun 26 13:54:33 2016 +0200 README: Update Windows section README | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) commit 513d4bcd20404c05f5a97a39d8c5aa79edcae32b Author: Colomban Wendling Date: Sat Jun 25 16:55:05 2016 +0200 README: State we like Git-formatted patches too README | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 3fcacc6ae5b3865943d59f2d92355df41df3f0b0 Author: Colomban Wendling Date: Sat Jun 25 16:54:52 2016 +0200 README: Advertise we have plugin support README | 1 + 1 file changed, 1 insertion(+) commit 754f4c5721c2cf037fd86d4f727ebe8277ef55fe Author: Colomban Wendling Date: Sat Jun 25 16:52:17 2016 +0200 README: Fix reSt syntax and improve some styling README | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) commit cf631fb2571f8bb6b889070019f3cf91007a8999 Author: Colomban Wendling Date: Sat Jun 25 16:48:56 2016 +0200 README: Extend build instructions README | 42 ++++++++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 12 deletions(-) commit 945f10cd6001dfd7ab61af9b3b23d723aa7c74e1 Author: Colomban Wendling Date: Sat Jun 25 16:59:32 2016 +0200 Add a README.rst link for GitHub to know the format and render it README.rst | 1 + 1 file changed, 1 insertion(+) commit 65988f51f0634d29d4454602f367f03f925fc6d2 Author: Colomban Wendling Date: Sat Jun 25 16:15:08 2016 +0200 style: Reduce scope of several variables No behavioral changes. src/callbacks.c | 10 ++++------ src/document.c | 26 ++++++++++++-------------- src/editor.c | 17 +++++++++-------- src/encodings.c | 3 ++- src/keyfile.c | 4 ++-- src/msgwindow.c | 4 ++-- src/prefs.c | 3 ++- src/search.c | 4 ++-- src/sidebar.c | 3 +-- src/socket.c | 3 +-- src/symbols.c | 4 ++-- src/templates.c | 14 ++++++-------- src/toolbar.c | 12 ++++++++---- src/tools.c | 4 ++-- src/ui_utils.c | 14 ++++++-------- src/vte.c | 21 ++++++++------------- 16 files changed, 69 insertions(+), 77 deletions(-) commit a7570e84f02a1e4517677db033f399a66f49cfd4 Author: Erik de Castro Lopo Date: Fri Jun 24 03:00:49 2016 +0200 ctags: Avoid unnecessary and hard-to-read use of the comma operator Closes #1074. X-Universal-CTags-Commit-ID: 91c6773373864da345a7a9e0f5bd01a25588471c tagmanager/ctags/get.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7bc84224bfc53d6367b559187d2a5e8f2da199b7 Author: Colomban Wendling Date: Fri Jun 24 00:24:02 2016 +0200 README: Mention additional dependencies when building from Git Fixes #756. README | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 93977f4ad10cb767ff40c9575ce9dc6e696d6542 Author: Colomban Wendling Date: Fri Jun 24 00:17:04 2016 +0200 HACKING: Update instructions to add a tags parser HACKING | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 2ec9e1b0328d064a20b3158678994aced0eeca85 Author: Colomban Wendling Date: Fri Jun 24 00:16:02 2016 +0200 HACKING: Update Universal-CTags URL HACKING | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f570d408ebe7ea7c47855cc5f982877f7bdbdb2a Author: Colomban Wendling Date: Thu Jun 23 23:56:39 2016 +0200 Update NEWS preparing for next release NEWS | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) commit b7c121963602f9f5450359d64c14a1b504e33f8b Author: Colomban Wendling Date: Thu Jun 23 23:55:15 2016 +0200 Small update of the French translation po/fr.po | 986 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 501 insertions(+), 485 deletions(-) commit 6e9c126b3314769c2a769bf446f25b93375e4774 Author: Colomban Wendling Date: Thu Jun 23 23:41:31 2016 +0200 TM: Don't call tm_tags_dedup() on a NULL array tagmanager/src/tm_workspace.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d6c98f5ae671a2fd0cb5102a9927a4c2f34f4986 Merge: 5ad6316e7 72482e8e3 Author: Colomban Wendling Date: Thu Jun 23 23:34:19 2016 +0200 Merge pull request #966 from codebrainz/private-globals Privatize global and publicize docs commit 72482e8e328d9a39c5d9a9c997ff0b22200d802d Author: Colomban Wendling Date: Thu Jun 23 23:30:39 2016 +0200 docs: Fix references to renamed symbols src/document.c | 4 ++-- src/document.h | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) commit 5ad6316e7b4a39b9212d53c142c70ddb09fde323 Merge: c5f950720 ec15b6f52 Author: Colomban Wendling Date: Thu Jun 23 23:15:23 2016 +0200 Merge pull request #1038 from kugel-/gi-signals Fix signals for GI commit ec15b6f5298b4a03b96a46ea49c13153450594df Author: Colomban Wendling Date: Sat Jun 18 18:40:20 2016 +0200 scripts/cross-build-mingw.sh: Use newer support libraries with GTK2 Combine the libraries from the GTK3 bundle with GTK from the GTK2 one to get newer GLib & co for GTK2 builds. scripts/cross-build-mingw.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 314a5c180ee6489248e9f94306a53ab623d68178 Author: Thomas Martitz Date: Tue May 17 13:01:34 2016 +0200 geanyobject: properly register signals If possible, register signals with the proper argument types (boxed or gobject). This is required for successful introspection of the signals and important for GI-based plugins. As for the marshallers, if available use a predefined one from glib. Otherwise use the generic marshaller available since 2.30 (in theory all signals could use that one but it has a bit of overhead). This builds on the gboxed conversions of earlier commits. This also bumps the minimum glib requirement. - g_cclosure_marshal_generic requires 2.30 (if NULL is passed as marshaller to g_signal_new()) - G_TYPE_KEYFILE requires 2.32 configure.ac | 9 +-- src/geanyobject.c | 213 ++++++++++-------------------------------------------- 2 files changed, 40 insertions(+), 182 deletions(-) commit c5f9507207b1610609bcea1ad9e71f40efabb7fc Merge: 586e64b84 bd2bec655 Author: Colomban Wendling Date: Thu Jun 23 20:02:45 2016 +0200 Merge pull request #1071 from erikd/master geany.desktop.in: Add Keywords field entry commit 586e64b842b2a77958bafd8f8b443b2436997c49 Merge: fda89798a d097e8cd0 Author: Colomban Wendling Date: Thu Jun 23 19:38:25 2016 +0200 Merge pull request #527 from techee/eol_undo Fix undo of line end type change commit d097e8cd05c5af53dedf340f421adc066af25a38 Author: Jiří Techet Date: Thu Jun 23 18:15:21 2016 +0200 Make UNDO_ENCODING updates similar to other updates Simply call ui_update_statusbar() and ui_document_show_hide() like in other undo actions. src/document.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) commit 6a3a53f421a6868ca041352ac04c91e67886b458 Author: Jiří Techet Date: Thu Jun 23 18:10:50 2016 +0200 Fix undo of line end type change At the moment undo of line end type change only undos the changes made in the document but the different line ending settings remains active. This patch fixes the issue by combining the line end scintilla undo action with a new UNDO_EOL action responsible for updating the line ending settings. Fixes #409 src/callbacks.c | 7 +++++++ src/document.c | 38 ++++++++++++++++++++++++++++++++++++++ src/documentprivate.h | 1 + 3 files changed, 46 insertions(+) commit c6f1fadf0bd1517ae426f71fc702e691f1050f21 Author: Thomas Martitz Date: Tue May 31 09:07:10 2016 +0200 plugin api: export scnotification_get_type Updated scintilla_changes.patch accordingly scintilla/gtk/ScintillaGTK.cxx | 1 + scintilla/scintilla_changes.patch | 8 ++++++++ 2 files changed, 9 insertions(+) commit 2acba3dc3193176f447a06d4ac03c561da1ad978 Author: Thomas Martitz Date: Tue May 17 12:46:49 2016 +0200 plugin api: export geanyobject geanyobject can be used by plugins to connect to plugin signals directly (required for GI-based plugins). Access through GeanyData::object. The related doxygen comments are @gironly for now, since plugin_signal_connect() is still preferred. Finally, the useless function pointer prototypes are removed from the GeanyObjectClass structure as they became useless (they have been unused and generally wrong since ever). src/geanyobject.c | 6 ++++++ src/geanyobject.h | 25 ++++--------------------- src/plugindata.h | 6 ++++++ src/plugins.c | 3 ++- 4 files changed, 18 insertions(+), 22 deletions(-) commit be64b177ca0308ba1fa4b8a14d6b22bd2326e6ef Author: Thomas Martitz Date: Wed Apr 27 16:33:51 2016 +0200 plugin api: convert GeanyEditor to GBoxed internally GeanyObject signals require GTypes to be gobject-introspection compatible. src/editor.c | 12 ++++++++++++ src/editor.h | 4 ++++ 2 files changed, 16 insertions(+) commit 7702a4639b5ce711ce1560bb14d4c94cf5e5de28 Author: Thomas Martitz Date: Wed Apr 27 16:30:50 2016 +0200 plugin api: convert GeanyFiletype to GBoxed internally GeanyObject signals require GTypes to be gobject-introspection compatible. src/filetypes.c | 12 ++++++++++++ src/filetypes.h | 3 +++ 2 files changed, 15 insertions(+) commit 60fb01d6db459cd03a2cbe8e77e1d4b46920e933 Author: Thomas Martitz Date: Wed Apr 27 16:26:58 2016 +0200 plugin api: convert GeanyDocument to GBoxed internally GeanyObject signals require GTypes to be gobject-introspection compatible. src/document.c | 12 ++++++++++++ src/document.h | 3 +++ 2 files changed, 15 insertions(+) commit fda89798a468c65afc1c0d56d0cf9b68a0f98dea Merge: 9a471d336 756d3ce5b Author: Enrico Tröger Date: Mon Jun 20 23:07:10 2016 +0200 Merge pull request #912 from eht16/spawn_debug_output Allow spawn debug output also with GEANY_DEBUG commit 9a471d336dc74699bcf78561a3d47f80f2e2b874 Merge: a57a10b20 871a9089b Author: Enrico Tröger Date: Mon Jun 20 23:06:39 2016 +0200 Merge pull request #1079 from eht16/win32_open_uri_error_handling2 Win32: Add UI error message if an URL could not be opened commit 871a9089b471657ce59442643ebebe2b4a38517f Author: Enrico Tröger Date: Mon Jun 20 01:13:45 2016 +0200 Win32: Add UI error message if an URL could not be opened src/win32.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a57a10b20124d8709772dc5e4f01d12315dbed87 Merge: b28d14bb2 6aaaba6b4 Author: Enrico Tröger Date: Mon Jun 20 23:03:08 2016 +0200 Merge pull request #1080 from eht16/issue1077_runcmd_error_message Improve error message on Build->Run errors commit 6aaaba6b41119cfbe3705d0c993a5cac3223f085 Author: Enrico Tröger Date: Mon Jun 20 01:39:56 2016 +0200 Improve error message on Build->Run errors Reword the error message and use the full executed command line in the error message, not only the configured Terminal command. Fixes #1077. src/build.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit b28d14bb2be30180472635568785cbb1ef3f3369 Author: Enrico Troeger Date: Fri Jun 17 20:42:49 2016 +0200 Windows: Add new indirect dependencies to the bundle scripts/gtk-bundle-from-msys2.sh | 2 ++ 1 file changed, 2 insertions(+) commit bd2bec655d45dabe4ff4e0be1d0cdd10702519b8 Author: Erik de Castro Lopo Date: Tue Jun 14 20:18:59 2016 +1000 geany.desktop.in: Add Keywords field entry This entry matches the `Keywords` field in Gedit. geany.desktop.in | 1 + 1 file changed, 1 insertion(+) commit 8a67c094ea3cc68990490e5f307bbc0aa78b17bc Merge: 0ec12ca11 be4ed86f3 Author: Frank Lanitz Date: Thu Jun 16 09:04:02 2016 +0200 Merge pull request #1073 from philippwiesemann/change-java-template Change array type syntax in Java file template commit be4ed86f35808e36d0d8e62afcb8af30cff18c20 Author: Philipp Wiesemann Date: Wed Jun 15 23:05:09 2016 +0200 Change array type syntax in Java file template Square brackets following the element type are more common. data/templates/files/main.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0ec12ca11d348e32d30bbf8298307199f027dbdd Author: Frank Lanitz Date: Sun Jun 12 14:44:59 2016 +0200 Minor update of German translation po/de.po | 476 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 239 insertions(+), 237 deletions(-) commit d1d0eb618694062efa2b6de8b118fd61d3230c96 Merge: f48904386 50123626c Author: Jiří Techet Date: Sat Jun 11 10:21:07 2016 +0200 Merge pull request #1068 from b4n/tm/run-tests TM: Fix actually running the mapping self-tests commit f489043864b644216ccecd9415abbf4b850a130f Merge: 021bbfb82 064a28970 Author: Colomban Wendling Date: Sat Jun 11 01:09:49 2016 +0200 Merge pull request #946 from techee/scintilla_quartz Enable buffered draw on newer GTK versions on OS X commit 50123626c756ff7fe2f87c023252132936ead69e Author: Colomban Wendling Date: Sat Jun 11 01:02:54 2016 +0200 TM: Fix actually running the mapping self-tests tagmanager/src/tm_workspace.c | 1 + 1 file changed, 1 insertion(+) commit 021bbfb82b7adc54907511606e2def3ce5bf526c Merge: 60147a8c8 20e368155 Author: Colomban Wendling Date: Fri Jun 10 23:47:57 2016 +0200 Merge pull request #958 from techee/goto_popup Improve Goto Symbol popup contents commit 60147a8c8dafc453a244c5b2329a1dc93aac10f7 Merge: 7fbe6ad83 c7bf89a46 Author: Colomban Wendling Date: Fri Jun 10 23:30:02 2016 +0200 Merge pull request #857 from techee/cpp_h Treat the "h" extension as a C++ file commit 7fbe6ad83242fad6ef32ac56e64ab0ff7882e467 Merge: e328434a1 27e445550 Author: Colomban Wendling Date: Fri Jun 10 23:09:09 2016 +0200 Merge pull request #957 from techee/ctags_hook TagManager cleanups commit 27e445550285f2ee8785ad84822c3463a238f95c Author: Jiří Techet Date: Thu Jun 9 10:30:07 2016 +0200 Drop g_list_reverse() Since the original include list is already reordered by the hash table, it makes no sense to reverse the resulting list as it's in a different order anyway. tagmanager/src/tm_workspace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 379eefa831595fa98e3f6841967bae26075d12c6 Author: Jiří Techet Date: Thu Jun 9 10:24:47 2016 +0200 Use '\0' for non-existent tag kind instead of '-' Shouldn't collide with real tag kind symbols and a non-visible character is more probably unused by ctags than a visible one. tagmanager/src/tm_parser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 20e368155812e611f2ec991273b05fae914f1c45 Author: Jiří Techet Date: Thu Jun 9 10:01:59 2016 +0200 Try harder when definition/declaration was not found Even when we know when should be searching for definition (or declaration), we can keep searching for the opposite type too when we didn't find anything with the "correct" def/decl type. So at least we find "something" of that name. src/symbols.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit ca8ef9643e7ca347a03875798fa1bbd122e9c917 Author: Jiří Techet Date: Thu Jun 9 09:41:09 2016 +0200 Add parentheses in an if to make the condition more clear src/symbols.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e328434a1fb1a42289ca1b4f28f03d143d5f048b Merge: 81a5b771b 3dda6180c Author: Colomban Wendling Date: Wed Jun 8 23:54:39 2016 +0200 Merge pull request #980 from cjmayo/ecma_classes javascript: Add ECMAScript 6 classes keywords commit 81a5b771b51c45a11584e091ba0995984e1f4495 Author: Colomban Wendling Date: Wed Jun 8 12:30:03 2016 +0200 scripts/cross-build-mingw.sh: Allow to specify the build directory This can be useful to maintain 2 separate build directories in parallel, i.e. for GTK2 and 3 builds. scripts/cross-build-mingw.sh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit d95111d4cd02e51eac90f814c4cd24ed8014a4c6 Merge: 9bc5857f8 9356514e4 Author: Colomban Wendling Date: Tue May 31 16:53:29 2016 +0200 Merge pull request #1039 from techee/highlight_fix2 Fix inconsistent typename highlighting updating. Closes #1020, #1022. commit 9bc5857f899016efab507419e538fe67c0118c09 Author: Masatake YAMATO Date: Fri May 20 09:18:58 2016 +0900 make: fix a typo in parenthesis handling Signed-off-by: Masatake YAMATO Signed-off-by: Colomban Wendling X-Universal-CTags-Commit-ID: 39c1236cc1a40aac6b93c60537d30489912bbbb2 X-Universal-CTags-Issue: universal-ctags/ctags#944 tagmanager/ctags/make.c | 2 +- tests/ctags/Makefile.am | 1 + tests/ctags/make-parentheses.mak | 6 ++++++ tests/ctags/make-parentheses.mak.tags | 5 +++++ 4 files changed, 13 insertions(+), 1 deletion(-) commit b007cc009ef609a4b7fc77876113b906eb5e52b2 Author: Colomban Wendling Date: Mon May 30 12:22:24 2016 +0200 Remove redundant typedef with new Scintilla that breaks Windows builds src/editor.h | 2 -- 1 file changed, 2 deletions(-) commit 916c41e1e6eb8603078f18dfba3645a40f178e8a Merge: d7750a447 04296390d Author: Colomban Wendling Date: Thu May 26 19:23:08 2016 +0200 Merge branch 'scintilla/update-366' commit 04296390dea9d7e288adb7b559badf803b60dff8 Author: Colomban Wendling Date: Sun May 22 20:16:16 2016 +0200 scintilla: Don't build with C++11 regex support It seems to cause some compatibility issues with some current compilers and we don't use it nor need it for extended regex support, so stay on the safe side at least for the moment. scintilla/Makefile.am | 2 +- scintilla/gtk/makefile.win32 | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) commit 934b47158cb0a45457949ebd541ba9457a172721 Author: Colomban Wendling Date: Sun May 22 20:06:38 2016 +0200 scintilla: Remove obsolete flag building Scintilla `-DG_THREADS_IMPL_NONE` was a hack, and it has no effect since 3.6.5, so drop it altogether. scintilla/Makefile.am | 2 +- scintilla/gtk/makefile.win32 | 10 ++-------- 2 files changed, 3 insertions(+), 9 deletions(-) commit 64025cfcfc1582f2aff58f9933f0d49ba080a6cf Author: Colomban Wendling Date: Sun May 22 20:02:28 2016 +0200 Update Scintilla to version 3.6.6 scintilla/gtk/Converter.h | 31 ++++++--------- scintilla/gtk/PlatGTK.cxx | 16 ++++---- scintilla/gtk/ScintillaGTK.cxx | 60 +++++++++++++++++++---------- scintilla/gtk/scintilla-marshal.c | 73 +++++++++++++++++++++++++++--------- scintilla/gtk/scintilla-marshal.h | 25 ++++++++---- scintilla/gtk/scintilla-marshal.list | 3 +- scintilla/include/Scintilla.h | 9 ++++- scintilla/include/Scintilla.iface | 2 +- scintilla/include/ScintillaWidget.h | 8 +++- scintilla/scintilla_changes.patch | 28 -------------- scintilla/src/Document.cxx | 6 +-- scintilla/src/Editor.cxx | 6 ++- scintilla/src/Editor.h | 1 + scintilla/version.txt | 2 +- 14 files changed, 160 insertions(+), 110 deletions(-) commit 9356514e457c34da3169b6531862b538e1a961bb Author: Jiří Techet Date: Tue May 17 22:58:47 2016 +0200 Perform typename re-colourisation only when typename list changes To detect the change of typename list since the last time the colourisation happened, we could store the complete typename string used during the last colourization and compare it with the current string. For lots of typenames this might be quite a huge string stored for every opened tab (well, it's also stored in Scintilla already for every document but better not to have it twice). Instead, we can store an uint hash of the string. We could also use a better hash function with longer hash value but uint size should be enough for this case (and in the case of a collision nothing terrible happens). src/document.c | 11 +++++++++-- src/documentprivate.h | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) commit 9313b17559f4ea60acae95db96523dbd02c80e35 Author: Jiří Techet Date: Tue May 17 22:09:48 2016 +0200 Don't accumulate multiple colourises I don't know if this ever happens but the check shouldn't hurt. src/document.c | 3 +++ 1 file changed, 3 insertions(+) commit 4896db17fe3e943981fddd9a816cf3df35e1ef63 Author: Jiří Techet Date: Tue May 17 22:04:28 2016 +0200 Revert "Colourise only the visible area when highlighting typenames" This reverts commit b361b83276816633ac5a0d6d391b6f6e8ebe6cf1. The patch doesn't quite work e.g. when using replace to replace a typename. src/document.c | 12 ++++-------- src/documentprivate.h | 1 - src/editor.c | 26 +++++--------------------- 3 files changed, 9 insertions(+), 30 deletions(-) commit d7750a44796b0ddc1c7a8968fd53aad91382d686 Author: Colomban Wendling Date: Tue May 17 02:45:03 2016 +0200 Fix canceling keybinding overriding by discarding the dialog Properly handle discarding the dialog asking whether to override a keybinding as canceling it rather than as allowing multiple identical keybindings. In the way, simplify and fix dialogs_show_prompt() not to perform odd and useless response mapping that effectively go round back, and that don't handle what the comment above it suggests. Simply document it can return GTK_RESPONSE_DELETE_EVENT and handle it in the caller side, as it's a possibly valuable information. Only one current caller is affected, and it doesn't change anything as it doesn't change behavior but only documents it. Closes #714. src/dialogs.c | 8 ++------ src/prefs.c | 2 +- 2 files changed, 3 insertions(+), 7 deletions(-) commit 96818888069f8c5d7a1b5d3e1d3f9a4d73c7ffb7 Merge: b81f41ce3 854a5d5af Author: Colomban Wendling Date: Sun May 15 15:58:05 2016 +0200 Merge pull request #1014 from b4n/streamline-builtin-tags Streamline builtin tags commit b81f41ce3288dc3c83612ce71e4aef11d1639557 Merge: cb8151b29 175d98730 Author: elextr Date: Sat May 14 19:36:24 2016 +1000 Merge pull request #1024 from Yanpas/java-review Reviewed java keywords commit cb8151b29b22e3248092e8d697c77423832d8992 Author: Colomban Wendling Date: Wed May 11 23:00:37 2016 +0200 GTK: Avoid possible IdleWork() calls on destructed objects The idle callback removal clause in the ScintillaGTK destructor got broken in the last Scintilla update [1], leading to the callback not being removed thus possibly running after the instance destruction. Indeed, gdk_threads_add_idle() wraps g_idle_add() with a custom user data, thus making the g_source_remove_by_user_data() call in the destructor incorrect, as we give it our own user data, not GDK's wrapper one. Fix the callback removal not to use user data matching to avoid this. Closes #1033. [1] https://sourceforge.net/p/scintilla/code/ci/4e5c321dda8e69104cb7b639c3107dc11dbc00f6/ X-Scintilla-Bug-URL: https://sourceforge.net/p/scintilla/bugs/1827/ X-Scintilla-Commit-ID: d889200cd9de032e278745f48b9c3108ccfa5984 scintilla/gtk/ScintillaGTK.cxx | 21 ++++++++++++++++----- scintilla/src/Editor.h | 4 +--- 2 files changed, 17 insertions(+), 8 deletions(-) commit 8ca8b26051ddb81130a81d053dd975725970f8cf Merge: a291a4239 6b608974c Author: elextr Date: Thu May 12 17:54:30 2016 +1000 Merge pull request #1029 from AleXoundOS/AleXoundOS-patch-2 Fix Haskell single line comments by adding space commit 6e89ee5ebef888e5d07407d33ffb4d455831e752 Author: Jiří Techet Date: Fri May 6 22:00:14 2016 +0200 Check for fclose() success tagmanager/src/tm_workspace.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit b959801d8f03e83bf58333f047f8314ec2e401c7 Author: Jiří Techet Date: Fri May 6 21:56:47 2016 +0200 Rename append_to_temp_file() to combine_include_files() tagmanager/src/tm_workspace.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7fe549d4803442ef0efa71deb04d759cfcda2013 Author: Jiří Techet Date: Fri May 6 21:47:04 2016 +0200 Make sure not to leak tmp_errfile if only outf creation fails tagmanager/src/tm_workspace.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 084c23bbb163fd95d00e2032698ec3371d366693 Author: Jiří Techet Date: Fri May 6 21:43:50 2016 +0200 Use g_strdup() instead of strdup() tagmanager/src/tm_workspace.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bd9d26a0d121f9bcabd2fcce26fb5c77b7bfa81a Author: Jiří Techet Date: Fri May 6 21:42:13 2016 +0200 Fix crash in lookup_includes() Right now geany -g foo.c.tags \" makes Geany crash. tagmanager/src/tm_workspace.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 9ae93e34a00bcc2e3f3a8c672443f5d5db177ce8 Author: Jiří Techet Date: Fri May 6 21:08:24 2016 +0200 Check return value of write_tag() If we were strict, we should check every single fprintf() int write_tag() but it's highly improbable that some of the middle fprintf()s fail and the last one doesn't so the current implementation of write_tag() is probably sufficient. tagmanager/src/tm_source_file.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 8c27ea1042e56cce7031545155a294cd4ff18cc8 Author: Jiří Techet Date: Fri May 6 17:34:26 2016 +0200 Remove invalid part of a comment tagmanager/src/tm_source_file.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit c05e3eabf14df61d7de54a18f713cb50ef2dc8b8 Author: Jiří Techet Date: Fri May 6 17:29:54 2016 +0200 Split tm_ctags_callback into two One to inform about a new tag, the other informing about a start of a new pass. tagmanager/src/tm_ctags_wrappers.c | 12 ++++++------ tagmanager/src/tm_ctags_wrappers.h | 14 ++++++++++---- tagmanager/src/tm_source_file.c | 28 ++++++++++++---------------- 3 files changed, 28 insertions(+), 26 deletions(-) commit 9b188a20ef77410891231ff36fa950286be1cb8d Author: Jiří Techet Date: Fri May 6 17:06:57 2016 +0200 Use g_error() instead of g_warning() in parser type verification tagmanager/src/tm_parser.c | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) commit f147f36dafd3c3241c159faf9ac533b7b7d9c7ed Author: Colomban Wendling Date: Thu May 5 14:37:18 2016 +0200 Reduce some repetitions in tag type mapping code * Use a streamlined name for each map, `map_LANGUAGE`, where `LANGUAGE` is the CTags parser name from tm_parser.h. This allows some further automation. * Make sure the maps are referenced at the correct index in `parser_map`, even if they were not in the same order as in the `TMParserType` enumeration by using explicit sub-object initializers. * As explicit sub-object initialization might lead to a missing initializer for a non-last index going unnoticed, add a check for uninitialized entries to properly reject them even for regex parsers. tagmanager/src/tm_parser.c | 215 ++++++++++++++++++++++++--------------------- 1 file changed, 117 insertions(+), 98 deletions(-) commit 0833974e1ed460f1c36b3e2408726345f256d6a3 Author: Colomban Wendling Date: Wed May 4 19:29:24 2016 +0200 Convert parser map size check to a static assertion tagmanager/src/tm_parser.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 4036d7d18a22af98beee1644d393e73240e3aee5 Author: Colomban Wendling Date: Wed May 4 19:09:17 2016 +0200 Remove not useless tm_source_file_ctags_init() indirection tagmanager/src/tm_source_file.c | 6 ------ tagmanager/src/tm_source_file.h | 2 -- tagmanager/src/tm_workspace.c | 3 ++- 3 files changed, 2 insertions(+), 9 deletions(-) commit fdc4510864f715248a9e83b65cc89df514714166 Author: Colomban Wendling Date: Wed May 4 19:08:43 2016 +0200 Don't use char array subscript as it may be signed tagmanager/src/tm_parser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6b608974c0217fab182285c71cb9991fc630629a Author: Alexander Date: Fri May 6 02:15:51 2016 +0400 Fix Haskell single line comments by adding space Haskell single line comments consist of at least two dashes "--", not followed by special symbol. So in practice everywhere in code you will see a space following "--". Reference: Haskell 2010 Language Report -> Chapter 2 -> Lexical Structure data/filedefs/filetypes.haskell | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 056e53c2c510602b9e35e79a128bdea77dd4de04 Author: Colomban Wendling Date: Wed May 4 19:01:26 2016 +0200 Make our convenience libraries more self-contained Make each convenience library depend on the ones it requires, which is pretty straightforward for us as they each only depend on a single other one, avoiding any worry about double linking of static objects. src/Makefile.am | 2 -- tagmanager/Makefile.am | 2 +- tagmanager/ctags/Makefile.am | 2 ++ tagmanager/mio/Makefile.am | 1 + tagmanager/src/Makefile.am | 2 ++ 5 files changed, 6 insertions(+), 3 deletions(-) commit 7411f9b5cf46462ff15cae6959376382f22c2613 Author: Colomban Wendling Date: Wed May 4 18:59:39 2016 +0200 Remove an unused variable tagmanager/src/tm_source_file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2bdc96776c62d171920b7b2a18374bc2d84577f6 Author: Colomban Wendling Date: Wed May 4 18:59:02 2016 +0200 Use proper C prototypes tagmanager/src/tm_ctags_wrappers.c | 4 ++-- tagmanager/src/tm_ctags_wrappers.h | 4 ++-- tagmanager/src/tm_source_file.c | 2 +- tagmanager/src/tm_source_file.h | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) commit 175d9873054d21f953f41b940b759c22169c6b5e Author: Yan Pashkovsky Date: Wed May 4 16:21:13 2016 +0300 Reviewed java data/filedefs/filetypes.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a291a4239a656044f250dba5653fc3f4dac7bf9c Merge: 05870d9eb f948916ad Author: Colomban Wendling Date: Tue May 3 00:32:51 2016 +0200 Merge branch 'gtk-3-20-fixes' commit f948916ad07d08bdb4ede16b7ea733ff3d12ea55 Author: Colomban Wendling Date: Mon May 2 23:38:21 2016 +0200 Don't get properties of a non-current style state to please GTK 3.20 GTK 3.20 doesn't like getting a style property for a non-current state, unless the call is wrapped in a save()/restore() pair. So, fix the code to either use the current state or temporarily save the context. gb.c now uses different states, but it shouldn't really matter given how they are used, and even gives a native behavior when the window loses focus, as it now properly reacts to BACKDROP state. src/build.c | 8 +++++++- src/document.c | 2 +- src/gb.c | 7 ++++--- 3 files changed, 12 insertions(+), 5 deletions(-) commit 75063e9159bbc582e4d41b91bc187a040021e6d5 Merge: c4f56bfcd bf3140004 Author: Colomban Wendling Date: Mon May 2 15:26:39 2016 +0200 Merge branch 'scintilla/gtk-3-20' into gtk-3-20-fixes commit c4f56bfcd6a16d8c04ad86fb50ed9f77107cb550 Author: Colomban Wendling Date: Tue Apr 26 21:44:35 2016 +0200 Fix some custom CSS selectors to work on GTK 3.20 data/geany.css | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 5851f5616e85ae3e43fd04f0ca67328fc27a8bd9 Merge: 05870d9eb 62be0b9b9 Author: Colomban Wendling Date: Mon May 2 15:21:36 2016 +0200 Merge branch 'gtk-version-specific-css' into gtk-3-20-fixes Merges pull request #994. commit bf3140004d1618e0ae5fad1595aadf6835a97551 Author: Neil Hodgson Date: Sun May 1 08:59:04 2016 +1000 Do not call deprecated functions on newer GTK+. X-Scintilla-Bug-URL: https://sourceforge.net/p/scintilla/bugs/1825/ X-Scintilla-Commit-ID: 5e4f2e6c167ee30e2c2bfadd1b1579c3d8716c60 scintilla/gtk/ScintillaGTK.cxx | 6 ++++++ 1 file changed, 6 insertions(+) commit 0a0c9bb7ce3d58939e32a8f47e46a3624c02e22d Author: Neil Hodgson Date: Sat Apr 30 14:03:28 2016 +1000 Move function braces for consistency. X-Scintilla-Bug-URL: https://sourceforge.net/p/scintilla/bugs/1825/ X-Scintilla-Commit-ID: cdded8beb41e4a494e68b76a6bafeeae14b0d103 scintilla/gtk/PlatGTK.cxx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit ba58a391c73024a9b40c638757352e171dd53333 Author: Colomban Wendling Date: Wed Apr 27 16:01:17 2016 +0200 GTK: Get border for the exact current style's state on GTK 3 GTK 3.20 doesn't seem to like it so much when looking up details of a non-exact current style context state, so use the current one. This is GTK being really picky as in this case we are just missing the `DIR_LTR` flag, which we definitely don't care about, but let's make it happy. X-Scintilla-Bug-URL: https://sourceforge.net/p/scintilla/bugs/1825/ X-Scintilla-Commit-ID: 9fc624da4a3d935633c45fb56d0e9a77ef9b5af1 scintilla/gtk/PlatGTK.cxx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit abf0365e43156be12cc0a03b0a5fb6325039b6f0 Author: Colomban Wendling Date: Wed Apr 27 16:01:17 2016 +0200 GTK: Fix auto-completion popup sizing code for GTK 3.20 GTK 3.20's GtkScrolledWinodw doesn't like having a too small allocation and spews scary assertion failures. Fix that by requesting the real size we'd like instead of hard-coding 1 as small-enough value in our overriding height requisition method. The actual value doesn't really matter so long as it's small enough anyway, as we resize the popup to fit later on. Note: this moves the actual implementation of ListBoxX::GetRowHeight() to the new convenience function treeViewGetRowHeight(), with no changes in implementation. X-Scintilla-Bug-URL: https://sourceforge.net/p/scintilla/bugs/1825/ X-Scintilla-Commit-ID: 5a0afdd87d56d837dd8068e234aed8e2b6bdbe93 scintilla/gtk/PlatGTK.cxx | 63 +++++++++++++++++++++++++++++------------------ 1 file changed, 39 insertions(+), 24 deletions(-) commit 2723727ecdcc124f87f914ffe1018e4eb6d044a3 Author: Colomban Wendling Date: Wed Apr 27 16:01:17 2016 +0200 GTK: Plug a memory leak X-Scintilla-Bug-URL: https://sourceforge.net/p/scintilla/bugs/1825/ X-Scintilla-Commit-ID: 4f96ed32ebb94809ca419c0f77d37de41984cf76 scintilla/gtk/PlatGTK.cxx | 1 + 1 file changed, 1 insertion(+) commit ead0e9ee5fb6d0242a729f86991c16979ff90fae Author: Colomban Wendling Date: Wed Apr 27 16:01:17 2016 +0200 GTK: Fix fetching the frame border width on GTK 3.20 GTK 3.20 introduced a sub-node named "border" to the frame, requiring to lookup the border on that sub-node rather than on the frame itself. Unfortunately supporting this requires to be built against GTK 3.20, as it requires API this version introduced. This means that a build against an older version won't be able to get the popup sizing right if running on 3.20. To mitigate this, add reasonable fallback defaults when running 3.20 but built on an earlier version, to try and avoid X-Scintilla-Bug-URL: https://sourceforge.net/p/scintilla/bugs/1825/ X-Scintilla-Commit-ID: 83d56b1fc63a206e4c1b776f5991b3b17ccb3473 2px-scrolling on GTK 3.20's default theme. scintilla/gtk/PlatGTK.cxx | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) commit 28a99f8188724a999f74751501c1e223c2d61a7f Author: Colomban Wendling Date: Wed Apr 27 16:01:17 2016 +0200 GTK: Properly ask wText what size it wants to please GTK 3.20 It's not really of any use as we do know any size would do as wText is ours anyway, but GTK 3.20 doesn't like allocating without querying the preferred size beforehand, so do it. As wText has a size_request() of 100x100, this might change how we allocate in case we used to underallocate it, but AFAIK we don't, and it is the real minimum size expected. X-Scintilla-Bug-URL: https://sourceforge.net/p/scintilla/bugs/1825/ X-Scintilla-Commit-ID: d06e3db3e26842cd136328df17eb6f864b3adc02 scintilla/gtk/ScintillaGTK.cxx | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit 915e8b781c22fc2e8a3a9a3bdae227c89db01296 Author: Colomban Wendling Date: Wed Apr 27 16:01:16 2016 +0200 GTK: Fix popup font on GTK >= 3.20 X-Scintilla-Bug-URL: https://sourceforge.net/p/scintilla/bugs/1825/ X-Scintilla-Commit-ID: a28863773874af35d3cc8912ae3c028fb0462ea9 scintilla/gtk/PlatGTK.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 62be0b9b9669483fa9f84aa6473b0b6e48f990a2 Author: Colomban Wendling Date: Tue Apr 26 21:40:03 2016 +0200 Fix our tab close buttons appearance on GTK 3.20 data/geany-3.20.css | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 05870d9ebc409a549cc953a7148cf678147b6e83 Merge: a5a47da9f 1c83b18e2 Author: Colomban Wendling Date: Sat Apr 30 00:22:58 2016 +0200 Merge pull request #973 from techee/osx_keybindings osx: force resync menus when changing keybindings commit a5a47da9f29dcc329eac45176073c5c47c88df44 Author: Yan Pashkovsky Date: Sat Apr 16 22:15:44 2016 +0300 classbuilder: Use .hpp instead of .h for C++ header file extension .hpp is a C++-specific extension avoiding any confusion, and better supported as C++ out of the box by Geany. Closes #999. plugins/classbuilder.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 854a5d5af826c7dfbebc50dbcf687e508d7444c5 Author: Colomban Wendling Date: Fri Apr 29 01:39:11 2016 +0200 Don't special-case tags files distributed with Geany Load those tags files just as any user tags files, removing unnecessary code redundancy. data/Makefile.am | 10 ++--- .../{html_entities.tags => entities.html.tags} | 0 data/tags/{pascal.tags => std.pas.tags} | 0 data/tags/{php.tags => std.php.tags} | 0 data/tags/{python.tags => std.py.tags} | 0 data/tags/{c99.tags => std99.c.tags} | 0 src/symbols.c | 52 +--------------------- 7 files changed, 6 insertions(+), 56 deletions(-) commit 6b262bb4ec041f4449d2736b38cf457ae9add822 Author: Colomban Wendling Date: Fri Apr 29 01:26:51 2016 +0200 Make html_entities.tags a real tags file This removes a fair amount of specific code that is just as well handled by the generic symbols completion code. data/tags/html_entities.tags | 3 +-- src/editor.c | 48 ++++---------------------------------------- src/symbols.c | 45 +++++------------------------------------ src/symbols.h | 2 -- src/utils.c | 19 ------------------ src/utils.h | 2 -- 6 files changed, 10 insertions(+), 109 deletions(-) commit 1403d352b2f38c68a10e0ce4b6eb686fbef8920d Author: Colomban Wendling Date: Fri Apr 29 01:12:20 2016 +0200 Update Scintilla to version 3.6.5 scintilla/gtk/PlatGTK.cxx | 272 +++----------------------------------- scintilla/gtk/ScintillaGTK.cxx | 49 +++---- scintilla/include/SciLexer.h | 15 +++ scintilla/include/Scintilla.iface | 17 +++ scintilla/lexers/LexCPP.cxx | 3 + scintilla/lexers/LexPython.cxx | 16 ++- scintilla/lexers/LexRust.cxx | 2 +- scintilla/lexlib/Accessor.cxx | 4 +- scintilla/lexlib/WordList.cxx | 4 +- scintilla/scintilla_changes.patch | 3 +- scintilla/src/Document.cxx | 4 +- scintilla/src/EditView.cxx | 2 +- scintilla/src/Editor.cxx | 5 +- scintilla/src/Editor.h | 2 +- scintilla/src/KeyMap.h | 1 + scintilla/src/Position.h | 15 ++- scintilla/src/RESearch.h | 2 +- scintilla/version.txt | 2 +- 18 files changed, 116 insertions(+), 302 deletions(-) commit 4374769b7c181e56bcc01e1f0117566638d5da46 Author: Quentin Glidic Date: Mon Apr 11 17:20:22 2016 +0200 ui-utils: Fix ui_path_box_new with GTK+ >= 3.20 They introduced[1] a GtkBox between the GtkEntry and the GtkComboBox to add some magic in the layout computation. [1] Signed-off-by: Quentin Glidic src/ui_utils.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 1f392b75bfda21255349e48163ba5afe220ed55f Author: Quentin Glidic Date: Mon Apr 11 15:32:41 2016 +0200 ui-utils: Load per-version GTK+ CSS file Signed-off-by: Quentin Glidic data/Makefile.am | 5 ++++- data/geany-3.0.css | 10 ++++++++++ data/geany-3.20.css | 8 ++++++++ data/geany.css | 5 ----- geany.nsi.in | 1 + src/ui_utils.c | 20 +++++++++++++++++++- 6 files changed, 42 insertions(+), 7 deletions(-) commit f74fdd8d1ce0f1c18071d9d963fc45683f67c817 Merge: 3967ce582 ad81720d9 Author: elextr Date: Mon Apr 11 09:21:17 2016 +1000 Merge pull request #991 from philippwiesemann/fix-plugin-doc-typos Fix typos in plugin documentation commit ad81720d9880c380f38bfcb68bb0403a71430c35 Author: Philipp Wiesemann Date: Sat Apr 9 23:25:25 2016 +0200 Fix typos in plugin documentation doc/plugins.dox | 22 +++++++++++----------- doc/pluginsignals.c | 8 ++++---- doc/pluginsymbols.c | 2 +- 3 files changed, 16 insertions(+), 16 deletions(-) commit 3dda6180ceb293a1aa6661443cda04ec58806359 Author: Chris Mayo Date: Mon Mar 28 19:40:37 2016 +0100 javascript: Add support for ECMAScript 6 classes keywords https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes http://www.ecma-international.org/ecma-262/6.0/#sec-keywords http://www.ecma-international.org/ecma-262/6.0/#sec-constructor data/filedefs/filetypes.javascript | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3967ce582fe876a82dd6e2f2404fe62cd60c6e4a Author: Frank Lanitz Date: Sat Mar 26 09:37:32 2016 +0100 Update of Greek translation NEWS | 3 + po/el.po | 650 +++++++++++++++++++++++++++++++-------------------------------- 2 files changed, 320 insertions(+), 333 deletions(-) commit 1c83b18e22c20c29514ba85196022dbb8db74c52 Author: Jiří Techet Date: Wed Mar 23 20:45:47 2016 +0100 osx: force resync menus when changing keybindings Normally menu items are updated only when adding or removing them on osx. They are however not redrawn when just changing keybindings so the old keybinding is displayed after the change. Force the menu update to show the updated keybindings. src/prefs.c | 5 +++++ 1 file changed, 5 insertions(+) commit 5d9376ea801a6e6c3ec22748741362a3a2eff7ac Author: Jiří Techet Date: Tue Mar 22 17:03:16 2016 +0100 Add explicit mapping of ctags tag types to Geany tag types At the moment tag types are changed in ctags to match the types Geany uses internally. This introduces differences between the parsers used in ctags and the ones used in Geany. Instead, perform the "ctags tag type"->"geany tag type" mapping explicitly in TM and leave the tag types in individual parsers identical to ctags. For parsers which are present in ctags (and which don't seem to be completely different from the parsers used in Geany) revert the tag type change in the parsers so the parser tag definitions match universal-ctags. This patch doesn't do anything with the tag types of parsers not present in universal-ctags and leaves them as they are. Parsers which previously had a mapping to an non-existent Geany type have now the mapping explicitly set to tm_tag_undef_t. Since the mapping is now made through the one-letter type, some of the parsers had to be adjusted because they used single letter for multiple tag types (probably by mistake). Because the whole mapping process might be a bit fragile and error-prone to changes in ctags parsers, the patch also performs some consistency checks: * whether the parser number in ctags/TM matches * whether for the given language the tag type number is identical in TM mapping and ctags definition * whether all tag types defined in ctags parser are mapped in TM and in reverse, whether all mapped tags in TM are defined in ctags parser * whether there aren't duplicate tag types Unfortunately the checks are possible only for parsers not using regex because regex definitions are not exposed by ctags (TODO). A bonus side effect of the changes is we can now use real tag types defined for each languages in ctags when parsing ctags tag files instead of using the hard-coded static values which mostly work just for C/C++. tagmanager/ctags/actionscript.c | 4 +- tagmanager/ctags/asm.c | 8 +- tagmanager/ctags/basic.c | 8 +- tagmanager/ctags/c.c | 14 +- tagmanager/ctags/cobol.c | 14 +- tagmanager/ctags/css.c | 4 +- tagmanager/ctags/erlang.c | 4 +- tagmanager/ctags/fortran.c | 16 +- tagmanager/ctags/go.c | 10 +- tagmanager/ctags/html.c | 2 +- tagmanager/ctags/js.c | 4 +- tagmanager/ctags/json.c | 12 +- tagmanager/ctags/make.c | 2 +- tagmanager/ctags/parse.c | 2 +- tagmanager/ctags/parse.h | 1 + tagmanager/ctags/pascal.c | 2 +- tagmanager/ctags/perl.c | 12 +- tagmanager/ctags/php.c | 4 +- tagmanager/ctags/python.c | 6 +- tagmanager/ctags/r.c | 6 +- tagmanager/ctags/ruby.c | 4 +- tagmanager/ctags/rust.c | 4 +- tagmanager/ctags/sql.c | 10 +- tagmanager/ctags/tcl.c | 6 +- tagmanager/ctags/verilog.c | 14 +- tagmanager/ctags/vhdl.c | 2 +- tagmanager/src/Makefile.am | 1 + tagmanager/src/tm_ctags_wrappers.c | 52 +++ tagmanager/src/tm_ctags_wrappers.h | 10 + tagmanager/src/tm_parser.c | 647 +++++++++++++++++++++++++++++++++++++ tagmanager/src/tm_parser.h | 45 +++ tagmanager/src/tm_source_file.c | 103 +----- tagmanager/src/tm_tag.c | 48 +-- tagmanager/src/tm_tag.h | 32 +- 34 files changed, 854 insertions(+), 259 deletions(-) commit d75873f9bc574e98ef024dc562100348595d959e Author: Enrico Tröger Date: Tue Mar 22 08:44:11 2016 +0100 Windows installer: fix broken installation tags files geany.nsi.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bd8caf2a85719ffac5687e735979d6ae30dfb3b9 Author: Enrico Tröger Date: Mon Mar 21 23:16:12 2016 +0100 GTK bundle creation: don't delete necessary GLib schema files The files in share/glib-2.0/schemas are necessary for GTK3, so don't delete them but everything else on the same directory level. scripts/gtk-bundle-from-msys2.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit e1a9929e9cfdad375938018d5ab7b1228e7d6c5b Author: Enrico Tröger Date: Mon Mar 21 23:01:05 2016 +0100 Windows installer: install data files into new locations This adapts the paths in the installer for the tags and filedefs files as changed in #485. Also simply include everything in share/ when including a GTK3 runtime environment instead of a fixed list of subdirectories, share/glib-2.0 doesn't exist anymore when using MSYS2 packages. geany.nsi.in | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) commit aea7d7845917843dd6b02e5a8dc9031cabc87a86 Author: Jiří Techet Date: Thu Mar 10 16:52:07 2016 +0100 Remove some unused return values and unnecessary checks tagmanager/src/tm_tag.c | 32 ++++++++++++++++---------------- tagmanager/src/tm_tag.h | 6 +++--- 2 files changed, 19 insertions(+), 19 deletions(-) commit b72b8596346c5dcecb4ecb55d12311b2405a470f Author: Jiří Techet Date: Fri Mar 11 12:13:12 2016 +0100 Clean up messy tm_workspace_create_global_tags() At the same time ignore tags of the type tm_tag_undef_t when parsing - we cannot query them anyway and this eliminates the need to call tm_tags_extract(source_file->tags_array, tm_tag_max_t); when creating tags file. tagmanager/src/tm_source_file.c | 17 ++- tagmanager/src/tm_workspace.c | 304 +++++++++++++++++++++------------------- 2 files changed, 173 insertions(+), 148 deletions(-) commit 1c4aaa0eb72aa9e3c60cd604d4c20ca5f7dc5c8f Author: Jiří Techet Date: Wed Mar 9 21:50:13 2016 +0100 Add an API-like ctags layer At the moment it is a bit hard to distinguish which of the functions we are using belong to ctags. To make more explicit what we need from ctags, wrap all ctags-related code and access ctags only using this layer. The interface from tm_ctags_wrappers.h can serve as a base for proper ctags interface if ctags becomes a library. tagmanager/src/Makefile.am | 4 +- tagmanager/src/tm_ctags_wrappers.c | 119 +++++++++++++++++++++++++++++++++++++ tagmanager/src/tm_ctags_wrappers.h | 49 +++++++++++++++ tagmanager/src/tm_source_file.c | 82 +++++++------------------ 4 files changed, 193 insertions(+), 61 deletions(-) commit 103d2c535862ae2682022dcfd714c2ffd983c42f Author: Jiří Techet Date: Thu Mar 10 21:37:56 2016 +0100 Move code related to various tag file formats into tm_source_file.c This patch moves code related to reading/writing various tag file formats into form TMTag and TMWorkspace to TMSourceFile. The benefits of this change are: * only tm_source_file.c interfaces with ctags after this change * tagEntryInfo is removed from headers, no redefinitions needed any more * source code is more evenly distributed among tm_source_file.c, tm_tag.c and tm_workspace.c after the change (tm_tag.c got smaller) * all tag reading/writing is at a single place Despite its size, this patch mostly just moves code. Notable changes are: * tm_tag_new() now creates just an empty tag. The tag is filled by various init_* functions inside tm_source_file.c * there are new functions tm_source_file_read_tags_file() and tm_source_file_write_tags_file() - these hide tags file reading/writing details from tm_workspace.c * tm_source_file_write() debugging function got removed - tm_source_file_write_tags_file() does a similar thing and there's no need to keep around two functions doing the same. tagmanager/src/tm_source_file.c | 624 +++++++++++++++++++++++++++++++++++++--- tagmanager/src/tm_source_file.h | 9 +- tagmanager/src/tm_tag.c | 527 +-------------------------------- tagmanager/src/tm_tag.h | 23 +- tagmanager/src/tm_workspace.c | 69 +---- 5 files changed, 604 insertions(+), 648 deletions(-) commit 4dcc829e724a9018f92a8ef5201c2c0f257eeaa7 Author: Jiří Techet Date: Wed Mar 9 14:08:56 2016 +0100 Remove unused tm_tagmanager.h Nobody uses it, the comment there doesn't provide any valuable information and we don't need an umbrella TM header like this. tagmanager/src/Makefile.am | 2 -- tagmanager/src/tm_tagmanager.h | 39 --------------------------------------- 2 files changed, 41 deletions(-) commit 75c5cb6a9c8009ad018ca08d2c583f8ae06d9514 Author: Jiří Techet Date: Wed Mar 9 13:57:46 2016 +0100 Use G_BEGIN_DECLS/G_END_DECLS tagmanager/src/tm_source_file.h | 9 ++------- tagmanager/src/tm_tag.h | 9 ++------- tagmanager/src/tm_workspace.h | 9 ++------- 3 files changed, 6 insertions(+), 21 deletions(-) commit 1de139854f4ba791fc7fce8358490cec90e695d3 Author: Jiří Techet Date: Mon Jan 11 12:52:52 2016 +0100 Improve ctags callback API Communicate with ctags only using function calls and don't assign ctags variables directly. tagmanager/ctags/entry.c | 2 +- tagmanager/ctags/parse.c | 8 ++++++++ tagmanager/ctags/parse.h | 5 +++-- tagmanager/src/tm_source_file.c | 15 +++++---------- 4 files changed, 17 insertions(+), 13 deletions(-) commit 7be40f5832c082ca27bce5e4756c602b5d022580 Author: Jiří Techet Date: Fri Mar 11 11:56:05 2016 +0100 Initialize ctags at a single place instead of four src/libmain.c | 3 ++- tagmanager/src/tm_source_file.c | 36 +++++++----------------------------- tagmanager/src/tm_source_file.h | 2 ++ tagmanager/src/tm_workspace.c | 3 +++ 4 files changed, 14 insertions(+), 30 deletions(-) commit f61a64be29cbba0162f92eb5c1fe4aa2af33fd33 Author: Jiří Techet Date: Mon Jan 11 12:10:51 2016 +0100 Remove the TagEntrySetArglistFunction hook The direct python parser -> tagmanager callback is rather hacky and unnecessary as we can do the same in the normal ctags callback upon receiving a tag. tagmanager/ctags/entry.c | 6 ---- tagmanager/ctags/entry.h | 1 - tagmanager/ctags/parse.c | 1 - tagmanager/ctags/parse.h | 2 -- tagmanager/ctags/python.c | 30 ------------------ tagmanager/src/tm_source_file.c | 68 +++++++++++++++++++++-------------------- 6 files changed, 35 insertions(+), 73 deletions(-) commit 801698ddeda2c682bf159a41b22f6475bb1c7a10 Merge: 83c2a0de6 0bafb067b Author: Colomban Wendling Date: Sat Mar 19 23:35:16 2016 +0100 Merge pull request #965 from kugel-/gi-fix-structs gtkdoc: fix gtkdoc header script for structs with inline types commit 83c2a0de696736f0abf11c92d41bad1cc37ac1ff Merge: 9febf0226 e46093d1f Author: Colomban Wendling Date: Sat Mar 19 23:22:38 2016 +0100 Merge branch 'ruby/uctags-update' Update Ruby parser from Universal-CTags. Closes #587. commit 9febf02261e17f3d91bd16029599e97ed8b89a03 Merge: 813f756c8 3640b3bc4 Author: Colomban Wendling Date: Sat Mar 19 23:15:37 2016 +0100 Merge pull request #485 from techee/ft_menu Move filetypes.* and *.tags to separate directories commit 813f756c84475b9a2bac0b85c1513aae0937d681 Author: Matthew Brush Date: Mon Mar 14 14:26:45 2016 -0700 Add /doc/Doxyfile-gi.stamp generated file to .gitignore .gitignore | 1 + 1 file changed, 1 insertion(+) commit d4aab06f9ba8bc0534303ce4b59b837a687be848 Author: Matthew Brush Date: Mon Mar 14 14:21:57 2016 -0700 Move some documentation to show up in API docs. The Doxygen comments were on the non-public global filetypes_array and filetypes_by_title variables instead of the GeanyData members which are exposed to the plugin API and reference manual. src/filetypes.c | 14 -------------- src/plugindata.h | 16 ++++++++++++++-- 2 files changed, 14 insertions(+), 16 deletions(-) commit 76ede69ef49c6f4ac3e11068a3cd5ecdb4425d1b Author: Matthew Brush Date: Mon Mar 14 14:11:56 2016 -0700 Remove `documents_array` global from plugin API The global was never accessible to plugins on Windows and hasn't been accessible to plugins on Linux and others since the linkage-cleanup changes. Move documentation from the global variable to the GeanyData member of the same name. Closes #964 src/document.c | 18 ------------------ src/document.h | 3 +-- src/plugindata.h | 18 +++++++++++++++++- 3 files changed, 18 insertions(+), 21 deletions(-) commit e46093d1fcd4209f509314aaeb9ff8ebea1f4651 Author: Masatake YAMATO Date: Thu Nov 19 12:11:14 2015 +0900 Ruby: delete rspec related kinds Close universal-ctags/ctags#453. (This is about a bug spotted in universal-ctags/ctags#453 by @mislav and in universal-ctags/ctags#11 by @NewAlexandria.) Kinds C and d are for Rspec. Parts of code related to above kinds assume a ruby string comes after Rspec keywords (describe or context). This is a wrong assumption. A class name can be used there. It is nice if ctags can handle these rspec code well, but we don't have enough resource to make it now. So in this commit I delete rspec related code temporary. I just reserve a kind letter 'd' for rspec for the future. 'C' is completely deleted because (1) describe and context have the same meaning in rspec, and (2) we would like to assign 'C' for Ruby constant as ripper-tags does. Signed-off-by: Masatake YAMATO tagmanager/ctags/ruby.c | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) commit 885b994ec2acfc17068a6f17e0ba22439022731d Author: Colomban Wendling Date: Mon Mar 14 19:40:50 2016 +0100 ruby: License under GPLv2+ as per Universal CTags See https://github.com/universal-ctags/ctags/pull/578 tagmanager/ctags/ruby.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ab6a012119294bce1fb5bd650a62363a9f954f19 Author: Colomban Wendling Date: Sun Jul 26 15:12:39 2015 +0200 ruby: Unify identifier character classification tagmanager/ctags/ruby.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) commit 116c749cd941b64c884d5f2d6a1adb8c135aa329 Author: Colomban Wendling Date: Fri Jul 24 02:06:43 2015 +0200 ruby: Report singleton type inside anonymous classes at a class level New test case contributed by @masatake in universal-ctags/ctags#456. Closes universal-ctags/ctags#455 and universal-ctags/ctags#456. tagmanager/ctags/ruby.c | 19 ++++++++++++++++++- tests/ctags/ruby-class-method-in-lt-lt-self.rb | 6 ++++++ tests/ctags/ruby-class-method-in-lt-lt-self.rb.tags | 2 ++ tests/ctags/ruby-scope-after-anonymous-class.rb.tags | 2 +- 4 files changed, 27 insertions(+), 2 deletions(-) commit 7d116cb4829d684864a0ab8319c688d523ca5d8c Author: Colomban Wendling Date: Fri Jul 24 02:02:08 2015 +0200 ruby: Report proper scope type tagmanager/ctags/ruby.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 9e9774675173fe45c8372540512a2581bb105c4d Author: Colomban Wendling Date: Fri Jul 24 01:56:59 2015 +0200 ruby: Use nestlevel instead of string lists This will simplify some upcoming fixes. tagmanager/ctags/ruby.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) commit 17606d8af7daa7f3a25d1eeae9e925955289e417 Author: Colomban Wendling Date: Fri Jul 24 01:24:45 2015 +0200 ruby: Fix scope after anonymous classes tagmanager/ctags/ruby.c | 3 +++ tests/ctags/Makefile.am | 1 + tests/ctags/ruby-scope-after-anonymous-class.rb | 10 ++++++++++ tests/ctags/ruby-scope-after-anonymous-class.rb.tags | 4 ++++ 4 files changed, 18 insertions(+) commit 1ed29f1d7b948e7d7fde70499491673e65a04954 Author: Colomban Wendling Date: Thu Jul 23 22:50:24 2015 +0200 ruby: Fix parsing qualified identifiers The implementation is a bit hacky, but avoids the need for complex logic to pop several scopes at once. Closes universal-ctags/ctags#452. tagmanager/ctags/ruby.c | 40 +++++++++++++++++++++++++++---- tests/ctags/Makefile.am | 1 + tests/ctags/ruby-namespaced-class.rb | 8 +++++++ tests/ctags/ruby-namespaced-class.rb.tags | 4 ++++ 4 files changed, 49 insertions(+), 4 deletions(-) commit eaf6c82af8f6f00b5231ea5254db3fb3a2569ad8 Author: Colomban Wendling Date: Thu Jul 23 18:11:38 2015 +0200 ruby: Fix keyword matching After an identifier there can be anything but an identifier character. tagmanager/ctags/ruby.c | 62 +++++++++++++++++++++++++++---------- tests/ctags/Makefile.am | 1 + tests/ctags/ruby-block-call.rb | 10 ++++++ tests/ctags/ruby-block-call.rb.tags | 3 ++ 4 files changed, 59 insertions(+), 17 deletions(-) commit e003da2beafb02406a4a3912d5885f6db317d821 Author: Colomban Wendling Date: Thu Jul 23 18:08:28 2015 +0200 ruby: Properly skip documentation contents tagmanager/ctags/ruby.c | 2 ++ tests/ctags/Makefile.am | 1 + tests/ctags/ruby-doc.rb | 22 ++++++++++++++++++++++ tests/ctags/ruby-doc.rb.tags | 5 +++++ 4 files changed, 30 insertions(+) commit e9e9b9988d889a06bc01d1a99fb6620e7d4fa115 Author: Masatake YAMATO Date: Wed May 13 01:53:26 2015 +0900 ruby: handle singleton method including ?!= in its name(sf.bug:364) This patch is intended a bug reported as sf.bug:364. https://sourceforge.net/p/ctags/bugs/364/ Writing a test case is helped by Dmitry Gutov. Signed-off-by: Masatake YAMATO tagmanager/ctags/ruby.c | 7 +++++++ tests/ctags/Makefile.am | 1 + tests/ctags/ruby-sf-bug-364.rb | 16 ++++++++++++++++ tests/ctags/ruby-sf-bug-364.rb.tags | 8 ++++++++ 4 files changed, 32 insertions(+) commit 68322fcb54bda53137429321c58000b2683fc2d8 Author: Masatake YAMATO Date: Wed May 13 01:38:46 2015 +0900 ruby: fix wrong memory access in catMatch fuzz target reports canMatch access wrong memory area when php-anonymous_functions.d/input.php is given as input. This patch fixes it. Signed-off-by: Masatake YAMATO tagmanager/ctags/ruby.c | 5 +++++ 1 file changed, 5 insertions(+) commit a71dbcbeca82a4368d24873fb2d3497c443ccc3b Author: Masatake YAMATO Date: Fri Nov 21 10:52:42 2014 +0900 ruby: Use NULL for initialize an pointer variable Suppress a warning reported by sparse. Signed-off-by: Masatake YAMATO tagmanager/ctags/ruby.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit e129043c9810cbbcb87b811d5f5b2bfd7842405a Author: Artem Nezvigin Date: Fri Jul 4 17:24:09 2014 -0700 Honor --ruby-kinds option in ruby.c Fixes universal-ctags/ctags#49 tagmanager/ctags/ruby.c | 4 ++++ 1 file changed, 4 insertions(+) commit 2269c42dde2ea76228ee150cf0cc9796340877ac Author: Ram Singla Date: Tue Jan 18 13:24:46 2011 +0800 RSpec Code added. Courtesy: mortice tagmanager/ctags/ruby.c | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) commit 0bafb067b9ce0b1d5218f7523473052bcd0dab75 Author: Thomas Martitz Date: Mon Mar 14 08:26:45 2016 +0100 gtkdoc: fix gtkdoc header script for structs with inline types Doxygen adds unhandled xml output for structs that define types inline, for example struct Foo { enum { FOO, BAR } baz; }. A type definitions precedes the members. The script wrongly assumed the first sectiondef child of compounddef would contain all members, but actually this is the case for sectiondefs with kind=public-attrib (the sectiondef defining the type has kind=public-type). scripts/gen-api-gtkdoc.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 3640b3bc4461f302cc2375e4998c58f7729493eb Author: Jiří Techet Date: Fri May 1 20:08:49 2015 +0200 Move *.tags files to the tags directory ignore.tags is still in ~/.config/geany data/Makefile.am | 10 +++++----- data/{ => tags}/c99.tags | 0 data/{ => tags}/html_entities.tags | 0 data/{ => tags}/pascal.tags | 0 data/{ => tags}/php.tags | 0 data/{ => tags}/python.tags | 0 src/geany.h | 1 + src/symbols.c | 8 ++++---- 8 files changed, 10 insertions(+), 9 deletions(-) commit e513e5a099db21cfb518483b459d433d509c948c Author: Jiří Techet Date: Fri May 1 11:58:05 2015 +0200 Move filetypes.* to the filedefs directory data/Makefile.am | 136 ++++++++++++------------- data/{ => filedefs}/filetypes.CUDA.conf | 0 data/{ => filedefs}/filetypes.Clojure.conf | 0 data/{ => filedefs}/filetypes.Cython.conf | 0 data/{ => filedefs}/filetypes.Genie.conf | 0 data/{ => filedefs}/filetypes.Graphviz.conf | 0 data/{ => filedefs}/filetypes.JSON.conf | 0 data/{ => filedefs}/filetypes.Scala.conf | 0 data/{ => filedefs}/filetypes.abaqus | 0 data/{ => filedefs}/filetypes.abc | 0 data/{ => filedefs}/filetypes.actionscript | 0 data/{ => filedefs}/filetypes.ada | 0 data/{ => filedefs}/filetypes.asciidoc | 0 data/{ => filedefs}/filetypes.asm | 0 data/{ => filedefs}/filetypes.batch | 0 data/{ => filedefs}/filetypes.c | 0 data/{ => filedefs}/filetypes.caml | 0 data/{ => filedefs}/filetypes.cmake | 0 data/{ => filedefs}/filetypes.cobol | 0 data/{ => filedefs}/filetypes.coffeescript | 0 data/{ => filedefs}/filetypes.common | 0 data/{ => filedefs}/filetypes.conf | 0 data/{ => filedefs}/filetypes.cpp | 0 data/{ => filedefs}/filetypes.cs | 0 data/{ => filedefs}/filetypes.css | 0 data/{ => filedefs}/filetypes.d | 0 data/{ => filedefs}/filetypes.diff | 0 data/{ => filedefs}/filetypes.docbook | 0 data/{ => filedefs}/filetypes.erlang | 0 data/{ => filedefs}/filetypes.f77 | 0 data/{ => filedefs}/filetypes.ferite | 0 data/{ => filedefs}/filetypes.forth | 0 data/{ => filedefs}/filetypes.fortran | 0 data/{ => filedefs}/filetypes.freebasic | 0 data/{ => filedefs}/filetypes.glsl | 0 data/{ => filedefs}/filetypes.go | 0 data/{ => filedefs}/filetypes.haskell | 0 data/{ => filedefs}/filetypes.haxe | 0 data/{ => filedefs}/filetypes.html | 0 data/{ => filedefs}/filetypes.java | 0 data/{ => filedefs}/filetypes.javascript | 0 data/{ => filedefs}/filetypes.latex | 0 data/{ => filedefs}/filetypes.lisp | 0 data/{ => filedefs}/filetypes.lua | 0 data/{ => filedefs}/filetypes.makefile | 0 data/{ => filedefs}/filetypes.markdown | 0 data/{ => filedefs}/filetypes.matlab | 0 data/{ => filedefs}/filetypes.nsis | 0 data/{ => filedefs}/filetypes.objectivec | 0 data/{ => filedefs}/filetypes.pascal | 0 data/{ => filedefs}/filetypes.perl | 0 data/{ => filedefs}/filetypes.php | 0 data/{ => filedefs}/filetypes.po | 0 data/{ => filedefs}/filetypes.powershell | 0 data/{ => filedefs}/filetypes.python | 0 data/{ => filedefs}/filetypes.r | 0 data/{ => filedefs}/filetypes.restructuredtext | 0 data/{ => filedefs}/filetypes.ruby | 0 data/{ => filedefs}/filetypes.rust | 0 data/{ => filedefs}/filetypes.sh | 0 data/{ => filedefs}/filetypes.sql | 0 data/{ => filedefs}/filetypes.tcl | 0 data/{ => filedefs}/filetypes.txt2tags | 0 data/{ => filedefs}/filetypes.vala | 0 data/{ => filedefs}/filetypes.verilog | 0 data/{ => filedefs}/filetypes.vhdl | 0 data/{ => filedefs}/filetypes.xml | 0 data/{ => filedefs}/filetypes.yaml | 0 data/{ => filedefs}/filetypes.zephir | 0 src/filetypes.c | 8 +- src/libmain.c | 2 +- tests/ctags/runner.sh | 2 +- 72 files changed, 75 insertions(+), 73 deletions(-) commit 24f91981c057a7e212c09da66fb974c3ccc85bd6 Author: Colomban Wendling Date: Sun Mar 13 15:50:36 2016 +0100 Update Scintilla to version 3.6.4 scintilla/gtk/ScintillaGTK.cxx | 4 +++- scintilla/include/ScintillaWidget.h | 2 +- scintilla/lexers/LexCPP.cxx | 4 ++-- scintilla/lexers/LexHTML.cxx | 2 +- scintilla/lexers/LexRuby.cxx | 46 ++++++++++++++++++++++++++++++++++++- scintilla/lexers/LexRust.cxx | 26 +++++++++++++++++++-- scintilla/scintilla_changes.patch | 2 +- scintilla/src/Document.cxx | 36 ++++++++++++++--------------- scintilla/src/Document.h | 4 ++++ scintilla/src/EditView.cxx | 2 +- scintilla/src/Editor.cxx | 23 ++++++++++++++++--- scintilla/src/MarginView.cxx | 10 ++++---- scintilla/version.txt | 2 +- 13 files changed, 126 insertions(+), 37 deletions(-) commit 3615f5a91c680e24717f0c93a29c6a94121247aa Author: Colomban Wendling Date: Sun Mar 13 14:32:44 2016 +0100 Fix a typo in NEWS NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ea94d2a9a1b582dff1e4a11c824a2bfe326ff4bf Author: Colomban Wendling Date: Sun Mar 13 14:32:20 2016 +0100 Post release version bump Say hello to Geany 1.28 "Malvek"! NEWS | 3 +++ configure.ac | 2 +- doc/geany.txt | 2 +- geany.exe.manifest | 2 +- geany_private.rc | 4 ++-- src/geany.h | 2 +- win32-config.h | 2 +- 7 files changed, 10 insertions(+), 7 deletions(-) commit 40e15c388bc835fd4aa548d4b07f4314aec08b3d Author: Colomban Wendling Date: Sun Mar 13 13:27:54 2016 +0100 Set release date NEWS | 2 +- doc/geany.1.in | 2 +- doc/geany.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 2df9512b6ff18c34fd7491b933dcbb95b099001d Author: Colomban Wendling Date: Sun Mar 13 13:25:04 2016 +0100 Update NEWS for last changes NEWS | 3 +++ 1 file changed, 3 insertions(+) commit 3c213f6d9347caf365f1ac446e63391512e6249d Author: Colomban Wendling Date: Sun Mar 13 13:19:16 2016 +0100 Update displayed copyright years doc/geany.txt | 2 +- geany_private.rc | 2 +- src/about.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 214365777d4f56aa2adf1ea353a87a6a2161f73e Merge: c344baca0 34088fbbb Author: Colomban Wendling Date: Sun Mar 13 13:10:02 2016 +0100 Merge pull request #769 from eht16/drop_waf_build_system Drop Waf build system support commit c344baca07474e6ee413446c335f62112ffc76b6 Merge: f8f0951ef 479cf3dc5 Author: Enrico Tröger Date: Sun Mar 13 12:47:53 2016 +0100 Merge pull request #959 from eht16/gtk_bundle_script Improve Windows GTK runtime bundle creation script commit f8f0951ef7289b38db1df8072bc4dee2a9eba43b Merge: 12f6ad691 38f073673 Author: Enrico Tröger Date: Sun Mar 13 12:47:04 2016 +0100 Merge pull request #961 from codebrainz/non-native-project-open Respect native dialog pref in Project->Open commit 38f073673eef2f630f8ba742521dc1669e7fb775 Author: Matthew Brush Date: Sat Mar 12 11:53:41 2016 -0800 Respect native dialog pref in Project->Open Fixes #960 src/project.c | 104 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 52 insertions(+), 52 deletions(-) commit 12f6ad69159c723bd6264e5f18b7aa58ca19438d Author: Enrico Tröger Date: Sat Mar 12 18:32:40 2016 +0100 Install and uninstall ReadMe.Dependencies.Geany.txt geany.nsi.in | 3 +++ 1 file changed, 3 insertions(+) commit 479cf3dc53494530a584d541ea507fc234e70003 Author: Enrico Tröger Date: Sat Mar 12 15:19:15 2016 +0100 Improve Windows GTK runtime bundle creation script Update the list of dependencies, include sort.exe and grep.exe, create a information file with all download links of included binaries and re-structure the script for better readability. See #560 for details. scripts/gtk-bundle-from-msys2.sh | 338 +++++++++++++++++++++++++++++---------- 1 file changed, 251 insertions(+), 87 deletions(-) commit 8254271b3373ec0e53ce2b07c206ebd6418e61fb Merge: fc811ecdc 2f5eca2cf Author: Enrico Tröger Date: Sat Mar 12 16:22:28 2016 +0100 Merge pull request #937 from eht16/win32_open_uri_error_handling Add error reporting for opening URIs on Windows commit fc811ecdc7df38d6c1ba34c6a82403bbb2053a20 Author: Frank Lanitz Date: Fri Mar 11 23:15:18 2016 +0100 Small update of German translation po/de.po | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) commit 65f84df5cae544deaf3a4ca56c7f29d8e13329d3 Author: Jiří Techet Date: Fri Mar 11 11:29:50 2016 +0100 Improve Goto Symbol popup contents * always filter-out symbol from the current line from the list * when clicked on a symbol on the current line always swap definition/declaration search even if there are more symbols from the current search direction Fixes #950 src/symbols.c | 130 ++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 71 insertions(+), 59 deletions(-) commit 7798a041b7212352f6f947fbe77a72dc6dfbf878 Author: Colomban Wendling Date: Thu Mar 10 01:06:54 2016 +0100 Update NEWS preparing for next release NEWS | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) commit c3c67c96d44009a3a1c5a9e1d70b778002d5f847 Author: Thomas Martitz Date: Sat Mar 5 21:45:22 2016 +0100 doc: Generate geany-sciwrappers-gtkdoc.h along geany-gtkdoc.h geany-sciwrappers-gtkdoc.h contains all scintilla_object_* methods. It is intended that they are going to be exposed through a separate .gir file, therefore a separate header makes things easier. This is useful when you want scintlla-related stuff in a separate .gir file or oarse it specially otherwise. gen-api-gtkdoc.py: Add switch to write out scintilla_object methods .gitignore | 1 + doc/Doxyfile.in | 3 ++- doc/Makefile.am | 11 +++++++---- scripts/gen-api-gtkdoc.py | 24 ++++++++++++++++++++++++ 4 files changed, 34 insertions(+), 5 deletions(-) commit 1e911051abb6cdc8b7fc1ee5aebfe17fbd736358 Merge: ed700a9dc d868130d7 Author: Colomban Wendling Date: Wed Mar 9 23:32:22 2016 +0100 Merge pull request #956 from kugel-/tm-gir-fix Fix and cleanup GtkDoc header generation regarding TagManager's types. commit d868130d784f3a4b615dd0f10b3bd9071c24bc21 Author: Thomas Martitz Date: Wed Mar 9 19:31:28 2016 +0100 tagmanager: make doxygen comments and typedefs gtkdoc generation friendly Because of the missing "typedef struct TMFoo" it was missing from the gtkdoc header (the struct listings are always without typedef). This is also consistent with the rest of geany. @gironly for TMParserType so it's picked up as well. doc/Doxyfile.in | 3 ++- scripts/gen-api-gtkdoc.py | 2 -- tagmanager/src/tm_parser.h | 3 +++ tagmanager/src/tm_source_file.h | 6 +++--- tagmanager/src/tm_workspace.h | 10 +++++----- 5 files changed, 13 insertions(+), 11 deletions(-) commit 4a54ee86f3a4401e76d1fa001ce2b5d4be9adca4 Author: Thomas Martitz Date: Wed Mar 9 22:19:10 2016 +0100 Include more headers into geany-gtkdoc.h gtkcompat.h is more convinient, and includes gtk.h and glib.h. Due to including ScintillaWidget.h, the manual ScintillaObject typedef isn't required anymore. scripts/gen-api-gtkdoc.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit ed700a9dc6f046a63d14c25ebb7e2877bfb1b5a6 Author: Colomban Wendling Date: Wed Mar 9 19:09:43 2016 +0100 Fix forward reference to enumeration types in GtkDoc header It's invalid to forward-declare enumerations, yet they might be referenced by typedefs. Fix this by outputting enumerations first so typedefs can references them. As enumerations can't reference other types, it's safe to place them before anything else. Closes #952. Closes #955. scripts/gen-api-gtkdoc.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit e18011fa7d9d07bf3077fbf1b4d208126591f646 Author: Frank Lanitz Date: Wed Mar 9 19:58:59 2016 +0100 Update of Portuguese translation po/pt.po | 898 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 442 insertions(+), 456 deletions(-) commit 88b7e7a991eb604aea41781098f542ec0ffb8873 Author: Frank Lanitz Date: Wed Mar 9 19:57:57 2016 +0100 Update NEWS to reflect latest po-file updates NEWS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0feba302e890503b07123959fa4cfca0ef810b25 Merge: 32be0c910 6e59ea0b7 Author: Frank Lanitz Date: Wed Mar 9 19:44:02 2016 +0100 Merge pull request #954 from scriptum/russian-translation Update of Russian translation commit 6e59ea0b706d54173141eb35f031ff4926dbae1e Author: Pavel Roschin Date: Wed Mar 9 20:21:43 2016 +0300 Update of Russian translation po/ru.po | 63 +++++++++++++++++++++++---------------------------------------- 1 file changed, 23 insertions(+), 40 deletions(-) commit 32be0c910fd13c9b0753a0d0648281ac491709c1 Merge: fe598274f c84c41e44 Author: Colomban Wendling Date: Wed Mar 9 16:09:48 2016 +0100 Merge pull request #923 from techee/typedef_goto Don't show the goto popup for typedef synonyms commit fe598274fbe09dae1de0549c6c40f5dfd10094ae Merge: eeb1d53c6 e5c11cd46 Author: Colomban Wendling Date: Wed Mar 9 16:07:48 2016 +0100 Merge pull request #947 from techee/fix_warning Use correct flag for `gtk_style_get_color()` commit e5c11cd46a2da5d45b2f01075c5a28176edbda53 Author: Jiří Techet Date: Tue Mar 8 20:40:08 2016 +0100 Use correct flag for gtk_style_get_color() src/document.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eeb1d53c6f36bcd3efab6876db5ed7f37184ef98 Merge: e13383963 77d4c208e Author: Frank Lanitz Date: Tue Mar 8 18:40:20 2016 +0100 Merge pull request #944 from peter-scholtens/master Update of Dutch translation. commit e133839633827b6908babae897bbebb663e5fdbd Merge: 6818ba6ba fa5c7ba7f Author: Frank Lanitz Date: Tue Mar 8 13:36:22 2016 +0100 Merge pull request #945 from andrej-herceg/sk-po Update of Slovak translation commit 064a2897054a685bf40f2f4fd22e99edebf88007 Author: Jiří Techet Date: Tue Mar 8 13:20:45 2016 +0100 Enable buffered draw on newer Gtk versions on OS X Buffered draw seems to be faster and with newer Gtk versions works correctly on HiDPI screens. I haven't checked precisely since which Gtk version this works (didn't work in 3.10, might have been fixed in a later version) but it isn't as important because even with 3.16 the build is highly unstable because of Gtk issues (Gtk 3.18 seems to be promising though). src/editor.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit fa5c7ba7f6eea63bbbb8cf8d84fbbf2462e2f420 Author: Andrej Herceg Date: Mon Mar 7 21:56:38 2016 +0100 Update of Slovak translation po/sk.po | 79 +++++++++++++++++++++++----------------------------------------- 1 file changed, 28 insertions(+), 51 deletions(-) commit 77d4c208eb54e1c7d0c4a2da2185124b29aaf03f Author: Benno Schulenberg Date: Mon Mar 7 19:42:21 2016 +0100 Update of Dutch translation. po/nl.po | 1364 ++++++++++++++++++++++++++++------------------------------- src/about.c | 2 +- 2 files changed, 659 insertions(+), 707 deletions(-) commit 6818ba6baf8bef4afe3b88b36b9eb2b5a8c2fcc9 Author: Colomban Wendling Date: Mon Mar 7 15:46:34 2016 +0100 Avoid NULL dereference when typing a dot in a file without tags tagmanager/src/tm_workspace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 69d7a1aa673be1710fc9b728d23425e4b29b3b79 Merge: 7ba7fa02e bef06691b Author: Colomban Wendling Date: Mon Mar 7 14:40:28 2016 +0100 Merge pull request #941 from b4n/objc/uctags-update Import Objective-C parser changes from universal-ctags commit bef06691b5545e9d51169e994e66ebb45d1077bc Author: solawing <316786359@qq.com> Date: Sun Jul 12 17:48:31 2015 +0800 objc: fix property parser won't exit bug Based on 21e74e6a019975045a7975bc611ae63f0917f976 from universal-ctags, and update the tests accordingly, thanks to @JX7P. Closes #940. X-Universal-CTags-Commit-ID: 21e74e6a019975045a7975bc611ae63f0917f976 tagmanager/ctags/objc.c | 1 + tests/ctags/objectivec_property.mm.tags | 1 + 2 files changed, 2 insertions(+) commit fec974687c70878bd7148a96eb1fa1e0cfb6716d Author: solawing <316786359@qq.com> Date: Sun Jul 12 17:35:32 2015 +0800 objc: fix property Protocol type error X-Universal-CTags-Commit-ID: 43330bfe114658726bd3926c8a48bfe1858352fa tagmanager/ctags/objc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e3d066c203c3578065767955c9effae9a97bfdc8 Author: Colomban Wendling Date: Mon May 18 20:11:49 2015 +0200 Do not generate tags for disabled kinds Closes universal-ctags/ctags#324. X-Universal-CTags-Commit-ID: 4a95e4a55f67230fc4eee91ffb31c18c422df6d3 tagmanager/ctags/objc.c | 4 ++++ 1 file changed, 4 insertions(+) commit 6180b102264fe94e58da76749a3ae8d6baecb54d Author: Masatake YAMATO Date: Wed Oct 8 01:58:56 2014 +0900 suppress the compiler warnings by adding static Signed-off-by: Masatake YAMATO X-Universal-CTags-Commit-ID: 9be84d26c1fd1653f20e9feda6a67484f7e86bd9 tagmanager/ctags/objc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 07a37727000b83a591ea9de73ee45cf235b958c0 Author: Masatake YAMATO Date: Sun Aug 3 18:22:43 2014 +0900 ObjectiveC: free memory blocks allocated at initialize method Signed-off-by: Masatake YAMATO X-Universal-CTags-Commit-ID: 882c5f8506159d77acd6c418239e33c5439bd290 tagmanager/ctags/objc.c | 1 + 1 file changed, 1 insertion(+) commit 7ba7fa02ec6fa4c77dee07ecd1af8c98dd7e0de3 Merge: c9a799bb0 ca6890a98 Author: Frank Lanitz Date: Sun Mar 6 23:59:45 2016 +0100 Merge pull request #938 from xhacker/update-translation Update zh_CN translation commit ca6890a98f4d4c5105933016654c19ef7d47b8d8 Author: 柳东原 LIU Dongyuan Date: Sun Mar 6 12:26:59 2016 -0800 Update zh_CN translation po/zh_CN.po | 67 +++++++++++++++++++++++-------------------------------------- 1 file changed, 25 insertions(+), 42 deletions(-) commit c9a799bb0c6a69a43ac690cbd78c9c464a1c6414 Author: Enrico Tröger Date: Sun Mar 6 16:50:32 2016 +0100 Windows Installer: fix documentation installation paths geany.nsi.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0556b89d08e7c8597245fe1dfb5759228cc24ffb Merge: 324764344 b0cf5f6cd Author: Colomban Wendling Date: Sun Mar 6 16:28:03 2016 +0100 Merge pull request #603 from eht16/create_php_tags_update Rewrite PHP tag creation script using up to date upstream tag definitions. commit 3247643446cc5e6a93f24c9148243e93d967a6cd Merge: b883c8237 9a854751e Author: Colomban Wendling Date: Sun Mar 6 16:26:51 2016 +0100 Merge pull request #932 from b4n/filetype_id Deprecate filetype_id. commit b883c82378d26433af923e3302d7e7b7ac49d435 Merge: 52f5b8887 6ecfb8b5a Author: Colomban Wendling Date: Sun Mar 6 16:25:59 2016 +0100 Merge pull request #933 from techee/socket_info Rename socket_info_struct to SocketInfo commit 52f5b88873c44486157cfb6127598e92f909172e Author: Enrico Tröger Date: Sun Mar 6 16:14:46 2016 +0100 Windows Installer: declare files to be reserved for faster startup This tells NSIS to place the necessary libraries at the beginning of the packed installer so the installer does not need to extract everything before it can start. geany.nsi.in | 6 ++++++ 1 file changed, 6 insertions(+) commit 2f5eca2cfd0def376e7430f8f71ce9401cf2c0e1 Author: Enrico Tröger Date: Sun Mar 6 11:16:52 2016 +0100 Add error reporting for opening URIs on Windows Before it silently failed if there was any error. Now at least a console warning is logged. src/win32.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit b0cf5f6cdad33db2256676ae59daf6c2b36807c6 Author: Enrico Tröger Date: Sat Aug 8 12:21:09 2015 +0200 Rewrite PHP tag creation script using up to date upstream tag definitions Fixes #584. data/php.tags | 14541 +++++++++++++++++++++++++++++------------- scripts/create_php_tags.php | 74 - scripts/create_php_tags.py | 105 + 3 files changed, 10227 insertions(+), 4493 deletions(-) commit 6ecfb8b5a6d688fea4d75d160535fddc658c6996 Author: Jiří Techet Date: Sat Mar 5 11:55:57 2016 +0100 Rename socket_info_struct to SocketInfo src/socket.c | 2 +- src/socket.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit c84c41e44a69727a51abebf58936b65bd80659c6 Author: Jiří Techet Date: Sat Mar 5 11:10:38 2016 +0100 Don't show the goto popup for typedef synonyms For instance when performing goto tag for Foo and Foo is defined as typedef struct Foo {} Foo; go immediately to the struct location without showing the goto popup with both the struct name and typedef. When there are more occurrences of the name, filter the list and don't show the synonyms in the popup. In addition, if the cursor is on the same line as the typedef, go to the struct and vice versa. Note the missing g_strcmp0(second->var_type, first->name) == 0 in the check - in this particular case we won't get the type to which the typedef refers inside var_type because at the time the typedef tag is generated in c.c the struct tag doesn't exist yet. On the other hand there's no second->var_type == NULL either because this behaviour seems to be rather implementation-specific and might easily change in the future. The existing checks are probably sufficient for the real-world code. src/symbols.c | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) commit 9a854751e1d5ae2be0d3714eae83111ded7c8a20 Author: Colomban Wendling Date: Fri Mar 4 23:21:23 2016 +0100 Fix GtkDoc header generation script to handle references inside typedef scripts/gen-api-gtkdoc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5858bc3c084d5a955914828c4df2e897790465fd Author: Colomban Wendling Date: Fri Mar 4 23:08:32 2016 +0100 Deprecate filetype_id in favor of GeanyFiletypeID src/filetypes.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 856ee6633f393ca9e230599570af1b06c74b9ea8 Author: Colomban Wendling Date: Fri Mar 4 23:07:04 2016 +0100 Replace filetype_id with GeanyFiletypeID Used only in static functions so no API change. src/filetypes.c | 8 ++++---- src/symbols.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) commit f4b270a60e1d825de2dcc4db9951463fe32d5914 Author: Colomban Wendling Date: Thu Mar 3 16:29:01 2016 +0100 Use the same DOCDIR on Windows than on other platforms NSIS installer changes were not tested, hopefully they'll work. Closes #928. geany.nsi.in | 7 +++---- src/utils.c | 4 ++-- wscript | 8 +++----- 3 files changed, 8 insertions(+), 11 deletions(-) commit be29bad098792298fa53901f50fd267cb5994e2e Merge: debe14549 2d88bc9a6 Author: Colomban Wendling Date: Fri Mar 4 20:06:10 2016 +0100 Merge pull request #906 from techee/scope_fallout Scope completion fallout patches commit debe14549d6c9ae488ae4fb2be20315a27d39e5d Author: Colomban Wendling Date: Thu Mar 3 15:00:15 2016 +0100 Improve API docs related to keybindings configuration file src/keybindings.c | 4 ++-- src/pluginutils.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 78c6a2ad6dfafb206024e828cb76ec3229768ab4 Author: Colomban Wendling Date: Thu Mar 3 14:46:25 2016 +0100 Fix check for GtkDoc header generation dependencies The checks itself were correct, but the logic for the final decision didn't properly handle `--enable-gtkdoc-header=auto`, which also happens to be the default. Also fix hiding error messages from Python when trying to import the `lxml` module to see whether it's available or not. Closes #929. m4/geany-gtkdoc-header.m4 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0619801b74b6d0575ee422363abd92eefa78248e Author: Frank Lanitz Date: Wed Mar 2 19:59:46 2016 +0100 Small update of German translation po/de.po | 544 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 272 insertions(+), 272 deletions(-) commit 6ba26cf1fe35375e589ef6f4e8bb290265388904 Author: Colomban Wendling Date: Tue Mar 1 22:31:47 2016 +0100 Use "symbol" instead of "tag" in comments too src/symbols.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 85f556b38118b6f5a2d11d719c519c146354ded5 Author: Colomban Wendling Date: Tue Mar 1 20:32:10 2016 +0100 Make Doxygen happy about signallist.i Doesn't alter the documentation output in anyway, but shuts Doxygen up about it not finiding the file. doc/Doxyfile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 47816339b6e14d2d365247cf899fb7dc68258b65 Merge: d7c2a3850 b70dbc44b Author: Colomban Wendling Date: Tue Mar 1 19:25:53 2016 +0100 Merge pull request #911 from b4n/deprecations Deprecations cleanup and improvement commit b70dbc44bd2973f9a08996d3fb0aee8e1ede33f7 Author: Colomban Wendling Date: Wed Feb 24 23:37:27 2016 +0100 Use our own deprecation macros This allows us to conditionally enable our deprecation warnings, like when building Geany itself or when `GEANY_DISABLE_DEPRECATION_WARNINGS` is defined. doc/Doxyfile.in | 4 ++-- src/geany.h | 8 ++++++++ src/plugindata.h | 7 ++++--- src/sciwrappers.h | 7 ++++--- src/ui_utils.h | 3 ++- 5 files changed, 20 insertions(+), 9 deletions(-) commit d7c2a38509c749329e6ea5c432758f090a246b15 Merge: 3fda6988b e9dd2269c Author: Colomban Wendling Date: Tue Mar 1 19:11:21 2016 +0100 Merge pull request #925 from techee/doxygen_warning Comment-out some options not available on older Doxygen versions commit 3fda6988b3b5b00dba25999de2cdb1540154701e Merge: d6ce561ee 44694f638 Author: Colomban Wendling Date: Tue Mar 1 18:53:08 2016 +0100 Merge pull request #890 from kugel-/gtkdoc-hdr Generated and ship a GtkDoc header suitable for GObject Introspection. commit 44694f638bb342713384965a13b6f601d1c2bd57 Author: Colomban Wendling Date: Tue Mar 1 16:37:08 2016 +0100 Remove unused classes from the GtkDoc header generation script scripts/gen-api-gtkdoc.py | 15 --------------- 1 file changed, 15 deletions(-) commit 9ce7c22ad74c0d706bf857477c421320b1c9941e Author: Colomban Wendling Date: Tue Mar 1 16:34:05 2016 +0100 Fix Doxygen generation instead of working around incorrect output Make Doxygen ignore `G_{BEGIN,END}_DECLS` and `GEANY_API_SYMBOL` itself instead of stripping those manually when parsing the XML output. This makes Doxygen parsing more robust by ignoring some odd C syntax, and also improves the HTML version removing some incorrect C code references. doc/Doxyfile.in | 3 +++ scripts/gen-api-gtkdoc.py | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) commit d6ce561eea74b9d9231efe1ac28e0df647c7211f Merge: 532c61c64 e49bca185 Author: Frank Lanitz Date: Mon Feb 29 23:13:50 2016 +0100 Merge pull request #926 from giuspen/master updated it.po commit e49bca185065c6ad59dd84ccea89da88afc5aaae Author: Giuseppe Penone Date: Mon Feb 29 21:40:20 2016 +0000 updated it.po po/it.po | 107 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 54 insertions(+), 53 deletions(-) commit e9dd2269c2a4e2306c738a6b569fa761d7826377 Author: Jiří Techet Date: Mon Feb 29 21:28:46 2016 +0100 Comment-out some options not available on older doxygen versions This eliminates some warnings with doxygen 1.8.7 on Ubuntu 14.04.4 LTS based system. The default values of these options are equal to the commented-out values so nothing should be broken by this change. doc/Doxyfile.in | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 6f79a94cec19df0099402a5e68e92f78d86aec9c Author: Colomban Wendling Date: Mon Feb 29 00:34:27 2016 +0100 Add GPL header to GtkDoc header generation script scripts/gen-api-gtkdoc.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 532c61c64c737fdfd0277116960750e2780dcdbc Author: Colomban Wendling Date: Sun Feb 28 19:49:23 2016 +0100 Small update of the French translation po/fr.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ceca962a4a130c5adeaba946d646eb5e17554a81 Merge: 49cdc2789 7fcda040a Author: Colomban Wendling Date: Sun Feb 28 19:42:34 2016 +0100 Merge pull request #547 from techee/locale_utf8 Locale/utf8 fixes commit 49cdc2789772fc3b419d9ed392b2615ad2660689 Author: Jiří Techet Date: Sun Feb 28 17:05:03 2016 +0100 Document the new symbol goto popup doc/geany.txt | 7 +++++++ 1 file changed, 7 insertions(+) commit 2d88bc9a63a57fccad4ae072faf74a914860a7cf Author: Jiří Techet Date: Sun Feb 28 16:22:45 2016 +0100 Bump GEANY_API_VERSION for langType rename src/plugindata.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e99a73ef73e4ddf1f71bffb92256a157e15979cf Author: Frank Lanitz Date: Sun Feb 28 14:18:17 2016 +0100 Update po files for string freeze for 1.27 po/ar.po | 1880 +++++++++++++++++++------------------ po/ast.po | 1892 ++++++++++++++++++++------------------ po/be.po | 1887 +++++++++++++++++++------------------ po/bg.po | 1885 +++++++++++++++++++------------------ po/ca.po | 1892 ++++++++++++++++++++------------------ po/cs.po | 1892 ++++++++++++++++++++------------------ po/de.po | 256 +++--- po/el.po | 1899 ++++++++++++++++++++------------------ po/en_GB.po | 1892 ++++++++++++++++++++------------------ po/es.po | 259 +++--- po/et.po | 1885 +++++++++++++++++++------------------ po/eu.po | 1885 +++++++++++++++++++------------------ po/fa.po | 1892 ++++++++++++++++++++------------------ po/fi.po | 1892 ++++++++++++++++++++------------------ po/fr.po | 248 ++--- po/gl.po | 1892 ++++++++++++++++++++------------------ po/he.po | 1889 +++++++++++++++++++------------------ po/hi.po | 1858 +++++++++++++++++++------------------ po/hu.po | 2962 +++++++++++++++++++++++++++++++++++------------------------ po/id.po | 2013 +++++++++++++++++++++------------------- po/it.po | 259 +++--- po/ja.po | 605 ++++++------ po/kk.po | 250 ++--- po/ko.po | 638 +++++++------ po/lb.po | 1892 ++++++++++++++++++++------------------ po/lt.po | 1896 ++++++++++++++++++++------------------ po/mn.po | 1870 +++++++++++++++++++------------------ po/nl.po | 1908 +++++++++++++++++++------------------- po/nn.po | 1865 +++++++++++++++++++------------------ po/pl.po | 1890 ++++++++++++++++++++------------------ po/pt.po | 603 ++++++------ po/pt_BR.po | 1892 ++++++++++++++++++++------------------ po/ro.po | 1891 ++++++++++++++++++++------------------ po/ru.po | 1899 ++++++++++++++++++++------------------ po/sk.po | 1945 ++++++++++++++++++++------------------- po/sl.po | 1889 +++++++++++++++++++------------------ po/sr.po | 1886 +++++++++++++++++++------------------ po/sv.po | 1888 +++++++++++++++++++------------------ po/tr.po | 1892 ++++++++++++++++++++------------------ po/uk.po | 1887 +++++++++++++++++++------------------ po/vi.po | 1894 ++++++++++++++++++++------------------ po/zh_CN.po | 1892 ++++++++++++++++++++------------------ po/zh_TW.po | 1889 +++++++++++++++++++------------------ 43 files changed, 36784 insertions(+), 33686 deletions(-) commit d44f06a8b5bf25dd569b73c6c91fab670e2b0f16 Merge: 725083ffe 8b61b9f94 Author: Colomban Wendling Date: Sun Feb 28 13:30:07 2016 +0100 Merge pull request #406 from techee/multi_tag_goto If more tags are found during tag definition/declaration goto, let the user select which one to use. commit 8b61b9f94166e32a921cf839377f0a3b6bfeec3c Author: Colomban Wendling Date: Sun Feb 28 13:27:31 2016 +0100 Mark the goto popup label as translatable for localized colons It could arguably not be translatable and only `filename:line` display, but as we have already a space on the right of the colon it's not, and allowing translation is not a problem and can give better localization. src/symbols.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 00f0ce5991098ed0533e7577c18eb5b402c6be63 Author: Colomban Wendling Date: Sun Feb 28 04:49:51 2016 +0100 PEP8 the GtkDoc header generator script a little But use 110 as line length and leave visual operators alignment alone. scripts/gen-api-gtkdoc.py | 48 ++++++++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 21 deletions(-) commit 871c562589abd587f113a773ee334bc2d0fbf47d Author: Colomban Wendling Date: Sun Feb 28 02:35:43 2016 +0100 Further improve annotations rendition in HTML output doc/Doxyfile.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit f90da20359e551a8785f35b6ed94c619fc2f9b83 Author: Colomban Wendling Date: Sun Feb 28 02:12:35 2016 +0100 Add `@nullable` annotations everywhere src/build.c | 2 +- src/dialogs.c | 8 ++++---- src/document.c | 34 +++++++++++++++++----------------- src/editor.c | 16 ++++++++-------- src/encodings.c | 4 ++-- src/filetypes.c | 4 ++-- src/keybindings.c | 4 ++-- src/pluginutils.c | 4 ++-- src/spawn.c | 38 +++++++++++++++++++------------------- src/stash.c | 2 +- src/ui_utils.c | 10 +++++----- src/utils.c | 28 ++++++++++++++-------------- 12 files changed, 77 insertions(+), 77 deletions(-) commit 1be0bc7c74606cf590c4c8a18a99a9c7daddfd1e Author: Colomban Wendling Date: Sun Feb 28 02:03:04 2016 +0100 Mark output parameters as such src/encodings.c | 2 +- src/spawn.c | 6 +++--- src/utils.c | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) commit e4bdf45cc6b293717a95038f97105c6f8b1eca16 Author: Colomban Wendling Date: Sun Feb 28 01:58:48 2016 +0100 Add support for `out` and `optional` GI annotations doc/Doxyfile.in | 2 ++ scripts/gen-api-gtkdoc.py | 2 ++ 2 files changed, 4 insertions(+) commit f69c72f4861eba9e81ed8fdc3d0d07b0a5e3b8b6 Author: Colomban Wendling Date: Sun Feb 28 01:58:04 2016 +0100 Improve HTML rendition of some annotations doc/Doxyfile.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 2b8cfb3f840a165ac7b001d9efcd23349523c78a Author: Colomban Wendling Date: Sun Feb 28 01:02:52 2016 +0100 Use `%NULL`, `%FALSE` and `%TRUE` in the GtkDoc output scripts/gen-api-gtkdoc.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit d57ca1daef98d79b9e7fbb448afcdce5ff1eb795 Author: Colomban Wendling Date: Sun Feb 28 00:03:12 2016 +0100 Fix inclusion of spurious `@`s in the GtkDoc header Apparently Doxygen doesn't like `\only` tags when not preceded by another command. But use a no-op instead of `\a`. doc/Doxyfile.in | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) commit 86cb9aeac0f3d32c6a93688dbe49039fb24f15e8 Author: Jiří Techet Date: Fri Feb 26 01:40:37 2016 +0100 Make the use of TMParserType private Or semi-private by removing the docstring. src/filetypes.h | 2 +- tagmanager/src/tm_parser.h | 4 ++++ tagmanager/src/tm_source_file.h | 2 +- tagmanager/src/tm_tag.h | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) commit 833921e6ee793d5d27a4e1ac4a9ef212676c2328 Author: Jiří Techet Date: Fri Feb 26 01:29:50 2016 +0100 Install tm_parser.h Included now in other headers and needed for successful plugin compilation. tagmanager/src/Makefile.am | 3 ++- wscript | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) commit 292383c197b72c56f44b68b14845093adfed7133 Author: Jiří Techet Date: Sat Feb 20 23:50:23 2016 +0100 Some more uses of TMParserType instead of int src/filetypes.c | 6 +++--- src/symbols.c | 4 ++-- src/symbols.h | 4 +--- tagmanager/src/tm_workspace.c | 6 +++--- tagmanager/src/tm_workspace.h | 2 +- 5 files changed, 10 insertions(+), 12 deletions(-) commit 00cb498ebcc6b73499b9c5d2991490f64a5c765e Author: Jiří Techet Date: Sat Feb 13 11:51:30 2016 +0100 Don't use ctags types inside Geany We should isolate ctags from Geany completely and use separate types. At the moment langType is shared by both Geany and ctags. For Geany redefine it as TMParserType (which was currently used as the name of the enum and was unused) and use everywhere in Geany. At the same time convert some ints to TMParserType where they denote the parser. This is strictly speaking an API change but no plugin uses langType at the moment so its renaming doesn't cause any problems. The only remaining visible ctags type is tagEntryInfo - it is however used only inside tagmanager (and can be later removed quite easily too by slightly reorganizing TM source files). src/filetypes.h | 8 ++++---- tagmanager/src/tm_parser.h | 5 +++-- tagmanager/src/tm_source_file.c | 4 ++-- tagmanager/src/tm_source_file.h | 12 +++++------- tagmanager/src/tm_tag.c | 8 ++++---- tagmanager/src/tm_tag.h | 8 ++++---- tagmanager/src/tm_workspace.c | 22 +++++++++++----------- tagmanager/src/tm_workspace.h | 6 +++--- 8 files changed, 36 insertions(+), 37 deletions(-) commit d1a5ceac424158218d585f8a34e527a537c17e5e Author: Jiří Techet Date: Sat Feb 13 02:00:30 2016 +0100 Don't pass multiple copies of identical type name to scintilla for colorization For instance for the boost library this makes the resulting string passed to scintilla 6x shorter. Because scintilla goes through this list more or less linearly for every single word in the document, this can bring significant reductions of time spent when recolorizing. src/symbols.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit cb307e5b92479ce984aff01b106b1bdad346c0e8 Author: Jiří Techet Date: Sat Feb 13 01:52:53 2016 +0100 Use the langs_compatible() function when passing typenames to scintilla This requires making the function public and tm_tag.c seems to be a better place for the function than tm_workspace so move there and add the prefix. src/symbols.c | 6 +----- tagmanager/src/tm_tag.c | 16 ++++++++++++++++ tagmanager/src/tm_tag.h | 2 ++ tagmanager/src/tm_workspace.c | 22 +++------------------- 4 files changed, 22 insertions(+), 24 deletions(-) commit 5030f7f3da945c0caeb42e090991ad362d30a743 Author: Jiří Techet Date: Sat Feb 13 01:43:35 2016 +0100 Cleanup NONE/AUTO filetype definitions At the moment the Geany code uses arbitrary combination of the following synonyms TM_PARSER_NONE / LANG_IGNORE / -2 TM_PARSER_AUTO / LANG_AUTO / -1 Especially using just the numbers makes things very confusing. In the Geany code this patch replaces all occurrences of -2 and LANG_IGNORE with TM_PARSER_NONE. It also removes LANG_IGNORE from the header which isn't needed any more. In addition, TM_PARSER_AUTO/LANG_AUTO shouldn't be used at all. We want filetype detection based on Geany's definitions and not based on the hard-coded ctags definitions. Remove it completely. Finally, as it's clearer now what the constants mean, the patch fixes the implementation of langs_compatible() (tag or file can never be of type AUTO but we should rather check for NONE filetypes which we should consider incompatible between each other). src/filetypes.c | 2 +- src/symbols.c | 4 ++-- tagmanager/src/tm_parser.h | 9 +-------- tagmanager/src/tm_source_file.c | 19 ++++++------------- tagmanager/src/tm_workspace.c | 7 ++++--- 5 files changed, 14 insertions(+), 27 deletions(-) commit 77f6e98de8e50d0b9e270c113c8ba3b2828bbe19 Author: Jiří Techet Date: Sat Jan 16 14:25:01 2016 +0100 Add scope completion for namespaces Pop up scope completion dialog for namespaces too; e.g. for boost:: show all symbols defined in the namespace. Determine whether the namespace scope completion should be used based on whether user typed a scope separator. If so, perform completion for namespaces before normal scope completion - this seems to work better e.g. for Scintilla where Scintilla:: would otherwise pop up the varible sci instead of showing everything in the namespace (might be more questionable for languages where the scope separator is identical to the dereference operator like Java's "." but we have to make some choice anyway). The performance seems to be reasonable - for the completion all tags have to be walked but after testing with big C++ projects like boost and Mozilla, the completion takes only something like 0.2s which is acceptable as the delay happens only on typing the scope completion separator and feels kind of expected. Also tested with linux kernel sources which normally lack any scope information by hacking TM a bit and injecting 10-character scope for each tag - then the completion takes something over 0.5s. src/editor.c | 12 +++++--- tagmanager/src/tm_workspace.c | 65 ++++++++++++++++++++++++++++++++----------- tagmanager/src/tm_workspace.h | 2 +- 3 files changed, 57 insertions(+), 22 deletions(-) commit b46e183cbc689ba7dd69a21d3575c863d762eea5 Author: Jiří Techet Date: Sat Feb 20 16:02:11 2016 +0100 Move the popup 1px further so it isn't below mouse pointer Otherwise the mouse pointer highlights a wrong value if the popup is large enough to extend above the mouse pointer. src/symbols.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit c8dd52eb46ec348bb05539124104db910a45c894 Author: Colomban Wendling Date: Sat Feb 20 15:35:26 2016 +0100 Position the popup at the very click position if any src/symbols.c | 54 ++++++++++++++++++++++++++---------------------------- 1 file changed, 26 insertions(+), 28 deletions(-) commit 653990c01137342d5ca1776662594fe976702992 Author: Colomban Wendling Date: Sat Feb 20 15:24:45 2016 +0100 Pass the actual event button to gtk_menu_popup() In case it's actually useful. Also properly free the GdkEvent returned by gtk_get_current_event(). src/symbols.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) commit a168f69887ce29345d6592b8df566629f014ed7f Author: Jiří Techet Date: Sat Feb 20 00:09:59 2016 +0100 Make sure the mouse cursor is out of the popup The x coordinate is now taken from the scintilla caret position. However, when performing ctrl+click, we have to distinguish two cases: 1. the click happens in the second half of a letter - in this case the caret is placed behind the letter and the popup appears behind it - no problem 2. the click happens in the first part of a letter - caret is placed before the letter and the popup appears before the position where the click happened - this means that the mouse cursor is above the popup which causes that the mouse cursor highlights the item at the position of the cursor instead of having the first item in the menu highlighted. The patch calculates offset between caret and the mouse click event position and uses this value to adjust the popup positioning so it's outside the mouse cursor. src/symbols.c | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) commit 848a123f00ba519c47af61c584fece1c5bead1e8 Author: Colomban Wendling Date: Fri Feb 19 02:30:37 2016 +0100 Improve placement of the goto tag popup src/symbols.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 3 deletions(-) commit 1f9bfdf65fd43e80975aeb8eea37a427e379785a Author: Jiří Techet Date: Thu Feb 18 22:12:56 2016 +0100 Set push_in parameter to false This behaves a bit strangely when the list is long and when clicked at the bottom of the screen (the top part of the popup is empty). src/symbols.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 61582a42f9a7acb86a2b2b79b17fb5fc80e86755 Author: Jiří Techet Date: Thu Feb 18 22:11:08 2016 +0100 Always select the first item for better keyboard manipulation Even when the user Ctrl+clicks to perform goto tag definition, it should be possible to select the item from the list using keyboard (and have the first item automatically selected so ctrl+click plus enter afterwards always gets you somewhere). src/symbols.c | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) commit 943bfa52c5f98e3adc0f8581845e492203c1218c Author: Colomban Wendling Date: Mon Feb 15 17:45:25 2016 +0100 Re-implement goto tag popup with a poped-up GtkMenu src/symbols.c | 171 +++++++++++++++++++--------------------------------------- 1 file changed, 54 insertions(+), 117 deletions(-) commit 4c0c76e6f40e0ad12fa1aac676872200b948a45b Author: Jiří Techet Date: Tue Jul 14 13:31:50 2015 +0200 If more tags are found during tag definition/declaration goto, let user select which one to use If only a single tag is found, just perform the goto. If more tags are found, show them in a popup. Try to help the user find the right file by putting the "best" tag at the first position and emphasizing it. Thanks to Colomban Wendling for various improvements of this patch. src/symbols.c | 365 ++++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 292 insertions(+), 73 deletions(-) commit 1f5355200789dbb0ff393bf7f904b053e71a64cb Author: Thomas Martitz Date: Thu Feb 25 14:50:25 2016 +0100 Undo removal of "can be NULL" remark Also remove a unecessary empty line. src/keybindings.c | 2 +- src/utils.c | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) commit 3d51d8f6a64d49ac5b223075cbee530bd678e89c Author: Thomas Martitz Date: Thu Feb 25 14:49:18 2016 +0100 GeanyFiletypeGroupID shall be gir-only src/filetypes.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 725083ffe702aa644790af11721d8845dfd2d741 Author: Colomban Wendling Date: Thu Feb 25 02:06:47 2016 +0100 Small update of the French translation NEWS | 2 +- po/fr.po | 1873 ++++++++++++++++++++++++++++++++------------------------------ 2 files changed, 957 insertions(+), 918 deletions(-) commit 17e4a604c57cf520699ebc564f2e39a3b587fb2b Author: Thomas Martitz Date: Tue Dec 15 10:28:24 2015 +0100 plugin api: export editor_set_indent_width() Plugins can now change the indentation width of an editor. Closes #903. src/editor.c | 7 +++++++ src/editor.h | 4 ++-- src/plugindata.h | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) commit 269980ca4500025e66b4297a3ff667182d197a67 Merge: 77324b5e7 9b627f4e3 Author: Colomban Wendling Date: Thu Feb 25 00:40:13 2016 +0100 Merge pull request #914 from eht16/update_doc_images Update images/screenshots in the manual for 1.27 commit 8bce6031b5260c794134e4063890a4eb9bed540c Author: Colomban Wendling Date: Wed Feb 24 23:08:48 2016 +0100 Avoid use of deprecated API from core plugins plugins/filebrowser.c | 8 ++++---- plugins/htmlchars.c | 11 ++++++----- 2 files changed, 10 insertions(+), 9 deletions(-) commit 7af832da80a52a7f75c1fed464d409810afddfab Author: Colomban Wendling Date: Wed Feb 24 23:03:35 2016 +0100 Avoid confusing Doxygen with function attributes doc/Doxyfile.in | 2 ++ 1 file changed, 2 insertions(+) commit 77324b5e7d3d76da55e43e1926178f62a23d1610 Author: Frank Lanitz Date: Wed Feb 24 22:14:49 2016 +0100 Update of German translation po/de.po | 589 +++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 309 insertions(+), 280 deletions(-) commit 409fe1a3234cf9e1fa74f81d1404fa3123e7c973 Author: Colomban Wendling Date: Wed Feb 24 20:31:58 2016 +0100 Try and avoid meaningless deprecation warnings from GLib and GTK Avoid deprecation warnings from GLib and GTK versions newer than what we currently require by default. To undo this and get all deprecation warnings back, undefine `GLIB_VERSION_MIN_REQUIRED` and `GDK_DISABLE_DEPRECATION_WARNINGS` on the command line (e.g. using `-U...` in `CFLAGS`). HACKING | 14 ++++++++++++++ configure.ac | 7 +++++++ 2 files changed, 21 insertions(+) commit 3654b8f6f17e73e8380224c7770718488ed0d345 Author: Frank Lanitz Date: Wed Feb 24 21:27:04 2016 +0100 Small update of NEWS to reflect latest translation updates NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 417a096356192b6eec9561def45bba591f3d26f0 Author: Frank Lanitz Date: Wed Feb 24 21:25:43 2016 +0100 Update of Spanish translation po/es.po | 1878 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 961 insertions(+), 917 deletions(-) commit 3b2174b3f7ab578ca5ffca8cb851a16f15b36d17 Merge: 231814ad1 95f0c6a75 Author: Frank Lanitz Date: Wed Feb 24 21:22:15 2016 +0100 Merge pull request #915 from crayxt/master Update of Kazakh translation commit 231814ad1facfa87c5f32cd603806528608a7e53 Merge: 2f55540f7 04c58ffe1 Author: Frank Lanitz Date: Wed Feb 24 21:20:14 2016 +0100 Merge pull request #909 from giuspen/master Updated language Italian commit 3973892e29e5755d8b940870c6884fdbe94dd138 Author: Colomban Wendling Date: Wed Feb 24 19:29:44 2016 +0100 Move deprecated setptr() macro inside GEANY_DISABLE_DEPRECATED guards src/utils.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 95f0c6a752946f5f7f509c799bd8f1ac756399eb Author: Baurzhan Muftakhidinov Date: Wed Feb 24 15:03:38 2016 +0500 Update of Kazakh translation po/kk.po | 1886 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 965 insertions(+), 921 deletions(-) commit 9b627f4e3a3602fa04a413fa63e04a62907e03e3 Author: Enrico Tröger Date: Tue Feb 23 01:03:57 2016 +0100 Update images/screenshots in the manual for 1.27 doc/images/build_menu_commands_dialog.png | Bin 53471 -> 58390 bytes doc/images/find_dialog.png | Bin 17199 -> 22820 bytes doc/images/find_in_files_dialog.png | Bin 25211 -> 27172 bytes doc/images/main_window.png | Bin 73968 -> 88195 bytes doc/images/pref_dialog_edit_completions.png | Bin 54063 -> 64205 bytes doc/images/pref_dialog_edit_display.png | Bin 47272 -> 56210 bytes doc/images/pref_dialog_edit_features.png | Bin 38688 -> 43978 bytes doc/images/pref_dialog_edit_indentation.png | Bin 40477 -> 47779 bytes doc/images/pref_dialog_files.png | Bin 49600 -> 56651 bytes doc/images/pref_dialog_gen_misc.png | Bin 42951 -> 49642 bytes doc/images/pref_dialog_gen_startup.png | Bin 42976 -> 45304 bytes doc/images/pref_dialog_interface_interface.png | Bin 42346 -> 53042 bytes doc/images/pref_dialog_interface_notebook.png | Bin 41551 -> 46578 bytes doc/images/pref_dialog_interface_toolbar.png | Bin 38006 -> 43424 bytes doc/images/pref_dialog_keys.png | Bin 46262 -> 50802 bytes doc/images/pref_dialog_printing.png | Bin 35005 -> 37487 bytes doc/images/pref_dialog_templ.png | Bin 41548 -> 41617 bytes doc/images/pref_dialog_tools.png | Bin 36754 -> 36071 bytes doc/images/pref_dialog_various.png | Bin 47404 -> 53035 bytes doc/images/pref_dialog_vte.png | Bin 45780 -> 51623 bytes doc/images/replace_dialog.png | Bin 21677 -> 28978 bytes 21 files changed, 0 insertions(+), 0 deletions(-) commit 756d3ce5b047a884ff248c0d15dbbbdf0bb9a5ef Author: Enrico Tröger Date: Mon Feb 22 00:57:12 2016 +0100 Allow spawn debug output also with GEANY_DEBUG And remove a trailing unnecessary newline in the debug message. src/spawn.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b22fbe734c48a62981723fc376cf13bac1ee2548 Author: Colomban Wendling Date: Sun Feb 21 02:09:45 2016 +0100 Mark deprecated API so GCC can warn about it Also suggest replacement when appropriate. src/plugindata.h | 6 +++--- src/sciwrappers.h | 6 +++--- src/ui_utils.h | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) commit b4c3d6a737ebc9a99bcd5e186c23f709bcb7aebe Author: Colomban Wendling Date: Sun Feb 21 01:57:35 2016 +0100 Move deprecated declarations inside GEANY_DISABLE_DEPRECATED guards Not all deprecated declarations were guarded this way, making it harder to catch them. src/plugindata.h | 102 ++++++++++++++++++++++++++---------------------------- src/sciwrappers.h | 8 +++-- src/ui_utils.h | 7 ++-- 3 files changed, 60 insertions(+), 57 deletions(-) commit 04c58ffe191bc5f686c57f0b6544586906635f74 Author: Giuseppe Penone Date: Sat Feb 20 21:54:15 2016 +0000 Updated language Italian po/it.po | 595 +++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 313 insertions(+), 282 deletions(-) commit 7f9129c9384e03895170ed5b0c4b70a0c995556b Author: Colomban Wendling Date: Fri Feb 19 17:51:47 2016 +0100 Mark private fields as private in the GtkDoc header scripts/gen-api-gtkdoc.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 2280ca43030646719033b6279ebfebd02a9a026d Author: Thomas Martitz Date: Sat Feb 20 22:44:13 2016 +0100 project: fix build with old glib versions src/project.h | 1 + 1 file changed, 1 insertion(+) commit 21dfbd0edf2f739379655cf32bc537de5385d919 Merge: 31b7a2d6a 2f55540f7 Author: Giuseppe Penone Date: Sat Feb 20 21:34:39 2016 +0000 Merge branch 'master' of https://github.com/geany/geany commit 91daa9f9db0b83f069388c954bf985a4436f42fa Author: Colomban Wendling Date: Fri Feb 19 00:03:30 2016 +0100 Fix handling of some GtkDoc annotations scripts/gen-api-gtkdoc.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) commit 3e9eb359ea73aa22addf1cde0f8224ae7b12a9ac Author: Colomban Wendling Date: Thu Feb 18 23:55:10 2016 +0100 Install python-lxml on Travis for the GtkDoc header generation .travis.yml | 1 + 1 file changed, 1 insertion(+) commit 66c3323afbe88c7519dd7084825d4330b201dd01 Author: Colomban Wendling Date: Thu Feb 18 23:39:43 2016 +0100 Force enable GtkDoc header on distcheck This allows to make sure this is tested, and part of the distribution.c Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 91a8bb6c6aa155085be370e9301cca324cea8914 Author: Colomban Wendling Date: Thu Feb 18 23:38:54 2016 +0100 Don't generate GtkDoc header stuff if GtkDoc header will not be built doc/Makefile.am | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) commit 240b5903be6be32b4f5050878bc0263ecee84b25 Author: Colomban Wendling Date: Thu Feb 18 23:13:49 2016 +0100 Fix distcheck We need to distribute the GtkDoc header generation script. We need not to distribute the generated header, otherwise the VPATH lookup would find the distributed one in $(srcdir) and try to update it; but touching $(srcdir) is a bad thing. Makefile.am | 1 + doc/Makefile.am | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) commit e9e2ddf581f1a510e5fdc63b78da444094912908 Author: Colomban Wendling Date: Thu Feb 18 22:51:30 2016 +0100 Add an option to control GtkDoc header generation This allows explicit activation or deactivation of the GtkDoc header generation. This might allow to e.g. force enable it on distcheck. configure.ac | 2 +- doc/Makefile.am | 2 +- m4/geany-docutils.m4 | 26 -------------------------- m4/geany-gtkdoc-header.m4 | 42 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 44 insertions(+), 28 deletions(-) commit 2f55540f75ef9b633647e745593197e93da3f6ad Merge: 4afe6a584 9b686871d Author: Colomban Wendling Date: Wed Feb 17 22:54:55 2016 +0100 Merge pull request #582 from techee/tags_are_symbols Use the word "symbol" instead of "tag" in the UI and documentation commit 9b686871dead3d2fb20d61508034ba4a7b052160 Author: Jiří Techet Date: Sun Jul 19 21:25:44 2015 +0200 Use the word "symbol" instead of "tag" in the UI and documentation For users a tag is so the naming can be confusing. The only exception where we probably shouldn't use the word symbol is the "tags file" (*.tags) containing global tags - this has already the "tags" extension and is more related to ctags and using "symbols file" is a bit strange in this case. As a result, the only places where this patch leaves the word "tag" are: * phrase "tags file(s)" * phrase "tags parser(s)" * documentation mentioning the "tags" directory * documentation mentioning the *.tags extension and of course where it means the HTML/XML markup . The rest of the uses of the word "tag" is replaced with "symbol". Documentation is updated accordingly. Fixes #579. data/geany.glade | 8 +-- doc/geany.txt | 160 +++++++++++++++++++++++++++--------------------------- src/filetypes.c | 2 +- src/keybindings.c | 4 +- src/libmain.c | 2 +- src/sidebar.c | 2 +- src/symbols.c | 10 ++-- 7 files changed, 93 insertions(+), 95 deletions(-) commit 4afe6a584ae88676ddda1b0a9506e6797bdfb7ea Author: Colomban Wendling Date: Wed Feb 17 20:33:28 2016 +0100 manual: Improve the error_regex description doc/geany.txt | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 444a18b5e14ea089dbd7f3c294f87f8f32c2d17c Author: Colomban Wendling Date: Wed Feb 17 18:49:32 2016 +0100 calltips: Allow for C++-style explicit specialization after the name Closes #496. Based on PR#496 by @DThought, thanks. src/editor.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 989e0df412956396d6f6a50fc7797e296e77014d Author: Colomban Wendling Date: Wed Feb 17 18:45:45 2016 +0100 calltips: Allow for more than one space between the brace and the word src/editor.c | 3 +++ 1 file changed, 3 insertions(+) commit d0cd11188300d3bd1c31a3923c3531897dd28fe3 Merge: 431687250 b361b8327 Author: Colomban Wendling Date: Wed Feb 17 17:37:21 2016 +0100 Merge pull request #575 from techee/colourise Colourise only the visible area when highlighting typenames commit 4316872503ca5494701bd5366294ce2875591bce Author: ZoomRmc Date: Fri Jul 31 15:43:27 2015 +0300 Rust: Updated suggested indentation defaults Indentation per official style guide: https://github.com/rust-lang/rust/blob/master/src/doc/style/style/whitespace.md Closes #595. data/filetypes.rust | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 372d7632e840652d59f53dc5174d76133859b63a Merge: 8dd775904 54613a26c Author: Colomban Wendling Date: Tue Feb 16 22:24:24 2016 +0100 Merge branch 'tsahlin/more-cc-kb' Closes #858. commit 54613a26cfc10186a6d383d1a433e2bacaa1de66 Author: Colomban Wendling Date: Mon Jan 18 18:16:09 2016 +0100 Update documentation for additional custom commands keybindings doc/geany.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 74e3dd6d1c036a37a6071a597f8cc9fd9a248ce1 Author: Thomas Sahlin Date: Fri Jan 8 10:38:12 2016 +0100 Added keybindings for custom commands 4-9 src/keybindings.c | 36 ++++++++++++++++++++++++++++++++++++ src/keybindings.h | 6 ++++++ src/tools.c | 6 ++++++ 3 files changed, 48 insertions(+) commit 607c95ed98a39e0e442ffb8cd7e936246eb451dc Author: Thomas Martitz Date: Tue Feb 16 15:50:01 2016 +0100 stash: drop @transfer annotation, not needed for boxed types src/stash.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f2ebd288b378cbd2b5e9a2318e19b5a5ed410cf6 Author: Thomas Martitz Date: Mon Feb 15 21:14:16 2016 +0100 doc: gir annotations cleanup - @skip -> @girskip - @null -> @nullable - @addtogir -> @gironly - changed internal xml representation of @cb, @cbdata, @cbfree - @girskip keybindings_set_item() too doc/Doxyfile.in | 15 +++++++-------- doc/Makefile.am | 2 +- src/editor.h | 2 +- src/keybindings.c | 7 ++++--- src/pluginutils.c | 29 +++++++++++++++-------------- src/search.h | 2 +- src/spawn.c | 3 +-- src/ui_utils.c | 10 ++++++---- src/utils.c | 4 ++-- 9 files changed, 38 insertions(+), 36 deletions(-) commit c35f29ae367c36746670a0e9b3035827235946b8 Author: Thomas Martitz Date: Mon Feb 15 17:51:32 2016 +0100 scripts: gen-api-gtkdoc.py cleanup - do not write out scintilla_object_* functions - remove scioutput file parameter - do not open output file until after xml parsing to avoid stale files - fixed simplesect handling - handle output being a pipe to head or tail scripts/gen-api-gtkdoc.py | 70 ++++++++++++++++++++++------------------------- 1 file changed, 32 insertions(+), 38 deletions(-) commit b741ea76dfb091602e6d065c8e000a635a840d62 Author: Thomas Martitz Date: Mon Feb 15 07:16:58 2016 +0100 doc: Makefile.am cleanup - split doxygen make recipe up - rename geany_includedir to geany_gtkdocincludedir - removed all references to geany-scintilla-gtkdoc.h Also, remove geany-scintilla-gtkdoc.h from .gitignore .gitignore | 1 - doc/Makefile.am | 14 +++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) commit c0bde0dbf487a9450c04472ccef10a9078e2333d Author: Matthew Brush Date: Sun Feb 7 10:35:48 2016 -0800 Add check for lxml package if Python is enabled This prevents a make-time error later if it can't be imported. lxml is considered optional so there's no build failure if Python doesn't exist or if the lxml package can't be imported. m4/geany-docutils.m4 | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 8033e2618010a5ae67e456cf39222a4ba6af8ebd Author: Matthew Brush Date: Sun Feb 7 10:08:10 2016 -0800 Remove commented-out code scripts/gen-api-gtkdoc.py | 5 ----- 1 file changed, 5 deletions(-) commit 5a391c79c3db13f8ee8e1a4279373b3652c7d4d0 Author: Matthew Brush Date: Sun Feb 7 10:06:02 2016 -0800 Replace comments and asserts with doc-comments and doc-tests scripts/gen-api-gtkdoc.py | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) commit 4f3e32e95f907b03aef4c8cffdbeee291520044c Author: Matthew Brush Date: Sun Feb 7 09:52:55 2016 -0800 Rename global "constant" to follow PEP-8 naming scripts/gen-api-gtkdoc.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 402e771c9b99a8dc22dec30948e499a6067f31ec Author: Matthew Brush Date: Sun Feb 7 09:48:29 2016 -0800 Use 4-space indentation to follow PEP-8 The other Python scripts already follow this convention. scripts/gen-api-gtkdoc.py | 720 +++++++++++++++++++++++----------------------- 1 file changed, 360 insertions(+), 360 deletions(-) commit 5534e5cca02351cecd145aed882d5cab9fae0515 Author: Matthew Brush Date: Sun Feb 7 09:46:57 2016 -0800 Move globals into main() function This prevents running a bunch of top-level code if the module is ever imported and cleans-up the global namespace. scripts/gen-api-gtkdoc.py | 175 ++++++++++++++++++++++++---------------------- 1 file changed, 90 insertions(+), 85 deletions(-) commit 5290f18916e86b1d6bc92b3a8353765708ccfdc6 Author: Matthew Brush Date: Sun Feb 7 09:42:13 2016 -0800 Exclude new generated files from VCS .gitignore | 3 +++ 1 file changed, 3 insertions(+) commit 7279037dd697143881071a3c5cd467ed0a96b9a4 Author: Thomas Martitz Date: Thu Feb 11 07:18:47 2016 +0100 project: change GeanyProject::file_patterns type to GStrv GStrv is identical to gchar ** (as per typedef) but a bit more gir friendly. This does not break the ABI or API. src/project.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8dd77590480852b9f112dce906d2c981cc664ce9 Author: Colomban Wendling Date: Sat Feb 13 18:23:10 2016 +0100 spawn: Don't truncate a NULL GString src/spawn.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit a5a976249885f43fd76f2e5fe518874b37afaa69 Author: Frank Lanitz Date: Sat Feb 13 11:42:38 2016 +0100 Update of Portuguese translation NEWS | 2 +- po/pt.po | 1798 +++++++++++++++++++++++++++++++------------------------------- 2 files changed, 904 insertions(+), 896 deletions(-) commit 64fbf3cbfe681348764bfdf8af82b76940a34162 Merge: 2c99c8827 dff861cc3 Author: Frank Lanitz Date: Fri Feb 12 23:44:01 2016 +0100 Merge pull request #883 from blogcin/trans Update Korean Translations commit 2c99c8827f463ce7abd261826a9cf1352af6020d Author: Colomban Wendling Date: Thu Feb 11 15:48:50 2016 +0100 c++: Fix a test result 748137bd1dfa648948d9d127aa3e27b6857db764 improved return types, but as this test case was added in parallel it wasn't updated as needed for the new, more correct, results. tests/ctags/cxx11-raw-strings.cpp.tags | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit a775da0714b8c7d22e7726ff274058658e6d4858 Merge: e38c7e3b6 6b2e99d06 Author: Colomban Wendling Date: Thu Feb 11 15:30:09 2016 +0100 Merge pull request #862 from techee/tm_workspace_find_cleanup3 Rewrite scope completion v3. Closes #488 and #505. commit e38c7e3b6781668269267b08893015b63765b9f0 Merge: 1438a99e1 b40d1f255 Author: Colomban Wendling Date: Thu Feb 11 15:26:32 2016 +0100 Merge pull request #879 from b4n/c/cxx11-raw-strings c++: Fix parsing of C++11 raw string literals. commit 1438a99e178ba79048df803467366af20f219001 Merge: 1d58c7faf 748137bd1 Author: Colomban Wendling Date: Thu Feb 11 15:25:49 2016 +0100 Merge pull request #889 from b4n/c/return-type C, C++, C#, D: Improve return type and var type recognition. commit 1d58c7faf8c3d10d64015c4dccfdea09e5b6f94e Author: Frank Lanitz Date: Wed Feb 10 23:02:47 2016 +0100 Update i18n on NEWS NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7344907df88a2fb3e9e7a03aeb88209c7fae123e Author: Frank Lanitz Date: Wed Feb 10 23:00:18 2016 +0100 Update of German translation po/de.po | 1582 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 799 insertions(+), 783 deletions(-) commit f413f0239559f8c095791526690d9d77d5da531b Merge: 1ca2554b3 88ca58e2d Author: Frank Lanitz Date: Mon Feb 8 20:52:23 2016 +0100 Merge pull request #898 from zygimantus/master lt translation updated commit 88ca58e2d63b8aa19943f026a468292a11f9d9b9 Author: zygimantus Date: Mon Feb 8 08:31:49 2016 +0200 lt translation updated po/lt.po | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) commit 658821d2dd89feb347f860dd3831b569b7a40164 Author: Thomas Martitz Date: Mon Aug 10 17:31:16 2015 +0200 api: add script to generate {geany,geany-scintilla}-gtkdoc.h The script reads the doxygen xml output and generates two headers (optionally a single header) that contains all of the plugin API in gtk-doc format. Two headers because it's preferrable to group Scintilla related stuff into its own namespace. This is a lot easier if g-ir-scanner can work with a separate header file. If we change minds later on the script is prepared to generate only one header. configure.ac | 1 + doc/Doxyfile.in | 3 +- doc/Makefile.am | 24 ++- m4/geany-docutils.m4 | 13 ++ scripts/gen-api-gtkdoc.py | 411 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 449 insertions(+), 3 deletions(-) commit bfa0946420d49a23caeec17af21c95b11de5a5fe Author: Thomas Martitz Date: Wed Sep 16 22:52:23 2015 +0200 doxygen: various doxygen-related fixes in preparation for gtkdoc generation doc/Doxyfile.in | 13 ++++++++++++- doc/pluginsymbols.c | 4 +++- src/document.c | 18 +++++++++--------- src/editor.c | 2 +- src/editor.h | 2 ++ src/filetypes.c | 19 +++++++++++++------ src/filetypes.h | 3 +++ src/keybindings.c | 10 +++++----- src/plugindata.h | 4 ++-- src/pluginutils.c | 16 +++++++++++----- src/search.h | 9 ++++++--- src/spawn.c | 1 + src/stash.c | 2 +- src/ui_utils.c | 29 +++++++++++++++++++---------- src/utils.c | 15 ++++++++------- tagmanager/src/tm_workspace.c | 4 ++-- 16 files changed, 98 insertions(+), 53 deletions(-) commit d8f75b7d0f325ed930aed03f8d3122279b3a3a03 Author: Thomas Martitz Date: Mon Aug 10 16:54:45 2015 +0200 doxygen: generate xml too in preparation for gtkdoc generation A script will use the xml to generate a gtkdoc'ized header of the plugin API. The xml files are also installed so that external users can use the xml that corresponds to the installed version of Geany. For now a separet doxyfile is used because the gtkdoc'ized header needs a few types to be documented which not desired to be documented generally. .gitignore | 1 + doc/Makefile.am | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) commit 1ca2554b3a4fc556eefc9dc97a6870fd2831f624 Merge: 1be0a255f 632b215f7 Author: Enrico Tröger Date: Sun Feb 7 14:27:03 2016 +0000 Merge pull request #878 from eht16/drop_obsolete_plugin_test_script Remove obsolete scripts/plugin_test.c commit 1be0a255f7d2cc591a36ff41b729b16bd1a64b5d Author: Frank Lanitz Date: Thu Jan 28 19:47:00 2016 +0100 Update of Japanese translation po/ja.po | 1691 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 849 insertions(+), 842 deletions(-) commit 6b2e99d0670ab349ec1e6f7d4f24cece6cc33720 Author: Jiří Techet Date: Wed Jan 27 01:06:56 2016 +0100 Remove scope prefix of variable types We only perform search based on variable name so if a variable is e.g. of the type std::Foo, we can drop the std:: prefix and search only for the Foo type. tagmanager/src/tm_workspace.c | 48 +++++++++++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 11 deletions(-) commit 748137bd1dfa648948d9d127aa3e27b6857db764 Author: Colomban Wendling Date: Tue Jan 26 15:52:37 2016 +0100 C, C++, C#, D: Improve return type and var type recognition This is far from perfect and contains a lot of guessing. It showed good results based on our tests cases, fixing several issues and not introducing any more issues (admittedly, after working around a subtle one regarding D static ifs). Closes #845. tagmanager/ctags/c.c | 70 ++++++++++++++++++++++++++++---- tests/ctags/Makefile.am | 1 + tests/ctags/bit_field.c.tags | 8 ++-- tests/ctags/bug1799340.cpp.tags | 6 +-- tests/ctags/bug1907083.cpp.tags | 8 ++-- tests/ctags/bug1924919.cpp.tags | 4 +- tests/ctags/c-digraphs.c.tags | 4 +- tests/ctags/c-trigraphs.c.tags | 4 +- tests/ctags/indexer.cs.tags | 2 +- tests/ctags/interface_indexers.cs.tags | 2 +- tests/ctags/keyword_const.cs.tags | 4 +- tests/ctags/keyword_virtual.cs.tags | 2 +- tests/ctags/keyword_volatile.cs.tags | 2 +- tests/ctags/simple.d.tags | 2 +- tests/ctags/var-and-return-type.cpp | 40 ++++++++++++++++++ tests/ctags/var-and-return-type.cpp.tags | 20 +++++++++ 16 files changed, 146 insertions(+), 33 deletions(-) commit 496d51210c2e3f8d83ddfdabc67c15a362c8d85c Merge: 85f16ebf7 43737733a Author: Colomban Wendling Date: Mon Jan 25 23:10:37 2016 +0100 Merge pull request #839 from kugel-/gboxed-types GBoxed types commit 85f16ebf7878374a414262b026b3aeab2057b099 Merge: a32a0d5be a032ed506 Author: Colomban Wendling Date: Mon Jan 25 23:09:17 2016 +0100 Merge pull request #874 from kugel-/sci-api-export scintilla: add scintilla_object_* to the plugin api commit b40d1f255bcfb1c58c2d038f046bd5d7777e4be2 Author: Colomban Wendling Date: Mon Jan 25 14:31:35 2016 +0100 Use explicit character literal instead of numerical value tagmanager/ctags/get.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit dff861cc36913ce31b1deac2f1b13c775cbedd2b Author: blogcin Date: Tue Jan 26 03:11:28 2016 +0900 Update Korean Translations po/ko.po | 2403 ++++++++++++++++++++++++++++---------------------------------- 1 file changed, 1092 insertions(+), 1311 deletions(-) commit a32a0d5be397711527015fd6d84113f5e0406d77 Author: Giuseppe Penone Date: Sun Jan 24 21:59:56 2016 +0000 updated language Italian po/it.po | 1516 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 764 insertions(+), 752 deletions(-) commit 31b7a2d6ad514a5d4f259a11721167786858b061 Author: Giuseppe Penone Date: Sun Jan 24 21:59:56 2016 +0000 updated language Italian po/it.po | 1516 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 764 insertions(+), 752 deletions(-) commit 5a279f0bf6cb94eccaadc8b6a947c4553ff1e634 Author: Colomban Wendling Date: Sun Jan 24 15:30:00 2016 +0100 c++: Fix parsing of prefixed C++11 raw string literals See http://en.cppreference.com/w/cpp/language/string_literal tagmanager/ctags/get.c | 6 +++++- tests/ctags/cxx11-raw-strings.cpp | 13 +++++++++++++ tests/ctags/cxx11-raw-strings.cpp.tags | 12 ++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) commit cdabbecd375be45f13b5e4f8c37053c96cd81499 Author: Colomban Wendling Date: Sun Jan 24 15:26:11 2016 +0100 read: Avoid possible NULL dereference in getNthPrevCFromInputFile() Also, don't perform subtractions to check pointer bounds, to avoid unsigned value wraparound. This is very unlikely as it would either mean a very large `nth` value or a very small value for the current line pointer, but better safe than sorry. tagmanager/ctags/read.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 67f3add7c7bed2b86769c9b86f2d6178b6daef6a Author: Colomban Wendling Date: Sun Jan 24 15:20:06 2016 +0100 read: Move logic for getting a previous character into a read function This ties related logic together, making it less of a hack and easier to maintain, as well as accessible by all parsers if needed. tagmanager/ctags/get.c | 5 +---- tagmanager/ctags/read.c | 12 ++++++++++++ tagmanager/ctags/read.h | 1 + 3 files changed, 14 insertions(+), 4 deletions(-) commit a14aa908c5f0a945f6d817a1aa46173b492193e6 Author: Colomban Wendling Date: Sat Jan 23 20:28:13 2016 +0100 c++: Fix parsing of C++11 raw string literals See http://en.cppreference.com/w/cpp/language/string_literal Closes #877. --- This contains a pretty ugly hack to fetch the previous character, in order not to get fooled by string concatenation hidden behind a macro, like in `FOUR"five"`, which is not a raw string literal but simply the identifier `FOUR` followed by the string `"five"`. While this may sound uncommon, it is not and lead to complaints [2][3] when Scintilla [1] broke this when they introduced C++11 raw string literal support themselves. The implementation here still contains a bug with line continuations: a raw literal of the form: ```c const char *str = R\ "xxx(...)xxx"; ``` is not properly recognized as such, although it's perfectly valid (yet probably very uncommon). For the record, Scintilla has also suffers from this but nobody complained about it yet. [1] http://scintilla.org/ [2] https://sourceforge.net/p/scintilla/bugs/1207/ [3] https://sourceforge.net/p/scintilla/bugs/1454/ tagmanager/ctags/c.c | 2 +- tagmanager/ctags/get.c | 92 +++++++++++++++++++++++++++++++++- tagmanager/ctags/get.h | 3 +- tests/ctags/Makefile.am | 1 + tests/ctags/cxx11-raw-strings.cpp | 21 ++++++++ tests/ctags/cxx11-raw-strings.cpp.tags | 11 ++++ 6 files changed, 127 insertions(+), 3 deletions(-) commit 632b215f776d8c561906c77711fdf993c0881e16 Author: Enrico Tröger Date: Sat Jan 23 15:29:03 2016 +0100 Remove obsolete scripts/plugin_test.c This script was used in the nightly builds to verify plugins will load and have no undefined symbol references. Since the new way plugins are built and linked, this is no longer necessary. Additionally, this script won't work with new style geany_load_module() plugins. scripts/plugin_test.c | 123 -------------------------------------------------- 1 file changed, 123 deletions(-) commit 43737733acc46eee7dff88eb922622694faba29b Author: Thomas Martitz Date: Wed Sep 16 22:42:14 2015 +0200 plugin api: convert StashGroup to GBoxed internally Because the stash_group_new() is an exported API, it has to be at least a boxed type to be usable for gobject introspection. The boxed type uses reference counting as opposed to memory duplication. The obligatory stash_group_dup() is not exported (doesn't have to). src/stash.c | 46 +++++++++++++++++++++++++++++++++------------- src/stash.h | 1 + 2 files changed, 34 insertions(+), 13 deletions(-) commit 9a38b7ac209dcf319f1b5fa97d6081b96f031b4a Author: Thomas Martitz Date: Wed Sep 16 17:02:18 2015 +0200 plugin api: convert TMSourceFile to GBoxed internally Because the tm_source_file_new() is an exported API, it has to be at least a boxed type to be usable for gobject introspection. The boxed type uses reference counting as opposed to memory duplication. The obligatory tm_source_file_dup() is not exported (doesn't have to). tagmanager/src/tm_source_file.c | 52 ++++++++++++++++++++++++++++++++++------- tagmanager/src/tm_source_file.h | 3 +++ 2 files changed, 47 insertions(+), 8 deletions(-) commit a032ed506e4847ae20093fd5fab484a704c89bf2 Author: Thomas Martitz Date: Tue Jan 19 08:13:32 2016 +0100 scintilla: add scintilla_object_* to the plugin api Analogous to their legacy counterparts. Also required for gir-bindings generated via g-ir-scanner. scintilla/gtk/ScintillaGTK.cxx | 3 +++ scintilla/scintilla_changes.patch | 28 +++++++++++++++++++++++++--- 2 files changed, 28 insertions(+), 3 deletions(-) commit c653741a3ce7ce1daf7da6cb44f3885e9ff151b5 Author: Jiří Techet Date: Tue Jan 19 00:40:06 2016 +0100 Fix member scope completion with nested members First, the search for existing type with the given scope should be done also for namespaces. Second, with the string operations we get no scope as empty string "" but the rest of TM functions expect scope to be set to NULL in such case. Fix that. tagmanager/src/tm_workspace.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f10747ae5ab668931706f864a12776662b294ee6 Author: Jiří Techet Date: Mon Jan 18 23:00:19 2016 +0100 Remove duplicate names from scope search popup There may be duplicate tag names in the list e.g. when performing namespace search and overloaded methods are found. tagmanager/src/tm_workspace.c | 3 +++ 1 file changed, 3 insertions(+) commit cd1a58f0a503f2d18592ebd77a1a7fb104e863cd Author: Jiří Techet Date: Sun Jan 10 17:42:53 2016 +0100 Use language-specific context separator instead of hard-coded "::" This makes it possible to popup scope completion dialog for more languages. src/editor.c | 25 +++++++++++-------------- tagmanager/src/tm_tag.c | 3 ++- 2 files changed, 13 insertions(+), 15 deletions(-) commit f38068f04e9514269161a884df278b0af3e5c2c3 Author: Jiří Techet Date: Thu Dec 10 16:50:32 2015 +0100 Skip typedef resolution in namespace search if not needed When we already have a struct-like type in namespace search, we don't need any extra resolution - we already have the right type. Skip the whole typedef resolution in this case. tagmanager/src/tm_workspace.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 5801844d7eb15a8de3b2dab96c50ace1ef89b75c Author: Jiří Techet Date: Wed Dec 9 16:02:20 2015 +0100 Improve anonymous type handling Make sure the anonymous types are from the same file as the variable of that type (or, when performing typedef resolution, from the same file as the typedef). On the way, simplify find_scope_members() a bit and fix some minor problems. tagmanager/src/tm_workspace.c | 78 +++++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 47 deletions(-) commit 981320c3b882ca4aa2e7af152e5513dbf985d079 Author: Jiří Techet Date: Wed Dec 9 17:25:41 2015 +0100 Skip [] when performing scope autocompletion In addition to skipping function parameters, we can also skip indexes so in something like foo[2]. we get autocompletion for foo's type members. src/editor.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 5cd573464227268a9b3c10bca1ee274340ceeaae Author: Jiří Techet Date: Wed May 27 21:49:54 2015 +0200 Minor cleanup Make the unused code compile and remove unused tm_get_current_function() (we have similar symbols_get_current_function() and there's no reason to keep it) tagmanager/src/tm_tag.c | 12 ------------ tagmanager/src/tm_workspace.c | 4 ++-- 2 files changed, 2 insertions(+), 14 deletions(-) commit ad77ee15dac78d3cc2a01e16828dfbcad33fa2d3 Author: Jiří Techet Date: Fri Jan 15 15:46:00 2016 +0100 Add a "prefix" search for non-scope autocompletion The main reason for separating m_workspace_find() into two parts is the fact that when matching only the prefix, the result may contain too many results and we need to go through all of them, return them and at the end discard most of them. For instance, when considering the linux kernel project with 2300000 tags and when autocompletion is set to be invoked after typing a single character, we get on average something like 100000 results (tag_num/alphabet_size). But from these 100000 results, we get only the first 30 which we display in the popup and discard the rest which means going through the list of the 100000 tags and comparing them for no reason. Thanks to using binary search for the start and the end of the sequence of matching tags (added in a separate patch), we can get the start of the sequence and the length of the sequence very quickly without going through it. For the prefix search we can limit the number of tags we are interested in and go through at most this number of returned tags (to be precise, times two, because we need to go both through the workspace array and global tags array and remove the extras only after sorting the two). It would be possible to combine both tm_workspace_find() and tm_workspace_find_prefix() into a single function but the result is a bit hard to read because some of the logic is used only in tm_workspace_find() and some only in tm_workspace_find_prefix() so even though there is some code duplication, I believe it's easier to understand this way. src/editor.c | 9 ++-- tagmanager/src/tm_workspace.c | 96 ++++++++++++++++++++++++++++++++----------- tagmanager/src/tm_workspace.h | 4 +- 3 files changed, 77 insertions(+), 32 deletions(-) commit 5b4c6f96b20cd309026e42c02133b28d1e0e64df Author: Jiří Techet Date: Sun May 24 21:06:55 2015 +0200 Don't use anon_struct_* and similar members unless we are sure it's the right one We can only be sure it's the right one if we previously resolved a typedef to it and the typedef was in the same file. tagmanager/src/tm_workspace.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 02105d77d74da4954dce165bba9ead31cbf5ed72 Author: Jiří Techet Date: Sat May 23 21:29:08 2015 +0200 Simplify tag type specifications in scope search Consider types with members to have the same properties everywhere (this might differ language to language but this assumption should behave reasonably for any language). Don't check member type in find_scope_members_tags() - we already check scope which should be sufficient and will work even if some language uses function/variable instead of method/member/field. tagmanager/src/tm_workspace.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) commit 67916dc4038918a940f38d08d073a9bbb4aea89b Author: Jiří Techet Date: Fri May 22 00:49:03 2015 +0200 Use only binary search to find first/last element in a row of equal tags The linear part may become expensive when there are many equal tags which can happen when partial search, used for non-scope completion, is used. tagmanager/src/tm_tag.c | 82 +++++++++++++++++++++++++++++-------------------- 1 file changed, 49 insertions(+), 33 deletions(-) commit 2682d7973f0518ccfb3806901170ff8314c311c6 Author: Jiří Techet Date: Thu May 28 16:06:24 2015 +0200 Remove anon_* elements when performing namespace search These correspond to anonymous structs, enums, etc. but they don't have any name so the name shouldn't be listed. tagmanager/src/tm_tag.c | 14 ++++++++++++++ tagmanager/src/tm_tag.h | 2 ++ tagmanager/src/tm_workspace.c | 3 ++- 3 files changed, 18 insertions(+), 1 deletion(-) commit 7a3d6a4ee1e743aec67c7a27c20ed1714f1250ea Author: Jiří Techet Date: Sat May 23 13:26:37 2015 +0200 Filter scope autocompletion list based on user input When scope autocompletion list shows, start filtering it when when the user types some more characters. As long as the list is non-empty, don't switch to normal autocompletion and show only the scope autocompletion results. src/editor.c | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 55 insertions(+), 6 deletions(-) commit 932dc71fe2edc0c58b15aface319d38855c5e612 Author: Jiří Techet Date: Sun Jan 10 12:41:59 2016 +0100 Don't use struct/class/... member types when the edited text isn't a member For instance, consider class A { int a; int b; } class B { A c; void foo() { c. //<---- (3) } } int main() { c. //<---- (1) foo.c. //<---- (2) } Consider cases (1) and (2) first - in the case (1) scope completion shouldn't be performed because c isn't a global variable; however, in case (2) it should be performed because c is a member. To fix this, we can check whether the typed variable ('c' in this case) is preceeded by another dot - if it is, use member tags for scope completion; otherwise don't use them. There's one exception from this rule - in the case (3) we are accessing a member variable from a member function at the same scope so the function should have access to the variable. For this we can use the scope at the position of the cursor. It should be B::foo in this case, more generally ...::class_name::function_name. We need to check if class_name exists at the given scope and if the member variable we are trying to access is inside ...::class_name - if so, scope completion can be performed using member tags (without explicit invocation on a member). src/editor.c | 14 ++++++- tagmanager/src/tm_workspace.c | 88 +++++++++++++++++++++++++++++++++++++------ tagmanager/src/tm_workspace.h | 2 +- 3 files changed, 91 insertions(+), 13 deletions(-) commit 99938dd821efb4b920db029a509b1a42ef86ea3c Author: Colomban Wendling Date: Mon Jan 18 04:22:26 2016 +0100 Update Scintilla to version 3.6.3 Includes improvements for Lua 5.3 and Perl 5.22. scintilla/gtk/PlatGTK.cxx | 2 +- scintilla/gtk/ScintillaGTK.cxx | 138 ++++++++++++++----------------- scintilla/include/Platform.h | 2 +- scintilla/include/Scintilla.h | 6 ++ scintilla/include/Scintilla.iface | 20 ++++- scintilla/include/ScintillaWidget.h | 27 ++++-- scintilla/lexers/LexBash.cxx | 82 +++++++++++++------ scintilla/lexers/LexCPP.cxx | 6 +- scintilla/lexers/LexCaml.cxx | 6 +- scintilla/lexers/LexCmake.cxx | 2 +- scintilla/lexers/LexLaTeX.cxx | 10 +-- scintilla/lexers/LexLua.cxx | 2 +- scintilla/lexers/LexMatlab.cxx | 10 +-- scintilla/lexers/LexPO.cxx | 32 ++++---- scintilla/lexers/LexPerl.cxx | 134 ++++++++++++++++++++++++------ scintilla/lexers/LexRust.cxx | 6 +- scintilla/lexers/LexSQL.cxx | 10 +-- scintilla/scintilla_changes.patch | 16 ++-- scintilla/src/CellBuffer.cxx | 19 +++++ scintilla/src/CellBuffer.h | 1 + scintilla/src/Document.cxx | 42 ++++++++-- scintilla/src/Document.h | 8 +- scintilla/src/EditModel.h | 2 +- scintilla/src/EditView.cxx | 21 +++-- scintilla/src/Editor.cxx | 158 +++++++++++++++++++++++++++--------- scintilla/src/Editor.h | 8 +- scintilla/src/Indicator.cxx | 2 +- scintilla/src/PerLine.cxx | 3 +- scintilla/src/ScintillaBase.cxx | 4 +- scintilla/src/UniConversion.cxx | 4 - scintilla/src/UniConversion.h | 4 + scintilla/version.txt | 2 +- 32 files changed, 528 insertions(+), 261 deletions(-) commit f3a5dd609a51cbb0921d020b32a3778e24bf52e4 Author: Daniel Șuteu Date: Tue Dec 29 10:03:06 2015 +0200 Add file-extensions for Clojure The extensions are from Wikipedia: https://en.wikipedia.org/wiki/Clojure Closes #842. data/filetype_extensions.conf | 1 + 1 file changed, 1 insertion(+) commit bfd5587f4fa15dc36fd6f42a1b68e26d3681328e Merge: 50212093b e083c8d1c Author: Colomban Wendling Date: Mon Jan 18 03:40:56 2016 +0100 Merge pull request #852 from b4n/reflow-hang Fix hang in reflow command (and small improvements around) commit 50212093babea8561792bdd14dd4f0457128067f Merge: a7ce20dc5 9365110c4 Author: Colomban Wendling Date: Mon Jan 18 03:34:02 2016 +0100 Merge pull request #831 from b4n/cuda/tags CUDA: Use C++ ctags parser commit a7ce20dc5904cea701e59615fb747eb2f3731697 Merge: 1c4a9d8dd 9f6f6cfb7 Author: Colomban Wendling Date: Mon Jan 18 03:19:15 2016 +0100 Merge pull request #826 from kugel-/doxygen-fixes2 Doxygen API fixes and cleanup. commit 9f6f6cfb78f8fce294751fa54c1a241ca803c046 Author: Thomas Martitz Date: Tue Dec 15 07:48:45 2015 +0100 gir: keybindings: adhere to user_data naming convention This helps g-ir-scanner recognizing the data parameter as context storage, allowing object methods to be used as callback (via wrappers). It goes even so far that g_object_unref is propery passed as destroy func to keybindings_set_item_full() and plugin_set_key_group_full(). src/keybindings.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1c4a9d8dd3b1c991052088aee3b7641fb54197dd Author: Colomban Wendling Date: Sun Jan 17 03:49:18 2016 +0100 C++: Fix parsing of global scope qualifiers in base class lists See also https://sourceforge.net/p/ctags/bugs/194/ I didn't use the exact upstream patch only altering the C++ code path, because as far as I know no c.c language recognize two consecutive colons separated by whitespace as a single token, so there's no point in carrying on mistakes from the past. tagmanager/ctags/c.c | 2 +- tests/ctags/bug1799343-1.cpp.tags | 5 +++-- tests/ctags/bug1799343-2.cpp.tags | 5 +++-- 3 files changed, 7 insertions(+), 5 deletions(-) commit 440a736018709e88f14e886f14766edbe5444b61 Author: Colomban Wendling Date: Sun Jan 17 03:30:06 2016 +0100 C++, C#: Properly set scope on namespaces Closes #871. tagmanager/ctags/c.c | 3 --- tests/ctags/bug1799343-2.cpp.tags | 2 +- tests/ctags/bug665086.cpp.tags | 2 +- tests/ctags/general.cs.tags | 4 ++-- tests/ctags/keyword_namespace.cs.tags | 2 +- tests/ctags/namespace.cpp.tags | 2 +- 6 files changed, 6 insertions(+), 9 deletions(-) commit 6e0d4ac6ec7153e5efcc16d3cca68afcf51f641b Merge: e7429d4cd 1ea072e12 Author: Colomban Wendling Date: Wed Jan 13 17:43:03 2016 +0100 Merge pull request #581 from techee/symbollist_sort Make it possible to define default symbol_list_sort_mode commit 740ecb00fb4313096b36939101ed9f3e4a54212e Author: Thomas Martitz Date: Tue Jan 12 07:15:54 2016 +0100 doxygen: fix doxygen warnings about filetypes_array references. src/filetypes.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 1ea072e1258057516445fcfcd392b84409d0a17b Author: Jiří Techet Date: Mon Jan 11 23:36:50 2016 +0100 Make it possible to define default symbol_list_sort_mode Both sorting by name and appearance makes sense for most languages. Some users may prefer sorting by appearance so make it configurable in preferences (the possibility to override the settings for specific filetypes is preserved). Thanks to Colomban Wendling for lots of improvements of this patch. Fixes #313. data/geany.glade | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- src/callbacks.c | 8 +++++++ src/document.c | 5 ++++- src/filetypes.c | 2 +- src/keyfile.c | 6 +++++ src/prefs.c | 3 +-- src/ui_utils.h | 1 + 7 files changed, 87 insertions(+), 6 deletions(-) commit e7429d4cdbc2a2eb09f8f9c6c9c9f0c6df7fc98a Merge: 4d4573c5d 2e1117e02 Author: Colomban Wendling Date: Mon Jan 11 00:46:54 2016 +0100 Merge branch 'gb-new' Nothing to see here, is there :) commit e0122592d95f8cd5347729c3d15c05c40094edcd Author: Jiří Techet Date: Sat May 23 15:56:18 2015 +0200 Perform scope autocompletion based on function return types We just need to skip the (...) and perform autocompletion as before. Shift pos by 1 in the whole function so we don't have to look 2 characters back (makes the function easier to read). Functions contain pointers in their return values - remove them before searching for the type. Also restrict the searched variable/function/type tags a bit only to types which make sense for the search. src/editor.c | 38 +++++++++++++++++++++++++++++--------- tagmanager/src/tm_workspace.c | 22 +++++++++++++++++++--- tagmanager/src/tm_workspace.h | 3 ++- 3 files changed, 50 insertions(+), 13 deletions(-) commit 4bc5f4a7e482d577cdbff9badf422479cb19714b Author: Jiří Techet Date: Mon May 11 12:12:36 2015 +0200 Popup scope autocompletion dialog in more cases * for PHP and Rust scope separator :: * when there's more than one whitespace between the identifier and operator src/editor.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) commit c4b1cd49381a777274897ba2613fc89758acbb0a Author: Jiří Techet Date: Sat May 23 15:13:15 2015 +0200 Perform "namespace" search (autocomplete for A:: where A is a type) In principle this is very similar to the normal scope search. If the provided name belongs to a type that can contain members (contrary to a variable in scope search), perform the namespace search. With namespace search show all possible members that are at the given scope. Since we perform the scope search at file level, don't perform the namespace search for tags that can span multiple files otherwise we get incomplete results which could be confusing to users. This involves namespaces and packages. tagmanager/src/tm_workspace.c | 58 ++++++++++++++++++++++++++----------------- 1 file changed, 35 insertions(+), 23 deletions(-) commit 1281d0c942322d99da626ad00edd6077425f2c8d Author: Jiří Techet Date: Sun May 10 21:04:20 2015 +0200 Get members from the same file as the type/struct/union Rethink how to extract members from the struct types. Inspired by the patch using the same file as the typedef to search for structs, we can do the same to extract the members only from the file containing the struct and not the whole workspace. This makes this operation fast enough so we don't have to keep the extracted members in a special array (this will become especially useful for namespace search because for it we would have to extract all tags and then the extracted array would have the same size as the workspace so we'd lose the performance gain). Since the above works only for tags having the file information, that is, not the global tags, we'll lose some performance when searching the global tags. I think people don't create the tag files for complete projects but rather for header files which contain less tags and still the performance should be better than before this patch set because we go through the global tag list only once (was twice before). On the way, clean up the source a bit, add more comments and move some code from find_scope_members() to find_scope_members_tags(). tagmanager/src/tm_workspace.c | 107 +++++++++++++++++------------------------- tagmanager/src/tm_workspace.h | 2 - 2 files changed, 42 insertions(+), 67 deletions(-) commit 30fa28bac7d8c5928dd613c34d5d833b3dfead2b Author: Jiří Techet Date: Sun May 10 12:12:55 2015 +0200 Don't use enums for scoped search Even though enums contain members, their members are accessed in a different way than members of classes and structs. E.g. consider: typedef enum {A, B, C, D} MyEnum; Variable of this type is declared as MyEnum myVar; myVar can be assigned a value from MyEnum; however, we don't access myVar over the dot operator so we don't need the list of all members after typing myVar. This patch eliminates some false positives after typing . tagmanager/src/tm_workspace.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit bf17c90bd66d17811d1a25c454af3115c14318ee Author: Jiří Techet Date: Sun May 10 11:41:04 2015 +0200 Improve tag searching for "typedef struct {...}" cases When resolving typedef, search for the subsequent type in the file where the typedef was defined. For more info see the comment in the patch. tagmanager/src/tm_workspace.c | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) commit 13755122f2c3193d6e630970ab3ec38dabe36f56 Author: Jiří Techet Date: Fri May 22 23:31:18 2015 +0200 Move symbols_get_context_separator() implementation to TM This way we can use it inside TM. src/symbols.c | 26 +------------------------- tagmanager/src/tm_tag.c | 30 ++++++++++++++++++++++++++++++ tagmanager/src/tm_tag.h | 2 ++ tagmanager/src/tm_workspace.c | 5 +---- 4 files changed, 34 insertions(+), 29 deletions(-) commit e13aac0deab9533ca5f40c170895dcee0ca807c3 Author: Jiří Techet Date: Sat May 9 20:56:15 2015 +0200 Remove unused tm_workspace_find_namespace_members() The implementation of this function is almost the same like the original m_workspace_find_scoped_members() and there's nothing interesting here we wouldn't be able to recreate trivially. tagmanager/src/tm_workspace.c | 203 ------------------------------------------ 1 file changed, 203 deletions(-) commit 809a9a7ea5e65a1500349b38afd415095d00d48e Author: Jiří Techet Date: Sat May 9 20:22:40 2015 +0200 Merge add_member() and find_scope_members_tags() By comparing the file pointer in the loop we can speed it up a bit because we can avoid the strcmp() (this function is the slowest part of the scope completion based on profiling). Also move the pointer array creation to this function and return it which is a bit cleaner. tagmanager/src/tm_workspace.c | 55 +++++++++++++++++-------------------------- 1 file changed, 22 insertions(+), 33 deletions(-) commit 8ff8cbc3a33ba920a6113a8a9cb62ea007789641 Author: Jiří Techet Date: Fri May 22 22:32:19 2015 +0200 Sane implementation of find_scope_members_tags() Disclaimer: I have absolutely no idea how the original function works. After gazing into the code for one hour, I just gave up and wrote my own version of it based on what I think the function should do but maybe I'm just missing something what justifies the original implementation's insanity. tagmanager/src/tm_workspace.c | 110 ++++-------------------------------------- 1 file changed, 10 insertions(+), 100 deletions(-) commit 140a7b6617e89dfcb31d876364d62b3902af0d3c Author: Jiří Techet Date: Sat May 9 16:46:59 2015 +0200 When extracting members, get them from single file only The previous commit fixed the situation when e.g. anon_struct_0 was in the current file by checking the current file first. In the case the struct type definition isn't found in the current file, at the moment we get all members from all anon_struct_0 which can be a really long list. This list isn't very helpful to users because all the members from all the structs are mixed. Moreover, not all possible members are in the list because there are e.g. just members from anon_struct_0 but not from anon_struct_1 etc. which from the point of view of this function is a different type. Instead, restrict the returned members to just a single file (anonymous structs have unique name per file so it means there will be just one from the file). Of course the picked file can be wrong and the returned members might be from a different struct the user wanted but at least the list will make more sense to users. tagmanager/src/tm_workspace.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) commit b6b93036f682bbc73399b3372168849d0b31fc4f Author: Jiří Techet Date: Sat May 9 16:10:06 2015 +0200 Get scope members only from corresponding tag arrays At the moment it can happen that even though a member is found in the currently edited file, the search at the end of the function finds the type inside another file. This typically happens for anonymous structs so e.g. for anon_struct_0{...} from the current file we get members from anon_struct_0{...} from all open documents plus gloabl tags. Search in an increasing "circle" - start with current file only (trying all possible types of the variable), continue with workspace array and finally, if not found, search in the global tags. src/editor.c | 31 +++---------- tagmanager/src/tm_workspace.c | 105 +++++++++++++++++++++++++++++------------- tagmanager/src/tm_workspace.h | 4 +- 3 files changed, 81 insertions(+), 59 deletions(-) commit 4d4573c5d88e1c10eff08e1bd304aa54084c48ce Merge: 28f7c169f 5620c7df3 Author: Colomban Wendling Date: Sat Jan 9 20:18:29 2016 +0100 Merge pull request #855 from techee/changelog Concatenate ChangeLog.pre-0-17 and ChangeLog.pre-1-22 commit 28f7c169fcad406fc12a5363d768bbe98789c07e Merge: 8099fddd9 9729f354e Author: Colomban Wendling Date: Sat Jan 9 20:07:23 2016 +0100 Merge pull request #652 from b4n/kb/file-properties Allow to set a keybinding for File->Properties commit 8099fddd9262be2888986a40e842b78f13dac050 Author: Colomban Wendling Date: Sat Jan 9 19:59:09 2016 +0100 Remove leftover references to SVN Closes #856. README.I18N | 2 +- configure.ac | 4 ++-- m4/geany-revision.m4 | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) commit c7bf89a46444c6d75ac89395f0663c99cd5e79d4 Author: Jiří Techet Date: Thu Jan 7 23:28:18 2016 +0100 Treat the "h" extension as a C++ file The extension is used by both C and C++ and lexing/parsing C headers with the C++ parser causes less problems (identifiers named like C++ keywords get highlighted and tags aren't generated for them) than parsing C++ headers with the C parser (parsing and lexing completely broken). data/filetype_extensions.conf | 2 +- tests/ctags/bug639639.h.tags | 2 ++ tests/ctags/extern_variable.h.tags | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) commit 5620c7df32ff98ea5e8890cb622e502395c058a9 Author: Jiří Techet Date: Wed Jan 6 21:52:46 2016 +0100 Concatenate ChangeLog.pre-0-17 and ChangeLog.pre-1-22 These files aren't updated (and probably read by anyone) any more and it's better to have less "garbage" files in the root. ChangeLog.pre-0-17 | 12806 -------------------------------------------------- ChangeLog.pre-1-22 | 12807 ++++++++++++++++++++++++++++++++++++++++++++++++++- Makefile.am | 1 - 3 files changed, 12806 insertions(+), 12808 deletions(-) commit 4a2890667e47af88212819e85061948f82788ad5 Author: Colomban Wendling Date: Wed Jan 6 14:30:03 2016 +0100 vhdl: Fix a typo This has no actual impact as the kind is not used anywhere anyway. Part of #849. tagmanager/ctags/vhdl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 001fd5c52f94f6d748155771c4df7df20e3624c6 Merge: d1fcd9f22 2df9f83bf Author: Frank Lanitz Date: Wed Jan 6 10:56:51 2016 +0100 Merge pull request #849 from BenWiederhake/master Fix a huge amount of type inside overall Geany commit 7fcda040abed69893157e6114f5570c7476d0a10 Author: Jiří Techet Date: Thu Jul 2 18:14:56 2015 +0200 Fix various utf8/locale problems in build and message window Non-ascii characters in file/directory names caused: 1. build commands didn't succeed 2. characters in the message window weren't shown in correct encoding 3. clicking on a row with error in the message window didn't open the file with error. This patch fixes these three issues. src/build.c | 32 +++++++++++++------------------- src/msgwindow.c | 35 ++++++++++++++++++++++------------- 2 files changed, 35 insertions(+), 32 deletions(-) commit e083c8d1c933aadc7b5c8892810902e99de5f752 Author: Colomban Wendling Date: Mon Jan 4 22:30:32 2016 +0100 reflow: Use plain ASCII space instead of `GDK_space` `GDK_space` is not guaranteed to have the value of an ASCII space (although it does in practice), and using a GDK constant does not make sense inside a text manipulation function. src/keybindings.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ffde79e8ef1d91dc7de3c793c34373e33e5cc9a1 Author: Colomban Wendling Date: Mon Jan 4 22:21:19 2016 +0100 reflow: Don't split right before a whitespace Avoid splitting lines right before a whitespace when reflowing (e.g. in case of several consecutive ones) not to move whitespaces at the start of the next line, which, while they will be removed later on, can lead to incorrect reflow width and even fully empty lines. Prefer leave trailing spaces then, which is less of a problem. src/keybindings.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 46ed77bf195c6bc08601b0e5a2055de2fc4b9cff Author: Colomban Wendling Date: Mon Jan 4 21:58:42 2016 +0100 reflow: Fix infinite loop on some input with many consecutive spaces Avoid triggering auto-indentation with consecutive whitespaces when reflowing, as it can lead to infinite loop if auto-indent leads to inserting full lines. Fixes #848. src/keybindings.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 2df9f83bf279ebb90e5faa0466f53e5389b49d43 Author: Ben Wiederhake Date: Sun Jan 3 18:44:00 2016 +0100 Typos overlooked by codespell tests/ctags/moniker.x68.asm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 29a6b9c003f56b0f3c428e4d514776c5a2041682 Author: Ben Wiederhake Date: Sun Jan 3 18:33:25 2016 +0100 Fix typos All of these typos were found by codespell, so credits go the the authors of this incredibly useful tool. I manually confirmed and adapted all changes, which includes reflowing over-long lines or filling up with spaces for alignment. Some of these typos may need forwarding to their original authors. codespell reported a lot words where I am unsure; I have not included those corrections. HACKING | 2 +- README.Packagers | 2 +- doc/Doxyfile.in | 2 +- doc/geany.txt | 8 ++++---- doc/plugins.dox | 8 ++++---- geany.spec.in | 2 +- scintilla/lexers/LexCaml.cxx | 6 +++--- scintilla/lexers/LexCmake.cxx | 2 +- scintilla/src/SVector.h | 2 +- src/plugindata.h | 4 ++-- src/plugins.c | 4 ++-- src/pluginutils.c | 4 ++-- tagmanager/ctags/actionscript.c | 2 +- tagmanager/ctags/c.c | 4 ++-- tagmanager/ctags/ctags.c | 2 +- tagmanager/ctags/entry.c | 2 +- tagmanager/ctags/entry.h | 2 +- tagmanager/ctags/haxe.c | 2 +- tagmanager/ctags/html.c | 2 +- tagmanager/ctags/js.c | 4 ++-- tagmanager/ctags/json.c | 2 +- tagmanager/ctags/sql.c | 4 ++-- tagmanager/src/tm_tag.c | 2 +- tagmanager/src/tm_workspace.c | 2 +- tests/ctags/3526726.tex | 16 ++++++++-------- tests/ctags/bug1111214.v | 2 +- tests/ctags/bug612019.pas | 2 +- tests/ctags/bug852368.cpp | 4 ++-- tests/ctags/jsFunc_tutorial.js | 2 +- tests/ctags/lanus.for | 2 +- tests/ctags/members.f90 | 2 +- tests/ctags/misc_types.f | 2 +- tests/ctags/moniker.x68.asm | 6 +++--- 33 files changed, 57 insertions(+), 57 deletions(-) commit 9941c2d044f088242b341c805ce83fe6af7543d0 Author: Ben Wiederhake Date: Sun Jan 3 18:01:10 2016 +0100 Fix obvious typo HACKING | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ae0fac33f4e9149f59f126257936b6b5b9261669 Author: Thomas Martitz Date: Mon Dec 21 17:47:18 2015 +0100 doxygen: undo export of some items from commit 302b40e Some types were undocumented on purpose and shall not be exported just yet. src/editor.h | 9 ++++----- src/filetypes.h | 3 --- src/search.h | 2 +- 3 files changed, 5 insertions(+), 9 deletions(-) commit d1fcd9f2269b33c5f24bb8205b61b16cd4535e4f Author: Devyn Collier Johnson Date: Sat Nov 7 21:58:16 2015 -0500 Add *.asm51 and *.a51 extensions for 8051 assembly The *.a51 extension is also used for Adobe Authorware files, but we are unlikely to ever support those. Closes #739 data/filetype_extensions.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8d643d668880b074e91487ca27056b451f6c6c4c Author: Colomban Wendling Date: Thu Nov 26 00:47:30 2015 +0100 Fix missing progress bar during build runs Restore progress bar pulsation while a build is running, as it was lost by accident in 690cb922be902f023881d455ae0c0a87d1c62170. Closes #765. src/build.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 45f531cd4b9902ec4cce8f4bcae1ae4bc56cb18d Author: Matthew Brush Date: Sun Dec 13 15:30:34 2015 -0800 Fix known memory leak in win32_show_folder_dialog() src/win32.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 9365110c4c0fa23c99cb9b79149f68f4049e342e Author: Colomban Wendling Date: Fri Dec 18 21:23:47 2015 +0100 CUDA: Use C++ ctags parser Closes #830. data/filetypes.CUDA.conf | 1 + 1 file changed, 1 insertion(+) commit 302b40e9778ff49407902f3ef9f272ed202f4547 Author: Thomas Martitz Date: Thu Dec 17 09:35:06 2015 +0100 doxygen: various doxygen-related fixes in preparation for gtkdoc generation Major changes are: - Some types were accidentally documented, even though they couldn't be accessed by any exported API functions. Those are removed (especially from encodings.h). - Some types were not documented where they should. Documentation is added for them. Members are not necessarily documented separately if names are self-explanatory. - @a XXX refers to parameters of the function, it's inappropriate for highlighting NULL (change to @c) - As per consensus, build_info is removed from GeanyData (replaced by pointer to avoid ABI break; added grep-able abi-todo tag so it doesn't get forgotten) doc/pluginsymbols.c | 14 ++++++++------ src/build.c | 4 ++-- src/build.h | 30 +++++++++++++++--------------- src/editor.c | 2 +- src/editor.h | 9 +++++---- src/encodings.h | 5 +---- src/filetypes.h | 20 ++++++++++++++------ src/keybindings.c | 4 ++-- src/plugindata.h | 2 +- src/plugins.c | 2 +- src/search.h | 2 +- src/utils.c | 20 ++++++++++---------- 12 files changed, 61 insertions(+), 53 deletions(-) commit 6098f550329bb1d9a17eafda18670645d5b7abfb Author: Thomas Martitz Date: Thu Dec 17 09:31:06 2015 +0100 encodings: move private stuff into private header encodings.h had a pretty large GEANY_PRIVATE part so it's worthwhile to separate that into its own header (as per HACKING). What's left is used by the plugin API. src/Makefile.am | 1 + src/dialogs.c | 1 + src/document.c | 1 + src/encodings.c | 1 + src/encodings.h | 70 ++--------------------------------------- src/encodingsprivate.h | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/keyfile.c | 1 + src/libmain.c | 2 +- src/prefs.c | 2 +- src/search.c | 1 + src/templates.c | 2 +- src/ui_utils.c | 2 +- 12 files changed, 96 insertions(+), 72 deletions(-) commit 402e669be1f1f9f35c4165972995a76f93f32c5a Author: Andrea Stacchiotti Date: Wed Dec 16 03:07:55 2015 +0100 Added some extra Markdown extensions data/filetype_extensions.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 34088fbbb8535539e588520756aa418934b80941 Author: Enrico Tröger Date: Sun Nov 22 23:53:12 2015 +0100 Drop Waf build system support See #768. .gitignore | 7 - HACKING | 9 +- Makefile.am | 2 - doc/geany.txt | 67 +--- doc/making-a-release | 2 +- geany.spec.in | 4 - scripts/wafinit.sh | 72 ---- waf | Bin 91846 -> 0 bytes wscript | 981 --------------------------------------------------- 9 files changed, 5 insertions(+), 1139 deletions(-) commit b361b83276816633ac5a0d6d391b6f6e8ebe6cf1 Author: Jiří Techet Date: Sat Dec 12 15:07:22 2015 +0100 Colourise only the visible area when highlighting typenames Colorizing the whole document is rather expensive and unnecessary as Scintilla colorizes the visible part of the document when scrolling happens. Instead, colorize only the visible area when highlighting typenames. src/document.c | 12 ++++++++---- src/documentprivate.h | 1 + src/editor.c | 26 +++++++++++++++++++++----- 3 files changed, 30 insertions(+), 9 deletions(-) commit 27628c0028fe15fc89e95c885d4981ce86698614 Merge: 48217703e e49093b75 Author: Colomban Wendling Date: Mon Nov 30 19:25:24 2015 +0100 Merge pull request #773 from zhekov/pointer-from-integer Fix warnings about casting pointer from/to different size integer commit 48217703e13a42dcd51a799cc00417794281eaa0 Author: Colomban Wendling Date: Wed Nov 25 20:31:48 2015 +0100 Simplify encoding menu creation loop Simplify and optimize creation of the sorted menus by taking advantage of the fact they might already be partially sorted, and that we can at least add one entry to each group in each run. This goes from 4032 runs to 882, which while definitely not optimal for adding 126 items, is probably totally good enough and don't warrant duplicating the encoding array and sort it. Though, such optimization doesn't matter as it's not what takes time in this function, which is probably rather the widgets creation. src/encodings.c | 46 ++++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 22 deletions(-) commit 8f9f9c5cf363e4b14a72211755b6e01c7bd6862d Author: Colomban Wendling Date: Wed Nov 25 19:13:59 2015 +0100 Simplify and cleanup encoding menu building Rewrite a part of `encodings_init()` to remove duplication and some hard-coded values. This gives us the item for UHC back, that was lost when adding CP932 in 9d9f40cd15ad121ff3e3fffd40073706c297f2dd, due to a missing update of the hard-coded group elements count. src/encodings.c | 98 ++++++++++++++++++++++----------------------------------- 1 file changed, 38 insertions(+), 60 deletions(-) commit e49093b75fb29ac4d0fb4b02cdce402e4feb039e Author: Dimitar Zhekov Date: Tue Nov 24 21:04:05 2015 +0200 Fix warnings about casting pointer from/to different size integer These appear under 64-bit Windows. Only the sciwrappers.c warning is potentially dangerous. For win32.c, the "handle" provides some useful information, while "lStdHandle" does not. src/sciwrappers.c | 2 +- src/win32.c | 2 +- tagmanager/src/tm_workspace.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 1a84bb6e34f00199e8659edcf53376f3b0047117 Author: Colomban Wendling Date: Sun Nov 22 00:01:06 2015 +0100 Fix the `caret_width` example in the documentation doc/geany.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1cc171aa7c38a83b606576919294d5d1a5c0cbbc Author: Colomban Wendling Date: Sat Nov 21 19:03:12 2015 +0100 Drop use of unneeded deprecated GLib API src/encodings.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aa57582a7c73f5bb01e69d2eb40626745cd2aff0 Author: Colomban Wendling Date: Sat Nov 21 19:00:47 2015 +0100 Fix build with GLib < 2.32 Closes #764. src/spawn.c | 4 ++++ 1 file changed, 4 insertions(+) commit ef0cf9cb43586fd0639d295344c1616da9057100 Author: Frank Lanitz Date: Tue Nov 17 23:12:42 2015 +0100 Update of Italian translation NEWS | 3 + po/it.po | 230 +++++++++++++++++++++++++++++++-------------------------------- 2 files changed, 117 insertions(+), 116 deletions(-) commit 8afbc7a0b6ba8ae8b3299d887c418771a2192d38 Author: Colomban Wendling Date: Mon Nov 16 19:07:40 2015 +0100 Update Scintilla to version 3.6.2 Keep scrollbar disposal changes that were backported and are not part of 3.6.2. scintilla/gtk/PlatGTK.cxx | 16 +- scintilla/gtk/ScintillaGTK.cxx | 43 ++--- scintilla/include/Scintilla.h | 1 + scintilla/include/Scintilla.iface | 1 + scintilla/lexers/LexCoffeeScript.cxx | 4 + scintilla/lexers/LexMarkdown.cxx | 2 +- scintilla/lexers/LexPO.cxx | 20 +-- scintilla/lexers/LexPascal.cxx | 54 +++--- scintilla/lexers/LexPerl.cxx | 86 ++++----- scintilla/lexers/LexPowerShell.cxx | 12 +- scintilla/lexers/LexPython.cxx | 339 ++++++++++++++++++++++++++--------- scintilla/lexers/LexR.cxx | 10 +- scintilla/lexers/LexRuby.cxx | 126 ++++++------- scintilla/lexers/LexRust.cxx | 64 +++---- scintilla/lexers/LexSQL.cxx | 44 ++--- scintilla/lexers/LexTCL.cxx | 4 +- scintilla/lexers/LexTxt2tags.cxx | 22 +-- scintilla/lexers/LexVHDL.cxx | 65 +++---- scintilla/lexers/LexVerilog.cxx | 189 ++++++++++--------- scintilla/lexers/LexYAML.cxx | 48 ++--- scintilla/scintilla_changes.patch | 2 +- scintilla/src/Document.cxx | 2 +- scintilla/src/EditView.cxx | 63 +++---- scintilla/src/Editor.cxx | 83 +++++---- scintilla/src/RESearch.cxx | 2 +- scintilla/src/Selection.cxx | 4 + scintilla/src/Selection.h | 1 + scintilla/src/ViewStyle.cxx | 51 ++++-- scintilla/src/ViewStyle.h | 6 +- scintilla/version.txt | 2 +- 30 files changed, 793 insertions(+), 573 deletions(-) commit ad354b7477dc5734933244dcde3b62bc8c5e9560 Author: Colomban Wendling Date: Sun Nov 15 14:53:01 2015 +0100 Post release version bump Say hello to Geany 1.27 "Rezer"! NEWS | 3 +++ configure.ac | 2 +- doc/geany.txt | 2 +- geany.exe.manifest | 2 +- geany_private.rc | 4 ++-- src/geany.h | 2 +- win32-config.h | 2 +- 7 files changed, 10 insertions(+), 7 deletions(-) commit b49fa9a13aee9a2d47dfcf99dbd3d54f8d4ba900 Author: Colomban Wendling Date: Sun Nov 15 12:36:15 2015 +0100 Set release date NEWS | 2 +- doc/geany.1.in | 2 +- doc/geany.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 3e151bf42bf3fdf75dc738ded46c857a0f232b4d Author: Colomban Wendling Date: Sun Nov 15 12:21:25 2015 +0100 Small NEWS udpate NEWS | 3 +++ 1 file changed, 3 insertions(+) commit 2bee7120b0fff687a7eea641fe547c76f00bcb3e Author: Colomban Wendling Date: Sun Nov 15 01:16:22 2015 +0100 Allow calls to plugin_module_make_resident() from geany_load_module() This is useful if a plugin registers i.e. GTypes from its geany_load_module(), i.e. to implement plugin functions as GObject class methods. The implementation can be considered a slight hack, but we need the module to be know already in geany_load_module(), which is called too early for the normal process to set it. Closes #719. src/plugindata.h | 1 + src/plugins.c | 4 ++++ 2 files changed, 5 insertions(+) commit 945d6b6364daaf6a82882a221adde8ce7e7375cc Merge: d1ea9ede4 3d439b4cf Author: Colomban Wendling Date: Sun Nov 15 00:19:53 2015 +0100 Merge pull request #746 from techee/scintilla_dispose Backport Scintilla patch correctly disposing scrollbars commit d1ea9ede48018b183037074aef6a1c723da9d094 Merge: c21db7d80 fa1788fe5 Author: Colomban Wendling Date: Sun Nov 15 00:11:05 2015 +0100 Merge pull request #755 from b4n/python/identifiers Update keywords and identifiers list for Python 3 Part of #748. commit fa1788fe5f93ad8a0fbbab3c5e60845ca41282a7 Author: Colomban Wendling Date: Sun Nov 15 00:03:13 2015 +0100 python: Update keywords for Python 3 data/filetypes.python | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit f12edc0299c8140cfda0cb2787464e20abd73ae9 Author: Colomban Wendling Date: Sat Nov 14 23:58:37 2015 +0100 Update keywords too from the Python identifiers update script scripts/update-python-identifiers.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 498764bcafd7f4e95567e155a3c2313790401642 Author: Colomban Wendling Date: Sat Nov 14 23:46:12 2015 +0100 Refactor the Python identifiers update script for better flexibility scripts/update-python-identifiers.sh | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) commit 301a482555cb762c88607a1fd1e1efe2a00b936a Author: Colomban Wendling Date: Thu Nov 12 17:34:10 2015 +0100 python: Update identifiers for Python 3 data/filetypes.python | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 59e13f9e446acfc901d9ff42245b1d2da964ed30 Author: Colomban Wendling Date: Thu Nov 12 17:33:13 2015 +0100 Add a script to update Python filetype's identifiers list scripts/update-python-identifiers.sh | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit 3d439b4cfc42652d923bd5b9c454fde6d3737e4a Author: Jiří Techet Date: Sat Nov 14 10:26:07 2015 +0100 Backport Scintilla patch correctly disposing scrollbars The unparent method should be called in dispose(), not in finalize(). This patch fixes that which removes some ugly warnings from OS X command line. scintilla/gtk/ScintillaGTK.cxx | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) commit c21db7d80c0ec86c5774f95616a333f7ab2f8991 Author: Colomban Wendling Date: Sun Oct 25 15:22:07 2015 +0100 Fix line end movement on display lines when EOLs are visible Closes #712. X-Scintilla-Bug-URL: http://sourceforge.net/p/scintilla/bugs/1772/ X-Scintilla-Commit-ID: 2ce775c433b4910f2fde53c4b5d89bb16b45e3eb scintilla/src/EditView.cxx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit a1145c6ef6172262248007f0bfd3645e8c363bf8 Author: Colomban Wendling Date: Sun Oct 25 21:57:36 2015 +0100 GTK: Fix autoc popup row height on GTK2 when it changes at runtime Now the popup is cached the row height has to be re-computed when the font changes on GTK2 too. Mostly closes #702. X-Scintilla-Bug-URL: http://sourceforge.net/p/scintilla/bugs/1774/ X-Scintilla-Commit-ID: 547de78f2477e16b0d7241a217a1ead83a14c42b scintilla/gtk/PlatGTK.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 43e13e61bf0e80aef284a1605e0d7e6d92da4667 Author: Colomban Wendling Date: Thu Nov 12 15:08:41 2015 +0100 Mention autogen.sh in README Closes #747. README | 3 +++ 1 file changed, 3 insertions(+) commit 1af507c3f5d325c6e732024857db90affa76aa14 Author: Frank Lanitz Date: Wed Nov 11 19:23:56 2015 +0100 Update of Hungarian translation NEWS | 2 +- po/hu.po | 1172 +++++++++++++++++--------------------------------------------- 2 files changed, 319 insertions(+), 855 deletions(-) commit d7a7c130271cfbf6e840e880849a1ac306a0053e Merge: 1569fc8a7 7b5e9a93c Author: Frank Lanitz Date: Tue Nov 10 22:30:10 2015 +0100 Merge pull request #741 from eht16/waf_deprecation_notice Add a deprecation notice when using the Waf build system commit 1569fc8a7642f85f53aaa8eb3fbdbe1b19938d24 Author: Frank Lanitz Date: Mon Nov 9 23:30:08 2015 +0100 Add Slovak and Indonesian translations updates to NEWS NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e2ab39006f1bbc9d74a87c4c9de997ea1f458eb4 Merge: 7844ecc61 101903eba Author: Frank Lanitz Date: Mon Nov 9 23:26:40 2015 +0100 Merge pull request #743 from andrej-herceg/sk-po Update of Slovak translation commit 101903ebab811f299d848a8bdfd10c21948dec9e Author: Andrej Herceg Date: Mon Nov 9 15:58:11 2015 +0100 Update of Slovak translation po/sk.po | 1510 ++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 730 insertions(+), 780 deletions(-) commit 7844ecc61dfad142576ef21cb1e5b14d6c42932d Author: Colomban Wendling Date: Mon Nov 9 13:48:24 2015 +0100 Update NEWS NEWS | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) commit 1ce1b600d4a56153c31b6b10ee9909d188a711e8 Merge: a42230539 44a4c8024 Author: Frank Lanitz Date: Mon Nov 9 08:20:45 2015 +0100 Merge pull request #740 from samsulmaarif/master Indonesian translation update commit 7b5e9a93cb99fe601a75bb36eddf7db84eb84611 Author: Enrico Tröger Date: Sun Nov 8 23:46:49 2015 +0100 Add a deprecation notice when using the Waf build system As Waf is to be dropped after the 1.26 release, inform the user to better use the Autotools build system. wscript | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 44a4c8024d3ef89905e15d50b8602f03753f757b Author: Samsul Ma'arif Date: Sun Nov 8 22:33:53 2015 +0700 Indonesian Translation update Signed-off-by: Samsul Ma'arif po/id.po | 567 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 280 insertions(+), 287 deletions(-) commit a42230539c8a33b0b7b3484b3041b17fe6b1f70d Author: Frank Lanitz Date: Sat Nov 7 23:23:22 2015 +0100 Small update of NEWS NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ee2809f92a4adb4d314f73eb3cb43303ad0d59fd Merge: 19e98669f 6c9673874 Author: Samsul Ma'arif Date: Sun Nov 8 18:02:25 2015 +0700 Merge pull request #1 from geany/master Update from geany/geany commit 6c96738740f0241ccf2ec67762af6f25cf0bde87 Merge: bc21947d3 ac4864490 Author: Frank Lanitz Date: Sat Nov 7 23:30:35 2015 +0100 Merge pull request #731 from DevynCJohnson/patch-4 Update filetype_extensions.conf commit bc21947d3d3b401684760da7eb24b34c0cdd1fba Merge: 756d4abdb 5c72d5409 Author: Frank Lanitz Date: Sat Nov 7 23:20:07 2015 +0100 Merge pull request #736 from scriptum/rpg-translate-ru Update of Russian translation commit 5c72d5409080a292275b47696e5ee392577c4fbe Author: Pavel Roschin Date: Sun Nov 8 01:05:12 2015 +0300 Update of Russian translation po/ru.po | 63 +++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 33 insertions(+), 30 deletions(-) commit 756d4abdb2155271a28a53835433dd021cb8998a Merge: 01ed8c7c0 3b884b919 Author: Frank Lanitz Date: Thu Nov 5 09:53:05 2015 +0100 Merge pull request #733 from peter-scholtens/master After update of ./waf updatepo commit 01ed8c7c01e4546d1162c152383862ae995b9996 Merge: 38f827d08 ccead15b2 Author: Frank Lanitz Date: Thu Nov 5 08:12:46 2015 +0100 Merge pull request #735 from crayxt/patch-1 Fix missing accelerator mark in Kazakh translation commit ccead15b22409c5cf3cbaa8ce8f9bb8cbd15cb17 Author: Baurzhan Muftakhidinov Date: Thu Nov 5 07:06:16 2015 +0500 Fix missing accelerator mark in Kazakh translation po/kk.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3b884b9190b2d081f43c74950e62d19594ea8f2e Merge: 2d2445152 38f827d08 Author: Peter C. S. Scholtens Date: Wed Nov 4 22:16:02 2015 +0100 Merge branch 'master' of git://github.com/geany/geany commit 38f827d0870c27b7dc7675eda69031da6508ffee Merge: 6efa9bff5 60bda5462 Author: Colomban Wendling Date: Wed Nov 4 21:58:39 2015 +0100 Merge pull request #533 from techee/doc_changed Force disk status document check in some specific cases commit 2d2445152e3bfbb5fed310be194e4dc24eff4111 Author: Peter C. S. Scholtens Date: Wed Nov 4 21:47:36 2015 +0100 After update of ./waf updatepo po/nl.po | 90 +++++++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 52 insertions(+), 38 deletions(-) commit 60bda546264af1efc863cd3a264e9a24cb7bea1a Author: Jiří Techet Date: Wed Jun 24 16:17:16 2015 +0200 Check whether the current document changed when Geany window activated This captures the common case when e.g. changing the document outside Geany and switching back to Geany. Remove the osx-specific code doing the same for osx only. src/libmain.c | 10 ++++++++++ src/osx.c | 10 ---------- 2 files changed, 10 insertions(+), 10 deletions(-) commit 2f59aa4a9a124f88336c284fd488cf1acce94c94 Author: Jiří Techet Date: Wed Jun 24 15:25:09 2015 +0200 Force-check document disk status when switching tabs The document_check_disk_status() guarantees that there's no check performed when switching pages using Ctrl+Tab - remove the outdated comment and idle call and perform force-check. src/callbacks.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) commit 6efa9bff526fcf857cd26fe5ac7512c8a157cc4e Author: Colomban Wendling Date: Wed Nov 4 18:27:04 2015 +0100 French translation update NEWS | 2 +- po/fr.po | 60 ++++++++++++++++++++++++++++++------------------------------ 2 files changed, 31 insertions(+), 31 deletions(-) commit 757de2012643db081e016e7aa6532209f0bceb51 Author: Frank Lanitz Date: Wed Nov 4 18:15:50 2015 +0100 Update of Greek translation po/el.po | 75 +++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 36 insertions(+), 39 deletions(-) commit 84a3e3c275542a680c96bf03b921328b90688883 Author: Frank Lanitz Date: Wed Nov 4 18:09:12 2015 +0100 Update of Kazzakh translation NEWS | 2 +- po/kk.po | 195 ++++++++++++++++++++++++++++++++------------------------------- 2 files changed, 101 insertions(+), 96 deletions(-) commit 5beeacf26716c0571e7b6f8f042f8faa3c147f2d Author: Frank Lanitz Date: Wed Nov 4 18:02:09 2015 +0100 Update of Spanish translation NEWS | 2 +- po/es.po | 84 +++++++++++++++++++++++++++++++--------------------------------- 2 files changed, 42 insertions(+), 44 deletions(-) commit 10f7cb24b26d1a62cdf4851788e4363efacb1b78 Author: Jiří Techet Date: Wed Nov 4 12:50:57 2015 +0100 Avoid possible invalid memory access when activating plugin It may happen (and happens on OS X) that plugin activation using plugin_new() triggers some action which causes the tree view to update. However, as the old plugin was freed before, the tree view contains an invalid pointer to p which causes invalid memory access. After freeing the old pointer, set the tree view value to NULL - the plugin pointer is checked at other places for NULL value so it doesn't crash. src/plugins.c | 3 +++ 1 file changed, 3 insertions(+) commit 23323f53779ae54c8a9349bc4b1e0e48ac4acb5f Author: Dimitar Zhekov Date: Sun Nov 1 20:23:35 2015 +0200 Cast windows HANDLE to intptr_t, not long The cast in g_warning is not fixed. It's unimportant, displaying a handle value does not provide any meaningful information anyway. Closes #727. src/win32.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ac486449046338e81f0d8a3e8d9c8e0e5651c47f Author: Devyn Collier Johnson Date: Tue Nov 3 10:38:43 2015 -0500 Update filetype_extensions.conf Changes - Ensured consistency by ending every line with a semicolon - Added two MathML file-extensions (*.mml and *.mathml;) to "XML=" Justification for proposed changes - Code consistency is important in programming - MathML is a form of XML that is commonly used and is part of the HTML5 standard - W3 MathML Specification: http://www.w3.org/TR/MathML3/ - Geany properly highlights the code when the MathML file-extension is recognized data/filetype_extensions.conf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit a11e43e22a1086308eb4473ad7389302de0e24e2 Author: Frank Lanitz Date: Tue Nov 3 08:15:45 2015 +0100 Update of Portuguese translation po/pt.po | 88 +++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 43 insertions(+), 45 deletions(-) commit 64cb6aff946474518118e38cb420bc98184f1ffc Merge: a68df6ef4 ad77aed36 Author: Frank Lanitz Date: Tue Nov 3 07:53:29 2015 +0100 Merge pull request #729 from xhacker/zh_CN Update zh_CN.po commit a68df6ef4f29cf05bbdba07002949058f7d18bfe Merge: d4f3ff6eb 17892335c Author: Frank Lanitz Date: Tue Nov 3 07:53:08 2015 +0100 Merge pull request #730 from peter-scholtens/master Update of Dutch translation. commit 17892335c4a7aae792e68974ec3c4ead3da05373 Author: Peter C. S. Scholtens Date: Mon Nov 2 23:15:28 2015 +0100 Update of Dutch translation. po/nl.po | 136 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 67 insertions(+), 69 deletions(-) commit ad77aed367d23b0a8bdfbe63e1f9b20bbc4da2ec Author: LIU Dongyuan / 柳东原 Date: Mon Nov 2 12:52:27 2015 -0800 Update zh_CN.po po/zh_CN.po | 62 +++++++++++++++++++++++++++++-------------------------------- 1 file changed, 29 insertions(+), 33 deletions(-) commit d4f3ff6eb44c6f4e890beb5ecc35528f5b8eaeb6 Author: Frank Lanitz Date: Sun Nov 1 19:21:00 2015 +0100 Another small update of German translation po/de.po | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 9734acdbc1e059d4bebb897c7b80563080d41ead Author: Frank Lanitz Date: Sun Nov 1 19:18:59 2015 +0100 Update of German translation po/de.po | 41 +++++++++++++++-------------------------- 1 file changed, 15 insertions(+), 26 deletions(-) commit 8934d32ab20e70556d535515fd2f4abcf81a6fa4 Author: Frank Lanitz Date: Sun Nov 1 19:04:21 2015 +0100 Another update of po files as a merge changed some strings po/ar.po | 102 ++++++++++++++++++++++++++++++-------------- po/ast.po | 118 ++++++++++++++++++++++++++++++++++++--------------- po/be.po | 115 +++++++++++++++++++++++++++++++++++--------------- po/bg.po | 121 +++++++++++++++++++++++++++++++++++++--------------- po/ca.po | 117 +++++++++++++++++++++++++++++++++++---------------- po/cs.po | 116 +++++++++++++++++++++++++++++++++++--------------- po/de.po | 138 ++++++++++++++++++++++++++++++++++++++++++------------------ po/el.po | 125 ++++++++++++++++++++++++++++++++++++++---------------- po/en_GB.po | 111 +++++++++++++++++++++++++++++++++--------------- po/es.po | 124 ++++++++++++++++++++++++++++++++++++++---------------- po/et.po | 90 ++++++++++++++++++++++++++++----------- po/eu.po | 97 +++++++++++++++++++++++++++++++----------- po/fa.po | 111 +++++++++++++++++++++++++++++++++--------------- po/fi.po | 106 ++++++++++++++++++++++++++++++++-------------- po/fr.po | 130 +++++++++++++++++++++++++++++++++++++++----------------- po/gl.po | 118 ++++++++++++++++++++++++++++++++++++--------------- po/he.po | 106 ++++++++++++++++++++++++++++++++-------------- po/hi.po | 79 ++++++++++++++++++++++++---------- po/hu.po | 118 ++++++++++++++++++++++++++++++++++++--------------- po/id.po | 123 +++++++++++++++++++++++++++++++++++++---------------- po/it.po | 118 ++++++++++++++++++++++++++++++++++++--------------- po/ja.po | 110 +++++++++++++++++++++++++++++++++--------------- po/kk.po | 118 ++++++++++++++++++++++++++++++++++++--------------- po/ko.po | 110 +++++++++++++++++++++++++++++++++--------------- po/lb.po | 118 ++++++++++++++++++++++++++++++++++++--------------- po/lt.po | 106 ++++++++++++++++++++++++++++++++-------------- po/mn.po | 108 +++++++++++++++++++++++++++++++++-------------- po/nl.po | 118 ++++++++++++++++++++++++++++++++++++--------------- po/nn.po | 79 ++++++++++++++++++++++++---------- po/pl.po | 118 ++++++++++++++++++++++++++++++++++++--------------- po/pt.po | 124 ++++++++++++++++++++++++++++++++++++++---------------- po/pt_BR.po | 122 +++++++++++++++++++++++++++++++++++++---------------- po/ro.po | 118 ++++++++++++++++++++++++++++++++++++--------------- po/ru.po | 115 +++++++++++++++++++++++++++++++++++--------------- po/sk.po | 118 ++++++++++++++++++++++++++++++++++++--------------- po/sl.po | 107 ++++++++++++++++++++++++++++++++-------------- po/sr.po | 119 ++++++++++++++++++++++++++++++++++++--------------- po/sv.po | 119 +++++++++++++++++++++++++++++++++++---------------- po/tr.po | 116 +++++++++++++++++++++++++++++++++++--------------- po/uk.po | 112 ++++++++++++++++++++++++++++++++++-------------- po/vi.po | 118 ++++++++++++++++++++++++++++++++++++--------------- po/zh_CN.po | 108 +++++++++++++++++++++++++++++++++-------------- po/zh_TW.po | 106 ++++++++++++++++++++++++++++++++-------------- 43 files changed, 3452 insertions(+), 1418 deletions(-) commit b317da6a0d83a1c51c6f77f2c8bc184928ff3b99 Merge: fa0a034d9 639083095 Author: Colomban Wendling Date: Sun Nov 1 19:01:54 2015 +0100 Merge pull request #701 from zhekov/improve-spawning-errors Alter spawn to return the error message only in error->message Closes #541. commit fa0a034d97caf250c25a40ef7f78a54f455ddb80 Author: Frank Lanitz Date: Sun Nov 1 18:58:14 2015 +0100 Update of German translation NEWS | 2 +- po/de.po | 22 ++++++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) commit 7a8140b76ac5f24a4e51d46cd5c50ac70571bdfe Author: Frank Lanitz Date: Sun Nov 1 17:46:28 2015 +0100 Update po files for string freeze for 1.26 po/ar.po | 878 ++++++++++++++++++++++++++++++----------------------------- po/ast.po | 878 ++++++++++++++++++++++++++++++----------------------------- po/be.po | 826 +++++++++++++++++++++++++++++--------------------------- po/bg.po | 878 ++++++++++++++++++++++++++++++----------------------------- po/ca.po | 880 ++++++++++++++++++++++++++++++----------------------------- po/cs.po | 880 ++++++++++++++++++++++++++++++----------------------------- po/de.po | 866 ++++++++++++++++++++++++++++++---------------------------- po/en_GB.po | 878 ++++++++++++++++++++++++++++++----------------------------- po/es.po | 868 ++++++++++++++++++++++++++++++---------------------------- po/et.po | 879 ++++++++++++++++++++++++++++++----------------------------- po/eu.po | 879 ++++++++++++++++++++++++++++++----------------------------- po/fa.po | 878 ++++++++++++++++++++++++++++++----------------------------- po/fi.po | 879 ++++++++++++++++++++++++++++++----------------------------- po/fr.po | 462 ++++++++++++++++--------------- po/gl.po | 880 ++++++++++++++++++++++++++++++----------------------------- po/he.po | 880 ++++++++++++++++++++++++++++++----------------------------- po/hi.po | 876 ++++++++++++++++++++++++++++++----------------------------- po/hu.po | 880 ++++++++++++++++++++++++++++++----------------------------- po/id.po | 880 ++++++++++++++++++++++++++++++----------------------------- po/it.po | 880 ++++++++++++++++++++++++++++++----------------------------- po/ja.po | 880 ++++++++++++++++++++++++++++++----------------------------- po/kk.po | 879 ++++++++++++++++++++++++++++++----------------------------- po/ko.po | 878 ++++++++++++++++++++++++++++++----------------------------- po/lb.po | 878 ++++++++++++++++++++++++++++++----------------------------- po/lt.po | 880 ++++++++++++++++++++++++++++++----------------------------- po/mn.po | 878 ++++++++++++++++++++++++++++++----------------------------- po/nl.po | 879 ++++++++++++++++++++++++++++++----------------------------- po/nn.po | 877 ++++++++++++++++++++++++++++++----------------------------- po/pl.po | 879 ++++++++++++++++++++++++++++++----------------------------- po/pt.po | 79 +++--- po/pt_BR.po | 880 ++++++++++++++++++++++++++++++----------------------------- po/ro.po | 878 ++++++++++++++++++++++++++++++----------------------------- po/ru.po | 883 +++++++++++++++++++++++++++++++----------------------------- po/sk.po | 880 ++++++++++++++++++++++++++++++----------------------------- po/sl.po | 881 ++++++++++++++++++++++++++++++----------------------------- po/sr.po | 879 ++++++++++++++++++++++++++++++----------------------------- po/sv.po | 880 ++++++++++++++++++++++++++++++----------------------------- po/tr.po | 880 ++++++++++++++++++++++++++++++----------------------------- po/uk.po | 878 ++++++++++++++++++++++++++++++----------------------------- po/vi.po | 878 ++++++++++++++++++++++++++++++----------------------------- po/zh_CN.po | 826 +++++++++++++++++++++++++++++--------------------------- po/zh_TW.po | 878 ++++++++++++++++++++++++++++++----------------------------- 42 files changed, 18426 insertions(+), 17147 deletions(-) commit d3ca4299e77c7b395f68e3e70ec351f98f173407 Author: Frank Lanitz Date: Sun Nov 1 17:42:28 2015 +0100 Update of Greek translation po/el.po | 465 +++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 246 insertions(+), 219 deletions(-) commit 63908309533731ecdd8865e4cf118db1005e1bb4 Author: Dimitar Zhekov Date: Sun Nov 1 16:19:40 2015 +0200 Fix custom command spawning error message They are configured in Custom Commands, not Preferences. Also fix the duplicated g_error_free(). src/tools.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit a99454f4a0b740085bd5a5974aab8e5b12615db3 Author: Dimitar Zhekov Date: Sun Nov 1 16:00:03 2015 +0200 Clarify the template command spawning message src/templates.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ca76d87cac33d59c0b726a4f47d47b7948aca55e Author: Dimitar Zhekov Date: Sun Nov 1 15:34:26 2015 +0200 Fix context action spawning error message Properly display what configuration should be checked, and show the entire command line on parsing error. src/callbacks.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit f50a1a9fc4b3b83e2caf0a55f7d2400582b31ec7 Merge: e44e00afe 9b458b9fd Author: elextr Date: Sat Oct 31 11:47:43 2015 +1000 Merge pull request #672 from kugel-/reload-docmsg document: show informational doc message after first reload Closes #562 commit 9b458b9fd5332570e9d94a21059180dbaa2d8fd4 Author: Thomas Martitz Date: Fri Oct 30 15:27:52 2015 +0100 document: Revert 6f5d5db and d6d4728 Now that there is a proper user indication for the "maintain history on reload" feature we can toggle it on by default. The setting is also renamed so that the default is effective for everyone (this was the plan). doc/geany.txt | 2 +- src/keyfile.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit b1e9c4f3b6655517f0ebf6eccabfc75cd7090f96 Author: Thomas Martitz Date: Fri Jun 26 11:55:23 2015 +0200 document: show informational doc message after first reload 6f5d5db and d6d4728 disabled "maintain history on reload" by default, with the intention to reenable it when we have a better method to make it discoverable for the user. This was necessary since it became enabled by default but could be surprising given Geany warned about losing data before. This commit tries to resolve the discoverability, by providing an informational doc message that is shown once to the user, after the first reload. The doc message also gives the option to disable this feature. src/document.c | 34 ++++++++++++++++++++++++++++++++++ src/document.h | 1 + src/documentprivate.h | 1 + src/keyfile.c | 2 ++ 4 files changed, 38 insertions(+) commit e44e00afe02c980068cbca0ca3870b0b2a663397 Author: Dimitar Zhekov Date: Fri Sep 18 19:38:42 2015 +0300 Fix configdir encoding configdir is initially in locale (glib) encoding. Converting it from UTF-8 is wrong, and it must be converted _to_ UTF-8 when used in geany_debug() - otherwise, Help -> Debug Messages fails assertion. POSIX only, under Windows the glib encoding is also UTF-8. Closes #658. src/libmain.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 4c6bd09b5a67064a92c36c77776246d18b20f40d Merge: 4335804d2 06f2cbe6f Author: Colomban Wendling Date: Sun Oct 25 16:37:34 2015 +0100 Merge pull request #711 from geany/elextr-patch-1 Add ".adoc" extension to asciidoc filetype commit 4335804d236bd43d7545a48272fd313adc36ce1f Merge: 5dea35ada 326c39f8d Author: Colomban Wendling Date: Sun Oct 25 16:09:21 2015 +0100 Merge branch 'mio/update' Manually import some upstream MIO changes. commit 5dea35ada9afe202c5507fc35729a91d03175b9e Author: Colomban Wendling Date: Sun Oct 25 14:05:37 2015 +0100 Respect Smart Home Key setting in Go To Start of Display Line src/keybindings.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 326c39f8d59769237b80463631d57bef58a5a162 Author: Colomban Wendling Date: Sat Oct 24 20:16:44 2015 +0200 Add printf attribute to vprintf() functions This allows GCC to check vprintf() format, and makes `-Wsuggest-attribute=format` happy. tagmanager/mio/mio-file.c | 1 + tagmanager/mio/mio-memory.c | 1 + tagmanager/mio/mio.h | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) commit cbc85b7444da9e5210f1a7ac18a1e223af784af9 Author: Colomban Wendling Date: Sat Mar 24 22:52:37 2012 +0100 Improve memory backend of mio_read() Drop the loop in mem_read() in favor of a single memcpy() call. This greatly improves performances when nmemb > 1, for a small loss for some values of size when nmemb == 1. Gain can theoretically be infinite since swapping nmemb and size parameters changes almost nothing while it had a dramatic performance impact previously. Loss is up to about 25% in the worst case for some values of size when nmemb is 1. Also, now the function always copies as much data as possible, not only whole blocks. This follows the glibc implementation of fread() and simplifies the code. Doing so also fixes the position after a partial read to be at the last readable character rather than the end of the last read block. tagmanager/mio/mio-memory.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) commit 06f2cbe6f6a25ebdcc8a48ee6e5be91a69785ca3 Author: elextr Date: Fri Oct 23 16:34:25 2015 +1000 Add ".adoc" extension to asciidoc filetype Closes #708 data/filetype_extensions.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7fbe99fd8a0f140ebd037128e181570a12f0713a Merge: 459983ed1 1c6b908c9 Author: Colomban Wendling Date: Thu Oct 22 21:53:32 2015 +0200 Merge pull request #707 from b4n/waf/c99 waf: Check and enable C99 compiler support commit 1c6b908c9e7f4d6d1ca0754de4c6564f3c8ac7a7 Author: Colomban Wendling Date: Wed Oct 21 16:30:47 2015 +0200 waf: Check and enable C99 compiler support Closes #679. wscript | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 60 insertions(+), 5 deletions(-) commit 459983ed15a68a25e829f166af7a59a6b79d24eb Author: Frank Lanitz Date: Tue Oct 20 22:42:38 2015 +0200 Update of Portuguese translation NEWS | 3 +- po/pt.po | 849 ++++++++++++++++++++++++++++++++------------------------------- 2 files changed, 434 insertions(+), 418 deletions(-) commit 748f5689ccf58b5172d3ec80b67bbde4cc3ea1a5 Author: Dimitar Zhekov Date: Tue Oct 20 20:38:37 2015 +0300 Unify the spawn callers error messages: custom command src/tools.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit d8318b6366369b6c94eb2e709c3e5d0d9b4efd3d Author: Dimitar Zhekov Date: Tue Oct 20 20:37:23 2015 +0300 Unify the spawn callers error messages: template replacement command src/templates.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 389c0a223dc391a1a2a84891ab2411e76a92d64b Author: Dimitar Zhekov Date: Tue Oct 20 20:35:12 2015 +0300 Unify the spawn callers error messages: print command src/printing.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 897197ae51cb51c7f07281ef7c6e118b27f25718 Author: Dimitar Zhekov Date: Tue Oct 20 20:33:41 2015 +0300 Unify the spawn callers error messages: context action src/callbacks.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit 421f8a0ce08178bc5d76fd7922c253994492bf1d Author: Dimitar Zhekov Date: Tue Oct 20 20:31:37 2015 +0300 Unify the spawn callers error messages: terminal command src/build.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e74dc40e1134e3bb7df9e45bc95f9e3c71507841 Author: Dimitar Zhekov Date: Tue Oct 20 20:30:00 2015 +0300 Unify the spawn callers error messages: grep tool src/search.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5aa0b02f00e84c6412be8632432726c5894e1ff3 Author: Dimitar Zhekov Date: Tue Oct 20 20:22:51 2015 +0300 Sync spawn glib/unix and Windows messages In particular, the exec() and CreateProcess() errors are reported directly, but failures in other any functions, which are extremely rare, include some descriptive text, such as "Failed to set pipe handle to inheritable (Access denied)". The example is artificial. src/spawn.c | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) commit d60a4b789d28dabc97801d8579e74cd1fdfee524 Author: Dimitar Zhekov Date: Mon Oct 19 20:43:23 2015 +0300 Alter spawn to cut glib citing of the program name or working dir Mostly translate the G_SPAWN error codes back to errno, and get the curresponding g_strerror() message. src/spawn.c | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 78 insertions(+), 1 deletion(-) commit 716c785e34f9b016ddf200048e7642f6eb1ffab2 Author: Dimitar Zhekov Date: Mon Oct 19 20:00:36 2015 +0300 Alter spawn to return the error message only in error->message That is, do not cite the original text, program name, or the failed OS function name (except when the testing program is compiled). Also cut glib citing of the original text on bad quoting. src/spawn.c | 54 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 19 deletions(-) commit 9420ec84939ed8625611047b6764da5488c09537 Merge: d5e484cad f9e6ceace Author: Colomban Wendling Date: Mon Oct 19 15:45:28 2015 +0200 Merge pull request #697 from techee/val_if_fail Use g_return_val_if_fail() to fix build on OS X commit d5e484cadb9275e5f6600c4834299fc766cf3a24 Author: Matthew Brush Date: Sat Oct 17 11:00:56 2015 -0700 Update manual for changes to view menu/color schemes dialog Closes #699 doc/geany.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit f9e6ceaceef1ca01961b045801c88149987f2f96 Author: Jiří Techet Date: Thu Oct 15 20:52:08 2015 +0200 Use g_return_val_if_fail() to fix build on OS X src/plugins.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7215c5027711546cbe899fe4ccf828bd945c1d66 Merge: b2879e9fc 6db80a247 Author: Colomban Wendling Date: Tue Oct 13 22:35:16 2015 +0200 Merge pull request #646 from b4n/new-cl-files-once Don't open more than one document for non-existing paths from the CLI commit b2879e9fca00f544105029b45974bd808cbb9b7b Author: Colomban Wendling Date: Mon Oct 12 19:20:02 2015 +0200 tagmanager: Fix handling of scopes starting with a non-ASCII character Fix handling of scopes starting with a non-ASCII character. Actually, just drop the check on the first byte of the scope, as it doesn't seem to serve any purpose as it only checks the first byte (so isn't any kind of real validation; and as it predates Geany it's impossible to know the real reason behind this check), and breaks support for non-ASCII scopes. tagmanager/src/tm_tag.c | 4 +--- tests/ctags/Makefile.am | 1 + tests/ctags/non-ascii-ident1.php | 12 ++++++++++++ tests/ctags/non-ascii-ident1.php.tags | 5 +++++ 4 files changed, 19 insertions(+), 3 deletions(-) commit 152103392c04827a38e9486e3b55888effbb5372 Merge: d6e94cf9d d4f26fdb1 Author: Colomban Wendling Date: Sat Oct 10 13:57:47 2015 +0200 Merge pull request #376 from kugel-/keybindings-rework3 Keybindings rework commit d6e94cf9d4b41b55f06bafe185b1b0a7fc61bd30 Author: Dimitar Zhekov Date: Mon Oct 5 22:52:54 2015 +0300 Use GStatBuf instead of plain `struct stat` Especially under Windows, there are 32-bit and 64-bit stat, and g_[l]stat may use the non-default one. Closes #677 src/dialogs.c | 2 +- src/socket.c | 2 +- tagmanager/ctags/ctags.c | 16 ++++++++-------- tagmanager/src/tm_source_file.c | 4 ++-- tagmanager/src/tm_workspace.c | 2 +- 5 files changed, 13 insertions(+), 13 deletions(-) commit c6952c75999c3775a5d7342bc3892c5c9451fb39 Merge: 25bd24187 d0f94460e Author: Colomban Wendling Date: Tue Oct 6 15:53:14 2015 +0200 Merge pull request #629 from kugel-/pluxy Add support for plugins acting as proxies for foreign plugins, promoting foreign plugins to first-class citizen. commit d0f94460eacfc555683187e7055ef5dec7f279b8 Author: Colomban Wendling Date: Tue Oct 6 15:42:54 2015 +0200 Bump plugin API version for proxy plugins support src/plugindata.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6cb443e8631681c7b74ccef25c7656bdbc9f9305 Author: Thomas Martitz Date: Sun Oct 4 00:04:57 2015 +0200 plugins: enforce geany_plugin_register_proxy() can be called once In the future we might want to enable calling it again to set new supported plugin types/extensions. This is not implemented yet, but in order to allow this in the future we have to prevent it now, otherwise we'd need to break the API. src/plugins.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 6dfe5ce9420c3674e2e779339e72ce5d79ae70b9 Author: Thomas Martitz Date: Mon Sep 21 23:51:54 2015 +0200 plugins: use GQueue to restore GLib compatibility g_ptr_array_insert() is too recent (2.40), but prepending is required. GQueue is a fine replacement with better old-glib support, at the expense of working with a doubly-linked list instead of plain array. src/plugins.c | 32 +++++++++++++++----------------- src/utils.h | 8 ++++++++ 2 files changed, 23 insertions(+), 17 deletions(-) commit 7ac89deebdaf4052ed795495cfbbb8c35043a29f Author: Thomas Martitz Date: Mon May 19 06:55:11 2014 +0200 plugins: improve PM dialog for proxy and sub-plugins Geany now remembers how many plugins depend on a pluxy. It uses this information to disable the "Active" checkbox in the PM dialog. Additionally, the PM dialog displays plugins in a hierarchical manner, so that sub-plugins are shown next to pluxy. This is espcially handy since it makes the sub-plugin <-> pluxy relationship really obvious, and it's easier to spot which plugins need to be disabled before the pluxy can be disabled. This allows to remove code to re-select the plugin because the row (respective to the hierarchy level) does not change anymore. src/pluginprivate.h | 2 + src/plugins.c | 243 +++++++++++++++++++++++++++++++++++++++++----------- 2 files changed, 196 insertions(+), 49 deletions(-) commit bbf8e882c2ea76c2d400decfbd6d5b44978eb3fa Author: Thomas Martitz Date: Wed Aug 26 23:58:31 2015 +0200 demoproxy: add a demo proxy showcasing how to create a proxy plugin This demo proxy does not actually do anything useful. It simply loads pseudo-plugins from an ini-style file. The point is that there will be a plugin in the PM dialog for each ini. Each ini-plugin also causes a menu item to be generated. plugins/Makefile.am | 10 ++- plugins/demoproxy.c | 202 +++++++++++++++++++++++++++++++++++++++++++++++ plugins/demoproxytest.px | 15 ++++ po/POTFILES.skip | 1 + 4 files changed, 226 insertions(+), 2 deletions(-) commit 25bd24187ba30497109e01938365e8a4ca2a12fd Merge: e7e5d51d0 daf4dd45b Author: Colomban Wendling Date: Tue Oct 6 15:00:11 2015 +0200 Merge pull request #621 from techee/remote_mtime Fix the "source file has been modified" issue Closes #605. commit 8ac9d56fff28a6a8b296bfde3f7c047bc8762e61 Author: Thomas Martitz Date: Wed Aug 26 23:58:28 2015 +0200 plugins: reselect when toggling the current plugin When enabling/disabling pluxys in the PM dialog the list of available plugins might change. If plugins before the pluxy go/come then the wrong plugin becomes selected (the selected row number stays the same). Re-apply the selection to the current one in the toggle callback to overcome this issue. src/plugins.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) commit 6e5ca69e2e9ddbfc2cc44527a1aa5fca8db09167 Author: Thomas Martitz Date: Wed Aug 26 23:58:25 2015 +0200 plugins: add geany_plugin_register_proxy() to the plugin API This function finally allows plugins to register themselves as a proxy for one or more file extensions. Lots of documentation is added to doc/plugins.dox, please refer to that for more details. doc/plugins.dox | 397 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/plugindata.h | 43 +++++- src/plugins.c | 52 ++++++++ 3 files changed, 487 insertions(+), 5 deletions(-) commit 3ccf959013edb6744ab58f6953a2b44dfb1abef3 Author: Thomas Martitz Date: Wed Aug 26 23:58:21 2015 +0200 plugins: introduce probe() for proxy plugins When a file extension alone is ambigious as to whether a potential plugin is really handled then the proxy should use the probe hook to find out. This can be especially helpful when two pluxies work on the same file extension. The proxy's probe() should return PROXY_IGNORED or PROXY_MATCHED accordingly. A special flag value, PROXY_NOLOAD, can be or'ed into PROXY_MATCHED to say that the file belongs to the proxy, but isn't directly loaded and should not be handled by any other proxy or geany itself. Example for PROXY_IGNORED: geanypy only supports python2 at the moment. So, scripts written for python3 aren't handled by it and should be skipped for the PM dialog. Or perhaps they are handled by another proxy that supports python3. Example for PROXY_NOLOAD: A pluxy registers for the metadata file extension (.plugin) where author etc is in. The actual implmentation is in a python script (.py). The .py file is tied to the .plugin and should not be processed by other pluxies. Thus, the pluxy also registers for the .py extension but returns PROXY_MATCHED|PROXY_NOLOAD for it (if it would return only PROXY_MATCHED the sub-plugin would show up twice in the PM dialog). src/plugindata.h | 10 ++++++++++ src/plugins.c | 17 ++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) commit e5bb6571c60be2169c3d66ae38c72d72709bf10e Author: Thomas Martitz Date: Wed Aug 26 23:58:18 2015 +0200 plugins: when loading active ones, loop until no more proxy plugins are added During the loading of the active plugins they are also initialized (done at startup). As a result, these plugins could be pluxys and make more plugins available, some of which may be active as well. Because of this the loop has to be restarted if pluxies become available to also load active plugins that depend on the pluxy. The loop is only restarted at the end so only nested pluxys could possibly cause the loop to be run more than twice. src/plugins.c | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) commit 203644a23397a0f4bca56eff820bac547208561b Author: Thomas Martitz Date: Wed Aug 26 23:58:15 2015 +0200 plugins: refactor GtkListStore population code into separate function src/plugins.c | 57 +++++++++++++++++++++++++++++++++------------------------ 1 file changed, 33 insertions(+), 24 deletions(-) commit bdaab9c8378913016d8bc6c76d2100e6d6a9baab Author: Thomas Martitz Date: Wed Aug 26 23:58:12 2015 +0200 plugins: generic load_data instead of module pointer in Plugin struct Being a GModule is actually a detail of standard plugins. Future proxy plugins might need different handles. Therefore replace the module field with a more generic pointer and encapsulate the GModule detail further. This pointer shall be returned from GeanyProxyFuncs::load and is passed back to GeanyProxyFuncs::unload, and isn't interpreted by Geany. src/plugindata.h | 4 +-- src/pluginprivate.h | 5 ++- src/plugins.c | 100 ++++++++++++++++++++++++++++++++++++++++------------ src/pluginutils.c | 11 ++---- 4 files changed, 86 insertions(+), 34 deletions(-) commit d008675b1bb1360f32360c98f54175783c5f0f2f Author: Thomas Martitz Date: Wed Aug 26 23:58:09 2015 +0200 plugins: introduce load and unload functions for plugins Currently they encapsulate loading and unloading of standard plugins. In the future plugins can provide such functions to load their types of plugins. Such a dummy proxy plugin is implemented now to load standard plugins so that these aren't going to be specially handled. src/plugindata.h | 9 ++ src/pluginprivate.h | 9 +- src/plugins.c | 237 +++++++++++++++++++++++++++++++++++----------------- 3 files changed, 177 insertions(+), 78 deletions(-) commit e7e5d51d0a239ea64fae9921d467272ea48fb27f Merge: 932e98fa9 4742cac86 Author: Frank Lanitz Date: Sun Oct 4 14:58:03 2015 +0200 Merge branch 'konsolebox-master' commit 4742cac866c97f61f081ee78a971dcca90e8909b Merge: 932e98fa9 c2b7c279e Author: Frank Lanitz Date: Sun Oct 4 14:57:42 2015 +0200 Merge branch 'master' of https://github.com/konsolebox/geany into konsolebox-master commit 932e98fa91da4b73956e73576e5c62ed8070a09d Author: Frank Lanitz Date: Sun Oct 4 12:24:39 2015 +0200 Update of Greek translation NEWS | 2 +- po/el.po | 527 ++++++++++++++++++++++++++++++++------------------------------- 2 files changed, 270 insertions(+), 259 deletions(-) commit daf4dd45b874f7d29e30f8eddd4fbb6cae40e687 Author: Jiří Techet Date: Tue Aug 18 19:46:08 2015 +0200 Don't mix POSIX/GIO operations when opening/saving/stat()ing files GVFS uses different backends for "native" GIO operations and POSIX operations which use the FUSE backend. If the two kinds of operations are mixed, we may get races. The patch checks the value of file_prefs.use_gio_unsafe_file_saving and based on it either uses GIO operations or POSIX operations for file loading, saving and checking modification time. src/document.c | 101 ++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 72 insertions(+), 29 deletions(-) commit c2b7c279e98ce620f3111bd3981f3c14c9d92196 Author: Ross Konsolebox Date: Wed Sep 23 17:46:22 2015 +0800 Update msgid for "Use multi-line matchin_g" This also includes obvious changes to msgstr of some languages. Languages that didn't explicitly use 'l' as previous shortcut or didn't have 'g' on their translation were left untouched. po/ar.po | 2 +- po/ast.po | 2 +- po/be.po | 2 +- po/bg.po | 2 +- po/ca.po | 2 +- po/cs.po | 2 +- po/de.po | 2 +- po/el.po | 2 +- po/en_GB.po | 2 +- po/es.po | 2 +- po/et.po | 2 +- po/eu.po | 2 +- po/fa.po | 2 +- po/fi.po | 2 +- po/gl.po | 2 +- po/he.po | 2 +- po/hi.po | 2 +- po/hu.po | 2 +- po/id.po | 2 +- po/it.po | 2 +- po/ja.po | 2 +- po/kk.po | 2 +- po/ko.po | 2 +- po/lb.po | 2 +- po/lt.po | 2 +- po/mn.po | 2 +- po/nl.po | 2 +- po/nn.po | 2 +- po/pl.po | 2 +- po/pt.po | 2 +- po/pt_BR.po | 2 +- po/ro.po | 2 +- po/ru.po | 2 +- po/sk.po | 2 +- po/sl.po | 2 +- po/sr.po | 2 +- po/sv.po | 2 +- po/tr.po | 2 +- po/uk.po | 2 +- po/vi.po | 2 +- po/zh_CN.po | 4 ++-- po/zh_TW.po | 2 +- 42 files changed, 43 insertions(+), 43 deletions(-) commit 04ef30ea06982865cf6ba097e5c6f630f2a554bf Author: Colomban Wendling Date: Sun Sep 20 18:37:11 2015 +0200 Update Scintilla to version 3.6.1 data/filetypes.coffeescript | 1 + scintilla/Makefile.am | 7 +- scintilla/gtk/PlatGTK.cxx | 108 +-- scintilla/gtk/ScintillaGTK.cxx | 138 ++-- scintilla/include/ILexer.h | 48 +- scintilla/include/Makefile.am | 3 +- scintilla/include/SciLexer.h | 19 + scintilla/include/Sci_Position.h | 21 + scintilla/include/Scintilla.h | 36 +- scintilla/include/Scintilla.iface | 65 +- scintilla/lexers/LexAbaqus.cxx | 50 +- scintilla/lexers/LexAda.cxx | 10 +- scintilla/lexers/LexAsm.cxx | 26 +- scintilla/lexers/LexBash.cxx | 24 +- scintilla/lexers/LexBasic.cxx | 24 +- scintilla/lexers/LexBatch.cxx | 500 ++++++++++++++ scintilla/lexers/LexCOBOL.cxx | 30 +- scintilla/lexers/LexCPP.cxx | 72 +- scintilla/lexers/LexCSS.cxx | 24 +- scintilla/lexers/LexCaml.cxx | 27 +- scintilla/lexers/LexCmake.cxx | 34 +- scintilla/lexers/LexCoffeeScript.cxx | 55 +- scintilla/lexers/LexD.cxx | 26 +- scintilla/lexers/LexDiff.cxx | 153 +++++ scintilla/lexers/LexErlang.cxx | 14 +- scintilla/lexers/LexForth.cxx | 4 +- scintilla/lexers/LexFortran.cxx | 37 +- scintilla/lexers/LexHTML.cxx | 80 +-- scintilla/lexers/LexHaskell.cxx | 50 +- scintilla/lexers/LexLaTeX.cxx | 73 +- scintilla/lexers/LexLisp.cxx | 18 +- scintilla/lexers/LexLua.cxx | 24 +- scintilla/lexers/LexMake.cxx | 144 ++++ scintilla/lexers/LexMarkdown.cxx | 26 +- scintilla/lexers/LexMatlab.cxx | 26 +- scintilla/lexers/LexNsis.cxx | 40 +- scintilla/lexers/LexNull.cxx | 40 ++ scintilla/lexers/LexOthers.cxx | 1149 -------------------------------- scintilla/lexers/LexProps.cxx | 189 ++++++ scintilla/lexlib/Accessor.cxx | 8 +- scintilla/lexlib/Accessor.h | 4 +- scintilla/lexlib/LexAccessor.h | 54 +- scintilla/lexlib/LexerBase.cxx | 4 +- scintilla/lexlib/LexerBase.h | 8 +- scintilla/lexlib/LexerModule.cxx | 8 +- scintilla/lexlib/LexerModule.h | 6 +- scintilla/lexlib/LexerNoExceptions.cxx | 8 +- scintilla/lexlib/LexerNoExceptions.h | 12 +- scintilla/lexlib/LexerSimple.cxx | 4 +- scintilla/lexlib/LexerSimple.h | 4 +- scintilla/lexlib/StyleContext.cxx | 20 +- scintilla/lexlib/StyleContext.h | 54 +- scintilla/src/AutoComplete.cxx | 2 + scintilla/src/CallTip.cxx | 2 + scintilla/src/CaseConvert.cxx | 1 + scintilla/src/CaseFolder.cxx | 1 + scintilla/src/Catalogue.cxx | 1 + scintilla/src/CellBuffer.cxx | 1 + scintilla/src/CharClassify.cxx | 2 + scintilla/src/ContractionState.cxx | 2 + scintilla/src/Decoration.cxx | 2 + scintilla/src/Document.cxx | 44 +- scintilla/src/Document.h | 49 +- scintilla/src/EditModel.cxx | 1 + scintilla/src/EditView.cxx | 23 +- scintilla/src/Editor.cxx | 1023 +++++++++++++++++----------- scintilla/src/Editor.h | 20 +- scintilla/src/ExternalLexer.cxx | 1 + scintilla/src/Indicator.cxx | 1 + scintilla/src/KeyMap.cxx | 1 + scintilla/src/LineMarker.cxx | 1 + scintilla/src/MarginView.cxx | 1 + scintilla/src/PerLine.cxx | 7 +- scintilla/src/Position.h | 22 + scintilla/src/PositionCache.cxx | 1 + scintilla/src/RESearch.cxx | 2 + scintilla/src/RunStyles.cxx | 1 + scintilla/src/ScintillaBase.cxx | 20 +- scintilla/src/ScintillaBase.h | 2 +- scintilla/src/Selection.cxx | 14 + scintilla/src/Selection.h | 2 + scintilla/src/SplitVector.h | 3 + scintilla/src/Style.cxx | 2 + scintilla/src/Style.h | 2 +- scintilla/src/UniConversion.cxx | 2 + scintilla/src/ViewStyle.cxx | 2 + scintilla/src/XPM.cxx | 1 + scintilla/version.txt | 2 +- src/highlightingmappings.h | 3 +- wscript | 3 +- 90 files changed, 2615 insertions(+), 2264 deletions(-) commit c081983e850c4c49df208d603459e79555f22d50 Author: Colomban Wendling Date: Sun Sep 20 17:53:13 2015 +0200 Scintilla update script: properly abort on lexer copy error scripts/update-scintilla.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9729f354e5c9d0e729555861b22ee2033a4bd925 Author: Colomban Wendling Date: Thu Sep 10 19:20:18 2015 +0200 Allow to set a keybinding for File->Properties Closes #622. data/geany.glade | 2 +- src/callbacks.c | 2 +- src/callbacks.h | 2 ++ src/keybindings.c | 5 +++++ src/keybindings.h | 1 + src/ui_utils.c | 2 +- 6 files changed, 11 insertions(+), 3 deletions(-) commit 1a935ccb45c4c02f28da68d5c148d20054ee64f5 Author: Colomban Wendling Date: Thu Sep 10 15:42:33 2015 +0200 vte: Show some hidden preferences in the Various preferences page Show `send_cmd_prefix` and `send_selection_unsafe` VTE preferences in the Various preferences page instead of having them totally hidden. src/keyfile.c | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) commit 7c0bb4c6ca15fecbb295d90d2493ef39d0307d10 Author: Colomban Wendling Date: Thu Sep 10 14:47:37 2015 +0200 Small update of the French translation po/fr.po | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 83c5ddf3533e7d4d20305e232210213f61c117d0 Author: Colomban Wendling Date: Thu Sep 10 14:46:08 2015 +0200 Strip spurious backslashes in an UI string data/geany.glade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit af3b15c5ef3f98c25ac01e62542241acb14e1156 Author: Colomban Wendling Date: Wed Sep 9 20:25:41 2015 +0200 Small update of the French translation po/fr.po | 450 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 228 insertions(+), 222 deletions(-) commit 927b364311c785fd9b1d11e21da69709201fff23 Merge: 8b767fea4 8253e2bd4 Author: Colomban Wendling Date: Wed Sep 9 20:01:37 2015 +0200 Merge pull request #647 from konsolebox/master Use 'g' as mnemonic key for "Use multi-line matching" instead of 'l'. Closes #589. commit 8253e2bd481e10c49bf5367d996dd36126c82ded Author: Ross Konsolebox Date: Wed Sep 9 13:29:23 2015 +0800 Use 'g' as shortcut key for "Use multi-line matching" instead of 'l'. The current shorcut key for "Use multi-line matching" conflicts with "In Selection" when "Use regular expressions" is enabled. It should be convenient if we change it. We choose 'g' since other letters are already in use: u: "Use regular expressions" s: "Search for" e: "Use escape sequences" m: "Mark" l: "In Selection" t: "Match from start of word" i: "In Document" n: "Replace & Find" a: "Case sensitive" c: "Close" h: "Replace with" src/search.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6db80a247f6969ffc14272189da449d566a745c0 Author: Colomban Wendling Date: Tue Sep 8 16:23:57 2015 +0200 Don't open more than one document for non-existing paths from the CLI When creating a new document for a non-existing file from the command line, check if we don't already have opened it and simply show the existing one if we do. This avoids creating new documents that will be saved to the same location again and again. Closes https://bugs.launchpad.net/linuxmint/+bug/1482558 src/libmain.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 8b767fea49f8698ee89e152c8be81d62ef0d8637 Merge: db7a13b47 80c4cd0de Author: elextr Date: Wed Sep 2 09:10:33 2015 +1000 Merge pull request #638 from Akronix/master Added multiline comment for filetypes.haskell commit 80c4cd0de0ba8447d9b7fe04ad9c301b9d791992 Author: Abel 'Akronix' Serrano Juste Date: Tue Sep 1 19:12:59 2015 +0200 Added multiline comment for filetypes.haskell data/filetypes.haskell | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d4f26fdb13ff7e76728397c19b6dc8677ce7efaa Author: Thomas Martitz Date: Wed Aug 26 23:51:33 2015 +0200 plugin api: bump API number for new keybindings APIs src/plugindata.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7c2c9dc27a909129007d74bb40ac67a643f6a2f4 Author: Thomas Martitz Date: Fri May 29 07:14:05 2015 +0200 plugin api: add destroy_notify to the new keybinding APIs The destroy_notify can be used to make Geany automatically free the per-KeyGroup or per-KeyBinding user_data. This is particularly useful for vala-based plugins or other (future) language bindings. The destroy functions can be conviniently hooked into the destroy_notify of the underlying GPtrArrays, therefore this commit also implements such notifies internally. src/keybindings.c | 61 +++++++++++++++++++++++++++++++----------------- src/keybindings.h | 6 +++-- src/keybindingsprivate.h | 1 + src/pluginutils.c | 5 +++- src/pluginutils.h | 2 +- 5 files changed, 50 insertions(+), 25 deletions(-) commit d3f6237505f1627d5b12c9ae5bed6dc736249878 Author: Thomas Martitz Date: Fri Aug 22 16:09:49 2014 +0200 plugin api: introduce keybindings_set_item_full and plugin_set_key_group_full These function actually set the new GeanyKeyGroupFunc and GeanyKeyBindingFunc and are exported for plugins src/keybindings.c | 39 +++++++++++++++++++++++++++++++++++++++ src/keybindings.h | 4 ++++ src/pluginutils.c | 30 ++++++++++++++++++++++++++++++ src/pluginutils.h | 3 +++ 4 files changed, 76 insertions(+) commit 1d08d3db4a0c7f6dc91309f3986d232b26cffb08 Author: Thomas Martitz Date: Fri Aug 22 06:35:47 2014 +0200 plugin api: introduce GeanyKeyGroupFunc and GeanyKeyBindingFunc These are new keybinding callback functions that take a few more parameters. Most importantly they have pdata pointer which allows plugins to store context information. This is especially useful for future plugins in OOP languages to store an instance pointer there, or interpreted ones to store interpreter context. src/keybindings.c | 58 +++++++++++++++++++++++++++--------------------- src/keybindings.h | 48 +++++++++++++++++++++++++++------------ src/keybindingsprivate.h | 2 ++ 3 files changed, 69 insertions(+), 39 deletions(-) commit db7a13b4781895546ea8e616e633ccda4cea4afd Author: Enrico Tröger Date: Tue Aug 25 21:53:23 2015 +0200 Mark "Open in New Window" menu item as translatable src/notebook.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b8a99752f0946bfb2840feb3f3ea59085f658dc6 Author: Colomban Wendling Date: Mon Aug 24 19:40:17 2015 +0200 Bump API version for new plugin entry points (oops) Closes #624. src/plugindata.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 280163a24411f84a01b107c524d4a6c4f87a6710 Merge: b7bcf14dd 765000be9 Author: Colomban Wendling Date: Sun Aug 23 23:50:44 2015 +0200 Merge pull request #469 from kugel-/new_hooks Plugin loader redesign commit b7bcf14ddf8ff2f606e5b4c6cd50ec8a31d36bc0 Merge: c251dcb45 568787bc2 Author: Colomban Wendling Date: Sun Aug 23 23:48:39 2015 +0200 Merge pull request #613 from SiegeLord/even_more_rust_updates Rust updates commit 765000be92262cb3395de82fa933511b6635c9be Author: Thomas Martitz Date: Sun Aug 23 15:23:39 2015 +0200 plugins: Clarify which API functions may be called within geany_load_module() Since geany_load_module() is called for non-enabled plugins you may not use the plugin API here yet. The only exceptions to this rule are API functions required for plugin registration. This rule is hard to enforce (would need to g_return_if_val(PLUGIN_LOADED_OK(p)) for all API functions (well, those taking a plugin pointer anyway), so this rule is only documented for now. doc/plugins.dox | 3 +++ src/plugindata.h | 8 ++++++++ 2 files changed, 11 insertions(+) commit 437837d3a54367393c41d6c1e1f4d1af4481627e Author: Thomas Martitz Date: Sun Aug 23 15:23:37 2015 +0200 plugins: separate geany_plugin_set_data() dual-use It was found that because geany_plugin_set_data() could be used by both plugin's init() and geany_load_module(), that it introduced some uncertainty as to when to call the free_func. init() callers might expect the call around the same time as cleanup() is called, while geany_load_module() callers expected the call at module unload time. It was indeed called at module unload time. But that means that init() callers cannot call it again reliably after in a init()->cleanup()->init() flow (when toggling the plugin) without fully unloading the plugin (which is what we do currently but that's we would want to change). With the separation we can actually destroy the data depending on where it was set and do everything unambigiously. doc/plugins.dox | 37 +++++++++++++++++----------------- src/plugindata.h | 20 +++++++++++++++--- src/pluginprivate.h | 2 ++ src/plugins.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/pluginutils.c | 15 +++++++++----- 5 files changed, 106 insertions(+), 26 deletions(-) commit d54b65b9ac6d981a7f770abfb11f6dba2e875e2c Author: Thomas Martitz Date: Sun Aug 23 15:23:35 2015 +0200 plugins: Updated doxygen for the new plugin loader The documentation provides a quite detailed description of the new loader In addition it adds a "how to transition" that briefly describes the old loader (for curious newcomers) and lots of hints for porting legacy plugins to the new loader. doc/plugins.dox | 551 ++++++++++++++++++++++++++++++++++++++-------------- doc/pluginsymbols.c | 8 +- src/plugindata.h | 5 + 3 files changed, 412 insertions(+), 152 deletions(-) commit 58c8144afc10d31ce4473d70fd542369349c1f70 Author: Thomas Martitz Date: Sun Aug 23 15:23:33 2015 +0200 plugins: Pass pdata to PluginCallback function by default If the plugin did not set its own user_data we set it to whatever it set with geany_plugin_register_full() or geany_plugin_set_data(). This is particularly convinient because PluginCallback is usually statically allocated, at which point dynamically allocated plugin data doesn't exists yet. plugins/demoplugin.c | 16 +++++++++++++--- src/plugindata.h | 4 +++- src/plugins.c | 3 ++- 3 files changed, 18 insertions(+), 5 deletions(-) commit 43c58e0fdde9e79fb902925a5854cde81db8db20 Author: Thomas Martitz Date: Sun Aug 23 15:23:31 2015 +0200 plugins: change return codes of geany_load_module() and GeanyPluginFuncs::init - The return value from geany_load_module is removed (void). It was ignored anyway and we have to check separately whether the plugin loaded OK or not anyway. If the plugin specific code fails it should simply not call geany_plugin_register() (which it should only call iff all other conditions are good). - GeanyPluginFuncs::init() now returns a bool to allow failing initialization. Some plugins might want to defer work to their init() (i.e. only do it when the plugin was activated by the user), and some of that work can possibly fail (e.g. GtkBuilder fails to load .xml). Note that the GUI integration of the latter is less than ideal but this kind of GUI/policy work is out of scope for this patch set. Therefore a plugin failing to init is simply removed from the PM dialog as if it became incompatible. However, as the code that generates the list does not call init they will show up again if the PM dialog is re-opened. plugins/demoplugin.c | 8 +++++--- src/plugindata.h | 4 ++-- src/plugins.c | 24 ++++++++++++++++++------ 3 files changed, 25 insertions(+), 11 deletions(-) commit 8241278472ceb23e7341a946c758bc8a30ef0fa8 Author: Thomas Martitz Date: Sun Aug 23 15:23:29 2015 +0200 demoplugin: Adapt demoplugin to the new loader Demoplugin, while not installed by default, is a nice starting point and mini-howto. Therefore it should advertise the new loader from the beginning. plugins/Makefile.am | 2 +- plugins/demoplugin.c | 70 +++++++++++++++++++++++++++++----------------------- 2 files changed, 40 insertions(+), 32 deletions(-) commit 75827c69c0ba5c1b01cd0992fc6ef6354a9b0c38 Author: Thomas Martitz Date: Sun Aug 23 15:23:27 2015 +0200 plugins: Refactor legacy plugin support With geany_plugin_set_data() the legacy plugin support can be made more transparent by using wrapper functions that call the actual plugin_* functions. This allows to remove the differentiation in code that's not directly concerned with actually loading plugins. This commit doesn't change anything except for one thing: legacy plugins now cannot call geany_plugin_set_data(). But it is meant for new-style plugins anyway. src/pluginprivate.h | 22 +-------- src/plugins.c | 125 +++++++++++++++++++++++++++++++--------------------- src/pluginutils.c | 24 ++++------ 3 files changed, 86 insertions(+), 85 deletions(-) commit f2579141bb4188d4fc97eee494ba36e809661ddf Author: Thomas Martitz Date: Sun Aug 23 15:23:24 2015 +0200 plugins: Replace geany_plugin_register() pdata with a separate API function The API function adds a free_func parameter, and can also be called after geany_plugin_register(), i.e. in the plugin's init() callback. This fixes a by-design memory leak and gives greater flexibility. src/plugindata.h | 7 ++++--- src/pluginprivate.h | 1 + src/plugins.c | 12 ++++++++---- src/pluginutils.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 60 insertions(+), 7 deletions(-) commit babf0083353b1d3501fee439b6228c2fbe84cc82 Author: Thomas Martitz Date: Sun Aug 23 15:23:22 2015 +0200 plugins: Let plugins fill GeanyPlugin::callbacks instead of passing their own pointer This is easier to handle if we decide to add callbacks. Since we can zero-initialize callbacks before passing it to the plugin we can be certain as to which callbacks the plugin knew about when it was compiled. This is exactly the same method used for GeanyPlugin::info already and easier than inspecting the API version. src/plugindata.h | 14 ++++++++------ src/plugins.c | 27 +++++++++++++++------------ 2 files changed, 23 insertions(+), 18 deletions(-) commit 721009e262e9bc279122566a60e14af0048d9094 Author: Thomas Martitz Date: Sun Aug 23 15:23:20 2015 +0200 plugins: plugin loader redesign The old plugin loader has a number of deficiencies: - plugins need to export a couple of callback functions into the global namespace - plugins need to export data pointers, that are written by Geany - the exported functions have no user_data param, so there is no way to pass context/state back to the plugin (it needs global storage for that) - plugin registration is implicit, plugins have no way to not register themselves (it may want that due to missing runtime dependencies) - plugins perform the ABI/API verification, and even though we provide a convinience wrapper, it may get that wrong As a result, I designed a new loader with the following design principles - semantics of callbacks should not change, but they they shouldn't be mess with the global namespace - each callback receives a self-identifying param (the GeanyPlugin instance) and a plugin-defined data pointer for their own use - explicit registration through a new API function - in-core API/ABI checks The following principles shall be left unchanged: - The scan is done on startup and when the PM dialog is opened - Geany allocates GeanyPluginPrivate for each plugin, and GeanyPlugin is a member of it - Geany initially probes for the validity of the plugin, including file type and API/ABI check, thus Geany has the last word in determining what a plugin is - the PM dialog is updated with the proper, translated plugin information - the PM dialog GUI and user interaction in general is unchanged With the redesign, plugins export a single function: geany_load_module(). This is called when the GModule is loaded. The main purpose of this function is to call geany_plugin_register() (new API function) to register the plugin. This is the only function that is learned about through g_module_symbol(). Within this call the plugin should a) set the localized info fields of GeanyPlugin::info b) pass compiled-against and minimum API version as well as compiled-against ABI version, to allow Geany to verify compatibility c) pass a pointer to an instance of GeanyPluginFuncs which holds pointers to enhanced versions of the known callbacks (except configure_single which is dropped). d) optionally pass a plugin-private data pointer for later callbacks Enhanced means that all callbacks receive the GeanyPlugin pointer as the first and a pdata pointer as the last. pdata is private to the plugin and is set by geany_plugin_register(). The callbacks need (should) not be globally defined anymore, and the global GeanyData, GeanyPlugin and GeanyFunctions pointers are ignored and not set anymore. GeanyData is available through GeanyPlugin::geany_data. src/plugindata.h | 72 +++++++++-- src/pluginprivate.h | 36 +++++- src/plugins.c | 349 ++++++++++++++++++++++++++++++++++------------------ src/pluginutils.c | 20 +-- 4 files changed, 331 insertions(+), 146 deletions(-) commit 568787bc2f48b8762fcc46a64f2d2ef77cb0bdbc Author: Pavel Sountsov Date: Fri Aug 21 21:21:18 2015 -0700 Change Rust tests to be in line with the ones in the universal-ctags tests. tests/ctags/test_input.rs | 15 ++++++++++----- tests/ctags/test_input.rs.tags | 4 +++- tests/ctags/test_input2.rs | 2 ++ tests/ctags/test_input2.rs.tags | 1 + 4 files changed, 16 insertions(+), 6 deletions(-) commit 91ee4376406007b3fceb516059517820527e4c70 Author: Pavel Sountsov Date: Sun Aug 16 20:45:06 2015 -0700 Parse 'where' bounds correctly. tagmanager/ctags/rust.c | 3 ++- tests/ctags/test_input.rs | 13 +++++++++++++ tests/ctags/test_input.rs.tags | 4 ++++ 3 files changed, 19 insertions(+), 1 deletion(-) commit 6814fc1a6210b257cb76396474c8e20ea602432a Author: Pavel Sountsov Date: Sun Aug 16 20:16:35 2015 -0700 Update Rust keywords. data/filetypes.rust | 4 +-- tests/ctags/test_input.rs | 71 ++++++++++++++++++++--------------------- tests/ctags/test_input.rs.tags | 6 ++-- tests/ctags/test_input2.rs | 15 ++++----- tests/ctags/test_input2.rs.tags | 4 +-- 5 files changed, 48 insertions(+), 52 deletions(-) commit c251dcb45f6333ea63fcc2275f7971e6d01ae5e1 Merge: 31325bb23 624048ea5 Author: Colomban Wendling Date: Fri Aug 21 22:26:41 2015 +0200 Merge pull request #394 from SiegeLord/selection_document_mods Make Document > Strip trailing spaces/Replace tabs/Replace spaces use the current selection. commit 3495cf05abf42e5f08952a19d3798cc27a50b6e6 Author: Jiří Techet Date: Mon Aug 17 17:06:49 2015 +0200 Remove saved file's mtime check comparing it with the current time As the edited file can be a remote file on a server with a different time zone, the mtime can actually be in the future. In this case the check not only shows the misleading warning but more importantly the doc->priv->mtime < st.st_mtime check never happens and the user doesn't get the modified file prompt. Setting doc->priv->mtime = time(NULL); to the current time on file creation isn't harmful in any way because the saved file's mtime is taken but it's a bit misleading so better to set it to 0. src/document.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 624048ea5e731336097b6e0be5901b77aae075a8 Author: Colomban Wendling Date: Mon Jan 5 15:40:35 2015 +0100 Keep selection stable when replacing tabs and spaces src/editor.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 2a887fee30c4444db29be4e05a53cb323bc9a5c5 Author: Pavel Sountsov Date: Thu Jan 15 20:30:17 2015 -0800 Don't strip spaces from the next line when whole lines are selected. src/editor.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 186a43c1d1ea5227ff3d607fd49ce6a633cea415 Author: Pavel Sountsov Date: Fri Dec 26 20:21:54 2014 -0800 Document the changes to space/tab replacement doc/geany.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 795230c5728a5d91c57d989c5356460dd5209854 Author: Pavel Sountsov Date: Thu Dec 25 12:23:09 2014 -0800 Use current selection when replacing tabs/spaces from the menu. When saving the file, the tabs are removed from the whole file as usual. src/callbacks.c | 4 ++-- src/document.c | 2 +- src/editor.c | 31 ++++++++++++++++++++++++------- src/editor.h | 4 ++-- 4 files changed, 29 insertions(+), 12 deletions(-) commit 381d74b1a72d5feef85fef56b25bb15d5403f955 Author: Pavel Sountsov Date: Thu Dec 25 11:55:02 2014 -0800 Use current selection when stripping trailing whitespace from the menu. When the lines are stripped due to the file being saved, ignore the selection. src/callbacks.c | 2 +- src/document.c | 2 +- src/editor.c | 18 +++++++++++++++--- src/editor.h | 2 +- 4 files changed, 18 insertions(+), 6 deletions(-) commit 31325bb2310f3946668ba420910f0e44a734b0fa Author: Frank Lanitz Date: Wed Aug 5 20:50:09 2015 +0200 Update of Swedish translation NEWS | 4 ++- po/sv.po | 97 +++++++++++++++++++++++++++++++--------------------------------- 2 files changed, 50 insertions(+), 51 deletions(-) commit a26a2257db248e77c192e5284708a7b9149cd71f Merge: bff71b3a8 a6c3cdc2c Author: Dominic Hopf Date: Wed Aug 5 10:24:52 2015 +0200 Merge pull request #599 from oliwer/perlkeywords Add new keywords for recent versions of Perl commit a6c3cdc2cdc4bb8ccb261246bc971a9d815d2edc Author: Olivier Duclos Date: Wed Aug 5 10:05:02 2015 +0200 Add new keywords for recent versions of Perl This commit adds the following new keywords for perl: - say - state - given, when, default - __SUB__ While __SUB__ was introduced in perl 5.16, the others date back to v5.10 released in 2007! data/filetypes.perl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bff71b3a88f6fc77a32a642d8d638ed91742ce98 Author: Matthew Brush Date: Mon Jul 27 17:52:15 2015 -0700 Fix "Open in New Window" command arguments Closes #590 src/utils.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit 1b5ec633e3a0f15f17ed29b9947cb346a6ee669b Author: Wayne Nilsen Date: Wed Jul 8 18:39:53 2015 +0200 Use Cargo tool for Rust build commands Closes PR #557 data/filetypes.rust | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) commit c0898618f9a162913dfdddc74e2526019dcfb9ea Merge: 50b150b66 2ae6c7fd0 Author: Colomban Wendling Date: Wed Jul 22 21:52:10 2015 +0200 Merge pull request #574 from eht16/doxygen_fixes Fix Doxygen warnings commit 50b150b66d6ee659446f89749382cf9bd6158a19 Merge: c5b0fc459 97fca1b29 Author: Enrico Tröger Date: Wed Jul 22 21:50:57 2015 +0200 Merge pull request #583 from eht16/win32_fix_native_dialogs Windows: restore modern design of native file dialogs commit 2ae6c7fd0fcc84cc73fa7506e874ab8a813dba36 Author: Enrico Tröger Date: Tue Jul 14 00:08:51 2015 +0200 Fix Doxygen warnings This resolves warnings from Doxygen about non-existing commands caused by unescaped backslashes as well as multiply defined section names. doc/plugins.dox | 4 ++-- src/spawn.c | 14 ++++++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) commit c5b0fc459a1251c824a44edb5dfab4a8feb0bd00 Merge: 5510a5a00 87496f657 Author: Enrico Tröger Date: Wed Jul 22 19:59:38 2015 +0200 Merge pull request #573 from zhekov/cleanup-win32defines Cleanup win32defines commit 5510a5a00e2579f4971fca65b1162d3c153668ca Merge: fb63f9e43 21bb11ddd Author: Enrico Tröger Date: Tue Jul 21 21:31:43 2015 +0200 Merge pull request #585 from codebrainz/remove-style-debug-print Remove needless debug print commit 21bb11ddd7bfb06573b29e696172c98aec532eec Author: Matthew Brush Date: Tue Jul 21 11:15:27 2015 -0700 Remove needless debug print Prevents spamming the console when SCLEX_CONTAINER is activated (ex. by plugins). src/editor.c | 6 ------ 1 file changed, 6 deletions(-) commit 97fca1b29d5ca7311180c28084e3f0e07526a277 Author: Enrico Tröger Date: Sun Jul 19 23:13:45 2015 +0200 Windows: restore modern design of native file dialogs This restores the previously used "modern design" of the Windows native file open/save dialogs. Also make the dialogs resizable. Fixes #578. src/win32.c | 35 +++++++++-------------------------- 1 file changed, 9 insertions(+), 26 deletions(-) commit fb63f9e43a9d81425d14754d6cf02ddfc564201d Author: Jiří Techet Date: Sat Jul 18 21:28:40 2015 +0200 Use monospace font for the message window by default Since both gcc and llvm use ^ to mark the position of the error now, monospace font seems to be a better default font for the message window to avoid the ^ character misalignment. Fixes #435. src/keyfile.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1658babe452f58f37c84ebcfb34df97e14726351 Author: Colomban Wendling Date: Tue Jul 14 15:44:47 2015 +0200 Remove obsolete GTK compatibility code plugins/classbuilder.c | 1 - src/about.c | 1 - src/gtkcompat.h | 8 -------- src/prefs.c | 2 +- 4 files changed, 1 insertion(+), 11 deletions(-) commit 2328f84e37328a8d2e8a5fa58dcf8a836885fa41 Author: Jiří Techet Date: Sat May 9 13:19:07 2015 +0200 Disallow the possibility to use tm_tags_find() on unsorted array This function won't work correctly on unsorted array because the second part of the function (after the tags search) expects the array is sorted by name. The only user of this is tm_source_file_set_tag_arglist() in which we can go through the tags manually by ourselves (it needs only a single value so the original behavior of tm_tags_find() wasn't a problem). Eliminate the tags_search() function as it isn't needed any more. Just cleanup, not functional change. tagmanager/src/tm_source_file.c | 18 ++++++++++-------- tagmanager/src/tm_tag.c | 37 ++++++------------------------------- tagmanager/src/tm_tag.h | 2 +- tagmanager/src/tm_workspace.c | 2 +- 4 files changed, 18 insertions(+), 41 deletions(-) commit 99e222ea370933ddb28f4a103b28de48b842ba2d Author: Jiří Techet Date: Fri May 8 06:29:26 2015 +0200 Eliminate calls of slow tm_tags_extract() on big arrays Do the same with struct/class/union... member tags as we do with typenames - extract them from the edited file and merge them with the array containing all of them so while editing, there should be no slowdowns because one file usually doesn't contain so many tags. This eliminates about 2s freeze when typing "." on a linux kernel project with 2300000 tags. Extract typename and member tags also for global tags in case someone creates a giant tags file - this needs to be done just once when loading the tag files. All the remaining tm_tags_extract() in Geany are called on file tag array only so there shouldn't be any performance problems. src/symbols.c | 4 +--- tagmanager/src/tm_workspace.c | 56 +++++++++++++++++++++++++++---------------- tagmanager/src/tm_workspace.h | 3 +++ 3 files changed, 39 insertions(+), 24 deletions(-) commit 5c18b3d1328b8d3dff923a2a02bc3cc6b41a333c Author: Jiří Techet Date: Fri May 8 01:29:08 2015 +0200 Improve scoped search This patch contains a bit too many things which are however related. It started by the part in editor.c (where we previously used only the first type we found to perform scoped search) by going through all the possible variable types until the scoped search returns some result (this is useful if variable foo is used once as int and once as struct and if the int is the first type found, we won't get the struct's members). This didn't work. After an hour of debugging, it turned out that because tm_workspace_find_scope_members() calls internally tm_workspace_find() and this function returns static array, this invalidates the array returned by the tm_workspace_find() used previously to get all the possible variable types. Since this is really dangerous and hard to notice, I tried to eliminate the static returns from both tm_workspace_find() and tm_workspace_find_scoped_members(). The tm_workspace_find_scoped_members() function is where I got stuck because as I started to understand what it's doing, I found many problems there. This patch does the following in this function: 1. Eliminates search_global and no_definitions parameters because we always search the whole workspace and this simplifies the slightly strange logic at the end of the function. 2. Returns members from global tags even when something found in workspace tags - previously global tags were skipped when something was found from workspace tags but I don't see a reason why. 3. Adds the lang parameter to restrict tags by language (we do this with normal search and the same should be done here). 4. Previously when searching for types with members the function returned NULL when more than one such type was found (there should have been >=1 instead of ==1 at line 906). This patch improves the logic a bit and if multiple types are found, it tries to use the one which is other than typedef because it probably has some members (the typedef can resolve to e.g. int). 5. Previously the function prevented only direct typedef loops like typedef A B; typedef B A; but a loop like A->B->C->A would lead to an infinite cycle. This patch restricts the number how many times the typedef can be resolved by using for loop with limited number of repetitions and giving up when nothing useful is resolved. 6. Finally the patch tries to simplify the function a bit, make it easier to read and adds some comments to make it clearer what the function does. src/editor.c | 60 +++++++---- tagmanager/src/tm_workspace.c | 230 ++++++++++++++++++------------------------ tagmanager/src/tm_workspace.h | 8 +- 3 files changed, 144 insertions(+), 154 deletions(-) commit ee3eeeb758ff6519db5d82d4ed01a7e0ea45e9bd Author: Jiří Techet Date: Sat May 23 14:25:16 2015 +0200 Merge tm_workspace_find() and tm_workspace_find_scoped() They are basically identical except: 1. _scoped() compares scope in addition 2. _scoped() is missing the C/CPP tag compatibility part 3. _scoped() allows returning just single result (unused) 4. _scoped() allows not searching in global tags (unused) Since we now always put lang also under tag->lang, the match_langs() function is not necessary. Extend the add_filtered_tags() (and rename it to fill_find_tags_array()) to perform the tm_tags_find(), compare the scope and add scope as parameter of tm_workspace_find() and eliminate tm_workspace_find_scoped() completely. src/editor.c | 10 ++-- tagmanager/src/tm_workspace.c | 123 +++++++----------------------------------- tagmanager/src/tm_workspace.h | 8 +-- 3 files changed, 27 insertions(+), 114 deletions(-) commit 5c6b423f70a73906bf3a8216c7206ca4a98cdd7e Author: Jiří Techet Date: Thu May 7 01:02:29 2015 +0200 Clean up tm_workspace_find() 1. Factor-out the part common to tags_array and global_tags 2. Get both C/CPP tags when either of the languages is specified (both for global_tags and tags_array) 3. Remove unnecessary strcmp()s (tm_tags_find() should return only tags with the specified name) 4. Various minor cleanups tagmanager/src/tm_workspace.c | 102 +++++++++++++++--------------------------- 1 file changed, 35 insertions(+), 67 deletions(-) commit 87496f657dccb4294e08e7566116b0e5f4edf591 Author: Dimitar Zhekov Date: Mon Jul 13 19:46:17 2015 +0300 Cleanup win32defines The git PR for this change contains a long explanation. src/Makefile.am | 2 +- src/socket.c | 2 -- src/spawn.c | 2 -- src/win32.c | 5 ++++- src/win32defines.h | 32 -------------------------------- 5 files changed, 5 insertions(+), 38 deletions(-) commit 0f5e379ec8199ba68f7fa44e642d210a71df7d40 Author: Colomban Wendling Date: Mon Jul 13 00:47:18 2015 +0200 Update making-a-release * geany.nsi and doc/geany.html are now generated; * freecode.com is dead. doc/making-a-release | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit a50306cab3e0d07bd568861dc6b43bbea78d63d3 Author: Colomban Wendling Date: Sun Jul 12 19:30:44 2015 +0200 Post release version bump Say hello to Geany 1.26 "Rosset"! NEWS | 3 +++ configure.ac | 2 +- doc/geany.txt | 2 +- geany.exe.manifest | 2 +- geany_private.rc | 4 ++-- src/geany.h | 2 +- win32-config.h | 2 +- wscript | 2 +- 8 files changed, 11 insertions(+), 8 deletions(-) commit 7d9264a6e7498f6ba2fc454ba0cdca29fb0cb6fb Author: Colomban Wendling Date: Sun Jul 12 18:04:56 2015 +0200 Set release date NEWS | 2 +- doc/geany.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit ffe7206cc85801e93f5f12d4e43ce7fcb854f9c5 Merge: 59185ae8e e5471fb5c Author: Enrico Tröger Date: Sun Jul 12 15:50:15 2015 +0000 Merge pull request #570 from eht16/win32_header_order Include win32defines.h before win32.h to fix build errors commit e5471fb5cedd11ed508971f909939da95a628c15 Author: Enrico Tröger Date: Sun Jul 12 16:46:08 2015 +0200 Include win32defines.h before win32.h to fix build errors src/socket.c | 3 ++- src/spawn.c | 3 ++- src/win32.c | 8 +++---- src/win32defines.h | 63 +++++++++++++++++++++++++++--------------------------- 4 files changed, 40 insertions(+), 37 deletions(-) commit 59185ae8e0a3eb0bb29c3558d55c598c4a1242be Author: Frank Lanitz Date: Sun Jul 12 17:06:10 2015 +0200 Update copyright string to reflect year 2015 README | 2 +- doc/geany.txt | 4 ++-- src/about.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 6c9a55d6ef2361eb189a7a6ccd547950a4ce2cd1 Author: Frank Lanitz Date: Sun Jul 12 17:05:45 2015 +0200 Update release date inside man-page doc/geany.1.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 290a80ab71773520d982486ce5f1c547e16793ed Merge: 64fb9f9a5 bb28bdd1d Author: Colomban Wendling Date: Sun Jul 12 16:46:47 2015 +0200 Merge pull request #569 from b4n/spawn-wif-and-doc Prefix the WIF* macros with SPAWN_ and add short doc comments, and fix Doxygen integration. commit bb28bdd1d39a58e8682a54077b1933ad72d3dbb0 Author: Colomban Wendling Date: Sun Jul 12 16:22:13 2015 +0200 Fix spawn documentation so it appears in the API docs doc/plugins.dox | 1 + src/spawn.c | 4 ++++ 2 files changed, 5 insertions(+) commit feca48b59e838dcd6ca4a8d03697495163d73692 Author: Colomban Wendling Date: Sun Jul 12 16:18:38 2015 +0200 spawn: Move macros documentation so Doxygen can find them src/spawn.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 7819cd11c7ac237eb08fbabc210a55eb95c9a0fb Author: Dimitar Zhekov Date: Sun Jul 12 17:12:20 2015 +0300 Make the search.c exit status checks platform independent src/search.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 2f237c91a104a8b8260047f5a7de9a265278a150 Author: Dimitar Zhekov Date: Sun Jul 12 17:06:02 2015 +0300 Prefix the WIF* macros with SPAWN_ and add short doc comments src/build.c | 2 +- src/search.c | 6 +++--- src/spawn.c | 4 ++-- src/spawn.h | 9 ++++++--- src/tools.c | 2 +- 5 files changed, 13 insertions(+), 10 deletions(-) commit 64fb9f9a51bc1a6d406bd902161e4dd4bde8cdd4 Author: Colomban Wendling Date: Sun Jul 12 14:39:39 2015 +0200 Don't return with an argument in a function returning void src/search.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f11a2eb0139b39e4513394af62bcda3743d54cb3 Merge: 5b341b123 b891c8458 Author: Enrico Tröger Date: Sun Jul 12 12:51:12 2015 +0000 Merge pull request #563 from geany/elextr-news-addition Update NEWS to mention windows command quoting commit b891c84582ea1932206fea074f96150947c4db40 Author: elextr Date: Sun Jul 12 10:29:57 2015 +1000 Update NEWS to mention windows command quoting NEWS | 2 ++ 1 file changed, 2 insertions(+) commit 5b341b12316ed0a23d8809a86df5c3f2459fb6eb Author: Colomban Wendling Date: Sun Jul 12 14:19:28 2015 +0200 spawn: Fix a typo in Windows compatibility code Thanks to Dimitar for spotting this. src/spawn.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 01b01cc83a9c15f41b509072aff476184e2a6a4e Merge: a54cca738 6c753e591 Author: Colomban Wendling Date: Sun Jul 12 14:15:30 2015 +0200 Merge pull request #561 from b4n/filebrowser-use-spawn filebrowser: Use Spawn module to launch the external command commit a54cca738f788bf0493801abcfab17101f2e2b65 Author: Enrico Tröger Date: Sun Jul 12 10:02:56 2015 +0200 Install src/spawn.h as it is part of the plugin API src/Makefile.am | 1 + wscript | 1 + 2 files changed, 2 insertions(+) commit c021447394d5b4510212d3c3f450c6b9a4c5d810 Author: Colomban Wendling Date: Sun Jul 12 01:45:39 2015 +0200 Fix a few typos in NEWS NEWS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 676f3794fcae6068da770eecc1570c5868bd8a44 Merge: 73822e77e d6d4728f2 Author: Colomban Wendling Date: Sat Jul 11 22:34:41 2015 +0200 Merge pull request #553 from b4n/no-reload-maintain-history-by-default Disable "maintain history on reload" by default commit 73822e77ec3e6c99048298c07d7c06f8c9498532 Merge: 05f35ed68 e0eb17641 Author: Colomban Wendling Date: Sat Jul 11 22:22:09 2015 +0200 Merge pull request #556 from b4n/gtk3-in-news Replace references to GTK2 with GTK+ and "stabilize" GTK3 in NEWS commit 6c753e591befda8eefe51f4ca3a4f7b8111c5e36 Author: Colomban Wendling Date: Sat Jul 11 22:14:25 2015 +0200 filebrowser: Use Spawn module to launch the external command This makes the command syntax consistent with other Geany ones and more native on Windows. plugins/filebrowser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 05f35ed68327513727765cb09be7564db7718ac0 Author: Colomban Wendling Date: Sat Jul 11 22:12:08 2015 +0200 Include spawn.h in geanyplugin.h as it has Plugin API bits in it plugins/geanyplugin.h | 1 + 1 file changed, 1 insertion(+) commit 5379e1387fcddc28c3bbcc02faa9bbd1b7cdcd8a Author: Enrico Tröger Date: Sat Jul 11 16:36:03 2015 +0200 Windows installer: fix plugin installation directory geany.nsi.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d6d4728f2e708ed275ea9a2b045a8c58c509f138 Author: Colomban Wendling Date: Sat Jul 11 15:35:36 2015 +0200 Rename "maintain history on reload" setting temporarily for 1.25 We want it disabled by default in 1.25 for everyone, but want to be able to get it back on by default later on when the UI is more polished. So we will need to have a way to tell whether the configuration comes from 1.25 and should be upgraded or was willfully disabled by the user in a later version. So, use a temporary setting name that defaults to disabled for 1.25 See #553. doc/geany.txt | 2 +- src/keyfile.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 8c907dc00f44e66adcfbd50608e8d8a9d38386f4 Merge: fd06d47c7 e34421377 Author: Colomban Wendling Date: Sat Jul 11 15:27:02 2015 +0200 Merge pull request #555 from b4n/less-spawn-api spawn: Do not export unnecessary API commit fd06d47c7bec0659e0ce338ac6eee82de6ca9542 Merge: 860e3fb12 41184e4b9 Author: Colomban Wendling Date: Sat Jul 11 14:59:56 2015 +0200 Merge pull request #548 from techee/run_script_escape Properly escape working directory in run script Closes #554. commit 860e3fb12e3ccc785b72c0ea030f0ed954d745be Merge: 8d367d49b 10e9dd708 Author: Colomban Wendling Date: Sat Jul 11 14:09:58 2015 +0200 Merge pull request #550 from b4n/fix-ubuntu-libdir autotools: Workaround a Ubuntu issue when installing in /usr/local/lib commit 8d367d49b98f63a28e2d1a7441faa360f1292fa4 Merge: cea34734c 3e2b4a269 Author: Enrico Tröger Date: Sat Jul 11 10:05:30 2015 +0200 Merge pull request #360 from b4n/travis-test travis: Add a Travis CI settings file commit 3e2b4a269b592908a6a80240a2c5338c70c25b4a Author: Colomban Wendling Date: Fri Jul 10 23:45:48 2015 +0200 travis: Make it a bit easier to change GTK bundle URLs scripts/cross-build-mingw.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 02e6682ea65ad0094d2cee0b14a2c8c4afa738b6 Author: Colomban Wendling Date: Fri Jul 3 15:33:09 2015 +0200 travis: Enable Windows cross-compilation We unfortunately can't run tests as they require running the just build (foreign) executable, but at least it tries and build the Windows code paths. .travis.yml | 24 +++++++--- scripts/cross-build-mingw.sh | 102 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 119 insertions(+), 7 deletions(-) commit e0eb1764189b3b44e1c2d4c16af30ea8b6a3d51b Author: Colomban Wendling Date: Fri Jul 10 23:00:22 2015 +0200 Mention that GTK3 version is not experimental anymore NEWS | 1 + 1 file changed, 1 insertion(+) commit 3bd7c80776b0fcdb8c6929d5f4553cb865bd31b9 Author: Colomban Wendling Date: Fri Jul 10 22:58:48 2015 +0200 Replace references to GTK2 with GTK+ This allows to be GTK version agnostic, not to single out GTK3 builds. README | 4 ++-- configure.ac | 2 +- doc/geany.txt | 2 +- geany.desktop.in | 2 +- geany.pc.in | 2 +- geany.spec.in | 2 +- po/ar.po | 4 ++-- po/ast.po | 4 ++-- po/be.po | 4 ++-- po/bg.po | 2 +- po/ca.po | 4 ++-- po/cs.po | 4 ++-- po/de.po | 4 ++-- po/el.po | 4 ++-- po/en_GB.po | 4 ++-- po/es.po | 4 ++-- po/et.po | 6 +++--- po/eu.po | 4 ++-- po/fa.po | 4 ++-- po/fi.po | 4 ++-- po/fr.po | 4 ++-- po/gl.po | 4 ++-- po/he.po | 4 ++-- po/hi.po | 4 ++-- po/hu.po | 4 ++-- po/id.po | 4 ++-- po/it.po | 4 ++-- po/ja.po | 4 ++-- po/kk.po | 4 ++-- po/ko.po | 4 ++-- po/lb.po | 4 ++-- po/lt.po | 4 ++-- po/mn.po | 2 +- po/nl.po | 4 ++-- po/nn.po | 4 ++-- po/pl.po | 4 ++-- po/pt.po | 4 ++-- po/pt_BR.po | 4 ++-- po/ro.po | 4 ++-- po/ru.po | 4 ++-- po/sk.po | 2 +- po/sl.po | 4 ++-- po/sr.po | 2 +- po/sv.po | 4 ++-- po/tr.po | 4 ++-- po/uk.po | 4 ++-- po/vi.po | 4 ++-- po/zh_CN.po | 4 ++-- po/zh_TW.po | 4 ++-- 49 files changed, 90 insertions(+), 90 deletions(-) commit e34421377c7f82cbb4d7965227a64c6d3162466d Author: Colomban Wendling Date: Fri Jul 10 22:41:02 2015 +0200 spawn: Remove unnecessary and redundant comments src/spawn.c | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) commit 7a91a8661dceff94623da7569b381cd479af301b Author: Colomban Wendling Date: Fri Jul 10 18:15:14 2015 +0200 spawn: Do not export unnecessary API Hide spawn_get_program_name(), spawn_async_with_pipes() and spawn_get_exit_status_cb(), which are not used by anyone else and should not be part of the plugin API unless explicitly required. See http://lists.geany.org/pipermail/devel/2015-June/thread.html#9521 Note: this duplicates some documentation when a now hidden function was referred to. NEWS | 8 +++----- src/spawn.c | 63 ++++++++++++++++++++++++++++++++++++++++--------------------- src/spawn.h | 8 -------- 3 files changed, 44 insertions(+), 35 deletions(-) commit cea34734c472c0374ddbfc0b0655665d47027413 Author: Colomban Wendling Date: Wed Jul 8 18:39:53 2015 +0200 Update NEWS NEWS | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) commit 96d5eec50f35b9daeb7da882ed6b98ff47edaf17 Merge: c5b86474a 4476ed9c4 Author: Colomban Wendling Date: Wed Jul 8 18:04:05 2015 +0200 Merge pull request #544 from b4n/cxx11-override c++: Properly parse C++11 overrides, finals and noexcepts commit 6f5d5db2cb6da4970aa78a64efee3a91727fea51 Author: Colomban Wendling Date: Wed Jul 8 17:47:49 2015 +0200 Disable "maintain history on reload" by default While the feature is nice, it might be unexpected and lacks user feedback. This might lead to user thinking they lost their work because they don't know they can undo the reload operation. So, disable the feature by default until we introduce appropriate user feedback allowing the user to learn about the feature and new behavior. See http://lists.geany.org/pipermail/devel/2015-June/thread.html#9537 NEWS | 4 ++-- doc/geany.txt | 2 +- src/keyfile.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit c5b86474adccb2dbcbf4631e96631bb653dae759 Merge: 6ebf90ad1 71ce7c077 Author: Colomban Wendling Date: Tue Jul 7 17:34:43 2015 +0200 Merge pull request #539 from kugel-/win32-fix Win32 Autotools build and installer fixes. commit 71ce7c077d05353adbe1f0a78cc3c5204ceeb1ec Author: Thomas Martitz Date: Wed Jul 1 16:39:08 2015 +0200 win32: Add some window-specifc LDFLAGS to geany itself as well Since we build libgeany some ld flags were applied to libgeany only. Some of them need to be applied to the main binary as well. This fixes the problem that a sticky terminal window starts together with geany. src/Makefile.am | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 9224c3c3912960e321d29875353cb166427060e6 Author: Thomas Martitz Date: Tue Jun 23 07:11:08 2015 +0200 win32: run geany.nsi.in through automake to replace @GTK_VERSION@ variable This automatically keeps the installer's idea of Gtk version with the one used to compile geany in sync. Traditionally we use the bundles from gtk.org to compile geany, and this is also used for the installer. With msys2, we can use precompiled msys2 binaries. These exist for GTK3 as well so we can actually provide a GTK3 based installer. The installer naturually should reflect this. Msys2's GTK2 is also newer. Use the new script gtk-bundle-from-msys2.sh to extract the precompiled GTK binaries from msys2 / pacman for packing the installer (can also be used to make a zip for sharing). mkdir gtk; cd gtk; ../scripts/gtk-bundle-from-msys.sh [-c] [-z] [-2 | -3] waf is also adapted to process geany.nsi.in. This implies geany.nsi is now under _build_, not in the root anymore. .gitignore | 1 + configure.ac | 2 + geany.nsi => geany.nsi.in | 23 +++++++-- scripts/gtk-bundle-from-msys2.sh | 109 +++++++++++++++++++++++++++++++++++++++ wscript | 10 ++++ 5 files changed, 140 insertions(+), 5 deletions(-) commit 2e76e3792e7d8a568aeadc5a9cdbf37c9eca8661 Author: Thomas Martitz Date: Tue Jun 23 07:07:02 2015 +0200 win32: port some defines from win32-config.h & waf to a new win32defines.h autotools based build system uses only config.h. This file was lacking some important defines. Rather than maintaining the defines in all build systems, we can simply define in a specialized header that is included by all .c files that use windows.h src/Makefile.am | 2 +- src/socket.c | 1 + src/spawn.c | 1 + src/win32.c | 4 ++-- src/win32defines.h | 31 +++++++++++++++++++++++++++++++ win32-config.h | 6 ------ wscript | 3 --- 7 files changed, 36 insertions(+), 12 deletions(-) commit ba80af0822da934f6d11a1c7564d0013bdebf976 Author: Thomas Martitz Date: Tue Jun 23 07:05:35 2015 +0200 win32: install a few more files needed by the installer Makefile.am | 9 +++++++++ 1 file changed, 9 insertions(+) commit 10e9dd70899cf7bc28246d84dce8a6483ed85f80 Author: Colomban Wendling Date: Sun Jul 5 16:17:55 2015 +0200 autotools: Workaround a Ubuntu issue when installing in /usr/local/lib Ubuntu's linker apparently has a bug when installing in /usr/local/lib, as it is setup in such a way that makes libtool recognize it correctly as a system path so doesn't add RPATH to our executable, but ld can't find the library without an explicit ldconfig call (unlike when installing in /usr/lib). So, workaround this by explicitly calling ldconfig when installing in /usr/local/lib -- and when our library is actually not found, to try and avoid doing something unnecessary on working systems, like e.g. Debian. src/Makefile.am | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 6ebf90ad1d04b5c8eb50f69e9b497486ac66a10c Author: Colomban Wendling Date: Sun Jul 5 02:04:22 2015 +0200 Add an explicit entry about libgeany in the NEWS NEWS | 2 ++ 1 file changed, 2 insertions(+) commit 43a76923dbee4726e140879714eeefc026fb528c Author: Colomban Wendling Date: Sat Jul 4 18:44:39 2015 +0200 Fix a small inconsistency in the French translation In the VTE, the "Input Method" string mimics a GTK string, so use the same translation as GTK. po/fr.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4017442f86b2374dce86cb3855b48d3d7c9e24fe Merge: a90b99b96 8a6fbd978 Author: Enrico Tröger Date: Sat Jul 4 12:52:46 2015 +0200 Merge pull request #477 from eht16/ctags_powershell Add PowerShell tag parser commit a90b99b968be529c59d0f371975c8be0bfbfa258 Merge: aa40250fd 0b4228b94 Author: Enrico Tröger Date: Sat Jul 4 12:29:22 2015 +0200 Merge pull request #540 from kugel-/win32-plugindir win32: change default plugin dir to match Linux. commit 41184e4b986b513da7163136da38eb6401ca88e5 Author: Jiří Techet Date: Fri Jul 3 10:30:23 2015 +0200 Properly escape working directory in run script using g_shell_quote() The g_strescape() function escapes non-ASCII characters so that bash doesn't understand them. src/build.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e22f0ca05417d026b434518ce60e344a62514738 Author: Colomban Wendling Date: Mon Oct 20 18:49:41 2014 +0200 travis: Add a Travis CI settings file .travis.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit b6f1eb9136323b0aa8e770ff636053888d3a47f4 Author: Jiří Techet Date: Thu Jul 2 18:04:22 2015 +0200 Show tooltip in correct encoding in the file browser Clearly a typo in the original code. plugins/filebrowser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0b4228b94c6d647cb761f96ffd9f619bb38c4306 Author: Thomas Martitz Date: Sat Jun 27 23:49:20 2015 +0200 win32: change default plugin dir to match Linux. There is no need to do it differently as Linux here, and it confuses the autotools based compilation of geany-plugins which installs to libdir/geany unconditionally. geany.nsi | 2 +- plugins/Makefile.am | 4 ---- src/utils.c | 2 +- wscript | 2 +- 4 files changed, 3 insertions(+), 7 deletions(-) commit aa40250fdab5b1b5867b48a19d12c2a9cf2ecf7b Author: Colomban Wendling Date: Wed Jul 1 23:03:38 2015 +0200 Fix invalid memory access when quitting When quitting and the prefs dialog has been created, the StashPrefs are destroyed before the stash tree and so the stash tree cleanup code accesses freed memory. Fix this by removing access to the StashPref in the tree cleanup code, as fixing it properly is a bit of a mess. Closes #538. src/stash.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 11d0d54552aa3565c88db646169a13405b6692aa Merge: 89f7a2eec 891997a5b Author: Enrico Tröger Date: Wed Jul 1 20:42:12 2015 +0200 Merge pull request #519 from techee/cxx_o2 Add -O2 flag also for C++ files when building with waf commit 4476ed9c4b238072f52cefd7baf93f725048cde1 Author: Colomban Wendling Date: Wed Jul 1 03:30:29 2015 +0200 c++: Add a small test combining various C++14 things tests/ctags/Makefile.am | 1 + tests/ctags/cxx14-combined.cpp | 8 ++++++++ tests/ctags/cxx14-combined.cpp.tags | 6 ++++++ 3 files changed, 15 insertions(+) commit f60b31385e4da74d3b926c8e0c8f97c00a508d7b Author: Colomban Wendling Date: Wed Jul 1 03:21:04 2015 +0200 c++: Handle C++11 noexcept tagmanager/ctags/c.c | 4 +++- tests/ctags/Makefile.am | 1 + tests/ctags/cxx11-noexcept.cpp | 7 +++++++ tests/ctags/cxx11-noexcept.cpp.tags | 5 +++++ 4 files changed, 16 insertions(+), 1 deletion(-) commit 95a0d4db7e2188a62cf7770496ee2a51591f1962 Author: Colomban Wendling Date: Tue Jun 30 14:40:55 2015 +0200 c++: Properly parse C++11 override and final members As `override` and `final` aren't real keywords, handle them manually not to break identifiers of those names. tagmanager/ctags/c.c | 8 +++++++- tests/ctags/Makefile.am | 1 + tests/ctags/cxx11-final.cpp | 2 +- tests/ctags/cxx11-override.cpp | 23 +++++++++++++++++++++++ tests/ctags/cxx11-override.cpp.tags | 9 +++++++++ 5 files changed, 41 insertions(+), 2 deletions(-) commit 641863c2647c21abb36aedc40ac93e6cc478f920 Author: Colomban Wendling Date: Tue Jun 30 23:15:09 2015 +0200 c++: Fix handling of the `final` contextual keyword `final` is not a normal keyword, as it only have a special meaning in some specific context. So, use a special case instead of a keyword not to break identifiers of that name. tagmanager/ctags/c.c | 19 ++++++++++--------- tests/ctags/Makefile.am | 1 + tests/ctags/cxx11-final.cpp | 23 +++++++++++++++++++++++ tests/ctags/cxx11-final.cpp.tags | 9 +++++++++ 4 files changed, 43 insertions(+), 9 deletions(-) commit 89f7a2eec92b8d37dd71349952328f091f096b42 Author: Jiří Techet Date: Tue Jun 30 13:23:02 2015 +0200 Fix leaking typename_array in tag manager tagmanager/src/tm_workspace.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8a6fbd978691fa324bd5c5ff171bcd508e3b466c Author: Enrico Tröger Date: Sat Apr 25 16:17:03 2015 +0200 Add PowerShell tag parser src/filetypes.c | 2 +- src/symbols.c | 3 +- tagmanager/ctags/Makefile.am | 1 + tagmanager/ctags/makefile.win32 | 2 +- tagmanager/ctags/parsers.h | 3 +- tagmanager/ctags/powershell.c | 628 ++++++++++++++++++++++++++++++++++++++++ tagmanager/src/tm_parser.h | 1 + tests/ctags/Makefile.am | 1 + tests/ctags/simple.ps1 | 112 +++++++ tests/ctags/simple.ps1.tags | 16 + wscript | 1 + 11 files changed, 766 insertions(+), 4 deletions(-) commit db30fdc6ecfb4dc0580bd635541854bfb5d8dc53 Author: Colomban Wendling Date: Sat Jun 27 15:17:34 2015 +0200 Recognize XPM files as C sources data/filetype_extensions.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d32ca92a8a7077472cd98ef89954557405186927 Merge: 01612a950 14bcd9c87 Author: Colomban Wendling Date: Sat Jun 27 14:37:13 2015 +0200 Merge pull request #537 from b4n/fix-binreloc Fix binary relocation support commit 01612a9505cd3671e6b5d899454b098cfae28d0a Merge: 46a123d6f fc82f9d9e Author: Colomban Wendling Date: Sat Jun 27 14:33:11 2015 +0200 Merge pull request #536 from zhekov/spawn Spawn fixes/improvements commit 14bcd9c87df27ee64e17c22ba01194c6011f4a02 Author: Colomban Wendling Date: Fri Jun 26 22:33:16 2015 +0200 Fix binary relocation support src/Makefile.am | 4 ++++ src/utils.c | 1 + 2 files changed, 5 insertions(+) commit fc82f9d9e1bc3077f7d36feb690a7f90bba1399d Author: Dimitar Zhekov Date: Fri Jun 26 18:57:44 2015 +0300 Fix spawn with -DSPAWN_TEST not to require GEANY_API_SYMBOL As stated in spawn.c, "This module does not depend on Geany when compiled for testing (-DSPAWN_TEST)." src/spawn.c | 1 + 1 file changed, 1 insertion(+) commit 8aebf54b4716c7ca443851c1c72e6bc926e03371 Author: Dimitar Zhekov Date: Fri Jun 26 18:44:56 2015 +0300 Fix spawn_async_with_pipes() to work without watch for child_pid=NULL On child_pid=NULL, the Windows process handle is now closed ASAP, so no main glib event loop is required. src/spawn.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) commit 46a123d6fe6279896197738d709d4420861df651 Author: Colomban Wendling Date: Sat Jun 20 14:04:17 2015 +0200 python: Fix handling of inline comments If there was two hashes (#) in an inline comment, only the content between the two was considered a comment. X-Universal-CTags-Commit-ID: ee93f5b9f393e76a850cf8c894cc748a62981156 tagmanager/ctags/python.c | 5 ++++- tests/ctags/Makefile.am | 1 + tests/ctags/python-comments.py | 8 ++++++++ tests/ctags/python-comments.py.tags | 2 ++ 4 files changed, 15 insertions(+), 1 deletion(-) commit d2052b55bafeb0a6433dfdc9f3b7f95623bb73c2 Merge: 54eff298b 6781ab30c Author: Colomban Wendling Date: Thu Jun 25 22:39:02 2015 +0200 Merge pull request #532 from techee/optimize_python python: optimize skipEverything() commit 6781ab30c54efdb29d41e45bc20cc2eec0124f66 Author: Jiří Techet Date: Thu Jun 25 22:10:32 2015 +0200 python: optimize skipEverything() Most of the time there's no start of a string which means all the 10 strcmp()s are done for every character of the input. This is very expensive: before this patch this function alone takes 55% of the parser time. When comparing by character (and avoiding further comparison if the first character doesn't match), this function takes only 11% of the parser time so the performance of the parser nearly doubles. In addition check for the "rb" prefix which is possible in Python 3. Ported from universal-ctags. tagmanager/ctags/python.c | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) commit 54eff298bdff43bf86c40fb12210e2a761abeca6 Author: elextr Date: Thu Jun 25 05:56:43 2015 +1000 Fix Manual for Build Menu Keybindings Only fixed items can have keybindings but this manual entry was missed when one execute item was changed from fixed to optional. doc/geany.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 98748707b80eca34bd939cfac06095b2323132cb Author: Frank Lanitz Date: Wed Jun 24 15:47:01 2015 +0200 Update of Belarussian translation po/be.po | 2081 +++++++++++++++++++++++++++----------------------------------- 1 file changed, 918 insertions(+), 1163 deletions(-) commit d124f563759e6dfd133bf37d61dc74344f773806 Merge: b165de1f7 e7a52ccec Author: Frank Lanitz Date: Wed Jun 24 10:30:35 2015 +0200 Merge pull request #529 from xhacker/zh_CN Update Simplified Chinese translation commit e7a52ccec5731835fae13d9ceb1348d0fd96745d Author: LIU Dongyuan / 柳东原 Date: Tue Jun 23 23:10:52 2015 -0700 Update Simplified Chinese translation po/zh_CN.po | 156 ++++++++++++++++++++++++++++-------------------------------- 1 file changed, 73 insertions(+), 83 deletions(-) commit b165de1f77d4c726489b9eaac665df4c81b25962 Author: Colomban Wendling Date: Tue Jun 23 01:54:22 2015 +0200 Fix color of unmodified build commands on GTK3 Also, as changing the color of the label button doesn't currently work on GTK2, but would on GTK3 with this change, explicitly skip it for consistency. Closes #528. src/build.c | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) commit 09cd9b4d30fc92ccc0d966ee314f424a34fa3171 Author: Colomban Wendling Date: Tue Jun 23 00:04:19 2015 +0200 Small update of the French translation po/fr.po | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) commit 15f012c2bf32f9b700c0e7eb9ef7f1def6229fa3 Author: Frank Lanitz Date: Mon Jun 22 23:14:02 2015 +0200 Update of Portuguese translation po/pt.po | 76 ++++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 40 insertions(+), 36 deletions(-) commit e274dba084378aeb9ee87ff137b1a984da6097a7 Author: Frank Lanitz Date: Mon Jun 22 21:56:02 2015 +0200 Update of German translation po/de.po | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit a26bd58639123d91b703e3b27269705184cf6437 Merge: 094a71c2c 3c38434d5 Author: Frank Lanitz Date: Mon Jun 22 19:13:20 2015 +0200 Merge pull request #526 from b4n/po/fr French translation update commit 094a71c2cbc3f60a0ede5d37fbf2cb8901433a0c Author: Frank Lanitz Date: Mon Jun 22 19:12:14 2015 +0200 Update of Spanish translation po/es.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0cc3bf31c2b83d53d48b9e3feda90715833e84ed Author: Colomban Wendling Date: Mon Jun 22 15:46:11 2015 +0200 Move comment meant for translators so xgettext can pick them Apparently xgettext only recognize comments that are straight above the translation, so move them where it can find them. src/spawn.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 3c38434d51e270940f4a20ffa15c0fd2763af398 Author: Colomban Wendling Date: Mon Jun 22 15:40:55 2015 +0200 French translation update po/fr.po | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) commit d37588241a6664ac2ad57b557daa9b56b28b47c9 Merge: 5e9176512 5bb21066a Author: Frank Lanitz Date: Mon Jun 22 10:35:31 2015 +0200 Merge pull request #525 from scriptum/russian-translation Update of Russian translation commit 5bb21066abd274981c0e7b235825a790e25bbc34 Author: Pavel Roschin Date: Mon Jun 22 11:00:00 2015 +0300 Update of Russian translation po/ru.po | 56 ++++++++++++++++++++++++++------------------------------ 1 file changed, 26 insertions(+), 30 deletions(-) commit 5e9176512dca0a22f00debc6ae8854ee27419cad Author: Frank Lanitz Date: Sun Jun 21 15:17:46 2015 +0200 Update of Spanish translation po/es.po | 114 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 57 insertions(+), 57 deletions(-) commit 5ebed27d4bc691908825a4af06605215cee6206e Author: Colomban Wendling Date: Sun Jun 21 14:23:44 2015 +0200 Fix incorrect variadic argument type fetch (oops) src/symbols.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 37794432ccf22acd24dbc3b29000ad06ad904afc Author: Matthew Brush Date: Sat Jun 20 20:25:08 2015 -0700 Add G_BEGIN_DECLS and G_END_DECLS to spawn.h src/spawn.h | 4 ++++ 1 file changed, 4 insertions(+) commit f7a036aab8f022195ba017895a4b77283a6da65c Author: Colomban Wendling Date: Sat Jun 20 19:03:31 2015 +0200 VTE: Switch directory on startup when following current document's path src/vte.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 5c2ac4c856061d7f4c383d6073e4fa78894db670 Author: Frank Lanitz Date: Sat Jun 20 18:17:26 2015 +0200 Initial update of po files for string freeze of Geany 1.25 po/ar.po | 3291 +++++++++++++++++++++++--------------------- po/ast.po | 3340 ++++++++++++++++++++++---------------------- po/be.po | 3320 ++++++++++++++++++++++---------------------- po/bg.po | 3345 ++++++++++++++++++++++---------------------- po/ca.po | 3336 ++++++++++++++++++++++---------------------- po/cs.po | 3332 ++++++++++++++++++++++---------------------- po/de.po | 445 +++--- po/el.po | 1858 +++++++++++++------------ po/en_GB.po | 3327 ++++++++++++++++++++++---------------------- po/es.po | 3345 ++++++++++++++++++++++---------------------- po/et.po | 3292 +++++++++++++++++++++++--------------------- po/eu.po | 3292 +++++++++++++++++++++++--------------------- po/fa.po | 3325 ++++++++++++++++++++++---------------------- po/fi.po | 3333 ++++++++++++++++++++++---------------------- po/fr.po | 1990 +++++++++++++-------------- po/gl.po | 4397 +++++++++++++++++++++++++++++++--------------------------- po/he.po | 3322 +++++++++++++++++++++++--------------------- po/hi.po | 3171 +++++++++++++++++++++--------------------- po/hu.po | 4423 +++++++++++++++++++++++++++++++---------------------------- po/id.po | 4290 +++++++++++++++++++++++++++++++++------------------------ po/it.po | 1960 +++++++++++++------------- po/ja.po | 1681 ++++++++++++----------- po/kk.po | 3310 +++++++++++++++++++++++--------------------- po/ko.po | 3319 ++++++++++++++++++++++---------------------- po/lb.po | 3341 ++++++++++++++++++++++---------------------- po/lt.po | 3335 ++++++++++++++++++++++---------------------- po/mn.po | 3326 ++++++++++++++++++++++---------------------- po/nl.po | 1690 ++++++++++++----------- po/nn.po | 3251 ++++++++++++++++++++++--------------------- po/pl.po | 1762 ++++++++++++------------ po/pt.po | 1646 +++++++++++----------- po/pt_BR.po | 507 +++---- po/ro.po | 3337 ++++++++++++++++++++++---------------------- po/ru.po | 1767 ++++++++++++------------ po/sk.po | 3331 ++++++++++++++++++++++---------------------- po/sl.po | 3345 ++++++++++++++++++++++---------------------- po/sr.po | 869 ++++++------ po/sv.po | 3331 ++++++++++++++++++++++---------------------- po/tr.po | 3326 ++++++++++++++++++++++---------------------- po/uk.po | 3333 ++++++++++++++++++++++---------------------- po/vi.po | 3337 ++++++++++++++++++++++---------------------- po/zh_CN.po | 3321 +++++++++++++++++++++++--------------------- po/zh_TW.po | 3320 ++++++++++++++++++++++---------------------- 43 files changed, 65128 insertions(+), 60391 deletions(-) commit 3a8ef62794731c3c0541296e4dba5c832bd08494 Author: Matthew Brush Date: Fri Jun 19 17:12:53 2015 -0700 Fix GLib version number missed in last bump (oops) configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3b1f20037b8cfc7d63ff852be1d654d3f806714f Merge: f427a3a6e 3ad162724 Author: Enrico Tröger Date: Thu Jun 18 23:11:32 2015 +0200 Merge pull request #291 from bittner/master Autodetect .bashrc, .bash_aliases, and the like commit f427a3a6e19fe8c7190b0f8a1c269f3e739fbfb3 Merge: f715f8a35 358758c9f Author: Colomban Wendling Date: Thu Jun 18 16:49:37 2015 +0200 Merge pull request #455 from techee/filebrowser_icons Show icons corresponding to MIME types in the file browser plugin commit f715f8a35c79e7f5c1ef70b276d7b1bbc51d0bc2 Merge: 67b464a58 5a8e89ce8 Author: Colomban Wendling Date: Thu Jun 18 16:22:25 2015 +0200 Merge pull request #425 from b4n/remove-some-unused-sciwrappers Remove a few unused Scintilla wrappers functions commit 891997a5bf55f50d2ded04dbbd9b09f517d26b84 Author: Jiří Techet Date: Thu Jun 18 10:28:02 2015 +0200 Add -O2 -g flags also for C++ files when building with waf wscript | 4 ++++ 1 file changed, 4 insertions(+) commit 67b464a586f62d2e4294f9325ac72d977ad34828 Author: Colomban Wendling Date: Tue Jun 2 14:45:22 2015 +0200 GTK: Fix runtime completion popup warning GtkScrolledWindow in GTK 3.16 might have a minimum and natural height of 0 if GTK_OVERLAY_SCROLLING is enabled (which is the default), so we need to fix our overridden minimal height to never be greater than the natural height. Do that by only changing the minimal height if it is greater than what we want. I don't know why we didn't use to set 0 here, but it might be that a height of 0 caused problems on older GTK versions, so keep 1 to be sure. X-Scintilla-Commit-ID: e9f9c964236a6b740f75d09a8b0ac76e5d6dd09f scintilla/gtk/PlatGTK.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3ad162724981b65937edbb4a9776b77a11063574 Author: Peter Bittner Date: Thu Jun 19 16:24:07 2014 +0200 Autodetect .bashrc, .bash_aliases, and the like Autodetect /etc/bash_completion (and the like) Splitted up autodetection patterns for Bash This will match: - `*.bash` (any manufactured Bash scripts) - `~/.bashrc` (hidden Bash configuration in your home directory) - `~/.bash_*` (partials included by bashrc, e.g. `.bash_aliases`, `.bash_history`, `.bash_logout`) - `/etc/bash.bashrc` (global Bash configuration) - `/etc/bash_completion` (and potentially any other `/etc/bash_*` file) data/filetype_extensions.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 358758c9f8feddac6c3a06005f309b53506c99d5 Author: Jiří Techet Date: Tue Jun 16 15:43:45 2015 +0200 Show icons corresponding to MIME types in the file browser plugin plugins/filebrowser.c | 48 ++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 4 deletions(-) commit f86b39c7cb5242cd0753ef31e3d30f1026a07de0 Merge: 1306bc52d ecc4e0285 Author: Colomban Wendling Date: Mon Jun 15 21:39:22 2015 +0200 Merge pull request #491 from techee/ft_config Add filetype configuration menu entries commit ecc4e0285af770865edb96a293913c80c0b1fd66 Author: Jiří Techet Date: Mon Jun 15 17:14:00 2015 +0200 Add filetype configuration menu entries This adds a "Filetype Configuration" under Tools->Configuration Files with all filetype configuration files (grouped by language type). This patch mostly reuses the stuff we already have in Geany - the menu creation code from Document->Set Filetype, file creation in the .config directory if it doesn't exist (similarly to filetypes.common) and config file reloading when the file gets updated. src/filetypes.c | 82 +++++++++++++++++++++++++++++++++++++++------------------ src/ui_utils.c | 15 ++++++++++- src/ui_utils.h | 3 +-- 3 files changed, 72 insertions(+), 28 deletions(-) commit 1306bc52d8e081ce0dee45d3610ebe1f83c10621 Merge: 6f60de365 8eaaf723b Author: Colomban Wendling Date: Mon Jun 15 15:39:24 2015 +0200 Merge pull request #506 from techee/msgwin_resize Don't resize message window when changing Geany's window height commit 6f60de3656b48b954da5d2b3dd1dc46c96844025 Merge: 48ea3e6f8 e26c9ba2c Author: Colomban Wendling Date: Mon Jun 15 14:56:07 2015 +0200 Merge pull request #514 from techee/linear_tag_remove Add linear tag remove path for cases where not many files are open commit 48ea3e6f85d2d86353a552c6542b8f3684703cb1 Merge: 733b10efc cdd07e15f Author: Colomban Wendling Date: Mon Jun 15 14:29:12 2015 +0200 Merge pull request #515 from b4n/symbol-icons-fixes Fix unreffing NULL icons when generating tags commit 733b10efc4f3d757726376e453e880d6409db62d Merge: 195d2e3a7 882687ec3 Author: Colomban Wendling Date: Mon Jun 15 00:10:09 2015 +0200 Merge branch 'universal-ctags-fixes' Import some various parser fixes from Universal CTags. commit cdd07e15f5f4ad48b2aff3979b620916cfd78446 Author: Colomban Wendling Date: Sun Jun 14 23:43:17 2015 +0200 Fix unreffing NULL icons when generating tags src/symbols.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 195d2e3a77f6922b7575c52c5abb11b44667bb6d Author: Colomban Wendling Date: Sun Jun 14 23:17:27 2015 +0200 Don't try and query the theme when we don't have a screen This happens when generating tags. src/ui_utils.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 23eff5cadfd6a824d745fd4cffd0749d41ff44fc Author: Colomban Wendling Date: Sun Jun 14 20:19:55 2015 +0200 Over-engineer symbol tree icon cache a little This will get useful to fix problems when generating tags. src/symbols.c | 418 ++++++++++++++++++++++++++++++---------------------------- 1 file changed, 217 insertions(+), 201 deletions(-) commit 882687ec37d41bcd74e07ab13ead45ce2141ecad Author: Colomban Wendling Date: Mon May 18 18:39:32 2015 +0200 C#: Don't ignore the character following an '@' The character following an '@' was dropped if it didn't start a string literal. This could lead to unexpected problems if '@' was valid in other situations. X-Universal-CTags-Commit-ID: 2e62f475af1db08850447de46f56db14ce99d2eb tagmanager/ctags/get.c | 2 ++ 1 file changed, 2 insertions(+) commit dbbc042786e7d78e16a7b63dc2fd58cae0fab8f1 Author: Colomban Wendling Date: Mon May 18 18:38:09 2015 +0200 c family: Add support for digraphs See http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf 6.4.6§3. Note: This is not exactly the upstream Universal CTags commit because it depends on another change for adding the `enter` label, which was then included here. X-Universal-CTags-Commit-ID: 3b3b60c7664a321a31ec87de336fc6bda90c405e tagmanager/ctags/get.c | 37 +++++++++++++++++++++++++++++++++++++ tests/ctags/Makefile.am | 1 + tests/ctags/c-digraphs.c | 35 +++++++++++++++++++++++++++++++++++ tests/ctags/c-digraphs.c.tags | 12 ++++++++++++ 4 files changed, 85 insertions(+) commit b737f031cab65e345cb29504c2b39f1924900781 Author: Colomban Wendling Date: Mon May 18 14:51:44 2015 +0200 c family: Fix trigraph handling X-Universal-CTags-Commit-ID: d6d1a0f2b90a600bdec9cd6ba964ee69382743e4 tagmanager/ctags/get.c | 4 +-- tests/ctags/Makefile.am | 1 + tests/ctags/c-trigraphs.c | 56 ++++++++++++++++++++++++++++++++++++++++++ tests/ctags/c-trigraphs.c.tags | 15 +++++++++++ 4 files changed, 73 insertions(+), 3 deletions(-) commit b975c2652da201c9e84f4b817c18408814364f36 Author: Colomban Wendling Date: Mon May 18 14:43:10 2015 +0200 read: Allow to unget up to 3 characters Some parsers need to unget more than one characters, so add support for this. X-Universal-CTags-Commit-ID: 956af0555d3a8ef33304c5ae6ed873f22b4e4284 tagmanager/ctags/read.c | 12 ++++++++---- tagmanager/ctags/read.h | 3 ++- 2 files changed, 10 insertions(+), 5 deletions(-) commit e26c9ba2ced88d5bcf1804e228918b63cae76b20 Author: Jiří Techet Date: Sun Jun 14 17:52:24 2015 +0200 Add linear tag remove path for cases where not many files are open When tested with 200000 LOC python file (created by making many copies of scripts/create_py_tags.py), the tm_tags_remove_file_tags() function takes about 50% of the CPU time when only this file is open. After adding the linear path to tm_tags_remove_file_tags() it takes just about 2%. See the comment in the patch for more details. tagmanager/src/tm_tag.c | 74 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 50 insertions(+), 24 deletions(-) commit 944bffb9673660b4d0b37fee2037541b148f0627 Author: Colomban Wendling Date: Tue Jun 9 15:06:12 2015 +0200 json: Fix handling of tags containing a dot X-Universal-CTags-Commit-ID: 7ae28a3d8a7ad5f8a9d6399a4e357fcf19ad2b2e tagmanager/ctags/json.c | 10 +--------- tests/ctags/Makefile.am | 1 + tests/ctags/dotted-names.json | 25 +++++++++++++++++++++++++ tests/ctags/dotted-names.json.tags | 20 ++++++++++++++++++++ 4 files changed, 47 insertions(+), 9 deletions(-) commit f30b72d91e266236af145f84b8fc01444c66c813 Author: Colomban Wendling Date: Tue Jun 9 19:09:55 2015 +0200 vstring: Add vStringTruncate() Add API to truncate a vString to a certain length. This doesn't support growing the string, only shrinking it. X-Universal-CTags-Commit-ID: 4e3d9edf2e7a8a476ff97bc678e71c3919b960f9 tagmanager/ctags/vstring.c | 13 ++++++++++--- tagmanager/ctags/vstring.h | 1 + 2 files changed, 11 insertions(+), 3 deletions(-) commit d75598cc4895c0dc68dbd00a5ed819943a31242f Author: Colomban Wendling Date: Wed Jun 10 15:01:24 2015 +0200 python: Fix resetting scope on anonymous blocks The previous fix, coming from [CTags bug #1988026], was incorrect if the parent was not a root-level element, as it checked the level name (unqualified) against the parent name (qualified). However, there is no need to check the level name, all what counts is the indentation level itself: if it's smaller than an existing level, it ends it. This fixes [CTags bug #356]. [CTags bug #1988026]: https://sourceforge.net/p/ctags/bugs/227/ [CTags bug #356]: https://sourceforge.net/p/ctags/bugs/356/ X-Universal-CTags-Commit-ID: ab91e6e1ae84b80870a1e8712fc7f3133e4b5542 tagmanager/ctags/python.c | 18 ++++++------------ tests/ctags/Makefile.am | 1 + .../ctags/python-anonymous-nestlevel_ctags-bug-356.py | 6 ++++++ .../python-anonymous-nestlevel_ctags-bug-356.py.tags | 4 ++++ 4 files changed, 17 insertions(+), 12 deletions(-) commit 935c389f285e52fb690dc6d743c90ad3f26d0b49 Merge: 7006bdfd8 6792bf0db Author: Colomban Wendling Date: Fri Jun 12 19:06:41 2015 +0200 Merge pull request #509 from techee/child_icon + followup Cache symbol tree icons commit 6792bf0db761332742c133b93419d10a18fb9316 Author: Colomban Wendling Date: Fri Jun 12 18:54:34 2015 +0200 Simplify some code a little src/symbols.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 9458d5cfe62b9164512b62a7ced32d25404d64da Author: Colomban Wendling Date: Fri Jun 12 18:48:29 2015 +0200 Release symbols icons when quitting src/symbols.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 7006bdfd8ca696f7f53328cc7f0414fefe9ca94a Author: Jiří Techet Date: Wed Jun 10 23:46:23 2015 +0200 Sync the fold_changed() implementation with SciTE SciTE added the SCI_GETALLLINESVISIBLE check in revision 8dc4127cc8d76ecdf988928ac34e79955c09bda4: "Minimize cost of processing fold level changes to ensure visibility for the common case where the whole document is already visible." When nothing is folded, this improves the performance considerably which is visible e.g. when pasting larger amounts of text. Closes #507. src/editor.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) commit 62e6de9f10cd6143478c1f8f8b1004d50f502e65 Author: Jiří Techet Date: Thu Jun 11 12:42:28 2015 +0200 Cache symbol tree icons When profiling Geany I/O activity, there are lots of I/O operations happening when just typing in the editor caused by the updates of the symbol tree and loading the icon files. In addition, in the case of tag_other the leaves of the tree use classviewer-var instead of the parent icon (e.g. with enums). In this case the icon is loaded from the disk every time it's requested which takes about 70% of the tree creation time when the tree consists only of such nodes. To fix these problems load the icons once and return the loaded icons when requested instead of reloading them from the disk all the time. src/symbols.c | 300 ++++++++++++++++++++++++++++++---------------------------- 1 file changed, 157 insertions(+), 143 deletions(-) commit ccec1fe29acc88c72b8324d74d2e63c1b0bc8466 Merge: e38b803cc 65c34bd37 Author: Enrico Tröger Date: Fri Jun 5 18:45:56 2015 +0200 Merge pull request #414 from eht16/plugin_manager_usability Plugin manager usability improvements commit 65c34bd37e8d0102696a0ccbd8eeec04da34c862 Author: Jiří Techet Date: Sun Feb 22 18:58:34 2015 +0100 Improved search for the plugin manager Search in name, description, author fields and show all results which contain all the words from the search query. Search plugins also by filename src/plugins.c | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) commit e38b803ccde65f40fc25b1c21edde82bf67cdaf8 Author: Colomban Wendling Date: Wed Jun 3 14:45:29 2015 +0200 stash: Fix invalid free in sync from object property src/stash.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 94389788da4c332776c4d37ab024257bd4f0146a Author: Colomban Wendling Date: Wed Jun 3 14:43:39 2015 +0200 stash: Fix sync to object property src/stash.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit 8eaaf723b8c1fff2c752d7ae31d19e42ef023018 Author: Jiří Techet Date: Thu May 28 21:21:54 2015 +0200 Don't resize message window when changing Geany's window height At the moment the message window is set to resize when the height of the main window changes. This is a bit annoying when the message window size is set to fit all the tabs exactly and when shrinking the window, the tabs don't fit the shrinked message window. Set the flag not to resize the notebook_info notebook (similar thing is already done with the sidebar in the horizontal direction so no change needed there). Works fine also when the message window is set to be on the right side. data/geany.glade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3c9e5459748a9f46fbdcee7811e51ae75c17fd36 Merge: f1c98e542 97a431faf Author: Colomban Wendling Date: Thu May 28 17:55:46 2015 +0200 Merge pull request #501 from b4n/wordchars-default Respect filetype.common's wordchars if a filetype doesn't have its own commit 97a431faf2c146cc79534fb23ab9032d7f435974 Author: Colomban Wendling Date: Thu May 28 17:55:21 2015 +0200 Update the documentation on wordchars doc/geany.txt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit f1c98e5423bab3b159f1a6e9a7b37673752eeb30 Merge: b5702f03d dde13c7a1 Author: Colomban Wendling Date: Thu May 28 16:50:01 2015 +0200 Merge pull request #481 from techee/go Go ctags parser, Scintilla lexer and Geany support improvements Closes #238. commit dde13c7a1627fa3e614e4a3900bad8c0f2b43ca4 Author: Jiří Techet Date: Wed May 20 15:28:28 2015 +0200 Syntax-highlight go types src/document.c | 1 + 1 file changed, 1 insertion(+) commit 4665034cb274a2e42d59e4a897f3104a7929fdb6 Author: Jiří Techet Date: Tue May 19 11:24:27 2015 +0200 Update go keywords error was missing in secondary keywords (also sorted alphabetically now) Add true false iota nil into primary keywords which, while not strictly speaking keywords (they are predeclared identifiers), are nice to have highlighted. data/filetypes.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a6e7893c10dd9524aceca23b0a49822b49c57ca6 Author: Jiří Techet Date: Thu May 28 16:18:26 2015 +0200 Enable backquoted strings for go in cpp lexer In addition, disable (or make less visible) syntax highlighting not related to go. data/filetypes.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 95368425f4058112a021590b9f8fb52f9e51fb48 Author: Jiří Techet Date: Thu Apr 30 23:27:32 2015 +0200 Use pascal-like function prototypes for go in symbol tree src/editor.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 206379a272ebce073910a49dbcb15b21909b3d3a Author: Jiří Techet Date: Thu May 28 16:27:23 2015 +0200 Parse return value of go functions Unfortunately varType is Geany-only so this patch cannot be ported to ctags. The removal of the extra { read is not the most elegant thing but making skipType() aware of the argList collection complicates things too much. tagmanager/ctags/go.c | 43 ++++++++++++++++++++++++++-------------- tests/ctags/Makefile.am | 1 + tests/ctags/return-types.go | 16 +++++++++++++++ tests/ctags/return-types.go.tags | 6 ++++++ tests/ctags/test.go.tags | 12 +++++------ 5 files changed, 57 insertions(+), 21 deletions(-) commit e973841ceca799c3301830f792df0c39d9bab1b2 Author: Jiří Techet Date: Mon Mar 16 22:45:27 2015 +0100 Show go interfaces, structs and struct members in symbol tree src/symbols.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit e433490672da19a19554bc7f40aa6e90c67fb08b Author: Jiří Techet Date: Wed May 27 16:15:01 2015 +0200 Sync go parser with fishman-ctags New features include: * struct/interface detection * struct member parsing * function prototype parsing tagmanager/ctags/go.c | 249 ++++++++++++++++++++++++++++++++++++++--------- tests/ctags/test.go | 9 +- tests/ctags/test.go.tags | 21 ++-- 3 files changed, 220 insertions(+), 59 deletions(-) commit b5702f03dc04d774a165ff9e023ade0af38fec1e Author: Frank Lanitz Date: Wed May 27 21:59:27 2015 +0200 Update of German translation po/de.po | 49 +++++++++++++++++++++++++++++++++++++------------ 1 file changed, 37 insertions(+), 12 deletions(-) commit e12fa5d270a6f8a7093977b0df77482bb46a18a7 Merge: de8470dc5 942d4c6b7 Author: Colomban Wendling Date: Tue May 26 22:49:58 2015 +0200 Merge pull request #456 from techee/osx_vte_improvements Osx vte improvements commit de8470dc5661474739ebe8f6ef8100ac6377723a Merge: 4b9f816a0 09ee4965f Author: Colomban Wendling Date: Tue May 26 22:37:34 2015 +0200 Merge pull request #499 from techee/vte_prompt VTE prompt fixes commit 4b9f816a0388f90c4d1a56e6f9a2bb52abb2d37a Author: Colomban Wendling Date: Tue May 26 13:25:04 2015 +0200 Update NEWS Note that although the last Scintilla update was a pre-release update, the final 3.5.6 release has no changes. NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9b98d55defc918c951660f05e9ebdd30e9bfb184 Author: Colomban Wendling Date: Sun May 24 18:44:02 2015 +0200 Update Scintilla to 3.5.6 pre-release Fixes broken auto-completion popup on Windows. scintilla/gtk/PlatGTK.cxx | 18 +++++++++++++++++- scintilla/gtk/ScintillaGTK.cxx | 2 +- scintilla/lexers/LexCPP.cxx | 6 ++---- scintilla/lexers/LexFortran.cxx | 1 + scintilla/lexers/LexVHDL.cxx | 7 ++++--- scintilla/lexers/LexVerilog.cxx | 4 +++- scintilla/src/Document.cxx | 2 ++ scintilla/src/EditModel.h | 2 +- scintilla/src/Editor.h | 2 +- scintilla/src/ScintillaBase.h | 2 +- scintilla/version.txt | 2 +- 11 files changed, 34 insertions(+), 14 deletions(-) commit 19da68e1d02f99dae1a193c0e29eb5b9bf916909 Author: Colomban Wendling Date: Sat May 23 12:25:50 2015 +0200 Fix a small typo in NEWS NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3748895e32211de1ee71de02c52821dbae17ef75 Merge: 3e42c9b05 c1533332a Author: Frank Lanitz Date: Sun May 24 10:58:21 2015 +0200 Merge pull request #504 from philippwiesemann/update-links Update some links commit c1533332a79ead73c6d55021d82c705dc4972c9b Author: Philipp Wiesemann Date: Fri May 22 23:14:47 2015 +0200 Update link in translation file The old link was an empty page. po/de.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8ffe0467b782802eea14974ffb68a5cd2dd1a6cf Author: Philipp Wiesemann Date: Fri May 22 23:11:25 2015 +0200 Update link in development documentation The old link was a 404 page. HACKING | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 62157ebbdf86127f51847f9c43c6f3bbf98fe20f Author: Philipp Wiesemann Date: Fri May 22 23:06:18 2015 +0200 Update link in development documentation The project moved from Google to GitHub. HACKING | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3e42c9b05b40498a9abf6d6ef0e81226c8f79f4d Author: Colomban Wendling Date: Thu May 21 22:39:55 2015 +0200 Initial NEWS update to prepare for 1.25 NEWS | 134 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) commit 02ca046991d4679c59a5a8025a730b227e3e4c63 Author: Enrico Tröger Date: Tue May 19 17:42:34 2015 +0200 Add src/spawn.c to translatable files to fix 'make check' po/POTFILES.in | 1 + 1 file changed, 1 insertion(+) commit 40b9a2ba0d2e75196682451e78dbc1dc10333994 Author: Colomban Wendling Date: Tue May 19 14:25:40 2015 +0200 Respect filetype.common's wordchars if a filetype doesn't have its own Use filetype.common's wordchars instead of GEANY_WORDCHARS as default for filetypes not having their own. This allows to change the wordchars for all filetypes at once. Part of issue #492. data/filetypes.common | 1 + src/highlighting.c | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) commit 93950a6a7b7b62fe285334914f0b371d5c09fb67 Merge: b5eabc598 9be6ce81e Author: Frank Lanitz Date: Tue May 19 13:44:02 2015 +0200 Merge pull request #500 from fbobraga/master Fix header of translation file commit 9be6ce81e48b2aa035e30f3e1a30320096bda1e9 Author: Felipe Braga Date: Tue May 19 07:57:51 2015 -0300 Fixed heade po/pt_BR.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 09ee4965f7ad56fe03dbd3b87f3d28842b447f0c Author: Jiří Techet Date: Tue May 19 11:55:40 2015 +0200 Add TERM_PROGRAM to excluded environment variables for VTE On OS X /etc/bashrc does some Apple-terminal-specific thing: # Tell the terminal about the working directory at each prompt. if [ "$TERM_PROGRAM" == "Apple_Terminal" ] && [ -z "$INSIDE_EMACS" ]; then update_terminal_cwd() { # Identify the directory using a "file:" scheme URL, # including the host name to disambiguate local vs. # remote connections. Percent-escape spaces. local SEARCH=' ' local REPLACE='%20' local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}" printf '\e]7;%s\a' "$PWD_URL" } PROMPT_COMMAND="update_terminal_cwd; $PROMPT_COMMAND" fi This however doesn't work in VTE when Geany is started from the Terminal application so we get some strange prefix for the prompt. Unset the TERM_PROGRAM variable so it isn't set to Apple_Terminal when running inside VTE. src/vte.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b5eabc5986d415614079c847bbf5b456f552fb79 Author: Frank Lanitz Date: Mon May 18 07:58:07 2015 +0200 Small Update of German translation po/de.po | 408 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 199 insertions(+), 209 deletions(-) commit 9c2d51f92012b74ce75c967d9940c97fd71c5fa0 Merge: 826f6516d 2693a7b64 Author: Frank Lanitz Date: Mon May 18 09:14:37 2015 +0200 Merge pull request #498 from fbobraga/master Updated pt_BR translation commit 2693a7b6484c3c9f96d9a3c43683293bfa479e97 Author: Felipe Braga Date: Sun May 17 18:44:32 2015 -0300 Updated pt_BR translation po/pt_BR.po | 1943 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 957 insertions(+), 986 deletions(-) commit bd4956b555dfccb7546796866261d7946450536d Author: Jiří Techet Date: Sun May 17 18:22:32 2015 +0200 Fix corrupted initial prompt The initial prompt may get corrupted so it looks something like any/src $ het-vm ~/projects/gea instead of techet@techet-vm ~/projects/geany/src $ This is just the initial display problem - when enter is pressed, the second line already shows correct prompt. It appears that VTE isn't fully initialized when starting the shell process and when the shell start is delayed a bit (performed on idle), the prompt looks correct. src/vte.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 826f6516d36ec7a7bed35116fda32d42449c1e5d Merge: cdb7521b9 df39fc7bf Author: Colomban Wendling Date: Fri May 15 18:54:23 2015 +0200 Merge pull request #441 from zhekov/spawn Add a spawn module for Geany Thanks a lot for Dimitar's hard work, commitment and endless patience! Closes #274, #441, and https://sourceforge.net/p/geany/bugs/943/ Should also fix https://sourceforge.net/p/geany/bugs/898/ commit cdb7521b9bb52697a4169811893eaae84290da2b Author: Frank Lanitz Date: Thu May 14 20:34:48 2015 +0200 Update of German translation po/de.po | 1380 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 697 insertions(+), 683 deletions(-) commit 48977780c6ab7216cdcb17c79cbd689383f5bd8c Merge: ece9fb37c d665c23a0 Author: Frank Lanitz Date: Mon May 11 16:48:04 2015 +0200 Merge pull request #490 from philippwiesemann/fix-typos-messages Fix typos in messages commit d665c23a03b58004f35a305c0d2898e8e1e9cbb4 Author: Philipp Wiesemann Date: Sun May 10 21:36:39 2015 +0200 Fix typo in message It was already fixed in source. po/ar.po | 2 +- po/ast.po | 2 +- po/be.po | 2 +- po/bg.po | 2 +- po/ca.po | 2 +- po/cs.po | 2 +- po/el.po | 2 +- po/en_GB.po | 4 ++-- po/es.po | 2 +- po/et.po | 2 +- po/eu.po | 2 +- po/fa.po | 4 ++-- po/fi.po | 2 +- po/gl.po | 2 +- po/he.po | 2 +- po/hi.po | 2 +- po/hu.po | 2 +- po/id.po | 2 +- po/it.po | 2 +- po/kk.po | 2 +- po/ko.po | 2 +- po/lb.po | 2 +- po/lt.po | 2 +- po/mn.po | 2 +- po/nn.po | 2 +- po/ro.po | 2 +- po/sk.po | 2 +- po/sl.po | 2 +- po/sv.po | 2 +- po/tr.po | 2 +- po/uk.po | 2 +- po/vi.po | 2 +- po/zh_CN.po | 2 +- po/zh_TW.po | 2 +- 34 files changed, 36 insertions(+), 36 deletions(-) commit 999e17a5fb41f81c5247e81ccfe2968ce4fc3347 Author: Philipp Wiesemann Date: Sun May 10 21:30:06 2015 +0200 Fix typo in messages data/geany.glade | 6 +++--- po/ar.po | 6 +++--- po/ast.po | 6 +++--- po/be.po | 6 +++--- po/bg.po | 6 +++--- po/ca.po | 6 +++--- po/cs.po | 6 +++--- po/de.po | 6 +++--- po/el.po | 6 +++--- po/en_GB.po | 12 ++++++------ po/es.po | 6 +++--- po/et.po | 6 +++--- po/eu.po | 6 +++--- po/fa.po | 12 ++++++------ po/fi.po | 6 +++--- po/fr.po | 6 +++--- po/gl.po | 6 +++--- po/he.po | 6 +++--- po/hi.po | 6 +++--- po/hu.po | 6 +++--- po/id.po | 6 +++--- po/it.po | 6 +++--- po/ja.po | 6 +++--- po/kk.po | 6 +++--- po/ko.po | 6 +++--- po/lb.po | 6 +++--- po/lt.po | 6 +++--- po/mn.po | 6 +++--- po/nl.po | 6 +++--- po/nn.po | 6 +++--- po/pl.po | 6 +++--- po/pt.po | 6 +++--- po/pt_BR.po | 6 +++--- po/ro.po | 6 +++--- po/ru.po | 6 +++--- po/sk.po | 6 +++--- po/sl.po | 6 +++--- po/sr.po | 6 +++--- po/sv.po | 6 +++--- po/tr.po | 6 +++--- po/uk.po | 6 +++--- po/vi.po | 6 +++--- po/zh_CN.po | 6 +++--- po/zh_TW.po | 6 +++--- 44 files changed, 138 insertions(+), 138 deletions(-) commit 32ee98da17f1118868b691d69526de5a8a4ae498 Author: Philipp Wiesemann Date: Sun May 10 21:20:55 2015 +0200 Fix typo in message po/ar.po | 2 +- po/ast.po | 2 +- po/be.po | 2 +- po/bg.po | 2 +- po/ca.po | 2 +- po/cs.po | 2 +- po/de.po | 2 +- po/el.po | 2 +- po/en_GB.po | 2 +- po/es.po | 2 +- po/et.po | 2 +- po/eu.po | 2 +- po/fa.po | 2 +- po/fi.po | 2 +- po/fr.po | 2 +- po/gl.po | 2 +- po/he.po | 4 ++-- po/hi.po | 2 +- po/hu.po | 2 +- po/id.po | 2 +- po/it.po | 2 +- po/ja.po | 2 +- po/kk.po | 2 +- po/ko.po | 2 +- po/lb.po | 2 +- po/lt.po | 2 +- po/mn.po | 2 +- po/nl.po | 2 +- po/nn.po | 2 +- po/pl.po | 2 +- po/pt.po | 2 +- po/pt_BR.po | 2 +- po/ro.po | 2 +- po/ru.po | 2 +- po/sk.po | 2 +- po/sl.po | 2 +- po/sr.po | 2 +- po/sv.po | 2 +- po/tr.po | 2 +- po/uk.po | 2 +- po/vi.po | 2 +- po/zh_CN.po | 2 +- po/zh_TW.po | 2 +- src/libmain.c | 2 +- 44 files changed, 45 insertions(+), 45 deletions(-) commit ece9fb37c75acc210c3edd6aaacdef51f9ccb063 Merge: 5cfc3f20f 2d5428b09 Author: Frank Lanitz Date: Sun May 10 06:56:18 2015 +0200 Merge pull request #489 from philippwiesemann/fix-wrong-po-de Fix wrong German translations commit 2d5428b09ebf4a36eaa56c187a5a8c8236c27085 Author: Philipp Wiesemann Date: Sat May 9 23:19:05 2015 +0200 Add three exclamation marks in German translation po/de.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 19883aeb8a2f9b0568e65a536d3fad842c7163e1 Author: Philipp Wiesemann Date: Sat May 9 23:15:59 2015 +0200 Add three hyphens in German translation The translation for "document" already had one. po/de.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit ab43cd9839ee2f3eac6b4a2fa56a2edb0c5d1e11 Author: Philipp Wiesemann Date: Sat May 9 23:10:41 2015 +0200 Fix wrong German translation The translation did not distinguish between "source file" and "file" although it makes sense (e.g. for diff files which are not source). po/de.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7db70998bf82d9780854072b91edf2a83d52475b Author: Philipp Wiesemann Date: Sat May 9 23:07:26 2015 +0200 Fix two wrong German translations po/de.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5cfc3f20f6525b1c7c8071808fbfdecd2f562189 Merge: 3973362c1 81fb120f5 Author: Colomban Wendling Date: Wed May 6 19:03:18 2015 +0200 Merge pull request #487 from techee/goto_tag_fix Fix language check in tm_workspace_find() commit 3973362c1bb844754c7e05e6da5b3c4c278eef13 Merge: dbcbd57ee 1903b0a9b Author: Colomban Wendling Date: Wed May 6 18:51:43 2015 +0200 Merge pull request #486 from techee/fix_empty_symbol_tree Fix empty symbol tree under some conditions commit 1903b0a9b9991733dd48f8cd55446200c647efbd Author: Jiří Techet Date: Tue May 5 23:37:51 2015 +0200 Add a flag indicating the tag tree needs updating When the Symbols tab isn't shown, symbol tree isn't updated. However, we should record the cases when update should have been performed and once the symbols tab is shown, perform update if something changed. Thanks to this patch we also don't have to always perform symbol tree update when switching to the Symbols tab but only when something has actually changed. src/documentprivate.h | 2 ++ src/sidebar.c | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) commit 81fb120f508be4b8f472a818b708039c3942b642 Author: Jiří Techet Date: Wed May 6 18:37:46 2015 +0200 Fix language check in tm_workspace_find() The tags_lang variable is set from the first tag in the found array but the array may actually contain tags from several languages. This may lead to two things: 1. Goto tag definition goes to a tag from a different filetype 2. Worse, the first tag is from a different language than the current file and we get a message that no tag was found Get lang for every tag in the array and rename tags_lang to tag_lang. tagmanager/src/tm_workspace.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) commit dbcbd57ee638d410de73032cad29c9a4c9de9a99 Author: Frank Lanitz Date: Tue May 5 19:55:15 2015 +0200 Update of Serbian translation po/sr.po | 4736 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 2439 insertions(+), 2297 deletions(-) commit 80d7aa213c0eb8d353032882616957f155b49380 Author: Colomban Wendling Date: Sun May 3 23:41:32 2015 +0200 Allow to select None filetype in Open File dialog Closes #483. src/dialogs.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit 62a8232901a831c694109b491f60b35aeaa579cc Merge: 97b869bcd 44fec8f75 Author: Colomban Wendling Date: Sun May 3 22:36:16 2015 +0200 Merge pull request #475 from techee/retval_refresh Reload tooltip in the symbol tree also on tag update commit 97b869bcd6ed19d8050f954c9c22f25439934998 Merge: b92b4ad36 d31c770a3 Author: Colomban Wendling Date: Sun May 3 22:35:08 2015 +0200 Merge pull request #476 from techee/dirty_vte Communicate terminal dirty-ness to users in a better way commit 44fec8f7518d63eeb4e1a784ec7fe465d0002270 Author: Jiří Techet Date: Sun May 3 11:34:30 2015 +0200 Prepend values to GtkTreeStore to eliminate quadratic complexity The tree model nodes consist of GNode structs: struct GNode { gpointer data; GNode *next; GNode *prev; GNode *parent; GNode *children; }; where children are a linked list. To append a value, the list has to be walked to the end and with nodes with many children (which is our case) this becomes very expensive. We sort the tree afterwards anyway so it doesn't matter where we insert the value. src/symbols.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8ffd687af78f372da8063a4a480f4b0480613cc4 Author: Jiří Techet Date: Mon Apr 20 23:47:49 2015 +0200 Don't update the symbol tree when not shown src/sidebar.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit e3e46ed63b722a83510acfa2615e34d1f0e23f32 Author: Jiří Techet Date: Mon Apr 20 21:41:36 2015 +0200 Use gtk_tree_store_insert_with_values() to speed-up tree creation About 30% faster tree creation. src/symbols.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 35bde6c5ad0d008f807b88f8430517c282d2bc00 Author: Jiří Techet Date: Mon Apr 20 21:23:54 2015 +0200 Reload a tag in the sidebar only when it differs from the existing tag gtk_tree_store_set() becomes very slow when the tree gets bigger because internally it calls gtk_tree_store_get_path() which counts all the entries in a linked list of elements at the same tree level to get the tree path. Avoid the call of this function when not needed. src/symbols.c | 28 ++++++++++++++++------------ tagmanager/src/tm_tag.c | 20 ++++++++++++++++++++ tagmanager/src/tm_tag.h | 1 + 3 files changed, 37 insertions(+), 12 deletions(-) commit 5d94d15976ab83f8bea2a6bda866d19a549f787e Author: Jiří Techet Date: Sun Apr 19 18:53:42 2015 +0200 Reload tooltip in the symbol tree also on tag update Because function return types are not used to determine tag equality, we need to also update the tooltip of an existing tag otherwise the return type doesn't get updated when changed. src/symbols.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit b92b4ad36426fd6a4db4488b058808032fbe4818 Merge: 3b484d8f9 14e110ecd Author: Frank Lanitz Date: Sun May 3 17:09:39 2015 +0200 Merge pull request #482 from philippwiesemann/fix-typos-po-de Fix typos in German translation commit 14e110ecdc76315e22fafd35c1b9488e7b464d1e Author: Philipp Wiesemann Date: Sat May 2 22:34:58 2015 +0200 Fix typos in German translation po/de.po | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) commit d31c770a3d408778540fffc6c1441fde484d3c03 Author: Jiří Techet Date: Sun Apr 26 11:55:41 2015 +0200 Tell users how to clear the terminal in the error message This is not completely obvious - when I first saw the message, I started pressing backspace which really doesn't help. Also clarify and shorten the message a bit - in "Could not execute the file in the VTE because it probably contains a command" it's not clear if it's the file or VTE which contains the command. Also use "terminal" instead of "VTE" which is more user-friendly. src/build.c | 6 +++--- src/vte.c | 7 +++---- 2 files changed, 6 insertions(+), 7 deletions(-) commit 9f0bfec04526b07882ab644830bef4c9c8ddebba Author: Jiří Techet Date: Fri Apr 24 22:15:10 2015 +0200 Add "dirty" terminal indication Right now users are confused when various VTE actions don't work because there's no indication that the terminal is in the non-clean state. Visualise "modified" terminal in the same way as modified document - by a red label in the tab so it's clearer when terminal isn't clean. Avoid quick red flashes when pressing enter by delaying the color change a bit. data/geany.css | 5 +++++ data/geany.gtkrc | 3 +++ src/vte.c | 44 ++++++++++++++++++++++++++++++++++++++------ 3 files changed, 46 insertions(+), 6 deletions(-) commit 3b484d8f9e5526709dd8ff8d0604cc541ca1ce5e Merge: 9fd566e04 a23f4b2d3 Author: Enrico Tröger Date: Sat Apr 25 10:22:52 2015 +0000 Merge pull request #464 from eht16/undeprecate_plugins Remove deprecated and unnecessary use of GeanyFunctions declaration commit 9fd566e0407281ded5a1475c1bfad45e165741eb Author: Enrico Tröger Date: Sat Apr 25 12:19:28 2015 +0200 Windows: don't link geany_private.rc to libgeany as it is not necessary wscript | 1 - 1 file changed, 1 deletion(-) commit df39fc7bf7f6d429acded128476220a53668c6a4 Author: Dimitar Zhekov Date: Fri Apr 24 19:35:59 2015 +0300 Mark the exported spawn functions as GEANY_API_SYMBOL and @since 1.25 src/spawn.c | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) commit b6fc3e97df348297e8efb8b91b1b8221fe110eee Author: Daniel Guerrero Miralles Date: Tue Apr 21 17:51:39 2015 +0200 Fix catalan translation This small patch fixes some entries in the contextual menu. po/ca.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 10a04f71c372734f6bfec3d7a04e4e4064cfbe14 Author: Colomban Wendling Date: Tue Apr 21 16:21:37 2015 +0200 Update Scintilla to version 3.5.5 scintilla/gtk/ScintillaGTK.cxx | 13 ++++++------ scintilla/include/Platform.h | 6 ------ scintilla/include/Scintilla.h | 4 ++-- scintilla/include/Scintilla.iface | 40 +++++++++++++++++++++++++----------- scintilla/lexers/LexSQL.cxx | 9 ++++---- scintilla/lexers/LexTCL.cxx | 7 ++----- scintilla/lexers/LexVHDL.cxx | 10 ++++++++- scintilla/lexers/LexVerilog.cxx | 43 +++++++++++++++++++++++++++++++++------ scintilla/lexlib/SubStyles.h | 3 ++- scintilla/src/AutoComplete.cxx | 4 +++- scintilla/src/EditView.cxx | 5 +++-- scintilla/src/EditView.h | 1 + scintilla/src/Editor.cxx | 2 ++ scintilla/src/Style.cxx | 3 --- scintilla/version.txt | 2 +- 15 files changed, 102 insertions(+), 50 deletions(-) commit 2523a25f9ca2db34f369f1b0bdb7107895bae762 Merge: 1d9bb56c4 39daab1dc Author: Colomban Wendling Date: Tue Apr 21 16:19:11 2015 +0200 Merge branch 'scintilla-update-script' Small improvements to the Scintilla update script commit 39daab1dc758550b993dc4ba4cea212aa9754d5b Author: Colomban Wendling Date: Tue Apr 21 16:09:57 2015 +0200 hacking: Add a section on how to upgrade the bundled Scintilla copy HACKING | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit efb639435c8ad0790951d7bde261463e57376905 Author: Colomban Wendling Date: Tue Apr 21 15:40:15 2015 +0200 Scintilla update script: only ask for checking when something changed Only ask the user to check the SciLexer.h diff if the file actually changed. scripts/update-scintilla.sh | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) commit 264df2ec7bc883e27b2668f43b08aad0cc244afb Author: Colomban Wendling Date: Tue Apr 21 15:39:30 2015 +0200 Scintilla update script: improve success banner scripts/update-scintilla.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 96cc37946f24ba8ff203cbfed5e816b966fa95d6 Author: Colomban Wendling Date: Tue Apr 21 15:34:54 2015 +0200 Scintilla update script: strip "a/" and "b/" automatically scripts/update-scintilla.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 1d9bb56c4a01f758244e86b81a8b0715ae0be4c1 Author: Colomban Wendling Date: Tue Apr 21 15:12:44 2015 +0200 Fix incorrect safety check in non-regex search code Only warn if MULTILINE is passed *together* with REGEX, but simply ignore if it not. src/search.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 97ab68244cd889730c61842eb94c1d23b20460b6 Author: Colomban Wendling Date: Mon Apr 20 20:34:00 2015 +0200 Fix "select-all" to work with any GtkTextView, not only the scribble This makes the code more generic and allows the "select-all" keybinding to work in any GtkTextView, e.g. potentially plugin's ones. src/callbacks.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2110fc785d77355600229b9d41c399c565d13bf9 Merge: b839611e5 4c504c2be Author: Colomban Wendling Date: Mon Apr 20 22:19:49 2015 +0200 Merge pull request #467 from pik/splitwindow Fix basic callbacks to work with splitwindow Closes #460 and #467. commit 4c504c2be245e3860ad546948f64553263c2fe79 Author: pik Date: Sun Apr 19 12:28:34 2015 -0400 Reorganize select callback * select_all now works with splitwindow * select_all now works with file-browser pane * menu_select_all now works everywhere select_all hotkey does src/callbacks.c | 22 ++++++++++++++++++++-- src/keybindings.c | 54 ++++++++++++------------------------------------------ 2 files changed, 32 insertions(+), 44 deletions(-) commit c214056ea1d000c6e53b158f616b680d1e02eb53 Author: pik Date: Sun Apr 19 12:20:55 2015 -0400 Fix callbacks to scintilla functions to work with splitwindow * Use Scintilla focus object instead of notebook document to fix splitwindow behaviour for cut, copy, paste and delete callbacks. * move else-if to same line (style) src/callbacks.c | 44 +++++++++++++++----------------------------- src/keybindings.c | 11 +++++------ 2 files changed, 20 insertions(+), 35 deletions(-) commit b839611e517f9ae853fc1eb9232ff3452a7e36bd Merge: 5e8c17eea 04c721c3b Author: Colomban Wendling Date: Mon Apr 20 20:04:47 2015 +0200 Merge branch 'ctags/make' Import make parser improvements from fishman/ctags#272 commit 04c721c3b41dee1fbc82e94dab74f35087b60333 Author: Colomban Wendling Date: Tue Apr 7 04:10:10 2015 +0200 make: Avoid reading an uninitialized value on empty target names Fixing this is however only theoretically useful, as: * no actual code paths can currently lead to it; * even if the code actually ended up reading the uninitialized value, it would still have a fully defined behavior as the result of the check is irrelevant in the only case the uninitialized read can happen. Anyway, fix this to avoid any possible bad surprises in the future. tagmanager/ctags/make.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 39f359b09aeeaeca18be4da06ec89bd9d18ea806 Author: Colomban Wendling Date: Sat Apr 4 01:27:58 2015 +0200 make: Add support for GNU make pattern rules tagmanager/ctags/make.c | 2 +- tests/ctags/Makefile.am | 1 + tests/ctags/make-gnumake-pattern-rules.mak | 8 ++++++++ tests/ctags/make-gnumake-pattern-rules.mak.tags | 6 ++++++ 4 files changed, 16 insertions(+), 1 deletion(-) commit a11d67bb0b46a94d08ff32676a724838be97a680 Author: Colomban Wendling Date: Thu Apr 2 20:00:40 2015 +0200 make: Fix handling comments inside rules A line consisting only of blanks or comments should not end a rule, even if it doesn't start with a tabulation character. tagmanager/ctags/make.c | 14 ++++++-------- tests/ctags/Makefile.am | 1 + tests/ctags/make-comment-in-rule.mak | 17 +++++++++++++++++ tests/ctags/make-comment-in-rule.mak.tags | 2 ++ 4 files changed, 26 insertions(+), 8 deletions(-) commit 2d31d8f836e3a16ae86dfb3f3426e5a272ca6f8c Author: Colomban Wendling Date: Thu Apr 2 17:19:43 2015 +0200 make: Support for combined targets tagmanager/ctags/make.c | 130 +++++++++++++-------------------- tests/ctags/Makefile.am | 1 + tests/ctags/make-multi-target.mak | 8 ++ tests/ctags/make-multi-target.mak.tags | 5 ++ tests/ctags/simple.mak.tags | 2 +- 5 files changed, 67 insertions(+), 79 deletions(-) commit 5bed3b58f337c95f7069ffbc9fbd23e83f55ad04 Author: Colomban Wendling Date: Thu Apr 2 14:56:16 2015 +0200 make: Support for variable expansions in target names tagmanager/ctags/make.c | 37 +++++------------------ tests/ctags/Makefile.am | 1 + tests/ctags/make-target-with-parentheses.mak | 1 + tests/ctags/make-target-with-parentheses.mak.tags | 3 ++ tests/ctags/simple.mak.tags | 1 + 5 files changed, 14 insertions(+), 29 deletions(-) commit 0d60359428a82b8c371b920ba0a7bce0e59e59db Author: Colomban Wendling Date: Wed Apr 1 18:31:26 2015 +0200 make: Fix incorrectly generating tags for rules content tagmanager/ctags/make.c | 3 ++- tests/ctags/Makefile.am | 1 + tests/ctags/make-variable-on-cmdline.mak | 2 ++ tests/ctags/make-variable-on-cmdline.mak.tags | 2 ++ tests/ctags/simple.mak.tags | 2 -- 5 files changed, 7 insertions(+), 3 deletions(-) commit 5e8c17eea266a936738c05a763a95fbb1f899ac0 Author: Frank Lanitz Date: Mon Apr 20 07:43:50 2015 +0200 Update of Portuguese translation po/pt.po | 1073 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 536 insertions(+), 537 deletions(-) commit c1db044b30d202c9a74d7490b332d9cf72dc5faa Author: Dimitar Zhekov Date: Sun Apr 19 19:17:44 2015 +0300 Separate spawn_read_cb() condition into input_cond and failure_cond src/spawn.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) commit 26a417d04d2ce58821a487ed32a78f9043721093 Author: Enrico Tröger Date: Sun Apr 19 16:09:09 2015 +0200 Fix typo tagmanager/ctags/php.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit e3ef006d59bbf2f034638be07e874cb8688da178 Author: Enrico Tröger Date: Sun Apr 19 16:04:26 2015 +0200 Drop the paragraph about self-hosted GTK API docs We assume that the GTK 2.24 API docs will remain online in the long-term so there is no reason why we should self-host those docs any longer. This is the last missing bit of #245. HACKING | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) commit 3f89d8d6a38442a25c877c6a7bd0aa45f3f01e35 Author: Enrico Tröger Date: Sat Apr 18 10:46:54 2015 +0000 Add translation block to properly set version information This seems necessary to properly display version information in the Windows Explorer file properties dialog. I think it worked on older Windows versions without but at least on Windows 7 this seems necessary. geany_private.rc | 4 ++++ 1 file changed, 4 insertions(+) commit d8ad369f8edf2468c31e3391c43648af7fe3d518 Merge: 902681d26 b8684a00f Author: Dimitar Zhekov Date: Sat Apr 18 12:31:41 2015 +0300 Merge branch 'master' of https://github.com/geany/geany into spawn Conflicts: src/build.c src/tools.c commit 902681d260435fde5181652839a9e49170150c41 Author: Dimitar Zhekov Date: Sat Apr 18 11:47:31 2015 +0300 Fix for the broken I/O watch conditions on child exit under OSX Under OSX, after child death, the read watches receive input conditions instead of error conditions, so we convert the termination statuses (ERROR and EOF) into their respective conditions. Should not hurt the other OS. src/spawn.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) commit b8684a00f0b9bccbe739f797ffea92bb6b33613a Merge: 723f4302e e9f4365a3 Author: Frank Lanitz Date: Sat Apr 18 09:43:07 2015 +0200 Merge pull request #472 from huth/fixes Fix typos in comments commit e9f4365a378ad254e97c8d43a70499958ce3224e Author: Thomas Huth Date: Sat Apr 18 08:25:59 2015 +0200 Fix typos in comments (discovered with the codespell utility) doc/pluginsignals.c | 2 +- doc/pluginsymbols.c | 2 +- src/build.c | 4 ++-- src/dialogs.c | 4 ++-- src/msgwindow.c | 6 +++--- src/tools.c | 4 ++-- src/utils.c | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-) commit 723f4302e0d7bbd938c789b9730366f7c7e03080 Author: Colomban Wendling Date: Fri Apr 17 15:11:00 2015 +0200 autotools: Avoid building non-shared versions of the object files libtool apparently builds every object twice by default when shared and static objects need to be build differently. As we never use the statically linked objects, avoid building them at all. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a98c9d50843911340f89b17db5bf707aa00557c2 Merge: 331a2bbab db4bf54b2 Author: Colomban Wendling Date: Wed Apr 15 14:01:40 2015 +0200 Merge pull request #468 from techee/link_warning Compile prefix.c and osx.c only when needed to avoid warnings commit 331a2bbab9aae45c7eef7abd9825c463f893798f Author: Frank Lanitz Date: Wed Apr 15 00:56:46 2015 +0200 Update of Portuguese translation po/pt.po | 5222 ++++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 2860 insertions(+), 2362 deletions(-) commit 83f261fd64b1a1e53782aee4b9ce9970696d3f81 Author: Jiří Techet Date: Sat Apr 4 22:26:58 2015 +0200 filebrowser: Add a flag to the tree model to indicate whether en entry is a directory Used by the subsequent patch which changes "stock-id" to GIcon and disables row type detection using FILEVIEW_COLUMN_ICON. plugins/filebrowser.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) commit db4bf54b2f963ce2259a0422e22d7e63aa43337b Author: Jiří Techet Date: Tue Apr 14 22:21:34 2015 +0200 Compile prefix.c and osx.c only when needed to avoid warnings When mac integration or binary relocation are disabled, the compiled object file contains no symbols because the guards in the source files hide all code. On OS X there's a warning during compilation saying: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libgeany.a(libgeany_la-prefix.o) has no symbols If these features are disabled, don't compile the corresponding sources to avoid the warnings. Interestingly, waf compilation works without warnings - it appears linking is done through g++ which doesn't produce these warnings. m4/geany-binreloc.m4 | 6 ++++-- m4/geany-mac-integration.m4 | 3 ++- src/Makefile.am | 10 ++++++++-- 3 files changed, 14 insertions(+), 5 deletions(-) commit b0f7f2859ba46e908e84c75b68e72908ac20d06d Author: Enrico Tröger Date: Sat Feb 14 14:20:45 2015 +0100 Add a filter entry in the plugin manager dialog Let the user filter plugins by searching the plugin names and descriptions. While at it, group the plugin buttons into the dialog's action area to save some space. Rename OK button to Close in the plugin manager dialog Set the input focus to the filter entry and set initial plugin button state src/plugins.c | 204 ++++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 150 insertions(+), 54 deletions(-) commit 31ae06f7e59993c2a6d2ef7d96db1b48e9787fae Merge: d97709ff8 f6fbda768 Author: Enrico Tröger Date: Tue Apr 14 20:01:45 2015 +0000 Merge pull request #466 from techee/waf_build_tree waf: explicitly set the location of signallist.i and geany.html in the b... commit f6fbda768e67ec7ac943dc5381eaf8b4aef7129c Author: Jiří Techet Date: Mon Apr 13 23:00:43 2015 +0200 waf: explicitly set the location of signallist.i and geany.html in the build tree On OS X signallist.i is always rebuilt because waf looks for it in the build tree but generates it inside the source tree for some reason so it's always missing in the build tree. Set the target explicitly to the build tree to fix the problem. Similarly, set the target for geany.html to the build tree. Thanks to this waf also creates the 'doc' directory in the build tree which is otherwise missing and the cwd command fails for this reason (e.g. when the _build_ directory is removed). These two task generators are the only ones that don't use the 'features' parameter - the features in the other task generators should already handle the source/build tree problems for us (see the Waf Book section 6.3.3. Nodes, tasks, and task generators). wscript | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d97709ff8662736520e53343409301b5bcc36100 Merge: ab6c145d4 ccfe8f23c Author: Colomban Wendling Date: Mon Apr 13 17:59:54 2015 +0200 Merge pull request #462 from techee/waf_install waf: Disable build/install phase interleaving commit ab6c145d45c96f9bff6add928c330faf82708366 Merge: d14ecd68c a7ada396e Author: Colomban Wendling Date: Mon Apr 13 17:57:54 2015 +0200 Merge pull request #457 from techee/icon2 Two more Geany icon updates commit d14ecd68c5de7055bfd5a6000c55650951ffb784 Author: Colomban Wendling Date: Mon Apr 13 14:11:45 2015 +0200 Add a missing accelerator in the French translation po/fr.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d0a431e071fa09165abacbde1dad33a24fac1cf1 Author: Matthew Brush Date: Sun Apr 27 04:53:01 2014 -0700 Remove pre-GTK+ 2.24 preprocessor checks and related code src/dialogs.c | 6 +----- src/gtkcompat.h | 25 ------------------------- src/printing.c | 2 -- src/ui_utils.c | 25 +------------------------ 4 files changed, 2 insertions(+), 56 deletions(-) commit bdc082cb7782828bd3be5992ca2e6006f2330890 Author: Matthew Brush Date: Sun Apr 27 04:25:38 2014 -0700 Bump min. version of GTK2 to 2.24 and GLib to 2.28 Note: This is mostly search and replace. I've only tested with my GTK+ 2.24.20 and not at all the Waf build system. HACKING | 10 +++++----- README | 4 ++-- configure.ac | 4 ++-- data/geany.glade | 2 +- doc/geany.txt | 4 ++-- wscript | 4 ++-- 6 files changed, 14 insertions(+), 14 deletions(-) commit a23f4b2d39f8427eae024ad9a81f565baaa0b88a Author: Enrico Tröger Date: Sun Apr 12 23:11:28 2015 +0200 Remove deprecated and unnecessary use of GeanyFunctions declaration plugins/classbuilder.c | 1 - plugins/demoplugin.c | 1 - plugins/export.c | 1 - plugins/filebrowser.c | 1 - plugins/htmlchars.c | 1 - plugins/saveactions.c | 1 - plugins/splitwindow.c | 1 - 7 files changed, 7 deletions(-) commit b9e090d2c84d7114a01537fad2968b93e978747e Merge: f03206744 d1a3ec184 Author: Enrico Tröger Date: Sun Apr 12 22:54:22 2015 +0200 Merge branch 'master' of github.com:geany/geany commit f03206744361baac1c811db97f5d2816409d7787 Author: Enrico Tröger Date: Sun Apr 12 22:54:16 2015 +0200 Windows: Compile geany_private.rc into Geany.exe for version data and icon wscript | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 36f01551b2c4e2285c6541f24bb13010e8959605 Author: Enrico Tröger Date: Sun Apr 12 22:53:24 2015 +0200 Windows Installer: add geany-0.dll to the installer geany.nsi | 1 + 1 file changed, 1 insertion(+) commit a7ada396e262e347e4e1e1d1957fd1c947c8e32d Author: Jiří Techet Date: Sun Apr 12 22:44:50 2015 +0200 icon: regenerate png/ico files based on the svg icons/16x16/geany.png | Bin 856 -> 857 bytes icons/32x32/geany.png | Bin 2368 -> 2369 bytes icons/48x48/geany.png | Bin 4240 -> 4233 bytes icons/geany.ico | Bin 23558 -> 23558 bytes 4 files changed, 0 insertions(+), 0 deletions(-) commit ccfe8f23c154327ef2f033933f4f6e6a34cb67bf Author: Jiří Techet Date: Sun Apr 12 20:57:17 2015 +0200 waf: Disable build/install phase interleaving When doing "./waf install" and some source files are modified so they need to be rebuilt, the build and install phase can be interleaved so one thread is still performing build while other thread is already performing install tasks. This appears to be a problem (at least on OS X) when some of the Geany plugins are still being built and libgeany is already being installed in parallel. Create a separate group for the install phase to eliminate the problem. wscript | 3 +++ 1 file changed, 3 insertions(+) commit d1a3ec1849c3cd337c3eef9cd25374248da97bab Author: Colomban Wendling Date: Sun Apr 12 17:33:55 2015 +0200 Small update of the French translation po/fr.po | 1335 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 670 insertions(+), 665 deletions(-) commit 87ee835ef22c6a8658eb479b29981e7379fa5c83 Author: Matthew Brush Date: Sat Apr 11 11:44:55 2015 -0700 Export scintilla_get_type() from libgeany This is useful for plugins to be able to subclass the ScintillaObject and use its full GObject features. The Overview plugin is one known plugin that needs this. Also update scintilla_changes.patch by running update-scintilla.sh script with patch application commented-out and generating a reverse diff using `git -R`, and manually remove `a/` and `b/` prefixes from the resulting diff so it can be used with update-scintilla.sh script. scintilla/gtk/ScintillaGTK.cxx | 1 + scintilla/scintilla_changes.patch | 33 +++++++++++++++++++++------------ src/plugindata.h | 2 +- 3 files changed, 23 insertions(+), 13 deletions(-) commit 8bbe58cdf79b91aa1eb38d1ac933fafdf280dc6a Author: Matthew Brush Date: Fri Apr 10 18:52:46 2015 -0700 Fix a compiler warning about const src/utils.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit f3078ebbc60b9747683029df0fa283d8f3e762a5 Merge: 4e6da78f5 5caf2b3e7 Author: Colomban Wendling Date: Fri Apr 10 16:54:30 2015 +0200 Merge branch 'kugel-/linkage-cleanup_rebase-for-merge' This merges PR#429 with only small history cleanup (no code changes), and ABI bump. Closes #355, #358 and #429. commit 5caf2b3e77780daf52d59a4088efa5b8628e3f22 Author: Colomban Wendling Date: Fri Apr 10 16:52:30 2015 +0200 Bump ABI version for new linkage mechanism src/plugindata.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 07dacb66d23b58b34eee51aac28a8ad2fcf5693c Author: Colomban Wendling Date: Mon Apr 6 01:52:38 2015 +0200 waf: Improve passing of export and visibility flags wscript | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) commit 7ac4bf3d24a08533e2557c30624aa961c3547c4e Author: Colomban Wendling Date: Mon Apr 6 02:22:53 2015 +0200 waf: Don't abuse static libraries Instead of abusing static libraries putting shared objects in them, and manually setting the flags required to build shared objects, use sets of objects and Waf's own cshlib/cxxshlib flags. Also explicitly call the appropriate build context method instead of only listing features in order to make it clear what is built. Some references: * http://docs.waf.googlecode.com/git/book_16/single.html#_predefined_task_generators * http://docs.waf.googlecode.com/git/book_16/single.html#_local_libraries * https://code.google.com/p/waf/issues/detail?id=1398 wscript | 42 ++++++++++++++++-------------------------- 1 file changed, 16 insertions(+), 26 deletions(-) commit 01db7f0cac907d283a84976ff3b542160c317a7a Author: Colomban Wendling Date: Sun Apr 5 00:38:59 2015 +0000 Add signallist.i to gitignore .gitignore | 1 + 1 file changed, 1 insertion(+) commit 5b9bb1d7b20f61c092d31bff1dbfe89eda566d87 Author: Colomban Wendling Date: Sun Apr 5 00:27:47 2015 +0000 Include geanyplugin.h from geanyfunctions.h for compatibility geanyfunctions.h used to bring all function declarations, and some plugins depend on this side effect instead of properly including geanyplugin.h directly. So, reintroduce the behavior for compatibility with those plugins. plugins/geanyfunctions.h | 1 + 1 file changed, 1 insertion(+) commit ede1faca54dcd96848047f4cde5fe989e9813e3a Author: Colomban Wendling Date: Sun Apr 5 00:24:28 2015 +0000 Move GeanyFunctions declaration back in plugindata.h This avoids breaking plugins that don't use geanyplugin.h as they should but include some random headers. plugins/geanyfunctions.h | 4 ---- src/plugindata.h | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) commit e4ab28058d1482b1b7383138dfee8cfc6f4c5d7f Author: Thomas Martitz Date: Sun Apr 5 20:03:59 2015 +0200 waf: set rpath for executable Whether rpath is liked or not, it allows geany to Just Work and is consistent with autotools wscript | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 7649a6921fc36a518a38d0c35006ed100ad5486b Author: Thomas Martitz Date: Sun Apr 5 16:55:11 2015 +0200 waf: Fix core plugins on Linux The -fvisibility=hidden flag for libgeany.so is also applied to plugins. This is not desirable. wscript | 2 ++ 1 file changed, 2 insertions(+) commit a1f2d0b94a8b49ce656f217afcc288fe49ff9aef Author: Thomas Martitz Date: Sun Apr 5 16:54:55 2015 +0200 waf: Don't use temp variables wscript | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 11b5c0216fab87a743ffa9adba66c60811ec8626 Author: Thomas Martitz Date: Wed Apr 1 21:13:00 2015 +0200 stash_group_add_boolean is an API function, misplaced within GEANY_PRIVATE src/stash.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 1c27e41bfa4bee44ef425f05bf3eabb8bd4ca2fe Author: Thomas Martitz Date: Wed Apr 1 07:19:59 2015 +0200 The mkstemps special case for windows is not necessary tagmanager/ctags/ctags.c | 4 ---- 1 file changed, 4 deletions(-) commit a320609d5f3e25104f072c196484ef8072bb4ea1 Author: Thomas Martitz Date: Wed Apr 1 07:18:46 2015 +0200 waf: Fixes for libgeany - libgeany install dir was wrong on win32 - comdlg32 is required - more headers need to be installed - -fPIC is required on some platforms - LINKFLAGS_cprogram now have to be applied to libgeany.dll wscript | 52 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 44 insertions(+), 8 deletions(-) commit 05f362b3bd5247dc9102c908d98b393cc0175242 Author: Thomas Martitz Date: Wed Apr 1 07:56:30 2015 +0200 Have to include a few more headers for plugins plugins/geanyplugin.h | 3 +++ 1 file changed, 3 insertions(+) commit b2ba6c84d51890ce9366c6620f5a48ba720d14a1 Author: Colomban Wendling Date: Sun Mar 15 23:54:17 2015 +0100 autotools: Cleanup makefile a little src/Makefile.am | 4 ---- 1 file changed, 4 deletions(-) commit 4e02f5884770726fdb6464ff8dcd0a469fae5549 Author: Colomban Wendling Date: Sun Mar 15 20:39:52 2015 +0100 autotools: Remove useless declaration There is no need for tricking Automake to use the C++ linker to link the main executable anymore, this is done for libgeany now. src/Makefile.am | 1 - 1 file changed, 1 deletion(-) commit e61948adbda8597fdaf1ffeb7b92f3dbfed63c01 Author: Colomban Wendling Date: Sun Mar 15 18:24:04 2015 +0100 Fix or remove incorrect comments src/Makefile.am | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 90b5e9b76f6650ea016f665613c660d54a089432 Author: Colomban Wendling Date: Sun Mar 15 14:30:14 2015 +0100 waf: Add rule to generate signallist.i Based on previous work from Matthew Brush. wscript | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) commit dbe910ca5e059cc67b53b1dac62147e1fcdd7e3c Author: Thomas Martitz Date: Wed Mar 11 08:02:04 2015 +0100 GEANY_API_SYMBOL for project_write_config() src/project.c | 1 + 1 file changed, 1 insertion(+) commit 56b9189a6cf42d877de5cbab64b22e722a0097ab Author: Colomban Wendling Date: Tue Mar 10 23:20:55 2015 +0100 Fix generation of `signallist.i` with BSD sed 4.2BSD sed doesn't understand the `+` quantifier, so use `{1,}`. src/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c85b846eeb08ff9c3260f35a51367736e8b87287 Author: Colomban Wendling Date: Tue Mar 10 22:41:06 2015 +0100 Simplify automated signal connection Instead of processing a template C source in the build system, generate a list to be included by the preprocessor. This simplifies the build system code as it now only generates the list and doesn't take care of processing the template. It incidentally fixes build on systems with 4.2BSD sed (at least OSX and FreeBSD) as it removes some offending sed code. src/Makefile.am | 16 ++++++---------- src/callbacks.c | 34 +++++++++++++++++++++++++++++++++- src/signalconn.c.in | 32 -------------------------------- 3 files changed, 39 insertions(+), 43 deletions(-) commit 11d4bcf7c29b587b59a0bd1fbec754c7e1439c6f Author: Thomas Martitz Date: Tue Mar 10 22:41:09 2015 +0100 Only use LIBGEANY_CFLAGS on libgeany. It includes stuff like -fvisibility which isn't appropriate for the main binary. src/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 43037b379b10637eca15dc5c2ce4de80abd73f0c Author: Enrico Tröger Date: Sun Jan 18 16:44:57 2015 +0100 waf: Implement check whether compiler supports -fvisibility=hidden This is a bit better than compiler == 'gcc'. Tested with gcc 4.9 (success) and gcc 3.4.5 (not supported). wscript | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 3d0bdbd6da48ea2000aff937b34baec57f98bb2b Author: Enrico Tröger Date: Sun Jan 18 16:23:00 2015 +0100 waf: The GEANY_*_SYMBOL flags also need to be defined for C++ In Waf, we need to add the new flags to CFLAGS *and* CXXFLAGS otherwise the Scintilla build would break. To keep it more reabable, we first populate a temporary list geany_symbol_flags which is then added to CFLAGS and CXXFLAGS. Concerning the quote FIXME: no further qoting is necessary here. wscript | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit abc5f3239b45d6a3853276678f72de59ebf67c53 Author: Enrico Tröger Date: Sun Jan 18 15:53:01 2015 +0100 waf: Adjust to build and use libgeany wscript | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) commit 616cbe3da9cfb69f6e9f265cdfd35715d7ab4e9d Author: Thomas Martitz Date: Wed Feb 25 17:01:02 2015 +0100 src: Makefile.am cleanup src/Makefile.am | 163 ++++++++++++++++++++++++++------------------------------ 1 file changed, 76 insertions(+), 87 deletions(-) commit 9eee68b71d322e7bbc74d48d4719e0713825d474 Author: Colomban Wendling Date: Tue Oct 28 15:38:12 2014 +0100 Fix exporting Scintilla symbols scintilla/gtk/ScintillaGTK.cxx | 2 ++ scintilla/scintilla_changes.patch | 20 ++++++++++++++++++++ src/sciwrappers.c | 8 -------- 3 files changed, 22 insertions(+), 8 deletions(-) commit 9644fb0ae21601b5acb6a5a5763a1e558a95c315 Author: Colomban Wendling Date: Tue Oct 28 15:31:01 2014 +0100 Define GEANY_{EXPORT,API}_SYMBOL from the build system This makes it easier to define it consistently to what the compiler and platform supports, and avoids having to include a special header everywhere, which is some kind of a problem for separate libraries like TagManager and especially Scintilla. As we only use these macros from the source and not the headers, it is fine for it to be defined to a configure-time check from the build system. Warning: Although Waf and Windows makefiles are updated they are not tested an will probably required tuning. m4/geany-lib.m4 | 55 ++++++++++++++++++++++++++++------------- scintilla/gtk/makefile.win32 | 4 ++- src/Makefile.am | 1 - src/build.c | 1 - src/callbacks.c | 1 - src/dialogs.c | 1 - src/document.c | 1 - src/editor.c | 1 - src/encodings.c | 1 - src/filetypes.c | 1 - src/highlighting.c | 1 - src/keybindings.c | 1 - src/libmain.c | 1 - src/makefile.win32 | 4 ++- src/msgwindow.c | 1 - src/navqueue.c | 1 - src/pluginexport.h | 34 ------------------------- src/pluginutils.c | 1 - src/project.c | 1 - src/sciwrappers.c | 1 - src/search.c | 1 - src/stash.c | 1 - src/symbols.c | 1 - src/templates.c | 1 - src/ui_utils.c | 1 - src/utils.c | 1 - tagmanager/src/makefile.win32 | 4 ++- tagmanager/src/tm_source_file.c | 1 - tagmanager/src/tm_workspace.c | 1 - wscript | 13 ++++++++++ 30 files changed, 60 insertions(+), 78 deletions(-) commit 4e6da78f54e8734dc84386c2df1610985da91931 Author: Colomban Wendling Date: Fri Apr 10 00:24:20 2015 +0200 PHP: Use the variable style for variable interpolated in strings Use the same variable style for simple interpolations ("$foo") than for complex ones ("${foo}") instead of using the string style itself. This gives a visual feedback for simple interpolations. data/filetypes.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1bed458ab9e9c9d3d37440a8c7543c27b073e556 Merge: 11e16eed6 4e0193d8f Author: Colomban Wendling Date: Thu Apr 9 01:06:57 2015 +0200 Merge pull request #270 from b4n/zephir-filetype Zephir filetype commit 5cf2511945f9598530401f31b62403a3a40bd8b6 Author: Jiří Techet Date: Sun Apr 5 11:45:49 2015 +0200 icon: Adjust the color of the inside of the bottleneck The (almost) black color of the inside of the bottleneck is a bit too high contrast and doesn't fit the rest of the icon (the only black part of it). Use the "lamp yellow" as the base and lower the L in HSL representation of the color so it just looks as darker lamp material. icons/scalable/geany.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cbd13b8f71bf788273f73e2e109fd3702d0c9be6 Author: Jiří Techet Date: Sun Apr 5 11:32:24 2015 +0200 icon: Adjust the left-bottom curve of the bottleneck After making the bottleneck wider (by shifting the curve to the left), the curve became flatter which looks strange. Make the curve a bit more round in the middle. icons/scalable/geany.svg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 942d4c6b7fbc10eaf984b4c6d51fcf4efd56f2fa Author: Jiří Techet Date: Mon Apr 6 19:19:55 2015 +0200 Start bash as a login shell in VTE under OS X Graphical applications on OS X are started using launchd and don't inherit shell's environment variables so we don't get the PS1 value. Do the same as the OS X terminal emulator which runs the shell as a login shell (and yes, on OS X .bash_profile is read for shells started in the terminal application instead of .bashrc). src/keyfile.c | 7 +++++++ 1 file changed, 7 insertions(+) commit ed3142d0dfacded023fc78d4bd2f0a5b81fe588b Author: Jiří Techet Date: Mon Apr 6 19:12:34 2015 +0200 Use editor's default font also for VTE On OS X Monospace 10 is too small (and using non-standard font). As we already have a special OS X font for the editor, use this value (having identical fonts both for the editor and VTE seems to be a good default). src/keyfile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bfa93af5cc3ee23cd049e5a144f2c393aba45e95 Author: Dimitar Zhekov Date: Sun Apr 5 18:49:28 2015 +0300 Remove the includes of and from *.c These are included from spawn.h under Unix now. Also fixes spawn.c including without src/search.c | 5 ----- src/spawn.c | 3 --- src/tools.c | 5 ----- 3 files changed, 13 deletions(-) commit e838ef744b930695a913aabbc0a82a92b3378aa8 Author: Dimitar Zhekov Date: Sun Apr 5 18:43:11 2015 +0300 Define the WIF* and WEXITSTATUS macros in spawn.h under all OS In particular, include and under Unix. src/spawn.h | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit 2f0c9686e23b96544fef66073f4ff1e772a0e921 Author: Dimitar Zhekov Date: Sat Apr 4 19:46:45 2015 +0300 Improved blanks handling in Windows command lines The argument quoting must be permissive (g_ascii_isspace() doesn't handle '\v'), the program name to arguments separator must be fixed to restrictive, and the leading spaces are somewhere between. Also fixed the test program to check for exactly 2 arguments. src/spawn.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) commit 11e16eed6fdb66e6a4046ea5cf6c718c6ce830cd Author: Colomban Wendling Date: Sat Mar 28 23:43:33 2015 +0100 Remove an unused argument src/symbols.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ac00cc0ff6b8555cfe7142579ff6f82f7d6fde3d Author: Dimitar Zhekov Date: Wed Apr 1 21:45:25 2015 +0300 Add working directory to the "execute" test src/spawn.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 8745ba58ae8e5582de7b3c828ac1eefa4e62e134 Author: Dimitar Zhekov Date: Wed Apr 1 21:16:23 2015 +0300 Fix Windows attempts to run 2+ unquoted tokens as a program When passed Foo Bar Qux as a command line, Windows will try to run Foo.exe Bar Qux, then "Foo Bar.exe" Qux, and last "Foo Bar Qux.exe", for maximum flexibility. Quoting Foo supresses this behaviour. src/spawn.c | 79 ++++++++++++++++++++++++++++++++++++++++++++++++------------- src/spawn.h | 2 ++ 2 files changed, 64 insertions(+), 17 deletions(-) commit d4f707bb78d0dff94bf2f64d12dd6ca393dcfbef Author: Frank Lanitz Date: Tue Mar 31 07:10:31 2015 +0200 Small update of German translation po/de.po | 110 +++++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 61 insertions(+), 49 deletions(-) commit 47a7b507a7f0d4febf94d58368572b4db644856d Author: Dimitar Zhekov Date: Mon Mar 30 20:33:55 2015 +0300 Remove the unneeded win32_spawn() and win32_get_exit_status() These are not part of the plugin interface, and are not used in Geany any more after the spawn changes. src/win32.c | 493 ------------------------------------------------------------ src/win32.h | 5 - 2 files changed, 498 deletions(-) commit 7bebf64f3da1fa3ae72e56c6ee4a9039701c8be5 Author: Dimitar Zhekov Date: Sun Mar 29 13:51:07 2015 +0300 Fix SPAWN_UNBUFFERED description src/spawn.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit b3f3bfeee0d92509a2554463286a42ffbe1b0554 Author: Dimitar Zhekov Date: Sun Mar 29 13:47:13 2015 +0300 Alter utils.c to use the new spawning module Also simplified the utils_open_browser() loop. src/utils.c | 80 +++++++++++++++++++------------------------------------------ 1 file changed, 24 insertions(+), 56 deletions(-) commit 0aee6de04586bf56e40b8588f586259582f0055b Author: Dimitar Zhekov Date: Sat Mar 28 13:35:20 2015 +0200 Single-quote file name in the default printing command under Unix src/keyfile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 44dc8a1c2e850bd0c370bd2ddafc2ed5702c360a Author: Dimitar Zhekov Date: Sat Mar 28 13:13:27 2015 +0200 Fix a small leak and the checks for output/errors from the child In particular, if the child is executed successfully, and did not emit anything to stderr, an empty output is considered valid. The original tried to check, and leave the selection unchanged on empty output, but it did not always work. src/tools.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit ca02c593e732c27c91cbf072abd798246d867d30 Merge: 1cea0b6a7 3e6cea696 Author: Colomban Wendling Date: Fri Mar 27 14:44:55 2015 +0100 Merge pull request #445 from bengtan/erlang-fishman-ctags Implement Erlang ctags commit 3e6cea696a86fa54be9c9b2cc7947b9280147195 Author: Beng Tan Date: Fri Mar 27 11:03:17 2015 +0800 Update Erlang ctags test. tests/ctags/test.erl.tags | 2 ++ 1 file changed, 2 insertions(+) commit 36d1db4bc761cb666f2594dbf1a8f6380da60d43 Author: Beng Tan Date: Fri Mar 27 10:56:25 2015 +0800 Change kind names for Erlang ctags parser ... so the tags will appear in Geany. tagmanager/ctags/erlang.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1cea0b6a79c020bc5c44558fa9509affaee956ec Merge: f35614757 1a36eeaf4 Author: Colomban Wendling Date: Thu Mar 26 22:53:29 2015 +0100 Merge pull request #411 from techee/shadows Use consistent shadows across Geany commit f5cad4365aaa7a85c5ac8673ce6362c5bd10fec9 Author: Dimitar Zhekov Date: Thu Mar 26 18:31:08 2015 +0200 Fix a small leak and re-utf8 of grep cmd / extra options in Messages ixed a small memory leak (argv_prefix) introduced with the spawning change. Simplified the utf8_dir handling, there's no reason to re- convert it to utf-8. Restored the original grep command display in Messages (as entered in Tools vs. found by g_find_program_in_path), but fixed the re-utf8-izing of the command and extra options. Grouped in one commit, since these changes affect the same lines, and are actually small. src/search.c | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) commit a3af98cfc99884c8040f1de0b5fa8d3f57421ddb Author: Dimitar Zhekov Date: Mon Mar 23 20:02:43 2015 +0200 Altered keyfile.c to use the new spawning module In particular, changed the default printcmd not to "single quote paths on Win32 for g_spawn_command_line_async", but use the native double quotes. Also fixed it not to g_strconcat(NULL, ...) if lpr is missing under Unix. It works, but glib says the first string must not be NULL, and the command becomes wrong anyway. src/keyfile.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 6e92c5f64aa4bcf4434a8d2b191f7e85724d231e Author: Dimitar Zhekov Date: Mon Mar 23 19:46:04 2015 +0200 Altered tools.c to work with the new spawning module The tools (from Edit -> Format -> Send Selection to) are now spawned synchronously, which guarantees that both the document and it's selection will be unchanged when the tool completes. src/tools.c | 257 ++++++++---------------------------------------------------- 1 file changed, 34 insertions(+), 223 deletions(-) commit 0f179331ef0760af7c5e7a61dbb9f70ba8c8e43f Author: Enrico Tröger Date: Sat Jan 31 17:27:31 2015 +0100 Add a popup menu to the plugin list in the plugin manager dialog This makes it easier to reach plugins' configure, keybindings and help functions. src/plugins.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 56 insertions(+), 6 deletions(-) commit 1a36eeaf4d6a5cab39d2cfd2c69a1a2f6e2bce70 Author: Jiří Techet Date: Sun Mar 22 15:32:54 2015 +0100 Use consistent shadows across Geany In principle, any scrolled window should have GTK_SHADOW_IN so the scrollbars are not above the surface and there is a frame around the scrolled area. The only exception are the elements of the main window where adding GTK_SHADOW_IN causes there are too many shadows (or lines in 2D themes) around the windows and the result isn't nice. So use GTK_SHADOW_NONE for all main editor scrolled windows. (One additional exception is the Help->Credits page which is gray and the extra frame doesn't look good.) Replace frame around VTE with GtkViewport to avoid the extra line around. Raise the second editor from the splitwindow plugin so it's at the same level as the main editor. data/geany.glade | 4 ++-- plugins/htmlchars.c | 4 ++-- plugins/splitwindow.c | 9 +++++++-- src/gb.c | 4 +--- src/highlighting.c | 2 +- src/keybindings.c | 2 +- src/log.c | 1 + src/sidebar.c | 1 + src/toolbar.c | 4 ++-- src/vte.c | 9 +++------ 10 files changed, 21 insertions(+), 19 deletions(-) commit 3566baa60861933435dff39fadcb82693ea95a25 Author: Dimitar Zhekov Date: Sat Mar 21 19:58:11 2015 +0200 Alter printing.c to use the new spawning module src/printing.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) commit 353b748cf75b29d3d342757759d220d9f47aa563 Author: Dimitar Zhekov Date: Sat Mar 21 19:45:38 2015 +0200 Alter callbacks.c to use the new spawning module src/callbacks.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a3f4170a4bd503e26208a5eb5dbab93b4761fbfe Author: Dimitar Zhekov Date: Sat Mar 21 19:36:14 2015 +0200 Alter templates.c to use the new spawning module src/templates.c | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) commit 74171cca5026e915e68b55f420b986b266ddcf7f Author: Dimitar Zhekov Date: Thu Mar 19 20:03:33 2015 +0200 Alter search.c to use the new spawning module Also enabled the Grep tool setting to be used as a command line, instead of an executable name only, and fixed a small bug where the search text displayed in Messages was re-utf8-ed. src/search.c | 162 ++++++++++++++++++++++------------------------------------- 1 file changed, 61 insertions(+), 101 deletions(-) commit 4a0ea0ce1f8e0b85fe390d8aa1c7e967a9c92ce7 Author: Dimitar Zhekov Date: Thu Mar 19 19:08:46 2015 +0200 Do not reallocate the build output/error text received by spawn src/build.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit 3b723b8ce000ce5bd60a5dc41cb3c620bfaba381 Author: Dimitar Zhekov Date: Thu Mar 19 19:03:59 2015 +0200 Fix a memory leak when checking a spawn command line src/spawn.c | 1 + 1 file changed, 1 insertion(+) commit f35614757ba56cfb53d58fa506dbad1afee17059 Author: Colomban Wendling Date: Tue Mar 17 14:09:31 2015 +0100 Mark an argument const src/utils.c | 2 +- src/utils.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit faa6cd8614f59b16babbe0e48396659e0a411021 Author: Dimitar Zhekov Date: Mon Mar 16 22:25:54 2015 +0200 Clarify that a spawn stdout/stderr cb may modify the passed string src/spawn.h | 2 ++ 1 file changed, 2 insertions(+) commit dccd421a798d549b935e4dd674fa6a87e4b52ed5 Author: Dimitar Zhekov Date: Mon Mar 16 22:23:28 2015 +0200 Don't check a spawned command line twice under Unix src/spawn.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 05415e53b63c89e104e93bc729bb8b3344d61525 Author: Dimitar Zhekov Date: Mon Mar 16 22:10:30 2015 +0200 Unify the build command spawning Also, don't check build_spawn_cmd() cmd argument under Unix, since it may be valid shell command rejected by glib g_shell_parse_argv(). src/build.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) commit 9c829aeb3c917deb028303bd51bc39a9e8fa758e Author: Colomban Wendling Date: Mon Mar 16 14:55:50 2015 +0100 make: Fix parsing of empty continuation lines tagmanager/ctags/make.c | 2 +- tests/ctags/Makefile.am | 1 + tests/ctags/continuation.mak | 11 +++++++++++ tests/ctags/continuation.mak.tags | 3 +++ 4 files changed, 16 insertions(+), 1 deletion(-) commit aae13ed26dc777ad159e8f974e25333cbe42fac8 Merge: 78a45805f 243480b83 Author: Colomban Wendling Date: Mon Mar 16 02:01:58 2015 +0100 Merge pull request #444 from techee/handle Geany icon improvements commit 243480b83d031f52b3ecfe1fdaed9539c367ae65 Author: Jiří Techet Date: Sun Mar 15 23:31:40 2015 +0100 Regenerate png/ico icons from svg and add the 32x32 size The 32x32 size can be created by downsampling the 48x48 icon by gtk at runtime but the result will be worse than doing the same directly from the svg icon (48->32 conversion means downsampling by 1.5 which can introduce some moire artifacts and loss of information). Since 32x32 are quite commonly used, it makes sense to ship this icon size with Geany. The png files have been optimized by pngoptim to remove metadata and compress the icon better. icons/16x16/geany.png | Bin 897 -> 856 bytes icons/32x32/Makefile.am | 7 ++++++- icons/32x32/geany.png | Bin 0 -> 2368 bytes icons/48x48/geany.png | Bin 4314 -> 4240 bytes icons/geany.ico | Bin 23558 -> 23558 bytes wscript | 1 + 6 files changed, 7 insertions(+), 1 deletion(-) commit 34f911939c0d051b35322d6efc6252702ab62283 Author: Jiří Techet Date: Sun Mar 15 21:09:13 2015 +0100 Make the geany icon bottleneck a bit wider This way the non-highlighted part can still be shown. icons/scalable/geany.svg | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 45a375caeb45f4bcca17462db7fe9179f3d4b665 Author: Jiří Techet Date: Sun Mar 15 11:57:26 2015 +0100 Fix geany icon handle The handle of the lamp icon looks strange. While the image of the lamp itself is taken from top, the handle looks it's taken from bottom. Fix this by moving the wide part of the handle down and moving the "shine" line to copy the outer edge. Also adjust the handle curves a bit to connect the lamp in a more natural way. icons/scalable/geany.svg | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 78a45805f1ce24b315ad1c99be4cc323d4c00959 Author: Colomban Wendling Date: Sun Mar 15 15:31:31 2015 +0100 autotools: Fix make dist after Scintilla makefile.win32 move 8ebac60901c239a7dc36461a077139595bed12b8 moved the makefile.win32, so we need to use the new location. scintilla/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ae7ecde1dff2ea3a91ee14df0346f852007ab3ea Author: Colomban Wendling Date: Sun Mar 15 15:26:06 2015 +0100 autotools: Fix generating geanyfunctions.h in out-of-tree builds plugins/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fc766eda22fa3acc06245b2b20d10c45451aea41 Author: Jiří Techet Date: Sun Mar 15 00:02:01 2015 +0100 Fix visual problems around the bottle neck The Light sublayer of the Lamp layer covers the lamp border partly so it appears cut off. In addition, the Shine sublayer doesn't follow the border properly. Adjust the curves in both of these sublayers to fix the problem. icons/scalable/geany.svg | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 2199158b153cb27fb5f48f00bd99636e9a9ba8bc Author: Jiří Techet Date: Sat Mar 14 23:43:10 2015 +0100 Subdivide the icon into layers for better navigation No visual change. icons/scalable/geany.svg | 347 ++++++++++++++++++++++++++++++----------------- 1 file changed, 223 insertions(+), 124 deletions(-) commit 9721faff62533c98e920e6e10bc87ab05255ef49 Author: Beng Tan Date: Sun Mar 15 15:55:45 2015 +0800 Add (and fix) ctags unit tests for Erlang. tests/ctags/Makefile.am | 1 + tests/ctags/maze.erl.tags | 15 ++++++++++----- tests/ctags/test.erl | 16 ++++++++++++++++ tests/ctags/test.erl.tags | 4 ++++ 4 files changed, 31 insertions(+), 5 deletions(-) commit b0c5d221a5ef2f52a485b1d686f9c65a01efe533 Author: Beng Tan Date: Sun Mar 15 13:41:23 2015 +0800 Implement Erlang ctags. Using erlang.c from fishman/ctags. src/filetypes.c | 2 +- tagmanager/ctags/Makefile.am | 1 + tagmanager/ctags/erlang.c | 194 ++++++++++++++++++++++++++++++++++++++++ tagmanager/ctags/makefile.win32 | 2 +- tagmanager/ctags/parsers.h | 1 + tagmanager/src/tm_parser.h | 1 + wscript | 1 + 7 files changed, 200 insertions(+), 2 deletions(-) commit 690cb922be902f023881d455ae0c0a87d1c62170 Author: Dimitar Zhekov Date: Sat Mar 14 21:36:05 2015 +0200 Alter build.c to use the new spawning module The wrong and misleading "Failed to change the working directory" is changed to a generic "Invalid working directory". Under Windows, the build commands are run directly as command lines, while under Unix, /bin/sh is used - for compatibility, and because that's probably what a *nix user expects. The run script is always run as a command line, since it contains it's own shell, and because that lets us specify %c under Windows. In fact, %c (or "%c") should probably be the default, since CreateProcess() runs batch files with the default shell, instead of some our value. Also changed build_spawn_cmd() and build_run_cmd() to void, since their return values are not used anywhere. src/build.c | 279 ++++++++++-------------------------------------------------- 1 file changed, 45 insertions(+), 234 deletions(-) commit 07aeafab81b00365406488b71f8b3a8cf9659048 Author: Colomban Wendling Date: Wed Mar 11 02:39:45 2015 +0100 autotools: Fix installation directory of plugins on Windows For some reason we expect the plugins directly inside `$(libdir)` on Windows instead of `$(libdir)/geany`, so install the plugins there on Windows. plugins/Makefile.am | 4 ++++ 1 file changed, 4 insertions(+) commit 2bfd394803cba185b3836d9c25b3d126f750ac13 Author: Colomban Wendling Date: Tue Oct 28 16:13:10 2014 +0100 Don't export on_motion_event() callback unnecessarily src/callbacks.c | 1 - 1 file changed, 1 deletion(-) commit bc013ae9fea0d312a12b89098aa135f2ff9850a4 Author: Colomban Wendling Date: Tue Oct 28 15:27:41 2014 +0100 Rename LIBGEANY_LIBS to LIBGEANY_LDFLAGS and only use it on libgeany.la The flags in this variables are used to tune the linker behavior on the final libgeany (currently set the version information), so should only used on really linked libraries, not Libtool helper libraries. m4/geany-lib.m4 | 4 ++-- scintilla/Makefile.am | 1 - src/Makefile.am | 8 ++++---- tagmanager/ctags/Makefile.am | 2 -- tagmanager/mio/Makefile.am | 1 - tagmanager/src/Makefile.am | 2 -- 6 files changed, 6 insertions(+), 12 deletions(-) commit 361bf702e0b9ebf8052c39b15cba434ad4d85692 Author: Colomban Wendling Date: Mon Oct 27 00:48:24 2014 +0100 Explicitly cast string literals to non-constant pointers src/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a264b7ab77ba13f9c4268c237a8b9051a3d77915 Author: Colomban Wendling Date: Mon Oct 27 00:47:23 2014 +0100 Properly initialize Libtool configure.ac | 1 + 1 file changed, 1 insertion(+) commit bcc7a35c062b947b244b0e9136c55201ef14a23f Author: Matthew Brush Date: Sun Oct 19 16:01:55 2014 -0700 Don't export GtkBuilder callbacks anymore They are connected inside the library now rather than using GModule to find the symbols. Mark local callback handlers as static since they aren't global or exported anymore, they should be static. Since they're static now, all of the forward-declarations of the functions local to callbacks.c are pointless, so just remove them. src/callbacks.c | 350 ++++++++++++++++++++++---------------------------------- src/project.c | 3 +- 2 files changed, 137 insertions(+), 216 deletions(-) commit 1d64d5211fc7c660d9facbc5c927bbce32029863 Author: Matthew Brush Date: Sun Oct 19 13:49:58 2014 -0700 Replace dynamic exports with codegen for GtkBuilder callbacks This prevents having to export those callbacks and put them in the global namespace. Also, use inline shell script in Makefile.am instead of a Python script which should be more portable (by default) and gets rid of the helper script. m4/geany-lib.m4 | 23 ++----- scripts/dynamicsymbols.py | 73 --------------------- src/Makefile.am | 24 +++++-- src/callbacks.c | 2 + src/callbacks.h | 3 + src/dynamicsymbols.list | 161 ---------------------------------------------- src/signalconn.c.in | 32 +++++++++ src/ui_utils.c | 2 +- 8 files changed, 61 insertions(+), 259 deletions(-) commit eb36500ac425c2b4f038bbcb1d3e38f353f0402c Author: Matthew Brush Date: Mon Oct 13 23:07:11 2014 -0700 Improve Autotools build system for libgeany Checks if the compiler supports -fvisibility and the linker supports -dynamic-list arguments and use them instead of hardcoding. The new geany-lib.m4 also accomodates future use of Libtool versioning. configure.ac | 3 +++ m4/geany-lib.m4 | 48 ++++++++++++++++++++++++++++++++++++++++++++ scintilla/Makefile.am | 5 +++-- src/Makefile.am | 21 +++++++++---------- tagmanager/ctags/Makefile.am | 3 ++- tagmanager/mio/Makefile.am | 3 ++- tagmanager/src/Makefile.am | 4 +++- 7 files changed, 71 insertions(+), 16 deletions(-) commit d33758da926ca124db674240c431b8b07bb0e683 Author: Matthew Brush Date: Mon Oct 13 19:29:36 2014 -0700 Move Geany's core into a library (libgeany) This will allow plugins to link against the core when accessing API functions, now that the macro/struct/funcptr stuff is gone. Also convert the helper libraries into Libtool helper libraries as linking a shared library against static libraries is (apparently) not portable. configure.ac | 3 - geany.pc.in | 2 +- plugins/Makefile.am | 15 +- po/POTFILES.in | 2 +- scintilla/Makefile.am | 7 +- src/Makefile.am | 45 +- src/libmain.c | 1406 ++++++++++++++++++++++++++++++++++++++++++ src/main.c | 1385 +---------------------------------------- src/main.h | 2 + tagmanager/ctags/Makefile.am | 7 +- tagmanager/mio/Makefile.am | 6 +- tagmanager/src/Makefile.am | 7 +- 12 files changed, 1462 insertions(+), 1425 deletions(-) commit 860df27696de75ab41765ed5700eb8e9991bccab Author: Matthew Brush Date: Mon Oct 13 19:08:57 2014 -0700 Remove struct/macro/funcptr linkage control for plugin API Add rest of headers needed for declarations of all public API functions. Add HAVE_PLUGINS define to geanyplugins.h since some headers need this and it should always be valid for this header. geanyfunctions.h left for source-level backwards compatibility for plugins which might `#include` this header directly. I don't know why they do it, but some Geany-Plugins do this. doc/Doxyfile.in | 1 - doc/Makefile.am | 1 - doc/plugins.dox | 7 +- plugins/Makefile.am | 14 +- plugins/geanyfunctions.h | 463 +++----------------------------------------- plugins/geanyplugin.h | 15 +- plugins/genapi.py | 98 ---------- src/Makefile.am | 6 + src/plugindata.h | 490 ----------------------------------------------- src/plugins.c | 326 +------------------------------ 10 files changed, 47 insertions(+), 1374 deletions(-) commit 1e630e6f12c211a1b046d94421a8282682152eb6 Author: Matthew Brush Date: Mon Oct 13 18:07:48 2014 -0700 Remove redundant GEANY_EXPORT_SYMBOL usage in callbacks.h It only needs to be specified in one place for each function. src/callbacks.c | 1 + src/callbacks.h | 121 ++++++++++++++++++++++++++++---------------------------- 2 files changed, 61 insertions(+), 61 deletions(-) commit 056e7cb4c8bd193e85f1c834a3c9f0beb06b8828 Author: Matthew Brush Date: Mon Oct 13 18:04:16 2014 -0700 Change to GEANY_EXPORT_SYMBOL for callback functions This allows them to be dynamically exported when -fvisibility=hidden is applied. TODO: remove the CFLAGS hack in configure.ac configure.ac | 3 + src/callbacks.c | 422 ++++++++++++++++++++++++++++---------------------------- src/callbacks.h | 121 ++++++++-------- src/project.c | 3 +- 4 files changed, 277 insertions(+), 272 deletions(-) commit 2f0867076368fdd0333cfe61805f4fdebce34fe9 Author: Matthew Brush Date: Mon Oct 13 16:36:36 2014 -0700 Mark all plugin API functions to have "default" (public) visibility Adds a new header `pluginexport.h` to put the macros in, could be moved into an existing header (support.h?) by I didn't want to drag a bunch of existing stuff into the source files for this one macro. TagManager has relative include, this could be fixed by changing the include directories for it if it's a problem. Mark the Scintilla functions exported by re-declaring them in sciwrappers.c with the attribute to avoid changing upstream Scintilla code. src/Makefile.am | 2 +- src/build.c | 9 ++++-- src/dialogs.c | 6 ++++ src/document.c | 25 +++++++++++++++++ src/editor.c | 16 +++++++++++ src/encodings.c | 4 +++ src/filetypes.c | 6 ++++ src/highlighting.c | 6 ++++ src/keybindings.c | 5 ++++ src/main.c | 4 +++ src/msgwindow.c | 7 +++++ src/navqueue.c | 2 ++ src/pluginexport.h | 34 ++++++++++++++++++++++ src/pluginutils.c | 10 +++++++ src/sciwrappers.c | 62 +++++++++++++++++++++++++++++++++++++++++ src/search.c | 2 ++ src/stash.c | 21 ++++++++++++++ src/symbols.c | 2 ++ src/templates.c | 2 ++ src/ui_utils.c | 22 +++++++++++++++ src/utils.c | 24 ++++++++++++++++ tagmanager/src/tm_source_file.c | 4 +++ tagmanager/src/tm_workspace.c | 5 ++++ 23 files changed, 276 insertions(+), 4 deletions(-) commit a40ab0a4d9715b5f2c334f777e46ecb0fb6c5530 Author: Matthew Brush Date: Mon Oct 13 14:00:41 2014 -0700 Explicitly list symbols to dynamically export Uses a Python script to generate a listing used by the linker to determine which symbols to dynamically export. This provides finer grained control of which symbols are dynamically exported, limiting only to the ones needed for GtkBuilder signal connections. The build system integration could probably be done a little cleaner. configure.ac | 2 +- scripts/dynamicsymbols.py | 73 +++++++++++++++++++++ src/Makefile.am | 11 +++- src/dynamicsymbols.list | 161 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 245 insertions(+), 2 deletions(-) commit ce0fa6ffa17befa0969653a0312b38a5429f1d6e Author: Dimitar Zhekov Date: Tue Mar 10 21:24:42 2015 +0200 Add a spawn module for Geany g_spawn_async_with_pipes() under Windows has various drawbacks: - There is no g_shell_parse_argv() for windows. It's not hard to write one, but the command line recreated by mscvrt may be wrong. - GLib converts the argument vector to UNICODE. For non-UTF8 arguments, the result is often "Invalid string in argument vector at %d: %s: Invalid byte sequence in conversion input" (YMMV). Our tools (make, grep, gcc, ...) are "ANSI", so converting to UNICODE and then back only causes problems. - For various reasons, GLib uses an intermediate program to start children (see gspawn-win32.c), with the side effect that the grandchildren output (such as make -> gcc) is not captured. - With non-blocking pipes, the g_io_add_watch() callbacks are never invoked, while with blocking pipes, g_io_channel_read_line() blocks. - Some smaller problems, explained in spawn.c as inline comments. The spawn module tries to fix these problems, and to provide easier APIs, which guarantee that the callbacks will synchronized as expected, and g_io_channel_read_line() will not be required, since even under Unix, it may buffer lines of unlimited length. This initial commit only adds the module source and header files, and includes it in the various build systems. You can see PR 274 for a long discussion about the module. src/Makefile.am | 1 + src/makefile.win32 | 2 +- src/spawn.c | 1247 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/spawn.h | 102 +++++ wscript | 2 +- 5 files changed, 1352 insertions(+), 2 deletions(-) commit 7254bf96644058afa84b0aabd603f87d611615d0 Merge: e64cb9733 3cf8c3a6b Author: Colomban Wendling Date: Sun Mar 8 14:34:04 2015 +0100 Merge branch 'scintilla-update-354' commit 3cf8c3a6bef74b985a08a965f832f691f906b5c0 Author: Colomban Wendling Date: Sun Mar 8 14:31:26 2015 +0100 objectivec: Enable escapes in verbatim strings Enable new Scintlla lexer.cpp.verbatim.strings.allow.escapes lexer property for ObjectiveC. data/filetypes.objectivec | 1 + 1 file changed, 1 insertion(+) commit 8ac86ce42377ee99eacd91ab8737347c0badb12e Author: Colomban Wendling Date: Sun Mar 8 14:30:34 2015 +0100 Update Scintilla to version 3.5.4 scintilla/gtk/ScintillaGTK.cxx | 8 +- scintilla/include/Scintilla.h | 14 + scintilla/include/Scintilla.iface | 33 ++ scintilla/lexers/LexCPP.cxx | 9 +- scintilla/lexers/LexRuby.cxx | 805 ++++++++++++++++++++------------------ scintilla/lexers/LexRust.cxx | 4 +- scintilla/lexers/LexSQL.cxx | 50 +-- scintilla/lexers/LexTCL.cxx | 370 +++++++++--------- scintilla/lexers/LexVHDL.cxx | 7 +- scintilla/lexers/LexVerilog.cxx | 95 ++++- scintilla/src/CellBuffer.cxx | 5 + scintilla/src/Document.cxx | 45 ++- scintilla/src/Document.h | 2 + scintilla/src/EditModel.cxx | 1 + scintilla/src/EditModel.h | 1 + scintilla/src/EditView.cxx | 58 ++- scintilla/src/Editor.cxx | 163 +++++--- scintilla/src/Editor.h | 2 + scintilla/src/Indicator.cxx | 69 ++-- scintilla/src/Indicator.h | 34 +- scintilla/src/PositionCache.cxx | 14 +- scintilla/src/PositionCache.h | 2 +- scintilla/src/RESearch.cxx | 4 +- scintilla/src/ScintillaBase.cxx | 22 +- scintilla/src/UniConversion.cxx | 8 +- scintilla/src/UniConversion.h | 6 + scintilla/src/ViewStyle.cxx | 16 + scintilla/src/ViewStyle.h | 2 + scintilla/version.txt | 2 +- 29 files changed, 1127 insertions(+), 724 deletions(-) commit e64cb973329fde122fc8fad8900d81f45a7b1d6e Author: Colomban Wendling Date: Fri Mar 6 17:36:15 2015 +0100 Make the editor tab close buttons smaller on GTK3 Also remove extra padding around the button's image to reduce its size and try and avoid it expanding the tab's height. This at least fixes the editor tabs height on Adwaita theme, where they were 1px taller than normal. data/geany.css | 3 +++ 1 file changed, 3 insertions(+) commit c3d7acfe812f2c750d810a746dc3bdf7af1c7865 Merge: 93c217aae 888d3dc9d Author: Colomban Wendling Date: Fri Mar 6 02:45:39 2015 +0100 Merge pull request #433 from b4n/statusbar-eol-short-name Use the short name for EOL mode in the statusbar commit 93c217aae9b01a5448ff965b2fdda2a17629f95d Merge: e1c35d2dc 8d19ea4c9 Author: Colomban Wendling Date: Fri Mar 6 01:47:42 2015 +0100 Merge pull request #412 from techee/rules_hint Disable "rules hint" for the Documents tab commit 8d19ea4c9fa7f74a3cf29db479ec5b7be11463db Author: Jiří Techet Date: Thu Mar 5 10:21:11 2015 +0100 Disable "rules hint" for the Documents tab The "rules hint" property is used to tell the theme for which TreeView even/odd rows should have a different color. This is typically used for long rows or rows which need to be visually separated for some reason. Currently the Documents sidebar view uses it which doesn't make much sense because the row is short and neither of the other tabs in the sidebar use it. data/geany.glade | 1 - 1 file changed, 1 deletion(-) commit e1c35d2dc170bd62e0d88bede88c8718df63fdc5 Merge: a40acf52b 709cbd512 Author: Colomban Wendling Date: Wed Mar 4 22:57:02 2015 +0100 Merge branch 'techee/leaks' Merges PR #417. commit 2e1117e027ec6e4cbcfaaf22516b368b61a9d1b3 Author: Colomban Wendling Date: Wed Mar 4 19:27:35 2015 +0100 Greatly simplify trigger callback src/gb.c | 54 ++++++++++-------------------------------------------- 1 file changed, 10 insertions(+), 44 deletions(-) commit 393629aa7bc64cb7e6c8f3d14a19895a52e74c1e Author: Colomban Wendling Date: Thu Aug 14 03:18:36 2014 +0200 Replace gb with a new thing src/gb.c | 2005 ++++++++++++-------------------------------------------------- 1 file changed, 363 insertions(+), 1642 deletions(-) commit a40acf52b4f3687cb931b8bb7142f9b6bccfee6d Author: Frank Lanitz Date: Wed Mar 4 19:05:05 2015 +0100 Update of German translation po/de.po | 386 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 193 insertions(+), 193 deletions(-) commit 709cbd512b26ce42134dcf9460f7ed570eb5afac Author: Colomban Wendling Date: Wed Mar 4 16:39:36 2015 +0100 Explicitly initialize some variables for which we use the default value This does not change anything in practice because static variables are initialized implicitly as we need them anyway, but this makes things clearer and more explicit. src/highlighting.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e0116ccd9c58996bc7adecfc99efefe7d03c6bd2 Merge: 96e2635ab b2e5d08da Author: Colomban Wendling Date: Wed Mar 4 15:58:47 2015 +0100 Merge pull request #418 from b4n/spell-windows-windows Spell "Windows" as "Windows", not "Win". commit 888d3dc9dc06b5c6ac5211460dead1b06b1721be Author: Colomban Wendling Date: Wed Mar 4 15:57:26 2015 +0100 Use the short name for EOL mode in the statusbar See discussion in https://github.com/geany/geany/pull/418 src/ui_utils.c | 2 +- src/utils.c | 11 +++++++++++ src/utils.h | 2 ++ 3 files changed, 14 insertions(+), 1 deletion(-) commit 96e2635abe86f855c8173eba57e7701a120807b9 Merge: 05e19be0a 51ce1018c Author: Colomban Wendling Date: Wed Mar 4 15:04:34 2015 +0100 Merge pull request #431 from techee/absolute_prjname Always use absolute path when opening projects from command-line commit 51ce1018cccbc6a6c0c3614d1d4e29daea9ab606 Author: Jiří Techet Date: Wed Mar 4 14:34:55 2015 +0100 Always use absolute path when opening projects from command-line At the moment when geany project is loaded from commandline using e.g. "geany myproject.geany", the relative path is used by geany so e.g. Project->Recent Projects shows the relative path instead of the absolute one (also if the project is already in the list with an absolute path, additional entry with relative path is created). Use main_get_argv_filename(), which is already used for ordinary files, also for opening .geany files. src/main.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 05e19be0a3c83d169217ad6708e56eeed286e30c Merge: b032f2e21 7fa8b3a69 Author: Colomban Wendling Date: Wed Mar 4 14:08:11 2015 +0100 Merge pull request #419 from techee/osx-integration OS X integration commit b032f2e214eb52fb79803532fb2b7a7f581be362 Merge: 185d4fff9 7b5df86bd Author: Colomban Wendling Date: Wed Mar 4 13:58:02 2015 +0100 Merge pull request #426 from techee/run_script_tmp Create geany_run_script.sh in the temporary directory instead of the working directory. commit 185d4fff933ec5cc7837ef69ab3eae8d0cee3ea3 Merge: 87af9597f 9df204ab7 Author: Nick Treleaven Date: Wed Mar 4 12:40:15 2015 +0000 Merge pull request #430 from techee/fix_warning Fix compiler warning commit 9df204ab78551fd8988b660325d78fd3330a3bb0 Author: Jiří Techet Date: Wed Mar 4 12:47:20 2015 +0100 Fix compiler warning src/document.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7fa8b3a6953f734593e027a7ef7a8f93064be04c Author: Jiří Techet Date: Tue Mar 3 16:49:24 2015 +0100 Backport adaptive scrolling patch from scintilla scintilla/gtk/ScintillaGTK.cxx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit a9912c3c35dd231d8232e88564a664a8d91e4bf0 Author: Jiří Techet Date: Tue Feb 24 19:11:51 2015 +0100 Don't use single menu for "New with template" shared by toolbar and menubar The current implementation uses single menu for the toolbar and menubar and reparents it when file menu is shown/hidden. Connectiong "show"/"hide" signals doesn't work for menu items on OS X (and I suppose Ubuntu either) so the template submenu is never shown in the File menu. The easiest fix seems to be having two identical menus the same way we have them for recent files. src/templates.c | 81 +++++++++++++++++++-------------------------------------- 1 file changed, 27 insertions(+), 54 deletions(-) commit 3031ac7e410b346950d2651f8fa53e96d6a7e173 Author: Jiří Techet Date: Mon Feb 23 19:47:26 2015 +0100 Check disk status when Geany enters foreground Since we have a simple way to check Geany has entered foreground on OS X, use it to check the current document's disk status. src/osx.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 2e1dc7aebac720f58c71bb2decee9421713cf883 Author: Jiří Techet Date: Wed Feb 18 21:25:23 2015 +0100 Don't use expose-event/draw signals of the menu The expose-event/draw signals were used to reenable the menu after it has been disabled when VTE overrides the given keybinding. This doesn't work on OS X where GtkMenuBar isn't displayed (there may be a similar problem with the global menubar on Ubuntu). The reason why these signals were used was probably slight flickering of the menubar when using ordinary g_idle_add() to reenable the menu (the dimmed menu gets drawn after which it gets reenabled and redrawn non-dimmed). It is however possible to use idle function with higher than redraw priority in which case the menu is enabled before the redraw so the dimmed menu isn't drawn at all. Fixes https://sourceforge.net/p/geany/bugs/1081/ src/keybindings.c | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) commit 232d4dacded6d98a827414d62fa9879f618fb4f1 Author: Jiří Techet Date: Wed Feb 18 17:19:57 2015 +0100 Add right-click launcher icon entry creating a new window Normal clicking the launcher icon just brings the application to the foreground so there must be a way users can create a new instance of Geany. Add an entry "New Window" to the context menu which is shown when right-clicking the Geany icon in the launcher (most applications have the "New Window" entry there). In addition, fix "Open in new window" when using app bundle. Since both of these functionalities create a new Geany instance, factor-out the instance creation code into a new utility function and use it in both cases. src/notebook.c | 23 ++++------------------- src/osx.c | 15 ++++++++++++++- src/utils.c | 33 +++++++++++++++++++++++++++++++++ src/utils.h | 2 ++ 4 files changed, 53 insertions(+), 20 deletions(-) commit 562885765dbd600626558372a409832cb4cda77e Author: Jiří Techet Date: Wed Feb 18 17:06:01 2015 +0100 React to various useful gtk-mac-integration signals NSApplicationBlockTermination signal is emitted when clicking the Quit menu to check whether the application permits quitting - react accordingly. --- NSApplicationOpenFile signal is emitted when * file is dragged on the application icon * application is selected from "Open with" menu after right-clicking the file * when double-clicking a file for which the application is default editor/viewer * when file is opened from command-line When the application isn't running, it is first started and then this signal is emitted. Use the signal to open files. In addition, when the opened file has the ".geany" suffix, open it (but only if the project isn't already open). The project has to be opened in idle function because blocking the signal handler for a long time by the project-close confirmation dialog causes problems. src/osx.c | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) commit ada4595264def0f96d40e223f41243b46580fc1b Author: Jiří Techet Date: Wed Feb 4 01:01:13 2015 +0100 Use global menubar on OS X We have to disable quartz accelerator handling because otherwise accelerators are performed also from other windows than the main Geany editor (e.g. Ctrl+V with find dialog open performs the keybinding Ctrl+V and inserts the text to the editor). OS X applications have an extra menu entry to the left of the File menu - an "application menu". This menu usually contains About, Preferences, Quit. Many users, however, may be used to Geany from other platforms and expect Preferences to be under the Edit menu so leave them there. Quit and About are rarely used and the application menu is the place where they are supposed to be - move these entries from other Geany menus there and hide them in the affected menus (the quit entry is inserted automatically, we just need to hide it from File). Also tell OS X the Help menu is dedicated to help (we get search in menu entries by name for free thanks to this). The global menu should refresh automatically based on user actions. Unfortunately this is not the case when gtk_menu_reorder_child() is used because it does not emit any signals so the gtk-mac-integration library doesn't see this call. Refresh the menu manually after calling this function. src/Makefile.am | 2 +- src/main.c | 3 +++ src/osx.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ src/osx.h | 6 ++++++ src/ui_utils.c | 20 +++++++++++++++++--- wscript | 2 +- 6 files changed, 77 insertions(+), 5 deletions(-) commit 18d517bd95ea29cb04e7652631c56a0376e6f098 Author: Jiří Techet Date: Wed Feb 4 00:27:34 2015 +0100 Use gtk-mac-integration so app bundle can be created on OS X This patch adds the gtk-mac-integration library and uses it to adjust various paths in Geany to point it inside the app bundle if Geany runs from inside the bundle. It adds the utils_resource_dir() utility function to return correct directories for various kinds of resources for all supported operating systems. Using this function the patch adjusts all Geany resource, plugin, icon, doc, and locale paths. configure.ac | 1 + m4/geany-mac-integration.m4 | 18 +++++++++++++ src/Makefile.am | 4 ++- src/main.c | 64 ++++++++++++--------------------------------- src/osx.h | 30 +++++++++++++++++++++ src/plugins.c | 12 +-------- src/utils.c | 59 +++++++++++++++++++++++++++++++++++++++++ src/utils.h | 14 ++++++++++ wscript | 9 ++++++- 9 files changed, 151 insertions(+), 60 deletions(-) commit 7b5df86bd14dac77e1d66ede4b8240cd99e8ba48 Author: Jiří Techet Date: Sun Feb 22 22:46:25 2015 +0100 Create geany_run_script.sh in the temporary directory instead of the working directory Under some conditions, geany_run_script.sh is not deleted and we have no means to detect this in Geany (e.g. when the terminal emulator is started correctly but it fails to execute the script for some reason). In this case it is better to keep the garbage in /tmp than the working directory. Apart from that, it eliminates potential transfer of the run script over a NFS and eliminates the visibility of the script in working directory on Windows. Apart from that this patch fixes some locale/utf8 conversion problems and other subtle problems with the previous implementation. doc/geany.txt | 5 +- src/build.c | 167 +++++++++++++++++++++++++--------------------------------- 2 files changed, 74 insertions(+), 98 deletions(-) commit 87af9597fc66dc87e7a5aea21d9dec91f6d4b684 Author: Colomban Wendling Date: Tue Mar 3 20:10:41 2015 +0100 Make sci_get_cursor_virtual_space() GEANY_PRIVATE src/sciwrappers.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a5b99dc96dfed95bb08940e33b8ce5153f5069d5 Author: Dimitar Zhekov Date: Tue Mar 3 16:09:19 2015 +0200 Add virtual column and selected chars to the statusbar Closes https://sourceforge.net/p/geany/patches/10/ doc/geany.txt | 8 ++++++-- src/sciwrappers.c | 11 +++++++++++ src/sciwrappers.h | 1 + src/ui_utils.c | 19 ++++++++++++------- 4 files changed, 30 insertions(+), 9 deletions(-) commit 9694338e71bdfabd0700980252dbde7095606f57 Merge: 1a6adc0d6 cc6602c2b Author: Colomban Wendling Date: Tue Mar 3 17:05:44 2015 +0100 Merge pull request #428 from kugel-/mingw-datadir Fix installation of data files on Windows with the Autotools build system. commit 1a6adc0d6363e5c52a328c64b4edc03d97723b53 Author: Colomban Wendling Date: Tue Mar 3 15:12:52 2015 +0100 Fix build with GLib < 2.30 (oops) src/ui_utils.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1c1d76721dddf56bb9b5aa07f4513ea7e64554b4 Author: Colomban Wendling Date: Sat Feb 28 19:15:00 2015 +0100 Fix several tooltips to properly use plain text instead of markup Most of our tree view tooltips were set from plain text values but parsed as markup by GTK, which sometimes lead to markup errors, when the tooltip value contained markup control characters. This also adds ui_tree_view_set_tooltip_text_column() to the plugin API so plugins can easily set plain text tooltips from tree views columns. Fixes https://sourceforge.net/p/geany/bugs/1091/ plugins/filebrowser.c | 2 +- plugins/geanyfunctions.h | 2 ++ src/plugindata.h | 3 ++- src/plugins.c | 3 ++- src/sidebar.c | 4 ++-- src/symbols.c | 3 --- src/tools.c | 2 +- src/ui_utils.c | 61 ++++++++++++++++++++++++++++++++++++++++++++++++ src/ui_utils.h | 2 ++ 9 files changed, 73 insertions(+), 9 deletions(-) commit cc6602c2b6096739c8a3d5dad51b35885e31b895 Author: Thomas Martitz Date: Tue Feb 24 23:59:46 2015 +0100 autotools: Install to $prefix/data on win32 setup_paths() sets app->datadir to $prefix/win32. With mingw-via-autotools, it installed data to $prefix/share/geany (like on Linux). With this change data is installed to $prefix/data ($datarootdir is not changed). This fixes geany startup after make install with autotools. Linux: pkgdatadir = ${datarootdir}/geany GEANY_DATA_DIR = /path/to/prefix/share/geany Win32: pkgdatadir = ${prefix}/data GEANY_DATA_DIR = /path/to/prefix/data configure.ac | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit a8a2d14711cd983f3ae094237c33dedb1821d72e Merge: 8aa4f11ca e454b8962 Author: Colomban Wendling Date: Tue Feb 24 18:08:46 2015 +0100 Merge pull request #415 from b4n/json Add JSON filetype (with tag parser) commit 5a8e89ce8a268055d2af56e1a1ccb6b2278ce798 Author: Colomban Wendling Date: Sat Feb 21 19:18:58 2015 +0100 sciwrappers: Remove a few unused functions src/sciwrappers.c | 24 ------------------------ src/sciwrappers.h | 5 ----- 2 files changed, 29 deletions(-) commit 8aa4f11cad2cf8404bc58f93464fdcd2140a2f69 Author: Colomban Wendling Date: Sat Feb 21 18:56:51 2015 +0100 Optimize notebook page -> document lookup and remove dead code This actually fixes a theoretical bug introduced when notebook pages stopped being ScintillaWidgets, but this bug had no effect because it was in a dead code path -- because no, `page_num` never is -1 nor `page` NULL. src/callbacks.c | 5 +---- src/document.c | 21 +++++++++++++++------ src/document.h | 2 ++ 3 files changed, 18 insertions(+), 10 deletions(-) commit 1a8de8fb09959ef22281328f25a6b03ede1fbafe Author: Colomban Wendling Date: Sat Feb 21 18:53:59 2015 +0100 Optimize document -> notebook page lookup src/document.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 99552dbe1256e5051a96623db4f0c68bbf591fbc Author: Colomban Wendling Date: Sat Feb 21 18:00:52 2015 +0100 Fix emission of the ::document-activate signal The ::document-activate signal was not emitted when opening the first tab of the notebook, e.g. when the tab count changed from 0 to 1. This is because the ::document-activate signal is emitted in response to the GtkNotebook::switch-page signal, which is emitted whenever the currently displayed page changes. When there already is a current page (when there is one or more pages), adding a new page does not trigger the signal, as this new page doesn't become the current one (we will switch to it later). However, when there are none, the newly added one becomes current, and so the signal is emitted right away. This is problematic because when we add the page to the notebook, the document associated with it is not yet ready (only partly initialized), and so we can't emit the signal on a valid document, and we discard it. Not emitting this signal leads to inconsistent behavior introducing subtle bugs in plugins relying on it. To work this around, only show the page widget (the child added to the notebook) after we finished initializing everything. This is the simplest fix, because a lot of the code around document creation and opening depend on the fact the page is already added, so while delaying the page addition sounds like the more sensible fix, it has non-trivial consequences that would require a large amount of work to overcome. Note that interestingly, in addition to our problem, GtkNotebook seems to have a bug as it emits the ::switch-page right when adding the first page even if that page is not visible. However, it properly emits it again when the child becomes visible, so we just still discard the first emission like we used to. src/document.c | 25 ++++++++++++++++++++----- src/notebook.c | 10 ++++++++-- 2 files changed, 28 insertions(+), 7 deletions(-) commit 91630a85a2f6c25b0101efa0ab6d3e436455966a Author: Colomban Wendling Date: Fri Feb 20 22:30:58 2015 +0100 autotools: Check for docutils tools with a `.py` suffix too Docutils tools are apparently installed with an extension suffix by default, so check for this too. Closes #424. m4/geany-docutils.m4 | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit ea79be32f23c1d6a9687da2da15746f8f8e08784 Author: Colomban Wendling Date: Fri Feb 20 22:28:26 2015 +0100 autotools: Remove useless code AC_PATH_PROG supports overrides of its variable, so there is no need for manual handling. m4/geany-docutils.m4 | 6 ++---- m4/geany-doxygen.m4 | 4 +--- 2 files changed, 3 insertions(+), 7 deletions(-) commit b87254e1b39a26ecb13a2312df849e36a771e7f8 Author: Frank Lanitz Date: Wed Feb 18 00:40:19 2015 +0100 Fix lost <> inside thanks THANKS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a6885865bb08af407ca67c87a31bd1ffc935b3a6 Author: Frank Lanitz Date: Wed Feb 18 00:35:44 2015 +0100 Change contact data for brahmann THANKS | 2 +- src/about.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit a65cecd59e82e1e9cc802d5eb429705c78707202 Merge: 15f75ca2a b0786efc6 Author: Frank Lanitz Date: Sun Feb 15 16:32:03 2015 +0100 Merge pull request #422 from strepon/master update Czech translation commit b0786efc66b2d2e91b1b013199755466d32a95f1 Author: Stanislav Horacek Date: Sun Feb 15 14:33:10 2015 +0100 update Czech translation po/cs.po | 153 +++++++++++++++++++++++---------------------------------------- 1 file changed, 55 insertions(+), 98 deletions(-) commit 15f75ca2ac1e57a8e2fe375d3be8b605182e0f7d Author: Colomban Wendling Date: Fri Feb 13 14:11:30 2015 +0100 Fix a few indentation style issues src/gtkcompat.h | 16 ++++++++-------- src/keybindings.c | 22 +++++++++++----------- 2 files changed, 19 insertions(+), 19 deletions(-) commit 0c1edb113cf8c45f022ca309af3a636f416c51b4 Author: Jiří Techet Date: Fri Feb 13 12:47:04 2015 +0100 Bump API to reflect the addition of keybindings_get_modifiers() and GEANY_PRIMARY_MOD_MASK src/plugindata.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ba0d364f64bea634610e92cfffad9457a77bf953 Merge: 308041da8 e613d9318 Author: Colomban Wendling Date: Fri Feb 13 01:01:17 2015 +0100 Merge pull request #420 from techee/vte_keybindings Revert some OS X keybinding changes for VTE commit e613d931878a98118f39c8f2f92fe4ec23508c4c Author: Jiří Techet Date: Fri Feb 13 00:37:21 2015 +0100 Revert some OS X keybinding changes for VTE While all normal keybindings use the Command key instead of control key on OS X, all the command-line applications and terminal emulators use the Ctrl key like on Linux. This includes Ctrl+C (SIGINT) and Ctrl+D (EOF) for which there is some special handling in the VTE support in Geany and which should use GDK_CONTROL_MASK instead of GEANY_PRIMARY_MOD_MASK. src/vte.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 308041da8d0f7ee938a075cae5d84d90da91c5eb Merge: 7b17db666 be2b28037 Author: Colomban Wendling Date: Wed Feb 11 18:33:19 2015 +0100 Merge branch 'ctags/python' Import Python changes from https://github.com/fishman/ctags/ commit be2b280377b0479db749cfcf573ff7b35d70693b Author: Markus Heidelberg Date: Tue Feb 10 04:07:39 2015 +0100 python: do not ignore the character after a skipped string Regression for the triple start string issue has been introduced in SVN revision 669 (fishman git a314e11158307db84c0dadb758846b2302fe69cd) on 2008-06-11. In ctags 5.7 it did work, in 5.8 not anymore. See also http://sourceforge.net/p/ctags/bugs/229/ for the original bug, which led to the old fix. The other issue with normal strings in skipEverything() is even older. tagmanager/ctags/python.c | 3 +++ tests/ctags/Makefile.am | 1 + tests/ctags/py-skipped-string.py | 30 ++++++++++++++++++++++++++++++ tests/ctags/py-skipped-string.py.tags | 4 ++++ 4 files changed, 38 insertions(+) commit 99a509de7e6dce381e8bc23c5d080f8c8e5c5e12 Author: Colomban Wendling Date: Mon Feb 2 17:40:03 2015 +0100 python: Fix out of bounds access on unmatched Cython array declaration tagmanager/ctags/python.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 0a97439701466011cf4231b838860c543d442e17 Author: Colomban Wendling Date: Thu Jan 29 16:14:12 2015 +0100 python: Improve and generalize access reporting Anything at the module/file level: * _... is protected * rest is public Anything at the class level: * __...__ is public (magic method) * __... is private * _... is protected * rest is public Anything at the function/method level: * everything is private Closes https://github.com/fishman/ctags/issues/216. tagmanager/ctags/python.c | 43 +++++++++++++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 12 deletions(-) commit 7b17db666eb7a17fcfd33ebe6dba5bf528c3485a Author: Frank Lanitz Date: Tue Feb 10 18:56:42 2015 +0100 Small update of German translation po/de.po | 550 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 275 insertions(+), 275 deletions(-) commit ae68b10b04aad477efb29acc1d547dac0ff30c1e Merge: 642fedef9 e9c9e9a2f Author: Frank Lanitz Date: Tue Feb 10 18:55:00 2015 +0100 Merge branch 'master' of github.com:geany/geany commit b2e5d08dad61b725f8cb89fc753497123d5570ec Author: Colomban Wendling Date: Tue Feb 10 17:15:38 2015 +0100 Spell "Windows" as "Windows", not "Win" This makes the labels more clear using the canonical name, and avoids any confusion with the English word "win". data/geany.glade | 2 +- src/utils.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit e9c9e9a2fa021e22ab3235b089c3e651f0094016 Merge: 164047175 1ab9eac70 Author: Colomban Wendling Date: Tue Feb 10 17:12:30 2015 +0100 Merge pull request #396 from techee/osx OS X improvements commit 1ab9eac7047d60e89345694134626fcd1f3a67ac Author: Jiří Techet Date: Tue Feb 10 11:56:04 2015 +0100 Use the .dylib extension when loading VTE on OS X src/vte.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6a132ef3fa4a01f7e05a0b8d673407429e3e6c8a Author: Jiří Techet Date: Fri Feb 6 11:23:10 2015 +0100 CR line endings are used on old Mac OS systems only - make it more explicit in labels Also don't default to CR if OS is neither Windows nor Unix (including OS X). There's no other GTK backend right now so it doesn't matter much but still if something else appears, it will most probably not have CR line endings. data/geany.glade | 2 +- src/document.h | 4 +--- src/utils.c | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) commit 16404717522c3594cc5fdfc6eca5ba9e2c0f9f0e Merge: d5cca3792 7229aa9cf Author: Enrico Tröger Date: Sun Feb 8 10:42:32 2015 +0000 Merge pull request #413 from eht16/backup_copy_file_perm SaveActions: Set file permissions of backup copies to 0600 (SF #125) commit ca21a8759aada71a8f083ef8fc528bfb8988bc89 Author: Jiří Techet Date: Fri Feb 6 00:32:10 2015 +0100 Don't use "echo -n" in shell scripts The standard says: If the first operand is -n, or if any of the operands contain a backslash ( '\' ) character, the results are implementation-defined. On OS X it simply prints the "-n" string and everything which follows, including the newline. Use printf instead. m4/geany-status.m4 | 2 +- po/intl_stats.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit f2cab560c64d15e8568a64d0f02f0a6b76d82a9c Author: Jiří Techet Date: Fri Feb 6 15:18:43 2015 +0100 Eliminate some minor leaks Found using the Instruments XCode tool on OS X. src/highlighting.c | 2 ++ src/keyfile.c | 4 ++++ src/project.c | 3 ++- 3 files changed, 8 insertions(+), 1 deletion(-) commit 642fedef98a1792ab5873b0b8e34b39a19a14f8a Author: Frank Lanitz Date: Sun Feb 1 22:07:53 2015 +0100 Small update of German translation po/de.po | 835 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 417 insertions(+), 418 deletions(-) commit e454b8962cdb68cf8d41813ffc55a1a620925845 Merge: b0cf3b4e2 270e32327 Author: Colomban Wendling Date: Sat Jan 31 22:17:26 2015 +0100 Merge branch 'json-tag-parser' into json Import JSON tag parser from CTags: https://github.com/fishman/ctags/blob/master/json.c commit 270e32327f4d9776afb2047108da8550afbf3f83 Author: Colomban Wendling Date: Sat Jan 31 22:14:10 2015 +0100 json: Enable tag parser and adapt test case for Geany data/filetypes.JSON.conf | 1 + tagmanager/ctags/json.c | 12 ++++++------ tests/ctags/Makefile.am | 1 + tests/ctags/simple.json.tags | 39 ++++++++++++++++++++------------------- 4 files changed, 28 insertions(+), 25 deletions(-) commit 0bd95857041091a3d17d2c728ac0a69c8ea04c52 Author: Colomban Wendling Date: Fri Nov 28 16:46:39 2014 +0100 json: Optimize memory usage by not collecting string values When a string is not used as an object property the parser doesn't need to know its value. Not collecting it into memory lowers memory consumption and avoids high memory consumption with huge string values. tagmanager/ctags/json.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 2ff1386d9690147af9d5089d319dd57aca044151 Author: Colomban Wendling Date: Fri Nov 28 16:22:33 2014 +0100 Add new parser for JSON tagmanager/ctags/Makefile.am | 1 + tagmanager/ctags/json.c | 396 ++++++++++++++++++++++++++++++++++++++++ tagmanager/ctags/makefile.win32 | 2 +- tagmanager/ctags/parsers.h | 3 +- tagmanager/src/tm_parser.h | 1 + tests/ctags/simple.json | 25 +++ tests/ctags/simple.json.tags | 19 ++ wscript | 1 + 8 files changed, 446 insertions(+), 2 deletions(-) commit b0cf3b4e2ddaacc952c1683375965c9ff2e0d51e Author: Colomban Wendling Date: Sat Jan 31 20:27:07 2015 +0100 Add JSON custom filetype Closes #384. data/Makefile.am | 1 + data/filetype_extensions.conf | 3 ++- data/filetypes.JSON.conf | 14 ++++++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) commit d5cca3792269160d19530b3af1c63c880adef2d4 Author: Enrico Tröger Date: Sat Jan 31 18:44:10 2015 +0100 Change donate link to our own redirection As discussed in #410, the previous SF redirect is better replaced by a redirect on www.geany.org which we can control. This way we can also quickly change the target URL if it changes at Paypal. src/geany.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7229aa9cff84b6d42f75edba5b26babd2f6b8b64 Author: Enrico Tröger Date: Sat Jan 31 16:11:48 2015 +0100 SaveActions: Set file permissions of backup copies to 0600 As discussed in SF bug #125, it might be dangerous to store backup copies in a publicly accessable directory like /tmp with default permissions, especially on multi-user systems. So set the file permissions on non-Windows systems to 0600 by default. Also improve the documentation of the save Actions plugin to reflect this change. doc/geany.txt | 19 +++++++++++++++++-- plugins/saveactions.c | 14 ++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) commit d33a23c40c4297c9ea8c2b53a4033a34db0cd10e Author: Colomban Wendling Date: Wed Jan 28 15:55:33 2015 +0100 Add missing documentation for message window orientation setting doc/geany.txt | 6 ++++++ 1 file changed, 6 insertions(+) commit 7fba0317d05effab1f1c3cc1a4c40163669631af Author: Thomas Martitz Date: Sat Nov 2 14:20:20 2013 +0100 document: Remove duplicated code. Since document_compare_by_tab_order_reverse does the exact reverse of document_compare_by_tab_order the code need not to be duplicated. Instead document_compare_by_tab_order can be called and the return value be reversed. src/document.c | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) commit f403e7e8c26a100534017f8ca2c5c1f1f9bac81f Merge: 44eecc25c 660c441b4 Author: Colomban Wendling Date: Wed Jan 28 15:05:30 2015 +0100 Merge pull request #188 from artros/feature/keep-edit-history-on-reload Maintain edit history on document reload Conflicts: * src/callbacks.c: document_reload_prompt(). Amendments: * src/document.c: document_redo(), document_undo(): for loop style. commit 44eecc25c3352d0197b94f1458d8496bc48668ae Merge: 526294d72 1b1a1da4e Author: Colomban Wendling Date: Wed Jan 28 14:30:43 2015 +0100 Merge pull request #187 from artros/bug/clear-redo-on-edit Clear redo stack on edit commit 526294d72c2a2de94c4bc7712dd7d3e7e3c8f233 Merge: bb41cb227 d48859db8 Author: Colomban Wendling Date: Mon Jan 26 17:24:19 2015 +0100 Merge pull request #399 from b4n/ui/message-window-hierarchy Drop useless scrolled window around the message window notebook commit bb41cb2275757b1ad5ce3d20cf0aa40260388df7 Merge: 14f1468f7 9506c7ae5 Author: Nick Treleaven Date: Sat Jan 24 16:39:20 2015 +0000 Merge pull request #408 from ntrel/sci-make Fix strangely undefined GTK for PlatGtk.cxx by moving build dir (#1001) commit 9506c7ae59d22ed68af0c00a3922e05aec142be7 Author: Nick Treleaven Date: Thu Jan 22 16:50:39 2015 +0000 Remove unneeded -liberty flag src/makefile.win32 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8ebac60901c239a7dc36461a077139595bed12b8 Author: Nick Treleaven Date: Thu Jan 22 16:45:14 2015 +0000 Fix strangely undefined GTK for PlatGtk.cxx by moving build dir (#1001) makefile.win32 | 4 ++-- scintilla/{ => gtk}/makefile.win32 | 24 +++++++++++------------- 2 files changed, 13 insertions(+), 15 deletions(-) commit 6cad08ae1eebe76c1ebb24fb415834438b8566c4 Author: Nick Treleaven Date: Thu Jan 22 16:27:57 2015 +0000 Port scintilla/gtk/makefile differences (Windows makefiles) scintilla/makefile.win32 | 142 +++++++++++------------------------------------ 1 file changed, 33 insertions(+), 109 deletions(-) commit 47a5b9fc5fdbd5060671413565f354247f678f75 Author: Jiří Techet Date: Thu Jan 8 12:49:03 2015 +0100 Use better default fonts on OS X Fonts are rendered much smaller on OS X so use bigger sizes by default. Also, by default they use the Light style which is extremely thin - use Medium instead. Finally, use better monospace font than the default Courier (Menlo is derived from Dejavu Sans Mono and is used by XCode and other editors). src/keyfile.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit daecf69c9cd29891c661d3c52dd0fa7ba451d972 Author: Jiří Techet Date: Thu Jan 8 12:01:30 2015 +0100 Make keybindings_get_modifiers() part of plugin API plugins/geanyfunctions.h | 2 ++ src/keybindings.c | 9 +++++++++ src/keybindings.h | 5 +++++ src/plugindata.h | 2 +- src/plugins.c | 3 ++- 5 files changed, 19 insertions(+), 2 deletions(-) commit 508216b7b47fba88c35c3b4af25a4a1e245f222d Author: Jiří Techet Date: Thu Jan 8 22:34:14 2015 +0100 Use the open command to open a directory in Finder on OS X plugins/filebrowser.c | 2 ++ 1 file changed, 2 insertions(+) commit 98ae34f1dcc671bc691c40fa9896ab5624818e7f Author: Jiří Techet Date: Thu Jan 8 22:32:17 2015 +0100 Perform execute using the default terminal application on OS X In order to execute the runner script using the terminal application, the script has to be executable, otherwise it's not executed. In addition, when the terminal application starts, it sets $HOME as the working directory. For this reason the working directory has to be set in the runner script (to avoid additional ifdefs, this part is shared with other unix systems where the additional "cd" shouldn't matter). src/build.c | 22 +++++++++++++++++----- src/keyfile.c | 2 ++ 2 files changed, 19 insertions(+), 5 deletions(-) commit 82b413e5062b46b3237ede6b764f40aa8bb22ab2 Author: Jiří Techet Date: Fri Jan 2 19:51:44 2015 +0100 Fix keybindings on OS X On OS X the Command key is used for common keybindings instead of Ctrl. Introduce a new macro, GEANY_PRIMARY_MOD_MASK that represents the Command key on OS X and Ctrl on other platforms. For some events, such as mouse key press, GDK_MOD2_MASK is returned for the Command key by GTK instead of GDK_META_MASK (which is returned when Command is pressed together with some other key). To hide this behavior from users, introduce keybindings_get_modifiers() which can be used instead of gtk_accelerator_get_default_mod_mask() and which inserts GDK_META_MASK when GDK_MOD2_MASK is found in the mask on OS X. src/callbacks.c | 2 +- src/editor.c | 4 +- src/keybindings.c | 138 +++++++++++++++++++++++++++++------------------------- src/keybindings.h | 7 +++ src/notebook.c | 4 +- src/prefs.c | 2 +- src/sidebar.c | 4 +- src/vte.c | 9 ++-- 8 files changed, 95 insertions(+), 75 deletions(-) commit ac76c84fdcf0f9bc2551ec4453df316531c81a9a Author: Jiří Techet Date: Tue Dec 30 12:15:54 2014 +0100 Use Safari as the default browser on OS X Since Safari isn't on PATH, the open command has to be used src/keyfile.c | 4 ++++ 1 file changed, 4 insertions(+) commit 558d21f2f29bf6f70655afebf8e10b55f523c864 Author: Jiří Techet Date: Mon Dec 29 17:43:12 2014 +0100 Fix clang warning regarding mismatching types The Option initialization didn't match the struct - there was an extra initialization of -e parameter and missing initialization of --etags-include a bit later. This means the initializations of the fields were shifted by one between these two. tagmanager/ctags/options.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9767f79e50408911508577cb68906658872afe3b Author: Jiří Techet Date: Mon Dec 29 17:14:36 2014 +0100 Improve ui_get_mime_icon() It may happen that even though we get GIcon, the actual icon dosen't exist (typically on Windows and OS X). Check if we can find the actual icon. In addition, use "icon name" instead of "stock id" - the latter doesn't work on OS X / Windows for some reason. src/ui_utils.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) commit 3c01fae8d95f51340e16247f51d0e654500d43f5 Author: Jiří Techet Date: Sat Dec 27 15:24:41 2014 +0100 Disable scintilla buffer draw on OS X (with Quartz backend) This delagates font rendering to Quartz so it can be rendered in 2x resolution on "retina" displays. src/editor.c | 5 +++++ 1 file changed, 5 insertions(+) commit 5356c4549ace052b2e3be5451c9c6410ab3d9e41 Author: Jiří Techet Date: Sat Dec 27 14:40:57 2014 +0100 Fix infinite loop on OS X when using find in files The GIOCondition is always set to G_IO_IN even when input end is reached (and no other flags are set) so the read_fif_io() function never returns FALSE which causes an infinite loop. It is necessary to check also the return value of g_io_channel_read_line() and return FALSE on EOF or error. src/search.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 14f1468f7889b6ebc61f32dfa3e3111fc69fdc15 Merge: 6584cc593 e6fa2c2ac Author: Colomban Wendling Date: Tue Jan 20 16:09:49 2015 +0100 Merge pull request #377 from b4n/autotools-mingw-cross Autotools: Fix MinGW cross-compilation commit e6fa2c2ac74bf8b7ba282565edf3ed0ff81acbe2 Author: Colomban Wendling Date: Thu Oct 30 02:33:03 2014 +0100 Autotools: Improve the rule to compile Windows resource file src/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 700c05e413189479259a399878ba2383acbbcceb Author: Colomban Wendling Date: Wed Oct 29 15:27:51 2014 +0100 Autotools: Build plugins with Libtool on MinGW too plugins/Makefile.am | 72 +++++++++++++++++++---------------------------------- 1 file changed, 26 insertions(+), 46 deletions(-) commit 6584cc5936eb282aa827c6451cd453329809715c Author: Colomban Wendling Date: Tue Jan 20 15:06:17 2015 +0100 verilog: Add code style categorization Implement code style categorization (comment/string/code) for Verilog. src/highlighting.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit d80fa8f72a8595de2916effa26709d7c864e2e66 Author: Colomban Wendling Date: Tue Jan 20 15:05:24 2015 +0100 Fix reference to a renamed function in some comments src/highlightingmappings.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 3996ae9268bc433c4b3c73c0c422fd6e75053dee Author: Colomban Wendling Date: Tue Jan 20 15:05:04 2015 +0100 Update Scintilla to version 3.5.3 Closes [bugs:#1041]. data/filetypes.verilog | 6 + scintilla/gtk/ScintillaGTK.cxx | 395 +++++++++++------ scintilla/include/Platform.h | 5 + scintilla/include/SciLexer.h | 27 ++ scintilla/include/Scintilla.iface | 33 ++ scintilla/lexers/LexBash.cxx | 14 +- scintilla/lexers/LexCPP.cxx | 4 +- scintilla/lexers/LexVerilog.cxx | 876 +++++++++++++++++++++++++++++++------- scintilla/lexlib/LexAccessor.h | 3 + scintilla/lexlib/WordList.cxx | 2 + scintilla/scintilla_changes.patch | 5 +- scintilla/src/Document.cxx | 18 +- scintilla/src/Editor.cxx | 26 +- scintilla/src/Editor.h | 1 + scintilla/src/MarginView.cxx | 18 +- scintilla/src/ScintillaBase.cxx | 4 +- scintilla/src/UniConversion.cxx | 14 +- scintilla/src/UniConversion.h | 4 +- scintilla/version.txt | 2 +- src/highlightingmappings.h | 14 +- 20 files changed, 1142 insertions(+), 329 deletions(-) commit 9c4f1081ebbe71003567dc0c86603b9152905fa3 Merge: 8eccb079a 657c7e73b Author: Colomban Wendling Date: Wed Jan 14 18:58:24 2015 +0100 Merge pull request #404 from ntrel/enum-base Parse D enum base type & refactor commit 657c7e73bed9c025bfb404e0e319a67269e8bce5 Author: Nick Treleaven Date: Tue Jan 13 16:27:53 2015 +0000 Parse D enum base type & refactor Merge and extend fishman/ctags enum inheritance parsing for C++, D, and add simple.d.t/input.d test. tagmanager/ctags/c.c | 28 +++++++--------- tests/ctags/Makefile.am | 1 + tests/ctags/runner.sh | 2 +- tests/ctags/simple.d | 82 +++++++++++++++++++++++++++++++++++++++++++++++ tests/ctags/simple.d.tags | 24 ++++++++++++++ 5 files changed, 120 insertions(+), 17 deletions(-) commit 8eccb079ab8e9bbaa6b49f29c45f94cae67014dc Author: Frank Lanitz Date: Tue Jan 13 21:29:38 2015 +0100 Update SQL keywords based on a list by the Drupal project data/filetypes.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 91d5079c8d56c69d78cad6d4cb9600b89a86d085 Merge: 627c0aa10 740c12c0c Author: Colomban Wendling Date: Sun Jan 11 17:33:40 2015 +0100 Merge pull request #378 from b4n/remove-macro-list Remove "Show macro list" keybinding and feature commit 740c12c0caed4e464480ea6458a77a7fb8b6bdfc Author: Colomban Wendling Date: Sun Nov 9 19:05:51 2014 +0100 Remove "Show macro list" keybinding and feature This feature looks like a poorly implemented subset of "Complete word", but lacks some important features like prefix filtering. It is also misnamed as it shows not only macros, but also variables and enums. It also only shows `editor_prefs.autocompletion_max_entries`, but does so from *each* file, not as a whole. So drop it altogether, as this feature doesn't really look useful and the current implementation seem to suffer of too many shortcomings for it to realistically be actually used. doc/geany.txt | 3 --- src/editor.c | 16 ---------------- src/editor.h | 2 -- src/keybindings.c | 5 ----- src/keybindings.h | 3 ++- src/symbols.c | 54 ------------------------------------------------------ src/symbols.h | 2 -- 7 files changed, 2 insertions(+), 83 deletions(-) commit 627c0aa10e9ea62b440c21040180086b56a01079 Merge: f32b6f3b9 df03bcace Author: Enrico Tröger Date: Sat Jan 10 11:07:18 2015 +0000 Merge pull request #401 from techee/waf waf: Don't relink scintilla and geany on every build commit df03bcace008b8dcc77f595d2441790e77f4e707 Author: Jiří Techet Date: Fri Jan 9 01:35:43 2015 +0100 waf: Don't relink scintilla and geany on every build The ant_glob() function doesn't return a list of strings but rather a list of waflib.Node.Nod3 objects. These print as paths so build works but apparently confuse waf which thinks the files have changed every time the waf command is performed. Relinking scintilla and geany on every waf invocation is especially problemmatic during "sudo waf install" where scintilla and geany binaries get owned by the root user. This isn't a big problem on Linux but on OS X this prevents subsequent waf calls to update the binaries and the build fails. To fix the issue, just convert the waflib.Node.Nod3 objects to relative (string) paths. wscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f32b6f3b93df96026fc9ff233458949e97a5a7b9 Author: landroni Date: Tue May 20 02:56:14 2014 +0200 R: Fix keywords and wordchars Currently the R filetype has a rather random collection of keywords. This commit fixes the primary keywords (as used in RStudio, an IDE specialized for R), and also adds the appropriate list of built-in constants. See https://github.com/rstudio/rstudio/blob/master/src/gwt/acesupport/acemode/r_highlight_rules.js for the list of keywords used in RStudio. Furthermore, the commit adds the `.` (dot) to `wordchars`. In R the set of symbols which can be used in object names is `[A-Za-z0-9_.]` (with code portability and platform compatibility in mind). For more gruesome details see: http://cran.r-project.org/doc/manuals/r-release/R-intro.html#R-commands_003b-case-sensitivity-etc RStudio also treats the dot as part of the "word". For some background see: http://landroni.wordpress.com/2013/07/27/using-geany-for-programming-in-r/ Closes #273. data/filetypes.r | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit e06f47d774bd296ed406378c6748ff12d3bd0fb6 Merge: fb7d9fa25 fd5ac727c Author: Colomban Wendling Date: Mon Jan 5 16:26:03 2015 +0100 Merge pull request #289 from mspacek/build_line_num Add %l current line number substitution to build commands commit d48859db8e5e91fd1dbfb1951917087dc781a1ef Author: Colomban Wendling Date: Fri Jan 2 19:48:06 2015 +0100 Drop useless scrolled window around the message window notebook data/geany.glade | 231 ++++++++++++++++++++++++++----------------------------- src/main.c | 2 +- src/msgwindow.c | 2 +- 3 files changed, 110 insertions(+), 125 deletions(-) commit fb7d9fa25f361b823f289cbb2c83201496c711b9 Merge: b864733cd b7338da5e Author: Frank Lanitz Date: Fri Jan 2 19:34:24 2015 +0100 Merge pull request #388 from peter-scholtens/master Update of dutch translation for geany commit b864733cdb31a2366eb878f0382e338369c200ae Author: Jiří Techet Date: Tue Dec 30 19:30:07 2014 +0100 Avoid double-shadow around message window Message window should be at the same level as the sidebar and editor. Instead, it is 2 shadows deeper. Fix that. data/geany.glade | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit b7338da5e688c3ca2d3ceb318723cf5b99e678b1 Author: Peter C. S. Scholtens Date: Fri Jan 2 17:28:09 2015 +0100 Updated Dutch translations. po/nl.po | 3053 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 1550 insertions(+), 1503 deletions(-) commit f1a1d8c234eaae51e9ec6987d0d4eccf6b32a980 Merge: 08568b11f c131466a0 Author: Colomban Wendling Date: Tue Dec 30 22:50:54 2014 +0100 Merge pull request #397 from techee/revert Remove useless TM micro-optimization from a profile misread. commit c131466a0035b0421e40661d50181db1ca8de3f6 Author: Jiří Techet Date: Tue Dec 30 17:09:18 2014 +0100 Revert "Microoptimization in merge" This reverts commit cb9e4bbf7446e45365cad2242087f2a766662f20. tagmanager/src/tm_tag.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 08568b11f587000e7226694a22300aa79db473de Merge: 3b8ea98f0 29cc8b4d2 Author: Colomban Wendling Date: Thu Dec 25 19:54:12 2014 +0100 Merge PR#393 from 'c/keyword-types' Fix parsing typedefs to size_t (C/C++/D) and wchar_t (C/D). commit 29cc8b4d28a8abb2cbde6503b5b910baf8688fa3 Author: Colomban Wendling Date: Thu Dec 25 16:46:55 2014 +0100 d: size_t and wchar_t aren't keywords in D tagmanager/ctags/c.c | 4 ++-- tests/ctags/Makefile.am | 1 + tests/ctags/size_t_wchar_t_alias.d | 3 +++ tests/ctags/size_t_wchar_t_alias.d.tags | 3 +++ 4 files changed, 9 insertions(+), 2 deletions(-) commit 43a8986d2cd8f40e2daff2fc31f8677669514d6f Author: Colomban Wendling Date: Thu Dec 25 16:45:35 2014 +0100 c: Add a test case for size_t and wchar_t handling tests/ctags/Makefile.am | 1 + tests/ctags/size_t_wchar_t_typedef.c | 3 +++ tests/ctags/size_t_wchar_t_typedef.c.tags | 3 +++ 3 files changed, 7 insertions(+) commit 371301a84da81fdcd894715eb58af0efccd3a523 Author: Colomban Wendling Date: Thu Dec 25 01:36:27 2014 +0100 c: Don't parse wchar_t as a keyword tagmanager/ctags/c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e091a56a18ef20f65e088d78fc78fcdb310526b2 Author: Colomban Wendling Date: Thu Dec 25 01:35:28 2014 +0100 c, c++: Don't parse size_t as a keyword This fixes handling of typedefs defining this name. tagmanager/ctags/c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3b8ea98f00cdacd84217adf049dbb5d10c6057c9 Author: Colomban Wendling Date: Thu Dec 25 00:53:03 2014 +0100 c: Fix C11 keywords (oops) List keywords from ISO/IEC 9899:201x N1570 (2011-04-12), not N1425 (2009-11-24). data/filetypes.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ef6f8a0c6595fba0e267860cac3145e264dca633 Author: Colomban Wendling Date: Wed Dec 24 19:02:23 2014 +0100 c++: Remove non-keyword types from keywords list Closes #391. data/filetypes.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 20be6c9bb464d958f336cf229f841c9ef7622e97 Author: Colomban Wendling Date: Wed Dec 24 19:01:14 2014 +0100 c: Add missing size_t type to the C99 tag file Closes #392. data/c99.tags | 1 + 1 file changed, 1 insertion(+) commit f4045fb3369adbaf01321532e2f9c3bda3a44dcd Author: Colomban Wendling Date: Wed Dec 24 18:48:45 2014 +0100 c: Add missing C11 keywords data/filetypes.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d80ee82072a188297c4a3d1bd304e65741f7a4f0 Author: Colomban Wendling Date: Thu Dec 18 02:42:05 2014 +0100 Select the default scheme in the Color Scheme dialog by default Always select the default scheme by default in the Color Scheme dialog not to end up selecting none in case of broken or nonexistent configuration. This matches which scheme is actually used, and fixes use of an uninitialized iter when no scheme would be selected. src/highlighting.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit d6601cbafa57841acf7303dfb019e2bcfbb933a3 Merge: 87331093a fc73fabe4 Author: Nick Treleaven Date: Fri Dec 12 13:11:29 2014 +0000 Merge pull request #387 from philippwiesemann/fix-typos-doc Fix typos in documentation commit fc73fabe4bf6b0416750472ab82e7a9f8e04177c Author: Philipp Wiesemann Date: Thu Dec 11 22:58:57 2014 +0100 Fix typos in documentation doc/geany.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 87331093a93cd64bb47b8bdcc3c17459dcca9d7f Merge: 89c321883 233ca08e8 Author: Colomban Wendling Date: Thu Dec 11 00:07:41 2014 +0100 Merge pull request #361 from techee/prj_write Add project_write_config() to force project file rewrite commit 89c321883c631f57eebe269aa2d58a5218530513 Merge: 7c22ceacf 1f9f23004 Author: Frank Lanitz Date: Mon Dec 8 19:15:36 2014 +0100 Merge pull request #386 from b4n/po/fr Small French translation update commit 1f9f23004578f8a9c45f4e09dc4aa4e6b2fbabc3 Author: Colomban Wendling Date: Mon Dec 8 16:09:58 2014 +0100 Use French quotes in the French translation po/fr.po | 144 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 73 insertions(+), 71 deletions(-) commit 469a345f180e451a23def0e5701b2712af0153c2 Author: Colomban Wendling Date: Mon Dec 8 15:53:45 2014 +0100 Small update of the French translation po/fr.po | 3201 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 1657 insertions(+), 1544 deletions(-) commit 7c22ceacf996ea0ac773349afca39eed6af4b9ea Author: Jiří Techet Date: Sun Dec 7 22:25:13 2014 +0100 Update the go parser to the latest version from ctags tagmanager/ctags/go.c | 78 ++++++++++++++++++++++----------------------------- 1 file changed, 34 insertions(+), 44 deletions(-) commit 0184083a7e1216169d0879d66b67799e9bf638c9 Author: Colomban Wendling Date: Thu Dec 4 14:38:57 2014 +0100 Fix an assertion failure when trying to scope-complete in a 2-characters C++ file src/editor.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f08af8046f8cbbd7d48fc767155d1fe805c1c45d Merge: 0a58f5012 02bc3b363 Author: Colomban Wendling Date: Tue Dec 2 15:03:20 2014 +0100 Merge branch 'js-update' Import back JavaScript parser changes from fishman/ctags. commit 02bc3b36387671061ed61dba4cdd31f843c44ed3 Author: Colomban Wendling Date: Tue Dec 2 01:32:09 2014 +0100 javascript: Improve string literals handling 1. Don't include the newline itself in a line continuation construct. This fixes generation of e.g. properties with embedded line continuations. 2. Don't continue parsing strings past an unescaped newline (as naked newlines are invalid inside strings). This avoids parsing the whole remaining file as a string in case of broken input. It is both useful to better support partly written files and to avoid loading a whole malformed file in memory while reading it as a string. See section 7.8.4 "String Literals" of ECMA-262: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf tagmanager/ctags/js.c | 25 +++++++++++++++++++++++-- tests/ctags/Makefile.am | 2 ++ tests/ctags/js-broken-strings.js | 10 ++++++++++ tests/ctags/js-broken-strings.js.tags | 5 +++++ tests/ctags/js-string-continuation.js | 19 +++++++++++++++++++ tests/ctags/js-string-continuation.js.tags | 6 ++++++ 6 files changed, 65 insertions(+), 2 deletions(-) commit 69a15cf2c1c8def91ffd7bc51ca8a1bfd2df563d Author: Colomban Wendling Date: Mon Dec 1 23:43:20 2014 +0100 javascript: Stop using longjmp() and friends Fixes some memory leaks with malformed or partial files. tagmanager/ctags/js.c | 77 +++++++++++++++++++-------------------------------- 1 file changed, 28 insertions(+), 49 deletions(-) commit 0a58f5012ba8e379f92c2f6751b16b9bea363db6 Author: Colomban Wendling Date: Tue Dec 2 13:50:11 2014 +0100 Update Scintilla to version 3.5.2 scintilla/gtk/PlatGTK.cxx | 4 +- scintilla/gtk/ScintillaGTK.cxx | 37 ++- scintilla/include/Scintilla.h | 9 +- scintilla/include/Scintilla.iface | 9 +- scintilla/lexers/LexCoffeeScript.cxx | 2 +- scintilla/lexers/LexVHDL.cxx | 3 +- scintilla/src/Catalogue.cxx | 2 +- scintilla/src/CellBuffer.cxx | 2 +- scintilla/src/Decoration.cxx | 4 +- scintilla/src/Document.cxx | 504 ++++++++++++++++++++++++++++++++--- scintilla/src/Document.h | 19 +- scintilla/src/EditModel.cxx | 1 + scintilla/src/EditView.cxx | 45 +++- scintilla/src/EditView.h | 10 + scintilla/src/Editor.cxx | 105 +++++--- scintilla/src/Editor.h | 1 + scintilla/src/LineMarker.cxx | 5 + scintilla/src/LineMarker.h | 10 + scintilla/src/MarginView.cxx | 11 +- scintilla/src/MarginView.h | 9 + scintilla/src/PositionCache.cxx | 1 + scintilla/src/RESearch.h | 2 +- scintilla/src/ScintillaBase.cxx | 1 + scintilla/src/UniConversion.cxx | 46 ++++ scintilla/src/UniConversion.h | 4 + scintilla/version.txt | 2 +- 26 files changed, 724 insertions(+), 124 deletions(-) commit 69096276414b1532618f354950896db45e0e9256 Author: Frank Lanitz Date: Mon Dec 1 13:05:19 2014 +0100 Update of Portuguese (Brazilian) translation po/pt_BR.po | 3045 ++++++++++++++++++++++++++++++----------------------------- 1 file changed, 1560 insertions(+), 1485 deletions(-) commit 94aa892c8177e93d0dff3edf853854e872f19d20 Merge: af7d63cdf ccb15a31b Author: Colomban Wendling Date: Sun Nov 30 02:03:00 2014 +0100 Merge pull request #373 from techee/go_ctags Add a Go ctags parser. commit ccb15a31be106273a19a6c3d4dfa29f3adbb17a8 Author: Jiří Techet Date: Fri Nov 7 17:09:53 2014 +0100 Add the go ctags parser Make go one of the builtin filetypes, add the parser and update the related source and config files. While there, remove Rust from [Groups] in filetype_extensions.conf because it's already a builtin filetype as well. The parser itself is stolen from the fishman/ctags repo. data/Makefile.am | 2 +- data/filetype_extensions.conf | 2 +- data/{filetypes.Go.conf => filetypes.go} | 1 - src/filetypes.c | 1 + src/filetypes.h | 1 + src/highlighting.c | 2 + src/highlightingmappings.h | 7 + src/symbols.c | 12 + tagmanager/ctags/Makefile.am | 1 + tagmanager/ctags/go.c | 687 +++++++++++++++++++++++++++++++ tagmanager/ctags/makefile.win32 | 2 +- tagmanager/ctags/parsers.h | 3 +- tagmanager/src/tm_parser.h | 1 + tests/ctags/Makefile.am | 1 + tests/ctags/test.go | 47 +++ tests/ctags/test.go.tags | 34 ++ wscript | 1 + 17 files changed, 800 insertions(+), 5 deletions(-) commit af7d63cdf28945d2d177149a11565b24eaf4ee13 Merge: b78d833d5 72897bac7 Author: Colomban Wendling Date: Sat Nov 29 23:40:58 2014 +0100 Merge pull request #319 from b4n/better-txt2tags-parser Better txt2tags parser commit b78d833d5c1ebe6bbd1f239da84b296a67bea30d Merge: 6e1c2787c 24bf1d3e9 Author: Colomban Wendling Date: Sat Nov 29 23:21:09 2014 +0100 Merge branch 'css3-flex' Closes PR#333. commit 24bf1d3e930bb54191eac1f0e6d19e81dcb3abf4 Author: Colomban Wendling Date: Sat Nov 29 23:19:00 2014 +0100 CSS: Add missing and remove obsolete flex properties See http://www.w3.org/TR/css3-flexbox/#property-index data/filetypes.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 50787dfafe9f20694cdaf66377539b919b6ec390 Author: Hannes Heute Date: Wed Sep 17 20:02:42 2014 +0200 CSS: Add some flex-properties to css3-properties data/filetypes.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6e1c2787c1ecf7d6a178d5c3cbaaa93240ca79cf Merge: 173c09eab 8da955ec9 Author: Colomban Wendling Date: Sat Nov 29 22:49:57 2014 +0100 Merge branch 'recent-list-cleanup' commit 173c09eab2afcd9549b75cd779bedca54fc9f718 Merge: e6b74d9d8 961ccf38c Author: Colomban Wendling Date: Sat Nov 29 22:48:01 2014 +0100 Merge pull request #302 from kernc/common_linters Common linters by default in the Build menu commit 961ccf38c5a50fbdfa9eea0ca481ac8a3a04f694 Author: Kernc Date: Thu Jul 17 22:03:43 2014 +0200 Migrated some old-style build_settings to new-style build-menu data/filetypes.c | 17 +++++++++-------- data/filetypes.cpp | 17 +++++++++-------- data/filetypes.haskell | 13 ++++++------- data/filetypes.python | 13 ++++++------- data/filetypes.ruby | 10 +++++++--- data/filetypes.sh | 9 +++------ 6 files changed, 40 insertions(+), 39 deletions(-) commit 7a0285eef857bf99361eedae3cfe125254b99f4c Author: Kernc Date: Thu Jul 17 21:35:27 2014 +0200 Added some default common linters in the Build menu data/filetypes.c | 8 +++++++- data/filetypes.cpp | 7 +++++++ data/filetypes.haskell | 8 ++++++++ data/filetypes.javascript | 10 +++++----- data/filetypes.python | 9 +++++++++ data/filetypes.sh | 8 ++++++++ data/filetypes.xml | 9 +++++++++ doc/geany.txt | 15 +++++++++++++++ 8 files changed, 68 insertions(+), 6 deletions(-) commit e6b74d9d85149b687c4acd99ffd45f38554d178f Merge: d0986dd3f 7ce249414 Author: Colomban Wendling Date: Wed Nov 26 20:06:15 2014 +0100 Merge branch nullEuro/coffeescript-ft Add CoffeScript syntax highlighting. Closes #230. commit 7ce24941421a8305b37a372f1bcda4038ff539fa Author: Colomban Wendling Date: Wed Nov 26 19:42:26 2014 +0100 coffeescript: Import last lexer version from Scintilla HG This fixes handling of "/*" and removes dead code. scintilla/lexers/LexCoffeeScript.cxx | 180 +++-------------------------------- 1 file changed, 13 insertions(+), 167 deletions(-) commit 21e5c0e0e9bf6c28f83af3936836f9fca3e27cc9 Author: Colomban Wendling Date: Wed Nov 26 19:40:22 2014 +0100 Fix Scintilla patch for CoffeeScript inclusion scintilla/scintilla_changes.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4074843b42218f59e7b1696f27e8306fd9b6c4ad Author: Colomban Wendling Date: Wed Nov 26 19:36:41 2014 +0100 coffeescript: Recognize string and comment styles src/highlighting.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 07002d252a36b77d150536ffe0c860fa91f4f61d Author: Mark Dresselhaus Date: Mon Mar 24 00:55:59 2014 +0100 Add coffescript syntax highlighting imported lexer from Scintilla and added coffeescript filetype data/Makefile.am | 1 + data/filetype_extensions.conf | 1 + data/filetypes.coffeescript | 48 +++ scintilla/Makefile.am | 1 + scintilla/lexers/LexCoffeeScript.cxx | 569 +++++++++++++++++++++++++++++++++++ scintilla/makefile.win32 | 1 + scintilla/src/Catalogue.cxx | 1 + src/filetypes.c | 1 + src/filetypes.h | 1 + src/highlighting.c | 2 + src/highlightingmappings.h | 28 ++ 11 files changed, 654 insertions(+) commit d0986dd3f606dcd564bc99829ff993a94737fd22 Merge: 846335b3f 55b4b867f Author: Colomban Wendling Date: Mon Nov 24 03:55:55 2014 +0100 Merge branch 'js-update' Import back JavaScript parser changes from CTags and fishman/ctags. commit 55b4b867f31203ae13e651d65c57f94d6a0aa0cb Author: Colomban Wendling Date: Mon Nov 24 03:50:00 2014 +0100 javascript: Don't use invalid syntax in a test case A regex is not a valid JavaScript property name, and the test case was not meant to specifically check for handling of invalid syntax but rather valid regex syntax with embedded quotes. tests/ctags/1878155.js | 2 +- tests/ctags/1878155.js.tags | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit 5793694134f21652d4191dc56e087fa32c413ffb Author: Colomban Wendling Date: Sun Nov 23 20:32:50 2014 +0100 javascript: Add support for the `let` keyword `let` is not yet part of the current ECMAScript standard but is part of the ECMAScript 6 draft and is supported by Mozilla, and people already use it in some contexts. Also, the current ECMAScript standard marks `let` as a "considered reserved word" (7.6.1.2), so it is already a reserved keyword in strict mode. See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let tagmanager/ctags/js.c | 4 ++++ tests/ctags/Makefile.am | 1 + tests/ctags/js-let.js | 8 ++++++++ tests/ctags/js-let.js.tags | 8 ++++++++ 4 files changed, 21 insertions(+) commit ef8c40f1e44e03059f34f7dc00ff82a8a089b10a Author: Colomban Wendling Date: Sun Nov 23 19:31:09 2014 +0100 javascript: Add support for the `const` keyword `const` is not yet part of the current ECMAScript standard but is part of the ECMAScript 6 draft and is supported by popular engines including Mozilla and WebKit, and people already use it. See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const tagmanager/ctags/js.c | 20 ++++++++++++++------ tests/ctags/Makefile.am | 1 + tests/ctags/js-const.js | 10 ++++++++++ tests/ctags/js-const.js.tags | 8 ++++++++ 4 files changed, 33 insertions(+), 6 deletions(-) commit b85d7546102cdbe368cf130a37e67689f317fc81 Author: Colomban Wendling Date: Sun Nov 23 17:09:02 2014 +0100 javascript: Improve support for unterminated statements Add support for implicit semicolons so many unterminated statements' end are properly recognized. The implementation doesn't follow the ECMAScript standard because doing so requires to recognize precise grammar of all constructs, and the parser doesn't currently work this way. So instead it uses some heuristics that should work most of the time and only consider implicit semicolons where they would be explicitly relevant to avoid most false- positives. See the extensive comment in `readTokenFull()` for details. In practice, this mostly fixes handling of files using unterminated variable assignations like the following: var v1 = 0 var v2 = 1 // ... function f1() { // ... } In such situations the parser used not to be able to really tell where the variable assignation would end and would not recognize any statement before the next semicolon or closing curly brace at the same level. In practice, it wouldn't have emitted any tag for this example, not even `v1` as it generates tags when reaching the statement's end. tagmanager/ctags/js.c | 133 +++++++++++++++++++++-------- tests/ctags/Makefile.am | 1 + tests/ctags/js-implicit-semicolons.js | 16 ++++ tests/ctags/js-implicit-semicolons.js.tags | 15 ++++ 4 files changed, 131 insertions(+), 34 deletions(-) commit f2b368e2cc507f9b074ff12f412ea222d273bb84 Author: Colomban Wendling Date: Fri Nov 21 02:06:14 2014 +0100 javascript: Report function signature tagmanager/ctags/js.c | 147 +++++++++++++++------- tests/ctags/1795612.js.tags | 4 +- tests/ctags/1850914.js.tags | 2 +- tests/ctags/1878155.js.tags | 2 +- tests/ctags/1880687.js.tags | 80 ++++++------ tests/ctags/2023624.js.tags | 4 +- tests/ctags/3470609.js.tags | 6 +- tests/ctags/Makefile.am | 1 + tests/ctags/arraylist.js.tags | 4 +- tests/ctags/bracematch.js.tags | 10 +- tests/ctags/bug1950327.js.tags | 12 +- tests/ctags/bug2888482.js.tags | 4 +- tests/ctags/bug3036476.js.tags | 6 +- tests/ctags/bug3571233.js.tags | 18 +-- tests/ctags/complex-return.js.tags | 34 ++--- tests/ctags/js-class-related-unterminated.js.tags | 24 ++-- tests/ctags/js-scope.js.tags | 6 +- tests/ctags/js-signature.js | 38 ++++++ tests/ctags/js-signature.js.tags | 10 ++ tests/ctags/js-sub-block-scope.js.tags | 14 +-- tests/ctags/js-unknown-construct-nesting.js.tags | 6 +- tests/ctags/jsFunc_tutorial.js.tags | 88 ++++++------- tests/ctags/no_terminator.js.tags | 10 +- tests/ctags/parenthesis-rvalue.js.tags | 24 ++-- tests/ctags/regexp.js.tags | 4 +- tests/ctags/secondary_fcn_name.js.tags | 8 +- tests/ctags/shebang.js.tags | 2 +- tests/ctags/simple.js.tags | 34 ++--- tests/ctags/ui5.controller.js.tags | 10 +- 29 files changed, 360 insertions(+), 252 deletions(-) commit f65dec49e796fa7770d9ee1b56a570b7987a7aad Author: Colomban Wendling Date: Mon Nov 24 02:48:55 2014 +0100 javascript: Fix more handling of class-related unterminated statements tagmanager/ctags/js.c | 5 ++++- tests/ctags/js-class-related-unterminated.js | 12 ++++++++++++ tests/ctags/js-class-related-unterminated.js.tags | 3 +++ 3 files changed, 19 insertions(+), 1 deletion(-) commit 9c84a91bb360653e96c38e8e1a31cce7b02696d8 Author: Colomban Wendling Date: Thu Nov 20 16:38:37 2014 +0100 javascript: Fix scope inside nested blocks (if/else/while/for/etc.) tagmanager/ctags/js.c | 38 +++++++++++++++++----------------- tests/ctags/Makefile.am | 1 + tests/ctags/js-sub-block-scope.js | 17 +++++++++++++++ tests/ctags/js-sub-block-scope.js.tags | 8 +++++++ 4 files changed, 45 insertions(+), 19 deletions(-) commit e01ae923a15a01245dbe52d5023f9a8db5d17758 Author: Colomban Wendling Date: Thu Nov 20 15:30:28 2014 +0100 javascript: Cleanup `findCmdTerm()` callers a bit Move the check for unterminated inside `findCmdTerm()` itself and return it rather than having each caller do it itself. tagmanager/ctags/js.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) commit 7e6215661e64475a891921848149bd12a57c8a65 Author: Colomban Wendling Date: Thu Nov 20 15:28:27 2014 +0100 javascript: Fix handling some class-related unterminated statements tagmanager/ctags/js.c | 11 +++-- tests/ctags/Makefile.am | 1 + tests/ctags/js-class-related-unterminated.js | 50 +++++++++++++++++++++++ tests/ctags/js-class-related-unterminated.js.tags | 13 ++++++ 4 files changed, 71 insertions(+), 4 deletions(-) commit 5a1a22d9306fdf0e4352127b12cafd8555ea55b8 Author: Colomban Wendling Date: Wed Nov 19 23:39:15 2014 +0100 javascript: Properly handle nested unknown blocks Properly match open curly braces when parsing a statement not to possibly get fooled by unexpected nested blocks, e.g. after a `switch`'s `case` or a label. This mostly reverts c54c3ad5e815d16e3b48f3c477465627808aadee and replaces it with a more correct and complete solution. tagmanager/ctags/js.c | 40 +++++++----------------- tests/ctags/Makefile.am | 1 + tests/ctags/js-unknown-construct-nesting.js | 23 ++++++++++++++ tests/ctags/js-unknown-construct-nesting.js.tags | 5 +++ 4 files changed, 40 insertions(+), 29 deletions(-) commit f158f5d362404a3bec09c8841537e981ade5de2f Author: Colomban Wendling Date: Fri Nov 21 00:26:04 2014 +0100 javascript: Fix scope after some constructs tagmanager/ctags/js.c | 1 - tests/ctags/Makefile.am | 1 + tests/ctags/js-scope.js | 18 ++++++++++++++++++ tests/ctags/js-scope.js.tags | 4 ++++ tests/ctags/ui5.controller.js.tags | 6 +++--- 5 files changed, 26 insertions(+), 4 deletions(-) commit f886f7084a007feda682051fbdbbd533f2127460 Author: dfishburn Date: Fri Sep 19 19:03:59 2014 +0000 Javascript parser: Removed warning of unused variable is_inside_class and cleanUp git-svn-id: https://svn.code.sf.net/p/ctags/code/trunk@815 c5d04d22-be80-434c-894e-aa346cc9e8e8 tagmanager/ctags/js.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit c54c3ad5e815d16e3b48f3c477465627808aadee Author: dfishburn Date: Wed May 7 20:37:00 2014 +0000 Added new method findMatchingToken() to skip over blocks of code. Updated parseSwitch() to use the new method. Updated tests/ctags/ui5.ui.controller.js with code that broke the switch statement. git-svn-id: https://svn.code.sf.net/p/ctags/code/trunk@809 c5d04d22-be80-434c-894e-aa346cc9e8e8 tagmanager/ctags/js.c | 35 +++++++++++++++++++++++++++-------- tests/ctags/ui5.controller.js | 8 ++++++++ tests/ctags/ui5.controller.js.tags | 1 + 3 files changed, 36 insertions(+), 8 deletions(-) commit 52d2d735272b2d9298aedbf202ed1853b840ada9 Author: dfishburn Date: Mon May 5 19:03:04 2014 +0000 Udated jscript to be able to parse SAPUI5 controller and view files. Added test case tests/ctags/ui5.controller.js git-svn-id: https://svn.code.sf.net/p/ctags/code/trunk@808 c5d04d22-be80-434c-894e-aa346cc9e8e8 tagmanager/ctags/js.c | 55 ++++++++++++++++++++++++++++++++++++++ tests/ctags/Makefile.am | 1 + tests/ctags/ui5.controller.js | 23 ++++++++++++++++ tests/ctags/ui5.controller.js.tags | 5 ++++ 4 files changed, 84 insertions(+) commit 846335b3f03c4d522a6e5ff99c08645c2faf9c7e Author: Frank Lanitz Date: Tue Nov 18 17:28:28 2014 +0100 Update of Japanese translation po/ja.po | 2897 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 1469 insertions(+), 1428 deletions(-) commit 50cbe660fa91fa10ac72229a945269368b3261eb Merge: 299f624f6 58e01b2d2 Author: Frank Lanitz Date: Tue Nov 18 14:54:37 2014 +0100 Merge pull request #382 from cousteaulecommandant/patch-3 Update es.po commit 58e01b2d248706fc22939cbed22a22d9c8c0d60d Author: cousteaulecommandant Date: Tue Nov 18 13:12:11 2014 +0100 Update es.po Use same text in Split Window menu as in Keybindings dialog. Also, translate "Side by side" as "Izquierda y derecha" ("left and right") rather than "Yuxtapuestos" ("juxtaposed") which is a rather weird (and inaccurate) word. po/es.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 299f624f65cc5c5a1ee4be6f38053a2f7ebc2a4b Author: Colomban Wendling Date: Tue Nov 11 18:55:54 2014 +0100 Autotools: Fix checking for Git revision Fix check when building out of tree, and properly handle errors. m4/geany-revision.m4 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c40263709f2143494dad939d510407ddd1fe26f6 Merge: 67cc8faf4 f765463af Author: Colomban Wendling Date: Tue Nov 11 18:38:42 2014 +0100 Merge branch 'css-update' commit 8da955ec949b3d60a68402847703c2a16f617f70 Author: Colomban Wendling Date: Tue Nov 11 17:28:57 2014 +0100 Make the currently open project insensitive in the recent menu src/project.c | 1 + src/ui_utils.c | 29 +++++++++++++++++++++++++++++ src/ui_utils.h | 2 ++ 3 files changed, 32 insertions(+) commit 3fa41cc0dadb3470a64f4511d394670d10712e5f Author: Colomban Wendling Date: Tue Nov 11 17:01:34 2014 +0100 Cleanup code for updating recent file menus src/ui_utils.c | 112 ++++++++++++++++++++++++--------------------------------- 1 file changed, 47 insertions(+), 65 deletions(-) commit f765463af0aa8dad6d39399da2c138e8b5041bc4 Author: Colomban Wendling Date: Tue Nov 11 02:01:41 2014 +0100 Import new CSS parser from fishman-ctags Some highlights: * Fixes handling of comments * Adds support for attribute and namespace selectors * Adds support for @supports blocks * Fixes tag type for many selectors * Adds support for pseudo-classes with arguments tagmanager/ctags/css.c | 388 +++++++++++---------- tests/ctags/css-at-rules.css.tags | 4 +- tests/ctags/css-at-supports.css.tags | 5 +- tests/ctags/css-attribute-selectors.css.tags | 16 +- tests/ctags/css-namespace-selectors.css.tags | 7 +- tests/ctags/css-pseudo-classes.css.tags | 33 +- tests/ctags/css-simple.css.tags | 18 +- .../css-singlequote-in-comment-issue2.css.tags | 1 + tests/ctags/css-tag-types.css.tags | 40 +-- 9 files changed, 264 insertions(+), 248 deletions(-) commit 207279728317082bac040e7f32c50697919090b0 Author: Colomban Wendling Date: Tue Nov 11 01:59:12 2014 +0100 Import CSS test cases from fishman-ctags tests/ctags/Makefile.am | 10 ++++++ tests/ctags/css-at-rules.css | 27 +++++++++++++++ tests/ctags/css-at-rules.css.tags | 3 ++ tests/ctags/css-at-supports.css | 6 ++++ tests/ctags/css-at-supports.css.tags | 5 +++ tests/ctags/css-attribute-selectors.css | 6 ++++ tests/ctags/css-attribute-selectors.css.tags | 12 +++++++ tests/ctags/css-comma-no-space.css | 1 + tests/ctags/css-comma-no-space.css.tags | 3 ++ tests/ctags/css-namespace-selectors.css | 4 +++ tests/ctags/css-namespace-selectors.css.tags | 5 +++ tests/ctags/css-pseudo-classes.css | 15 +++++++++ tests/ctags/css-pseudo-classes.css.tags | 23 +++++++++++++ tests/ctags/css-simple.css | 27 +++++++++++++++ tests/ctags/css-simple.css.tags | 11 +++++++ tests/ctags/css-singlequote-in-comment-issue2.css | 2 ++ .../css-singlequote-in-comment-issue2.css.tags | 2 ++ tests/ctags/css-tag-types.css | 38 ++++++++++++++++++++++ tests/ctags/css-tag-types.css.tags | 37 +++++++++++++++++++++ tests/ctags/css-trivial.css | 5 +++ tests/ctags/css-trivial.css.tags | 6 ++++ 21 files changed, 248 insertions(+) commit 67cc8faf4be7778cda8c2901785b038319c1f01a Author: Colomban Wendling Date: Sun Nov 9 22:14:12 2014 +0100 Fix closing of the "missing file" infobar The issue was introduced in b646424ddb715382a937d233a75bc684c22e18ec as it removed the default handler that used to destroy the infobar. Now, the infobar is properly closed, but only if the action succeeded. Closes #375. src/document.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 4cc943666fae526ea3f0098ad0c34e5996872547 Author: Colomban Wendling Date: Wed Oct 29 14:10:34 2014 +0100 Autotools: MinGW: Fix building .res file in VPATH builds From a patch by Valentin Kunz, thanks! Part of https://sourceforge.net/p/geany/patches/17/ geany_private.rc | 2 +- src/Makefile.am | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 1dc09597b24d19683abc597d45d7c28d37c199f0 Author: Colomban Wendling Date: Sun Nov 9 17:11:31 2014 +0100 Fix check for fnmatch and remove strict dependency on it for Windows Strict dependency on fnmatch was removed in 52076d19e8fe7ab41ebc92928e. We still have an optional dependency on it from CTags, but I don't think we use this code, and anyways the checks we had for the optional path to be taken were incorrect, so it was never actually used. So, drop the dependency on libibrety for Windows builds, and fix the remaining checks for an optional fnmatch so if it is found it can actually be used. configure.ac | 2 +- m4/geany-mingw.m4 | 2 -- src/Makefile.am | 2 +- wscript | 3 ++- 4 files changed, 4 insertions(+), 5 deletions(-) commit fea71a282fe91629335167f2c05ff2239c8e02e4 Author: Enrico Tröger Date: Sun Nov 9 11:22:16 2014 +0100 Allow MRU file list length to be set to 0 to disable it Since the rest of the code is already prepared for it, setting mru_length to 0 just disables the recent files menu. data/geany.glade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aa06427c71ef337f0a80e8d3eb001771a226fece Merge: 8c77accfd d4135c984 Author: Colomban Wendling Date: Sun Nov 9 00:19:14 2014 +0100 Merge branch 'plugin-symbols-protoypes' commit 8c77accfd090c794e8eb1366772f417596052eb1 Merge: ba8ff712b fd4f31cc0 Author: Colomban Wendling Date: Sat Nov 8 19:37:20 2014 +0100 Merge PR#356 from 'b4n/techee/tm' Huge TagManager improvements commit ba8ff712b0b5d4cc08f0f6a89f5738e43a9ce3e9 Merge: 202ecf8bc 53101dd5f Author: Colomban Wendling Date: Sat Nov 8 19:04:20 2014 +0100 Merge pull request #374 from kugel-/for-upstream project: Remove unecessary calls after loading project files commit fd4f31cc07fa86cc5287f493e7c2fad925b9868f Author: Colomban Wendling Date: Sat Nov 8 18:34:15 2014 +0100 Bump Geany API and ABI for TagManager API changes src/plugindata.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6a0673f4ae8d18ada42afb7f3df46929f540cc3f Author: Colomban Wendling Date: Sat Nov 8 18:32:41 2014 +0100 TM: Don't allow passing NULL to tm_workspace API src/dialogs.c | 11 +++++++---- src/document.c | 7 +++++-- tagmanager/src/tm_workspace.c | 13 ++++++++----- 3 files changed, 20 insertions(+), 11 deletions(-) commit 0ed236db307d0bf76520bd8841a43b7d89dc8d8d Author: Colomban Wendling Date: Sat Nov 8 18:10:48 2014 +0100 TM: Fix some test results after sort changes from 90944c77 tests/ctags/debian_432872.f90.tags | 2 +- tests/ctags/keyword_explicit.cs.tags | 2 +- tests/ctags/keyword_implicit.cs.tags | 2 +- tests/ctags/keyword_names.f90.tags | 2 +- tests/ctags/keyword_struct.cs.tags | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) commit b38f1f99d54d0f8a95d1485f38bc8bb10467a17c Author: Colomban Wendling Date: Sat Nov 8 17:09:14 2014 +0100 TM: Use gsize everywhere for the memory buffer size tagmanager/ctags/read.c | 2 +- tagmanager/ctags/read.h | 2 +- tagmanager/src/tm_source_file.c | 2 +- tagmanager/src/tm_source_file.h | 2 +- tagmanager/src/tm_workspace.c | 4 ++-- tagmanager/src/tm_workspace.h | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) commit 53101dd5fa3c622b60be2e99163f0469246e0bc9 Author: Thomas Martitz Date: Sat Nov 8 17:59:05 2014 +0100 project: Remove unecessary calls after loading project files document_new_file_if_non_open() and ui_focus_current_document() only make sense when files where actually opened, but the preceeding configuration_load_session_files() only loads the file names into the global session_files variable, from which the files are actually opened by a later call to configuration_open_files(). These two calls should be done after that one and the callers generally do this already. src/project.c | 2 -- 1 file changed, 2 deletions(-) commit 202ecf8bcbe0add75e242739fc47961bc98bcae1 Merge: 4e5ed012f e67f63dd0 Author: Frank Lanitz Date: Fri Nov 7 16:31:23 2014 +0100 Merge pull request #372 from cousteaulecommandant/patch-1 "Execute commands" -> "Comandos de ejecución" commit e67f63dd0b69b3c04d1d43e0b19cc0e0844fd726 Author: cousteaulecommandant Date: Fri Nov 7 12:48:04 2014 +0100 "Execute commands" -> "Comandos de ejecución" "Execute commands" (from the Set Build Commands dialog) is translated to Spanish as if it were a sentence (like "Execute these commands"), but it's actually a name (" commands", "Independent commands", and "Execute commands"; so it means "Commands for 'execute'"). Therefore, +"Comandos de ejecución" is a better translation than -"Ejecutar comandos". po/es.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f441a121d3b13207467566b953dd6d18e1831db2 Author: Jiří Techet Date: Thu Nov 6 11:38:40 2014 +0100 Parse file from buffer only if the file isn't too big By loading e.g. a huge DB dump into memory we could run out of memory. Check the size of the file and determine whether to use file parsing or buffer parsing. Give up early if LANG_IGNORE set - there's no need to read the file in this case. tagmanager/src/tm_source_file.c | 45 +++++++++++++++++++++++++++++++++-------- 1 file changed, 37 insertions(+), 8 deletions(-) commit 0ad85aee04a03ca395bff0b1426575beda1ecd46 Author: Jiří Techet Date: Wed Nov 5 20:58:52 2014 +0100 Fix comment wording tagmanager/src/tm_workspace.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a95fc1a994a90e4bf3d1a27a4dc4accdc14fa91c Author: Jiří Techet Date: Wed Nov 5 20:52:03 2014 +0100 Don't expose the source file update function to plugins plugins/geanyfunctions.h | 2 -- src/document.c | 2 +- src/plugindata.h | 1 - src/plugins.c | 1 - tagmanager/src/tm_workspace.c | 16 +++++++--------- tagmanager/src/tm_workspace.h | 4 ++-- 6 files changed, 10 insertions(+), 16 deletions(-) commit 90944c77b0c304de28d26297687c12383d76ef39 Author: Jiří Techet Date: Wed Nov 5 20:21:33 2014 +0100 Unify tag sorting and simplify tag comparison function Use the same (or compatible) sorting criteria everywhere. Add tm_tag_attr_line_t to sort options so even after merging file tags into workspace tags, the same tags defined at different lines are preserved and not removed as duplicates. Sort type before scope because it's cheaper to compare (string vs int comparison). For some reason, the above changes make the sorting performance worse. Simplify the tag comparison function a bit and reorder the case statements in the switch to match the sort order. This (again not sure why), makes the performance like before. tagmanager/src/tm_tag.c | 32 +++++++++++++------------------- tagmanager/src/tm_workspace.c | 41 ++++++++++++++++++++++++++--------------- 2 files changed, 39 insertions(+), 34 deletions(-) commit 29000cf10465ab739e688eee711ba14ecfbfba7f Author: Jiří Techet Date: Mon Nov 3 11:29:39 2014 +0100 Always parse buffer instead of file This brings the linux kernel parsing time from about 20s to 12s on my machine. tagmanager/src/tm_source_file.c | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) commit 448f1fd20ef8b640a4702e3d47da1fc086cad0b6 Author: Jiří Techet Date: Mon Nov 3 10:57:58 2014 +0100 Make sure gboolean tm_source_file_parse() returns the right value Previously, after finishing the while loop TRUE was returned - this is wrong because the while was running because parsing was unsuccessful. Make it work the same way as in ctags (parser() always succeeds, parser2() returns whether to retry or not). (The return value actually isn't used, it's just to make sure we know what we are doing.) tagmanager/src/tm_source_file.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit f35d0b9c0c8f54b75eff4f12bc762cc5ced0d390 Author: Jiří Techet Date: Sun Nov 2 11:34:44 2014 +0100 Move tm_get_current_tag() from tm_workspace to tm_tag This function has nothing to do with the workspace so it rather belongs to tm_tag. tagmanager/src/tm_tag.c | 41 +++++++++++++++++++++++++++++++++++++++++ tagmanager/src/tm_tag.h | 2 ++ tagmanager/src/tm_workspace.c | 40 ---------------------------------------- tagmanager/src/tm_workspace.h | 2 -- 4 files changed, 43 insertions(+), 42 deletions(-) commit 71cc1ecb2084deb9e3c7dd8ba1e88946a1767280 Author: Jiří Techet Date: Fri Oct 31 23:26:16 2014 +0100 Cleaner and safer TMWorkspace API With the previous TMWorkspace API it was possible to make the workspace inconsistent by e.g. removing source files and forgetting to update workspace. This could lead to non-obvious and not immediately visible crashes. The new set of the public (but also Geany private) API calls always updates the workspace accordingly and neither of the calls can lead to an inconsistent state of the workspace. In addition, perform some minor cleanups and simplifications - unify parsing from buffer and from file, support "parsing" of 0-sized buffers and improve documentation. plugins/geanyfunctions.h | 10 +- src/dialogs.c | 2 +- src/document.c | 17 +- src/plugindata.h | 9 +- src/plugins.c | 5 +- tagmanager/src/tm_source_file.c | 96 ++++------- tagmanager/src/tm_source_file.h | 7 +- tagmanager/src/tm_workspace.c | 366 ++++++++++++++++++++++------------------ tagmanager/src/tm_workspace.h | 13 +- 9 files changed, 259 insertions(+), 266 deletions(-) commit 48718f4b792914ce206e5b423d4dfbf240bba4de Author: Colomban Wendling Date: Fri Oct 31 20:25:59 2014 +0100 Remove an unused parameter tagmanager/src/tm_tag.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 013c47c6e3edf5ed556e5cc1ebe2bf28c3600f42 Author: Colomban Wendling Date: Fri Oct 31 20:25:13 2014 +0100 TM: Fix various integer signedness issues tagmanager/src/tm_source_file.c | 4 ++-- tagmanager/src/tm_tag.c | 12 ++++++------ tagmanager/src/tm_workspace.c | 12 ++++++------ 3 files changed, 14 insertions(+), 14 deletions(-) commit 61ee7de86ecd5e10cf077b9c519d818013f52b8b Author: Colomban Wendling Date: Fri Oct 31 20:19:47 2014 +0100 Return an unisgned tag count in tm_tags_find() There is no reason to return a signed value an it help unifying caller's types. tagmanager/src/tm_source_file.c | 2 +- tagmanager/src/tm_tag.c | 6 +++--- tagmanager/src/tm_tag.h | 2 +- tagmanager/src/tm_workspace.c | 5 +++-- 4 files changed, 8 insertions(+), 7 deletions(-) commit 42a9603f4a1e5ec4a0dc7b74c6964fdf7bb7c10d Author: Colomban Wendling Date: Fri Oct 31 20:07:27 2014 +0100 Use TMTagType everywhere to hold tag types src/editor.c | 2 +- src/symbols.c | 12 ++++++------ tagmanager/src/tm_tag.c | 8 ++++---- tagmanager/src/tm_tag.h | 2 +- tagmanager/src/tm_workspace.c | 22 ++++++++++++---------- tagmanager/src/tm_workspace.h | 6 +++--- 6 files changed, 27 insertions(+), 25 deletions(-) commit 4e5ed012f29f57f1e82c0bca23ea621f8504a7f5 Author: Nick Treleaven Date: Thu Oct 30 17:12:14 2014 +0000 Recommend Glade 3.8.5, add link for fishman ctags fork HACKING | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit d7ed48f86be3957afb155edcb5a9c16afdc4054f Author: Jiří Techet Date: Fri Oct 31 02:03:13 2014 +0100 Fix a problem in tm_tags_remove_file_tags() when more tags of the same name exist tagmanager/src/tm_tag.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit cb9e4bbf7446e45365cad2242087f2a766662f20 Author: Jiří Techet Date: Thu Oct 30 19:36:10 2014 +0100 Microoptimization in merge Improves performance by about 10%. tagmanager/src/tm_tag.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit bdee1336aa11d2064c6f71661697cfe84bc0d658 Author: Jiří Techet Date: Thu Oct 30 18:46:46 2014 +0100 Keep a separate list of typenames for Scintilla syntax highlighting Manage the list the same way as workspace tags_array by the fast tag removal and merge. Thanks to this, typename tags don't have to be extracted from tags_array periodically, which speeds up editing. src/document.c | 3 +-- src/highlighting.c | 19 +------------------ src/symbols.c | 16 ++++++---------- src/symbols.h | 4 +--- tagmanager/src/tm_tag.c | 5 +++++ tagmanager/src/tm_tag.h | 3 +++ tagmanager/src/tm_workspace.c | 33 ++++++++++++++++++++++++++------- tagmanager/src/tm_workspace.h | 1 + 8 files changed, 44 insertions(+), 40 deletions(-) commit 32a3dfab7f6e75f102a2cac79c6ce3eac7c2a216 Author: Jiří Techet Date: Thu Oct 30 16:57:33 2014 +0100 Use binary search when removing file tags Even though the binary search requires expensive string comparisons, there are just log(n) of them to find the tag in the workspace array and the result is much faster than scanning the array linearly (this of course works only under the condition that len(source_file->tags_array) << len(workspace_array) This is however satisfied for big projects (and doesn't matter for small projects). Also make the tm_tags_find() function more user friendly by returning tagCount 0 when no tags found. tagmanager/src/tm_tag.c | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) commit be131b00f9822309089c61a053125378bdefa005 Author: Jiří Techet Date: Wed Oct 29 16:13:02 2014 +0100 Extend dedup() and merge() to unref the duplicate tag when needed src/editor.c | 2 +- src/symbols.c | 2 +- tagmanager/src/tm_tag.c | 21 +++++++++++++++------ tagmanager/src/tm_tag.h | 8 +++++--- tagmanager/src/tm_workspace.c | 18 +++++++++--------- 5 files changed, 31 insertions(+), 20 deletions(-) commit 6ba3bb46a455040a8780fd494a99d080913800d9 Author: Jiří Techet Date: Wed Oct 29 15:28:12 2014 +0100 Don't pass arguments to search/sort functions using static variables Instead of qsort() it's possible to use g_ptr_array_sort_with_data() with similar performance. Unfortunately it seems there's no bsearch_with_data() anywhere so the patch uses a modified bsearch() implementation from libc (still probably cleaner than passing arguments using static variables). tagmanager/src/tm_tag.c | 99 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 65 insertions(+), 34 deletions(-) commit 15c90b63c9b6e21ac7485f06023ea3b92724d6ba Author: Jiří Techet Date: Wed Oct 29 13:53:16 2014 +0100 Get rid of lazy initialization in TM Lazy initializing various member pointers doesn't bring any real performance improvement but it requires lots of additional NULL checks - get rid of this. Make some more cleanups on the way. In addition, remove success/failure return values from tm_workspace_add_source_file() and tm_workspace_remove_source_file() which have no real use. src/document.c | 7 +- src/plugindata.h | 4 +- tagmanager/src/tm_source_file.c | 24 ++---- tagmanager/src/tm_tag.c | 62 +++++++-------- tagmanager/src/tm_workspace.c | 162 ++++++++++++---------------------------- tagmanager/src/tm_workspace.h | 4 +- 6 files changed, 92 insertions(+), 171 deletions(-) commit 43b8ab8d236850bec929d981d05122dfabca99c7 Author: Jiří Techet Date: Tue Oct 28 00:07:24 2014 +0100 Only keep the minimal set of parameter in the TM API calls Avoid "utility" parameters like do_free for which we already have API calls and which actually don't perform any free if the source file isn't in TM. Clarify when to set the update_workspace parameter. src/dialogs.c | 3 ++- src/document.c | 6 ++++-- src/plugindata.h | 2 +- tagmanager/src/tm_workspace.c | 26 +++++++++++++------------- tagmanager/src/tm_workspace.h | 2 +- 5 files changed, 21 insertions(+), 18 deletions(-) commit 0285ec28a5c813cd5c82b1ad390b584e122c1873 Author: Jiří Techet Date: Mon Oct 27 23:44:20 2014 +0100 Move tm_source_file_update() to tm_workspace.c The placement of this function in tm_source_file is not right - by moving it to the workspace we can make the source file unaware of the existence of the workspace (no inclusion of tm_workspace.h in tm_source_file any more). Also change tm_source_file_new() so it doesn't offer the source file update. After this change * TMWorkspace knows TMSourceFile and TMTag * TMSourceFile knows TMTag * TMTag knows TMSourceFile plugins/geanyfunctions.h | 4 +- src/document.c | 4 +- src/plugindata.h | 4 +- src/plugins.c | 2 +- tagmanager/src/tm_source_file.c | 102 +++------------------------------------- tagmanager/src/tm_source_file.h | 11 ++--- tagmanager/src/tm_workspace.c | 102 ++++++++++++++++++++++++++++++++++++---- tagmanager/src/tm_workspace.h | 9 ++-- 8 files changed, 117 insertions(+), 121 deletions(-) commit cfcbc6a2056100c741514b6df8d02438854d26cd Author: Nick Treleaven Date: Thu Oct 30 12:50:55 2014 +0000 Make Next/Previous Message keybindings work without a document open src/keybindings.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 4546b6f7a660f0aa81d115baa06a75bd1b608505 Merge: fc5d8d145 41dcde623 Author: Colomban Wendling Date: Mon Oct 27 21:19:57 2014 +0100 Merge pull request #363 from techee/prj_dialog Always set project description and file patterns in the dialog commit 41dcde623db0c785e6bf7fc64a7117f7f8774aea Author: Jiří Techet Date: Mon Oct 27 20:58:59 2014 +0100 Always set project description and file patterns in the dialog Set them also when they are NULL in the project (which happens when new project is created) because otherwise there are left-over values from the previous project. src/project.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) commit fc5d8d145a7b14e8e3a82fa55e9b489c1a2285c6 Merge: a7a893a22 36c155cbe Author: Colomban Wendling Date: Mon Oct 27 19:24:09 2014 +0100 Merge pull request #362 from ntrel/fb-cmd Make File Browser use explorer as default open command on Windows commit a7a893a22f15078d498ea6c61ba0a3c79aa8b85b Author: Enrico Tröger Date: Sun Oct 26 23:44:19 2014 +0100 Set -O2 compiler flag by default for gcc But only if no other optimization flags could be found. wscript | 2 ++ 1 file changed, 2 insertions(+) commit 36c155cbe855f4c05425d868fa4194ee165ca362 Author: Nick Treleaven Date: Sun Oct 26 15:06:16 2014 +0000 Make File Browser use explorer as default open command on Windows plugins/filebrowser.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 233ca08e886f6a1d543aa87fc454057e61a20e0c Author: Jiří Techet Date: Sat Oct 25 22:29:21 2014 +0200 Add project_write_config() to force project file rewrite Since plugins don't have direct access to the project file, only through the project-save signal, they need some way to emit this signal when saving their preferences outside the project dialog, which is what this function does. plugins/geanyfunctions.h | 2 ++ src/plugindata.h | 8 ++++++++ src/plugins.c | 7 ++++++- src/project.c | 12 ++++++++++++ src/project.h | 3 +++ 5 files changed, 31 insertions(+), 1 deletion(-) commit a183d9cb97c3adde33e6a7dfd08591d802bc2316 Author: Jiří Techet Date: Wed Oct 22 16:58:38 2014 +0200 Move the refcount TMTag member up in the structure and don't document it for plugins tagmanager/src/tm_tag.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 11866938ccbc77cec7b1e600c65efb175d1bca96 Author: Jiří Techet Date: Wed Oct 22 16:23:07 2014 +0200 Remove unused return value tagmanager/src/tm_tag.c | 2 +- tagmanager/src/tm_tag.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 6ef41c65a9504f54bab17253359edaafb9d771fa Author: Jiří Techet Date: Wed Oct 22 16:14:59 2014 +0200 Various cleanups in the merge algorithm Remove the continue statement and use if/else instead. Initialize the val1 variable only with the value used for the chosen path (normal/fast). tagmanager/src/tm_tag.c | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) commit 9a2a55a252a0c456b8a18a79da1d55eb1393329c Author: Jiří Techet Date: Wed Oct 22 16:04:06 2014 +0200 Reinclude tm_tag.h in tm_workspace.c To make Colomban happy. tagmanager/src/tm_workspace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d8b178e4cbf4c0569a4b5c67e8c48f566d58a5b1 Author: Jiří Techet Date: Wed Oct 22 15:59:36 2014 +0200 Whitespace changes tagmanager/src/tm_source_file.c | 48 ++++++++++++++++++++--------------------- tagmanager/src/tm_workspace.c | 4 ++-- tagmanager/src/tm_workspace.h | 12 +++++------ 3 files changed, 32 insertions(+), 32 deletions(-) commit 11ea0ed637efc299b129aebc3d7ead71303a884f Author: Colomban Wendling Date: Wed Oct 22 15:06:14 2014 +0200 Remove some dead code tagmanager/src/tm_tag.c | 1 - tagmanager/src/tm_workspace.c | 2 -- 2 files changed, 3 deletions(-) commit a671c1e26d94bccf68120b327ea2002b9d10ab0c Author: Colomban Wendling Date: Wed Oct 22 15:05:35 2014 +0200 Fix signed vs unsigned comparisons tagmanager/src/tm_tag.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit d4135c9842bb7fc0c8701fc47a1ab148bed5e992 Author: Colomban Wendling Date: Mon Oct 20 17:55:32 2014 +0200 Add prototypes for all plugin symbols This allows the compilers to check that the plugin's symbols have the proper prototype. Doing so can avoid subtle and hard-to-find bugs in case a plugin's symbol has incorrect signature as dlsym() can't check if the signature is actually the one we expect. As a bonus, it helps when using -Wmissing-prototypes as it provides the prototypes. src/plugindata.h | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) commit c35dedf35f95511d0e4f9fd204ddee5dddd1a409 Author: Colomban Wendling Date: Mon Oct 20 16:17:19 2014 +0200 Rename internal plugin_init() to avoid confusion with plugins entry point src/plugins.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 62332e19aa9182593dccea5f21fcd1c34b99f144 Author: Jiří Techet Date: Sat Oct 18 13:46:01 2014 +0200 Since lang is now always part of TMTag, always set its value This makes it less confusing for code accessing TMTag so it can always find the language in tag->lang and there is no need to access it through tag->file.lang. src/symbols.c | 5 +---- tagmanager/src/tm_tag.c | 1 + tagmanager/src/tm_tag.h | 4 +--- tagmanager/src/tm_workspace.c | 6 +----- 4 files changed, 4 insertions(+), 12 deletions(-) commit 54a9fd83ea0c98b6ba34fe7cd75f1e3a73daa0be Author: Jiří Techet Date: Sat Oct 18 12:34:05 2014 +0200 Get rid of the nested members in TMTag The only real change is the removal of struct and union in TMTag, the rest is purely mechanical removal of "atts.entry." everywhere. src/editor.c | 26 +++---- src/sidebar.c | 2 +- src/symbols.c | 64 ++++++++-------- tagmanager/src/tm_source_file.c | 4 +- tagmanager/src/tm_tag.c | 160 ++++++++++++++++++++-------------------- tagmanager/src/tm_tag.h | 36 ++++----- tagmanager/src/tm_workspace.c | 108 +++++++++++++-------------- 7 files changed, 198 insertions(+), 202 deletions(-) commit 48725e4188764b71b97f4e68291f89a222d91a5d Author: Jiří Techet Date: Sat Oct 18 12:24:21 2014 +0200 Get rid of the file struct in TMTag, preparation for the union removal The union on TMTag is very confusing and rather dangerous. The fields file/timestamp and line/lang overlap. Some implicit assumptions are made in the code - timestamp is never set so when file is NULL, the file struct should be used to get the lang member. Rather avoid using unions and move the lang member to the entry struct together with the other attributes. src/symbols.c | 9 +++++---- tagmanager/src/tm_tag.c | 2 +- tagmanager/src/tm_tag.h | 11 ++++------- tagmanager/src/tm_workspace.c | 4 ++-- 4 files changed, 12 insertions(+), 14 deletions(-) commit a7c6e0733fab4a236bdc0b0bba756b2b522391a8 Author: Jiří Techet Date: Sat Oct 18 12:04:12 2014 +0200 Remove tm_tag_file_t and all its uses File tags aren't used for anything in geany and neither the existing global tag files seem to use them - remove this concept from geany. tagmanager/src/tm_tag.c | 109 ++++++++++++++---------------------------------- tagmanager/src/tm_tag.h | 2 +- 2 files changed, 33 insertions(+), 78 deletions(-) commit 0f9b778ae55b74c688970a532baf5ac99d607980 Author: Jiří Techet Date: Fri Oct 17 22:37:17 2014 +0200 Fix division by 0 tagmanager/src/tm_tag.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9eefdb0efcdc22d3d65e6f1d4e975f225eb18569 Author: Jiří Techet Date: Fri Oct 17 00:43:33 2014 +0200 Where possible, convert functions to static in TM tagmanager/src/tm_source_file.c | 90 ++++++++++++++++++++--------------------- tagmanager/src/tm_source_file.h | 13 ------ tagmanager/src/tm_tag.c | 10 ++--- tagmanager/src/tm_tag.h | 10 ----- tagmanager/src/tm_workspace.c | 2 +- tagmanager/src/tm_workspace.h | 2 - 6 files changed, 51 insertions(+), 76 deletions(-) commit 034ef6d79de3bf61907894674cc8efadfadd5bde Author: Jiří Techet Date: Fri Oct 17 00:15:07 2014 +0200 Remove the unused (and misleading) tm_tag_free() It just calls unref() which might not actually free the tag if the refnum is more than 1. tagmanager/src/tm_tag.c | 10 ---------- tagmanager/src/tm_tag.h | 6 ------ 2 files changed, 16 deletions(-) commit 344eca020474fb3ce948af529c318bd719f09ba9 Author: Jiří Techet Date: Fri Oct 17 00:12:54 2014 +0200 Add #if 0 around unused TM functions and move them to the end of the file Similarly, add #if TM_DEBUG around various unused debugging functions. The #if 0 surrounded functions are good candidate for future removal if decided they are not needed any more. tagmanager/src/tm_source_file.c | 69 ++++----- tagmanager/src/tm_source_file.h | 2 - tagmanager/src/tm_tag.c | 4 + tagmanager/src/tm_tag.h | 5 + tagmanager/src/tm_workspace.c | 318 ++++++++++++++++++++-------------------- tagmanager/src/tm_workspace.h | 16 +- 6 files changed, 212 insertions(+), 202 deletions(-) commit 2c09333b6a3deb4f38a0b70888122829cc6e3818 Author: Jiří Techet Date: Thu Oct 16 23:26:52 2014 +0200 Remove unused tm_tags_custom_sort() and tm_tags_custom_dedup() and friends tagmanager/src/tm_tag.c | 49 ++----------------------------------------------- tagmanager/src/tm_tag.h | 18 +++--------------- 2 files changed, 5 insertions(+), 62 deletions(-) commit 4e98021689fbc744b75a773f5095d4f7472f4430 Author: Jiří Techet Date: Thu Oct 16 23:14:09 2014 +0200 Swap the merge arguments if len(small_array) > len(big_array) tagmanager/src/tm_tag.c | 30 +++++++++++++++++++++--------- tagmanager/src/tm_tag.h | 2 +- tagmanager/src/tm_workspace.c | 4 ++-- 3 files changed, 24 insertions(+), 12 deletions(-) commit fe98ea61564d4195f9d7619f48b4983f5417eece Author: Jiří Techet Date: Thu Oct 16 23:06:40 2014 +0200 Use the new merge implementation also for global tags tagmanager/src/tm_tag.c | 46 ------------------------------------------- tagmanager/src/tm_tag.h | 3 --- tagmanager/src/tm_workspace.c | 14 +++++++++++-- 3 files changed, 12 insertions(+), 51 deletions(-) commit 0470f45e0cac539efed63e3f01d519ac01623f74 Author: Jiří Techet Date: Wed Oct 15 15:05:19 2014 +0200 TM: move function descriptions from headers to sources To make it consistent with the rest of Geany. tagmanager/src/tm_source_file.c | 78 ++++++++++++++++++++ tagmanager/src/tm_source_file.h | 79 -------------------- tagmanager/src/tm_tag.c | 154 ++++++++++++++++++++++++++++++++++++++- tagmanager/src/tm_tag.h | 156 ---------------------------------------- tagmanager/src/tm_workspace.c | 80 ++++++++++++++++++++- tagmanager/src/tm_workspace.h | 83 +-------------------- 6 files changed, 311 insertions(+), 319 deletions(-) commit 4903d79dcc7ed1e8e0d54f85f00d07dbb62e33dc Author: Jiří Techet Date: Wed Oct 15 14:20:06 2014 +0200 TM: use the same format of docstrings as in the rest of Geany tagmanager/src/tm_source_file.h | 78 ++++++------- tagmanager/src/tm_tag.h | 248 ++++++++++++++++++++-------------------- tagmanager/src/tm_tagmanager.h | 8 +- tagmanager/src/tm_workspace.c | 2 +- tagmanager/src/tm_workspace.h | 92 +++++++-------- 5 files changed, 214 insertions(+), 214 deletions(-) commit 74706374eb1afcf8e3db422365f722e33dd1715a Author: Jiří Techet Date: Wed Oct 15 13:49:10 2014 +0200 Remove the unused inactive flag in TM It is set only when read from a file but it never gets written to the file with the TRUE value. tagmanager/src/tm_source_file.c | 1 - tagmanager/src/tm_source_file.h | 1 - tagmanager/src/tm_tag.c | 14 ++------------ tagmanager/src/tm_tag.h | 3 +-- 4 files changed, 3 insertions(+), 16 deletions(-) commit d686674ecae5e6c5dc889741d6a96c783b5678e4 Author: Jiří Techet Date: Sun Oct 12 22:36:03 2014 +0200 On single file update only merge the file's tags into workspace tags Since both the file tags and workspace tags are sorted, it is unnecessary to completely resort the tags for the workspace - instead, remove the tags belonging to the file from the workspace tags and merge the updated file's tags into the workspace tags. The merge is optimized for merging small number of tags into a large array. For instance, the total number of tags in linux kernel is about 2300000 while the average number of tags per file is about 65 (35000 source files). Most of the time merge won't be performed so we can avoid expensive string comparisons and try to make bigger jumps to see if some merge is needed or not (more details in the source file comments). tagmanager/src/tm_source_file.c | 16 +++++- tagmanager/src/tm_tag.c | 113 ++++++++++++++++++++++++++++++++++++++++ tagmanager/src/tm_tag.h | 4 ++ tagmanager/src/tm_workspace.c | 28 +++++++++- tagmanager/src/tm_workspace.h | 3 ++ 5 files changed, 160 insertions(+), 4 deletions(-) commit 8c25ff871c2770fe5a53974f8e0ed6f482dee1ab Author: Jiří Techet Date: Sun Oct 12 21:26:44 2014 +0200 Make tm_workspace_update() public plugins/geanyfunctions.h | 2 ++ src/plugindata.h | 1 + src/plugins.c | 3 ++- tagmanager/src/tm_workspace.h | 10 +++++----- 4 files changed, 10 insertions(+), 6 deletions(-) commit 52076d19e8fe7ab41ebc92928ef7832c248a51f2 Author: Jiří Techet Date: Fri Oct 10 23:04:45 2014 +0200 Remove unused tm_file_entry.[ch] tagmanager/src/Makefile.am | 2 - tagmanager/src/makefile.win32 | 3 +- tagmanager/src/tm_file_entry.c | 281 ----------------------------------------- tagmanager/src/tm_file_entry.h | 124 ------------------ tagmanager/src/tm_tagmanager.h | 1 - wscript | 1 - 6 files changed, 1 insertion(+), 411 deletions(-) commit 26587454b043971d3f1557a5bace257a51125eba Author: Jiří Techet Date: Fri Oct 10 16:18:06 2014 +0200 Remove TmWorkObject and all the OO related stuff In addition, rename all functions, parameters, comments etc. mentioning work_object and remove unnecessary parameters of various functions. Delete dead code paths. Also move common functions like tm_get_real_path() from tm_work_object to tm_source_file. doc/Doxyfile.in | 2 - doc/Makefile.am | 1 - plugins/geanyfunctions.h | 12 +- src/dialogs.c | 2 +- src/document.c | 16 +-- src/document.h | 4 +- src/editor.c | 2 +- src/main.c | 2 +- src/plugindata.h | 11 +- src/plugins.c | 6 +- src/symbols.c | 41 +++--- tagmanager/src/Makefile.am | 3 - tagmanager/src/makefile.win32 | 2 +- tagmanager/src/tm_file_entry.c | 3 +- tagmanager/src/tm_source_file.c | 195 ++++++++++++++++++-------- tagmanager/src/tm_source_file.h | 61 ++++---- tagmanager/src/tm_tag.c | 5 +- tagmanager/src/tm_tagmanager.h | 1 - tagmanager/src/tm_work_object.c | 298 ---------------------------------------- tagmanager/src/tm_work_object.h | 191 ------------------------- tagmanager/src/tm_workspace.c | 157 +++++++-------------- tagmanager/src/tm_workspace.h | 60 +++----- wscript | 3 +- 23 files changed, 287 insertions(+), 791 deletions(-) commit 94a7762f9136b7a0a31a6547f4b15d2925546e77 Author: Frank Lanitz Date: Sat Oct 18 19:52:38 2014 +0200 Small update of German translation po/de.po | 88 +++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 46 insertions(+), 42 deletions(-) commit d42837f021105c1060f7b31ff527478fca2acb70 Merge: 5a243fd22 6242d1947 Author: Colomban Wendling Date: Sat Oct 18 18:13:45 2014 +0200 Merge pull request #351 from techee/guards Protect private definitions by the GEANY_PRIVATE macro in headers commit 5a243fd2241059da111f5078bade141d0b0711bc Author: Enrico Tröger Date: Wed Oct 15 17:33:57 2014 +0200 Explicitly define Windows version for older Mingw environments wscript | 3 +++ 1 file changed, 3 insertions(+) commit 608ab0f60c4475da960686841a6dee761998fefe Author: Colomban Wendling Date: Tue Oct 14 23:18:38 2014 +0200 Document the fact utils_spawn_sync() accepts NULL for all output arguments src/utils.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit c38f59bbc422e2e39eeb1e5bdae2258214a0e86a Author: Colomban Wendling Date: Mon Oct 13 23:53:00 2014 +0200 autotools: Only uninstall what we actually installed Only manually uninstall the files we manually installed, as uninstall-local might be run in parallel to Automake's own uninstall targets. We don't uninstall the directories as some docs seems to suggest `rmdir` isn't really portable. Anyway, Automake don't uninstall directories either so it's not a real problem. An alternative solution would be to keep the recursive removal of `$(DOCDIR)` but move it to `uninstall-hook`, which is guaranteed to be run after other uninstall rules. However, recursive deletion is not always sensible as it might remove files we didn't install, e.g. if the user added them manually. doc/Makefile.am | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 16716e498d133a627f593007b96d8b5d83e0f1d5 Author: Colomban Wendling Date: Mon Oct 13 23:52:22 2014 +0200 autotools: Remove new Doxygen temporary files doc/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0650e707f14096ca224790da97d1cde0c483c78f Author: Colomban Wendling Date: Mon Oct 13 23:50:50 2014 +0200 autotools: Properly clean up hacking.html We don't distribute it, so we need to clean it. doc/Makefile.am | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 75af73875f9b03eaca657991bebdd5be63415968 Author: elextr Date: Mon Oct 13 12:41:05 2014 +1100 Add note about -D_FILE_OFFSET_BITS=64 README.Packagers | 3 +++ 1 file changed, 3 insertions(+) commit 6242d1947195b322573bf6c8246d9b7561a271c2 Author: Jiří Techet Date: Sun Oct 12 23:49:52 2014 +0200 Add all headers to libtagmanager_a_SOURCES in tag manager makefile So they become part of tarball. tagmanager/src/Makefile.am | 7 +++++++ 1 file changed, 7 insertions(+) commit dbcf67d449542007b0a8e8ffe276c8bf7f3a11a0 Author: Jiří Techet Date: Sun Oct 12 23:37:00 2014 +0200 Define the GEANY_PRIVATE macro for tag manager in makefile.win32 tagmanager/src/makefile.win32 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6d6dd7444b57b41cf657f61f6c514afead12e598 Author: Jiří Techet Date: Sun Oct 12 23:33:51 2014 +0200 Fix doxygen warnings Make documents_array public and accessible by doxygen and describe all parameters of tm_source_file_new(). src/document.h | 3 +-- tagmanager/src/tm_source_file.h | 7 ++++++- 2 files changed, 7 insertions(+), 3 deletions(-) commit f5230f334e28248c91fa6f58f3557f0b40f40233 Author: Colomban Wendling Date: Sun Oct 12 17:58:26 2014 +0200 Fix moving editor tabs through keybindings src/keybindings.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit 9caa0046bd9956cdc36a36dd3e6b63a747e1f3ea Author: Enrico Tröger Date: Sun Oct 12 16:40:12 2014 +0200 Prepare Windows installer for embedded GTK 2.24 geany.nsi | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 3966ba8c4b2656c12bed7a5bf96a39eadc49d5a7 Author: Enrico Tröger Date: Sun Oct 12 16:35:46 2014 +0200 Query GdkWindow reference only if available On startup, the Geany main window doesn't have a GdkWindow yet (probably because it is not yet mapped). This causes many 'gdkdrawable-win32.c:2013 drawable is not a pixmap or window' warnings when resolving shortcuts on Windows. Since we pass the SLR_NO_UI to the Windows API, we probably don't need the parent hWnd reference at all. src/win32.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 75ab7103f1b8d5e48a07474a09e0542d2a449f04 Merge: 2d59f110d f1da4b991 Author: Colomban Wendling Date: Sun Oct 12 16:02:40 2014 +0200 Merge pull request #353 from b4n/tm-no-update-on-quit Don't rebuild TagManager workspace tags when quitting commit 2d59f110df184516305aa4c98a12a4bf736652d9 Merge: 829850171 ab7a0018b Author: Nick Treleaven Date: Sun Oct 12 13:27:00 2014 +0100 Merge pull request #350 from ntrel/reload-prompt Don't prompt for reload from infobar when there are no unsaved changes commit 82985017179d295121b3fd8e45eee07c85ed1f83 Merge: eb7fd066b 700e0b906 Author: Frank Lanitz Date: Sun Oct 12 10:27:31 2014 +0200 Merge pull request #344 from marcelocamargobr/master Changed wrong translation of identation commit eb7fd066b12aa505614d0f8c51a9c191d17808cc Author: Colomban Wendling Date: Sat Oct 11 14:52:14 2014 +0200 Don't alter GeanyEditor internal state in editor_create_widget() When editor_create_widget() is used on an editor with already existing widget, don't reset the internal indentation settings of that editor. src/editor.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 41c66e0eb06358b9ab07ae5564370331ea452b52 Author: Matthew Brush Date: Fri Oct 10 18:40:54 2014 -0700 Change "replace_and_find_by_default" default to true doc/geany.txt | 2 +- src/keyfile.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit bae420a768975aa1d4818121eec80098d9e0064a Merge: 0362a2281 3df962a37 Author: Matthew Brush Date: Fri Oct 10 18:02:29 2014 -0700 Merge branch 'rpalli/replace1' Closes #189 commit f1da4b99146d261ec2e640bfb64ef5eee548f035 Author: Colomban Wendling Date: Sat Oct 11 01:40:10 2014 +0200 Don't rebuild TagManager workspace tags when quitting Updating the workspace is useless as the application will be shut down, and not doing it can save a lot of time (almost 50% speedup quitting an instance with all Geany source from `src/` open). src/document.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ab7a0018b2518793f26af2fe20a06a8a1886e031 Author: Nick Treleaven Date: Tue Oct 7 14:43:33 2014 +0100 Don't prompt for reload from infobar when there are no unsaved changes Also warn about losing undo history when there are no changes. src/document.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) commit 0362a2281b1d558b42992a82a988f09a9d631425 Author: Nick Treleaven Date: Fri Oct 10 16:41:01 2014 +0100 Define _WIN32_IE for SHGFP_TYPE win32-config.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 3df962a37152d697b1258aae7267c2a8b845f1b9 Author: Roland Pallai Date: Fri Oct 10 00:26:25 2014 +0200 A small styling of the documentation doc/geany.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9b2ccb9965266f1dcda93e3fa17c64389201ad59 Author: Roland Pallai Date: Thu Oct 9 23:57:03 2014 +0200 Turn "replace and find by default" boolean pref into a "various" preference. data/geany.glade | 17 ----------------- doc/geany.txt | 8 +++++--- src/keyfile.c | 2 ++ src/search.c | 5 +---- src/search.h | 2 +- 5 files changed, 9 insertions(+), 25 deletions(-) commit 10a28b4191f1c7343d80b249f707e23147a6d320 Author: Jiří Techet Date: Thu Oct 9 20:51:32 2014 +0200 Protect private definitions by the GEANY_PRIVATE macro in headers In addition, this patch defines the GEANY_PRIVATE macro for the tag manager library where it wasn't defined before, removes 2 tag manager headers from distribution as they are not needed by plugins and in the tag manager changes the docstrings to ordinary comments for private definitions. src/app.h | 5 ++ src/build.h | 89 ++++++++++++++-------------- src/dialogs.h | 29 ++++++---- src/document.h | 93 ++++++++++++++++-------------- src/editor.h | 113 ++++++++++++++++++------------------ src/encodings.h | 105 ++++++++++++++++++---------------- src/filetypes.h | 24 +++++--- src/geany.h | 13 +++-- src/highlighting.h | 15 +++-- src/keybindings.h | 27 +++++---- src/main.h | 17 ++++-- src/msgwindow.h | 30 +++++----- src/navqueue.h | 9 ++- src/prefs.h | 11 ++-- src/project.h | 4 ++ src/sciwrappers.h | 124 +++++++++++++++++++++++----------------- src/search.h | 56 +++++++++--------- src/stash.h | 30 ++++++---- src/symbols.h | 9 ++- src/templates.h | 38 ++++++------ src/toolbar.h | 5 ++ src/ui_utils.h | 105 ++++++++++++++++++---------------- src/utils.h | 97 ++++++++++++++++--------------- tagmanager/src/Makefile.am | 3 +- tagmanager/src/tm_file_entry.h | 42 +++++++------- tagmanager/src/tm_source_file.h | 36 ++++++------ tagmanager/src/tm_tag.h | 63 ++++++++++---------- tagmanager/src/tm_tagmanager.h | 4 +- tagmanager/src/tm_work_object.h | 59 ++++++++++--------- tagmanager/src/tm_workspace.h | 34 ++++++----- wscript | 5 +- 31 files changed, 717 insertions(+), 577 deletions(-) commit 985829afe06a9b07832669a7be4f7a06d96008f6 Author: Roland Pallai Date: Thu Oct 9 02:07:58 2014 +0200 Documentation change for the "Replace&Find by default" behaviour. doc/geany.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2cae5f337b98ab7318c8b2ec3ca7a3165a390ef7 Author: Roland Pallai Date: Thu Oct 9 02:00:30 2014 +0200 Better preferences sentence for the "Replace&Find by default" behaviour. data/geany.glade | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 245ae6696cfd8ec391531cd7057f29772d40726d Author: Nick Treleaven Date: Tue Oct 7 15:30:19 2014 +0100 Require WINVER=WindowsXP for SHGetFolderPathAndSubDirW win32-config.h | 2 ++ 1 file changed, 2 insertions(+) commit c0a8a1a9434a5d2b47e9cabcda19b3f2fceaf023 Author: Nick Treleaven Date: Tue Oct 7 14:50:07 2014 +0100 Fix Windows build tagmanager/src/makefile.win32 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 63266a1254e9cf7fbce30d4588f611437a3a0810 Author: Enrico Tröger Date: Mon Oct 6 17:28:10 2014 +0200 Remove unused variable src/win32.c | 1 - 1 file changed, 1 deletion(-) commit b1b9e6d19a3983de02aebebd49496407ca722a91 Author: Colomban Wendling Date: Mon Oct 6 16:24:26 2014 +0200 Fix configuration directory location on non-Windows 3e089e4c2c914a4b8885daa65e784a227bd2d6b0 accidentally switched from `g_get_user_config_dir()` to `g_get_user_data_dir()` as the location for the user's configuration directory. src/utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e69bbe25fd49d8a31a06bed395bcc9c65efa0563 Merge: fa20ec4ff 541cb8dbc Author: Nick Treleaven Date: Mon Oct 6 12:20:54 2014 +0100 Merge pull request #342 from ntrel/save-disk-check Force disk check before save to prevent accidental overwriting commit fa20ec4ffb89a8f5e9e0a4506565dbd144af2835 Merge: 17375793a 7a8c091af Author: Nick Treleaven Date: Mon Oct 6 12:20:15 2014 +0100 Merge pull request #343 from ntrel/more-project-prefs Add project prefs for line breaking column & multiline comment completion commit 17375793ad84fa18631cefa9792c01ad92d26e92 Merge: 3e089e4c2 ce46f8f0b Author: Colomban Wendling Date: Sun Oct 5 23:50:08 2014 +0200 Merge pull request #347 from techee/master Remove unused tag manager files commit ce46f8f0b4f67cc76971ae2d4b0e8afc578fbba5 Author: Jiří Techet Date: Sun Oct 5 22:28:54 2014 +0200 Remove unused tm_tagmanager.c tagmanager/src/Makefile.am | 1 - tagmanager/src/tm_tagmanager.c | 11 ----------- wscript | 1 - 3 files changed, 13 deletions(-) commit 464632387837ef0ebe237b79fbf7debef25a2860 Author: Jiří Techet Date: Sun Oct 5 19:26:37 2014 +0200 Remove unused tm_symbol tagmanager/src/Makefile.am | 2 - tagmanager/src/tm_symbol.c | 319 ----------------------------------------- tagmanager/src/tm_symbol.h | 80 ----------- tagmanager/src/tm_tagmanager.h | 1 - wscript | 3 +- 5 files changed, 1 insertion(+), 404 deletions(-) commit b512aa0368b3431852e11a9ba93f5b9fdb5353f8 Author: Jiří Techet Date: Sun Oct 5 19:19:35 2014 +0200 Remove unused tm_project and all its references in docstrings tagmanager/src/Makefile.am | 2 - tagmanager/src/tm_project.c | 568 ---------------------------------------- tagmanager/src/tm_project.h | 207 --------------- tagmanager/src/tm_source_file.c | 2 +- tagmanager/src/tm_source_file.h | 4 +- tagmanager/src/tm_tagmanager.h | 3 +- tagmanager/src/tm_work_object.c | 2 +- tagmanager/src/tm_work_object.h | 12 +- tagmanager/src/tm_workspace.c | 10 +- tagmanager/src/tm_workspace.h | 15 +- wscript | 3 +- 11 files changed, 22 insertions(+), 806 deletions(-) commit 3e089e4c2c914a4b8885daa65e784a227bd2d6b0 Author: Enrico Tröger Date: Sun Oct 5 12:55:33 2014 +0200 Reading the config directory from the Windows API instead of GLib Before we used g_get_user_config_dir() but GLib changed the returned location in newer versions, so use the Windows API directly to get the old location, at least for now. Also add utils_get_user_config_dir() wrapper. Code is based almost completely on a patch from Matthew. src/main.c | 2 +- src/utils.c | 10 ++++++++++ src/utils.h | 2 ++ src/win32.c | 27 +++++++++++++++++++++++++++ src/win32.h | 2 ++ 5 files changed, 42 insertions(+), 1 deletion(-) commit 700e0b906fc84bcb3149c84c660da82e46032243 Author: Marcelo Camargo Date: Sat Oct 4 00:13:47 2014 -0300 Updated last translator po/pt_BR.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5e01664777cc4fc3bd7237a8d60d21f2b6c69b12 Author: Marcelo Camargo Date: Fri Oct 3 23:53:03 2014 -0300 Changed wrong translation of identantion In portuguese, there is no "endentação", but "indentação". po/pt_BR.po | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit 7a8c091af09e5cc0ea8ead68007901905f262cc6 Author: Nick Treleaven Date: Fri Oct 3 17:42:23 2014 +0100 Reformat g_signal_connect calls src/project.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit e566aae6b2218eb1d3689340c3d9eebc0b96cbf4 Author: Nick Treleaven Date: Thu Oct 2 17:50:39 2014 +0100 Add project prefs for line breaking column & multiline comments data/geany.glade | 152 +++++++++++++++++++++++++++++++++++++++++++++------ src/editor.c | 19 +++---- src/editor.h | 7 +-- src/project.c | 5 ++ src/projectprivate.h | 14 +++-- 5 files changed, 161 insertions(+), 36 deletions(-) commit f262f5986da5e04a1761daa2ef9212e26d68d99b Merge: 5df59cefc 6d2d2ffee Author: Matthew Brush Date: Thu Oct 2 11:48:01 2014 -0700 Merge pull request #341 from philippwiesemann/fix-typo-readme Fix typo in README commit 6d2d2ffee9f128ab9dd47a76dca1474e8b70ead6 Author: Philipp Wiesemann Date: Wed Oct 1 23:41:01 2014 +0200 Fix typo in README README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 541cb8dbccdab127a08e63855cea00f0f5608787 Author: Nick Treleaven Date: Fri Sep 26 12:00:07 2014 +0100 Force disk check before save to prevent accidental overwriting Useful e.g. with Save All when the modified file is not the current tab. src/document.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 5df59cefcb5ce45c13b4f35dc52bfa8680abbe22 Author: Colomban Wendling Date: Tue Sep 30 16:31:44 2014 +0200 Fix build with GLib 2.20 Don't use `g_regex_get_compile_flags()` that is new in 2.26, but we only depend on 2.20. Closes #340. src/search.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 52a0c3160673b9a019f9a7d09485dee1d881d4e4 Author: Frank Lanitz Date: Mon Sep 29 23:34:14 2014 +0200 Update of German translation po/de.po | 71 ++++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 38 insertions(+), 33 deletions(-) commit 9eb865dab366ca8de07b7d1ff34cef71d092b513 Merge: 2b98487a7 bbf63d131 Author: Nick Treleaven Date: Mon Sep 29 16:16:50 2014 +0100 Merge pull request #337 from ntrel/project-line-wrap Project line wrapping pref commit bbf63d131a84a099c9e1627ac5ec321985052fb4 Author: Nick Treleaven Date: Thu Sep 25 17:47:05 2014 +0100 Fixups Fix adding stash group and applying defaults. Don't let Properties dialog override per-document line wrapping state. Use "editor" for key group name. Remove code already handled by stash group. src/editor.c | 26 ++++++++++---------------- src/project.c | 29 ++++++++++++++--------------- 2 files changed, 24 insertions(+), 31 deletions(-) commit cb2aebcfd98c8c53a98ffe00f33b7497c9c3f34a Author: Tim Tassonis Date: Thu Sep 25 12:43:34 2014 +0100 Enable per-project line wrapping data/geany.glade | 16 ++++++++++++++++ src/editor.c | 13 +++++++++++++ src/project.c | 10 ++++++++++ src/projectprivate.h | 1 + 4 files changed, 40 insertions(+) commit 2b98487a70953fc268a5fa76c774f1c676adf0d2 Merge: 96806bf63 3ab657909 Author: Nick Treleaven Date: Fri Sep 26 11:45:27 2014 +0100 Merge pull request #335 from ntrel/save-cleanup Notify user when trying to save read-only document commit 3ab65790910c494cf94db67d7e65bd5738aae6f1 Author: Nick Treleaven Date: Wed Sep 24 16:57:16 2014 +0100 Notify user when trying to save read-only document src/document.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 4ceb9fb1f27b7a73631566bf0f3df273fe16f7db Author: Nick Treleaven Date: Wed Sep 24 16:49:33 2014 +0100 Add comment about throwing away read-only for renamed documents src/document.c | 1 + src/documentprivate.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) commit 96806bf639d08038c1406854c7e031bdc18b3313 Merge: 187dca295 d7aa4b591 Author: Colomban Wendling Date: Fri Sep 26 00:31:03 2014 +0200 Merge branch 'scintilla-update-351-pre' commit d7aa4b591622a09e0c7c1c16a548ba99f05f01ab Author: Colomban Wendling Date: Fri Sep 26 00:20:18 2014 +0200 Update for new Scintilla styles data/filetypes.sql | 1 + data/filetypes.vhdl | 1 + src/highlightingmappings.h | 4 +++- 3 files changed, 5 insertions(+), 1 deletion(-) commit 1e59b15c618720bad5036c39b203a41114d41002 Author: Colomban Wendling Date: Fri Sep 26 00:09:04 2014 +0200 Update Scintilla to 3.5.1 pre-release scintilla/gtk/PlatGTK.cxx | 29 ++++++--- scintilla/gtk/ScintillaGTK.cxx | 2 +- scintilla/include/SciLexer.h | 10 +++ scintilla/include/Scintilla.h | 5 ++ scintilla/include/Scintilla.iface | 23 +++++++ scintilla/lexers/LexSQL.cxx | 32 +++++++++- scintilla/lexers/LexVHDL.cxx | 124 +++++++++++++++++++++++++++++++------- scintilla/scintilla_changes.patch | 3 +- scintilla/src/Document.cxx | 14 +++-- scintilla/src/EditModel.cxx | 1 + scintilla/src/EditModel.h | 2 + scintilla/src/EditView.cxx | 13 ++-- scintilla/src/EditView.h | 4 +- scintilla/src/Editor.cxx | 17 +++--- scintilla/src/Editor.h | 1 - scintilla/src/Indicator.h | 7 ++- scintilla/src/RESearch.cxx | 3 +- scintilla/src/ViewStyle.cxx | 12 +--- scintilla/version.txt | 2 +- 19 files changed, 229 insertions(+), 75 deletions(-) commit 187dca29573f9247dab607738274341b08e105a1 Author: Colomban Wendling Date: Tue Sep 23 14:37:01 2014 +0200 Use named constants everywhere for msgwin/compiler internal columns src/msgwindow.c | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) commit 88a36268efd91b91f188024019c01ed68896667d Merge: ed0fa4538 9d669a72f Author: Nick Treleaven Date: Thu Sep 25 11:53:16 2014 +0100 Merge pull request #334 from ntrel/confirm-infobar-reload Confirm infobar reload when document has modifications commit 9d669a72f74b9433b9ad8f40f1a1424c77f3172d Author: Nick Treleaven Date: Wed Sep 24 17:22:01 2014 +0100 API: Rename document_reload_file -> document_reload_force New name is clearer against document_reload_prompt. Add deprecated alias. plugins/geanyfunctions.h | 4 ++-- src/document.c | 4 ++-- src/document.h | 2 +- src/plugindata.h | 6 ++++-- src/plugins.c | 2 +- 5 files changed, 10 insertions(+), 8 deletions(-) commit ed0fa4538f3b3b296e38203591a07d7c33b4c6cb Author: Frank Lanitz Date: Wed Sep 24 20:09:15 2014 +0200 Update of German translation po/de.po | 381 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 194 insertions(+), 187 deletions(-) commit b646424ddb715382a937d233a75bc684c22e18ec Author: Nick Treleaven Date: Wed Sep 24 12:06:33 2014 +0100 Only close reload infobar if the response succeeded src/document.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) commit 3830240cb8a7b0a7699125b1870d5169b2dcdf70 Author: Nick Treleaven Date: Tue Sep 23 15:38:02 2014 +0100 Confirm info-bar reload when document has modifications src/document.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 09411956ada70783dac30de1f29d36613d8caf65 Merge: ae45e8344 0a80a72f0 Author: Nick Treleaven Date: Wed Sep 24 12:20:03 2014 +0100 Merge pull request #326 from ntrel/reload-modified Don't set document text as changed when file on disk is newer commit 0a80a72f0bbf2ca883c50cccc8540910a9c9969d Author: Nick Treleaven Date: Wed Sep 3 15:22:10 2014 +0100 Set status id to STATUS_DISK_CHANGED when protecting document src/document.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 9a02525d1c27bd3a5256162940916ccebb5e619a Author: Nick Treleaven Date: Wed Aug 27 16:32:25 2014 +0100 Don't set document text as changed when file on disk is newer Setting the document text as changed makes it too easy to accidentally overwrite the file - e.g. when closing you're reminded to save it. It also makes it slower to close documents you no longer want open. Setting text as changed is still done if the user cancels the warning. src/document.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit ae45e8344f20968cc2f1655a63471ca447dd16ab Merge: 22ab1631d 06e40e512 Author: Nick Treleaven Date: Tue Sep 23 15:24:48 2014 +0100 Merge pull request #328 from ntrel/infobar-save Confirm whether to save protected documents instead of ignoring save commit 06e40e512fd4d88aeed8401e6e433ea24bc31e18 Author: Nick Treleaven Date: Wed Sep 3 17:43:17 2014 +0100 Confirm whether to save protected documents (Reuses existing strings). src/document.c | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) commit 7450a992b51f239ce2a3c10d375ebe9dcec2301e Author: Nick Treleaven Date: Thu Sep 4 11:53:32 2014 +0100 Use 'Overwrite' rather than Save for clarity in reload infobar src/document.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a6d11cb4f848ea6a9bb3d0fdf367e30fdb4694f1 Author: Thomas Martitz Date: Mon Jun 9 12:31:35 2014 +0200 Use custom document info bar response IDs src/document.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) commit 22ab1631debcd64b761dfc436c30fc027e6954dc Merge: 34f7ce9cc 084370560 Author: Colomban Wendling Date: Mon Sep 22 19:38:46 2014 +0200 Merge branch 'scintilla/autoc-sizing' Backport changes applied upstream not to hard-code auto-completion popup frame border size. commit 34f7ce9cc993b9aec41c36fa04fa196cc4f7b402 Merge: 634a4b111 20c31b62f Author: Colomban Wendling Date: Mon Sep 22 19:38:41 2014 +0200 Merge branch 'about-banner-fix' commit 084370560896ad50a3030136cc7739eaf189a26f Author: Colomban Wendling Date: Tue Sep 16 23:06:36 2014 +0200 GTK: Don't hardcode auto-completion popup frame border width scintilla/gtk/PlatGTK.cxx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 20c31b62ff0289ba51954e10f315c8bd96eb9ce3 Author: Colomban Wendling Date: Mon Sep 22 19:25:03 2014 +0200 Fix custom about dialog style overriding Don't assume changing the style inside a style-set handler results in recursion, as it would be wrong if the next signal emission was triggered asynchronously. Instead, only modify the style if it isn't already as we want it. This fixes the about dialog's style-set handlers on GTK 3.10 which didn't liked constant style updating. src/about.c | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) commit 76d6e9faa900773bcc45e0f947b532c9a5233af0 Author: Colomban Wendling Date: Mon Sep 22 18:19:20 2014 +0200 Revert "Fix GTK frame clock warnings with our about dialog" This reverts commit ec7071062c5dc39d5f893a830b3c26968a579251. Apparently the selected state of an event box doesn't necessary mean it will be styled with a selection background color. This e.g. isn't the case in GTK 3.14's Adwaita (default) theme. So, revert the commit that removed custom style overrides. Next commit will fix the GTK 3.10 problem this reverted commit fixed. src/about.c | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) commit 634a4b111fd14eec9045653bb328c018285aa6ec Author: Matthew Brush Date: Wed Sep 17 16:45:32 2014 -0700 Highlight C types from tags in C++ code Useful for when using, for example, GTK+, SDL, and other C-only APIs in files with the C++ filetype. Before only the symbol auto-completion worked, but not the highlighting of type names. TODO: figure out why taking something like SDL.c.tags and making a copy as SDL.cpp.tags doesn't work, once that's fixed, this extra condition could probably be removed. src/symbols.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 87592539b4bbbeb2e4117f075c604369ea79a546 Author: Frank Lanitz Date: Wed Sep 17 20:20:20 2014 +0200 Update of Polish translation po/pl.po | 2958 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 1495 insertions(+), 1463 deletions(-) commit e42cd4d6e920daea6c48512a8d69cc0cc3fc1232 Merge: e84cf128c 069e2d4ec Author: Colomban Wendling Date: Mon Sep 15 16:03:43 2014 +0200 Merge branch 'scintilla/autoc-sizing' Backport changes applied upstream to fix auto-completion popup sizing. commit e84cf128cbf85ffba4fb2176b5ae7057838fe720 Merge: 93c9e2ce8 df5b2fd81 Author: Colomban Wendling Date: Mon Sep 15 16:03:13 2014 +0200 Merge branch 'scintilla/gtk3-dead-windows' Backport patches applied upstream to cache auto-completion windows, hopefully avoiding dead popup windows lying around on GTK3 builds in some high stress scenarios. commit 069e2d4ec56f84436682cddfe06e6b4ca9d0576c Author: Colomban Wendling Date: Fri Sep 12 18:09:18 2014 +0200 GTK: Fix auto-completion popup sizing on some themes scintilla/gtk/PlatGTK.cxx | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 4d66bd3745eb3759539b116e7784d11d035ebd44 Author: Colomban Wendling Date: Fri Sep 12 17:08:34 2014 +0200 GTK: Allow the auto-completion popup to be as small as needed scintilla/gtk/PlatGTK.cxx | 45 ++++++++++++++++++++++++++++++++------------- 1 file changed, 32 insertions(+), 13 deletions(-) commit d1e519c11dec18e6738b80b3c76f16935f82f3ad Author: Colomban Wendling Date: Thu Sep 11 14:37:20 2014 +0200 GTK: Fix auto-completion popup width to better fit contents scintilla/gtk/PlatGTK.cxx | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) commit 61eaf23a266d3fa0d00e3d148b1d128906b46fac Author: Colomban Wendling Date: Thu Sep 11 14:37:12 2014 +0200 GTK: Fix auto-completion popup height to better fit contents scintilla/gtk/PlatGTK.cxx | 52 +++++++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 22 deletions(-) commit 93c9e2ce860d09e74b642ef50a6961d91f3177e5 Merge: d6d836c59 683c380d1 Author: Frank Lanitz Date: Fri Sep 12 19:34:11 2014 +0200 Merge pull request #331 from scriptum/rpg-translate-ru Update of Russian translation commit 683c380d10d828e10c7be98d793ddc9425be32ea Author: Pavel Roschin Date: Fri Sep 12 19:14:38 2014 +0400 Update of Russian translation po/ru.po | 2923 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 1491 insertions(+), 1432 deletions(-) commit d6d836c59fc522fcbb96fab7917311c2c6613ea7 Author: Enrico Tröger Date: Thu Sep 11 19:16:24 2014 +0200 Don't match regexes on empty strings Save As on an empty document would cause warnings like: sys:1: Warning: g_regex_match_full: assertion 'string != NULL' failed because SCI_GETRANGEPOINTER returns NULL then. On a Ubuntu 12.04 system this warning even crashed Geany at writing the log message. So, simply don't search for anything if the document is empty. src/search.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 7d38ff67ecf18f9f331ed1fad849878a6089097d Merge: d6a9a44ef df5b2fd81 Author: Colomban Wendling Date: Wed Sep 10 23:23:01 2014 +0200 Merge branch 'scintilla/gtk3-dead-windows' Backport patches applied upstream to cache auto-completion windows, hopefully avoiding dead popup windows lying around on GTK3 builds in some high stress scenarios. commit df5b2fd81065650259a87b8eb901343d36676e59 Author: Colomban Wendling Date: Thu Sep 4 00:04:54 2014 +0200 GTK: fix cached completion popup window sizing Only cache the popup window itself and not its content, as it seems the window sizing is affected whether the content was just created or not. scintilla/gtk/PlatGTK.cxx | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) commit e6f8547e3e0d9ad42e7abdd360e4f3b2aac7b534 Author: Colomban Wendling Date: Mon Sep 1 20:03:13 2014 +0200 GTK: cache the completion popup window This avoids creating and destroying windows quickly under stress, which may lead to XID collisions. See e.g. https://bugzilla.gnome.org/show_bug.cgi?id=581526 and https://bugzilla.gnome.org/show_bug.cgi?id=590690 Closes [scintilla:bugs:1649]. scintilla/gtk/PlatGTK.cxx | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) commit d6a9a44efebacf4eaf9dc4ce5f866402dd7c22ec Author: Frank Lanitz Date: Sun Sep 7 19:13:16 2014 +0200 Update of German translation po/de.po | 2909 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 1482 insertions(+), 1427 deletions(-) commit 22700ab332ac459f4bd4609b0243360881095d5c Author: Frank Lanitz Date: Sun Sep 7 18:55:07 2014 +0200 Update of Swedish translation po/sv.po | 128 +++++++++++++++++++++------------------------------------------ 1 file changed, 42 insertions(+), 86 deletions(-) commit a733bf9b2a7e04156a60f43ed2c41b4090b63762 Merge: d2ce3d6fa 7047152a1 Author: Nick Treleaven Date: Mon Sep 1 17:01:41 2014 +0100 Merge pull request #327 from ntrel/open-file-exists Allow user to edit open dialog filename when file doesn't exist commit d2ce3d6fa11223a636483b517a545d8d55975ea2 Merge: 666fdf30f 0453991a6 Author: Colomban Wendling Date: Fri Aug 29 17:07:08 2014 +0200 Merge branch 'doc/untrack-geany.html' commit 666fdf30fa776566dbbaccaaf7aec67427b2e322 Author: Colomban Wendling Date: Fri Aug 29 15:30:24 2014 +0200 Document document_find_by_id() parameter so Doxygen is happy src/document.c | 1 + 1 file changed, 1 insertion(+) commit 6e755985a8e8847fed176dea21976dc2eefbed3e Author: Colomban Wendling Date: Fri Aug 29 15:22:49 2014 +0200 Update Doxyfile doc/Doxyfile.in | 2382 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 1479 insertions(+), 903 deletions(-) commit 0453991a61c57550555327707c3ecdefcf4de009 Author: Colomban Wendling Date: Fri Aug 29 16:58:26 2014 +0200 Don't try to install the HTML documentation if we don't have it doc/Makefile.am | 5 +++++ m4/geany-docutils.m4 | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) commit 7125075168198f00f66001cbeaeb3d2318c0abf7 Author: Colomban Wendling Date: Fri Aug 29 16:48:01 2014 +0200 Fix HTML documentation installation for VPATH builds doc/Makefile.am | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit f219ea1b38d06c15e8e53a705c1aa09f04bf97fb Author: Enrico Tröger Date: Fri Aug 29 16:12:40 2014 +0200 Cleanup apidoc and hackingdoc commands to use ctx.top_dir and ctx.out_dir This should be cleaner and safer than using '../' mixed with os.chdir(). wscript | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 5bd878cb7cab25beed42166e42fe67690207e9fe Author: Enrico Tröger Date: Fri Aug 29 15:46:44 2014 +0200 Reuse ConfigurationContext when searching for programs if we have one This enables proper logging when checking for rst2html during configuration. wscript | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 9307a6877c75169118672e453c55b54fd9a6ab3b Author: Enrico Tröger Date: Fri Aug 29 15:40:47 2014 +0200 Explicitly specify extensions when searching for rst2html This is cleaner than searching for rst2html and rst2html.py since Waf offers the API for this and this change enables Windows support. While at it, add binary name 'rst2html2' for ArchLinux support. wscript | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6ecf750759b0611542586818b27a0638f23fb97f Author: Enrico Tröger Date: Fri Aug 29 14:39:26 2014 +0200 The missing bits for HTML docs: only on GIT build and support in-tree geany.html wscript | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 8961f0b6e96de3591aa30b3886572147c4321c2f Author: Enrico Tröger Date: Fri Aug 29 14:27:12 2014 +0200 Add option --disable-html-docs wscript | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 985cd9146ffae3ab6022c5127946f6f594378a2e Author: Enrico Tröger Date: Fri Aug 29 14:13:57 2014 +0200 Add "hackingdoc" as proper action and remove non-working --hackingdoc option wscript | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit 15c2fafff6b76cb6d7e2032840832bae14a5aa7b Author: Enrico Tröger Date: Fri Aug 29 14:11:14 2014 +0200 Update Waf to 1.7.16 waf | Bin 90923 -> 91846 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit 8d5e666d9eab5518f300b45a71295027b2e9047a Author: Enrico Tröger Date: Fri Aug 29 14:10:56 2014 +0200 Build HTML documentation automatically during the build process This is an improvement as requested in #322 to update the HTML docs after geany.txt or geany.css have changed. Also, with this change the resulting HTML will be generated in the outdir, not in srcdir/doc anymore. wscript | 43 +++++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 20 deletions(-) commit 7047152a1f3ee79cd4e08dd77d1fe9039acc9834 Author: Nick Treleaven Date: Fri Aug 29 12:18:53 2014 +0100 Allow user to edit open dialog filename when file doesn't exist src/dialogs.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) commit 82cd83183c93f912c5610d58249a6a2f4afef70b Merge: 102169ee3 ee79b2eb3 Author: Colomban Wendling Date: Wed Aug 27 19:07:22 2014 +0200 Merge branch 'doc/auto-enable-api' Closes PR#324. commit 102169ee3200176178bfd2290ae5db45b545df4f Merge: 2f6815841 64910a4ea Author: Colomban Wendling Date: Wed Aug 27 19:06:22 2014 +0200 Merge branch 'doc/untrack-geany.html' Closes PR#322. commit 64910a4ea1f3f902ffa08dfdf6422c8e69ad98fd Author: Colomban Wendling Date: Wed Aug 27 19:02:24 2014 +0200 Fix Waf build after HTML documentation untracking wscript | 5 +++++ 1 file changed, 5 insertions(+) commit 2f6815841de2d0abea7fdb0629802a0dad54af14 Merge: d62fd48b4 18181c2e9 Author: Nick Treleaven Date: Wed Aug 27 16:19:33 2014 +0100 Merge pull request #256 from ntrel/doc-id Support pseudo-unique IDs for documents commit d62fd48b44c5d404440e34143a74991b972ca427 Merge: 132b93c59 355f0c804 Author: Nick Treleaven Date: Wed Aug 27 16:17:03 2014 +0100 Merge pull request #315 from ntrel/move-session Properly handle existing session when creating new project commit 355f0c804ebab24e03339aa6498bd7f0d79a7883 Author: Nick Treleaven Date: Fri Aug 22 12:00:33 2014 +0100 Fix GLib warning 'app->project == NULL failed' Occurred on Project->New with an existing project when closing an unsaved file was cancelled. src/project.c | 10 +++++----- src/project.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) commit 5964d2e086d60005fd677e9c107729a78ecd37bf Author: Nick Treleaven Date: Thu Aug 21 17:15:21 2014 +0100 Properly close abandoned new project that couldn't be written Also rewrite the default session in case it was cleared. src/project.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) commit 132b93c591f79907f16360e133a43886f7bba1c2 Author: Frank Lanitz Date: Mon Aug 25 13:31:12 2014 +0200 SQL: Adding print to list of keywords e.g. used to 'print' debug output to log on e.g. Sybase ASA data/filetypes.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ee79b2eb3f8f79112eca28c4974b355bdbef230e Author: Colomban Wendling Date: Sat Aug 23 18:33:50 2014 +0200 Enable API documentation generation automatically when possible m4/geany-doxygen.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 32bda2e6cb1d6c0ecafebd70c12f3e09d1aae269 Author: Colomban Wendling Date: Sat Aug 23 18:22:52 2014 +0200 Don't clean HTML manual if we didn't build it Clean the HTML manual upon 'maintainer-clean' rather than 'clean' in case it was not built by Make but rather part of the distribution. This is fine even then, as configure will properly require what is needed to build it again if it is missing. doc/Makefile.am | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 74006b069c1525af2d52cc8d488d8cbe03dd43a1 Author: Colomban Wendling Date: Sat Aug 23 18:14:56 2014 +0200 Cleanup doc Makefile so that each conditional set all its targets Don't set clean-local and all-local dependencies all together at the end and rather let each section add the appropriate dependencies. This makes each conditional more self-contained, and is safe as Make allows adding extra dependencies to existing targets. doc/Makefile.am | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) commit 288b4f29d8a62a5cc2baa6f0ddefa6a3fe201ade Author: Colomban Wendling Date: Sat Aug 23 17:56:14 2014 +0200 Enable HTML manual building by default but for distribution tarballs Enable building of the HTML manual by default unless not building from Git and with an existing local copy (which is included in distribution tarballs). This makes sure we can install the HTML manual without having it checked in VCS, yet not require rst2html for tarball builds. m4/geany-docutils.m4 | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit c990cd9dca40ac67a7404ed2ba36b3c6e134e13b Author: Nick Treleaven Date: Thu Aug 14 12:25:14 2014 +0100 Properly handle existing session when creating new project Ask whether to adopt the existing session documents. Also fixes the existing bug of not reloading the default session when an existing project is open and a new project is cancelled. src/keyfile.c | 56 ++++++++++++++++++++++++++++++++++++++------------------ src/keyfile.h | 2 ++ src/project.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 3 files changed, 91 insertions(+), 23 deletions(-) commit 602ae0b324397d25a587af35738e5f034526a1e2 Author: Colomban Wendling Date: Wed Aug 20 16:40:25 2014 +0200 Properly remove generated HTML documentation on clean doc/Makefile.am | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit a4dfc9c12b7a6880ebf5922614823565dc7cfb4a Author: Colomban Wendling Date: Wed Aug 20 15:52:03 2014 +0200 Enable documentation generation automatically when possible m4/geany-docutils.m4 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 80c648e7f3731a36ef7213be7e4a42cfb4d470ab Author: Colomban Wendling Date: Wed Aug 20 15:44:07 2014 +0200 Remove generated HTML documentation from version control As it is generated by the build system it doesn't have to be checked in, and having it in became a whole lot more annoying since it started being generated automatically on `make all` instead of specific (and weird) `make doc`, as it means whenever the documentation changes the HTML is re-generated on any make run. This is particularly problematic if using a different Docutils version than the one used to generate the checked-in version as it would create local noise that should not be committed, yet keep being annoying. This situation probably leads to most people disabling (or at least, not enabling) the documentation generation on normal builds, itself leading to more hassle updating of the documentation. .gitignore | 1 + doc/geany.html | 6970 -------------------------------------------------------- 2 files changed, 1 insertion(+), 6970 deletions(-) commit 1424b608a34995e7583fc524e482b3dcd8f1c00a Merge: d78c8fb5d 92e34baa4 Author: Colomban Wendling Date: Tue Aug 19 17:06:06 2014 +0200 Merge branch 'ntrel/make-win-doc' commit 72897bac7d5475170eeefab82060c1ffffe3cc0f Author: Colomban Wendling Date: Tue Aug 19 16:44:40 2014 +0200 Add a Txt2tags test case for titles This is simply extracted from the rules.t2t test, but with unique title content as the tagmanager removes duplicate tags in tags files. tests/ctags/Makefile.am | 1 + tests/ctags/titles.t2t | 40 ++++++++++++++++++++++++++++++++++++++++ tests/ctags/titles.t2t.tags | 17 +++++++++++++++++ 3 files changed, 58 insertions(+) commit 18181c2e9043add8b13c1fc94c66db2ca5b885be Author: Nick Treleaven Date: Fri May 2 15:33:44 2014 +0100 Support pseudo-unique IDs for documents Add GeanyDocument::id, document_find_by_id() to plugin API. This also fixes clicking on a Messages item whose document has been closed and reused. Now the click will be ignored instead of jumping to an unexpected line in the new document. plugins/geanyfunctions.h | 2 ++ src/document.c | 45 ++++++++++++++++++++++++++++++++++++++++++--- src/document.h | 6 ++++++ src/msgwindow.c | 31 +++++++++++++++++++++---------- src/plugindata.h | 3 ++- src/plugins.c | 3 ++- 6 files changed, 75 insertions(+), 15 deletions(-) commit ff0fde30cbad0bf7597783c827235c29489c020c Author: Nick Treleaven Date: Wed Apr 30 16:11:48 2014 +0100 Use enum for Messages list store IDs src/msgwindow.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) commit a1466f656fd260739f48e2d0e162ac7805ffb4ac Author: Colomban Wendling Date: Tue Aug 19 16:34:21 2014 +0200 Add a Txt2tags test case From the official docs: https://txt2tags.googlecode.com/svn/trunk/samples/sample.t2t tests/ctags/Makefile.am | 1 + tests/ctags/sample.t2t | 225 ++++++++++++++++++++++++++++++++++++++++++++ tests/ctags/sample.t2t.tags | 14 +++ 3 files changed, 240 insertions(+) commit e587038dea5215cb2db1b6c61ed0a287e5ed1fd1 Author: Colomban Wendling Date: Tue Aug 19 16:24:48 2014 +0200 Add a Txt2tags test case From the official docs: https://txt2tags.googlecode.com/svn/trunk/doc/English/rules.t2t tests/ctags/Makefile.am | 1 + tests/ctags/rules.t2t | 782 +++++++++++++++++++++++++++++++++++++++++++++ tests/ctags/rules.t2t.tags | 22 ++ 3 files changed, 805 insertions(+) commit 92e34baa4f02b0fda3c878434e4fac88e39835fb Author: Nick Treleaven Date: Tue Aug 19 15:14:03 2014 +0100 Update HACKING for changed doc generation instructions HACKING | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit b7b34ec451c70927520f57ed773bd1b0736af2c0 Author: Colomban Wendling Date: Tue Aug 19 16:11:23 2014 +0200 Rewrite the Txt2tags parser for better conformance and features This fixes parsing indented titles and titles with embedded delimiter characters, and adds support for title nesting information. Syntax: http://txt2tags.org/rules.html Closes [feature-requests:#690]. src/symbols.c | 1 + tagmanager/ctags/txt2tags.c | 176 ++++++++++++++++++++++++++++++-------------- 2 files changed, 121 insertions(+), 56 deletions(-) commit d78c8fb5d91da58bf5ee8bde918d8db7d65dc89c Author: Frank Lanitz Date: Tue Aug 19 14:32:29 2014 +0200 SQL: Adding keyword hold Adding new keyword hold, used e.g. on SQLAnywhere to open a cursor 'with hold' data/filetypes.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9e18884390157de3e557a7210e8159fef40620f5 Merge: 0817dddc8 a8e8e2cd9 Author: Colomban Wendling Date: Tue Aug 19 14:06:11 2014 +0200 Merge branch 'master' of github.com:geany/geany commit 0817dddc855a062521e64172810b3ede913eb004 Author: Colomban Wendling Date: Tue Aug 19 13:44:52 2014 +0200 FreeBasic: Add missing `endif` keyword From a patch by TJF. Part of [feature-requests:#691]. data/filetypes.freebasic | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a8e8e2cd9e34d91fb769101cdcda8f696ce067ae Merge: dc140165a ed20a4373 Author: elextr Date: Tue Aug 19 18:05:38 2014 +1000 Merge pull request #312 from elextr/reflow_fix Make reflow paragraph leave cursor at end of reflowed text, which is more likely to be useful than where it was left at the start of the last line. commit dc140165ae1022d518984a1e7a3bc7862e528cc4 Author: Colomban Wendling Date: Tue Aug 19 03:42:58 2014 +0200 Use GeanyFindFlags instead of plain integer when expecting Geany find flags This makes the API more obvious on what argument is expected, and avoid confusion between Geany and Scintilla find flags. src/callbacks.c | 2 +- src/document.c | 10 +++++----- src/document.h | 8 ++++---- src/search.c | 28 ++++++++++++++-------------- src/search.h | 45 +++++++++++++++++++++++---------------------- 5 files changed, 47 insertions(+), 46 deletions(-) commit bdc0f720e7509ca3fcd65b0c3dab051f1efc9a53 Author: Colomban Wendling Date: Tue Aug 19 03:40:52 2014 +0200 Remove unused flags from document_search_bar_find() Passed-in flags was always 0, so the argument is not useful. Also, this function expected Scintilla search flags rather than Geany ones, making the API confusing for no good reason. src/callbacks.c | 4 ++-- src/document.c | 6 +++--- src/document.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) commit 8812e39e2e937d1e7cfee1526af23e6ba3a45938 Author: Colomban Wendling Date: Tue Aug 19 03:31:34 2014 +0200 Fix searching backwards from the Find dialog search_find_prev() wasn't properly updated to work on GeanyFindFlags leading to incorrect flags handling. src/search.c | 24 ++++++++++++------------ src/symbols.c | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) commit 0a063c1a7268117dbe59308967d4fc2ec058d993 Author: asmblur Date: Mon Aug 18 19:06:27 2014 -0500 Fix regexp search & replace. src/search.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1d08d3cc806969c0da1f8678224a86f819629fa6 Merge: cf6724240 bb25ba6ed Author: Colomban Wendling Date: Tue Aug 19 00:29:03 2014 +0200 Merge branch 'freebasic-ft-update' commit bb25ba6ed2aca71ac63e2398bb5b5dc8fb4004a8 Author: Colomban Wendling Date: Tue Aug 19 00:10:40 2014 +0200 FreeBasic: Update keywords Patch from TJF. Part of [feature-requests:#691] data/filetypes.freebasic | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8278d7f9f0c3adc1c69eddd880eb28a600a862cd Author: Colomban Wendling Date: Mon Aug 18 23:57:49 2014 +0200 FreeBasic: Fix preprocessor keywords list See http://www.freebasic.net/wiki/wikka.php?wakka=CatPgFunctIndex Part of [feature-requests:#691] data/filetypes.freebasic | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7276c49949ae6762ec4978ef7532784362582f23 Author: Colomban Wendling Date: Mon Aug 18 23:55:03 2014 +0200 Sort FreeBasic keywords alphabetically data/filetypes.freebasic | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1f8d2de53b0bb3c5856278ba817e7b236caa984d Author: Nick Treleaven Date: Mon Aug 18 13:21:07 2014 +0100 Remove doc, hacking-doc targets (Windows) doc/makefile.win32 | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit cf6724240a176fa48f3facaedf98c5389d14d4f4 Author: Colomban Wendling Date: Mon Aug 18 00:07:43 2014 +0200 Fix "Contributing to this document" for new HTML/PDF generation process doc/geany.txt | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit 874b019e4ed9ec4013317cb724da367681662128 Author: James Lownie Date: Sun Aug 17 14:13:13 2014 +1000 Clarified the location of the "Use project-based session files" option doc/geany.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7435a81d83707302ce83a833b8f32263a4b82cc9 Author: Colomban Wendling Date: Sun Aug 17 01:31:40 2014 +0200 Fix a named style misspelling in the Lua filetype data/filetypes.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 768659b89fc8bc6727f5bce7605d417edc859f4a Author: Colomban Wendling Date: Sat Aug 16 17:59:10 2014 +0200 i18n: don't restrict LINGUAS at configure time Don't use the $LINGUAS at configure time to set ALL_LINGUAS, and let the translations Makefile properly honor the $LINGUAS itself, which it already does better than we do, cleanly ignoring translations it doesn't know. If we do set ALL_LINGUAS=$LINGUAS, it will result in a build failure if we do not have a translation for some of the language(s) specified in $LINGUAS, and would make it impossible to build other languages without re-configuring. So, just drop that part and let the build-time support kick in. Closes #507. m4/geany-i18n.m4 | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 91d0ed218341e6e0c7c9eb47f2f8fa8846b0a806 Author: Colomban Wendling Date: Thu Aug 14 17:12:58 2014 +0200 Find in Files: start search when pressing return in all field Patch partly from Yosef Or Boczko, thanks. Closes #959. src/search.c | 2 ++ 1 file changed, 2 insertions(+) commit 328c22eaf6164b8e8cdc7e4ad4193d9122197903 Author: Colomban Wendling Date: Wed Aug 13 14:07:03 2014 +0200 Update Scintilla to version 3.5.0 scintilla/gtk/ScintillaGTK.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 521778ad311d076d1d423c4d9e4421fd66c57bf3 Author: Colomban Wendling Date: Tue Aug 12 20:40:21 2014 +0200 Color scheme dialog: scroll to the initially selected item src/highlighting.c | 4 ++++ 1 file changed, 4 insertions(+) commit df964312b2b2e27b28d127aa30e814d5d367a0c3 Author: Colomban Wendling Date: Tue Aug 12 20:38:59 2014 +0200 Remove a global in colorscheme dialog code src/highlighting.c | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) commit 8b0990e52a1c2bfaf8678d4e14fb18a256618ddb Author: Colomban Wendling Date: Tue Aug 12 16:38:42 2014 +0200 Fix relative project base path when creating a new project Closes #1062. src/project.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cc1c36d0093de8c2559dfeb65eb60cc957489239 Author: Colomban Wendling Date: Tue Aug 12 16:24:03 2014 +0200 project: Sanitize entries_modified scope src/project.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit 87c6cefc1940a8d8e4e02f842bdbfc4bf05e3e37 Author: Colomban Wendling Date: Tue Aug 12 16:17:39 2014 +0200 Remove dead assignment `entries_modified` global is only used by on_name_entry_changed() and on_entries_changed(), both of which are only ever called from project_new() scope -- which already initializes this variable. src/project.c | 2 -- 1 file changed, 2 deletions(-) commit 0b2b647a6dfd76dd2e8ff4ff0b8e0eea84bad3c8 Author: Colomban Wendling Date: Tue Aug 12 14:39:53 2014 +0200 Remove an unnecessary dynamic allocation src/project.c | 66 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 32 insertions(+), 34 deletions(-) commit 6ed6a995651dc8e239df3ba23dda2f3df3aa23ac Author: Colomban Wendling Date: Tue Aug 12 14:38:48 2014 +0200 about: Don't leak global variables to the program scope src/about.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ba8899b09cb8635a3b3c67bef07d9ea4cba9780f Merge: 5832c4b64 36a6dd2e2 Author: Colomban Wendling Date: Tue Aug 12 14:18:04 2014 +0200 Merge branch 'small-dialogs-cleanup' commit 36a6dd2e2c1808adedcc1135ffc70a210c77350d Author: Colomban Wendling Date: Mon Aug 11 16:52:26 2014 +0200 dialogs: Don't abuse GObject data src/dialogs.c | 70 +++++++++++++++++++++++++++++++---------------------------- 1 file changed, 37 insertions(+), 33 deletions(-) commit 571239e0bf07752b2059376ca815f3b1efa115a9 Author: Colomban Wendling Date: Mon Aug 11 16:38:09 2014 +0200 dialogs: Remove an unnecessary function indirection Having add_input_widgets() didn't really make the code any simpler, rather obfuscating it a little. src/dialogs.c | 54 ++++++++++++++++++++++-------------------------------- 1 file changed, 22 insertions(+), 32 deletions(-) commit 5fcacf066d7150cdfa9408b82141230209bafe2e Author: Colomban Wendling Date: Mon Aug 11 15:44:51 2014 +0200 Add user data to GeanyInputCallback, avoiding global variable hacks src/build.c | 4 ++-- src/dialogs.c | 35 ++++++++++++++++++----------------- src/dialogs.h | 4 ++-- 3 files changed, 22 insertions(+), 21 deletions(-) commit 5832c4b64c293e6091cf4da555b59d7931b13cb9 Merge: a8a6ef7d1 2559cda95 Author: Colomban Wendling Date: Sun Aug 10 16:28:56 2014 +0200 Merge branch 'prefs-less-globals' commit 2559cda95408bd8b32a96baff1918a78ce649c75 Author: Colomban Wendling Date: Sun Aug 10 15:28:29 2014 +0200 prefs: Remove some global state in keybinding-related code Use gtk_dialog_run() to run the key input dialog, which is modal anyway. This avoids having to pass the label and the iter around for the dialog response callback to have them, as they now only are used directly in the function setting them in the first place. src/prefs.c | 53 +++++++++++++++++++++++++---------------------------- 1 file changed, 25 insertions(+), 28 deletions(-) commit 852f3266507ccd06a894a797c67881cc21e5dca7 Author: Colomban Wendling Date: Sun Aug 10 14:57:33 2014 +0200 prefs: Pack keybinding-related globals together and avoid much direct access This however doesn't get rid of any of the global data itself, it only pack it in a struct and passes pointer to this struct around instead of accessing the global whenever possible. src/prefs.c | 162 +++++++++++++++++++++++++++++------------------------------- 1 file changed, 79 insertions(+), 83 deletions(-) commit a8a6ef7d131e49e1cc5ed843ebec3167fd7b018b Merge: 593b9dd2c 74ef1b834 Author: Colomban Wendling Date: Sun Aug 10 02:23:21 2014 +0200 Merge branch 'scintilla-update-350-pre' commit 74ef1b8344a34810771f69ef7b82a8aeca57e894 Author: Colomban Wendling Date: Sun Aug 10 02:21:54 2014 +0200 Update for new Scintilla styles data/filetypes.rust | 3 +++ src/highlighting.c | 3 +++ src/highlightingmappings.h | 5 ++++- 3 files changed, 10 insertions(+), 1 deletion(-) commit d77fe4c6b78f1b3d6f7650370d2f46eaec0e6f8d Author: Colomban Wendling Date: Sun Aug 10 02:17:32 2014 +0200 Update Scintilla to 3.5.0 pre-release scintilla/Makefile.am | 6 + scintilla/gtk/PlatGTK.cxx | 12 +- scintilla/gtk/ScintillaGTK.cxx | 284 +++- scintilla/include/SciLexer.h | 18 + scintilla/include/Scintilla.h | 15 +- scintilla/include/Scintilla.iface | 48 +- scintilla/lexers/LexHTML.cxx | 12 +- scintilla/lexers/LexMatlab.cxx | 5 +- scintilla/lexers/LexRuby.cxx | 36 +- scintilla/lexers/LexRust.cxx | 105 +- scintilla/lexlib/LexerModule.h | 7 +- scintilla/makefile.win32 | 3 + scintilla/scintilla_changes.patch | 3 +- scintilla/src/CellBuffer.cxx | 40 +- scintilla/src/CellBuffer.h | 12 + scintilla/src/ContractionState.cxx | 18 +- scintilla/src/ContractionState.h | 4 +- scintilla/src/Document.cxx | 59 + scintilla/src/Document.h | 8 +- scintilla/src/EditModel.cxx | 74 + scintilla/src/EditModel.h | 67 + scintilla/src/EditView.cxx | 2072 ++++++++++++++++++++++++++ scintilla/src/EditView.h | 163 +++ scintilla/src/Editor.cxx | 2795 +++++------------------------------- scintilla/src/Editor.h | 130 +- scintilla/src/LineMarker.cxx | 96 +- scintilla/src/MarginView.cxx | 455 ++++++ scintilla/src/MarginView.h | 41 + scintilla/src/PerLine.cxx | 70 + scintilla/src/PerLine.h | 17 + scintilla/src/PositionCache.cxx | 25 +- scintilla/src/PositionCache.h | 7 +- scintilla/src/RESearch.cxx | 17 +- scintilla/src/RESearch.h | 1 - scintilla/src/ScintillaBase.cxx | 5 +- scintilla/src/ScintillaBase.h | 4 +- scintilla/src/Selection.cxx | 11 +- scintilla/src/Selection.h | 1 + scintilla/src/ViewStyle.cxx | 14 + scintilla/src/ViewStyle.h | 4 + scintilla/version.txt | 2 +- 41 files changed, 4007 insertions(+), 2759 deletions(-) commit 593b9dd2c9345c381a8929c8aaabbba968b2e472 Merge: 604e05cb2 83deafedd Author: Colomban Wendling Date: Sun Aug 10 01:51:48 2014 +0200 Merge branch 'single-line-regex' commit 83deafeddaa9bf2a0eca6eb34056e61cc7a2021c Author: Colomban Wendling Date: Sat Aug 2 16:04:42 2014 +0200 Update the documentation for single-line regular expressions doc/geany.txt | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit 673c3c36a3acb4218567eccbdee87d6eb5d4d402 Author: Colomban Wendling Date: Sun Aug 10 01:46:31 2014 +0200 Add UI elements to control single-line regex settings src/search.c | 59 ++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 32 insertions(+), 27 deletions(-) commit 482d2732af20c2501f299990c4214e00badf5e32 Author: Colomban Wendling Date: Sun Aug 10 01:46:16 2014 +0200 Add support for single-line regular expressions src/callbacks.c | 6 +++--- src/document.c | 6 +++--- src/keybindings.c | 4 ++-- src/search.c | 59 +++++++++++++++++++++++++++++++++++++------------------ src/search.h | 9 +++++++++ 5 files changed, 57 insertions(+), 27 deletions(-) commit 604e05cb2d84a2f6d10f9dde3b2e53a6e9078969 Author: Frank Lanitz Date: Thu Aug 7 15:30:54 2014 +0200 Adding message to client/log keywords to SQL type data/filetypes.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a26bdd628f7a7d6a5937195083b7829be09b1a81 Author: Colomban Wendling Date: Thu Aug 7 15:14:22 2014 +0200 Fix crash when closing a document with visible infobars Apparently the ::unrealize symbol is sent too late, after we destroyed the widget and freed the GeanyDocument, and some signals like ::focus-in-event can still be fired on the widget after that. So, properly use the ::destroy signal that is supposed to be fired when others should release references to that instance. src/document.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ed20a4373da28564be76028df6e137f0f2194d80 Author: elextr Date: Wed Aug 6 12:25:59 2014 +1000 Make reflow paragraph leave cursor at end. The cursor was left at the beginning of the last line, leaving it at the end is more likely to be a useful position to continue typing. src/keybindings.c | 1 + 1 file changed, 1 insertion(+) commit 8341228ffa5a69970e85cddc7adb6d1f49f247d9 Author: Colomban Wendling Date: Sun Aug 3 23:55:25 2014 +0200 JavaScript: fix handling of parentheses around an rvalue Properly skip parentheses around an rvalue, and then properly recognize the surrounded value. This allows to properly recognize e.g. rvalue `({...})` as an object, or `(function(){})` as a function. As the implementation is tolerant regarding garbage after the statement, function expressions called straight away (`(function(){})()`) are implicitly supported. This however removes support for the following invalid JavaScript syntax that was previously supported as a function/method declaration: var func = () {} This syntax is not present in the ECMA standard nor is supported by popular JavaScript engines. See: * http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf section 13, "Function Definition" * http://ecma262-5.com/ELS5_HTML.htm#Section_13 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope#Defining_functions tagmanager/ctags/js.c | 61 ++++++++++++++-------------------- tests/ctags/Makefile.am | 1 + tests/ctags/parenthesis-rvalue.js | 35 +++++++++++++++++++ tests/ctags/parenthesis-rvalue.js.tags | 23 +++++++++++++ tests/ctags/simple.js | 2 +- 5 files changed, 85 insertions(+), 37 deletions(-) commit 35e8fbbe2886b2c5c82686f7e0435e5aa6aad32f Author: Colomban Wendling Date: Sun Aug 3 23:24:33 2014 +0200 JavaScript: fix handling of various missing semicolons in loops tagmanager/ctags/js.c | 16 +++++++++----- tests/ctags/1880687.js | 53 ++++++++++++++++++++++++++++++++++++++++++++- tests/ctags/1880687.js.tags | 12 ++++++++++ 3 files changed, 75 insertions(+), 6 deletions(-) commit 3ff01aeeb30462fe8b9c82740cae4a2e419c9587 Author: Colomban Wendling Date: Sun Aug 3 19:07:59 2014 +0200 JavaScript: recognize assignation to a parenthesized expression tagmanager/ctags/js.c | 4 ++++ tests/ctags/bug2777310.js | 2 ++ tests/ctags/bug2777310.js.tags | 2 ++ 3 files changed, 8 insertions(+) commit b596aa14e82967d02d711c48cd62e631c29bea65 Author: Colomban Wendling Date: Sun Aug 3 16:57:26 2014 +0200 JavaScript: don't choke when returning object literals tagmanager/ctags/js.c | 4 +++ tests/ctags/Makefile.am | 1 + tests/ctags/complex-return.js | 61 ++++++++++++++++++++++++++++++++++++++ tests/ctags/complex-return.js.tags | 18 +++++++++++ 4 files changed, 84 insertions(+) commit bc9b2fa4445b6b870f2be942aa27d49994985ae9 Author: Colomban Wendling Date: Sun Aug 3 16:34:24 2014 +0200 JavaScript: don't choke on array lists tagmanager/ctags/js.c | 4 ++++ tests/ctags/Makefile.am | 1 + tests/ctags/arraylist.js | 20 ++++++++++++++++++++ tests/ctags/arraylist.js.tags | 9 +++++++++ 4 files changed, 34 insertions(+) commit 3c2d93eca42d550fe416a9200e6a67a82bcd7afe Author: Matthew Brush Date: Sun Aug 3 04:23:19 2014 -0700 Refactor win32 native dialog-mainloop update code Just cleaning up last commit. src/win32.c | 74 +++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 40 insertions(+), 34 deletions(-) commit eb267d30cbe1fe603d315d7f165bdff7ed574b2c Author: Matthew Brush Date: Sat Aug 2 20:29:02 2014 -0700 For native win32 dialogs, pump main window loop a bit Mostly gets rid of re-drawing issues, however is not great. src/win32.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 80 insertions(+), 7 deletions(-) commit fc0e8fa56644230aeb4b7cdfde4271280565ce76 Merge: d4acd1e06 c47c84820 Author: Dominic Hopf Date: Sat Aug 2 23:02:21 2014 +0200 Merge pull request #311 from philippwiesemann/fix-typo-doc Fix typo in documentation commit c47c84820e6f48be9eb70261d4d790229b1b3294 Author: Philipp Wiesemann Date: Sat Aug 2 22:03:34 2014 +0200 Fix typo in documentation doc/geany.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d4acd1e061211cb5c113b50dbe9786d62e67786e Author: Nick Treleaven Date: Fri Aug 1 12:10:17 2014 +0100 *View->Change Font* should respect native dialog setting (Windows, #1059) src/dialogs.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 4cfe71a487dfabdc3a4ce79bfa924567101c8838 Merge: 257de6597 f1ce9afad Author: Colomban Wendling Date: Fri Aug 1 17:26:54 2014 +0200 Merge branch 'tm/faster-current-tag' This makes tm_get_current_tag() roughly 4.5 times faster. commit 257de6597cd7fb0f7cd75d20c67c0de1d85d491a Author: Colomban Wendling Date: Fri Aug 1 16:05:09 2014 +0200 fortran: Make sure not to index kinds out of bounds This also makes recent GCC shut up about indexing below the bounds as it detected the code checked for a negative index yet didn't guard the actual access. For now GCC doesn't understand the more comprehensive check, but it might come back if GCC becomes smart enough. Anyway, this makes the Assert() more correct, and addition of the explicit kinds array size makes sure any future kind addition won't miss its entry. tagmanager/ctags/fortran.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e1988964c17b57fdaf7741105d384235fec1bff1 Author: Nick Treleaven Date: Fri Aug 1 12:00:20 2014 +0100 Fix Windows build src/build.c | 1 + src/dialogs.c | 1 + src/document.c | 1 + src/main.c | 1 + src/plugins.c | 1 + src/project.c | 1 + src/socket.c | 1 + src/tools.c | 1 + src/ui_utils.c | 1 + src/utils.c | 1 + 10 files changed, 10 insertions(+) commit 01b3103eafd787b9a94d14026c3872691d6e1f90 Author: Nick Treleaven Date: Fri Aug 1 11:54:05 2014 +0100 Remove unread variable src/document.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit c250195b81827b159c32a2c8d4c0d6f4bda7d35d Author: elextr Date: Wed Jul 30 16:07:50 2014 +1000 Add HTML and XML template extensions Add *.tpl and *.xtpl. data/filetype_extensions.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit aea113f1c5095fa28790f1c330f1c5220d813d59 Merge: c8dab25e6 db977a999 Author: Colomban Wendling Date: Tue Jul 29 18:23:11 2014 +0200 Merge pull request #306 from SiegeLord/more_rust_updates commit db977a999d52f34713b11430a3d02fd6386a880a Author: SiegeLord Date: Tue Jul 29 11:27:25 2014 -0400 Rust: Add keyword data/filetypes.rust | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 58f0a20bcc640a7973b22b3f7647750eaa1838c2 Author: SiegeLord Date: Tue Jul 29 11:20:56 2014 -0400 Rust: Update test sources to be valid Rust code. tests/ctags/test_input.rs | 20 ++++++++++---------- tests/ctags/test_input.rs.tags | 2 +- tests/ctags/test_input2.rs | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) commit d9e569398a0dbdac961cf4aa9e624d51fbdfa1f0 Author: SiegeLord Date: Tue Jul 29 11:14:34 2014 -0400 Rust: Add new comment handling test. tests/ctags/test_input2.rs | 1 + tests/ctags/test_input2.rs.tags | 1 + 2 files changed, 2 insertions(+) commit 5e469dc5aeb1982a046703b95893dfd52e5a1174 Author: SiegeLord Date: Tue Jul 29 11:10:14 2014 -0400 Rust: Update comment parsing. Rust now allows CRLF line endings in source files, which doesn't actually change any lexing here but the comment was wrong. Also, the hashbang initial comment has a special case where #![ doesn't count as a comment (but instead an inner attribute that just happens to be on the first line). tagmanager/ctags/rust.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) commit cf9385c6d49eaee4788847b4bda5b9b7b727d087 Author: SiegeLord Date: Tue Jul 29 10:55:15 2014 -0400 Rust: Add test for character literals. tests/ctags/test_input.rs | 9 +++++++++ tests/ctags/test_input.rs.tags | 2 ++ 2 files changed, 11 insertions(+) commit 756344d901afba9e5a51ae099aa7c1fe9ecef019 Author: SiegeLord Date: Tue Jul 29 10:51:36 2014 -0400 Rust: Parse character literals. These were omitted by mistake. Caused bugs like '"' being interpreted as a start/end of a string, '}' as the end of a block etc. tagmanager/ctags/rust.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit fba9d19ec775161f722adab322ec384483d4b05c Author: SiegeLord Date: Tue Jul 29 09:34:04 2014 -0400 Rust: Add a test for the new string lexer. tests/ctags/test_input.rs | 2 ++ tests/ctags/test_input.rs.tags | 1 + 2 files changed, 3 insertions(+) commit d96a314a68a6ca779f3e447dd25724df4881a93a Author: SiegeLord Date: Tue Jul 29 09:23:42 2014 -0400 Rust: Change/simplify how the string tokens are handled. Previously, only the string contents were stored in lexerState::token_str (i.e. not including the delimeters). Now, the delimeters are stored as well, thus preserving them. This also simplifies the code a bit. A new function is added to handle the character storage, which is also now applied for normal identifiers. To that end, the MAX_STRING_LENGTH was boosted to 256 so that all reasonably sized identifiers may fit. tagmanager/ctags/rust.c | 49 ++++++++++++++++++++----------------------------- 1 file changed, 20 insertions(+), 29 deletions(-) commit c8dab25e6e608f3f928c2c1c0dbc7f444b1dffc1 Merge: b65f49902 19e98669f Author: Frank Lanitz Date: Sat Jul 26 19:08:16 2014 +0200 Merge pull request #303 from samsulmaarif/master Update Indonesian Translation commit b65f49902f726d76178c7b72c244e901ccfa419d Author: Colomban Wendling Date: Sat Jul 26 14:55:58 2014 +0200 Fix closing the documents when quitting When quitting we avoid doing some unnecessary actions, and used to simply destroy the Scintilla widget (and thus the notebook page) instead of the elaborate UI updates. Unfortunately, when the infobars landed they changed what is packed as a notebook page, and now destroying the Scintilla widget alone is not enough to close the page. Fix this by properly removing the whole page no matter what it contains. This issue was visible when quitting Geany with a project open. src/document.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0682a255853bada9bb5a07a575100925997e1de9 Author: Colomban Wendling Date: Sat Jul 26 13:36:19 2014 +0200 Fix crash when quitting with an infobar visible When the infobar gets closed/destroyed it tries to focus the possibly destroyed document, leading to a crash. src/document.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 19e98669f473b7ea6f7433b505156b8aa5763223 Author: Samsul Ma'arif Date: Fri Jul 25 03:53:40 2014 +0700 Update Indonesian Translation po/id.po | 1898 ++++++++++++++++++++------------------------------------------ 1 file changed, 619 insertions(+), 1279 deletions(-) commit a87655480ffbfdb8c29a843c77ba23e5c00dc79a Merge: 6768a1b78 ffcec43d0 Author: Colomban Wendling Date: Fri Jul 11 18:06:59 2014 +0200 Merge most of PR#298 commit 6768a1b78f131dc857ba7674c213a70ef19edc5d Author: Frank Lanitz Date: Fri Jul 11 17:06:47 2014 +0200 Update of Greek translation po/el.po | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) commit 81a9026c3b7c7100bef800ad8652d0e99d68d8c0 Author: Frank Lanitz Date: Tue Jul 8 21:00:34 2014 +0200 Update of Greek translation po/el.po | 4557 +++++++++++++++++++++++++++++--------------------------------- 1 file changed, 2145 insertions(+), 2412 deletions(-) commit 487b8aea0ba904103eaddaf81f2dd6647b8bc7b3 Author: Colomban Wendling Date: Sat Jul 5 19:16:24 2014 +0200 Custom commands dialog: Make sure the selected item is always visible Always bring back the selected item after an user action, so the user can see what she's doing. src/tools.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 47e9e6c000e7f0742ef416e56a73e5c02ef93778 Author: Colomban Wendling Date: Fri Jul 4 17:52:48 2014 +0200 Ask whether to overwrite the project file when creating a new project src/project.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 7f7f66978bca26581cae16f27b6e8bf4e58d1a54 Author: Colomban Wendling Date: Fri Jul 4 17:52:13 2014 +0200 Add tooltips to explain the purpose of the New Project dialog fields src/project.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 11b50493fcd65216014d4bcab157d79cc33d9e7b Author: Colomban Wendling Date: Fri Jul 4 17:50:37 2014 +0200 Use ui_button_new_with_image() to build image buttons src/project.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 98fa600a2ff40cd55ec8010bff258ed0b32ff8aa Author: Colomban Wendling Date: Fri Jul 4 03:06:17 2014 +0200 Update Scintilla to version 3.4.4 scintilla/gtk/PlatGTK.cxx | 41 ++-- scintilla/gtk/ScintillaGTK.cxx | 28 +-- scintilla/include/Scintilla.h | 8 +- scintilla/include/Scintilla.iface | 10 + scintilla/lexers/LexBash.cxx | 11 +- scintilla/lexers/LexCPP.cxx | 22 ++- scintilla/lexers/LexHTML.cxx | 11 +- scintilla/lexers/LexHaskell.cxx | 2 +- scintilla/lexers/LexPerl.cxx | 2 +- scintilla/lexers/LexRuby.cxx | 5 +- scintilla/lexers/LexRust.cxx | 2 +- scintilla/lexers/LexTCL.cxx | 2 +- scintilla/lexers/LexVHDL.cxx | 2 +- scintilla/lexlib/Accessor.cxx | 2 +- scintilla/lexlib/CharacterCategory.cxx | 2 +- scintilla/lexlib/CharacterSet.cxx | 2 +- scintilla/lexlib/LexAccessor.h | 20 +- scintilla/lexlib/LexerBase.cxx | 2 +- scintilla/lexlib/LexerModule.cxx | 14 +- scintilla/lexlib/LexerModule.h | 9 +- scintilla/lexlib/LexerNoExceptions.cxx | 2 +- scintilla/lexlib/LexerSimple.cxx | 2 +- scintilla/lexlib/StyleContext.cxx | 2 +- scintilla/lexlib/StyleContext.h | 4 +- scintilla/lexlib/WordList.cxx | 2 +- scintilla/src/CaseFolder.cxx | 2 +- scintilla/src/Catalogue.cxx | 2 +- scintilla/src/CellBuffer.cxx | 13 +- scintilla/src/CellBuffer.h | 4 +- scintilla/src/Document.cxx | 26 +-- scintilla/src/Document.h | 9 +- scintilla/src/Editor.cxx | 343 ++++++++++++--------------------- scintilla/src/Editor.h | 30 ++- scintilla/src/ExternalLexer.cxx | 2 +- scintilla/src/Indicator.cxx | 4 +- scintilla/src/Indicator.h | 2 +- scintilla/src/LineMarker.cxx | 2 +- scintilla/src/LineMarker.h | 2 +- scintilla/src/PositionCache.cxx | 41 ++-- scintilla/src/PositionCache.h | 28 ++- scintilla/src/ScintillaBase.cxx | 56 ++++-- scintilla/src/ScintillaBase.h | 1 + scintilla/src/Selection.cxx | 8 + scintilla/src/Selection.h | 2 + scintilla/src/Style.cxx | 4 + scintilla/src/Style.h | 4 +- scintilla/src/ViewStyle.cxx | 37 ++++ scintilla/src/ViewStyle.h | 3 +- scintilla/version.txt | 2 +- 49 files changed, 413 insertions(+), 423 deletions(-) commit db90411b0e7684fb5d7868309e1fc96a93df664b Author: Thomas Martitz Date: Sat Jun 28 14:17:54 2014 +0200 main: Refactor quit functions Move quit-related functions to main.c and make them static. main_quit() now does all the heavy work and can be called from signal handlers. src/callbacks.c | 54 ++--------------------------------------------------- src/keybindings.c | 3 ++- src/main.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- src/main.h | 2 +- 4 files changed, 58 insertions(+), 57 deletions(-) commit fd5ac727cbb687cc66c2de596f1dde8d957af051 Author: Martin Spacek Date: Wed Jun 11 22:17:48 2014 -0700 Add %l current line number substitution to build commands doc/geany.txt | 1 + src/build.c | 14 +++++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) commit ffcec43d01609ea0cc8a8e25d77bd4325b5b1e27 Author: Thomas Martitz Date: Sun Jun 8 14:22:56 2014 +0200 document.c: Immediately mark as changed when document is externally deleted Before infobar it didn't matter because the dialog was modal and interaction with the doc was impossible. Now that you can interact it the doc should be marked changed immediately. src/document.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 0f7db113e7da5b15957754388af74992d738b100 Author: Thomas Martitz Date: Fri Jun 6 22:17:46 2014 +0200 document.c: Restore lost document_set_text_changed(doc, TRUE) call It got lost by accident in 5117940. src/document.c | 1 + 1 file changed, 1 insertion(+) commit c8970e23316fb41f06a20af310f4b109f5f059d3 Author: Thomas Martitz Date: Mon Jun 9 10:52:40 2014 +0200 info bars: Show additional save button for the "reload file?" info bar This allows overwriting the file right from the info bar. src/document.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 4b8f42cd9e4206e672539dd559e9d41e831a39bd Author: Thomas Martitz Date: Mon Jun 9 12:35:22 2014 +0200 info bars: Explicitely move focus back to the editor when closing This does not seem to happen automatically, at least on GTK3. src/document.c | 2 ++ 1 file changed, 2 insertions(+) commit ab426623099dee3b8a187eefb662c7c022669b83 Author: Thomas Martitz Date: Fri Jun 6 22:11:11 2014 +0200 Fix racy glib assertion failure Use g_signal_connect_object() to establish automatic and race-free signal disconnection instead of the hand-crafted mechanism. src/document.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit 0870b8663fa6a40d1870f1b015b87db5148ea37e Author: danyalzia Date: Thu Jun 19 22:16:37 2014 +0500 Add remaining D keywords data/filetypes.d | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 35a212dffc34ae2f7bc532f69caf9bdea695ef39 Merge: 3ce25db63 0d03fad7b Author: Colomban Wendling Date: Fri Jun 27 22:32:38 2014 +0200 Merge branch 'callbacks-cleanup' commit 3ce25db632e7142159fc86081f36afefe9f317ce Author: Colomban Wendling Date: Fri Jun 27 22:05:46 2014 +0200 Remove line number zoom hack as it is no longer necessary Since cbf9813632d7ee921ffa1fda0d1f69128b2bc755 we have a proper solution for maintaining line number consistent with the editor zoom, so drop the old hack. This also allows to remove the now useless third argument of sci_set_line_numbers(). src/callbacks.c | 7 ------- src/document.c | 4 ++-- src/editor.c | 6 +++--- src/printing.c | 2 +- src/sciwrappers.c | 7 +------ src/sciwrappers.h | 2 +- src/ui_utils.c | 2 +- 7 files changed, 9 insertions(+), 21 deletions(-) commit cccc6ea0df885eefa07ba6ba99141e23574a1849 Author: Colomban Wendling Date: Thu Jun 26 20:04:15 2014 +0200 Remove some dead code src/callbacks.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 6c804880374058fbc1ed44084f4768b6c20d0038 Author: Colomban Wendling Date: Thu Jun 26 20:00:24 2014 +0200 Make sure the current document is still the same after Save All Save All updates the sidebar and title bar with the document that was the current one when the action was triggered, but the action could have changed the focused document if an non-file-backed file required saving. So, make sure current document is the same after the action. src/callbacks.c | 1 + 1 file changed, 1 insertion(+) commit 0d03fad7bf478b7bd7aeaee04b1d04be96eb8e86 Author: Colomban Wendling Date: Thu Jun 26 18:36:22 2014 +0200 Move date insert callbacks to the UI code where they belong src/callbacks.c | 73 ------------------------------------------------------ src/callbacks.h | 4 --- src/ui_utils.c | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 75 insertions(+), 79 deletions(-) commit a51bc3d6545b48eddb18de3b10a4381dc459614c Author: Colomban Wendling Date: Thu Jun 26 18:31:05 2014 +0200 Move include insert callbacks to the UI code where they belong src/callbacks.c | 44 -------------------------------------------- src/callbacks.h | 4 ---- src/ui_utils.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++----- 3 files changed, 46 insertions(+), 53 deletions(-) commit 00ec175d63931075fcf82c48497d9245a65da70b Author: Colomban Wendling Date: Thu Jun 26 18:23:34 2014 +0200 Callbacks: get rid of the ugly `insert_callback_from_menu` global src/callbacks.c | 191 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 96 insertions(+), 95 deletions(-) commit 721769e682b142c0d07b12a3d7158695ccc3dacb Author: Thomas Martitz Date: Tue Jun 24 23:07:08 2014 +0200 Fix build warning about missing return value. src/document.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cc2f1879a83aeb95bd9aa6b0d6362b32016c0432 Author: Colomban Wendling Date: Tue Jun 24 18:30:54 2014 +0200 Add printf attribute to document_show_message() for better safety Add G_GNUC_PRINTF attribute to document_show_message() so some compilers can check the format arguments match the format string. src/document.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 9bf647c5c3117d36c4ea7c99f05ad99e03106045 Author: Colomban Wendling Date: Tue Jun 24 18:26:44 2014 +0200 Move on_clone1_activate() to callbacks.c src/callbacks.c | 11 +++++++++++ src/document.c | 10 ---------- 2 files changed, 11 insertions(+), 10 deletions(-) commit 0b32227bf0892f8bf430d712cae1fa73741c906a Author: Colomban Wendling Date: Tue Jun 24 18:15:46 2014 +0200 Don't manually connect handlers Glade can connect for us Don't bother manually connecting handlers that Glade can connect for us just as well. data/geany.glade | 3 +++ src/callbacks.c | 6 ++++-- src/callbacks.h | 6 +----- src/main.c | 6 ------ 4 files changed, 8 insertions(+), 13 deletions(-) commit ab3b7ce49660cfec1b4b21e549257bf2b7b4a7a5 Author: Colomban Wendling Date: Tue Jun 24 18:11:34 2014 +0200 Use the appropriate prototype for the window's delete-event callback src/callbacks.c | 6 +++--- src/callbacks.h | 2 +- src/main.c | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) commit 2113537e939aa7c73130c80ded791a698f05fbc1 Author: Colomban Wendling Date: Tue Jun 24 18:07:29 2014 +0200 Add two missing Glade-only prototypes src/callbacks.c | 2 ++ 1 file changed, 2 insertions(+) commit a398b087da51db03f0b89c8883ea6a239b0af8bf Author: Colomban Wendling Date: Tue Jun 24 18:04:11 2014 +0200 Remove redundant toolbar-specific callbacks src/callbacks.c | 52 ++-------------------------------------------------- src/callbacks.h | 20 ++++---------------- src/toolbar.c | 18 +++++++++--------- 3 files changed, 15 insertions(+), 75 deletions(-) commit 517bf5f960fd4559073bf62039893aa39f8a4bf8 Author: Colomban Wendling Date: Tue Jun 24 17:48:54 2014 +0200 Move Glade-only callbacks out of callbacks.h There is no need to expose the Glade-only callbacks in the header as nobody uses them directly anyway; and not having them makes the header a little less bloated. src/callbacks.c | 75 +++++++++++++++++++++++++++++ src/callbacks.h | 146 +------------------------------------------------------- 2 files changed, 77 insertions(+), 144 deletions(-) commit 3b1fbc16e5a01d4643d01f29abc7e8e8504688f6 Author: Colomban Wendling Date: Tue Jun 24 16:52:21 2014 +0200 Normalize callbacks prototypes src/callbacks.h | 757 ++++++++++++++++---------------------------------------- 1 file changed, 216 insertions(+), 541 deletions(-) commit 220545d988ab90c46699fa5586d8115de104c0d6 Author: Colomban Wendling Date: Tue Jun 24 16:44:10 2014 +0200 Don't export callbacks not used from Glade src/callbacks.c | 46 +++++++++++++++++++++++----------------------- src/callbacks.h | 48 ++++++++++++++++++++++++------------------------ 2 files changed, 47 insertions(+), 47 deletions(-) commit 69a44997ad2ddf0d07244fb6c1901de819a2703a Author: Colomban Wendling Date: Tue Jun 24 16:43:11 2014 +0200 Remove prototypes of non-existing callbacks src/callbacks.h | 21 --------------------- 1 file changed, 21 deletions(-) commit d6382e443fa966c4333cf320db9d754d89812148 Author: Colomban Wendling Date: Tue Jun 24 15:04:37 2014 +0200 VTE: avoid exporting callbacks that are only used internally src/vte.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 2490df9b45a2b5c3707436971a8bb5f3538fc006 Author: Colomban Wendling Date: Tue Jun 24 15:02:31 2014 +0200 Avoid passing non-literals to string formatting functions Having a string literal allows the compiler to check the arguments match the format, so avoid passing non-literal whenever possible. src/filetypes.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) commit 135b60d25ef7557d2ea75a1a4f684ee49b5c3463 Author: Thomas Martitz Date: Tue Jun 24 09:13:44 2014 +0200 callbacks: Refactor on_reload_as_activate() as document_reload_prompt() The callback wasn't used from glade but is useful for some other places so it's worth moving into document.c. This also fixes a bug where reload via sidebar always reloads the current document instead of the actually clicked one. src/callbacks.c | 36 +----------------------------------- src/callbacks.h | 4 ---- src/document.c | 32 ++++++++++++++++++++++++++++++++ src/document.h | 2 ++ src/encodings.c | 23 ++++++++++++++++------- src/sidebar.c | 2 +- 6 files changed, 52 insertions(+), 47 deletions(-) commit d6c980f2fcdf49b731aacbd9e4751cbb9d85cafe Author: Colomban Wendling Date: Mon Jun 23 18:36:25 2014 +0200 Printing: properly claim ownership of the printing Scintilla widget This avoids a GObject warning about unref-ing a floating object on print termination. src/printing.c | 2 ++ 1 file changed, 2 insertions(+) commit 881ca4fa0243c29ace29e56955d85fcad255e90f Author: Enrico Tröger Date: Sun Jun 22 14:09:04 2014 +0200 Fix typo in generated geany.pc wscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ec7071062c5dc39d5f893a830b3c26968a579251 Author: Colomban Wendling Date: Sat Jun 21 18:35:17 2014 +0200 Fix GTK frame clock warnings with our about dialog We used to set the widget's style in a style-set handler, and despite guarding ourselves from recursive invocations, the GTK frame clock introduced by GTK 3.8 didn't like it very much. So, replace the manual color modification by a simpler global widget state modification, making the code simpler and smaller, yet achieving the same result (or so I hope and see). src/about.c | 38 ++------------------------------------ 1 file changed, 2 insertions(+), 36 deletions(-) commit 40662e4c01c3eac83beb522d2e5bbc775b413724 Author: Frank Lanitz Date: Thu Jun 19 14:20:16 2014 +0200 SQL: Adding uniqueidentifier as keyword uniqueidentifier is a data type e.g. used on SAP/Sybase SQLAnywhere data/filetypes.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d5fd29baabfc76cee6718ddfaad97e0ba5446924 Author: Frank Lanitz Date: Thu Jun 12 18:41:27 2014 +0200 Update of Slovenian translation po/sl.po | 54 ++++++++++++++++++++++++------------------------------ 1 file changed, 24 insertions(+), 30 deletions(-) commit d3b96283151f7a6e71763a9ec5f392f3b89dd804 Author: Frank Lanitz Date: Thu Jun 12 18:38:48 2014 +0200 Update of Italian translation po/it.po | 2677 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 1350 insertions(+), 1327 deletions(-) commit c79c983364c8754a0944693cae0439d97b874067 Author: Colomban Wendling Date: Wed Jun 4 14:31:12 2014 +0200 Fix build with GLib < 2.32 Second part of #1047. src/document.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit ea6ebaf48f40945374ea1075ceeaeedc56adee8e Author: Colomban Wendling Date: Wed Jun 4 14:16:39 2014 +0200 Fix build with GTK < 2.24 Part of #1047. src/document.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 01cf9a9fdc6795b971cbad59585d33bfcb796b74 Author: Enrico Tröger Date: Thu May 29 17:47:37 2014 +0200 Do not use backward slashes in geany.pc on Windows And explicitly convert backward slashes in the global prefix to forward slashes as tools like pkg-config or gcc could interpret the backward slashes as escape sequences. wscript | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) commit 147167cfa5883107fe7592b3ea24728f53bba1a1 Author: Colomban Wendling Date: Wed May 28 18:01:23 2014 +0200 infobars: Use wrap labels to avoid cropped infobars Since the infobar is backed in a GtkPaned that allows "shrink", if the content is too wide, it's far end will just get cropped. Also, wrap labels are nicer to display possibly long texts as it flows naturally. src/document.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit d6e9e40ccc7966228aa684e8b00caa7150448378 Author: Colomban Wendling Date: Tue May 27 20:25:04 2014 +0200 Fix a few missing/extra includes src/ui_utils.c | 1 + src/ui_utils.h | 1 - src/utils.h | 4 +++- 3 files changed, 4 insertions(+), 2 deletions(-) commit 7a4b5246611193cece08161c965c9a81b1e6b04d Author: Colomban Wendling Date: Tue May 27 17:59:48 2014 +0200 Avoid code duplication in document_get_current() src/document.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) commit 46f01bff59073905a01c799219fd0118c041f9c7 Author: Colomban Wendling Date: Tue May 27 17:55:00 2014 +0200 Properly mirror document_get_from_page() in document_get_notebook_page() Now document_get_from_page() supports arbitrary nesting inside the notebook page, update document_get_notebook_page() to support it also, by searching up for the direct notebook child rather than assuming it is the ScintillaWidget's direct parent. src/document.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit d399957471fbbde0dcaea3691933e51ad9df973f Author: Colomban Wendling Date: Tue May 27 16:02:59 2014 +0200 Fix an inverted check src/document.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4adbd5088060839421eb34adb42dd762d6e5b034 Author: Colomban Wendling Date: Tue May 27 15:42:57 2014 +0200 Remove some empty table rows and columns from the Glade file Cleanup some useless placeholders, and replace some one-column tables with vertical boxes. No UI changes. data/geany.glade | 162 ++++++++++++++++++------------------------------------- 1 file changed, 52 insertions(+), 110 deletions(-) commit 73a1589618f71d7cd0aee0913613683c4fbfbb53 Author: Colomban Wendling Date: Mon May 26 18:11:58 2014 +0200 Remove empty table rows in the Glade file This avoids glade from emitting some useless placeholders. No UI changes. data/geany.glade | 60 ++++++++++++-------------------------------------------- 1 file changed, 13 insertions(+), 47 deletions(-) commit e9795732b600895c1e6f0954915ba52bf6417a20 Merge: 2b9ecc2e4 62077c626 Author: Colomban Wendling Date: Mon May 26 16:45:25 2014 +0200 Merge PR#113 commit 2b9ecc2e4ff59e9805261a3aa4fe553c93e69531 Author: Colomban Wendling Date: Mon May 26 16:24:24 2014 +0200 Remove unused variables and avoid variable shadowing src/document.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 6e58ef3755e1d69c4edf3300ac17ae34413b8545 Author: Colomban Wendling Date: Mon May 26 16:21:16 2014 +0200 Don't use the notebook page widget for tab popup Directly use the GeanyDocument rather than pass the notebook page widget and get the document from that. This makes the code more future proof and less weird. src/callbacks.c | 15 ++++----------- src/notebook.c | 19 +++++-------------- 2 files changed, 9 insertions(+), 25 deletions(-) commit 54724ee2ad4a67eb394aa55a29327da1689d394b Author: Thomas Marititz Date: Mon May 26 10:44:57 2014 +0200 notebook: Fix crash on tab close Since infobars notebook_tab_close_clicked_cb() wants a GeanyDocument as userdata. show_tab_bar_popup_menu() on the other hand wants the actual GtkNotebook child. src/notebook.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 8ea54993c5d599f82b6060550f304e06302b46d6 Merge: f3ac7480c 19e24fb5e Author: Matthew Brush Date: Sun May 25 18:55:07 2014 -0700 Merge branch 'kugel/document-messages2' This is an extension of the long-lived `document-messages` branch. It is mostly adjusted according to the feedback on the mailing list. There might existing some usability issues to be resolved, but this is the first step towards non-modal document notifications. commit 19e24fb5ee53cb70de02669fc2d1dc0cdbd82c11 Author: Thomas Martitz Date: Sat May 24 16:53:59 2014 +0200 infobars: Dismiss the info bar when reloading via toolbar button/keybinding. src/document.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit b96daf6fc0f17780642e73e0cce7591af930b29e Author: Thomas Martitz Date: Sat May 24 16:32:58 2014 +0200 infobars: Do not use GeanyWrapLabel for now, it has problems on gtk3. src/document.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 100e0e1bf17e496dbe728a3637d199157d93b10e Author: Thomas Martitz Date: Sat May 24 14:37:24 2014 +0200 infobars: Intercept some keys when the info bar is shown to allow interacting with it using the keyboard only. When the info bar is shown tab/shift+tab and escape are intercepted. * tab/shift+tab change the focus to the info bar buttons which can then be cycled through with more tab presses * escape closes the info bar (same as clicking cancel) Both keys aren't needed for the document because it's read-only. Other keys, such arrow/page up/down, remain to the document for navigating. src/document.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) commit 1dc96f1e50fad6d68ef1d27aa44ef25a9652db38 Author: Thomas Martitz Date: Wed May 21 08:11:37 2014 +0200 infobars: Cancel "reload file" dialog when spawning the "resave file" one. When the file was deleted from disk the message that the file is newer on disk has become out of date and irrelevent. src/document.c | 3 +++ 1 file changed, 3 insertions(+) commit b487d8dea3c2c3d448431ae91e06470b43d7d6bc Author: Thomas Martitz Date: Wed May 21 07:11:56 2014 +0200 infobars: Do not show reload and resave messages more than once since only the last one (respectively) is significant to the user. src/document.c | 52 +++++++++++++++++++++++++++++++++++---------------- src/documentprivate.h | 9 +++++++++ 2 files changed, 45 insertions(+), 16 deletions(-) commit 5117940ff6e6457b24e7ee0989d3092ff38bac7d Author: Thomas Martitz Date: Tue May 20 07:14:10 2014 +0200 infobars: Make document read-only while infobar is shown. This avoids accidental changes the file until the infobar is ackowledged. The document can still be viewed and scrolled through but modifications and saving are disabled. Of course ignoring the document by changing to another one is also possible. src/document.c | 42 +++++++++++++++++++++++++++++++++++++++--- src/documentprivate.h | 3 +++ 2 files changed, 42 insertions(+), 3 deletions(-) commit 43bff93046d891cdf250704d520e4785f5f07cd4 Author: Matthew Brush Date: Sun Nov 13 06:05:53 2011 -0800 Make locate_sci_in_container() search recursively Supports changes to the widget heirarchy in the future. src/document.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit e469aa6acc76fb47194c322efef3d4f900f990a2 Author: Matthew Brush Date: Wed May 21 07:52:57 2014 +0200 Use document_show_message() when a file is removed from disk The close button is removed from the dialog also since the user can easily choose to close the document normally. Setting default response removed since it's not working yet. src/document.c | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) commit 667c35a004aeabfb254da3d91186b8f523869cf0 Author: Matthew Brush Date: Sun Nov 6 15:59:32 2011 -0800 Use document_show_message() when a file is externally modified Two other related changes are that document_set_text_changed() is used to indicate that the buffer is different from what's on disk and also that the 'Close' button has been removed from the dialog since the user can easily just close the document themselves the normal way. src/document.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) commit a6bbea53c8a7f9e1d278c00eebbc6aa483fee416 Author: Matthew Brush Date: Tue May 20 06:45:23 2014 +0200 Add new function document_show_message() src/document.c | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 114 insertions(+), 1 deletion(-) commit 9f587e9c265893e9fa3081c2387a0246d3e3c9c9 Author: Matthew Brush Date: Sun Nov 6 12:29:37 2011 -0800 Pack Scintilla widgets into a GtkVBox and use it as the notebook page. This is to allow stacking widgets such as GtkInfoBar above the Scintilla widget in each tab. notebook.c need to be changed because the document isn't the direct widget anymore which was assumed for tab closing. src/document.c | 51 ++++++++++++++++++++++++++++++++++++++++++++------- src/notebook.c | 27 +++++++++++++++------------ 2 files changed, 59 insertions(+), 19 deletions(-) commit f3ac7480c52d71188d16ddb350ea12fdbf18083d Author: Enrico Tröger Date: Sat May 24 13:33:27 2014 +0200 Re-order header includes and cleanup unused imports src/win32.c | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) commit 34de4b655ee967506b5c3eae657bebbc3e6e67de Merge: 1bacf869e 238ab5627 Author: Enrico Tröger Date: Sat May 24 13:15:39 2014 +0200 Merge pull request #276 from codebrainz/win32-includes Re-order win32.[ch] includes a little bit to unbreak build commit 238ab562791311b533d7eaa56cdd9a5d101c49e3 Author: Matthew Brush Date: Sat May 24 04:01:09 2014 -0700 Re-order win32.[ch] includes a little bit to unbreak build src/win32.c | 3 +-- src/win32.h | 5 ++++- 2 files changed, 5 insertions(+), 3 deletions(-) commit 1bacf869e076ef37caa768196d21d941a657d1e7 Author: Enrico Tröger Date: Sat May 24 11:32:45 2014 +0200 Extend use of os.path.join() to construct platform compliant paths wscript | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 7d38f0512190d8f5b8e3cec6715f7ce6e50bd7e7 Author: Colomban Wendling Date: Mon Dec 24 03:18:52 2012 +0100 Initial support for single-line regular expressions matching src/search.c | 41 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) commit 46affaf19eab08712174faac8638d4428c9e6516 Author: Colomban Wendling Date: Thu May 22 03:31:31 2014 +0200 Update Scintilla to 3.4.2 final release No code changes. scintilla/lexers/LexCPP.cxx | 4 ++-- scintilla/lexers/LexFortran.cxx | 2 +- scintilla/lexers/LexPerl.cxx | 6 +++--- scintilla/lexers/LexRuby.cxx | 2 +- scintilla/src/AutoComplete.h | 2 +- scintilla/src/Editor.cxx | 8 ++++---- scintilla/src/RESearch.cxx | 4 ++-- 7 files changed, 14 insertions(+), 14 deletions(-) commit 4d22aa48502ff818102af42495daaa55e6c6694e Merge: 3d549f59e 50feb0e05 Author: Matthew Brush Date: Wed May 21 15:43:40 2014 -0700 Merge branch 'header-cleanup' Closes #272 commit 50feb0e05c87ff973ca678e255842e5fe43badc3 Author: Matthew Brush Date: Mon May 19 22:57:14 2014 -0700 Improve support of compiling without gettext * If GETTEXT_PACKAGE is not defined (ex. by build system/user) then define it to NULL. Most GLib gettext-functions allow passing NULL to use the domain set with textdomain(). * Improve the ngettext() wrapper macro. * Improve/fix bind_textdomain_codeset() wrapper macro. * Fix argument in bindtextdomain() * Cast bind*textdomain*() results with (void) to get rid of compiler warnings when building without GETTEXT_PACKAGE defined. src/main.c | 4 ++-- src/support.h | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) commit 34888d6bafd1df9ae2e3456b066c2b44ea676ae8 Author: Matthew Brush Date: Mon May 19 01:38:33 2014 -0700 Add some info about header includes to `HACKING` file HACKING | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) commit 4efcbab33234d13a7c6d1dea2901535d9317e4e1 Author: Matthew Brush Date: Sun May 18 17:31:51 2014 -0700 Include what you use This is a mega-commit - because most of it had to be done in one go otherwise some commits would fail to compile - that attempts to fix a few problems with Geany's includes as well as various other related cleanups. After this change it's easier to use includes and there's little worry about which order things are included in or who includes what. Overview of changes: * Include config.h at the start of each source file if HAVE_CONFIG_H is defined (and never in headers). * Go through each source file and make the includes section generally like this: - Always config.h first as above - Then if the file has a header with the same name, include that - Then include in alphabetical order each other internal/geany header. - Then include standard headers - Then include non-standard system headers - Then include GLib/GTK+ related stuff * Doing as above makes it easier to find implicit header include dependencies and it exposed quite a few weird problems with includes or forward declarations, fix those. * Make geany.h contain not much besides some defines. - Add a little header file "app.h" for GeanyApp and move it there - Move "app" global to new "app.h" file - Move "ignore_callback" global to "callbacks.h" - Move "geany_object" global to "geanyobject.h" * Add an include in "geany.h" for "app.h" since GeanyApp used to be defined there and some plugins included this header to access GeanyApp. * Include "gtkcompat.h" everywhere instead of gtk/gtk.h so that everywhere sees the same definitions (not a problem in practice AFAIK so this could be changed back if better that way. * Remove forward declarations from previous commits as some people apparently consider this bad style, despite that it reduces inter- header dependencies. TODO: * As always, to test on win32 * As always, to test with not Autotools * Test plugins better, both builtin and geany-plugins, likely API/ABI bump * Test with various defines/flags that may change what is included * win32.[ch] not really touched since I couldn't test plugins/geanyplugin.h | 6 ++-- src/Makefile.am | 2 ++ src/about.c | 17 ++++++---- src/app.h | 60 +++++++++++++++++++++++++++++++++++ src/build.c | 38 +++++++++++++---------- src/build.h | 17 +++++----- src/callbacks.c | 71 ++++++++++++++++++++---------------------- src/callbacks.h | 5 +-- src/dialogs.c | 35 ++++++++++----------- src/dialogs.h | 11 +++---- src/document.c | 56 ++++++++++++++++----------------- src/document.h | 33 ++++++++++---------- src/documentprivate.h | 2 +- src/editor.c | 45 ++++++++++++++------------- src/editor.h | 11 +++++-- src/encodings.c | 18 ++++++----- src/encodings.h | 2 +- src/filetypes.c | 27 +++++++++------- src/filetypes.h | 12 +++++-- src/filetypesprivate.h | 4 +-- src/gb.c | 5 ++- src/geany.h | 50 +++++++---------------------- src/geanyentryaction.c | 9 ++++-- src/geanyentryaction.h | 2 +- src/geanymenubuttonaction.c | 7 +++-- src/geanymenubuttonaction.h | 2 +- src/geanyobject.c | 5 ++- src/geanyobject.h | 36 +++++++++++---------- src/geanywraplabel.c | 5 +-- src/geanywraplabel.h | 2 +- src/highlighting.c | 37 +++++++++++----------- src/highlighting.h | 14 +++++---- src/highlightingmappings.h | 5 ++- src/keybindings.c | 45 +++++++++++++-------------- src/keybindings.h | 2 +- src/keybindingsprivate.h | 3 +- src/keyfile.c | 47 +++++++++++++++------------- src/log.c | 13 +++++--- src/main.c | 76 +++++++++++++++++++++------------------------ src/msgwindow.c | 24 +++++++------- src/msgwindow.h | 5 ++- src/navqueue.c | 17 +++++----- src/navqueue.h | 2 ++ src/notebook.c | 23 ++++++++------ src/notebook.h | 7 ++--- src/plugindata.h | 3 +- src/pluginprivate.h | 4 ++- src/plugins.c | 51 ++++++++++++++---------------- src/pluginutils.c | 15 ++++++--- src/pluginutils.h | 3 +- src/prefix.c | 2 -- src/prefs.c | 49 ++++++++++++++--------------- src/printing.c | 24 ++++++++------ src/printing.h | 7 ++--- src/project.c | 34 ++++++++++---------- src/projectprivate.h | 3 +- src/sciwrappers.c | 11 ++++--- src/sciwrappers.h | 7 +++-- src/search.c | 23 ++++++++------ src/search.h | 4 +-- src/sidebar.c | 29 ++++++++--------- src/sidebar.h | 17 +++++----- src/socket.c | 28 ++++++++++------- src/stash.c | 9 +++--- src/stash.h | 2 +- src/symbols.c | 41 +++++++++++++----------- src/symbols.h | 13 ++++---- src/templates.c | 26 ++++++++++------ src/templates.h | 17 +++++----- src/toolbar.c | 20 +++++++----- src/toolbar.h | 2 +- src/tools.c | 28 ++++++++--------- src/tools.h | 7 ++--- src/ui_utils.c | 43 +++++++++++++------------ src/ui_utils.h | 27 ++++++++-------- src/utils.c | 28 ++++++++--------- src/utils.h | 1 + src/vte.c | 30 +++++++++--------- src/vte.h | 2 +- src/win32.c | 3 +- src/win32.h | 2 +- wscript | 2 +- 82 files changed, 827 insertions(+), 705 deletions(-) commit 6f87aac118fac7730fd981d11b41c8438e2f4649 Author: Matthew Brush Date: Sun May 18 17:07:50 2014 -0700 Normalize use of header guards and extern "C" guards * Always define GEANY_FOO_H to 1 in the header guards * Always put a G_BEGIN_DECLS/G_END_DECLS guard in every header for consistency, even private ones where it doesn't matter. * Always include either , or some other header that will provide G_BEGIN_DECLS before using it. In a lot of headers that use glib.h and gtk/gtk.h stuff anyway, this resolves an implicit dependency they had on them being included before that header. * Always put a comment at the #endif part of the guard so it's easier to see what it applies to. * Always use an underscore between the header guard identifier's words even though the filename doesn't have one. src/about.h | 11 ++++++++--- src/build.h | 4 +++- src/callbacks.h | 8 ++++++++ src/dialogs.h | 8 +++++++- src/document.h | 4 +++- src/documentprivate.h | 9 +++++++-- src/editor.h | 3 ++- src/encodings.h | 6 ++++-- src/filetypes.h | 3 ++- src/filetypesprivate.h | 9 +++++++-- src/geany.h | 4 ++-- src/geanyentryaction.h | 4 +++- src/geanymenubuttonaction.h | 4 +++- src/geanyobject.h | 6 +++--- src/geanywraplabel.h | 4 +++- src/gtkcompat.h | 2 +- src/highlighting.h | 7 ++++--- src/highlightingmappings.h | 9 ++++++--- src/keybindings.h | 4 +++- src/keyfile.h | 7 ++++++- src/log.h | 10 ++++++++-- src/main.h | 10 ++++++++-- src/msgwindow.h | 4 +++- src/navqueue.h | 7 +++++-- src/notebook.h | 8 +++++++- src/plugindata.h | 19 ++++++++++--------- src/pluginprivate.h | 9 ++++++--- src/plugins.h | 12 +++++++++--- src/pluginutils.h | 10 +++++++--- src/prefix.h | 7 ++++++- src/prefs.h | 4 +++- src/printing.h | 8 +++++++- src/project.h | 4 +++- src/projectprivate.h | 6 +++++- src/sciwrappers.h | 10 +++++++--- src/search.h | 12 ++++++------ src/sidebar.h | 8 +++++++- src/socket.h | 6 +++++- src/stash.h | 6 ++++-- src/support.h | 5 +++++ src/symbols.h | 8 +++++++- src/templates.h | 4 +++- src/toolbar.h | 6 ++++-- src/tools.h | 8 +++++++- src/ui_utils.h | 2 +- src/utils.h | 6 +++--- src/vte.h | 9 +++++++-- src/win32.h | 11 ++++++++++- 48 files changed, 248 insertions(+), 87 deletions(-) commit fec15c61c4a8e5c1f8054b17d21a599790ed1b5c Author: Matthew Brush Date: Sun May 18 16:20:25 2014 -0700 Move typedefs out of geany.h and into their own headers This helps to avoid the requirement that geany.h be included before using any of the changed headers. src/build.h | 12 ++++++++---- src/dialogs.h | 7 +++++-- src/document.h | 20 ++++++++++++-------- src/editor.h | 16 ++++++++++------ src/filetypes.h | 15 +++++++++------ src/geany.h | 7 ------- src/geanyobject.h | 25 +++++++++++++++---------- src/highlighting.h | 4 +++- src/notebook.h | 5 ++++- src/plugindata.h | 4 +++- src/printing.h | 4 +++- src/search.h | 7 +++++-- src/sidebar.h | 12 +++++++----- src/symbols.h | 11 +++++++---- src/templates.h | 12 ++++++++---- src/tools.h | 5 ++++- src/ui_utils.h | 24 +++++++++++++----------- 17 files changed, 116 insertions(+), 74 deletions(-) commit 23d9cad7dcbc93e5f6cfcc5688bc928692c11bcd Author: Matthew Brush Date: Sun May 18 15:49:22 2014 -0700 Start to make it easier to compile the core in isolation This is for work on making the files scannable by GObject-Introspection but is still useful otherwise (even fixes a FIXME in the comments). I made this by using a simple GNU Make file and trying to compile the sources each on their own without all the build system infrastructure. * Add keybindingsprivate.h file to hold private GeanyKeyGroup structure and remove it from the GEANY_PRIVATE guard in keybindings.h. * Move private members that were guarded by GEANY_PRIVATE from GeanyFiletypes to GeanyFiletypesPrivate and remove guarded build.h include. * Move private members that were guarded by GEANY_PRIVATE from GeanyProject to GeanyProjectPrivate. src/Makefile.am | 11 ++++- src/build.c | 118 +++++++++++++++++++++++------------------------ src/editor.c | 6 +-- src/filetypes.c | 9 ++-- src/filetypes.h | 18 -------- src/filetypesprivate.h | 15 ++++++ src/keybindings.c | 2 +- src/keybindings.h | 14 ------ src/keybindingsprivate.h | 44 ++++++++++++++++++ src/keyfile.c | 1 + src/main.c | 1 + src/plugins.c | 2 +- src/prefs.c | 2 +- src/project.c | 52 ++++++++++----------- src/project.h | 6 --- src/projectprivate.h | 4 ++ src/support.h | 4 +- 17 files changed, 172 insertions(+), 137 deletions(-) commit 3d549f59e8fd325a6e0f08983f67f29127618873 Author: Colomban Wendling Date: Wed May 21 16:13:22 2014 +0200 Fix a sign comparison warning src/socket.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 894207d0e3ed5101f6e97ce82ac10de0aef54134 Author: Colomban Wendling Date: Wed May 21 16:08:38 2014 +0200 Don't use deprecated gdk_get_display() src/socket.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 0a03e414e743fbc82c5b43814a1b88646c0f6026 Author: Frank Lanitz Date: Tue May 20 20:24:16 2014 +0200 Fix a little typo on Dutch translation Fixes a little typo on Dutch translation reported by MarioJC po/nl.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit df5edd00322e637e2a673f9ea502092f2b4ee2b9 Author: Colomban Wendling Date: Mon May 19 03:19:09 2014 +0200 Scintilla: fix missing redraws on GTK < 3.9.2 Also, make the recent redraw fixes depend on the GTK version Scintilla is running against, rather than built against. This allows for the same build to work with both GTK < 3.9.2 or >= 3.9.2. scintilla/gtk/ScintillaGTK.cxx | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) commit e566435dfae4e410f65efbb463f682221788354c Merge: f3d96ef91 67329f2b9 Author: Colomban Wendling Date: Sat May 17 22:23:43 2014 +0200 Merge branch 'scintilla-update-342' This fixes flickering under GTK >= 3.10. commit 67329f2b9860a970cf9afe6bf85b25ef7402df6e Author: Colomban Wendling Date: Sat May 17 22:17:44 2014 +0200 Update for new Scintilla styles The new C styles escapesequence and taskmarker are currently mapped conservatively, and may benefit from a more visible mapping. data/filetypes.c | 2 ++ src/highlighting.c | 6 ++++-- src/highlightingmappings.h | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) commit 9bcdd64be9add144cc7cfbb9456797511631e300 Author: Colomban Wendling Date: Sat May 17 22:15:57 2014 +0200 Update Scintilla to 3.4.2 pre-release scintilla/gtk/ScintillaGTK.cxx | 65 ++- scintilla/include/Platform.h | 24 +- scintilla/include/SciLexer.h | 13 + scintilla/include/Scintilla.h | 5 +- scintilla/include/Scintilla.iface | 22 +- scintilla/lexers/LexCPP.cxx | 486 ++++++++++++---- scintilla/lexers/LexHTML.cxx | 8 +- scintilla/lexers/LexLua.cxx | 2 +- scintilla/lexlib/LexerModule.h | 2 +- scintilla/lexlib/PropSetSimple.cxx | 5 - scintilla/scintilla_changes.patch | 3 +- scintilla/src/CallTip.cxx | 63 +- scintilla/src/CharClassify.cxx | 5 - scintilla/src/ContractionState.cxx | 4 + scintilla/src/ContractionState.h | 1 + scintilla/src/Document.cxx | 113 ++-- scintilla/src/Document.h | 20 +- scintilla/src/Editor.cxx | 1121 +++++++++++++++++++----------------- scintilla/src/Editor.h | 11 +- scintilla/src/Indicator.cxx | 72 +-- scintilla/src/LineMarker.cxx | 168 +++--- scintilla/src/PositionCache.cxx | 19 +- scintilla/src/PositionCache.h | 2 +- scintilla/src/RESearch.cxx | 5 - scintilla/src/ScintillaBase.cxx | 59 +- scintilla/src/Selection.cxx | 8 + scintilla/src/Selection.h | 1 + scintilla/src/ViewStyle.cxx | 8 +- scintilla/src/ViewStyle.h | 2 +- scintilla/src/XPM.cxx | 8 +- scintilla/version.txt | 2 +- 31 files changed, 1381 insertions(+), 946 deletions(-) commit 4e0193d8f14ece47fa30ce7239e4e49c482f457b Author: Colomban Wendling Date: Thu May 15 18:08:25 2014 +0200 Zephir: add some tag parser tests tests/ctags/Makefile.am | 2 ++ tests/ctags/return-hint.zep | 14 ++++++++++++++ tests/ctags/return-hint.zep.tags | 5 +++++ tests/ctags/simple.zep | 19 +++++++++++++++++++ tests/ctags/simple.zep.tags | 5 +++++ 5 files changed, 45 insertions(+) commit b1f93c29770a9de30c2172ce7ee6ad5ca981c9a4 Author: Colomban Wendling Date: Thu May 15 17:03:56 2014 +0200 Add Zephir filetype data/Makefile.am | 3 ++- data/filetype_extensions.conf | 1 + data/filetypes.zephir | 24 ++++++++++++++++++++++++ src/filetypes.c | 1 + src/filetypes.h | 1 + src/highlighting.c | 2 ++ src/highlightingmappings.h | 7 +++++++ src/symbols.c | 2 ++ 8 files changed, 40 insertions(+), 1 deletion(-) commit f6068d0e86331e65422bd6542b010f2d2ca08203 Author: Colomban Wendling Date: Thu May 15 16:58:04 2014 +0200 Add a Zephir tag parser This Zephir parser uses the PHP parser with minor tweaking not to require the initial PHP open tag and skip function return type hints. tagmanager/ctags/parsers.h | 3 ++- tagmanager/ctags/php.c | 57 +++++++++++++++++++++++++++++++++++++++------- tagmanager/src/tm_parser.h | 1 + 3 files changed, 52 insertions(+), 9 deletions(-) commit c1aba3862d6c0b240c67b028779af04e8d7c84be Author: Colomban Wendling Date: Thu May 15 16:37:22 2014 +0200 Handle PHPSCRIPT like HTML but for markup cases src/editor.c | 4 ++++ src/highlighting.c | 2 ++ 2 files changed, 6 insertions(+) commit 7aa647b9d3ba412d3afb0ba2b907b0240386b25a Author: Colomban Wendling Date: Thu May 15 16:35:23 2014 +0200 Enable PHPSCRIPT lexer scintilla/scintilla_changes.patch | 2 +- scintilla/src/Catalogue.cxx | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit f3d96ef91db976a81b48f34a37ffd7c856dc7527 Author: Colomban Wendling Date: Thu May 15 03:13:11 2014 +0200 Re-generate with Glade 3.8.5 3.8.5 is supposed to fix the unstable file output, hopefully making further edits generate small diffs, not rearranging the whole file for no good reason. Note that this commit may introduce UI problems if the output actually isn't equivalent, the diff making it nearly impossible to review manually. Keep an eye open for such problems. data/geany.glade | 6601 ++++++++++++++++++++++++++---------------------------- 1 file changed, 3144 insertions(+), 3457 deletions(-) commit d8aaa59f9ab506e92f474bd9007127a6dbac016c Author: Colomban Wendling Date: Mon May 12 21:46:09 2014 +0200 Python: fix parsing of variables assigned to triple quoted strings Fixes #262. tagmanager/ctags/python.c | 66 ++++++++++++++++++++---------------------- tests/ctags/bug1906062.py.tags | 1 + 2 files changed, 33 insertions(+), 34 deletions(-) commit 0e5d699a139a8e7e4ed273b9fa248ee53150ac5a Author: Colomban Wendling Date: Mon May 12 21:41:43 2014 +0200 Python: remove a redundant macro tagmanager/ctags/python.c | 2 -- 1 file changed, 2 deletions(-) commit a6b1433e6673d4cdb159818187233f0cde3245e8 Author: Colomban Wendling Date: Wed May 7 16:00:49 2014 +0200 Fix modulo by zero, resulting in FPE Fix modulo zero error resulting in floating point exception, and then crash. This was introduced in fd6ce2da11e9f2d20cb96236753662c23feaecb4. Closes #265. src/keyfile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit de57548a716045a1bbadac290758759dd1d050ce Author: Colomban Wendling Date: Mon May 5 16:03:25 2014 +0200 Fix a few unlikely corner-case leaks Fix a few leaks that can only happen in case of programming error. Thanks to Pavel Roschin and his cppcheck for spotting them! src/symbols.c | 3 ++- src/templates.c | 3 ++- src/utils.c | 6 +++--- 3 files changed, 7 insertions(+), 5 deletions(-) commit f366150f7a12de1ee591c4c14771510e811fbf26 Author: Colomban Wendling Date: Mon May 5 14:52:05 2014 +0200 Fix return with no value within a function returning non-void (oops) src/editor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 435d32ad1dc048031319775ff73c21ea5ba889db Author: Colomban Wendling Date: Mon May 5 14:49:26 2014 +0200 Fix duplicate msgids in Japanese translation (oops) 75e10f49fc8b12b5fefc719e0e15e2dfe43eeda3 broke Japanese translation because it had been re-generated since the first recent mnemonic changes, leading for the automatic update in that commit to create duplicate entries. po/ja.po | 28 ++++------------------------ 1 file changed, 4 insertions(+), 24 deletions(-) commit 70ce9d81417fd9cfe23978ca750ad6977c24f998 Author: Colomban Wendling Date: Mon May 5 05:32:52 2014 +0200 Small update of the British English translation for new and updated strings po/en_GB.po | 217 ++++++++++++++++++++++-------------------------------------- 1 file changed, 80 insertions(+), 137 deletions(-) commit 75e10f49fc8b12b5fefc719e0e15e2dfe43eeda3 Author: Colomban Wendling Date: Mon May 5 04:21:39 2014 +0200 Update translations for recent mnemonic and wording fixes There is no need to require the translators to review their translation for these changes as the mnemonics and wordings are specific to the language. The update here will only save translators from having to manually check and and remove the fuzzy marks from those strings. po/ar.po | 44 +++++++++++++++--------------- po/ast.po | 44 +++++++++++++++--------------- po/be.po | 44 +++++++++++++++--------------- po/bg.po | 44 +++++++++++++++--------------- po/ca.po | 44 +++++++++++++++--------------- po/cs.po | 44 +++++++++++++++--------------- po/de.po | 44 +++++++++++++++--------------- po/el.po | 44 +++++++++++++++--------------- po/en_GB.po | 90 ++++++++++++++++++++++++++++++------------------------------- po/es.po | 44 +++++++++++++++--------------- po/et.po | 44 +++++++++++++++--------------- po/eu.po | 44 +++++++++++++++--------------- po/fa.po | 76 +++++++++++++++++++++++++-------------------------- po/fi.po | 44 +++++++++++++++--------------- po/fr.po | 44 +++++++++++++++--------------- po/gl.po | 44 +++++++++++++++--------------- po/he.po | 44 +++++++++++++++--------------- po/hi.po | 44 +++++++++++++++--------------- po/hu.po | 44 +++++++++++++++--------------- po/id.po | 44 +++++++++++++++--------------- po/it.po | 44 +++++++++++++++--------------- po/ja.po | 42 ++++++++++++++--------------- po/kk.po | 44 +++++++++++++++--------------- po/ko.po | 44 +++++++++++++++--------------- po/lb.po | 44 +++++++++++++++--------------- po/lt.po | 44 +++++++++++++++--------------- po/mn.po | 44 +++++++++++++++--------------- po/nl.po | 44 +++++++++++++++--------------- po/nn.po | 44 +++++++++++++++--------------- po/pl.po | 44 +++++++++++++++--------------- po/pt.po | 44 +++++++++++++++--------------- po/pt_BR.po | 44 +++++++++++++++--------------- po/ro.po | 44 +++++++++++++++--------------- po/ru.po | 44 +++++++++++++++--------------- po/sk.po | 44 +++++++++++++++--------------- po/sl.po | 44 +++++++++++++++--------------- po/sr.po | 44 +++++++++++++++--------------- po/sv.po | 44 +++++++++++++++--------------- po/tr.po | 44 +++++++++++++++--------------- po/uk.po | 44 +++++++++++++++--------------- po/vi.po | 44 +++++++++++++++--------------- po/zh_CN.po | 44 +++++++++++++++--------------- po/zh_TW.po | 44 +++++++++++++++--------------- 43 files changed, 983 insertions(+), 985 deletions(-) commit 1e405ce88e8e1f99f442aaed937cab7af99e5f2b Author: Colomban Wendling Date: Mon May 5 05:05:09 2014 +0200 Keep exact menu item string as keybinding label Using the exact same string avoids duplicate translation, and here only mnemonic changes were introduced with commit 95306ac8db4fc38ad7ba7e172328cef5117efaf0. src/keybindings.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 1e50962de2c7afcd132c3c10c2fc7fd6ea7d6a31 Author: Colomban Wendling Date: Mon May 5 02:34:17 2014 +0200 Fix some conflicting mnemonics in the menus data/geany.glade | 32 ++++++++++++++++---------------- src/keybindings.c | 8 ++++---- 2 files changed, 20 insertions(+), 20 deletions(-) commit e61bba1bc36e1fc801685a23f0ea47d7f31aa293 Author: Matt Copperwaite Date: Mon Oct 28 16:03:02 2013 +0000 Reword "replace by tabs/spaces" as "replace with" data/geany.glade | 10 +++++----- doc/geany.html | 8 ++++---- doc/geany.txt | 8 ++++---- src/document.c | 4 ++-- src/keybindings.c | 4 ++-- 5 files changed, 17 insertions(+), 17 deletions(-) commit f94976495d09d3e2b709a51efd6f83577a7eca45 Author: Matthew Brush Date: Thu May 1 17:25:22 2014 -0700 Add more details about menu mnemonics README.I18N | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) commit 9b6b5f2401a4d20ee3a5aa7300e36b50384e0653 Author: Frank Lanitz Date: Sun May 4 12:05:20 2014 +0200 Adding an HTML5-template in addition to xhtml 1.0 strict one data/Makefile.am | 1 + data/templates/files/file_html5.html | 14 ++++++++++++++ 2 files changed, 15 insertions(+) commit b2ce441fb1ac7c463232d131fde0e58901c7f9b9 Author: Matthew Brush Date: Sat May 3 21:37:41 2014 -0700 Update Vala file template Vala is not Java data/templates/files/main.vala | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit f1923c79b43099a9929dcc99aeffda65e72bb1d3 Author: Matthew Brush Date: Sat May 3 21:22:00 2014 -0700 Simulate `main` function in Python data/templates/files/main.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 1f67e42b1206165f6a96e0e892f6e3bd604a39a8 Author: Matthew Brush Date: Sat May 3 21:20:18 2014 -0700 Replace tabs with 4 spaces in main.py template data/templates/files/main.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit ace6d6b3edca4033e8f012dfe9247a2220b55c4c Author: NiKaro127 Date: Thu Sep 26 10:10:16 2013 +0200 Add VBS extension to FreeBasic syntax Just adding '*.vbs' to 'FreeBasic' line. data/filetype_extensions.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 007d5395c29e89318b52fd70d9b73518fb76dfb3 Author: Igor Shaula Date: Sun Oct 28 00:45:16 2012 +0300 Disable commenting out blank lines by 'Toggle line commentation' src/editor.c | 15 +++++++++------ src/editor.h | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) commit 53d17aecfd3176dcbc12a537f551f01f060bb268 Author: Colomban Wendling Date: Sat May 3 18:46:29 2014 +0200 CSS: remove some pseudo elements listed as pseudo classes data/filetypes.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1944e26ee03bc0574769b2563f6ad28fb7581d32 Author: Colomban Wendling Date: Sat May 3 18:45:07 2014 +0200 CSS: fix mappings to non-existing styles data/filetypes.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 81114783565b1c8db235f1560bd523795066b5b9 Author: Frank Lanitz Date: Sat May 3 08:25:08 2014 +0200 Update of Japanese translation po/ja.po | 916 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 459 insertions(+), 457 deletions(-) commit fd6ce2da11e9f2d20cb96236753662c23feaecb4 Author: Colomban Wendling Date: Sat May 3 00:52:23 2014 +0200 Fix UI updating after loading a project When loading a project and focusing the last document, the UI wouldn't get properly updated for the displayed file -- because for performance reasons we disable notebook page switch handlers when loading session files. Fix this by synthesizing a notebook page switch event when done loading. src/keyfile.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit 09b2cf159291e87699782d75bc965861351f0e6e Author: Colomban Wendling Date: Fri May 2 21:41:02 2014 +0200 Fix Waf build for recent Doxyfile changes Recent changes to Doxyfile.in added new placeholders the build system has to replace, and Waf recognized them but failed, not knowing what to replace them with. wscript | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit e186ba50c0b8b8f824f11c75bc584afe4cc40cdd Merge: cc64ee757 7a5883e29 Author: Colomban Wendling Date: Fri May 2 01:14:39 2014 +0200 Merge branch 'b4n/use-rst2pdf' commit cc64ee7578456105f51c008f5f5a2d43f8d6dd0f Merge: f205c9736 a13b033d4 Author: Colomban Wendling Date: Thu May 1 15:12:42 2014 +0200 Merge branch 'plugin-dialog-cleanup' commit a13b033d424bd25d013518d4c18d20eb681042f4 Author: Colomban Wendling Date: Thu May 1 03:18:04 2014 +0200 Hide column headers in plugin manager dialog They are not very useful and waste both vertical (the headers themselves) and horizontal (first column wider because of title) screen space. src/plugins.c | 1 + 1 file changed, 1 insertion(+) commit f205c97362b26563c221268cfe555c29827456e5 Author: Frank Lanitz Date: Thu May 1 00:35:16 2014 +0200 Update open string on filebrowser plugin to make clearer, that the file will be opened in Geany plugins/filebrowser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2b1616d8295c3fb2d02325e353d5fae36f93905e Author: Frank Lanitz Date: Thu May 1 00:21:19 2014 +0200 Update tooltip string for check_cmdline_new_files data/geany.glade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 95306ac8db4fc38ad7ba7e172328cef5117efaf0 Author: Frank Lanitz Date: Thu May 1 00:07:23 2014 +0200 Try to fix some duplicated accelerators inside Edit->Commands data/geany.glade | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 2be9b551cdf1ac34702cdc14c1695d86964dcd22 Merge: 3f50f357d d58c34458 Author: Enrico Tröger Date: Tue Apr 29 21:55:40 2014 +0200 Merge pull request #249 from b4n/b4n/waf/link-libm Waf: correctly link libm as required commit 3f50f357d358873cd6977f201cc25482b9ec1c58 Author: Frank Lanitz Date: Tue Apr 29 14:13:42 2014 +0200 Adding while to list of SQL keywords data/filetypes.sql | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit d58c344585b5fbb4d34a792da41aca7bb6655b93 Author: Colomban Wendling Date: Tue Apr 29 02:03:06 2014 +0200 Waf: correctly link libm as required wscript | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 7a5883e29448c1ffba0b9f6ec083848ec23340f1 Author: Colomban Wendling Date: Mon Apr 28 17:04:46 2014 +0200 Use rst2pdf instead of rst2latex and pdflatex to generate PDF manual doc/Makefile.am | 22 +++++----------------- m4/geany-docutils.m4 | 17 +++++++---------- 2 files changed, 12 insertions(+), 27 deletions(-) commit 16072c9cb5a584ae8227a693b05a9703eaa3660f Merge: 0605a56c5 5ff38b4da Author: Colomban Wendling Date: Mon Apr 28 16:40:44 2014 +0200 Merge branch 'ntrel/fix-valid-doc-dox' commit 0605a56c56727a5c246eb06ed85e4ace355c0c29 Author: Colomban Wendling Date: Mon Apr 28 16:38:59 2014 +0200 Enable PDF generation on distcheck Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit db995a37cf8aee7665c8ec5d6beb7ec1221e7609 Author: Colomban Wendling Date: Mon Apr 28 16:38:39 2014 +0200 Don't truncate pdflatex warnings doc/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 86d2e90d4c4e2bbb0e11130939a0eb79348854ef Author: Colomban Wendling Date: Mon Apr 28 16:38:12 2014 +0200 Fix distchecking with PDF enabled doc/Makefile.am | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 5ff38b4daa332b1d90af991dd369857df3798b70 Author: Nick Treleaven Date: Thu Oct 31 14:14:00 2013 +0000 Fix document pointer documentation Improve clarity and remove wrong documentation about using `is_valid` to check if a document still exists. src/document.c | 15 ++++++++------- src/document.h | 8 +++----- 2 files changed, 11 insertions(+), 12 deletions(-) commit d65c5d107e27079e0e11e92d1182a499ea77245a Author: Nick Treleaven Date: Mon Apr 28 11:57:35 2014 +0100 Replace autoconf directory variables with sed (Windows makefile) doc/makefile.win32 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 8ee8d8c4f134e8cea167759b60890147197a4c8c Author: Matthew Brush Date: Sun Apr 27 19:15:48 2014 -0700 Unconditionally install HTML manual (oops) doc/Makefile.am | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit 29b525797a54ec973caffba819380eebf143fac8 Author: Matthew Brush Date: Sun Apr 27 18:02:39 2014 -0700 Add `--enable-html-docs` to distcheck flags FIXME: `--enable-pdf-docs` not added because I can't make it pass distcheck due to quirks of `pdflatex` (see comments in `doc/Makefile.am`) Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 86cd6c50274ef02da3e6abfb4957e9483b8044a8 Author: Matthew Brush Date: Sun Apr 27 16:49:00 2014 -0700 Use improved Docutils Autotools support FIXME: The `install-html-local` rule might be wrong since it's copying `$(srcdir)/geany.html` instead of `$(builddir)/geany.html` because for some reason generated `geany.html` is checked-in to version control in the source `doc` directory. .gitignore | 5 +++ doc/Makefile.am | 106 ++++++++++++++++++++++++++++++++++++++------------------ 2 files changed, 78 insertions(+), 33 deletions(-) commit 87f57812586dc1045ff9e95874f908fd87307ab3 Author: Matthew Brush Date: Sun Apr 27 15:19:56 2014 -0700 Improve Docutils (and friends) support in Autotools * Add `--enable-html-docs` and `--enable-pdf-docs` arguments (off by default) * Add `RST2HTML`, `RST2LATEX` and `PDFLATEX` to override path to these tools. * Add HTML and PDF doc status messages to configure summary configure.ac | 2 ++ m4/geany-docutils.m4 | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) commit 5eb526f9d0385fb62f83425c3ccdc13b3940d17f Author: Colomban Wendling Date: Sun Apr 27 22:36:25 2014 +0200 Improve implementation of utils_str_equal() src/utils.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 8befd03b7c4da86d67e2ec61181fa7380e84beb1 Author: Colomban Wendling Date: Sun Apr 27 19:02:31 2014 +0200 Force enabling API docs on distcheck Makefile.am | 1 + 1 file changed, 1 insertion(+) commit 1794be565cc068a2cfa8b3d4273d246026807154 Author: Colomban Wendling Date: Sun Apr 27 18:41:36 2014 +0200 Remove unnecessary $(builddir) prefixes doc/Makefile.am | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit bde741ab433e4f4c1e11601940abb3ede6839023 Author: Colomban Wendling Date: Sun Apr 27 18:37:59 2014 +0200 Fix doc/Doxyfile.stamp rule portability $< is only portable in suffix rules, so don't use it there. doc/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 63a2f075f6c910add7f56e69c9d24b2757aee5fa Merge: d769e51e9 5758b9ca6 Author: Colomban Wendling Date: Sun Apr 27 18:06:01 2014 +0200 Merge branch 'ntrel/doc-macro-examples' commit d769e51e97a5e9f5572b91060e4d1377c56bde1a Author: Colomban Wendling Date: Sun Apr 27 17:49:02 2014 +0200 Fail if Doxygen is enabled but not found m4/geany-doxygen.m4 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit c67caf03a555dc0f2f3b433b5eab649ec19ff189 Author: Nick Treleaven Date: Sun Apr 27 16:39:08 2014 +0100 Fix unsigned >= 0 comparison warning tagmanager/ctags/r.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 916b65b661a505a51f45a6169b7798067a98e76e Author: Nick Treleaven Date: Sun Apr 27 16:38:37 2014 +0100 Fix sign comparison warning src/win32.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5758b9ca679eb3813c5d8582fe998f76ea507545 Author: Nick Treleaven Date: Sun Apr 27 15:53:18 2014 +0100 Add foreach_document(), documents[] examples src/document.c | 6 ++++-- src/document.h | 20 ++++++++++++++++---- 2 files changed, 20 insertions(+), 6 deletions(-) commit 5475d15b87ad45bfbe266eaddf3ef854dfa3b62b Author: Matthew Brush Date: Sun Apr 27 03:53:59 2014 -0700 Remove comment noise from `doc/plugins.dox` and make it a build depend doc/Makefile.am | 1 + doc/plugins.dox | 712 ++++++++++++++++++++++++++++---------------------------- 2 files changed, 357 insertions(+), 356 deletions(-) commit 747be883cd747ba8556e887c3608c5a3aa6d608e Author: Matthew Brush Date: Sun Apr 27 03:16:48 2014 -0700 Re-enable Markdown support now that major bugs are fixed I went through each link from the API docs and everything seems fine since the extra leading whitespaces were removed in commits `edaa6f713f1b8e037a56652da15032aac56e2227` and `67ae7707364ecc09da8675803b48575d61b82fcf`. doc/Doxyfile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 206cc158a87d83a4dcb60575aac57f43d880d5c7 Author: Matthew Brush Date: Sun Apr 27 03:06:07 2014 -0700 Remove some redundant path info from `doc/Makefile.am` doc/Makefile.am | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit c5cefd20df7743c30b07d9e75a405824db8f4fb8 Author: Matthew Brush Date: Sat Apr 26 23:11:53 2014 -0700 Use improved Doxygen Autotools support .gitignore | 1 + doc/Makefile.am | 26 ++++++++++++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) commit 595b4459843ad75b353fcb0c6b62f95dc21b2f8e Author: Matthew Brush Date: Sat Apr 26 23:05:22 2014 -0700 Improve Doxygen support in Autotools build system * Add `m4/geany-doxygen.m4` file * Support `DOXYGEN` environment variable setting which Doxygen to use * Support `--enable-api-docs` to activate building Doxygen docs (off by default) configure.ac | 2 ++ m4/geany-doxygen.m4 | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+) commit 93560c5e53317892ea18eeb70cdf128d75e5dd74 Author: Matthew Brush Date: Sat Apr 26 21:15:30 2014 -0700 Support out-of-tree builds by not hardcoding paths doc/Doxyfile.in | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 67ae7707364ecc09da8675803b48575d61b82fcf Author: Colomban Wendling Date: Sun Apr 27 04:31:28 2014 +0200 Strip more double leading spaces doc/pluginsignals.c | 218 +++++++++++++++++++++++++++------------------------- 1 file changed, 113 insertions(+), 105 deletions(-) commit edaa6f713f1b8e037a56652da15032aac56e2227 Author: Colomban Wendling Date: Sun Apr 27 04:08:40 2014 +0200 Strip double leading spaces These are weird and break Doxygen Markdown support. doc/plugins.dox | 344 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 172 insertions(+), 172 deletions(-) commit 82f556d2a5e1962605cc9df357e51443395f176c Author: Colomban Wendling Date: Sun Apr 27 04:05:07 2014 +0200 Disable Markdown support in our Doxyfile At least the "Plugin Writing Guidelines" and "Plugin HowTo" sections are displaying undesirable side effects of Markdown support, so disable it at least for now. doc/Doxyfile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bc4e76582b24c822f9acdce242e322d9b529805d Merge: 6cba1e0a4 b28e5db7c Author: Colomban Wendling Date: Sun Apr 27 02:43:20 2014 +0200 Merge branch 'scriptum/sidebar-middle-button-close' commit b28e5db7ce72965cc5e45da41e2ab8d768b593c1 Author: Pavel Roschin Date: Sat Sep 28 15:56:35 2013 +0400 Close documents in sidebar with middle mouse button src/sidebar.c | 5 +++++ 1 file changed, 5 insertions(+) commit 605ec0b02ec8f563fc683b76f2b5684018bcfa31 Author: Colomban Wendling Date: Fri Apr 25 18:46:14 2014 +0200 Cleanup Plugin Manager dialog Merge "Name" and "Description" columns, and move plugin details to tooltips. src/plugins.c | 168 ++++++++++++++++++++++++++++++---------------------------- 1 file changed, 86 insertions(+), 82 deletions(-) commit 6cba1e0a47794282932383a08c8cd41ce65c1f21 Merge: d775d28c2 b77e81019 Author: Colomban Wendling Date: Wed Apr 16 18:58:31 2014 +0200 Merge branch '1.24' commit b77e8101996a0e846931346060be9226c5c85219 Author: Colomban Wendling Date: Wed Apr 16 17:19:22 2014 +0200 Re-generate HTML manual doc/geany.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit b0cdf31d902f9cb6cb43051dd478ce49a6883fad Author: Colomban Wendling Date: Wed Apr 16 17:19:06 2014 +0200 Set release date NEWS | 2 +- doc/geany.1.in | 2 +- doc/geany.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit d775d28c226097c24e83e34067b47869d9c33cd3 Author: Colomban Wendling Date: Tue Apr 15 15:47:28 2014 +0200 Small update of the French translation po/fr.po | 699 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 357 insertions(+), 342 deletions(-) commit 5217d683caf6b9d747125923c55eaea16515b347 Author: Colomban Wendling Date: Tue Apr 15 15:42:51 2014 +0200 Reword "Detect from file extension" from the open dialog We don't actually detect from file extension only, and other references of the feature always use "Detect from file", so use it also in the open dialog. src/dialogs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bb61dfcdc3eef225f7eb61c6c48651b300eb7bbe Author: Colomban Wendling Date: Tue Apr 15 15:30:00 2014 +0200 Add a translation context to the open dialog's "View" button The "View" button string is the same as the View menu one, but one is an action (verb) and the other a noun, and as such might need to be translated differently. src/dialogs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 45f193a17a8722dce003a05a84b092610f1c0ba7 Merge: aeab183ef 420891ae8 Author: Colomban Wendling Date: Tue Apr 15 15:57:26 2014 +0200 Merge branch 'cleaner-filetype-combo-box' commit aeab183ef2a40943a4b7751a3e5127a5de63749a Merge: a96a2b08c 8c5e198cf Author: Colomban Wendling Date: Tue Apr 15 15:57:13 2014 +0200 Merge branch 'unified-encoding-combo-boxes' commit 420891ae81b5bd470ba62c9579edd37e7c0e95bd Author: Colomban Wendling Date: Fri Jan 17 22:56:04 2014 +0100 Group filetypes in the Open dialog filetype combo box Display the filetypes in the Open dialog filetype combo box grouped, as they are in the filetypes menu. This makes it easier to select a filetype, because they are better sorted and follows the filetypes menu layout. src/dialogs.c | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 113 insertions(+), 12 deletions(-) commit 8c5e198cf12c619596bae2b5976f52c7e52bad80 Author: Colomban Wendling Date: Fri Jan 17 21:56:51 2014 +0100 Unify encoding combo boxes Make all encoding combo box display a list with encodings grouped by categories into sub-menus, making it easier to find the appropriate encoding than in a big single-level list. This is what was used in the Open dialog, but not in the Preferences dialog or the Find in Files dialog. This also makes the encoding combo boxes behave more like the encoding menus. data/geany.glade | 18 +-------- src/dialogs.c | 117 +++---------------------------------------------------- src/encodings.c | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/encodings.h | 9 +++++ src/prefs.c | 47 ++++++++++++---------- src/search.c | 17 ++------ src/symbols.c | 45 ++------------------- src/ui_utils.c | 91 +++++++++++++++++++++++++++++++++++++++++++ src/ui_utils.h | 7 ++++ 9 files changed, 264 insertions(+), 204 deletions(-) commit a851f87a62a970c380469ba7daf707df249d017b Author: Colomban Wendling Date: Tue Apr 15 14:58:36 2014 +0200 Update NEWS NEWS | 3 +++ 1 file changed, 3 insertions(+) commit 64bc67916d9d27c7e4ddb0d0a399cbf157a135cc Author: Matthew Brush Date: Mon Apr 14 19:39:07 2014 -0700 Distribute `geany.gtkrc` and `geany.css` files Maybe they aren't dist'ed if they are in Automake conditional? This probably makes both GTK2 and GTK3 files installed unconditionally. Makefile.am | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 15a2366e361057b26f91c51be8e0dccdf165586e Author: Colomban Wendling Date: Tue Apr 15 14:57:54 2014 +0200 Revision bump NEWS | 3 +++ configure.ac | 2 +- doc/geany.txt | 2 +- geany.exe.manifest | 2 +- geany.nsi | 4 ++-- geany_private.rc | 4 ++-- win32-config.h | 2 +- wscript | 2 +- 8 files changed, 12 insertions(+), 9 deletions(-) commit a96a2b08ce5c70bcb2955ce5b7ee70b60f431117 Author: Colomban Wendling Date: Tue Apr 15 14:41:26 2014 +0200 Cleanup documentation files installation Don't use wildcards to select files to install, nor manually perform the installation when Automake could do it for us. doc/Makefile.am | 54 +++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 37 insertions(+), 17 deletions(-) commit 451d58a2dd8eb0c068b5b24bbf663b4a8ef4b48e Author: Colomban Wendling Date: Tue Apr 15 14:30:00 2014 +0200 Cleanup data files installation Don't use wildcards to select files to install, nor manually perform the installation when Automake could do it for us. Using wildcards makes it hard to know what will really be installed, and may results in installing files not part of the distribution. HACKING | 2 + Makefile.am | 55 +++----------------------- configure.ac | 1 + data/Makefile.am | 116 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 124 insertions(+), 50 deletions(-) commit d11066561e79d3a907b714ae68c37022f8488ccd Merge: 54f3c0a90 157b44f44 Author: Matthew Brush Date: Mon Apr 14 19:50:50 2014 -0700 Merge pull request #242 from codebrainz/dist-gtkrc Distribute `geany.gtkrc` and `geany.css` files commit 157b44f443557f05543a9f4d05322ef1f4f24903 Author: Matthew Brush Date: Mon Apr 14 19:39:07 2014 -0700 Distribute `geany.gtkrc` and `geany.css` files Maybe they aren't dist'ed if they are in Automake conditional? This probably makes both GTK2 and GTK3 files installed unconditionally. Makefile.am | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 54f3c0a904245c7be41d4ed940ecba0250dc725f Merge: 0b4ec549f 1abee9043 Author: Colomban Wendling Date: Mon Apr 14 20:32:59 2014 +0200 Merge branch 'wip/configurable-mime-type-gicon' commit 1abee90434649c6f84f037021743cb11699f9555 Author: Colomban Wendling Date: Mon Apr 14 20:27:35 2014 +0200 Plug a memory leak src/ui_utils.c | 3 +++ 1 file changed, 3 insertions(+) commit 3ec0369f474935c8d137a44dc3c21ac7054be3b1 Merge: 0b4ec549f 01e7fe4b7 Author: Colomban Wendling Date: Mon Apr 14 20:21:40 2014 +0200 Merge branch 'wip/configurable-mime-type--gicon' into wip/configurable-mime-type-gicon commit 0b4ec549fc02d781a6213fad109f954dcaf28f40 Merge: d32ae8320 06068d38d Author: Colomban Wendling Date: Mon Apr 14 16:46:30 2014 +0200 Merge branch 'scintilla-update-341' commit 06068d38d8d49f365c8b1c3ee3de6df08a04998d Author: Colomban Wendling Date: Mon Apr 14 16:37:29 2014 +0200 Fix a typo in the update script scripts/update-scintilla.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9a41f919c17ab0fffd11e4979a75ec562e01d4d2 Author: Colomban Wendling Date: Mon Apr 14 16:36:05 2014 +0200 Update mappings for new Scintilla data/filetypes.c | 1 + data/filetypes.freebasic | 6 +++++- src/highlighting.c | 6 +++++- src/highlightingmappings.h | 5 +++++ 4 files changed, 16 insertions(+), 2 deletions(-) commit b81c35e4e3a6fd8fb780d67f2f4783ffe3761eaf Author: Colomban Wendling Date: Mon Feb 3 14:19:21 2014 +0100 Fix const promotion with updated Scintilla src/editor.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 6c5a0dd7179b3f0ff183134059d596632a52e9cb Author: Colomban Wendling Date: Mon Apr 14 16:25:01 2014 +0200 Update Scintilla to version 3.4.1 scintilla/Makefile.am | 1 + scintilla/gtk/Converter.h | 4 +- scintilla/gtk/PlatGTK.cxx | 38 ++-- scintilla/gtk/ScintillaGTK.cxx | 50 +++-- scintilla/include/Platform.h | 12 +- scintilla/include/SciLexer.h | 19 +- scintilla/include/Scintilla.h | 42 ++-- scintilla/include/Scintilla.iface | 142 +++++++----- scintilla/lexers/LexAbaqus.cxx | 15 -- scintilla/lexers/LexAsm.cxx | 13 +- scintilla/lexers/LexBash.cxx | 9 +- scintilla/lexers/LexBasic.cxx | 92 ++++++-- scintilla/lexers/LexCPP.cxx | 44 +++- scintilla/lexers/LexCmake.cxx | 14 +- scintilla/lexers/LexForth.cxx | 9 - scintilla/lexers/LexFortran.cxx | 235 ++++++++++--------- scintilla/lexers/LexHTML.cxx | 29 +-- scintilla/lexers/LexMarkdown.cxx | 8 +- scintilla/lexers/LexMatlab.cxx | 13 +- scintilla/lexers/LexOthers.cxx | 3 +- scintilla/lexers/LexPerl.cxx | 2 +- scintilla/lexers/LexSQL.cxx | 2 +- scintilla/lexers/LexTxt2tags.cxx | 8 +- scintilla/lexers/LexVHDL.cxx | 2 +- scintilla/lexlib/Accessor.h | 2 +- scintilla/lexlib/CharacterCategory.cxx | 3 +- scintilla/lexlib/LexAccessor.h | 7 +- scintilla/lexlib/LexerModule.cxx | 2 +- scintilla/lexlib/LexerSimple.h | 2 +- scintilla/lexlib/PropSetSimple.cxx | 4 +- scintilla/lexlib/SparseState.h | 2 +- scintilla/lexlib/StringCopy.h | 36 +++ scintilla/lexlib/StyleContext.h | 4 +- scintilla/lexlib/SubStyles.h | 2 +- scintilla/lexlib/WordList.cxx | 10 +- scintilla/lexlib/WordList.h | 2 +- scintilla/scintilla_changes.patch | 8 +- scintilla/src/AutoComplete.cxx | 14 +- scintilla/src/AutoComplete.h | 6 +- scintilla/src/CallTip.cxx | 8 +- scintilla/src/CaseConvert.cxx | 12 +- scintilla/src/CellBuffer.cxx | 4 + scintilla/src/CellBuffer.h | 4 +- scintilla/src/Decoration.h | 2 +- scintilla/src/Document.cxx | 8 +- scintilla/src/Document.h | 14 +- scintilla/src/Editor.cxx | 400 +++++++++++++++++---------------- scintilla/src/Editor.h | 23 +- scintilla/src/ExternalLexer.cxx | 8 +- scintilla/src/ExternalLexer.h | 10 +- scintilla/src/FontQuality.h | 3 + scintilla/src/KeyMap.cxx | 21 +- scintilla/src/KeyMap.h | 18 +- scintilla/src/LineMarker.cxx | 47 ++-- scintilla/src/Partitioning.h | 4 +- scintilla/src/PerLine.cxx | 8 +- scintilla/src/PositionCache.cxx | 54 ++++- scintilla/src/PositionCache.h | 7 +- scintilla/src/RESearch.cxx | 36 +-- scintilla/src/RESearch.h | 2 +- scintilla/src/ScintillaBase.cxx | 28 ++- scintilla/src/ScintillaBase.h | 1 + scintilla/src/Selection.cxx | 17 +- scintilla/src/Selection.h | 5 +- scintilla/src/SplitVector.h | 4 +- scintilla/src/UniConversion.cxx | 2 +- scintilla/src/ViewStyle.cxx | 14 +- scintilla/src/ViewStyle.h | 4 +- scintilla/src/XPM.cxx | 10 +- scintilla/src/XPM.h | 9 +- scintilla/version.txt | 2 +- 71 files changed, 1015 insertions(+), 684 deletions(-) commit d32ae832022361bbe14cb133fe0fd104d83166a8 Author: Colomban Wendling Date: Mon Apr 14 02:38:50 2014 +0200 Apply filetype-specific indentation settings for newly opened files Fix the check enabling filetype-specific indentation settings to also pass if the document has no filetype set yet, e.g. when opening it. src/document.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8f713377c403e6b0368ff1aae918876f756c1564 Merge: 24f2363fb 75542c6d3 Author: Colomban Wendling Date: Sun Apr 13 20:07:26 2014 +0200 Merge branch '1.25/safer-plugin_signal_connect' commit 75542c6d3c51663a0c23243a8c7cf2555fa12858 Author: Colomban Wendling Date: Fri Apr 11 23:04:14 2014 +0200 Add defensive checks on plugin_signal_connect()'s sensitive arguments src/pluginutils.c | 3 +++ 1 file changed, 3 insertions(+) commit 27a073f1a65c60e0568a5b379a6eaad385c717b0 Author: Colomban Wendling Date: Fri Apr 11 22:56:30 2014 +0200 Make plugin_signal_connect() safe on any object Watch the lifetime of objects referenced in plugin->signal_ids and remove our references to them if they get destroyed. This avoids possibly trying to disconnect signals on destroyed objects when the plugin is unloaded. Supporting this case is safer, and is useful for objects that may or may not outlive the plugin (like ScintillaObjects), because in such cases plugin_signal_connect() is handy to make sure the signals are disconnected if the object is still alive, but used to crash if the object was destroyed. src/plugindata.h | 2 +- src/pluginprivate.h | 3 +++ src/plugins.c | 34 ++++++++++++++++++++++++++++++++++ src/pluginutils.c | 11 +++++++++-- 4 files changed, 47 insertions(+), 3 deletions(-) commit 24f2363fb702ac5e8b87fc16b5b30d761abd4fb9 Author: Colomban Wendling Date: Sun Apr 13 19:33:23 2014 +0200 Post release version bump Say hello to Geany 1.25 "Veed"! NEWS | 3 +++ configure.ac | 2 +- doc/geany.txt | 2 +- geany.exe.manifest | 2 +- geany.nsi | 4 ++-- geany_private.rc | 4 ++-- src/geany.h | 2 +- win32-config.h | 2 +- wscript | 2 +- 9 files changed, 13 insertions(+), 10 deletions(-) commit 1514993a6a8a86e8ee464a12751c262ee14930d4 Author: Colomban Wendling Date: Sun Apr 13 18:02:49 2014 +0200 Fix generating distcheck on clean sources There is no point in runner.sh depending on the generated Geany executable, and this breaks running `make distcheck` before building the sources, as the Geany executable doesn't exist yet. tests/ctags/Makefile.am | 2 -- 1 file changed, 2 deletions(-) commit d28fb783c7def3b195465e645735c9816c6a91d3 Author: Colomban Wendling Date: Sun Apr 13 18:00:50 2014 +0200 Re-generate HTML manual doc/geany.html | 169 +++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 109 insertions(+), 60 deletions(-) commit 6f56bdd32da5d63daa9cc953a0f301a78b2073bf Author: Colomban Wendling Date: Sun Apr 13 18:00:39 2014 +0200 Set release date NEWS | 2 +- doc/geany.1.in | 2 +- doc/geany.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit ec3cc4dcbe789d304746a8804afd7ccc68f4c4c2 Author: Colomban Wendling Date: Sun Apr 13 17:26:53 2014 +0200 Add a few more bug references in NEWS NEWS | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 33cbd11a0f070c676adee771617120325c9b683f Merge: d52a918e3 187e06bcb Author: Enrico Tröger Date: Sun Apr 13 17:17:08 2014 +0200 Merge branch 'master' of github.com:geany/geany commit d52a918e3e626715b89bd894ef0b102246abd895 Author: Enrico Tröger Date: Sun Apr 13 17:16:56 2014 +0200 Add missing items, remove duplicates and fix typos NEWS | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) commit 187e06bcb1c8b604b8a5665a58401ecbd6e9b9ff Author: Colomban Wendling Date: Sun Apr 13 16:19:32 2014 +0200 Use proper argument lists src/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3533584d1e642ee6ff2ce724582ccb59fff13017 Author: Enrico Tröger Date: Sun Apr 13 16:02:14 2014 +0200 Add eht16's changes These are way too few changes from me over a one-year period :(. NEWS | 7 +++++++ 1 file changed, 7 insertions(+) commit 00fbbced252a2fba9427b3fe068dc1c17c4d136b Author: Colomban Wendling Date: Sun Apr 13 15:50:48 2014 +0200 Add some missing NEWS items NEWS | 3 +++ 1 file changed, 3 insertions(+) commit 725cf3ea5b2a3bb32deac1c868afe5c54ae97c57 Author: Colomban Wendling Date: Sun Apr 13 15:32:18 2014 +0200 Update NEWS for missing translation updates NEWS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8fe9fa68c110a395e2651e21f79810ea94901b1f Author: Colomban Wendling Date: Sun Apr 13 00:54:11 2014 +0200 Update displayed copyright years README | 2 +- doc/geany.html | 2 +- doc/geany.txt | 2 +- geany.nsi | 2 +- geany_private.rc | 2 +- po/ar.po | 2 +- po/ast.po | 2 +- po/be.po | 2 +- po/bg.po | 2 +- po/ca.po | 4 ++-- po/cs.po | 4 ++-- po/de.po | 4 ++-- po/el.po | 2 +- po/en_GB.po | 2 +- po/es.po | 4 ++-- po/et.po | 4 ++-- po/eu.po | 4 ++-- po/fa.po | 2 +- po/fi.po | 4 ++-- po/fr.po | 4 ++-- po/gl.po | 4 ++-- po/he.po | 4 ++-- po/hi.po | 2 +- po/hu.po | 4 ++-- po/id.po | 2 +- po/it.po | 4 ++-- po/ja.po | 4 ++-- po/kk.po | 4 ++-- po/ko.po | 2 +- po/lb.po | 2 +- po/lt.po | 4 ++-- po/mn.po | 2 +- po/nl.po | 2 +- po/nn.po | 2 +- po/pl.po | 2 +- po/pt.po | 4 ++-- po/pt_BR.po | 4 ++-- po/ro.po | 2 +- po/ru.po | 4 ++-- po/sk.po | 4 ++-- po/sl.po | 4 ++-- po/sr.po | 4 ++-- po/sv.po | 4 ++-- po/tr.po | 4 ++-- po/uk.po | 2 +- po/vi.po | 2 +- po/zh_CN.po | 4 ++-- po/zh_TW.po | 2 +- src/about.c | 2 +- 49 files changed, 73 insertions(+), 73 deletions(-) commit e802194ad395201cfddf6fd1548446244f2748f3 Author: Enrico Tröger Date: Sun Apr 13 15:14:35 2014 +0200 Re-add the previous workaround to remember the directory Geany was started from My previous fix (e1ce9cfbec) didn't fix all possible use cases (opening files from CLI when starting Geany). This one should close the gap. src/main.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 9462367afcd9a8757e58a3387ce76e0b913dabce Author: Frank Lanitz Date: Sun Apr 13 14:44:55 2014 +0200 Fix a little typo on NEWS NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cfe43e297930a4f4a59f25f1b737901a4f914fc9 Author: Enrico Tröger Date: Sun Apr 13 11:34:58 2014 +0200 Add colorschemes from the geany-themes project if available geany.nsi | 2 ++ 1 file changed, 2 insertions(+) commit e5eb69b20c103925a8a6494f5f4fc4d4ce8b978e Author: Enrico Tröger Date: Sun Apr 13 11:00:56 2014 +0200 Add linker flags -static-libgcc and -static-libstdc++ on Windows This seems necessary with newer gcc versions to not require libgcc*.dll libraries on runtime. wscript | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 9f294c25c316ef7165f1f0f75882f3ba8be9d608 Author: Enrico Tröger Date: Sun Apr 13 10:43:55 2014 +0200 Add --no-scm configure option to bypass SCM detection wscript | 6 ++++++ 1 file changed, 6 insertions(+) commit 6fce95cb10ab4ea57da33a224d181dcc0732509c Author: Frank Lanitz Date: Sat Apr 12 20:11:28 2014 +0200 Update list of updated translation of NEWS file NEWS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fc942f607d51083f94996e5a5f7cfddfd6612ca1 Merge: 148283356 929c7f740 Author: Frank Lanitz Date: Sat Apr 12 19:55:14 2014 +0200 Merge pull request #241 from kgkilo/master Updated Hungarian translation commit 148283356d0bde15925af4a613bb878829a576ea Author: Colomban Wendling Date: Sat Apr 12 16:17:52 2014 +0200 Fix a missing cast (oops) src/document.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3cf35f24c535f46dd549f4636b523ce8e48af5ec Author: Colomban Wendling Date: Sat Apr 12 15:59:07 2014 +0200 Fix possible crash on quit When quitting, we still have to destroy the Scintilla widget to avoid any possibility for us to receive signals from it after we destroyed the associated editor and/or document (used in signal handlers). I myself don't suffer from the issue, but it is theoretically possible for Scintilla to emit signals anytime before it is destroyed, so it is safer like this anyway. And an user on IRC suffered from crashes on quit because of this issue, so it seems to actually happen in some situations. src/document.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 929c7f7402d7b2da192673dc5859539da8c9d9e6 Author: kilo aka Gabor Kmetyko Date: Sat Apr 12 00:38:46 2014 +0200 Updated Hungarian translation po/hu.po | 1693 ++++++++++++++++++++++++++++---------------------------------- 1 file changed, 752 insertions(+), 941 deletions(-) commit f74b4ed494f467b0f2fd58ecbb7b1995ec38758a Author: Frank Lanitz Date: Fri Apr 11 23:29:51 2014 +0200 Update of Portuguese translation NEWS | 2 +- po/pt.po | 1106 +++++++++++++++++--------------------------------------------- 2 files changed, 305 insertions(+), 803 deletions(-) commit 95edb95a38dad3755a0b6fd5820b82d25c021f8f Author: Colomban Wendling Date: Fri Apr 11 22:47:10 2014 +0200 Add a warning about using plugin_signal_connect() on short-lived objects src/pluginutils.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit e656043874c922ce88886ca5fe47980f029fc0d7 Author: Enrico Tröger Date: Fri Apr 11 00:07:33 2014 +0200 Add a new section to the Windows installer to install header files geany.nsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 82842b230b06e87b15069ccc0384d06cdee22d2e Author: Enrico Tröger Date: Fri Apr 11 00:06:29 2014 +0200 Install header files and geany.pc also on Windows wscript | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) commit 3d403b6d9fe9231190dd332ee0143a07b89c1886 Author: Pavel Roschin Date: Thu Apr 10 22:27:30 2014 +0400 Update of Russian translation po/ru.po | 185 +++++++++++++++++++++------------------------------------------ 1 file changed, 61 insertions(+), 124 deletions(-) commit 6834c3458cce0477e7e830b24c70ba448f6002e9 Merge: e1ce9cfbe 2cde2cc5f Author: Enrico Tröger Date: Thu Apr 10 22:25:50 2014 +0200 Merge branch 'master' of https://github.com/geany/geany commit e1ce9cfbecf432f8033ecf15322c2b273d377c34 Author: Enrico Tröger Date: Thu Apr 10 22:24:15 2014 +0200 Change the working directory on Windows properly On Windows we need to change the working directory on startup to not lock the directory Geany was started from (bug #2626124). However we can't change the directory to late in the startup process otherwise plugins maybe unable to load resources from the installation directory. Though we also can't change it too early otherwise opening files given with relative paths in Geany from the command line won't work anymore (bug #3613096). This change should fix both issues by changing the working directory after command line file handling happened and before plugins will be loaded. src/main.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit 2cde2cc5f7bebed99af8830667ac9483a42d53d6 Author: Frank Lanitz Date: Thu Apr 10 22:21:15 2014 +0200 Adding tr update to NEWS file NEWS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit fd660e4dd84273ebd77d34d5c99e383b70cfecae Author: Frank Lanitz Date: Thu Apr 10 22:16:03 2014 +0200 Update of Turkish translation po/tr.po | 163 ++++++++++++++++++++++++--------------------------------------- 1 file changed, 61 insertions(+), 102 deletions(-) commit 9ea8b9d11afa2ecc17775ef3ddd347a3a823457c Author: Colomban Wendling Date: Thu Apr 10 17:31:29 2014 +0200 Fix conflicting mnemonics in the French translation po/fr.po | 56 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) commit 9f4ef363f2fc86780f98ad4bf5bea98af8ad8048 Author: Colomban Wendling Date: Thu Apr 10 14:13:56 2014 +0200 Html chars: fix translation of category names Although the strings were properly marked for translation, they weren't actually translated because they missed run-time replacement. plugins/htmlchars.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 264d2ad6bdbece309aa0d7e47e50202cfb674174 Author: Frank Lanitz Date: Thu Apr 10 09:12:50 2014 +0200 Add Dutch translation update to NEWS NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f0a12433e3ca2b1ef39a55d5e57192d1b66137c8 Merge: aff07fb2d 55034a358 Author: Frank Lanitz Date: Thu Apr 10 09:11:46 2014 +0200 Merge pull request #239 from peter-scholtens/master Update nl.po commit aff07fb2dc31a36524e89634125ae31f49713f43 Author: Colomban Wendling Date: Wed Apr 9 23:13:30 2014 +0200 French translation update po/fr.po | 83 +++++++++++++++++++++++++++------------------------------------- 1 file changed, 35 insertions(+), 48 deletions(-) commit 55034a358e17acc3d46b069f3cb4705d877f93ca Author: Peter Scholtens Date: Wed Apr 9 22:49:18 2014 +0200 Update nl.po First contrib in Github po/nl.po | 143 +++++++++++++++++++++++---------------------------------------- 1 file changed, 52 insertions(+), 91 deletions(-) commit 90658b2a82453242b2404468c9887067261027a5 Author: Frank Lanitz Date: Wed Apr 9 22:10:22 2014 +0200 Update of Russian translation po/ru.po | 48 +++++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 23 deletions(-) commit 6a432d2a9b6907ec49172c12dec2a4d113204bc3 Author: Frank Lanitz Date: Wed Apr 9 19:02:58 2014 +0200 Update NEWS with recent translation updates NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c7b1a7a659870dca642203b050eafc37d3d910fa Author: Frank Lanitz Date: Wed Apr 9 19:01:22 2014 +0200 Update of Kazakh translation po/kk.po | 245 +++++++++++++++++++++++++++------------------------------------ 1 file changed, 105 insertions(+), 140 deletions(-) commit fb9da9714cbc1d81e9fd67d2410e85816ed3774a Author: Frank Lanitz Date: Wed Apr 9 18:58:36 2014 +0200 Update of Catalan translation po/ca.po | 182 ++++++++++++++++++++++++--------------------------------------- 1 file changed, 70 insertions(+), 112 deletions(-) commit de2eaa38abb982ab1539950ac4256359199f028c Author: Colomban Wendling Date: Wed Apr 9 18:14:36 2014 +0200 Update NEWS NEWS | 6 ++++++ 1 file changed, 6 insertions(+) commit f8564585e65acbc0700d6406a84fb4ea0fba5002 Merge: e135da8a7 85af65323 Author: Colomban Wendling Date: Wed Apr 9 18:08:17 2014 +0200 Merge branch 'export/fixes' commit 85af65323b33df5a6cbbd40fb5df651df5a249c9 Author: Colomban Wendling Date: Wed Apr 9 16:48:10 2014 +0200 Export: escape file name in case it contains HTML control characters plugins/export.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 1032d0fc68fa8cf3005d00fc2579b1e79f84c751 Author: Colomban Wendling Date: Wed Apr 9 15:18:15 2014 +0200 Export: use `DOC_FILENAME()` instead of re-implementing it manually plugins/export.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 527dee720362a20063b730cbcad97f184c636f17 Author: Colomban Wendling Date: Wed Apr 9 15:05:44 2014 +0200 Export: fix LaTeX export for more than 2 consecutive '-', '<' or '>' Fix escaping of '-', '<' and '>' characters to properly handle inputs with more than 2 consecutive identical characters of this set. plugins/export.c | 40 +++++++--------------------------------- 1 file changed, 7 insertions(+), 33 deletions(-) commit 874c822328ed046cb15b4fe2d3dc7839eeac2b94 Author: Colomban Wendling Date: Wed Apr 9 15:01:50 2014 +0200 Export: don't include unused, random styles Fix the bounds checking on included styles only to check for inclusion actually defined styles, not to include random styles based on uninitialized array indices. plugins/export.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4eb8205f5605e680f83ce062e7d03fcf2bc26c3e Author: Colomban Wendling Date: Wed Apr 9 14:44:26 2014 +0200 Export: don't try to read past the document end A faulty bound checking resulted in reading a byte past the document end, which resulted in Scintilla returning byte 0 because the position was invalid. By adding this NUL byte to the string used to build the body, the body was truncated after the last document byte (as C strings are NUL-terminated), leading to any format structure after it to be missing from the output. This broke HTML and LaTeX export if the last line didn't end with a newline, as the last line's style closing structure were missing. plugins/export.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e135da8a79fa2a96d836b18159b535d0f7294ecd Author: Colomban Wendling Date: Wed Apr 9 02:57:10 2014 +0200 Fix replacing colors with "0x" prefix with length different than 6 We used to assume that if the selected text started with "0x" when inserting a color, we had to replace exactly 6 bytes after the "0x" prefix. Although this is generally the case as most color formats use 6 hexadecimal digits, it still would erase either too many or too few characters if actually replacing something shorter (i.e. "0xfff") or longer (i.e. "0xffffffffffff"). It could even partially override multi-byte characters if the 8th byte after the selection start was in the middle of a character, as the length was in bytes and not characters. Fix this by honoring the actual selection end. src/editor.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit ab6390fc8cd49bea62a94e9efcd9b30e9e1b61c8 Author: Colomban Wendling Date: Tue Apr 8 14:50:15 2014 +0200 Update NEWS with newer changes NEWS | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) commit d7e3d4247f244611a5150c87a6726b242b52c990 Author: Frank Lanitz Date: Mon Apr 7 22:16:30 2014 +0200 Update of Galician translation by José Manuel Castroagudín Silva po/gl.po | 1733 +++++++++++++++++++++++++++----------------------------------- 1 file changed, 763 insertions(+), 970 deletions(-) commit bd811b96cad7f700a97e30eb0ede279dad55c8c2 Author: Enrico Tröger Date: Sun Apr 6 21:52:17 2014 +0200 Change include order on Windows As suggested by a preprocessor warning from winsock2.h (i686-w64-mingw32/include/winsock2.h:15:2: warning: #warning Please include winsock2.h before windows.h). src/socket.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 20547265e601b72330b705e0ef9339990c5354f9 Author: Enrico Tröger Date: Sun Apr 6 21:43:17 2014 +0200 Add /waf-* to exclude Waf on Windows .gitignore | 2 ++ 1 file changed, 2 insertions(+) commit d9fca40de33f45a420fec1230ad12264e9fc24a9 Author: Enrico Tröger Date: Sun Apr 6 21:40:56 2014 +0200 Include missing header It seems this header is necessary on Windows 7 or newer gcc versions (not sure which one requires it) but according to the docs, it is necessary anyways. src/win32.c | 1 + 1 file changed, 1 insertion(+) commit b31e66d32192db2ecff12c09c3d81506ed3280dd Author: gymka Date: Sun Apr 6 08:42:21 2014 +0300 updated lithuanian translation po/lt.po | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit e94d162d300adb465bcc7dcd41bc8c584c3eec61 Merge: 16d9bbb26 e4c6aa3d9 Author: Colomban Wendling Date: Wed Apr 2 19:56:24 2014 +0200 Merge branch 'SiegeLord/rust_updates' commit e4c6aa3d9ca9a4814b207cadb9b7f4ffab142395 Author: SiegeLord Date: Wed Apr 2 13:41:40 2014 -0400 Rust: Add a test for leading 'priv'. tests/ctags/test_input.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e89c4af47cc71f7dcf61e6069629dee0a03c3895 Author: SiegeLord Date: Wed Apr 2 13:05:57 2014 -0400 Rust: Add some more syntax examples to the CTags test file. Also, made it compile again. tests/ctags/test_input.rs | 6 ++++-- tests/ctags/test_input2.rs | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) commit 530d047c9d80f1abc7b71e29b10bd89cfe11ad63 Author: SiegeLord Date: Tue Apr 1 21:22:38 2014 -0400 Rust: Skip 'pub' keyword in front of struct fields. tagmanager/ctags/rust.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ff796360ce9b9f95cf562566051d02c06aa6cfa5 Author: SiegeLord Date: Sun Mar 23 13:50:53 2014 -0400 Rust: Update keywords data/filetypes.rust | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2a80759a3aa323ab393e79864bfec0c35b0f6afb Author: SiegeLord Date: Sun Mar 23 13:40:12 2014 -0400 Rust: Update ctags tests. Also, make them compile again with the Rust compiler. tests/ctags/test_input.rs | 24 +++++++++++++++++++++++- tests/ctags/test_input.rs.tags | 7 +++++++ tests/ctags/test_input2.rs | 2 ++ 3 files changed, 32 insertions(+), 1 deletion(-) commit 478534e63523b5d7b3998b7b56c82b62600a45ea Author: SiegeLord Date: Tue Mar 25 18:04:06 2014 -0400 Rust: Allow [] delimeters for macros. New Rust syntax. tagmanager/ctags/rust.c | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) commit 2bde26b2027d683619a8c6013db8d63a92291a75 Author: SiegeLord Date: Sun Mar 23 12:44:17 2014 -0400 Rust: Fix parsing of attributes in structs/enums. Previously, things like: struct Foo { #[bar] baz: int } or struct Foo { #![bar] baz: int } would horribly confuse the parser and prevent proper parsing of the rest of the file. tagmanager/ctags/rust.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) commit 52a179dce1717a673e8b4e57d507adea2fca6b59 Author: SiegeLord Date: Sun Mar 23 12:21:22 2014 -0400 Rust: Fix parsing of function pointer struct fields. Previously, skipUntil was confused by the -> token. tagmanager/ctags/rust.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 16d9bbb26739bb14947fe25cb57de08a5c19e62f Merge: 4b6e27c51 98be8b1cf Author: Frank Lanitz Date: Tue Apr 1 21:45:21 2014 +0200 Merge pull request #236 from federeghe/translate Update Italian translation commit 98be8b1cf3696e88e8e545babfdd9d9ccadd8926 Author: federeghe Date: Tue Apr 1 21:35:15 2014 +0200 Updated Italian translation po/it.po | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) commit 4b6e27c5166434dbf745b2287d1fd71cd6fa88b3 Author: Yosef Or Boczko Date: Tue Apr 1 00:40:13 2014 +0300 Updated Hebrew translation po/he.po | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) commit ea53365b813b967d06d797b0ce9a428207b2fd45 Merge: 60af2f1bc 726ee2b37 Author: Frank Lanitz Date: Tue Apr 1 11:28:14 2014 +0200 Merge pull request #235 from xhacker/zh_CN Update zh_CN.po commit 726ee2b372ddba08092d96f06d363ea526ec6c42 Author: LIU Dongyuan / 柳东原 Date: Mon Mar 31 17:37:45 2014 -0700 Update zh_CN.po po/zh_CN.po | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 60af2f1bcd2d8847af5f73176a6e456c6855fe59 Author: Frank Lanitz Date: Mon Mar 31 20:53:08 2014 +0200 Update NEWS files for more updated translations NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8e06d0dc1de7861f849ba7a064fb47e394dd6060 Author: Frank Lanitz Date: Mon Mar 31 20:52:03 2014 +0200 Update of Spnaish translation po/es.po | 163 +++++++++++++++++++++++---------------------------------------- 1 file changed, 60 insertions(+), 103 deletions(-) commit aed357254ca3f10febe3d07fca017e563660c46f Author: Stanislav Horáček Date: Mon Mar 31 19:07:45 2014 +0200 Updated Czech translation po/cs.po | 52 +++++++++++++++++++++++----------------------------- 1 file changed, 23 insertions(+), 29 deletions(-) commit cf3da8c661a293167880281a188bd5b7715ba337 Author: Frank Lanitz Date: Sun Mar 30 20:52:21 2014 +0200 Update NEWS files for more updated translations NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c6e3c578ad1e822053e0a9398b5b111f5199b827 Author: Frank Lanitz Date: Sun Mar 30 20:51:36 2014 +0200 Update of German translation po/de.po | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 3b56809a45f5c563902f2ffcc7b468973a8f0881 Author: Frank Lanitz Date: Sun Mar 30 20:49:21 2014 +0200 Update of po files for string freeze of Geany 1.24 po/ar.po | 1951 +++++++++++++------------ po/ast.po | 1974 +++++++++++++------------ po/be.po | 1973 +++++++++++++------------ po/bg.po | 1963 +++++++++++++------------ po/ca.po | 4530 ++++++++++++++++++++++++++++++--------------------------- po/cs.po | 1982 +++++++++++++------------ po/de.po | 16 +- po/el.po | 1963 +++++++++++++------------ po/en_GB.po | 1978 +++++++++++++------------ po/es.po | 4268 ++++++++++++++++++++++++++++-------------------------- po/et.po | 1968 +++++++++++++------------ po/eu.po | 1962 +++++++++++++------------ po/fa.po | 1977 +++++++++++++------------ po/fi.po | 1982 +++++++++++++------------ po/fr.po | 945 ++++++------ po/gl.po | 3214 ++++++++++++++++++++++------------------- po/he.po | 12 +- po/hi.po | 1891 ++++++++++++------------ po/hu.po | 3176 +++++++++++++++++++++------------------- po/id.po | 1978 +++++++++++++------------ po/it.po | 335 +++-- po/ja.po | 1986 +++++++++++++------------ po/kk.po | 1962 +++++++++++++------------ po/ko.po | 1960 +++++++++++++------------ po/lb.po | 1977 +++++++++++++------------ po/lt.po | 16 +- po/mn.po | 1924 +++++++++++++------------ po/nl.po | 1981 +++++++++++++------------ po/nn.po | 1914 ++++++++++++------------ po/pl.po | 1979 +++++++++++++------------ po/pt.po | 1982 +++++++++++++------------ po/pt_BR.po | 4584 +++++++++++++++++++++++++++++++--------------------------- po/ro.po | 1972 +++++++++++++------------ po/ru.po | 1982 +++++++++++++------------ po/sk.po | 12 +- po/sl.po | 848 ++++++----- po/sr.po | 1937 +++++++++++++------------ po/sv.po | 1982 +++++++++++++------------ po/tr.po | 4643 ++++++++++++++++++++++++++++++++--------------------------- po/uk.po | 1958 +++++++++++++------------ po/vi.po | 1973 +++++++++++++------------ po/zh_CN.po | 12 +- po/zh_TW.po | 1966 +++++++++++++------------ 43 files changed, 44221 insertions(+), 39367 deletions(-) commit 1d0fc64ce8b07b6b03320b293724cd70eca05c22 Author: Steven Valsesia Date: Fri Mar 7 21:15:28 2014 +0100 Add the choice to use Windows or Gtk color chooser dialog Modification of the string "Use Windows File Open/Save dialogs" to "Use Windows native dialogs". Signed-off-by: bestel Signed-off-by: Colomban Wendling data/geany.glade | 4 ++-- src/tools.c | 14 ++++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) commit 8846ef2c5d41f87aab6754153bcb33ddf8f1e0f0 Author: LIU Dongyuan / 柳东原 Date: Sat Mar 29 21:42:09 2014 -0700 Update zh_CN.po po/zh_CN.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f05e8001e90276fa54ca68ce98a04bd76493fd11 Author: LIU Dongyuan / 柳东原 Date: Sat Mar 29 21:37:51 2014 -0700 Update zh_CN.po po/zh_CN.po | 1976 +++++++++++++++++++++++++++++++---------------------------- 1 file changed, 1027 insertions(+), 949 deletions(-) commit d4900df553c10287de80c6f820e221af4f4f41df Author: Enrico Tröger Date: Sun Mar 30 12:17:41 2014 +0200 Fix restructuredText syntax HACKING | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 8f511b66f37524d13d9e532e040e6703bf57341f Merge: a74400036 aaed5e028 Author: Frank Lanitz Date: Sat Mar 29 22:30:03 2014 +0100 Merge pull request #224 from bestel74/update_HACKING_file Update the HACKING file: add "pull request" before "patches" commit a74400036248a28166246e51bec44383c83d95b6 Author: Frank Lanitz Date: Sat Mar 29 22:26:48 2014 +0100 Update of German translation po/de.po | 399 ++++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 216 insertions(+), 183 deletions(-) commit 1e918d4f4eb3cb4bbe312d0ae65580b84e4ba06a Author: Yosef Or Boczko Date: Sat Mar 29 23:05:19 2014 +0300 Updated Hebrew translation po/he.po | 3311 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 1675 insertions(+), 1636 deletions(-) commit cb07852ba5b9672408831878363d0d1cdc562691 Merge: bd06d7a10 a70ab6a5f Author: Frank Lanitz Date: Fri Mar 28 15:14:13 2014 +0100 Merge pull request #232 from stefan-it/enhancement/lang-de-corrections Typo corrections for German language file. commit a70ab6a5f774722b842ba226459512a75593a413 Author: Stefan Schweter Date: Fri Mar 28 14:33:45 2014 +0100 Typo corrections for German language file. po/de.po | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit aaed5e028eaad0a212671949e235bed5020aa94f Author: Steven Valsesia Date: Tue Mar 11 11:53:51 2014 +0100 Update the HACKING file, explain PR Add the new way of contributing for geany. HACKING | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) commit bd06d7a1021b3f6f32e6ee02e917e083425326da Author: Enrico Tröger Date: Sun Mar 23 15:23:42 2014 +0100 Update Doxyfile.in for newer doxygen versions Automatic config file update by running 'doxygen -u'. All previous settings are kept but old, deprecated settings were removed to avoid annoying warnings when executing doxygen (e.g. on the nightly cronjob to update the API docs on geany.org). Furthermore, the update tool added a lot of comments above the options, which is probably good. doc/Doxyfile.in | 1584 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1569 insertions(+), 15 deletions(-) commit 40db23752adcb01d61a01003c58c2bba950c9bf7 Merge: 608817f4b 1f0898be0 Author: Frank Lanitz Date: Sun Mar 23 10:49:38 2014 +0100 Merge pull request #227 from fiacobelli/master changed filetypes.latex to add Bibtex compilation commit 608817f4bd8ebcd5807c8cca298b05bcc34a5236 Merge: b27b3678d 5141f98f8 Author: Frank Lanitz Date: Sun Mar 23 10:47:17 2014 +0100 Merge pull request #228 from gymka/master Updated Lithuanian translation commit 5141f98f8c221daf4d7cf589d1ddda82f51b5518 Author: gymka Date: Sun Mar 23 09:10:15 2014 +0200 updated Lithuanian translation po/lt.po | 1978 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 1028 insertions(+), 950 deletions(-) commit 1f0898be05c59ab993075fd152476b760d6ad79b Author: Francisco Iacobelli Date: Fri Mar 21 15:29:55 2014 -0500 changed filetypes.latex to add Bibtex compilation data/filetypes.latex | 3 +++ 1 file changed, 3 insertions(+) commit b27b3678dd787719a96832cd3a53102e0d66e177 Author: elextr Date: Fri Mar 21 15:46:45 2014 +1100 Add boolean to Pascal keyword list Pascal has a boolean type (see wikipedia entry) fixes bug #1033 data/filetypes.pascal | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c96e09f76fee933ad3264f150ec483270e54290c Author: Frank Lanitz Date: Tue Mar 18 19:57:26 2014 +0100 Update of Slovak translation NEWS | 2 +- po/sk.po | 4171 +++++++++++++++++++++++++++++++++----------------------------- 2 files changed, 2215 insertions(+), 1958 deletions(-) commit 71b48bd6fb2e499e3352ad70c3e2cfa567ef667b Author: Enrico Tröger Date: Sun Mar 16 13:20:05 2014 +0100 Regenerate 16x16 Geany icon to be not cutoff For some reason, the icon was cutoff in the upper left corner. From the GIT history, I can't find any real reference for the reason, so I guess this was just a mistake when convertig the 32x32 icon to 16x16. If anyone knows better, please tell me. icons/16x16/geany.png | Bin 830 -> 897 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit d76323260c85eebdbe54c8155ffa51ae68a205aa Author: elextr Date: Fri Mar 14 15:03:12 2014 +1100 Put Makefile comments at start of line. In a makefile comments in recipes must start at the beginning of the line (see [1]). Thanks to cousteau on IRC. [1] http://www.gnu.org/software/make/manual/make.html#Recipe-Syntax data/filetypes.makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4a8910fc4afc67fb0bf898592763322854a33b32 Author: Colomban Wendling Date: Wed Mar 12 14:26:04 2014 +0100 Fix GTK 2.16 support (oops) src/ui_utils.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) commit bd6db90e297116e0b4168216a644fe1dbee8969f Author: Colomban Wendling Date: Tue Mar 11 15:45:49 2014 +0100 Windows: add default extension to native save dialogs Fixes bug #1021. Based on an initial work by Steven Valsesia, thanks! src/dialogs.c | 2 +- src/win32.c | 15 ++++++++++++--- src/win32.h | 2 +- 3 files changed, 14 insertions(+), 5 deletions(-) commit 1e2be9e7b49bfe2b61a04b60ae3314e314a00dd9 Author: Colomban Wendling Date: Tue Mar 11 13:14:03 2014 +0100 Add a note in the docs about shell constructs in custom commands doc/geany.txt | 6 ++++++ 1 file changed, 6 insertions(+) commit 9ae07905620e78da3550945f47d01f2c7ea14edb Merge: 717f8e1b1 77b82845e Author: Colomban Wendling Date: Fri Mar 7 22:12:04 2014 +0100 Merge branch 'bestel74/add_apply_button_color_chooser' Closes PR #223. commit 77b82845edcc796380cddc26cc4064329f0817cd Author: Colomban Wendling Date: Fri Mar 7 22:09:40 2014 +0100 Fix color chooser button order src/tools.c | 2 ++ src/ui_utils.c | 35 +++++++++++++++++++++++++++++++++++ src/ui_utils.h | 3 +++ 3 files changed, 40 insertions(+) commit dbf9061a52b9ea32b3928be14b30dc1637019fc0 Author: Steven Valsesia Date: Fri Mar 7 15:27:18 2014 +0100 Feature request #686 : Add apply button on Gtk color chooser feature request : http://sourceforge.net/p/geany/feature-requests/686/ Signed-off-by: Steven Valsesia src/tools.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 717f8e1b137f7a51a78ffbf12d1c0c15b1784bc3 Author: Colomban Wendling Date: Thu Mar 6 15:01:38 2014 +0100 Windows: fix possible buffer overflows Fix improper use of MultiByteToWideChar() that could have led to buffer overflows. src/win32.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit 467f56ae7e70437f9c180f750e35520dc8811858 Author: Steven Valsesia Date: Tue Mar 4 17:04:44 2014 +0100 Add a new feature: autosave when the editor lose focus Documented unwanted behavior: pop-up saving. Closes feature request #683. Signed-off-by: Steven Valsesia doc/geany.txt | 8 ++++++++ plugins/saveactions.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 64 insertions(+), 1 deletion(-) commit 9c45ffd8ed312a8140bd652897e3a1864e45df58 Author: Steven Valsesia Date: Tue Mar 4 14:33:47 2014 +0100 Add documentation for the auto-save feature. Signed-off-by: Steven Valsesia doc/geany.txt | 8 ++++++++ 1 file changed, 8 insertions(+) commit 2f120d73c9dd13f3aa7aeb4bbe59979750c14c93 Author: Colomban Wendling Date: Thu Feb 27 14:33:45 2014 +0100 Fix typo in "deque" include name Fixes bug #1027. src/ui_utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8930ba80eb7a5fb2c489772fa37fc269202ba2d3 Merge: 26d2ef8d9 5965b5ebd Author: Colomban Wendling Date: Sun Feb 23 20:30:11 2014 +0100 Merge branch 'fortran/improvements' commit 5965b5ebd3797b846ff3b92e9a5079d0834537f1 Author: Adam Hirst Date: Sun Feb 23 20:16:29 2014 +0100 Fortran: add a few more test cases tests/ctags/Makefile.am | 2 ++ tests/ctags/block.f90 | 51 +++++++++++++++++++++++++++++++++++++++++ tests/ctags/block.f90.tags | 7 ++++++ tests/ctags/interfaces.f90 | 45 ++++++++++++++++++++++++++++++++++++ tests/ctags/interfaces.f90.tags | 8 +++++++ 5 files changed, 113 insertions(+) commit d8954bbf67d575883a3fb3687e776cb92793d88c Author: Colomban Wendling Date: Sat Feb 22 17:50:56 2014 +0100 Fortran: add support for "len" and "kind" qualifiers Test cases contributed by Adam Hirst, thanks. tagmanager/ctags/fortran.c | 6 ++++++ tests/ctags/Makefile.am | 2 ++ tests/ctags/members.f90 | 19 +++++++++++++++++++ tests/ctags/members.f90.tags | 8 ++++++++ tests/ctags/qualified_types.f90 | 12 ++++++++++++ tests/ctags/qualified_types.f90.tags | 11 +++++++++++ 6 files changed, 58 insertions(+) commit ed1dc50062c27e1c00d94404d96e6bc3dd051e29 Author: Colomban Wendling Date: Sat Feb 22 16:54:30 2014 +0100 Fortran: allow keywords as names Allow keywords for names of modules, programs, types, interfaces, structures and enums. Test case contributed by Adam Hirst, thanks. tagmanager/ctags/fortran.c | 38 +++++++++++++++++++++++++++----------- tests/ctags/Makefile.am | 1 + tests/ctags/keyword_names.f90 | 28 ++++++++++++++++++++++++++++ tests/ctags/keyword_names.f90.tags | 8 ++++++++ 4 files changed, 64 insertions(+), 11 deletions(-) commit e47d45eb281a968b733241aab431c045d61569f9 Author: Colomban Wendling Date: Sat Feb 22 17:05:08 2014 +0100 Fortran: fix handling of preprocessor directives on the first line Fix a race initialization leading to incorrect handling of preprocessor directives on the first input line. Test case contributed by Adam Hirst, thanks. tagmanager/ctags/fortran.c | 13 +++++++------ tests/ctags/Makefile.am | 1 + tests/ctags/preprocessor.f90 | 17 +++++++++++++++++ tests/ctags/preprocessor.f90.tags | 5 +++++ 4 files changed, 30 insertions(+), 6 deletions(-) commit 98717999d0dd7362078514ec0964b39db605307d Author: Colomban Wendling Date: Thu Feb 20 23:07:20 2014 +0100 Fortran: add missing `block` and `endblock` keywords data/filetypes.fortran | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ef4c72501e0f8532e31a9fac91a3a29c3e078ce4 Author: Colomban Wendling Date: Thu Feb 20 22:47:55 2014 +0100 Fortran: generate fake tags for anonymous structures, interfaces and enums This allows both to show those anonymous elements, as well as giving a parent to their children, fixing display in the symbols tree. src/symbols.c | 1 + tagmanager/ctags/fortran.c | 38 +++++++++++++--------- tests/ctags/enum.f90.tags | 70 +++++++++++++++++++++------------------- tests/ctags/enumerators.f90.tags | 31 ++++++++++-------- tests/ctags/numlib.f90.tags | 1 + tests/ctags/recursive.f95.tags | 2 ++ tests/ctags/structure.f.tags | 3 +- 7 files changed, 81 insertions(+), 65 deletions(-) commit 9520e7f7d7b7a9570db2feb165653ef1d68e547a Author: Colomban Wendling Date: Thu Feb 20 19:26:00 2014 +0100 Fortran: parse Fortran 2003 enums Allow for not-yet-standard enum naming using `:: name` syntax, see http://docs.cray.com/books/S-3692-51/html-S-3692-51/z970507905n9123.html Test cases contributed by Adam Hirst, thanks. tagmanager/ctags/fortran.c | 105 +++++++++++++++++++++++++++++++++------ tests/ctags/Makefile.am | 2 + tests/ctags/enum.f90 | 52 +++++++++++++++++++ tests/ctags/enum.f90.tags | 46 +++++++++++++++++ tests/ctags/enumerators.f90 | 55 ++++++++++++++++++++ tests/ctags/enumerators.f90.tags | 26 ++++++++++ 6 files changed, 271 insertions(+), 15 deletions(-) commit 329b2cb40135b759322a9a3f942ddad64ae5c78b Author: Colomban Wendling Date: Thu Feb 20 22:43:12 2014 +0100 Fortran: don't generate tags for interface content tagmanager/ctags/fortran.c | 2 +- tests/ctags/numlib.f90.tags | 3 --- tests/ctags/recursive.f95.tags | 8 -------- 3 files changed, 1 insertion(+), 12 deletions(-) commit 26d2ef8d99c6c66796d7ab8b4a09aa230c9905ac Merge: 7d7606328 044120e87 Author: Colomban Wendling Date: Wed Feb 19 16:15:52 2014 +0100 Merge branch 'win32-quote-spawn-args' Closes bug #943 and PR #180. commit 044120e87ce8ce021832868ae690d282f59d3b15 Author: Colomban Wendling Date: Mon Feb 3 15:42:56 2014 +0100 Windows: properly initialize errno before checking it errno is never reset to 0 by the system libraries, so if we test its value we need to reset it to 0 before the call that may change it to something else. src/win32.c | 1 + 1 file changed, 1 insertion(+) commit 0ebf6ab82e8a9232caaabf0dd845390307fa1c80 Author: Colomban Wendling Date: Mon Feb 3 15:41:44 2014 +0100 Windows: convert the spawned command to locale encoding Converting to locale encoding is required to allows non-ASCII characters in the command, e.g. in the file names. src/win32.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 6af27eeb7af7fbb458c93bf98133a6a177014a5e Author: Colomban Wendling Date: Mon Feb 3 15:40:37 2014 +0100 Windows: add a debug to show the command as it is run src/win32.c | 1 + 1 file changed, 1 insertion(+) commit 5c893e9b0eac95cc26f35a5dc279872ff1588f27 Author: Colomban Wendling Date: Mon Feb 3 15:36:28 2014 +0100 Windows: fix spawning commands with spaces Fix spawnning command under Windows when they contain spaces in both the executable and the arguments. Apparently system() quoting is unexpected, and doesn't work properly if there is more than 2 quotes in the whole command. To work this around, spawn the command through `cmd.exe /S /C`. src/win32.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f1ce9afadd743dee5a6184b12eb5125305570d4d Author: Colomban Wendling Date: Wed Feb 19 01:10:07 2014 +0100 TM: don't needlessly duplicate array when searching for current tag tagmanager/src/tm_workspace.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit c078a13019dc7a0a2789bf672feceaa9cb91f1c3 Author: Colomban Wendling Date: Wed Feb 19 01:05:37 2014 +0100 TM: simplify match test for current tag tagmanager/src/tm_workspace.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 5a67a4f64c633e83d0764eb71caaa6707e19c71f Author: Colomban Wendling Date: Tue Feb 18 19:33:39 2014 +0100 Fortran: report interfaces tagmanager/ctags/fortran.c | 2 +- tests/ctags/bug734933.f90.tags | 1 + tests/ctags/numlib.f90.tags | 3 +++ tests/ctags/recursive.f95.tags | 8 ++++++++ 4 files changed, 13 insertions(+), 1 deletion(-) commit 29336ffed0742a876ef49ae3d6be220f09e554f2 Author: Colomban Wendling Date: Tue Feb 18 19:10:58 2014 +0100 Fortran: display components src/symbols.c | 1 + tagmanager/ctags/fortran.c | 2 +- tests/ctags/array-spec.f90.tags | 4 ++++ tests/ctags/bug565813.f90.tags | 1 + tests/ctags/bug734933.f90.tags | 4 ++++ tests/ctags/invalid_name.f90.tags | 3 +++ tests/ctags/misc_types.f90.tags | 2 ++ tests/ctags/square_parens.f90.tags | 2 ++ tests/ctags/structure.f.tags | 9 +++++++++ tests/ctags/union.f.tags | 4 ++++ 10 files changed, 31 insertions(+), 1 deletion(-) commit 362a5cc6548982efa0898eaeabc353c089397580 Author: Colomban Wendling Date: Tue Feb 18 18:28:35 2014 +0100 Fortran: properly report scope for programs, subroutines and types To do this we change the internal types to only use types matched by symbols_get_current_scope(). This is a bit of a hack, but the tag types were already questionable and simply mapped to ones the TagManager know. This however merges Functions and Subroutines under the same top-level item in the symbol list. src/symbols.c | 6 +++--- tagmanager/ctags/fortran.c | 6 +++--- tests/ctags/array-spec.f90.tags | 2 +- tests/ctags/auto.f.tags | 2 +- tests/ctags/bug565813.f90.tags | 6 +++--- tests/ctags/bug670433.f90.tags | 2 +- tests/ctags/bug726712.f90.tags | 6 +++--- tests/ctags/bug734933.f90.tags | 6 +++--- tests/ctags/bug858165.f90.tags | 2 +- tests/ctags/bug877956.f90.tags | 2 +- tests/ctags/byte.f.tags | 2 +- tests/ctags/common.f.tags | 2 +- tests/ctags/debian_432872.f90.tags | 2 +- tests/ctags/forall_module.f90.tags | 2 +- tests/ctags/fortran_associate.f90.tags | 2 +- tests/ctags/invalid_name.f90.tags | 2 +- tests/ctags/misc_types.f.tags | 2 +- tests/ctags/misc_types.f90.tags | 4 ++-- tests/ctags/namelist.f.tags | 2 +- tests/ctags/procedure_pointer_module.f90.tags | 2 +- tests/ctags/procpoint.f90.tags | 2 +- tests/ctags/square_parens.f90.tags | 6 +++--- tests/ctags/stdcall.f.tags | 4 ++-- tests/ctags/structure.f.tags | 14 +++++++------- tests/ctags/union.f.tags | 4 ++-- tests/ctags/value.f.tags | 2 +- 26 files changed, 47 insertions(+), 47 deletions(-) commit 7d760632824efacd44231f89d46de3a1deac64ec Author: Colomban Wendling Date: Mon Feb 17 23:17:35 2014 +0100 Fortran: fix handling of pointer association operator Test case contributed by Adam Hirst, thanks. Closes #1030. tagmanager/ctags/fortran.c | 3 ++- tests/ctags/Makefile.am | 1 + tests/ctags/procpoint.f90 | 32 ++++++++++++++++++++++++++++++++ tests/ctags/procpoint.f90.tags | 13 +++++++++++++ 4 files changed, 48 insertions(+), 1 deletion(-) commit 1c0fa99e1d84b0331d65e56dcab4002f0006ccb1 Author: Adam Hirst Date: Sat Feb 15 14:29:22 2014 +0000 Support F2003 array syntax and F2008 coarrays Fortran 2003 allows '[' and ']' as array constructors in addition to the legacy '(/' and '/)'. Fortran 2008 allows '[]' as part of a CODIMENSION specifier, which can either be `codimension[]` in the type-spec; or as either `variable[]` or `variable()[]` in the entry-spec. Credit to Colomban Wendling for the skipOverSquares logic, and treating `codimension` as a special-case. Last part of bug #1023. tagmanager/ctags/fortran.c | 49 +++++++++++++++++++++++++++++--------- tests/ctags/Makefile.am | 1 + tests/ctags/square_parens.f90 | 39 ++++++++++++++++++++++++++++++ tests/ctags/square_parens.f90.tags | 13 ++++++++++ 4 files changed, 91 insertions(+), 11 deletions(-) commit 20f12872e28d9ff10db2fb477905edcdededb360 Author: Dimitar Zhekov Date: Fri Feb 14 22:11:10 2014 +0200 re-fix regex error message parsing (match count returns # of subgroups) src/filetypes.c | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) commit 497bfaed465ac3aa3baf394029189a01a043ff2e Author: Colomban Wendling Date: Sat Feb 15 00:28:01 2014 +0100 Fortran: fix line continuation inside comments Fix improperly handling '&' at the end of the first comment line after a non-comment line as a line continuation. Part of bug #1023. tagmanager/ctags/fortran.c | 8 ++++---- tests/ctags/Makefile.am | 1 + tests/ctags/fortran_line_continuation.f90 | 17 +++++++++++++++++ tests/ctags/fortran_line_continuation.f90.tags | 3 +++ 4 files changed, 25 insertions(+), 4 deletions(-) commit f22c028ca4c4bdf1d0669023fe22aaaeab93d5f1 Merge: df9a1b15c e1b115ee5 Author: Colomban Wendling Date: Fri Feb 14 19:32:17 2014 +0100 Merge branch 'aphirst/patch-1' Closes PR#209. commit e1b115ee52cecce68277f850f6ebb18cc0f044fc Author: Adam Hirst Date: Fri Feb 14 18:27:04 2014 +0000 Added tests for the inclusion of ASSOCIATE in the tag manager tests/ctags/Makefile.am | 1 + tests/ctags/fortran_associate.f90 | 20 ++++++++++++++++++++ tests/ctags/fortran_associate.f90.tags | 5 +++++ 3 files changed, 26 insertions(+) commit 2085e8a57c1623eb8fdd950c5eeda61c85c9b1ac Author: Adam Hirst Date: Fri Feb 14 16:56:00 2014 +0000 Symbol browser breaks with END ASSOCIATE Related to bug #1023. tagmanager/ctags/fortran.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit df9a1b15c60f91be2af558112dc201569b9863d2 Author: Dimitar Zhekov Date: Tue Jan 21 20:22:28 2014 +0200 fix regex error message parsing (GRegex indexes subgroups, not matches) src/filetypes.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) commit b1d6291f7d15e3aed00f5def034d2fe4cf4ed7ab Author: Colomban Wendling Date: Tue Feb 11 18:15:00 2014 +0100 Fix unused warning when building without VTE support src/keyfile.c | 2 ++ 1 file changed, 2 insertions(+) commit 5d3b2f6269dc9151d9d72ab550539e6de37a439f Author: elextr Date: Mon Feb 10 12:19:45 2014 +1100 Fix crash if document closed while custom command is executing Custom command callback never checked that the doc was still valid. Can still paste in the wrong doc if user closes and opens while the command is running, but not crash. src/tools.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 09c2315bc43778537db987aa38d54dd5bf97381d Author: Enrico Tröger Date: Sun Feb 9 09:26:36 2014 +0100 Change expected tag kind for Python imports in tests since the parser has changed This fixes the tests which failed because I changed the parsing yesterday to classify Python as externvars and not as namespace tags anymore. tests/ctags/cython_sample2.pyx.tags | 2 +- tests/ctags/py_constructor_arglist.py.tags | 26 +++++++++++++------------- tests/ctags/simple.py.tags | 2 +- 3 files changed, 15 insertions(+), 15 deletions(-) commit 3d9908df8cf63c857d2f38b6653df018acb67ba8 Author: Enrico Tröger Date: Sat Feb 8 10:26:08 2014 +0100 Set tag kind for Python imports to externvar and map them in the symbol list. This fixes 'Go to Tag definition' for parsed Python imports as before the import statement was chosen as the definition while we prefer the class definition as target. src/symbols.c | 2 +- tagmanager/ctags/python.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) commit c4b0f0f74dc370ee43a14f76af3f4ba9fab48139 Author: Enrico Tröger Date: Sat Feb 8 10:23:30 2014 +0100 Add new symbol list category "Extern variables" This is a requirement for an upcoming Python parser fix. This new category will be currently only used by Python, C and D parsers. Before this change, in C & D extern variables were sorted into the category "Other", now they have their own category. src/symbols.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit c3aeb731945b6502bebc9e55375a45a75da3d5f8 Author: Frank Lanitz Date: Sun Feb 2 21:53:27 2014 +0100 Minimal update of Spanish translation to fix misstranslated string. po/es.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 465378d72a5d3672750dc9ba87792f2208adcc00 Author: Frank Lanitz Date: Thu Jan 30 23:20:48 2014 +0100 Update of Italian translation po/it.po | 782 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 401 insertions(+), 381 deletions(-) commit 986c59aecb06f3e727d7242368422745f6917775 Author: Matthew Brush Date: Tue Jan 28 17:16:50 2014 -0800 Use GeanyFiletypeGroupID enum in a few places Also move the `group_menus` global variable to the top of the file with the other globals. src/filetypes.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 6a85a50d21b6297fe1ea51ecc8792f6a1f81cf58 Author: Colomban Wendling Date: Wed Jan 29 01:34:26 2014 +0100 Replace bare CTags parser ID numbers with an enumeration Avoid using magic numbers in the source for better readability and easier maintenance. HACKING | 9 +-- src/filetypes.c | 126 +++++++++++++++++++++-------------------- tagmanager/ctags/parsers.h | 51 +---------------- tagmanager/src/Makefile.am | 1 + tagmanager/src/tm_parser.h | 75 ++++++++++++++++++++++++ tagmanager/src/tm_tagmanager.h | 1 + wscript | 2 +- 7 files changed, 149 insertions(+), 116 deletions(-) commit 576be4ca3b16326d3c6812c51db0062a9140d9fa Author: Matthew Brush Date: Mon Jan 27 18:11:34 2014 -0800 Reformat builtin filetype initialization code into tabular format * Add an initialization function ft_init() * Add a function-like macro to call ft_init() with shorter arguments * Search and replace old code with FT_INIT() usage * Layout into columns and add documentation above src/filetypes.c | 527 ++++++++++---------------------------------------------- 1 file changed, 88 insertions(+), 439 deletions(-) commit c674f0660ab9571c9071b84fc9eb38e1c6a60d4d Author: Matthew Brush Date: Mon Jan 27 17:04:38 2014 -0800 Cleanup filetype_make_title() a bit and use it more * Adds TITLE_NONE, TITLE_SCRIPT and TITLE_DOCUMENT. * Only a few filetype titles were tweaked but we should review the rest as we could use TITLE_SCRIPT and TITLE_DOCUMENT a lot more probably. * Make filetype_make_title() not care about GeanyFiletype type and return result instead of internally setting ft state. src/filetypes.c | 139 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 73 insertions(+), 66 deletions(-) commit 8449b5f9b17e38d36065096287518d4443e3e41b Author: Frank Lanitz Date: Sun Jan 26 22:31:51 2014 +0100 Minor update of German translation po/de.po | 707 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 356 insertions(+), 351 deletions(-) commit d40932ce4d05e57573a6d6c8f89f4aea8c42d4f3 Author: Colomban Wendling Date: Thu Jan 2 18:07:35 2014 +0100 C++: mitigate matching error on generics containing an expression Mitigate parse error with generics like `foo x;` by avoiding matching past a semicolon (";") or open curly brace ("{"), which can't be part of the generic. This isn't a proper fix, but mitigates the impact of such constructs. tagmanager/ctags/c.c | 10 ++++++++++ tests/ctags/bug1563476.cpp.tags | 2 ++ 2 files changed, 12 insertions(+) commit f227076dc425052b85091e495b04f6d5b7a3f965 Author: elextr Date: Thu Jan 23 21:07:37 2014 +1100 Improve Asciidoc title parsing 1) Prevent parsing titles inside delimited blocks 2) Always detect -- lines as open block delimiters not titles 3) Support single line titles tagmanager/ctags/asciidoc.c | 94 +++++++++++++++++++++++++++++---------------- 1 file changed, 61 insertions(+), 33 deletions(-) commit c2dcec7107514c0632d8f657c3325b3963cf22a6 Author: Colomban Wendling Date: Sat Jan 18 15:15:11 2014 +0100 Don't use G_LIKELY() in macros commonly used in g_return_if_fail() g_return_if_fail() puts itself its condition in a G_LIKELY() clause, and nested G_LIKELY() lead to warnings about shadowed variables, as well as not being of any use. Also, hiding G_LIKELY() in a macro may lead to unexpected use of it which may hint the compiler incorrectly. src/document.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7473e4b1d94acd502c0aeb5e17d0b62235414294 Author: Colomban Wendling Date: Sat Jan 18 15:12:22 2014 +0100 Add defensive checks for function receiving a GeanyDocument argument Always check the passed-in GeanyDocument argument is a valid one, not to possibly work on an invalid document. src/build.c | 12 +++++++++++- src/dialogs.c | 4 +++- src/document.c | 2 ++ src/filetypes.c | 2 ++ src/keybindings.c | 8 ++++---- src/navqueue.c | 3 ++- src/printing.c | 3 +-- src/search.c | 6 +++--- src/sidebar.c | 2 ++ src/symbols.c | 4 +++- src/templates.c | 12 +++++++++--- src/tools.c | 4 ++-- src/ui_utils.c | 14 ++++++++++++++ 13 files changed, 58 insertions(+), 18 deletions(-) commit c4549b1e73fd2ea588dbaa5323b3fbf6960f5522 Author: elextr Date: Wed Jan 22 09:45:02 2014 +1100 Add new automake products to .gitignore Newer automake creates .dirstamp and config.h.in~ .gitignore | 2 ++ 1 file changed, 2 insertions(+) commit 5d62030667b917a942ff05562807ef761a120728 Author: elextr Date: Wed Jan 22 08:59:14 2014 +1100 Fix "leaks" of geany_run_script (bug 975) In build_run_cmd() the script was not deleted when any one of several errors occurred. The errors are not related to script contents so it makes no sense to leave the script. Also fixes failure to delete script if a working dir was set. src/build.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit df4770362fff8f17513447e905db731d99a0d949 Merge: 7c6f48e4f 05dda6b00 Author: Matthew Brush Date: Mon Jan 20 07:41:53 2014 -0800 Merge pull request #205 from aphirst/fortran-keywords Corrections and Amendments to the Fortran "filetype" files commit 05dda6b001ac71d0fc8592f480e30b8a52e2def5 Author: Adam Hirst Date: Mon Jan 20 15:21:36 2014 +0000 Updated keywords and intrinsic functions in accordance with the Fortran 2008 standard. data/filetypes.fortran | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 10ac2816af2d57326251d7a4101273f068cc13f4 Author: Adam Hirst Date: Mon Jan 20 15:20:12 2014 +0000 Removed years-old typo from the keyword list. data/filetypes.f77 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7c6f48e4f56999eef6e5f29b4106c3e1d05ffe47 Author: Colomban Wendling Date: Fri Jan 17 18:26:23 2014 +0100 Workaround a slowness in multi-column combo boxes under GTK3 Always set the combo boxes' wrap-width after their models are fully filled to work around dramatic slowness described in GTK bug https://bugzilla.gnome.org/show_bug.cgi?id=722388 data/geany.glade | 2 -- src/dialogs.c | 2 +- src/prefs.c | 9 ++++++++- 3 files changed, 9 insertions(+), 4 deletions(-) commit 5975931be8b43086da947728406408e6dc332445 Author: Colomban Wendling Date: Tue Jan 14 22:26:54 2014 +0100 Add a section on how to add a test for a parser in HACKING HACKING | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 7205b83abf4fe88a2445e0a9323a5789a74bbae6 Author: Colomban Wendling Date: Tue Jan 14 21:14:37 2014 +0100 Update NEWS for Rust filetype NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e5495627924c5505425d1699fdc7380ae0465670 Merge: 1a5554c41 416c3daec Author: Colomban Wendling Date: Tue Jan 14 21:09:10 2014 +0100 Merge branch 'SiegeLord/rust' Closes PR#181. commit 416c3daecc649b63c96503f5c43de37b19220b11 Author: SiegeLord Date: Fri Oct 18 17:33:33 2013 -0400 Clean up Rust ctag tests and make them more comprehensive tests/ctags/test_input.rs | 72 +++++++++++++++++++++++++++++++++++------- tests/ctags/test_input.rs.tags | 11 ++++++- tests/ctags/test_input2.rs | 5 +-- 3 files changed, 71 insertions(+), 17 deletions(-) commit 370666865bea7ccb73689990231af87446cfe19a Author: Colomban Wendling Date: Thu Oct 17 20:13:33 2013 -0400 Add Rust tests to the makefile tests/ctags/Makefile.am | 2 ++ 1 file changed, 2 insertions(+) commit 09cb24c7c718fe587d1f3f97feff811c05a8ab72 Author: dobkeratops Date: Thu Oct 17 20:08:57 2013 -0400 Add Rust ctag tests tests/ctags/test_input.rs | 90 +++++++++++++++++++++++++++++++++++++++++ tests/ctags/test_input.rs.tags | 33 +++++++++++++++ tests/ctags/test_input2.rs | 43 ++++++++++++++++++++ tests/ctags/test_input2.rs.tags | 19 +++++++++ 4 files changed, 185 insertions(+) commit 828df0ab5fc6a2a25a3b1a524a34c442dc01921f Author: SiegeLord Date: Wed Oct 16 18:27:10 2013 -0400 Add shebang filetype detection for Rust src/filetypes.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3d7ade4e0232f4292b3d966e20f012afb4a2856e Author: SiegeLord Date: Wed Oct 16 17:19:29 2013 -0400 Integrate the Rust lexer with the rest of Geany's functionality data/filetype_extensions.conf | 2 +- data/filetypes.Rust.conf | 61 ----------------------------------------- data/filetypes.rust | 31 +++++++++++++++------ src/document.c | 1 + src/editor.c | 7 +++++ src/highlighting.c | 14 ++++++++++ src/highlightingmappings.h | 35 +++++++++++++++++++++++ src/symbols.c | 16 +++++++++++ tagmanager/ctags/makefile.win32 | 2 +- wscript | 1 + 10 files changed, 99 insertions(+), 71 deletions(-) commit a08557321296e9fa63dae7b25a2bf71a31a92b39 Author: SiegeLord Date: Thu Oct 17 20:22:48 2013 -0400 Use :: as the context separator for Rust src/symbols.c | 1 + 1 file changed, 1 insertion(+) commit aa7e938164dc14cb1d866effb0c11b42ec11ff6e Author: Colomban Wendling Date: Fri Oct 18 15:06:09 2013 +0200 Update our Scintilla patch for the addition of Rust lexer scintilla/scintilla_changes.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 36537c4dcd7d3f78075289128c0e0a4a13544880 Author: SiegeLord Date: Sun Jan 12 13:57:03 2014 -0500 Update Rust Scintilla lexer to Scintilla revision 4946:4d9978010c3a scintilla/lexers/LexRust.cxx | 177 +++++++++++++++++++++++-------------------- 1 file changed, 95 insertions(+), 82 deletions(-) commit 4d33223c9877c81bdb5da0bacb31392e843f4d33 Author: SiegeLord Date: Wed Oct 16 12:25:57 2013 -0400 Import the Rust lexer from Scintilla scintilla/Makefile.am | 1 + scintilla/lexers/LexRust.cxx | 768 +++++++++++++++++++++++++++++++++++++++++++ scintilla/makefile.win32 | 1 + scintilla/src/Catalogue.cxx | 1 + 4 files changed, 771 insertions(+) commit b17b4be1260e8828f62c56c87cf8bf886cbbf3b4 Author: dobkeratops Date: Thu Oct 17 20:07:18 2013 -0400 Added the Rust filetype data/filetypes.rust | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/filetypes.c | 9 +++++++++ src/filetypes.h | 1 + 3 files changed, 61 insertions(+) commit ad59468f3e4efb8e49503a1e5e687196f5013ede Author: Colomban Wendling Date: Sun Jan 12 13:50:45 2014 +0100 rust: Don't use fileEOF() as it behaves unexpectedly fileEOF() actually returns TRUE anywhere after the last newline when using the file*() API, which includes a last line without newline. This is an implementation detail which makes this function not usable with the rest of the file*() API. fileEOF() should actually probably be called iFileEOF(), but that's outside the scope of this parser. However, even if fileEOF() did work properly with fileGetc(), the very last byte in the input would have been omitted because we actually read ahead by one byte, which means the actual read reaches EOF one byte before our "current byte" does. Checking whether we reached EOF by checking whether our current byte isn't equal to `EOF` fixes it, and isn't worse since it's actually how fileEOF() is implemented anyway. tagmanager/ctags/rust.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit c84eb2c1c978bf1af165630208f0df596e07065e Author: SiegeLord Date: Thu Oct 17 20:00:42 2013 -0400 Add a Rust ctags generator. Thanks to Colomban Wendling for reviewing and finding and fixing many issues. tagmanager/ctags/Makefile.am | 1 + tagmanager/ctags/parsers.h | 4 +- tagmanager/ctags/rust.c | 909 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 913 insertions(+), 1 deletion(-) commit 1a5554c41cffce0c90252c1f6503aae369659b88 Author: Colomban Wendling Date: Fri Jan 10 18:33:04 2014 +0100 Add our stock icons manually Although GtkIconFactory implements GtkBuildable properly and works just fine, Glade can't handle it and keeps removing it upon save. So, drop the automatic setup to a manual one so the UI description is editable with Glade again, and which also has the small advantage of not repeating the stock ID strings. data/geany.glade | 7 ------- src/ui_utils.c | 25 ++++++++++++++++++++++++- 2 files changed, 24 insertions(+), 8 deletions(-) commit 17a7469b6870461766c9872791f743156e038760 Author: Colomban Wendling Date: Thu Jan 9 17:50:30 2014 +0100 Avoid a few unnecessary widget lookups src/search.c | 13 +++++-------- src/ui_utils.c | 10 ++++------ 2 files changed, 9 insertions(+), 14 deletions(-) commit 680a556fffa5311d227f476e8e154d20da638414 Author: Colomban Wendling Date: Thu Jan 9 17:34:50 2014 +0100 Find when activating the find entry in the replace dialog src/search.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit ee891e189eef1c168349a9420a28af02e5127738 Author: Sam Lin Date: Fri Dec 13 21:56:25 2013 +0800 Update zh_TW.po fix typo po/zh_TW.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dd7c20a19470f588eaea6196d864142458d3d5ee Author: Colomban Wendling Date: Thu Jan 9 02:13:54 2014 +0100 python: Improve access reporting See: * http://www.python.org/dev/peps/pep-0008/#method-names-and-instance-variables * http://www.python.org/dev/peps/pep-0008/#designing-for-inheritance tagmanager/ctags/python.c | 50 +++++++++++++++++++++++++++++++++++------------ 1 file changed, 37 insertions(+), 13 deletions(-) commit 625c7b829d45a72951fe75b8fe6cf7aab4189fb6 Author: Dimitar Zhekov Date: Tue Dec 24 18:29:40 2013 +0200 fix unexisting keys assigned to "Send selection to -> ..." src/tools.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 5412f73d02f0d40b96d3e2a666e09faaa44ddbf9 Author: Colomban Wendling Date: Thu Jan 9 02:12:44 2014 +0100 python: Don't duplicate the kind names tagmanager/ctags/python.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 8d5c7fbdc1dcf773d1463a39c5a62e344aca8dca Author: kuroidoruido Date: Tue Jan 7 18:24:05 2014 +0100 Update filetypes.sql Add loop and replace keywords data/filetypes.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 99e07cd294b1447f2741de033dd93c4cf33f1144 Author: Frank Lanitz Date: Fri Dec 27 12:00:28 2013 +0100 Swedish translation has also been updated for 1.24 NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a7884ee2f8b746e70cc2d71cf898a4d5a95172e0 Author: Colomban Wendling Date: Tue Dec 24 19:28:20 2013 +0100 JavaScript: fix parsing of files starting with a shebang Closes #1016. tagmanager/ctags/js.c | 16 ++++++++++++++++ tests/ctags/Makefile.am | 1 + tests/ctags/shebang.js | 3 +++ tests/ctags/shebang.js.tags | 2 ++ 4 files changed, 22 insertions(+) commit e13cd014be208085a43cb637b67840add68b8bbb Author: Colomban Wendling Date: Sun Dec 22 20:47:33 2013 +0100 Fix portability of make rules to build documentation Support for "$<" automatic variable in non-suffix rules is a GNU Make extension: don't use it. doc/Makefile.am | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 4c8d2fb9286227861c62d2ef1c80d6627d032e3d Author: Colomban Wendling Date: Thu Dec 19 20:36:07 2013 +0100 Fix handling of --list-documents when no other instance are running Properly exit when passed --list-documents, even if no other instance were already running. This makes this option behave the same in any case, making it easier to use in e.g. scripts. NEWS | 2 ++ src/main.c | 30 ++++++++++++++++-------------- 2 files changed, 18 insertions(+), 14 deletions(-) commit 3693889c48b68e9e791bde9df5a83486b02081c4 Author: Colomban Wendling Date: Tue Dec 17 21:47:00 2013 +0100 Update NEWS NEWS | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 59 insertions(+), 3 deletions(-) commit 0eec7764af5cbcf70e10e44d2eb7b486e5c7cd53 Author: Colomban Wendling Date: Tue Dec 17 16:17:21 2013 +0100 Fix truncation of the data retrieved with --list-documents Do not truncate the document list to the size of the buffer used for communication. Since we now read multiple times, we need to make sure to always send ETX so a reader don't hang reading the next chunk if the data sent had exactly the size of the buffer. src/socket.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) commit c0a233fcc3860aa98a38754d1d5e69e51e991ac5 Author: Colomban Wendling Date: Tue Dec 17 16:09:56 2013 +0100 Fix a typo in the documentation's markup doc/geany.txt | 1 + 1 file changed, 1 insertion(+) commit f94650b48ee10b4356675fde5d0b56d3e3135d0b Author: Colomban Wendling Date: Tue Dec 17 15:54:07 2013 +0100 Autotools: use the target file as the base rule for building documentation This allows automatic building of the file when required, and allows user to request building that specific file. doc/Makefile.am | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) commit 9a236fb04e8d5f4eb6dc340e23e51f1ff013fe3c Author: Colomban Wendling Date: Tue Dec 17 15:50:07 2013 +0100 Autotools: fix building the documentation in VPATH builds doc/Makefile.am | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit dec7b939fb07dd29bd61d9625a88503183ab14b6 Author: Colomban Wendling Date: Tue Dec 17 15:42:34 2013 +0100 Autotools: always put object files in the source file's directory Enable Automake option "subdir-object" to put all object files next to their source file rather than in the directory containing the Makefile. This is quite expected, and will be the future behavior of Automake in all cases, so enabling it now avoids future unexpected change. configure.ac | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0592b4410cd24eaad3ebb6547620dbc0b8b4d1c1 Author: Colomban Wendling Date: Tue Dec 17 15:41:22 2013 +0100 Autotools: enable Automake warnings configure.ac | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 98b82550a8344c2615c986fb235096e7d517911a Author: Colomban Wendling Date: Thu Dec 5 20:31:07 2013 +0100 Plug a few possible small memory leaks src/keyfile.c | 6 +++--- src/toolbar.c | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) commit ddf67a8586302e1dced6dbb6062e5f1797a18a9e Author: Colomban Wendling Date: Thu Dec 5 20:18:27 2013 +0100 VTE: properly use the default value for invalid configured colors src/keyfile.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit 4aff511b018f43bcefa108269c78c974848b27c4 Author: Colomban Wendling Date: Thu Dec 5 20:16:54 2013 +0100 Remove unnecessary allocation for VTE color settings src/keyfile.c | 10 ++++------ src/prefs.c | 4 ++-- src/vte.c | 16 +++++----------- src/vte.h | 4 ++-- 4 files changed, 13 insertions(+), 21 deletions(-) commit 69f1cc7136dcb44bba21c9d6a4a54c2c7219f27f Author: Colomban Wendling Date: Wed Dec 4 15:49:47 2013 +0100 Remove useless rotate_rgb() src/highlighting.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) commit 4ce6409e898b3b7d9b63f98b8e4017a138533dde Author: Colomban Wendling Date: Wed Dec 4 15:46:05 2013 +0100 Remove useless utils_invert_color() src/highlighting.c | 2 +- src/utils.c | 12 ------------ src/utils.h | 2 -- 3 files changed, 1 insertion(+), 15 deletions(-) commit 898097063098b5ec73611f5d0359d963922b9dd3 Author: Colomban Wendling Date: Wed Dec 4 15:31:17 2013 +0100 Unify color parsing Change utils_parse_color() to use gdk_color_parse() and follow its syntax, additionally supporting our "0x" prefix as a synonym for the "#" prefix; and use this everywhere. Also add utils_color_to_bgr() and utils_parse_color_to_bgr() to provide conversion to the 24 bits BGR format used by Scintilla. src/highlighting.c | 2 +- src/keyfile.c | 4 ++-- src/prefs.c | 2 +- src/sciwrappers.c | 2 +- src/tools.c | 12 ++-------- src/utils.c | 65 +++++++++++++++++++++++------------------------------- src/utils.h | 6 ++++- src/win32.c | 2 +- 8 files changed, 40 insertions(+), 55 deletions(-) commit 1590007862ce13b14e3af6e0f4f1d1b5afb73554 Author: Colomban Wendling Date: Wed Dec 4 14:59:05 2013 +0100 Remove an unnecessary allocation src/prefs.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 3522e81d7344c584a78c2f52cf8bcd32f14dd38d Merge: f07b5457d 3759562d7 Author: Colomban Wendling Date: Tue Dec 3 03:09:41 2013 +0100 Merge branch 'wip/color-parsing-improvements' commit f07b5457d6505ce8127c4b823b18ee42ffbc7730 Author: Colomban Wendling Date: Mon Dec 2 23:19:44 2013 +0100 Simplify fold toggling code using higher-level Scintilla API src/editor.c | 41 ++++++++++++----------------------------- 1 file changed, 12 insertions(+), 29 deletions(-) commit 3759562d7c3b53b19f363a47413a8b04b75661a7 Author: Colomban Wendling Date: Mon Dec 2 22:58:54 2013 +0100 Simplify reading highlighting colors with new utils_parse_color() Drop redundant code converting # and short formats to hex colors now utils_parse_color() can parse them. src/highlighting.c | 32 ++++---------------------------- 1 file changed, 4 insertions(+), 28 deletions(-) commit ebde42617a5c4e57ae0d717b56a03201f51e0988 Author: Colomban Wendling Date: Mon Dec 2 22:53:35 2013 +0100 Accept colors with only 1 digit per channel in utils_parse_color() AKA short HTML color notation. src/utils.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) commit 11a2f0ee91be81991c9d1b3dfe9b8b9680ca3abf Author: Colomban Wendling Date: Mon Dec 2 22:44:40 2013 +0100 Properly validate input in utils_parse_color() src/utils.c | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) commit 507005ca549a4f6b7c45c1c27b4a219ca6b03f7e Author: Colomban Wendling Date: Mon Dec 2 22:38:11 2013 +0100 Rename utils_strtod() to utils_parse_color() Rename the function to a more sensible name, and remove unnecessary arguments. Now, format (# or 0x) is auto-detected. src/highlighting.c | 2 +- src/sciwrappers.c | 2 +- src/utils.c | 33 ++++++++++++++------------------- src/utils.h | 2 +- src/win32.c | 2 +- 5 files changed, 18 insertions(+), 23 deletions(-) commit f99e627bb0d28821168a44553f92fd5dd60eafe3 Author: Colomban Wendling Date: Sat Nov 23 00:45:39 2013 +0100 Fix folding of the very last line in a level when unfolding children Fix an off-by-one mistake resulting on the very last line of a nested folded level not to be unfolded when recursively unfolding it's parent. This was only visible when the last fold point was only one line long, otherwise unfolding the (N-1)th line was enough. Closes #1007. src/editor.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit cff36e7497be16cefede1b393207e61709c71c2e Author: Colomban Wendling Date: Wed Nov 20 18:41:11 2013 +0100 R: properly display sources and libraries in the symbol list src/symbols.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 10893c4ada3be907a97dd4e472de029442e687bc Author: Colomban Wendling Date: Wed Nov 20 18:40:22 2013 +0100 R: fix invalid memory access in the tag parser tagmanager/ctags/r.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) commit 1dfc1077c7f52070ceb65fe97ea2a8da3cc5c93e Author: Colomban Wendling Date: Mon Nov 18 22:22:57 2013 +0100 Fix crash in fallback mime icon loading code under GTK3 src/ui_utils.c | 3 +++ 1 file changed, 3 insertions(+) commit b63eb87599a6f9f8a44d7b94e94e31a26bbf2910 Author: Roland Pallai Date: Thu Nov 14 00:53:40 2013 +0100 "Enter in replace entry does Replace & Find instead of Replace" setting in General/Misc/Search. data/geany.glade | 17 +++++++++++++++++ doc/geany.txt | 3 +++ src/search.c | 7 ++++++- src/search.h | 1 + 4 files changed, 27 insertions(+), 1 deletion(-) commit cebc20a47c0b9955259c4e3a740cd48af58e1623 Author: Colomban Wendling Date: Mon Nov 11 18:54:08 2013 +0100 Use proper argument list tagmanager/ctags/cobol.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bbc0fa3b69eb4f939a70b9ff27411e146a59400d Author: Colomban Wendling Date: Mon Nov 11 18:52:45 2013 +0100 Don't depend on an implementation detail of S_ISREG and S_ISDIR tagmanager/src/tm_file_entry.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 660c441b4af272fe4e40eb6a6cda2badb8f17eac Author: Arthur Rosenstein Date: Wed Nov 6 16:28:09 2013 +0000 Don't prompt for reload confirmation if keeping edit history No work is lost in that case (except for the redo stack, which is normal), so the extra confirmation step seems bothersome. src/callbacks.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 322fa65ff555be84dee05761665fe87d0daa9432 Author: Arthur Rosenstein Date: Wed Nov 6 16:17:26 2013 +0000 Maintain undo stack when reloading a document src/document.c | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 72 insertions(+), 3 deletions(-) commit 1b338d9d7dd23c1dc0828408e6687a9b47e94fc1 Author: Arthur Rosenstein Date: Wed Nov 6 14:52:54 2013 +0000 Add UNDO_RELOAD action src/document.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++- src/documentprivate.h | 8 ++++++++ 2 files changed, 57 insertions(+), 1 deletion(-) commit 6f6dfda8a8e6af4a84897db543885a9261481ba4 Author: Arthur Rosenstein Date: Wed Nov 6 14:28:43 2013 +0000 Add documentation for keep_edit_history_on_reload option doc/geany.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 9a03d32449b5d8c831d2b53a264db56ab57e8699 Author: Arthur Rosenstein Date: Wed Nov 6 14:16:11 2013 +0000 Add keep_edit_history_on_reload option When this option is set, the undo stack is maintained when reloading a document. src/document.h | 1 + src/keyfile.c | 2 ++ 2 files changed, 3 insertions(+) commit 1b1a1da4edfbf7168dd9afa8593cab77aca7f3a3 Author: Arthur Rosenstein Date: Wed Nov 6 12:44:14 2013 +0000 Clear redo stack when adding undo action This fixes a bug in Geany where modifying the document does not clear the redo actions stack. src/document.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) commit 1f2279aefe165b874a42457f4a24af498f92dc27 Author: Colomban Wendling Date: Sun Nov 10 01:41:01 2013 +0100 Always use proper functions argument lists src/dialogs.c | 4 ++-- src/document.c | 4 ++-- src/editor.c | 2 +- src/filetypes.c | 4 ++-- src/highlighting.c | 2 +- src/keybindings.c | 2 +- src/main.c | 2 +- src/navqueue.c | 8 ++++---- src/notebook.c | 4 ++-- src/prefix.c | 2 +- src/sidebar.c | 2 +- src/win32.c | 2 +- tagmanager/src/tm_workspace.c | 2 +- 13 files changed, 20 insertions(+), 20 deletions(-) commit 0a5378134a0f93569d86890762963e6b48bb758f Author: Arthur Rosenstein Date: Wed Nov 6 12:36:07 2013 +0000 Add document_undo_clear_stack() This function clears a single undo/redo stack. src/document.c | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) commit 39fa004619d211a84ea46a5e45f7470106d19b9c Author: Colomban Wendling Date: Thu Nov 7 23:07:33 2013 +0100 Fasten utils_tidy_path() a little and fix possible leaks in it Fix possible leaks with bad paths, and also speed up some part of the function by avoiding unnecessary allocations and string length computations. src/utils.c | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) commit c074817b8b2bd63b8f2881a7b79636dd15febf4d Author: Colomban Wendling Date: Thu Nov 7 22:57:40 2013 +0100 Fix 2 unlikely memory leaks src/build.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1d8dd84a47b7993f14ba4737c3fcd23f60697cee Author: Colomban Wendling Date: Thu Nov 7 21:28:23 2013 +0100 Fix some small type issues in printf formats src/build.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 5c22c9d73e14f77959d0de27c8363a1fe8fe8940 Author: Colomban Wendling Date: Mon Nov 4 17:42:05 2013 +0100 R has braces src/editor.c | 1 + 1 file changed, 1 insertion(+) commit 7b2f39a852bc29feb196710d5752faae70a50832 Author: Colomban Wendling Date: Mon Nov 4 16:01:29 2013 +0100 Remove an unused variable and plug a theoretical memory leak src/build.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit b2f4717ad301777ca9cfb77fca38f4dc8d3d90a6 Author: Colomban Wendling Date: Sun Nov 3 23:35:00 2013 +0100 Plug a memory leak on Windows src/build.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 5918532ab23fdd310266792b999e3133de996747 Author: Colomban Wendling Date: Sun Nov 3 22:28:02 2013 +0100 Explicit a valid cast src/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cb588a1b82d0e85c0cdb9e422d073b4dc9b04a30 Author: Colomban Wendling Date: Sun Nov 3 22:25:01 2013 +0100 Plug a possible memory leak src/main.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 0cb139638f18c8b633ce7ad5bd3fb0a4f0dfc869 Author: Colomban Wendling Date: Sun Nov 3 22:18:50 2013 +0100 Plug a memory leak src/templates.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bc6c345153f2020fb64827e5a8442e4ecc2794e9 Author: Colomban Wendling Date: Sun Nov 3 22:18:26 2013 +0100 Remove an unused variable that could be leaked src/build.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 6e46cca735fc4ab19c629f5a2d47aad2180cb302 Author: Colomban Wendling Date: Sun Nov 3 01:52:27 2013 +0100 Fix mismatching allocation and deallocation When allocation with g_malloc(), the memory should be freed using g_free(), not plain free(). Also, use g_try_malloc() instead of g_malloc() where the code carefully handles allocation failures itself. tagmanager/ctags/sort.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 47609ec102eb31dcd7d558a7cb8a1bcdbffff81d Author: Colomban Wendling Date: Sun Nov 3 01:52:12 2013 +0100 Plug a possible memory leak src/utils.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 02852b33b07491d99ad44f6f58fd654bee76244e Author: Colomban Wendling Date: Sun Nov 3 01:51:03 2013 +0100 Simplify utils_get_hex_from_color() and plug a possible memory leak in it src/utils.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit fd18b7455c154a51b91c45c5216c9ecc047b4227 Author: Colomban Wendling Date: Sat Nov 2 22:10:32 2013 +0100 Plug a possible memory leak There is no need to check doc->real_path since the usage is NULL-safe, and if it actually is empty or NULL it isn't a bug in the caller itself anyway, and this could leak. src/editor.c | 2 -- 1 file changed, 2 deletions(-) commit 6a19a4488d7037591083001f11f9f4fe2065aafa Author: Nick Treleaven Date: Thu Oct 31 13:54:31 2013 +0000 Add info on how g_spawn is broken on Windows src/win32.c | 3 +++ 1 file changed, 3 insertions(+) commit ef331759b01a415ba4d09b4940aa052f9ceedf7c Author: Colomban Wendling Date: Sun Oct 20 15:19:56 2013 +0200 If we write C99, we better make sure we compile as such configure.ac | 1 + 1 file changed, 1 insertion(+) commit 131b608d5b430df6bb960ecdd63611cb5cda4be8 Author: Matthew Brush Date: Sun Oct 20 05:59:21 2013 -0700 Update HACKING a bit for C99 standard HACKING | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) commit 7d79df7975dab3aa6a2c824cf5a504069c291077 Merge: b645eccf6 635b7c24a Author: Colomban Wendling Date: Wed Oct 16 15:45:01 2013 +0200 Merge branch 'scintilla-update-336' commit 635b7c24a6898fe92768b1fa593a1a468e96adb9 Author: Colomban Wendling Date: Wed Oct 16 15:36:57 2013 +0200 Update Scintilla to version 3.3.6 scintilla/gtk/PlatGTK.cxx | 14 +--- scintilla/gtk/ScintillaGTK.cxx | 23 +++--- scintilla/include/ILexer.h | 2 + scintilla/include/Platform.h | 18 ----- scintilla/include/SciLexer.h | 22 ++++++ scintilla/include/Scintilla.h | 4 + scintilla/include/Scintilla.iface | 32 ++++++++ scintilla/lexers/LexCPP.cxx | 8 ++ scintilla/lexers/LexOthers.cxx | 13 ++- scintilla/lexers/LexPascal.cxx | 21 ++--- scintilla/lexers/LexPerl.cxx | 28 ++++--- scintilla/lexers/LexSQL.cxx | 162 ++++++++++++++++++++++++++++++-------- scintilla/lexlib/StyleContext.h | 4 +- scintilla/lexlib/SubStyles.h | 25 ++++-- scintilla/lexlib/WordList.cxx | 40 +++++----- scintilla/scintilla_changes.patch | 5 +- scintilla/src/Document.cxx | 2 +- scintilla/src/Editor.cxx | 45 ++++++----- scintilla/src/ScintillaBase.cxx | 30 ++++++- scintilla/src/ScintillaBase.h | 2 +- scintilla/src/ViewStyle.cxx | 4 +- scintilla/src/ViewStyle.h | 2 +- scintilla/version.txt | 2 +- 23 files changed, 354 insertions(+), 154 deletions(-) commit b645eccf6e4a83a513a689034181cb96d51d5dff Author: Colomban Wendling Date: Tue Oct 15 16:01:02 2013 +0200 Do not ignore keys inside inherited groups When inheriting a group in a filetypes file, do not ignore local keys. This allows for partial overrides of the parent group, like: [settings=Parent] key=value All keys from Parent's group "settings" would be imported, but now the "key" key wouldn't be ignored anymore and would override a "key" key from the group copied from Parent if it exists. src/filetypes.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) commit 01e7fe4b79d0697ac2d03ab5ba18bd92a664ffc2 Author: Colomban Wendling Date: Tue Oct 15 15:56:44 2013 +0200 Use GIcon for the filetype icon rather than rendered pixbuf This allows to re-use the icon more easily since it's not rendered at a particular size but simply an icon description. It also allows for implicit icon updating when the theme changes if the display code implements it (and GTK widgets does). src/dialogs.c | 6 ++---- src/filetypes.c | 23 ++--------------------- src/filetypes.h | 4 +--- src/main.c | 4 ++++ src/sidebar.c | 18 +++++++++--------- src/ui_utils.c | 49 ++++++++----------------------------------------- src/ui_utils.h | 2 +- 7 files changed, 27 insertions(+), 79 deletions(-) commit d29b5912fff974b79ef767e7afc75d7ffbc64192 Author: Colomban Wendling Date: Tue Oct 15 02:39:24 2013 +0200 Read filetype's mime type from the configuration files This allows custom filetypes to define a mime type, hence the icon displayed for this filetype; as well as moving ones for built-in filetypes out of the code to the configuration files. data/filetypes.Go.conf | 6 +++- data/filetypes.Graphviz.conf | 3 ++ data/filetypes.Scala.conf | 3 ++ data/filetypes.abc | 2 ++ data/filetypes.actionscript | 3 ++ data/filetypes.ada | 3 ++ data/filetypes.c | 3 ++ data/filetypes.caml | 3 ++ data/filetypes.cmake | 3 ++ data/filetypes.cobol | 3 ++ data/filetypes.cpp | 3 ++ data/filetypes.cs | 3 ++ data/filetypes.css | 3 ++ data/filetypes.d | 3 ++ data/filetypes.diff | 3 ++ data/filetypes.docbook | 3 ++ data/filetypes.erlang | 3 ++ data/filetypes.f77 | 3 ++ data/filetypes.fortran | 3 ++ data/filetypes.haskell | 3 ++ data/filetypes.html | 3 ++ data/filetypes.java | 3 ++ data/filetypes.javascript | 3 ++ data/filetypes.latex | 3 ++ data/filetypes.lua | 3 ++ data/filetypes.makefile | 3 ++ data/filetypes.markdown | 3 ++ data/filetypes.matlab | 3 ++ data/filetypes.objectivec | 3 ++ data/filetypes.pascal | 3 ++ data/filetypes.perl | 3 ++ data/filetypes.php | 3 ++ data/filetypes.po | 3 ++ data/filetypes.python | 3 ++ data/filetypes.restructuredtext | 3 ++ data/filetypes.ruby | 3 ++ data/filetypes.sh | 3 ++ data/filetypes.sql | 3 ++ data/filetypes.tcl | 3 ++ data/filetypes.txt2tags | 3 ++ data/filetypes.vala | 3 ++ data/filetypes.verilog | 3 ++ data/filetypes.vhdl | 3 ++ data/filetypes.xml | 3 ++ data/filetypes.yaml | 3 ++ doc/geany.txt | 4 +++ src/filetypes.c | 79 ++++++++++++++--------------------------- src/filetypes.h | 2 ++ src/sidebar.c | 5 +-- src/ui_utils.c | 2 +- 50 files changed, 173 insertions(+), 56 deletions(-) commit 48fe855b50528ef27c45160959e324c08b2e0676 Author: Enrico Tröger Date: Sun Oct 13 18:55:16 2013 +0200 Adjust test case tags file for fixed Python parser (class arglist assignment) tests/ctags/cython_sample.pyx.tags | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3443e288fe608306606f6b6a846886a377e46aff Author: Enrico Tröger Date: Sun Oct 13 18:52:56 2013 +0200 Add flag to tm_tags_find() to indicate the tags array may not be sorted tm_tags_find() relies on a sorted tags array to be passed in but in tm_source_file_set_tag_arglist() we don't have a sorted array yet and sorting it on demand seems more heavy than the alternative: make tm_tags_find() search the array linear if the new flag is set. This fixes a bug in the Python parser when assigning the argument list of __init__() methods to their class' argument list which annoyed me for years already. Also add a test case for this. tagmanager/src/tm_source_file.c | 3 ++- tagmanager/src/tm_tag.c | 37 ++++++++++++++++++++++++------ tagmanager/src/tm_tag.h | 12 ++++++---- tagmanager/src/tm_workspace.c | 7 +++--- tests/ctags/Makefile.am | 1 + tests/ctags/py_constructor_arglist.py | 28 ++++++++++++++++++++++ tests/ctags/py_constructor_arglist.py.tags | 16 +++++++++++++ 7 files changed, 89 insertions(+), 15 deletions(-) commit a408938e957939594f549bc2bf5867699ece973d Author: Nick Treleaven Date: Sun Oct 13 12:54:58 2013 +0100 Set group for Clojure filetype data/filetype_extensions.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 49056ba984ef9c9ad90713e437f82962cb91baa7 Author: Yosef Or Boczko Date: Sun Oct 13 13:31:37 2013 +0300 Updated Hebrew translation po/he.po | 252 +++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 131 insertions(+), 121 deletions(-) commit b3b6d4efade37d608894ecd897d77975b32601b8 Author: Nick Treleaven Date: Fri Oct 11 16:47:04 2013 +0100 Fix missing warning section HACKING | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 15fb2f321ad400ca911c8b69a9b1a78b3baa3b51 Author: Nick Treleaven Date: Fri Oct 11 16:41:16 2013 +0100 Improve custom filetype formatting/links doc/geany.txt | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) commit 18d27364ac9c526527fc7e56ee7f2a4e6effdb4d Author: Nick Treleaven Date: Fri Oct 11 16:23:07 2013 +0100 Update notes for adding a custom filetype HACKING | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) commit 40cd633d5fc6f0bea1fda6edd03ee41e7604ae43 Author: Frank Lanitz Date: Fri Oct 11 09:56:08 2013 +0200 Update of Slovenian translation by Jože Klepec po/sl.po | 2981 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 1532 insertions(+), 1449 deletions(-) commit d51079d5987a8e3f63c6ddd5bf8c0a58608a8705 Author: Nick Treleaven Date: Thu Oct 10 12:40:07 2013 +0100 Fix mingw-gcc 'ordered comparison of pointer with integer zero' warning src/build.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1ab97fe2e0c4222900bb6e4e8d54655cfefd8756 Author: Colomban Wendling Date: Tue Sep 24 23:58:16 2013 +0200 Plug a memory leak when reading misnamed tag files Don't leak the file name if we can't determine to which filetype it belongs. Thanks to Pavel Roschin for spotting this. Also, remove an useless second function indirection that simply made the code harder to understand. This will make Matthew happy ;) src/symbols.c | 46 ++++++++++++++++++++++------------------------ 1 file changed, 22 insertions(+), 24 deletions(-) commit 8f11c62dc9004a15088abfbe3c607ef4e194323b Author: Colomban Wendling Date: Tue Sep 24 16:26:57 2013 +0200 Fix some module-specific globals not declared static This prevents the symbol to be exported and possibly conflict with another one. tagmanager/ctags/php.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e4eacef82b58f202bca379d8b4ca4df72662b578 Author: Colomban Wendling Date: Tue Sep 24 16:23:48 2013 +0200 Plug a memory leak Thanks to Pavel Roschin for spotting it. src/keybindings.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit af3421e688af3a8a81ffdaca1701dbeb49b5ebaa Author: Colomban Wendling Date: Mon Sep 23 21:54:30 2013 +0200 Plug a memory leak Do not evaluate a macro argument multiple times if it gets passed an expression, especially if that expression allocates memory. Thanks to Pavel Roschin for spotting the leak. src/build.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) commit 32b971cf1cb79891956a006da8432e4f22e3d515 Author: Colomban Wendling Date: Mon Sep 23 16:52:55 2013 +0200 JavaScript: fix parsing of regular expressions in a return statement tagmanager/ctags/js.c | 9 +++++---- tests/ctags/regexp.js | 11 +++++++++++ tests/ctags/regexp.js.tags | 2 ++ 3 files changed, 18 insertions(+), 4 deletions(-) commit c427ddb656a64c77d6e1421ab92b72630fbc94fc Author: Colomban Wendling Date: Thu Sep 19 19:40:56 2013 +0200 SQL: fix single-line comment marker Closes [bugs:#997]. data/filetypes.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b428042278634f9c0b9311b951a0de33fa785f30 Author: Nick Treleaven Date: Thu Sep 19 14:09:45 2013 +0100 Add sci_word_start_position, sci_word_end_position wrappers src/editor.c | 14 +++++++------- src/sciwrappers.c | 15 +++++++++++++++ src/sciwrappers.h | 2 ++ 3 files changed, 24 insertions(+), 7 deletions(-) commit 6d2f26c494d9459dfbb023655cbe046365424f52 Author: Nick Treleaven Date: Thu Sep 19 13:49:46 2013 +0100 Don't ignore word matches that vary only by case The user needs to see all case variants, even when they want searching to be done case-insensitively (which isn't supported yet). src/editor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dcfbf22cf291b48ad511135c612ca57c8d3e99da Author: Nick Treleaven Date: Thu Sep 19 13:37:23 2013 +0100 Don't allocate initial size based on autocompletion_max_entries The user may have set that too high. src/editor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 798849b64cb3f21066814450e06d69fb5e3c707a Merge: 3f27961ed 8d20c5961 Author: Colomban Wendling Date: Wed Sep 18 15:23:06 2013 +0200 Merge branch 'scintilla-update-335' commit 8d20c5961197dfd256dc7558f4eb0c5c3f51c153 Author: Colomban Wendling Date: Wed Sep 18 15:15:53 2013 +0200 Update NEWS NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b07d1a1ecc05f74f0a614a431763e2dafa2de995 Author: Colomban Wendling Date: Wed Sep 18 15:15:05 2013 +0200 Update Scintilla to version 3.3.5 scintilla/gtk/Converter.h | 13 + scintilla/gtk/PlatGTK.cxx | 24 +- scintilla/gtk/ScintillaGTK.cxx | 15 +- scintilla/include/SciLexer.h | 14 + scintilla/include/Scintilla.h | 6 + scintilla/include/Scintilla.iface | 35 ++ scintilla/lexers/LexAda.cxx | 2 +- scintilla/lexers/LexAsm.cxx | 2 +- scintilla/lexers/LexCOBOL.cxx | 8 +- scintilla/lexers/LexD.cxx | 8 +- scintilla/lexers/LexForth.cxx | 16 +- scintilla/lexers/LexHTML.cxx | 19 +- scintilla/lexers/LexLaTeX.cxx | 8 +- scintilla/lexers/LexLisp.cxx | 6 +- scintilla/lexers/LexNsis.cxx | 2 + scintilla/lexers/LexOthers.cxx | 2 +- scintilla/lexers/LexPerl.cxx | 2 +- scintilla/lexers/LexPython.cxx | 2 +- scintilla/lexers/LexR.cxx | 2 +- scintilla/lexers/LexYAML.cxx | 2 +- scintilla/lexlib/Accessor.cxx | 2 +- scintilla/lexlib/CharacterSet.cxx | 2 +- scintilla/lexlib/LexerBase.cxx | 2 +- scintilla/lexlib/LexerModule.cxx | 2 +- scintilla/lexlib/LexerNoExceptions.cxx | 2 +- scintilla/lexlib/LexerNoExceptions.h | 4 +- scintilla/lexlib/LexerSimple.cxx | 2 +- scintilla/lexlib/StyleContext.cxx | 2 +- scintilla/lexlib/WordList.cxx | 4 +- scintilla/scintilla_changes.patch | 5 +- scintilla/src/AutoComplete.cxx | 2 +- scintilla/src/CaseConvert.cxx | 256 ++++++------ scintilla/src/Catalogue.cxx | 11 +- scintilla/src/CellBuffer.cxx | 4 +- scintilla/src/Decoration.cxx | 4 +- scintilla/src/Document.cxx | 23 +- scintilla/src/Document.h | 3 + scintilla/src/Editor.cxx | 737 +++++++++++++++++---------------- scintilla/src/Editor.h | 31 +- scintilla/src/ExternalLexer.cxx | 2 +- scintilla/src/FontQuality.h | 13 + scintilla/src/KeyMap.h | 4 +- scintilla/src/LineMarker.h | 1 - scintilla/src/Partitioning.h | 9 + scintilla/src/PositionCache.cxx | 165 +++++--- scintilla/src/PositionCache.h | 41 +- scintilla/src/RunStyles.cxx | 5 +- scintilla/src/ScintillaBase.cxx | 2 +- scintilla/src/SplitVector.h | 8 + scintilla/src/UniConversion.cxx | 17 + scintilla/src/UniConversion.h | 17 + scintilla/src/UnicodeFromUTF8.h | 13 + scintilla/src/ViewStyle.cxx | 139 +++++-- scintilla/src/ViewStyle.h | 63 ++- scintilla/src/XPM.cxx | 2 +- scintilla/version.txt | 2 +- 56 files changed, 1084 insertions(+), 705 deletions(-) commit 3f27961ed760fb4d9ab26cf6d40ff7965e9cd818 Author: Frank Lanitz Date: Wed Sep 11 21:27:44 2013 +0200 Correct an ambiguous German translation po/de.po | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit d7041a0523f1e89312a8fafb70ac394f6248d914 Author: Frank Lanitz Date: Fri Sep 6 16:44:24 2013 +0200 Adding path for config on Windows7+ doc/geany.txt | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) commit 4786796e9aff75e67d8a6abdd61f5bbe7e1a7e66 Author: Colomban Wendling Date: Tue Aug 20 11:54:01 2013 +0200 Fix build (oops, sorry) src/printing.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1fe7b4848ee47e7cc198082ccb49bb398a6bfb21 Author: Colomban Wendling Date: Mon Aug 19 14:07:27 2013 +0200 Fix printing under Windows For some reason the Scintilla widget's Pango context don't have a resolution set on Windows, so we get an invalid one. Fix this by correctly peek the resolution from the map if the context doesn't have one by itself. https://developer.gnome.org/pango/stable/pango-Cairo-Rendering.html#pango-cairo-context-get-resolution Thanks to Matthew Brush for debugging this! Closes #961. src/printing.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 791cad305952f9f5cbab742a4f228563db72ab0c Author: Frank Lanitz Date: Tue Aug 20 11:39:37 2013 +0200 Update of Italian translation Giuseppe Penone po/it.po | 3113 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 1564 insertions(+), 1549 deletions(-) commit 0c2dac1e2032ce272ac0febeb9b681fecda8d103 Author: Frank Lanitz Date: Mon Aug 19 17:58:24 2013 +0200 Update of German translation po/de.po | 802 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 402 insertions(+), 400 deletions(-) commit 4e924817b36e491d3f04aa7f4857bd175c8f3d7e Author: Matthew Brush Date: Sun Aug 18 19:53:16 2013 -0700 Use empty string on win32 when no print command In the preferences dialog it would show a single quote because the print command couldn't be found and the NULL prematurely terminated the g_strconcat() call, leaving a single quote in the print command entry. Thanks to Lex for finding where the problem was. src/keyfile.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 82f82ed372a21d1f1648e79ddc27029d5d9d2ea7 Author: Colomban Wendling Date: Sun Aug 18 00:29:04 2013 +0200 Use GLib's portable version gethostname(): g_get_host_name() Drop our own portability layer and use GLib's one instead (which actually does exactly the same as our own). Thanks to Matthew for spotting this. configure.ac | 2 +- src/keyfile.c | 4 +--- src/socket.c | 3 +-- src/utils.c | 13 ------------- src/utils.h | 2 -- src/win32.c | 12 ------------ src/win32.h | 2 -- win32-config.h | 3 --- wscript | 1 - 9 files changed, 3 insertions(+), 39 deletions(-) commit 978fca130f6d768354bd745509ace5d24947ad31 Author: Colomban Wendling Date: Fri Aug 16 14:45:57 2013 +0200 Fix our Scintilla patch It got broken by df589a9d52086b22fe1dc7591482f5aa8f9bbc0e -- you have to fix the line change count in the block header too. scintilla/scintilla_changes.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f934d2cf945dd23e9fe73dc7626719a18c439c26 Author: Fitorec Date: Thu Jun 14 08:34:21 2012 -0500 Update the `create_php_tags.php` script * Uses more recent URL (as updated in other PR) * Downloads the funcsummary.txt file by itself * Support running the script from any directory Closes #47 scripts/create_php_tags.php | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) commit 05c9f10dd8d437a4ad078d5bd8a4eb738e79674d Author: TheHappyMarquis Date: Sat Oct 6 12:27:27 2012 +0300 Restore HTML filetype doublestring/hstring to original color Closes #74 and #75 data/filetypes.common | 2 +- data/filetypes.html | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) commit 7d4a2928b7d020c9d7e330550550f55422b4877b Author: Hoàng Minh Thắng Date: Sun Jan 13 18:57:46 2013 +0700 Add Clojure filetype Includes changes in referenced pull request comments. Closes #92 data/filetypes.Clojure.conf | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) commit 4c3730caf782d4286e8a84bd0a2c2766013f7c8f Author: Igor Shaula Date: Fri Apr 12 23:14:08 2013 +0300 LexPowerShell fixes and improvements * fix here-string highlighting * add doccomment keyword highlighting * add #region folding Closes #132 data/filetypes.powershell | 4 +++ scintilla/lexers/LexPowerShell.cxx | 51 ++++++++++++++++++++++++++++++++++++-- src/highlightingmappings.h | 32 +++++++++++++----------- 3 files changed, 71 insertions(+), 16 deletions(-) commit df589a9d52086b22fe1dc7591482f5aa8f9bbc0e Author: Igor Shaula Date: Wed Apr 10 20:54:59 2013 +0300 Add PowerShell filetype Windows PowerShell is a command-line shell and associated scripting language which comes out of the box with Windows 7/Server 2008/8/Server 2012. Original lexer from Scintilla is used. data/filetype_extensions.conf | 1 + data/filetypes.powershell | 55 ++++++++++ scintilla/Makefile.am | 1 + scintilla/lexers/LexPowerShell.cxx | 201 +++++++++++++++++++++++++++++++++++++ scintilla/makefile.win32 | 1 + scintilla/scintilla_changes.patch | 2 +- scintilla/src/Catalogue.cxx | 1 + src/filetypes.c | 6 ++ src/filetypes.h | 1 + src/highlighting.c | 2 + src/highlightingmappings.h | 30 ++++++ 11 files changed, 300 insertions(+), 1 deletion(-) commit d44dfdb9ac76924c94964545e1f600201e27903c Author: Matthew Brush Date: Thu Aug 9 16:53:33 2012 -0700 Save configuration when plugin manager dialog is closed Closes #62 src/plugins.c | 2 ++ 1 file changed, 2 insertions(+) commit ef7b092ef952abccf023b336c0bd3f03429ea552 Author: Antoine Turmel Date: Thu Aug 15 22:42:38 2013 +0200 Adding .properties file under Conf markup See http://en.wikipedia.org/wiki/.properties Closes #162 data/filetype_extensions.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1a185d87a4e40a2b361bfa6c469190b7a3cfd927 Author: Benjamin Chrétien Date: Sat Jun 15 17:38:08 2013 +0900 Add CUDA C/C++ support Closes #147 data/filetype_extensions.conf | 5 ++-- data/filetypes.CUDA.conf | 60 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 2 deletions(-) commit 706abfbf38c602fe1ec99d2b25e9ca150f3f24d0 Author: YosefOr Date: Sun Mar 10 17:48:27 2013 +0200 Add detection of PKGBUILD files as Shell scripts Closes #120 data/filetype_extensions.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9e22ec85359ef97c1995f233f615767bb97a341a Author: Miro Hrončok Date: Fri Mar 22 18:14:43 2013 +0100 Added Graphviz custom filetype Closes #125 data/filetype_extensions.conf | 3 ++- data/filetypes.Graphviz.conf | 59 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 1 deletion(-) commit b11a3adb7bc4f04d3cfc7b7a40cf8e3704dde523 Author: Ypnose Date: Fri Mar 22 19:49:59 2013 +0100 Add detection support for various Shell scripts * Add shebang detection of mksh and tcsh. * Add file extension detection of mksh, tcsh, and the various "profile" shell scripts. Closes #126 data/filetype_extensions.conf | 2 +- src/filetypes.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) commit 01b7191d661c5a2abbf521eeccaa9dcb0ed4adf0 Author: Edward Hutchins Date: Sat Jun 29 10:09:50 2013 -0700 Added hashbang detection for node=>javascript. Closes #149 src/filetypes.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 03e3ba798748bcc5186dedaaaa5871faf6527322 Author: Felix Totir Date: Fri Feb 1 18:02:10 2013 +0100 Added keywords for Matlab classes syntax highlight Closes #136 data/filetypes.matlab | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a1e920527086984ebfe2643e3daa6c6fa22bf7d0 Author: John Long Date: Sat May 4 19:11:30 2013 -0500 Update PHP source repo for tags and tags file The new tags file seems to have lots of new symbols. It needs testing by PHP programmers. Closes #137 data/php.tags | 6551 ++++++++++++++++++++++++++++--------------- scripts/create_php_tags.php | 4 +- 2 files changed, 4297 insertions(+), 2258 deletions(-) commit c615d8431fa2cf808ec692f1c605834186a39c08 Author: Nick Treleaven Date: Thu Aug 15 17:52:13 2013 +0100 Don't call getenv twice src/symbols.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 17f9dac0c683375422996a78be8cea20a2fd23f1 Author: Colomban Wendling Date: Thu Aug 15 14:49:16 2013 +0200 Update our Scintilla patch for Batch lexer scintilla/scintilla_changes.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6063e077c37230d03ca4d7fd1844e9a3dea25a77 Author: Colomban Wendling Date: Fri Aug 9 00:59:49 2013 +0200 PHP: Recognize vertical tab (\v) and form-feed (\f) as whitespaces Even though PHP doesn't handle those very well (it emits warnings about "unexpected character"), it still counts them as whitespaces, so properly handle them as such. tagmanager/ctags/php.c | 18 +++++++++--------- tests/ctags/Makefile.am | 1 + tests/ctags/whitespaces.php | 34 ++++++++++++++++++++++++++++++++++ tests/ctags/whitespaces.php.tags | 9 +++++++++ 4 files changed, 53 insertions(+), 9 deletions(-) commit 0101365b1f23a804ebfca875a31846d441a09ca4 Author: Colomban Wendling Date: Fri Aug 9 00:59:20 2013 +0200 PHP: Add strings tests tests/ctags/Makefile.am | 1 + tests/ctags/strings.php | 24 ++++++++++++++++++++++++ tests/ctags/strings.php.tags | 9 +++++++++ 3 files changed, 34 insertions(+) commit a114d1c3e2ea28a5595e3e50d14065089c26a73d Author: Frank Lanitz Date: Thu Aug 15 14:43:36 2013 +0200 Update of German trnaslation to fix a double use of accelerator po/de.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 09e7d8398fd168fd0aabfd908ffbdf429d7fc53e Author: exbb2 Date: Sun Jul 21 19:45:28 2013 +0300 Haskell filetype improvements and support for Literal Haskell Closes #155 and also closes #139 data/filetype_extensions.conf | 2 +- data/filetypes.haskell | 20 +++++++++++++++----- src/editor.c | 4 +++- src/highlighting.c | 11 +++++++++-- src/highlightingmappings.h | 4 +++- 5 files changed, 31 insertions(+), 10 deletions(-) commit b518770dea6daeba90f5c16a9b194f16b7de39c9 Author: canou Date: Mon Aug 12 21:51:00 2013 +0200 Add support for DOS, OS/2 and Windows batch files * Uses existing LexOthers.cxx from Scintilla already in use by Geany * "identifier" style mapping goes to "string" for better presentation even if it's semantically incorrect, we'll change it back if it causes issues for anyone. * Filetype configuration and keywords taken from Don Ho's Notepad++. Closes #160 data/filetype_extensions.conf | 1 + data/filetypes.batch | 40 ++++++++++++++++++++++++++++++++++++++++ scintilla/src/Catalogue.cxx | 1 + src/filetypes.c | 6 ++++++ src/filetypes.h | 1 + src/highlighting.c | 2 ++ src/highlightingmappings.h | 21 +++++++++++++++++++++ 7 files changed, 72 insertions(+) commit a08f595b359361c5c0c28cb52fed4fd0f3daa231 Author: Fabio Ticconi Date: Fri Jul 26 16:46:15 2013 +0100 Erlang filetype and snippets improvements * Add .hrl Erlang "header" file * Add some useful snippets * Add template for Erlang files as per EDocs guidelines Closes #157 data/filetype_extensions.conf | 2 +- data/snippets.conf | 11 +++++++++++ data/templates/files/module.erl | 10 ++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) commit 0998f1c19c4a199c14920a3802172d820859be08 Author: Nick Treleaven Date: Sun Aug 11 14:10:57 2013 +0100 Make code more readable by renaming poorly named macros NZV and NVL Closes #159 plugins/classbuilder.c | 2 +- plugins/export.c | 2 +- plugins/filebrowser.c | 10 +++++----- plugins/htmlchars.c | 2 +- plugins/saveactions.c | 10 +++++----- src/build.c | 38 +++++++++++++++++++------------------- src/callbacks.c | 6 +++--- src/dialogs.c | 12 ++++++------ src/editor.c | 20 ++++++++++---------- src/filetypes.c | 14 +++++++------- src/highlighting.c | 8 ++++---- src/keyfile.c | 4 ++-- src/main.c | 4 ++-- src/msgwindow.c | 4 ++-- src/plugins.c | 8 ++++---- src/printing.c | 4 ++-- src/project.c | 12 ++++++------ src/search.c | 20 ++++++++++---------- src/sidebar.c | 4 ++-- src/socket.c | 2 +- src/symbols.c | 8 ++++---- src/templates.c | 8 ++++---- src/toolbar.c | 4 ++-- src/tools.c | 12 ++++++------ src/ui_utils.c | 2 +- src/utils.c | 14 +++++++------- src/utils.h | 11 ++++++++--- src/vte.c | 4 ++-- tagmanager/src/tm_symbol.c | 12 ++++++------ tagmanager/src/tm_tag.c | 14 +++++++------- tagmanager/src/tm_work_object.h | 2 +- 31 files changed, 141 insertions(+), 136 deletions(-) commit db140bb614e56a08546c2bc4eb58359dfe7d2c7c Author: Antoine Turmel Date: Tue Aug 13 10:12:43 2013 +0200 Adding .xul and .dtd extensions with XML See: http://en.wikipedia.org/wiki/.xul and http://en.wikipedia.org/wiki/.dtd Closes #161 data/filetype_extensions.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5dbad33a240b6a922259881d1ac76007ed13f77a Merge: cba7fcfe9 992ee22ce Author: Frank Lanitz Date: Wed Aug 14 04:52:34 2013 -0700 Merge pull request #158 from duncannz/master Add various HTML5 keywords commit cba7fcfe9559c01a97d044db29654530938c5290 Author: Nick Treleaven Date: Mon Aug 12 15:18:20 2013 +0100 Fix full hashing on 64-bit platforms tagmanager/src/tm_workspace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6d334853370ca3c7091e82f6ea082633f426982b Author: Nick Treleaven Date: Sun Aug 11 14:53:35 2013 +0100 Fix warning 'comparison between signed and unsigned integer expressions' With gcc on Windows. src/socket.c | 4 ++++ 1 file changed, 4 insertions(+) commit 0c7cf8df103232a5ccee7da4e46d611b35eae033 Author: Nick Treleaven Date: Sun Aug 11 14:31:30 2013 +0100 Fix gcc warning 'cast to pointer from integer of different size' tagmanager/src/tm_workspace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c4f98d85cbd04b876b1925f69b1a8aff0004e7cf Author: Nick Treleaven Date: Sun Aug 11 10:54:19 2013 +0100 Use proper string comparison for portability src/dialogs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit cc9e56e9bc1624dcebd4c2cae9010edd9acb1936 Author: Colomban Wendling Date: Thu Aug 8 17:23:42 2013 +0200 PHP: Fix parsing of anonymous functions using the "use" keyword http://www.php.net/manual/en/language.namespaces.php#104136 tagmanager/ctags/php.c | 30 ++++++++++++++++++++++++++++-- tests/ctags/anonymous_functions.php | 7 +++++++ tests/ctags/anonymous_functions.php.tags | 2 ++ 3 files changed, 37 insertions(+), 2 deletions(-) commit fb7bd34592e2905b83aee43c1a396354dfd6867a Author: Colomban Wendling Date: Thu Aug 8 16:52:54 2013 +0200 PHP: Fix parsing of anonymous functions returning a reference tagmanager/ctags/php.c | 14 ++++++++------ tests/ctags/Makefile.am | 1 + tests/ctags/anonymous_functions.php | 24 ++++++++++++++++++++++++ tests/ctags/anonymous_functions.php.tags | 7 +++++++ 4 files changed, 40 insertions(+), 6 deletions(-) commit 9fbe2bc3193a2c1ee5af43c7b40fa3e69372433c Author: Frank Lanitz Date: Thu Aug 8 11:42:48 2013 +0200 splitwindow: Change wording for keybinding to by in sync with tools-menu entries. Should fix #102 plugins/splitwindow.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f15f61768d190dbddb58a7e25b72be035f7cffda Author: elextr Date: Mon Aug 5 12:13:42 2013 +1000 Fix sign comparison warning Since the previous line ensured len is < 100, just casting it is fine. src/editor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 992ee22ce7ca53fc470036f90f03111ad2849362 Author: Duncan de Wet Date: Wed Jul 31 17:39:11 2013 +1200 Add various HTML5 keywords data/filetypes.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0b010e2f45b2e874fc91ebbbabf176fc887290a9 Author: Colomban Wendling Date: Mon Jul 22 11:15:02 2013 +0200 Bash: Fix handling of quoted HereDoc delimiters Imported from upstream Scintilla bb784e214430498e91c9935bbc841c798629212f Closes [bugs:#952] scintilla/lexers/LexBash.cxx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 458f4f2e75d1a48eae2cb3d3f08c01e11dcb8243 Author: Colomban Wendling Date: Sun Jul 21 13:50:25 2013 +0200 Don't warn when trying to close a document when none are open When using the document close keybinding, it is legitimate for the callback to be called even if there are no documents open, so properly check for this. Closes [bugs:#941] src/callbacks.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit f0f3a6cd9926b2b36406986fad9c4e866b379b1d Author: Colomban Wendling Date: Sun Jul 21 11:52:17 2013 +0200 Update Scintilla to version 3.3.4 scintilla/Makefile.am | 7 + scintilla/gtk/PlatGTK.cxx | 2 +- scintilla/gtk/ScintillaGTK.cxx | 91 +- scintilla/include/ILexer.h | 2 + scintilla/include/Platform.h | 6 + scintilla/lexers/LexAda.cxx | 15 - scintilla/lexers/LexHaskell.cxx | 41 +- scintilla/lexers/LexLua.cxx | 35 +- scintilla/lexers/LexOthers.cxx | 5 +- scintilla/lexers/LexPerl.cxx | 118 +- scintilla/lexers/LexRuby.cxx | 2 +- scintilla/lexlib/CharacterCategory.cxx | 3303 ++++++++++++++++++++++++++++++++ scintilla/lexlib/CharacterCategory.h | 31 + scintilla/lexlib/LexAccessor.h | 6 + scintilla/lexlib/StyleContext.h | 150 +- scintilla/makefile.win32 | 3 + scintilla/scintilla_changes.patch | 2 +- scintilla/src/CaseConvert.cxx | 630 ++++++ scintilla/src/CaseConvert.h | 47 + scintilla/src/CaseFolder.cxx | 68 + scintilla/src/CaseFolder.h | 45 + scintilla/src/CellBuffer.cxx | 14 +- scintilla/src/CellBuffer.h | 2 +- scintilla/src/Document.cxx | 115 +- scintilla/src/Document.h | 20 +- scintilla/src/Editor.cxx | 222 +-- scintilla/src/Editor.h | 46 +- scintilla/src/PositionCache.cxx | 1 + scintilla/src/ScintillaBase.cxx | 1 + scintilla/src/Selection.cxx | 1 + scintilla/src/UnicodeFromUTF8.h | 19 + scintilla/src/ViewStyle.cxx | 7 +- scintilla/version.txt | 2 +- 33 files changed, 4605 insertions(+), 454 deletions(-) commit 7d1cd77eefdad27d228e9452443dbc415906d43b Author: Colomban Wendling Date: Sun Jul 21 11:33:40 2013 +0200 update-scintilla.sh: Fix displaying of the message for new files scripts/update-scintilla.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e0ef859c7fd77215a4cde375fc96ab37731e97e1 Author: Colomban Wendling Date: Fri Jul 19 17:09:57 2013 +0200 Verilog: Fix parsing initializers Import upstream CTags fix for parsing Verilog initalizers (fixes parsing of test bug2747828.v). tagmanager/ctags/verilog.c | 1 + tests/ctags/bug2747828.v.tags | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) commit c7e0fba6ca61ababf570953627436ca4756667bb Author: Colomban Wendling Date: Fri Jul 19 16:35:34 2013 +0200 ObjectiveC: Fix re-parsing Import upstream CTags fix for proper reinitialization of the ObjectiveC parser, fixing parsing after the first call. tagmanager/ctags/objc.c | 65 +++++++++++++++++++++++++++---------------------- 1 file changed, 36 insertions(+), 29 deletions(-) commit 8d3085b61c7b86457acb35c4b298d5afcea17082 Author: elextr Date: Thu Jul 18 13:00:06 2013 +1000 Add C++ member pointer operator to scope autocomplete operators C++ member pointers use the syntax ->* so the scope autocomplete list was showing after -> then disappearing when * was typed. Fixes #907 h. src/editor.c | 2 ++ 1 file changed, 2 insertions(+) commit cac1115ced305f4828cbc49f08c12d95e05d9e85 Author: elextr Date: Thu Jul 18 12:36:42 2013 +1000 Prevent reading past start of Scintilla buffer A quick check seemed to show Scintilla does not check the minimum value is positive, so just check here to be safe and log message if it fails. src/editor.c | 1 + 1 file changed, 1 insertion(+) commit 6e902613b38372486b831be121af7579f377a7c5 Author: Colomban Wendling Date: Tue Jul 16 18:37:58 2013 +0200 Improve some test ordering Spotted by Daniel Marjamäki, thanks. src/symbols.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 768f86bf5ee1de2feff2f7231b6a5c3301943166 Author: Yosef Or Boczko Date: Mon Jul 15 14:00:25 2013 +0300 Updated Hebrew translation Signed-off-by: Frank Lanitz po/he.po | 443 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 220 insertions(+), 223 deletions(-) commit b016e132fd3578c71f3362399b91562e2f6623c8 Author: Colomban Wendling Date: Mon Jul 15 17:42:00 2013 +0200 Java: Report enums and fix parsing them src/symbols.c | 1 + tagmanager/ctags/c.c | 29 +++++++++++++++++++++-------- tests/ctags/enum.java.tags | 10 ++++++++++ tests/ctags/java_enum.java | 5 +++++ tests/ctags/java_enum.java.tags | 11 +++++++++++ 5 files changed, 48 insertions(+), 8 deletions(-) commit 80ad5c145900ac29b9fefdab5b84345b2e26268c Merge: 66396e7ca 3dc542286 Author: Colomban Wendling Date: Mon Jul 15 15:48:00 2013 +0200 Merge branch 'aeberspaecher/cython/ndarray-fix' commit 3dc54228608b01bccd4d198cec852912000730ad Author: Alexander Eberspächer Date: Mon Jul 8 14:27:28 2013 +0200 Add test for complex datatype Cython tag generation tests/ctags/Makefile.am | 1 + tests/ctags/cython_sample2.pyx | 11 +++++++++++ tests/ctags/cython_sample2.pyx.tags | 3 +++ 3 files changed, 15 insertions(+) commit e6878e5cbf47f1e7a000952380f1d6a3a7a63aa2 Author: Alexander Eberspächer Date: Mon Jul 8 13:08:05 2013 +0200 Fix ctags for complex Cython type declarations Cython allows the use NumPy arrays on a C level. In that context, a typical return type declaration could be e.g. "cpdef numpy.ndarray[dtype=double, ndim=1] name". This now generates a tag for the function. Previously, the equal sign prevented that. tagmanager/ctags/python.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 66396e7ca7e892d734daf9b6579b3dce9a742548 Author: Colomban Wendling Date: Mon Jul 15 00:49:12 2013 +0200 PHP: Fix infinite loop reading an identifier ending at EOF Bit-wise operation is inappropriate here because `c` might be negative, since EOF is generally represented as -1. Since -1 is stored as all bits at 1 on most common architectures, the test will evaluate to true, hence entering an infinite loop. tagmanager/ctags/php.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9ae90f3f877117c8d4fd7f03d2222aa19acc60bf Author: Yosef Or Boczko Date: Thu Jul 4 11:30:41 2013 +0300 Fix the my last name and update the my e-mail Signed-off-by: Frank Lanitz THANKS | 2 +- po/he.po | 4 ++-- src/about.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit b39f90c94d54dd80e1f025e90c03fbf6455fadb9 Author: Colomban Wendling Date: Sun Jul 14 20:34:44 2013 +0200 C++11, C#: Fix parsing of enums with a base type inside classes tagmanager/ctags/c.c | 16 ++++++++-------- tests/ctags/Makefile.am | 1 + tests/ctags/cxx11enum.cpp | 9 +++++++++ tests/ctags/cxx11enum.cpp.tags | 19 +++++++++++++++++++ tests/ctags/keyword_enum.cs.tags | 4 +++- 5 files changed, 40 insertions(+), 9 deletions(-) commit af5dfba9d8ab0f6af737f7ac17ad1df675e550ba Author: Colomban Wendling Date: Sun Jul 14 03:00:34 2013 +0200 C#: Correctly parse enums with a base type specifier See CSharp Language Specification 14.1. tagmanager/ctags/c.c | 3 ++- tests/ctags/bug1515910.cs.tags | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) commit d91c532f958dbb88c047f5bf9858f5b53f28a5a7 Author: Colomban Wendling Date: Sat Jul 13 23:00:43 2013 +0200 Remove a few dead assignments Spotted by clang --analyze. src/editor.c | 4 +--- src/symbols.c | 1 - 2 files changed, 1 insertion(+), 4 deletions(-) commit f23b7267cffcb615a4f970d824b38c04d58fc426 Author: Colomban Wendling Date: Sat Jul 13 22:13:07 2013 +0200 Fix possible dereference of NULL pointer Use g_set_error() instead of doing it manually and forgetting to check whether the pointer is NULL or not before dereferencing it. Spotted by clang --analyze. src/utils.c | 27 ++------------------------- 1 file changed, 2 insertions(+), 25 deletions(-) commit f0e590022b89ede69cd00ef270c05aa39cd3ed46 Author: Colomban Wendling Date: Fri Jul 12 15:39:57 2013 +0200 Fix the test suite with Automake < 1.13 The test suite uses a LOG_COMPILER, which requires the parallel-tests Automake test driver which is the default only since version 1.13, so explicitly enable it so it is used by earlier versions too. Moreover, the parallel-tests test diver was introduced by Automake 1.11, as was the option, so we need to depend on it too. It was released 2009-05-17, which is 2 months after GTK 2.16, the minimum GTK version we depend on (2009-03-13). If this is a problem, we could also rework the Automake test layout to use the older and a little deprecated serial-tests test driver that is the historical one. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4ec7757f2b18be981e60dbdd0cc1575f9e88e967 Author: Asier Iturralde Sarasola Date: Sat Jul 6 15:11:25 2013 +0200 Updated Basque translation Signed-off-by: Frank Lanitz po/eu.po | 225 ++++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 122 insertions(+), 103 deletions(-) commit 4bfac4fcdacb93f58d36496769c5f03e7603788a Merge: d1f200573 436e0bf3f Author: Colomban Wendling Date: Wed Jul 3 19:27:19 2013 +0200 Merge branch 'wip/better-php-parser' commit 436e0bf3f3cf8461c3e2e7c146b18ede3edc2b56 Author: Colomban Wendling Date: Wed Jul 3 19:13:11 2013 +0200 PHP: add PHP 5.5 keywords data/filetypes.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f842ed9aac47d1c51115df4f1b3880435fbdc115 Author: Colomban Wendling Date: Wed Jul 3 19:08:07 2013 +0200 Tests: add PHP case sensitivity test tests/ctags/Makefile.am | 1 + tests/ctags/case_sensitivity.php | 40 +++++++++++++++++++++++++++++++++++ tests/ctags/case_sensitivity.php.tags | 17 +++++++++++++++ 3 files changed, 58 insertions(+) commit 4de97daa8ce4622d5ff9d366291a29839ed960e1 Author: Colomban Wendling Date: Wed Jul 3 18:58:43 2013 +0200 Tests: add test for PHP 5.5 additional usage of the "class" keyword tests/ctags/Makefile.am | 1 + tests/ctags/php5_5_class_kw.php | 19 +++++++++++++++++++ tests/ctags/php5_5_class_kw.php.tags | 5 +++++ 3 files changed, 25 insertions(+) commit ad37ced1c240f8c724eac40e237a6285ca13cb43 Author: Colomban Wendling Date: Wed Jul 3 18:57:18 2013 +0200 PHP: recognize PHP 5.5 keywords finally and yield as such tagmanager/ctags/php.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 9b1890b6054b0083860569fb3a066dbf2648b7fa Author: Colomban Wendling Date: Thu Jun 27 00:42:28 2013 +0200 PHP: add support for "



geany-2.1/tests/ctags/whitespaces.php0000644000175000017500000000046615031717571014710 00000000000000s'right then exit; elsif s(sj)=NUL then exit; --sequential if protects sj > length else sj:=sj+1; n:=n+1; end if; end loop; return n; end strlen; function SignalFromString(inStr: string; ind : integer ) return std_logic is variable temp: std_logic := 'X'; begin if(inStr(inStr'high-ind)='1') then temp := '1'; elsif(inStr(inStr'high-ind)='0') then temp := '0'; end if; return temp; end function SignalFromString; function StringToUVector(inStr: string) return std_ulogic_vector is variable temp: std_ulogic_vector(inStr'range) := (others => 'X'); begin for i in inStr'range loop -- if(inStr(inStr'high-i+1)='1') then temp(i) := '1'; elsif(inStr(inStr'high-i+1)='0') then temp(i) := '0'; end if; end loop; return temp(inStr'high downto 1); end function StringToUVector; -- conversion function function StringToSVector(inStr: string) return std_logic_vector is variable temp: std_logic_vector(inStr'range) := (others => 'X'); begin for i in inStr'range loop -- if(inStr(inStr'high-i+1)='1') then temp(i) := '1'; elsif(inStr(inStr'high-i+1)='0') then temp(i) := '0'; end if; end loop; return temp(inStr'high downto 1); end function StringToSVector; function SymbolToSVector(inStr: string; idx: integer) return std_logic_vector is constant ss: string(1 to inStr'length) := inStr; variable c : integer; variable temp: std_logic_vector(7 downto 0) := (others => 'X'); begin c := character'pos(ss(idx+1)); for i in 0 to 7 loop -- temp(i) := to_unsigned(c,8)(i); end loop; return temp; end function SymbolToSVector; function UnsignedToSigned(inUnsigned: std_ulogic_vector) return std_logic_vector is variable temp: std_logic_vector(inUnsigned'length-1 downto 0) := (others => 'X'); variable i: integer:=0; begin while i < inUnsigned'length loop if(inUnsigned(i)='1') then temp(i) := '1'; elsif(inUnsigned(i)='0') then temp(i) := '0'; end if; i := i+1; end loop; return temp; end function UnsignedToSigned; subtype nibble is std_logic_vector(3 downto 0); function todec(i:integer) return character is begin case i is when 0 => return('0'); when 1 => return('1'); when 2 => return('2'); when 3 => return('3'); when 4 => return('4'); when 5 => return('5'); when 6 => return('6'); when 7 => return('7'); when 8 => return('8'); when 9 => return('9'); when others => return('0'); end case; end; function tohex(n:nibble) return character is begin case n is when "0000" => return('0'); when "0001" => return('1'); when "0010" => return('2'); when "0011" => return('3'); when "0100" => return('4'); when "0101" => return('5'); when "0110" => return('6'); when "0111" => return('7'); when "1000" => return('8'); when "1001" => return('9'); when "1010" => return('a'); when "1011" => return('b'); when "1100" => return('c'); when "1101" => return('d'); when "1110" => return('e'); when "1111" => return('f'); when others => return('X'); end case; end; function tost(v:std_logic_vector) return string is constant vlen : natural := v'length; --' constant slen : natural := (vlen+3)/4; variable vv : std_logic_vector(0 to slen*4-1) := (others => '0'); variable s : string(1 to slen); variable nz : boolean := false; variable index : integer := -1; variable vector : bit_vector(0 TO 7); alias reverse_vector : bit_vector ( vector'length DOWNTO 1 ) IS vector ; begin vv(slen*4-vlen to slen*4-1) := v; for i in 0 to slen-1 loop if (vv(i*4 to i*4+3) = "0000") and nz and (i /= (slen-1)) then index := i; else nz := false; s(i+1) := tohex(vv(i*4 to i*4+3)); end if; end loop; if ((index +2) = slen) then return(s(slen to slen)); else return(string'("0x") & s(index+2 to slen)); end if; --' end; function tost(v:std_logic) return string is begin if to_x01(v) = '1' then return("1"); else return("0"); end if; end; function tost(i : integer) return string is variable L : line; variable s, x : string(1 to 128); variable n, tmp : integer := 0; begin tmp := i; if i < 0 then tmp := -i; end if; loop s(128-n) := todec(tmp mod 10); tmp := tmp / 10; n := n+1; if tmp = 0 then exit; end if; end loop; x(1 to n) := s(129-n to 128); if i < 0 then return "-" & x(1 to n); end if; return(x(1 to n)); end; procedure print(s : string) is variable L : line; begin L := new string'(s); writeline(output, L); end; end; geany-2.1/tests/ctags/vhdl-component.vhd0000644000175000017500000000142415031717571015313 00000000000000-- Taken from a comment https://github.com/universal-ctags/ctags/issues/2678 -- submitted by @pidgeon777 library ieee; use ieee.std_logic_1164.all; entity ENTITY_TOP is generic ( GEN : integer := 0 ); port ( INP : in std_logic ); end entity; architecture arch of ENTITY_TOP is signal sig : std_logic := '0'; component ENTITY_1 generic ( GEN : integer := 0 ); port ( INP : in std_logic ); end component; component ENTITY_2 generic ( GEN : integer := 0 ); port ( INP : in std_logic ); end component; begin ENTITY_1_i : ENTITY_1 generic map( GEN => 0 ) port map( INP => '0' ); ENTITY_2_i : ENTITY_2 generic map( GEN => 0 ) port map( INP => '0' ); end architecture; geany-2.1/tests/ctags/var-and-return-type.cpp0000644000175000017500000000133215031717571016201 00000000000000 const volatile unsigned int func1(); const volatile unsigned int var1 = 0; struct type1 { unsigned int memb1; struct type1 *next; }; const struct type1 func2(); const struct type1 var2 = { 0, 0 }; typedef type1 type1_t; const type1_t func3(); const type1_t var3 = { 0, 0 }; struct type1 func4(); struct type1 var4 = { 0, 0 }; type1_t func5(); type1_t var5 = { 0, 0 }; typedef unsigned long int type2_t; /* scoped stuff */ #include const std::string func6(); const std::string var6 = "hello"; std::string func7(); std::string var7 = "hello"; /* this shows a different bug in the parser, adding scope std to the symbol. * ignore this for now. std::string const func8(); std::string const var8 = "hello"; */ geany-2.1/tests/ctags/value.f0000644000175000017500000000024715031717571013140 00000000000000! Provided by Brian Helsinki, 7 March 2003 program figure(aa) REAL aa VALUE aa ! not supported breaks fig; pass by value integer fig call fig2(aa) RETURN END geany-2.1/tests/ctags/union.f0000644000175000017500000000103115031717571013144 00000000000000 program writedate structure /start/ union map character*2 month character*2 day character*2 year end map map character*6 date end map end union end structure record /start/ sdate sdate.month = '08' sdate.day = '10' sdate.year = '89' write (*, 10) sdate.date 10 format (a) stop end geany-2.1/tests/ctags/ui5.controller.js0000644000175000017500000000133015031717571015071 00000000000000sap.ui.controller("app.my_form", { successfulRequest: function(data) { switch( data.mParameters.headers.SAAP_SERVICE ) { case SAAP_SERVICE.APPROVAL_DETAIL: if (thisForm.getController().mApproval) { } } }, onInit : function () { this.selectListView = null; sap.ui.getCore().byId("id_createButton").setEnabled(true); }, refreshForm : function (AUFNR) { if (AUFNR && AUFNR !== '') { this.objId = this.oView.sId; } return; }, refreshSettlements : function (AUFNR) { }, setRefreshed : function (value) { this.refreshed = value; }, }); geany-2.1/tests/ctags/traits.php0000644000175000017500000000065015031717571013672 00000000000000Tests for traits Expected output is traits: tBar tFoo classes: A B functions: __construct [A] __construct [B] stuff [tFoo] stuff [tBar] isize{ let some_var_name=2*oranges; let a=SomeLongStructName{v:0}; println!("{}", "a"); veg::another_function(apples.red_value,oranges,lemon); some_var_name-apples.red_value+lemon+a.v } pub mod fruit { pub struct SomeStruct{ pub red_value: isize, pub green_value: isize, pub blue_value: isize } } fn free_func() { } impl SomeLongStructName { fn fooo() { } fn baaz() { } } pub struct SomeLongStructName {v:isize} mod veg{ pub fn another_function(a:isize,b:isize,c:isize)->isize { a+b+c } } mod mineral { fn granite() { } fn limestone() { } fn chalk() { } } fn main() {} geany-2.1/tests/ctags/test_input.rs0000644000175000017500000000505215031717571014420 00000000000000#! fn ignored_in_comment() {} #![feature(globs)] #![feature(macro_rules)] use std::*; mod test_input2 { pub struct SomeStruct; } fn lifetime_and_char<'lifetime>(_: &'lifetime isize) { let s = '"'; let s = '}'; let s = '\''; fn not_hidden_by_char() {} } fn preserve_string_delims(_bar: extern r#"C"# fn()) {} pub struct A { foo: fn() -> isize, bar: isize } pub struct B { #[cfg(test)] foo: isize, bar: isize } pub struct C where T: Send { a: T } pub trait D where T: Send { } impl D for C where T: Send { } pub fn where_foo(a: T) where T: Send { } /* * fn ignored_in_comment() {} */ // fn ignored_in_comment() {} /* /* * */ fn ignored_in_nested_comment() {} */ static size: usize = 1; #[cfg(test)] struct S1 { only_field: [isize; size] } macro_rules! test_macro { () => {1} } macro_rules! ignore {($($x:tt)*) => (())} fn yada(a:isize, c:Foo, b:test_input2::SomeStruct) -> String { a.to_string() } fn main() { use test_input2::*; let a=Foo{foo_field_1:2}; a.my_method(1); let c=Animal::a_cat(3); let d=Foo{foo_field_1:a.foo_field_1+2}; a.test(); println!("{}", a.foo_field_1.to_string()); ignore! ( fn ignored_inside_macro() {} ); ignore! [ fn ignored_inside_macro() {} ]; ignore! { fn ignored_inside_macro() {} } let _ = "fn ignored_in_string() {} "; let _ = r##"fn ignored_in_raw_string() {}""##; fn nested() {} } struct Bar(isize); struct Baz(isize); struct Foo{foo_field_1:isize} struct Foo2 { x:isize, y:isize } impl Foo { fn my_method(&self,_:isize){ println!("{}", "my_method of foo");} } enum Animal { a_anteater(isize), a_bear(isize), a_cat(isize), a_dog(isize), } trait Testable { fn test(&self); fn test1(&self); fn test2(&self); } trait DoZ { fn do_z(&self); } impl Testable for Foo { fn test(&self) { println!("{}", self.foo_field_1.to_string()); } fn test1(&self) { println!("{}", self.foo_field_1.to_string()); } fn test2(&self) { println!("{}", self.foo_field_1.to_string()); } } impl DoZ for Foo { fn do_z(&self) { println!("{}", self.foo_field_1.to_string()); } } trait SuperTraitTest:Testable+DoZ { } fn gfunc(x:&X) { let a1=Animal::a_anteater(1); let a2=Animal::a_bear(1); let a3=Animal::a_cat(1); let a4=Animal::a_dog(1); x.test(); x.do_z(); } struct TraitedStructTest { x:X } trait ParametrizedTrait { fn test(&self); } impl ParametrizedTrait for TraitedStructTest { fn test(&self) { } } fn some2(a:Animal) { match a { Animal::a_cat(x)=> println!("{}", "cat"), _ => println!("{}", "not a cat") } } geany-2.1/tests/ctags/test.py0000644000175000017500000000017015031717571013201 00000000000000#!/usr/bin/env python def main(): return 0 if __name__ == '__main__': main() var = 'hi' var2 = 'hi' # blah = blah geany-2.1/tests/ctags/test.go0000644000175000017500000000143415031717571013162 00000000000000package main import "fmt" type ( T1 map[string]int T2 <-chan float32 T3 chan []string T4 chan<- *[12]string T5 interface { Reader() Writer() foo() } ) type T6 struct { _a, _b, _c, _d int int T1 `annotation` *T2 _e float32 //ignored int } const (A = iota;B;C; D = iota << (1 + iota*2) E F=3.14*(1+2*3)/34e7;I=1) type (T7 func (a struct{_ int; _ float32}, b int) (int, map[string]int);T8 float32) var (a, b, c int d T5 e T4 f interface{}) func f1() {};func f2() {};type/*no newline here*/T9 int/*var ignored int const ignored int*/const (G=6); var g int func (t *T1) f3() (a, b int){ return 1, 2 }; var h int func (tt * T7) f4(a func () func ()) (func (), int) {return func (){}, 1};func f5(){};const H=1 func main() { go func (){}() fmt.Println("Hello, 世界") }geany-2.1/tests/ctags/test.erl0000644000175000017500000000041115031717571013331 00000000000000-module(test). -export([function1/0, function1/2]). -type type1() :: binary(). -record(record1, {name :: list(), value :: list()}). -define(DEFINE_1, function1()). -define(DEFINE_2(A, B), function2(A, B)). function1() -> ok. function1(A, B) -> A + B. geany-2.1/tests/ctags/tabindent.py0000644000175000017500000000017015031717571014172 00000000000000def find_heading(self, position=0, direction=Direction.FORWARD, \ heading=Heading, connect_with_document=True): pass geany-2.1/tests/ctags/sysverilog.sv0000644000175000017500000001050015031717571014426 00000000000000/* Tests the following SystemVerilog ctags: * - [x] constant * - [x] define * - [x] event * - [x] function * - [x] module * - [x] net * - [x] port * - [x] register * - [x] task * - [x] block * - [x] instance * - [ ] class * - [ ] enum * - [ ] interface * - [ ] modport * - [ ] package * - [x] program * - [ ] prototype * - [ ] struct * - [ ] typedef * - [ ] member * - [ ] ifclass * - [ ] nettype */ `timescale 1ns/1ps `default_nettype none `define DEFAULT_WIDTH 32 `define BITS_TO_BYTES(x) ((x)/8) module a_module #( parameter WIDTH = `DEFAULT_WIDTH, localparam BYTES = `BITS_TO_BYTES(WIDTH) ) ( input clk, reset, input logic [WIDTH-1:0] data_in, input logic valid, input wire [BYTES-1:0] byte_en, output wire [WIDTH-1:0] data_out ); wire be_filtered [BYTES-1:0]; genvar i; generate for (i = 0; i < BYTES; i++) begin : be_filtered_gen logic x; and and_gate ( // NB: this SHOULD be detected as an instance (ctags bug?) x, byte_en[i], valid ); assign be_filtered[i] = x; end endgenerate wire [BYTES-1:0][7:0] data_in_bytes; reg [BYTES-1:0][7:0] data_out_bytes; assign data_in_bytes = data_in; assign data_out = data_out_bytes; always @(posedge clk, posedge reset) begin : main_block if (reset) data_out_bytes <= '0; else begin int i; for (i = 0; i < BYTES; i++) if (be_filtered[i]) data_out_bytes[i] <= data_in_bytes[i]; end end endmodule : a_module program generate_signals #( parameter NUM_UUT = 4, parameter UUT_WIDTH = 64, localparam UUT_BYTES = `BITS_TO_BYTES(UUT_WIDTH) ) ( input logic clk, reset, output logic [UUT_WIDTH-1:0] data_in, output logic valid_uut [NUM_UUT-1:0], output logic [UUT_BYTES-1:0] byte_en, output event finished // NB: counts as "port", not "event" ); task write_byte( byte byte_data, int byte_index, int uut_index ); begin logic [UUT_BYTES-1:0][7:0] data_in_bytes; data_in_bytes = '0; data_in_bytes[byte_index] = byte_data; data_in = data_in_bytes; byte_en = UUT_BYTES'(1) << byte_index; valid_uut[uut_index] <= 1'b1; @(posedge clk); valid_uut[uut_index] <= 1'b0; end endtask initial begin @(negedge reset); @(posedge clk); write_byte(8'h12, 3, 0); write_byte(8'h34, 2, 0); write_byte(8'h56, 1, 0); write_byte(8'h78, 0, 0); @(posedge clk); -> finished; end endprogram : generate_signals module testbench; localparam NUM_UUT = 4; localparam UUT_WIDTH = 64; localparam UUT_BYTES = `BITS_TO_BYTES(UUT_WIDTH); logic clk = 1'b0, reset = 1'b0; logic [UUT_WIDTH-1:0] data_in; logic valid_uut [NUM_UUT-1:0]; logic [UUT_BYTES-1:0] byte_en; generate for (genvar j = 0; j < NUM_UUT; j++) begin : uut_gen logic [UUT_WIDTH-1:0] data_out; a_module #( .WIDTH (UUT_WIDTH) ) uut ( .valid (valid_uut[j]), .* ); end endgenerate event trigger_success, trigger_failure, finished; function logic compare( logic [UUT_BYTES-1:0][7:0] A, B, logic [UUT_BYTES-1:0] mask ); begin int i; for (i = 0; i < UUT_BYTES; i++) if (mask[i] && (A[i] != B[i])) begin return 1'b0; end compare = 1'b1; // same as return 1'b1 end endfunction always begin : clk_gen clk = ~clk; #0.5; end initial begin : reset_gen reset = 1'b1; #3.5; reset = 1'b0; end generate_signals #( .NUM_UUT (NUM_UUT), .UUT_WIDTH (UUT_WIDTH) ) gen_signals ( .* ); initial begin @finished; if (compare(uut_gen[0].data_out, 64'h 00000000_12_34_56_78, 8'b 0000_1111)) $display("Comparison succeeded."); else $display("Comparison failed!"); $finish; end endmodule : testbench geany-2.1/tests/ctags/structure.f0000644000175000017500000000157415031717571014070 00000000000000 program uninitialized_structure structure /weather/ integer month, day, year character*20 clouds real rainfall end structure record /weather/ latest end program initialized_structure structure /weather/ integer*1 month /08/, day /10/, year /89/ character*20 clouds /' overcast'/ real rainfall /3.12/ end structure record /weather/ latest print *, latest.month, latest.day, latest.year, + latest.clouds, latest.rainfall end program program nested_structure structure /top/ structure /nested/ level2 structure level3a, level3b integer a end structure end structure end structure end program geany-2.1/tests/ctags/strings.rb0000644000175000017500000000144315031717571013672 00000000000000 class A def a dummy = "\n while true do \n" end def b dummy = %Q{\n while true do \n} end def c dummy = %{\n while true do \n} end def d dummy = %/\n while true do \n/ end # raw strings def e dummy = ' while true do ' end def f dummy = %q{ while true do } end # sentinel for last test def sentinel end end v = " def not_me1 print \"i'm not a function\" end " print v, "\n" v = %Q{ def not_me2 print "i'm not a function" end } print v, "\n" v = %{{ def not_me3 print "i'm not a function" end } print v, "\n" v = %/ def not_me4 print "i'm not a function" end \/ / print v, "\n" # raw strings v = ' def not_me5 print "i\'m not a function" end ' print v, "\n" v = %q{ def not_me5 print "i'm not a function" end \} } print v, "\n" geany-2.1/tests/ctags/strings.php0000644000175000017500000000037115031717571014055 00000000000000 { next: List = null; constructor(public item: T) { } insertAfter(item: T) { var temp = this.next; this.next = new List(item); this.next.next = temp; } log() { console.log(this.item.name); } // ... } class C { x: number; static x: string; } class Messenger { message = "Hello World"; start() { var _this = this; setTimeout(function() { alert(_this.message); }, 3000); } }; class D { data: string | string[]; getData() { var data = this.data; return typeof data === "string" ? data : data.join(" "); } } class Point { protected fakePointBuilder: () => { x: number, y: number }; constructor(public x: number, public y: number) { } public length() { return Math.sqrt(this.x * this.x + this.y * this.y); } static origin = new Point(0, 0); } class A { private x: number; protected y: number; public fun: (a: 22 | 30, b: CPoint) => number | string; static f(a: A, b: B) { a.x = 1; // Ok b.x = 1; // Ok a.y = 1; // Ok b.y = 1; // Ok } getXAsT(): T { return this.x as T; } register(...args) { return this.f(...args); } longArgsFun(options: { root: string; prefix?: string; setHeaders?: Function; send?: any; }) { return this.f(options); } closure( x: number, ): (path: string, callback: Function) => any { const normalizedPath = path === '/*' ? '' : path; } } namespace Validation { export interface StringValidator { isAcceptable(s: string): boolean; } const lettersRegexp = /^[A-Za-z]+$/; const numberRegexp = /^[0-9]+$/; export class LettersOnlyValidator implements StringValidator { isAcceptable(s: string) { return lettersRegexp.test(s); } } export class ZipCodeValidator implements StringValidator { isAcceptable(s: string) { return s.length === 5 && numberRegexp.test(s); } } } // Some samples to try let strings = ["Hello", "98052", "101"]; // Validators to use let validators: { [s: string]: Validation.StringValidator; } = {}; validators["ZIP code"] = new Validation.ZipCodeValidator(); validators["Letters only"] = new Validation.LettersOnlyValidator(); // Show whether each string passed each validator for (let s of strings) { for (let name in validators) { console.log(`"${ s }" - ${ validators[name].isAcceptable(s) ? "matches" : "does not match" } ${ name }`); } } interface Mover { move(): void getStatus(): { speed: number } } interface Shaker { shake(): void getStatus(): { frequency: number } } interface MoverShaker extends Mover, Shaker { getStatus(/*)*/): { speed: number; frequency: number } //somethingCommentedOut(): string getSomething(): /* } */ void getSomethingSophisticated()/* comment block */: void getTpl(): Promise } interface SimpleRecord { propertyA: number propertyB: string readonly propertyC: [] withoutType? } interface Document { createElement(tagName: "div"): HTMLDivElement createElement(tagName: "span"): HTMLSpanElement createElement(tagName: "canvas"): HTMLCanvasElement createElement(tagName: string): HTMLElement } interface CompilerOptions { strict?: boolean sourcePath?: string targetPath?: string } interface List { data: T next: List owner: List> } interface JQuery { text(content: string) } interface JQueryStatic { get(url: string, callback: (data: string) => any) (query: string): JQuery } interface Array { length: number [x: number]: T // Other members } enum Color { Red, Green, Blue } enum Test { A, B, C = Math.floor(Math.random() * 1000), D = 10, E } export enum Style { None = 0, Bold = 1, Italic = 2, Underline = 4, Emphasis = Bold | Italic, Hyperlink = Bold | Underline } const enum Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 } function add(x, y) { return x + y; }geany-2.1/tests/ctags/simple.tf0000644000175000017500000000100515031717571013472 00000000000000 provider "aws" { region = "us-east-1" } variable "events_bus_name" { type = string default = "hello-world" } # variable "dont_extract_me0" { // variable "dont_extract_me1" { resource "aws_cloudwatch_event_bus" "example_events_bus" { name = var.events_bus_name } module "database" { source = "../../modules/database" } data "aws_ssm_parameter" "example_database_password" { name = "example-database-password" } output "password" { value = data.aws_ssm_parameter.example_database_password.value } geany-2.1/tests/ctags/simple.tcl0000644000175000017500000000101515031717571013644 00000000000000oo::class create X { superclass Y; method add v { }; method doSomething {v} { } } class create ShouldNotBeCaptured { } proc simple1 {} { } namespace eval A::B { } namespace eval A { proc pr1 {s} { puts $s } pr1 "a" proc B::pr2 {s} { puts "$s" } namespace eval C { proc pr3 {s} { puts $s } } proc ::pr4 {s} { puts "$s" } } proc ::pr5 {s} { puts "$s" } proc pr6 {s} { puts "$s" } A::pr1 "b" A::B::pr2 "c" A::C::pr3 "d" pr4 "e" pr5 "f" pr6 "g" geany-2.1/tests/ctags/simple.sh0000644000175000017500000000007415031717571013500 00000000000000#!/bin/sh f1() { } function f2() { } function _a_b() { } geany-2.1/tests/ctags/simple.scss0000644000175000017500000000322315031717571014040 00000000000000// _library.scss $black: #000 !default; $border-radius: 0.25rem !default; $box-shadow: 0 0.5rem 1rem rgba($black, 0.15) !default; code { border-radius: $border-radius; box-shadow: $box-shadow; } .button { padding: 3px 10px; font-size: 12px; border-radius: 3px; border: 1px solid #e1e4e8; } @mixin prefix($property, $value, $prefixes) { @each $prefix in $prefixes { -#{$prefix}-#{$property}: $value; } #{$property}: $value; } .gray { @include prefix(filter, grayscale(50%), moz webkit); } .enlarge { font-size: 14px; transition: { property: font-size; duration: 4s; delay: 2s; } &:hover { font-size: 36px; } } %toolbelt { box-sizing: border-box; border-top: 1px rgba(#000, .12) solid; padding: 16px 0; width: 100%; &:hover { border: 2px rgba(#000, .5) solid; } } .action-buttons { @extend %toolbelt; color: #4285f4; } .reset-buttons { @extend %toolbelt; color: #cddc39; } @use "sass:list"; @use "sass:meta"; @use "sass:string"; /// Return a copy of $list with all elements for which $condition returns `true` /// removed. @function remove-where($list, $condition) { $new-list: (); $separator: list.separator($list); @each $element in $list { @if not meta.call($condition, $element) { $new-list: list.append($new-list, $element, $separator: $separator); } } @return $new-list; } $fonts: Tahoma, Geneva, "Helvetica Neue", Helvetica, Arial, sans-serif; .content { @function contains-helvetica($string) { @return string.index($string, "Helvetica"); } font-family: remove-where($fonts, meta.get-function("contains-helvetica")); } #para1 { text-align: center; color: red; } geany-2.1/tests/ctags/simple.rst0000644000175000017500000000111515031717571013673 00000000000000======================================= Title ======================================= --------------------------------------- Subtitle --------------------------------------- Chapter 1 ========= Intro text of chapter 1 Section 1.1 ----------- Text of section 1.1 Subsection 1.1.1 **************** Text of subsection 1.1.1 Subsubsection 1.1.1.1 ~~~~~~~~~~~~~~~~~~~~~ Text of subsubsection 1.1.1.1 Section 1.2 ----------- Text of section 1.2 Chapter 2 ========= Intro text of chapter 2 Section 2.1 ----------- Text of section 2.1 Section 2.2 ----------- Text of section 2.2 geany-2.1/tests/ctags/simple.rb0000644000175000017500000000134415031717571013472 00000000000000#!/usr/bin/ruby module ModuleExample class ClassExample def class_method puts "in class_method" end def ClassExample.singleton_class_method puts "in singleton_class_method" end def class_method_exclamation! puts "in class_method_exclamation!" end def class_method_question? puts "in class_method_question?" end def `(command) return "just testing a backquote override" end end def module_method puts "in module_method" end def ModuleExample.singleton_module_method puts "in singleton_module_method" end end ModuleExample::ClassExample.singleton_class_method geany-2.1/tests/ctags/simple.raku0000644000175000017500000001024315031717571014027 00000000000000my class JSONPrettyActions { method TOP($/) { make $/.values.[0].ast; }; method object($/) { make $.ast.hash.item; } method pairlist($/) { make $>>.ast.flat; } method pair($/) { make $.ast => $.ast; } method array($/) { make $.ast.item; } method arraylist($/) { make [$>>.ast]; } method string($/) { make $0.elems == 1 ?? ($0[0]. || $0[0].).ast !! join '', $0.list.map({ (. || .).ast }); } method value:sym($/) { make +$/.Str } method value:sym($/) { make $.ast } method value:sym($/) { make Bool::True } method value:sym($/) { make Bool::False } method value:sym($/) { make Any } method value:sym($/) { make $.ast } method value:sym($/) { make $.ast } method str($/) { make ~$/ } my %esc = '\\' => "\\", '/' => "/", 'b' => "\b", 'n' => "\n", 't' => "\t", 'f' => "\f", 'r' => "\r", '"' => "\""; method str_escape($/) { make $ ?? chr(:16($.join)) !! %esc.AT-KEY(~$/); } } my grammar JSONPrettyGrammar { token TOP { ^ \s* [ | ] \s* $ } rule object { '{' ~ '}' } rule pairlist { * % \, } rule pair { ':' } rule array { '[' ~ ']' } rule arraylist { * % [ \, ] } proto token value {*}; token value:sym { '-'? [ 0 | <[1..9]> <[0..9]>* ] [ \. <[0..9]>+ ]? [ <[eE]> [\+|\-]? <[0..9]>+ ]? } token value:sym { }; token value:sym { }; token value:sym { }; token value:sym { }; token value:sym { }; token value:sym { } token string { \" ~ \" ( | \\ )* } token str { <-["\\\t\n]>+ } token str_escape { <["\\/bfnrt]> | u **4 } } proto sub to-json($, :$indent = 0, :$first = 0) {*} multi sub to-json(Version:D $v, :$indent = 0, :$first = 0) { to-json(~$v, :$indent, :$first) } multi sub to-json(Real:D $d, :$indent = 0, :$first = 0) { (' ' x $first) ~ ~$d } multi sub to-json(Bool:D $d, :$indent = 0, :$first = 0) { (' ' x $first) ~ ($d ?? 'true' !! 'false') } multi sub to-json(Str:D $d, :$indent = 0, :$first = 0) { (' ' x $first) ~ '"' ~ $d.trans(['"', '\\', "\b", "\f", "\n", "\r", "\t"] => ['\"', '\\\\', '\b', '\f', '\n', '\r', '\t'])\ .subst(/<-[\c32..\c126]>/, { ord(~$_).fmt('\u%04x') }, :g) ~ '"' } multi sub to-json(Positional:D $d, :$indent = 0, :$first = 0) { (' ' x $first) ~ "\[" ~ ($d ?? $d.map({ "\n" ~ to-json($_, :indent($indent + 2), :first($indent + 2)) }).join(",") ~ "\n" ~ (' ' x $indent) !! ' ') ~ ']'; } multi sub to-json(Associative:D $d, :$indent = 0, :$first = 0) { (' ' x $first) ~ "\{" ~ ($d ?? $d.map({ "\n" ~ to-json(.key, :first($indent + 2)) ~ ' : ' ~ to-json(.value, :indent($indent + 2)) }).join(",") ~ "\n" ~ (' ' x $indent) !! ' ') ~ '}'; } multi sub to-json(Mu:U $, :$indent = 0, :$first = 0) { 'null' } multi sub to-json(Mu:D $s, :$indent = 0, :$first = 0) { die "Can't serialize an object of type " ~ $s.WHAT.perl } sub from-json($text) { my $a = JSONPrettyActions.new(); my $o = JSONPrettyGrammar.parse($text, :actions($a)); $o.ast; } class Area { has $.size; submethod BUILD(:$x, :$y, :$z) { $!size = $x * $y * $z; } } role Notable { has Str $.notes is rw; multi method notes() { "$!notes\n" }; multi method notes( Str $note ) { $!notes ~= "$note\n" ~ ⲧ }; } module M { sub greeting ($name = 'Camelia') { "Greetings, $name!" } our sub loud-greeting (--> Str) { greeting().uc } sub friendly-greeting is export { greeting('friend') } } package Foo:ver<0> {};geany-2.1/tests/ctags/simple.py0000644000175000017500000000201515031717571013513 00000000000000"""A long string literal """ from bsddb import btopen # Public global constants VERSION = '1.2.0' # Flags for list() and children() ALL = 0xff KEY = 0x01 TREEID = 0x02 INDENT = 0x04 DATA = 0x08 # Used by dbtreedata class one: x = lambda x: x y = 0 def __init__(self, filename, pathsep='', treegap=64): """Another string literal""" def __private_function__(self, key, data): def public_function(self, key): class this_is_ignored: def _pack(self, i, s): '''this is''' """a""" '''string literal'''""" class inside_string: """ class so_is_this: def _test(test, code, outcome, exception): def ignored_function(): def more_nesting(): class deeply_nested(): def even_more(): @blah class this is seen??? @bleh def this also? good! if __name__ == '__main__': class two (one): def only(arg): # line continuation class\ three\ (A, B, C): def\ foo( x , y, z): geany-2.1/tests/ctags/simple.ps10000644000175000017500000000526415031717571013577 00000000000000# pseudo #!/PowerShell :) # # test file for the CTags/Geany PowerShell tag parser # based on real world code but simplified for automated tests <# multiline comment including a function and variable, both should be ignored: $IgnoreThisVaribale = "Stop" function IgnoreThisFunction($arg1) { Write-Host "dummy" } #> # immediately stop the script if an errors occurs $ErrorActionPreference = "Stop" # a global scoped variable $Global:Settings = $null # a local scoped variable $Local:ALocalVar = $null # a usual variable $BasePath = split-path -parent $Global:MyInvocation.InvocationName FUNCTION Read-Configuration-File() { $Hostname = [System.Environment]::MachineName $ConfigurationFileName = $BasePath + "\script-${Hostname}.conf" LogMessage "Read configuration '${ConfigurationFileName}'" $ConfigFileContent = Get-Content -raw $ConfigurationFileName $Global:Settings = Convertfrom-Stringdata $ConfigFileContent } Function LogMessageOK() { $x = [Console]::WindowWidth - 6 $y = [Console]::CursorTop Try { [Console]::setcursorposition($x, $y) } Catch [system.exception] { # intentionally left empty for redirect of outputs to file } Write-Host -foregroundcolor "green" "[ok]" } function LogMessage() { param( [Parameter(Mandatory=$false)][switch] $NoNewLine, [Parameter(Mandatory=$true)][string] $Message ) $Date = Get-Date -UFormat "%Y-%m-%d %T: " Write-Host -foregroundcolor "yellow" -NoNewLine $Date if ($NoNewLine) { Write-Host -foregroundcolor "green" -NoNewLine $Message } else { Write-Host -foregroundcolor "green" $Message } } function global:A-Global-Scope-Function() { Write-Host "dummy" } filter Script:MyFilter { filter-something } Filter Private:MyPrivateFilter { filter-something } function LoadTemplate($template) { # woah, this is real magic, # see http://stackoverflow.com/questions/10754582/string-interpolation-of-hashtable-values-in-powershell # Set all unbound variables (@args) in the local context while ($args) { ($key, $val, $args) = $args Set-Variable -Name $key.SubString(1, $key.Length-2) -Value $val } $ExecutionContext.InvokeCommand.ExpandString($template) } function TopLevelFunction() { function SecondLevelNestedFunction() { function ThirdLevelNestedFunction() { doSomething() } ThirdLevelNestedFunction } SecondLevelNestedFunction } function Main() { Read-Configuration-File LogMessage $("Working on Environment '{0}'" -f $Settings["EnvironmentName"]) LogMessage "do something ..." Stripped-Down-Code LogMessageOK } Main geany-2.1/tests/ctags/simple.pl0000644000175000017500000000023215031717571013475 00000000000000=head1 NAME Some stuff to ignore package NotAPackage; sub NotASub {} =cut package A::B; sub MySub {} use constant A => 3; LABEL: __END__ sub IgnoreSub {} geany-2.1/tests/ctags/simple.php0000644000175000017500000000206115031717571013653 00000000000000// Examples from PHP Language Reference at // http://www.php.net/manual/en/langref.php items[$artnr] += $num; } // Take $num articles of $artnr out of the cart function remove_item ($artnr, $num) { if ($this->items[$artnr] > $num) { $this->items[$artnr] -= $num; return true; } else { return false; } } } geany-2.1/tests/ctags/simple.ml0000644000175000017500000000115015031717571013472 00000000000000module ModuleFoo = struct type foobar = ConstructorFoo | ConstructorBar of int * char list end type 'a foorecord = { foofield : 'a; barfield : int; mutable foobarfield : list char -> int -> unit } (* op redif *) let (+-) a b = let aplus = a + b and aminus = a - b in (aplus, aminus) let shall_appear () = let sub_not 1 = 2 and shall_not_either fu = () in let nope = 3 and must_appear_also 4 = () let y = 4 let foo_function a b = (a, b) class fooClass = object (self) val x = () method fooMethod = x end exception ConnectionNotReachable geany-2.1/tests/ctags/simple.md0000644000175000017500000000035415031717571013467 00000000000000# a ## b ### c #### d ##### e ###### f # g # # h ## ## i # ## j ## ## k ### ### l # ### m ## ### n ### ### o ### #### p # #### q ##### ##### r # ##### s ###### ###### t # ###### u ####### A = B == C === D - E -- F --- geany-2.1/tests/ctags/simple.Meson_unittest0000644000175000017500000000267515031717571016117 00000000000000project('c++ foolib', 'cpp', version : '1.0.0', license : 'MIT') add_global_arguments('-DSOME_TOKEN=value', language : 'cpp') glib_dep = dependency('glib-2.0') inc = include_directories('include') subdir('include') subdir('src') subdir('test') pkg_mod = import('pkgconfig') pkg_mod.generate(libraries : foolib, version : '1.0', name : 'libfoobar', filebase : 'foobar', description : 'A Library to barnicate your foos.') foo_sources = ['source1.cpp', 'source2.cpp'] foolib = shared_library('foo', foo_sources, include_directories : inc, dependencies : glib_dep, install : true) testexe = executable('testexe', 'footest.cpp', include_directories : inc, link_with : foolib) test('foolib test', testexe) mytarget = custom_target('targetname', output : outfile, input : infile, command : [comp, '@INPUT@', '@OUTPUT@'], install : true, install_dir : 'subdir') suites = [ { 'suite': 'dbus-broker', 'env': ['DBUS_BROKER_TEST_BROKER=' + exe_dbus_broker.full_path()]}, ] foreach suite : suites benchmark('Connection', bench_connect, timeout: 60, kwargs: suite) benchmark('Message passing', bench_message, timeout: 120, kwargs: suite) endforeach run_target('inspector', command : ['scripts/inspect.sh', '--exclude', 'tests']) geany-2.1/tests/ctags/simple.mak0000644000175000017500000000042115031717571013632 00000000000000A = 1 B := 2 define C 3 endef a.o: D = 4 E = 5 b.o: ENV_VAR1=something command $(obj)/raid6int1.c: F := 6 default: ENV_VAR2=something command # COMMENT = nada G = 7 # ignore comment H = $(A:.y=.c) ${B:.l=.c} export I = 8 NO_TAG1 += \ -DA=0x00000000L \ -DB=0x00000000L geany-2.1/tests/ctags/simple.lua0000644000175000017500000000027115031717571013646 00000000000000-- Comment line -- Indented comment line test = {} function test.me_12a(one, two) print"me_12a" end test.i_123 = function (x) print"i_123" end test.me_12a(1,2) test.i_123(1) geany-2.1/tests/ctags/simple.lisp0000644000175000017500000000037515031717571014041 00000000000000(defun a0 (n) (+ 1 n)) (DEFUN A1 (n) (+ 2 n)) (defvar b0 3) (DEFVAR B1 4) (defconstant c0 5) (DEFCONSTANT C1 6) (defmacro defunknown0 (s) `(defconstant ,s 'unknown)) (DEFMACRO DEFUNKNOWN1 (s) `(defconstant ,s 'unknown)) (defunknown1 unknown) geany-2.1/tests/ctags/simple.ksh0000644000175000017500000000004615031717571013652 00000000000000#!/bin/ksh f1() { } function f2 { } geany-2.1/tests/ctags/simple.json0000644000175000017500000000065515031717571014044 00000000000000{ "firstName": "John", "lastName": "Smith", "isAlive": true, "age": 25, "height_cm": 167.6, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021-3100" }, "phoneNumbers": [ { "type": "home", "number": "212 555-1234" }, { "type": "office", "number": "646 555-4567" } ], "children": [], "spouse": null } geany-2.1/tests/ctags/simple.js0000644000175000017500000000425515031717571013507 00000000000000/* * ctags should return the following for parsing this file using: * ctags -f - simple.js * * functions * extra.validFunctionFour * getHalfOf * getHalfOf.calculate * testlib.core.validFunctionSix * testlib.validFunctionFive * validFunctionOne * validFunctionThree * validFunctionThree.innerThree * validFunctionTwo * classes * Database * ValidClassTwo * testlib.extras.ValidClassOne * methods * Database.executeQueryString * Database.getTodaysDate * ValidClassTwo.validMethodFour * ValidClassTwo.validMethodThree * testlib.extras.ValidClassOne.validMethodOne * testlib.extras.ValidClassOne.validMethodTwo * variables * my_global_var1 * my_global_var2 * my_global_var3 * my_global_var4 */ validFunctionOne = function(a,b) {} function validFunctionTwo(a,b) {} function validFunctionThree(a,b) { var innerThree = function(a,b) {} } var my_global_var1 = 33; var extra = {} extra.validFunctionFour = function(a,b) {} //pseudo-module setup testlib = {} testlib.core = {} testlib.extras = {} var my_global_var2 = "Something"; testlib.validFunctionFive = function(a,b) {} var invalidInnerFunction = function(a,b) {} testlib.core.validFunctionSix = function(a,b) {} testlib.extras.ValidClassOne = function(a,b) { this.a = a; } testlib.extras.ValidClassOne.prototype = { 'validMethodOne' : function(a,b) {}, 'validMethodTwo' : function(a,b) {} } ValidClassTwo = function () { this.validMethodThree = function() {} // unnamed method this.validMethodFour = function() {} } var my_global_var4 = document.getElementsByTagName("input"); for (var i = 0; i < my_global_var4.length; i++) { var originalvalue = my_global_var4[i].value; my_global_var4[i].onchange = function () { alert(this.value + " == " + originalvalue); } } function getHalfOf(num1, num2, num3) { function calculate(number) { return number/2; } var result=""; result+=calculate(num1)+" "; result+=calculate(num2)+" "; result+=calculate(num3); } var my_global_var3; Database.prototype.getTodaysDate = Database_getTodaysDate; Database.prototype.executeQueryString = Db_executeQueryString; geany-2.1/tests/ctags/simple.inp0000644000175000017500000000455215031717571013661 00000000000000** ** Simple input file demonstrating user material in ABAQUS ** ** This input file was created with ABAQUS/CAE, and then edited ** to insert the additional commands associated with user material. ** ** You can run the code with ** abaqus job=user_element, user=Usermat.for ** *Heading ** Job name: Job-1 Model name: Model-1 *Preprint, echo=NO, model=NO, history=NO, contact=NO ** ** PARTS ** *Part, name=Part-1 *End Part ** ** ** ASSEMBLY ** *Assembly, name=Assembly ** *Instance, name=Part-1-1, part=Part-1 *Node 1, 0., 0. 2, 2.5, 0. 3, 0., 2.5 4, 2.5, 2.5 ** ** NOTE - if you use reduced integration elements ** with a UMAT, you have to define the hourglass ** stiffness for the element ** *Element, type=CPE4R 1, 1, 2, 4, 3 *Nset, nset=_PickedSet2, internal, generate 1, 4, 1 *Elset, elset=_PickedSet2, internal 1, ** Region: (Section-1:Picked) *Elset, elset=_PickedSet2, internal 1, ** Section: Section-1 ** THE LINE BELOW WAS EDITED TO ASSIGN THE USER MATERIAL *Solid Section, elset=_PickedSet2, material=usermat_elastic 1., *hourglass stiffness 0.1 *End Instance ** *Nset, nset=_PickedSet4, internal, instance=Part-1-1 1, 2 *Elset, elset=_PickedSet4, internal, instance=Part-1-1 1, *Nset, nset=_PickedSet5, internal, instance=Part-1-1 1, 3 *Elset, elset=_PickedSet5, internal, instance=Part-1-1 1, *Nset, nset=_PickedSet6, internal, instance=Part-1-1 3, 4 *Elset, elset=_PickedSet6, internal, instance=Part-1-1 1, *End Assembly ** ** MATERIALS ** ** THE LINES BELOW WERE EDITED TO DEFINE THE USER MATERIAL *Material, name=usermat_elastic *user material, constants=2, type=mechanical 1000.0, 0.3 ** This defines the number of state variables (none in this case) *DEPVAR 1 ** ---------------------------------------------------------------- ** ** STEP: Step-1 ** *Step, name=Step-1 *Static 0.1, 1., 1e-05, 1. ** ** BOUNDARY CONDITIONS ** ** Name: BC-1 Type: Displacement/Rotation *Boundary _PickedSet4, 2, 2 ** Name: BC-2 Type: Displacement/Rotation *Boundary _PickedSet5, 1, 1 ** Name: BC-3 Type: Displacement/Rotation *Boundary _PickedSet6, 2, 2, 0.1 ** ** OUTPUT REQUESTS ** *Restart, write, frequency=0 ** ** FIELD OUTPUT: F-Output-1 ** *Output, field, variable=PRESELECT ** ** HISTORY OUTPUT: H-Output-1 ** *Output, history, variable=PRESELECT *End Stepgeany-2.1/tests/ctags/simple.html0000644000175000017500000000076715031717571014043 00000000000000 geany-2.1/tests/ctags/simple.hx0000644000175000017500000000046615031717571013512 00000000000000enum Color { Red; Green; Blue; Rgb(r:Int, g:Int, b:Int); } interface Printable { public function toString():String; } typedef User = { var age : Int; var name : String; } class Main { static var member:String = "bar"; static public function main():Void { trace("Hello World"); } }geany-2.1/tests/ctags/simple.hs0000644000175000017500000000031015031717571013471 00000000000000module Cards where data Int = -2147483648 | -2147483647 | ... | -1 | 0 | 1 | 2 | ... | 2147483647 newtype Fd = Fd CInt data Bool = True | False add :: Integer -> Integer -> Integer add x y = x + y geany-2.1/tests/ctags/simple.fth0000644000175000017500000000100215031717571013637 00000000000000 ( https://rosettacode.org/wiki/FizzBuzz#Forth / https://skilldrick.github.io/easyforth/ ) \ Works in gforth and other ANS forth. Other Forth may differ. 10 constant DUMMY1 12 CONSTANT DUMMY2 variable dummy3 variable dummy4 VARIABLE dummy5 11 dummy3 ! 13 dummy4 ! : fizz? \ a simple comment 3 mod 0 = dup if ." Fizz" then ; : buzz? 5 mod 0 = dup if ." Buzz" then ; : fizz-buzz? dup fizz? swap buzz? or invert ; : do-fizz-buzz 25 1 do cr i fizz-buzz? if i . then loop ; do-fizz-buzz cr quit \ bye geany-2.1/tests/ctags/simple.docbook0000644000175000017500000000213315031717571014504 00000000000000
My first docbook document Seth Kenlon opensource.com 2017 Required Chapter At least one chapter, reference, part, or article is required in a book.
Introduction Introductory text goes here.
Section with a title Main body text goes here. Section with a title Main body text goes here. Section with a title Main body text goes here.
Conclusion Exciting and inspiring conclusion goes here.
Demonstration Appendix
geany-2.1/tests/ctags/simple.diff0000644000175000017500000000733215031717571014002 00000000000000diff --git a/main/parsers.h b/main/parsers.h index 8000fa0..5332052 100644 --- a/main/parsers.h +++ b/main/parsers.h @@ -28,6 +28,7 @@ CsharpParser, \ CobolParser, \ DParser, \ + DiffParser, \ DosBatchParser, \ EiffelParser, \ ErlangParser, \ diff --git a/parsers/diff.c b/parsers/diff.c new file mode 100644 index 0000000..a1bf5f3 --- /dev/null +++ b/parsers/diff.c @@ -0,0 +1,134 @@ +/* +* +* Copyright (c) 2000-2001, Darren Hiebert +* +* This source code is released for free distribution under the terms of the +* GNU General Public License. +* +* This module contains functions for generating tags for diff files (based on Sh parser). +*/ + +/* +* INCLUDE FILES +*/ +#include "general.h" /* must always come first */ + +#include +#include + +#include "parse.h" +#include "read.h" +#include "vstring.h" + +/* +* DATA DEFINITIONS +*/ +typedef enum { + K_FUNCTION +} diffKind; + +static kindOption DiffKinds [] = { + { TRUE, 'f', "compared file", "compared files"} +}; + +enum { + DIFF_DELIM_MINUS = 0, + DIFF_DELIM_PLUS +}; + +static const char *DiffDelims[2] = { + "--- ", + "+++ " +}; + +/* +* FUNCTION DEFINITIONS +*/ + +static const unsigned char *stripAbsolute (const unsigned char *filename) +{ + const unsigned char *tmp; + + /* strip any absolute path */ + if (*filename == '/' || *filename == '\\') + { + boolean skipSlash = TRUE; + + tmp = (const unsigned char*) strrchr ((const char*) filename, '/'); + if (tmp == NULL) + { /* if no / is contained try \ in case of a Windows filename */ + tmp = (const unsigned char*) strrchr ((const char*) filename, '\\'); + if (tmp == NULL) + { /* last fallback, probably the filename doesn't contain a path, so take it */ + tmp = filename; + skipSlash = FALSE; + } + } + + /* skip the leading slash or backslash */ + if (skipSlash) + tmp++; + } + else + tmp = filename; + + return tmp; +} + +static void findDiffTags (void) +{ + vString *filename = vStringNew (); + const unsigned char *line, *tmp; + int delim = DIFF_DELIM_MINUS; + + while ((line = fileReadLine ()) != NULL) + { + const unsigned char* cp = line; + + if (strncmp ((const char*) cp, DiffDelims[delim], 4u) == 0) + { + cp += 4; + if (isspace ((int) *cp)) continue; + /* when original filename is /dev/null use the new one instead */ + if (delim == DIFF_DELIM_MINUS && + strncmp ((const char*) cp, "/dev/null", 9u) == 0 && + (cp[9] == 0 || isspace (cp[9]))) + { + delim = DIFF_DELIM_PLUS; + continue; + } + + tmp = stripAbsolute (cp); + + if (tmp != NULL) + { + while (! isspace(*tmp) && *tmp != '\0') + { + vStringPut(filename, *tmp); + tmp++; + } + + vStringTerminate(filename); + makeSimpleTag (filename, DiffKinds, K_FUNCTION); + vStringClear (filename); + } + + /* restore default delim */ + delim = DIFF_DELIM_MINUS; + } + } + vStringDelete (filename); +} + +extern parserDefinition* DiffParser (void) +{ + static const char *const extensions [] = { "diff", "patch", NULL }; + parserDefinition* const def = parserNew ("Diff"); + def->kinds = DiffKinds; + def->kindCount = KIND_COUNT (DiffKinds); + def->extensions = extensions; + def->parser = findDiffTags; + return def; +} + +/* vi:set tabstop=8 shiftwidth=4: */ diff --git a/source.mak b/source.mak index 2550028..eaa9154 100644 --- a/source.mak +++ b/source.mak @@ -44,6 +44,7 @@ PARSER_SOURCES = \ $(PARSER_DIR)/clojure.c \ $(PARSER_DIR)/css.c \ $(PARSER_DIR)/cobol.c \ + $(PARSER_DIR)/diff.c \ $(PARSER_DIR)/dosbatch.c \ $(PARSER_DIR)/eiffel.c \ $(PARSER_DIR)/erlang.c \ --- a/Units/review-needed.r/simple.ksh.t/expected.tags +++ /dev/null @@ -1,2 +0,0 @@ -f1 input.ksh /^f1() {$/;" f -f2 input.ksh /^function f2 {$/;" f geany-2.1/tests/ctags/simple.d0000644000175000017500000000162015031717571013307 00000000000000module test.simple; import std.stdio; alias AliasInt = int; struct Struct { union Union { bool quxx; int qar; } } enum Enum : int { foo, bar, } interface Interface { public AliasInt bar(); } class Class : Interface { private AliasInt _bar; public this(AliasInt x) { this._bar = x; } public AliasInt bar() { return this._bar; } protected: auto tfun(T)(T v) { return v; } } public { int missing; // FIXME - parse protection blocks } template Template(alias a, T...) { alias TemplateAlias = a!T; } Object obj; private: int i; /+ int error; +/ static if (is(typeof(__traits(getMember, a, name)) == function)) T conditional; static assert( num < TL.length, "Name '"~name~"' is not found"); __gshared int globalVar; void main(string[] args) { auto foo = new Class(1337); alias string AliasString; AliasString baz = "Hello, World!"; writefln("%s", foo.bar()); } geany-2.1/tests/ctags/simple.conf0000644000175000017500000000071715031717571014017 00000000000000# # TAKEN FROM https://docs.python.org/2/library/logging.config.html # [loggers] keys=root,parser [handlers] keys=hand01 [formatters] keys=form01 [logger_root] level=NOTSET handlers=hand01 [logger_parser] level=DEBUG handlers=hand01 propagate=1 qualname=compiler.parser [handler_hand01] class=StreamHandler level=NOTSET formatter=form01 args=(sys.stdout,) [formatter_form01] format=F1 %(asctime)s %(levelname)s %(message)s datefmt= class=logging.Formatter geany-2.1/tests/ctags/simple.clj0000644000175000017500000000040515031717571013634 00000000000000(ns app.controller) (defn empty-fn []) (defn function-with-body [] (println "body")) (clojure.core/defn core-function-with-body [] (println "core")) '(defn quoted-function []) (quote quoted-function2 []) (clojure.core/ns another.name) (defn x []) geany-2.1/tests/ctags/simple.bat0000644000175000017500000000122315031717571013631 00000000000000REM USAGE: geany-run-helper DIRECTORY AUTOCLOSE COMMAND... REM unnecessary, but we get the directory cd %1 shift REM save autoclose option and remove it set autoclose=%1 shift REM spawn the child REM it's tricky because shift doesn't affect %*, so hack it out REM https://en.wikibooks.org/wiki/Windows_Batch_Scripting#Command-line_arguments set SPAWN= :argloop if -%1-==-- goto argloop_end set SPAWN=%SPAWN% %1 shift goto argloop :argloop_end %SPAWN% REM show the result echo: echo: echo:------------------ echo:(program exited with code: %ERRORLEVEL%) echo: REM and if wanted, wait on the user if not %autoclose%==1 pause geany-2.1/tests/ctags/simple.bas0000644000175000017500000000030715031717571013632 00000000000000Gosub start Const one = 1 Common a As Integer Dim b As Integer DIM AS STRING str Type test a As Integer b As Integer End Type Function f() a = 3 End Function start: f() Return geany-2.1/tests/ctags/simple.au30000644000175000017500000000130215031717571013551 00000000000000; Taken from https://www.autoitscript.com/autoit3/docs/intro/lang_functions.htm #include #include #include "WindowsConstants.au3" Global $iMagic = 0x377abcaf271c Local $iNumber = 10 Local $iDoubled = 0 For $i = 1 To 10 $iDoubled = MyDouble($iNumber) MsgBox($MB_OK, "", $iNumber & " doubled is " & $iDoubled) $iNumber = $iDoubled Next Exit #Region All functions Func MyDouble($iValue) $iValue = $iValue * 2 Return $iValue EndFunc ;==>MyDouble func MyDouble0($iValue) $iValue = $iValue * 2 Return $iValue EndFunc ;==>MyDouble FUNC MyDouble1($iValue) $iValue = $iValue * 2 Return $iValue EndFunc #EndRegion All functions geany-2.1/tests/ctags/simple.asciidoc0000644000175000017500000000137415031717571014650 00000000000000= Chapter 1 (Level 0) Intro text of chapter 1 == Section 1.1 Text of section 1.1 === Subsection 1.1.1 Text of subsection 1.1.1 ==== Level 3 Section 1.1.1.1 Title Text of subsection 1.1.1.1 ===== Level 4 Section 1.1.1.1.1 Title Text of subsection 1.1.1.1.1 ====== Level 5 Section 1.1.1.1.1.1 Title Text of subsection 1.1.1.1.1.1 == Section 1.2 Text of section 1.2 // and now two-line titles: Chapter 2 ========= Intro text of chapter 2 Section 2.1 ------------ Text of section 2.1 Subsection 2.1.1 ~~~~~~~~~~~~~~~ Level 3 Section 2.1.1.1 Title ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Text of subsection 2.1.1.1 Level 4 Section 2.1.1.1.1 Title +++++++++++++++++++++++++++++++ Text of subsection 2.1.1.1.1 Section 2.2 ----------- Text of section 2.2 geany-2.1/tests/ctags/simple.abc0000644000175000017500000000346015031717571013615 00000000000000% A Selection of Scotch, English, Irish and Foreign % Airs adapted to the Fife, Violin, or German-Flute % Glasgow % Printed and Sold by James Aird % Volume First % 1778 (often cited as 1782) X:0001 T:The Ranting Highlandman. T:The White Cockade M:C| L:1/8 Q:1/2=112 I: :: :: %% G A B c d e ^f g a Z:Jack Campin * www.campin.me.uk * 2009 K:G AG|B2B2 B2AG|B2B2 B2g2|B2B2 B2AG|AGAB A2 GA|B2B2 cBAG|A2B2 g2fg|a2gf g2fe|d2B2 B2:: Bc|d2B2 g2B2|d2d2 d2e2|d2cB g2fg|a2A2 A2 GA|B2B2 cBAG|A2B2 g2fg|a2gf g2fe|d2B2 B2:| X:0002 T:Quick Step. 25th Regt. N:bars of quavers are all beamed together in the original M:2/4 L:1/16 Q:1/4=89 I: :: :: %% D ^F G A B c d e f ^f g a Z:Jack Campin * www.campin.me.uk * 2009 K:G g2d2 d2c2|(BcdB) G2D2 |G2B2 (ABcd)| B2``G2 G2d2| e2c2 c2e2| d2B2 B2d2 |g2d2 c2B2 | B4 A4 :| F2A2 A2dc| B2G2 G4 |B2d2 d2=f2|(ed)(cB) c4 | e2a2 a2g2|(gfed) g2c2 |B2AG A2D2 | G2``G2 G4 :| X:0003 T:The Lads of the Village. M:2/4 L:1/8 Q:1/4=104 I: :: :: %% D ^F G A B c d e ^f g a Z:Jack Campin * www.campin.me.uk * 2009 K:G G2g>d|ecBG|a>cBG|FA`FD|G2 gd|ecBG|A>cBG|(D/G/``F/A/) G2:| g>fgd|ecBG|g>fge|a>gfd|g>fgd|ecBG|A>cBG|(D/G/)(F/A/) G2:| X:0004 T:I'll Touzle your Kurchy. M:6/8 L:1/8 Q:3/8=120 I: :: :: %% D E ^F G A B c d e ^f g Z:Jack Campin * www.campin.me.uk * 2009 K:E Minor B |E>GE GEG|B>AB e2f|g>fe dgB|A>GA BG E |E>GE GEG|B>AB e2f|g>fe dcB|AGF E2:| B |E>GE B2B|GEG B2B|E>GE A2G|FDF A2 G/F/|E>GE B2B|GEG e2f|gfe dcB|AGF E2:| X:0005 T:The Lady's play thing, or Gen Howe's March. M:6/8 L:1/8 Q:3/8=120 I: :: :: %% D G A B c d e g N:last note printed as G3 Z:Jack Campin * www.campin.me.uk * 2009 K:G d/c/|B2B Bcd|A2A A2d|G2G GAB|B3 A2 e |dgd BdB|GBG Ddc|BcB AGA|G2G G2:| d |dBd dBd|e2e e2c|cAc cAc|d2d d2 c |BGB BGB|c2c cBA|Bcd dcB|B3 A2 e |dgd BdB|GBG Ddc|BcB AGA|G2G G2:| geany-2.1/tests/ctags/signature.cpp0000644000175000017500000000027515031717571014363 00000000000000/* Tests for collection of signature */ void foo (int a, char b) {} int bar (a, b) int a; char b; {} char *BAR::bar (char *c, double d[]) const {} void foobar __ARGS ((int a, char b)); geany-2.1/tests/ctags/shebang.js0000644000175000017500000000004615031717571013617 00000000000000#!/usr/bin/end nodejs function f(){} geany-2.1/tests/ctags/semicolon.f900000644000175000017500000000013415031717571014160 00000000000000 MODULE SEMI INTEGER (4) :: VAR1; INTEGER (4) VAR2 END MODULE SEMI geany-2.1/tests/ctags/secondary_fcn_name.js0000644000175000017500000000144015031717571016024 00000000000000/* * ctags should return the following for parsing this file using: * ctags -f - test.js * functions * D1 * D2 * D2A * theAdd * variables * my_global_var1 */ function D1(a, b) { var my_local_var1 = 'local'; return a+b; } alert(D1(1,2)); // produces 3 // Example D2 var D2=function(a, b) { return a+b; } alert(D2(1,2)); // produces 3 var my_global_var1 = 'global'; // Example D2A // Tags should be generated for both: // D2A // theAdd var D2A=function theAdd(a, b) { return a+b; } alert(D2A(1,2)); // produces 3 alert(theAdd(1,2)); // also produces 3 geany-2.1/tests/ctags/sample.t2t0000644000175000017500000001177015031717571013574 00000000000000TXT2TAGS SAMPLE Aurelio Jargas %%mtime(%m/%d/%Y) %!encoding: UTF-8 This text is before the introduction. But it's OK. = Introduction = Welcome to the txt2tags sample file. Here you have examples and a brief explanation of all marks. The first 3 lines of this file are used as headers, on the following format: ``` line1: document title line2: author name, email line3: date, version ``` Lines with balanced equal signs = around are titles. % a secret comment! %TODO link to program site http://txt2tags.org = Fonts and Beautifiers = We have two sets of fonts: The NORMAL type that can be improved with beautifiers. The TYPEWRITER type that uses monospaced font for pre-formatted text. We will now enter on a subtitle... == Beautifiers == The text marks for beautifiers are simple, just as you type on a plain text email message. We use double *, /, - and _ to represent **bold**, //italic//, --strike-- and __underline__. The **//bold italic//** style is also supported as a combination. == Pre-Formatted Text == We can put a code sample or other pre-formatted text: ``` here is pre-formatted //marks// are **not** ``interpreted`` ``` And also, it's easy to put a one line pre-formatted text: ``` prompt$ ls /etc Or use ``pre-formatted`` inside sentences. == More Cosmetics == Special entities like email (duh@somewhere.com) and URL (http://www.duh.com) are detected automagically, as long as the horizontal line: -------------------------------------------------------- ^ thin or large v ======================================================== You can also specify an [explicit link http://duh.org] or an [explicit email duh@somewhere.com] with label. And remember, A TAB in front of the line does a quotation. More TABs, more depth (if allowed). Nice. = Lists = A list of items is natural, just putting a **dash** or a **plus** at the beginning of the line. == Plain List == The dash is the default list identifier. For sublists, just add **spaces** at the beginning of the line. More spaces, more sublists. - Earth - America - South America - Brazil - How deep can I go? - Europe - Lots of countries - Mars - Who knows? The list ends with **two** consecutive blank lines. == Numbered List == The same rules as the plain list, just a different identifier (plus). + one + two + three - mixed lists! - what a mess + counting again + ... + four == Definition List == The definition list identifier is a colon, followed by the term. The term contents is placed on the next line. : orange a yellow fruit : apple a green or red fruit : other fruits - wee! - mixing lists + again! + and again! = Tables = Use pipes to compose table rows and cells. Double pipe at the line beginning starts a heading row. Natural spaces specify each cell alignment. | cell 1.1 | cell 1.2 | cell 1.3 | | cell 2.1 | cell 2.2 | cell 2.3 | | cell 3.1 | cell 3.2 | cell 3.3 | || heading 1 | heading 2 | heading 3 | | cell 1.1 | cell 1.2 | cell 1.3 | | cell 2.1 | cell 2.2 | cell 2.3 | |_ heading 1 | cell 1.1 | cell 1.2 | | heading 2 | cell 2.1 | cell 2.2 | | heading 3 | cell 3.1 | cell 3.2 | |/ heading | heading 1 | heading 2 | | heading 1 | cell 1.1 | cell 1.2 | | heading 2 | cell 2.1 | cell 2.2 | Without the last pipe, no border: | cell 1.1 | cell 1.2 | cell 1.3 | cell 2.1 | cell 2.2 | cell 2.3 | cell 3.1 | cell 3.2 | cell 3.3 || heading 1 | heading 2 | heading 3 | cell 1.1 | cell 1.2 | cell 1.3 | cell 2.1 | cell 2.2 | cell 2.3 |_ heading 1 | cell 1.1 | cell 1.2 | heading 2 | cell 2.1 | cell 2.2 | heading 3 | cell 3.1 | cell 3.2 |/ heading | heading 1 | heading 2 | heading 1 | cell 1.1 | cell 1.2 | heading 2 | cell 2.1 | cell 2.2 = Special Entities = Because things were too simple. == Images == The image mark is as simple as it can be: ``[filename]``. [img/photo.jpg] And with some targets the image is linkable : [[img/photo.jpg] http://www.txt2tags.org] - The filename must end in PNG, JPG, GIF, or similar. - No spaces inside the brackets! == Other == When the target needs, special chars like <, > and & are escaped. The handy ``%%date`` macro expands to the current date. So today is %%date on the ISO ``YYYYMMDD`` format. You can also specify the date format with the %? flags, as ``%%date(%m-%d-%Y)`` which gives: %%date(%m-%d-%Y). That's all for now. ------------------------------------------------------- %%% TRANSLATOR: Uncomment and translate the next two lines %Translated by John Smith. %------------------------------------------------------- [img/t2tpowered.png] ([%%infile %%infile]) % vim: tw=55 geany-2.1/tests/ctags/rules.t2t0000644000175000017500000005374215031717571013452 00000000000000Txt2tags Markup Rules %!includeconf: rules.conf This document describes all the details about each txt2tags mark. The target audience are **experienced** users. You may find it useful if you want to master the marks or solve a specific problem about a mark. If you are new to txt2tags or just want to know which are the available marks, please read the [Markup Demo MARKUPDEMO]. Note 1: This document is generated directly from the txt2tags test-suite. All the rules mentioned here are 100% in sync with the current program code. Note 2: A good practice is to consult [the sources rules.t2t] when reading, to see how the texts were made. Table of Contents: %%TOC ------------------------------------------------------------- = Paragraph =[paragraph] %INCLUDED(t2t) starts here: ../../../test/marks/paragraph.t2t BODYINIT %%% Syntax: Lines grouped together A paragraph is composed by one or more lines. A blank line (or a table, or a list) ends the current paragraph. %%% Syntax: Leading and trailing spaces are ignored Leading and trailing spaces are ignored. %%% Syntax: A comment don't close a paragraph A comment line can be placed inside a paragraph. % this comment will be ignored It will not affect it. %%% Closing: EOF closes the open paragraph The end of the file (EOF) closes the currently open paragraph. = Comment =[comment] %INCLUDED(t2t) starts here: ../../../test/marks/comment.t2t BODYINIT %%% Syntax: The % character at the line beginning (column 1) %glued with the % mark % separated from the % mark % very distant from the % mark %%%%%%% lots of % marks % a blank comment, used for vertical spacing: % % NOTE: what matters is the first % being at the line beginning, % the rest of the line is just ignored. %%% Syntax: Area (block) %%% You're not seeing this. %%% %%% Syntax: Area (block) with trailing spaces %%% You're not seeing this. %%% %%% Invalid: The % in any other position % not on the line beginning (at column 2) some text % half line comments are not allowed = Line =[line] %INCLUDED(t2t) starts here: ../../../test/marks/line.t2t BODYINIT %%% Syntax: At least 20 chars of - = _ -------------------- ==================== ____________________ %%% Syntax: Any kind of mixing is allowed %% Free mixing is allowed to make the line, %% but the first char is the identifier for %% the difference between separator ( - _ ) %% and strong ( = ) lines. =========----------- -_-_-_-_-_-_-_-_-_-_ =-=-=-=-=-=-=-=-=-=- =------------------= --------====-------- %%% Syntax: Leading and/or trailing spaces are allowed -------------------- -------------------- -------------------- %%% Invalid: Less than 20 chars (but strike matches) --------- %%% Invalid: Strange chars (but strike matches) --------- ---------- ---------+---------- ( -------------------- ) = Inline =[inline] %INCLUDED(t2t) starts here: ../../../test/marks/inline.t2t BODYINIT %%% Syntax: Marks are greedy and must be "glued" with contents %% GLUED: The contents must be glued with the marks, no spaces %% between them. Right after the opening mark there must be a %% non-blank character, as well as right before the closing mark. %% %% GREEDY: If the contents boundary character is the same as %% the mark character, it is considered contents, not mark. %% So ""****bold****"" turns to ""**bold**"" in HTML. i) **b** //i// __u__ --s-- ``m`` ""r"" ''t'' i) **bo** //it// __un__ --st-- ``mo`` ""ra"" ''tg'' i) **bold** //ital// __undr__ --strk-- ``mono`` ""raw"" ''tggd'' i) **bo ld** //it al// __un dr__ --st rk-- ``mo no`` ""r aw"" ''tg gd'' i) **bo * ld** //it / al// __un _ dr__ --st - rk-- ``mo ` no`` ""r " aw"" ''tg ' gd'' i) **bo **ld** //it //al// __un __dr__ --st --rk-- ``mo ``no`` ""r ""aw"" ''tg ''gd'' i) **bo ** ld** //it // al// __un __ dr__ --st -- rk-- ``mo `` no`` ""r "" aw"" ''tg '' gd'' i) ****bold**** ////ital//// ____undr____ ----strk---- ````mono```` """"raw"""" ''''tggd'''' i) ***bold*** ///ital/// ___undr___ ---strk--- ```mono``` """raw""" '''tggd''' %%% Syntax: Repetition is greedy %% When the mark character is repeated many times, %% the contents are expanded to the largest possible. %% Thats why they are greedy, the outer marks are %% the ones used. i) ***** ///// _____ ----- ````` """"" ''''' i) ****** ////// ______ ------ `````` """""" '''''' i) ******* /////// _______ ------- ``````` """"""" ''''''' i) ******** //////// ________ -------- ```````` """""""" '''''''' i) ********* ///////// _________ --------- ````````` """"""""" ''''''''' i) ********** ////////// __________ ---------- `````````` """""""""" '''''''''' %%% Invalid: No contents i) **** //// ____ ---- ```` """" '''' i) ** ** // // __ __ -- -- `` `` "" "" '' '' %%% Invalid: Contents not "glued" with marks %% Spaces between the marks and the contents in any side %% invalidate the mark. i) ** bold** // ital// __ undr__ -- strk-- `` mono`` "" raw"" '' tggd'' i) **bold ** //ital // __undr __ --strk -- ``mono `` ""raw "" ''tggd '' i) ** bold ** // ital // __ undr __ -- strk -- `` mono `` "" raw "" '' tggd '' = Link =[link] %INCLUDED(t2t) starts here: ../../../test/marks/link.t2t BODYINIT %%% Syntax: E-mail user@domain.com user@domain.com. user@domain.com. any text. any text: user@domain.com. any text. [label user@domain.com] %%% Syntax: E-mail with form data user@domain.com?subject=bla user@domain.com?subject=bla. user@domain.com?subject=bla, user@domain.com?subject=bla&cc=otheruser@domain.com user@domain.com?subject=bla&cc=otheruser@domain.com. user@domain.com?subject=bla&cc=otheruser@domain.com, [label user@domain.com?subject=bla&cc=otheruser@domain.com]. [label user@domain.com?subject=bla&cc=otheruser@domain.com.]. %%% Syntax: URL http://www.domain.com http://www.domain.com/dir/ http://www.domain.com/dir/// http://www.domain.com. http://www.domain.com, http://www.domain.com. any text. http://www.domain.com, any text. http://www.domain.com/dir/. any text. any text: http://www.domain.com. any text. any text: http://www.domain.com/dir/. any text. any text: http://www.domain.com/dir/index.html. any text. any text: http://www.domain.com/dir/index.html, any text. %%% Syntax: URL with anchor http://www.domain.com/dir/#anchor http://www.domain.com/dir/index.html#anchor http://www.domain.com/dir/index.html#anchor. http://www.domain.com/dir/#anchor. any text. http://www.domain.com/dir/index.html#anchor. any text. any text: http://www.domain.com/dir/#anchor. any text. any text: http://www.domain.com/dir/index.html#anchor. any text. %%% Syntax: URL with form data http://domain.com?a=a@a.a&b=a+b+c. http://domain.com?a=a@a.a&b=a+b+c, http://domain.com/bla.cgi?a=a@a.a&b=a+b+c. http://domain.com/bla.cgi?a=a@a.a&b=a+b+c@. %%% Syntax: URL with form data and anchor http://domain.com?a=a@a.a&b=a+b+c.#anchor http://domain.com/bla.cgi?a=a@a.a&b=a+b+c.#anchor http://domain.com/bla.cgi?a=a@a.a&b=a+b+c@.#anchor %%% Syntax: URL with login data http://user:password@domain.com/bla.html. http://user:password@domain.com/dir/. http://user:password@domain.com. http://user:@domain.com. http://user@domain.com. %%% Syntax: URL with login, form and anchor http://user:password@domain.com/bla.cgi?a=a@a.a&b=a+b+c.#anchor http://user:password@domain.com/bla.cgi?a=a@a.a&b=a+b+c@#anchor %%% Syntax: URL with label [label www.domain.com] %%% Syntax: URL with label (trailing spaces are discarded, leading are maintained) %TODO normalize this behavior [ label www.domain.com] [label www.domain.com] %%% Syntax: URL with label, stressing [anchor http://www.domain.com/dir/index.html#anchor.] [login http://user:password@domain.com/bla.html] [form http://www.domain.com/bla.cgi?a=a@a.a&b=a+b+c.] [form & anchor http://www.domain.com/bla.cgi?a=a@a.a&b=a+b+c.#anchor] [login & form http://user:password@domain.com/bla.cgi?a=a@a.a&b=a+b+c.] %%% Syntax: Link with label for local files [local link up ..] [local link file bla.html] [local link anchor #anchor] [local link file/anchor bla.html#anchor] [local link file/anchor bla.html#anchor.] [local link img abc.gif] %%% Syntax: Another link as a label [www.fake.com www.domain.com] %%% Syntax: URL with funny chars http://domain.com:8080/~user/_st-r@a=n$g,e/index%20new.htm http://domain.com:8080/~user/_st-r@a=n$g,e/index%20new.htm?a=/%22&b=+.@*_- http://domain.com:8080/~user/_st-r@a=n$g,e/index%20new.htm?a=/%22&b=+.@*_-#anchor_-1%. http://foo._user-9:pass!#$%&*()+word@domain.com:8080/~user/_st-r@a=n$g,e/index%20new.htm?a=/%22&b=+.@*_-#anchor_-1%. %%% Test: Various per line http://L1.com ! L2@www.com ! [L3 www.com] ! [L4 w@ww.com] ! www.L5.com %%% Feature: Guessed link, adding protocol automatically www.domain.com www2.domain.com ftp.domain.com WWW.DOMAIN.COM FTP.DOMAIN.COM [label www.domain.com] [label ftp.domain.com] [label WWW.DOMAIN.COM] [label FTP.DOMAIN.COM] %%% Invalid: Trailing space on link [label www.domain.com ] %%% Invalid: Label with ] char (use postproc) [label] www.domain.com] = Image =[image] %INCLUDED(t2t) starts here: ../../../test/marks/image.t2t BODYINIT %%% Syntax: Image name inside brackets: [img] [img.png] %%% Syntax: Image pointing to a link: [[img] link] [[img.png] http://txt2tags.org] %%% Align: Image position is preserved when inside paragraph [img.png] Image at the line beginning. Image in the middle [img.png] of the line. Image at the line end. [img.png] %%% Align: Image alone with spaces around is aligned [img.png] [img.png] [img.png] %%% Test: Two glued images with no spaces (left & right) [img.png][img.png] %%% Test: Various per line Images [img.png] mixed [img.png] with [img.png] text. Images glued together: [img.png][img.png][img.png]. %%% Invalid: Spaces inside are not allowed [img.png ] [ img.png] [ img.png ] = Macro =[macro] %INCLUDED(t2t) starts here: ../../../test/marks/macro.t2t BODYINIT %%% Syntax: Macro without formatting string Date : %%date - %%date() Mtime : %%mtime - %%mtime() Infile : %%infile - %%infile() Outfile : %%outfile - %%outfile() %%% Syntax: Macro name is case insensitive Date : %%dAtE Mtime : %%mTiMe Infile : %%iNfIlE Outfile : %%oUtFiLe %%% Syntax: Macro with formatting string Date : %%date(txt %C txt) Mtime : %%mtime(txt %C txt) Infile : %%infile(txt %e txt) Outfile : %%outfile(txt %e txt) %%% Syntax: Leading and trailing spaces are preserved Date : (%%date( txt )) - (%%date( %C )) Mtime : (%%mtime( txt )) - (%%mtime( %C )) Infile : (%%infile( txt )) - (%%infile( %e )) Outfile : (%%outfile( txt )) - (%%outfile( %e )) %%% Test: Expansion of the percent char Date : %%date(%) - %%date(%%) - %%date(%%%) - %%date(%%%) Mtime : %%mtime(%) - %%mtime(%%) - %%mtime(%%%) - %%mtime(%%%) Infile : %%infile(%) - %%infile(%%) - %%infile(%%%) - %%infile(%%%) Outfile : %%outfile(%) - %%outfile(%%) - %%outfile(%%%) - %%outfile(%%%) %%% Test: Various per line, glued Date : %%date(%C)%%date%%date Mtime : %%mtime(%C)%%mtime%%mtime Infile : %%infile(%e)%%infile%%infile Outfile : %%outfile(%e)%%outfile%%outfile %%% Test: Path formatters Path : %%infile(%p) Path : %%outfile(%p) Dirname : %%infile(%d, %D) Dirname : %%outfile(%d, %D) File : %%infile(%F + %e = %f) File : %%outfile(%F + %e = %f) = Numbered Title =[numtitle] See [Title #title], the same rules apply. = Title =[title] %INCLUDED(t2t) starts here: ../../../test/marks/title.t2t BODYINIT %%% Syntax: Balanced equal signs (from 1 to 5) = Title Level 1 = == Title Level 2 == === Title Level 3 === ==== Title Level 4 ==== ===== Title Level 5 ===== %%% Label: Between brackets, alphanumeric [A-Za-z0-9_-] = Title Level 1 =[lab_el-1] == Title Level 2 ==[lab_el-2] === Title Level 3 ===[lab_el-3] ==== Title Level 4 ====[lab_el-4] ===== Title Level 5 =====[lab_el-5] %%% Syntax: Spaces around and/or inside are allowed (and ignored) ===Title Level 3=== === Title Level 3 === === Title Level 3 === === Title Level 3 === === Title Level 3 === === Title Level 3 ===[lab_el-9] %%% Invalid: Unbalanced equal signs =Not Title ==Not Title= ===Not Title==== %%% Invalid: Level deeper than 5 ======Not Title 6====== =======Not Title 7======= %%% Invalid: Space between title and label =Not Title= [label1] %%% Invalid: Space inside label =Not Title=[ label ] %%% Invalid: Strange chars inside label =Not Title=[la/bel] = Quote =[quote] %INCLUDED(t2t) starts here: ../../../test/marks/quote.t2t BODYINIT %%% Syntax: TAB defines quote To quote a paragraph, just prefix it by a TAB character. All the lines of the paragraph must begin with a TAB. Any non-tabbed line closes the quote block. %%% Nesting: Creating deeper quotes The number of leading TABs identifies the quote block depth. This is quote level 1. With two TABs, we are on the quote level 2. The more TABs, more deep is the quote level. There isn't a limit. %%% Nesting: Reverse nesting works This quote starts at level 4. Then its depth is decreased. Counting down, one by one. Until the level 1. %%% Nesting: Random count Unlike lists, any quote block is independent, not part of a tree. The TAB count don't need to be incremental by one. The nesting don't need to follow any rule. Quotes can be opened and closed in any way. You choose. %%% Nesting: When not supported Some targets (as sgml) don't support the nesting of quotes. There is only one quote level. In this case, no matter how much TABs are used to define the quote block, it always will be level 1. %%% Syntax: Spaces after TAB Spaces AFTER the TAB character are allowed. But be careful, it can be confusing. %%% Invalid: Spaces before TAB Spaces BEFORE the TAB character invalidate the mark. It's not quote. %%% Invalid: Paragraphs inside Paragraph breaks inside a quote aren't possible. This sample are two separated quoted paragraphs, not a quote block with two paragraphs inside. %%% Closing: EOF closes the open block The end of the file (EOF) closes the currently open quote block. = Raw =[raw] See [Verbatim #verbatim], the same rules apply. = Verbatim =[verbatim] %INCLUDED(t2t) starts here: ../../../test/marks/verbatim.t2t BODYINIT %%% Syntax: A single line ``` A verbatim line. %%% Syntax: A single line with leading spaces ``` Another verbatim line, with leading spaces. %%% Syntax: Area (block) ``` A verbatim area delimited by lines with marks. ``` %%% Syntax: Area (block) with trailing spaces ``` Trailing spaces and TABs after the area marks are allowed, but not encouraged nor documented. ``` %%% Invalid: No space between mark and contents ```Not a verbatim line, need one space after mark. %%% Invalid: Leading spaces on block marks ``` Not a verbatim area. The marks must be at the line beginning, no leading spaces. ``` %%% Closing: EOF closes the open block ``` The end of the file (EOF) closes the currently open verbatim area. ``` = Definition List =[deflist] See [List #list], the same rules apply. = Numbered List =[numlist] See [List #list], the same rules apply. = List =[list] %INCLUDED(t2t) starts here: ../../../test/marks/list.t2t BODYINIT %%% Items: Prefixed by hyphen - Use the hyphen to prefix list items. - There must be one space after the hyphen. - The list is closed by two consecutive blank lines. %%% Items: Free leading spacing (indentation) - The list can be indented on the source document. - You can use any number of spaces. - The result will be the same. %%% Items: Vertical spacing between items - Let one blank line between the list items. - It will be maintained on the conversion. - Some targets don't support this behavior. - This one was separated by a line with blanks. You can also put a blank line inside the item contents and it will be preserved. %%% Items: Exactly ONE space after the hyphen -This is not a list (no space) - This is not a list (more than one space) - This is not a list (a TAB instead the space) %%% Items: Catchy cases - - This is a list - + This is a list - : This is a list %%% Nesting: Creating sublists - This is the "mother" list first item. - Here is the second, but inside this item, - there is a sublist, with its own items. - Note that the items of the same sublist - must have the same indentation. - And this can go on, opening sublists. - Just add leading spaces before the - hyphen and sublists will be opened. - The two blank lines closes them all. %%% Nesting: Free leading spacing (indentation) - When nesting lists, the additional spaces are free. - You can add just one, - or many. - What matters is to put more than the previous. - But remember that the other items of the same list - must use the same indentation. %%% Nesting: Maximum depth - There is not a depth limit, - you can go deeper and deeper. - But some targets may have restrictions. - The LaTeX maximum is here, 4 levels. - This one and the following sublists - are moved up to the level 4 - when converting to LaTeX. - On the other targets, - it is just fine - to have a very deep list. %%% Nesting: Reverse doesn't work - Reverse nesting doesn't work. - Because a sublist *must* have a mother list. - It's the list concept, not a txt2tags limitation. - All this sublists will be bumped to mother lists. - At level 1, like this one. %%% Nesting: Going deeper and back %% When nesting back to an upper level, the previous sublist %% is automatically closed. - Level 1 - Level 2 - Level 3 - Level 4 - Level 3 -- (closed Level 4) - Level 2 -- (closed Level 3) - Level 1 -- (closed Level 2) %% More than one list can be closed when nesting back. - Level 1 - Level 2 - Level 3 - Level 4 - Level 1 -- (closed Level 4, Level 3 and Level 2) %%% Nesting: Vertical spacing between lists - Level 1 - Level 2 -- blank BEFORE and AFTER (in) - Level 3 % comment lines are NOT considered blank lines - Level 4 % comment lines are NOT considered blank lines - Level 3 - Level 2 -- blank BEFORE and AFTER (out) - Level 1 - Level 2 -- blank BEFORE (spaces) and AFTER (TAB) - Level 3 %%% Nesting: Messing up %% Be careful when going back on the nesting, %% it must be on a valid level! If not, it will %% be bumped up to the previous valid level. - Level 1 - Level 2 - Level 3 - Level 4 - Level 3.5 ??? - Level 3 - Level 2.5 ??? - Level 2 - Level 1.5 ??? - Level 1 %%% Closing: Two (not so) empty lines - This list is closed by a line with spaces and other with TABs - This list is NOT closed by two comment lines % comment lines are NOT considered blank lines % comment lines are NOT considered blank lines - This list is closed by a line with spaces and TAB, - then a comment line, then an empty line. % comment lines are NOT considered blank lines %%% Closing: Empty item closes current (sub)list %% The two blank lines closes ALL the lists. %% To close just the current, use an empty item. - Level 1 - Level 2 - Level 3 - Level 2 - Level 1 - %% The empty item can have trailing blanks. - Empty item with trailing spaces. - - Empty item with trailing TAB. - %%% Closing: EOF closes the lists - If the end of the file (EOF) is hit, - all the currently opened list are closed, - just like when using the two blank lines. = Table =[table] %INCLUDED(t2t) starts here: ../../../test/marks/table.t2t BODYINIT %%% Syntax: Lines starting with a pipe | | Cell 1 %%% Syntax: Extra pipes separate cells | Cell 1 | Cell 2 | Cell 3 %%% Syntax: With a trailing pipe, make border | Cell 1 | Cell 2 | Cell 3 | %%% Syntax: Table lines starting with double pipe are heading || Cell 1 | Cell 2 | Cell 3 | %%% Align: Spaces before the leading pipe centralize the table | Cell 1 | Cell 2 | Cell 3 | %%% Align: Spaces inside the cell denote its alignment || Heading | Heading | Heading | % comments don't close an opened table | <- | -- | -> | | -- | -- | -- | | -> | -- | <- | %%% Span: Column span is defined by extra pipes at cell closing || 1 | 2 | 3+4 || | 1 | 2 | 3 | 4 | | 1+2+3 ||| 4 | | 1 | 2+3 || 4 | | 1+2+3+4 |||| %%% Test: Empty cells are placed as expected | 0 | 1 | 2 | | | 4 | 5 | | 7 | | 8 | | A | B | | | D | E | F | %%% Test: Lines with different number of cells | 1 | | 1 | 2 | | 1 | 2 | 3 | | 1 | 2 | 3 | 4 | | 1 | 2 | 3 | 4 | 5 | %%% Test: Empty cells + Span + Messy cell number = Fun! | Jan | | Fev || | Mar ||| | Apr |||| | May ||||| | 20% | 40% | 60% | 80% | 100% | | | | / | | | | | / / / / / ||| | | / / / / / / / / / ||||| | | o | | o | | | | | . | | | | | = = = = ||| | | 01 | 02 | | | 05 | | 07 | | | | | 11 | | 13 | | | 16 | | 17 | | 19 | 20 | | | 23 | | | 25 | 26 | | | 29 | 30 | | 32 | | | | 35 | | 37 | | 39 | 40 | %%% Test: Lots of cells at the same line | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | %%% Test: Empty lines | | | | | | %%% Invalid: There must be at least one space around the pipe |this|is|not|a|table| |this| is| not| a| table| |this |is |not |a |table | %%% Invalid: You must use spaces, not TABs | this | is | not | a | table | ------------------------------------------------------------ The End. geany-2.1/tests/ctags/ruby-sf-bug-364.rb0000644000175000017500000000023215031717571014650 00000000000000class D def self.x? end def self.y! end def self.z=(a) end def self._a? end def self._b! end def self._c=(a) end end D._c=1 D.z=1 geany-2.1/tests/ctags/ruby-scope-after-anonymous-class.rb0000644000175000017500000000014315031717571020515 00000000000000class C class << self def foo() end end def bar(); end end puts C.foo puts C.new.bar geany-2.1/tests/ctags/ruby-namespaced-class.rb0000644000175000017500000000010015031717571016350 00000000000000module A module B end end class A::B::C; end puts A::B::C geany-2.1/tests/ctags/ruby-doc.rb0000644000175000017500000000025015031717571013720 00000000000000def f0; end =begin def bug1 end =end def f1; end =begin def bug2 end =end def f2; end =begin def doesntcount end def bug3 end =end def notparsed end def f3; end geany-2.1/tests/ctags/ruby-block-call.rb0000644000175000017500000000013515031717571015160 00000000000000 def plop [ 1, 2, 3, 4 ].each do |x| x > 0 end.all? end def nothing puts "nothing" end geany-2.1/tests/ctags/return-types.go0000644000175000017500000000041715031717571014664 00000000000000package main func foo() *struct {a int; b func()} { return nil } func bar() (a int, b func(a int), c interface{}, d string) { return 0, nil, nil, "" } func baz() *[20*3+1]map[chan<- /* map[int]int */<-chan int]map[interface{}]*string { return nil } func main() { }geany-2.1/tests/ctags/return-hint.zep0000644000175000017500000000030115031717571014643 00000000000000class Test { public function first(string str) -> string { function nested() { } } public function second(int i) -> int { } } geany-2.1/tests/ctags/regexp.js0000644000175000017500000000150515031717571013503 00000000000000/* * ctags should return the following for parsing this file using: * ctags -f - simple.js * * functions: * func1 * func2 * * variables: * no_re1 * no_re2 * no_re3 * no_re4 * no_re5 * no_re6 * re1 * re2 * re3 * re4 * re5 * re6 * str1 * str2 */ var no_re1 = 1 / 2; var no_re2 = 1 + (1 + 2) / 3; var no_re3 = 1 + {0:1}[0] / 2; var no_re4 = 1 + {0:1} / 8; // gives NaN var no_re5 = "foo" / 2; // so does this var no_re6 = no_re1 / 2; var re1 = /foo/; var re2 = /\//; var re3 = /[/]/; var re4 = /'/; var re5 = /["'/]/; var re6 = /\(([a-z]*_)+/; var str1 = "a/b/c".replace(/\//g, '-'); var str2 = "Hello".replace(/O/ig, 'O'); function func1() { return /function bug1(foo){/; } function func2() { return /\(/; } geany-2.1/tests/ctags/refcurs.sql0000644000175000017500000000375115031717571014052 00000000000000rem ----------------------------------------------------------------------- rem URL: http://www.orafaq.com/scripts/plsql/refcurs.txt rem Filename: refcurs.sql rem Purpose: Pass result sets (REF CURSOR) between procedures and rem functions rem Date: 15-Jun-2001 rem Author: Frank Naude (frank@ibi.co.za) rem ----------------------------------------------------------------------- set serveroutput on -- Define TYPES package separately to be available to all programming -- environments... CREATE OR REPLACE PACKAGE types AS TYPE cursortyp is REF CURSOR; -- use weak form END; / -- Create test package to demonstrate passing result sets... CREATE OR REPLACE PACKAGE test_ref_cursor AS PROCEDURE main; FUNCTION get_cursor_ref(typ NUMBER) RETURN types.cursortyp; PROCEDURE process_cursor(cur types.cursortyp); END; / show errors CREATE OR REPLACE PACKAGE BODY test_ref_cursor AS -- Main program entry point PROCEDURE main IS BEGIN process_cursor( get_cursor_ref(1) ); process_cursor( get_cursor_ref(2) ); END; -- Get and return a CURSOR REF/ Result Set FUNCTION get_cursor_ref(typ NUMBER) RETURN types.cursortyp IS cur types.cursortyp; BEGIN if typ = 1 THEN OPEN cur FOR SELECT * FROM emp WHERE ROWNUM < 5; ELSE OPEN cur FOR SELECT * FROM dept WHERE ROWNUM < 5; END IF; RETURN cur; END; -- Process rows for an EMP or DEPT cursor PROCEDURE process_cursor(cur types.cursortyp) IS empRec emp%ROWTYPE; deptRec dept%ROWTYPE; BEGIN LOOP FETCH cur INTO empRec; -- Maybe it was an EMP cursor, try to fetch... EXIT WHEN cur%NOTFOUND; dbms_output.put_line('EMP ROW: '||empRec.ename); END LOOP; EXCEPTION WHEN ROWTYPE_MISMATCH THEN -- OK, so it was't EMP, let's try DEPT. LOOP FETCH cur INTO deptRec; EXIT WHEN cur%NOTFOUND; dbms_output.put_line('DEPT ROW: '||deptRec.dname); END LOOP; END; END; / show errors EXEC test_ref_cursor.main; geany-2.1/tests/ctags/recursive.f950000644000175000017500000000303515031717571014207 00000000000000! result/recursive broken MODULE approx interface recursive function arcsin (angle, terms) ! no result keyword double precision arcsin1 double precision angle integer terms end function arcsin recursive function arcsin1 (angle, terms) result (value) ! no explicit type double precision angle integer terms double precision value end function arcsin1 double precision recursive function arcsin2 (angle, terms) result (value) ! type + recurs double precision angle integer terms end function arcsin2 ! only this function seems to be found recursive double precision function arcsin3 (angle, terms) result (value ) ! recurs + type double precision angle integer terms end function arcsin3 end interface double precision :: y integer :: parts END MODULE MODULE approx2 interface double precision recursive function as (angle, terms) result (value) ! type + recurs double precision angle integer terms end function as recursive double precision function as1 (angle, terms) result (value ) ! recurs + type double precision angle integer terms end function as1 ! but now I can see this one recursive function as2 (angle, terms) ! no result keyword double precision arcsin1 double precision angle integer terms end function as2 ! .. and this one! recursive function as3 (angle, terms) result (value) ! no explicit type double precision angle integer terms double precision value end function as3 end interface double precision :: z integer :: parts2 END MODULE geany-2.1/tests/ctags/readlong.sql0000644000175000017500000000272015031717571014167 00000000000000rem ----------------------------------------------------------------------- rem URL: http://www.orafaq.com/scripts/plsql/readlong.txt rem Filename: readlong.sql rem Purpose: Fetch Long column values piece-wise from PL/SQL rem Date: 12-Jan-1999 rem Author: Frank Naude (frank@ibi.co.za) rem ----------------------------------------------------------------------- set serveroutput on -- Create test table drop table longtable; create table longtable (longcol long) tablespace TOOLS; insert into longtable values ( rpad('x', 257, 'QWERTY') ); DECLARE cur1 PLS_INTEGER := DBMS_SQL.OPEN_CURSOR;; rc NUMBER; long_piece VARCHAR2(256); piece_len INTEGER := 0; long_tab DBMS_SQL.VARCHAR2S; long_len INTEGER := 0; BEGIN DBMS_SQL.PARSE(cur1, 'select longcol from longtable', DBMS_SQL.NATIVE); DBMS_SQL.DEFINE_COLUMN_LONG(cur1, 1); rc := DBMS_SQL.EXECUTE(cur1); rc := DBMS_SQL.FETCH_ROWS(cur1); -- Get one row -- Loop until all pieces of the long column are processed LOOP DBMS_SQL.COLUMN_VALUE_LONG(cur1, 1, 256, long_len, long_piece, piece_len); EXIT WHEN piece_len = 0; DBMS_OUTPUT.PUT_LINE('Long piece len='|| piece_len); long_tab( NVL(long_tab.LAST, 0)+1 ) := long_piece; -- Add piece to table long_len := long_len + piece_len; END LOOP; DBMS_SQL.CLOSE_CURSOR(cur1); DBMS_OUTPUT.PUT_LINE('Total long col fetched, len='|| long_len); END; / geany-2.1/tests/ctags/readlob.sql0000644000175000017500000000230415031717571014002 00000000000000rem ----------------------------------------------------------------------- rem URL: http://www.orafaq.com/scripts/plsql/readlob.txt rem Filename: readlob.sql rem Purpose: Fetch LOB column values piece-wise from PL/SQL rem Date: 12-Jun-2000 rem Author: Frank Naude (frank@ibi.co.za) rem ----------------------------------------------------------------------- set serveroutput on DROP TABLE lob_table; -- Create table to hols LOBs CREATE TABLE lob_table ( id INTEGER, b_lob BLOB, c_lob CLOB, b_file BFILE ); INSERT INTO lob_table -- Create sample record VALUES (1, EMPTY_BLOB(), 'abcde', NULL); DECLARE clob_locator CLOB; charbuf VARCHAR2(20); read_offset INTEGER; read_amount INTEGER; BEGIN -- First we need to get the lob locator SELECT c_lob INTO clob_locator FROM lob_table WHERE id = 1; DBMS_OUTPUT.PUT_LINE('CLOB Size: ' || DBMS_LOB.GETLENGTH(clob_locator)); -- Read LOB field contents read_offset := 1; read_amount := 20; dbms_lob.read(clob_locator, read_amount, read_offset, charbuf); dbms_output.put_line('CLOB Value: ' || charbuf); END; / geany-2.1/tests/ctags/random.sql0000644000175000017500000000520215031717571013652 00000000000000/* ------------------------------------------------------------------------------ URL: http://www.orafaq.com/scripts/plsql/random.txt Filename: random.txt Purpose: Random number/ string generator package Author: Unknown Original: http://www.orafaq.org/scripts/sql/random.txt Edits: 19990908 Phil Rand Added functions rand_string(), smaller(). ------------------------------------------------------------------------------ */ create or replace package random is procedure srand(new_seed in number); procedure get_rand(r OUT number); procedure get_rand_max(r OUT number, n IN number); function rand return number; function rand_max(n IN number) return number; function rand_string(ssiz IN number) return varchar2; function smaller(x IN number, y IN number) return number; pragma restrict_references(rand, WNDS); pragma restrict_references(rand_max, WNDS); pragma restrict_references(random, WNDS, RNPS); pragma restrict_references(rand_string, WNDS); pragma restrict_references(smaller, WNDS); end random; / create or replace package body random is multiplier constant number := 22695477; increment constant number := 1; "2^32" constant number := 2 ** 32; "2^16" constant number := 2 ** 16; "0x7fff" constant number := 32767; Seed number := 1; function smaller(x IN number, y IN number) return number is begin if x <= y then return x; else return y; end if; end smaller; function rand_string(ssiz IN number) return varchar2 is i number; m number; c char; result varchar2(2000) := ''; begin m := smaller(ssiz,2000); for i in 1..m loop c := substr('abcdefghijklmnopqrstuvwxyz0123456789',rand_max(36),1); result := result || c; end loop; return result; end rand_string; procedure srand(new_seed in number) is begin Seed := new_seed; end srand; function rand return number is begin Seed := mod(multiplier * Seed + increment, "2^32"); return bitand(Seed/"2^16", "0x7fff"); end rand; procedure get_rand(r OUT number) is begin r := rand; end get_rand; function rand_max(n IN number) return number is begin return mod(rand, n) + 1; end rand_max; procedure get_rand_max(r OUT number, n IN number) is begin r := rand_max(n); end get_rand_max; begin select userenv('SESSIONID') into Seed from dual; end random; / -- Some examples: select random.rand_max(10) from dual; select random.rand_max(10) from dual; select random.rand_string(20) from dual; select random.rand_string(20) from dual; geany-2.1/tests/ctags/qualified_types.f900000644000175000017500000000101515031717571015356 00000000000000module test implicit none type goodtype(p1, p2, p3, p4) ! the stuff in brackets after the name of the type shouldn't appear in the type's name ! this is already correctly handled, so that's fine integer, kind :: p1, p3 ! the question is whether or not these "kind" and "len"s should be shown as members integer, len :: p2, p4 real(kind=p1) :: c1 character(len=p2) :: c2 complex :: c3(p3) integer :: c4 = p1 contains end module test geany-2.1/tests/ctags/python-comments.py0000644000175000017500000000021015031717571015361 00000000000000 import foo ## as bug1 "hello" ## import bug2 "hi" # something # class bug3 for i in range(1, 2): ##class bug4 pass ## class bug5 geany-2.1/tests/ctags/python-anonymous-nestlevel_ctags-bug-356.py0000644000175000017500000000017515031717571022044 00000000000000class Testclass(): def main(self): variable = True if __name__ == "__main__": module_level_attribute = True geany-2.1/tests/ctags/py-skipped-string.py0000644000175000017500000000117515031717571015621 00000000000000# triple start string immediately after a normal string not detected def f1(): ''""" The string above was not detected as triple start string, but the one below instead. """ print "f1" def f2(): ''""" The string above was then detected as end string, and the one below as start string again. """ print "f2" def f3(): """ The string below is prepared so that ctags with the bug does not start a new triple string. For a clean precondition for the next test. ''""" print "f3" # normal string immediately after a normal string not detected ''" import os\ " ""' def fX():\ ' geany-2.1/tests/ctags/py_constructor_arglist.py0000644000175000017500000000222015031717571017042 00000000000000""" Test arglist parsing of a class' __init__ method: the __init__() method's argument list should be assigned to the class' argument list. This is somewhat special to Python and the Python parses uses tm_source_file_set_tag_arglist() to do this and tm_source_file_set_tag_arglist() uses tm_tags_find() which by default relies on a sorted tags array. However, when the parses uses tm_source_file_set_tag_arglist() the tags array is *not yet* sorted and so it might be the tag for the class SomeClass can't be found, hence this test. """ from bsddb import btopen import sys from django.contrib.auth.decorators import login_required, permission_required from django.http import HttpResponse, HttpResponseBadRequest from django.shortcuts import render_to_response from django.template.context import RequestContext from django.utils import simplejson from django.views.decorators.csrf import csrf_exempt from django.views.decorators.csrf import csrf_exempt2 from django.views.decorators.http import require_POST from vnstat.api.error import InterfaceDataValidationError class SomeClass(object): def __init__(self, filename, pathsep='', treegap=64): pass geany-2.1/tests/ctags/pure_elem.f950000644000175000017500000000176515031717571014165 00000000000000! elemental ! !Pure procedures are procedures declared with the PURE keyword and which !satisfy certain constraints that ensure they have no side !effects. They can be used in specification expressions and !within FORALL constructs and statements. !Elemental procedures can be written in Fortran 95 using the ELEMENTAL !keyword. Elemental procedures are automatically ``pure''. !Example: PURE REAL FUNCTION pure_func(x,y) ! pure okay IMPLICIT NONE REAL, INTENT(IN) :: x, y pure_func = x*x + y*y + 2*x*y + ASIN(MIN(x/y,y/x)) END FUNCTION pure_func PURE REAL FUNCTION F(x,y) ! pure broken returns 'PURE REAL FU' IMPLICIT NONE REAL, INTENT(IN) :: x, y F = x*x + y*y + 2*x*y + ASIN(MIN(x/y,y/x)) END FUNCTION F ELEMENTAL REAL FUNCTION elem_maxabs(a,b) ! elemental broke IMPLICIT NONE REAL,INTENT(IN) :: a,b elem_maxabs = MAX(ABS(a),ABS(b)) END PURE REAL FUNCTION pure_maxabs2(a,b) ! pure okay IMPLICIT NONE REAL,INTENT(IN) :: a,b pure_maxabs2 = MAX(ABS(a),ABS(b)) END geany-2.1/tests/ctags/prototype.h0000644000175000017500000000010215031717571014061 00000000000000int prototype_a (int a, char *b); extern void prototype_b (void); geany-2.1/tests/ctags/property.cs0000644000175000017500000000161415031717571014067 00000000000000// property.cs // Properties using System; public class Employee { public static int numberOfEmployees; private static int counter; private string name; // A read-write instance property: public string Name { get { return name; } set { name = value; } } // A read-only static property: public static int Counter { get { return counter; } } // Constructor: public Employee() { // Calculate the employee's number: counter = ++counter + numberOfEmployees; } } public class MainClass { public static void Main() { Employee.numberOfEmployees = 100; Employee e1 = new Employee(); e1.Name = "Claude Vige"; Console.WriteLine("Employee number: {0}", Employee.Counter); Console.WriteLine("Employee name: {0}", e1.Name); } } geany-2.1/tests/ctags/procpoint.f900000644000175000017500000000117515031717571014213 00000000000000module Test implicit none procedure(ProcOne), pointer :: MyProc => null(), & MyOtherProc => ProcTwo real, parameter :: myparameter contains function ProcOne(arg1, optformat) ! not relevant end function ProcOne function ProcTwo(arg1, optformat) ! not relevant end function ProcTwo end module Test program Main implicit none ! deliberately break up the line to make sure the tagparser doesn't choke on awkward cases procedure(:), pointer :: ProcPointOne & => null(), ProcPointTwo => & null() real :: variable, variable_two integer :: variable_three ProcPointOne => ProcTwo end program Main geany-2.1/tests/ctags/procedure_pointer_module.f900000644000175000017500000000044315031717571017270 00000000000000! a module that uses procedure pointer module proc_pointer real :: a procedure(sub), pointer :: my_pointer contains subroutine sub(x) real, intent(inout) :: x(:) integer :: i do i=1,size(x) x(i) = 0.5**i end do end subroutine sub end module proc_pointer geany-2.1/tests/ctags/preprocessor.f900000644000175000017500000000036615031717571014725 00000000000000#include ! preprocessor directives on line 1 (and only line 1) cause breakage module Invisible integer :: nope contains function SpillsOutside ! ... end function SpillsOutside end module Invisible program Main ! ... end program Main geany-2.1/tests/ctags/parenthesis-rvalue.js0000644000175000017500000000102215031717571016024 00000000000000 // plain values var a1 = 42; var a2 = (42); // functions var b1 = function(){ function b1sub(){} }; var b2 = (function(){ function b2sub(){} }); var b3 = ((function(){ function b3sub(){} })); // objects var c1 = {}; var c2 = ({}); var d1 = {a:'hello',b:'hi'}; var d2 = ({a:'hello',b:'hi'}); // function expressions called straight away var e1 = function(){ function e1sub(){} return 42; }(); var e2 = (function(){ function e2sub(){} return 42 })(); var e3 = ((function(){ function e3sub(){} return 42 })()); geany-2.1/tests/ctags/php5_5_class_kw.php0000644000175000017500000000022115031717571015344 00000000000000 1; =head2 quo This is 'quo' subroutine =cut sub quo; quo; Test::quo; sub quo { goto END; die; END: END2 : print "END!\n"; return; } sub xuz :lvalue; sub xtz (&@;$) :lvalue; sub # This should create a tag dude { 1; } 1; geany-2.1/tests/ctags/oop.sv0000644000175000017500000000505715031717571013030 00000000000000/* Tests the following SystemVerilog ctags: * - [x] constant * - [x] define * - [ ] event * - [x] function * - [ ] module * - [ ] net * - [ ] port * - [x] register * - [x] task * - [ ] block * - [ ] instance * - [x] class * - [x] enum * - [x] interface * - [x] modport * - [x] package * - [ ] program * - [x] prototype * - [x] struct * - [x] typedef * - [z] member * - [x] ifclass * - [x] nettype */ package oop; `define MACRO 1234 // NB: Shouldn't the ctag for this be outside of the package? (ctags bug?) /* Constants */ const int ANSWER_TO_LIFE = 42; localparam real APPROX_PI = 3.14; /* Methods */ task display_int(int x); $display("%0d", x); endtask function automatic resolve_nettype(real driver[]); resolve_nettype = 0.0; foreach (driver[i]) resolve_nettype += driver[i]; endfunction /* Typedefs */ nettype real net_t with resolve_nettype; typedef struct packed { logic [7:0] data; logic parity; } struct_t; typedef union packed { logic [7:0] data; logic [3:0] control; } union_t; typedef enum { red, yellow, green } enum_t; /* Classes */ interface class ifclass #( type T = logic ); pure virtual function T get_value(); pure virtual function void set_value(T x); endclass : ifclass class a_class implements ifclass #(int); int value; virtual function int get_value(); get_value = value; endfunction virtual function void put_value(int x); value = x; endfunction task print_value(); $display("value = %0d", value); endtask function value_plus(int x); value_plus = value + x; endfunction endclass : a_class class other_class; struct packed { byte s_a, s_b, s_c; string s_str; } s_member; union packed { byte u_a; int u_b; } u_member; enum { ready, steady, go } e_member; struct_t st_member; union_t ut_member; enum_t et_member; endclass : other_class /*virtual*/ class vclass; // NB: ctags bug!! Declaring class as virtual inhibits detection of next element. pure virtual function void do_something(); endclass : vclass /* Interface (not related to "interface class") */ interface spi; logic sclk; logic cs_n; logic mosi; logic miso; modport master (output sclk, cs_n, mosi, input miso); modport slave (input sclk, cs_n, mosi, output miso); task enable_cs(); cs_n <= 1'b0; endtask task disable_cs(); cs_n <= 1'b1; endtask endinterface : spi endpackage : oop geany-2.1/tests/ctags/objectivec_protocol.mm0000644000175000017500000000006715031717571016246 00000000000000 @protocol Locking - (void)lock; - (void)unlock; @end geany-2.1/tests/ctags/objectivec_property.mm0000644000175000017500000000032515031717571016266 00000000000000 @interface Person : NSObject { @public NSString *m_name; @private int m_age; } @property(copy) NSString *personName; @property(readonly) int personAge; -(id)initWithAge:(int)age; @end geany-2.1/tests/ctags/objectivec_interface.mm0000644000175000017500000000245315031717571016346 00000000000000// // commentary test // SupaView // // Created by Vincent Berthoux on 14/06/10. // Copyright 2010 __MyCompanyName__. All rights reserved. // #import #import "LayoutTree.h" @class LayoutTree; @class FolderTree; #define A_MACRO_TEST typedef something SampleTypedefObjC; // Mer & no_struct_name must not be present in output // tag # define ANOTHER_MACRO( WITH, MOAR ) \ Mer( ) \ struct no_struct_name struct aStruct { int aStructMember; char *anotherStructMember[ NOT_IN_TAG ]; }; #pragma DONTCARE /* :-) */ @interface FileTree : NSObject { NSString *name; LayoutTree *representation; FolderTree *parent[THISISNOTATAG]; FileSize diskSize; } - (id)initWithName:(NSString*)treeName andSize:(uint64_t)size atPlace:(FolderTree*)parentFolder; - (id)initWithName:(NSString*)treeName atPlace:(FolderTree*)parentFolder; - (void)dealloc; - (FileSize)getDiskSize; - (LayoutTree*)createLayoutTree; @end @interface FolderTree : FileTree { NSMutableArray *children; } - (id)initWithName:(NSString*)treeName atPlace:(FolderTree*)parentFolder; - (void)dealloc; - (FolderTree*)addChild:(FileTree*)subTree; - (void) populateChildList:(NSString*)root; - (LayoutTree*)createLayoutTree; @end geany-2.1/tests/ctags/objectivec_implementation.mm0000644000175000017500000000565615031717571017443 00000000000000 @implementation FileTree - (FileSize)getDiskSize { return diskSize; } - (id)initWithName:(NSString*)treeName atPlace:(FolderTree*)parentFolder { self = [super init]; diskSize = 0; name = treeName; parent = parentFolder; [name retain]; representation = nil; return self; } - (id)initWithName:(NSString*)treeName andSize:(FileSize)size atPlace:(FolderTree*)parentFolder { self = [super init]; diskSize = size; name = treeName; parent = parentFolder; [name retain]; representation = nil; return self; } - (void)dealloc { [name release]; [representation release]; [super dealloc]; } - (LayoutTree*)createLayoutTree { return nil; } @end @implementation FolderTree - (id)initWithName:(NSString*)treeName atPlace:(FolderTree*)parentFolder { self = [super initWithName:treeName atPlace:parentFolder]; children = [[NSMutableArray alloc] init]; return self; } - (void)dealloc { [children release]; [super dealloc]; } + (void) createFileList: (NSString*)root atPlace:(FolderTree*)parentFolder { NSFileManager *localFileManager = [[NSFileManager alloc] init]; NSURL *rootUrl = [NSURL fileURLWithPath:root]; NSDirectoryEnumerator *dirEnumerator = [localFileManager enumeratorAtURL:rootUrl includingPropertiesForKeys:[NSArray arrayWithObjects: NSURLNameKey, NSURLIsDirectoryKey, nil] options:NSDirectoryEnumerationSkipsHiddenFiles errorHandler:nil]; for (NSURL *theURL in dirEnumerator) { [theURL getResourceValue:&fileName forKey:NSURLNameKey error:NULL]; // Ignore files under the _extras directory if ([isDirectory boolValue]==YES) { [folder populateChildList:root]; } else if ([isDirectory boolValue]==NO) { [parentFolder addChild:f]; } } } - (void) populateChildList:(NSString*)root { NSString *thisRoot = [[root stringByAppendingString:@"/"] stringByAppendingString:name]; [FolderTree createFileList:thisRoot atPlace:self]; for ( FileTree *f in children ) diskSize += [f getDiskSize]; } - (FolderTree*)addChild:(FileTree*)subTree { [children addObject:subTree]; return self; } - (LayoutTree*)createLayoutTree { return [[LayoutTree alloc] initWithFileList:children andTotalSize:diskSize]; } @end geany-2.1/tests/ctags/numlib.f900000644000175000017500000000441615031717571013465 00000000000000! Bug reported by Brian Helinski on 4 Feb 2003 module numerical_libraries interface subroutine a2ald (nf, nl, y, nrf, indrf, nef, nfef, indef, conper, iprint& , model, aov, ems, vc, ldvc, ymeans, wk, iwk, c13ksp) integer, intent(in) :: nf integer, dimension(*), intent(in) :: nl real(kind(1e0)), dimension(*) :: y integer, intent(in) :: nrf integer, dimension(*), intent(in) :: indrf integer, intent(in) :: nef integer, dimension(*), intent(in) :: nfef integer, dimension(*), intent(in) :: indef real(kind(1e0)), intent(in) :: conper integer, intent(in) :: iprint integer, intent(in) :: model real(kind(1e0)), dimension(*), intent(in) :: aov real(kind(1e0)), dimension(*), intent(inout) :: ems real(kind(1e0)), dimension(ldvc,*), intent(inout) :: vc integer, intent(in) :: ldvc real(kind(1e0)), dimension(*), intent(in) :: ymeans real(kind(1e0)), dimension(*), intent(inout) :: wk integer, dimension(*), intent(in) :: iwk character (len = 13), dimension(*), intent(out) :: c13ksp end subroutine subroutine b2lsf (fcn, m, n, xguess, ibtype, xlb, xub, xscale, fscale& , iparam, rparam, x, fvec, fjac, ldfjac, wk, iwk) integer, intent(in) :: m integer, intent(in) :: n real(kind(1e0)), dimension(*) :: xguess integer, intent(in) :: ibtype real(kind(1e0)), dimension(*), intent(inout) :: xlb real(kind(1e0)), dimension(*), intent(inout) :: xub real(kind(1e0)), dimension(*) :: xscale real(kind(1e0)), dimension(*) :: fscale integer, dimension(*) :: iparam real(kind(1e0)), dimension(*) :: rparam real(kind(1e0)), dimension(*) :: x real(kind(1e0)), dimension(*) :: fvec real(kind(1e0)), dimension(*) :: fjac integer, intent(in) :: ldfjac real(kind(1e0)), dimension(*) :: wk integer, dimension(*) :: iwk interface subroutine fcn(m, n, x, f) integer, intent(in) :: m, n real(kind(1e0)), intent(in) :: x(*) real(kind(1e0)), intent(out) :: f(*) end subroutine end interface end subroutine END INTERFACE end module geany-2.1/tests/ctags/non-ascii-ident1.php0000644000175000017500000000030015031717571015416 00000000000000r = $a * $b; } public function __toString() { return (string) $this->r; } } echo new ×(2, 2); geany-2.1/tests/ctags/no_terminator.js0000644000175000017500000000167515031717571015101 00000000000000function ts_resortTable(lnk) { if (span.getAttribute("sortdir") == 'down') { span.setAttribute('sortdir','up'); } else { span.setAttribute('sortdir','down'); } } function getParent(el, pTagName) { if (el == null) return null; else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase()) // Gecko bug, supposed to be uppercase return el; else return getParent(el.parentNode, pTagName); } function ts_sort_currency(a,b) { aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,''); bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,''); return parseFloat(aa) - parseFloat(bb); } function checkForUpdate() { if( 1==1 ) { document.write("hello from checkForUpdate
") } return 1; } function checkForUpdate2() { if( 1==1 ) { document.write("hello from checkForUpdate
"); } return 2; } geany-2.1/tests/ctags/nested_anon.c0000644000175000017500000000010615031717571014310 00000000000000typedef struct { struct { } __value32; } __atomic_wide_counter; geany-2.1/tests/ctags/namespaces.php0000644000175000017500000000136615031717571014510 00000000000000Tests for namespaces (braced version) Expected output is namespaces: Bar\Baz Foo classes: B [Bar\Baz] C [Foo] functions: __construct [Foo::C] __construct [Bar\Baz::B] a [Foo] a [Bar\Baz] b [Foo] c [Bar\Baz::B] d [Foo::C] inRoot meToo A ? BCS RETURNFALSE If no then re-enter CMP.B #('Z'+1),(A0)+ Check if char is < Z BCC RETURNFALSE If it is then it must be a cap SUBI.B #1,D4 Decrease s_name / f_name Length BNE CHECK2 jump if the sentence is not = 0 RETURNTRUE MOVE.B #1,D5 Moves a one to D5 to make CAPS ture RTS Jump back to the main program RETURNFALSE MOVE.B #0,D5 Moves a zero to D5 to make CAPS false RTS Jump back to the main program * Var's & Const's * =============== PROMPT1 DC.B 'Please enter your firstname (Max 80): ' PROMPT2 DC.B 'Please enter your surname (Max 80): ' F_NAME DS.B 80 S_NAME DS.B 80 DUMMY DS.B 1 END $1000 End of assembley geany-2.1/tests/ctags/mode.php0000644000175000017500000000332015031717571013305 00000000000000Tests for entering and leaving PHP mode Expected output is functions: a b c d e f g h i j function bug0() { // this should not appear } // PHP mode left function bug1() {} // PHP mode left function bug2() {} function bug3() {} // PHP mode left function bug4() { } // same here function bug5() { } // leaves PHP mode function bug4() {} ?> // left function bug6() {} // leave function bug7() {} function h() {} ?> function bug8() {} function bug9() {} // this won't enter PHP, no spaces are allowed between the "<" and "script" < script language = php > function bug10() {} // does nothing, just resets mode for some tools not aware of the "script" thing ?>

geany-2.1/tests/ctags/misc_types.f0000644000175000017500000000104115031717571014174 00000000000000! Provided by Brian Helsinki, 7 March 2003 ! cexternal ! cglobal ! pexternal ! pglobal ! inline ! virtual ! volatile ! pascal program specs VIRTUAL M(10,10), Y(100) VOLATILE V, Z, MAT, /INI/ EXTERNAL ABS ! variations of external and global CEXTERNAL ABS1 ! not supported CGLOBAL ABS2 ! not supported PEXTERNAL ABS3 ! not supported $IF DEFINED(MAC_DEP) PASCAL EXTERNAL ABS3_var2 ! not supported $ENDIF PGLOBAL ABS4 INTEGER INFOOBAR INLINE (INFOOBAR=00000) ! not supported INTEGER M(5) DATA M/5*0/ CALL INFOOBAR(5,4) END geany-2.1/tests/ctags/misc_types.f900000644000175000017500000000150015031717571014345 00000000000000! Provided by Brian Helsinki, 7 March 2003 program testalloc integer base_type automatic foobar_var ! automatic breaks parsing integer i2 static s_var ! static breaks parsing integer i3 volatile v_var ! volatile breaks var parsing integer i4 DLL_IMPORT foobar2 ! break var parsing DLL_EXPORT foobar ! breaks var parsing integer i5 common foobar_var, s_var, v_var integer i6 structure /my_struct/ integer(1) :: first_byte integer(1) :: %fill integer(2) :: align_second_16 end structure integer i7 record /m_struct/ the_struct ! break var parsing integer i8 real, dimension (:), allocatable :: list ! allocatable integer i, status i = 99 allocate (list(i), stat=status ) ! create array allocate list (1) = 1.2 deallocate (list) ! deallocate do i=1,100 j=i end do stop end geany-2.1/tests/ctags/members.f900000644000175000017500000000057515031717571013633 00000000000000module Members implicit none type HasMembers ! a "derived type" in Fortran is analogous to a "class" in other languages integer, kind :: kind_member integer, len :: len_member integer :: member contains procedure :: MyMethod end type HasMembers contains subroutine MySubroutine(arg) ! ... end subroutine MySubroutine end module Members geany-2.1/tests/ctags/maze.erl0000644000175000017500000001022715031717571013314 00000000000000-module(maze). -vsn('2002.0317'). -author('cpressey@catseye.mb.ca'). -copyright('Copyright (c)2002 Cat`s Eye Technologies. All rights reserved.'). %%% Redistribution and use in source and binary forms, with or without %%% modification, are permitted provided that the following conditions %%% are met: %%% %%% Redistributions of source code must retain the above copyright %%% notice, this list of conditions and the following disclaimer. %%% %%% 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. %%% %%% Neither the name of Cat's Eye Technologies nor the names of its %%% contributors may be used to endorse or promote products derived %%% from this software without specific prior written permission. %%% %%% 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 REGENTS 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. -include("maze.hrl"). -export([build/0, generate/1]). %%% BEGIN maze.erl %%% %%% A simple maze-drawing program. %% Driver function ----------------------------------------------------- build() -> Tot = generate(#maze{}), tot_print(Tot). %% Maze generation function -------------------------------------------- generate(#maze{}=M) -> seed(), {X, Y} = {random:uniform(M#maze.width div 2) * 2, random:uniform(M#maze.height div 2) * 2}, R2 = tot_put(X, Y, tot_new(M#maze.width, M#maze.height, M#maze.wall), M#maze.space), generate(M, R2, X, Y). generate(#maze{}=M, R, X, Y) -> lists:foldl(fun({DX, DY}, A) -> NX = X + DX * 2, NY = Y + DY * 2, W = M#maze.wall, case catch tot_get(NX, NY, A) of W -> M1 = tot_put(X + DX, Y + DY, A, M#maze.space), M2 = tot_put(NX, NY, M1, M#maze.space), generate(M, M2, NX, NY); _ -> A end end, R, scramble([{-1,0}, {1,0}, {0,-1}, {0,1}])). %%% ToT (Tuple-of-Tuples) Utilities ------------------------------------ tot_new(W, H, Cell) -> erlang:make_tuple(H, erlang:make_tuple(W, Cell)). tot_get(X, Y, Tot) -> element(X, element(Y, Tot)). tot_put(X, Y, Tot, V) -> setelement(Y, Tot, setelement(X, element(Y, Tot), V)). tot_print(ToT) -> tot_print(1, ToT). tot_print(Y, ToT) when Y =< size(ToT) -> tot_print_tuple(element(Y, ToT)), io:fwrite("~n"), tot_print(Y+1, ToT); tot_print(Y, ToT) -> ok. tot_print_tuple(T) -> tot_print_tuple(1, T). tot_print_tuple(X, T) when X =< size(T) -> io:fwrite("~s", [[element(X, T)]]), tot_print_tuple(X+1, T); tot_print_tuple(X, T) -> ok. %%% Randomness Functions ----------------------------------------------- %% Seed the random number generator so that it will produce unpredictable %% values. Should be called once at startup, before using random numbers. seed() -> {H,M,S} = time(), random:seed(S,M,H), random:uniform(23). % prime the pump - first number can be iffy %% Pick a random element from a tuple or a list (equal chance for every %% element.) pick(Tuple) when tuple(Tuple) -> pick(tuple_to_list(Tuple)); pick(List) -> lists:nth(random:uniform(length(List)), List). %% Mix up the order (shuffle or scramble) a tuple or list. scramble(Tuple) when tuple(Tuple) -> list_to_tuple(scramble(tuple_to_list(Tuple))); scramble(List) -> scramble(List, []). scramble([], Acc) -> Acc; scramble(List, Acc) -> S = pick(List), scramble(List -- [S], Acc ++ [S]). %%% END of maze.erl %%% geany-2.1/tests/ctags/matlab_test.m0000644000175000017500000000035315031717571014330 00000000000000function [x,y,z] = func1 function x = func2 function func3 function y = func4(a, b, c) function func5 % this comment should be ignored --> X = FAIL5 functionality = FAIL6; % this is not a function and should not be parsed geany-2.1/tests/ctags/matlab_backtracking.m0000644000175000017500000000564015031717571016000 00000000000000% http://www.math.washington.edu/~burke/crs/516/HTML/backtrack.html % Backtracking Linesearch function [xn,fn,fcall] = backtrack(xc,d,fc,fnc,DDfnc,c,gamma,eps) % %GENERAL DESCRIPTION % %This function performs the basic backtracking subroutine. %The subroutine requires the following input: % xc = the current point, % d = the direction of search, % fc = the current function value, % fnc = a string variable for the function name, % DDfnc = the directional derivative of fnc at xc in the % direction d, must have DDfnc < 0, % c = the slope modification parameter in (0,1), % gamma = the backstepping parameter in (0,1), % eps = the stopping criteria for norm(xn - xc), % that is, the main algorithm stops when % norm(xn - xc) <= eps. % %The routine returns % xn = the new point, % fn = the function value at the new point, % fnc = the number of calls to fnc. % %TERMINATION CRITERIA % %The backtracking is terminated if the step to the new point %xn is so small that it triggers termination in the main algorithm, %i.e. norm(xc - xn) <= eps. In this case we return xn = xc if %fn >= fc (we have not reduced the function value); otherwise, %we return xn. % %THE MATH % %The backtracking routing attempts to find a step size for %reducing the value of the function fnc given the current point xc %and a direction d. It does this by successively trying step sizes %of the form gamma^s for s = 0,1,2... to find the smallest %value of s for which the inequality % % fnc(xc+gamma^s*d)\le fnc(xc)+c*gamma^s*DD % % is satisfied. The new point to be returned is then given % by xn = xc+gamma^s*d. % %CHECK INPUT SPECIFICATIONS % if DDfnc >= 0, error('The backtracking subroutine has been sent a direction of nondesce nt. Program has been terminated.') end if c<= 0 | c>= 1, error('The slope modification parameter c in the backtracking subroutine is not in (0,1).') end if gamma<=0 | gamma >=1, error('The backtracking parameter gamma is not in (0,1).') end if eps <= 0, error('The termination criteria eps sent to the backtracking line search is not positive.') end % %CHECK DIMENSIONS % if size(xc)~=size(d) error('The vectors sent to backtrack are not of the same dimension.') end % % %EXECUTE THE LINE SEARCH % % xn = xc+d; cDDfnc = c*DDfnc; fn = feval(fnc,xn); fcall = 1 ; while fn > fc+cDDfnc, d = gamma*d; cDDfnc = gamma*cDDfnc; xn = xc+d; fn = feval(fnc,xn); fcall = fcall+1; %Check if the step to xn is too small. if norm(d) <= eps, disp('linesearch step too small') if fn >= fc, xn = xc; end break end end geany-2.1/tests/ctags/masm.asm0000644000175000017500000000105115031717571013306 00000000000000.MODEL medium .DATA Msg DB "Text string" .CODE QUACK PROC PUBLIC enter 0, 0 ; May be an instruction or a macro mov bx, OFFSET DGROUP:Msg mov bx, [bp+6] mov WORD PTR [bx], ax leave ret 2 QUACK ENDP END myequ EQU 3 myequal = 4 ; http://www.xploiter.com/mirrors/asm/asm_1.htm hllequal := 4 BYTE_BUFFER LABEL BYTE WORD_BUFFER DW 512 dup (?) mov bx, ax LabelMaker1: xor ax, ax LabelMaker2: mymacro macro args endm mystruct struct ends geany-2.1/tests/ctags/make-variable-on-cmdline.mak0000644000175000017500000000002715031717571017066 00000000000000fixme: cmd -g FOO=BAR geany-2.1/tests/ctags/make-target-with-parentheses.mak0000644000175000017500000000003515031717571020033 00000000000000$(obj)/raid6int1.c: F := 6 geany-2.1/tests/ctags/make-parentheses.mak0000644000175000017500000000010015031717571015567 00000000000000A=X.c B=Y.c $(A)-$(A:.c=.o): echo $@ ${B}-${B:.c=.o}: echo $@ geany-2.1/tests/ctags/make-multi-target.mak0000644000175000017500000000006415031717571015675 00000000000000 all: foo bar foo bar: baz echo $@ baz: echo $@ geany-2.1/tests/ctags/make-gnumake-pattern-rules.mak0000644000175000017500000000007515031717571017513 00000000000000%.o: %.c touch $@ %.p %.q: %.d touch $@ %a b%: touch $@ geany-2.1/tests/ctags/make-comment-in-rule.mak0000644000175000017500000000030015031717571016263 00000000000000# all this is one single rule all: a=1; echo "$$a" # foo b=2; echo "$$b" # foo c=3; echo "$$c" # foo d=4; echo "$$d" # foo e=5; echo "$$e" f=6; echo "$$f" # foo g=7; echo "$$g" geany-2.1/tests/ctags/macros.c0000644000175000017500000000031215031717571013276 00000000000000#define VARIABLE_LIKE some_value #define FUNCTION_LIKE(a,b) (a + b) #pragma weak WeakSymbol = StrongSymbol /* handling of spoofing macros */ MACRO(foo); void prototype __ARGS((int arg1, void *arg2)); geany-2.1/tests/ctags/local.c0000644000175000017500000000046515031717571013115 00000000000000main () { int a; int b = 3; a = 2; } static boolean isContextualKeyword (const tokenInfo *const token) { boolean result; label: goto label; switch (token->keyword) { case KEYWORD_UNION: result = TRUE; break; default: result = FALSE; break; } return result; } geany-2.1/tests/ctags/line_directives.c0000644000175000017500000000023415031717571015165 00000000000000/* ANSI format */ # line 10 "a.c" int a; /* GNU C format */ # 20 "b.c" int b; /* obsolete format */ # 30 c.c int c; /* invalid formats */ # 1 OK # 0 Not OK geany-2.1/tests/ctags/lanus.for0000644000175000017500000000342715031717571013512 00000000000000* From jlanus@netscape.net Thu Jan 16 20:38:12 2003 * Date: Tue, 24 Sep 2002 12:20:07 -0400 * From: Juan Lanus * To: ctags-users@lists.sourceforge.net * Subject: [Ctags] seeking for help to set ctags to work with old FORTRAN * * Hi * * I'm trying to set ctags to work with some old FORTRAN 77 programs. * I'm in Windows 2000, vim 6.1 and exuberant ctags 5.3.1. * The programs are for VAX FORTRAN 77 as of 1988. Written with tabs and 132 columns line length. * * [...] * * What am I doing wrong? This is my first contact with tags files of any sort and I'm vexed. * * A sample .DES file is included at the bottom. * * TIA * * Juan Lanus * TECNOSOL * Argentina * * **************** ********************************************************************* * * * Sistema Personalizado - descripcion de registros - CGA - 1/12/89 * * * * De tablas generales PERTAB012 - tabla 010 * * * ********************************************************************* character*6 FEC010 !Fecha de Proceso aa/mm/dd character*5 URE010 !Ultimo Numero de Pedido character*5 REM010 !Ultimo Numero de Remito character*5 FAC010 !Ultimo Numero de Factura character*40 PER010 !Registro de Fecha equivalence (PER010(1:1) ,FEC010(1:1)) equivalence (PER010(7:7) ,URE010(1:1)) equivalence (PER010(12:12),REM010(1:1)) equivalence (PER010(17:17),FAC010(1:1)) ****************** Fin Registro de Fecha *********************************** geany-2.1/tests/ctags/labels.sql0000644000175000017500000000015415031717571013635 00000000000000PROCEDURE outer_procedure IS BEGIN <> DECLARE x INTEGER; BEGIN END my_label; END geany-2.1/tests/ctags/keyword_volatile.cs0000644000175000017500000000023115031717571015560 00000000000000// csharp_volatile.cs class Test { public volatile int i; Test(int _i) { i = _i; } public static void Main() { } } geany-2.1/tests/ctags/keyword_virtual.cs0000644000175000017500000000256715031717571015445 00000000000000// cs_virtual_keyword.cs // Virtual and override using System; class TestClass { public class Dimensions { public const double pi = Math.PI; protected double x, y; public Dimensions() { } public Dimensions (double x, double y) { this.x = x; this.y = y; } public virtual double Area() { return x*y; } } public class Circle: Dimensions { public Circle(double r): base(r, 0) { } public override double Area() { return pi * x * x; } } class Sphere: Dimensions { public Sphere(double r): base(r, 0) { } public override double Area() { return 4 * pi * x * x; } } class Cylinder: Dimensions { public Cylinder(double r, double h): base(r, h) { } public override double Area() { return 2*pi*x*x + 2*pi*x*y; } } public static void Main() { double r = 3.0, h = 5.0; Dimensions c = new Circle(r); Dimensions s = new Sphere(r); Dimensions l = new Cylinder(r, h); // Display results: Console.WriteLine("Area of Circle = {0:F2}", c.Area()); Console.WriteLine("Area of Sphere = {0:F2}", s.Area()); Console.WriteLine("Area of Cylinder = {0:F2}", l.Area()); } } geany-2.1/tests/ctags/keyword_struct.cs0000644000175000017500000000113015031717571015264 00000000000000// keyword_struct.cs // struct declaration and initialization using System; public struct Point { public int x, y; public Point(int p1, int p2) { x = p1; y = p2; } } class MainClass { public static void Main() { // Initialize: Point myPoint = new Point(); Point yourPoint = new Point(10,10); // Display results: Console.Write("My Point: "); Console.WriteLine("x = {0}, y = {1}", myPoint.x, myPoint.y); Console.Write("Your Point: "); Console.WriteLine("x = {0}, y = {1}", yourPoint.x, yourPoint.y); } } geany-2.1/tests/ctags/keyword_static.cs0000644000175000017500000000215715031717571015241 00000000000000// cs_static_keyword.cs // Static members using System; public class Employee { public string id; public string name; public Employee () { } public Employee (string name, string id) { this.name = name; this.id = id; } public static int employeeCounter; public static int AddEmployee() { return ++employeeCounter; } } class MainClass: Employee { public static void Main() { Console.Write("Enter the employee's name: "); string name = Console.ReadLine(); Console.Write("Enter the employee's ID: "); string id = Console.ReadLine(); // Create the employee object: Employee e = new Employee (name, id); Console.Write("Enter the current number of employees: "); string n = Console.ReadLine(); Employee.employeeCounter = Int32.Parse(n); Employee.AddEmployee(); // Display the new information: Console.WriteLine("Name: {0}", e.name); Console.WriteLine("ID: {0}", e.id); Console.WriteLine("New Number of Employees: {0}", Employee.employeeCounter); } } geany-2.1/tests/ctags/keyword_sealed.cs0000644000175000017500000000046415031717571015206 00000000000000// cs_sealed_keyword.cs // Sealed classes using System; sealed class MyClass { public int x; public int y; } class MainClass { public static void Main() { MyClass mC = new MyClass(); mC.x = 110; mC.y = 150; Console.WriteLine("x = {0}, y = {1}", mC.x, mC.y); } } geany-2.1/tests/ctags/keyword_public.cs0000644000175000017500000000052515031717571015225 00000000000000// protected_public.cs // Public access using System; class MyClass1 { public int x; public int y; } class MyClass2 { public static void Main() { MyClass1 mC = new MyClass1(); // Direct access to public members: mC.x = 10; mC.y = 15; Console.WriteLine("x = {0}, y = {1}", mC.x, mC.y); } } geany-2.1/tests/ctags/keyword_protected.cs0000644000175000017500000000053415031717571015740 00000000000000// protected_keyword.cs using System; class MyClass { protected int x; protected int y; } class MyDerivedC: MyClass { public static void Main() { MyDerivedC mC = new MyDerivedC(); // Direct access to protected members: mC.x = 10; mC.y = 15; Console.WriteLine("x = {0}, y = {1}", mC.x, mC.y); } } geany-2.1/tests/ctags/keyword_private.cs0000644000175000017500000000101015031717571015407 00000000000000// private_keyword.cs using System; class Employee { public string name = "xx"; double salary = 100.00; // private access by default private int not_visible = 3; // strangely, not in original example public double AccessSalary() { return salary; } } class MainClass { public static void Main() { Employee e = new Employee(); // Accessing the public field: string n = e.name; // Accessing the private field: double s = e.AccessSalary(); } } geany-2.1/tests/ctags/keyword_params.cs0000644000175000017500000000112015031717571015222 00000000000000// cs_params.cs using System; public class MyClass { public static void UseParams(params int[] list) { for ( int i = 0 ; i < list.Length ; i++ ) Console.WriteLine(list[i]); Console.WriteLine(); } public static void UseParams2(params object[] list) { for ( int i = 0 ; i < list.Length ; i++ ) Console.WriteLine((object)list[i]); Console.WriteLine(); } public static void Main() { UseParams(1, 2, 3); UseParams2(1, 'a', "test"); int[] myarray = new int[3] {10,11,12}; UseParams(myarray); } } geany-2.1/tests/ctags/keyword_override.cs0000644000175000017500000000146215031717571015567 00000000000000// cs_override_keyword.cs // Calling overriden methods from the base class using System; class TestClass { public class Square { public double x; // Constructor: public Square(double x) { this.x = x; } public virtual double Area() { return x*x; } } class Cube: Square { // Constructor: public Cube(double x): base(x) { } // Calling the Area base method: public override double Area() { return (6*(base.Area())); } } public static void Main() { double x = 5.2; Square s = new Square(x); Square c = new Cube(x); Console.WriteLine("Area of Square = {0:F2}", s.Area()); Console.WriteLine("Area of Cube = {0:F2}", c.Area()); } } geany-2.1/tests/ctags/keyword_out.cs0000644000175000017500000000045415031717571014557 00000000000000// cs_out.cs using System; public class MyClass { public static int TestOut(out char i) { i = 'b'; return -1; } public static void Main() { char i; // variable need not be initialized Console.WriteLine(TestOut(out i)); Console.WriteLine(i); } } geany-2.1/tests/ctags/keyword_names.f900000644000175000017500000000062315031717571015042 00000000000000! For some reason, the Fortran standard does not prohibit this... module Program type Data integer :: contents end type Data integer :: i interface Program function myFunc(arg) !... end function myFunc end interface Program contains function MyFunc(arg) ! ... end function MyFunc end module Program program Interface use Program ! ... end program Interface geany-2.1/tests/ctags/keyword_namespace.cs0000644000175000017500000000104715031717571015703 00000000000000// cs_namespace_keyword.cs using System; namespace SomeNameSpace { public class MyClass { public static void Main() { Nested.NestedNameSpaceClass.SayHello(); } } namespace Nested // a nested namespace { public class NestedNameSpaceClass { public static void SayHello() { Console.WriteLine("Hello"); } } } } // namespace can nest multiple levels at once. namespace SomeNameSpace.Nested { public class AlternativeNestedNameSpaceClass { } } geany-2.1/tests/ctags/keyword_interface.cs0000644000175000017500000000163615031717571015713 00000000000000// keyword_interface.cs // Interface implementation using System; interface IPoint { // Property signatures: int x { get; set; } int y { get; set; } } class MyPoint : IPoint { // Fields: private int myX; private int myY; // Constructor: public MyPoint(int x, int y) { myX = x; myY = y; } // Property implementation: public int x { get { return myX; } set { myX = value; } } public int y { get { return myY; } set { myY = value; } } } class MainClass { private static void PrintPoint(IPoint p) { Console.WriteLine("x={0}, y={1}", p.x, p.y); } public static void Main() { MyPoint p = new MyPoint(2,3); Console.Write("My Point: "); PrintPoint(p); } } geany-2.1/tests/ctags/keyword_implicit.cs0000644000175000017500000000106015031717571015554 00000000000000// cs_keyword_implicit.cs using System; struct Digit { byte value; public Digit(byte value) { if (value < 0 || value > 9) throw new ArgumentException(); this.value = value; } // define implicit Digit-to-byte conversion operator: public static implicit operator byte(Digit d) { Console.WriteLine( "conversion occurred" ); return d.value; } } class Test { public static void Main() { Digit d = new Digit(3); // implicit (no cast) conversion from Digit to byte byte b = d; } } geany-2.1/tests/ctags/keyword_extern.cs0000644000175000017500000000057615031717571015262 00000000000000using System; using System.Runtime.InteropServices; class MyClass { [DllImport("User32.dll")] public static extern int MessageBox(int h, string m, string c, int type); public static int Main() { string myString; Console.Write("Enter your message: "); myString = Console.ReadLine(); return MessageBox(0, myString, "My Message Box", 0); } } geany-2.1/tests/ctags/keyword_explicit.cs0000644000175000017500000000100315031717571015560 00000000000000// cs_keyword_explicit.cs using System; struct Digit { byte value; public Digit(byte value) { if (value<0 || value>9) throw new ArgumentException(); this.value = value; } // define explicit byte-to-Digit conversion operator: public static explicit operator Digit(byte b) { Console.WriteLine("conversion occurred"); return new Digit(b); } } class Test { public static void Main() { byte b = 3; Digit d = (Digit)b; // explicit conversion } } geany-2.1/tests/ctags/keyword_event.cs0000644000175000017500000000645015031717571015073 00000000000000// event_keyword.cs using System; public delegate void MyDelegate(); // delegate declaration public interface I { event MyDelegate MyEvent; void FireAway(); } public class MyClass: I { public event MyDelegate MyEvent; public void FireAway() { if (MyEvent != null) MyEvent(); } } public class MainClass { static private void f() { Console.WriteLine("This is called when the event fires."); } static public void Main () { I i = new MyClass(); i.MyEvent += new MyDelegate(f); i.FireAway(); } } // event_keyword2.cs using System; using System.Collections; public delegate void MyDelegate1(int i); public delegate void MyDelegate2(string s); public delegate void MyDelegate3(int i, object o); public delegate void MyDelegate4(); public class PropertyEventsSample { private Hashtable eventTable = new Hashtable(); public event MyDelegate1 Event1 { add { eventTable["Event1"] = (MyDelegate1)eventTable["Event1"] + value; } remove { eventTable["Event1"] = (MyDelegate1)eventTable["Event1"] - value; } } public event MyDelegate1 Event2 { add { eventTable["Event2"] = (MyDelegate1)eventTable["Event2"] + value; } remove { eventTable["Event2"] = (MyDelegate1)eventTable["Event2"] - value; } } public event MyDelegate2 Event3 { add { eventTable["Event3"] = (MyDelegate2)eventTable["Event3"] + value; } remove { eventTable["Event3"] = (MyDelegate2)eventTable["Event3"] - value; } } public event MyDelegate3 Event4 { add { eventTable["Event4"] = (MyDelegate3)eventTable["Event4"] + value; } remove { eventTable["Event4"] = (MyDelegate3)eventTable["Event4"] - value; } } public event MyDelegate3 Event5 { add { eventTable["Event5"] = (MyDelegate3)eventTable["Event5"] + value; } remove { eventTable["Event5"] = (MyDelegate3)eventTable["Event5"] - value; } } public event MyDelegate4 Event6 { add { eventTable["Event6"] = (MyDelegate4)eventTable["Event6"] + value; } remove { eventTable["Event6"] = (MyDelegate4)eventTable["Event6"] - value; } } } public class MyClass { public static void Main() { } } // event_keyword3.cs using System; public delegate void MyDelegate1(); public interface I1 { event MyDelegate1 MyEvent; } public delegate int MyDelegate2(string s); public interface I2 { event MyDelegate2 MyEvent; } public class ExplicitEventsSample: I1, I2 { public event MyDelegate1 MyEvent; // normal implementation of I1.MyEvent. event MyDelegate2 I2.MyEvent // explicit implementation of I2.MyEvent { add { MyEvent2Storage += value; } remove { MyEvent2Storage -= value; } } private MyDelegate2 MyEvent2Storage; // underlying storage for I2.MyEvent. private void FireEvents() { if (MyEvent != null) MyEvent(); if (MyEvent2Storage != null) MyEvent2Storage("hello"); } } public class MyClass { public static void Main() { } } geany-2.1/tests/ctags/keyword_enum.cs0000644000175000017500000000125315031717571014712 00000000000000// C# Programmer's Reference: enum // keyword_enum.cs // enum initialization: using System; public class EnumTest { enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri}; public static void Main() { int x = (int) Days.Sun; int y = (int) Days.Fri; Console.WriteLine("Sun = {0}", x); Console.WriteLine("Fri = {0}", y); } } // keyword_enum2.cs // Using long enumerators using System; public class EnumTest { enum Range :long {Max = 2147483648L, Min = 255L}; public static void Main() { long x = (long) Range.Max; long y = (long) Range.Min; Console.WriteLine("Max = {0}", x); Console.WriteLine("Min = {0}", y); } } geany-2.1/tests/ctags/keyword_delegate.cs0000644000175000017500000000216315031717571015521 00000000000000// keyword_delegate.cs // delegate declaration delegate void MyDelegate(int i); class Program { public static void Main() { TakesADelegate(new MyDelegate(DelegateFunction)); } public static void TakesADelegate(MyDelegate SomeFunction) { SomeFunction(21); } public static void DelegateFunction(int i) { System.Console.WriteLine("Called by delegate with number: {0}.", i); } } // // keyword_delegate2.cs // Calling both static and instance methods from delegates using System; // delegate declaration delegate void MyDelegate(); public class MyClass { public void InstanceMethod() { Console.WriteLine("A message from the instance method."); } static public void StaticMethod() { Console.WriteLine("A message from the static method."); } } public class MainClass { static public void Main() { MyClass p = new MyClass(); // Map the delegate to the instance method: MyDelegate d = new MyDelegate(p.InstanceMethod); d(); // Map to the static method: d = new MyDelegate(MyClass.StaticMethod); d(); } } geany-2.1/tests/ctags/keyword_const.cs0000644000175000017500000000100115031717571015063 00000000000000// const_keyword.cs // Constants using System; public class ConstTest { class MyClass { public int x; public int y; public const int c1 = 5; public const int c2 = c1 + 5; public MyClass(int p1, int p2) { x = p1; y = p2; } } public static void Main() { MyClass mC = new MyClass(11, 22); Console.WriteLine("x = {0}, y = {1}", mC.x, mC.y); Console.WriteLine("c1 = {0}, c2 = {1}", MyClass.c1, MyClass.c2 ); } } geany-2.1/tests/ctags/keyword_class.cs0000644000175000017500000000164715031717571015062 00000000000000// keyword_class.cs // class example using System; public class Kid { private int age; private string name; // Default constructor: public Kid() { name = "N/A"; } // Constructor: public Kid(string name, int age) { this.name = name; this.age = age; } // Printing method: public void PrintKid() { Console.WriteLine("{0}, {1} years old.", name, age); } } public class MainClass { public static void Main() { // Create objects // Objects must be created using the new operator: Kid kid1 = new Kid("Craig", 11); Kid kid2 = new Kid("Sally", 10); // Create an object using the default constructor: Kid kid3 = new Kid(); // Display results: Console.Write("Kid #1: "); kid1.PrintKid(); Console.Write("Kid #2: "); kid2.PrintKid(); Console.Write("Kid #3: "); kid3.PrintKid(); } } geany-2.1/tests/ctags/keyword_catch_try.cs0000644000175000017500000000111715031717571015725 00000000000000// Ordering catch clauses using System; class MyClass { public static void Main() { MyClass x = new MyClass(); try { string s = null; x.MyFn(s); } // Most specific: catch (ArgumentNullException e) { Console.WriteLine("{0} First exception caught.", e); } // Least specific: catch (Exception e) { Console.WriteLine("{0} Second exception caught.", e); } } public void MyFn(string s) { if (s == null) throw new ArgumentNullException(); } } geany-2.1/tests/ctags/keyword_abstract.cs0000644000175000017500000000153315031717571015552 00000000000000// abstract_keyword.cs // Abstract Classes using System; abstract class MyBaseC // Abstract class { protected int x = 100; protected int y = 150; public abstract void MyMethod(); // Abstract method public abstract int GetX // Abstract property { get; } public abstract int GetY // Abstract property { get; } } class MyDerivedC: MyBaseC { public override void MyMethod() { x++; y++; } public override int GetX // overriding property { get { return x+10; } } public override int GetY // overriding property { get { return y+10; } } public static void Main() { MyDerivedC mC = new MyDerivedC(); mC.MyMethod(); Console.WriteLine("x = {0}, y = {1}", mC.GetX, mC.GetY); } } geany-2.1/tests/ctags/jsFunc_tutorial.js0000644000175000017500000002564315031717571015375 00000000000000 /* * These samples were retrieved from this website: * http://www.permadi.com/tutorial/jsFunc/ * * This the output you should see from running: * ctags -f - Test/jsFunc_tutorial.js * functions * Ball1 * Ball3 * D1 * D2 * D2A * D3 * D4 * D5 * DT1 * DT2 * DT2A * DT3 * PT1 * calculate8 * getHalfOf7 * getHalfOf7.calculate * getHalfOf8 * getSalaryFunctionDT9 * myFunction4 * myFunction5 * myFunction6 * myFunction6A * myFunction6AE * myFunction6B * myFunction6E * myObject.add * savedFunc6B * sayName4A * theAdd * classes * DT4 * DT5 * DT6 * DT7 * DT7A * DT8 * DT9 * PT2 * PT3 * addSalaryFunction * addSalaryFunctionDT9 * methods * DT7.getSalary * DT7A.getSalary * DT8.getSalary * PT2.livesIn * PT2.price * PT3.addSalary * PT3.getSalary * variables * my_global_var1 */ // Example D1 function D1(a, b) { return a+b; } alert(D1(1,2)); // produces 3 var my_global_var1 = 'global'; // Example D2 var D2=function(a, b) { return a+b; } alert(D2(1,2)); // produces 3 // Example D2A var D2A=function theAdd(a, b) { return a+b; } alert(D2A(1,2)); // produces 3 alert(theAdd(1,2)); // also produces 3 var myObject=new Object(); myObject.add=function(a,b){return a+b}; // myObject now has a property/a method named "add" // and I can use it like below myObject.add(1, 2); // Example D3 var D3=new Function("a", "b", "return a+b;"); alert(D3(3,4)); // produces 7 // Example D4 var D4=new Function("a", "b", // separate string using "\" "('adding '+a+' and ' +b);\ return a+b;"); alert(D4(3,4)); // produces 7 // Example D5 function D5(myOperator) { return new Function("a", "b", "return a" + myOperator + "b;"); } var add=D5("+"); // creates "add" function var subtract=D5("-"); // creates "subtract" function var multiply=D5("*"); // created "multiply" function // test the functions alert("result of add="+add(10,2)); // result is 12 alert("result of subtract="+subtract(10,2)); // result is 8 alert("result of multiply="+multiply(10,2)); // result is 20 alert(add); // Example 1 function Ball1() // it may seem odd, but this declaration { // creates a object named Ball i=1; } alert(typeof Ball1); // produces "function" // Example 3 function Ball3() // it may seem odd, but declaration { // creates an object named Ball, and you can } // refer to it or add properties to it like below Ball3.callsign="The Ball"; // add property to Ball alert(Ball3.callsign); // produces "The Ball" // Example 4 function myFunction4(message) { alert(message); } var ptr=myFunction4; // ptr points to myFunction ptr("hello"); // executes myFunction which will prints "hello" // Example 4A function sayName4A(name) { alert(name); } var object1=new Object(); // creates 3 objects var object2=new Object(); var object3=new Object(); object1.sayMyName4A=sayName; // assign the function to all objects object2.sayMyName4A=sayName; object3.sayMyName4A=sayName; object1.sayMyName4A("object1"); // prints "object1" object2.sayMyName4A("object2"); // prints "object2" object3.sayMyName4A("object3"); // prints "object3" // Example 5 function myFunction5() { alert(myFunction.message); } myFunction5.message="old"; var ptr1=myFunction5; // ptr1 points to myFunction var ptr2=myFunction5; // ptr2 also points to myFunction ptr1(); // prints "old" ptr2(); // prints "old" myFunction5.message="new"; ptr1(); // prints "new" ptr2(); // prints "new" //Example 6: function myFunction6() { alert("Old"); } myFunction6(); // prints "Old" myFunction6E=function() { alert("New"); }; myFunction6E(); // prints "New" //Example 6A: function myFunction6A() { alert("Old"); } var savedFunction=myFunction6A; myFunction6AE=function() { alert("New"); }; myFunction6AE(); // prints "New" savedFunction(); // printf "Old" //Example 6B: function myFunction6B() { alert("Old"); } var savedFunc=myFunction6B; savedFunc6B=function() { alert("New"); }; myFunction6B(); // prints "Old" savedFunc6B(); // prints "New" // Example 7 function getHalfOf7(num1, num2, num3) { function calculate(number) { return number/2; } var result=""; result+=calculate(num1)+" "; result+=calculate(num2)+" "; result+=calculate(num3); } var resultString=getHalfOf7(10,20,30); alert(resultString); // prints "5 10 15" // Example 8 function calculate8(number) { return number/3; } function getHalfOf8(num1, num2, num3) { function calculate(number) { return number/2; } var result=""; result+=calculate(num1)+" "; result+=calculate(num2)+" "; result+=calculate(num3); } var resultString=getHalfOf8(10,20,30); alert(resultString); // prints "5 10 15" // Example DT1 function DT1() { } var ball0=new DT1(); // ball0 now points to a new object alert(ball0); // prints "Object" because ball0 is now an Object // Example DT2 function DT2(message) { alert(message); } var ball1=new DT2("creating new Ball"); // creates object & // prints the message ball1.name="ball-1"; // ball0 now has a "name" property alert(ball1.name); // prints "ball-0" // Example DT2A function DT2A(message) { alert(message); } var ball2=new Object(); ball2.construct=DT2A; ball2.construct("creating new ball2"); // executes ball0.Ball("creating.."); ball2.name="ball-2"; alert(ball2.name); // Example DT3 (creates 3 ball objects) function DT3() { } var ball3=new DT3(); // ball0 now points to a new instance of type Ball ball3.name="ball-3"; // ball0 now has a "name" property var ball4=new DT3(); ball4.name="ball-4"; var ball5=new DT3(); alert(ball0.name); // prints "ball-0" alert(ball1.name); // prints "ball-1" alert(ball2.name); // oops, I forgot to add "name" to ball2! // Example DT4 function DT4(message, specifiedName) { alert(message); this.name=specifiedName; } var ball6=new DT4("creating new Ball", "Soccer Ball"); alert(ball6.name); // prints "Soccer Ball" // Example DT5 function DT5(color, specifiedName, owner, weight) { this.name=specifiedName; this.color=color; this.owner=owner; this.weight=weigth; } var ball7=new DT5("black/white", "Soccer Ball", "John", 20); var ball8=new DT5("gray", "Bowling Ball", "John", 30); var ball9=new DT5("yellow", "Golf Ball", "John", 55); var balloon=new DT5("red", "Balloon", "Pete", 10); alert(ball7.name); // prints "Soccer Ball" alert(balloon.name); // prints "Balloon" alert(ball9.weight); // prints "55" // Example DT6 function DT6(name, salary, mySupervisor) { this.name=name; this.salary=salary; this.supervisor=mySupervisor; } var boss=new DT6("John", 200); var manager=new DT6("Joan", 50, boss); var teamLeader=new DT6("Rose", 50, boss); alert(manager.supervisor.name+" is the supervisor of "+manager.name); alert(manager.name+"\'s supervisor is "+manager.supervisor.name); // Example DT7 function DT7(name, salary) { this.name=name; this.salary=salary; this.addSalary=addSalaryFunction; this.getSalary=function() { return this.salary; }; } function addSalaryFunction(addition) { this.salary=this.salary+addition; } var boss=new DT7("John", 200000); boss.addSalary(10000); // boss gets 10K raise alert(boss.getSalary()); // print 210K function DT7A(name, salary) { this.name=name; this.salary=salary; this.addSalary=addSalaryFunction; this.getSalary=function() { return this.salary; }; } function addSalaryFunction(addition) { this.salary=this.salary+addition; } var boss=new DT7A("John", 200000); var boss2=new DT7A("Joan", 200000); var boss3=new DT7A("Kim", 200000); // Example DT8 function DT8(name, salary) { this.name=name; this.salary=salary; this.addSalary=addSalaryFunction; this.getSalary=function() { return this.salary; }; } function addSalaryFunction(addition) { this.salary=this.salary+addition; } var boss1=new DT8("John", 200000); var boss2=new DT8("Joan", 200000); // add properties to getSalary function object. boss1.getSalary.owner="boss1"; boss2.getSalary.owner="boss2"; alert(boss1.getSalary.owner); // prints "boss1" alert(boss2.getSalary.owner); // prints "boss2" // if both objects are pointing to the same function object, then // both output above should have printed "boss2". // add properties to addSalary function object. boss1.addSalary.owner="boss1"; boss1.addSalary.owner="boss2"; alert(boss1.addSalary.owner); // prints "boss2" alert(boss2.addSalary.owner); // prints "boss2" // since both objects are not pointing to the same function, // then changes in one, affects all instances (so, both prints "boss2"). // Example DT9 function DT9(name, salary) { this.name=name; this.salary=salary; this.addSalary=addSalaryFunctionDT9; this.getSalary=getSalaryFunctionDT9; } function getSalaryFunctionDT9() { return this.salary; } function addSalaryFunctionDT9(addition) { this.salary=this.salary+addition; } // Example PT1 function PT1() { } alert(PT1.prototype); // prints "Object" // Example PT2 function PT2(name, color) { this.name=name; this.color=color; } PT2.prototype.livesIn="water"; PT2.prototype.price=20; // Example PT3 function PT3(name, salary) { this.name=name; this.salary=salary; } PT3.prototype.getSalary=function getSalaryFunction() { return this.salary; } PT3.prototype.addSalary=function addSalaryFunction(addition) { this.salary=this.salary+addition; } geany-2.1/tests/ctags/julia-corner_cases.jl0000644000175000017500000002427615031717571015764 00000000000000#= Julia syntax highlighting test. Modified from https://github.com/JuliaEditorSupport/julia-syntax-test-cases This file derives from https://gist.github.com/Wilfred/f1aca44c61ed6e1df603 whose author is [@Wilfred](https://github.com/Wilfred). @Wilfred has put it in the public domain: https://gist.github.com/Wilfred/f1aca44c61ed6e1df603#gistcomment-2948526 Changes from the original are governed by the license of the repository in which this file is found. This file is designed to test various corner cases of Julia syntax highlighting. =# baremodule Mod1 # Nothing here end module Mod2 # Here neither end ## Simple function definitions. # Expected: `function` should be highlighted, as should `foo_bar!`. function foo_bar!(x,y) x + y + 1 end # Expected: `foo_bar!` should be highlighted. foo_bar!(x,y) = x + y # Expected: `foo` should be highlighted. Baz.foo(x) = 1 # Expected: `foo` should be highlighted. foo(x::(Int,)) = 1 # Expected: `foo` should be highlighted. foo(x, y=length(x)) ## Function definitions in namespaces. # Expected: `bar` should be highlighted. function Foo.bar(x, y) x + 1 end ## Function definitions with type variables. # Expected: `elsize` should be highlighted. elsize(::AbstractArray{T}) where {T} = sizeof(T) function elsize(::AbstractArray{T}) where T sizeof(T) end ## Nested brackets in function definitions. # Expected: `cell` should be highlighted. cell(dims::(Integer...)) = Array(Any, convert((Int...), dims)) # TODO: find an example with a nested type expression. ## Macro usage # Expected: `@hello_world!` should be highlighted. @hello_world! foo # Expected: highlight `myfun` @inline myfun() = println("myfun") ## Builtin functions. # Expected: `throw`, `error` and `super` should not be highlighted. There are # too many built-in functions for this to be useful. # https://github.com/JuliaLang/julia/commit/134867c69096fcb52afa5d5a7433892b5127e981 # https://github.com/JuliaLang/julia/pull/7963#issuecomment-52586261 throw(foo) error("foo", bar, "baz") super(Int) ## Strings # Expected: highlight the string. x = "foo \"bar\" baz" # Expected: highlight the whole string. x = "foo bar" # Expected: highlight the whole triple-quoted string. x = """hello "world" foobar""" y = """foo\\""" z = """bar\"""" w = """"bar""" # Expected: highlight `$user` x = "hello $user" # Expected: don't highlight `$user` x = "hello \$user" # Expected: highlight `$val` x = """(a="$val")""" # Expected: treat r as part of the string, so `r"a"` is highlighted. x = r"0.1" # Expected: treat ismx as part of the string, so `r"a"ismx` is highlighted. x = r"a"ismx # Expected: highlight `r"""a "b" c"""` x = r"""a "b" c""" # Expected: treat v as part of the string, so `v"0.1"` is highlighted. x = v"0.1" # Expected: treat b as part of the string, so `b"a"` is highlighted. x = b"a" # Bonus points: # Expected: highlight the interpolation brackets `$(` and `)` x = "hello $(user * user)" # Bonus points: # Expected: highlight regexp metacharacters `[` and `]` x = r"[abc]" # Bonus points: # Expected: highlight escape sequences `\xff` and `\u2200` x = b"DATA\xff\u2200" # Bonus points: # Expected: don't highlight `$user` x = raw"hello $user" ## Characters # Expected: highlight the character. x = 'a' y = '\u0' z = '\U10ffff' w = '\x41' a = ' ' b = '"' c = ''' d = '\'' e = '\\' # Expected: don't highlight, as ' is an operator here, not a character delimiter. a = b' + c' A''' # Bonus points: # Expected: don't highlight the character x = 'way too long so not a character' x = '' ## Comments # Expected: highlight `# foo` # foo # Expected: highlight `#= foo\n bar =#` #= foo bar =# # Expected: highlight `#= #= =# =#` (comments can nest). #= #= =# =# # Expected: highlight `'` as adjoint operator A#==#' (A)#==#' A[1]#==#' ## Type declarations # Expected highlight `Foo` and `Bar` mutable struct Foo x::Bar end # Expected highlight `Foo` and `Bar` struct Foo x::Bar end # Expected: highlight `Foo` and `Bar` abstract type Foo <: Bar end # Expected: don't highlight x or y x <: y ## Type annotations # Expected: highlight `FooBar` f(x::FooBar) = x # Expected: highlight `Int8` function foo() local x::Int8 = 5 x end # Expected: highlight `Point` and `Real` as types function norm(p::Point{<:Real}) sqrt(p.x^2 + p.y^2) end # Expected: highlight `g` as function and `Int8` as type function g(x, y)::Int8 return x * y end # Expected: highlight `T` and `Number` same_type_numeric(x::T, y::T) where {T <: Number} = true same_type_numeric(x::T, y::T) where T = false ## Parametric type declaration # Expected: highlight `Pointy` and `T` abstract type Pointy{T} end # Expected: highlight `Point`, `Pointy` and `T` struct Point{T} <: Pointy{T} x::T y::T end ## Variable declarations # Expected: highlight `x` and `y` global x = "foo, bar = 2", y = 3 # Expected: highlight `x` and `y` global x = foo(a, b), y = 3 # Expected: highlight `y` const y = "hello world" # Expected: highlight `x` and `y` function foo() local x = f(1, 2), y = f(3, 4) x + y end # Expected: highlight `x` and `y` let x = f(1, 2), y = f(3, 4) x + y end ## Colons and end # Expected: highlight `:foo`, `:end` and `:function` :foo x = :foo y = :function z = :end # Expected: highlight index `[end]` differently to block delimiter `end` if foo[end] end # Expected: highlight as index `end` foo[bar:end] # Expected: highlight as index `begin` foo[begin:4] # Expected: don't highlight `:123` x = :123 # Expected: don't highlight `:baz` foo[bar:baz] # Expected: highlight `:baz` foo[:baz] # Expected: highlight both `:baz` foo(:baz,:baz) # Note that `: foo` is currently a valid quoted symbol, this will hopefully # change in 0.4: https://github.com/JuliaLang/julia/issues/5997 # Expected: highlight `:foo` [1 :foo] # Expected: highlight `:end` [1 :end] # Expected: highlight `:two` @eval :one+:two # Expected: don't highlight `:end` but `end` as index [(1+1):end] # Expected: don't highlight `:end` but `end` as index [a[1]:end] # Expected: don't highlight `:foo` for x=1:foo print(x) end ## Range detection # Bonus points: # Expected: don't highlight `:s2` push!(a, s1 :s2) # Bonus points: # Expected: don't highlight `:end` a[begin :end] ## Expression evaluation # Expected: highlight `:` as operator a = :(x = 2) # Expected: highlight `:call` and `:b` as symbols # Debatable: highlight `:+` as operator ex = Expr(:call, :+, a, :b) ## Number highlighting # Expected: highlight all these as numbers x = 123 x = 1.1 x = .5 x = 0x123abcdef x = 0o7 x = 0b1011 x = 2.5e-4 x = 2.5E-4 x = 1e+00 x = 2.5f-4 x = 0x.4p-1 x = 1_000 # Expected: highlight these as numbers or built-ins x = Inf x = NaN # Expected: highlight `123`, not the letter y = 123x y = 123e # Expected: highlight `1e+1` and `1e-1` 1e+1+1e-1 # Expected: highlight `1.` and `.1` 1. +.1 # Note that `1.+1` is currently ambiguous and gives an error # Bonus points: # Expected: don't highlight `..` x = 1..3 # Bonus points: # Debatable: highlight the first two digits, not the following digits # or show an error x = 0o1291 x = 0b1091 # Debatable: highlight `π` as a number or built-in # (note that `πx` is a single symbol, not `π * x`) x = π ## List comprehension # Expected: highlight `for` and `if` without the `end` keyword [i for i in 1:5 if i%2==0] ## Broadcasting # Expected: highlight `.+` as operator a.+1 ## Command # Expected: highlight "`echo 1`" c = `echo 1` # Expected: highlight "```echo `hello 1` ```" c = ```echo `hello 1` ``` # Expected: highlight "raw`echo $1`" c = raw`echo $1` ## Non-standard identifiers # Bonus points: # Expected: highlight `var"##"` as a function function var"##"(x) println(x) end # Bonus points: # Expected: highlight `var"%%"` as a function var"%%"(x) = println(x) # Bonus points: # Expected: highlight `$var` as string and `##""` as comment "$var"##"" # Bonus points: # Expected: highlight `$(var")(")` as string interpolation "$(var")(")" # Bonus points: # Expected: highlight `'` as adjoint operator var"##mat"' ## Code folding: for and if in list comprehension # Expected: fold between function and last end function test(x) a = (if x; 0 else 1 end) println(a) end ## Default struct attributes Base.@kwdef struct Test a::Float64 = 1E12 b::Float64 = pi end ## Parametric constructors struct OurRational{T<:Integer} <: Real "Numerator" num::T "Denominator" den::T OurRational{Int8}(num::T, den::T) where T<:Integer = new(convert(Int8, num), convert(Int8, den)) """ Parametric inner constructor """ function OurRational{T}(num::T, den::T) where T<:Integer if num == 0 && den == 0 error("invalid rational: 0//0") end # Bug with short function misidentification of == and => length(num) == 0 length(den) => 0 g = gcd(den, num) num = div(num, g) den = div(den, g) new(num, den) end test::T OurRational{Int64}(num::T, den::T, test::T) where T<:Integer = new(num, den, test) end OurRational{Int16}(num::T, den::T) where T<:Integer = new(num, den) ## Import modules using Module1 using Module2: func1, func2 import Module3 import Module4.func1, Module5, Module6.func2 import Module7: func1, func2 module MyModule using Module8, Module9, Module10 using Module11: func1, func2, func3 end import Base.show, # Base.print as pr, Base.* #using Module12: func1, func2 as alias2, func3 using Module13: func1, # func2 as alias2, func3 #import Module14 as Alias12 ## Function scope module MyModule function func3(a::Int) a end function func4(a::Int) function func5(b::Int) b end func5(a) end end ## Docstring """ This is a test docstring with multiple lines. """ function test_docstring end geany-2.1/tests/ctags/js-unknown-construct-nesting.js0000644000175000017500000000041515031717571020010 00000000000000 var o = { aa: function () { foo: { return ; } }, bb: function (a) { switch (a) { case 1: if (1) { return 32 } break; case 2: return 31; } return 1; }, cc: function() {} }; geany-2.1/tests/ctags/js-sub-block-scope.js0000644000175000017500000000032715031717571015614 00000000000000 function parent() { function foo() { if (test) { function hello() { } } else { function hi() { } } } function bar() { function hello2() {} function hi2() {} } } geany-2.1/tests/ctags/js-string-continuation.js0000644000175000017500000000026115031717571016637 00000000000000 var o = { "first": function(){}, "sec\ ond": function(){}, "\ t\ h\ i\ r\ d\ ": function(){}, "fourth": function(){}, }; o.first(); o.second(); o.third(); o.fourth(); geany-2.1/tests/ctags/js-signature.js0000644000175000017500000000101115031717571014614 00000000000000 function f1() { } function f2(arg1, arg2) { } function f3( arg1, // first arg2, // second arg3 // last ) { // ... } function f4(a, b, c) { } function Cls(name) { this.name = name; } Cls.prototype = { get_name: function() { return this.name; }, set_name: function(name) { this.name = name; }, } Cls.prototype.hello = function(tpl) { if (tpl == undefined) tpl = "hello {}"; return tpl.replace ('{}', this.name); } main = function() { c = new Cls("John"); print(c.hello()); } main(); geany-2.1/tests/ctags/js-scope.js0000644000175000017500000000037215031717571013735 00000000000000 function A() { this.a = 1; } A.prototype = { m1 : function() { this.a = 2; foo.bar.baz.hello(1); foo.bar.baz.hello(2); foo.bar.baz.hello(3); }, m2: function() { return this.a; }, }; geany-2.1/tests/ctags/js-let.js0000644000175000017500000000012415031717571013403 00000000000000let a = 1; let b = 0; let group = { x:1, y:1, z:1, }; let func = function(){} geany-2.1/tests/ctags/js-implicit-semicolons.js0000644000175000017500000000044215031717571016605 00000000000000var a = 1 var b = function(){} function c() {} var d = {} function e() {} var f = [] function g() {} var h = (1) function i() {} do { } while(0) function j() {} var k = new Function('a','b','return a+b') function l() {} var m = 0 // a single comment doesn't eat the newline function n() {} geany-2.1/tests/ctags/js-const.js0000644000175000017500000000013715031717571013751 00000000000000 const A = 1; const B = 1; const Group = { X:1, Y:2, Z:3 }; const func = function () {} geany-2.1/tests/ctags/js-class-related-unterminated.js0000644000175000017500000000217015031717571020042 00000000000000 var Cls = { // add a member just so Cls is recognized as a class from the start A: {} } Cls.B = function(a, b) { this.a = a; this.b = b; } Cls.B.Sub = function() { this.a = 0 } Cls.B.prototype.m1 = function(a) { this.a = a; if (a > 2) { this.a *= 2 } } Cls.B.prototype.m2 = function(b) { var a = b } Cls.B.prototype.m3 = function(c) { this.c = c } Cls.B.prototype.m4 = function(d) { this.d = d } Cls.B.prototype.m5 = function(e) { /* this should rather be written `Cls.B.Sub.prototype.dyn1 = this.m6`, but * then parser then thinks it's a child of this very scope. it isn't really * possible to fix this as the only reason it's actually not a child of the * current scope is because it exists in the root scope but not in this one */ var Sub = Cls.B.Sub; Sub.prototype.dyn1 = this.m4 } Cls.B.prototype.m6 = function(f) { } Cls.C = function () { this.a = 0; } Cls.C.prototype = { n1: function() { Cls.C.prototype = Cls.C.prototype }, n2: function() { } } function main() { var c = new Cls.B(1, 2); var d = new Cls.B.Sub(); print(d.dyn1); c.m5(); print(d.dyn1); } main(); geany-2.1/tests/ctags/js-broken-strings.js0000644000175000017500000000053115031717571015570 00000000000000// this file willfully uses CR-LF line endings to check their handling var s1 = "I'm invalid because not terminated var s2 = "I'm valid, I have a line continuation:\ ; function bug1(){}"; var s3 = "I'm invalid because I'm not terminated either \ var bug2 = 'this is inside the s3 string' var s4 = 'this is a separate, valid string' geany-2.1/tests/ctags/java_enum.java0000644000175000017500000000037215031717571014464 00000000000000public class C { public enum TrivialEnum { FIRST_VALUE, SECOND_VALUE } public enum FancyEnum { A(1), B(2); private int i; FancyEnum(int i) { this.i = i; } void m() { } } public enum FancyEnum2 { X, Y; void m2() { } } } geany-2.1/tests/ctags/invalid_name.f900000644000175000017500000000061115031717571014616 00000000000000! Test of parsing type with invalid name Module TR_DetectionRecording Implicit None Save Integer :: DR_Lun Character*1024 DR_Filename Type Detection_Record Integer(2) :: Activity Integer(2) :: Type ! "Type" not valid entity name Integer(2) :: Face End Type Detection_Record End Module TR_DetectionRecording geany-2.1/tests/ctags/intro.tex0000644000175000017500000000320715031717571013531 00000000000000% http://sip.clarku.edu/tutorials/TeX/intro.html \documentclass[12pt]{article} \usepackage{amsmath} % need for subequations \chapter{chapter text} \include{chapter1-intro.inc} \section{section1 text} It is desirable to print program code exactly as it is typed in a monospaced font. Use \verb \begin{verbatim} and \section{Introduction} \part{Part1} It is desirable to print program code exactly as it is typed in a monospaced font. Use \verb \begin{verbatim} and \subsection{subsection2} It is desirable to print program code exactly as it is typed in a monospaced font. Use \verb \begin{verbatim} and \subsubsection{subsubsection3 with extra text} It is desirable to print program code exactly as it is typed in a monospaced font. Use \verb \begin{verbatim} and \section[short section4]{section4 text} \paragraph[short para1]{long paragraph1} \paragraph{long paragraph2} It is desirable to print program code exactly as it is typed in a monospaced font. Use \verb \begin{verbatim} and \part{Part2} \section[shorter intro2]*{Introduction2longtitle} It is desirable to print program code exactly as it is typed in a monospaced font. Use \verb \begin{verbatim} and \subsection[subsec5 text]*{subsection5} \subparagraph[short subpara1]{long subparagraph1} \subparagraph{long subparagraph2} It is desirable to print program code exactly as it is typed in a monospaced font. Use \verb \begin{verbatim} and \subsubsection{subsubsection6 with extra text} It is desirable to print program code exactly as it is typed in a monospaced font. Use \verb \begin{verbatim} and \chapter{chapter2} \include{chapter2-intro.inc} \end{document} geany-2.1/tests/ctags/intro_orig.tex0000644000175000017500000002211215031717571014545 00000000000000% http://sip.clarku.edu/tutorials/TeX/intro.html \documentclass[12pt]{article} \usepackage{amsmath} % need for subequations \usepackage{graphicx} % need for figures \usepackage{verbatim} % useful for program listings \usepackage{color} % use if color is used in text \usepackage{subfigure} % use for side-by-side figures \usepackage{hyperref} % use for hypertext links, including those to external documents and URLs % don't need the following. simply use defaults \setlength{\baselineskip}{16.0pt} % 16 pt usual spacing between lines \setlength{\parskip}{3pt plus 2pt} \setlength{\parindent}{20pt} \setlength{\oddsidemargin}{0.5cm} \setlength{\evensidemargin}{0.5cm} \setlength{\marginparsep}{0.75cm} \setlength{\marginparwidth}{2.5cm} \setlength{\marginparpush}{1.0cm} \setlength{\textwidth}{150mm} \newenvironment{boxed} {\begin{center} \begin{tabular}{|p{0.9\textwidth}|} \hline\\ } { \\\\\hline \end{tabular} \end{center} } \DeclareMathOperator{\End}{End} \newtheorem{theorem1}{Theorem} \begin{comment} \pagestyle{empty} % use if page numbers not wanted \end{comment} % above is the preamble \begin{document} \begin{center} {\large Introduction to \LaTeX} \\ % \\ = new line \copyright 2006 by Harvey Gould \\ December 5, 2006 \end{center} \section{Introduction} \TeX\ looks more difficult than it is. It is almost as easy as $\pi$. See how easy it is to make special symbols such as $\alpha$, $\beta$, $\gamma$, $\delta$, $\sin x$, $\hbar$, $\lambda$, $\ldots$ We also can make subscripts $A_{x}$, $A_{xy}$ and superscripts, $e^x$, $e^{x^2}$, and $e^{a^b}$. We will use \LaTeX, which is based on \TeX\ and has many higher-level commands (macros) for formatting, making tables, etc. More information can be found in Ref.~\cite{latex}. We just made a new paragraph. Extra lines and spaces make no difference. Note that all formulas are enclosed by \$ and occur in \textit{math mode}. The default font is Computer Modern. It includes \textit{italics}, \textbf{boldface}, \textsl{slanted}, and \texttt{monospaced} fonts. \section{Equations} Let us see how easy it is to write equations. \begin{equation} \Delta =\sum_{i=1}^N w_i (x_i - \bar{x})^2 . \end{equation} It is a good idea to number equations, but we can have a equation without a number by writing \begin{equation} P(x) = \frac{x - a}{b - a} , \nonumber \end{equation} and \begin{equation} g = \frac{1}{2} \sqrt{2\pi} . \nonumber \end{equation} We can give an equation a label so that we can refer to it later. \begin{equation} \label{eq:ising} E = -J \sum_{i=1}^N s_i s_{i+1} , \end{equation} Equation~\eqref{eq:ising} expresses the energy of a configuration of spins in the Ising model.\footnote{It is necessary to process (typeset) a file twice to get the counters correct.} We can define our own macros to save typing. For example, suppose that we introduce the macros: \begin{verbatim} \newcommand{\lb}{{\langle}} \newcommand{\rb}{{\rangle}} \end{verbatim} \newcommand{\lb}{{\langle}} \newcommand{\rb}{{\rangle}} Then we can write the average value of $x$ as \begin{verbatim} \begin{equation} \lb x \rb = 3 \end{equation} \end{verbatim} The result is \begin{equation} \lb x \rb = 3 . \end{equation} Examples of more complicated equations: \begin{equation} I = \! \int_{-\infty}^\infty f(x)\,dx \label{eq:fine}. \end{equation} We can do some fine tuning by adding small amounts of horizontal spacing: \begin{verbatim} \, small space \! negative space \end{verbatim} as is done in Eq.~\eqref{eq:fine}. We also can align several equations: \begin{align} a & = b \\ c &= d , \end{align} or number them as subequations: \begin{subequations} \begin{align} a & = b \\ c &= d . \end{align} \end{subequations} We can also have different cases: \begin{equation} \label{eq:mdiv} m(T) = \begin{cases} 0 & \text{$T > T_c$} \\ \bigl(1 - [\sinh 2 \beta J]^{-4} \bigr)^{\! 1/8} & \text{$T < T_c$} \end{cases} \end{equation} write matrices \begin{align} \textbf{T} &= \begin{pmatrix} T_{++} \hfill & T_{+-} \\ T_{-+} & T_{--} \hfill \end{pmatrix} , \nonumber \\ & = \begin{pmatrix} e^{\beta (J + B)} \hfill & e^{-\beta J} \hfill \\ e^{-\beta J} \hfill & e^{\beta (J - B)} \hfill \end{pmatrix}. \end{align} and \newcommand{\rv}{\textbf{r}} \begin{equation} \sum_i \vec A \cdot \vec B = -P\!\int\! \rv \cdot \hat{\mathbf{n}}\, dA = P\!\int \! {\vec \nabla} \cdot \rv\, dV. \end{equation} \section{Tables} Tables are a little more difficult. TeX automatically calculates the width of the columns. \begin{table}[h] \begin{center} \begin{tabular}{|l|l|r|l|} \hline lattice & $d$ & $q$ & $T_{\rm mf}/T_c$ \\ \hline square & 2 & 4 & 1.763 \\ \hline triangular & 2 & 6 & 1.648 \\ \hline diamond & 3 & 4 & 1.479 \\ \hline simple cubic & 3 & 6 & 1.330 \\ \hline bcc & 3 & 8 & 1.260 \\ \hline fcc & 3 & 12 & 1.225 \\ \hline \end{tabular} \caption{\label{tab:5/tc}Comparison of the mean-field predictions for the critical temperature of the Ising model with exact results and the best known estimates for different spatial dimensions $d$ and lattice symmetries.} \end{center} \end{table} \section{Lists} Some example of formatted lists include the following: \begin{enumerate} \item bread \item cheese \end{enumerate} \begin{itemize} \item Tom \item Dick \end{itemize} \section{Figures} We can make figures bigger or smaller by scaling them. Figure~\ref{fig:lj} has been scaled by 60\%. \begin{figure}[h] \begin{center} \includegraphics{figures/sine} \caption{\label{fig:typical}Show me a sine.} \end{center} \end{figure} \begin{figure}[h] \begin{center} \scalebox{0.6}{\includegraphics{figures/lj}} \caption{\label{fig:lj}Plot of the Lennard-Jones potential $u(r)$. The potential is characterized by a length $\sigma$ and an energy $\epsilon$.} \end{center} \end{figure} \section{Literal text} It is desirable to print program code exactly as it is typed in a monospaced font. Use \verb \begin{verbatim} and \verb \end{verbatim} as in the following example: \begin{verbatim} double y0 = 10; // example of declaration and assignment statement double v0 = 0; // initial velocity double t = 0; // time double dt = 0.01; // time step double y = y0; \end{verbatim} The command \verb \verbatiminput{programs/Square.java}\ allows you to list the file \texttt{Square.java} in the directory programs. \section{Special Symbols} \subsection{Common Greek letters} These commands may be used only in math mode. Only the most common letters are included here. $\alpha, \beta, \gamma, \Gamma, \delta,\Delta, \epsilon, \zeta, \eta, \theta, \Theta, \kappa, \lambda, \Lambda, \mu, \nu, \xi, \Xi, \pi, \Pi, \rho, \sigma, \tau, \phi, \Phi, \chi, \psi, \Psi, \omega, \Omega$ \subsection{Special symbols} The derivative is defined as \begin{equation} \frac{dy}{dx} = \lim_{\Delta x \to 0} \frac{\Delta y} {\Delta x} \end{equation} \begin{equation} f(x) \to y \quad \mbox{as} \quad x \to x_{0} \end{equation} \begin{equation} f(x) \mathop {\longrightarrow} \limits_{x \to x_0} y \end{equation} \noindent Order of magnitude: \begin{equation} \log_{10}f \simeq n \end{equation} \begin{equation} f(x)\sim 10^{n} \end{equation} Approximate equality: \begin{equation} f(x)\simeq g(x) \end{equation} \LaTeX\ is simple if we keep everything in proportion: \begin{equation} f(x) \propto x^3 . \end{equation} Finally we can skip some space by using commands such as \begin{verbatim} \bigskip \medskip \smallskip \vspace{1pc} \end{verbatim} The space can be negative. \section{\color{red}Use of Color} {\color{blue}{We can change colors for emphasis}}, {\color{green}{but}} {\color{cyan}{who is going pay for the ink?}} \section{\label{morefig}Subfigures} As soon as many students start becoming comfortable using \LaTeX, they want to use some of its advanced features. So we now show how to place two figures side by side. \begin{figure}[h!] \begin{center} \subfigure[Real and imaginary.]{ \includegraphics[scale=0.5]{figures/reim}} \subfigure[Amplitude and phase.]{ \includegraphics[scale=0.5]{figures/phase}} \caption{\label{fig:qm/complexfunctions} Two representations of complex wave functions.} \end{center} \end{figure} We first have to include the necessary package, \verb+\usepackage{subfigure}+, which has to go in the preamble (before \verb+\begin{document}+). It sometimes can be difficult to place a figure in the desired place. Your LaTeX document can be easily modified to make a poster or a screen presentation similar to (and better than) PowerPoint. Conversion to HTML is straightforward. Comments on this tutorial are appreciated. \begin{thebibliography}{5} \bibitem{latex}Helmut Kopka and Patrick W. Daly, \textsl{A Guide to \LaTeX: Document Preparation for Beginners and Advanced Users}, fourth edition, Addison-Wesley (2004). \bibitem{website}Some useful links are given at \url{}. \end{thebibliography} {\small \noindent Updated 5 December 2006.} \end{document} geany-2.1/tests/ctags/internal.cs0000644000175000017500000000015615031717571014017 00000000000000// Assembly1.cs // compile with: /target:library internal class BaseClass { public static int IntM = 0; } geany-2.1/tests/ctags/interfaces.f900000644000175000017500000000151615031717571014320 00000000000000module HasInterfaces ! INTERFACE blocks can have names ! usually only used for when overloading, but good practice anyway! interface MyFunc function Func1(arg) integer :: arg end function Func1 function Func2(arg) integer :: arg end function Func2 end interface MyFunc ! without a name we just use a generic one interface subroutine CHEEV(...) ! ... end subroutine CHEEV end interface contains function Func1(arg) integer :: arg, func1 func1 = arg end function Func1 function Func2(arg) integer :: arg, func2 func2 = arg end function Func2 end module HasInterfaces program Main use HasInterfaces ! can also occur in PROGRAMs interface MySubroutine subroutine Sub1(arg) ! ... end subroutine Sub1 end interface MySubroutine end program Main geany-2.1/tests/ctags/interface_properties.cs0000644000175000017500000000227015031717571016416 00000000000000// cs_interface_properties.cs // Interface Properties using System; interface IEmployee { string Name { get; set; } int Counter { get; } } public class Employee: IEmployee { public static int numberOfEmployees; private int counter; private string name; // Read-write instance property: public string Name { get { return name; } set { name = value; } } // Read-only instance property: public int Counter { get { return counter; } } // Constructor: public Employee() { counter = ++counter + numberOfEmployees; } } public class MainClass { public static void Main() { Console.Write("Enter number of employees: "); string s = Console.ReadLine(); Employee.numberOfEmployees = int.Parse(s); Employee e1 = new Employee(); Console.Write("Enter the name of the new employee: "); e1.Name = Console.ReadLine(); Console.WriteLine("The employee information:"); Console.WriteLine("Employee number: {0}", e1.Counter); Console.WriteLine("Employee name: {0}", e1.Name); } } geany-2.1/tests/ctags/interface_indexers.cs0000644000175000017500000000170515031717571016045 00000000000000// cs_interface_indexers.cs using System; // Indexer on an interface: public interface IMyInterface { // indexer declaration: int this[int index] { get; set; } } // Implementing the interface: class IndexerClass : IMyInterface { private int [] myArray = new int[100]; public int this [int index] // indexer declaration { get { // Check the index limits if (index < 0 || index >= 100) return 0; else return myArray[index]; } set { if (!(index < 0 || index >= 100)) myArray[index] = value; } } } public class MainClass { public static void Main() { IndexerClass b = new IndexerClass(); // call the indexer to initialize the elements #3 and #5: b[2] = 4; b[5] = 32; for (int i=0; i<=10; i++) { Console.WriteLine("Element #{0} = {1}", i, b[i]); } } } geany-2.1/tests/ctags/initialization.f900000644000175000017500000000124115031717571015217 00000000000000! Tests for correct parsing of complicated initialization MODULE funcon IMPLICIT NONE REAL(8),DIMENSION(3,3),PARAMETER :: & imat= reshape((/1.d0,0.d0,0.d0, & 0.d0,1.d0,0.d0, & 0.d0,0.d0,1.d0/),(/3,3/)) REAL(8),DIMENSION(6,6),PARAMETER :: & imat6= reshape((/1.d0,0.d0,0.d0,0.d0,0.d0,0.d0, & 0.d0,1.d0,0.d0,0.d0,0.d0,0.d0, & 0.d0,0.d0,1.d0,0.d0,0.d0,0.d0, & 0.d0,0.d0,0.d0,1.d0,0.d0,0.d0, & 0.d0,0.d0,0.d0,0.d0,1.d0,0.d0, & 0.d0,0.d0,0.d0,0.d0,0.d0,1.d0/),(/6,6/)) END MODULE funcon geany-2.1/tests/ctags/ingres_procedures.sql0000644000175000017500000000272315031717571016121 00000000000000CREATE PROCEDURE db0001 (short_name varchar(12) not null) BEGIN END; PROCEDURE db0002 (short_name varchar(12) not null) = DECLARE x = varchar(12) not null; n = i4 not null; err = varchar(80) not null not default; BEGIN if short_name = '' then err := 'db0001: Pusty short_name!'; raise error 8001 :err; return -1; endif; select :x = bank_sh_name from "cafa". banks_directory_066 where bank_sh_name = :short_name; if iierrornumber != 0 THEN rollback; err := 'db0001: Podczas sprawdzania unikalnosci short_name banku wystapil blad!'; raise error 8001 :err; return -1; endif; n := iirowcount; commit; return n; END; -- OR with AS instead of =: PROCEDURE db0003 (short_name varchar(12) not null) AS DECLARE x = varchar(12) not null; n = i4 not null; err = varchar(80) not null not default; BEGIN if short_name = '' then err := 'db0001: Pusty short_name!'; raise error 8001 :err; return -1; endif; select :x = bank_sh_name from "cafa". banks_directory_066 where bank_sh_name = :short_name; if iierrornumber != 0 THEN rollback; err := 'db0001: Podczas sprawdzania unikalnosci short_name banku wystapil blad!'; raise error 8001 :err; return -1; endif; n := iirowcount; commit; return n; END geany-2.1/tests/ctags/infinite_loop.java0000644000175000017500000000002415031717571015347 00000000000000class C { void maingeany-2.1/tests/ctags/indexer.cs0000644000175000017500000000140515031717571013637 00000000000000// cs_keyword_indexers.cs using System; class IndexerClass { private int [] myArray = new int[100]; public int this [int index] // indexer declaration { get { // Check the index limits if (index < 0 || index >= 100) return 0; else return myArray[index]; } set { if (!(index < 0 || index >= 100)) myArray[index] = value; } } } public class MainClass { public static void Main() { IndexerClass b = new IndexerClass(); // call the indexer to initialize the elements #3 and #5: b[3] = 256; b[5] = 1024; for (int i=0; i<=10; i++) { Console.WriteLine("Element #{0} = {1}", i, b[i]); } } } geany-2.1/tests/ctags/implied_program.f0000644000175000017500000000017715031717571015200 00000000000000C Bug reported by Brian Helinski on 28 Feb 2003 ! implicit program main integer i i = 5 write(*,*) i end geany-2.1/tests/ctags/hex2dec.sql0000644000175000017500000000252615031717571013722 00000000000000rem ----------------------------------------------------------------------- rem URL: http://www.orafaq.com/scripts/plsql/hex2dec.txt rem Filename: hex2dec.sql rem Purpose: Functions to convert Hex to Decimal and vice versa rem Author: Mark Malakanov, Feb-1999 + Anonymous rem ----------------------------------------------------------------------- CREATE OR REPLACE FUNCTION hex2dec (hexnum in char) RETURN number IS i number; digits number; result number := 0; current_digit char(1); current_digit_dec number; BEGIN digits := length(hexnum); for i in 1..digits loop current_digit := SUBSTR(hexnum, i, 1); if current_digit in ('A','B','C','D','E','F') then current_digit_dec := ascii(current_digit) - ascii('A') + 10; else current_digit_dec := to_number(current_digit); end if; result := (result * 16) + current_digit_dec; end loop; return result; END hex2dec; / show errors CREATE OR REPLACE FUNCTION num2hex (N in number) RETURN varchar2 IS H varchar2(64) :=''; N2 integer := N; BEGIN loop select rawtohex(chr(N2))||H into H from dual; N2 := trunc(N2 / 256); exit when N2=0; end loop; return H; END num2hex; / show errors -- Examples: select hex2dec('FF') from dual; select num2hex(10) from dual; geany-2.1/tests/ctags/general.cs0000644000175000017500000000114515031717571013617 00000000000000// General Structure of a C# Program // A skeleton of a C# program using System; namespace MyNamespace1 { class MyClass1 { } struct MyStruct { } interface IMyInterface { } delegate int MyDelegate(); enum MyEnum { } namespace MyNamespace2 { } class MyClass2 { public static void Main(string[] args) { } } } // Using Fully Qualified Names namespace N1 // N1 { class C1 // N1.C1 { class C2 // N1.C1.C2 { } } namespace N2 // N1.N2 { class C2 // N1.N2.C2 { } } } geany-2.1/tests/ctags/geany.nsi0000644000175000017500000003722115031717571013475 00000000000000;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; geany.nsi - this file is part of Geany, a fast and lightweight IDE ; ; Copyright 2007-2012 Enrico Tröger ; Copyright 2007-2012 Nick Treleaven ; ; 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 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 General Public License for more details. ; ; You should have received a copy of the GNU 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. ; ; ; Installer script for Geany (Windows Installer) ; (Script originally generated by the HM NIS Edit Script Wizard) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Do a Cyclic Redundancy Check to make sure the installer was not corrupted by the download CRCCheck force RequestExecutionLevel highest ; set execution level for Windows Vista ;;;;;;;;;;;;;;;;;;; ; helper defines ; ;;;;;;;;;;;;;;;;;;; !define PRODUCT_NAME "Geany" !define PRODUCT_VERSION "1.35" !define PRODUCT_VERSION_ID "1.35.0.0" !define PRODUCT_PUBLISHER "The Geany developer team" !define PRODUCT_WEB_SITE "https://www.geany.org/" !define PRODUCT_DIR_REGKEY "Software\Geany" !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" !define PRODUCT_EXE "$INSTDIR\bin\Geany.exe" !define PRODUCT_REGNAME "Geany.ProjectFile" !define PRODUCT_EXT ".geany" !define RESOURCEDIR "geany-${PRODUCT_VERSION}" !define GTK_VERSION 2.24.30 ;;;;;;;;;;;;;;;;;;;;; ; Version resource ; ;;;;;;;;;;;;;;;;;;;;; VIProductVersion "${PRODUCT_VERSION_ID}" VIAddVersionKey "ProductName" "${PRODUCT_NAME}" VIAddVersionKey "FileVersion" "${PRODUCT_VERSION}" VIAddVersionKey "ProductVersion" "${PRODUCT_VERSION}" VIAddVersionKey "LegalCopyright" "Copyright 2005-2018 by the Geany developer team" VIAddVersionKey "FileDescription" "${PRODUCT_NAME} Installer" BrandingText "$(^NAME) installer (NSIS 2.51)" InstallDir "$PROGRAMFILES\Geany" Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" SetCompressor /SOLID lzma ShowInstDetails hide ShowUnInstDetails hide XPStyle on !ifdef INCLUDE_GTK OutFile "geany-${PRODUCT_VERSION}_setup.exe" !else OutFile "geany-${PRODUCT_VERSION}_nogtk_setup.exe" !endif Var Answer Var UserName Var StartmenuFolder Var UNINSTDIR ;;;;;;;;;;;;;;;; ; MUI Settings ; ;;;;;;;;;;;;;;;; !include "MUI2.nsh" ;Reserve files used in .onInit, for faster start-up ReserveFile "${NSISDIR}\Plugins\System.dll" ReserveFile "${NSISDIR}\Plugins\UserInfo.dll" ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll" ReserveFile "${NSISDIR}\Plugins\LangDLL.dll" !define MUI_ABORTWARNING !define MUI_ICON "icons\geany.ico" !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall-full.ico" ; Welcome page !insertmacro MUI_PAGE_WELCOME ; License page ;!define MUI_LICENSEPAGE_RADIOBUTTONS !insertmacro MUI_PAGE_LICENSE "${RESOURCEDIR}\Copying.txt" ; Components page !insertmacro MUI_PAGE_COMPONENTS ; Directory page !define MUI_PAGE_CUSTOMFUNCTION_LEAVE OnDirLeave !insertmacro MUI_PAGE_DIRECTORY ; Start menu page !define MUI_STARTMENUPAGE_DEFAULTFOLDER "Geany" !define MUI_STARTMENUPAGE_REGISTRY_ROOT HKLM !define MUI_STARTMENUPAGE_REGISTRY_KEY "${PRODUCT_UNINST_KEY}" !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" !insertmacro MUI_PAGE_STARTMENU ${PRODUCT_NAME} "$StartmenuFolder" ; Instfiles page !insertmacro MUI_PAGE_INSTFILES ; Finish page !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\News.txt" !define MUI_FINISHPAGE_SHOWREADME_TEXT "Show Release Notes" !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED !define MUI_FINISHPAGE_RUN "$INSTDIR\bin\Geany.exe" !define MUI_FINISHPAGE_RUN_NOTCHECKED !insertmacro MUI_PAGE_FINISH !insertmacro MUI_UNPAGE_INSTFILES ; Uninstaller page !insertmacro MUI_LANGUAGE "English" ; Language file ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Sections and InstTypes ; ;;;;;;;;;;;;;;;;;;;;;;;;;;; InstType "Full" InstType "Minimal" Section "!Program Files" SEC01 SectionIn RO 1 2 SetOverwrite ifnewer SetOutPath "$INSTDIR" File "${RESOURCEDIR}\*.txt" SetOutPath "$INSTDIR\bin" File "${RESOURCEDIR}\bin\Geany.exe" File "${RESOURCEDIR}\bin\*Geany*.dll" # non-GTK dependencies File "gtk\bin\libgcc_s_dw*.dll" File "gtk\bin\libstdc++-*.dll" File "gtk\bin\libwinpthread*.dll" SetOutPath "$INSTDIR\libexec" File /r "${RESOURCEDIR}\libexec\*" SetOutPath "$INSTDIR\data" File "${RESOURCEDIR}\data\GPL-2" File "${RESOURCEDIR}\data\filetype_extensions.conf" File "${RESOURCEDIR}\data\geany.glade" !if ${GTK_VERSION} >= 3 File "${RESOURCEDIR}\data\geany-3.20.css" File "${RESOURCEDIR}\data\geany.css" !else File "${RESOURCEDIR}\data\geany.gtkrc" !endif File "${RESOURCEDIR}\data\snippets.conf" File "${RESOURCEDIR}\data\ui_toolbar.xml" SetOutPath "$INSTDIR\data\filedefs" File /r "${RESOURCEDIR}\data\filedefs\*" SetOutPath "$INSTDIR\data\templates" File /r "${RESOURCEDIR}\data\templates\*" SetOutPath "$INSTDIR\data\colorschemes" File /r "${RESOURCEDIR}\data\colorschemes\*" # Geany color schemes project, don't bail out if they are missing File /nonfatal /r "..\geany-themes\colorschemes\*.conf" SetOutPath "$INSTDIR\share\icons" File /r "${RESOURCEDIR}\share\icons\*" SetOutPath "$INSTDIR" CreateShortCut "$INSTDIR\Geany.lnk" "$INSTDIR\bin\Geany.exe" !insertmacro MUI_STARTMENU_WRITE_BEGIN ${PRODUCT_NAME} CreateDirectory "$SMPROGRAMS\$StartmenuFolder" CreateShortCut "$SMPROGRAMS\$StartmenuFolder\Geany.lnk" "$INSTDIR\bin\Geany.exe" !insertmacro MUI_STARTMENU_WRITE_END ; register the extension .geany ; write information about file type WriteRegStr SHCTX "Software\Classes\${PRODUCT_REGNAME}" "" "${PRODUCT_NAME} Project File" WriteRegStr SHCTX "Software\Classes\${PRODUCT_REGNAME}\DefaultIcon" "" "${PRODUCT_EXE},0" WriteRegStr SHCTX "Software\Classes\${PRODUCT_REGNAME}\Shell\open\command" "" '"${PRODUCT_EXE}" "%1"' ; write information about file extensions WriteRegStr SHCTX "Software\Classes\${PRODUCT_EXT}" "" "${PRODUCT_REGNAME}" ; refresh shell System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) (0x08000000, 0, 0, 0)' SectionEnd Section "Plugins" SEC02 SectionIn 1 SetOverwrite ifnewer SetOutPath "$INSTDIR\lib\geany" File "${RESOURCEDIR}\lib\geany\*.dll" SectionEnd Section "Language Files" SEC03 SectionIn 1 SetOutPath "$INSTDIR\share\locale" File /r "${RESOURCEDIR}\share\locale\*" !ifdef INCLUDE_GTK SetOutPath "$INSTDIR\share\locale" File /r "gtk\share\locale\*" !endif SectionEnd Section "Documentation" SEC04 SectionIn 1 SetOverwrite ifnewer SetOutPath "$INSTDIR\share\doc" File /r "${RESOURCEDIR}\share\doc\*" WriteIniStr "$INSTDIR\Documentation.url" "InternetShortcut" "URL" "$INSTDIR\share\doc\geany\html\index.html" !insertmacro MUI_STARTMENU_WRITE_BEGIN ${PRODUCT_NAME} CreateShortCut "$SMPROGRAMS\$StartmenuFolder\Documentation.lnk" "$INSTDIR\Documentation.url" !insertmacro MUI_STARTMENU_WRITE_END SectionEnd Section "Autocompletion Tags" SEC05 SectionIn 1 SetOverwrite ifnewer SetOutPath "$INSTDIR\data\tags" File /r "${RESOURCEDIR}\data\tags\*" SectionEnd ; Include GTK runtime library but only if desired from command line !ifdef INCLUDE_GTK Section "GTK ${GTK_VERSION} Runtime Environment" SEC06 SectionIn 1 SetOverwrite ifnewer SetOutPath "$INSTDIR" File "gtk\ReadMe.Dependencies.Geany.txt" SetOutPath "$INSTDIR\bin" File /r "gtk\bin\*" SetOutPath "$INSTDIR\etc" File /r "gtk\etc\*" SetOutPath "$INSTDIR\lib" File /r "gtk\lib\*" SetOutPath "$INSTDIR\share" File /r "gtk\share\*" SectionEnd !endif Section "Context Menus" SEC07 SectionIn 1 WriteRegStr HKCR "*\shell\OpenWithGeany" "" "Open with Geany" WriteRegStr HKCR "*\shell\OpenWithGeany" "Icon" "$INSTDIR\bin\geany.exe" WriteRegStr HKCR "*\shell\OpenWithGeany\command" "" '"$INSTDIR\bin\geany.exe" "%1"' SectionEnd Section "Desktop Shortcuts" SEC08 SectionIn 1 CreateShortCut "$DESKTOP\Geany.lnk" "$INSTDIR\bin\Geany.exe" CreateShortCut "$QUICKLAUNCH\Geany.lnk" "$INSTDIR\bin\Geany.exe" SectionEnd ; Development files Section "Development files" SEC09 SetOverwrite ifnewer SetOutPath "$INSTDIR\include" File /r "${RESOURCEDIR}\include\*" SetOutPath "$INSTDIR\lib\pkgconfig" File "${RESOURCEDIR}\lib\pkgconfig\geany.pc" SectionEnd Section -AdditionalIcons SetOutPath $INSTDIR !insertmacro MUI_STARTMENU_WRITE_BEGIN ${PRODUCT_NAME} WriteIniStr "$INSTDIR\Website.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}" CreateShortCut "$SMPROGRAMS\$StartmenuFolder\Website.lnk" "$INSTDIR\Website.url" CreateShortCut "$SMPROGRAMS\$StartmenuFolder\Uninstall.lnk" "$INSTDIR\uninst.exe" !insertmacro MUI_STARTMENU_WRITE_END SectionEnd Section -Post WriteUninstaller "$INSTDIR\uninst.exe" WriteRegStr SHCTX "${PRODUCT_DIR_REGKEY}" Path "$INSTDIR" WriteRegStr SHCTX "${PRODUCT_UNINST_KEY}" "StartMenu" "$SMPROGRAMS\$StartmenuFolder" ${if} $Answer == "yes" ; if user is admin WriteRegStr SHCTX "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" WriteRegStr SHCTX "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe" WriteRegStr SHCTX "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\bin\Geany.exe" WriteRegStr SHCTX "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" WriteRegStr SHCTX "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" WriteRegStr SHCTX "${PRODUCT_UNINST_KEY}" "URLUpdateInfo" "${PRODUCT_WEB_SITE}" WriteRegStr SHCTX "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" WriteRegDWORD SHCTX "${PRODUCT_UNINST_KEY}" "NoModify" 0x00000001 WriteRegDWORD SHCTX "${PRODUCT_UNINST_KEY}" "NoRepair" 0x00000001 ${endif} SectionEnd Section Uninstall Delete "$INSTDIR\Website.url" Delete "$INSTDIR\Documentation.url" Delete "$INSTDIR\uninst.exe" Delete "$INSTDIR\News.txt" Delete "$INSTDIR\ReadMe.txt" Delete "$INSTDIR\ReadMe.Dependencies.Geany.txt" Delete "$INSTDIR\Thanks.txt" Delete "$INSTDIR\ToDo.txt" Delete "$INSTDIR\Authors.txt" Delete "$INSTDIR\ChangeLog.txt" Delete "$INSTDIR\Copying.txt" Delete "$INSTDIR\Geany.lnk" ; delete start menu entry ReadRegStr $0 SHCTX "${PRODUCT_UNINST_KEY}" "StartMenu" RMDir /r "$0" Delete "$QUICKLAUNCH\Geany.lnk" Delete "$DESKTOP\Geany.lnk" RMDir /r "$INSTDIR\bin" RMDir /r "$INSTDIR\data" RMDir /r "$INSTDIR\etc" RMDir /r "$INSTDIR\include" RMDir /r "$INSTDIR\lib" RMDir /r "$INSTDIR\libexec" RMDir /r "$INSTDIR\share" RMDir "$INSTDIR" ; remove .geany file extension ReadRegStr $R0 SHCTX "Software\Classes\${PRODUCT_EXT}" "" ${if} $R0 == "${PRODUCT_REGNAME}" DeleteRegKey SHCTX "${PRODUCT_EXT}" DeleteRegKey HKCR "${PRODUCT_EXT}" DeleteRegKey SHCTX "${PRODUCT_REGNAME}" DeleteRegKey HKCR "${PRODUCT_REGNAME}" ${endif} DeleteRegKey HKCR "*\shell\OpenWithGeany" DeleteRegKey SHCTX "${PRODUCT_UNINST_KEY}" DeleteRegKey HKCU "${PRODUCT_UNINST_KEY}" DeleteRegKey SHCTX "${PRODUCT_DIR_REGKEY}" DeleteRegKey HKCU "${PRODUCT_DIR_REGKEY}" SetAutoClose true SectionEnd ;;;;;;;;;;;;;;;;;;;;;;;;; ; Section descriptions ; ;;;;;;;;;;;;;;;;;;;;;;;;; !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} "Required program files. You cannot skip these files." !insertmacro MUI_DESCRIPTION_TEXT ${SEC02} "Available plugins like 'Version Diff', 'Class Builder' and 'Insert Special Characters'." !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} "Various translations of Geany's interface." !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} "Manual in Text and HTML format." !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} "Symbol lists necessary for auto completion of symbols." !ifdef INCLUDE_GTK !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} "You need these files to run Geany. If you have already installed a GTK Runtime Environment (${GTK_VERSION} or higher), you can skip it." !endif !insertmacro MUI_DESCRIPTION_TEXT ${SEC07} "Add context menu item 'Open With Geany'" !insertmacro MUI_DESCRIPTION_TEXT ${SEC08} "Create shortcuts for Geany on the desktop and in the Quicklaunch Bar" !insertmacro MUI_DESCRIPTION_TEXT ${SEC09} "You need these files only if you want to develop own plugins for Geany. If unsure, you can skip it." !insertmacro MUI_FUNCTION_DESCRIPTION_END ;;;;;;;;;;;;;;;;;;;;; ; helper functions ; ;;;;;;;;;;;;;;;;;;;;; ; (from http://jabref.svn.sourceforge.net/viewvc/jabref/trunk/jabref/src/windows/nsis/setup.nsi) !macro IsUserAdmin Result UName ClearErrors UserInfo::GetName IfErrors Win9x Pop $0 StrCpy ${UName} $0 UserInfo::GetAccountType Pop $1 ${if} $1 == "Admin" StrCpy ${Result} "yes" ${else} StrCpy ${Result} "no" ${endif} Goto done Win9x: StrCpy ${Result} "yes" done: !macroend Function .onInit StrCpy "$StartmenuFolder" "Geany" ; (from http://jabref.svn.sourceforge.net/viewvc/jabref/trunk/jabref/src/windows/nsis/setup.nsi) ; If the user does *not* have administrator privileges, abort StrCpy $Answer "" StrCpy $UserName "" !insertmacro IsUserAdmin $Answer $UserName ; macro from LyXUtils.nsh ${if} $Answer == "yes" SetShellVarContext all ; set that e.g. shortcuts will be created for all users ${else} SetShellVarContext current ; TODO is this really what we want? $PROGRAMFILES is not much better because ; probably the unprivileged user can't write it anyways StrCpy $INSTDIR "$PROFILE\$(^Name)" ${endif} ; prevent running multiple instances of the installer System::Call 'kernel32::CreateMutexA(i 0, i 0, t "geany_installer") i .r1 ?e' Pop $R0 StrCmp $R0 0 +3 MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running." /SD IDOK Abort ; warn about a new install over an existing installation ReadRegStr $R0 SHCTX "${PRODUCT_UNINST_KEY}" "UninstallString" StrCmp $R0 "" finish MessageBox MB_YESNO|MB_ICONEXCLAMATION \ "Geany has already been installed. $\nDo you want to remove the previous version before installing $(^Name) ?" \ /SD IDYES IDYES remove IDNO finish remove: ; run the uninstaller ClearErrors ; we read the installation path of the old installation from the Registry ReadRegStr $UNINSTDIR SHCTX "${PRODUCT_DIR_REGKEY}" "Path" IfSilent dosilent nonsilent dosilent: ExecWait '$R0 /S _?=$UNINSTDIR' ;Do not copy the uninstaller to a temp file Goto finish nonsilent: ExecWait '$R0 _?=$UNINSTDIR' ;Do not copy the uninstaller to a temp file finish: FunctionEnd Function un.onUninstSuccess HideWindow MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer." \ /SD IDOK FunctionEnd Function un.onInit ; If the user does *not* have administrator privileges, abort StrCpy $Answer "" !insertmacro IsUserAdmin $Answer $UserName ${if} $Answer == "yes" SetShellVarContext all ${else} ; check if the Geany has been installed with admin permisions ReadRegStr $0 HKLM "${PRODUCT_UNINST_KEY}" "Publisher" ${if} $0 != "" MessageBox MB_OK|MB_ICONSTOP "You need administrator privileges to uninstall Geany!" \ /SD IDOK Abort ${endif} SetShellVarContext current ${endif} MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" \ /SD IDYES IDYES +2 Abort FunctionEnd Function OnDirLeave ClearErrors SetOutPath "$INSTDIR" ; what about IfError creating $INSTDIR? GetTempFileName $1 "$INSTDIR" ; creates tmp file (or fails) FileOpen $0 "$1" "w" ; error to open? FileWriteByte $0 "0" IfErrors notPossible possible notPossible: RMDir "$INSTDIR" ; removes folder if empty MessageBox MB_OK "The given directory is not writeable. Please choose another one!" /SD IDOK Abort possible: FileClose $0 Delete "$1" FunctionEnd geany-2.1/tests/ctags/gdscript-no-implicit-class.gd0000644000175000017500000000337115031717571017336 00000000000000# Derived from https://docs.godotengine.org/en/latest/tutorials/scripting/gdscript/gdscript_basics.html # A file is a class but it has no name. The name is given only when # class_name is used. # Inheritance extends BaseClass # (optional) class definition with a custom icon class_name MyClass, "res://path/to/optional/icon.svg" # Signals signal sig # Member variables @export_range(start=0, end=100, step=1) var a = 5 @export var s = "Hello" @onready var arr = [1, 2, 3] var dict = {"key": "value", 2: 3} var typed_var: int @onready @export_multiline var\ inferred_type\ :=\ "String" # Constants const ANSWER = 42 const THE_NAME:String = "Charly" # Enums enum {UNIT_NEUTRAL, UNIT_ENEMY, UNIT_ALL} enum Named {THING_1, THING_2, ANOTHER_THING=1} # Built-in vector types var v2 = Vector2(1, 2) var v3 = Vector3(1, 2, 3) # Function @master func some_function(param1: Vector3, param2: int) -> int: var local_var = 5 if param1 < local_var: print(param1) elif param2 > 5: print(param2) elif param2 == 2: print(20) elif param2 <= 2: print((-20 % 3) / 5) else: print("Fail!") for i in range(20): print(i) while param2 != 0: param2 -= 1 var local_var2 = param1 + 3 return local_var2 # Functions override functions with the same name on the base/parent class. # If you still want to call them, use '.' (like 'super' in other languages). @puppet func something(p1, p2): .something(p1, p2) # Inner class class Something: var a = 10 const _private_var:String = "hi\n\\escape" func foooooooo() -> String: print(""" test\\ test""") return "" # Constructor func _init(): print("Constructed!") var lv = Something.new() print(lv.a) geany-2.1/tests/ctags/gdscript-modifiers.gd0000644000175000017500000000157515031717571015774 00000000000000# Taken from godot-demo-projects/3d/voxel/world/chunk.gd func _create_block_collider(block_sub_position): var collider = CollisionShape.new() collider.shape = BoxShape.new() collider.shape.extents = Vector3.ONE / 2 collider.transform.origin = block_sub_position + Vector3.ONE / 2 add_child(collider) static func calculate_block_uvs(block_id): # This method only supports square texture sheets. var row = block_id / TEXTURE_SHEET_WIDTH var col = block_id % TEXTURE_SHEET_WIDTH return [ TEXTURE_TILE_SIZE * Vector2(col, row), TEXTURE_TILE_SIZE * Vector2(col, row + 1), TEXTURE_TILE_SIZE * Vector2(col + 1, row), TEXTURE_TILE_SIZE * Vector2(col + 1, row + 1), ] func id(a): return a remote func r(b): return b remote static func x(c): return c geany-2.1/tests/ctags/gdscript-inner-class.gd0000644000175000017500000000471215031717571016225 00000000000000# Taken from godot-demo-projects/networking/webrtc_signaling/server/ws_webrtc_server.gd # of https://github.com/godotengine/godot-demo-projects.git extends Node const TIMEOUT = 1000 # Unresponsive clients times out after 1 sec const SEAL_TIME = 10000 # A sealed room will be closed after this time const ALFNUM = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" var _alfnum = ALFNUM.to_ascii() var rand: RandomNumberGenerator = RandomNumberGenerator.new() var lobbies: Dictionary = {} var server: WebSocketServer = WebSocketServer.new() var peers: Dictionary = {} class Peer extends Reference: var id = -1 var lobby = "" var time = OS.get_ticks_msec() func _init(peer_id): id = peer_id class Lobby extends Reference: var peers: Array = [] var host: int = -1 var sealed: bool = false var time = 0 func _init(host_id: int): host = host_id func join(peer_id, server) -> bool: if sealed: return false if not server.has_peer(peer_id): return false var new_peer: WebSocketPeer = server.get_peer(peer_id) new_peer.put_packet(("I: %d\n" % (1 if peer_id == host else peer_id)).to_utf8()) for p in peers: if not server.has_peer(p): continue server.get_peer(p).put_packet(("N: %d\n" % peer_id).to_utf8()) new_peer.put_packet(("N: %d\n" % (1 if p == host else p)).to_utf8()) peers.push_back(peer_id) return true func leave(peer_id, server) -> bool: if not peers.has(peer_id): return false peers.erase(peer_id) var close = false if peer_id == host: # The room host disconnected, will disconnect all peers. close = true if sealed: return close # Notify other peers. for p in peers: if not server.has_peer(p): return close if close: # Disconnect peers. server.disconnect_peer(p) else: # Notify disconnection. server.get_peer(p).put_packet(("D: %d\n" % peer_id).to_utf8()) return close func seal(peer_id, server) -> bool: # Only host can seal the room. if host != peer_id: return false sealed = true for p in peers: server.get_peer(p).put_packet("S: \n".to_utf8()) time = OS.get_ticks_msec() return true # Taken from godot-demo-projects/2d/physics_tests/test.gd class Circle2D: extends Node2D var center var radius var color func _draw(): draw_circle(center, radius, color) func _init(): server.connect("data_received", self, "_on_data") server.connect("client_connected", self, "_peer_connected") server.connect("client_disconnected", self, "_peer_disconnected") # ... geany-2.1/tests/ctags/func_typedef.h0000644000175000017500000000006415031717571014476 00000000000000typedef SLIST_HEAD(symlist, symbol_node) symlist_t; geany-2.1/tests/ctags/fortran_line_continuation.f900000644000175000017500000000072515031717571017452 00000000000000! this is a comment and continuation must not be handled in it & ! this is another line of comment #if dummy function & ! just a test for support of comments after a line continuation ! below is a preprocessor line, also just to test continuation #endif ! still testing & do_stuff(a) end function do_stuff function & ! actually the ampersand isn't required at the start of the continuation line #pragma stuff do_stuff_again(b) end function do_stuff_again geany-2.1/tests/ctags/fortran_associate.f900000644000175000017500000000047615031717571015707 00000000000000module with_associate real :: a contains function do_stuff(a) result(c) real, intent(in) :: a associate (b => a) c = b end associate end function do_stuff subroutine do_other_stuff(a) real, intent(in out) :: a a = 2 * a end subroutine do_other_stuff end module with_associate geany-2.1/tests/ctags/format.pl0000644000175000017500000000016215031717571013476 00000000000000# Test format tag generation. format XYZ = @<<< @>>> "1", "a" . format = @>>> 24 . write; $~ = XYZ; write; geany-2.1/tests/ctags/forall_module.f900000644000175000017500000000055115031717571015017 00000000000000! a module that uses a forall block module with_forall real :: a contains subroutine sub_with_forall(x) real, intent(inout) :: x(:) integer :: i forall(i=1:size(x)) x(i) = 0.5**i end forall end subroutine sub_with_forall function two() result(res) real :: res res = 2.0 end function two end module with_forall geany-2.1/tests/ctags/extern_variable.h0000644000175000017500000000006415031717571015175 00000000000000extern int a; extern struct B b; struct S; class C; geany-2.1/tests/ctags/events.cs0000644000175000017500000001120315031717571013502 00000000000000// events1.cs using System; namespace MyCollections { using System.Collections; // A delegate type for hooking up change notifications. public delegate void ChangedEventHandler(object sender, EventArgs e); // A class that works just like ArrayList, but sends event // notifications whenever the list changes. public class ListWithChangedEvent: ArrayList { // An event that clients can use to be notified whenever the // elements of the list change. public event ChangedEventHandler Changed; // Invoke the Changed event; called whenever list changes protected virtual void OnChanged(EventArgs e) { if (Changed != null) Changed(this, e); } // Override some of the methods that can change the list; // invoke event after each public override int Add(object value) { int i = base.Add(value); OnChanged(EventArgs.Empty); return i; } public override void Clear() { base.Clear(); OnChanged(EventArgs.Empty); } public override object this[int index] { set { base[index] = value; OnChanged(EventArgs.Empty); } } } } namespace TestEvents { using MyCollections; class EventListener { private ListWithChangedEvent List; public EventListener(ListWithChangedEvent list) { List = list; // Add "ListChanged" to the Changed event on "List". List.Changed += new ChangedEventHandler(ListChanged); } // This will be called whenever the list changes. private void ListChanged(object sender, EventArgs e) { Console.WriteLine("This is called when the event fires."); } public void Detach() { // Detach the event and delete the list List.Changed -= new ChangedEventHandler(ListChanged); List = null; } } class Test { // Test the ListWithChangedEvent class. public static void Main() { // Create a new list. ListWithChangedEvent list = new ListWithChangedEvent(); // Create a class that listens to the list's change event. EventListener listener = new EventListener(list); // Add and remove items from the list. list.Add("item 1"); list.Clear(); listener.Detach(); } } } // events2.cs using System; namespace MyCollections { using System.Collections; // A class that works just like ArrayList, but sends event // notifications whenever the list changes: public class ListWithChangedEvent: ArrayList { // An event that clients can use to be notified whenever the // elements of the list change: public event EventHandler Changed; // Invoke the Changed event; called whenever list changes: protected virtual void OnChanged(EventArgs e) { if (Changed != null) Changed(this,e); } // Override some of the methods that can change the list; // invoke event after each: public override int Add(object value) { int i = base.Add(value); OnChanged(EventArgs.Empty); return i; } public override void Clear() { base.Clear(); OnChanged(EventArgs.Empty); } public override object this[int index] { set { base[index] = value; OnChanged(EventArgs.Empty); } } } } namespace TestEvents { using MyCollections; class EventListener { private ListWithChangedEvent List; public EventListener(ListWithChangedEvent list) { List = list; // Add "ListChanged" to the Changed event on "List": List.Changed += new EventHandler(ListChanged); } // This will be called whenever the list changes: private void ListChanged(object sender, EventArgs e) { Console.WriteLine("This is called when the event fires."); } public void Detach() { // Detach the event and delete the list: List.Changed -= new EventHandler(ListChanged); List = null; } } class Test { // Test the ListWithChangedEvent class: public static void Main() { // Create a new list: ListWithChangedEvent list = new ListWithChangedEvent(); // Create a class that listens to the list's change event: EventListener listener = new EventListener(list); // Add and remove items from the list: list.Add("item 1"); list.Clear(); listener.Detach(); } } } geany-2.1/tests/ctags/enumerators.f900000644000175000017500000000174215031717571014542 00000000000000module Enums real :: somevar ! we now have enumerators in F2003/8, for the sake of interop with C enum, bind(c) ! unnamed 1 enumerator :: red =1, blue enumerator gold, silver, bronze enumerator :: purple end enum ! here follow nonstandard enum declarations, which may become valid in a later standard ! no real harm implementing these as long as valid stuff isn't broken enum enumerator :: no_c_binding end enum enum :: Colons enumerator :: r end enum enum BodyPart enumerator :: arm, leg end enum enum(8) Paren_kind enumerator :: b end enum enum*8 Aster_kind enumerator :: c end enum enum(8) :: Paren_colon enumerator :: d end enum enum*8 :: Aster_colon enumerator :: e end enum enum, bind(c) :: Name_colon enumerator :: d end enum ! another entry to verify the parsing hasn't broken real, parameter :: othervar contains function Func(arg) ! ... end function Func end module Enums geany-2.1/tests/ctags/enum.ps10000644000175000017500000000037515031717571013250 00000000000000# EnumName1 enum EnumName1 { Label11 Label12 = 10 } # EnumName2 enum EnumName2 { Label21 Label22 = 20 } # EnumName3 Enum EnumName3 { Label31 Label32 = 30 } # EnumName4 [Flags()] enum EnumName4 { Label41 Label42 = 40 } geany-2.1/tests/ctags/enum.java0000644000175000017500000000064515031717571013466 00000000000000public enum e { A, // should be 'e', not 'f' B(), // should be 'e', not 'm' C(1), // should be 'e', not missing D, // should be 'e', not 'f' E(), // should be 'e', not 'm' F(1), // should be 'e', not missing ; public String string; public final Shape shape; public final boolean twoKeywordsInARow; public String getString() { return string; } public final Shape getShape() { return shape; } } geany-2.1/tests/ctags/enum.f900000644000175000017500000000164115031717571013140 00000000000000module Constants implicit none real, parameter :: pi = 4 * atan(1.0) real, parameter :: E_e = 510998.91013 ! we now have enumerators in F2003/8, for the sake of interop with C enum, bind(c) ! unnamed 1 enumerator :: red =1, blue, black =5 enumerator yellow enumerator gold, silver, bronze enumerator :: purple enumerator :: pink, lavender end enum enum ! unnamed 2 enumerator :: a, b, c end enum enum :: Named1 enumerator :: x1, y1, z1 end enum enum Named2 enumerator :: x2, y2, z2 end enum enum(8) Named3 enumerator :: x3, y3, z3 end enum enum*8 Named4 enumerator :: x4, y4, z4 end enum enum(8) :: Named5 enumerator :: x5, y5, z5 end enum enum*8 :: Named6 enumerator :: x6, y6, z6 end enum enum, bind(c) :: Named7 enumerator :: x7, y7, z7 end enum real, parameter :: hc = 12398.4193 public end module Constants geany-2.1/tests/ctags/enum.c0000644000175000017500000000010215031717571012753 00000000000000enum test_enumeration { ENUM_1 = 1, ENUM_2, ENUM_3 }; geany-2.1/tests/ctags/dotted-names.json0000644000175000017500000000066315031717571015136 00000000000000{ "first.name": "John", "last.name": "Smith", "is.alive": true, "age": 25, "height_cm": 167.6, "address": { "street.address": "21 2nd Street", "city": "New York", "state": "NY", "postal.code": "10021-3100" }, "phone.numbers": [ { "type": "home", "number": "212 555-1234" }, { "type": "office", "number": "646 555-4567" } ], "children": [], "spouse": null } geany-2.1/tests/ctags/dopbl2.f0000644000175000017500000001465415031717571013215 00000000000000! Bug reported by Brian Helinski on 4 Feb 2003 DOUBLE PRECISION FUNCTION DOPBL2( SUBNAM, M, N, KKL, KKU ) * * -- LAPACK timing routine (version 3.0) -- * Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd., * Courant Institute, Argonne National Lab, and Rice University * June 30, 1999 * * .. Scalar Arguments .. CHARACTER*6 SUBNAM INTEGER KKL, KKU, M, N * .. * * Purpose * ======= * * DOPBL2 computes an approximation of the number of floating point * operations used by a subroutine SUBNAM with the given values * of the parameters M, N, KL, and KU. * * This version counts operations for the Level 2 BLAS. * * Arguments * ========= * * SUBNAM (input) CHARACTER*6 * The name of the subroutine. * * M (input) INTEGER * The number of rows of the coefficient matrix. M >= 0. * * N (input) INTEGER * The number of columns of the coefficient matrix. * If the matrix is square (such as in a solve routine) then * N is the number of right hand sides. N >= 0. * * KKL (input) INTEGER * The lower band width of the coefficient matrix. * KL is set to max( 0, min( M-1, KKL ) ). * * KKU (input) INTEGER * The upper band width of the coefficient matrix. * KU is set to max( 0, min( N-1, KKU ) ). * * ===================================================================== * * .. Local Scalars .. CHARACTER C1 CHARACTER*2 C2 CHARACTER*3 C3 DOUBLE PRECISION ADDS, EK, EM, EN, KL, KU, MULTS * .. * .. External Functions .. LOGICAL LSAME, LSAMEN EXTERNAL LSAME, LSAMEN * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Quick return if possible * IF( M.LE.0 .OR. .NOT.( LSAME( SUBNAM, 'S' ) .OR. LSAME( SUBNAM, $ 'D' ) .OR. LSAME( SUBNAM, 'C' ) .OR. LSAME( SUBNAM, 'Z' ) ) ) $ THEN DOPBL2 = 0 RETURN END IF * C1 = SUBNAM( 1: 1 ) C2 = SUBNAM( 2: 3 ) C3 = SUBNAM( 4: 6 ) MULTS = 0 ADDS = 0 KL = MAX( 0, MIN( M-1, KKL ) ) KU = MAX( 0, MIN( N-1, KKU ) ) EM = M EN = N EK = KL * * ------------------------------- * Matrix-vector multiply routines * ------------------------------- * IF( LSAMEN( 3, C3, 'MV ' ) ) THEN * IF( LSAMEN( 2, C2, 'GE' ) ) THEN * MULTS = EM*( EN+1.D0 ) ADDS = EM*EN * * Assume M <= N + KL and KL < M * N <= M + KU and KU < N * so that the zero sections are triangles. * ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN * MULTS = EM*( EN+1.D0 ) - ( EM-1.D0-KL )*( EM-KL ) / 2.D0 - $ ( EN-1.D0-KU )*( EN-KU ) / 2.D0 ADDS = EM*( EN+1.D0 ) - ( EM-1.D0-KL )*( EM-KL ) / 2.D0 - $ ( EN-1.D0-KU )*( EN-KU ) / 2.D0 * ELSE IF( LSAMEN( 2, C2, 'SY' ) .OR. LSAMEN( 2, C2, 'SP' ) .OR. $ LSAMEN( 3, SUBNAM, 'CHE' ) .OR. $ LSAMEN( 3, SUBNAM, 'ZHE' ) .OR. $ LSAMEN( 3, SUBNAM, 'CHP' ) .OR. $ LSAMEN( 3, SUBNAM, 'ZHP' ) ) THEN * MULTS = EM*( EM+1.D0 ) ADDS = EM*EM * ELSE IF( LSAMEN( 2, C2, 'SB' ) .OR. $ LSAMEN( 3, SUBNAM, 'CHB' ) .OR. $ LSAMEN( 3, SUBNAM, 'ZHB' ) ) THEN * MULTS = EM*( EM+1.D0 ) - ( EM-1.D0-EK )*( EM-EK ) ADDS = EM*EM - ( EM-1.D0-EK )*( EM-EK ) * ELSE IF( LSAMEN( 2, C2, 'TR' ) .OR. LSAMEN( 2, C2, 'TP' ) ) $ THEN * MULTS = EM*( EM+1.D0 ) / 2.D0 ADDS = ( EM-1.D0 )*EM / 2.D0 * ELSE IF( LSAMEN( 2, C2, 'TB' ) ) THEN * MULTS = EM*( EM+1.D0 ) / 2.D0 - $ ( EM-EK-1.D0 )*( EM-EK ) / 2.D0 ADDS = ( EM-1.D0 )*EM / 2.D0 - $ ( EM-EK-1.D0 )*( EM-EK ) / 2.D0 * END IF * * --------------------- * Matrix solve routines * --------------------- * ELSE IF( LSAMEN( 3, C3, 'SV ' ) ) THEN * IF( LSAMEN( 2, C2, 'TR' ) .OR. LSAMEN( 2, C2, 'TP' ) ) THEN * MULTS = EM*( EM+1.D0 ) / 2.D0 ADDS = ( EM-1.D0 )*EM / 2.D0 * ELSE IF( LSAMEN( 2, C2, 'TB' ) ) THEN * MULTS = EM*( EM+1.D0 ) / 2.D0 - $ ( EM-EK-1.D0 )*( EM-EK ) / 2.D0 ADDS = ( EM-1.D0 )*EM / 2.D0 - $ ( EM-EK-1.D0 )*( EM-EK ) / 2.D0 * END IF * * ---------------- * Rank-one updates * ---------------- * ELSE IF( LSAMEN( 3, C3, 'R ' ) ) THEN * IF( LSAMEN( 3, SUBNAM, 'SGE' ) .OR. $ LSAMEN( 3, SUBNAM, 'DGE' ) ) THEN * MULTS = EM*EN + MIN( EM, EN ) ADDS = EM*EN * ELSE IF( LSAMEN( 2, C2, 'SY' ) .OR. LSAMEN( 2, C2, 'SP' ) .OR. $ LSAMEN( 3, SUBNAM, 'CHE' ) .OR. $ LSAMEN( 3, SUBNAM, 'CHP' ) .OR. $ LSAMEN( 3, SUBNAM, 'ZHE' ) .OR. $ LSAMEN( 3, SUBNAM, 'ZHP' ) ) THEN * MULTS = EM*( EM+1.D0 ) / 2.D0 + EM ADDS = EM*( EM+1.D0 ) / 2.D0 * END IF * ELSE IF( LSAMEN( 3, C3, 'RC ' ) .OR. LSAMEN( 3, C3, 'RU ' ) ) THEN * IF( LSAMEN( 3, SUBNAM, 'CGE' ) .OR. $ LSAMEN( 3, SUBNAM, 'ZGE' ) ) THEN * MULTS = EM*EN + MIN( EM, EN ) ADDS = EM*EN * END IF * * ---------------- * Rank-two updates * ---------------- * ELSE IF( LSAMEN( 3, C3, 'R2 ' ) ) THEN IF( LSAMEN( 2, C2, 'SY' ) .OR. LSAMEN( 2, C2, 'SP' ) .OR. $ LSAMEN( 3, SUBNAM, 'CHE' ) .OR. $ LSAMEN( 3, SUBNAM, 'CHP' ) .OR. $ LSAMEN( 3, SUBNAM, 'ZHE' ) .OR. $ LSAMEN( 3, SUBNAM, 'ZHP' ) ) THEN * MULTS = EM*( EM+1.D0 ) + 2.D0*EM ADDS = EM*( EM+1.D0 ) * END IF END IF * * ------------------------------------------------ * Compute the total number of operations. * For real and double precision routines, count * 1 for each multiply and 1 for each add. * For complex and complex*16 routines, count * 6 for each multiply and 2 for each add. * ------------------------------------------------ * IF( LSAME( C1, 'S' ) .OR. LSAME( C1, 'D' ) ) THEN * DOPBL2 = MULTS + ADDS * ELSE * DOPBL2 = 6*MULTS + 2*ADDS * END IF * RETURN * * End of DOPBL2 * END geany-2.1/tests/ctags/directives.c0000644000175000017500000000162115031717571014157 00000000000000/* Test simple cases */ #define VARIABLE_LIKE some_value #define FUNCTION_LIKE(a,b) (a + b) #pragma weak WeakSymbol = StrongSymbol #define with_long_comment /* line 1 line 2 */ /* Test usual case */ #ifdef MY_MACRO # define MACRO_TO_SEE1 1 int a; #elif YOUR_MACRO # define MACRO_TO_SEE2 2 int b; #elif defined (THEIR_MACRO) # define MACRO_TO_SEE3 3 int c; #else # define MACRO_TO_SEE4 4 int d; #endif /* Test commented-out case */ #if 0 #define IGNORE_MACRO int e; # if 0 # define ANOTHER_IGNORE_MACRO int f; # else # define YAIM # endif #else # define SEE_THIS_MACRO 1 int g; #endif /* Test path selection algorithm */ #ifdef OK #define PATH1 int foo1 (void) { #elif defined (OK) #define PATH2 int foo2 (void) { #else #define PATH3 int foo3 (void) { #endif } int bar1 (void) { #ifdef OK #define PATH1b } int p1; #elif defined (OK) #define PATH2b } int p2; #else #define PATH3b } int p3; #endif geany-2.1/tests/ctags/debian_432872.f900000644000175000017500000000055415031717571014251 00000000000000! { dg-do compile } ! PR18923 segfault after subroutine name confusion. module FOO contains subroutine FOO ! { dg-error "conflicts with PROCEDURE" } character(len=selected_int_kind(0)) :: C ! { dg-error "data declaration statement" } end subroutine ! { dg-error "Expecting END MODULE statement" } end ! { dg-warning "CONTAINS statement without FUNCTION" }geany-2.1/tests/ctags/db-trig.sql0000644000175000017500000000171115031717571013723 00000000000000rem ----------------------------------------------------------------------- rem URL: http://www.orafaq.com/scripts/plsql/db-trig.txt rem Filename: db-trig.sql rem Purpose: Demonstrate database triggers (available from Oracle 8i) rem Need DBA or CREATE ANY TRIGGER privs rem Date: 28-Aug-1998 rem Author: Frank Naude (frank@ibi.co.za) rem ----------------------------------------------------------------------- create or replace trigger restrict_login after logon on database declare flag number := 0; begin select 1 into flag from sys.v_$session where program like '%sqlplus%'; if flag = 1 then raise_application_error(-20000, 'No access from sqlplus'); end if; end; / show errors CREATE OR REPLACE TRIGGER startup_db after startup on database begin dbms_shared_pool.keep ('SYS.STANDARD','P'); dbms_shared_pool.keep ('SYS.DBMS_STANDARD','P'); end; / show errors geany-2.1/tests/ctags/cxx14-combined.cpp0000644000175000017500000000030615031717571015102 00000000000000struct Base { virtual void baz() const throw() = 0; }; struct Foo final : public Base { static constexpr auto bar() noexcept { return 1; } virtual void baz() const throw() final override; }; geany-2.1/tests/ctags/cxx11-raw-strings.cpp0000644000175000017500000000126415031717571015603 00000000000000 static const char* str1 = R"blah( lots of text )blah"; struct typ1 { int memb1; }; static const char* str2 = R"blah( lots of text including a quote" )blah"; struct typ2 { int memb2; }; /* check we don't get confused by string concatenation */ #define FOUR "four" static const char* str3 = FOUR"f(iv)e"; struct typ3 { int memb3; }; /* check for prefixes */ static const char* str4 = LR"blah(";int bug4;)blah"; struct typ4 { int memb4; }; static const char* str5 = u8R"blah(";int bug5;)blah"; struct typ5 { int memb5; }; static const char* str6 = uR"blah(";int bug6;)blah"; struct typ6 { int memb6; }; static const char* str7 = UR"blah(";int bug7;)blah"; struct typ7 { int memb7; }; geany-2.1/tests/ctags/cxx11-override.cpp0000644000175000017500000000033015031717571015133 00000000000000class Base { public: virtual void foo() = 0; }; class Derived : public Base { virtual void foo() override; virtual void override(); }; void Base::foo() { } void Derived::foo() { } void Derived::override() { } geany-2.1/tests/ctags/cxx11-noexcept.cpp0000644000175000017500000000020515031717571015142 00000000000000class Base { public: virtual void foo() noexcept = 0; virtual void bar() const noexcept = 0; int baz() noexcept { return 42; } }; geany-2.1/tests/ctags/cxx11-final.cpp0000644000175000017500000000032515031717571014411 00000000000000class Base { public: virtual void foo() = 0; }; class Derived final : public Base { virtual void foo() final; virtual void final(); }; void Base::foo() { } void Derived::foo() { } void Derived::final() { } geany-2.1/tests/ctags/cxx11enum.cpp0000644000175000017500000000024515031717571014210 00000000000000 enum A:int {A_a, A_b, A_c}; enum B:long {B_a, B_b, B_c}; enum C:unsigned int {C_a, C_b, C_c}; class Foo { enum D:int {a, b, c}; virtual void foo(enum D a); }; geany-2.1/tests/ctags/cython_sample2.pyx0000644000175000017500000000044515031717571015346 00000000000000# -*- cython-mode -*- # test code for cython functionality with complex datatypes import numpy as np cimport numpy as np cpdef np.ndarray[dtype=double, ndim=1] my_fun(np.ndarray[dtype=double, ndim=1] x): cdef np.ndarray[dtype=double, ndim=1, mode="c"] res res = 2*x return res geany-2.1/tests/ctags/cython_sample.pyx0000644000175000017500000000174015031717571015263 00000000000000# -*- cython-mode -*- # test code for python/cython functionality python_var = 1 cdef int i = 2 # cython identifiers are not indexed cdef : int j = 3 cdef k = 4 # no type here cdef int int_identity(int i) : return i # here is a long one cdef object int2string(int i) : return str(i) # a cdef class cdef class CDefClass : def __init__(self) : pass def standard_method(self,i) : return i cdef int c_method(self,int i) : return i # a python function def identity(x) : return x # a python class class StdClass : def return_me(self) : return "me" cdef CDefClass cdefObj = CDefClass() stdObj = StdClass() print "cython_sample: testing to make sure this file compiles and runs..." print "i is: ", i print "j is: ", j print "i via identity: ", int_identity(i) print "i via int2string: ", int2string(i) print "cdefObj: ", cdefObj.c_method(i) print "k via py identity", identity(k) print "py method call:", stdObj.return_me() geany-2.1/tests/ctags/css-trivial.css0000644000175000017500000000016215031717571014623 00000000000000 html{ font: sans-serif; } a{ color: red; } p{ text-align: justify; } input, textarea{ border: 1px solid green; } geany-2.1/tests/ctags/css-tag-types.css0000644000175000017500000000160015031717571015064 00000000000000a foo{ color: red } a #foo{ color: red } a .foo{ color: red } a foo bar{ color: red } a foo #bar{ color: red } a foo .bar{ color: red } a #foo bar{ color: red } a #foo #bar{ color: red } a #foo .bar{ color: red } a .foo bar{ color: red } a .foo #bar{ color: red } a .foo .bar{ color: red } #a foo{ color: red } #a #foo{ color: red } #a .foo{ color: red } #a foo bar{ color: red } #a foo #bar{ color: red } #a foo .bar{ color: red } #a #foo bar{ color: red } #a #foo #bar{ color: red } #a #foo .bar{ color: red } #a .foo bar{ color: red } #a .foo #bar{ color: red } #a .foo .bar{ color: red } .a foo{ color: red } .a #foo{ color: red } .a .foo{ color: red } .a foo bar{ color: red } .a foo #bar{ color: red } .a foo .bar{ color: red } .a #foo bar{ color: red } .a #foo #bar{ color: red } .a #foo .bar{ color: red } .a .foo bar{ color: red } .a .foo #bar{ color: red } .a .foo .bar{ color: red } geany-2.1/tests/ctags/css-singlequote-in-comment-issue2.css0000644000175000017500000000002515031717571020762 00000000000000a{x:0;/*'*/} b{y:0;} geany-2.1/tests/ctags/css-simple.css0000644000175000017500000000041615031717571014444 00000000000000 * { padding:0; } html { margin: 0 } .header { font-size: 200%; } #footer { font-size: 80%; } div.magic { /* haha */ text-decoration: blink; } .red { color: red } ul li { padding-left: 1em; } .foo a, .foo b { color: blue; } ul > li > a { font: monospace; } geany-2.1/tests/ctags/css-pseudo-classes.css0000644000175000017500000000073515031717571016111 00000000000000 tr:nth-child(2n+1) { background-color: light-gray } tr:nth-child(odd) { background-color: light-gray } tr:nth-child(2n) { background-color: light-gray } tr:nth-child(even) { background-color: light-gray } tr:nth-child(10n+0) { background-color: gray } span:nth-child(0n+1) { color: lime; } span:nth-child(1) { color: lime; } span:nth-child(-n+3) { color: lime; } span:not(:first-child) { color: red; } body :not(span) { color: green; } a:lang(en):after { content: "[en]" } geany-2.1/tests/ctags/css-namespace-selectors.css0000644000175000017500000000010315031717571017101 00000000000000 |a { color: red; } svg|a { color: green; } *|div { color: blue; } geany-2.1/tests/ctags/css-comma-no-space.css0000644000175000017500000000004715031717571015752 00000000000000input,textarea{border: 1px solid red;} geany-2.1/tests/ctags/css-attribute-selectors.css0000644000175000017500000000024215031717571017154 00000000000000 body { color: black; } a[href^="http://"] { color: red; } a[href^="https://"] { color: green; } a[lang~=en] { background-color: light-green; } p { color: gray } geany-2.1/tests/ctags/css-at-supports.css0000644000175000017500000000016215031717571015452 00000000000000 @supports ((test-property: 42) or (test-property2: 42)) { html { test-property: 42; } } html { color: blue; } geany-2.1/tests/ctags/css-at-rules.css0000644000175000017500000000062315031717571014707 00000000000000 @import "foo.css"; @namespace url(http://www.w3.org/1999/xhtml); @namespace svg url(http://www.w3.org/2000/svg); @media screen { body { font-size: 10pt; } } @media print { body { font-size: 12px; } } @media screen, print { body { line-height: 1.2 } } @page :first { margin: 2in; } @font-face { font-family: Sample; src: local("Sample"), url(Sample.ttf); } html { color: blue; } geany-2.1/tests/ctags/cpp_destructor.cpp0000644000175000017500000000007215031717571015415 00000000000000A::~A() { } B:: ~B () { } // bug 1585745 C:: ~ C () { } geany-2.1/tests/ctags/countall.sql0000644000175000017500000000301115031717571014207 00000000000000rem ----------------------------------------------------------------------- rem URL: http://www.orafaq.com/scripts/plsql/countall.txt rem Filename: countall.sql rem Purpose: Count the number of rows for ALL tables in current schema rem using PL/SQL rem Date: 15-Apr-2000 rem Author: Eberhardt, Roberto (Bolton) (reberhar@husky.ca) rem ----------------------------------------------------------------------- set serveroutput on size 1000000 DECLARE t_c1_tname user_tables.table_name%TYPE; t_command varchar2(200); t_cid integer; t_total_records number(10); stat integer; row_count integer; t_limit integer := 0; -- Only show tables with more rows cursor c1 is select table_name from user_tables order by table_name; BEGIN t_limit := 0; open c1; loop fetch c1 into t_c1_tname; exit when c1%NOTFOUND; t_command := 'SELECT COUNT(0) FROM '||t_c1_tname; t_cid := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(t_cid,t_command,dbms_sql.native); DBMS_SQL.DEFINE_COLUMN(t_cid,1,t_total_records); stat := DBMS_SQL.EXECUTE(t_cid); row_count := DBMS_SQL.FETCH_ROWS(t_cid); DBMS_SQL.COLUMN_VALUE(t_cid,1,t_total_records); if t_total_records > t_limit then DBMS_OUTPUT.PUT_LINE(rpad(t_c1_tname,55,' ')|| to_char(t_total_records,'99999999')||' record(s)'); end if; DBMS_SQL.CLOSE_CURSOR(t_cid); end loop; close c1; END; / geany-2.1/tests/ctags/continuation.mak0000644000175000017500000000006215031717571015054 00000000000000 A = \ a=b \ \ b=c \ \ c=d \ \ d=e \ B = dummy geany-2.1/tests/ctags/continuation.f900000644000175000017500000000024415031717571014704 00000000000000! Problem reported by Jim on 7 Jul 2002 module test real*8 :: & para_a, & ! para_a is ... para_b, & ! para_b is ... para_c ! para_c is ... geany-2.1/tests/ctags/complex-return.js0000644000175000017500000000167415031717571015204 00000000000000 function func1() { return { a: 1, b:2 }; } function func2() { return 42; } var class1 = function() { this.method1 = function() { return 42; }; this.method2 = function() { return { a:1, b:2 }; }; this.method3 = function() { return [1, 2, 3]; }; this.method4 = function() { return "hello"; }; }; var class2 = function() { this.c2m1 = function() { c2m3(function() { return { 'test': {} }; }); }; this.c2m2 = function(f) { return { 'ret': f() }; }; this.c2m3 = function(f) { return f(); }; }; var class3 = function() { this.c3m1 = function() { return function(n) { if (n == 42) { return 0; } else { return (n + 1) % 42; } }; }; this.c3m2 = function() { return 0; }; } var class4 = function() { this.method1 = function() { return [{a:1, b:2}, {a:3, b:4}, {a:5, b:6}]; }; this.method2 = function() { return 0; }; }; geany-2.1/tests/ctags/common.f0000644000175000017500000000017615031717571013315 00000000000000 PROGRAM main COMMON /common1/ c1a, c1b COMMON /common2/ c2a (1:3), c2b /common3/ c3a, c3b END geany-2.1/tests/ctags/combined.php0000644000175000017500000000100315031717571014135 00000000000000 <?= htmlspecialchars($title) ?>

Home page

By
geany-2.1/tests/ctags/combined.html0000644000175000017500000000101215031717571014312 00000000000000 <?php echo htmlspecialchars($title) ?>

Home page

By
geany-2.1/tests/ctags/class.ps10000644000175000017500000000064315031717571013407 00000000000000class MyException : Exception { MyException([String]$Message) : base([String]$Message) { Write-Host "dummy" } } class Derived : Base { } class Derived2: Base { } class Foo { $Property1 $Property2 = 20 Method($Arg1) { $LocalVar1 = 100 Write-Host "dummy" } } function GetBar { $LocalVar2 = 200 Write-Host "dummy" } function GetBaz() { Write-Host "dummy" } geany-2.1/tests/ctags/classes.php0000644000175000017500000000056315031717571014024 00000000000000Expected output is classes: Bar Foo functions: __construct [Foo] __construct [Bar] method1 [Foo] method1 [Bar] method2 [Foo] typedef int matrix3??(3??); struct str ??< char *buf; unsigned int len, size; ??>; int main(void) ??< const char *hello = STRINGIFY(hello); matrix3 m = M3_INIT(1, 2, 3); return m??(2??); ??> /* FIXME: how to test "??'" ("^"), "??!" ("|") and "??-" ("~")? * I can't think of a construct CTags cares about using those */ ??=if 0 #define bug4 ??=endif /* test the same with untaken preprocessor paths (as they are then not read by * the C parser but get.c) */ #if 0 ??=define if0d_A 1 ??=define if0d_B 2 ??=define if0d_C 4 ???/ #define bug5 ??=define I ?????/ #define bug6 ??=define I ??????????/ #define bug7 #endif geany-2.1/tests/ctags/c-digraphs.c0000644000175000017500000000105015031717571014033 00000000000000 /* simple trigraphs */ %:define A 1 %:define B 2 %:define STRINGIFY_INTERN(x) %:x %:define STRINGIFY(x) STRINGIFY_INTERN(x) %:define M3_INIT(a, b, c) <% a, b, c %> typedef int matrix3<:3:>; struct str <% char *buf; unsigned int len, size; %>; int main(void) <% const char *hello = STRINGIFY(hello); matrix3 m = M3_INIT(1, 2, 3); return m<:2:>; %> %:if 0 #define bug4 %:endif /* test the same with untaken preprocessor paths (as they are then not read by * the C parser but get.c) */ #if 0 %:define if0d_A 1 %:define if0d_B 2 #endif geany-2.1/tests/ctags/byte.f0000644000175000017500000000021215031717571012757 00000000000000! Provided by Brian Helsinki, 7 March 2003 program byte_test BYTE A, B, C BYTE A1, B1, C1(10) BYTE A2 /'x'/, B2 /255/, C2(10) END geany-2.1/tests/ctags/bug961001.v0000644000175000017500000000126115031717571013277 00000000000000/* * In Verilog, the following two lines are both valid syntax: * * `define GUEST * `define GUEST * * The first defines "GUEST" as existing, but with no assigned * value. The second defines "GUEST" as existing with an * assigned value. Ctags55 correctly handles both cases, but * Ctags551 - Ctags554 only handles the `define with value * correctly. Here is some test code to demonstrate this: */ `define HOSTA `define HOSTB `define HOSTC `define HOSTD `define GUESTA 1 `define GUESTB 2 `define GUESTC 3 `define GUESTD 4 /* * Ctags55 correctly generates a tag for all `defines in the * code, but Ctags554 does not generate tags for "HOSTB" * or "HOSTD". */ geany-2.1/tests/ctags/bug960316.v0000644000175000017500000000250615031717571013312 00000000000000/************************************************************************** **** * test task one * the line below has 53 asteriks *****************************************************/ task pass_task_1; begin end endtask /************************************************************************** **** * test task one * the line below has 54 asteriks ******************************************************/ task fail_task_2; begin end endtask /************************************************************************** **** * test function one * the line below has 53 asteriks *****************************************************/ function pass_func_1; begin end endfunction /************************************************************************** **** * test function two * the line below has 54 asteriks ******************************************************/ function fail_func_2; begin end endfunction /************************************************************************** **** * test function one * the line below has 53 asteriks *****************************************************/ `define pass_define_1 1'b1; /************************************************************************** **** * test function two * the line below has 54 asteriks ******************************************************/ `define fail_define_2 1'b1; geany-2.1/tests/ctags/bug877956.f900000644000175000017500000000336615031717571013471 00000000000000! Bugs item #877956, was opened at 2004-01-15 17:59 ! Message generated for change (Tracker Item Submitted) made by Item Submitter ! You can respond by visiting: ! https://sourceforge.net/tracker/?func=detail&atid=106556&aid=877956&group_id=6556 ! ! Category: None ! Group: None ! Status: Open ! Resolution: None ! Priority: 5 ! Submitted By: Randy Hood (randy762) ! Assigned to: Nobody/Anonymous (nobody) ! Summary: Broken Fortran variable listing after =-1 ! ! Initial Comment: ! When I run ctags v5.5.2 on Redhat Linux 9 with the command ! ! ctags --Fortran-kinds=v -x test.f90 ! ! where test.f90 is ! ---------------------------------- PROGRAM test IMPLICIT NONE INTEGER :: cm1 =-1, c2 = 2 END PROGRAM test ! ------------------------------------- ! ! I only get this one line of output ! ! cm1 variable 4 test.f90 INTEGER :: cm1 =-1, c2 = 2 ! ! If I change one line of test.f90 so that it is now ! ---------------------------------------- PROGRAM test IMPLICIT NONE INTEGER :: cm1 = -1, c2 = 2 END PROGRAM test ! ----------------------------------------- ! and run the command ! ! ctags --Fortran-kinds=v -x test.f90 ! ! I get this correct output ! ! c2 variable 4 test.f90 INTEGER :: cm1 = -1, c2 = 2 ! cm1 variable 4 test.f90 INTEGER :: cm1 = -1, c2 = 2 ! ! ---------------------------------------------------------------------- ! You can respond by visiting: ! https://sourceforge.net/tracker/?func=detail&atid=106556&aid=877956&group_id=6556 geany-2.1/tests/ctags/bug872494.cpp0000644000175000017500000000243615031717571013642 00000000000000/* Bugs item #872494, was opened at 2004-01-07 16:33 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=106556&aid=872494&group_id=6556 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Igor Proskuriakov (proskig) Assigned to: Nobody/Anonymous (nobody) Summary: C++ class template specialization Initial Comment: Hi, some time ago I posted a bug related to C++ member template, which was fixed using patch bug849591.diff. Many thanks - it really fixed the problem ! Now about a different one. When parsing C++ file ctags seems to ignore template specialization, but I think that it maybe useful to add it as a configurable feature. Another problem is that template specialization seems to confuse patched version of ctags (patch bug849591.diff). When running a patched version against the following file */ template class TemplClass { double i;}; template<> class TemplClass< char* > { int i;}; class FooClass2{}; /* it does not generate tag for FooClass2 while ctags 5.5.2 does generate tag for FooClass2. Neither of them generate tag for specialization TemplClass. thanks in advance and let me know should you need more info! Igor */ geany-2.1/tests/ctags/bug858165.f900000644000175000017500000000145115031717571013451 00000000000000! Bugs item #858165, was opened at 2003-12-11 10:09 ! Message generated for change (Tracker Item Submitted) made by Item Submitter ! You can respond by visiting: ! https://sourceforge.net/tracker/?func=detail&atid=106556&aid=858165&group_id=6556 ! ! Category: None ! Group: None ! Status: Open ! Resolution: None ! Priority: 5 ! Submitted By: Blazej Krzeminski (blazk) ! Assigned to: Nobody/Anonymous (nobody) ! Summary: Fortran90: comment line after continuation character & ! ! Initial Comment: program test integer :: a, & !comment on variable a b, & !comment on variable b !more comment on variable b, CTAGS STOPS HERE c, & !comment on variable c d !comment on variable d end program test ! ctags will index program test, a,b but not c,d geany-2.1/tests/ctags/bug852368.cpp0000644000175000017500000000137715031717571013643 00000000000000/* Bugs item #852368, was opened at 2003-12-01 23:20 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=106556&aid=852368&group_id=6556 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Welti Marco (cider101) Assigned to: Nobody/Anonymous (nobody) Summary: c/c++ unabalanced template brackets in signature Initial Comment: hi, ctags 5.5x generates unbalanced template brackets in the method/function signature if a function parameter is a template. i.e. */ void foo(std::vector &); /* generates the following signature signature:void (std::vector<&) let me know if you need more details. regards cider */ geany-2.1/tests/ctags/bug849591.cpp0000644000175000017500000000305115031717571013636 00000000000000/* Bugs item #849591, was opened at 2003-11-26 11:35 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=106556&aid=849591&group_id=6556 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Igor Proskuriakov (proskig) Assigned to: Nobody/Anonymous (nobody) Summary: C++ Member templates Initial Comment: Hi, There seems to be a problem with how ctags treats C++ member templates. Example: */ void MainClass< ParamClass1&, ParamClass2>::Foo() { exit(0); }; /* Generates erroneous tag ParamClass1 test.cpp /^void MainClass< ParamClass1&, ParamClass2>::Foo()$/;" v Full ctags file: !_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ !_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ !_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/ !_TAG_PROGRAM_NAME Exuberant Ctags // !_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/ !_TAG_PROGRAM_VERSION 5.5.2 // Foo test.cpp /^void MainClass< const ParamClass1&, ParamClass2>::Foo()$/;" f class:ParamClass2 ParamClass1 test.cpp /^void MainClass< ParamClass1&, ParamClass2>::Foo()$/;" v ----- Removing space after first angle bracket: */ void MainClass::Foo() { exit(0); }; /* makes ctags to drop first letter from parameter class name: aramClass1 test.cpp /^void MainClass::Foo()$/;" v Let me know if you need any clarification with this issue. Many thanks in advance! */ geany-2.1/tests/ctags/bug842077.pl0000644000175000017500000000152515031717571013463 00000000000000# Bugs item #842077, was opened at 2003-11-14 10:57 # Message generated for change (Tracker Item Submitted) made by Item Submitter # You can respond by visiting: # https://sourceforge.net/tracker/?func=detail&atid=106556&aid=842077&group_id=6556 # Category: None # Group: None # Status: Open # Resolution: None # Priority: 5 # Submitted By: Christian Reis (kiko_async) # Assigned to: Nobody/Anonymous (nobody) # Summary: wrong precedence applied to perl POD and "here document" # Initial Comment: # Basically, ctags stops parsing when it reaches code # with the syntax below: # ... $this->print_log(< ctags -f - temp3.h foo temp3.h /^ int foo;$/;" m namespace: That last field should be "namespace:" and the kind field should be variable, not member. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=106556&aid=639644&group_id=6556 */ geany-2.1/tests/ctags/bug639639.h0000644000175000017500000000222515031717571013305 00000000000000/* Date: Sun, 17 Nov 2002 04:41:42 -0800 Subject: [ ctags-Bugs-639639 ] incorrect enum field for C++ header Bugs item #639639, was opened at 2002-11-17 13:41 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=106556&aid=639639&group_id=6556 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Matthias S. Benkmann (mbenkmann) Assigned to: Nobody/Anonymous (nobody) Summary: incorrect enum field for C++ header Initial Comment: ----------- temp2.h ------------- */ namespace Namespace1 { int function2(char* str); } enum {anon2=1000}; ---------------------------- /* > ctags --excmd=number --fields=+kKmnsSz --file-scope=no -f - temp2.h Namespace1 temp2.h 1;" kind:namespace line:1 anon2 temp2.h 6;" kind:enumerator line:6 enum:Namespace1 As you can see ctags thinks that anon2 belongs to enum Namespace1 which it obviously doesn't (Namespace1 is not even an enum). It should be enum:. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=106556&aid=639639&group_id=6556 */ geany-2.1/tests/ctags/bug620288.f0000644000175000017500000000446115031717571013275 00000000000000C Bugs item #620288, was opened at 2002-10-08 08:15 C You can respond by visiting: C https://sourceforge.net/tracker/?func=detail&atid=106556&aid=620288&group_id=6556 C C Category: None C Group: None C Status: Open C Resolution: None C Priority: 5 C Submitted By: Nobody/Anonymous (nobody) C Assigned to: Nobody/Anonymous (nobody) C Summary: fortran function definition C C Initial Comment: C C System Information: C -------------- C ctags version: C Exuberant Ctags 5.3.1, Copyright (C) 1996-2002 Darren C Hiebert C Compiled: Sep 12 2002, 10:22:42 C Addresses: , C http://ctags.sourceforge.net C Optional compiled features: +wildcards, +regex C C Unix: C HP-UX B.11.00 A 9000/800 551726527 C -------------- C C Symptoms: C -------------- C I have a fortran file that has a single function. This C function has a C return type of double precision. I type $ctags bar.f . C This produces the expected C tags file. However, tags does not contain the function C definition. C C This does not occur when the same function's return C type has been changed to C a integer or character data return type. C -------------- C C C Examples in which I can repeat the experience with their C respective tags files: C -------------- C C C foo.f C -------------- integer function foo(a) integer a foo = a end C -------------- C C C tags C -------------- C !_TAG_FILE_FORMAT 2 /extended C format; --format=1 will not append ;" to lines/ C !_TAG_FILE_SORTED 1 C /0=unsorted, 1=sorted, 2=foldcase/ C !_TAG_PROGRAM_AUTHOR Darren Hiebert C /dhiebert@users.sourceforge.net/ C !_TAG_PROGRAM_NAME Exuberant Ctags // C !_TAG_PROGRAM_URL C http://ctags.sourceforge.net /official site/ C !_TAG_PROGRAM_VERSION 5.3.1 // C foo foo.f /^ integer function foo(/;" f C -------------- C C C C bar.f C --------------- double precision function bar(a) double precision a bar = a end C -------------- C C tags C --------------- C !_TAG_FILE_FORMAT 2 /extended C format; --format=1 will not append ;" to lines/ C !_TAG_FILE_SORTED 1 C /0=unsorted, 1=sorted, 2=foldcase/ C !_TAG_PROGRAM_AUTHOR Darren Hiebert C /dhiebert@users.sourceforge.net/ C !_TAG_PROGRAM_NAME Exuberant Ctags // C !_TAG_PROGRAM_URL C http://ctags.sourceforge.net /official site/ C !_TAG_PROGRAM_VERSION 5.3.1 // C --------------- geany-2.1/tests/ctags/bug612621.pl0000644000175000017500000000230315031717571013444 00000000000000=pod Bugs item #612621, was opened at 2002-09-21 21:23 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=106556&aid=612621&group_id=6556 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Richard Donkin (rdonkin) Assigned to: Nobody/Anonymous (nobody) Summary: Perl POD syntax -> incomplete tags file Initial Comment: In the following test file, ctags 5.2.3 (compiled from source on Cygwin) only adds the first subroutine (bar) to the tags file, when run using: ctags --totals -- language-force=perl temp ----------------- =cut sub bar() { print "blah\n"; =for print "blah2\n"; # Note: next line has trailing space =cut } sub foo { print "hello\n"; } =pod The tags file looks like this: !_TAG_FILE_FORMAT 2 /extended format; -- format=1 will not append ;" to lines/ !_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted/ !_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/ !_TAG_PROGRAM_NAME Exuberant Ctags // !_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/ !_TAG_PROGRAM_VERSION 5.2.3 // bar temp /^sub bar() {$/;" s The workaround is to delete the trailing space at the end of the '=cut' line. =cut geany-2.1/tests/ctags/bug612019.pas0000644000175000017500000000124315031717571013617 00000000000000(* Bugs item #612019, was opened at 2002-09-20 15:29 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=106556&aid=612019&group_id=6556 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Konstantin Stupnik (xecutor) Assigned to: Nobody/Anonymous (nobody) Summary: pascal parser Initial Comment: In attached sample there are some lines from tags file generated for object pascal sources. There are some problems with this lines. Generally speaking they are parsed incorrectly. *) unit a; interface type TTest=class procedure Test1; procedure Test2; procedure Test3; end; implementation end. geany-2.1/tests/ctags/bug565813.f900000644000175000017500000000133015031717571013440 00000000000000module ctags_bug implicit none private save type :: foo_t integer :: bar end type foo_t integer, parameter :: N = 1000 public :: foo_t public :: foo_setbar public :: foo_set_bar public :: foo_getbar contains subroutine foo_setbar (f,b) type(foo_t), intent(out) :: f integer, intent(in) :: b f%bar = b end subroutine foo_setbar pure subroutine foo_set_bar (f,b) type(foo_t), intent(out) :: f integer, intent(in) :: b f%bar = b end subroutine foo_set_bar integer function foo_getbar (f) type(foo_t), intent(in) :: f foo_getbar = f%bar end function foo_getbar end module ctags_bug geany-2.1/tests/ctags/bug556646.c0000644000175000017500000000130415031717571013271 00000000000000/* Bugs item #556646, was opened at 2002-05-16 14:36 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=106556&aid=556646&group_id=6556 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Howard Wu (howardhbwu) Assigned to: Nobody/Anonymous (nobody) Summary: Some typedef can not be tagged in C code Initial Comment: My Ctags version: 5.2.3 */ typedef enum{ INDX_NIL = 0x00, INDX_P, INDX_S, INDX_M, INDX_S1, INDX_S2, INDX_S3, INDX_C1, INDX_C2, INDX_S4, INDX_T, INDX_L, INDX_R, INDX_R2, INDX_IM1, INDX_IM2, INDX_L2, INDX_T2, A = INDX_T2 } task_indx_type; /* "task_indx_type" can not be tagged with Ctags */ geany-2.1/tests/ctags/bug556645.c0000644000175000017500000000200715031717571013271 00000000000000/* From noreply@sourceforge.net Wed May 29 23:11:25 2002 Date: Wed, 15 May 2002 23:25:52 -0700 From: noreply@sourceforge.net To: noreply@sourceforge.net Subject: [ ctags-Bugs-556645 ] Some typedef can not be tagged in C code Bugs item #556645, was opened at 2002-05-16 14:25 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=106556&aid=556645&group_id=6556 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Howard Wu (howardhbwu) Assigned to: Nobody/Anonymous (nobody) Summary: Some typedef can not be tagged in C code Initial Comment: My Ctags version:5.2.3 The typedef of "Qtype" as the following, */ #define A1(_type, _length) \ struct { \ unsigned int head; \ unsigned int tail; \ bool is_full; \ _type queue[_length]; \ } typedef A1(ilm_struct, 1) Qtype; /* As using ctags, the "Qtype" can not be tagged by it. */ geany-2.1/tests/ctags/bug538629.asm0000644000175000017500000000002415031717571013626 00000000000000 MYMACRO EQU 01234h geany-2.1/tests/ctags/bug507864.c0000644000175000017500000000014215031717571013266 00000000000000FUNCSTS func1(ENTSEQNO(seq)) {} FUNCSTS func2 (MEMTXT(form_msg), MEMTXT (text), MEMTXT (mail)) {} geany-2.1/tests/ctags/bug3571233.js0000644000175000017500000000225615031717571013542 00000000000000/* * "Functions nested inside methods show improper scope with the parent method * being reported as "function"" * * ctags -f - bug3571233.js should output: * * classes * MyClass * * methods * MyClass.method2 * * functions * MyClass.method2.nestedFunction1 * MyClass.method2.nestedFunction2 * function1 * function1.nestedFunction3 * function2 * function2.nestedFunction4 * function2.nestedFunction5 * * * Note that MyClass is shown both as a class and as a function (the parser * discovers it actually is a class only later on). This isn't really easy to * fix because a JavaScript function is only a class if it happen to be used as * one, for example it has prototypes. */ function MyClass() { } MyClass.prototype.method2 = function() { // these functions have improper scope function nestedFunction1() { } function nestedFunction2() { } }; // following work fine, just here as a reference function function1() { function nestedFunction3() { } }; function2 = function() { function nestedFunction4() { } function nestedFunction5() { } }; geany-2.1/tests/ctags/bug3168705.py0000644000175000017500000000014715031717571013561 00000000000000class A: def func1(): """this is a comment""" pass def func2(): pass geany-2.1/tests/ctags/bug3036476.js0000644000175000017500000000060515031717571013543 00000000000000/* * "Lowercase "object" isn't a keyword" * * ctags -f - bug3036476.js should output: * * variables: * container * * functions: * container.object * container.object.method1 * container.object.method2 */ var container = {}; container.object = function() {} container.object.method1 = function() {} container.object.method2 = function() {} geany-2.1/tests/ctags/bug2888482.js0000644000175000017500000000067215031717571013562 00000000000000function scrollEditBox() { var editBoxEl = document.getElementById("wpTextbox1"); var scrollTopEl = document.getElementById("wpScrolltop"); var editFormEl = document.getElementById("editform"); if (editBoxEl && scrollTopEl) { if (scrollTopEl.value) editBoxEl.scrollTop = scrollTopEl.value; editFormEl.onsubmit = function() { document.getElementById("wpScrolltop").value = document.getElementById("wpTextbox1").scrollTop; } } } geany-2.1/tests/ctags/bug2886870.tex0000644000175000017500000002163015031717571013742 00000000000000Sample LaTeX file The name of this file is intro.tex. \documentclass[12pt]{article} \usepackage{amsmath} % need for subequations \usepackage{graphicx} % need for figures \usepackage{verbatim} % useful for program listings \usepackage{color} % use if color is used in text \usepackage{subfigure} % use for side-by-side figures \usepackage{hyperref} % use for hypertext links, including those to external documents and URLs % don't need the following. simply use defaults \setlength{\baselineskip}{16.0pt} % 16 pt usual spacing between lines \setlength{\parskip}{3pt plus 2pt} \setlength{\parindent}{20pt} \setlength{\oddsidemargin}{0.5cm} \setlength{\evensidemargin}{0.5cm} \setlength{\marginparsep}{0.75cm} \setlength{\marginparwidth}{2.5cm} \setlength{\marginparpush}{1.0cm} \setlength{\textwidth}{150mm} \begin{comment} \pagestyle{empty} % use if page numbers not wanted \end{comment} % above is the preamble \begin{document} \begin{center} {\large Introduction to \LaTeX} \\ % \\ = new line \copyright 2006 by Harvey Gould \\ December 5, 2006 \end{center} \section{Introduction} \TeX\ looks more difficult than it is. It is almost as easy as $\pi$. See how easy it is to make special symbols such as $\alpha$, $\beta$, $\gamma$, $\delta$, $\sin x$, $\hbar$, $\lambda$, $\ldots$ We also can make subscripts $A_{x}$, $A_{xy}$ and superscripts, $e^x$, $e^{x^2}$, and $e^{a^b}$. We will use \LaTeX, which is based on \TeX\ and has many higher-level commands (macros) for formatting, making tables, etc. More information can be found in Ref.~\cite{latex}. We just made a new paragraph. Extra lines and spaces make no difference. Note that all formulas are enclosed by \$ and occur in \textit{math mode}. The default font is Computer Modern. It includes \textit{italics}, \textbf{boldface}, \textsl{slanted}, and \texttt{monospaced} fonts. \section{Equations} Let us see how easy it is to write equations. \begin{equation} \Delta =\sum_{i=1}^N w_i (x_i - \bar{x})^2 . \end{equation} It is a good idea to number equations, but we can have a equation without a number by writing \begin{equation} P(x) = \frac{x - a}{b - a} , \nonumber \end{equation} and \begin{equation} g = \frac{1}{2} \sqrt{2\pi} . \nonumber \end{equation} We can give an equation a label so that we can refer to it later. \begin{equation} \label{eq:ising} E = -J \sum_{i=1}^N s_i s_{i+1} , \end{equation} Equation~\eqref{eq:ising} expresses the energy of a configuration of spins in the Ising model.\footnote{It is necessary to process (typeset) a file twice to get the counters correct.} We can define our own macros to save typing. For example, suppose that we introduce the macros: \begin{verbatim} \newcommand{\lb}{{\langle}} \newcommand{\rb}{{\rangle}} \end{verbatim} \newcommand{\lb}{{\langle}} \newcommand{\rb}{{\rangle}} Then we can write the average value of $x$ as \begin{verbatim} \begin{equation} \lb x \rb = 3 \end{equation} \end{verbatim} The result is \begin{equation} \lb x \rb = 3 . \end{equation} Examples of more complicated equations: \begin{equation} I = \! \int_{-\infty}^\infty f(x)\,dx \label{eq:fine}. \end{equation} We can do some fine tuning by adding small amounts of horizontal spacing: \begin{verbatim} \, small space \! negative space \end{verbatim} as is done in Eq.~\eqref{eq:fine}. We also can align several equations: \begin{align} a & = b \\ c &= d , \end{align} or number them as subequations: \begin{subequations} \begin{align} a & = b \\ c &= d . \end{align} \end{subequations} We can also have different cases: \begin{equation} \label{eq:mdiv} m(T) = \begin{cases} 0 & \text{$T > T_c$} \\ \bigl(1 - [\sinh 2 \beta J]^{-4} \bigr)^{\! 1/8} & \text{$T < T_c$} \end{cases} \end{equation} write matrices \begin{align} \textbf{T} &= \begin{pmatrix} T_{++} \hfill & T_{+-} \\ T_{-+} & T_{--} \hfill \end{pmatrix} , \nonumber \\ & = \begin{pmatrix} e^{\beta (J + B)} \hfill & e^{-\beta J} \hfill \\ e^{-\beta J} \hfill & e^{\beta (J - B)} \hfill \end{pmatrix}. \end{align} and \newcommand{\rv}{\textbf{r}} \begin{equation} \sum_i \vec A \cdot \vec B = -P\!\int\! \rv \cdot \hat{\mathbf{n}}\, dA = P\!\int \! {\vec \nabla} \cdot \rv\, dV. \end{equation} \section{Tables} Tables are a little more difficult. TeX automatically calculates the width of the columns. \begin{table}[h] \begin{center} \begin{tabular}{|l|l|r|l|} \hline lattice & $d$ & $q$ & $T_{\rm mf}/T_c$ \\ \hline square & 2 & 4 & 1.763 \\ \hline triangular & 2 & 6 & 1.648 \\ \hline diamond & 3 & 4 & 1.479 \\ \hline simple cubic & 3 & 6 & 1.330 \\ \hline bcc & 3 & 8 & 1.260 \\ \hline fcc & 3 & 12 & 1.225 \\ \hline \end{tabular} \caption{\label{tab:5/tc}Comparison of the mean-field predictions for the critical temperature of the Ising model with exact results and the best known estimates for different spatial dimensions $d$ and lattice symmetries.} \end{center} \end{table} \section{Lists} Some example of formatted lists include the following: \begin{enumerate} \item bread \item cheese \end{enumerate} \begin{itemize} \item Tom \item Dick \end{itemize} \section{Figures} We can make figures bigger or smaller by scaling them. Figure~\ref{fig:lj} has been scaled by 60\%. \begin{figure}[h] \begin{center} \includegraphics{figures/sine} \caption{\label{fig:typical}Show me a sine.} \end{center} \end{figure} \begin{figure}[h] \begin{center} \scalebox{0.6}{\includegraphics{figures/lj}} \caption{\label{fig:lj}Plot of the Lennard-Jones potential $u(r)$. The potential is characterized by a length $\sigma$ and an energy $\epsilon$.} \end{center} \end{figure} \section{Literal text} It is desirable to print program code exactly as it is typed in a monospaced font. Use \verb \begin{verbatim} and \verb \end{verbatim} as in the following example: \begin{verbatim} double y0 = 10; // example of declaration and assignment statement double v0 = 0; // initial velocity double t = 0; // time double dt = 0.01; // time step double y = y0; \end{verbatim} The command \verb \verbatiminput{programs/Square.java}\ allows you to list the file \texttt{Square.java} in the directory programs. \section{Special Symbols} \subsection{Common Greek letters} These commands may be used only in math mode. Only the most common letters are included here. $\alpha, \beta, \gamma, \Gamma, \delta,\Delta, \epsilon, \zeta, \eta, \theta, \Theta, \kappa, \lambda, \Lambda, \mu, \nu, \xi, \Xi, \pi, \Pi, \rho, \sigma, \tau, \phi, \Phi, \chi, \psi, \Psi, \omega, \Omega$ \subsubsection{Test for ctags} \subsection{Special symbols} The derivative is defined as \begin{equation} \frac{dy}{dx} = \lim_{\Delta x \to 0} \frac{\Delta y} {\Delta x} \end{equation} \begin{equation} f(x) \to y \quad \mbox{as} \quad x \to x_{0} \end{equation} \begin{equation} f(x) \mathop {\longrightarrow} \limits_{x \to x_0} y \end{equation} \noindent Order of magnitude: \begin{equation} \log_{10}f \simeq n \end{equation} \begin{equation} f(x)\sim 10^{n} \end{equation} Approximate equality: \begin{equation} f(x)\simeq g(x) \end{equation} \LaTeX\ is simple if we keep everything in proportion: \begin{equation} f(x) \propto x^3 . \end{equation} Finally we can skip some space by using commands such as \begin{verbatim} \bigskip \medskip \smallskip \vspace{1pc} \end{verbatim} The space can be negative. \section{\color{red}Use of Color} {\color{blue}{We can change colors for emphasis}}, {\color{green}{but}} {\color{cyan}{who is going pay for the ink?}} \section{\label{morefig}Subfigures} As soon as many students start becoming comfortable using \LaTeX, they want to use some of its advanced features. So we now show how to place two figures side by side. \begin{figure}[h!] \begin{center} \subfigure[Real and imaginary.]{ \includegraphics[scale=0.5]{figures/reim}} \subfigure[Amplitude and phase.]{ \includegraphics[scale=0.5]{figures/phase}} \caption{\label{fig:qm/complexfunctions} Two representations of complex wave functions.} \end{center} \end{figure} We first have to include the necessary package, \verb+\usepackage{subfigure}+, which has to go in the preamble (before \verb+\begin{document}+). It sometimes can be difficult to place a figure in the desired place. Your LaTeX document can be easily modified to make a poster or a screen presentation similar to (and better than) PowerPoint. Conversion to HTML is straightforward. Comments on this tutorial are appreciated. \begin{thebibliography}{5} \bibitem{latex}Helmut Kopka and Patrick W. Daly, \textsl{A Guide to \LaTeX: Document Preparation for Beginners and Advanced Users}, fourth edition, Addison-Wesley (2004). \bibitem{website}Some useful links are given at \url{}. \end{thebibliography} {\small \noindent Updated 5 December 2006.} \end{document} Updated 6 February 2006. geany-2.1/tests/ctags/bug2781264.rb0000644000175000017500000000020415031717571013526 00000000000000 class Foo def foo File.open("foo", "r") do |infile| infile.readline end end def bar print "bar" end end geany-2.1/tests/ctags/bug2777310.js0000644000175000017500000000012615031717571013537 00000000000000var x = 1; var z = {}; var y = []; var a = (42 + 1) * 2; var b = 2 * (42 + 1); geany-2.1/tests/ctags/bug2747828.v0000644000175000017500000000004315031717571013401 00000000000000parameter ramaddr_0 = {1'b1,9'd0}; geany-2.1/tests/ctags/bug2411878.cs0000644000175000017500000000006315031717571013534 00000000000000public class C { private System.String m_name; } geany-2.1/tests/ctags/bug2374109.vhd0000644000175000017500000000030415031717571013701 00000000000000function Pow2( N, Exp : integer ) return mylib.myinteger is Variable Result : integer := 1; begin for i in 1 to Exp loop Result := Result * N; end loop; return( Result ); end Pow; geany-2.1/tests/ctags/bug2117073.java0000644000175000017500000000060015031717571014033 00000000000000public class AAssignmentExp { public AAssignmentExp(@SuppressWarnings("hiding") TAssign _token_, @SuppressWarnings("hiding") PLvalue _lvalue_, @SuppressWarnings("hiding") PExp _exp_) { setToken(_token_); setLvalue(_lvalue_); setExp(_exp_); } @Override void removeChild(@SuppressWarnings("unused") Node child) { } } geany-2.1/tests/ctags/bug2075402.py0000644000175000017500000000002215031717571013537 00000000000000y = 1 # """ x = 2 geany-2.1/tests/ctags/bug2049723.java0000644000175000017500000000020715031717571014044 00000000000000import javax.annotation.Nonnull; public class bug2049723 { public void m1(String arg) {} public void m2(@Nonnull String arg) {} } geany-2.1/tests/ctags/bug1988130.py0000644000175000017500000000024115031717571013554 00000000000000def testFunc(): print 'The following works now' + '"""' def main(): print 'nothing' print 'This is another quoted triple string: """.' return 0 geany-2.1/tests/ctags/bug1988027.py0000644000175000017500000000030315031717571013560 00000000000000#!/usr/bin/env python # encoding: utf-8 """ bla #""" """make a tarball with all the sources in it; return (distdirname, tarballname)""" # dummy class to generate a tag class dummy: pass geany-2.1/tests/ctags/bug1988026.py0000644000175000017500000000021315031717571013557 00000000000000 class testClass: my_var = 0 def main(): pass if __name__ == '__main__': testClass.main() def im_a_function(): pass geany-2.1/tests/ctags/bug1950327.js0000644000175000017500000000206215031717571013540 00000000000000// I've attached the simple test case as bugDemo.js. Trigger the bug by // uncommenting line 8. Attached are tags files with line 21 commented/not // commented. This is the current tip, svn r663. // // When the container.dirtyTab line is uncommented you see these methods: // TabChrome.createTabTile // TabChrome.init // // When the container.dirtyTab line is commented you see these methods: // TabChrome.createTabTile // TabChrome.destroyTabTile // TabChrome.init // TabChrome.prototype = { init: function() { this.browserMap = new Object(); }, createTabTile: function(browser) { //container.dirtyTab = {'url': false, 'title':false, 'snapshot':false, '*': false} return container; }, destroyTabTile: function(tile) { } } Different.prototype = { init: function() { this.browserMap = new Object(); }, createTabTile: function(browser) { container.dirtyTab = {'url': false, 'title':false, 'snapshot':false, '*': false} return container; }, destroyTabTile: function(tile) { } } geany-2.1/tests/ctags/bug1944150.sql0000644000175000017500000000014615031717571013721 00000000000000CREATE TRIGGER [tr_d_cash_trade_comment] ON dbo.cash_trade_comment FOR DELETE AS BEGIN END GO geany-2.1/tests/ctags/bug1938565.sql0000644000175000017500000000051415031717571013735 00000000000000CREATE OR REPLACE PACKAGE demo_pkg IS FUNCTION func1_proto( value in varchar ) RETURNS number; FUNCTION func2_proto( value in varchar ) RETURN number; FUNCTION func1( value in varchar ) RETURNS number IS BEGIN RETURN 1; END func1; FUNCTION func2( value in varchar ) RETURN number IS BEGIN RETURN 2; END func2; END demo_pkg; / geany-2.1/tests/ctags/bug1924919.cpp0000644000175000017500000000013315031717571013713 00000000000000#include namespace mud { std::string MajorVersion; std::string MinorVersion; }; geany-2.1/tests/ctags/bug1907083.cpp0000644000175000017500000000026315031717571013710 00000000000000// All of these should have "class:C", but m2-m4 have "class C::C" with ctags 5.7. C::T * C::m1() {} C::T * const C::m2() {} C::T const * C::m3() {} C::T const * const C::m4() {} geany-2.1/tests/ctags/bug1906062.py0000644000175000017500000000013015031717571013543 00000000000000include_file = ''' class (b) ''' # dummy class to generate a tag class dummy: pass geany-2.1/tests/ctags/bug1856363.py0000644000175000017500000000025315031717571013561 00000000000000#!/usr/bin/python def main(): # A broken ctags will see a function "initely_not_a_function" here. definitely_not_a_function = 0 return if __name__ == 'main': main() geany-2.1/tests/ctags/bug1830344.cs0000644000175000017500000000025115031717571013523 00000000000000public class C { public void m() { bool flagCheck = true; if (flagCheck == true) { Console.WriteLine("true"); } else { Console.WriteLine("false"); } } } geany-2.1/tests/ctags/bug1830343.cs0000644000175000017500000000026715031717571013531 00000000000000class ForEachTest { static void Main(string[] args) { int[] fibarray = new int[] { 0, 1, 2, 3, 5, 8, 13 }; foreach (int i in fibarray) { System.Console.WriteLine(i); } } } geany-2.1/tests/ctags/bug1809024.py0000644000175000017500000000063615031717571013556 00000000000000 def detach (self): model = self.view.props.model sort_id, sort_order = tree_sortable_get_sort_column_id (model) if sort_id >= 0: self.app.state.sort_column = self.find_item_class (id = sort_id) if sort_order == gtk.SORT_ASCENDING: self.app.state.sort_order = "ascending" else: self.app.state.sort_order = "descending" geany-2.1/tests/ctags/bug1800065.cs0000644000175000017500000000012115031717571013514 00000000000000using Gtk; public class C { private Gtk.Window window; private string title; } geany-2.1/tests/ctags/bug1799343-2.cpp0000644000175000017500000000045015031717571014055 00000000000000class P { protected: int x; }; namespace A { class P { protected: int x; }; class Q { int y; }; namespace C { class R: ::P, A::Q { int z; int f (int v) { return v + x; } }; } } namespace B { class S : A::C::R { int t; }; } geany-2.1/tests/ctags/bug1799343-1.cpp0000644000175000017500000000023215031717571014052 00000000000000#include struct C { int x; }; struct D : ::C { D() { x = 123; } ~D() { std::cout << x << std::endl; } }; int main(void) { D d; return 0; } geany-2.1/tests/ctags/bug1799340.cpp0000644000175000017500000000011615031717571013712 00000000000000std::string & f1() {} const std::string & f2() {} std::string const & f3() {} geany-2.1/tests/ctags/bug1777344.java0000644000175000017500000000032515031717571014053 00000000000000import java.util.*; public class bug1777344 { private HashMap map1; private HashMap map2 = new HashMap(), map3; private boolean b = (1 < 3), c; private boolean d = 1 < 3, e; } geany-2.1/tests/ctags/bug1773926.cpp0000644000175000017500000000026415031717571013720 00000000000000#include #define ERROR_HAPPENED 50 #define OK 2 #define NEXT_DEFINE 3 int main(int argc, char* argv[]) { printf("Hello world\n"); return 0; } geany-2.1/tests/ctags/bug1770479.cpp0000644000175000017500000000026015031717571013714 00000000000000#include int main (int argc, char **argv) { std::ostringstream a; a << "a"; std::ostringstream b; b << "b"; return 0; } int foo (int i) { return i; } geany-2.1/tests/ctags/bug1764148.py0000644000175000017500000000005515031717571013560 00000000000000#!/usr/bin/python def PyFunc(msg): print msg geany-2.1/tests/ctags/bug1764143.h0000644000175000017500000000104115031717571013346 00000000000000static inline void omap1_arch_reset(char mode) { /* * Workaround for 5912/1611b bug mentioned in sprz209d.pdf p. 28 * "Global Software Reset Affects Traffic Controller Frequency". */ if (cpu_is_omap5912()) { omap_writew(omap_readw(DPLL_CTL) & ~(1 << 4), DPLL_CTL); omap_writew(0x8, ARM_RSTCT1); } if (machine_is_voiceblue()) voiceblue_reset(); else omap_writew(1, ARM_RSTCT1); } static inline void arch_reset(char mode) { if (!cpu_is_omap24xx()) omap1_arch_reset(mode); else omap_prcm_arch_reset(mode); } #endif geany-2.1/tests/ctags/bug1743330.v0000644000175000017500000000024415031717571013363 00000000000000// somewhat contrived, but i came across a real-life file that caused this // crash. value= hello/ world; // dummy stuff to generate a tag module dummy; endmodule geany-2.1/tests/ctags/bug1742588.rb0000644000175000017500000000007015031717571013534 00000000000000class A def a() super(" do ") end def b() end end geany-2.1/tests/ctags/bug1691412.java0000644000175000017500000000073515031717571014047 00000000000000public class C { @NonNull @CheckReturnValue(explanation = "When this function returns, the caller can get the Cipher name selected by the user in the Dialog.") public static DefaultCipherDialog newInstance() { DefaultCipherDialog instance = new DefaultCipherDialog(); instance.init(); return instance; } @Override public String toString() { return "hello"; } } @Target(ElementType.METHOD) @Retention(RetentionPolicy.SOURCE) public @interface CustomAnnotation { } geany-2.1/tests/ctags/bug1611054.cs0000644000175000017500000000016015031717571013515 00000000000000class C { public String a() { return @"c:\"; } // this tag is missing in ctags 5.6 public void b() { } } geany-2.1/tests/ctags/bug1585745.cpp0000644000175000017500000000034115031717571013714 00000000000000// Despite the weird whitespace, all these destructors should be recognized and tagged. Class1::~Class1() { } Class2::~ Class2() { } Class3:: ~Class3() { } Class4:: ~ Class4() { } class Class5 { public: ~ Class5() { } }; geany-2.1/tests/ctags/bug1575055.cpp0000644000175000017500000000007615031717571013712 00000000000000namespace TheNamespace { class MyClass { }; int variable; } geany-2.1/tests/ctags/bug1570779.sql0000644000175000017500000000121515031717571013733 00000000000000-- This should find the "address" column when --sql-types=r is used -- ctags -f - --format=2 --excmd=pattern --fields=nks --sort=no --sql-types=cdfFlLPprstTvieURDVnxy bug1570779.sql -- employees bug1570779.sql /^CREATE TABLE employees ($/;" t line:2 -- employees.id bug1570779.sql /^ id integer NOT NULL,$/;" F line:3 -- employees.name bug1570779.sql /^ name varchar(20),$/;" F line:4 -- employees.address bug1570779.sql /^ address varchar(50),$/;" F line:5 CREATE TABLE employees ( id integer NOT NULL, name varchar(20), address varchar(50), primary key (id) ); geany-2.1/tests/ctags/bug1563476.cpp0000644000175000017500000000047015031717571013714 00000000000000int g() { } template< typename Accessor, typename bEnable = void > struct IntroduceBitDef; template< typename Accessor > struct IntroduceBitDef< Accessor, typename boost::enable_if_c< CoreConfig::VERSION <= 3 >::type > { // class body here // anything after this point is not parsed by ctags int f() { } }; geany-2.1/tests/ctags/bug1548443.cpp0000644000175000017500000000010715031717571013706 00000000000000union TestUnion { int _number; }; struct TestStruct { int _number; }; geany-2.1/tests/ctags/bug1515910.cs0000644000175000017500000000044415031717571013526 00000000000000// Simple generic classes. public class MyGenericClass1 { } // Derived enums. enum Enum1 : byte { Value1, Values } // Verbatim strings. public class C { private string str1 = @"abc\"; private int int1 = 123; private string str2 = @"abc\"; private string str3 = "abc"; } geany-2.1/tests/ctags/bug1491666.c0000644000175000017500000000015715031717571013357 00000000000000typedef struct { int x; float y; } my_struct; void main (void) { my_struct var1; my_struct var2; } geany-2.1/tests/ctags/bug1466117.c0000644000175000017500000000013415031717571013343 00000000000000typedef struct mystruct { int a; int b; }; typedef struct { int a; int b; } mystruct; geany-2.1/tests/ctags/bug1458930.c0000644000175000017500000000006115031717571013346 00000000000000// test with --c-kinds=+p char x(); wchar_t y(); geany-2.1/tests/ctags/bug1447756.java0000644000175000017500000000034715031717571014060 00000000000000// Java 1.5 generic interfaces appear to be tagged on the // parameterized type name instead of the interface name, // e.g., public interface Foo { public T bar(); } // is tagged on 'T' instead of 'Foo'. geany-2.1/tests/ctags/bug1201689.c0000644000175000017500000000167115031717571013353 00000000000000/* Bugs item #1201689, was opened at 2005-05-13 18:18 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=106556&aid=1201689&group_id=6556 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Scott Ferguson (shf301) Assigned to: Nobody/Anonymous (nobody) Summary: Variable Length Argument Lists in K&R Style not Parsed Initial Comment: A function with a K&R style parameter list that has a variable length argument list will not be added to the tags file. For example create a file, say test.c with the following code */ void test(a, ...) char a; { return; } /* Run ctags test.c. the tags file with only contain the line: a test.c /^char a;$/;" v This occurs with ctags 5.3 and 5.5.4. Variable length argument lists work fine if the function is in ANSI style, void test(char a, ...) will work fine. */ geany-2.1/tests/ctags/bug1111214.v0000644000175000017500000000117615031717571013356 00000000000000// File example.v // // Below is an example of a comment that is mis-parsed by exuberant ctags. // It uses the multi-line comment format, i.e. /* ... */ except that in // this case, the character sequence immediately preceding the closing // delimiter is an asterisk. (Any even number of asterisks would have the // same problem. // The line immediately afterwards is used to demonstrate the problem. // the module name 'wahoo' isn't recognised, because the parser mistakenly // thinks we are still in a multi-line comment. /* * I am a multi-line comment * I happen to end in a strange * (but legal) way: **/ module wahoo () begin end geany-2.1/tests/ctags/bug1111214-j-chan.v0000644000175000017500000000014115031717571014503 00000000000000/* * **/ module top(outsig, insig); output outsig; input insig; assign outsig = insig; endmodule geany-2.1/tests/ctags/bug1093123.cpp0000644000175000017500000000012315031717571013672 00000000000000#include int main() { using namespace std; cout << 0 << endl; int m; } geany-2.1/tests/ctags/bug1086609.c0000644000175000017500000000172215031717571013353 00000000000000/* Bugs item #1086609, was opened at 2004-12-16 13:07 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=106556&aid=1086609&group_id=6556 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Mikhail Kruk (meshko) Assigned to: Nobody/Anonymous (nobody) Summary: ctags getting confused by #if 0 Initial Comment: Here is a sample C program which confuses ctags. I think every line in it is significant. Dropping any of the #ifdefs or the #define makes the problem go away: */ #if 0 #define __PROC__ int func1( #if 0 #endif ) { } #endif int func2(int a) { } /* Somehow the opening brace from line 3 doesn't get ignored and the closing brace does get ignored and ctags drops out on "int func2(int a)" line with "failed to find match for '(' at line 11" error. Granted, having #if 0 in the middle of args list is weird, but perfeclty legal. */ geany-2.1/tests/ctags/bug1020715.c0000644000175000017500000000253515031717571013340 00000000000000/* Bugs item #1020715, was opened at 2004-09-01 22:42 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=106556&aid=1020715&group_id=6556 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Arne Georg Gleditsch (argggh) Assigned to: Nobody/Anonymous (nobody) Summary: Strange parsing of C code Initial Comment: Running ctags 5.5.4 like this /usr/local/bin/ctags --fields=+S --excmd=number -f - --c-types=+l /usr/src/source/2.6.6/drivers/scsi/aha152x.c | grep ^done returns a bogus entry for the function "done" on line 1745 with a wacky signature. The file aha152x.c is from Linux 2.6.6, but is appended for convenience. */ /* Date: 2007-08-14 01:00 Sender: elliotth Hide i don't really understand why the other lines in the test case were necessary to exercise the bug, but changing parseParens to call processAngleBracket instead of just skipToMatch("<>") fixes this bug. i've committed that since it causes no regressions. Date: 2007-08-14 00:34 Sender: elliotth Hide i've come up with a minimal test case, and committed it. it's pretty weird: */ void f() { done(a<<1); a->a; if (a->a) { } } /* change just about anything and the bizarre "done" tag goes away. you can't even switch from '->' to '.', which seems odd. */ geany-2.1/tests/ctags/bug1020715.cpp0000644000175000017500000000006115031717571013670 00000000000000void f() { done(a<<1); a->a; if (a->a) { } } geany-2.1/tests/ctags/bracematch.js0000644000175000017500000000125715031717571014306 00000000000000/* * "Braces aren't properly matched in findCmdTerm()" * * ctags -f - bracematch.js should output: * * functions: * Container * Container.x * Container.y * * classes: * MyClass * * methods: * MyClass.insert * MyClass.wrap */ function Container() { function x() { if (!x) x = { }; } function y() { } } // from prototype.js, a lot simplified to only show the issue MyClass = { insert: function(element, insertions) { element = $(element); if (condition) insertions = {bottom:insertions}; var content, insert, tagName, childNodes; }, wrap: function(element, wrapper, attributes) { // ... } } geany-2.1/tests/ctags/block.f900000644000175000017500000000157415031717571013273 00000000000000module Blocks implicit none integer :: i contains function MyFunc(thing) integer, intent(in) :: thing integer :: myfunc block ! these obviously won't show up, because variables inside functions inside modules don't anyway ! and that's fine integer :: tempint tempint = 1 if (tempint == 1) then tempint = 2 end if myfunc = tempint end block end function MyFunc end module Blocks program Main use Blocks implicit none ! these variable declarations should definitely show up in the symbol list integer :: otherint, moreint otherint = 3 block ! These shouldn't, because... integer :: newtempint newtempint = 2 block ! ...the damn things can be arbitrarily nested! integer :: newer_int newer_int = 3 end block newtempint = 2 * newtempint end block end program Main geany-2.1/tests/ctags/bit_field.c0000644000175000017500000000117615031717571013744 00000000000000struct bit_fields { unsigned int a: 1; unsigned int b: 1; unsigned int c: 2; }; struct { unsigned sign : 1; unsigned exp : _FP_EXPBITS_D; unsigned frac1 : _FP_FRACBITS_D - (_FP_IMPLBIT_D != 0) - _FP_W_TYPE_SIZE; unsigned frac0 : _FP_W_TYPE_SIZE; }; struct shortname_info { unsigned char lower:1, upper:1, valid:1; }; // Problem reported by Michael Brown on 23 October 2001. typedef struct { BYTE public: 1; BYTE bad2: 1; BYTE group: 1; BYTE personal: 1; } bitfield_flags; typedef struct { BYTE this; BYTE public; BYTE private; BYTE that; } mystruct; geany-2.1/tests/ctags/backslashes.c0000644000175000017500000000066115031717571014304 00000000000000typedef int T; int func1(\ int var1, int var2, ...); int func2(int var1, \ int var2, ...); int func3(T \ var1, T var2, ...); int func4(T var1, \ T var2, ...); int func5(int \ var1, int var2, ...); // check continuations in macros are properly handled #define MACRO1 \ ( int func6(void); #define MACRO2(x) \ int x(void); #define MACRO3(y) \ int \ y \ ( \ void \ ); int func7(int a); geany-2.1/tests/ctags/auto.f0000644000175000017500000000022215031717571012765 00000000000000! Provided by Brian Helsinki, 7 March 2003 program AUTO_TEST AUTOMATIC A, B, C AUTOMATIC REAL P, D, Q !IMPLICIT AUTOMATIC REAL (X-Z) END geany-2.1/tests/ctags/attributes.cs0000644000175000017500000000120615031717571014366 00000000000000[DllImport] public class MyDllimportClass {} [DllImport("user32.dll", SetLastError=false, ExactSpelling=false)] [DllImport("user32.dll", ExactSpelling=false, SetLastError=false)] [DllImport("user32.dll")] [Conditional("DEBUG"), Conditional("TEST1")] void TraceMethod() {} using System; [AttributeUsage(AttributeTargets.Class|AttributeTargets.Struct)] public class Author : Attribute { public Author(string name) { this.name = name; version = 1.0; } public double version; string name; } [AttributeUsage(AttributeTargets.Class|AttributeTargets.Struct, AllowMultiple=true)] // multiuse attribute public class Author : Attribute { } geany-2.1/tests/ctags/array-spec.f900000644000175000017500000000037715031717571014247 00000000000000 MODULE inm_df IMPLICIT none SAVE TYPE df_type REAL(8), POINTER :: & df_mb_time(:), df_wb_time(:) REAL(4), POINTER :: & df_mb_data(:,:), df_wb_data(:,:) END TYPE END MODULE inm_df geany-2.1/tests/ctags/array_spec.f900000644000175000017500000000054115031717571014322 00000000000000! Bug reported by Jim Chen on 31 Dec 2002 module Global_Variables implicit none ! Example of array-spec in entity-decl real*8, save :: & H (NDIM, NDIM) = 0.D0, & H0(NDIM, NDIM), & H1(NDIM, NDIM) = 0.D0, & H2(NDIM, NDIM) = 0.D0, & H3(NDIM, NDIM) = 0.D0, & H4(NDIM, NDIM) = 0.D0, & H5(NDIM, NDIM) = 0.D0 end module Global_Variables geany-2.1/tests/ctags/array_ref_and_out.cs0000644000175000017500000000143115031717571015663 00000000000000// Programmer's Reference: Passing Array Using ref and out public static void MyMethod(out int[] arr) { arr = new int[10]; // definite assignment of arr } public static void MyMethod(ref int[] arr) { arr = new int[10]; // arr initialized to a different array } using System; class TestOut { static public void FillArray(out int[] myArray) { // Initialize the array: myArray = new int[5] {1, 2, 3, 4, 5}; } static public void Main() { int[] myArray; // Initialization is not required // Pass the array to the callee using out: FillArray(out myArray); // Display the array elements: Console.WriteLine("Array elements are:"); for (int i=0; i < myArray.Length; i++) Console.WriteLine(myArray[i]); } } geany-2.1/tests/ctags/arraylist.js0000644000175000017500000000047615031717571014231 00000000000000 var a = []; var b = [1, 2, 3]; var c = [ { a: "hello", b: 42 }, { a: "hi", b: 41 } ]; var class = function() { this.test1 = { foo: [ 1, 2, 3], bar: [ 4, 5, 9] }; // FIXME: no tag is generated for test2 this.test2 = [ { a: {}, b: {} }, { a: {}, b: {} } ]; this.test3 = function() {} } geany-2.1/tests/ctags/anonymous_functions.php0000644000175000017500000000055615031717571016511 00000000000000; package Conversions is function From_Big_Real (Arg : Integer) return Num; end Conversions; type Missing_Tag is record Num : Integer; end record; type Primary_Color is (Red, Green, Blue); end My_Package; geany-2.1/tests/ctags/ada-overriding.ads0000644000175000017500000000214115031717571015234 00000000000000-- Taken from #2382 submitted by @JulienPivard -- @summary -- Implémentation par une tâche. -- @description -- Implémentation par une tache de la classe synchronisé. -- @group Version tâche -- -- package Carte_P.Tasche_P package Input with Pure => False, Preelaborate => False, Elaborate_Body => True, Spark_Mode => Off is --------------------------------------------------------------------------- task type Tasche_T is new Carte_T with -- Implémentation par une tâche de l'interface Carte_T. ----------------------------------- overriding entry Coucou; -- Implémentation par un accept. ----------------------------------- -- overriding -- entry Inutile; -- Implémentation par un accept. -- @param This -- La carte. end Tasche_T; --------------------------------------------------------------------------- overriding procedure Inutile (This : in out Tasche_T); -- Implémentation par une procédure. -- @param This -- La carte. end Carte_P.Tasche_P; geany-2.1/tests/ctags/ada-expression-function-generic.adb0000644000175000017500000000100415031717571020474 00000000000000procedure My_Package is generic type Unsigned_Type is range <>; package Generic_Integer_Images is function Digit_To_Character (X : Unsigned_Type) return Character; end Generic_Integer_Images; package body Generic_Integer_Images is function Digit_To_Character (X : Unsigned_Type) return Character is (Character'Val (0)); end Generic_Integer_Images; type Signed_Address is range -2**(Standard'Address_Size - 1) .. 2**(Standard'Address_Size - 1) - 1; begin null; end My_Package; geany-2.1/tests/ctags/ada-expression-function.adb0000644000175000017500000000157415031717571017076 00000000000000with Ada.Text_IO; procedure Test is My_Type : Boolean := True; procedure Tagged_Procedure is function Boolean_As_String return String is (case My_Type is when True => "True Value", when False => "False Value"); function Another_Boolean_As_String return String is (case My_Type is when True => "; function dummy0 return String is (", when False => "; function dummy1 return String is ("); procedure p0 is begin Ada.Text_IO.put ("-0"); end p0; function Yet_Boolean_As_String return String is (case My_Type is when True => "1", when False => "0"); procedure p1 is begin Ada.Text_IO.put ("-1"); end p1; begin null; end Tagged_Procedure; procedure Not_Tagged_Procedure is begin null; end Not_Tagged_Procedure; begin null; end Test; geany-2.1/tests/ctags/ada-ads.ads0000644000175000017500000000334415031717571013641 00000000000000-- Object-oriented generalized stack. This illustrates the use of a -- controlled type, which is one that has construction and destructions. -- It also shows how to create two related types in the same package so -- that they can share private declarations. This sort of thing is -- accomplished in Java or C++ using nested classes, or using friend -- declarations in C++. -- with Ada.Finalization; use Ada.Finalization; package GenStack is -- This is the stack type. type Stack is new Controlled with private; -- This is the base type for nodes. Client packages must derive their -- nodes from StackData. Since it comes from Controlled, the user can -- override the Initialize, Adjust, and Finalize methods as needed. type StackData is new Controlled with null record; -- Initialization operations. procedure Initialize(S: in out Stack); procedure Adjust(S: in out Stack); procedure Finalize(S: in out Stack); -- Stack operations. procedure Push(S: in out Stack; D: StackData'class); procedure Pop(S: in out Stack; D: in out StackData'class); procedure Top(S: Stack; Data: in out StackData'class); function Empty(S: Stack) return Boolean; private -- Pointer to the node type. type Node; type Node_Ptr is access Node; -- Here is the generalized stack itself. We would just make it the -- pointer itself, but it needs to be a record so it can be in a with. type Stack is new Controlled with record Head: Node_Ptr; end record; -- Now, we need a pointer to the data part. type Data_Ptr is access StackData'Class; -- This is the node type. type Node is record Data: Data_Ptr; Next: Node_Ptr; end record; end GenStack; geany-2.1/tests/ctags/ada-adb.adb0000644000175000017500000000366515031717571013605 00000000000000-- Taken from altivec of GNAT examples (http://www.adacore.com/developers/code-samples/gnat-examples/) -- ==================================================================================================== -- This example shows how to create and manipulate vectors by the mean of high -- level views. with GNAT.Altivec; use GNAT.Altivec; with GNAT.Altivec.Conversions; use GNAT.Altivec.Conversions; with GNAT.Altivec.Vector_Operations; use GNAT.Altivec.Vector_Operations; with GNAT.Altivec.Vector_Types; use GNAT.Altivec.Vector_Types; with GNAT.Altivec.Vector_Views; use GNAT.Altivec.Vector_Views; with GNAT.IO; use GNAT.IO; procedure Altivec is View_A : constant VUI_View := (Values => (1, 2, 3, 4)); Vector_A : constant vector_unsigned_int := To_Vector (View_A); View_B : constant VUI_View := (Values => (1, 1, 1, 1)); Vector_B : constant vector_unsigned_int := To_Vector (View_B); Vector_C : vector_unsigned_int; View_C : VUI_View; begin Vector_C := vec_add (Vector_A, Vector_B); -- C = A + B View_C := To_View (Vector_C); for I in View_C.Values'Range loop Put_Line (unsigned_int'Image (View_C.Values (I))); end loop; end Altivec; procedure Greet is type Days is (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday); -- Declaration of a subtype subtype Weekend_Days is Days range Saturday .. Sunday; -- ^ Constraint of the subtype M : Days := Sunday; S : Weekend_Days := M; -- No error here, Days and Weekend_Days -- are of the same type. begin for I in Days loop case I is -- Just like a type, a subtype can -- be used as a range when Weekend_Days => Put_Line ("Week end!"); when others => Put_Line ("Hello on " & Days'Image (I)); end case; end loop; end Greet;geany-2.1/tests/ctags/68hc11.asm0000644000175000017500000000075215031717571013272 00000000000000INTERRUPTS: ; PORTD EQU $1008 ; SP EQU $20 ; TRAPP FCB CR,LF FCB CR,LF FCC ' ******** ILLEGAL OPCODE TRAP !!! ********' FCB CR,LF FCB 0 PROMPT FCB CR,LF FCC ' 68Mon V1.2 (C) 1992 Keith Vasilakes' FCB CR,LF FCB 0 COLD LDS #STACK LDAA #$20 ; http://www.mekatronix.com/downloads/docs/as11_man.pdf sym1 EQU 1 sym2: EQU 2 sym3: sym4: bne sym3 geany-2.1/tests/ctags/3526726.tex0000644000175000017500000037002515031717571013241 00000000000000% $Id$ %latex2html -info 0 -local_icons -show_section_numbers -link 2 -split +1 faq.tex \documentclass{article} \usepackage{html} \usepackage{graphicx} \usepackage{fancyhdr} \usepackage{makeidx} %% Margins \oddsidemargin 0in \evensidemargin 0in \textwidth 6.5in \topmargin 0in \textheight 8in \setlength{\parindent}{0in} \setlength{\parskip}{.5\baselineskip} \pagestyle{fancy} \lhead{ {\sc Snort FAQ} } \cfoot{ {\sc feed the pig}} \rhead{Page \thepage} \newcommand{\myref}[1]{(see FAQ \ref{#1})} \newcommand{\myquote}[1]{\begin{quote}#1\end{quote}} %\label{key} assign current counter value to key %\myref{key}{print value assigned to key} % To emphasise % {\em blah} % To bold % {\bf bold face } % The following characters are special characters and need to be backslashed % before use: % $ & % # _ { } % % To get a backslash, try $\backslash$ \makeindex \begin{document} \title{ The Snort FAQ } \author{ The Snort Core Team } \date{ } % Title Page \maketitle \newpage Suggestions for enhancements of this document are always welcome. Please email them to the \htmladdnormallink{Snort-Users}{mailto:snort-users@lists.sourceforge.net} mailing list. Many people have contributed to this FAQ: \begin{center} \begin{tabular}{llll} Marty Roesch & Fyodor Yarochkin & Dragos Ruiu & Jed Pickel\\ Max Vision & Michael Davis & Joe McAlerney & Joe Stewart\\ Erek Adams & Roman Danyliw & Christopher Cramer & Frank Knobbe\\ Phil Wood & Toby Kohlenberg & Ramin Alidousti & Jim Hankins\\ Dennis Hollingworth & Paul Howell & Stef Mit & Ofir Arkin\\ Jason Haar & Blake Frantz & Lars Norman S?ndergaard & Brent Erickson\\ Brian Caswell & Scot Wiedenfeld & Chris Green & Jeff Wirth\\ Edin Dizdarevic & Detmar Liesen & Don Ng & Matt Kettler\\ Joe Lyman & Jim Burwell & Jed Haile & Andrew Hutchinson\\ Jeff Nathan & Alberto Gonzalez & Jason Haar & Jeremy Hewlett \end{tabular} \end{center} If you do not see your name on this list and you have contributed to the faq, please email \htmladdnormallink{bugs@snort.org}{mailto:bugs@snort.org}. Dragos Ruiu: This version of this guide has been brought to you by the kind generosity and sponsorship of Wiley and Sons publishers whose support let myself, and other snort developers Jeff Nathan and Jed Haile take the time to work on this document and other tutorials for Snort due out in our upcoming book. (route++) \newpage \begin{latexonly} \tableofcontents \newpage \end{latexonly} \section{Background} \subsection{How do you pronounce the names of some of these guys who work on Snort?} For the record, `Roesch' is pronounced like `fresh' without the `f.' Additionally, `Ruiu' is pronounced like `screw you' without the `sc.' Jed's last name is like `pick-el,' not `pickle.' \subsection{Is Fyodor Yarochkin the same Fyodor who wrote nmap?} Nope. fyodor@insecure.org is the author of nmap, and he uses the same pseudonym as the other Snort Fyodor's real surname. Yeah, it messes up my mailbox too, but I think it's too late to change either of them. \subsection{Where do I get more help on Snort?} Check the website, \htmladdnormallink{http://www.snort.org/}{http://www.snort.org/}. Other good resources are available in the source distribution, including the \htmladdnormallink{Snort Users Manual}{http://www.snort.org/docs} and the USAGE file. There is also a excellent mailing list, snort-users. You can find info on how to signup at \htmladdnormallink{http://www.snort.org/community/mailing-lists/}{http://www.snort.org/community/mailing-lists}. You can also join \#snort on irc.freenode.net. \subsection{Where can I get more reading and courses about IDS?\label{courses}} All of the following offer courses on Intrusion Detection: \begin{itemize} \item \htmladdnormallink{SANS (http://www.sans.org)}{http://www.sans.org} \item \htmladdnormallink{Usenix (http://www.usenix.org/event/)}{http://www.usenix.org/event/} \item \htmladdnormallink{Networld/Interop (http://www.key3media.com/interop/)}{http://www.key3media.com/interop/} \item \htmladdnormallink{CanSecWest (http://www.cansecwest.com)}{http://www.cansecwest.com} \end{itemize} There are many good books on Intrusion Detection. Here are just a few: \begin{tabular}{|p{2in}|p{1.5in}|l|l|} \hline {\bf Title} & {\bf Author(s)} & {\bf Publisher} & {\bf ISBN}\\ \hline\hline Snort 2.1 Intrusion Detection, Second Edition & Brian Caswell, Jay Beale & 1931836043 \\ \hline Tao of Network Security Monitoring, The: Beyond Intrusion Detection & Richard Bejtlich & 0321246772 \\ \hline Intrusion Detection with Snort: Advanced IDS Techniques & Rafeeq Rehman & Prentice Hall & I0131407333\\ \hline Snort Intrusion Detection & Ryan Russell & Syngress Media & 1931836744 \\ \hline Snort Intrusion Detection & Jack Koziol & New Riders & 157870281X\\ \hline Network Intrusion Detection: An Analyst's Handbook & Stephen Northcutt & New Riders & 0735708681 \\ \hline Intrusion Signatures and Analysis & Stephen Northcutt & New Riders & 0735710635 \\ \hline TCP/IP Illustrated, Volume 1 The Protocols & W. Richard Stevens & Addison-Wesley & 0201633469 \\ \hline Intrusion Detection & Rebecca G. Bace & MacMillan Technical Publishing & 1578701856 \\ \hline The Tao of Network Security Monitoring: Beyond Intrusion Detection & Richard Bejtlich & Addison-Wesley & 0321246772 \\ \hline Snort 2.1 Intrusion Detection, Second Edition & Brian Caswell \& Jay Beale & Syngress Publishing & 1931836043 \\ \hline \end{tabular} \subsection{Does Snort handle IP defragmentation?} Yes, use {\tt preprocessor frag3}. \subsection{Does Snort perform TCP stream reassembly?} Yes, check out the stream4 preprocessor \myref{stream4} that does stateful analysis session login, TCP reassembly and much, much more. \subsection{Does Snort perform stateful protocol analysis?} Yes. Stream4 does this as well. See \myref{stream4}. \subsection{I'm on a switched network, can I still use Snort?} {\bf Short version:} Being able to sniff on a switched network depends on what type of switch is being used. If the switch can mirror traffic, then set the switch to mirror all traffic to the Snort machine's port. {\bf Extended version:} There are several ways of deploying NIDS in switched environments which all have their pros and cons. Which method applies to your needs depends on what kind of segments you want to monitor and on your budget. Here are the most common methods: \begin{enumerate} \item {\bf Switch mirror:} If the switch can mirror traffic, then set the switch to mirror all traffic to the Snort machine's port. \begin{itemize} \item Advantages: \begin{itemize} \item Simple method, works with most decent switches. \end{itemize} \item Drawbacks: \begin{itemize} \item If the switch is a fast Ethernet switch, you can mirror 100Mbit/s max. Since each switch port is capable of handling 100Mbit/s for each direction, the bandwidth per port sums up to 200Mbit/s, so the switch will not be able to mirror all packets at high network utilization. \item Some switches suffer from performance degradation through port mirroring. \end{itemize} \end{itemize} \item {\bf Hub:} Insert a hub in line, so you can simply tap all traffic. Works fine for home networks, will lose data due to collisions at loads greater than 50\%---so a 10Mbps hub should be fine for T1/E1, DSL or cablemodem. If you have a DS3 or greater, you should investigate taps. \begin{itemize} \item Advantages: \begin{itemize} \item Simple method \item No impact on switch performance and no config changes \item Low cost \end{itemize} \item Drawbacks: \begin{itemize} \item Loss of full-duplex capabilities \item Additional single point of failure \item Collision loss at above 50\% load levels \end{itemize} \end{itemize} \item {\bf Network taps:} Use network taps (e.g. Shomiti/Finisar [\htmladdnormallink{http://www.shomiti.com}{http://www.shomiti.com}] and Netoptics [\htmladdnormallink{http://www.netoptics.com}{http://www.netoptics.com}). You can find some rather good information in the papers by Jeff Nathan. You can find the papers at \htmladdnormallink{http://www.snort.org/docs/\#deploy}{http://www.snort.org/docs/\#deploy}. \begin{itemize} \item Advantages: \begin{itemize} \item No impact on switch performance and no special configuration \item Stealth---i.e., sending data back to the switch is disabled \item No single point of failure, ``fail-open'' if the tap power fails \end{itemize} \item Drawbacks: \begin{itemize} \item The datastream is split into TX and RX, so you need two NICs \item The two datastreams have to be recombined, i.e. merged, if you don't want to lose the capability of doing stateful analysis. This can be done by using channel bonding. Information can be found at \htmladdnormallink{http://sourceforge.net/projects/bonding}{http://sourceforge.net/projects/bonding}. \item Cost \end{itemize} \end{itemize} \item {\bf Throw money at it:} Tap switch ports (using the forementioned network taps) but only tap all incoming packets (RX lines of the switch ports), connecting those tap ports to a dedicated gigabit switch, which is capable of mirroring up to ten RX taplines to one single dedicated gigabit port, which is connected to a gigabit IDS machine. \begin{itemize} \item Advantages: \begin{itemize} \item Maximum coverage (i.e. monitor all switchports) \item No performance degradation or re-configuration of the switch \end{itemize} \item Drawbacks: \begin{itemize} \item Mucho \$\$\$ \end{itemize} \end{itemize} \end{enumerate} \subsection{Is Snort vulnerable to IDS noise generators like ``Stick'' and ``Snot''?} It is now possible to defeat these kinds of noise generators with the stream4 preprocessor (see \myref{stream4}). Even without the stream4 preprocessor enabled, Snort will weather the alert storm without falling over or losing a lot of alerts due to its highly optimized nature. Using tools that generate huge amounts of alerts will warn a good analyst that someone is trying to sneak by their defenses. \subsection{Can Snort be evaded by the use of polymorphic mutators on shellcode?} Yes, and this could defeat some of the NOP sled detection signatures, but the ordinary exploit rules should not be affected by this kind of obfuscation. The fnord preprocessor attempts to detect polymorphic shellcode attempts. \subsection{Does Snort log the full packets when it generates alerts? } Yes, the packets should be in the directory that has the same IP address as the source host of the packet which generated the alert. If you are using binary logging, there will be a packet capture file (.pcap) in the logging directory instead. \section{Getting Started} \subsection{Where do I find binary packages for BlueHat BSD-Linux-RT?} Repeat after me: \begin{verbatim} Go to http://www.snort.org/snort-downloads Click the link for the tar.gz tar zxvf snort-.tar.gz cd ./configure make su make install mkdir /var/log/snort cd etc vi snort.conf snort -D -c snort.conf exit \end{verbatim} ...and if you want to use our binary package uninstaller :-): \begin{verbatim} cd ; make uninstall \end{verbatim} And if you must, you can find some binaries at \htmladdnormallink{http://www.snort.org/snort-downloads}{http://www.snort.org/snort-downloads}. You can also find Snort in most BSD ports' trees. \subsection{How do I run Snort?} Run Snort in sniffer mode and make sure it can see the packets. \begin{verbatim}snort -dv\end{verbatim} Then run it with the HOME\_NET set appropriately for the network you're defending in your rules file. A default rules file comes with the snort distribution and is called ``snort.conf'' You can run this basic ruleset with the following command line: \begin{verbatim}snort -A full -c snort.conf\end{verbatim} If it's all set right, make sure the interface is in promiscuous mode by running the command from another window: \begin{verbatim}ifconfig -a\end{verbatim} The output from ifconfig should show if the interface is in promiscuous mode. If it's not, there should be a way to set it manually. Note that the default output mode (-A full) of Snort should not be used except in very controlled environments. It is the slowest way to run Snort and presents several hard to recover from problems with inode creation on filesystems. For people doing real IDS work, use something like (-A fast -b) to combine fast alert mode with tcpdump binary log files or use the unified format coupled with Barnyard. \subsection{Where are my log files located? What are they named?} The default location for logs is /var/log/snort. If snort is started with ``-l $<$directory$>$'', then the logs will be located in the directory specified. In the past, running Snort in daemon mode (-D) produced a file named ``snort.alert.'' For consistency's sake, this has been changed. Running Snort in both standard or daemon modes (-D) will produce a file named ``alert.'' Note the log file naming convention changed between 1.8 and 1.9. That funny alphanumeric soup at the end of the new names is a UNIX timestamp. This helps avoid file conflicts. \subsection{Why does Snort complain about /var/log/snort?} It requires this directory to log alerts to it. Try running the command: \begin{verbatim} mkdir -p /var/log/snort \end{verbatim} Make sure the logging directory is owned by the user Snort is running as. \subsection{Where's a good place to physically put a Snort sensor?} This is going to be heavily influenced by your organizations policy, and what you want to detect. One way of looking at it is determining if you want to place it inside or outside your firewall. Placing an IDS outside of your firewall will allow you monitor all attacks directed at your network, regardless of whether or not they are stopped at the firewall. This almost certainly means that the IDS will pick up on more events than an IDS inside the firewall, and hence more logs will be generated. Place an IDS inside your firewall if you are only interested in monitoring traffic that your firewall let pass. If resources permit, it may be best to place one IDS outside and one IDS inside of your firewall. This way you can watch for everything directed at your network, and anything that made it's way in. ADDENDA AD NAUSEUM Note: So this one still gets a lot of traffic even though it's in the FAQ. Erek Adams has noted this comprehensive and authoritative discussion of this perpetual discussion item---mildly edited, also see faq question about switches hubs and taps -dr If your router/switch can do port mirroring, then just connecting a network IDS to it would be fine. Or else a hub could be another option. Most network IDSes can have a NIC that acts as a passive sniffer anyway. As to where to place the sensor. I would go for both, one to monitor the external, one for the internal. I work in a distributor for security products, so over instrumentation is fun :) And in any case, if the traffic does not pass by the Sensor it will not get monitored. So some people deploy IDS on their internal segments too, I believe. {\bf In ``front'' of the firewall(s):} Pro: Higher state of alert you know what attacks you are facing. Con: Wall to Wall of data, boring? If your firewall has NAT turned on, tracking the sources originating from your internal network is difficult. {\bf ``Behind'' the firewall(s):} Pro: Only what gets through the firewall gets monitored? Less load on the IDS analyst. You get to see what hosts are sending traffic to the internet. Con: Less idea of the state of the environment, false sense of safety. {\bf Where should IDS be placed relative to firewalls? Explore the pros and cons of placing IDS inside or outside firewall. What are the drawbacks of each?} \begin{itemize} \item {\bf MARCUS RANUM from NFR Security:} "I'd put mine inside. Why should I care if someone is attacking the outside of my firewall? I care only if they succeed, which my IDS on the inside would ideally detect. Placing the IDS on the outside is going to quickly lull the administrator into complacency. I used to have a highly instrumented firewall that alerted me whenever someone attacked it. Two weeks later I was deleting its alert messages without reading them. Another important factor arguing for putting it inside is that not all intrusions come from the outside or the firewall. An IDS on the inside might detect new network links appearing, or attackers that got in via another avenue such as a dial-in bank.'' \item {\bf CURRY from IBM:} ``The IDS should be placed where it will be able to see as much of the network traffic you're concerned about as possible. For example, if you're concerned about attacks from the Internet, it makes the most sense to put the IDS outside the firewall. the most sense to put the IDS outside the firewall. This gives it an ``unobstructed'' view of everything that's coming in. If you put the IDS inside the firewall, then you're not seeing all the traffic the bad guys are sending at you, and this may impact your ability to detect intrusions.'' \item {\bf SUTTERFIELD from Wheel Group:} ``IDS ideally plays an important role both inside and outside a firewall. Outside a firewall, IDS watches legitimate traffic going to public machines such as e-mail and Web servers. More importantly IDS outside a firewall will see traffic that would typically be blocked by a firewall and would remain undetected by an internal system. This is especially important in detecting network sweeping which can be a first indication of attack. External systems will also give you the benefit of monitoring those services that firewalls determine are legitimate. Putting an IDS inside the firewall offers the added benefit of being able to watch traffic internal to the protected network. This adds an important element of protection against insider threats. The major drawback of IDS inside a firewall is that it cannot see a good deal of important traffic coming from untrusted networks and may fail to alert on obvious signals of an impending attack.'' \item {\bf CHRIS KLAUS from ISS:} ``Outside the firewall is almost always a good idea---it protects the DMZ devices from attack and dedicates an additional processor to protecting the internal network. Just inside the firewall is also useful-it detects attempts to exploit the tunnels that exist through the firewall and provides an excellent source of data for how well your firewall is working. Throughout your intranet may be the best place for IDS deployment, however. Everyone agrees that attacks aren't the only things we're worried about-there's internal mischief, fraud, espionage, theft, and general network misuse. Intrusion detection systems are just as effective inside the network as outside, especially if they're unobtrusive and easy to deploy.'' \item {\bf GENE SPAFFORD:} ``The IDS must be inside any firewalls to be able to detect insider abuse and certain kinds of attacks through the firewall. IDS outside the firewall may be useful if you want to monitor attacks on the firewall, and to sample traffic that the firewall doesn't let through. However, a true IDS system is likely to be wasted there unless you have some follow-through on what you see.'' \vspace{10pt} Bottom Line: {\bf DRAGOS RUIU:} ``Just pick a spot you're likely to look at the logs for. :-)'' \end{itemize} \subsection{Libpcap complains about permissions problems, what's going on?} You are not running Snort as root or your kernel is not configured correctly. \subsection{ I've got RedHat and ....} Check your version of libpcap. If it's not $>=$ 0.5, you should update. \subsection{Where do I get the latest version of libpcap? } You can find the most current version at: \htmladdnormallink{http://www.tcpdump.org}{http://www.tcpdump.org/} You might also want to have a look at Phil Wood's patches to libpcap for Linux: \htmladdnormallink{http://public.lanl.gov/cpw/}{http://public.lanl.gov/cpw/} \subsection{Where do I get the latest version of Winpcap?} \htmladdnormallink{http://winpcap.polito.it/}{http://winpcap.polito.it/} \subsection{What version of Winpcap do I need?\label{winpcap}} It depends. If you only have one processor, you can use the most current version (3.x). If you have a SMP box, you'll have to use either an older version ($<$ 2.3) or the 3.x version plus a patch from \htmladdnormallink{http://www.ntop.org/winpcap.html}{http://www.ntop.org/winpcap.html}. \subsection{Why does building Snort complain about missing references? } You must configure libpcap with the --install-incl option. (On Red Hat, install the libpcap-devel rpm.) \subsection{Why does building snort fail with errors about yylex and lex\_init? } You need the lex and yacc tools or their gnu equivalents flex and bison installed. \subsection{I want to build a Snort box. Will this $<$Insert list of hardware$>$ handle $<$this much$>$ traffic? } That depends. Lower the number of rules is a standard performance increase. Disable rules that you don't need or care about. There have been many discussions on 'tweaking performance' with lots of 'I handle XX mb with a \_\_\_ machine setup.' being said. Look at some of the discussions on the snort-users mailing lists. Here is an oft quoted bit on the subject from Marty: ``Hardware/OS recommendations'' Ok, here are the guidelines and some parameters. Intrusion detection is turning into one of the most high performance production computing fields that is in wide deployment today. If you think about the requirements of a NIDS sensor and the constraints that they are required to operate within, you'll probably start to realize that it's not too hard to find the performance wall with a NIDS these days. The things a NIDS needs are: \begin{enumerate} \item MIPS (Fast CPU) \item RAM (More is *always* better) \item I/O (Wide, fast busses and high performance NIC) \item AODS (Acres Of Disk Space) \end{enumerate} A NIDS also needs to be pretty quick internally at doing its job. Snort's seen better days in that regard (when 1.5 came out the architecture was a lot cleaner) but it's still considered to be one of the performance leaders available. As for OS selection, use what you like. When we implement Data Acquisition Plugin's in Snort 2.0 this may become more of a factor, but for now I'm hearing about a lot of people seeing a lot of success using Snort on Solaris, Linux, *BSD and Windows 2000. Personally, I develop Snort on FreeBSD and Sourcefire uses OpenBSD for our sensor appliance OS, but I've been hearing some good things about the RedHat Turbo Packet interface (which would require mods for Snort to use, not to mention my general objection to RedHat's breaking stuff all the time). (ed note: take a drink, see FAQ 7.2 -dr) \subsection{What are CIDR netmasks? } (Excerpt from url: \htmladdnormallink{http://public.pacbell.net/dedicated/cidr.html}{http://public.pacbell.net/dedicated/cidr.html}) CIDR is a new addressing scheme for the Internet which allows for more i efficient allocation of IP addresses than the old Class A, B, and C address scheme. \begin{center} \begin{tabular}{llr} {\bf CIDR Block} & {\bf Equivalent Class C} & {\bf Addresses}\\ /27 & 1/8th of a Class C & 32 hosts \\ /26 & 1/4th of a Class C & 64 hosts\\ /25 & 1/2 of a Class C & 128 hosts\\ /24 & 1 Class C & 256 hosts\\ /23 & 2 Class C & 512 hosts\\ /22 & 4 Class C & 1,024 hosts\\ /21 & 8 Class C & 2,048 hosts\\ /20 & 16 Class C & 4,096 hosts\\ /19 & 32 Class C & 8,192 hosts\\ /18 & 64 Class C & 16,384 hosts\\ /17 & 128 Class C & 32,768 hosts\\ /16 & 256 Class C & 65,536 hosts \\ /15 & 512 Class C & 131,072 hosts\\ /14 & 1,024 Class C & 262,144 hosts\\ /13 & 2,048 Class C & 524,288 hosts\\ \end{tabular} \end{center} For more detailed technical information on CIDR, check out the following RFCs: \begin{itemize} \item RFC 1517: Applicability Statement for the Implementation of CIDR \item RFC 1518: An Architecture for IP Address Allocation with CIDR \item RFC 1519: CIDR: An Address Assignment and Aggregation Strategy \item RFC 1520: Exchanging Routing Information Across Provider Boundaries in the CIDR Environment \end{itemize} RFCs are available at \htmladdnormallink{http://www.rfc-editor.org/rfcsearch.html}{http://www.rfc-editor.org/rfcsearch.html} \subsection{What is the use of the ``-r'' switch to read tcpdump files? } Used in conjunction with a Snort rules file, the tcpdump data can be analyzed for hostile content, port scans, or anything else Snort can be used to detect. Snort can also display the packets in a decoded format, which many people find is easier to read than native tcpdump output. \section{Configuring Snort} \subsection{How do I setup snort on a `stealth' interface? }\label{stealth} In *BSD and Linux: \begin{verbatim}ifconfig eth1 up\end{verbatim} Solaris: \begin{verbatim}ifconfig eth1 plumb ifconfig eth1 up\end{verbatim} For NT/W2K/XP users, try the following: NOTE: You are at your own risk if you follow these instructions. Editing your registry is DANGEROUS and should be done with extreme caution. Follow these steps at your OWN risk. \begin{enumerate} \item Get your device's hex value. ('snort -W' works for this) \item open Regedt32 \item Navigate to: HKEY\_LOCAL\_MACHINE$\backslash$SYSTEM$\backslash$CurrentControlSet$\backslash$Services$\backslash$Tcpip$\backslash$Parameters$\backslash$\linebreak Interfaces$\backslash$\{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\} \item Select the network card you wish to setup as the monitoring interface (this will be the \{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\} value). \item Set IPAddress:REG\_MULTI\_SZ: to null (Double click on the string, delete data in the Multi-String Editor, then click OK) \item Set SubnetMask:REG\_MULTI\_SZ: to null (Double click on the string, delete data in the Multi-String Editor, then click OK) \item Set DefaultGateway:REG\_MULTI\_SZ: to null (Double click on the string, delete data in the Multi-String Editor, then click OK) \item Close the Registry Editor, your changes will be saved automatically. \item In a command prompt, run 'ipconfig' to verify the interface does not have an IP bound to it. \end{enumerate} If you do not receive an IP address listing from the interface you modified, you are good to go. To run snort with the specified interface, use the -i flag such as 'snort -v -d -p -i1' \subsection{How do I setup a receive-only ethernet cable?} Use an ethernet tap, or build your own 'receive-only' ethernet cable. Anyway, here is the cable I use: \begin{verbatim} LAN Sniffer 1 -----\ /-- 1 2 ---\ | \-- 2 3 ---+-*------ 3 4 - | - 4 5 - | - 5 6 ---*-------- 6 7 - - 7 8 - - 8 \end{verbatim} Basically, 1 and 2 on the sniffer side are connected, 3 and 6 straight through to the LAN. 1 and 2 on the LAN side connect to 3 and 6 respectively. This fakes a link on both ends but only allows traffic from the LAN to the sniffer. It also causes the 'incoming' traffic to be sent back to the LAN, so this cable only works well on a hub. You can use it on a switch but you will get ...err... interesting results. Since the switch receives the packets back in on the port it sent them out, the MAC table gets confused and after a short while devices start to drop off the switch. Works like a charm on a hub though. Another method which uses a capacitor and should work on 100mbs links: \htmladdnormallink{http://www.geocities.com/samngms/sniffing\_cable}{http://www.geocities.com/samngms/sniffing_cable} And another: The UTP Y-Cable specified by Joe Lyman: A less noisy option: it involves a couple of cat 5 cables and a single speed hub. The idea is to use the rcv cables for the wire going to the sniffer box and use the xmit cables from another hub port. This will give you a link light and allow your sniffer to rcv only. Cannot xmit because the xmit cables are not connected. This has been successfully used on netgear single speed hubs. It wont work on dual speed hubs due to the negotiation of speed. Pin outs. They are reversed in the picture in order to prevent lines from crossing, and I only included the pins used. \begin{verbatim} * []HUB PORT 1 HUB PORT 2 ----- ----- x x r r r r x x 6 3 2 1 1 2 3 6 | | | | | | | | | ----------- | | | ------------- | | | | | | | | 6 3 2 1 r r x x ---- SNIFFER x = xmit r = rcv \end{verbatim} You could make it a single cable by adding a battery to simulate the voltage from the xmit cables on the nic, but batteries die. It's not recommended to cut the transmit side, shunt it to ground (pin 2). Some OS's will disable the interface if PIN 1 does not indicate a completed circuit. \subsection{What are HOME\_NET and EXTERNAL\_NET?} HOME\_NET and EXTERNAL\_NET are standard variable names that all of the Snort.org rules use. HOME\_NET refers to the network(s) that you want to protect, where EXTERNAL\_NET is the network(s) that you think attacks would come from. \subsection{My network spans multiple subnets. How do I define HOME\_NET?} Snort 1.7 supports IP lists. You can assign a number of addresses to a single variable. For example: \begin{verbatim}var HOME_NET [10.1.1.0/24,192.168.1.0/24]\end{verbatim} NOTE: Not all preprocessors support IP lists at this time. Unless otherwise stated, assume that any preprocessor using an IP list variable will use the first value as the HOME\_NET. The portscan preprocessor is an example. To catch all detectable portscans, pass 0.0.0.0/0 in as the first parameter. \begin{verbatim}preprocessor portscan: 0.0.0.0/0 5 3 portscan.log\end{verbatim} Use the portscan-ignorehosts preprocessor to fine tune and ignore traffic from noisy, trusted machines. \subsection{How do I set EXTERNAL\_NET?} Many people set EXTERNAL\_NET to ``any''. \begin{verbatim} var EXTERNAL_NET any \end{verbatim} By setting it to ``any'' Snort will alert you on any traffic matching a rule coming into or leaving your network. To cut down on the work that Snort has to do, many people set it to ``not HOME\_NET.'' \begin{verbatim} var EXTERNAL_NET !$HOME_NET \end{verbatim} This tells Snort to define EXTERNAL\_NET as everything except HOME\_NET. For most people this is the best thing to set it to. \subsection{How can I run Snort on multiple interfaces simultaneously?} LINUX: If you aren't running snort on linux 2.1.x/2.2.x kernel (with LPF available) the only way is to run multiple instances of snort, one instance per interface (with the -i option specifying the interface). However for linux 2.1.x/2.2.x and higher you can use libpcap library with S. Krahmer's patch which allows you to specify 'any' as interface name. In this case snort will be able to process traffic coming to all interfaces. *BSD: Use the ``bridge'' interface to combine your nics into a logical interface (bridge0). \subsection{My IP address is assigned dynamically to my interface, can I use Snort with it?} Yes. With Snort 1.7 and later, $<$interface$>$\_ADDRESS variable is available. The value of this variable will be always set to IP address/Netmask of the interface which you run snort at. if interface goes down and up again (and an IP address is reassigned) you will have to restart snort. For earlier versions of snort numerous scripts to achieve the same result are available. \subsection{I have one network card and two aliases, how can I force Snort to ``listen'' on both addresses?} If you're using at least version 1.7, you can specify an IP list like this: \begin{verbatim}var HOME_NET [ 192.168.10.0/24, 10.1.1.1/16 ]\end{verbatim} If you're using something older (version 1.6.3-patch2 or whatever) you can re-specify the HOME\_NET variable multiple times like this (for example): \begin{verbatim} var HOME_NET 10.1.1.0/24 include misc.rules var HOME_NET 192.168.1.0/24 include misc.rules \end{verbatim} \subsection{How do I ignore traffic coming from a particular host or hosts?} There are two basic ways to ignore traffic from a host: \begin{itemize} \item Pass Rules \item BPF Filters \end{itemize} Details: \begin{enumerate} \item Pass Rules: \begin{itemize} \item Advantages: \begin{itemize} \item Gives you rule based control over the packets. \item Puts all your changes into 'one place'-snort.conf. \end{itemize} \item Disadvantages: \begin{itemize} \item Reverses the Rule order, can cause some headaches in tracking down problems. \item One poorly written pass rule can 'blind' your whole network. \item The more specific the pass rule is, the more CPU snort needs to process it which may be important on loaded nets. \end{itemize} \item Example: For example to ignore ALL ICMP traffic from host using a pass rule: \begin{verbatim} pass icmp any -> $HOME_NET any \end{verbatim} \end{itemize} \item BPF Filters: \begin{itemize} \item Advantages: \begin{itemize} \item Drops the packet at the BPF interface, which saves on processing. \item Speeds up Snort since it 'never sees' those packets. \end{itemize} \item Disadvantages: \begin{itemize} \item Poorly constructed filters can 'blind-side' you. \end{itemize} \item Example: \begin{itemize} \item To ignore all traffic from 192.168.0.1: \begin{verbatim} snort not host 192.168.0.1 \end{verbatim} \item To ignore all ICMP ECHO-REQUESTS (pings) and ICMP-ECHO REPLY's (ping reply) from host $<$foo$>$: \begin{verbatim} snort ``not ( (icmp[0] = 8 or icmp[0] = 0) and host )'' \end{verbatim} \end{itemize} \end{itemize} \end{enumerate} \subsection{How do I get Snort to log the packet payload as well as the header?} It depends on how your Snort configuration logs. If it logs in binary format, you'll have to process the binary log in order to get cleartext. You also might have ``-A $<$foo$>$'' on the command line. Command line options always take override the .conf file. \subsection{Why are there no subdirectories under /var/log/snort for IP addresses?} It depends on how your snort configuration logs. If it logs in binary format, you'll have to process the binary log in order to get cleartext. \subsection{How do you get Snort to ignore some traffic?} Snort can be made to ignore traffic in a number of different ways: \begin{enumerate} \item Specify bpf filters on the command line the tcpdump man page has a description of bpf filters. \item Use a pass rule \item The portscan preprocessor has it's own special exclusion list with the portscan-ignorehosts.rules file directive \end{enumerate} \subsection{Why does the portscan plugin log ``stealth'' packets even though the host is in the portscan-ignorehosts list? } These types of tcp packets are inherently suspicious, no matter where they are coming from. The portscan detector was built with the assumption that {\em stealth} packets should be reported, even from hosts which are not monitored for portscanning. An option to ignore ``stealth'' packets may be added in the future. \subsection{What the heck is a ``Stealth scan''?} A Stealth scan can refer to more than one type of scan. \begin{itemize} \item {\bf Half-Open or SYN scan:} Instead of completing the full TCP three-way-handshake a full connection is not made. A SYN packet is sent to the system and if a SYN/ACK packet is received it is assumed that the port on the system is active. In that case a RST/ACK will be sent which will determined the listening state the system is in. If a RST/ACK packet is received, it is assumed that the port on the system is not active. \item {\bf FIN scan:} According to RFC 793 a system should send back an RST for all TCP ports closed when they receive a FIN packet for a specific port. \item {\bf XMAS tree scan:} According to RFC 793 a system should send back an RST for all TCP ports closed when they receive a FIN/URG/PUSH packet for a specific port. \item {\bf NULL scan:} According to RFC 793 a system should send back an RST for all TCP ports closed when they receive a packet without any specified IP flags for a specific port. \item {\bf Slow scan:} Any of the above scans could be used as a slow scan. A slow scan is when the attacker sends packets at a {\bf very} slow rate. Sometimes these scans can be conducted over hours, days, or weeks. The idea is since they are so slow, the victim's security measures won't ``notice'' the scan. \end{itemize} \subsection{What the heck is a SYNFIN scan?} SYNFIN scans got their name because there are both the SYN and FIN flags set. \subsection{Which takes precedence, commandline or rule file ?} The command line always gets precedence over the rules file. If people want to try stuff out quickly without having to manually edit the rules file, they should be able to override many things from the command line. \subsection{How does rule ordering work?} {\bf For $=>$ 2.0:} Please see the documents on v2.0 at: \htmladdnormallink{http://www.snort.org/docs/development-papers/}{http://www.snort.org/docs/development-papers/}. {\bf For $<=$ 1.9.X:} Marty has answered this many times on the snort-users mailing list. Here is an excerpt from a post on Thu, 22 Feb 2001 00:31:53 -0500, titled {\em ``Re: [Snort-users] order of evaluation of rules.''} Currently, the data structures that store Snort rule data are the RuleTreeNodes (RTN) and the OptTreeNodes (OTN). These data structs are stored in a two dimensinal linked list structure with the RTNs forming the top row of the ``Array'' and the OTNs forming the columns under the RTNs. Here's an ASCII illustration from the infamous ``lisapaper'': \begin{verbatim} RTN RTN RTN -------------- -------------- ----- | Chain Header | | Chain Header | | Chai | | | | | | Src IP | | Src IP | | Src | Dst IP |----->| Dst IP |----->| Dst ..... | Src Port | | Src Port | | Src | Dst Port | | Dst Port | | Dst | | | | | -------------- -------------- ----- | | | | | | OTN \|/ OTN \|/ -------V------ --------V------- | Chain Option | | Chain Option | | | | : | | Content | : | TCP Flags | : | ICMP Data | | Payload Size | | etc. | | | --------------- | | | OTN \|/ -------V------ | Chain Option | | | | Content | | TCP Flags | | ICMP data | | Payload Size | | etc. | | | -------------- | | \end{verbatim} Rules with similar rule headers (i.e. all the CGI rules, the old stealth port scan detection rules, most of the rules that focus on any single service, etc) are grouped under a single RTN for the sake of efficiency and the applicable OTNs are hung below them. For instance, if you have three rules like this: \begin{verbatim} alert tcp any any -> $HOME 80 (content: "foo"; msg: "foo";) alert tcp any any -> $HOME 80 (content: "bar"; msg: "bar";) alert tcp any any -> $HOME 80 (content: "baz"; msg: "baz";) \end{verbatim} They all get grouped under the same RTN and the OTNs are ``hung'' beneath them like this: \begin{verbatim} RTN -------------------- | SIP: any | | SP: any | | DIP: $HOME | | DP: 80 | -------------------- | | OTN \|/ ---------v---------- | content: foo | | msg: foo | --------------------- | | OTN \|/ ---------v---------- | content: bar | | msg: bar | --------------------- | | OTN \|/ ---------v---------- | content: baz | | msg: baz | --------------------- \end{verbatim} This is an efficient way to do things because we only need to check the data in the RTN once with this method. There is actually another dimension to this array: the function pointer list. Each node in the ``array'' has a linked list of function pointers attached to it. The functions in this list are the tests that need to be done to determine whether the data in the current packet matches the current rule node's information. Having this function pointer list gives us great efficiency and flexibility: we don't need to perform tests for things the current rule doesn't contain (e.g., ``any'' ports/IPs, packet content on non-content rules, etc). It also allows us to analyze the packet with any function without having to make major modifications to the whole program (which was the case in versions prior to version 1.5). There are a couple of implications of this architecture. For the sake of this discussion on rules ordering, the one we're interested in is that rule order is tricky to figure out. For instance: \begin{verbatim} alert tcp any any -> $HOME 80 (content: "foo"; msg: "foo";) alert tcp any any -> $HOME 1:1024 (flags: S; msg: "example";) alert tcp any any -> $HOME 80 (flags: S; msg: "Port 80 SYN!";) alert tcp any any -> $HOME 80 (content: "baz"; msg: "baz";) \end{verbatim} gets built like this: \begin{verbatim} RTN RTN -------------------- -------------------- | SIP: any | | SIP: any | | SP: any |-------->| SP: any | | DIP: \$HOME | | DIP: \$HOME | | DP: 80 | | DP: 1-1024 | -------------------- -------------------- | | | | OTN \|/ \|/ ---------v---------- ---------v---------- | content: foo | | flags: S | | msg: foo | | msg: example | -------------------- -------------------- | | OTN \|/ ---------v---------- | flags: S | | msg: Port 80 SYN! | -------------------- | | OTN \|/ ---------v---------- | content: baz | | msg: baz | -------------------- \end{verbatim} Note that all three of the port 80 rules will be checked before the ``1:1024'' rule due to the order in which the applicable RTN has been created. This is because the rules parser builds the first chain header for port 80 traffic and sticks it on the rules list, then on the next rule it sees that a new chain header is required, so it gets built and put in place. In this case you would intuitively expect to get the ``example'' message and never see the ``Port 80 SYN!,'' but the opposite is true. \subsection{How do I configure stream4?} \label{stream4} Stream4 is an entirely new preprocessor that preforms two functions: \begin{itemize} \item Stateful inspection of TCP sessions \item TCP stream reassembly \end{itemize} Marty implemented stream4 out of the desire to have more robust stream reassembly capabilities and the desire to defeat the latest ``stateless attacks'' that have been coming out against Snort (c.f. stick and snot). Stream4 is written with the intent to let Snort be able to handle performing stream reassembly for ``enterprise class'' users, people who need to track and reassemble more than 256 streams simultaneously. Marty optimized the code fairly extensively to be robust, stable, and fast. The testing and calculations I've performed lead me to be fairly confident that stream4 can provide full stream reassembly for several thousand simultaneous connections and stateful inspection for upwards of 64,000 simultaneous sessions. Stream4 is a large and complex piece of code (almost 2000 lines) and there are a lot of options associated with its runtime configuration, so I'll go over them here. \begin{verbatim} preprocessor stream4: [noinspect], [keepstats], [timeout ], [memcap] \end{verbatim} stream4\_reassemble defaults: \begin{verbatim} Reassemble client: ACTIVE Reassemble server: INACTIVE Reassemble ports: 21 23 25 53 80 143 110 111 513 Reassembly alerts: ACTIVE \end{verbatim} \subsection{Where does one obtain new/modifed rules? How do you merge them in?} New rules can be downloaded via CVS \myref{cvs} or, alternatively, may be found at www.snort.org. There is a mailing list dedicated to Snort rules, called snort-sigs hosted at Sourceforge. There are some scripts/programs to help you with rule management: \begin{itemize} \item oinkmaster: A simple Perl script to update the ruleset for you. \htmladdnormallink{http://www.algonet.se/~nitzer/oinkmaster/}{http://www.algonet.se/~nitzer/oinkmaster/} \item IDS Policy Manager: A win32 application that updates the ruleset using a GUI, then uploads your rulesets via scp. \htmladdnormallink{http://www.activeworx.com/idspm}{http://www.activeworx.com/idspm} \item snortpp: a program to merge multiple files into one master file sorted by SID. \htmladdnormallink{http://dragos.com/snortpp.tgz}{http://dragos.com/snortpp.tgz} \end{itemize} There is also this script that might be useful: \begin{verbatim} * []#!/bin/sh ########################################################################### #### # # Das Skript zum Herunterladen und installieren neuer IDS-Signaturen. # ########################################################################### #### MAILTO="admin@mydomain.de" MACHINE="machine1" #set -x SIGS_URL1="http://www.snort.org/dl/signatures/snortrules-stable.tar.gz" MD5_URL1="http://www.snort.org/dl/signatures/snortrules-stable.tar.gz.md5" WGET="/usr/bin/wget" #WGET_PARAMS="-N" WGET_PARAMS="-t 3 -T 5 -N -a /etc/snort/snort.log -P /etc/snort" # Wget parameters: # # -t : Retries (here 3) # -N : Get the file only if newer # -a : Append the log messages to the specified file # -P : Save the file to the specified directory # -T : Timeout ECHO="/bin/echo" TAR="/bin/tar" KILL="/bin/kill" PIDOF="/sbin/pidof" SNORT="/usr/local/bin/snort" SNORTUSER="snort" SNORTGROUP="snort" KILLSIG="SIGUSR1" SERVICE="/sbin/service" # Where is the Snort configuration dir: RULESPATH="/etc/snort/snortrules" SNORTCFGPATH="/etc/snort" MD5SUM="/usr/bin/md5sum" MD5SUM_PARAMS="" # The list of sensor interfacec divided by blanks IFACES="eth0" ########################################################################### #### # F U N C T I O N S # ########################################################################### #### ########################################################################### #### # Die Funktion, die Snort fuer alle def. Interfaces auf dem System startet # # # # Um sie zu erweitern muss man zwei Dinge tun: # # 1. Die Parameterliste von Interfaces erweitern # # 2. Das Konfigurationsfile unter /etc/snort/snort.conf_ethX anlegen # # # ########################################################################### #### restartsnort() { # Restarting Snort for all interfaces for i in $IFACES; do "$ECHO" "Setting up Snort for interface "$i"" $ECHO "Restarting Snort..." #/usr/bin/killall snort if [ -f /var/run/snort_"$i".pid ] then PID=$("$PIDOF" "$SNORT") if [ -z "$PID" ] then "$SERVICE" snort restart else #`cat /var/run/snort_"$i".pid` "$ECHO" "Restarting Snort running with PID "$PID" and reloading the rules..." "$KILL" -s "$KILLSIG" "$PID" fi else "$ECHO" "No PID file for interface "$i" found under /var/ run" fi "$ECHO" "Starting Snort" "$SNORT" -a -b -c "$SNORTCFGPATH""/snort.conf_""$i" -I -D -v -i $i -u "$SNORTUSER" -g "$SNORTGROUP" PID=`cat /var/run/snort_"$i".pid` "$ECHO" "Snort running now with PID "$PID"" done } ########################################################################### #### # Die Funktion zum ueberpruefen, ob und wie Snort auf dem System laeuft # ########################################################################### #### checksnort() { SNORTS=$("$PIDOF" "$SNORT" | wc -w | awk '{print $1}') SNORT_PIDS=$(/usr/bin/find /var/run -name snort\_eth[0-9]\.pid -ls | wc -l | awk '{print $1}') "$ECHO" "Snort instances counted: $SNORTS" "$ECHO" "Snort PID files found: $SNORT_PIDS" # 1. Fall: Snort laeuft nicht oder PID-File nicht da: if [ "$SNORTS" = "0" -o "$SNORT_PIDS" = "0" ] then "$ECHO" "Snort seems to be down or no PID file there..." "$ECHO" "Restarting Snort for all Interfaces..." "$SERVICE" snort restart fi # 2. Fall: Anzahl der Instanzen ungleich der Anzahl der PID-Files if [ "$SNORTS" -gt "$SNORT_PIDS" ] then "$ECHO" "More Snort instances than found PID files..." "$ECHO" "Something is wrong outthere..." "$ECHO" "Stopping all Snort processes..." # /usr/bin/killall -9 snort "$SERVICE" snort stop "$ECHO" "Hold on... Restarting Snort now..." "$SERVICE" snort restart fi # 3. Fall: Anzahl der Instanzen stimmt mit der Anzahl der PID-files ueberein } ########################################################################### #### ########################################################################### #### getrules() { # Get the rules, since we know that they are newer... $WGET $WGET_PARAMS $SIGS_URL1 $WGET $WGET_PARAMS $MD5_URL1 "$ECHO" "Readout the checksum..." # MD5-Summe auslesen if [ -f /etc/snort/snortrules-stable.tar.gz.md5 ] then MD5SUM1=`grep MD5 \ /etc/snort/snortrules-stable.tar.gz.md5|awk '{print $4}'` else "$ECHO" "Error! No MD5-file found" exit 1 fi "$ECHO" "Generating our own checksum..." # MD5-Summe bilden if [ -f /etc/snort/snortrules-stable.tar.gz ] then MD5SUM2=`md5sum /etc/snort/snortrules-stable.tar.gz|awk '{print $1}'` else "$ECHO" "Error! No rules file found" exit 1 fi if [ "$MD5SUM1" = "$MD5SUM2" ] then "$ECHO" "The MD5-Checksum fits!" "$ECHO" "$MD5SUM1" "$ECHO" "$MD5SUM2" "$ECHO" "$MD5SUM1" >> /etc/snort/snort.log "$ECHO" "$MD5SUM2" >> /etc/snort/snort.log "$ECHO" "Proceeding..." # /bin/sleep 1 else "$ECHO" "Error! Wrong checksum! Aborting!" "$ECHO" "Install rules manually!" "$ECHO" "$MD5SUM1" >> /etc/snort/snort.log "$ECHO" "$MD5SUM2" >> /etc/snort/snort.log exit 1 fi # Extract the new rules if [ -f "/etc/snort/snortrules-stable.tar.gz" ] then "$ECHO" "Extracting Snort rules..." "$TAR" -xzvf /etc/snort/snortrules-stable.tar.gz -C /etc/snort else "$ECHO" "Lost the file! Something is wrong!" "$ECHO" "Aborting!!" exit 1 fi # Deleting old rules # Existiert das Verzeichnis ueberhaupt? if [ -d "$RULESPATH" ] then # /bin/rm "$RULESPATH"/*.rules /bin/mv -f /etc/snort/rules/*.rules "$RULESPATH" /bin/cp -f /etc/snort/rules/classification.config "$SNORTCFGPATH" else "$ECHO" "Missing rules-directory!" "$ECHO" "Aborting!" exit 1 fi # Cleaning up... /bin/rm -rf /etc/snort/rules # Give everything to root /bin/chown root:root ${RULESPATH}/* } ########################################################################### #### # M A I N # ########################################################################### #### # Error handling first FCHK=$(/usr/bin/wget -spider -N -t 3 -T 5 "$SIGS_URL1" -P /etc/snort 2>&1) ERR_MSG=$("$ECHO" "$FCHK" | egrep -oi "failed error") # Log the error message explicitly "$ECHO" "$FCHK" >> /etc/snort/snort.log # If there is a word "failed" or "error" we break.. if [ "$("$ECHO" "$FCHK"| grep -i "failed")" ] || \ [ "$("$ECHO" "$FCHK"| grep -i "error")" ] then "$ECHO" "Error getting the files. The server seems to be not available." "$ECHO" "Error message:" "$ECHO" "$FCHK" "$ECHO" "Aborting!" exit 0 fi "$ECHO" "Checking/getting files..." # First extract the wget message FCHK=$(/usr/bin/wget -spider -N -t 3 -T 5 "$SIGS_URL1" \ -P /etc/snort 2>&1 | grep "not retrieving") /bin/date >> /etc/snort/snort.log "$ECHO" "Wget-output:" "$ECHO" $FCHK # Logging what we've done and when "$ECHO" "$FCHK" >> /etc/snort/snort.log if [ -z "$FCHK" ] then "$ECHO" "The files on the server seem to be newer." "$ECHO" "We will get them now..." getrules # Reload rules "$SERVICE" snort reload # restartsnort else # "$ECHO" "The signature files on the server are older or not newer." "$ECHO" "Doing nothing for now..." "$ECHO" "Checking if Snort is running...." checksnort exit 0 fi # Send Email "$ECHO" -e "`ls -lA "$RULESPATH"`\n\nSnort running with PID $("$PIDOF"\ "$SNORT")" | mail -s "Reloaded Snort signatures on $MACHINE"\ "$MAILTO" ########################################################################### #### ########################################################################### #### exit 0 #EOF \end{verbatim} \subsection{How do I use a remote syslog machine?} Add the syslog switch, -s, and put this statement syslog.conf: \begin{verbatim} auth.alert @managmentserverIP \end{verbatim} Look at your snort.conf file for more info on the facility and Priority settings. Make sure you have syslogd on the management server configured to allow syslog over UDP. Under RedHat, you can do this by editing /etc/sysconfig/syslog and adding the following line: \begin{verbatim} SYSLOGD_OPTIONS="-r -m 0" \end{verbatim} This will start syslogd with the mark interval set to 0 (turning it off) and set it to receive network connections. Then restart syslog. ``man syslogd'' for more info. You might also want to investigate syslog-ng\linebreak (\htmladdnormallink{http://www.balabit.hu/en/downloads/syslog-ng/}{http://www.balabit.hu/en/downloads/syslog-ng/}). Example invocation of snort: \begin{verbatim} /usr/local/bin/snort -c /etc/snort/snort.conf -I -A full -s 192.168.0.2:514 -i rl0 \end{verbatim} Note for Win32 users: Frank Knobbe wrote a patch for Snort to allow you to use `-s $<$host$>$' on the command line under Windows without nullifying the snort.conf. In other words, Snort still uses all settings from snort.conf but in addition uses the host from `-s' to send syslog alerts to. You can find the patch at: \htmladdnormallink{http://www.snort.org/dl/contrib/patches/win32syslog/}{http://www.snort.org/dl/contrib/patches/win32syslog/} \subsection{How do I get Snort and ACID working?} Acid has been unmaintained for quite some time. Use BASE instead (see below). \subsection{How do I build this BASE thing?} Read carefully through all the docs for each package. Getting BASE to work is a lot of work, since it depends on many packages. You need a working Apache, a working PHP, a working GD (and the many libraries GD depends on) and the ADODB package. This is a lot of stuff to configure. A typical sequence to get this all working on Solaris 8: Use some binary packages from a trusted Sun freeware site (sunfreeware.com). The most problems were with PHP and the GD library. GD itself needs a bunch of packages and libraries to work also. It needs the libpng stuff, the libjpeg stuff (if you want jpeg), etc, etc. Read through the readme for GD. So you either need to get these and compile them also, or get some binary packages. PHP is the most difficult thing to get compiled correctly. The PHP package needs to be compiled with lots of ``-with'' flags for GD to work properly, otherwise it gets lots of run-time unresolved reference errors. Just using a ``with'' for GD isn't sufficient. You also need to "with" each library which GD uses also, or PHP can't find the functions it needs. Here's the ``configure'' line you can use to get PHP working: \begin{verbatim} ./configure --with-mysql --with-apxs=/usr/apache/bin/apxs --with-gd --enable-sockets --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/local/ lib --with-zlib-dir=/usr/local/lib --with-xpm-dir=/usr/local/lib \end{verbatim} These `with' statements basically have the effect of the Makefile including -L and -R statements for each library so that both the compile and run time linkers can find all the functions needed to find in the Apache module environment. Apache doesn't seem to consult the LD\_LIBRARY\_PATH when running a module (or PHP doesn't, or there's some config item in the Apache conf files, but you can just use the ``withs''). Basically, you need to work from the bottom up. So you need to obtain/compile any libraries that GD needs and install them, and any libraries/packages those packages need. Then once you get GD compiled properly and installed, compile PHP. Then make a PHP script that calls phpinfo() and carefully examine the page produced. Once satisfied PHP is working, then the 'foundation' is ready for the other stuff. If they succeed, then install ADODB and BASE, tweak the config files, and it should all work. (heh, heh) BASE website: \htmladdnormallink{http://base.secureideas.net/}{http://base.secureideas.net/} \section{Rules and Alerts} \subsection{Errors loading rules files} Some common ones: \begin{itemize} \item \begin{verbatim}ERROR telnet.rules:YYY => Port value missing in rule!\end{verbatim} \item \begin{verbatim}ERROR telnet.rules:YYY => Bad port number: "(msg:"blah"\end{verbatim} \item \begin{verbatim}ERROR telnet.rules:YYY => Couldn't resolve hostname blah\end{verbatim} \end{itemize} What's going on? ``telnet.rules'' is the file where the syntax error occurred, and ``YYY'' is the line number it occurred on. There are a couple of possibilities: \begin{enumerate} \item The rule is missing a port value, has an invalid port number, or a bad hostname - in which case the ruleset author/maintainer should be notified. \item More often, the rule is just fine, but a variable in it was not declared. Open the rules file, look at the rule on the line number provided, and confirm that the variables it uses have been declared. You can read more about variables at \htmladdnormallink{http://www.snort.org/docs/writing\_rules/chap2.html\#tth\_sEc2.1.2}{http://www.snort.org/docs/writing\_rules/chap2.html\#tth\_sEc2.1.2} \end{enumerate} \subsection{Snort says ``Rule IP addr (``1.1.1.1'') didn't x-late, WTF?''} Get rid of the quotes around the IP address and try again. \subsection{Snort is behind a firewall (ipf/pf/ipchains/ipfilter) and awfully quiet...} Your firewall rules will also block traffic to the Snort processes. Note: This does not apply if Snort is installed {\bf on} the firewall box. \subsection{Does snort see packets filtered by IPTables/IPChains/IPF/PF?} Snort operates using libpcap. In general it sees everything the network adapter driver sees before the network stack munges it. Linux IPTables, Linux IPChains, BSD PF and IPF and other packet filters do not prevent snort from seeing a packet that is present on the network wire. Even if an inbound packet is denied by the packet filter Snort will still see and analyze the packet if it is listening to that interface. Snort/pcap sees whatever comes out of or goes into the network adapter. Note however that Snort is affected to the extent that the stream of data on the network wire is affected. Thus Snort will not see outbound packets which were denied while being sent since they will never reach the network adapter. Under OpenBSD you can snort just the PF rejects by using the /dev/pflogN interface. \subsection{I'm getting large amounts of $<$some alerts type$>$. What should I do? Where can I go to find out more about it? } Some rules are more prone to producing false positives than others. This often varies between networks. You first need to determine if it is indeed a false positive. Some rules are referenced with ID numbers. The following are some common identification systems, and where to go to find more information about a particular alert. \begin{tabular}{|l|l|l|} \hline {\bf System} & {\bf Example} & {\bf URL} \\ \hline\hline IDS & IDS182 & \htmladdnormallink{http://www.whitehats.com/IDS/182}{http://www.whitehats.com/IDS/182} \\ \hline CVE & CVE-2000-0138 & \htmladdnormallink{http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2000-0138}{http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2000-0138} \\ \hline Bugtraq & BugtraqID 1 & \htmladdnormallink{http://www.securityfocus.com/vdb/bottom.html?vid=1}{http://www.securityfocus.com/vdb/bottom.html?vid=1} \\ \hline McAfee & Mcafee 10225 & \htmladdnormallink{http://vil.nai.com/vil/dispVirus.asp?virus\_k=10225}{http://vil.nai.com/vil/dispVirus.asp?virus\_k=10225} \\ \hline Nessus & Nessus 11073 & \htmladdnormallink{http://cgi.nessus.org/plugins/dump.php3?id=11073}{http://cgi.nessus.org/plugins/dump.php3?id=11073}\\ \hline \end{tabular} It may be necessary to examine the packet payload to determine if the alert is a false positive. The packet payload is logged using the -d option. If you determine the alerts are false positives, you may want to write pass rules for machines that are producing a large number of them. If the rule is producing an unmanageable amount of false positives from a number of different machines, you could pass on the rule for all traffic. This should be used as a last resort. \subsection{What about all these false alarms? } Most think that a pile of false positives is infinitely preferable. Then people can turn off what they don't want. The reverse, having a small rule set, can lure people into complacency thinking that Snort is doing ``its thing'' and there is nothing to worry about. \subsection{What are all these ICMP files in subdirectories under /var/log/snort? } Most of them are likely destination unreachable and port unreachables that were detected by snort when a communications session attempt fails. \subsection{Why does the program generate alerts on packets that have pass rules? } The default order that the rules are applied in is alerts first, then pass rules, then log rules. This ordering ensures that you don't write 50 great alert rules and then disable them all accidentally with an errant pass rule. If you really want to change this order so that the pass rules are applied first, use the ``-o'' command line switch, or the ``order'' config directive. One other thing to keep in mind is that the alert might be generated from a preprocessor. If that is the case, then no pass rule will help you minimize the false positives. You will need to use a BPF filter. \subsection{What are all these ``ICMP destination unreachable'' alerts? } ICMP is the acronym for Internet Control Message Protocol They are failed connections ICMP unreach packet carries first 64 bits(8bytes) or more of the original datagrami and the original IP header. The ICMP Destination Unreachable (message type 3) is sent back to the originator when an IP packet could not be delivered to the destination address. The ICMP Code indicates why the packet could not be delivered. The original codes are: \begin{itemize} \item0 - net unreachable \item1 - host unreachable \item2 - protocol unreachable \item3 - port unreachable \item4 - fragmentation needed and DF bit set \item5 - source route failed \end{itemize} As far as why... ``it all depends...'' ICMP Unreachable Error Messages are divided into two groups: \begin{enumerate} \item ICMP Unreachable Error Messages issued by routers (all 16 of them) \item ICMP Unreachable Error Messages issued by a Host (only 2) \end{enumerate} What are the only 2 issued by a host? ICMP Port Unreachable - the destination port on the targeted host is closed (a.k.a. not in a listening state). ICMP Protocol Unreachable - the protocol we were trying to use is not being used on the targeted host. Both ICMP Type field and Code field indicates why the packets could not be delivered. Some snort ICMP alerts" are informational like the ICMP alerts found in icmp-info.rules. At this time there are no references or even classtypes associated with these rules. Other rules are more likely to be associated with untoward activity. For example, in icmp.rules you will find: \begin{verbatim} alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"ICMP ISS Pinger"; content:"|495353504e475251|";itype:8;depth:32; reference:arachnids,158; classtype:attempted-recon; sid:465; rev:1;) \end{verbatim} which has a reference where the importance might be determined by checking out the arachnids reference. The classtype may indicate more or less the relative importance of the event. When a destination UDP port is closed on the targeted host, a.k.a. not in a listening state, the targeted host will issue an ICMP Port Unreachable error message back to the offending packets source IP address, given in the query. Some programs use these messages, like traceroute with *nix based machines. Windows based machines (tracert) will default to ICMP Echo requests... For further information about this, see: \begin{itemize} \item IP - ftp://ftp.isi.edu/in-notes/rfc791.txt \item ICMP - ftp://ftp.isi.edu/in-notes/rfc792.txt \item TCP - ftp://ftp.isi.edu/in-notes/rfc793.txt \item UDP - ftp://ftp.isi.edu/in-notes/rfc768.txt \end{itemize} and \htmladdnormallink{http://www.iana.org/assignments/icmp-parameters}{http://www.iana.org/assignments/icmp-parameters} Actually, putting this URL somewhere handy is a good idea: \htmladdnormallink{http://www.iana.org/}{http://www.iana.org/} There is also a good ICMP paper on \htmladdnormallink{http://www.sys-security.com/}{http://www.sys-security.com/} \subsection{Why do many Snort rules have the flags P (TCP PuSH) and A (TCP ACK) set? } One of the reasons it alerts on a PA flags is to minimize the false positive. You will only get an alert upon successful connections. If you want to see all the attempts, you either have to modify the signatures, add you own signatures or use your firewall logs to see if an attempt to specific a port occurred. \subsection{What are these IDS codes in the alert names? } IDS means "Intrusion Detection Signature" and identifies a known attack attempt. You can learn more about a specific IDS id at the arachNIDS search engine on \htmladdnormallink{http://www.whitehats.com/}{http://www.whitehats.com/}. The ``references'' keyword in rules can also be a good pointer for further research. \subsection{Snort says BACKDOOR SIGNATURE... does my machine have a Trojan? } If you are dumping the data part of the packet, review it. These rules are known to have high false rates as most of them are just based on numeric port numbers. \subsection{What about ``CGI Null Byte attacks?'' } It's a part of the http preprocessor. Basically, if the http decoding routine finds a \%00 in an http request, it will alert with this message. Sometimes you may see false positives with sites that use cookies with urlencoded binary data, or if you're scanning port 443 and picking up SSLencrypted traffic . If you're logging alerted packets you can check the actual string that caused the alert. Also, the unicode alert is subject to the same false positives with cookies and SSL. Having the packet dumps is the only way to tell for sure if you have a real attack on your hands, but this is true for any content-based alert. \subsection{Why do certain alerts seem to have `unknown' IPs in BASE? } See the BASE FAQ at \htmladdnormallink{http://base.secureideas.net/faq.php}{http://base.secureideas.net/faq.php} \subsection{Can priorities be assigned to alerts using BASE? } See the BASE FAQ at \htmladdnormallink{http://base.secureideas.net/faq.php}{http://base.secureideas.net/faq.php} \subsection{What about `SMB Name Wildcard' alerts? } Whitehats IDS177 \htmladdnormallink{http://dev.whitehats.com/cgi/test/new.pl/Show?\_id=netbios-name-query}{http://dev.whitehats.com/cgi/test/new.pl/Show?\_id=netbios-name-query} specifies traffic coming from {\em outside} of your local network. Allowing netbios traffic over public networks is usually very insecure. If the rule you are using also refers to ingres traffic only, then it would explain why you don't see a lot of false positives. For anyone reading that does see a lot of false postiives - if you change your rule to reflect the source address as being !\$HOME (or whatever variable you use to represent your internal network), then you should see most of the false positives go away. The value of this chack is that a default administrative share C\$ ADMIN\$ or some such has been accessed. This shouldn't happen in normal use - when people want to share files they should be implicitely defining the shares and ACL. \subsection{What the heck is a SYNFIN scan? } SYNFIN scans got their name because there are both the SYN and FIN flags set. \subsection{I am getting too many ``IIS Unicode attack detected'' and/or ``CGI Null Byte attack detected'' false positives. How can I turn this detection off? } These messages are produced by the http\_decode preprocessor. If you wish to turn these checks off, add -unicode or -cginull to your http\_decode preprocessor line respectively. \begin{verbatim}preprocessor http_decode: 80 8080 -unicode -cginull\end{verbatim} Your own internal users normal surfing can trigger these alerts in the preprocessor. Netscape in particular has been known to trigger them. Instead of disabling them,try a BPF filter to ignore your outbound http traffic such as: \begin{verbatim}snort -d -A fast -c snort.conf not (src net xxx.xxx and dst port 80)\end{verbatim} This has worked very well for us over a period of 5-6 months and Snort is still very able to decode actual and dangerous cgi null and unicode attacks on our public web servers. \subsection{How do I test Snort alerts and logging?} Try a rule that will fire off all the time like: \begin{verbatim}alert tcp any any -> any any (msg:"TCP traffic";)\end{verbatim} Also take a look at sneeze at http://snort.sourceforge.net/sneeze-1.0.tar Sneeze is a false positive generator that reads snort signatures and generates packets that will trigger the rules. \subsection{What is the difference between ``Alerting'' and ``Logging''?} There are two primary output facilities in Snort, logging and alerting. The alerting facility exists to let you know that something interesting has happened. The logging facility exists to log full packet information to the output format (pcap, ascii, database, etc). The ``alert'' action in Snort is hard coded to do two things when an event is detected by Snort, write an event to the alert facility and log as much as possible/desired to the output facility. The ``log'' action merely logs the current packet to the logging facility without generating an alert. This is done so you can log interesting things (telnet sessions, whatever) without having to generate an alert on every packet. The database plugin is something of an anomaly because it doesn't separate the two functionalities very much. The ``log'' option attaches the log facility and the ``alert'' option attaches it to the alert facility. What this means in practical terms is that if the db plugin is in alert mode, it will only receive output from alert rules, whereas if it's in ``log'' mode it will receive output from both log and alert rules. \subsection{Are rule keywords ORed or ANDed together?} >From Section 2.1 of the Snort Manual: \myquote{ All of the elements in that make up a rule must be true for the indicated rule action to be taken. When taken together, the elements can be considered to form a logical AND statement. At the same time, the various rules in a Snort rules library file can be considered to form a large logical OR statement. } \subsection{Can Snort trigger a rule by MAC addresses?} Not exactly. Snort logs MAC addresses and other L2 info within the packets. The arpwatch pre-processor can watch for games with MAC address changes. But there is no facility for triggering Rules form the L2 information. The content search keywords and depth and offset begin from the L3 payload, though we haven't tried playing with really big offsets yet :-). \subsection{How can I deactivate a rule?} Rules can be called from an included file in snort.conf, which tells Snort to follow the path to the rules file specified, and load it at initialization. Rules can also be included in snort.conf directly. If you want to deactivate a single rule within any list of rules, you can use one of these techniques: \begin{enumerate} \item Delete the rule and re-initialize Snort \item Place a \# in front of the rule, commenting it out, and re-initialize Snort \item Write a pass rule with the same properties in local.rules (or wherever you prefer), and re-initialize Snort with the -o option. \end{enumerate} \subsection{How can I define an address to be anything except some hosts?} Use the ! operator. E.g.: \begin{verbatim} var EXTERNAL_NET !$HOME_NET \end{verbatim} Note that the negation operator does not work inside a list so the following will NOT work: \begin{verbatim} var EXTERNAL_NET [!192.168.40.0/24,!10.14.0.0/16] \end{verbatim} but this will work: \begin{verbatim} var EXTERNAL_NET ![192.168.40.0/24,10.14.0.0/16] \end{verbatim} \subsection{After I add new rules or comment out rules how do I make Snort reload?} Usually a kill -HUP will work just fine. But if you are running inside of a chroot setup, this will not work as expected \myref{chroot}. If you're running like inside of a chroot jail, your best bet would be to kill and restart the snort process instead. \subsection{Where do the distance and within keywords work from to modify content searches in rules?} The ``distance'' keyword gives you a relative offset from the end of the last match, so it basically acts as a wildcarding mechanism. You can also use the new ``within'' keyword to limit how deep into the packet from the end of the distance it'll search before it stops. \subsection{How can I specify a list of ports in a rule?} You can't yet. You can specify a range of ports between X and Y with the notation X:Y. See the users manual (\htmladdnormallink{http://www.snort.org/docs/writing\_rules/chap2.html\#tth\_sEc2.2.4}{http://www.snort.org/docs/writing\_rules/chap2.html\#tth\_sEc2.2.4}) for more info on port ranges. \subsection{How can I protect web servers running on ports other than 80?} It is possible... It's a kludge, but it can work. Since the newer rules use the \$HTTP\_PORTS variable, you simply reset it and re-run the rules for the other ports. For example: \begin{verbatim} var HTTP_PORTS 80 include web.rules var HTTP_PORTS 8080 include web.rules \end{verbatim} \subsection{How do I turn off ``spp:possible EVASIVE RST detection'' alerts?} You want to pass the ``disable\_evasion\_alerts'' argument to stream4 in snort.conf. \subsection{Is there a private SID number range so my rules don't conflict?} Yes. Private SIDs start at 1000000. \subsection{How long can address lists, variables, or rules be?} The Snort parser has an 8K limit on variables and rules {\bf after} expansion. In practice, this is not a major limitation. :-) \subsection{What do the numbers (ie: [116:56:1]) in front of a Snort alert mean?} For this explanation, we'll use the following example: \begin{verbatim} [**] [116:56:1] (snort_decoder): T/TCP Detected [**] \end{verbatim} The first number is the Generator ID, this tells the user what component of Snort generated this alert. For a list of GIDs, please read etc/generators in the Snort source. In this case, we know that this event came from the ``decode'' (116) component of Snort. The second number is the Snort ID (sometimes referred to as Signature ID). For a list of preprocessor SIDs, please see etc/gen-msg.map. Rule-based SIDs are written directly into the rules with the ``sid'' option. In this case, ``56'' represents a T/TCP event. The third number is the revision ID. This number is primarily used when writing signatures, as each rendition of the rule should increment this number with the ``rev'' option. \section{Getting Fancy} \subsection{I hear people talking about ``Barnyard''. What's that?\label{barnyard}} Barnyard is a output system for Snort. Snort creates a special binary output format called ``unified.'' Barnyard reads this file, and then resends the data to a database backend. Unlike the database output plugin, Barnyard is aware of a failure to send the alert to the database, and it stops sending alerts. It is also aware when the database can accept connections again and will start sending the alerts again. \subsection{Are there other output systems for Snort besides ``Barnyard''?\label{spoolers}} FLoP (Fast Logging Project) and Mudpit are two other programs that can be used. FLoP adds a patch to Snort that creates an output plugin that writes alerts to a Unix domain socket instead of a file. These alerts (which are stored in memory) are then sent to a central server where they are then written to a database. Advantages are that database requests are made locally rather than over the wire and files don't need to be stored on the sensor. \htmladdnormallink{http://www.geschke-online.de/FLoP/}{http://www.geschke-online.de/FLoP/} Mudpit is similar to Barnyard in that it uses Snort's unified output. It however has the ability to process both alert and log files in parallel, choosing one that contains more information on a particular event. \htmladdnormallink{http://farm9.org/Mudpit/}{http://farm9.org/Mudpit/} \subsection{How do I process those Snort logs into reports?} \begin{enumerate} \item Barnyard \myref{barnyard} can be used to process unified output files into a number of formats, including output to a database for further analysis. \item SnortSnarf, a tool for producing HTML out of snort alerts for navigating through these alerts. % \htmladdnormallink{http://www.silicondefense.com/snortsnarf/}{http://www.silicondefense.com/snortsnarf/} \item If you want to set up logging to a database you could try BASE: \htmladdnormallink{http://base.secureideas.net/}{http://base.secureideas.net/} \item You can manipulate the unified output files directly without a separate database and browse/correlate them with Cerebus: \htmladdnormallink{http://dragos.com/cerebus/}{http://dragos.com/cerebus/} \item For GUI front ends with simple log browsing, look at: \begin{itemize} \item HenWen (OSX) \htmladdnormallink{http://homepage.mac.com/nickzman}{http://homepage.mac.com/nickzman} \htmladdnormallink{http://home.attbi.com/~rickzman/software/HenWen1.0.sit.bin}{http://home.attbi.com/~rickzman/software/HenWen1.0.sit.bin} \item IDS Center (Win32) \label{IDSCenter} \htmladdnormallink{http://www.packx.net/}{http://www.packx.net/} \item Puresecure (UNIX and Win32) (Formerly known as Demarc.) \htmladdnormallink{http://www.demarc.com/downloads/puresecure/}{http://www.demarc.com/downloads/puresecure/} \item SnortCenter (UNIX and Win32) \htmladdnormallink{http://users.pandora.be/larc/}{http://users.pandora.be/larc/} \item IDS Policy Manager (Win32) \htmladdnormallink{http://www.activeworx.com/IDSPM/}{http://www.activeworx.com/IDSPM/} \end{itemize} \end{enumerate} \subsection{How do I log to multiple databases or output plugins?} Feed the unified output files through Barnyard twice to separate databases, or... You can build redundancy by using multiple output plugins. Here are some examples. Multiple instantiations of the database plugin: \begin{verbatim} output log_database: mysql, dbname=snort host=localhost user=xyz output log_database: mysql, dbname=snort host=remote.loghost.com user=xyz \end{verbatim} Remote database and local tcpdump: \begin{verbatim} output log_database: mysql, dbname=snort host=remote.loghost.com user=xyz output log_tcpdump: /var/log/snort.tcpdump \end{verbatim} Then you can replay the tcpdump file through snort to recreate the database. CAVEAT: Just playing back the log packets might not trigger some of the state dependent pre-processors. \subsection{How can I test Snort without having an Ethernet card or a connection to other computers? } You have to use routing between two dummy devices: \begin{verbatim} modprobe -a dummy # (The dummy device has to be build by the kernel) ifconfig dummy0 192.168.0.1 ifconfig dummy0:0 192.168.0.2 telnet 192.168.0.3 12345 \end{verbatim} It's important that the second IP is on the same interface and not, e.g. dummy1 or dummy2 and that the IP you try to access is {\em not} one of those you put on the interfaces. Use snort's ability to hear in promiscious mode on an IP address range. (HOME\_NET=192.168.0.0/16) \subsection{How to start Snort as a win32 service? } \begin{enumerate} \item You must use complete paths for everything. This means EVERYTHING: Command line, configuration files, everything. Examples: All include statements must be full paths: WRONG: include scan-lib CORRECT: include C:\( \backslash \)snort\( \backslash \)scan-lib All command line options must be full paths: WRONG: snort.exe -l ./log CORRECT: snort.exe -l C:\( \backslash \)snort\( \backslash \)log \item YOU MUST ALWAYS HAVE A LOGGING DIRECTORY SET VIA THE COMMAND LINE (-l switch). If you do not set a logging directory the service will not start and, on NT/Win2k, your bootup will hang for about 4 minutes. \item Make sure that snort runs correctly from the command line, without yet worrying about any service related issues. Test that all of your desired command line parameters are causing snort to function as you expect, such as correctly generating logging and alert output. If you can't get this part to work, then you don't have much hope of snort miraculously starting to work as a service. \item Once you have step (3) running correctly, modify the command line parameters you used in step (3) to include the additional parameters ``/SERVICE /INSTALL.'' For example, if your command line in step (3) was: \begin{verbatim} snort -i1 -lC:\( \backslash \)snort\( \backslash \)log -cC:\( \ backslash \)snort\( \backslash \)snort.conf \end{verbatim} then you should change it to be: \begin{verbatim} snort /SERVICE /INSTALL -i1 -lC:\( \backslash \)snort\( \backslash \) log -cC:\( \backslash \)snort\( \backslash \)snort.conf \end{verbatim} Verify that the command line parameters were received correctly by running the command `snort /SERVICE /SHOW.' \item Start the service by running the command: \begin{verbatim} net start snortsvc \end{verbatim} Note that versions 1.9 (build 228), 2.0 (build 50), or any versions newer than these, will add entries to the Win32 event Log if there is ever a problem starting the service. Stop the service by running the command: \begin{verbatim} net stop snortsvc \end{verbatim} \item The service can be uninstalled by running the command: \begin{verbatim} snort /SERVICE /UNINSTALL \end{verbatim} \end{enumerate} \subsection{Is it possible with snort to add a ipfilter/ipfw rule to a firewall? } Yes. Select the appropriate DAQ module for your system. IPQ, NFQ, and IPFW DAQs are available, among others. See README.daq for details. Other possibilities are listed below. \begin{itemize} \item SnortSam \htmladdnormallink{http://www.snortsam.net}{http://www.snortsam.net} \item You also might wat to look at inline-snort at: \htmladdnormallink{http://www.snort.org/dl/contrib/patches/snort-inline}{http://www.snort.org/dl/contrib/patches/snort-inline} \item Guardian is available and is part of the contrib section at \htmladdnormallink{http://www.snort.org}{http://www.snort.org}. Guardian is a perl script which uses Snort to detect attacks, and then uses IPchains to deny any further attacks. The Guardian webpage can be found at: \htmladdnormallink{http://www.chaotic.org/~astevens/Guardian/index.html}{http://www.chaotic.org/~astevens/Guardian/index.html} or you can use the mirror, \htmladdnormallink{http://www.cyberwizards.com/~midnite/Guardian/index.html}{http://www.cyberwizards.com/~midnite/Guardian/index.html} \end{itemize} But one caveat... running external binaries can also be a performance limiter and your should read the caution below... CHRISTOPHER CRAMER wrote: \myquote{ I'm sure this has been mentioned before in similar discussions, but this feels like a \_really\_ bad idea. What if the bad guys realize what is going on and make use of your blocking method as a DoS attack. All one would have to do start sending a series of triggering packets with spoofed IP addresses. Since I am no longer interested in breaking into your site, but rather making your life hell, I don't worry about the resulting data getting back to me. All I have to do is start proceeding up a list of IP addresses that I think you should no longer be able to talk to. When you come in the next morning, you find that you can no longer access the world. Just my \$0.02. } Danger Will Robinson: Conventional wisdom says that auto-blocking is inherently dangerous. However, for those that like to live at the bleeding edge of tech (and the separate process scanning logs and processing firewall commands sounds like a good way to do this...): Please remember to include an exclusion list and put on them important sites such as root servers, other important dns servers (yours, and important sites for your users), and in general any host you don't want to receive phone calls about being DoSed when they are spoofed - usually inconveniently like that first time you actually manage to get on vacation.... (i.e. imagine ``Crisis: the CEO can't reach his favorite redlite.org game.... you have to fly back from the Carribean ASAP....'') \subsection{What is the best way to use Snort to block attack traffic?} \begin{verbatim}snort-inline > hogwash >> SnortSAM|Guardian >> flexresp\end{verbatim} \subsection{Snort complains about the ``react'' keyword...} Rerun configure with the --enable-flexresp option and rebuild/reinstall. \subsection{How do I get Snort to e-mail me alerts?} You can't. Such a process would slow Snort down too much to make it of any use. Instead, log to syslog and use swatch or logcheck to parse over the plaintext logfiles. With the Logsurfer docs, this might get you on the road to doing something with Snort and Logsurfer: \begin{itemize} \item \htmladdnormallink{http://www.obfuscation.org/emf/logsurfer/snort.txt}{http://www.obfuscation.org/emf/logsurfer/snort.txt} \end{itemize} JASON HAAR provided an example Swatch (3.1beta) config that emails alerts: \begin{itemize} \item \htmladdnormallink{http://www.theadamsfamily.net/~erek/snort/snort-swatch.conf.txt}{http://www.theadamsfamily.net/~erek/snort/snort-swatch.conf.txt} \end{itemize} Here are some docs on swatch: \begin{itemize} \item \htmladdnormallink{http://www.oit.ucsb.edu/~eta/swatch/}{http://www.oit.ucsb.edu/~eta/swatch/} \item \htmladdnormallink{http://www.stanford.edu/~atkins/swatch}{http://www.stanford.edu/~atkins/swatch} \item \htmladdnormallink{http://rr.sans.org/sysadmin/swatch.php}{http://rr.sans.org/sysadmin/swatch.php} \item \htmladdnormallink{http://www.enteract.com/~lspitz/swatch.html}{http://rr.sans.org/sysadmin/swatch.php} \item \htmladdnormallink{http://www.cert.org/security-improvement/implementations/i042.01.html}{http://www.cert.org/security-improvement/implementations/i042.01.html} \end{itemize} IDS Center \myref{IDSCenter} on Win32 will also mail alerts. \subsection{How do I log a specific type of traffic and send alerts to syslog?} An example addition to snort.conf: \begin{verbatim} ruletype redalert { type alert output alert_syslog: LOG_LOCAL2 output database: alert, postgresql, user=user dbname=snort password=pwd } \end{verbatim} Go into your local.rules and make sure you have something like: \begin{verbatim} redalert tcp any any -> any any (msg:"REDRUM REDRUM"; content:"redalerttest") \end{verbatim} Then just do a telnet and type `redalerttest.' Presto, alerts to both. \subsection{Is it possible to have Snort call an external program when an alert is raised?} Calling another program from within your main IDS loop is generally a bad idea. Having your IDS block while waiting for $<$something$>$ of dubious reliability and origin nevermind timing while the packets are piling up is inviting packet loss. Especially with the already oh-so-consistent ``Gee I think I'll go away for a minute'' rock steady even cpu slicing Windows gives you (that's sarcasm, sorry). Go with the second approach.... process invokation is expensive on Windows. You want to keep that IDS task humming and munching packets as efficiently as possible with as few interruptions as possible, imho, and not be invoking the penalty of process invocation.... particularly on Windows where process invocation is much much heavier task than *nix. Even in a secondary process... You'll probably find something that stays ``awake'' all the time will work out much more nicely than something that gets ``woken up'' on a per alert basis for the aforementioned reasons. As a better alternative go check out swatch or logwatch. Also for those new to UNIX, logging alerts to syslog and then using ``tail -f /var/log/messages'' might be what you are looking for. \subsection{How can I use Snort to log HTTP URLs or SMTP traffic?} It can be done with Snort, but you might find it faster to use mailsnarf and urlsnarf from Dug Song's dsniff package. Dsniff is available from: \htmladdnormallink{http://www.monkey.org/~dsong/dsniff/}{http://www.monkey.org/~dsong/dsniff/} You can get a win32 port of dsniff at: \htmladdnormallink{http://www.datanerds.net/~mike/dsniff.html}{http://www.datanerds.net/~mike/dsniff.html} \subsection{What are some resources that I can use to understand more about source addresses logged and where they are coming from?} \begin{itemize} \item \htmladdnormallink{http://www.arin.org/}{http://www.arin.org/} \item \htmladdnormallink{http://www.caida.org/tools/utilities/netgeo/}{http://www.caida.org/tools/utilities/netgeo/} \item \htmladdnormallink{http://netgeo.caida.org/perl/netgeo.cgi}{http://netgeo.caida.org/perl/netgeo.cgi} \item \htmladdnormallink{http://standards.ieee.org/regauth/oui/oui.txt}{http://standards.ieee.org/regauth/oui/oui.txt} \item \htmladdnormallink{http://www.codito.de/manufactor\_hash}{http://www.codito.de/manufactor_hash} \item \htmladdnormallink{http://coffer.com/mac\_find/}{http://coffer.com/mac_find/} \item \htmladdnormallink{http://www.idefense.com/Intell/CI022702.html}{http://www.idefense.com/Intell/CI022702.html} \item \htmladdnormallink{http://www.idefense.com/excelfiles/All.zip}{http://www.idefense.com/excelfiles/All.zip} \end{itemize} Also, try ``dig.'' \subsection{How do I understand this traffic and do IDS alert analysis?} \begin{enumerate} \item You'll need to understand some basics of IP, TCP, and UDP. Things like destination addresses, source addresses, common ports, what TCP SYN, FIN and RST mean, etc. The same kind of basic knowledge of the internet you need to successfully configure a multi-interface router applies here, although you don't need to know router syntax. Some useful online references: \begin{itemize} \item A truly basic ``intro to TCP/IP'' \htmladdnormallink{http://pclt.cis.yale.edu/pclt/COMM/TCPIP.HTM}{http://pclt.cis.yale.edu/pclt/COMM/TCPIP.HTM} \item A reasonable looking TCP/IP FAQ: \htmladdnormallink{http://www.itprc.com/tcpipfaq/default.htm}{http://www.itprc.com/tcpipfaq/default.htm} \item A basics of firewalls, DMZ's, etc. \htmladdnormallink{http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html\_single/Firewall-HOWTO.html}{http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/Firewall-HOWTO.html} \end{itemize} \item You'll need to understand some basics of how network attacks work. I'd recommend skimming over ``Smashing the Stack for fun and profit'' by Aleph one. A deep understanding isn't necessary, but a casual read of this will give you some helpful basics in understanding the kinds of things that happen in an attack, and give you a better understanding of what to look for. \htmladdnormallink{http://www.insecure.org/stf/smashstack.txt}{http://www.insecure.org/stf/smashstack.txt} \item A good guide on securing systems is helpful, something like this one: \htmladdnormallink{http://www.openna.com/products/books/sol/solus.php}{http://www.openna.com/products/books/sol/solus.php} \htmladdnormallink{http://www.seifried.org/lasg/}{http://www.seifried.org/lasg/} \item You'll need to understand the basics of internet servers, ie: what DNS, HTTP, FTP, SMTP, etc. are for. Most of that should be covered in the various other references made here. \item An excellent reference on ``oddball'' traffic patterns commonly seen at network borders, also very helpful: \htmladdnormallink{http://www.robertgraham.com/pubs/firewall-seen.html}{http://www.robertgraham.com/pubs/firewall-seen.html} \item Also take a look at the ``Recommended Reading'' section \myref{courses} \end{enumerate} \subsection{How can I examine logged packets in more detail?} If you are using unified logging, you can use Barnyard \myref{barnyard} or the unified log to pcap converter written by Dragos: \htmladdnormallink{http://dragos.com/logtopcap.c}{http://dragos.com/logtopcap.c} You can also use the \texttt{getpacket} program from the FLoP project \myref{spoolers} You can then get additional decoding of the packet contents by analyzing these pcap files with either: \begin{itemize} \item Tcpdump - http://www.tcpdump.org \item Ethereal - http://www.ethereal.com \end{itemize} \section{Problems} \subsection{ I think I found a bug in Snort. Now what?} Get some more diagnostic information and post it to ``snort-users'' at \htmladdnormallink{http://www.sourceforge.net/lists/listinfo/snort-users}{http://www.sourceforge.net/lists/listinfo/snort-users}. To get diagnostic information, compile snort as either: \begin{verbatim}make clean; make CFLAGS=-ggdb\end{verbatim} or \begin{verbatim}make clean; make "CFLAGS=-ggdb -DDEBUG" \end{verbatim} trace coredump as: \begin{verbatim} gdb /path/to/snort /path/to/snort/core gdb> where gdb> bt gdb> print $varname, varname, \$\$varname etc.. \end{verbatim} or if corefile isn't generated, Snort should be started as: \begin{verbatim} gdb snort gdb> run snort\_args\_go\_here \end{verbatim} Then, when it crashes: \begin{verbatim} gdb> where gdb> bt gdb> print \$varname, varname, \$\$varname etc.. \end{verbatim} \subsection{SMB alerts aren't working, what's wrong? } The SMB alerting output plugin was removed in Snort 2.1 due to security issues. \subsection{Snort says ``Garbage Packet with Null Pointer discarded!'' Huh?} This was an internal diagnostic message triggered by an old bug in early versions of the defragmentation preprocessor. Upgrade to to the latest version of Snort. \subsection{Snort says ``Ran Out Of Space.'' Huh?} This is an internal diagnostic message when the defragmentation preprocessor runs into its ~32MB hard allocation space limit. Tell Dragos about it $<$dr@kyx.net$>$. \subsection{My BASE db connection times-out when performing long operations (e.g. deleting a large number of alerts).} PHP has an internal variable set to limit the length an script can execute. It is used to prevent poorly written code from executing indefinitely. In order to modify the time-out value, examine the 'max\_execution\_time' variable found in the 'php.ini' configuration file. \subsection{Why does snort report ``Packet loss statistics are unavailable under Linux?''} The Linux IP stack doesn't report lost packet stats. This also has been recently fixed with the 2.4+ kernel in the new version of libpcap...upgrade kernels and libpcap and it should now work. \subsection{My /var/log/snort directory gets very large...} Try this script to archive the files: \begin{verbatim} * []#!/bin/sh # # Logfile rotation script for snort written by jameso@elwood.net. # # This script is pretty basic. We start out by setting some vars. # Its job is tho rotate the days logfiles, e-mail you with what # it logged, keep one weeks worth of uncompressed logs, and also # keep compressed tgz files of all the logs. It is made to be run # at midnight everynight. This script expects you to have a base # dir that you keep all of your logs, rule sets etc in. You can # see what sub dirs it expects from looking at the var settings # below. # # Things to note in this script is that we run this script at 12 # every night, so we want to set the dirdate var the day the script # runs minus a day so we label the files with the correct day. We # Then create a dir for the days logs, move the log files into # todays dir. As soon as that is done restart snort so we don't miss # anything. Then delete any logs that are uncompressed and over a # week old. Then compress out todays logs and archive them away, and # end up by mailling out the logs to you. # # Define where you have the base of your snort install snortbase=/usr/snort # Define other vars # logdir - Where the logs are kept # oldlogs - Where you want the archived .tgz logs kept # weeklogs - This is where you want to keep a weeks worth of log files uncompressed # dirdate - Todays Date in Month - Day - Year format # olddirdate - Todays date in the same format as dirdate, minus a week logdir=$snortbase/log oldlogs=$snortbase/oldlogs weeklogs=$snortbase/weeklogs # When I first wrote this script, I only ran it on BSD systems. That was a # mistake, as BSD systems have a date command that apperently lets you walk the # date back pretty easily. Well, some systems don't have this feature, so I had # to change the way that dates are done in here. I left in the old way, because # it is cleaner, and I added in a new way that should be portable. If anyone # has any problems, just let me know and I will try to fix it. # # You have to change the system var to either bsd or other. Set it to bsd if # your system supports the "-v" flag. If you are not sure, set it to other. system=bsd if [ $system = bsd ] then dirdate=`date -v -1d "+%m-%d-%y"` olddirdate=`date -v -8d "+%m-%d-%y"` elif [ $system = other ] month=`date "+%m"` yesterday=`expr \`date "+%d"\` - 1` eightday=`expr \`date "+%d"\` - 8` year=`date "+%y"` dirdate=$month-$yesterday-$year olddirdate=$month-$eightday-$year fi # Create the Dir for todays logs. if [ ! -d $weeklogs/$dirdate ] then mkdir $weeklogs/$dirdate fi # Move the log files into todays log dir. This is done with # a for loop right now, because I am afriad that if a lot is # logged there may be to many items to move with a "mv *" # type command. There may a better way to do this, but I don't # know it yet. for logitem in `ls $logdir` ; do mv $logdir/$logitem $weeklogs/$dirdate done # Kill and restart snort now that the log files are moved. kill `cat /var/run/snort_fxp0.pid` # Restart snort in the correct way for you /usr/local/bin/snort -i fxp0 -d -D -h homeiprange/28 -l /usr/snort/log \ -c /usr/snort/etc/08292k.rules > /dev/null 2>&1 # Delete any uncompressed log files that over a week old. if [ -d $weeklogs/$olddirdate ] then rm -r $weeklogs/$olddirdate fi # Compress and save the log files to save for as long as you want. # This is done in a sub-shell because we change dirs, and I don't want # to do that within the shell that the script runs in. (cd $weeklogs; tar zcvf $oldlogs/$dirdate.tgz $dirdate > /dev/null 2>&1) # Mail out the log files for today. cat $weeklogs/$dirdate/snort.alert | mail -s "Snort logs" you@domain.com cat $weeklogs/$dirdate/snort_portscan.log | mail -s "Snort portscan logs" you@do main.com \end{verbatim} \subsection{Why does the `error deleting alert' message occur when attempting to delete an alert with BASE? } Most likely the DB user configure in BASE does not have sufficient privileges. In addition to those privileges granted to log the alerts into the database (INSERT, SELECT), DELETE is also required. This permission related issue can be confirmed by manually inserting a row into the database, then trying to delete it. \begin{enumerate} \item Log into MySQL with the same credentials (i.e. username, password) as you use in BASE: \begin{verbatim} mysql -u -p \end{verbatim} \item Insert a test row into the event table: \begin{verbatim} mysql> INSERT INTO event (sid, cid, signature, timestamp) VALUES (1,1000000, "test", "0"); \end{verbatim} (this assumes that you don't already have a row with an event ID=1000000. If you do just choose another event id \#) \item Now delete this newly inserted row: \begin{verbatim}mysql> DELETE FROM event WHERE sid=1 AND cid=10000000; \end{verbatim} If you were not able to delete, this confirms that this is a permission problem. Re-login to mysql as root, and issue a GRANT command (giving the DELETE permission) to the BASE DB user: \begin{verbatim}GRANT DELETE on snort.* to base@localhost\end{verbatim} (this assumes that my alert database is 'snort', username is 'base', and logging from the 'localhost') \end{enumerate} \subsection{BASE appears to be broken in Lynx } See the BASE FAQ at \htmladdnormallink{http://base.secureideas.net/faq.php}{http://base.secureideas.net/faq.php} \subsection{I am getting `snort [pid] uses obsolete (PF\_INET, SOCK\_PACKET)' warnings. What's wrong?} You are using an older libpcap version with recent linux kernel. There should be no problem with it as long as your kernel supports SOCK\_PACKET socket type. To get rid off the warning message however, you'll have to upgrade to some recent version of libpcap (a copy from www.tcpdump.org is recommended). \subsection{On HPUX I get device lan0 open: recv\_ack: promisc\_phys: Invalid argument} It's because there's another program running using the DLPI service. The HP-UX implementation doesn't allow more than one libpcap program at a time to run, unlike Linux (from snort.c). \subsection{Snort is dying with a `can not create file' error and I have plenty of diskspace. What's wrong?} You may run out of free inodes, which basically also means you can not create more files on the partition. The obvious solution is to rm some. ;-) \subsection{I am using Snort on Windows and receive an ``OpenPcap() error upon startup: ERROR: OpenPcap() device open: Error opening adapter'' message. What's wrong? } Either winpcap is not installed, or you are using an incompatible version. Try upgrading to the latest version (2.3 as of 01/17/03). It is available from \htmladdnormallink{http://netgroup-serv.polito.it/winpcap/}{http://netgroup-serv.polito.it/winpcap/}. It might also be an issue with SMP machines \myref{winpcap}. \subsection{Snort is not logging to my database} There are a number of problems that may be causing Snort to fail to log to a database. You should check these: \begin{enumerate} \item You did not set up the database plugin in your configuration file. \item You are using an older database schema, and should update it by running the create scripts from the ./schemas directory of the source tarball. \item You are using a command line option that overrides what you have in your configuration file. This is most often -A or -s. NOTE: If you wish to log to syslog as well, specify so in your configuration file rather then the command line. \item There is a problem with your database configuration itself. Make sure the user you specify has the correct permissions, or that the database is even up and running. \end{enumerate} \subsection{Portscans are not being logged to my database } You need to change the output facility to 'alert' rather then 'log'. The portscan preprocessor calls output plugins registered as 'alert' plugins rather then 'log'. \begin{verbatim}output database: alert, mysql, user=snort dbname=snort host=localhost\end{verbatim} \subsection{Snort is not logging to syslog} There are a number of problems that may be causing snort to fail to log to syslog. You should check these: \begin{itemize} \item You are using a command line option that overrides what you have in your configuration file. This is most often -A. \item It may be logging to the wrong place. Make sure syslog is configured correctly. \end{itemize} \subsection{I am still getting bombarded with spp\_portscan messages even though the IP that I am getting the portscan from is in my \$DNS\_SERVERs var } Try adding /32 netmasks to those addresses: \begin{verbatim}var DNS_SERVERS \[xxx.xx.0.3/32,xxx.xxx.0.2/32\]\end{verbatim} And make sure the \$DNS\_SERVERS variable is on the portscan-ignorehosts line: \begin{verbatim}preprocessor portscan-ignorehosts: $DNS_SERVERS\end{verbatim} \subsection{Why does chrooted Snort die when I send it a SIGHUP? \label{chroot}} It's a known problem with permissions. Workaround, restart snort instead. But the short answer is this: Due to the way the execv(2) call works, it "Restarts" snort from scratch. This has the odd side effect of making HUPS to a chrooted snort become recursive. For example, chroot to /snort. It now sees /snort as / . Now HUP snort. Snort now expects to have /snort/snort as /. In other words, you have to re-create your directories for your jail inside it. 4 HUPS and you will be in /snort/snort/snort/snort. \subsection{My snort crashes, how do I restart it?} Try one of these two shell scripts or daemontools (refer to website to daemontools) \begin{verbatim} * []#!/bin/sh #snorthup: Snort Restarter and Crash Logger #(dr@kyx..net with help from kmaxwell@superpages.com) $conf = "snort.conf" for $IFACE in fxp0 fxp1 do if [ -f /var/run/snort_$IFACE.pid ]; then if ! ps -p `cat /var/run/snort_$IFACE.pid` > /dev/null ; then /usr/bin/logger -p user.notice snorthup: removing bogus pidfile /usr/bin/ logger -p user.notice snorthup: restarting absentee snort o n $IFACE with conf file $i rm -f /var/run/snort_$IFACE.pid /usr/local/bin/snort -D -c $conf -i $IFACE fi; else /usr/bin/ logger -p user.notice snorthup: restarting snort on $IFACE with conf file $conf /usr/local/bin/snort -D -c $conf -i $IFACE fi done \end{verbatim} Another version: \begin{verbatim} * []#!/bin/ksh # snortstartd: Snort (Re)Starter # Dom De Vitto (dom@devitto..com) # (original idea by dr@kyx..net & kmaxwell@superpages.com) # # Note: You'd better get CONF and INTERFACES right or # this script will just keep trying to start snort. # Path to echo, sed, test, ps, grep, logger, rm, and sleep. PATH=$PATH:/usr/bin:/usr/local/bin ; export PATH # Point this to your conf file: CONF="/usr/local/share/examples/snort/snort.conf" # Which interfaces should Snort run on, e.g.: INTERFACES="hme0 hme1" # Wait this many seconds between checks: CHECKEVERY=5 # Full path to Snort: SNORTBINARY=/usr/local/bin/snort while :; do for INT in $INTERFACES do GREPSTRING="`echo $SNORTBINARY -N -D -c $CONF -i $INT|sed 's?\/?\\\/?g'`" PSCMDLINES=`(ps augxww 2>/dev/null||ps -ef 2>/dev/null) | grep "$GREPSTRING"|wc -l` if [ $PSCMDLINES = 0 ]; then logger -p user.notice -t "$0" "Starting Snort on $INT." $SNORTBINARY -N -D -c $CONF -i $INT 2>&1 > /dev/null fi done sleep $CHECKEVERY done \end{verbatim} \subsection{Why can't snort see one of the 10Mbps or 100Mbps traffic on my autoswitch hub?} Basically it's a function of the design and all autoswitching hubs will behave in this way. It's the result of just not being able to stuff all the 100 Mbps traffic into the 10Mbps CSMA/CD. One solution I use to the problem is these new cheapie four port switches... put all the 10Mbps on it's own hub/switch/whatever and then route that to the 100Mbps hub I use for monitoring but put a cheapie switch in between that works as an adapter basically mediating the 10 up to 100 and vice versa. The bad thing about hubs that {\em don't} have this ``feature,'' is that in order to support 10bt devices, they throttle the entire hub speed down to 10bt if there is one or more 10bt only devices hooked up to it. I have seen this behavior (and did the bandwidth tests to prove it) on old 3com office connect 10/100 hubs (newer ones do the 2 hubs with a switch thing.) So, the point of what I am saying is, since these old hubs have no switching capabilities, and they don't know which port the traffic is supposed to go to (no switch=no arp table), they have to throttle bandwidth. None of the hubs and switches have any significant amount of storage on the ethernet chip sets, and therefore {\em any} non-layer-three box that has 100 $->$ 10 capability can only handle small amounts of traffic before the chip set drops incoming packets on the floor. Guess one might call that throttled bandwidth, but at the expense of retransmission timeouts and retransmissions at the end nodes. If the box has a backplane, multiple cards and some network management functions, there is a higher {\em probability} the manufacturer has some additional buffering going on to keep dropped packets from happening on at least small bursts of traffic. In the most generic of terms, if a box supports 100 ``full-duplex,'' then its a switch (regardless of what the manufacturer calls it). If it supports 100 $->$ 10, there is 50-50 chance the box has some MAC address awareness. If a box only supports 10 $->$ 10 or 100 $->$ 100, there is a high probability it is not MAC address aware and therefore functions like a hub. Many hubs have different back planes, i.e., one for 10 and one for 100. >From a definition standpoint, a hub segment whether it be 10 or 100 is a single broadcast/collision domain. You will not see ANY traffic between segements without a bridge or layer3 route function between them. In a switched environment, typically each port is a separate collision domain but one big broadcast domain. VLANs can be created in some to separate into separate broadcast domains and some have built in layer 3 functionality which basically connects a router into the backplane so that it can route between vlans at wire speed. Think of a switch as a bridge with many ports. (that's what it is). Some switches support port mirroring or span ports. When you want to ``sniff'' frames in a switched environment (beyond just broadcast/multicast traffic) you need to be able to "see" the unicast traffic (telnet,http for example). You set up a port to mirror traffic from the ports that have the devices your interested in to the port you have your analysis device plugged into. Without doing so, you don't see the unicast conversations because the traffic is getting "switched" across the backplane so pc on port 1 talks to server on port 2 and no other ports get this traffic. If server on port 2 broadcasts or multicasts, the information is flooded out all ports. (multicast can be controlled on some switches so only those ports that have listening stations get the traffic. Not all switches have these capabilities. An excellent book on the topic is Interconnections by Radia Perlman. (Bridges and Routers). Additional caveat: if you deal with full duplex on a switched port, only a tap would save you - users have successfully used Shomiti's ones on 100MB FD ports, and used two Snort instances, capturing traffic on both directions. Port mirroring didn't work in that case ... \subsection{Trying to install snort it says: ``bad interpreter: No such file or directory''} Usually this error comes from editing files on Windows machines. Often it shows up on the ./configure step. The configure script should be looking for the /bin /sh shell as its interpreter. If /bin/sh doesn't exist then you'll get this error. Check that whatever comes after the \#! on the first line of configure is actually there. If the file has been edited on a Windows machine it can sometimes Add CR/LF (VM) characters on the end of each line, so \#!/bin/sh becomes \#!/bin/shVM and as the ctrl-v/ctrl-m characters are special, and hidden by default on most editors, it can create a really hard to find problem. To remove the extra CR characters that UNIXish machines don't like, simply use the dos2unix command: \begin{verbatim} * []dos2unix \end{verbatim} If your OS doesn't have dos2unix, then you can use: \begin{verbatim} * []cat | tr -d ``\r'' > \end{verbatim} \subsection{I'm not seeing any interfaces listed under Win32.} The reason you're seeing nothing in the interface list is a WinPcap problem. In previous versions of WinPcap there is a 1K buffer, which overflows if you have many interfaces (i.e., 10+). This has been replaced with an 8K buffer in more recent versions of WinPcap. The current snort distribution should already be linking against the newer WinPcap libraries, which should resolve this problem. Try obtaining a more recent build of snort. \subsection{It's not working on Win32, how can I tell if my problem is Snort or WinPcap?} See if WinDump will work with WinPcap. This should help you isolate which component is being bogus. \subsection{I just downloaded a new ruleset and now Snort fails, complaining about the rules.} First, make sure you downloaded the right ruleset for your version of snort. Snort.org generally hosts a ruleset for the released version of Snort, as well as rules for the development branch and sometimes copies for older versions of snort. This is generally the case for ``unknown keyword in rule'' type errors. If you have the rules that are correct for your version of snort be aware that the snort rules tarball contains a snort.conf file. From time to time the snort.conf included with the rules gets changed as new .rules files are added, and new variables are added to support a better ruleset. When downloading new rulesets you should always give the included snort.conf a quick look-over to see if new includes or vars have been added, or at least be aware you should consult it if things do not work as expected. This is generally the case if you get messages indicating that something is undefined in a rule. \subsection{Why am I seeing so many ``SMTP RCPT TO overflow'' alerts ?} That rule looks for a TCP frame going to your SMTP server which contains more than 800 bytes of data. Any email can easily set that off if pipelining is used. SMTP command pipelining allows several command lines lines to be sent as a single packet without waiting for an OK response. Any good high-volume mailserver will try to pipeline where possible, resulting in a single TCP frame containing a series of command lines, each of which is not very long, but in aggregate easily exceed the 800 byte threshold, particularly if there is a large recipient list. For more info on pipelining: \htmladdnormallink{http://www.faqs.org/rfcs/rfc1854.html}{http://www.faqs.org/rfcs/rfc1854.html} If your mailservers are not vulnerable to these overflows you can disable this rule and regain some peace... \subsection{I'm getting lots of *ICMP Ping Speedera*, is this bad?} Quite ordinary. Windows update uses speedera based DNS, among other things. Of course, if the speedera traffic is coming from a Dialup account (as there have been reports of) it's likely a hacker tool. ;-) \subsection{Why are my unified alert times off by +/- N hours?} Unified log and alert files are stored in UTC. \subsection{I try to start Snort and it gives an error like ``ERROR: Unable to open rules file: /root/.snortrc or /root//root/.snortrc.'' What can I do to fix this?} When Snort starts, it looks at the command line and checks for ``-c /some/path/ snort.conf.'' If thats not there, then it will look for the one of the following files: \begin{itemize} \item /etc/snort.conf \item ./snort.conf \item \$HOMEDIR/snort.conf \item \$HOMEDIR/.snortrc \item ./.snortrc \end{itemize} Make sure your .conf is in one of those locations and then Snort will be able to find it or use the -c parameter to tell Snort the full pathname to the snort.conf. \begin{verbatim} snort -c /usr/local/etc/snort.conf \end{verbatim} \subsection{Snort fails to respond to a kill signal on Linux. Why?} In Snort 2.6, a change was made to switch from performing the Snort shutdown function within the signal handlers. This was done to remove reentrant code from the signal handlers, and the vulnerabilities that entailed. The signal handler now simply sets a flag and returns. Snort now uses pcap\_dispatch() with a read timeout value. So, when a signal is received when snort is waiting for packets, the signal handler sets the flag and goes back to waiting for a packet. If the timeout is then reached, pcap\_dispatch() returns and Snort sees it received a signal to exit and exits cleanly. Per the pcap(3) man page, ``Not all platforms support a read timeout; on platforms that don't, the read timeout is ignored.'' Linux is one of the systems where this is not currently supported. Snort does receive the signal, but until a packet arrives, it does not get the chance to exit cleanly. There have been a number of patches created to implement the timeout on linux, and one example can be found here. \htmladdnormallink{http://www.ethereal.com/lists/ethereal-dev/199812/msg00019.html}{http://www.ethereal.com/lists/ethereal-dev/199812/msg00019.html} \subsection{A Rule with PCRE causes a failure to load snort.conf. Why?} Newer Snort rules are using PCRE named expressions (also known as named captures). PCRE only supports this with versions 4.0 and later, and if an earlier version of libpcre is being used, Snort will print the following error at startup. \begin{verbatim} unrecognized character after (? Fatal Error, Quitting.. \end{verbatim} A rule that may cause this problem is shown. \begin{verbatim} alert tcp $EXTERNAL_NET $HTTP_PORTS -> $HOME_NET any (msg:"WEB-CLIENT Microsoft Agent v1.5 ActiveX clsid access"; flow:established,to_client; content:"F5BE8BD2-7DE6-11D0-91FE-00C04FD701A5"; nocase; pcre:"/]*\s*classid\s*=\s*(?P\x22|\x27|)\s*clsid\s*\x3a\s* {?\s*F5BE8BD2-7DE6-11D0-91FE-00C04FD701A5\s*}?\s*(?P=q1)(\s|>)/si"; reference:cve,2005-1214; reference:cve,2006-3445; reference:cve,2007-1205; reference:url,www.microsoft.com/technet/security/bulletin/MS05-032.mspx; reference:url,www.microsoft.com/technet/security/bulletin/MS06-068.mspx; reference:url,www.microsoft.com/technet/security/bulletin/MS07-020.mspx; classtype:attempted-user; sid:4172; rev:3;) \end{verbatim} As of Snort 2.7.0, the minimum version of libpcre is 4.0. Because of various performance improvements and bug fixes within libpcre, it is recommended that Snort be compiled with libpcre version 7.0 or later. Visit \htmladdnormallink{http://www.pcre.org}{http://www.pcre.org} for details. \section{Development} \subsection{How do you put Snort in debug mode? } In Snort 1.9 or higher, \begin{enumerate} \item ./configure --enable-debug \item Look up the sections of Snort you'd like to debug ( look at src/snort\_debug.h ) and bitwise-or the flags together to create a hex value. For example, \begin{verbatim} #define DEBUG_PARSER 0x00000002 ... #define DEBUG_PATTERN_MATCH 0x00001000 \end{verbatim} To debug just the parser: \begin{verbatim} export SNORT_DEBUG=0x2 \end{verbatim} To debug both the parser and pattern matcher: \begin{verbatim} export SNORT_DEBUG=0x1002 \end{verbatim} Debugging preprocessors is similar, eg to debug frag3: \begin{verbatim} export SNORT_PP_DEBUG=0x1 \end{verbatim} \item Run snort as normal. You will need to redirect output to a file to cope with the large amounts of debug output. \end{enumerate} \section{Miscellaneous} \subsection{What's this about a Snort drinking game?} :-) Check it out for yourself: \htmladdnormallink{http://www.theadamsfamily.net/~erek/snort/drinking\_game.txt}{http://www.theadamsfamily.net/~erek/snort/drinking_game.txt} %\begin{thebibliography} %\bibitem[cite74] %\end{thebibliography} \end{document} geany-2.1/tests/ctags/3470609.js0000644000175000017500000000151015031717571013041 00000000000000/* * Test for properties values. Everything is valid here and must be * correctly parsed. * * Output of ctags -f - 3470609.js should be: * * Properties: * root.array * root.decimal * root.id * root.neg * root.parentheses * root.string * root.subObject.subProperty * * Classes: * root * root.subObject * * Methods: * root.method * root.subObject.subFunction * * Functions: * f */ var root = { 'string' : 'hello world', 'method' : function() { x = 42; }, 'id' : 1, 'neg' : -1, 'decimal' : 1.3, 'subObject' : { 'subProperty': 42, 'subFunction': function() { y = 43; } }, 'array' : [1, 2, 3], 'parentheses' : (2 * (2 + 3)) } function f() { } geany-2.1/tests/ctags/3184782.sql0000644000175000017500000000134215031717571013233 00000000000000create or replace package body p_test is procedure do_this_stuff is begin if true then for idx in z+1 .. myarr.last loop if myarr.exists(idx) then null; end if; end loop; elsif true then for idx in myarr.first .. myarr.last loop if myarr.exists(idx) then null; end if; end loop; end if; end do_this_stuff; procedure process_this ( p_flag in boolean ) is begin null; end process_this; procedure myfn1 ( p_str1 in varchar2, p_str2 in varchar2 ) is begin process_this(false); end myfn1; procedure myfn2 ( p_str1 in varchar2, p_str2 in varchar2 ) is begin process_this(true); end myfn2; end p_test; geany-2.1/tests/ctags/2023624.js0000644000175000017500000000061615031717571013035 00000000000000/* * Both functions should be tagged. * The embedded quote was fixed in issue: * [ 1878155 ] Javascript escaped quotation mark brakes output * [ 2023712 ] parseString for javascript broken on embedded quote * The fix will be part of the 5.8 release. */ function f1() { var str = 'This function will be listed.'; } function f2() { var str = 'This function won\'t.'; } geany-2.1/tests/ctags/1880687.js0000644000175000017500000000620315031717571013056 00000000000000 // All these examples contain various forms of statements // with missing semicolons. Each of these are valid and must // be accommodated. // // After running ctags: ctags -f tags 1880687.js // The following tags should be generated: // functions // a // aa // aa_sub1 [aa] // aa_sub2 [aa] // b // baz [f] // c // d // e // f // g // h // i // j // k // l // m // n // o // p // q // r // s // t // u // v // w // w_sub1 [w] // w_sub2 [w] // x // x_sub1 [x] // x_sub2 [x] // y // y_sub1 [y] // y_sub2 [y] // z // z_sub1 [z] // z_sub2 [z] // classes // MyClass // methods // MyClass_sub1 [MyClass] // MyClass_sub2 [MyClass] function a(flag){ if(flag) test(1); else test(2) } function b(){ var b= 33; } function c(flag){ if(flag) test(1); } function d(){ var b= 33; } function e(flag){ if(flag) test(1) } function f(){ var b= 33; if (foo) bar(); else test(2); function baz() { } } function g(flag){ if(flag) { test(1) } } function h(){ var b= 33; } function i(flag){ if(flag) { test(1); } } function j(){ var b= 33; } function k(flag){ if(flag) { test(1); } else flag = false; } function l(){ var b= 33; } function m(flag){ if(flag) { test(1); } else { flag = false; } } function n(){ var b= 33; } if (1) l(); function o(){ var b= 33; } if (1){ l(); } function p(){ var b= 33; } if (1){ l(); } else l(); function q(){ var b= 33; } function r(flag){ if (flag) { value = 33 } } function s(){ var b= 33; } function t(flag){ if (flag) { b= new Object() } } function u(flag){ if (flag) { b= ({}) } } function v(flag){ if (flag) { b= {} } } function w(){ function w_sub1(x){ if (! x) x = {foo:bar}; var dummy1, dummy2; } function w_sub2(){ } } MyClass = { MyClass_sub1: function(x){ if (! x) x = { }; var dummy3, dummy4; }, MyClass_sub2: function(x){ var dummy5 = 42; } }; function x(){ function x_sub1(){ while (1) x_sub2() } function x_sub2(){ } } function y(){ function y_sub1(){ while (1) { y_sub2() } } function y_sub2(){ } } function z(){ function z_sub1(){ do { z_sub2() } while (0) } function z_sub2(){ } } function aa(){ function aa_sub1(){ do aa_sub2() while (0) } function aa_sub2(){ } } geany-2.1/tests/ctags/1878155.js0000644000175000017500000000066215031717571013056 00000000000000// Tags should include: // functions // my_function // classes // RE // global variables // foo // // This should handle the escaped quote var RE={"bar":/foo\"/}; // This should also handle the escaped quote // A tag should be created for the global variable "foo". var foo="foo \" some other stuff"; // A tag should be created for this function "my_function". function my_function() { } geany-2.1/tests/ctags/1850914.js0000644000175000017500000000064315031717571013046 00000000000000// This file should generate the following tags: // // classes // objectLiteral // methods // objectLiteral.objLiteralMethod // properties // objectLiteral.objLiteralProperty /** * This is an object literal */ var objectLiteral = { /** * This is a literal object property */ objLiteralProperty : 1, /** * This is a literal object method */ objLiteralMethod : function(){} } geany-2.1/tests/ctags/1795612.js0000644000175000017500000000074215031717571013051 00000000000000 // This file should generate the following tags: // classes // Test.RPC // methods // Test.RPC.asyncMethod // Test.RPC.asyncRequest // properties // Test.RPC.request_id Test.RPC = { request_id: 0, asyncRequest: function( /* string */ uri, /* object */ data, /* object */ callback) { }, asyncMethod: function( /* string */ uri, /* string */ method, /* array */ params, /* object */ callback) { } }; geany-2.1/tests/ctags/Makefile.in0000644000175000017500000013040115031717616013716 00000000000000# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ TESTS = $(am__EXEEXT_3) subdir = tests/ctags ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \ $(top_srcdir)/m4/ax_cxx_compile_stdcxx_17.m4 \ $(top_srcdir)/m4/geany-binreloc.m4 \ $(top_srcdir)/m4/geany-docutils.m4 \ $(top_srcdir)/m4/geany-doxygen.m4 \ $(top_srcdir)/m4/geany-gtk.m4 \ $(top_srcdir)/m4/geany-gtkdoc-header.m4 \ $(top_srcdir)/m4/geany-lib.m4 \ $(top_srcdir)/m4/geany-mac-integration.m4 \ $(top_srcdir)/m4/geany-mingw.m4 \ $(top_srcdir)/m4/geany-plugins.m4 \ $(top_srcdir)/m4/geany-prog-cxx.m4 \ $(top_srcdir)/m4/geany-revision.m4 \ $(top_srcdir)/m4/geany-socket.m4 \ $(top_srcdir)/m4/geany-status.m4 \ $(top_srcdir)/m4/geany-the-force.m4 \ $(top_srcdir)/m4/geany-utils.m4 $(top_srcdir)/m4/geany-vte.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = { \ $(am__tty_colors_dummy); \ if test "X$(AM_COLOR_TESTS)" = Xno; then \ am__color_tests=no; \ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ am__color_tests=yes; \ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ am__color_tests=yes; \ fi; \ if test $$am__color_tests = yes; then \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ mgn=''; \ brg=''; \ std=''; \ fi; \ } am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* # A command that, given a newline-separated list of test names on the # standard input, print the name of the tests that are to be re-run # upon "make recheck". am__list_recheck_tests = $(AWK) '{ \ recheck = 1; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ { \ if ((getline line2 < ($$0 ".log")) < 0) \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ { \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ { \ break; \ } \ }; \ if (recheck) \ print $$0; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # A command that, given a newline-separated list of test names on the # standard input, create the global log from their .trs and .log files. am__create_global_log = $(AWK) ' \ function fatal(msg) \ { \ print "fatal: making $@: " msg | "cat >&2"; \ exit 1; \ } \ function rst_section(header) \ { \ print header; \ len = length(header); \ for (i = 1; i <= len; i = i + 1) \ printf "="; \ printf "\n\n"; \ } \ { \ copy_in_global_log = 1; \ global_test_result = "RUN"; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".trs"); \ if (line ~ /$(am__global_test_result_rx)/) \ { \ sub("$(am__global_test_result_rx)", "", line); \ sub("[ ]*$$", "", line); \ global_test_result = line; \ } \ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ copy_in_global_log = 0; \ }; \ if (copy_in_global_log) \ { \ rst_section(global_test_result ": " $$0); \ while ((rc = (getline line < ($$0 ".log"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".log"); \ print line; \ }; \ printf "\n"; \ }; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # Restructured Text title. am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } # Solaris 10 'make', and several other traditional 'make' implementations, # pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it # by disabling -e (using the XSI extension "set +e") if it's set. am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the # directory for the log if needed. Stores in $dir the directory # containing $f, in $tst the test, in $log the log. Executes the # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and # passes TESTS_ENVIRONMENT. Set up options for the wrapper that # will run the test scripts (or their associated LOG_COMPILER, if # thy have one). am__check_pre = \ $(am__sh_e_setup); \ $(am__vpath_adj_setup) $(am__vpath_adj) \ $(am__tty_colors); \ srcdir=$(srcdir); export srcdir; \ case "$@" in \ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ *) am__odir=.;; \ esac; \ test "x$$am__odir" = x"." || test -d "$$am__odir" \ || $(MKDIR_P) "$$am__odir" || exit $$?; \ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ am__enable_hard_errors=yes; \ fi; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ am__expect_failure=yes;; \ *) \ am__expect_failure=no;; \ esac; \ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) # A shell command to get the names of the tests scripts with any registered # extension removed (i.e., equivalently, the names of the test logs, with # the '.log' extension removed). The result is saved in the shell variable # '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", # since that might cause problem with VPATH rewrites for suffix-less tests. # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck am__EXEEXT_1 = am__EXEEXT_2 = 1795612.js.tags 1850914.js.tags 1878155.js.tags \ 1880687.js.tags 2023624.js.tags 3184782.sql.tags \ 3470609.js.tags 3526726.tex.tags 68hc11.asm.tags \ actionscript/as-first-token.as.tags \ actionscript/classes.as.tags actionscript/const2.as.tags \ actionscript/const.as.tags \ actionscript/method-attributes.as.tags \ actionscript/packages.as.tags actionscript/sampler.as.tags \ ada-adb.adb.tags ada-ads.ads.tags \ ada-expression-function.adb.tags \ ada-expression-function-generic.adb.tags \ ada-overriding.ads.tags ada-package-generic.ads.tags \ ada-task.adb.tags angle_bracket.cpp.tags \ anonymous_functions.php.tags arraylist.js.tags \ array_ref_and_out.cs.tags array_spec.f90.tags \ array-spec.f90.tags attributes.cs.tags auto.f.tags \ backslashes.c.tags bit_field.c.tags block.f90.tags \ bracematch.js.tags bug1020715.cpp.tags bug1020715.c.tags \ bug1086609.c.tags bug1093123.cpp.tags bug1111214-j-chan.v.tags \ bug1111214.v.tags bug1201689.c.tags bug1447756.java.tags \ bug1458930.c.tags bug1466117.c.tags bug1491666.c.tags \ bug1515910.cs.tags bug1548443.cpp.tags bug1563476.cpp.tags \ bug1570779.sql.tags bug1575055.cpp.tags bug1585745.cpp.tags \ bug1611054.cs.tags bug1691412.java.tags bug1742588.rb.tags \ bug1743330.v.tags bug1764143.h.tags bug1764148.py.tags \ bug1770479.cpp.tags bug1773926.cpp.tags bug1777344.java.tags \ bug1799340.cpp.tags bug1799343-1.cpp.tags \ bug1799343-2.cpp.tags bug1800065.cs.tags bug1809024.py.tags \ bug1830343.cs.tags bug1830344.cs.tags bug1856363.py.tags \ bug1906062.py.tags bug1907083.cpp.tags bug1924919.cpp.tags \ bug1938565.sql.tags bug1944150.sql.tags bug1950327.js.tags \ bug1988026.py.tags bug1988027.py.tags bug1988130.py.tags \ bug2049723.java.tags bug2075402.py.tags bug2117073.java.tags \ bug2374109.vhd.tags bug2411878.cs.tags bug2747828.v.tags \ bug2777310.js.tags bug2781264.rb.tags bug2886870.tex.tags \ bug2888482.js.tags bug3036476.js.tags bug3168705.py.tags \ bug3571233.js.tags bug507864.c.tags bug538629.asm.tags \ bug556645.c.tags bug556646.c.tags bug565813.f90.tags \ bug612019.pas.tags bug612621.pl.tags bug620288.f.tags \ bug639639.h.tags bug639644.hpp.tags bug665086.cpp.tags \ bug670433.f90.tags bug699171.py.tags bug722501.sql.tags \ bug726712.f90.tags bug726875.f90.tags bug734933.f90.tags \ bug762027.v.tags bug814263.java.tags bug823000.sql.tags \ bug842077.pl.tags bug849591.cpp.tags bug852368.cpp.tags \ bug858165.f90.tags bug872494.cpp.tags bug877956.f90.tags \ bug960316.v.tags bug961001.v.tags byte.f.tags \ c-digraphs.c.tags c-trigraphs.c.tags case_sensitivity.php.tags \ char-selector.f90.tags classes.php.tags class.ps1.tags \ cobol/helloworld.cbl.tags cobol/helloworld2.cbl.tags \ cobol/levels.cbl.tags cobol/quoted-program-id.cbl.tags \ cobol/simple.cbl.tags combined.html.tags combined.php.tags \ common.f.tags complex-return.js.tags continuation.f90.tags \ continuation.mak.tags countall.sql.tags \ cpp_destructor.cpp.tags css-at-rules.css.tags \ css-at-supports.css.tags css-attribute-selectors.css.tags \ css-comma-no-space.css.tags css-namespace-selectors.css.tags \ css-pseudo-classes.css.tags css-simple.css.tags \ css-singlequote-in-comment-issue2.css.tags \ css-tag-types.css.tags css-trivial.css.tags \ cython_sample.pyx.tags cython_sample2.pyx.tags \ cxx11enum.cpp.tags cxx11-final.cpp.tags \ cxx11-noexcept.cpp.tags cxx11-override.cpp.tags \ cxx11-raw-strings.cpp.tags cxx14-combined.cpp.tags \ db-trig.sql.tags debian_432872.f90.tags directives.c.tags \ dopbl2.f.tags dotted-names.json.tags enum.c.tags enum.f90.tags \ enum.java.tags enum.ps1.tags enumerators.f90.tags \ events.cs.tags extern_variable.h.tags forall_module.f90.tags \ format.pl.tags fortran_associate.f90.tags \ fortran_line_continuation.f90.tags func_typedef.h.tags \ gdscript-inner-class.gd.tags gdscript-modifiers.gd.tags \ gdscript-no-implicit-class.gd.tags geany.nsi.tags \ general.cs.tags hex2dec.sql.tags implied_program.f.tags \ indexer.cs.tags infinite_loop.java.tags \ ingres_procedures.sql.tags initialization.f90.tags \ interface_indexers.cs.tags interface_properties.cs.tags \ interfaces.f90.tags internal.cs.tags intro_orig.tex.tags \ intro.tex.tags invalid_name.f90.tags java_enum.java.tags \ js-broken-strings.js.tags \ js-class-related-unterminated.js.tags js-const.js.tags \ js-implicit-semicolons.js.tags js-let.js.tags js-scope.js.tags \ js-signature.js.tags js-string-continuation.js.tags \ js-sub-block-scope.js.tags \ js-unknown-construct-nesting.js.tags \ julia-corner_cases.jl.tags jsFunc_tutorial.js.tags \ keyword_abstract.cs.tags keyword_catch_try.cs.tags \ keyword_class.cs.tags keyword_const.cs.tags \ keyword_delegate.cs.tags keyword_enum.cs.tags \ keyword_event.cs.tags keyword_explicit.cs.tags \ keyword_extern.cs.tags keyword_implicit.cs.tags \ keyword_interface.cs.tags keyword_namespace.cs.tags \ keyword_names.f90.tags keyword_out.cs.tags \ keyword_override.cs.tags keyword_params.cs.tags \ keyword_private.cs.tags keyword_protected.cs.tags \ keyword_public.cs.tags keyword_sealed.cs.tags \ keyword_static.cs.tags keyword_struct.cs.tags \ keyword_virtual.cs.tags keyword_volatile.cs.tags \ labels.sql.tags lanus.for.tags line_directives.c.tags \ local.c.tags macros.c.tags make-comment-in-rule.mak.tags \ make-gnumake-pattern-rules.mak.tags make-multi-target.mak.tags \ make-parentheses.mak.tags \ make-target-with-parentheses.mak.tags \ make-variable-on-cmdline.mak.tags masm.asm.tags \ matlab_backtracking.m.tags matlab_test.m.tags maze.erl.tags \ members.f90.tags misc_types.f90.tags misc_types.f.tags \ mode.php.tags moniker.x68.asm.tags namelist.f.tags \ namespace.bas.tags namespace.cpp.tags namespaces2.php.tags \ namespaces.php.tags nested_anon.c.tags no_terminator.js.tags \ non-ascii-ident1.php.tags numlib.f90.tags \ objectivec_implementation.mm.tags objectivec_interface.mm.tags \ objectivec_property.mm.tags objectivec_protocol.mm.tags \ oop.sv.tags Package.pm.tags php5_5_class_kw.php.tags \ parenthesis-rvalue.js.tags preprocessor.f90.tags \ procedure_pointer_module.f90.tags procpoint.f90.tags \ property.cs.tags prototype.h.tags pure_elem.f95.tags \ py_constructor_arglist.py.tags py-skipped-string.py.tags \ python-anonymous-nestlevel_ctags-bug-356.py.tags \ python-comments.py.tags qualified_types.f90.tags \ random.sql.tags readlob.sql.tags readlong.sql.tags \ recursive.f95.tags refcurs.sql.tags regexp.js.tags \ return-hint.zep.tags return-types.go.tags \ ruby-block-call.rb.tags ruby-doc.rb.tags \ ruby-namespaced-class.rb.tags \ ruby-scope-after-anonymous-class.rb.tags \ ruby-sf-bug-364.rb.tags rules.t2t.tags sample.t2t.tags \ secondary_fcn_name.js.tags semicolon.f90.tags shebang.js.tags \ signature.cpp.tags simple.abc.tags simple.asciidoc.tags \ simple.au3.tags simple.bas.tags simple.bat.tags \ simple.clj.tags simple.conf.tags simple.d.tags \ simple.diff.tags simple.docbook.tags simple.fth.tags \ simple.hs.tags simple.hx.tags simple.html.tags simple.inp.tags \ simple.js.tags simple.json.tags simple.ksh.tags \ simple.lisp.tags simple.lua.tags simple.mak.tags \ simple.Meson_unittest.tags simple.md.tags simple.ml.tags \ simple.php.tags simple.pl.tags simple.ps1.tags simple.py.tags \ simple.raku.tags simple.rb.tags simple.rst.tags \ simple.scss.tags simple.sh.tags simple.tcl.tags simple.tf.tags \ simple.ts.tags simple.vala.tags simple.zep.tags \ size_t_wchar_t_alias.d.tags size_t_wchar_t_typedef.c.tags \ spurious_label_tags.c.tags sql_single_quote.sql.tags \ square_parens.f90.tags state_machine.v.tags \ static_array.c.tags stdcall.f.tags strings.php.tags \ strings.rb.tags structure.f.tags sysverilog.sv.tags \ tabindent.py.tags test.erl.tags test.go.tags test.py.tags \ test_input.rs.tags test_input2.rs.tags titles.t2t.tags \ traffic_signal.v.tags traits.php.tags ui5.controller.js.tags \ union.f.tags value.f.tags var-and-return-type.cpp.tags \ vhdl-component.vhd.tags vhdl-local.vhd.tags vhdl-port.vhd.tags \ vhdl-process.vhd.tags vhdl-type.vhd.tags whitespaces.php.tags \ wp-guest.php.tags $(am__EXEEXT_1) am__EXEEXT_3 = $(am__EXEEXT_2) TEST_SUITE_LOG = test-suite.log am__test_logs1 = $(TESTS:=.log) am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) TEST_LOGS = $(am__test_logs2:.tags.log=.log) TAGS_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver TAGS_LOG_COMPILE = $(TAGS_LOG_COMPILER) $(AM_TAGS_LOG_FLAGS) \ $(TAGS_LOG_FLAGS) am__set_b = \ case '$@' in \ */*) \ case '$*' in \ */*) b='$*';; \ *) b=`echo '$@' | sed 's/\.log$$//'`; \ esac;; \ *) \ b='$*';; \ esac am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/build-aux/test-driver DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) pkgdatadir = @pkgdatadir@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPENDENCIES = @DEPENDENCIES@ DLLTOOL = @DLLTOOL@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FILECMD = @FILECMD@ GEANY_DATA_DIR = @GEANY_DATA_DIR@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GTK_VERSION = @GTK_VERSION@ HAVE_CXX17 = @HAVE_CXX17@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGEANY_CFLAGS = @LIBGEANY_CFLAGS@ LIBGEANY_EXPORT_CFLAGS = @LIBGEANY_EXPORT_CFLAGS@ LIBGEANY_LDFLAGS = @LIBGEANY_LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAC_INTEGRATION_CFLAGS = @MAC_INTEGRATION_CFLAGS@ MAC_INTEGRATION_LIBS = @MAC_INTEGRATION_LIBS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PYTHON = @PYTHON@ PYTHON_COMMAND = @PYTHON_COMMAND@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ RST2HTML = @RST2HTML@ RST2PDF = @RST2PDF@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SORT = @SORT@ STRIP = @STRIP@ UNIQ = @UNIQ@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ dist_check_SCRIPTS = runner.sh NULL = test_sources = \ 1795612.js \ 1850914.js \ 1878155.js \ 1880687.js \ 2023624.js \ 3184782.sql \ 3470609.js \ 3526726.tex \ 68hc11.asm \ actionscript/as-first-token.as \ actionscript/classes.as \ actionscript/const2.as \ actionscript/const.as \ actionscript/method-attributes.as \ actionscript/packages.as \ actionscript/sampler.as \ ada-adb.adb \ ada-ads.ads \ ada-expression-function.adb \ ada-expression-function-generic.adb \ ada-overriding.ads \ ada-package-generic.ads \ ada-task.adb \ angle_bracket.cpp \ anonymous_functions.php \ arraylist.js \ array_ref_and_out.cs \ array_spec.f90 \ array-spec.f90 \ attributes.cs \ auto.f \ backslashes.c \ bit_field.c \ block.f90 \ bracematch.js \ bug1020715.cpp \ bug1020715.c \ bug1086609.c \ bug1093123.cpp \ bug1111214-j-chan.v \ bug1111214.v \ bug1201689.c \ bug1447756.java \ bug1458930.c \ bug1466117.c \ bug1491666.c \ bug1515910.cs \ bug1548443.cpp \ bug1563476.cpp \ bug1570779.sql \ bug1575055.cpp \ bug1585745.cpp \ bug1611054.cs \ bug1691412.java \ bug1742588.rb \ bug1743330.v \ bug1764143.h \ bug1764148.py \ bug1770479.cpp \ bug1773926.cpp \ bug1777344.java \ bug1799340.cpp \ bug1799343-1.cpp \ bug1799343-2.cpp \ bug1800065.cs \ bug1809024.py \ bug1830343.cs \ bug1830344.cs \ bug1856363.py \ bug1906062.py \ bug1907083.cpp \ bug1924919.cpp \ bug1938565.sql \ bug1944150.sql \ bug1950327.js \ bug1988026.py \ bug1988027.py \ bug1988130.py \ bug2049723.java \ bug2075402.py \ bug2117073.java \ bug2374109.vhd \ bug2411878.cs \ bug2747828.v \ bug2777310.js \ bug2781264.rb \ bug2886870.tex \ bug2888482.js \ bug3036476.js \ bug3168705.py \ bug3571233.js \ bug507864.c \ bug538629.asm \ bug556645.c \ bug556646.c \ bug565813.f90 \ bug612019.pas \ bug612621.pl \ bug620288.f \ bug639639.h \ bug639644.hpp \ bug665086.cpp \ bug670433.f90 \ bug699171.py \ bug722501.sql \ bug726712.f90 \ bug726875.f90 \ bug734933.f90 \ bug762027.v \ bug814263.java \ bug823000.sql \ bug842077.pl \ bug849591.cpp \ bug852368.cpp \ bug858165.f90 \ bug872494.cpp \ bug877956.f90 \ bug960316.v \ bug961001.v \ byte.f \ c-digraphs.c \ c-trigraphs.c \ case_sensitivity.php \ char-selector.f90 \ classes.php \ class.ps1 \ cobol/helloworld.cbl \ cobol/helloworld2.cbl \ cobol/levels.cbl \ cobol/quoted-program-id.cbl \ cobol/simple.cbl \ combined.html \ combined.php \ common.f \ complex-return.js \ continuation.f90 \ continuation.mak \ countall.sql \ cpp_destructor.cpp \ css-at-rules.css \ css-at-supports.css \ css-attribute-selectors.css \ css-comma-no-space.css \ css-namespace-selectors.css \ css-pseudo-classes.css \ css-simple.css \ css-singlequote-in-comment-issue2.css \ css-tag-types.css \ css-trivial.css \ cython_sample.pyx \ cython_sample2.pyx \ cxx11enum.cpp \ cxx11-final.cpp \ cxx11-noexcept.cpp \ cxx11-override.cpp \ cxx11-raw-strings.cpp \ cxx14-combined.cpp \ db-trig.sql \ debian_432872.f90 \ directives.c \ dopbl2.f \ dotted-names.json \ enum.c \ enum.f90 \ enum.java \ enum.ps1 \ enumerators.f90 \ events.cs \ extern_variable.h \ forall_module.f90 \ format.pl \ fortran_associate.f90 \ fortran_line_continuation.f90 \ func_typedef.h \ gdscript-inner-class.gd \ gdscript-modifiers.gd \ gdscript-no-implicit-class.gd \ geany.nsi \ general.cs \ hex2dec.sql \ implied_program.f \ indexer.cs \ infinite_loop.java \ ingres_procedures.sql \ initialization.f90 \ interface_indexers.cs \ interface_properties.cs \ interfaces.f90 \ internal.cs \ intro_orig.tex \ intro.tex \ invalid_name.f90 \ java_enum.java \ js-broken-strings.js \ js-class-related-unterminated.js \ js-const.js \ js-implicit-semicolons.js \ js-let.js \ js-scope.js \ js-signature.js \ js-string-continuation.js \ js-sub-block-scope.js \ js-unknown-construct-nesting.js \ julia-corner_cases.jl \ jsFunc_tutorial.js \ keyword_abstract.cs \ keyword_catch_try.cs \ keyword_class.cs \ keyword_const.cs \ keyword_delegate.cs \ keyword_enum.cs \ keyword_event.cs \ keyword_explicit.cs \ keyword_extern.cs \ keyword_implicit.cs \ keyword_interface.cs \ keyword_namespace.cs \ keyword_names.f90 \ keyword_out.cs \ keyword_override.cs \ keyword_params.cs \ keyword_private.cs \ keyword_protected.cs \ keyword_public.cs \ keyword_sealed.cs \ keyword_static.cs \ keyword_struct.cs \ keyword_virtual.cs \ keyword_volatile.cs \ labels.sql \ lanus.for \ line_directives.c \ local.c \ macros.c \ make-comment-in-rule.mak \ make-gnumake-pattern-rules.mak \ make-multi-target.mak \ make-parentheses.mak \ make-target-with-parentheses.mak \ make-variable-on-cmdline.mak \ masm.asm \ matlab_backtracking.m \ matlab_test.m \ maze.erl \ members.f90 \ misc_types.f90 \ misc_types.f \ mode.php \ moniker.x68.asm \ namelist.f \ namespace.bas \ namespace.cpp \ namespaces2.php \ namespaces.php \ nested_anon.c \ no_terminator.js \ non-ascii-ident1.php \ numlib.f90 \ objectivec_implementation.mm \ objectivec_interface.mm \ objectivec_property.mm \ objectivec_protocol.mm \ oop.sv \ Package.pm \ php5_5_class_kw.php \ parenthesis-rvalue.js \ preprocessor.f90 \ procedure_pointer_module.f90 \ procpoint.f90 \ property.cs \ prototype.h \ pure_elem.f95 \ py_constructor_arglist.py \ py-skipped-string.py \ python-anonymous-nestlevel_ctags-bug-356.py \ python-comments.py \ qualified_types.f90 \ random.sql \ readlob.sql \ readlong.sql \ recursive.f95 \ refcurs.sql \ regexp.js \ return-hint.zep \ return-types.go \ ruby-block-call.rb \ ruby-doc.rb \ ruby-namespaced-class.rb \ ruby-scope-after-anonymous-class.rb \ ruby-sf-bug-364.rb \ rules.t2t \ sample.t2t \ secondary_fcn_name.js \ semicolon.f90 \ shebang.js \ signature.cpp \ simple.abc \ simple.asciidoc \ simple.au3 \ simple.bas \ simple.bat \ simple.clj \ simple.conf \ simple.d \ simple.diff \ simple.docbook \ simple.fth \ simple.hs \ simple.hx \ simple.html \ simple.inp \ simple.js \ simple.json \ simple.ksh \ simple.lisp \ simple.lua \ simple.mak \ simple.Meson_unittest \ simple.md \ simple.ml \ simple.php \ simple.pl \ simple.ps1 \ simple.py \ simple.raku \ simple.rb \ simple.rst \ simple.scss \ simple.sh \ simple.tcl \ simple.tf \ simple.ts \ simple.vala \ simple.zep \ size_t_wchar_t_alias.d \ size_t_wchar_t_typedef.c \ spurious_label_tags.c \ sql_single_quote.sql \ square_parens.f90 \ state_machine.v \ static_array.c \ stdcall.f \ strings.php \ strings.rb \ structure.f \ sysverilog.sv \ tabindent.py \ test.erl \ test.go \ test.py \ test_input.rs \ test_input2.rs \ titles.t2t \ traffic_signal.v \ traits.php \ ui5.controller.js \ union.f \ value.f \ var-and-return-type.cpp \ vhdl-component.vhd \ vhdl-local.vhd \ vhdl-port.vhd \ vhdl-process.vhd \ vhdl-type.vhd \ whitespaces.php \ wp-guest.php \ $(NULL) test_results = $(test_sources:=.tags) TEST_EXTENSIONS = .tags TAGS_LOG_COMPILER = $(srcdir)/runner.sh AM_TAGS_LOG_FLAGS = $(top_builddir)/src/geany$(EXEEXT) AM_TESTS_ENVIRONMENT = top_srcdir=$(top_srcdir) top_builddir=$(top_builddir) EXTRA_DIST = $(test_sources) $(test_results) \ $(check_processing_order_sources) # check processing order of files on the command line check_processing_order_sources = \ process_order.c.tags process_order_1.h process_order_2.h all: all-am .SUFFIXES: .SUFFIXES: .log .tags .tags$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/ctags/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu tests/ctags/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: # Recover from deleted '.trs' file; this should ensure that # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create # both 'foo.log' and 'foo.trs'. Break the recipe in two subshells # to avoid problems with "make -n". .log.trs: rm -f $< $@ $(MAKE) $(AM_MAKEFLAGS) $< # Leading 'am--fnord' is there to ensure the list of targets does not # expand to empty, as could happen e.g. with make check TESTS=''. am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ redo_bases=`for i in $$bases; do \ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ done`; \ if test -n "$$redo_bases"; then \ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ if $(am__make_dryrun); then :; else \ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ fi; \ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ elif test -n "$$redo_logs"; then \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ st=0; \ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ for i in $$redo_bases; do \ test -f $$i.trs && test -r $$i.trs \ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ test -f $$i.log && test -r $$i.log \ || { echo "$$errmsg $$i.log" >&2; st=1; }; \ done; \ test $$st -eq 0 || exit 1; \ fi @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ ws='[ ]'; \ results=`for b in $$bases; do echo $$b.trs; done`; \ test -n "$$results" || results=/dev/null; \ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ if test `expr $$fail + $$xpass + $$error` -eq 0; then \ success=true; \ else \ success=false; \ fi; \ br='==================='; br=$$br$$br$$br$$br; \ result_count () \ { \ if test x"$$1" = x"--maybe-color"; then \ maybe_colorize=yes; \ elif test x"$$1" = x"--no-color"; then \ maybe_colorize=no; \ else \ echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ shift; \ desc=$$1 count=$$2; \ if test $$maybe_colorize = yes && test $$count -gt 0; then \ color_start=$$3 color_end=$$std; \ else \ color_start= color_end=; \ fi; \ echo "$${color_start}# $$desc $$count$${color_end}"; \ }; \ create_testsuite_report () \ { \ result_count $$1 "TOTAL:" $$all "$$brg"; \ result_count $$1 "PASS: " $$pass "$$grn"; \ result_count $$1 "SKIP: " $$skip "$$blu"; \ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ result_count $$1 "FAIL: " $$fail "$$red"; \ result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for b in $$bases; do echo $$b; done \ | $(am__create_global_log); \ } >$(TEST_SUITE_LOG).tmp || exit 1; \ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ if $$success; then \ col="$$grn"; \ else \ col="$$red"; \ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ if test -n "$(PACKAGE_BUGREPORT)"; then \ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: $(dist_check_SCRIPTS) @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ trs_list=`for i in $$bases; do echo $$i.trs; done`; \ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all $(dist_check_SCRIPTS) @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ log_list=`for i in $$bases; do echo $$i.log; done`; \ log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? .tags.log: @p='$<'; \ $(am__set_b); \ $(am__check_pre) $(TAGS_LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_TAGS_LOG_DRIVER_FLAGS) $(TAGS_LOG_DRIVER_FLAGS) -- $(TAGS_LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) @am__EXEEXT_TRUE@.tags$(EXEEXT).log: @am__EXEEXT_TRUE@ @p='$<'; \ @am__EXEEXT_TRUE@ $(am__set_b); \ @am__EXEEXT_TRUE@ $(am__check_pre) $(TAGS_LOG_DRIVER) --test-name "$$f" \ @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TAGS_LOG_DRIVER_FLAGS) $(TAGS_LOG_DRIVER_FLAGS) -- $(TAGS_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check-local check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: check-am install-am install-strip .PHONY: all all-am check check-TESTS check-am check-local clean \ clean-generic clean-libtool cscopelist-am ctags-am distclean \ distclean-generic distclean-libtool distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am recheck tags-am \ uninstall uninstall-am .PRECIOUS: Makefile .PHONY: check-processing-order check-processing-order: $(check_processing_order_sources) $(AM_TESTS_ENVIRONMENT) \ $(srcdir)/runner.sh $(top_builddir)/src/geany$(EXEEXT) --result $(check_processing_order_sources:%=$(srcdir)/%) check-local: check-processing-order # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: geany-2.1/tests/ctags/runner.sh0000754000175000017500000000242015031717571013517 00000000000000#!/bin/bash # error out on undefined variable expansion, useful for debugging set -u GEANY="$1" PRINTER="${top_srcdir:-../..}"/scripts/print-tags.py TMPDIR=$(mktemp -d) || exit 99 CONFDIR="$TMPDIR/config/" trap 'rm -rf "$TMPDIR"' EXIT # make sure we don't use an old or modified system version of the filetype # related configuration files mkdir -p "$CONFDIR" || exit 99 mkdir -p "$CONFDIR/filedefs/" || exit 99 # Add *.Filetype_unittest extension so we can match filetypes for which there # are no extension patterns, like e.g. Meson. sed 's/^\([^=[]\{1,\}\)\(=[^;]\{1,\}\(;[^;]\{1,\}\)*\);*$/\1\2;*.\1_unittest;/' \ < "${top_srcdir:-../..}"/data/filetype_extensions.conf > "$CONFDIR/filetype_extensions.conf" || exit 99 cp "${top_srcdir:-../..}"/data/filedefs/filetypes.* "$CONFDIR/filedefs/" || exit 99 shift if [ "$1" = "--result" ]; then # --result $result $source... [ $# -gt 2 ] || exit 99 shift result="$1" shift source="$1" else # result is $1 and source is inferred from result result="$1" source="${result%.*}" fi shift tagfile="$TMPDIR/test.${source##*.}.tags" outfile="$TMPDIR/test.${source##*.}.out" "$GEANY" -c "$CONFDIR" -P -g "$tagfile" "$source" "$@" || exit 1 cat "$tagfile" | "$PRINTER" > "$outfile" || exit 3 diff -u "$result" "$outfile" || exit 2 geany-2.1/tests/ctags/Makefile.am0000644000175000017500000002160215031717571013707 00000000000000 dist_check_SCRIPTS = runner.sh NULL = test_sources = \ 1795612.js \ 1850914.js \ 1878155.js \ 1880687.js \ 2023624.js \ 3184782.sql \ 3470609.js \ 3526726.tex \ 68hc11.asm \ actionscript/as-first-token.as \ actionscript/classes.as \ actionscript/const2.as \ actionscript/const.as \ actionscript/method-attributes.as \ actionscript/packages.as \ actionscript/sampler.as \ ada-adb.adb \ ada-ads.ads \ ada-expression-function.adb \ ada-expression-function-generic.adb \ ada-overriding.ads \ ada-package-generic.ads \ ada-task.adb \ angle_bracket.cpp \ anonymous_functions.php \ arraylist.js \ array_ref_and_out.cs \ array_spec.f90 \ array-spec.f90 \ attributes.cs \ auto.f \ backslashes.c \ bit_field.c \ block.f90 \ bracematch.js \ bug1020715.cpp \ bug1020715.c \ bug1086609.c \ bug1093123.cpp \ bug1111214-j-chan.v \ bug1111214.v \ bug1201689.c \ bug1447756.java \ bug1458930.c \ bug1466117.c \ bug1491666.c \ bug1515910.cs \ bug1548443.cpp \ bug1563476.cpp \ bug1570779.sql \ bug1575055.cpp \ bug1585745.cpp \ bug1611054.cs \ bug1691412.java \ bug1742588.rb \ bug1743330.v \ bug1764143.h \ bug1764148.py \ bug1770479.cpp \ bug1773926.cpp \ bug1777344.java \ bug1799340.cpp \ bug1799343-1.cpp \ bug1799343-2.cpp \ bug1800065.cs \ bug1809024.py \ bug1830343.cs \ bug1830344.cs \ bug1856363.py \ bug1906062.py \ bug1907083.cpp \ bug1924919.cpp \ bug1938565.sql \ bug1944150.sql \ bug1950327.js \ bug1988026.py \ bug1988027.py \ bug1988130.py \ bug2049723.java \ bug2075402.py \ bug2117073.java \ bug2374109.vhd \ bug2411878.cs \ bug2747828.v \ bug2777310.js \ bug2781264.rb \ bug2886870.tex \ bug2888482.js \ bug3036476.js \ bug3168705.py \ bug3571233.js \ bug507864.c \ bug538629.asm \ bug556645.c \ bug556646.c \ bug565813.f90 \ bug612019.pas \ bug612621.pl \ bug620288.f \ bug639639.h \ bug639644.hpp \ bug665086.cpp \ bug670433.f90 \ bug699171.py \ bug722501.sql \ bug726712.f90 \ bug726875.f90 \ bug734933.f90 \ bug762027.v \ bug814263.java \ bug823000.sql \ bug842077.pl \ bug849591.cpp \ bug852368.cpp \ bug858165.f90 \ bug872494.cpp \ bug877956.f90 \ bug960316.v \ bug961001.v \ byte.f \ c-digraphs.c \ c-trigraphs.c \ case_sensitivity.php \ char-selector.f90 \ classes.php \ class.ps1 \ cobol/helloworld.cbl \ cobol/helloworld2.cbl \ cobol/levels.cbl \ cobol/quoted-program-id.cbl \ cobol/simple.cbl \ combined.html \ combined.php \ common.f \ complex-return.js \ continuation.f90 \ continuation.mak \ countall.sql \ cpp_destructor.cpp \ css-at-rules.css \ css-at-supports.css \ css-attribute-selectors.css \ css-comma-no-space.css \ css-namespace-selectors.css \ css-pseudo-classes.css \ css-simple.css \ css-singlequote-in-comment-issue2.css \ css-tag-types.css \ css-trivial.css \ cython_sample.pyx \ cython_sample2.pyx \ cxx11enum.cpp \ cxx11-final.cpp \ cxx11-noexcept.cpp \ cxx11-override.cpp \ cxx11-raw-strings.cpp \ cxx14-combined.cpp \ db-trig.sql \ debian_432872.f90 \ directives.c \ dopbl2.f \ dotted-names.json \ enum.c \ enum.f90 \ enum.java \ enum.ps1 \ enumerators.f90 \ events.cs \ extern_variable.h \ forall_module.f90 \ format.pl \ fortran_associate.f90 \ fortran_line_continuation.f90 \ func_typedef.h \ gdscript-inner-class.gd \ gdscript-modifiers.gd \ gdscript-no-implicit-class.gd \ geany.nsi \ general.cs \ hex2dec.sql \ implied_program.f \ indexer.cs \ infinite_loop.java \ ingres_procedures.sql \ initialization.f90 \ interface_indexers.cs \ interface_properties.cs \ interfaces.f90 \ internal.cs \ intro_orig.tex \ intro.tex \ invalid_name.f90 \ java_enum.java \ js-broken-strings.js \ js-class-related-unterminated.js \ js-const.js \ js-implicit-semicolons.js \ js-let.js \ js-scope.js \ js-signature.js \ js-string-continuation.js \ js-sub-block-scope.js \ js-unknown-construct-nesting.js \ julia-corner_cases.jl \ jsFunc_tutorial.js \ keyword_abstract.cs \ keyword_catch_try.cs \ keyword_class.cs \ keyword_const.cs \ keyword_delegate.cs \ keyword_enum.cs \ keyword_event.cs \ keyword_explicit.cs \ keyword_extern.cs \ keyword_implicit.cs \ keyword_interface.cs \ keyword_namespace.cs \ keyword_names.f90 \ keyword_out.cs \ keyword_override.cs \ keyword_params.cs \ keyword_private.cs \ keyword_protected.cs \ keyword_public.cs \ keyword_sealed.cs \ keyword_static.cs \ keyword_struct.cs \ keyword_virtual.cs \ keyword_volatile.cs \ labels.sql \ lanus.for \ line_directives.c \ local.c \ macros.c \ make-comment-in-rule.mak \ make-gnumake-pattern-rules.mak \ make-multi-target.mak \ make-parentheses.mak \ make-target-with-parentheses.mak \ make-variable-on-cmdline.mak \ masm.asm \ matlab_backtracking.m \ matlab_test.m \ maze.erl \ members.f90 \ misc_types.f90 \ misc_types.f \ mode.php \ moniker.x68.asm \ namelist.f \ namespace.bas \ namespace.cpp \ namespaces2.php \ namespaces.php \ nested_anon.c \ no_terminator.js \ non-ascii-ident1.php \ numlib.f90 \ objectivec_implementation.mm \ objectivec_interface.mm \ objectivec_property.mm \ objectivec_protocol.mm \ oop.sv \ Package.pm \ php5_5_class_kw.php \ parenthesis-rvalue.js \ preprocessor.f90 \ procedure_pointer_module.f90 \ procpoint.f90 \ property.cs \ prototype.h \ pure_elem.f95 \ py_constructor_arglist.py \ py-skipped-string.py \ python-anonymous-nestlevel_ctags-bug-356.py \ python-comments.py \ qualified_types.f90 \ random.sql \ readlob.sql \ readlong.sql \ recursive.f95 \ refcurs.sql \ regexp.js \ return-hint.zep \ return-types.go \ ruby-block-call.rb \ ruby-doc.rb \ ruby-namespaced-class.rb \ ruby-scope-after-anonymous-class.rb \ ruby-sf-bug-364.rb \ rules.t2t \ sample.t2t \ secondary_fcn_name.js \ semicolon.f90 \ shebang.js \ signature.cpp \ simple.abc \ simple.asciidoc \ simple.au3 \ simple.bas \ simple.bat \ simple.clj \ simple.conf \ simple.d \ simple.diff \ simple.docbook \ simple.fth \ simple.hs \ simple.hx \ simple.html \ simple.inp \ simple.js \ simple.json \ simple.ksh \ simple.lisp \ simple.lua \ simple.mak \ simple.Meson_unittest \ simple.md \ simple.ml \ simple.php \ simple.pl \ simple.ps1 \ simple.py \ simple.raku \ simple.rb \ simple.rst \ simple.scss \ simple.sh \ simple.tcl \ simple.tf \ simple.ts \ simple.vala \ simple.zep \ size_t_wchar_t_alias.d \ size_t_wchar_t_typedef.c \ spurious_label_tags.c \ sql_single_quote.sql \ square_parens.f90 \ state_machine.v \ static_array.c \ stdcall.f \ strings.php \ strings.rb \ structure.f \ sysverilog.sv \ tabindent.py \ test.erl \ test.go \ test.py \ test_input.rs \ test_input2.rs \ titles.t2t \ traffic_signal.v \ traits.php \ ui5.controller.js \ union.f \ value.f \ var-and-return-type.cpp \ vhdl-component.vhd \ vhdl-local.vhd \ vhdl-port.vhd \ vhdl-process.vhd \ vhdl-type.vhd \ whitespaces.php \ wp-guest.php \ $(NULL) test_results = $(test_sources:=.tags) TEST_EXTENSIONS = .tags TAGS_LOG_COMPILER = $(srcdir)/runner.sh AM_TAGS_LOG_FLAGS = $(top_builddir)/src/geany$(EXEEXT) AM_TESTS_ENVIRONMENT = top_srcdir=$(top_srcdir) top_builddir=$(top_builddir) TESTS = $(test_results) EXTRA_DIST = $(test_sources) $(test_results) # check processing order of files on the command line check_processing_order_sources = \ process_order.c.tags process_order_1.h process_order_2.h EXTRA_DIST += $(check_processing_order_sources) .PHONY: check-processing-order check-processing-order: $(check_processing_order_sources) $(AM_TESTS_ENVIRONMENT) \ $(srcdir)/runner.sh $(top_builddir)/src/geany$(EXEEXT) --result $(check_processing_order_sources:%=$(srcdir)/%) check-local: check-processing-order geany-2.1/tests/ctags/cobol/0000755000175000017500000000000015032474727013034 500000000000000geany-2.1/tests/ctags/cobol/simple.cbl.tags0000644000175000017500000000226515031717571015665 00000000000000AUTHOR655360 macro: AUTHOR Begin655360 macro: Begin DATA320 interface: DATA DW-DAYS-IN-MONTH16384Group-Name.Data-Item1.DW-DAYS-IN-MONTHS0 variable: Group-Name.Data-Item1.DW-DAYS-IN-MONTHS :: DW-DAYS-IN-MONTH DW-DAYS-IN-MONTHS16384Group-Name.Data-Item10 variable: Group-Name.Data-Item1 :: DW-DAYS-IN-MONTHS Data-Item116384Group-Name0 variable: Group-Name :: Data-Item1 ENVIRONMENT320 interface: ENVIRONMENT FILE2560 namespace: FILE FILE-CONTROL655360 macro: FILE-CONTROL File-Data-Item16384File-Group-Name0 variable: File-Group-Name :: File-Data-Item File-Group-Name20480 struct: File-Group-Name File-Name160 function: File-Name Group-Name20480 struct: Group-Name IDENTIFICATION320 interface: IDENTIFICATION INPUT-OUPUT2560 namespace: INPUT-OUPUT PROCEDURE320 interface: PROCEDURE Program-Name10 class: Program-Name SH-WORK-MMDDYYYY16384Group-Name.Data-Item10 variable: Group-Name.Data-Item1 :: SH-WORK-MMDDYYYY SH-WORK-MMDDYYYY-216384Group-Name.Data-Item10 variable: Group-Name.Data-Item1 :: SH-WORK-MMDDYYYY-2 Subprogram-Name655360 macro: Subprogram-Name WORKING-STORAGE2560 namespace: WORKING-STORAGE geany-2.1/tests/ctags/cobol/quoted-program-id.cbl.tags0000644000175000017500000000024615031717571017731 00000000000000IDENTIFICATION320 interface: IDENTIFICATION MAIN655360 macro: MAIN PROCEDURE320 interface: PROCEDURE Test program name10 class: Test program name geany-2.1/tests/ctags/cobol/levels.cbl.tags0000644000175000017500000000172415031717571015665 00000000000000DATA320 interface: DATA EVEN16384RECORD1.ITEM20 variable: RECORD1.ITEM2 :: EVEN G12048REC20 struct: REC2 :: G1 IDENTIFICATION320 interface: IDENTIFICATION ITEM116384REC2.G10 variable: REC2.G1 :: ITEM1 ITEM116384RECORD10 variable: RECORD1 :: ITEM1 ITEM216384REC2.G10 variable: REC2.G1 :: ITEM2 ITEM216384RECORD10 variable: RECORD1 :: ITEM2 ITEM316384RECORD10 variable: RECORD1 :: ITEM3 MAIN-PROCEDURE655360 macro: MAIN-PROCEDURE ODD16384RECORD1.ITEM20 variable: RECORD1.ITEM2 :: ODD OTHERNAME116384REC20 variable: REC2 :: OTHERNAME1 OTHERNAME216384REC20 variable: REC2 :: OTHERNAME2 PROCEDURE320 interface: PROCEDURE RDITEM416384RECORD10 variable: RECORD1 :: RDITEM4 RDITEM516384RECORD10 variable: RECORD1 :: RDITEM5 REC220480 struct: REC2 RECORD120480 struct: RECORD1 STDLN1163840 variable: STDLN1 Test-Items10 class: Test-Items WORKING-STORAGE2560 namespace: WORKING-STORAGE geany-2.1/tests/ctags/cobol/helloworld2.cbl.tags0000644000175000017500000000065215031717571016627 0000000000000000-MAIN655360 macro: 00-MAIN CONFIGURATION2560 namespace: CONFIGURATION DATA320 interface: DATA ENVIRONMENT320 interface: ENVIRONMENT HELLO WORLD10 class: HELLO WORLD IDENTIFICATION320 interface: IDENTIFICATION OBJECT-COMPUTER655360 macro: OBJECT-COMPUTER PROCEDURE320 interface: PROCEDURE SOURCE-COMPUTER655360 macro: SOURCE-COMPUTER SPECIAL-NAMES655360 macro: SPECIAL-NAMES geany-2.1/tests/ctags/cobol/helloworld.cbl.tags0000644000175000017500000000063615031717571016547 0000000000000000-MAIN655360 macro: 00-MAIN CONFIGURATION2560 namespace: CONFIGURATION DATA320 interface: DATA ENVIRONMENT320 interface: ENVIRONMENT HELLO10 class: HELLO IDENTIFICATION320 interface: IDENTIFICATION OBJECT-COMPUTER655360 macro: OBJECT-COMPUTER PROCEDURE320 interface: PROCEDURE SOURCE-COMPUTER655360 macro: SOURCE-COMPUTER SPECIAL-NAMES655360 macro: SPECIAL-NAMES geany-2.1/tests/ctags/cobol/simple.cbl0000644000175000017500000000161215031717571014723 00000000000000 IDENTIFICATION DIVISION. PROGRAM-ID. Program-Name. AUTHOR. Darren Hiebert. ENVIRONMENT DIVISION. INPUT-OUPUT SECTION. FILE-CONTROL. SELECT File-Name ASSIGN TO "SAMPLE.DAT" ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD File-Name. 01 File-Group-Name. 02 File-Data-Item PIC 9(7). WORKING-STORAGE SECTION. 01 Group-Name. 02 Data-Item1 PIC 9 VALUE ZEROS. 03 SH-WORK-MMDDYYYY PIC 9(08) VALUE 0. 03 SH-WORK-MMDDYYYY-2 REDEFINES SH-WORK-MMDDYYYY. 03 DW-DAYS-IN-MONTHS VALUE "312831303130313130313031". 05 DW-DAYS-IN-MONTH OCCURS 12 TIMES PIC 9(02). PROCEDURE DIVISION. Begin. STOP RUN. Subprogram-Name. geany-2.1/tests/ctags/cobol/quoted-program-id.cbl0000644000175000017500000000032615031717571016773 00000000000000 IDENTIFICATION DIVISION. PROGRAM-ID. 'Test program name'. PROCEDURE DIVISION. MAIN. DISPLAY 'This is a test program'. STOP RUN. END PROGRAM 'Test program name'. geany-2.1/tests/ctags/cobol/levels.cbl0000644000175000017500000000152315031717571014725 00000000000000 IDENTIFICATION DIVISION. PROGRAM-ID. Test-Items. DATA DIVISION. WORKING-STORAGE SECTION. 01 RECORD1. 05 ITEM1 PIC X(1). 05 ITEM2 PIC A(1). 88 ODD VALUES 1, 3, 5, 7, 9. 88 EVEN VALUES 2, 4, 6, 8. 05 ITEM3 PIC X(6). 66 RDITEM4 RENAMES ITEM1 THRU ITEM2. 66 RDITEM5 RENAMES ITEM1 THROUGH ITEM3. 77 STDLN1 PIC A(4). 01 REC2. 02 G1. 05 ITEM1 PICTURE X(10). 05 ITEM2 PIC X(10). 66 OTHERNAME1 RENAMES ITEM1 IN REC2. 66 OTHERNAME2 RENAMES G1. PROCEDURE DIVISION. MAIN-PROCEDURE. DISPLAY "Hello world". DISPLAY OTHERNAME2. STOP RUN. END PROGRAM Test-Items. geany-2.1/tests/ctags/cobol/helloworld2.cbl0000644000175000017500000000072715031717571015675 00000000000000 00000* VALIDATION OF BASE COBOL INSTALL IDENTIFICATION DIVISION. 01100 PROGRAM-ID. 'HELLO WORLD'. 02000 ENVIRONMENT DIV -ISION. 02100 CONFIGURATION SECTION. 02110 SOURCE-COMPUTER. GNULINUX. 02120 OBJECT-COMPUTER. HERCULES. 02200 SPECIAL --NAMES. 02210 CONSOLE IS CONSL. 03000 DATA DIVISION. 04000 PROCEDUR - E DIVISION. 04100 00-MAIN. 04110 DISPLAY 'HELLO, WORLD' UPON CONSL. 04900 STOP RUN. geany-2.1/tests/ctags/cobol/helloworld.cbl0000644000175000017500000000215615031717571015611 00000000000000 00000* VALIDATION OF BASE COBOL INSTALL 00050000 01000 IDENTIFICATION DIVISION. 00060000 01100 PROGRAM-ID. 'HELLO'. 00070000 02000 ENVIRONMENT DIVISION. 00080000 02100 CONFIGURATION SECTION. 00090000 02110 SOURCE-COMPUTER. GNULINUX. 00100000 02120 OBJECT-COMPUTER. HERCULES. 00110000 02200 SPECIAL-NAMES. 00120000 02210 CONSOLE IS CONSL. 00130000 03000 DATA DIVISION. 00140000 04000 PROCEDURE DIVISION. 00150000 04100 00-MAIN. 00160000 04110 DISPLAY 'HELLO, WORLD' UPON CONSL. 00170000 04900 STOP RUN. 00180000 geany-2.1/tests/ctags/actionscript/0000755000175000017500000000000015032474727014440 500000000000000geany-2.1/tests/ctags/actionscript/sampler.as.tags0000644000175000017500000000201415031717571017276 00000000000000assert128sampleTypes0 method: sampleTypes :: assert b16384sampleTypes0 variable: sampleTypes :: b cpuSamples16384sampleTypes.sampleTypes0 variable: sampleTypes.sampleTypes :: cpuSamples delSamples16384sampleTypes.sampleTypes0 variable: sampleTypes.sampleTypes :: delSamples dos16384sampleTypes.sampleTypes0 variable: sampleTypes.sampleTypes :: dos flash.display.Sprite327680 externvar: flash.display.Sprite flash.sampler.*327680 externvar: flash.sampler.* flash.system.*327680 externvar: flash.system.* flash.utils.*327680 externvar: flash.utils.* ids16384sampleTypes.sampleTypes0 variable: sampleTypes.sampleTypes :: ids lastTime16384sampleTypes.sampleTypes0 variable: sampleTypes.sampleTypes :: lastTime newSamples16384sampleTypes.sampleTypes0 variable: sampleTypes.sampleTypes :: newSamples nos16384sampleTypes.sampleTypes0 variable: sampleTypes.sampleTypes :: nos sampleTypes10 class: sampleTypes sampleTypes128sampleTypes0 method: sampleTypes :: sampleTypes geany-2.1/tests/ctags/actionscript/packages.as.tags0000644000175000017500000000027715031717571017422 00000000000000C11P30 class: P3 :: C1 P15120 package: P1 P25120 package: P2 P35120 package: P3 f116P20 function: P2 :: f1 qualified.test.pkg5120 package: qualified.test.pkg geany-2.1/tests/ctags/actionscript/method-attributes.as.tags0000644000175000017500000000041415031717571021301 00000000000000C10 class: C f1128C0 method: C :: f1 f2128C0 method: C :: f2 f3128C0 method: C :: f3 f4128C0 method: C :: f4 f5128C0 method: C :: f5 f6128C0 method: C :: f6 f7128C0 method: C :: f7 f8128C0 method: C :: f8 geany-2.1/tests/ctags/actionscript/const.as.tags0000644000175000017500000000044615031717571016770 00000000000000AlarmClock10 class: AlarmClock MODE_AUDIO65536AlarmClock0 macro: AlarmClock :: MODE_AUDIO MODE_BOTH65536AlarmClock0 macro: AlarmClock :: MODE_BOTH MODE_VISUAL65536AlarmClock0 macro: AlarmClock :: MODE_VISUAL mode16384AlarmClock0 variable: AlarmClock :: mode geany-2.1/tests/ctags/actionscript/const2.as.tags0000644000175000017500000000012415031717571017043 00000000000000MIN_AGE655360 macro: MIN_AGE product_array655360 macro: product_array geany-2.1/tests/ctags/actionscript/classes.as.tags0000644000175000017500000000042715031717571017276 00000000000000C110 class: C1 C210 class: C2 C310 class: C3 C410 class: C4 C510 class: C5 C610 class: C6 C710 class: C7 I1320 interface: I1 I2320 interface: I2 I3320 interface: I3 I4320 interface: I4 m1128C10 method: C1 :: m1 geany-2.1/tests/ctags/actionscript/as-first-token.as.tags0000644000175000017500000000002715031717571020503 00000000000000f1160 function: f1 geany-2.1/tests/ctags/actionscript/sampler.as0000644000175000017500000000415215031717571016346 00000000000000// https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/sampler/Sample.html package { import flash.sampler.* import flash.system.* import flash.utils.* import flash.display.Sprite public class sampleTypes extends Sprite { var b:Boolean = true public function sampleTypes() { flash.sampler.startSampling(); for(var i:int=0;i<10000;i++) new Object(); var cpuSamples:Array=[]; var newSamples:Array=[]; var delSamples:Array=[]; var ids:Array=[] var lastTime:Number=0; for each(var s:Sample in getSamples()) { assert(s.time > 0); // positive assert(Math.floor(s.time) == s.time, s.time); // integral assert(s.time >= lastTime, s.time + ":" + lastTime); // ascending assert(s.stack == null || s.stack is Array) if(s.stack) { assert(s.stack[0] is StackFrame); assert(s.stack[0].name is String); } if(s is NewObjectSample) { var nos = NewObjectSample(s); assert(s.id > 0, s.id); assert(s.type is Class, getQualifiedClassName(s.type)); newSamples.push(s); ids[s.id] = "got one"; } else if(s is DeleteObjectSample) { var dos = DeleteObjectSample(s); delSamples.push(s); assert(ids[dos.id] == "got one"); } else if(s is Sample) cpuSamples.push(s); else { assert(false); } lastTime = s.time; } trace(b) trace(newSamples.length > 0) trace(cpuSamples.length > 0) trace(delSamples.length > 0) } private function assert(e:Boolean, mess:String=null):void { b = e && b; if(true && !e) { if(mess) trace(mess); trace(new Error().getStackTrace()); } } } } geany-2.1/tests/ctags/actionscript/packages.as0000644000175000017500000000015615031717571016461 00000000000000package P1 {} package P2 { function f1() {} } package P3 { class C1 {} } package qualified.test . pkg { } geany-2.1/tests/ctags/actionscript/method-attributes.as0000644000175000017500000000063115031717571020345 00000000000000/* Not sure it's really valid, but the goal is to check not choking on * attributes, so so long as it's valid attributes it's fine */ class C { public function f1():void {} private function f2():void {} protected function f3():void {} internal function f4():void {} public function f5():void {} public override function f6():void {} final function f7():void {} native function f8():void {} } geany-2.1/tests/ctags/actionscript/const.as0000644000175000017500000000043015031717571016024 00000000000000// https://www.oreilly.com/library/view/essential-actionscript-30/0596526946/ch04s02.html public class AlarmClock { public static const MODE_VISUAL = 1; public static const MODE_AUDIO = 2; public static const MODE_BOTH = 3; private var mode = AlarmClock.MODE_AUDIO; } geany-2.1/tests/ctags/actionscript/const2.as0000644000175000017500000000055615031717571016117 00000000000000// https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/statements.html#const const MIN_AGE:int = 21; const product_array:Array = new Array("Studio", "Dreamweaver", "Flash", "ColdFusion", "Contribute", "Breeze"); product_array.push("Flex"); // array operations are allowed product_array = ["Other"]; // assignment is an error trace(product_array); geany-2.1/tests/ctags/actionscript/classes.as0000644000175000017500000000053115031717571016335 00000000000000package { class C1 { public function m1():Boolean { return 0; } } class C2 extends C1 {} class C3 {} interface I1 {} interface I2 {} interface I3 extends I1, I2 {} interface I4 extends I3 {} class C4 implements I1 {} class C5 extends C3 implements I1 {} class C6 extends C3 implements I1, I2 {} dynamic class C7{} } geany-2.1/tests/ctags/actionscript/as-first-token.as0000644000175000017500000000002615031717571017545 00000000000000function f1():void {} geany-2.1/tests/test_utils.c0000644000175000017500000004031215031717571013114 00000000000000 #include "main.h" #include "utils.h" #include "gtkcompat.h" #define UTIL_TEST_ADD(path, func) g_test_add_func("/utils/" path, func); static void test_utils_strv_new(void) { gchar **data; data = utils_strv_new("1", NULL); g_assert_nonnull(data); g_assert_cmpint(g_strv_length(data), ==, 1); g_assert_cmpstr(data[0], ==, "1"); g_strfreev(data); data = utils_strv_new("1", "2", "3", NULL); g_assert_nonnull(data); g_assert_cmpint(g_strv_length(data), ==, 3); g_assert_cmpstr(data[0], ==, "1"); g_assert_cmpstr(data[1], ==, "2"); g_assert_cmpstr(data[2], ==, "3"); g_strfreev(data); data = utils_strv_new("1", "", "", "4", NULL); g_assert_nonnull(data); g_assert_cmpint(g_strv_length(data), ==, 4); g_assert_cmpstr(data[0], ==, "1"); g_assert_cmpstr(data[1], ==, ""); g_assert_cmpstr(data[2], ==, ""); g_assert_cmpstr(data[3], ==, "4"); g_strfreev(data); } static void test_utils_strv_find_common_prefix(void) { gchar **data, *s; s = utils_strv_find_common_prefix(NULL, 0); g_assert_null(s); data = utils_strv_new("", NULL); s = utils_strv_find_common_prefix(data, -1); g_assert_nonnull(s); g_assert_cmpstr(s, ==, ""); g_free(s); g_strfreev(data); data = utils_strv_new("1", "2", "3", NULL); s = utils_strv_find_common_prefix(data, -1); g_assert_nonnull(s); g_assert_cmpstr(s, ==, ""); g_free(s); g_strfreev(data); data = utils_strv_new("abc", "amn", "axy", NULL); s = utils_strv_find_common_prefix(data, -1); g_assert_nonnull(s); g_assert_cmpstr(s, ==, "a"); g_free(s); g_strfreev(data); data = utils_strv_new("abc", "", "axy", NULL); s = utils_strv_find_common_prefix(data, -1); g_assert_nonnull(s); g_assert_cmpstr(s, ==, ""); g_free(s); g_strfreev(data); data = utils_strv_new("22", "23", "33", NULL); s = utils_strv_find_common_prefix(data, 1); g_assert_nonnull(s); g_assert_cmpstr(s, ==, "22"); g_free(s); s = utils_strv_find_common_prefix(data, 2); g_assert_nonnull(s); g_assert_cmpstr(s, ==, "2"); g_free(s); s = utils_strv_find_common_prefix(data, 3); g_assert_nonnull(s); g_assert_cmpstr(s, ==, ""); g_free(s); g_strfreev(data); data = utils_strv_new("/home/user/src/geany/src/stash.c", "/home/user/src/geany/src/sidebar.c", "/home/user/src/geany/src/sidebar.h", "/home/user/src/geany/src/sidebar.h", "/home/user/src/geany/src/main.c", "/home/user/src/geany-plugins/addons/src/addons.c", NULL); s = utils_strv_find_common_prefix(data, 4); g_assert_nonnull(s); g_assert_cmpstr(s, ==, "/home/user/src/geany/src/s"); g_free(s); s = utils_strv_find_common_prefix(data, 5); g_assert_nonnull(s); g_assert_cmpstr(s, ==, "/home/user/src/geany/src/"); g_free(s); s = utils_strv_find_common_prefix(data, -1); g_assert_nonnull(s); g_assert_cmpstr(s, ==, "/home/user/src/geany"); g_free(s); g_strfreev(data); } #define DIR_SEP "\\/" static void test_utils_strv_find_lcs(void) { gchar **data, *s; s = utils_strv_find_lcs(NULL, 0, ""); g_assert_null(s); data = utils_strv_new("", NULL); s = utils_strv_find_lcs(data, -1, ""); g_assert_nonnull(s); g_assert_cmpstr(s, ==, ""); g_free(s); g_strfreev(data); data = utils_strv_new("1", "2", "3", NULL); s = utils_strv_find_lcs(data, -1, ""); g_assert_nonnull(s); g_assert_cmpstr(s, ==, ""); g_free(s); s = utils_strv_find_lcs(data, -1, DIR_SEP); g_assert_nonnull(s); g_assert_cmpstr(s, ==, ""); g_free(s); g_strfreev(data); data = utils_strv_new("abc", "amn", "axy", NULL); s = utils_strv_find_lcs(data, -1, ""); g_assert_nonnull(s); g_assert_cmpstr(s, ==, "a"); g_free(s); s = utils_strv_find_lcs(data, -1, DIR_SEP); g_assert_nonnull(s); g_assert_cmpstr(s, ==, ""); g_free(s); g_strfreev(data); data = utils_strv_new("bca", "mna", "xya", NULL); s = utils_strv_find_lcs(data, -1, ""); g_assert_nonnull(s); g_assert_cmpstr(s, ==, "a"); g_free(s); s = utils_strv_find_lcs(data, -1, DIR_SEP); g_assert_nonnull(s); g_assert_cmpstr(s, ==, ""); g_free(s); g_strfreev(data); data = utils_strv_new("abc", "", "axy", NULL); s = utils_strv_find_lcs(data, -1, ""); g_assert_nonnull(s); g_assert_cmpstr(s, ==, ""); g_free(s); s = utils_strv_find_lcs(data, -1, DIR_SEP); g_assert_nonnull(s); g_assert_cmpstr(s, ==, ""); g_free(s); g_strfreev(data); data = utils_strv_new("a123b", "b123c", "c123d", NULL); s = utils_strv_find_lcs(data, -1, ""); g_assert_nonnull(s); g_assert_cmpstr(s, ==, "123"); g_free(s); s = utils_strv_find_lcs(data, -1, DIR_SEP); g_assert_nonnull(s); g_assert_cmpstr(s, ==, ""); g_free(s); g_strfreev(data); data = utils_strv_new("22", "23", "33", NULL); s = utils_strv_find_lcs(data, 1, ""); g_assert_nonnull(s); g_assert_cmpstr(s, ==, "22"); g_free(s); s = utils_strv_find_lcs(data, 2, ""); g_assert_nonnull(s); g_assert_cmpstr(s, ==, "2"); g_free(s); s = utils_strv_find_lcs(data, 3, ""); g_assert_nonnull(s); g_assert_cmpstr(s, ==, ""); g_free(s); g_strfreev(data); data = utils_strv_new("/home/user/src/geany/src/stash.c", "/home/user/src/geany/src/sidebar.c", "/home/user/src/geany/src/sidebar.h", "/home/user/src/geany/src/sidebar.h", "/home/user/src/geany/src/main.c", "/home/user/src/geany-plugins/addons/src/addons.c", NULL); s = utils_strv_find_lcs(data, 4, ""); g_assert_nonnull(s); g_assert_cmpstr(s, ==, "/home/user/src/geany/src/s"); g_free(s); s = utils_strv_find_lcs(data, 4, DIR_SEP); g_assert_nonnull(s); g_assert_cmpstr(s, ==, "/home/user/src/geany/src/"); g_free(s); s = utils_strv_find_lcs(data, 5, ""); g_assert_nonnull(s); g_assert_cmpstr(s, ==, "/home/user/src/geany/src/"); g_free(s); s = utils_strv_find_lcs(data, 5, DIR_SEP); g_assert_nonnull(s); g_assert_cmpstr(s, ==, "/home/user/src/geany/src/"); g_free(s); s = utils_strv_find_lcs(data, -1, ""); g_assert_nonnull(s); g_assert_cmpstr(s, ==, "/home/user/src/geany"); g_free(s); s = utils_strv_find_lcs(data, -1, DIR_SEP); g_assert_nonnull(s); g_assert_cmpstr(s, ==, "/home/user/src/"); g_free(s); g_strfreev(data); data = utils_strv_new("/src/a/app-1.2.3/src/lib/module/source.c", "/src/b/app-2.2.3/src/module/source.c", NULL); s = utils_strv_find_lcs(data, -1, ""); g_assert_nonnull(s); g_assert_cmpstr(s, ==, "/module/source.c"); g_free(s); s = utils_strv_find_lcs(data, -1, DIR_SEP); g_assert_nonnull(s); g_assert_cmpstr(s, ==, "/module/"); g_free(s); g_strfreev(data); data = utils_strv_new("/src/a/app-1.2.3/src/lib/module\\source.c", "/src/b/app-2.2.3/src/module\\source.c", NULL); s = utils_strv_find_lcs(data, -1, ""); g_assert_nonnull(s); g_assert_cmpstr(s, ==, "/module\\source.c"); g_free(s); s = utils_strv_find_lcs(data, -1, DIR_SEP); g_assert_nonnull(s); g_assert_cmpstr(s, ==, "/module\\"); g_free(s); g_strfreev(data); data = utils_strv_new("/src/a/app-1.2.3/src/lib/module/", "/src/b/app-2.2.3/src/module/", NULL); s = utils_strv_find_lcs(data, -1, ""); g_assert_nonnull(s); g_assert_cmpstr(s, ==, ".2.3/src/"); g_free(s); s = utils_strv_find_lcs(data, -1, DIR_SEP); g_assert_nonnull(s); g_assert_cmpstr(s, ==, "/module/"); g_free(s); g_strfreev(data); data = utils_strv_new("/usr/local/bin/geany", "/usr/bin/geany", "/home/user/src/geany/src/geany", NULL); s = utils_strv_find_lcs(data, -1, ""); g_assert_nonnull(s); g_assert_cmpstr(s, ==, "/geany"); g_free(s); s = utils_strv_find_lcs(data, -1, DIR_SEP); g_assert_nonnull(s); g_assert_cmpstr(s, ==, ""); g_free(s); g_strfreev(data); } /* g_strv_equal is too recent */ static gboolean strv_eq(gchar **strv1, gchar **strv2) { while(1) { gchar *s1 = *strv1++; gchar *s2 = *strv2++; if (!s1 && !s2) return TRUE; else if (s1 && !s2) return FALSE; else if (s2 && !s1) return FALSE; else if (!g_str_equal(s1, s2)) return FALSE; } } static void test_utils_strv_shorten_file_list(void) { gchar **data, **expected, **result; gchar *empty[] = { NULL }; result = utils_strv_shorten_file_list(NULL, 0); expected = empty; g_assert_true(strv_eq(result, expected)); g_strfreev(result); data = utils_strv_new("", NULL); result = utils_strv_shorten_file_list(data, -1); expected = data; g_assert_true(strv_eq(result, expected)); g_strfreev(result); g_strfreev(data); data = utils_strv_new("1", "2", "3", NULL); result = utils_strv_shorten_file_list(data, -1); expected = data; g_assert_true(strv_eq(result, expected)); g_strfreev(result); g_strfreev(data); data = utils_strv_new("abc", "amn", "axy", NULL); result = utils_strv_shorten_file_list(data, -1); expected = data; g_assert_true(strv_eq(result, expected)); g_strfreev(result); g_strfreev(data); data = utils_strv_new("abc", "", "axy", NULL); result = utils_strv_shorten_file_list(data, -1); expected = data; g_assert_true(strv_eq(result, expected)); g_strfreev(result); g_strfreev(data); data = utils_strv_new("22", "23", "33", NULL); result = utils_strv_shorten_file_list(data, 1); expected = utils_strv_new("22", NULL); g_assert_true(strv_eq(result, expected)); g_strfreev(expected); g_strfreev(result); result = utils_strv_shorten_file_list(data, 2); expected = utils_strv_new("22", "23", NULL); g_assert_true(strv_eq(result, expected)); g_strfreev(expected); g_strfreev(result); result = utils_strv_shorten_file_list(data, 3); expected = utils_strv_new("22", "23", "33", NULL); g_assert_true(strv_eq(result, expected)); g_strfreev(expected); g_strfreev(result); g_strfreev(data); data = utils_strv_new("/home/user/src/geany/src/stash.c", "/home/user/src/geany/src/sidebar.c", "/home/user/src/geany/src/sidebar.h", "/home/user/src/geany/src/sidebar.h", "/home/user/src/geany/src/main.c", "/home/user/src/geany-plugins/addons/src/addons.c", NULL); result = utils_strv_shorten_file_list(data, 4); expected = utils_strv_new("stash.c", "sidebar.c", "sidebar.h", "sidebar.h", NULL); g_assert_true(strv_eq(result, expected)); g_strfreev(expected); result = utils_strv_shorten_file_list(data, 5); expected = utils_strv_new("stash.c", "sidebar.c", "sidebar.h", "sidebar.h", "main.c", NULL); g_assert_true(strv_eq(result, expected)); g_strfreev(expected); result = utils_strv_shorten_file_list(data, -1); expected = utils_strv_new("geany/src/stash.c", "geany/src/sidebar.c", "geany/src/sidebar.h", "geany/src/sidebar.h", "geany/src/main.c", "geany-plugins/addons/src/addons.c", NULL); g_assert_true(strv_eq(result, expected)); g_strfreev(expected); g_strfreev(data); data = utils_strv_new("/home/user1/src/geany/src/stash.c", "/home/user2/src/geany/src/sidebar.c", "/home/user3/src/geany/src/sidebar.h", "/home/user4/src/geany/src/sidebar.h", "/home/user5/src/geany/src/main.c", NULL); result = utils_strv_shorten_file_list(data, -1); expected = utils_strv_new("user1/.../stash.c", "user2/.../sidebar.c", "user3/.../sidebar.h", "user4/.../sidebar.h", "user5/.../main.c", NULL); g_assert_true(strv_eq(result, expected)); g_strfreev(expected); g_strfreev(result); g_strfreev(data); data = utils_strv_new("/aaa/bbb/cc/ccccc/ddddd", "/aaa/bbb/xxx/yyy/cc/ccccc/ddddd", NULL); result = utils_strv_shorten_file_list(data, -1); expected = utils_strv_new("cc/.../ddddd", "xxx/yyy/cc/.../ddddd", NULL); g_assert_true(strv_eq(result, expected)); g_strfreev(expected); g_strfreev(result); g_strfreev(data); data = utils_strv_new("/src/a/app-1.2.3/src/lib/module/source.c", "/src/b/app-2.2.3/src/module/source.c", NULL); result = utils_strv_shorten_file_list(data, -1); expected = utils_strv_new("a/app-1.2.3/src/lib/.../source.c", "b/app-2.2.3/src/.../source.c", NULL); g_assert_true(strv_eq(result, expected)); g_strfreev(expected); g_strfreev(result); g_strfreev(data); } static void test_utils_get_initials(void) { #define CHECK_INITIALS(buf, initials) \ G_STMT_START { \ gchar *r = utils_get_initials(buf); \ g_assert_cmpstr(r, ==, initials); \ g_free(r); \ } G_STMT_END CHECK_INITIALS("John Doe", "JD"); CHECK_INITIALS(" John Doe ", "JD"); CHECK_INITIALS("John", "J"); CHECK_INITIALS("John F. Doe", "JFD"); CHECK_INITIALS("Gary Errol Anthony Nicholas Yales", "GEANY"); CHECK_INITIALS("", ""); CHECK_INITIALS("Åsa Åkesson", "ÅÅ"); /* composed */ CHECK_INITIALS("Åsa Åkesson", "ÅÅ"); /* decomposed */ CHECK_INITIALS("Œdipe", "Œ"); #undef CHECK_INITIALS } static gboolean replace_placeholders(GString *buffer, const gchar placeholder, gpointer data) { g_assert_cmpint(GPOINTER_TO_INT(data), ==, 42); switch (placeholder) { case 'a': g_string_append(buffer, "alpha"); break; case 'b': g_string_append(buffer, "beta"); break; case 'c': g_string_append(buffer, "charlie"); break; case 'C': g_string_append(buffer, "Charlie"); break; case 'd': g_string_append_printf(buffer, "%d", 42); break; case 'f': g_string_append_printf(buffer, "%f", 4.2); break; case 'g': g_string_append_printf(buffer, "%g", 4.2); break; default: return FALSE; } return TRUE; } static void test_utils_replace_placeholders(void) { #define CHECK_PL(src, result) \ G_STMT_START { \ gchar *r = utils_replace_placeholders(src, replace_placeholders, GINT_TO_POINTER(42)); \ g_assert_cmpstr(r, ==, result); \ g_free(r); \ } G_STMT_END CHECK_PL("some thing", "some thing"); CHECK_PL("some %% thing", "some % thing"); /* a trailing % is kept */ CHECK_PL("some %% thing %", "some % thing %"); CHECK_PL("some %%f thing %%", "some %f thing %"); CHECK_PL("some %%f thing %%%", "some %f thing %%"); CHECK_PL("some %%f thing %%%%", "some %f thing %%"); CHECK_PL("some %%f thing %%%%%", "some %f thing %%%"); /* Some actual replacements */ CHECK_PL("some %a thing %%", "some alpha thing %"); CHECK_PL("some %b thing %%", "some beta thing %"); CHECK_PL("some %c thing %%", "some charlie thing %"); CHECK_PL("some %C thing %%", "some Charlie thing %"); CHECK_PL("some %d thing %%", "some 42 thing %"); CHECK_PL("some %f thing %%", "some 4.200000 thing %"); CHECK_PL("some %g thing %%", "some 4.2 thing %"); /* Unknown placeholder, left as-is */ CHECK_PL("some %z thing %%", "some %z thing %"); #undef CHECK_PL } static void test_utils_replace_document_placeholders(void) { #define CHECK_DOC_PL(src, result) \ G_STMT_START { \ gchar *r = utils_replace_document_placeholders(NULL, src); \ g_assert_cmpstr(r, ==, result); \ g_free(r); \ } G_STMT_END CHECK_DOC_PL("some thing", "some thing"); CHECK_DOC_PL("some %% thing", "some % thing"); /* a trailing % is kept */ CHECK_DOC_PL("some %% thing %", "some % thing %"); CHECK_DOC_PL("some %%f thing %%", "some %f thing %"); CHECK_DOC_PL("some %%f thing %%%", "some %f thing %%"); CHECK_DOC_PL("some %%f thing %%%%", "some %f thing %%"); CHECK_DOC_PL("some %%f thing %%%%%", "some %f thing %%%"); /* We give a NULL doc, so replacements are empty */ CHECK_DOC_PL("some %d thing %%", "some thing %"); CHECK_DOC_PL("some %e thing %%", "some thing %"); CHECK_DOC_PL("some %f thing %%", "some thing %"); CHECK_DOC_PL("some %l thing %%", "some thing %"); CHECK_DOC_PL("some %p thing %%", "some thing %"); /* Unknown placeholder, left as-is */ CHECK_DOC_PL("some %z thing %%", "some %z thing %"); #undef CHECK_DOC_PL } int main(int argc, char **argv) { g_test_init(&argc, &argv, NULL); main_init_headless(); UTIL_TEST_ADD("strv_join", test_utils_strv_new); UTIL_TEST_ADD("strv_find_common_prefix", test_utils_strv_find_common_prefix); UTIL_TEST_ADD("strv_find_lcs", test_utils_strv_find_lcs); UTIL_TEST_ADD("strv_shorten_file_list", test_utils_strv_shorten_file_list); UTIL_TEST_ADD("get_initals", test_utils_get_initials); UTIL_TEST_ADD("replace_placeholders", test_utils_replace_placeholders); UTIL_TEST_ADD("replace_document_placeholders", test_utils_replace_document_placeholders); return g_test_run(); } geany-2.1/tests/test_sidebar.c0000644000175000017500000000602515031717571013370 00000000000000 #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "document.h" #include "documentprivate.h" #include "keyfile.h" #include "main.h" #include "sidebar.h" #include "ui_utils.h" #include "utils.h" #define SIDEBAR_TEST_ADD(path, func) g_test_add_func("/sidebar/" path, func); static void openfiles_add(const gchar **file_names) { const gchar *file; while ((file = *file_names++)) { GeanyDocument *doc = g_new0(GeanyDocument, 1); doc->priv = g_new0(GeanyDocumentPrivate, 1); doc->file_name = strdup(file); sidebar_openfiles_add(doc); } } static gboolean tree_count_cb(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data_in) { gint *c = (gint *) data_in; *c = *c + 1; return FALSE; } static gboolean tree_strings_cb(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data_in) { gchar **data = (gchar **) data_in; gchar *file; gtk_tree_model_get(model, iter, DOCUMENTS_SHORTNAME, &file, -1); data[g_strv_length(data)] = file; printf("%s\n", file); return FALSE; } static void do_test_sidebar_openfiles(const gchar **test_data, const gchar **expected) { #ifdef HAVE_G_STRV_EQUAL int count = 0; GtkTreeStore *store; gchar **data; store = sidebar_create_store_openfiles(); openfiles_add(test_data); gtk_tree_model_foreach(GTK_TREE_MODEL(store), tree_count_cb, (gpointer) &count); data = g_new0(gchar *, count + 1); gtk_tree_model_foreach(GTK_TREE_MODEL(store), tree_strings_cb, (gpointer) data); g_assert_true(g_strv_equal(expected, (const gchar * const *) data)); #else g_test_skip("Need g_strv_equal(), since GLib 2.60"); #endif } static void test_sidebar_openfiles_none(void) { const gchar *files[] = { "/tmp/x", "/tmp/b/a", "/tmp/b/b", NULL }; const gchar *expected[] = { "a", "b", "x", NULL }; interface_prefs.openfiles_path_mode = OPENFILES_PATHS_NONE; do_test_sidebar_openfiles(files, expected); } static void test_sidebar_openfiles_path(void) { const gchar *files[] = { "/tmp/x", "/tmp/b/a", "/tmp/b/b", NULL }; const gchar *expected[] = { "/tmp", "x", "/tmp/b", "a", "b", NULL }; interface_prefs.openfiles_path_mode = OPENFILES_PATHS_LIST; do_test_sidebar_openfiles(files, expected); } static void test_sidebar_openfiles_tree(void) { const gchar *files[] = { "/tmp/x", "/tmp/b/a", "/tmp/b/b", NULL }; const gchar *expected[] = { "/tmp", "x", "b", "a", "b", NULL }; interface_prefs.openfiles_path_mode = OPENFILES_PATHS_TREE; do_test_sidebar_openfiles(files, expected); } int main(int argc, char **argv) { g_test_init(&argc, &argv, NULL); /* Not sure if we can really continue without DISPLAY. Fake X display perhaps? * * This test seems to work, at least. */ gtk_init_check(&argc, &argv); main_init_headless(); SIDEBAR_TEST_ADD("openfiles_none", test_sidebar_openfiles_none); SIDEBAR_TEST_ADD("openfiles_path", test_sidebar_openfiles_path); SIDEBAR_TEST_ADD("openfiles_tree", test_sidebar_openfiles_tree); return g_test_run(); } geany-2.1/tests/test_encodings.c0000644000175000017500000003373015031717571013733 00000000000000/* * Copyright 2023 The Geany contributors * * 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 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 General Public License for more details. * * You should have received a copy of the GNU 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. */ #include "encodingsprivate.h" #include "main.h" /* Asserts 2 bytes buffers are identical, trying to provide a somewhat useful * error if not. */ static void assert_cmpmem_eq_impl(const char *p1, const char *p2, gsize len, const char *domain, const char *file, int line, const char *func, const char *expr) { gchar *msg; gsize i; for (i = 0; i < len && p1[i] == p2[i]; i++) ; if (i == len) return; msg = g_strdup_printf("assertion failed (%s): bytes %#x and %#x differ at offset %lu (at \"%s\" and \"%s\")", expr, (guint) (guchar) p1[i], (guint) (guchar) p2[i], i, p1 + i, p2 + i); g_assertion_message(domain, file, line, func, msg); g_free(msg); } #define assert_cmpmem_eq_with_caller(p1, p2, len, domain, file, line, func) \ assert_cmpmem_eq_impl(p1, p2, len, domain, file, line, func, #p1 " == " #p2) #define assert_cmpmem_eq(p1, p2, len) assert_cmpmem_eq_impl(p1, p2, len, \ G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, #p1 " == " #p2) /* * @brief More convenient test API for encodings_convert_to_utf8_auto() * @param input Input buffer, NUL-terminated (well, at least there should be a * trailing NUL). * @param input_size Actual size of @p input buffer, without the trailing NUL * @param disk_size Size on disk (as reported by e.g stat -- that may be 0 for * virtual files, otherwise should be input_size) * @param forced_enc Forced encoding, or NULL * @param expected_output Expected output data * @param expected_size Expected output size * @param expected_encoding Expected output encoding * @param expected_has_bom Whether the input contains a BOM * @param expected_partial Whether the output is expected to be truncated * @returns Whether the conversion succeeded and followed the parameters */ static gboolean assert_convert_to_utf8_auto_impl( const char *domain, const char *file, int line, const char *func, const gchar *input, gsize input_size, const gsize disk_size, const gchar *forced_enc, const gchar *expected_output, gsize expected_size, const gchar *expected_encoding, gboolean expected_has_bom, gboolean expected_partial) { gchar *buf = g_memdup(input, input_size + 1); gsize size = disk_size; gchar *used_encoding = NULL; gboolean has_bom = FALSE; gboolean partial = FALSE; gboolean ret; GError *err = NULL; g_log(domain, G_LOG_LEVEL_INFO, "%s:%d:%s: converting %lu bytes", file, line, func, input_size); ret = encodings_convert_to_utf8_auto(&buf, &size, forced_enc, &used_encoding, &has_bom, &partial, &err); fflush(stdout); if (! ret) { g_log(domain, G_LOG_LEVEL_INFO, "%s:%d:%s: conversion failed: %s", file, line, func, err->message); g_error_free(err); } else { assert_cmpmem_eq_with_caller(buf, expected_output, MIN(size, expected_size), domain, file, line, func); g_assert_cmpuint(size, ==, expected_size); if (expected_encoding) g_assert_cmpstr(expected_encoding, ==, used_encoding); g_assert_cmpint(has_bom, ==, expected_has_bom); g_assert_cmpint(partial, ==, expected_partial); g_free(used_encoding); } g_free(buf); return ret; } #define assert_convert_to_utf8_auto(input, input_size, disk_size, forced_enc, \ expected_output, expected_size, expected_encoding, expected_has_bom, expected_partial) \ assert_convert_to_utf8_auto_impl(G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ input, input_size, disk_size, forced_enc, \ expected_output, expected_size, expected_encoding, expected_has_bom, expected_partial) static void test_encodings_convert_ascii_to_utf8_auto(void) { #define TEST_ASCII(success, str, forced_enc) \ g_assert(success == assert_convert_to_utf8_auto(str, G_N_ELEMENTS(str) - 1, G_N_ELEMENTS(str) - 1, \ forced_enc, str, G_N_ELEMENTS(str) - 1, forced_enc, FALSE, \ strlen(str) != G_N_ELEMENTS(str) - 1)) TEST_ASCII(TRUE, "This is a very basic ASCII test", NULL); TEST_ASCII(TRUE, "This is a very basic ASCII test", "None"); TEST_ASCII(TRUE, "This is a very basic ASCII test", "ASCII"); TEST_ASCII(TRUE, "This is a very basic ASCII test", "UTF-8"); TEST_ASCII(TRUE, "S\till ve\ry \b\asic", NULL); TEST_ASCII(FALSE, "With\0some\0NULs\0", NULL); TEST_ASCII(TRUE, "With\0some\0NULs\0", "None"); TEST_ASCII(FALSE, "With\0some\0NULs\0", "UTF-8"); #undef TEST_ASCII } static void test_encodings_convert_utf8_to_utf8_auto(void) { #define UTF8_BOM "\xef\xbb\xbf" #define TEST_UTF8(success, str, forced_enc) \ G_STMT_START { \ gboolean has_bom = strncmp(str, UTF8_BOM, 3) == 0; \ g_assert(success == assert_convert_to_utf8_auto(str, G_N_ELEMENTS(str) - 1, G_N_ELEMENTS(str) - 1, \ forced_enc, &str[has_bom ? 3 : 0], G_N_ELEMENTS(str) - 1 - (has_bom ? 3 : 0), \ forced_enc, has_bom, strlen(str) != G_N_ELEMENTS(str) - 1)); \ } G_STMT_END TEST_UTF8(TRUE, "Thĩs îs å véry basìč ÅSÇǏÍ test", NULL); TEST_UTF8(TRUE, "Thĩs îs å véry basìč ÅSÇǏÍ test", "None"); TEST_UTF8(TRUE, "Thĩs îs å véry basìč ÅSÇǏÍ test", "UTF-8"); TEST_UTF8(FALSE, "Wíťh\0søme\0NÙLs\0", NULL); TEST_UTF8(FALSE, "Wíťh\0søme\0NÙLs\0", "UTF-8"); /* the NUL doesn't pass the UTF-8 check */ TEST_UTF8(TRUE, "Wíťh\0søme\0NÙLs\0", "None"); /* with None we do no data validation, but report partial output */ /* with the inline hint */ TEST_UTF8(TRUE, "coding:utf-8 bãśïč", NULL); TEST_UTF8(FALSE, "coding:utf-8 Wíťh\0søme\0NÙLs", NULL); TEST_UTF8(TRUE, UTF8_BOM"With BOM", NULL); /* These won't pass the UTF-8 validation despite the BOM, so we fallback to * testing other options, and it will succeed with UTF-16 so there's no real * point in verifying this */ /*TEST_UTF8(FALSE, UTF8_BOM"With BOM\0and NULs", NULL);*/ /*TEST_UTF8(FALSE, UTF8_BOM"Wíth BØM\0añd NÙLs", NULL);*/ /* non-UTF-8 */ TEST_UTF8(FALSE, "Th\xec""s", "UTF-8"); TEST_UTF8(FALSE, "Th\xec""s\0", "UTF-8"); TEST_UTF8(FALSE, "\0Th\xec""s", "UTF-8"); #undef TEST_UTF8 #undef UTF8_BOM } static void test_encodings_convert_utf_other_to_utf8_auto(void) { #define UTF16_LE_BOM "\xff\xfe" #define UTF16_BE_BOM "\xfe\xff" #define UTF32_LE_BOM "\xff\xfe\x00\x00" #define UTF32_BE_BOM "\x00\x00\xfe\xff" #define TEST_ENC(success, input, output, has_bom, forced_enc, expected_encoding) \ g_assert(success == assert_convert_to_utf8_auto(input, G_N_ELEMENTS(input) - 1, G_N_ELEMENTS(input) - 1, \ forced_enc, output, G_N_ELEMENTS(output) - 1, expected_encoding, has_bom, \ strlen(output) != G_N_ELEMENTS(output) - 1)) #define TEST(success, input, output, has_bom, forced_enc) \ TEST_ENC(success, input, output, has_bom, forced_enc, forced_enc) TEST(TRUE, "N\000o\000 \000B\000O\000M\000", "No BOM", FALSE, NULL); TEST(TRUE, "N\000o\000 \000B\000\330\000M\000", "No BØM", FALSE, NULL); /* doesn't accept the NULs */ TEST(FALSE, "N\000o\000 \000B\000O\000M\000\000\000a\000n\000d\000 \000N\000U\000L\000s\000", "No BOM\0and NULs", FALSE, NULL); TEST(FALSE, "N\000o\000 \000B\000\330\000M\000\000\000a\000\361\000d\000 \000N\000\331\000L\000s\000", "No BØM\0añd NÙLs", FALSE, NULL); TEST(TRUE, UTF16_LE_BOM"W\000i\000t\000h\000 \000B\000O\000M\000", "With BOM", TRUE, NULL); TEST(TRUE, UTF16_LE_BOM"W\000i\000t\000h\000 \000B\000\330\000M\000", "With BØM", TRUE, NULL); /* doesn't accept the NULs */ TEST(FALSE, UTF16_LE_BOM"W\000i\000t\000h\000 \000B\000O\000M\000\000\000a\000n\000d\000 \000N\000U\000L\000s\000", "With BOM\0and NULs", TRUE, NULL); TEST(FALSE, UTF16_LE_BOM"W\000\355\000t\000h\000 \000B\000\330\000M\000\000\000a\000\361\000d\000 \000N\000\331\000L\000s\000", "Wíth BØM\0añd NÙLs", TRUE, NULL); /* We should actually be smarter in our selection of encoding introducing * probability scores, because this loads as UTF-16LE but is "圀椀琀栀 䈀伀䴀" * which doesn't seem to be real Chinese */ TEST(TRUE, "\000N\000o\000 \000B\000O\000M", "No BOM", FALSE, "UTF-16BE"); TEST(TRUE, "\000N\000o\000 \000B\000\330\000M", "No BØM", FALSE, NULL); /* doesn't accept the NULs -- and see above for the encoding choice */ TEST(FALSE, "\000N\000o\000 \000B\000O\000M\000\000\000a\000n\000d\000 \000N\000U\000L\000s", "No BOM\0and NULs", FALSE, "UTF-16BE"); TEST(FALSE, "\000N\000o\000 \000B\000\330\000M\000\000\000a\000\361\000d\000 \000N\000\331\000L\000s", "No BØM\0añd NÙLs", FALSE, NULL); TEST(TRUE, UTF16_BE_BOM"\000W\000i\000t\000h\000 \000B\000O\000M", "With BOM", TRUE, NULL); TEST(TRUE, UTF16_BE_BOM"\000W\000i\000t\000h\000 \000B\000\330\000M", "With BØM", TRUE, NULL); /* doesn't accept the NULs */ TEST(FALSE, UTF16_BE_BOM"\000W\000i\000t\000h\000 \000B\000O\000M\000\000\000a\000n\000d\000 \000N\000U\000L\000s", "With BOM\0and NULs", TRUE, NULL); TEST(FALSE, UTF16_BE_BOM"\000W\000\355\000t\000h\000 \000B\000\330\000M\000\000\000a\000\361\000d\000 \000N\000\331\000L\000s", "Wíth BØM\0añd NÙLs", TRUE, NULL); TEST(TRUE, UTF32_LE_BOM"W\000\000\000i\000\000\000t\000\000\000h\000\000\000 \000\000\000B\000\000\000O\000\000\000M\000\000\000", "With BOM", TRUE, NULL); TEST(TRUE, UTF32_LE_BOM"W\000\000\000i\000\000\000t\000\000\000h\000\000\000 \000\000\000B\000\000\000\330\000\000\000M\000\000\000", "With BØM", TRUE, NULL); /* doesn't accept the NULs */ TEST(FALSE, UTF32_LE_BOM"W\000\000\000i\000\000\000t\000\000\000h\000\000\000 \000\000\000B\000\000\000O\000\000\000M\000\000\000\000\000\000\000a\000\000\000n\000\000\000d\000\000\000 \000\000\000N\000\000\000U\000\000\000L\000\000\000s\000\000\000", "With BOM\0and NULs", TRUE, NULL); TEST(FALSE, UTF32_LE_BOM"W\000\000\000\355\000\000\000t\000\000\000h\000\000\000 \000\000\000B\000\000\000\330\000\000\000M\000\000\000\000\000\000\000a\000\000\000\361\000\000\000d\000\000\000 \000\000\000N\000\000\000\331\000\000\000L\000\000\000s\000\000\000", "Wíth BØM\0añd NÙLs", TRUE, NULL); TEST(TRUE, UTF32_BE_BOM"\000\000\000W\000\000\000i\000\000\000t\000\000\000h\000\000\000 \000\000\000B\000\000\000O\000\000\000M", "With BOM", TRUE, NULL); TEST(TRUE, UTF32_BE_BOM"\000\000\000W\000\000\000i\000\000\000t\000\000\000h\000\000\000 \000\000\000B\000\000\000\330\000\000\000M", "With BØM", TRUE, NULL); /* doesn't accept the NULs */ TEST(FALSE, UTF32_BE_BOM"\000\000\000W\000\000\000i\000\000\000t\000\000\000h\000\000\000 \000\000\000B\000\000\000O\000\000\000M\000\000\000\000\000\000\000a\000\000\000n\000\000\000d\000\000\000 \000\000\000N\000\000\000U\000\000\000L\000\000\000s", "With BOM\0and NULs", TRUE, NULL); TEST(FALSE, UTF32_BE_BOM"\000\000\000W\000\000\000\355\000\000\000t\000\000\000h\000\000\000 \000\000\000B\000\000\000\330\000\000\000M\000\000\000\000\000\000\000a\000\000\000\361\000\000\000d\000\000\000 \000\000\000N\000\000\000\331\000\000\000L\000\000\000s", "Wíth BØM\0añd NÙLs", TRUE, NULL); /* meh, UTF-7 */ TEST(TRUE, "No B+ANg-M", "No BØM", FALSE, "UTF-7"); TEST(TRUE, "+/v8-With B+ANg-M", "With BØM", TRUE, NULL); TEST(FALSE, "No B+ANg-M+AAA-but NULs", "No BØM\0but NULs", FALSE, "UTF-7"); /* Fails to load as UTF-7 because of the NUL, and succeeds as UTF-8 but * obviously doesn't match expectations */ /*TEST(FALSE, "+/v8-With B+ANg-M+AAA-and NULs", "With BØM\0and NULs", TRUE, NULL);*/ /* empty data with BOMs */ TEST_ENC(TRUE, "+/v8-", "", TRUE, NULL, "UTF-7"); /* UTF-7 */ TEST_ENC(TRUE, UTF16_BE_BOM, "", TRUE, NULL, "UTF-16BE"); TEST_ENC(TRUE, UTF16_LE_BOM, "", TRUE, NULL, "UTF-16LE"); TEST_ENC(TRUE, UTF32_BE_BOM, "", TRUE, NULL, "UTF-32BE"); TEST_ENC(TRUE, UTF32_LE_BOM, "", TRUE, NULL, "UTF-32LE"); #undef TEST #undef TEST_ENC #undef UTF32_BE_BOM #undef UTF32_LE_BOM #undef UTF16_BE_BOM #undef UTF16_LE_BOM } static void test_encodings_convert_iso8859_to_utf8_auto(void) { #define TEST(success, input, output, forced_enc) \ g_assert(success == assert_convert_to_utf8_auto(input, G_N_ELEMENTS(input) - 1, G_N_ELEMENTS(input) - 1, \ forced_enc, output, G_N_ELEMENTS(output) - 1, forced_enc, FALSE, \ strlen(output) != G_N_ELEMENTS(output) - 1)) TEST(TRUE, "Th\xec""s", "Thìs", NULL); TEST(TRUE, "Th\xec""s", "Thìs", "ISO-8859-1"); TEST(TRUE, "Th\xec""s", "Thìs", "ISO-8859-15"); TEST(TRUE, "\xa4""uro", "¤uro", "ISO-8859-1"); TEST(TRUE, "\xa4""uro", "€uro", "ISO-8859-15"); TEST(TRUE, "\xd8""ed", "Řed", "ISO-8859-2"); /* make-believe UTF-8 BOM followed by non-UTF-8 data */ TEST(TRUE, "\xef\xbb\xbf""not B\xd3M", "not BÓM", NULL); TEST(TRUE, "coding:iso-8859-2 \xd8""ed", "coding:iso-8859-2 Řed", NULL); /* with NULs */ TEST(FALSE, "W\xec""th\0z\xe9""r\xf8""s", "Wìth\0zérøs", "ISO-8859-1"); TEST(FALSE, "W\xec""th\0z\xe9""r\xf8""s", "Wìth\0zérøs", "ISO-8859-15"); /* This parses as UTF-16, but that's not really what we'd expect */ /*TEST(FALSE, "W\xec""th\0z\xe9""r\xf8""s", "Wìth\0zérøs", NULL);*/ /* UTF-8 BOM with non-UTF-8 data, we should fallback */ TEST(TRUE, "\xef\xbb\xbfW\xec""th\xf8""ut BOM", "Wìthøut BOM", NULL); #undef TEST } int main(int argc, char **argv) { g_test_init(&argc, &argv, NULL); gtk_init_check(&argc, &argv); main_init_headless(); g_test_add_func("/encodings/ascii/convert_to_utf8_auto", test_encodings_convert_ascii_to_utf8_auto); g_test_add_func("/encodings/utf8/convert_to_utf8_auto", test_encodings_convert_utf8_to_utf8_auto); g_test_add_func("/encodings/utf_other/convert_to_utf_other_auto", test_encodings_convert_utf_other_to_utf8_auto); g_test_add_func("/encodings/iso8859/convert_to_utf8_auto", test_encodings_convert_iso8859_to_utf8_auto); return g_test_run(); } geany-2.1/tests/Makefile.in0000644000175000017500000011775515031717616012636 00000000000000# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ check_PROGRAMS = test_utils$(EXEEXT) test_sidebar$(EXEEXT) \ test_encodings$(EXEEXT) subdir = tests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \ $(top_srcdir)/m4/ax_cxx_compile_stdcxx_17.m4 \ $(top_srcdir)/m4/geany-binreloc.m4 \ $(top_srcdir)/m4/geany-docutils.m4 \ $(top_srcdir)/m4/geany-doxygen.m4 \ $(top_srcdir)/m4/geany-gtk.m4 \ $(top_srcdir)/m4/geany-gtkdoc-header.m4 \ $(top_srcdir)/m4/geany-lib.m4 \ $(top_srcdir)/m4/geany-mac-integration.m4 \ $(top_srcdir)/m4/geany-mingw.m4 \ $(top_srcdir)/m4/geany-plugins.m4 \ $(top_srcdir)/m4/geany-prog-cxx.m4 \ $(top_srcdir)/m4/geany-revision.m4 \ $(top_srcdir)/m4/geany-socket.m4 \ $(top_srcdir)/m4/geany-status.m4 \ $(top_srcdir)/m4/geany-the-force.m4 \ $(top_srcdir)/m4/geany-utils.m4 $(top_srcdir)/m4/geany-vte.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = test_encodings_SOURCES = test_encodings.c test_encodings_OBJECTS = test_encodings.$(OBJEXT) test_encodings_DEPENDENCIES = $(top_builddir)/src/libgeany.la AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = test_sidebar_SOURCES = test_sidebar.c test_sidebar_OBJECTS = test_sidebar.$(OBJEXT) test_sidebar_DEPENDENCIES = $(top_builddir)/src/libgeany.la test_utils_SOURCES = test_utils.c test_utils_OBJECTS = test_utils.$(OBJEXT) test_utils_DEPENDENCIES = $(top_builddir)/src/libgeany.la AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/test_encodings.Po \ ./$(DEPDIR)/test_sidebar.Po ./$(DEPDIR)/test_utils.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = test_encodings.c test_sidebar.c test_utils.c DIST_SOURCES = test_encodings.c test_sidebar.c test_utils.c RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ check recheck distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = { \ $(am__tty_colors_dummy); \ if test "X$(AM_COLOR_TESTS)" = Xno; then \ am__color_tests=no; \ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ am__color_tests=yes; \ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ am__color_tests=yes; \ fi; \ if test $$am__color_tests = yes; then \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ mgn=''; \ brg=''; \ std=''; \ fi; \ } am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* # A command that, given a newline-separated list of test names on the # standard input, print the name of the tests that are to be re-run # upon "make recheck". am__list_recheck_tests = $(AWK) '{ \ recheck = 1; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ { \ if ((getline line2 < ($$0 ".log")) < 0) \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ { \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ { \ break; \ } \ }; \ if (recheck) \ print $$0; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # A command that, given a newline-separated list of test names on the # standard input, create the global log from their .trs and .log files. am__create_global_log = $(AWK) ' \ function fatal(msg) \ { \ print "fatal: making $@: " msg | "cat >&2"; \ exit 1; \ } \ function rst_section(header) \ { \ print header; \ len = length(header); \ for (i = 1; i <= len; i = i + 1) \ printf "="; \ printf "\n\n"; \ } \ { \ copy_in_global_log = 1; \ global_test_result = "RUN"; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".trs"); \ if (line ~ /$(am__global_test_result_rx)/) \ { \ sub("$(am__global_test_result_rx)", "", line); \ sub("[ ]*$$", "", line); \ global_test_result = line; \ } \ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ copy_in_global_log = 0; \ }; \ if (copy_in_global_log) \ { \ rst_section(global_test_result ": " $$0); \ while ((rc = (getline line < ($$0 ".log"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".log"); \ print line; \ }; \ printf "\n"; \ }; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # Restructured Text title. am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } # Solaris 10 'make', and several other traditional 'make' implementations, # pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it # by disabling -e (using the XSI extension "set +e") if it's set. am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the # directory for the log if needed. Stores in $dir the directory # containing $f, in $tst the test, in $log the log. Executes the # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and # passes TESTS_ENVIRONMENT. Set up options for the wrapper that # will run the test scripts (or their associated LOG_COMPILER, if # thy have one). am__check_pre = \ $(am__sh_e_setup); \ $(am__vpath_adj_setup) $(am__vpath_adj) \ $(am__tty_colors); \ srcdir=$(srcdir); export srcdir; \ case "$@" in \ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ *) am__odir=.;; \ esac; \ test "x$$am__odir" = x"." || test -d "$$am__odir" \ || $(MKDIR_P) "$$am__odir" || exit $$?; \ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ am__enable_hard_errors=yes; \ fi; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ am__expect_failure=yes;; \ *) \ am__expect_failure=no;; \ esac; \ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) # A shell command to get the names of the tests scripts with any registered # extension removed (i.e., equivalently, the names of the test logs, with # the '.log' extension removed). The result is saved in the shell variable # '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", # since that might cause problem with VPATH rewrites for suffix-less tests. # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' RECHECK_LOGS = $(TEST_LOGS) TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) am__set_b = \ case '$@' in \ */*) \ case '$*' in \ */*) b='$*';; \ *) b=`echo '$@' | sed 's/\.log$$//'`; \ esac;; \ *) \ b='$*';; \ esac am__test_logs1 = $(TESTS:=.log) am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) TEST_LOGS = $(am__test_logs2:.test.log=.log) TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/build-aux/depcomp \ $(top_srcdir)/build-aux/test-driver DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" pkgdatadir = @pkgdatadir@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPENDENCIES = @DEPENDENCIES@ DLLTOOL = @DLLTOOL@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FILECMD = @FILECMD@ GEANY_DATA_DIR = @GEANY_DATA_DIR@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GTK_VERSION = @GTK_VERSION@ HAVE_CXX17 = @HAVE_CXX17@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGEANY_CFLAGS = @LIBGEANY_CFLAGS@ LIBGEANY_EXPORT_CFLAGS = @LIBGEANY_EXPORT_CFLAGS@ LIBGEANY_LDFLAGS = @LIBGEANY_LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAC_INTEGRATION_CFLAGS = @MAC_INTEGRATION_CFLAGS@ MAC_INTEGRATION_LIBS = @MAC_INTEGRATION_LIBS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PYTHON = @PYTHON@ PYTHON_COMMAND = @PYTHON_COMMAND@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ RST2HTML = @RST2HTML@ RST2PDF = @RST2PDF@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SORT = @SORT@ STRIP = @STRIP@ UNIQ = @UNIQ@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = ctags AM_CPPFLAGS = -DGTK -DGEANY_PRIVATE -DG_LOG_DOMAIN=\""Geany"\" \ -I$(top_srcdir)/scintilla/include \ -I$(top_srcdir)/scintilla/lexilla/include \ -I$(top_srcdir)/src/tagmanager -I$(top_srcdir)/src AM_CFLAGS = $(GTK_CFLAGS) AM_LDFLAGS = $(GTK_LIBS) $(INTLLIBS) -no-install test_utils_LDADD = $(top_builddir)/src/libgeany.la test_sidebar_LDADD = $(top_builddir)/src/libgeany.la test_encodings_LDADD = $(top_builddir)/src/libgeany.la TESTS = $(check_PROGRAMS) all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu tests/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list test_encodings$(EXEEXT): $(test_encodings_OBJECTS) $(test_encodings_DEPENDENCIES) $(EXTRA_test_encodings_DEPENDENCIES) @rm -f test_encodings$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_encodings_OBJECTS) $(test_encodings_LDADD) $(LIBS) test_sidebar$(EXEEXT): $(test_sidebar_OBJECTS) $(test_sidebar_DEPENDENCIES) $(EXTRA_test_sidebar_DEPENDENCIES) @rm -f test_sidebar$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_sidebar_OBJECTS) $(test_sidebar_LDADD) $(LIBS) test_utils$(EXEEXT): $(test_utils_OBJECTS) $(test_utils_DEPENDENCIES) $(EXTRA_test_utils_DEPENDENCIES) @rm -f test_utils$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_utils_OBJECTS) $(test_utils_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_encodings.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_sidebar.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_utils.Po@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags # Recover from deleted '.trs' file; this should ensure that # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create # both 'foo.log' and 'foo.trs'. Break the recipe in two subshells # to avoid problems with "make -n". .log.trs: rm -f $< $@ $(MAKE) $(AM_MAKEFLAGS) $< # Leading 'am--fnord' is there to ensure the list of targets does not # expand to empty, as could happen e.g. with make check TESTS=''. am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ redo_bases=`for i in $$bases; do \ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ done`; \ if test -n "$$redo_bases"; then \ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ if $(am__make_dryrun); then :; else \ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ fi; \ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ elif test -n "$$redo_logs"; then \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ st=0; \ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ for i in $$redo_bases; do \ test -f $$i.trs && test -r $$i.trs \ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ test -f $$i.log && test -r $$i.log \ || { echo "$$errmsg $$i.log" >&2; st=1; }; \ done; \ test $$st -eq 0 || exit 1; \ fi @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ ws='[ ]'; \ results=`for b in $$bases; do echo $$b.trs; done`; \ test -n "$$results" || results=/dev/null; \ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ if test `expr $$fail + $$xpass + $$error` -eq 0; then \ success=true; \ else \ success=false; \ fi; \ br='==================='; br=$$br$$br$$br$$br; \ result_count () \ { \ if test x"$$1" = x"--maybe-color"; then \ maybe_colorize=yes; \ elif test x"$$1" = x"--no-color"; then \ maybe_colorize=no; \ else \ echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ shift; \ desc=$$1 count=$$2; \ if test $$maybe_colorize = yes && test $$count -gt 0; then \ color_start=$$3 color_end=$$std; \ else \ color_start= color_end=; \ fi; \ echo "$${color_start}# $$desc $$count$${color_end}"; \ }; \ create_testsuite_report () \ { \ result_count $$1 "TOTAL:" $$all "$$brg"; \ result_count $$1 "PASS: " $$pass "$$grn"; \ result_count $$1 "SKIP: " $$skip "$$blu"; \ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ result_count $$1 "FAIL: " $$fail "$$red"; \ result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for b in $$bases; do echo $$b; done \ | $(am__create_global_log); \ } >$(TEST_SUITE_LOG).tmp || exit 1; \ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ if $$success; then \ col="$$grn"; \ else \ col="$$red"; \ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ if test -n "$(PACKAGE_BUGREPORT)"; then \ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: $(check_PROGRAMS) @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ trs_list=`for i in $$bases; do echo $$i.trs; done`; \ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all $(check_PROGRAMS) @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ log_list=`for i in $$bases; do echo $$i.log; done`; \ log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? test_utils.log: test_utils$(EXEEXT) @p='test_utils$(EXEEXT)'; \ b='test_utils'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test_sidebar.log: test_sidebar$(EXEEXT) @p='test_sidebar$(EXEEXT)'; \ b='test_sidebar'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test_encodings.log: test_encodings$(EXEEXT) @p='test_encodings$(EXEEXT)'; \ b='test_encodings'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) .test.log: @p='$<'; \ $(am__set_b); \ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) @am__EXEEXT_TRUE@.test$(EXEEXT).log: @am__EXEEXT_TRUE@ @p='$<'; \ @am__EXEEXT_TRUE@ $(am__set_b); \ @am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ mostlyclean-am distclean: distclean-recursive -rm -f ./$(DEPDIR)/test_encodings.Po -rm -f ./$(DEPDIR)/test_sidebar.Po -rm -f ./$(DEPDIR)/test_utils.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/test_encodings.Po -rm -f ./$(DEPDIR)/test_sidebar.Po -rm -f ./$(DEPDIR)/test_utils.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) check-am install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--depfiles check check-TESTS check-am clean \ clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ recheck tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: geany-2.1/tests/Makefile.am0000644000175000017500000000105615031717571012607 00000000000000 SUBDIRS = ctags AM_CPPFLAGS = -DGTK -DGEANY_PRIVATE -DG_LOG_DOMAIN=\""Geany"\" AM_CPPFLAGS += -I$(top_srcdir)/scintilla/include -I$(top_srcdir)/scintilla/lexilla/include AM_CPPFLAGS += -I$(top_srcdir)/src/tagmanager -I$(top_srcdir)/src AM_CFLAGS = $(GTK_CFLAGS) AM_LDFLAGS = $(GTK_LIBS) $(INTLLIBS) -no-install check_PROGRAMS = test_utils test_sidebar test_encodings test_utils_LDADD = $(top_builddir)/src/libgeany.la test_sidebar_LDADD = $(top_builddir)/src/libgeany.la test_encodings_LDADD = $(top_builddir)/src/libgeany.la TESTS = $(check_PROGRAMS) geany-2.1/doc/0000755000175000017500000000000015032474726010237 500000000000000geany-2.1/doc/stash-gui-example.c0000644000175000017500000000243415031717571013660 00000000000000gboolean want_handle; StashGroup *group = ...; /* Add the stash setting first so we can load it from disk if we want. * Effectively, stash_group_add_boolean() is called for you. * We need to use either a widget pointer or a widget name, and as we * haven't created the widget yet we'll use a name - check_handle. */ stash_group_add_toggle_button(group, &want_handle, "handle", TRUE, "check_handle"); /* here we could load the setting from disk */ ... /* Later we create a dialog holding the toggle button widget. * (Note: a check button is a subclass of a toggle button). */ GtkWidget *dialog = ...; GtkWidget *check_button = gtk_check_button_new_with_label(_("Handle")); /* pack the widget into the dialog */ gtk_container_add(GTK_CONTAINER(dialog->vbox), check_button); /* Now we set a name to lookup the widget from the dialog. * We must remember to pass 'dialog' as an argument to Stash later. */ ui_hookup_widget(dialog, check_button, "check_handle"); ... /* At some point we want to display the dialog. * First we apply the want_handle boolean variable to the widget */ stash_group_display(group, dialog); /* now display the dialog */ gtk_widget_show_all(dialog); /* let the user manipulate widgets */ ... /* Now synchronize the want_handle variable */ stash_group_update(group, dialog); geany-2.1/doc/stash-example.c0000644000175000017500000000153715031717571013101 00000000000000StashGroup *group; gboolean porcelain_enabled; gchar *potter_name; gint stock; gdouble price; const gchar filename[] = "/path/data.conf"; /* setup the group */ group = stash_group_new("cup"); stash_group_add_boolean(group, &porcelain_enabled, "porcelain", TRUE); stash_group_add_string(group, &potter_name, "potter_name", "Miss Clay"); stash_group_add_integer(group, &stock, "stock", 5); stash_group_add_double(group, &price, "price", 1.50); /* load the settings from a file */ if (!stash_group_load_from_file(group, filename)) g_warning(_("Could not load keyfile %s!"), filename); /* now use settings porcelain_enabled, potter_name, stock, and price */ /* ... */ /* save settings to file */ if (stash_group_save_to_file(group, filename, G_KEY_FILE_NONE) != 0) g_error(_("Could not save keyfile %s!"), filename); /* free memory */ stash_group_free(group); geany-2.1/doc/pluginsymbols.c0000644000175000017500000001213215031717571013226 00000000000000/* * pluginsymbols.c - this file is part of Geany, a fast and lightweight IDE * * Copyright 2008 The Geany contributors * * 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 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 General Public License for more details. * * You should have received a copy of the GNU 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. */ /* Note: this file is for Doxygen only. */ /** * @file pluginsymbols.c * Symbols declared from within plugins, all of this is deprecated. * * @deprecated This is the legacy way of making plugins for Geany. Refer to @ref howto for the * reworked process and @ref legacy to learn how to port your plugin to that new world. * Meanwhile Geany will still load plugins programmed against this interface (even the items that * are marked deprecated individually such as @ref plugin_fields). * * Geany looks for these symbols (arrays, pointers and functions) when initializing * plugins. Some of them are optional, i.e. they can be omitted; others are required * and must be defined. Some symbols should only be declared using specific macros in * @link plugindata.h @endlink. */ /** Use the PLUGIN_VERSION_CHECK() macro instead. Required by Geany. * * @param abi ABI version Geany was compiled with * @return The API version the plugin was compiled with, or -1 if the plugin is incompatible. */ gint plugin_version_check(gint abi); /** Use the PLUGIN_SET_INFO() macro to define it. Required by Geany. * This function is called before the plugin is initialized, so Geany * can read the plugin's name. * @param info The data struct which should be initialized by this function. */ void plugin_set_info(PluginInfo *info); /** Basic information about a plugin, which is set in plugin_set_info(). * @deprecated Use @ref GeanyPlugin.info instead.*/ const PluginInfo *plugin_info; /** Basic information for the plugin and identification. */ const GeanyPlugin *geany_plugin; /** Geany owned data pointers. * Example: @c assert(geany_data->app->configdir != NULL); */ const GeanyData *geany_data; /** Geany owned function pointers, split into groups. * Example: @code #include "geanyfunctions.h" * ... * document_new_file(NULL, NULL, NULL); @endcode * This is equivalent of @c geany_functions->p_document->document_new_file(NULL, NULL, NULL); */ const GeanyFunctions *geany_functions; /** Plugin owned fields, including flags. * @deprecated Use @ref ui_add_document_sensitive() instead.*/ PluginFields *plugin_fields; /** An array for connecting GeanyObject events, which should be terminated with * @c {NULL, NULL, FALSE, NULL}. See @link pluginsignals.c Signal documentation @endlink. * @see plugin_signal_connect(). */ PluginCallback plugin_callbacks[]; /** Plugins must use the PLUGIN_KEY_GROUP() macro to define it. * To setup a variable number of keybindings, e.g. based on the * plugin's configuration file settings, use plugin_set_key_group() instead. */ KeyBindingGroup *plugin_key_group; /** Called before showing the plugin preferences dialog for multiple plugins. * Can be omitted when not needed. * The dialog will show all plugins that support this symbol together. * @param dialog The plugin preferences dialog widget - this should only be used to * connect the @c "response" signal. If settings should be read from the dialog, the * response will be either @c GTK_RESPONSE_OK or @c GTK_RESPONSE_APPLY. * * @return @transfer{floating} A container widget holding preference widgets. * * @note Using @link stash.h Stash @endlink can make implementing preferences easier. * @see plugin_configure_single(). */ GtkWidget *plugin_configure(GtkDialog *dialog); /** Called when a plugin should show a preferences dialog, if plugin_configure() has not been * implemented. * @warning It's better to implement plugin_configure() instead, but this is simpler. * This does not integrate as well with the multiple-plugin dialog. * @param parent Pass this as the parent widget if showing a dialog. * @see plugin_configure(). */ void plugin_configure_single(GtkWidget *parent); /** Called after loading the plugin. * @param data The same as #geany_data. */ void plugin_init(GeanyData *data); /** Called before unloading the plugin. Required for normal plugins - it should undo * everything done in plugin_init() - e.g. destroy menu items, free memory. */ void plugin_cleanup(); /** Called whenever the plugin should show its documentation (if any). This may open a dialog, * a browser with a website or a local installed HTML help file (see utils_open_browser()) * or something else. * Can be omitted when not needed. */ void plugin_help(); geany-2.1/doc/pluginsignals.c0000644000175000017500000003043715031717571013206 00000000000000/* * pluginsignals.c - this file is part of Geany, a fast and lightweight IDE * * Copyright 2008 The Geany contributors * * 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 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 General Public License for more details. * * You should have received a copy of the GNU 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. */ /* Note: this file is for Doxygen only. */ /** * @file pluginsignals.c * Plugin Signals * * * @section Usage * * To use plugin signals in Geany, you have two options: * * -# Create a PluginCallback array with the @ref plugin_callbacks symbol. List the signals * you want to listen to and create the appropriate signal callbacks for each signal. * The callback array is read @a after plugin_init() has been called. * -# Use plugin_signal_connect(), which can be called at any time and can also connect * to non-Geany signals (such as GTK widget signals). * * This page lists the signal prototypes, but you connect to them using the * string name (which by convention uses @c - hyphens instead of @c _ underscores). * * E.g. @c "document-open" for @ref document_open. * * The following code demonstrates how to use signals in Geany plugins. The code can be inserted * in your plugin code at any desired position. * * @code static void on_document_open(GObject *obj, GeanyDocument *doc, gpointer user_data) { printf("Example: %s was opened\n", DOC_FILENAME(doc)); } PluginCallback plugin_callbacks[] = { { "document-open", (GCallback) &on_document_open, FALSE, NULL }, { NULL, NULL, FALSE, NULL } }; * @endcode * @note The PluginCallback array has to be ended with a final @c NULL entry. */ /** Sent when a new document is created. * * @param obj a GeanyObject instance, should be ignored. * @param doc the new document. * @param user_data user data. */ signal void (*document_new)(GObject *obj, GeanyDocument *doc, gpointer user_data); /** Sent when a new document is opened. * * @param obj a GeanyObject instance, should be ignored. * @param doc the opened document. * @param user_data user data. */ signal void (*document_open)(GObject *obj, GeanyDocument *doc, gpointer user_data); /** Sent when an existing document is reloaded. * * @param obj a GeanyObject instance, should be ignored. * @param doc the re-opened document. * @param user_data user data. * * @since 0.21 */ signal void (*document_reload)(GObject *obj, GeanyDocument *doc, gpointer user_data); /** Sent before a document is saved. * * @param obj a GeanyObject instance, should be ignored. * @param doc the document to be saved. * @param user_data user data. */ signal void (*document_before_save)(GObject *obj, GeanyDocument *doc, gpointer user_data); /** Sent before save as is performed with the original document. * * @param obj a GeanyObject instance, should be ignored. * @param doc the original document. The document with the new file name is still * reported by the "document-save" signal sent afterwards. * @param user_data user data. * * @since 2.1 */ signal void (*document_before_save_as)(GObject *obj, GeanyDocument *doc, gpointer user_data); /** Sent when a new document is saved. * * @param obj a GeanyObject instance, should be ignored. * @param doc the saved document. * @param user_data user data. */ signal void (*document_save)(GObject *obj, GeanyDocument *doc, gpointer user_data); /** Sent after the filetype of a document has been changed. * * The previous filetype object is passed but it can be NULL (e.g. at startup). * The new filetype can be read with: @code * GeanyFiletype *ft = doc->file_type; * @endcode * * @param obj a GeanyObject instance, should be ignored. * @param doc the saved document. * @param filetype_old the previous filetype of the document. * @param user_data user data. */ signal void (*document_filetype_set)(GObject *obj, GeanyDocument *doc, GeanyFiletype *filetype_old, gpointer user_data); /** Sent when switching notebook pages. * * @param obj a GeanyObject instance, should be ignored. * @param doc the current document. * @param user_data user data. */ signal void (*document_activate)(GObject *obj, GeanyDocument *doc, gpointer user_data); /** Sent before closing a document. * * @param obj a GeanyObject instance, should be ignored. * @param doc the document about to be closed. * @param user_data user data. */ signal void (*document_close)(GObject *obj, GeanyDocument *doc, gpointer user_data); /** Sent after a project is opened but before session files are loaded. * * @param obj a GeanyObject instance, should be ignored. * @param config an existing GKeyFile object which can be used to read and write data. * It must not be closed or freed. * @param user_data user data. */ signal void (*project_open)(GObject *obj, GKeyFile *config, gpointer user_data); /** Sent when a project is saved (happens when the project is created, the properties * dialog is closed, before the project is closed, when Geany automatically * saves its configuration by opening/closing documents or when Geany is exited). * This signal is emitted shortly before Geany will write the contents of the * GKeyFile to the disc. * * @param obj a GeanyObject instance, should be ignored. * @param config an existing GKeyFile object which can be used to read and write data. * It must not be closed or freed. * @param user_data user data. */ signal void (*project_save)(GObject *obj, GKeyFile *config, gpointer user_data); /** Sent after a project is closed. * * @param obj a GeanyObject instance, should be ignored. * @param user_data user data. */ signal void (*project_close)(GObject *obj, gpointer user_data); /** Sent before a project is closed. * * @param obj a GeanyObject instance, should be ignored. * @param user_data user data. * * @since 1.29 (API 230) */ signal void (*project_before_close)(GObject *obj, gpointer user_data); /** Sent after a project dialog is opened but before it is displayed. Plugins * can append their own project settings tabs by using this signal. * * @param obj a GeanyObject instance, should be ignored. * @param notebook a GtkNotebook instance that can be used by plugins to append their * settings tabs. * @param user_data user data. */ signal void (*project_dialog_open)(GObject *obj, GtkWidget *notebook, gpointer user_data); /** Sent when the settings dialog is confirmed by the user. Plugins can use * this signal to read the settings widgets previously added by using the * @c project-dialog-open signal. * * @warning The dialog will still be running afterwards if the user chose 'Apply'. * @param obj a GeanyObject instance, should be ignored. * @param notebook a GtkNotebook instance that can be used by plugins to read their * settings widgets. * @param user_data user data. */ signal void (*project_dialog_confirmed)(GObject *obj, GtkWidget *notebook, gpointer user_data); /** Sent before project dialog is closed. By using this signal, plugins can remove * tabs previously added in project-dialog-open signal handler. * * @param obj a GeanyObject instance, should be ignored. * @param notebook a GtkNotebook instance that can be used by plugins to remove * settings tabs previously added in the project-dialog-open signal handler. * @param user_data user data. */ signal void (*project_dialog_close)(GObject *obj, GtkWidget *notebook, gpointer user_data); /** Sent once Geany has finished all initialization and startup tasks and the GUI has been * realized. This signal is the very last step in the startup process and is sent once * the GTK main event loop has been entered. * * @param obj a GeanyObject instance, should be ignored. * @param user_data user data. */ signal void (*geany_startup_complete)(GObject *obj, gpointer user_data); /** Sent immediately after Geany is informed about user action leading to the Geany * process termination. This signal is emitted before any actual tasks that happen * during Geany shutdown such as project or file closing, plugin unload, widget * destruction, etc. * * @param obj a GeanyObject instance, should be ignored. * @param user_data user data. * * @since 2.1 */ signal void (*geany_before_quit)(GObject *obj, gpointer user_data); /** Sent before build is started. A plugin could use this signal e.g. to save all unsaved documents * before the build starts. * * @param obj a GeanyObject instance, should be ignored. * @param user_data user data. */ signal void (*build_start)(GObject *obj, gpointer user_data); /** Sent before the popup menu of the editing widget is shown. This can be used to modify or extend * the popup menu. * * @note You can add menu items from @c plugin_init() using @c geany->main_widgets->editor_menu, * remembering to destroy them in @c plugin_cleanup(). * * @param obj a GeanyObject instance, should be ignored. * @param word the current word (in UTF-8 encoding) below the cursor position * where the popup menu will be opened. * @param pos the cursor position where the popup will be opened. * @param doc the current document. * @param user_data user data. */ signal void (*update_editor_menu)(GObject *obj, const gchar *word, gint pos, GeanyDocument *doc, gpointer user_data); /** Sent whenever something in the editor widget changes. * * E.g. Character added, fold level changes, clicks to the line number margin. * A detailed description of possible notifications and the SCNotification can be found at * https://www.scintilla.org/ScintillaDoc.html#Notifications. * * If you connect to this signal, you must check @c nt->nmhdr.code for the notification type * to prevent handling unwanted notifications. This is important because for instance SCN_UPDATEUI * is sent very often whereas you probably don't want to handle this notification. * * By default, the signal is sent before Geany's default handler is processing the event. * Your callback function should return FALSE to allow Geany processing the event as well. If you * want to prevent this for some reason, return TRUE. * Please use this with care as it can break basic functionality of Geany. * * The signal can be sent after Geany's default handler has been run when you set * PluginCallback::after field to TRUE. * * An example callback implementation of this signal can be found in the Demo plugin. * * @warning This signal has much power and should be used carefully. You should especially * care about the return value; make sure to return TRUE only if it is necessary * and in the correct situations. * * @param obj a GeanyObject instance, should be ignored. * @param editor The current GeanyEditor. * @param nt A pointer to the SCNotification struct which holds additional information for * the event. * @param user_data user data. * @return @c TRUE to stop other handlers from being invoked for the event. * @c FALSE to propagate the event further. * * @since 0.16 */ signal gboolean (*editor_notify)(GObject *obj, GeanyEditor *editor, SCNotification *nt, gpointer user_data); /** Sent whenever a key is pressed. * * This signal allows plugins to receive key press events before they are processed * by Geany. Plugins can then process key presses before Geany and decide, * whether Geany should receive the key press event or not. * * @warning This signal should be used carefully. If multiple plugins use this * signal, the result could be unpredictble depending on which plugin * receives the signal first. * * @param obj a GeanyObject instance, should be ignored. * @param key The GdkEventKey corresponding to the key press. * @param user_data user data. * @return @c TRUE to stop other handlers from being invoked for the event. * @c FALSE to propagate the event further. * * @since 1.34 */ signal gboolean (*key_press)(GObject *obj, GdkEventKey *key, gpointer user_data); geany-2.1/doc/plugins.dox0000644000175000017500000014720415031717571012361 00000000000000/* * plugins.dox - this file is part of Geany, a fast and lightweight IDE * * Copyright 2008 The Geany contributors * * 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 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 General Public License for more details. * * You should have received a copy of the GNU 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. * * This file contains additional plugin documentation like the signal system * and a small howto. It is best viewed when filetype is set to C or C++. */ /** @mainpage Geany Plugin API Documentation @author Enrico Tröger, Nick Treleaven, Frank Lanitz, Matthew Brush @section Intro This is the Geany API documentation. It should be considered work in progress. We will try to document as many functions and structs as possible. @warning Do not use any symbol not in the documentation - it may change. @warning Except for exceptions stated in the documentation for geany_load_module(), no API function may be called if the plugin is not enabled (between the calls to their GeanyFuncs::init and GeanyFuncs::cleanup functions). @section pluginsupport Plugin Support - @link howto Plugin HowTo @endlink - get started - @ref proxy - @ref plugin_extension - @ref legacy - @link plugindata.h Plugin Datatypes and Macros @endlink - @link pluginsignals.c Plugin Signals @endlink - @link pluginutils.h Plugin Utility Functions @endlink - @link guidelines Plugin Writing Guidelines @endlink - plugins/demoplugin.c - in Geany's source, bigger than the howto example @section common Common API files - @link dialogs.h @endlink - @link document.h @endlink - @link editor.h @endlink - @link filetypes.h @endlink - @link keybindings.h @endlink - @link msgwindow.h @endlink - @link pluginextension.h @endlink - @link project.h @endlink - @link sciwrappers.h Scintilla Wrapper Functions @endlink - @link spawn.h Spawning programs @endlink - @link stash.h Stash Pref/Setting Functions @endlink - @link utils.h General Utility Functions @endlink - @link ui_utils.h Widget Utility Functions @endlink @section More - All API functions and types - see Files link at the top - Deprecated symbols - see Related Pages link at the top @note See the HACKING file for information about developing the plugin API and other useful notes. @page guidelines Plugin Writing Guidelines @section intro_guidelines Introduction The following hints and guidelines are only recommendations. Nobody is forced to follow them at all. @section general General notes @subsection ideas Getting a plugin idea If you want to write a plugin but don't know yet what it should do, have a look at https://www.geany.org/Support/PluginWishlist to get an idea about what users wish. @subsection code Managing the source code For authors of plugins for Geany, we created a dedicated @a geany-plugins project on Sourceforge and GitHub to ease development of plugins and help new authors. All information about this project you can find at https://plugins.geany.org/ To add a new plugin to this project, get in touch with the people on the geany-devel-mailing list and create a fork of the geany-plugins project at https://github.com/geany/geany-plugins. Beside of adding a new plugin, geany-devel-mailing list is also the place to discuss development related questions. However, once you have done your fork of geany-plugins you can develop your plugin until you think it is the right time to publish it. At this point, create a pull request for adding your patch set into the master branch of the main geany-plugins repository. Of course, you don't need to use GitHub - any Git is fine. But GitHub is making it way easier for review, merging and get in touch with you for comments. If you don't want your plugin to be part of the geany-plugins project it is also fine. Just skip the part about forking geany-plugins and sending a pull request. In this case it is of course also a good idea to post some kind of announcement to geany-devel and maybe to the main geany mailing list -- it's up to you. You can also ask for your plugin to be listed on the https://plugins.geany.org/ website as a third party plugin, helping Geany user to know about your plugin. At time of writing, there are some plugins already available in the repositories. Feel free to use any of these plugins as a start for your own, maybe by copying the directory structure and the autotools files (Makefile.am, configure.in, ...). Most of the available plugins are also ready for i18n support, just for reference. We encourage authors using this service to only commit changes to their own plugin and not to others' plugins. Instead just send patches to geany-devel at uvena.de or the plugin author directly. @section paths Installation paths - The plugin binary (@c pluginname.so) should be installed in Geany's libdir. This is necessary so that Geany can find the plugin. An easy way to retrieve Geany's libdir is to use the pkg-config tool, e.g. @code `$PKG_CONFIG --variable=libdir geany`/ geany @endcode - If your plugin creates other binary files like helper programs or helper libraries, they should go into @c $prefix/bin (for programs, ideally prefixed with @a geany), additional libraries should be installed in Geany's libdir, maybe in a subdirectory. - Plugins should install their documentation files (README, NEWS, ChangeLog, licences and other documentation files) into the common documentation directory @c $prefix/share/doc/geany-plugins/$pluginname/ - Translation files should be installed normally into @c $prefix/share/locale. There is no need to use Geany's translation directory. To set up translation support properly and for additional information, see main_locale_init(). - Do @a never install anything into a user's home directory like installing the plugin binary in @c ~/.config/geany/plugins/. @page howto Plugin HowTo @section intro_howto Introduction Since Geany 0.12 there is a plugin interface to extend Geany's functionality and add new features. This document gives a brief overview about how to add new plugins by writing a simple "Hello World" plugin in C or C++. @section buildenv Build environment To be able to write plugins for Geany, you need the source code and some development packages for GTK and its dependencies. The following will only describe the way to compile and build plugins on Unix-like systems [1]. If you already have the Geany source code and compiled it from them, you can skip the following. First you need to have Geany installed. Then install the development files for GTK and its dependencies. The easiest way to do this is to use your distribution's package management system, e.g. on Debian and Ubuntu systems you can use @code apt-get install libgtk-3-dev autoconf automake autopoint gettext @endcode This will install all necessary files to be able to compile plugins for Geany. On other distributions, the package names and commands to use may differ. Basically, you are done at this point and could continue with writing the plugin code. [1] For Windows, it is basically the same but you might have some more work on setting up the general build environment (compiler, GTK development files, ...). This is described on Geany's website at https://www.geany.org/Support/BuildingOnWin32. @section helloworld "Hello World" @note This section describes the new entry points for plugins introduced with Geany 1.26. A short summary of the legacy entry points is given at page @ref legacy but they are deprecated should not be used any more. When writing a plugin you will find a couple of functions which are mandatory and some which can be implemented optionally for implementing some useful features once your plugin becomes more powerful. For example to provide a configuration or help dialog. @subsection beginning First steps for any Plugin You should start your plugin with including and exporting a function named @a geany_load_module(). In this function you must fill in basic information that Geany uses to learn more about your plugin and present it to the user. You also must define some hooks that enable Geany to actually execute your code. Please also do not forget about license headers which are by convention at the start of source files. You can use templates provided by Geany to get started. Without a proper license it will be difficult for packagers to pick up and distribute your plugin. As mentioned above, start with the very fundamental header that gets you all goodies of Geany's plugin API. @a geanyplugin.h includes all of the Geany API and also the necessary GTK header files so there is no need to include @a gtk/gtk.h yourself. In fact it includes a utility header that helps supporting GTK+2 and GTK+3 in the same source. @code #include @endcode @note If you use autoconf then config.h must be included even before that as usual. Now you can go on and write your first lines for your new plugin. As mentioned before, you will need to implement a couple of functions. The first mandatory one is @a geany_load_module(). Geany uses the presence of this function to identify a library as a plugin. When Geany scans the pre-defined and user-configured plugin directories, it will take a look at each shared library (or DLL on Windows) to see if it exports a @a geany_load_module() symbol. Files lacking these will be ignored. The second mandatory one is an initialization function that is only called when the plugin becomes actually enabled (by the user or at startup). @subsection register Registering a Plugin Geany will always invoke this geany_load_module(), regardless of whether the user activates your plugin. In fact its purpose to probe if the plugin should even be presented to the user. Therefore you must use this function to register your plugin. Geany will pass a pointer to a GeanyPlugin instance which acts as a unique handle to your plugin. Use this pointer for registering and later API calls. It won't change for the life time of the plugin. Registering the plugin consists of a number of steps: 1. Filling in GeanyPlugin::info with metadata that is shown to the user. - @ref PluginInfo::name : The name of your plugin - @ref PluginInfo::description : A brief description. - @ref PluginInfo::version : The plugin's version. - @ref PluginInfo::author : Your contact information, preferably in the form "Name ". . Filling in all of them is recommended to provide the best user experience, but only the name is truly mandatory. Since all of the strings are shown to the user they should be human readable. 2. Filling in GeanyPlugin::funcs with function pointers that are called by Geany. - @ref GeanyPluginFuncs::init : an initialization function - @ref GeanyPluginFuncs::cleanup : a finalization function - @ref GeanyPluginFuncs::configure : a function that provides configuration (optional) - @ref GeanyPluginFuncs::help : a function that provides help (optional) - @ref GeanyPluginFuncs::callbacks : a pointer to an array of PluginCallback (optional). . @a init and @a cleanup are mandatory, the other ones depend on how advanced your plugin is. Furthermore, @a init is called on startup and when the user activates your plugin in the Plugin Manager, and @a cleanup is called on exit and when the user deactivates it. So use these to do advanced initialization and teardown as to not waste resources when the plugin is not even enabled. 3. Actually registering by calling GEANY_PLUGIN_REGISTER() or GEANY_PLUGIN_REGISTER_FULL(). - Usually you should use GEANY_PLUGIN_REGISTER() to register your plugin, passing the GeanyPlugin pointer that you received and filled out as above. GEANY_PLUGIN_REGISTER() also takes the minimum API version number you want to support (see @ref versions for details). Please also check the return value. Geany may refuse to load your plugin due to incompatibilities, you should then abort any extra setup. GEANY_PLUGIN_REGISTER() is a macro wrapping geany_plugin_register() which takes additional the API and ABI that you should not pass manually. - If you require a plugin-specific context or state to be passed to your GeanyPlugin::funcs then use GEANY_PLUGIN_REGISTER_FULL() to register. This one takes additional parameters for adding user data to your plugin. That user data pointer is subsequently passed back to your functions. It allows, for example, to set instance pointer to objects in case your plugin isn't written in pure C, enabling you to use member functions as plugin functions. You may also set such data later on, for example in your @ref GeanyPluginFuncs::init routine to defer costly allocations to when the plugin is actually activated by the user. However, you then have to call geany_plugin_set_data(). @subsection versions On API and ABI Versions As previously mentioned @a geany_plugin_register() takes a number of versions as arguments: 1. api_version 2. min_api_version 3. abi_version These refer to Geany's versioning scheme to manage plugin compatibility. The following rules apply: - Plugins are compiled against a specific Geany version on the build machine. This version of Geany has specific ABI and API versions, which will be compiled into the plugin. Both are managed automatically, by calling GEANY_PLUGIN_REGISTER(). - The Geany version that loads the plugin may be different, possibly even have different API and ABI versions. - The ABI version is the primary plugin compatibility criteria. The ABI version of the running Geany and the one that's compiled into the plugin must match exactly (==). In case of mismatch, the affected plugins need to be recompiled (generally without source code changes) against the running Geany. The ABI is usually stable even across multiple releases of Geany. - The API version is secondary. It doesn't have to match exactly, however a plugin can report a minimum API version that it requires to run. Geany will check if its own API is larger than that (>=) and will otherwise refuse to load the plugin. The API version is incremented when functions or variables are added to the API which often happens more than once within a release cycle. - The API version the plugin is compiled against is still relevant for enabling compatibility code inside Geany (for cases where incrementing the ABI version could be avoided). Instead of calling geany_plugin_register() directly it is very highly recommended to use GEANY_PLUGIN_REGISTER(). This is a convenient way to pass Geany's current API and ABI versions without requiring future code changes whenever either one changes. In fact, the promise that plugins need to be just recompiled on ABI change can hold if the plugins use this macro. You still want to pass the API version needed at minimum to run your plugin. The value is defined in plugindata.h by @ref GEANY_API_VERSION. In most cases this should be your minimum. Nevertheless when setting this value, you should choose the lowest possible version here to make the plugin compatible with a bigger number of versions of Geany. The absolute minimum is 225 which introduced the new plugin entry points. To increase your flexibility the API version of the running Geany is passed to geany_load_module(). You can use this information to toggle API-specific code. This comes handy, for example to enable optional code that requires a recent API version without raising your minimum required API version. This enables running the plugin against more Geany versions, although perhaps at reduced functionality. @subsection example Example Going back to our "Hello World" plugin here is example code that properly adds the HelloWorld plugin to Geany. @code /* License blob */ #include static gboolean hello_init(GeanyPlugin *plugin, gpointer pdata) { printf("Hello World from plugin!\n"); /* Perform advanced set up here */ return TRUE; } static void hello_cleanup(GeanyPlugin *plugin, gpointer pdata) { printf("Bye World :-(\n"); } G_MODULE_EXPORT void geany_load_module(GeanyPlugin *plugin) { /* Step 1: Set metadata */ plugin->info->name = "HelloWorld"; plugin->info->description = "Just another tool to say hello world"; plugin->info->version = "1.0"; plugin->info->author = "John Doe "; /* Step 2: Set functions */ plugin->funcs->init = hello_init; plugin->funcs->cleanup = hello_cleanup; /* Step 3: Register! */ GEANY_PLUGIN_REGISTER(plugin, 225); /* alternatively: GEANY_PLUGIN_REGISTER_FULL(plugin, 225, data, free_func); */ } @endcode If you think this plugin seems not to implement any functionality right now and only wastes some memory, you are right. But it should compile and load/unload in Geany nicely. Now you have the very basic layout of a new plugin. Great, isn't it? If you would rather write the plugin in C++, you can do that by marking @a geany_load_module() as extern "C" , for example: @code extern "C" void geany_load_module(GeanyPlugin *plugin) { } @endcode You can also create an instance of a class and set that as data pointer (with GEANY_PLUGIN_REGISTER_FULL()). With small wrappers that shuffle the parameters you can even use member functions for @ref GeanyPlugin::funcs etc. @section building Building First make plugin.o: @code gcc -c plugin.c -fPIC `pkg-config --cflags geany` @endcode Then make the plugin library plugin.so (or plugin.dll on Windows): @code gcc plugin.o -o plugin.so -shared `pkg-config --libs geany` @endcode If all went OK, put the library into one of the paths Geany looks for plugins, e.g. $prefix/lib/geany. See @ref paths "Installation paths" for details. If you are writing the plugin in C++, then you will need to use your C++ compiler here, for example @c g++. @section realfunc Adding functionality Let's go on and implement some real functionality. As mentioned before, GeanyPluginFuncs::init() will be called when the plugin is activated by Geany. So it should implement everything that needs to be done during startup. In this case, we'd like to add a menu item to Geany's Tools menu which runs a dialog printing "Hello World". @code static gboolean hello_init(GeanyPlugin *plugin, gpointer pdata) { GtkWidget *main_menu_item; // Create a new menu item and show it main_menu_item = gtk_menu_item_new_with_mnemonic("Hello World"); gtk_widget_show(main_menu_item); // Attach the new menu item to the Tools menu gtk_container_add(GTK_CONTAINER(plugin->geany_data->main_widgets->tools_menu), main_menu_item); // Connect the menu item with a callback function // which is called when the item is clicked g_signal_connect(main_menu_item, "activate", G_CALLBACK(item_activate_cb), NULL); return TRUE; } @endcode This will add an item to the Tools menu and connect this item to a function which implements what should be done when the menu item is activated by the user. This is done by g_signal_connect(). The Tools menu can be accessed with plugin->geany_data->main_widgets->tools_menu. The structure GeanyMainWidgets contains pointers to all main GUI elements in Geany. Geany has a simple API for showing message dialogs. So our function contains only a few lines: @code static void item_activate_cb(GtkMenuItem *menuitem, gpointer user_data) { dialogs_show_msgbox(GTK_MESSAGE_INFO, "Hello World"); } @endcode For the moment you don't need to worry about the parameters of that function. Now we need to clean up properly when the plugin is unloaded. To remove the menu item from the Tools menu you can use gtk_widget_destroy(). First you should add gtk_widget_destroy() to your GeanyPluginFuncs::cleanup() function. The argument for gtk_widget_destroy() is the widget object you created earlier in GeanyPluginFuncs::init(). To be able to access this pointer in GeanyPluginFuncs::cleanup() you can use geany_plugin_set_data() to set plugin-defined data pointer to the widget. Alternatively, you can store the pointer in some global variable so its visibility will increase and it can be accessed in all functions. @code /* alternative: global variable: static GtkWidget *main_menu_item; */ // ... static gboolean hello_init(GeanyPlugin *plugin, gpointer pdata) { GtkWidget *main_menu_item; // Create a new menu item and show it main_menu_item = gtk_menu_item_new_with_mnemonic("Hello World"); gtk_widget_show(main_menu_item); // ... geany_plugin_set_data(plugin, main_menu_item, NULL); return TRUE; } static void hello_cleanup(GeanyPlugin *plugin, gpointer pdata) { GtkWidget *main_menu_item = (GtkWidget *) pdata; // ... gtk_widget_destroy(main_menu_item); } @endcode This will ensure your menu item is removed from the Tools menu as well as from memory once your plugin is unloaded, so you don't leave any memory leaks. Once this is done, your first plugin is ready. Congratulations! @section listing Complete listing (without comments) @code #include static void item_activate_cb(GtkMenuItem *menuitem, gpointer user_data) { dialogs_show_msgbox(GTK_MESSAGE_INFO, "Hello World"); } static gboolean hello_init(GeanyPlugin *plugin, gpointer pdata) { GtkWidget *main_menu_item; // Create a new menu item and show it main_menu_item = gtk_menu_item_new_with_mnemonic("Hello World"); gtk_widget_show(main_menu_item); gtk_container_add(GTK_CONTAINER(plugin->geany_data->main_widgets->tools_menu), main_menu_item); g_signal_connect(main_menu_item, "activate", G_CALLBACK(item_activate_cb), NULL); geany_plugin_set_data(plugin, main_menu_item, NULL); return TRUE; } static void hello_cleanup(GeanyPlugin *plugin, gpointer pdata) { GtkWidget *main_menu_item = (GtkWidget *) pdata; gtk_widget_destroy(main_menu_item); } G_MODULE_EXPORT void geany_load_module(GeanyPlugin *plugin) { plugin->info->name = "HelloWorld"; plugin->info->description = "Just another tool to say hello world"; plugin->info->version = "1.0"; plugin->info->author = "John Doe "; plugin->funcs->init = hello_init; plugin->funcs->cleanup = hello_cleanup; GEANY_PLUGIN_REGISTER(plugin, 225); } @endcode Now you might like to look at Geany's source code for core plugins such as @a plugins/demoplugin.c. @section furtherimprovements Further Improvements and next steps @subsection translatable_plugin_information Translatable plugin information After having written our first plugin, there is still room for improvement. By default, @ref geany_load_module() is not prepared to allow translation of the basic plugin information, except plugins which are shipped with Geany's core distribution, because custom gettext catalogs are not setup. Since most plugins are not shipped with Geany's core, it makes sense to setup gettext when the plugin is loaded so that it gets translated inside Geany's Plugin Manager. The solution is to call the API function main_locale_init() inside @ref geany_load_module() and then use gettext's _() as usual. The invocation will most probably look similar to this: @code // ... main_locale_init(LOCALEDIR, GETTEXT_PACKAGE); plugin->info->name = _("HelloWorld"); plugin->info->description = _("Just another tool to say hello world"); plugin->info->version = "1.0"; plugin->info->author = "John Doe "; @endcode The @a LOCALEDIR and the @a GETTEXT_PACKAGE parameters are usually set inside the build system. As you can see the author's information is not marked as translatable in this example. The community has agreed that the best practice here is to use, if possible, the latin version of the author's name followed by the native spelling inside parenthesis, where applicable. @subsection plugin_i18n Using i18n/l10n inside Plugin You can (and should) also mark other strings beside the plugin's meta information as translatable. Strings used in menu entries, information boxes or configuration dialogs should be translatable as well. @code static gboolean hello_init(GeanyPlugin *plugin, gpointer pdata) { main_locale_init(LOCALEDIR, GETTEXT_PACKAGE); main_menu_item = gtk_menu_item_new_with_mnemonic(_("Hello World")); // ... } @endcode @page legacy Porting guide from legacy entry points to the current ones @section intro_legacy Introduction This page briefly describes the deprecated, legacy plugin entry points. These have been in place prior to Geany 1.26 and are still loadable and working for the time being. However, do not create new plugins against these. For this reason, the actual description here is rather minimalistic and concentrates on porting legacy plugins to the new interface. Basically its main purpose is to give newcomers an idea of what they are looking at if they come across a legacy plugin. @section overview Overview The legacy entry points consist of a number of pre-defined symbols (functions and variables) exported by plugins. There is no active registration procedure. It is implicit simply by exporting the mandatory symbols. The entirety of the symbols is described at the page @link pluginsymbols.c Plugin Symbols @endlink. At the very least plugins must define the functions @a plugin_init(GeanyData *) and @a plugin_version_check(gint). Additionally, an instance of the struct PluginInfo named plugin_info must be exported as well, this contains the same metadata already known from GeanyPlugin::info. The functions plugin_cleanup(), plugin_help(), plugin_configure(GtkDialog *) and plugin_configure_single(GtkWidget *) are optional, however Geany prints a warning if plugin_cleanup() is missing and only one of plugin_configure(GtkDialog *) and plugin_configure_single(GtkWidget *) is used for any single plugin. By convention, plugin_version_check() is implicitly defined through the use of PLUGIN_VERSION_CHECK(), and similarly plugin_info is defined through PLUGIN_SET_INFO() or PLUGIN_SET_TRANSLATABLE_INFO(). The functions should generally perform the same tasks as their equivalents in GeanyPlugin::funcs. Geany also recognized numerous variable fields if the plugin exported them globally, and actually set a few of them inside the plugins data section. @section porting Porting a Legacy Plugin Given a legacy plugin it can be modified to use the new entry points without much effort. This section gives a basic recipe that should work for most existing plugins. The transition should be easy and painless so it is recommended that you adapt your plugin as soon as possible. @note This guide is intentionally minimalistic (in terms of suggested code changes) in order to allow adaption to the current entry points as quickly as possible and without a lot effort. It should also work even for rather complex plugins comprising multiple source files. On the other hand it does not make use of new features such as geany_plugin_set_data(). @subsection functions Functions Probably the biggest hurdle is the dropped support of the long-deprecated plugin_configure_single(). This means you first have to port the configuration dialog (if any) to the combined plugin dialog. While you previously created a custom dialog you now attach the main widget of that dialog to the combined plugin dialog simply by returning it from GeanyPluginFuncs::configure. You don't actually add it, Geany will do that for you. The pointer to the dialog is passed to @a configure simply to allow you to connect to its "response" or "close" signals. The following lists the function mapping of previous @a plugin_* functions to the new @a GeanyPlugin::funcs. They are semantically the same, however the new functions receive more parameters which you may use or not. - plugin_init() => GeanyPlugin->funcs->init - plugin_cleanup() => GeanyPlugin->funcs->cleanup - plugin_help() => GeanyPlugin->funcs->help - plugin_configure() => GeanyPlugin->funcs->configure @note @ref GeanyPluginFuncs::init() should return a boolean value: whether or not the plugin loaded successfully. Since legacy plugins couldn't fail in plugin_init() you should return @c TRUE unconditionally. @note Again, plugin_configure_single() is not supported anymore. @subsection Variables Exported global variables are not recognized anymore. They are replaced in the following ways: @ref plugin_info is simply removed. Instead, you have to assign the values to GeanyPlugin::info yourself, and it must be done inside your @a geany_load_module(). Example: @code PLUGIN_SET_INFO( "HelloWorld", "Just another tool to say hello world", "1.0", "John Doe "); @endcode becomes @code G_MODULE_EXPORT void geany_load_module(GeanyPlugin *plugin) { // ... plugin->info->name = "HelloWorld"; plugin->info->description = "Just another tool to say hello world"; plugin->info->version = "1.0"; plugin->info->author = "John Doe "; // ... } @endcode @note Refer to @ref translatable_plugin_information for i18n support for the metadata. The @ref plugin_callbacks array is supported by assigning the GeanyPluginFuncs::callbacks to the array. @ref plugin_fields is not supported anymore. Use ui_add_document_sensitive() instead. @c PLUGIN_KEY_GROUP and @ref plugin_key_group are also not supported anymore. Use plugin_set_key_group() and keybindings_set_item() respectively. Additionally, Geany traditionally set a few variables. This is not the case anymore. @ref geany_functions has been removed in 1.25 and since then existed only for compatibility and has been empty. You can simply remove its declaration from your source code. @ref geany_plugin is passed to each @ref GeanyPluginFuncs function. You need to store it yourself somewhere if you need it elsewhere. @ref geany_data is now available as a member of GeanyPlugin. @code GeanyPlugin *geany_plugin; GeanyData *geany_data; static gboolean my_init(GeanyPlugin *plugin, gpointer pdata) { // ... geany_plugin = plugin; geany_data = plugin->geany_data; return TRUE; } @endcode @ref geany_plugin is now also passed by default to the PluginCallback signal handlers as data pointer if it's set to NULL. @code static PluginCallback plugin_callbacks[] = { { "editor-notify", (GCallback) &on_editor_notify_cb, FALSE, NULL }, // ... }; static gboolean on_editor_notify_cb(GObject *object, GeanyEditor *editor, SCNotification *nt, gpointer data) { GeanyPlugin *plugin = data; //... } G_MODULE_EXPORT void geany_load_module(GeanyPlugin *plugin) { // ... plugin->funcs->callbacks = plugin_callbacks; // ... } } @endcode @page proxy Proxy Plugin HowTo @section proxy_intro Introduction Geany has built-in support for plugins. These plugins can alter the way Geany operates in many imaginable ways which leaves little to be desired. However, there is one significant short-coming. Due to the infrastructure, Geany's built-in support only covers plugins written in C, perhaps C++ and Vala. Basically all languages which can be compiled into native shared libraries and can link GTK libraries. This excludes dynamic languages such as Python. Geany provides a mechanism to enable support for those languages. Native plugins can register as proxy plugins by being a normal plugin to the Geany-side and by providing a bridge to write plugins in another language on the other side. These plugins are also called sub-plugins. This refers to the relation to their proxy. To Geany they are first-class citizens. @section proxy_protocol Writing a Proxy Plugin The basic idea is that a proxy plugin provides methods to match, load and unload one or more sub-plugin plugins in an abstract manner: - Matching consists of providing a list of supported file extensions for the sub-plugins and a mechanism to resolve file extension uncertainty or ambiguity. The matching makes the plugin visible to the user within the Plugin Manager. - Loading consists of loading the sub-plugin's file, passing the file to some form of interpreter and calling GEANY_PLUGIN_REGISTER() or GEANY_PLUGIN_REGISTER_FULL() on behalf of the sub-plugin at some point. - Unloading simply reverses the effect of loading. For providing these methods, GeanyPlugin has a field GeanyProxyFuncs which contains three function pointers which must be initialized prior to calling geany_plugin_register_proxy(). This should be done in the GeanyPluginFuncs::init function of the proxy plugin. - In the call to geany_plugin_register_proxy() the proxy plugin passes a list of file extensions. When Geany scans through its plugin directories as usual it will also look for files with that extensions and consider found files as plugin candidate. - GeanyProxyFuncs::probe may be implemented to probe if a plugin candidate (that has one of the provided file extensions) is actually a plugin. This may depend on the plugin file itself in case of ambiguity or availability of runtime dependencies or even configuration. @ref GeanyProxyProbeResults constants should be returned. Not implementing GeanyProxyFuncs::probe at all is equivalent to always returning @ref GEANY_PROXY_MATCH. - GeanyProxyFuncs::load must be implemented to actually load the plugin. It is called by Geany when the user enables the sub-plugin. What "loading" means is entirely up to the proxy plugin and probably depends on the interpreter of the dynamic language that shall be supported. After setting everything up as necessary GEANY_PLUGIN_REGISTER() or GEANY_PLUGIN_REGISTER_FULL() must be called to register the sub-plugin. - GeanyProxyFuncs::unload must be implemented and is called when the user unchecks the sub-plugin or when Geany exits. Here, the proxy should release any references or memory associated to the sub-plugin. Note that if GeanyProxyFuncs::load didn't succeed, i.e. didn't successfully register the sub-plugin, then this function won't be called. GeanyProxyFuncs::load and GeanyProxyFuncs::unload receive two GeanyPlugin pointers: One that corresponds to the proxy itself and another that corresponds to the sub-plugin. The sub-plugin's one may be used to call various API functions on behalf of the sub-plugin, including GEANY_PLUGIN_REGISTER() and GEANY_PLUGIN_REGISTER_FULL(). GeanyProxyFuncs::load may return a pointer that is passed back to GeanyProxyFuncs::unload. This can be used to store proxy-defined but sub-plugin-specific data required for unloading. However, this pointer is not passed to the sub-plugin's GeanyPluginFuncs. To arrange for that, you want to call GEANY_PLUGIN_REGISTER_FULL(). This method is the key to enable proxy plugins to wrap the GeanyPluginFuncs of all sub-plugins and yet multiplex between multiple sub-plugin, for example by storing a per-sub-plugin interpreter context. @note If the pointer returned from GeanyProxyFuncs::load is the same that is passed to GEANY_PLUGIN_REGISTER_FULL() then you must pass NULL as free_func, because that would be invoked prior to unloading. Insert the corresponding code into GeanyProxyFuncs::unload. @section proxy_compat_guideline Guideline for Checking Compatibility Determining if a plugin candidate is compatible is not a single test. There are multiple levels and each should be handled differently in order to give the user a consistent feedback. Consider the 5 basic cases: 1) A candidate comes with a suitable file extension but is not a workable plugin file at all. For example, your proxy supports plugins written in a shell script (.sh) but the shebang of that script points to an incompatible shell (or even lacks a shebang). You should check for this in GeanyProxyFuncs::probe() and return @ref GEANY_PROXY_IGNORE which hides that script from the Plugin Manager and allows other enabled proxy plugins to pick it up. GeanyProxyFuncs::probe() returning @ref GEANY_PROXY_IGNORE is an indication that the candidate is meant for another proxy, or the user placed the file by accident in one of Geany's plugin directories. In other words the candidate simply doesn't correspond to your proxy. Thus any noise by debug messages for this case is undesirable. 2) A proxy plugin provides its own, versioned API to sub-plugin. The API version of the sub-plugin is not compatible with the API exposed by the proxy. GeanyProxyFuncs::probe() should never perform a version check because its sole purpose is to indicate a proxy's correspondence to a given candidate. It should return @ref GEANY_PROXY_MATCH instead. Later, Geany will invoke the GeanyProxyFuncs::load(), and this function is the right place for a version check. If it fails then you simply do not call GEANY_PLUGIN_REGISTER(), but rather print a debug message. The result is that the sub-plugin is not shown in the Plugin Manager at all. This is consistent with the treatment of native plugins by Geany. 3) The sub-plugin is also depending on Geany's API version (whether it is or not depends on the design of the proxy). In this case do not do anything special but forward the API version the sub-plugin is written/compiled against to GEANY_PLUGIN_REGISTER(). Here, Geany will perform its own compatibility check, allowing for a consistent user feedback. The result is again that the sub-plugin is hidden from the Plugin Manager, like in case 2. But Geany will print a debug message so you can skip that. If you have even more cases try to fit it into case 1 or 2, depending on whether other proxy plugins should get a chance to load the candidate or not. @section proxy_dep_guideline Guideline for Runtime Errors A sub-plugin might not be able to run even if it's perfectly compatible with its proxy. This includes the case when it lacks certain runtime dependencies such as programs or modules but also syntactic problems or other errors. There are two basic classes: 1) Runtime errors that can be determined at load time. For example, the shebang of a script indicates a specific interpreter version but that version is not installed on the system. Your proxy should respond the same way as for version-incompatible plugins: don't register the plugin at all, but leave a message the user suggesting what has to be installed in order to work. Handle syntax errors in the scripts of sub-plugins the same way if possible. 2) Runtime errors that cannot be determined without actually running the plugin. An example would be missing modules in Python scripts. If your proxy has no way of foreseeing the problem the plugin will be registered normally. However, you can catch runtime errors by implementing GeanyPluginFuncs::init() on the plugin's behalf. This is called after user activation and allows to indicate errors by returning @c FALSE. However, allowing the user to enable a plugin and then disabling anyway is a poor user experience. Therefore, if possible, try to fail fast and disallow registration. @section Proxy Plugin Example In this section a dumb example proxy plugin is shown in order to give a practical starting point. The sub-plugin are not actually code but rather a ini-style description of one or more menu items that are added to Geany's tools menu and a help dialog. Real world sub-plugins would contain actual code, usually written in a scripting language. A sub-plugin file looks like this: @code{.ini} #!!PROXY_MAGIC!! [Init] item0 = Bam item1 = Foo item2 = Bar [Help] text = I'm a simple test. Nothing to see! [Info] name = Demo Proxy Tester description = I'm a simple test. Nothing to see! version = 0.1 author = The Geany developer team @endcode The first line acts as a verification that this file is truly a sub-plugin. Within the [Init] section there is the menu items for Geany's tools menu. The [Help] section declares the sub-plugins help text which is shown in its help dialog (via GeanyPluginFuncs::help). The [Info] section is used as-is for filling the sub-plugins PluginInfo fields. That's it, this dumb format is purely declarative and contains no logic. Yet we will create plugins from it. We start by registering the proxy plugin to Geany. There is nothing special to it compared to normal plugins. A proxy plugin must also fill its own @ref PluginInfo and @ref GeanyPluginFuncs, followed by registering through GEANY_PLUGIN_REGISTER(). @code{.c} /* Called by Geany to initialize the plugin. */ static gboolean demoproxy_init(GeanyPlugin *plugin, gpointer pdata) { // ... } /* Called by Geany before unloading the plugin. */ static void demoproxy_cleanup(GeanyPlugin *plugin, gpointer data) { // ... } G_MODULE_EXPORT void geany_load_module(GeanyPlugin *plugin) { plugin->info->name = _("Demo Proxy"); plugin->info->description = _("Example Proxy."); plugin->info->version = "0.1"; plugin->info->author = _("The Geany developer team"); plugin->funcs->init = demoproxy_init; plugin->funcs->cleanup = demoproxy_cleanup; GEANY_PLUGIN_REGISTER(plugin, 225); } @endcode The next step is to actually register as a proxy plugin. This is done in demoproxy_init(). As previously mentioned, it needs a list of accepted file extensions and a set of callback functions. @code{.c} static gboolean demoproxy_init(GeanyPlugin *plugin, gpointer pdata) { const gchar *extensions[] = { "ini", "px", NULL }; plugin->proxy_funcs->probe = demoproxy_probe; plugin->proxy_funcs->load = demoproxy_load; plugin->proxy_funcs->unload = demoproxy_unload; return geany_plugin_register_proxy(plugin, extensions); } @endcode The callback functions deserve a closer look. As already mentioned the file format includes a magic first line which must be present. GeanyProxyFuncs::probe() verifies that it's present and avoids showing the sub-plugin in the Plugin Manager if not. @code{.c} static gint demoproxy_probe(GeanyPlugin *proxy, const gchar *filename, gpointer pdata) { /* We know the extension is right (Geany checks that). For demo purposes we perform an * additional check. This is not necessary when the extension is unique enough. */ gboolean match = FALSE; gchar linebuf[128]; FILE *f = fopen(filename, "r"); if (f != NULL) { if (fgets(linebuf, sizeof(linebuf), f) != NULL) match = utils_str_equal(linebuf, "#!!PROXY_MAGIC!!\n"); fclose(f); } return match ? GEANY_PROXY_MATCH : GEANY_PROXY_IGNORE; } @endcode GeanyProxyFuncs::load is a bit more complex. It reads the file, fills the sub-plugin's PluginInfo fields and calls GEANY_PLUGIN_REGISTER_FULL(). Additionally, it creates a per-plugin context that holds GKeyFile instance (a poor man's interpreter context). You can also see that it does not call GEANY_PLUGIN_REGISTER_FULL() if g_key_file_load_from_file() found an error (probably a syntax problem) which means the sub-plugin cannot be enabled. It also installs wrapper functions for the sub-plugin's GeanyPluginFuncs as ini files aren't code. It's very likely that your proxy needs something similar because you can only install function pointers to native code. @code{.c} typedef struct { GKeyFile *file; gchar *help_text; GSList *menu_items; } PluginContext; static gboolean proxy_init(GeanyPlugin *plugin, gpointer pdata); static void proxy_help(GeanyPlugin *plugin, gpointer pdata); static void proxy_cleanup(GeanyPlugin *plugin, gpointer pdata); static gpointer demoproxy_load(GeanyPlugin *proxy, GeanyPlugin *plugin, const gchar *filename, gpointer pdata) { GKeyFile *file; gboolean result; file = g_key_file_new(); result = g_key_file_load_from_file(file, filename, 0, NULL); if (result) { PluginContext *data = g_new0(PluginContext, 1); data->file = file; plugin->info->name = g_key_file_get_locale_string(data->file, "Info", "name", NULL, NULL); plugin->info->description = g_key_file_get_locale_string(data->file, "Info", "description", NULL, NULL); plugin->info->version = g_key_file_get_locale_string(data->file, "Info", "version", NULL, NULL); plugin->info->author = g_key_file_get_locale_string(data->file, "Info", "author", NULL, NULL); plugin->funcs->init = proxy_init; plugin->funcs->help = proxy_help; plugin->funcs->cleanup = proxy_cleanup; /* Cannot pass g_free as free_func be Geany calls it before unloading, and since * demoproxy_unload() accesses the data this would be catastrophic */ GEANY_PLUGIN_REGISTER_FULL(plugin, 225, data, NULL); return data; } g_key_file_free(file); return NULL; } @endcode demoproxy_unload() simply releases all resources acquired in demoproxy_load(). It does not have to do anything else in for unloading. @code{.c} static void demoproxy_unload(GeanyPlugin *proxy, GeanyPlugin *plugin, gpointer load_data, gpointer pdata) { PluginContext *data = load_data; g_free((gchar *)plugin->info->name); g_free((gchar *)plugin->info->description); g_free((gchar *)plugin->info->version); g_free((gchar *)plugin->info->author); g_key_file_free(data->file); g_free(data); } @endcode Finally the demo_proxy's wrapper GeanyPluginFuncs. They are called for each possible sub-plugin and therefore have to multiplex between each using the plugin-defined data pointer. Each is called by Geany as if it were an ordinary, native plugin. proxy_init() actually reads the sub-plugin's file using GKeyFile APIs. It prepares for the help dialog and installs the menu items. proxy_help() is called when the user clicks the help button in the Plugin Manager. Consequently, this fires up a suitable dialog, although with a dummy message. proxy_cleanup() frees all memory allocated in proxy_init(). @code{.c} static gboolean proxy_init(GeanyPlugin *plugin, gpointer pdata) { PluginContext *data; gint i = 0; gchar *text; data = (PluginContext *) pdata; /* Normally, you would instruct the VM/interpreter to call into the actual plugin. The * plugin would be identified by pdata. Because there is no interpreter for * .ini files we do it inline, as this is just a demo */ data->help_text = g_key_file_get_locale_string(data->file, "Help", "text", NULL, NULL); while (TRUE) { GtkWidget *item; gchar *key = g_strdup_printf("item%d", i++); text = g_key_file_get_locale_string(data->file, "Init", key, NULL, NULL); g_free(key); if (!text) break; item = gtk_menu_item_new_with_label(text); gtk_widget_show(item); gtk_container_add(GTK_CONTAINER(plugin->geany_data->main_widgets->tools_menu), item); gtk_widget_set_sensitive(item, FALSE); data->menu_items = g_slist_prepend(data->menu_items, (gpointer) item); g_free(text); } return TRUE; } static void proxy_help(GeanyPlugin *plugin, gpointer pdata) { PluginContext *data; GtkWidget *dialog; data = (PluginContext *) pdata; dialog = gtk_message_dialog_new( GTK_WINDOW(plugin->geany_data->main_widgets->window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "%s", data->help_text); gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog), _("(From the %s plugin)"), plugin->info->name); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); } static void proxy_cleanup(GeanyPlugin *plugin, gpointer pdata) { PluginContext *data = (PluginContext *) pdata; g_slist_free_full(data->menu_items, (GDestroyNotify) gtk_widget_destroy); g_free(data->help_text); } @endcode @page plugin_extension Plugin Extension HowTo @section plugin_extension_intro Introduction Originally the Geany plugin API only allowed plugins to add to Geany functionality, plugins could not modify Geany built-in functionality, but since Geany 2.1 the PluginExtension API allows plugins to take over some of the core Geany functionality: autocopletion, calltip display, symbol goto, and typename highlighting inside document. @section plugin_extension_init Initialization and cleanup Plugins using the @c PluginExtension API are just normal plugins and behave as described in @link howto Plugin HowTo@endlink. First, any plugin interested in using this interface has to register its @c PluginExtension structure pointer using @c plugin_extension_register(). This typically happens in the @c init() function of the plugin. Registered @c PluginExtension pointers have to be unregistered before the plugin is unloaded using @c plugin_extension_unregister(), typically inside the @c cleanup() function of the plugin. @section plugin_extension_impl Implementing extensions Inside the @c PluginExtension struct, the plugin fills-in the pointers of the functions it wishes to implement. Typically, these functions come in pairs: - functions assigned to members ending with @c _provided are used by Geany to query the plugin whether it implements the particular feature for the passed document - functions assigned to members ending with @c _perform are used by Geany to pass control to the plugin to perform the feature instead of performing the Geany built-in functionality. When the plugin returns @c TRUE from the function assigned to the @c _provided member of @c PluginExtension, it indicates it wants to take control of the particular feature and disable Geany's implementation. However, returning @c TRUE does not automatically guarantee that the plugin's implementation is executed - if there are multiple plugins competing for implementing a feature, the extension with the highest priority passed into the @c plugin_extension_register() function gets executed. A plugin can perform a check if it gets executed for the particular feature; e.g. for autocompletion the plugin can use @c plugin_extension_autocomplete_provided() which returns @c TRUE if the passed extension is executed, taking into account all registered extension priorities and the return values of all functions assigned to @c autocomplete_provided members of the registered extensions. This can be used if the plugin needs to perform auxiliary actions outside the function assigned to @c autocomplete_perform to verify it is actually active for this feature. @section plugin_extension_ex Example Below you will find an example of a plugin implementing autocompletion for Python. The full version of this code can be found under plugins/demopluginext.c inside the Geany repository. @code /* License blob */ #include static gboolean autocomplete_provided(GeanyDocument *doc, gpointer data) { /* Check whether the plugin provides the feature for the passed document */ return doc->file_type->id == GEANY_FILETYPES_PYTHON; } static void autocomplete_perform(GeanyDocument *doc, gboolean force, gpointer data) { /* The autocompletion logic comes here, including the autocompletion UI * display (either using some custom widget or using Scintilla's * SCI_AUTOCSHOW) */ } /* The PluginExtension struct - we only implement autocompletion here. */ static PluginExtension extension = { .autocomplete_provided = autocomplete_provided, .autocomplete_perform = autocomplete_perform }; static gboolean on_editor_notify(G_GNUC_UNUSED GObject *obj, GeanyEditor *editor, SCNotification *nt, G_GNUC_UNUSED gpointer user_data) { if (nt->nmhdr.code == SCN_AUTOCSELECTION) { if (plugin_extension_autocomplete_provided(editor->document, &extension)) { /* This is an example of using plugin_extension_autocomplete_provided() * to detect whether this plugin extension was used to perform * autocompletion. */ msgwin_status_add("PluginExtensionDemo autocompleted '%s'", nt->text); } } return FALSE; } static PluginCallback plugin_callbacks[] = { {"editor-notify", (GCallback) &on_editor_notify, FALSE, NULL}, {NULL, NULL, FALSE, NULL} }; static gboolean init_func(GeanyPlugin *plugin, gpointer pdata) { /* Extension registration */ plugin_extension_register(&extension, "Python keyword autocompletion", 450, NULL); return TRUE; } static void cleanup_func(GeanyPlugin *plugin, gpointer pdata) { /* Extension unregistration */ plugin_extension_unregister(&extension); } G_MODULE_EXPORT void geany_load_module(GeanyPlugin *plugin) { plugin->info->name = "PluginExtensionDemo"; plugin->info->description = "Demo performing simple Python keyword autocompletion"; plugin->info->version = "1.0"; plugin->info->author = "John Doe "; plugin->funcs->init = init_func; plugin->funcs->cleanup = cleanup_func; plugin->funcs->callbacks = plugin_callbacks; GEANY_PLUGIN_REGISTER(plugin, 248); } @endcode */ geany-2.1/doc/Doxyfile.in0000644000175000017500000031541615031717571012301 00000000000000# Doxyfile 1.8.8 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # # All text after a double hash (##) is considered a comment and is placed in # front of the TAG it is preceding. # # All text after a single hash (#) is considered a comment and will be ignored. # The format is: # TAG = value [value, ...] # For lists, items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (\" \"). #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all text # before the first occurrence of this tag. Doxygen uses libiconv (or the iconv # built into libc) for the transcoding. See http://www.gnu.org/software/libiconv # for the list of possible encodings. # The default value is: UTF-8. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by # double-quotes, unless you are using Doxywizard) that should identify the # project for which the documentation is generated. This name is used in the # title of most generated pages and in a few other places. # The default value is: My Project. PROJECT_NAME = Geany # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version # control system is used. PROJECT_NUMBER = @VERSION@ # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = # With the PROJECT_LOGO tag one can specify an logo or icon that is included in # the documentation. The maximum height of the logo should not exceed 55 pixels # and the maximum width should not exceed 200 pixels. Doxygen will copy the logo # to the output directory. PROJECT_LOGO = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is # entered, it will be relative to the location where doxygen was started. If # left blank the current directory will be used. OUTPUT_DIRECTORY = @top_builddir@/doc # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- # directories (in 2 levels) under the output directory of each output format and # will distribute the generated files over these directories. Enabling this # option can be useful when feeding doxygen a huge amount of source files, where # putting all generated files in the same directory would otherwise causes # performance problems for the file system. # The default value is: NO. CREATE_SUBDIRS = NO # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII # characters to appear in the names of generated files. If set to NO, non-ASCII # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode # U+3044. # The default value is: NO. ALLOW_UNICODE_NAMES = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, # Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), # Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, # Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), # Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, # Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, # Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, # Ukrainian and Vietnamese. # The default value is: English. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. # The default value is: YES. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief # description of a member or function before the detailed description # # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. # The default value is: YES. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator that is # used to form the text in various listings. Each string in this list, if found # as the leading text of the brief description, will be stripped from the text # and the result, after processing the whole list, is used as the annotated # text. Otherwise, the brief description is used as-is. If left blank, the # following values are used ($name is automatically replaced with the name of # the entity):The $name class, The $name widget, The $name file, is, provides, # specifies, contains, represents, a, an and the. ABBREVIATE_BRIEF = "The $name class " \ "The $name widget " \ "The $name file " \ is \ provides \ specifies \ contains \ represents \ a \ an \ the # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # doxygen will generate a detailed section even if there is only a brief # description. # The default value is: NO. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. # The default value is: NO. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path # before files name in the file list and in the header files. If set to NO the # shortest path that makes the file name unique will be used # The default value is: YES. FULL_PATH_NAMES = NO # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. # Stripping is only done if one of the specified strings matches the left-hand # part of the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the path to # strip. # # Note that you can specify absolute paths here, but also relative paths, which # will be relative from the directory where doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the # path mentioned in the documentation of a class, which tells the reader which # header file to include in order to use a class. If left blank only the name of # the header file containing the class definition is used. Otherwise one should # specify the list of include paths that are normally passed to the compiler # using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but # less readable) file names. This can be useful is your file systems doesn't # support long names like on DOS, Mac, or CD-ROM. # The default value is: NO. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the # first line (until the first dot) of a Javadoc-style comment as the brief # description. If set to NO, the Javadoc-style will behave just like regular Qt- # style comments (thus requiring an explicit @brief command for a brief # description.) # The default value is: NO. JAVADOC_AUTOBRIEF = YES # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first # line (until the first dot) of a Qt-style comment as the brief description. If # set to NO, the Qt-style will behave just like regular Qt-style comments (thus # requiring an explicit \brief command for a brief description.) # The default value is: NO. QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a # multi-line C++ special comment block (i.e. a block of //! or /// comments) as # a brief description. This used to be the default behavior. The new default is # to treat a multi-line C++ comment block as a detailed description. Set this # tag to YES if you prefer the old behavior instead. # # Note that setting this tag to YES also means that rational rose comments are # not recognized any more. # The default value is: NO. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the # documentation from any documented member that it re-implements. # The default value is: YES. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a # new page for each member. If set to NO, the documentation of a member will be # part of the file/class/namespace that contains it. # The default value is: NO. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen # uses this value to replace tabs by spaces in code fragments. # Minimum value: 1, maximum value: 16, default value: 4. TAB_SIZE = 4 # This tag can be used to specify a number of aliases that act as commands in # the documentation. An alias has the form: # name=value # For example adding # "sideeffect=@par Side Effects:\n" # will allow you to put the command \sideeffect (or @sideeffect) in the # documentation, which will result in a user-defined paragraph with heading # "Side Effects:". You can put \n's in the value part of an alias to insert # newlines. ## ALIASES taken from pidgin ALIASES = "signal=- @ref " \ "signaldef=@subsection " \ "endsignaldef= " \ "signalproto=@code " \ "endsignalproto=@endcode " \ "signaldesc=" \ "signals=@b Signals: " \ "endsignals= " \ "gironly=@GIRONLY@" # Apparently Doxygen doesn't seem to like \only without a previous command, so create a no-op ALIASES += "noop=\if FALSE \endif" ALIASES += "transfer{1}=\noop \xmlonly \1\endxmlonly \htmlonly (transfer: \1) \endhtmlonly" ALIASES += "elementtype{1}=\noop \xmlonly \1\endxmlonly \htmlonly (element-type: \1) \endhtmlonly" ALIASES += "scope{1}=\noop \xmlonly \1\endxmlonly \htmlonly (scope: \1) \endhtmlonly" ALIASES += "girskip=\noop \xmlonly \endxmlonly" ALIASES += "nullable=\noop \xmlonly \endxmlonly" ALIASES += "out=\noop \xmlonly \endxmlonly \htmlonly (out) \endhtmlonly" ALIASES += "optional=\noop \xmlonly \endxmlonly" ALIASES += "cb=\noop \xmlonly notified\endxmlonly" ALIASES += "cbdata=\noop \xmlonly \endxmlonly" ALIASES += "cbfree=\noop \xmlonly \endxmlonly" ALIASES += "array=\noop \xmlonly \endxmlonly" ALIASES += "array{1}=\noop \xmlonly \1\endxmlonly" # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. For # instance, some of the names that are used will be different. The list of all # members will be omitted, etc. # The default value is: NO. OPTIMIZE_OUTPUT_FOR_C = YES # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or # Python sources only. Doxygen will then generate output that is more tailored # for that language. For instance, namespaces will be presented as packages, # qualified scopes will look different, etc. # The default value is: NO. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources. Doxygen will then generate output that is tailored for Fortran. # The default value is: NO. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for VHDL. # The default value is: NO. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and # language is one of the parsers supported by doxygen: IDL, Java, Javascript, # C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: # FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: # Fortran. In the later case the parser tries to guess whether the code is fixed # or free formatted code, this is the default for Fortran type files), VHDL. For # instance to make doxygen treat .inc files as Fortran files (default is PHP), # and .f files as C (default is Fortran), use: inc=Fortran f=C. # # Note For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise # the files are not read by doxygen. EXTENSION_MAPPING = # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments # according to the Markdown format, which allows for more readable # documentation. See http://daringfireball.net/projects/markdown/ for details. # The output of markdown processing is further processed by doxygen, so you can # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in # case of backward compatibilities issues. # The default value is: YES. MARKDOWN_SUPPORT = YES # When enabled doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can # be prevented in individual cases by by putting a % sign in front of the word # or globally by setting AUTOLINK_SUPPORT to NO. # The default value is: YES. AUTOLINK_SUPPORT = YES # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should set this # tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); # versus func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. # The default value is: NO. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. # The default value is: NO. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: # http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen # will parse them like normal C++ but will assume all classes use public instead # of private inheritance when no explicit protection keyword is present. # The default value is: NO. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate # getter and setter methods for a property. Setting this option to YES will make # doxygen to replace the get and set methods by a property in the documentation. # This will only work if the methods are indeed getting or setting a simple # type. If this is not the case, or you want to show the methods anyway, you # should set this option to NO. # The default value is: YES. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. # The default value is: NO. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES to allow class member groups of the same type # (for instance a group of public functions) to be put as a subgroup of that # type (e.g. under the Public Functions section). Set it to NO to prevent # subgrouping. Alternatively, this can be done per class using the # \nosubgrouping command. # The default value is: YES. SUBGROUPING = YES # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions # are shown inside the group in which they are included (e.g. using \ingroup) # instead of on a separate page (for HTML and Man pages) or section (for LaTeX # and RTF). # # Note that this feature does not work in combination with # SEPARATE_MEMBER_PAGES. # The default value is: NO. INLINE_GROUPED_CLASSES = NO # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions # with only public data fields or simple typedef fields will be shown inline in # the documentation of the scope in which they are defined (i.e. file, # namespace, or group documentation), provided this scope is documented. If set # to NO, structs, classes, and unions are shown on a separate page (for HTML and # Man pages) or section (for LaTeX and RTF). # The default value is: NO. INLINE_SIMPLE_STRUCTS = NO # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or # enum is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically be # useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. # The default value is: NO. TYPEDEF_HIDES_STRUCT = NO # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This # cache is used to resolve symbols given their name and scope. Since this can be # an expensive process and often the same symbol appears multiple times in the # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small # doxygen will become slower. If the cache is too large, memory is wasted. The # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 # symbols. At the end of a run doxygen will report the cache usage and suggest # the optimal cache size from a speed point of view. # Minimum value: 0, maximum value: 9, default value: 0. LOOKUP_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. Private # class members and static file members will be hidden unless the # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. # Note: This will also disable the warnings about undocumented members that are # normally produced when WARNINGS is set to YES. # The default value is: NO. EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class will # be included in the documentation. # The default value is: NO. EXTRACT_PRIVATE = NO # If the EXTRACT_PACKAGE tag is set to YES all members with package or internal # scope will be included in the documentation. # The default value is: NO. EXTRACT_PACKAGE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file will be # included in the documentation. # The default value is: NO. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined # locally in source files will be included in the documentation. If set to NO # only classes defined in header files are included. Does not have any effect # for Java sources. # The default value is: YES. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local methods, # which are defined in the implementation section but not in the interface are # included in the documentation. If set to NO only methods in the interface are # included. # The default value is: NO. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base name of # the file that contains the anonymous namespace. By default anonymous namespace # are hidden. # The default value is: NO. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all # undocumented members inside documented classes or files. If set to NO these # members will be included in the various overviews, but no documentation # section is generated. This option has no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_MEMBERS = YES # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. If set # to NO these classes will be included in the various overviews. This option has # no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_CLASSES = YES # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend # (class|struct|union) declarations. If set to NO these declarations will be # included in the documentation. # The default value is: NO. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any # documentation blocks found inside the body of a function. If set to NO these # blocks will be appended to the function's detailed documentation block. # The default value is: NO. HIDE_IN_BODY_DOCS = YES # The INTERNAL_DOCS tag determines if documentation that is typed after a # \internal command is included. If the tag is set to NO then the documentation # will be excluded. Set it to YES to include the internal documentation. # The default value is: NO. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file # names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. # The default value is: system dependent. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with # their full class and namespace scopes in the documentation. If set to YES the # scope will be hidden. # The default value is: NO. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. SHOW_INCLUDE_FILES = NO # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each # grouped member an include statement to the documentation, telling the reader # which file to include in order to use the member. # The default value is: NO. SHOW_GROUPED_MEMB_INC = NO # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include # files with double quotes in the documentation rather than with sharp brackets. # The default value is: NO. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the # documentation for inline members. # The default value is: YES. INLINE_INFO = NO # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the # (detailed) documentation of file and class members alphabetically by member # name. If set to NO the members will appear in declaration order. # The default value is: YES. SORT_MEMBER_DOCS = @SORT@ # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member # name. If set to NO the members will appear in declaration order. Note that # this will also influence the order of the classes in the class list. # The default value is: NO. SORT_BRIEF_DOCS = @SORT@ # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the # (brief and detailed) documentation of class members so that constructors and # destructors are listed first. If set to NO the constructors will appear in the # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief # member documentation. # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting # detailed member documentation. # The default value is: NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy # of group names into alphabetical order. If set to NO the group names will # appear in their defined order. # The default value is: NO. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by # fully-qualified names, including namespaces. If set to NO, the class list will # be sorted only by class name, not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the alphabetical # list. # The default value is: NO. SORT_BY_SCOPE_NAME = NO # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper # type resolution of all parameters of a function it will reject a match between # the prototype and the implementation of a member function even if there is # only one candidate or it is obvious which candidate to choose by doing a # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still # accept a match between prototype and implementation in such cases. # The default value is: NO. STRICT_PROTO_MATCHING = NO # The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the # todo list. This list is created by putting \todo commands in the # documentation. # The default value is: YES. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the # test list. This list is created by putting \test commands in the # documentation. # The default value is: YES. GENERATE_TESTLIST = NO # The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug # list. This list is created by putting \bug commands in the documentation. # The default value is: YES. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO) # the deprecated list. This list is created by putting \deprecated commands in # the documentation. # The default value is: YES. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional documentation # sections, marked by \if ... \endif and \cond # ... \endcond blocks. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the # initial value of a variable or macro / define can have for it to appear in the # documentation. If the initializer consists of more lines than specified here # it will be hidden. Use a value of 0 to hide initializers completely. The # appearance of the value of individual variables and macros / defines can be # controlled using \showinitializer or \hideinitializer command in the # documentation regardless of this setting. # Minimum value: 0, maximum value: 10000, default value: 30. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at # the bottom of the documentation of classes and structs. If set to YES the list # will mention the files that were used to generate the documentation. # The default value is: YES. SHOW_USED_FILES = NO # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This # will remove the Files entry from the Quick Index and from the Folder Tree View # (if specified). # The default value is: YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces # page. This will remove the Namespaces entry from the Quick Index and from the # Folder Tree View (if specified). # The default value is: YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command command input-file, where command is the value of the # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided # by doxygen. Whatever the program writes to standard output is used as the file # version. For an example see the documentation. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. To create the layout file # that represents doxygen's defaults, run doxygen with the -l option. You can # optionally specify a file name after the option, if omitted DoxygenLayout.xml # will be used as the name of the layout file. # # Note that if you run doxygen from a directory containing a file called # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. LAYOUT_FILE = # The CITE_BIB_FILES tag can be used to specify one or more bib files containing # the reference definitions. This must be a list of .bib files. The .bib # extension is automatically appended if omitted. This requires the bibtex tool # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. # For LaTeX the style of the bibliography can be controlled using # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the # search path. See also \cite for info how to create references. CITE_BIB_FILES = #--------------------------------------------------------------------------- # Configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated to # standard output by doxygen. If QUIET is set to YES this implies that the # messages are off. # The default value is: NO. QUIET = YES # The WARNINGS tag can be used to turn on/off the warning messages that are # generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. # The default value is: YES. WARNINGS = YES # If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: YES. WARN_IF_UNDOCUMENTED = @WARN@ # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some parameters # in a documented function, or documenting parameters that don't exist or using # markup commands wrongly. # The default value is: YES. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return # value. If set to NO doxygen will only warn about wrong or incomplete parameter # documentation, but not about the absence of documentation. # The default value is: NO. WARN_NO_PARAMDOC = @WARN@ # The WARN_FORMAT tag determines the format of the warning messages that doxygen # can produce. The string should contain the $file, $line, and $text tags, which # will be replaced by the file and line number from which the warning originated # and the warning text. Optionally the format may contain $version, which will # be replaced by the version of the file (if it could be obtained via # FILE_VERSION_FILTER) # The default value is: $file:$line: $text. WARN_FORMAT = "$file:$line: $text " # The WARN_LOGFILE tag can be used to specify a file to which warning and error # messages should be written. If left blank the output is written to standard # error (stderr). WARN_LOGFILE = #--------------------------------------------------------------------------- # Configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag is used to specify the files and/or directories that contain # documented source files. You may enter file names like myfile.cpp or # directories like /usr/src/myproject. Separate the files or directories with # spaces. # Note: If this tag is empty the current directory is searched. INPUT = @top_srcdir@/src/ \ @top_srcdir@/doc/plugins.dox \ @top_srcdir@/doc/pluginsignals.c \ @top_srcdir@/doc/pluginsymbols.c \ @top_srcdir@/doc/stash-example.c \ @top_srcdir@/doc/stash-gui-example.c \ @top_srcdir@/plugins/geanyplugin.h \ @top_srcdir@/src/tagmanager/tm_source_file.c \ @top_srcdir@/src/tagmanager/tm_source_file.h \ @top_srcdir@/src/tagmanager/tm_workspace.c \ @top_srcdir@/src/tagmanager/tm_workspace.h \ @top_srcdir@/src/tagmanager/tm_tag.c \ @top_srcdir@/src/tagmanager/tm_tag.h \ @top_srcdir@/src/tagmanager/tm_parser.h # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # libiconv (or the iconv built into libc) for the transcoding. See the libiconv # documentation (see: http://www.gnu.org/software/libiconv) for the list of # possible encodings. # The default value is: UTF-8. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and # *.h) to filter out the source-files in the directories. If left blank the # following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, # *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, # *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, # *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, # *.qsf, *.as and *.js. FILE_PATTERNS = *.c \ *.cc \ *.cxx \ *.cpp \ *.c++ \ *.h \ *.hh \ *.hxx \ *.hpp \ *.h++ \ *.dox \ *.py \ *.C \ *.CC \ *.C++ \ *.H \ *.HH \ *.H++ # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. # The default value is: NO. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should be # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. # # Note that relative paths are relative to the directory from which doxygen is # run. EXCLUDE = @top_srcdir@/src/callbacks.c # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. # The default value is: NO. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories use the pattern */test/* EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or directories # that contain example code fragments that are included (see the \include # command). EXAMPLE_PATH = @top_srcdir@/doc # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and # *.h) to filter out the source-files in the directories. If left blank all # files are included. EXAMPLE_PATTERNS = * # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude commands # irrespective of the value of the RECURSIVE tag. # The default value is: NO. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or directories # that contain images that are to be included in the documentation (see the # \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command: # # # # where is the value of the INPUT_FILTER tag, and is the # name of an input file. Doxygen will then use the output that the filter # program writes to standard output. If FILTER_PATTERNS is specified, this tag # will be ignored. # # Note that the filter must not add or remove lines; it is applied before the # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: pattern=filter # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how # filters are used. If the FILTER_PATTERNS tag is empty or if none of the # patterns match the file name, INPUT_FILTER is applied. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER ) will also be used to filter the input files that are used for # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). # The default value is: NO. FILTER_SOURCE_FILES = NO # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and # it is also possible to disable source filtering for a specific pattern using # *.ext= (so without naming a filter). # This tag requires that the tag FILTER_SOURCE_FILES is set to YES. FILTER_SOURCE_PATTERNS = # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that # is part of the input, its contents will be placed on the main page # (index.html). This can be useful if you have a project on for instance GitHub # and want to reuse the introduction page also for the doxygen output. USE_MDFILE_AS_MAINPAGE = #--------------------------------------------------------------------------- # Configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will be # generated. Documented entities will be cross-referenced with these sources. # # Note: To get rid of all source code in the generated output, make sure that # also VERBATIM_HEADERS is set to NO. # The default value is: NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body of functions, # classes and enums directly into the documentation. # The default value is: NO. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any # special comment blocks from generated source code fragments. Normal C, C++ and # Fortran comments will always remain visible. # The default value is: YES. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES then for each documented # function all documented functions referencing it will be listed. # The default value is: NO. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES then for each documented function # all documented entities called/used by that function will be listed. # The default value is: NO. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set # to YES, then the hyperlinks from functions in REFERENCES_RELATION and # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will # link to the documentation. # The default value is: YES. REFERENCES_LINK_SOURCE = YES # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the # source code will show a tooltip with additional information such as prototype, # brief description and links to the definition and documentation. Since this # will make the HTML file larger and loading of large files a bit slower, you # can opt to disable this feature. # The default value is: YES. # This tag requires that the tag SOURCE_BROWSER is set to YES. SOURCE_TOOLTIPS = YES # If the USE_HTAGS tag is set to YES then the references to source code will # point to the HTML generated by the htags(1) tool instead of doxygen built-in # source browser. The htags tool is part of GNU's global source tagging system # (see http://www.gnu.org/software/global/global.html). You will need version # 4.8.6 or higher. # # To use it do the following: # - Install the latest version of global # - Enable SOURCE_BROWSER and USE_HTAGS in the config file # - Make sure the INPUT points to the root of the source tree # - Run doxygen as normal # # Doxygen will invoke htags (and that will in turn invoke gtags), so these # tools must be available from the command line (i.e. in the search path). # # The result: instead of the source browser generated by doxygen, the links to # source code will now point to the output of htags. # The default value is: NO. # This tag requires that the tag SOURCE_BROWSER is set to YES. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a # verbatim copy of the header file for each class for which an include is # specified. Set to NO to disable this. # See also: Section \class. # The default value is: YES. VERBATIM_HEADERS = NO # If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the # clang parser (see: http://clang.llvm.org/) for more accurate parsing at the # cost of reduced performance. This can be particularly helpful with template # rich C++ code for which doxygen's built-in parser lacks the necessary type # information. # Note: The availability of this option depends on whether or not doxygen was # compiled with the --with-libclang option. # The default value is: NO. # CLANG_ASSISTED_PARSING = NO # If clang assisted parsing is enabled you can provide the compiler with command # line options that you would normally use when invoking the compiler. Note that # the include paths will already be set by doxygen for the files and directories # specified with INPUT and INCLUDE_PATH. # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. # CLANG_OPTIONS = #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all # compounds will be generated. Enable this if the project contains a lot of # classes, structs, unions or interfaces. # The default value is: YES. ALPHABETICAL_INDEX = NO # In case all classes in a project start with a common prefix, all classes will # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag # can be used to specify a prefix (or a list of prefixes) that should be ignored # while generating the index headers. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. IGNORE_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES doxygen will generate HTML output # The default value is: YES. GENERATE_HTML = @HTML@ # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of # it. # The default directory is: html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_OUTPUT = reference/ # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each # generated HTML page (for example: .htm, .php, .asp). # The default value is: .html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a user-defined HTML header file for # each generated HTML page. If the tag is left blank doxygen will generate a # standard header. # # To get valid HTML the header file that includes any scripts and style sheets # that doxygen needs, which is dependent on the configuration options used (e.g. # the setting GENERATE_TREEVIEW). It is highly recommended to start with a # default header using # doxygen -w html new_header.html new_footer.html new_stylesheet.css # YourConfigFile # and then modify the file new_header.html. See also section "Doxygen usage" # for information on how to generate the default header that doxygen normally # uses. # Note: The header is subject to change so you typically have to regenerate the # default header when upgrading to a newer version of doxygen. For a description # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard # footer. See HTML_HEADER for more information on how to generate a default # footer and what special commands can be used inside the footer. See also # section "Doxygen usage" for information on how to generate the default footer # that doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style # sheet that is used by each HTML page. It can be used to fine-tune the look of # the HTML output. If left blank doxygen will generate a default style sheet. # See also section "Doxygen usage" for information on how to generate the style # sheet that doxygen normally uses. # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as # it is more robust and this tag (HTML_STYLESHEET) will in the future become # obsolete. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_STYLESHEET = # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined # cascading style sheets that are included after the standard style sheets # created by doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the # standard style sheet and is therefor more robust against future updates. # Doxygen will copy the style sheet files to the output directory. # Note: The order of the extra stylesheet files is of importance (e.g. the last # stylesheet in the list overrules the setting of the previous ones in the # list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_STYLESHEET = # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note # that these files will be copied to the base HTML output directory. Use the # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these # files. In the HTML_STYLESHEET file, use the file name only. Also note that the # files will be copied as-is; there are no commands or markers available. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the stylesheet and background images according to # this color. Hue is specified as an angle on a colorwheel, see # http://en.wikipedia.org/wiki/Hue for more information. For instance the value # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 # purple, and 360 is red again. # Minimum value: 0, maximum value: 359, default value: 220. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors # in the HTML output. For a value of 0 the output will use grayscales only. A # value of 255 will produce the most vivid colors. # Minimum value: 0, maximum value: 255, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the # luminance component of the colors in the HTML output. Values below 100 # gradually make the output lighter, whereas values above 100 make the output # darker. The value divided by 100 is the actual gamma applied, so 80 represents # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not # change the gamma. # Minimum value: 40, maximum value: 240, default value: 80. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting this # to NO can help when comparing the output of multiple runs. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_TIMESTAMP = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_DYNAMIC_SECTIONS = NO # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries # shown in the various tree structured indices initially; the user can expand # and collapse entries dynamically later on. Doxygen will expand the tree to # such a level that at most the specified number of entries are visible (unless # a fully collapsed tree already exceeds this amount). So setting the number of # entries 1 will produce a full collapsed tree by default. 0 is a special value # representing an infinite number of entries and will result in a full expanded # tree by default. # Minimum value: 0, maximum value: 9999, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_INDEX_NUM_ENTRIES = 100 # If the GENERATE_DOCSET tag is set to YES, additional index files will be # generated that can be used as input for Apple's Xcode 3 integrated development # environment (see: http://developer.apple.com/tools/xcode/), introduced with # OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a # Makefile in the HTML output directory. Running make will produce the docset in # that directory and running make install will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at # startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_DOCSET = NO # This tag determines the name of the docset feed. A documentation feed provides # an umbrella under which multiple documentation sets from a single provider # (such as a company or product suite) can be grouped. # The default value is: Doxygen generated docs. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_FEEDNAME = "Doxygen generated docs" # This tag specifies a string that should uniquely identify the documentation # set bundle. This should be a reverse domain-name style string, e.g. # com.mycompany.MyDocSet. Doxygen will append .docset to the name. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_BUNDLE_ID = org.doxygen.Project # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. # The default value is: org.doxygen.Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. # The default value is: Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop # (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on # Windows. # # The HTML Help Workshop contains a compiler that can convert all HTML output # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML # files are now used as the Windows 98 help format, and will replace the old # Windows help format (.hlp) on all Windows platforms in the future. Compressed # HTML files also contain an index, a table of contents, and you can search for # words in the documentation. The HTML workshop also contains a viewer for # compressed HTML files. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_HTMLHELP = NO # The CHM_FILE tag can be used to specify the file name of the resulting .chm # file. You can add a path in front of the file if the result should not be # written to the html output directory. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_FILE = # The HHC_LOCATION tag can be used to specify the location (absolute path # including file name) of the HTML help compiler ( hhc.exe). If non-empty # doxygen will try to run the HTML help compiler on the generated index.hhp. # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. HHC_LOCATION = # The GENERATE_CHI flag controls if a separate .chi index file is generated ( # YES) or that it should be included in the master .chm file ( NO). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. GENERATE_CHI = NO # The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc) # and project file content. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_INDEX_ENCODING = # The BINARY_TOC flag controls whether a binary table of contents is generated ( # YES) or a normal table of contents ( NO) in the .chm file. Furthermore it # enables the Previous and Next buttons. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members to # the table of contents of the HTML help documentation and to the tree view. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help # (.qch) of the generated HTML documentation. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify # the file name of the resulting .qch file. The path specified is relative to # the HTML output folder. # This tag requires that the tag GENERATE_QHP is set to YES. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace # (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt # Help Project output. For more information please see Qt Help Project / Virtual # Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- # folders). # The default value is: doc. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_VIRTUAL_FOLDER = doc # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom # filter to add. For more information please see Qt Help Project / Custom # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- # filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- # filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's filter section matches. Qt Help Project / Filter Attributes (see: # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_SECT_FILTER_ATTRS = # The QHG_LOCATION tag can be used to specify the location of Qt's # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the # generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be # generated, together with the HTML files, they form an Eclipse help plugin. To # install this plugin and make it available under the help contents menu in # Eclipse, the contents of the directory containing the HTML and XML files needs # to be copied into the plugins directory of eclipse. The name of the directory # within the plugins directory should be the same as the ECLIPSE_DOC_ID value. # After copying Eclipse needs to be restarted before the help appears. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_ECLIPSEHELP = NO # A unique identifier for the Eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have this # name. Each documentation set should have its own identifier. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. ECLIPSE_DOC_ID = org.doxygen.Project # If you want full control over the layout of the generated HTML pages it might # be necessary to disable the index and replace it with your own. The # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top # of each HTML page. A value of NO enables the index and the value YES disables # it. Since the tabs in the index contain the same information as the navigation # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. DISABLE_INDEX = NO # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. If the tag # value is set to YES, a side panel will be generated containing a tree-like # index structure (just like the one that is generated for HTML Help). For this # to work a browser that supports JavaScript, DHTML, CSS and frames is required # (i.e. any modern browser). Windows users are probably better off using the # HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can # further fine-tune the look of the index. As an example, the default style # sheet generated by doxygen has an example that shows how to put an image at # the root of the tree instead of the PROJECT_NAME. Since the tree basically has # the same information as the tab index, you could consider setting # DISABLE_INDEX to YES when enabling this option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_TREEVIEW = NO # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. # # Note that a value of 0 will completely suppress the enum values from appearing # in the overview section. # Minimum value: 0, maximum value: 20, default value: 4. # This tag requires that the tag GENERATE_HTML is set to YES. ENUM_VALUES_PER_LINE = 4 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used # to set the initial width (in pixels) of the frame in which the tree is shown. # Minimum value: 0, maximum value: 1500, default value: 250. # This tag requires that the tag GENERATE_HTML is set to YES. TREEVIEW_WIDTH = 250 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to # external symbols imported via tag files in a separate window. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of LaTeX formulas included as images in # the HTML documentation. When you change the font size after a successful # doxygen run you need to manually remove any form_*.png images from the HTML # output directory to force them to be regenerated. # Minimum value: 8, maximum value: 50, default value: 10. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are not # supported properly for IE 6.0, but are supported on all modern browsers. # # Note that when changing this option you need to delete any form_*.png files in # the HTML output directory before the changes have effect. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_TRANSPARENT = YES # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see # http://www.mathjax.org) which uses client side Javascript for the rendering # instead of using prerendered bitmaps. Use this if you do not have LaTeX # installed or if you want to formulas look prettier in the HTML output. When # enabled you may also need to install MathJax separately and configure the path # to it using the MATHJAX_RELPATH option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. USE_MATHJAX = NO # When MathJax is enabled you can set the default output format to be used for # the MathJax output. See the MathJax site (see: # http://docs.mathjax.org/en/latest/output.html) for more details. # Possible values are: HTML-CSS (which is slower, but has the best # compatibility), NativeMML (i.e. MathML) and SVG. # The default value is: HTML-CSS. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_FORMAT = HTML-CSS # When MathJax is enabled you need to specify the location relative to the HTML # output directory using the MATHJAX_RELPATH option. The destination directory # should contain the MathJax.js script. For instance, if the mathjax directory # is located at the same level as the HTML output directory, then # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax # Content Delivery Network so you can quickly see the result without installing # MathJax. However, it is strongly recommended to install a local copy of # MathJax from http://www.mathjax.org before deployment. # The default value is: http://cdn.mathjax.org/mathjax/latest. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax # extension names that should be enabled during MathJax rendering. For example # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_EXTENSIONS = # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # of code that will be used on startup of the MathJax code. See the MathJax site # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an # example see the documentation. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_CODEFILE = # When the SEARCHENGINE tag is enabled doxygen will generate a search box for # the HTML output. The underlying search engine uses javascript and DHTML and # should work on any modern browser. Note that when using HTML help # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) # there is already a search function so this one should typically be disabled. # For large projects the javascript based search engine can be slow, then # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to # search using the keyboard; to jump to the search box use + S # (what the is depends on the OS and browser, but it is typically # , /