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).
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).
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.
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).
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().
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().
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.
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.
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.
* 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.
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 <simon.marchi@polymtl.ca>
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
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
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.
`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.
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.
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.