382 Commits

Author SHA1 Message Date
Thomas Martitz
302b40e977 doxygen: various doxygen-related fixes in preparation for gtkdoc generation
Major changes are:

- Some types were accidentally documented, even though they couldn't be
accessed by any exported API functions. Those are removed (especially
from encodings.h).

- Some types were not documented where they should. Documentation is
added for them. Members are not necessarily documented separately if names
are self-explanatory.

- @a XXX refers to parameters of the function, it's inappropriate for
highlighting NULL (change to @c)

- As per consensus, build_info is removed from GeanyData (replaced by
pointer to avoid ABI break; added grep-able abi-todo tag so it doesn't get
forgotten)
2015-12-17 09:52:52 +01:00
Matthew Brush
bff71b3a88 Fix "Open in New Window" command arguments
Closes #590
2015-08-03 17:04:52 -07:00
Thomas Martitz
0b4228b94c win32: change default plugin dir to match Linux.
There is no need to do it differently as Linux here, and it confuses the
autotools based compilation of geany-plugins which installs to libdir/geany
unconditionally.
2015-07-01 23:41:37 +02:00
Colomban Wendling
14bcd9c87d Fix binary relocation support 2015-06-26 22:33:16 +02:00
Dimitar Zhekov
d8ad369f8e Merge branch 'master' of https://github.com/geany/geany into spawn
Conflicts:
	src/build.c
	src/tools.c
2015-04-18 12:31:41 +03:00
Thomas Huth
e9f4365a37 Fix typos in comments (discovered with the codespell utility) 2015-04-18 08:25:59 +02:00
Matthew Brush
8bbe58cdf7 Fix a compiler warning about const 2015-04-10 18:52:46 -07:00
Colomban Wendling
f3078ebbc6 Merge branch 'kugel-/linkage-cleanup_rebase-for-merge'
This merges PR#429 with only small history cleanup (no code changes),
and ABI bump.

Closes #355, #358 and #429.
2015-04-10 16:54:30 +02:00
Colomban Wendling
9644fb0ae2 Define GEANY_{EXPORT,API}_SYMBOL from the build system
This makes it easier to define it consistently to what the compiler
and platform supports, and avoids having to include a special header
everywhere, which is some kind of a problem for separate libraries
like TagManager and especially Scintilla.

As we only use these macros from the source and not the headers, it
is fine for it to be defined to a configure-time check from the build
system.

Warning: Although Waf and Windows makefiles are updated they are not
         tested an will probably required tuning.
2015-04-10 16:08:08 +02:00
Dimitar Zhekov
b3f3bfeee0 Alter utils.c to use the new spawning module
Also simplified the utils_open_browser() loop.
2015-03-29 13:47:13 +03:00
Colomban Wendling
f35614757b Mark an argument const 2015-03-17 14:09:31 +01:00
Matthew Brush
2f08670763 Mark all plugin API functions to have "default" (public) visibility
Adds a new header `pluginexport.h` to put the macros in, could be
moved into an existing header (support.h?) by I didn't want to drag
a bunch of existing stuff into the source files for this one macro.

TagManager has relative include, this could be fixed by changing the
include directories for it if it's a problem. Mark the Scintilla
functions exported by re-declaring them in sciwrappers.c with the
attribute to avoid changing upstream Scintilla code.
2015-03-10 22:06:47 +01:00
Colomban Wendling
c3d7acfe81 Merge pull request #433 from b4n/statusbar-eol-short-name
Use the short name for EOL mode in the statusbar
2015-03-06 02:45:39 +01:00
Colomban Wendling
e0116ccd9c Merge pull request #418 from b4n/spell-windows-windows
Spell "Windows" as "Windows", not "Win".
2015-03-04 15:58:47 +01:00
Colomban Wendling
888d3dc9dc Use the short name for EOL mode in the statusbar
See discussion in https://github.com/geany/geany/pull/418
2015-03-04 15:57:26 +01:00
Jiří Techet
232d4dacde Add right-click launcher icon entry creating a new window
Normal clicking the launcher icon just brings the application to
the foreground so there must be a way users can create a new
instance of Geany.

Add an entry "New Window" to the context menu which is shown
when right-clicking the Geany icon in the launcher (most applications
have the "New Window" entry there).

In addition, fix "Open in new window" when using app bundle.

Since both of these functionalities create a new Geany instance,
factor-out the instance creation code into a new utility function
and use it in both cases.
2015-03-04 12:40:45 +01:00
Jiří Techet
18d517bd95 Use gtk-mac-integration so app bundle can be created on OS X
This patch adds the gtk-mac-integration library and uses it to
adjust various paths in Geany to point it inside the app bundle
if Geany runs from inside the bundle.

It adds the utils_resource_dir() utility function to return
correct directories for various kinds of resources for all supported
operating systems. Using this function the patch adjusts all Geany
resource, plugin, icon, doc, and locale paths.
2015-03-04 12:40:27 +01:00
Colomban Wendling
b2e5d08dad Spell "Windows" as "Windows", not "Win"
This makes the labels more clear using the canonical name, and avoids
any confusion with the English word "win".
2015-02-10 17:15:38 +01:00
Jiří Techet
6a132ef3fa CR line endings are used on old Mac OS systems only - make it more explicit in labels
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.
2015-02-10 15:57:50 +01:00
Colomban Wendling
608ab0f60c Document the fact utils_spawn_sync() accepts NULL for all output arguments 2014-10-14 23:23:13 +02:00
Colomban Wendling
b1b9e6d19a Fix configuration directory location on non-Windows
3e089e4c2c914a4b8885daa65e784a227bd2d6b0 accidentally switched from
`g_get_user_config_dir()` to `g_get_user_data_dir()` as the location
for the user's configuration directory.
2014-10-06 16:24:26 +02:00
Enrico Tröger
3e089e4c2c Reading the config directory from the Windows API instead of GLib
Before we used g_get_user_config_dir() but GLib changed the returned
location in newer versions, so use the Windows API directly
to get the old location, at least for now.
Also add utils_get_user_config_dir() wrapper.

Code is based almost completely on a patch from Matthew.
2014-10-05 12:55:33 +02:00
Nick Treleaven
e1988964c1 Fix Windows build 2014-08-01 12:05:30 +01: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
de57548a71 Fix a few unlikely corner-case leaks
Fix a few leaks that can only happen in case of programming error.

Thanks to Pavel Roschin and his cppcheck for spotting them!
2014-05-05 16:03:25 +02:00
Colomban Wendling
5eb526f9d0 Improve implementation of utils_str_equal() 2014-04-27 22:36:25 +02:00
Colomban Wendling
4ce6409e89 Remove useless utils_invert_color() 2013-12-04 15:46:05 +01:00
Colomban Wendling
8980970630 Unify color parsing
Change utils_parse_color() to use gdk_color_parse() and follow its
syntax, additionally supporting our "0x" prefix as a synonym for the
"#" prefix;  and use this everywhere.

Also add utils_color_to_bgr() and utils_parse_color_to_bgr() to provide
conversion to the 24 bits BGR format used by Scintilla.
2013-12-04 15:31:17 +01:00
Colomban Wendling
ebde42617a Accept colors with only 1 digit per channel in utils_parse_color()
AKA short HTML color notation.
2013-12-02 22:53:35 +01:00
Colomban Wendling
11a2f0ee91 Properly validate input in utils_parse_color() 2013-12-02 22:44:40 +01:00
Colomban Wendling
507005ca54 Rename utils_strtod() to utils_parse_color()
Rename the function to a more sensible name, and remove unnecessary
arguments.  Now, format (# or 0x) is auto-detected.
2013-12-02 22:38:11 +01:00
Colomban Wendling
39fa004619 Fasten utils_tidy_path() a little and fix possible leaks in it
Fix possible leaks with bad paths, and also speed up some part of the
function by avoiding unnecessary allocations and string length
computations.
2013-11-07 23:11:15 +01:00
Colomban Wendling
47609ec102 Plug a possible memory leak 2013-11-03 01:52:12 +01:00
Colomban Wendling
02852b33b0 Simplify utils_get_hex_from_color() and plug a possible memory leak in it 2013-11-03 01:51:03 +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
Colomban Wendling
f23b7267cf Fix possible dereference of NULL pointer
Use g_set_error() instead of doing it manually and forgetting to check
whether the pointer is NULL or not before dereferencing it.

Spotted by clang --analyze.
2013-07-13 22:13:07 +02:00
Colomban Wendling
3291c30de5 Fix utils_parse_and_format_build_date() 2013-03-17 19:36:17 +01:00
Enrico Tröger
fbce364182 Improve build date conversion code
Don't use strptime() as it is not very portable, instead use a GDate and use the
code also for the date output in --version.
2013-03-17 17:17:09 +01:00
Duncan de Wet
e506a370e9 Added HTML5 self-closing tags
http://www.w3.org/TR/html-markup/syntax.html#syntax-elements
2013-01-13 23:00:59 +01:00
Colomban Wendling
d80bc7ce56 Update FSF address
Closes #3557875.
2012-08-24 19:25:57 +02:00
Colomban Wendling
1c2c455b1d Update copyright information 2012-06-18 01:15:04 +02:00
Colomban Wendling
c30936028e When not sorting the file list, don't preserve read order
If the caller doesn't want the list to be sorted, there is no need to
preserve the order in which the files were actually read, since that
order is undefined anyway.
2012-05-31 21:58:37 +02:00
Nick Treleaven
9426104f0b Remove utils_build_path() - use g_build_filename instead 2012-02-06 16:41:18 +00:00
Nick Treleaven
e7befb410c Remove utils_make_filename() - use g_strconcat instead 2012-02-06 16:36:51 +00:00
Nick Treleaven
58164c65f0 Remove static function utils_slist_remove_next() 2012-01-26 16:10:53 +00: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
Colomban Wendling
0aea05d10d Fix various integer signedness and minor styling issues
Most noteworthy change is that all build commands IDs and groups are
now unsigned everywhere negative values aren't explicitly handled with
a special meaning.  This should not change anything in behavior, only
makes clear the index won't underflow.
2011-12-18 00:32:22 +01:00
Nick Treleaven
13597df9df Convert Unix path separators on Windows when opening documents
Unix path separators can occur e.g. when using MSYS.
Windows does not allow filenames to contain Unix path separators so
this should be safe.
2011-11-01 15:46:11 +00:00
Nick Treleaven
fdd5537cc0 Use g_return_val_if_fail for some invalid NULL arguments 2011-10-31 17:22:39 +00:00