85 Commits

Author SHA1 Message Date
Nick Treleaven
e1988964c1 Fix Windows build 2014-08-01 12:05:30 +01:00
Matthew Brush
4d22aa4850 Merge branch 'header-cleanup'
Closes #272
2014-05-21 15:43:40 -07:00
Matthew Brush
4efcbab332 Include what you use
This is a mega-commit - because most of it had to be done in one go
otherwise some commits would fail to compile - that attempts to fix a
few problems with Geany's includes as well as various other related
cleanups. After this change it's easier to use includes and there's
little worry about which order things are included in or who includes
what.

Overview of changes:

* Include config.h at the start of each source file if HAVE_CONFIG_H
  is defined (and never in headers).
* Go through each source file and make the includes section generally
  like this:
  - Always config.h first as above
  - Then if the file has a header with the same name, include that
  - Then include in alphabetical order each other internal/geany header.
  - Then include standard headers
  - Then include non-standard system headers
  - Then include GLib/GTK+ related stuff
* Doing as above makes it easier to find implicit header include
  dependencies and it exposed quite a few weird problems with includes
  or forward declarations, fix those.
* Make geany.h contain not much besides some defines.
  - Add a little header file "app.h" for GeanyApp and move it there
  - Move "app" global to new "app.h" file
  - Move "ignore_callback" global to "callbacks.h"
  - Move "geany_object" global to "geanyobject.h"
* Add an include in "geany.h" for "app.h" since GeanyApp used to be
  defined there and some plugins included this header to access
  GeanyApp.
* Include "gtkcompat.h" everywhere instead of gtk/gtk.h so that
  everywhere sees the same definitions (not a problem in practice AFAIK
  so this could be changed back if better that way.
* Remove forward declarations from previous commits as some people
  apparently consider this bad style, despite that it reduces inter-
  header dependencies.

TODO:
* As always, to test on win32
* As always, to test with not Autotools
* Test plugins better, both builtin and geany-plugins, likely API/ABI bump
* Test with various defines/flags that may change what is included
* win32.[ch] not really touched since I couldn't test
2014-05-21 15:37:19 -07:00
Colomban Wendling
3d549f59e8 Fix a sign comparison warning 2014-05-21 16:13:22 +02:00
Colomban Wendling
894207d0e3 Don't use deprecated gdk_get_display() 2014-05-21 16:08:38 +02:00
Enrico Tröger
bd811b96ca Change include order on Windows
As suggested by a preprocessor warning from winsock2.h
(i686-w64-mingw32/include/winsock2.h:15:2: warning: #warning Please
include winsock2.h before windows.h).
2014-04-06 21:52:17 +02:00
Colomban Wendling
0eec7764af Fix truncation of the data retrieved with --list-documents
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.
2013-12-17 16:17:21 +01:00
Colomban Wendling
82f82ed372 Use GLib's portable version gethostname(): g_get_host_name()
Drop our own portability layer and use GLib's one instead (which
actually does exactly the same as our own).

Thanks to Matthew for spotting this.
2013-08-18 00:52:48 +02:00
Nick Treleaven
0998f1c19c Make code more readable by renaming poorly named macros NZV and NVL
Closes #159
2013-08-14 21:54:20 -07:00
Nick Treleaven
6d33485337 Fix warning 'comparison between signed and unsigned integer expressions'
With gcc on Windows.
2013-08-11 14:53:35 +01:00
Yosef Or Boczko
18bc2d92c1 Fix GTK3 build under Windows 2013-06-25 00:14:37 +02:00
Colomban Wendling
3ae884c13f Make X11 backend specific code GTK3-proof 2012-10-08 20:08:07 +02:00
Colomban Wendling
d80bc7ce56 Update FSF address
Closes #3557875.
2012-08-24 19:25:57 +02:00
Colomban Wendling
c2c6a70515 Open files with leading or trailing whitespaces through the socket 2012-08-08 15:35:46 +02:00
Colomban Wendling
1c2c455b1d Update copyright information 2012-06-18 01:15:04 +02:00
Eugene Arshinov
f4afe96880 Fix opening project in already running instance (via socket).
Previously the code didn't properly handle the case when other project
is already opened.
2012-03-18 15:45:41 +01:00
Colomban Wendling
01fea3e747 Remove possible '/' from display name when building socket filename
MacOS X seems to have slashes in the display name, which prevent the
socket file from being created.  So, replace such characters that may
not appear in a filename with an underscore.
2012-02-10 01:18:30 +01:00
Nick Treleaven
b287553e4a Use 'SETPTR' instead of 'setptr'
This makes it clearer we're using a macro.
2012-01-25 16:26:16 +00:00
Nick Treleaven
308f98a2b9 Use gssize to avoid casts for encodings_convert_to_utf8_*() 2012-01-03 13:30:38 +00:00
Dimitar Zhekov
6738d43dee --read-only cleanup
Use the global variable only when needed and add an initializer for it
in the default options.
2011-11-21 21:48:32 +01:00
Enrico Tröger
7aa9160b5f Mention new openro command 2011-11-20 14:48:05 +01:00
Thomas Martitz
8f280ed884 New --read-only commandline option
This adds a new commandline option --read-only (or -r). It's implemented
according to the behavior agreed on on the mailing list:

--read-only applies to all files on the command line
irrespective of positioning and has no effect on any other files
opened by session or menu (...)

Current behaviour on attempting to re-open a file with different
read-only status is that nothing happens, the already open
file is raised but not changed. (...)
2011-11-17 16:41:51 +01:00
Matthew Brush
c9a32bfdc9 Make use of gtk_widget_get_window() added in GTK+ 2.14 2011-11-06 18:25:48 -08:00
Matthew Brush
bd5fba7eb5 Remove extra whitespace at end of lines in all source files.
* Processed with rstrip-whitespace.py script added to scripts/ directory.
* Script run on all .c and .h files in src/ and plugins/ directories.
* Also remove more than one newline at the end of files.
2011-10-11 21:52:58 -07:00
Colomban Wendling
d06e9f4575 Remove $Id$ and $Date$ SVN keywords 2011-10-09 22:57:35 +02:00
Nick Treleaven
53a0121f69 Fix accept pointer signedness warning portably (hopefully) using socklen_t.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/unstable@5974 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-09-30 11:11:29 +00:00
Colomban Wendling
7698bf60a7 Improve usage of G_(UN)?LIKELY()
G_(UN)?LIKELY() should be only used on whole conditional expressions,
and only if the branching is very highly predictable, not if it is only
more probable.

These macros should be used with care because a wrong prediction may
be a lot worst than what a good prediction can give.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5625 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-03-24 22:00:18 +00:00
Enrico Tröger
bf4067f910 Rename utils_is_file_writeable() into utils_is_file_writable().
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5539 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-02-06 16:47:18 +00:00
Enrico Tröger
6ac2623208 Update copyright information.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5528 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-01-19 19:39:09 +00:00
Nick Treleaven
2473ab6862 Revert X11 workspace socket support as it needs more work; moved
to workspace-sockets branch.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5292 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-10-07 14:10:32 +00:00
Nick Treleaven
4c3ab61c3f Use a separate socket per workspace on X (patch by Erik de Castro
Lopo, thanks).



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5232 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-09-15 17:04:23 +00:00
Enrico Tröger
8c963d2829 Make string arguments const where appropriate (patch by Colomban Wendling, thanks).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4862 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-04-25 17:43:39 +00:00
Enrico Tröger
df8e08dbe8 Fix Windows build by properly guarding Unix-only code.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4848 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-04-21 18:50:48 +00:00
Enrico Tröger
45b4cd4a7d When starting and trying to access the Unix Domain socket of a potentially running instance, first compare file ownership with the user id of the running process to prevent accessing a wrong socket file (part of #2985463, this might not yet be the final solution).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4842 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-04-19 21:20:15 +00:00
Enrico Tröger
7159c7c371 Add new command line option --list-documents to return a list of currently opened documents (closes #2979933).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4820 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-04-11 21:56:50 +00:00
Enrico Tröger
7ba4a81181 Update copyright information.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4518 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-01-01 22:55:18 +00:00
Enrico Tröger
d9e7c95531 Allow opening Geany projects remotely.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4455 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-11-29 19:59:13 +00:00
Nick Treleaven
1986d915cc Run ./scripts/fix-alignment.pl -w src/*.[hc] plugins/*.[hc] (skipping generated files).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4199 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-09-16 14:13:38 +00:00
Enrico Tröger
a95a59a42f Remove all G_LIKELY macros inside g_return_if_fail() statements as this is redundant.
Remove many other G_LIKELY/G_UNLIKELY macros which doesn't make much sense to keep the code more readable.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3708 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-04-15 22:47:33 +00:00
Enrico Tröger
500935d788 When opening files from a remote instance on X11, set the window server time to encourage window managers to pop up the main window (related to #2735467 and #2276179).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3703 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-04-08 16:06:25 +00:00
Enrico Tröger
a9dc990049 Start using G_LIKELY/G_UNLIKELY macros to gain a little more performance when building the code with gcc.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3687 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-04-05 21:07:40 +00:00
Enrico Tröger
66285ef9f1 Don't present the main window of a running instance when starting a second instance separately.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3632 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-03-16 14:41:10 +00:00
Nick Treleaven
00de18c7a3 Minor fixes.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3631 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-03-16 14:03:20 +00:00
Enrico Tröger
3be9ab0937 Reduce default file permissions on the Unix Domain socket file (reported by Jörg Sommer, thanks).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3628 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-03-15 07:50:05 +00:00
Enrico Tröger
4b5e88af2a Fix wrong logic.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3503 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-01-22 20:32:04 +00:00
Enrico Tröger
c980b2e4b1 Minor cleanup in the socket code.
When files are opened remotely, always use gtk_window_present() to bring the main window to front or whatever the window manager decides to do (part of #2276179).
On Windows, we send a pointer to the main window to the remote instance which then brings the window to the front (grab focus). This should work better than the previous implementation and should avoid the blinking tasklist item.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3502 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-01-22 20:31:35 +00:00
Enrico Tröger
c636728975 Fix several compiler warnings and build errors (patch by Daniel Richard G., thanks).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3460 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-01-11 18:29:39 +00:00
Enrico Tröger
39a6eb455e Update copyright information.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3446 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-01-04 18:30:42 +00:00
Enrico Tröger
c8a5db5f6b Update comment about using different configuration directories with multiple instance support on Windows.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3371 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-12-11 19:05:17 +00:00
Enrico Tröger
023c70b887 Mention Hiro in the copyright notice as the code is based on Sylpheed's socket implementation.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3365 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-12-11 17:37:21 +00:00