* Fix detection of some non-UTF-8 files with a encoding stanza in them (e.g. `coding: iso-8859-2`)
* Fix out-of-bounds reads loading an empty UTF-16 buffer with BOM (yeah, really)
* Fix **silently** truncating at the first NUL in some case (part of #3700)
* Fix handling of non-UTF-8 data that start with a UTF-8 BOM
Note: this still doesn't load data after the first NUL byte, but at least now it will always properly warn as we supposedly were already doing.
You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany/pull/3716
-- Commit Summary --
* Add some basic tests for encoding detection and conversion
* encodings: Fix detection of non-UTF-8 inline encodings
* Remove unused code
* Add basic tests for UTF-16* and UTF-32*
* Add some basic UTF-7 tests
* Add some tests for empty data with BOM
* Fix silently truncating files with NULs
* Refactor to remove duplication, lower assumptions and improve safety
-- File Changes --
M src/encodings.c (151)
M src/encodingsprivate.h (3)
M src/libmain.c (2)
M tests/Makefile.am (3)
A tests/test_encodings.c (283)
-- Patch Links --
https://github.com/geany/geany/pull/3716.patchhttps://github.com/geany/geany/pull/3716.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/3716
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany/pull/3716(a)github.com>
This is a two-parts fix required for usage with 2.0:
8cad88d72c343fd1091b6dab85ecb226c062a9da: Fix a crash when encountering an unknown tag type (e.g. locals)
3af0bf5117a1143b20286f5ee9fb0a2c35916d6b: Add support for locals, and do something useful with them by default.
Without the first one, triggering documentation generation when a local is the "current" symbol crashes the plugin (and thus Geany).
Without the second one in addition, it's annoying because locals "catch" the generation request, although in most cases they should be skipped.
Both of these are particularly important with 2.0 because we now generate locals for purpose of improved scope completion, and thus we have a *lot* of them for parsers supporting it (e.g. the C and C++ one, which is the main default target of the plugin).
You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany-plugins/pull/1294
-- Commit Summary --
* geanygendoc: Do not crash if documenting an unknown tag type
* geanygendoc: Add support for local variables
-- File Changes --
M geanygendoc/data/filetypes/c.conf (5)
M geanygendoc/docs/manual.rst (2)
M geanygendoc/src/ggd-tag-utils.c (1)
M geanygendoc/src/ggd.c (2)
-- Patch Links --
https://github.com/geany/geany-plugins/pull/1294.patchhttps://github.com/geany/geany-plugins/pull/1294.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany-plugins/pull/1294
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany-plugins/pull/1294(a)github.com>
An offspring of #3716, with small things on the improvement side rather than fixes.
* Merge 2 controls in the prefs dialog (no functional change intended, but gets rid of a checkbox and some UI code)
* Don't display unsupported encodings in the encoding menus and combo boxes (e.g. [ISO-8859-8-I](https://en.wikipedia.org/wiki/ISO-8859-8-I) and [HZ](https://en.wikipedia.org/wiki/HZ_(character_encoding)) are commonly unsupported on Linux, and I hear [ISO-IR-111](https://en.wikipedia.org/wiki/ISO-IR-111) usually isn't available on Windows)
* Don't try unsupported encodings when guessing encoding (because it's useless)
You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany/pull/3720
-- Commit Summary --
* prefs: Remove separate checkbox for default open encoding
* encodings: Add a flag for whether the encoding is supported
* Don't display unsupported encodings
* Don't try knowingly unsupported encodings
-- File Changes --
M data/geany.glade (16)
M doc/geany.txt (10)
M src/encodings.c (35)
M src/encodingsprivate.h (1)
M src/prefs.c (40)
-- Patch Links --
https://github.com/geany/geany/pull/3720.patchhttps://github.com/geany/geany/pull/3720.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/3720
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany/pull/3720(a)github.com>
Right now parsing of modules is not enabled. The problem is that module
name in ocaml is the name of the source file and with our unit tests
the source file name is a temporary name so we get different tag name
every time and the unit test fails.
You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany/pull/3163
-- Commit Summary --
* Add Ocaml ctags parser
-- File Changes --
M ctags/Makefile.am (1)
A ctags/parsers/ocaml.c (2094)
M meson.build (1)
M src/filetypes.c (2)
M src/tagmanager/tm_parser.c (21)
M src/tagmanager/tm_parser.h (1)
M src/tagmanager/tm_parsers.h (3)
M tests/ctags/Makefile.am (1)
A tests/ctags/simple.ml (34)
A tests/ctags/simple.ml.tags (8)
M tests/meson.build (1)
-- Patch Links --
https://github.com/geany/geany/pull/3163.patchhttps://github.com/geany/geany/pull/3163.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/3163
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany/pull/3163(a)github.com>
After successful installation of geany-plugins-2.0_setup.exe with standard settings only a few plugins are available in Geany.
Error message says plugins are not binary compatible with this release of geany and needs to be recompiled.
In previous version 1.38 already some plugins were missing like git-changebar but now lot more.
Both Geany and Geany-Plugins are installed in Windows user directory.
![grafik](https://github.com/geany/geany-plugins/assets/52318651/97da42b5-ce8a-41df-aed4-bbe80cecc711)
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany-plugins/issues/1292
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany-plugins/issues/1292(a)github.com>
The Fortran function random_init is not highlighted in f90 files.
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/3362
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany/issues/3362(a)github.com>
This fixes #3362.
I added the keywords from Fortran 2018 with the help of a python script (if this has to be done again in the future).
The current standard and keywords can be found here:
https://j3-fortran.org/doc/year/18/18-007r1.pdfhttps://github.com/cdslaborg/FortranKeywords
<details>
<summary>Script</summary>
```python
old_f = open("filetypes.fortran", "r")
old_lines = old_f.read().splitlines()
old_primary = set()
old_intrinsic_functions = set()
old_user_functions = set()
for line in old_lines:
s = line.split("=")
if s[0] == "primary":
for w in s[1].split():
old_primary.add(w)
elif s[0] == "intrinsic_functions":
for w in s[1].split():
old_intrinsic_functions.add(w)
elif s[0] == "user_functions":
for w in s[1].split():
old_user_functions.add(w)
old_f.close()
f = open("FortranKeywords2018.txt", "r")
lines = f.read().splitlines()
primary = set()
intrinsic_functions = set()
user_functions = set()
types_primary = {"specifier", "statement", "attribute"}
types_intrinsic_functions = {
"function_elemental",
"function_transformational",
"function_inquiry",
"function_void",
"subroutine",
"subroutine_atomic",
"subroutine_pure",
"constant",
"subroutine_collective",
"type_derived",
"module_intrinsic",
}
types_user_functions = {}
old_maping = {
"primary": set(),
"intrinsic_functions": set(),
"user_functions": set(),
"unspecified": set(),
}
for line in lines:
s = line.split(",")
ws = s[0].replace("(", " ").replace(")", " ").replace(".", " ").split()
# check old maping
for w in ws:
wl = w.lower()
if wl in old_intrinsic_functions and not wl in old_primary :
old_maping["intrinsic_functions"].add(s[1])
elif wl in old_primary and not wl in old_intrinsic_functions:
old_maping["primary"].add(s[1])
# elif wl in old_user_functions:
# old_maping["user_functions"].add(s[1])
old_maping["unspecified"].add(s[1])
old_maping["unspecified"] = (
old_maping["unspecified"]
- old_maping["primary"]
- old_maping["intrinsic_functions"]
- old_maping["user_functions"]
)
if s[1] in types_primary:
for w in ws:
primary.add(w.lower())
elif s[1] in types_intrinsic_functions:
for w in ws:
intrinsic_functions.add(w.lower())
elif s[1] in types_user_functions:
for w in ws:
user_functions.add(w.lower())
else:
print("not added:", s)
if s[0] in old_primary:
print("old_primary")
if s[0] in old_primary:
print("old_intrinsic_functions")
f.close()
old_dubs = old_intrinsic_functions.intersection(old_primary)
wrong = (
primary.intersection(old_intrinsic_functions).union(
intrinsic_functions.intersection(old_primary)
)
- old_dubs
)
print("wrong:", wrong)
# print("old duplicates:", old_dubs)
# dubs = primary.intersection(intrinsic_functions)-old_dubs
# print("dubs:",' '.join(dubs))
print("\nmissing primary:", " ".join(primary - old_primary))
print(
"\nmissing intrinsic_functions:",
" ".join(intrinsic_functions - old_intrinsic_functions),
)
print("\n approximate old maping:", old_maping)
# print("legacy:")
# print("primary:", old_primary-primary)
# print("intrinsic_functions:", old_intrinsic_functions-intrinsic_functions)
```
</details>
Some if the keywords are added to both primary and intrinsic_functions, but this was also the case in the past. I mapped keyword categories (from the standard) to "primary" and "intrinsic_functions" like it has been in the past, and new categories like "module_intrinsic" have been added to the most fitting one.
As far as I can tell, it is correct and all keywords are handled. Also, I didn't remove any of the existing keywords to keep compatibility to older Fortran versions.
<details>
<summary>Category Mapping</summary>
```python
primary = {"specifier", "statement", "attribute"}
intrinsic_functions = {
"function_elemental",
"function_transformational",
"function_inquiry",
"function_void",
"subroutine",
"subroutine_atomic",
"subroutine_pure",
"constant",
"subroutine_collective",
"type_derived",
"module_intrinsic",
}
```
</details>
You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany/pull/3656
-- Commit Summary --
* update fortran keywords
-- File Changes --
M data/filedefs/filetypes.fortran (4)
-- Patch Links --
https://github.com/geany/geany/pull/3656.patchhttps://github.com/geany/geany/pull/3656.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/3656
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany/pull/3656(a)github.com>
The Help command does not work on my Linux Mint 21 system, because BROWSER env variable is not set so `sensible-browser` does nothing. At minimum, the Help command should report an error when the return value is non-zero.
However, my system does have a preferred browser set to firefox - I'm not sure if this is part of a (freedesktop.org?) standard. Ideally Geany would use that as the default browser tool. Or is that moving to $BROWSER instead?
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/3468
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany/issues/3468(a)github.com>
This happens with erlang files, just erlang files
Im on 1.37. If im not wrong, this didnt happened on 1.36...
It looks (erlang file):
![Screenshot_2020-11-09_09-55-08](https://user-images.githubusercontent.com/8375315/98543800-c2378780-2271-11eb-9407-01aa93edb541.png)
It should look (python file):
![Screenshot_2020-11-09_09-55-25](https://user-images.githubusercontent.com/8375315/98543814-c794d200-2271-11eb-85ac-c7fca5f635b9.png)
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/2650