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