Fix VPATH builds and improve portability around Make implementations
This adds new methods, and fixes build removing 2 deprecated (and then missing) ones.
Latest Scintilla interface file has a few trailing spaces which confuses the mkiface script. So, fix it to ignore those.
Try and avoid compiler forgiveness about unknown flags to really know whether the compiler understands the flag or just doesn't care much. This avoids adding flags the compiler might warn about later on, polluting the output. In practice, CLang does this with gcc-like warning flags: it does not treat the ones it doesn't understand as erroneous flags, yet emits warnings about them by default. This leads to the actual build being riddled with warnings about unknown flags, hiding relevant warnings. To better detect such forgiving compiler behavior, try and find the flag the compiler has for treating warnings as errors, and use it when checking for additional flags. This assumes that if such a flag is used the compiler will either error out when passed an unknown flag, or just shut up completely -- either being OK with us.
This was not a real problem because the passed column ID was 0, so was interpreted as NULL, which is a valid value, but it still wasn't right.
gwh-enum-types.[ch] are automatically generated, but are also checked into version control, so we need to avoid any unwanted changes. To achieve this, use basenames instead of full names in the generated files. This requires glib-mkenums >= 2.22, but it should be old enough not to cause dependencies concerns. If this dependency appear to be a problem, another solution could be to simply remove reference to the source files in the generated output. These files need to stay checked in even if they are auto-generated because they contain translatable strings that the translation system has to be able to extract, whether the plugin is built or not. Close #163.
The second argument for SCI_INDICATORCLEARRANGE is the length to clear, not the end position. This used to work on earlier versions of Scintilla for some reason, probably because it didn't check length, but current versions do nothing with an invalid length.
As both plugins actually rebuild source files differently for the tests, put the test controller in the same directory.
The monitoring callbacks used to only push an update to the very document for which the monitoring was initially setup. However, as monitoring is not reset when switching to another file in the same repository, it was easy to nullify the monitoring by opening two files from the same repository and closing the first one, as then the monitoring callbacks couldn't push the update to the closed document. So, fix the monitoring callbacks to push an update to the current document at the moment they are fired. This is not a problem because the monitoring is properly reset when switching between different repositories' files, and the update doesn't enforce a repository anyway.
`word_char` was only conditionally set to a non-NULL value, but unconditionally dereferenced through a `strchr()` call. While it seems highly unlikely to actually happen, play it safe and set the fallback value by default. Found by cppcheck.
Geany hides the GtkComboBoxText API on GTK 2.24 because it wants to keep the very same ABI on all GTK2 builds. So, we have to do the same otherwise we get mixed APIs which doesn't quite work. While at it, remove the redundant API mappings. Closes #193.
Incorrect variable reference in `sizeof` expression lead to using the size of a pointer as the length of the buffer. This used to work on 64 bits systems because the buffer is 8 bytes in length, which happens to be the size of a pointer on 64 bits systems, but it fails on 32 bits ones because the size of the pointer is 4 bytes there, which is too small for what we actually want to write, leading to a truncation of the value. Thanks to Mark Burton for discovering the bug and providing a patch!