61 Commits

Author SHA1 Message Date
Colomban Wendling
b52dbb2719 Always try to honor the charset found in the document
Don't assume a file that is valid as UTF-8 is actually UTF-8 if we
have an information telling us otherwise in the document (a regex
match).

Also fix check for locale encoding.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5667 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-03-31 23:28:10 +00:00
Colomban Wendling
907a79263d Better handle badly-written encoding names
Make encoding name comparison more permissive, finding names that are
very likely to refer to the same encoding.
For example, "utf8" now matches "UTF-8", and "iso8859_1" matches
"ISO-8859-1".

This makes encodings_get_idx_from_charset() and
encodings_get_from_charset() more permissive, and allow to normalize
an encoding name.
It is used to better handle user-provided encodings (e.g. one found by
a regex search) by normalizing it to the Geany name.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5666 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-03-31 23:27:58 +00:00
Colomban Wendling
b32bb7943f Align fill() calls in init_encodings() for better readability
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5665 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-03-31 23:27:45 +00:00
Colomban Wendling
dfe0512ec9 Update regex for encoding detection to match quoted names
This allows encoding="utf8", adding support for XML encoding detection.

Closes #3183506.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5664 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-03-31 23:27:33 +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
Colomban Wendling
f60ead793d Move document encoding conversion with BOM support to encodings.[ch]
Adds the new function encodings_convert_to_utf8_auto(). This makes easy
to convert file data to UTF-8 in a high-level fashion, with BOM support
and everything.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5606 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-03-18 15:57:02 +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
ca74dd214c Remove NULL checks when calling g_free() (patch Erik de Castro
Lopo, thanks).



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5221 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-09-09 17:21:05 +00:00
Nick Treleaven
a24d6dca6a Auto-enable building with included regex if no regcomp function is
found.
Remove checks for HAVE_REGCOMP in Geany source (not TagManager) -
regex support is required.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5199 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-08-25 11:44:33 +00:00
Enrico Tröger
235c8231e7 Rewrite the logic to auto detect encodings a bit to make it more readable and fix a slightly wrong detection on Windows (closes #3019573).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5163 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-08-15 13:33:32 +00:00
Enrico Tröger
36f6292cc3 Make debug message more clear
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5118 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-08-05 21:54:18 +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
ec1d69c630 Fix possible endless loop when trying to detect the encoding of non-text files (patch by Alexey Antipov, thanks).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4654 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-02-07 18:37:25 +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
541d7689ff Apply set default encoding for existing files only if the files are non-Unicode (patch by Alexey Antipov, thanks).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4294 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-10-11 10:51:12 +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
39a74c5a18 Continue unifying usage of @a and @c markup elements in API docs.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4010 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-07-21 22:12:13 +00:00
Enrico Tröger
9d9f40cd15 Add Japanese encoding "CP932" (patch by Ryūsei Yamaguchi, thanks).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3864 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-06-14 10:24:06 +00:00
Enrico Tröger
0a4256565c Prevent double execution of radio menu item "activate" or "toggled" signal handlers.
Move 'Set Encoding' callback function into encodings.c.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3712 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-04-17 15:30:01 +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
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
2a086b3b95 Fix broken selection of "Document->Set Encoding" menu items.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3597 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-02-24 18:26:33 +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
9e25c43487 Move implementation of lookup_widget() into ui_lookup_widget().
Change uses of lookup_widget() to ui_lookup_widget().
Remove now unneeded support.c.
Use GLib gettext macros in support.h instead of own ones.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3402 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-12-18 21:21:53 +00:00
Nick Treleaven
48e969cb96 Minor formatting edits.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2987 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-23 15:19:46 +00:00
Enrico Tröger
8d67117d47 Rename "delete_event" to "delete-event".
Remove some unnecessary GObject casts in g_signal_connect() calls.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2788 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-18 13:40:48 +00:00
Enrico Tröger
57b3fb52b0 Fix wrong and add missing checks.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/document-pointer@2697 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-06-16 18:31:59 +00:00
Enrico Tröger
1e8d82f46a Note: this breaks the plugin API for msgwin and navqueue functions.
Make NavQueueFuncs and MsgWinFuncs use a GeanyDocument* instead of an integer index.
Adjust plugins to work with these changes.            


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/document-pointer@2688 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-06-12 20:09:57 +00:00
Enrico Tröger
46feb9df7d Fix two ambiguous encoding names for better compatibility with libiconv (closes #1986134).
Improve the regular expression for detecting encoding cookies to allow more variants (e.g. "encoding: utf-8").

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2659 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-06-08 12:18:20 +00:00
Nick Treleaven
398efbd373 Note: this commit breaks the plugin API.
Split widget fields out of GeanyApp into GeanyMainWidgets, so other
data items can be added without breaking the plugin ABI.
Add GeanyData::main_widgets, and macro.
Rename treeview_notebook sidebar_notebook in GeanyMainWidgets.
Move tools_menu from GeanyData to GeanyMainWidgets.
Move statusbar out of GeanyApp (shouldn't be used directly).
Move ignore_callback out of GeanyApp.
Rename sci_goto_line() argument unfold, like sci_goto_pos().
Make utils_goto_file_pos(), utils_goto_line(),
utils_switch_document() into static functions (they are UI-related,
so shouldn't be in utils.c).
Move utils_goto_pos() to editor.c, add mark argument.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2609 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-05-22 14:41:28 +00:00
Enrico Tröger
ade798f9f2 Add configure option --enable-gnu-regex to implicitly build the included GNU regex library (in case the host system doesn't provide a usable regex library).
Rename tagmanger/include/regex.h in tagmanager/include/gnuregex.h to avoid unintended inclusion in source files (this fixes the OpenSolaris crashes).
Don't use GNU regex specific regex_t::buffer element to build also without this extension (e.g. on OpenSolaris).


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2532 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-04-27 14:33:40 +00:00
Enrico Tröger
b7bfb2743a Replace all C++-style comments with usual C-like multi-line comments.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2287 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-02-27 13:17:29 +00:00
Enrico Tröger
85f73129c0 Apply patch from Daniel Richard G. to fix to fix several compiler warnings, C89 violations and minor code problems (thanks).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2267 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-02-20 11:24:23 +00:00
Enrico Tröger
0e65cff820 Add support for generating API reference documentation using doxygen.
This is the first step, it is far away from being complete.
Add make target "api-doc" to generate the reference documentation.
Add documentation comments to a few functions.
Move basic plugin documentation from plugindata.h to doc/plugins.dox.	       


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2263 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-02-17 18:00:42 +00:00
Enrico Tröger
57533aa092 Fix some compiler warnings.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2257 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-02-13 18:54:05 +00:00
Enrico Tröger
7b85b02f93 Add encodings_get_charset_from_index() and make it available through plugin API.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2177 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-01-16 16:50:10 +00:00
Enrico Tröger
e3201062c6 Update copyright information and change format of email addresses in source files.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2150 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-01-06 18:11:57 +00:00
Enrico Tröger
80532b616d Store more document-related settings session-based in the configuration file(including the file encoding).
Detect in-file specified file encoding by scanning the file using regular expressions.	    


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2093 ea778897-0a13-0410-b9d1-a72fbfd435f5
2007-12-07 14:13:05 +00:00
Enrico Tröger
90b01daf35 Fixed several compiler warnings (mainly shadowing local variables and unreachable code).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@1376 ea778897-0a13-0410-b9d1-a72fbfd435f5
2007-03-09 13:52:26 +00:00
Nick Treleaven
806dd5be1d Add descriptions for all .c source files below the file header.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@1329 ea778897-0a13-0410-b9d1-a72fbfd435f5
2007-02-24 11:41:56 +00:00
Enrico Tröger
7b61ad934d Updated copyright information.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@1188 ea778897-0a13-0410-b9d1-a72fbfd435f5
2007-01-14 17:36:42 +00:00
Nick Treleaven
af369cf776 Fix memory leak when using utils_scan_unicode_bom().
Prevent invalid memory read in utils_scan_unicode_bom() when text
length is < 4.
Move utils_scan_unicode_bom(), utils_is_unicode_charset() to
encodings.c.
Read the BOM length in handle_bom().


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@1167 ea778897-0a13-0410-b9d1-a72fbfd435f5
2007-01-07 16:22:41 +00:00
Enrico Tröger
37c230845a Revert the last change to utils_str_equal() and use it again because g_str_equal() is not NULL-safe.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@1059 ea778897-0a13-0410-b9d1-a72fbfd435f5
2006-12-07 16:09:45 +00:00
Enrico Tröger
c461da68f1 Removed utils_str_equal() and use g_str_equal() from GLib because it does exactly the same.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@1056 ea778897-0a13-0410-b9d1-a72fbfd435f5
2006-12-06 20:44:32 +00:00
Nick Treleaven
bd1137d9e9 Rename utils_strcmp() utils_str_equal() (to avoid return value
confusion with strcmp()).


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@978 ea778897-0a13-0410-b9d1-a72fbfd435f5
2006-11-08 16:21:46 +00:00
Nick Treleaven
1844a2d051 Fix sign comparison warnings.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@947 ea778897-0a13-0410-b9d1-a72fbfd435f5
2006-10-30 11:49:35 +00:00
Enrico Tröger
60bb784493 Moved utils_convert_to_utf8() and utils_convert_to_utf8_from_charset() to encodings.c.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@931 ea778897-0a13-0410-b9d1-a72fbfd435f5
2006-10-25 14:48:07 +00:00
Enrico Tröger
47a71bc3aa Added new encoding "None" to open files without any character conversions (fixes #1580456).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@920 ea778897-0a13-0410-b9d1-a72fbfd435f5
2006-10-23 20:32:37 +00:00
Nick Treleaven
7d8637f549 Fixed all sign comparison warnings
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@684 ea778897-0a13-0410-b9d1-a72fbfd435f5
2006-08-08 13:01:50 +00:00
Enrico Tröger
afa4c4104e Made document related submenus(filetype, encoding, line endings) radio buttons for better usability.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@668 ea778897-0a13-0410-b9d1-a72fbfd435f5
2006-08-03 22:17:10 +00:00