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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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 ;)