8539 Commits

Author SHA1 Message Date
Jiří Techet
3495cf05ab Remove saved file's mtime check comparing it with the current time
As the edited file can be a remote file on a server with a different time
zone, the mtime can actually be in the future. In this case the check not
only shows the misleading warning but more importantly the

doc->priv->mtime < st.st_mtime

check never happens and the user doesn't get the modified file prompt.

Setting

doc->priv->mtime = time(NULL);

to the current time on file creation isn't harmful in any way because the
saved file's mtime is taken but it's a bit misleading so better to set it
to 0.
2015-08-18 19:48:12 +02:00
Colomban Wendling
624048ea5e Keep selection stable when replacing tabs and spaces 2015-08-16 11:38:51 -07:00
Pavel Sountsov
2a887fee30 Don't strip spaces from the next line when whole lines are selected. 2015-08-16 11:22:01 -07:00
Pavel Sountsov
186a43c1d1 Document the changes to space/tab replacement 2015-08-16 11:22:01 -07:00
Pavel Sountsov
795230c572 Use current selection when replacing tabs/spaces from the menu.
When saving the file, the tabs are removed from the whole file as usual.
2015-08-16 11:22:01 -07:00
Pavel Sountsov
381d74b1a7 Use current selection when stripping trailing whitespace from the menu.
When the lines are stripped due to the file being saved, ignore the selection.
2015-08-16 11:22:01 -07:00
Frank Lanitz
31325bb231 Update of Swedish translation 2015-08-06 09:02:46 +02:00
Dominic Hopf
a26a2257db Merge pull request #599 from oliwer/perlkeywords
Add new keywords for recent versions of Perl
2015-08-05 10:24:52 +02:00
Olivier Duclos
a6c3cdc2cd Add new keywords for recent versions of Perl
This commit adds the following new keywords for perl:
 - say
 - state
 - given, when, default
 - __SUB__

While __SUB__ was introduced in perl 5.16, the others date back
to v5.10 released in 2007!
2015-08-05 10:05:02 +02:00
Matthew Brush
bff71b3a88 Fix "Open in New Window" command arguments
Closes #590
2015-08-03 17:04:52 -07:00
Wayne Nilsen
1b5ec633e3 Use Cargo tool for Rust build commands
Closes PR #557
2015-07-30 22:40:53 -07:00
Colomban Wendling
c0898618f9 Merge pull request #574 from eht16/doxygen_fixes
Fix Doxygen warnings
2015-07-22 21:52:10 +02:00
Enrico Tröger
50b150b66d Merge pull request #583 from eht16/win32_fix_native_dialogs
Windows: restore modern design of native file dialogs
2015-07-22 21:50:57 +02:00
Enrico Tröger
2ae6c7fd0f Fix Doxygen warnings
This resolves warnings from Doxygen about non-existing commands
caused by unescaped backslashes as well as multiply
defined section names.
2015-07-22 20:00:34 +02:00
Enrico Tröger
c5b0fc459a Merge pull request #573 from zhekov/cleanup-win32defines
Cleanup win32defines
2015-07-22 19:59:38 +02:00
Enrico Tröger
5510a5a00e Merge pull request #585 from codebrainz/remove-style-debug-print
Remove needless debug print
2015-07-21 21:31:43 +02:00
Matthew Brush
21bb11ddd7 Remove needless debug print
Prevents spamming the console when SCLEX_CONTAINER
is activated (ex. by plugins).
2015-07-21 11:15:27 -07:00
Enrico Tröger
97fca1b29d Windows: restore modern design of native file dialogs
This restores the previously used "modern design" of the Windows
native file open/save dialogs. Also make the dialogs resizable.

Fixes #578.
2015-07-19 23:13:45 +02:00
Jiří Techet
fb63f9e43a Use monospace font for the message window by default
Since both gcc and llvm use ^ to mark the position of the error now,
monospace font seems to be a better default font for the message window
to avoid the ^ character misalignment.

Fixes #435.
2015-07-18 21:28:40 +02:00
Colomban Wendling
1658babe45 Remove obsolete GTK compatibility code 2015-07-14 15:44:47 +02:00
Jiří Techet
2328f84e37 Disallow the possibility to use tm_tags_find() on unsorted array
This function won't work correctly on unsorted array because the second
part of the function (after the tags search) expects the array is sorted
by name. The only user of this is tm_source_file_set_tag_arglist() in which
we can go through the tags manually by ourselves (it needs only a single
value so the original behavior of tm_tags_find() wasn't a problem).
Eliminate the tags_search() function as it isn't needed any more.

Just cleanup, not functional change.
2015-07-14 09:46:59 +02:00
Jiří Techet
99e222ea37 Eliminate calls of slow tm_tags_extract() on big arrays
Do the same with struct/class/union... member tags as we do with
typenames - extract them from the edited file and merge them with
the array containing all of them so while editing, there should
be no slowdowns because one file usually doesn't contain so many
tags. This eliminates about 2s freeze when typing "." on a linux
kernel project with 2300000 tags.

Extract typename and member tags also for global tags in case someone
creates a giant tags file - this needs to be done just once when
loading the tag files.

All the remaining tm_tags_extract() in Geany are called on
file tag array only so there shouldn't be any performance problems.
2015-07-14 09:44:33 +02:00
Jiří Techet
5c18b3d132 Improve scoped search
This patch contains a bit too many things which are however related.

It started by the part in editor.c (where we previously used only the
first type we found to perform scoped search) by going through all the
possible variable types until the scoped search returns some result
(this is useful if variable foo is used once as int and once as struct
and if the int is the first type found, we won't get the struct's members).

This didn't work. After an hour of debugging, it turned out that
because tm_workspace_find_scope_members() calls internally
tm_workspace_find() and this function returns static array, this
invalidates the array returned by the tm_workspace_find() used
previously to get all the possible variable types.

Since this is really dangerous and hard to notice, I tried to eliminate
the static returns from both tm_workspace_find() and
tm_workspace_find_scoped_members().

The tm_workspace_find_scoped_members() function is where I got
stuck because as I started to understand what it's doing, I found
many problems there. This patch does the following in this function:

1. Eliminates search_global and no_definitions parameters because
we always search the whole workspace and this simplifies the slightly
strange logic at the end of the function.
2. Returns members from global tags even when something found in
workspace tags - previously global tags were skipped when something
was found from workspace tags but I don't see a reason why.
3. Adds the lang parameter to restrict tags by language (we do this
with normal search and the same should be done here).
4. Previously when searching for types with members the function
returned NULL when more than one such type was found (there should
have been >=1 instead of ==1 at line 906). This patch improves the
logic a bit and if multiple types are found, it tries to use the one
which is other than typedef because it probably has some members (the
typedef can resolve to e.g. int).
5. Previously the function prevented only direct typedef loops like

typedef A B;
typedef B A;

but a loop like A->B->C->A would lead to an infinite cycle. This patch
restricts the number how many times the typedef can be resolved by
using for loop with limited number of repetitions and giving up when
nothing useful is resolved.
6. Finally the patch tries to simplify the function a bit, make it
easier to read and adds some comments to make it clearer what the
function does.
2015-07-14 09:44:33 +02:00
Jiří Techet
ee3eeeb758 Merge tm_workspace_find() and tm_workspace_find_scoped()
They are basically identical except:

1. _scoped() compares scope in addition
2. _scoped() is missing the C/CPP tag compatibility part
3. _scoped() allows returning just single result (unused)
4. _scoped() allows not searching in global tags (unused)

Since we now always put lang also under tag->lang, the match_langs()
function is not necessary.

Extend the add_filtered_tags() (and rename it to fill_find_tags_array()) to
perform the tm_tags_find(), compare the scope and add scope
as parameter of tm_workspace_find() and eliminate tm_workspace_find_scoped()
completely.
2015-07-14 09:44:33 +02:00
Jiří Techet
5c6b423f70 Clean up tm_workspace_find()
1. Factor-out the part common to tags_array and global_tags
2. Get both C/CPP tags when either of the languages is specified (both
for global_tags and tags_array)
3. Remove unnecessary strcmp()s (tm_tags_find() should return only tags
with the specified name)
4. Various minor cleanups
2015-07-14 09:44:33 +02:00
Dimitar Zhekov
87496f657d Cleanup win32defines
The git PR for this change contains a long explanation.
2015-07-13 19:46:17 +03:00
Colomban Wendling
0f5e379ec8 Update making-a-release
* geany.nsi and doc/geany.html are now generated;
* freecode.com is dead.
2015-07-13 00:47:18 +02:00
Colomban Wendling
a50306cab3 Post release version bump
Say hello to Geany 1.26 "Rosset"!
2015-07-12 19:48:50 +02:00
Colomban Wendling
7d9264a6e7 Set release date 2015-07-12 18:04:56 +02:00
Enrico Tröger
ffe7206cc8 Merge pull request #570 from eht16/win32_header_order
Include win32defines.h before win32.h to fix build errors
2015-07-12 15:50:15 +00:00
Enrico Tröger
e5471fb5ce Include win32defines.h before win32.h to fix build errors 2015-07-12 17:40:30 +02:00
Frank Lanitz
59185ae8e0 Update copyright string to reflect year 2015 2015-07-12 17:06:10 +02:00
Frank Lanitz
6c9a55d6ef Update release date inside man-page 2015-07-12 17:05:45 +02:00
Colomban Wendling
290a80ab71 Merge pull request #569 from b4n/spawn-wif-and-doc
Prefix the WIF* macros with SPAWN_ and add short doc comments, and fix
Doxygen integration.
2015-07-12 16:46:47 +02:00
Colomban Wendling
bb28bdd1d3 Fix spawn documentation so it appears in the API docs 2015-07-12 16:32:10 +02:00
Colomban Wendling
feca48b59e spawn: Move macros documentation so Doxygen can find them 2015-07-12 16:32:07 +02:00
Dimitar Zhekov
7819cd11c7 Make the search.c exit status checks platform independent 2015-07-12 17:12:20 +03:00
Dimitar Zhekov
2f237c91a1 Prefix the WIF* macros with SPAWN_ and add short doc comments 2015-07-12 17:06:02 +03:00
Colomban Wendling
64fb9f9a51 Don't return with an argument in a function returning void 2015-07-12 15:27:27 +02:00
Enrico Tröger
f11a2eb013 Merge pull request #563 from geany/elextr-news-addition
Update NEWS to mention windows command quoting
2015-07-12 12:51:12 +00:00
elextr
b891c84582 Update NEWS to mention windows command quoting 2015-07-12 14:42:11 +02:00
Colomban Wendling
5b341b1231 spawn: Fix a typo in Windows compatibility code
Thanks to Dimitar for spotting this.
2015-07-12 14:23:08 +02:00
Colomban Wendling
01b01cc83a Merge pull request #561 from b4n/filebrowser-use-spawn
filebrowser: Use Spawn module to launch the external command
2015-07-12 14:15:30 +02:00
Enrico Tröger
a54cca738f Install src/spawn.h as it is part of the plugin API 2015-07-12 10:02:56 +02:00
Colomban Wendling
c021447394 Fix a few typos in NEWS 2015-07-12 01:48:56 +02:00
Colomban Wendling
676f3794fc Merge pull request #553 from b4n/no-reload-maintain-history-by-default
Disable "maintain history on reload" by default
2015-07-11 22:34:41 +02:00
Colomban Wendling
73822e77ec Merge pull request #556 from b4n/gtk3-in-news
Replace references to GTK2 with GTK+ and "stabilize" GTK3 in NEWS
2015-07-11 22:22:09 +02:00
Colomban Wendling
6c753e591b filebrowser: Use Spawn module to launch the external command
This makes the command syntax consistent with other
Geany ones and more native on Windows.
2015-07-11 22:14:25 +02:00
Colomban Wendling
05f35ed683 Include spawn.h in geanyplugin.h as it has Plugin API bits in it 2015-07-11 22:12:08 +02:00
Enrico Tröger
5379e1387f Windows installer: fix plugin installation directory 2015-07-11 16:36:03 +02:00