360 Commits

Author SHA1 Message Date
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
Matthew Brush
a23e999b7b Bump GTK+ version to 2.16 2011-10-28 10:25:58 -07: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
b673f0534e Fix argument description.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5998 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-10-05 15:33:40 +00:00
Colomban Wendling
965ef1a285 Cleanup utils_strpos()
Use strstr() to find the substring, which makes the code simpler and
is way faster (new version is nearly 2 times faster on my machine).

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5994 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-10-03 17:06:12 +00:00
Colomban Wendling
7ff6f6b799 Cleanup utils_remove_ext_from_filename()
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5993 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-10-03 17:05:57 +00:00
Colomban Wendling
386b32122e Avoid an unnecessary string duplication in utils_str_casecmp()
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5992 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-10-03 17:05:41 +00:00
Nick Treleaven
5b220d70a2 * Merge branches/unstable:
- tagmanager/php.c:
   Fix parsing keyword-qualified functions strictly, e.g. don't 
   parse 'staticfunction' or 'fatfunction'.
 - src/utils.c, src/utils.h, src/editor.c:
   Use GRegex for snippet indentation replacement - fixes wrong 
   behaviour with Mac line endings.
 - tagmanager/lregex.c, TODO:
   Use GRegex for CTags instead of POSIX regex - GRegex is more 
   powerful. This also fixes a (HTML) performance issue on Windows. 
   Geany will now print a debug warning when using the "b" CTags 
   regex flag option for non-extended syntax. This is not currently 
   used by Geany's parsers.
   Note: GNU regex can't be removed yet as it's still used elsewhere 
   by Geany.
 - src/build.c, doc/pluginsignals.c:
   When saving on build, prompt for a filename if necessary.
   Emit the "build-start" signal only if saving succeeds.
 - src/build.c:
   Use #ifdef SYNC_SPAWN instead of G_OS_WIN32 for easier testing with 
   glib's asynchronous spawning (which doesn't work on Windows).
 - src/win32.c, src/win32.h, src/dialogs.c:
   Use GTK unsaved file dialog on Windows too because the button names 
   should be specific.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5987 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-10-03 14:35:11 +00:00
Nick Treleaven
9ca8db635a Use GRegex for snippet indentation replacement - fixes wrong
behaviour with Mac line endings.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/unstable@5973 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-09-30 11:10:22 +00:00
Colomban Wendling
0eadc9bd7b Compute needle length only once in utils_string_replace_all()
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5966 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-09-28 19:49:45 +00:00
Colomban Wendling
a89fcc2cc4 Fix utils_string_replace_all() to accept a NULL replacement again
Support of NULL as the replacement was lost in the code refactoring
introduced by revision 5730, and it broke a few plugins.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5965 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-09-28 19:49:28 +00:00
Colomban Wendling
0ebc4ed3a6 Minor wording fix
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5923 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-09-16 14:47:27 +00:00
Colomban Wendling
4151a973dd Ask the user if spawn fails in utils_open_browser()
Ask the user to configure a valid browser command if spawning it fails
rather than falling back to some arbitrary hardcoded defaults.

This avoid spawning an unexpected browser when the configured one is
wrong, and gives the user a chance to correctly fix the preference.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5918 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-09-15 02:01:38 +00:00
Colomban Wendling
5d687aad27 Cleanup code in utils_open_browser()
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5909 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-09-11 17:06:11 +00:00
Colomban Wendling
ddb4ad5fa5 Fix some whitespace style errors
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5886 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-08-06 18:34:14 +00:00
Colomban Wendling
3bd6a01525 Fix a few signed vs. unsigned and differently-sized integer problems
Most notably, utils_get_line_endings() and document_open_file_list()
don't support -1 as the size anymore.  If the size should be computed
from null-terminated data, the caller code must take care of doing so.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5855 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-06-17 22:52:17 +00:00
Colomban Wendling
e9e3f6a8ab Remove most of the checks for GIO
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5852 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-06-17 22:51:17 +00:00
Nick Treleaven
26ddc69e5d Fix warning in utils_find_open_xml_tag() with malformed tags like
<~foo> (oops).



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5737 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-04-25 16:23:58 +00:00
Nick Treleaven
2a45938205 Add utils_find_open_xml_tag_pos() API function (patch by Eugene
Arshinov, thanks).



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5733 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-04-23 11:44:31 +00:00
Nick Treleaven
a89ba90b15 Add utils_string_find() to search in a fixed range.
Change utils_string_replace() to just replace a fixed number of
characters.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5730 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-04-19 16:36:29 +00:00
Nick Treleaven
0b2d16a41a Add function utils_string_replace() to replace in a fixed range.
Remove utils_string_replace_helper() and update cursor marker code.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5726 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-04-15 16:59:15 +00:00
Nick Treleaven
8a817e694b Make utils_build_path() return a copy for safety.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5721 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-04-13 12:59:20 +00:00