[geany/geany] 91ff2f: Merge branch 'master' into document-messages

Matthew Brush git-noreply at xxxxx
Wed Jul 25 23:58:35 UTC 2012


Branch:      refs/heads/document-messages
Author:      Matthew Brush <matt at geany.org>
Committer:   Matthew Brush <matt at geany.org>
Date:        Wed, 25 Jul 2012 23:58:35
Commit:      91ff2fe24a5f9541c6111a1fd5c1e36ee9bed200
             https://github.com/geany/geany/commit/91ff2fe24a5f9541c6111a1fd5c1e36ee9bed200

Log Message:
-----------
Merge branch 'master' into document-messages

Also re-disabled USE_GIO_FILEMON for the time being.

Conflicts:
	src/document.c
	src/plugindata.h


Modified Paths:
--------------
    ChangeLog
    ChangeLog.pre-1-22
    HACKING
    Makefile.am
    NEWS
    README
    README.Packagers
    THANKS
    TODO
    autogen.sh
    configure.ac
    data/colorschemes/alt.conf
    data/filetype_extensions.conf
    data/filetypes.Genie.conf
    data/filetypes.ada
    data/filetypes.asm
    data/filetypes.c
    data/filetypes.common
    data/filetypes.cpp
    data/filetypes.css
    data/filetypes.d
    data/filetypes.docbook
    data/filetypes.perl
    data/filetypes.sh
    data/filetypes.tcl
    data/filetypes.vala
    data/geany.glade
    data/snippets.conf
    doc/Doxyfile.in
    doc/geany.1.in
    doc/geany.html
    doc/geany.txt
    doc/makefile.win32
    doc/making-a-release
    doc/plugins.dox
    doc/pluginsignals.c
    doc/pluginsymbols.c
    geany.nsi
    geany.pc.in
    geany_private.rc
    m4/geany-gnu-regex.m4
    m4/geany-i18n.m4
    makefile.win32
    plugins/Makefile.am
    plugins/classbuilder.c
    plugins/demoplugin.c
    plugins/export.c
    plugins/filebrowser.c
    plugins/geanyfunctions.h
    plugins/geanyplugin.h
    plugins/genapi.py
    plugins/htmlchars.c
    plugins/makefile.win32
    plugins/saveactions.c
    plugins/splitwindow.c
    po/ChangeLog
    po/ar.po
    po/ast.po
    po/be.po
    po/bg.po
    po/ca.po
    po/cs.po
    po/de.po
    po/el.po
    po/en_GB.po
    po/es.po
    po/fa.po
    po/fi.po
    po/fr.po
    po/gl.po
    po/hu.po
    po/id.po
    po/it.po
    po/ja.po
    po/kk.po
    po/ko.po
    po/lb.po
    po/lt.po
    po/mn.po
    po/nl.po
    po/nn.po
    po/pl.po
    po/pt.po
    po/pt_BR.po
    po/ro.po
    po/ru.po
    po/sk.po
    po/sl.po
    po/sv.po
    po/tr.po
    po/uk.po
    po/vi.po
    po/zh_CN.po
    po/zh_TW.po
    scintilla/gtk/PlatGTK.cxx
    scintilla/gtk/ScintillaGTK.cxx
    scintilla/include/ILexer.h
    scintilla/include/Platform.h
    scintilla/include/SciLexer.h
    scintilla/include/Scintilla.h
    scintilla/include/Scintilla.iface
    scintilla/lexers/LexAda.cxx
    scintilla/lexers/LexAsm.cxx
    scintilla/lexers/LexBash.cxx
    scintilla/lexers/LexBasic.cxx
    scintilla/lexers/LexCPP.cxx
    scintilla/lexers/LexCSS.cxx
    scintilla/lexers/LexD.cxx
    scintilla/lexers/LexHTML.cxx
    scintilla/lexers/LexNsis.cxx
    scintilla/lexers/LexOthers.cxx
    scintilla/lexers/LexPascal.cxx
    scintilla/lexers/LexPerl.cxx
    scintilla/lexers/LexRuby.cxx
    scintilla/lexers/LexSQL.cxx
    scintilla/lexers/LexVHDL.cxx
    scintilla/lexlib/LexAccessor.h
    scintilla/lexlib/PropSetSimple.cxx
    scintilla/makefile.win32
    scintilla/scintilla_changes.patch
    scintilla/src/AutoComplete.cxx
    scintilla/src/AutoComplete.h
    scintilla/src/CallTip.cxx
    scintilla/src/CallTip.h
    scintilla/src/CellBuffer.cxx
    scintilla/src/CellBuffer.h
    scintilla/src/Decoration.cxx
    scintilla/src/Document.cxx
    scintilla/src/Document.h
    scintilla/src/Editor.cxx
    scintilla/src/Editor.h
    scintilla/src/FontQuality.h
    scintilla/src/Indicator.cxx
    scintilla/src/Indicator.h
    scintilla/src/LineMarker.cxx
    scintilla/src/LineMarker.h
    scintilla/src/PerLine.cxx
    scintilla/src/PerLine.h
    scintilla/src/PositionCache.cxx
    scintilla/src/PositionCache.h
    scintilla/src/ScintillaBase.cxx
    scintilla/src/ScintillaBase.h
    scintilla/src/SplitVector.h
    scintilla/src/Style.cxx
    scintilla/src/Style.h
    scintilla/src/UniConversion.cxx
    scintilla/src/UniConversion.h
    scintilla/src/ViewStyle.cxx
    scintilla/src/ViewStyle.h
    scintilla/src/XPM.cxx
    scintilla/src/XPM.h
    scintilla/version.txt
    scripts/svn-add.sh
    scripts/svn-changes.sh
    scripts/update-scintilla.sh
    src/Makefile.am
    src/about.c
    src/about.h
    src/build.c
    src/build.h
    src/callbacks.c
    src/callbacks.h
    src/dialogs.c
    src/dialogs.h
    src/document.c
    src/document.h
    src/documentprivate.h
    src/editor.c
    src/editor.h
    src/encodings.c
    src/encodings.h
    src/filetypes.c
    src/filetypes.h
    src/filetypesprivate.h
    src/gb.c
    src/geany.h
    src/geanyentryaction.c
    src/geanyentryaction.h
    src/geanymenubuttonaction.c
    src/geanymenubuttonaction.h
    src/geanyobject.c
    src/geanyobject.h
    src/geanywraplabel.c
    src/geanywraplabel.h
    src/highlighting.c
    src/highlighting.h
    src/highlightingmappings.h
    src/images.c
    src/keybindings.c
    src/keybindings.h
    src/keyfile.c
    src/keyfile.h
    src/log.c
    src/log.h
    src/main.c
    src/main.h
    src/makefile.win32
    src/msgwindow.c
    src/msgwindow.h
    src/navqueue.c
    src/navqueue.h
    src/notebook.c
    src/notebook.h
    src/plugindata.h
    src/pluginprivate.h
    src/plugins.c
    src/plugins.h
    src/pluginutils.c
    src/pluginutils.h
    src/prefs.c
    src/prefs.h
    src/printing.c
    src/printing.h
    src/project.c
    src/project.h
    src/projectprivate.h
    src/sciwrappers.c
    src/sciwrappers.h
    src/search.c
    src/search.h
    src/sidebar.c
    src/sidebar.h
    src/socket.c
    src/socket.h
    src/stash.c
    src/stash.h
    src/support.h
    src/symbols.c
    src/symbols.h
    src/templates.c
    src/templates.h
    src/toolbar.c
    src/toolbar.h
    src/tools.c
    src/tools.h
    src/ui_utils.c
    src/ui_utils.h
    src/utils.c
    src/utils.h
    src/vte.c
    src/vte.h
    src/win32.c
    src/win32.h
    tagmanager/Makefile.am
    tagmanager/ctags/Makefile.am
    tagmanager/ctags/abc.c
    tagmanager/ctags/actionscript.c
    tagmanager/ctags/args.c
    tagmanager/ctags/args.h
    tagmanager/ctags/asm.c
    tagmanager/ctags/basic.c
    tagmanager/ctags/c.c
    tagmanager/ctags/cobol.c
    tagmanager/ctags/conf.c
    tagmanager/ctags/css.c
    tagmanager/ctags/ctags.c
    tagmanager/ctags/ctags.h
    tagmanager/ctags/diff.c
    tagmanager/ctags/docbook.c
    tagmanager/ctags/entry.c
    tagmanager/ctags/entry.h
    tagmanager/ctags/fortran.c
    tagmanager/ctags/general.h
    tagmanager/ctags/get.c
    tagmanager/ctags/get.h
    tagmanager/ctags/haskell.c
    tagmanager/ctags/haxe.c
    tagmanager/ctags/html.c
    tagmanager/ctags/js.c
    tagmanager/ctags/keyword.c
    tagmanager/ctags/keyword.h
    tagmanager/ctags/latex.c
    tagmanager/ctags/lregex.c
    tagmanager/ctags/lua.c
    tagmanager/ctags/main.h
    tagmanager/ctags/make.c
    tagmanager/ctags/makefile.win32
    tagmanager/ctags/markdown.c
    tagmanager/ctags/matlab.c
    tagmanager/ctags/nestlevel.c
    tagmanager/ctags/nestlevel.h
    tagmanager/ctags/nsis.c
    tagmanager/ctags/objc.c
    tagmanager/ctags/options.c
    tagmanager/ctags/options.h
    tagmanager/ctags/parse.c
    tagmanager/ctags/parse.h
    tagmanager/ctags/parsers.h
    tagmanager/ctags/pascal.c
    tagmanager/ctags/perl.c
    tagmanager/ctags/php.c
    tagmanager/ctags/python.c
    tagmanager/ctags/r.c
    tagmanager/ctags/read.c
    tagmanager/ctags/read.h
    tagmanager/ctags/rest.c
    tagmanager/ctags/ruby.c
    tagmanager/ctags/sh.c
    tagmanager/ctags/sort.c
    tagmanager/ctags/sort.h
    tagmanager/ctags/sql.c
    tagmanager/ctags/strlist.c
    tagmanager/ctags/strlist.h
    tagmanager/ctags/tcl.c
    tagmanager/ctags/txt2tags.c
    tagmanager/ctags/verilog.c
    tagmanager/ctags/vhdl.c
    tagmanager/ctags/vstring.c
    tagmanager/ctags/vstring.h
    tagmanager/include/Makefile.am
    tagmanager/include/gnuregex.h
    tagmanager/mio/Makefile.am
    tagmanager/mio/makefile.win32
    tagmanager/mio/mio.c
    tagmanager/mio/mio.h
    tagmanager/regex.c
    tagmanager/src/Makefile.am
    tagmanager/src/makefile.win32
    tagmanager/src/tm_file_entry.c
    tagmanager/src/tm_file_entry.h
    tagmanager/src/tm_project.c
    tagmanager/src/tm_project.h
    tagmanager/src/tm_source_file.c
    tagmanager/src/tm_source_file.h
    tagmanager/src/tm_symbol.c
    tagmanager/src/tm_symbol.h
    tagmanager/src/tm_tag.c
    tagmanager/src/tm_tag.h
    tagmanager/src/tm_tagmanager.c
    tagmanager/src/tm_tagmanager.h
    tagmanager/src/tm_work_object.c
    tagmanager/src/tm_work_object.h
    tagmanager/src/tm_workspace.c
    tagmanager/src/tm_workspace.h
    win32-config.h
    wscript

Modified: ChangeLog
6877 files changed, 2 insertions(+), 6875 deletions(-)
===================================================================
No diff available, check online


Modified: ChangeLog.pre-1-22
6875 files changed, 6875 insertions(+), 0 deletions(-)
===================================================================
No diff available, check online


Modified: HACKING
4 files changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -169,6 +169,9 @@ to set warning options (as well as anything else e.g. -g -O2).
   use C ``/* */`` comments and function_name(void) instead of
   function_name(). This is for compatibility with various Unix-like
   compilers. You should use -ansi to help check this.
+  Note that MIO (tagmanager/mio) requires ``MIO_FORCE_ANSI``
+  preprocessor constant to be defined to build with ``-ansi``, so you
+  should add ``-DMIO_FORCE_ANSI`` together with ``-ansi``.
 
 .. tip::
     Remember for gcc you need to enable optimization to get certain
@@ -337,6 +340,7 @@ Bugs to watch out for
 * Inserting fields into structs in the plugin API instead of appending.
 * Not breaking the plugin ABI when necessary.
 * Using an idle callback that doesn't check main_status.quitting.
+* Forgetting to call vStringTerminate in CTags code.
 * Forgetting CRLF line endings on Windows.
 * Not handling Tabs & Spaces indent mode.
 


Modified: Makefile.am
20 files changed, 13 insertions(+), 7 deletions(-)
===================================================================
@@ -34,6 +34,7 @@ EXTRA_DIST = \
 	geany.pc.in \
 	geany.spec \
 	ChangeLog.pre-0-17 \
+	ChangeLog.pre-1-22 \
 	HACKING \
 	README.I18N \
 	README.Packagers \
@@ -85,11 +86,19 @@ install-data-only:
 	done
 
 
-BZIP2_ENV =--best
+dist-hook:
+	@if test -d "$(top_srcdir)/.git"; then \
+		echo '  GEN    ChangeLog'; \
+		( cd "$(top_srcdir)" && \
+		  echo '# Generated by Makefile. Do not edit.' && echo && \
+		  git log --stat 0.21.0.. ) > ChangeLog.tmp \
+		&& mv -f ChangeLog.tmp "$(distdir)/ChangeLog" \
+		|| ( rm -f ChangeLog.tmp ; \
+		     echo 'Failed to generate ChangeLog' >&2 ); \
+	else \
+		echo 'A git clone is required to generate a ChangeLog' >&2; \
+	fi
 
-dist-bzip2: distdir
-	BZIP2=$(BZIP2_ENV) $(AMTAR) --bzip2 -chof $(distdir).tar.bz2 $(distdir)
-	-rm -rf $(distdir)
 
 sign:
 	if test -f $(PACKAGE)-$(VERSION).tar.gz; then \
@@ -97,9 +106,6 @@ sign:
 	if test -f $(PACKAGE)-$(VERSION).tar.bz2; then \
 		gpg --detach-sign --digest-algo SHA512 $(PACKAGE)-$(VERSION).tar.bz2; fi
 
-deb:
-	dpkg-buildpackage -rfakeroot
-
 
 rpm: dist
 	rpmbuild -ta $(distdir).tar.gz


Modified: NEWS
116 files changed, 115 insertions(+), 1 deletions(-)
===================================================================
@@ -1,7 +1,121 @@
-Geany 1.22 (unreleased)
+Geany 1.23 (unreleased)
+
+    Editor
+    * Update Scintilla to version 3.2.0.
+
+
+Geany 1.22 (June 18, 2012)
+
+    General
+    * Bump dependencies to GTK >= 2.16 and GLib >= 2.20.
+    * Switch to Glade 3 and dynamically loaded XML UI description.
+    * Rewrite theming support for better flexibility.
+    * Add support for opening files read-only from the command line.
+    * Always load the default session if configured to do so.
+    * Make all filetypes use named styles to simplify color scheme
+      authoring.
+    * Make 'Replace Spaces by Tabs' only match leading spaces to
+      preserve alignment.
+
+    Possibly incompatible changes
+    * Theming and filetype style changes mean old filetypes and color
+      schemes are not compatible with this version of Geany.
+    * There are some default keybinding changes but these will only
+      apply to newly created configurations.
+    * Changes to the "project-dialog*" signals may affect plugins.
+
+    Bug fixes
+    * Fix escaping of session file paths (#3425969).
+    * Fix closing when minimized under Windows (#3421282).
+    * Properly handle remote URIs received through drag 'n drop
+      (#2966770, #3479567).
+    * Fix build with bleeding-edge GLib (#3483388).
+    * Fix color scheme selection in Ubuntu Unity (#3479674).
+    * Fix very slow regex tag parsing on Windows (e.g. for HTML).
+    * Fix detecting a changed file on disk when opening from
+      the command-line (Windows).
+    * Fix quick search entry behavior on Windows.
+    * Fix keybindings conflicts check when swapping a binding.
+    * Fix comments insertion in some cases (#3449635, #3534320).
+    * Add missing Windows mio makefile.
+
+    Prefs
+    * Split "always wrap search and hide find dialog" pref into
+      "always wrap search" and "hide find dialog" (Dimitar Zhekov).
+    * Add Project Properties overrides for 'Saving files' prefs.
+    * Add hidden VTE preference "send_cmd_prefix" to prefix commands sent
+      to the VTE. (See the manual for details).
+
+    Interface
+    * Add support for switching to the last used document after closing
+      a tab (Jiří Techet).
+    * Improve the tab switching dialog for better usability (Jiří Techet).
+    * Add support for user-defined labels for 'Send Selection to'
+      custom commands.
+    * Fix sidebar width when on the right (#3514436).
+    * Use case-insensitive document list path comparison on Windows.
+    * Replace Color Schemes menu with custom dialog.
+    * Show selected line count on status bar when whole lines are
+      selected.
 
     Editor
     * Update Scintilla to version 2.29.
+    * Add a "join lines" command (Eugene Arshinov).
+    * Hide autocompletion when the only entry has been typed (#3516212).
+
+    Search
+    * Add full PCRE regular expressions support.
+    * Extra options passed to grep through Find in Files now follows a
+      real shell-style syntax (#3516263).
+    * Search pattern length is no longer limited to 248 characters.
+    * Fix showing Find/Replace regex compile errors on the status bar.
+
+    Keybindings
+    * Add Project New/Open/Properties/Close keybindings.
+    * Show overridden keybindings in bold for prefs dialog tree.
+
+    Tags
+    * Speed up loading of multiple global tags files.
+    * Show global tags file preprocessing errors on stderr & add
+      current directory to include path.
+    * Add C/C++ ignore.tags wildcard format 'PREFIX*'.
+
+    Filetypes
+    * Add support for regex-based filetype detection.
+    * C snippets no longer apply to all filetypes.
+    * Improve support for HTML embedded filetypes (#2863829, #3127598).
+    * Add filetype Objective-C (Elias Pschernig, P#3325139).
+    * Fix highlighting of ``...R"`` inside C and C++ (#3425107).
+    * Fix TCL keyword highlighting in some situations (#3432877).
+    * Parse PHP functions with multiline argument list (#3037797).
+    * Handle ``/bin/dash`` shebang (#3470986).
+    * Update JavaScript parser from CTags.
+    * Parse D class/struct/interface template bodies and template
+      blocks; ignore 'static if' expressions; parse function
+      @attributes, pure/nothrow and immutable/inout/shared return types.
+    * Fix broken tag/word autocompletion in HTML/PHP documents.
+    * Enable &entity; completion for all XML-based filetypes.
+
+    Plugins
+    * Split Window: show marker margin.
+    * Split Window: enable basic context menu.
+
+    API:
+    * document_save_file() now shows the Save As dialog when necessary.
+    * Rename signal "project-dialog-create" to "project-dialog-open" and
+      add new "project-dialog-close" signal.
+    * setptr is deprecated in favour of SETPTR.
+    * Add ui_hookup_object() and ui_lookup_object().
+    * Add ui_lookup_stock_label().
+    * Add build_{activate,get_current,remove,set}_menu_item(),
+      build_get_group_count().
+    * Add stash_group_free_settings().
+    * Add support for plugins written in C++.
+
+    Internationalization:
+    * Add translations: ar, id, lt, mn, nn, sk
+    * Update translations: de, es, fr, hu, it, ja, kk, lt, nl, pl, pt,
+      pt_BR, sk, sl, sv, tr, zh_CN, zh_TW
 
 
 Geany 0.21 (October 2, 2011)


Modified: README
2 files changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -102,7 +102,7 @@ file.
 
 
 --
-2005-2011 by Enrico Tröger, Nick Treleaven, Colomban Wendling, Matthew Brush and Frank Lanitz
+2005-2012 by Enrico Tröger, Nick Treleaven, Colomban Wendling, Matthew Brush and Frank Lanitz
 enrico(dot)troeger(at)uvena(dot)de
 nick(dot)treleaven(at)btinternet(dot)com
 lists(dot)ban(at)herbesfolles(dot)org


Modified: README.Packagers
2 files changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -82,7 +82,7 @@ list to stay informed about major changes and of course, new releases.
 
 
 --
-2008-2011 by Enrico Tröger, Nick Treleaven, Colomban Wendling, Matthew Brush and Frank Lanitz
+2008-2012 by Enrico Tröger, Nick Treleaven, Colomban Wendling, Matthew Brush and Frank Lanitz
 enrico(dot)troeger(at)uvena(dot)de
 nick(dot)treleaven(at)btinternet(dot)com
 lists(dot)ban(at)herbesfolles(dot)org


Modified: THANKS
17 files changed, 10 insertions(+), 7 deletions(-)
===================================================================
@@ -94,7 +94,8 @@ Translators:
 ------------
 These people have translated Geany to foreign languages:
 
-Marcos Costales <marcoscostales(at)gmail(dot)com - ast
+Fayssal Chamekh <chamfay(at)gmail(dot)com> - ar
+Marcos Costales <marcoscostales(at)gmail(dot)com> - ast
 Yura Siamashka <yurand2(at)gmail(dot)com> - be_BY
 Dilyan Rusev <dilyanrusev(at)gmail(dot)com> - bg
 Toni Garcia-Navarro <topi(at)elpiset(dot)net> - ca_ES
@@ -104,7 +105,7 @@ Karel Kolman <kolmis(at)gmail(dot)com> - cs_CZ
 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - de_DE
 Dominic Hopf <dmaphy(at)googlemail(dot)com> - de_DE
 Stavros Temertzidis <bullgr(at)gmail(dot)com> - el
-Jeff Bailes <thepizzaking(at)gmail(dot)com - en_GB
+Jeff Bailes <thepizzaking(at)gmail(dot)com> - en_GB
 Damián Viano <debian(at)damianv(dot)com(dot)ar> - es
 Antonio Jiménez González <tonificante(at)hotmail(dot)com> - es
 Nacho Cabanes <ncabanes(at)gmail(dot)com> - es
@@ -115,20 +116,21 @@ Jari Rahkonen <jari(dot)rahkonen(at)pp1(dot)inet(dot)fi> - fi
 Jean-Philippe Moal <skateinmars(at)skateinmars(dot)net> - fr
 Roland Baudin <roland(dot)baudin(at)thalesaleniaspace(dot)com> - fr
 Lionel Fuentes <funto66(at)gmail(dot)com> - fr
-Benjamin Ballet <benjamin(dot)ballet(at)gmail(dot)com -fr
+Benjamin Ballet <benjamin(dot)ballet(at)gmail(dot)com> -fr
 José Manuel Castroagudín Silva <chavescesures(at)mail(dot)com> - gl
 Gabor Kmetyko aka kilo <kg_kilo(at)freemail(dot)hu> - hu
 M.Baldinelli <m(dot)baldinelli(at)agora(dot)it> - it
 Dario Santomarco <dariello(at)yahoo(dot)it> - it
-Giuliano Manzitti <gmanzitti(at)yahoo.it>
+Giuliano Manzitti <gmanzitti(at)yahoo.it> - it
 Tarot Osuji <tarot(at)sdf(dot)lonestar(dot)org> - ja
 Chikahiro Masami <cmasa(dot)z321(at)gmail(dot)com> - ja
 Park Jang-heon <dotkabi(at)gmail(dot)com> - ko
 Baurzhan Muftakhidinov <baurthefirst(at)gmail(dot)com> - kk
 Laurent Hoeltgen <hoeltgman(at)gmail(dot)com> - lb
+Algimantas Margevičius <margevicius(dot)algimantas(at)gmail(dot)com> - lt
 tsetsee <tsetsee(dot)yugi(at)gmail(dot)com> - mn
 Kurt De Bree <kdebree(at)telenet(dot)be> - nl
-Peter Scholtens <<peter(dot)scholtens(at)xs4all(dot)nl> - nl
+Peter Scholtens <peter(dot)scholtens(at)xs4all(dot)nl> - nl
 Ayke van Laethem <aykevanlaethem(at)gmail(dot)com> - nl
 Jacek Wolszczak <shutdownrunner(at)o2(dot)pl> - pl_PL
 Jarosław Foksa <jfoksa(at)gmail(dot)com> - pl_PL
@@ -136,16 +138,17 @@ Krzysztof Troska <elleander86(at)gmail(dot)com> - pl_PL
 Wojciech Świderski <woj.swiderski at gmail.com> - pl_PL
 Alexandre Moreira <alexandream(at)gmail(dot)com> - pt_BR
 Adrovane Marques Kade <adrovane(at)gmail(dot)com> - pt_BR
-Rafael Peregrino da Silva <rperegrino(at)linuxnewmedia(dot)com(dot)br - pt_BR
+Rafael Peregrino da Silva <rperegrino(at)linuxnewmedia(dot)com(dot)br> - pt_BR
 Alex Eftimie <alex(at)rosedu(dot)org> - ro
 brahmann_ <brahmann(at)pisem(dot)net> - ru_RU
 Nikita E. Shalaev <nshalaev(at)eu(dot)spb(dot)ru> - ru_RU
 stat.c <Static-Const(at)yandex(dot)ru> - ru_RU
 Andrew Drynov <adryno(at)gmail(dot)com> - ru_RU
 John Wehin <john(dot)wehin(at)gmail(dot)com> - ru_RU
+Tomáš Vadina <kyberdev(at)gmail(dot)com> - sk
 Jože Klepec <joze(dot)klepec(at)siol(dot)net> - sl
 Tony Mattsson <superxorn(at)gmail(dot)com> - sv
-Gürkan Gür <seqizz(at)gmail(dot)com - tr
+Gürkan Gür <seqizz(at)gmail(dot)com> - tr
 Boris Dibrov <dibrov(dot)bor(at)gmail(dot)com> - uk
 Clytie Siddall <clytie(at)riverland(dot)net(dot)au> - vi_VN
 Dormouse Young <mouselinux(at)163(dot)com> - zh_CN


Modified: TODO
1 files changed, 0 insertions(+), 1 deletions(-)
===================================================================
@@ -14,7 +14,6 @@ Note: features included in brackets have lower priority.
 	o common default highlighting styles configurable for all
 	  programming languages (done for C-like filetypes using
 	  filetypes.common named styles)
-	o use GRegex only and remove GNU regex
 	o asynchronous build commands on Windows
 	o (filetype-independent run command in build dialog & keybinding)
 	o (better custom filetype support)


Modified: autogen.sh
2 files changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -74,7 +74,7 @@ if test "$DIE" -eq 1; then
 	exit 1
 fi
 
-if test -z "$*"; then
+if test -z "$*" -a "$NOCONFIGURE" != 1; then
 	echo "**Warning**: I am going to run \`configure' with no arguments."
 	echo "If you wish to pass any to it, please specify them on the"
 	echo \`$0\'" command line."


Modified: configure.ac
17 files changed, 10 insertions(+), 7 deletions(-)
===================================================================
@@ -1,7 +1,7 @@
 dnl Process this file with autoconf to produce a configure script.
 
 AC_PREREQ([2.60])
-AC_INIT([Geany], [1.22],
+AC_INIT([Geany], [1.23],
 		[https://sourceforge.net/tracker/?group_id=153444&atid=787791])
 AC_CONFIG_SRCDIR([src/geany.h])
 AC_CONFIG_AUX_DIR([build-aux])
@@ -38,7 +38,7 @@ AC_PROG_LN_S
 # autoscan start
 
 # Checks for header files.
-AC_CHECK_HEADERS([fcntl.h fnmatch.h glob.h regex.h stdlib.h sys/time.h])
+AC_CHECK_HEADERS([fcntl.h fnmatch.h glob.h stdlib.h sys/time.h])
 
 # Checks for typedefs, structures, and compiler characteristics.
 AC_TYPE_OFF_T
@@ -57,8 +57,10 @@ GEANY_CHECK_REVISION([dnl force debug mode for a SVN working copy
 
 
 # GTK/GLib/GIO checks
-gtk_modules="gtk+-2.0 >= 2.16 glib-2.0 >= 2.20 gio-2.0 >= 2.20"
-PKG_CHECK_MODULES([GTK], [$gtk_modules])
+gtk_modules="gtk+-2.0 >= 2.16 glib-2.0 >= 2.20"
+gtk_modules_private="gio-2.0 >= 2.20 gmodule-2.0"
+PKG_CHECK_MODULES([GTK], [$gtk_modules $gtk_modules_private])
+AC_SUBST([DEPENDENCIES], [$gtk_modules])
 AC_SUBST([GTK_CFLAGS])
 AC_SUBST([GTK_LIBS])
 GTK_VERSION=`$PKG_CONFIG --modversion gtk+-2.0`
@@ -78,10 +80,10 @@ AC_ARG_ENABLE([deprecated],
 
 # Check for binary relocation support
 GEANY_CHECK_BINRELOC
+# CTags source compatibility (we actually use GRegex instead of POSIX regcomp)
+AC_DEFINE([HAVE_REGCOMP], [1], [Should always be 1, required for CTags.])
 # Plugins support
 GEANY_CHECK_PLUGINS
-# check whether to use included GNU regex library
-GEANY_CHECK_GNU_REGEX
 # check for mingw specific settings
 GEANY_CHECK_MINGW
 
@@ -103,8 +105,9 @@ AC_CONFIG_FILES([
 		icons/48x48/Makefile
 		icons/scalable/Makefile
 		tagmanager/Makefile
-		tagmanager/include/Makefile
+		tagmanager/ctags/Makefile
 		tagmanager/mio/Makefile
+		tagmanager/src/Makefile
 		scintilla/Makefile
 		scintilla/include/Makefile
 		src/Makefile


Modified: data/colorschemes/alt.conf
3 files changed, 1 insertions(+), 2 deletions(-)
===================================================================
@@ -13,7 +13,7 @@ error=0xffffff;0xff0000
 # Editor styles
 #-------------------------------------------------------------------------------
 
-selection=0x000000;0xc0c0c0;false;false
+selection=0x000000;0xc0c0c0;false;true
 current_line=0x000000;0xf0f0f0;true
 brace_good=0x0000ff;0xFFFFFF;true;false
 brace_bad=0xff0000;0xFFFFFF;true;false
@@ -69,7 +69,6 @@ character=string_1
 backticks=string_2
 here_doc=string_2
 
-scalar=string_2
 label=default,bold
 preprocessor=0x808000
 regex=number_1


Modified: data/filetype_extensions.conf
2 files changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -38,7 +38,7 @@ Make=*.mak;*.mk;GNUmakefile;makefile;Makefile;makefile.*;Makefile.*;
 Markdown=*.mdml;*.markdown;*.md;*.mkd;
 Matlab/Octave=*.m;
 NSIS=*.nsi;*.nsh;
-Objective-C=*.m;*.h;
+Objective-C=*.m;*.mm;*.h;
 Pascal=*.pas;*.pp;*.inc;*.dpr;*.dpk;
 Perl=*.pl;*.perl;*.pm;*.agi;*.pod;
 PHP=*.php;*.php3;*.php4;*.php5;*.phtml;


Modified: data/filetypes.Genie.conf
4 files changed, 2 insertions(+), 2 deletions(-)
===================================================================
@@ -5,8 +5,8 @@
 # all items must be in one line
 primary=abstract and array as assert async bool break byte case cast char class const construct continue date datetime decimal dedent def default delegate delete dict div do double downto dynamic else ensures enum errordomain event except exception extern false final finally float for foreach get hash identifier if implements implements in init inline int int16 int32 int64 int8 interface internal is isa list lock long max min namespace namespace new not null object of or otherwise out override owned params pass print private prop protected public raise raises readonly ref requires return sbyte self set short single sizeof size_t ssize_t static string struct super to true try typeof uint uint32 uint64 uint8 ulong unichar unit16 unless unowned uses uses ushort var virtual void volatile weak when while writeonly yield
 #secondary=
-# these are some doxygen keywords (incomplete)
-docComment=attention author brief bug class code date def enum example exception file fn namespace note param remarks return see since struct throw todo typedef var version warning union
+# these are the Doxygen and Valadoc keywords
+docComment=a addindex addtogroup anchor arg attention author authors b brief bug c callergraph callgraph category cite class code cond copybrief copydetails copydoc copyright date def defgroup deprecated details dir dontinclude dot dotfile e else elseif em endcode endcond enddot endhtmlonly endif endinternal endlatexonly endlink endmanonly endmsc endrtfonly endverbatim endxmlonly enum example exception extends file fn headerfile hideinitializer htmlinclude htmlonly if ifnot image implements include includelineno ingroup inheritDoc interface internal invariant latexonly li line link mainpage manonly memberof msc mscfile n name namespace nosubgrouping note overload p package page par paragraph param post pre private privatesection property protected protectedsection protocol public publicsection ref related relatedalso relates relatesalso remark remarks result return returns retval rtfonly sa section see short showinitializer since skip skipline snippet struct subpage subsection subsu
 bsection tableofcontents test throw throws todo tparam typedef union until var verbatim verbinclude version warning weakgroup xmlonly xrefitem
 
 [lexer_properties]
 lexer.cpp.triplequoted.strings=1


Modified: data/filetypes.ada
2 files changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -6,7 +6,7 @@ word=keyword_1
 identifier=identifier_1
 number=number
 delimiter=operator
-character=string_1
+character=character
 charactereol=string_eol
 string=string_1
 stringeol=string_eol


Modified: data/filetypes.asm
2 files changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -14,7 +14,7 @@ mathinstruction=keyword_2
 register=type
 directive=preprocessor
 directiveoperand=keyword_3
-character=string_1
+character=character
 stringeol=string_eol
 extinstruction=keyword_4
 


Modified: data/filetypes.c
7 files changed, 4 insertions(+), 3 deletions(-)
===================================================================
@@ -9,7 +9,7 @@
 word=keyword_1
 word2=keyword_2
 string=string_1
-character=string_1
+character=character
 uuid=other
 preprocessor=preprocessor
 operator=operator
@@ -23,13 +23,14 @@
 globalclass=class
 # """verbatim"""
 tripleverbatim=string_2
+hashquotedstring=string_2
 
 [keywords]
 # all items must be in one line
 primary=asm auto break case char const continue default do double else enum extern float for goto if inline int long register restrict return short signed sizeof static struct switch typedef union unsigned void volatile while FALSE NULL TRUE
 secondary=
-# these are some doxygen keywords (incomplete)
-docComment=attention author brief bug class code date def enum example exception file fn namespace note param remarks return see since struct throw todo typedef var version warning union
+# these are the Doxygen keywords
+docComment=a addindex addtogroup anchor arg attention author authors b brief bug c callergraph callgraph category cite class code cond copybrief copydetails copydoc copyright date def defgroup deprecated details dir dontinclude dot dotfile e else elseif em endcode endcond enddot endhtmlonly endif endinternal endlatexonly endlink endmanonly endmsc endrtfonly endverbatim endxmlonly enum example exception extends file fn headerfile hideinitializer htmlinclude htmlonly if ifnot image implements include includelineno ingroup interface internal invariant latexonly li line link mainpage manonly memberof msc mscfile n name namespace nosubgrouping note overload p package page par paragraph param post pre private privatesection property protected protectedsection protocol public publicsection ref related relatedalso relates relatesalso remark remarks result return returns retval rtfonly sa section see short showinitializer since skip skipline snippet struct subpage subsection subsubsection ta
 bleofcontents test throw throws todo tparam typedef union until var verbatim verbinclude version warning weakgroup xmlonly xrefitem
 
 [lexer_properties]
 styling.within.preprocessor=1


Modified: data/filetypes.common
5 files changed, 2 insertions(+), 3 deletions(-)
===================================================================
@@ -103,7 +103,7 @@ whitespace_chars=\s\t!\"#$%&'()*+,-./:;<=>?@[\\]^`{|}~
 default=0x000000;0xffffff;false;false
 error=0xff0000;0xBFBFBF;false;italic
 
-selection=0x000000;0xc0c0c0;false;false
+selection=0x000000;0xc0c0c0;false;true
 current_line=0x000000;0xf0f0f0;true;
 brace_good=0x0000ff;0xFFFFFF;true;false
 brace_bad=0xff0000;0xFFFFFF;true;false
@@ -146,7 +146,7 @@ identifier_2=identifier_1
 identifier_3=identifier_1
 identifier_4=identifier_1
 
-string=0xff901e
+string=0xff8000
 string_1=string
 string_2=string_1
 string_eol=0x000000;0xe0c0e0;false;false
@@ -154,7 +154,6 @@ character=string_1
 backticks=string_2
 here_doc=string_2
 
-scalar=string_2
 label=default,bold
 preprocessor=0x007f7f
 regex=number_1


Modified: data/filetypes.cpp
6 files changed, 3 insertions(+), 3 deletions(-)
===================================================================
@@ -3,10 +3,10 @@
 
 [keywords]
 # all items must be in one line
-primary=and and_eq asm auto bitand bitor bool break case catch char class compl const const_cast continue default delete do double dynamic_cast else enum explicit export extern false float for friend goto if inline int long mutable namespace new not not_eq operator or or_eq private protected public register reinterpret_cast return short signed sizeof static static_cast struct switch template this throw true try typedef typeid typename union unsigned using virtual void volatile wchar_t while xor xor_eq
+primary=alignas alignof and and_eq asm auto bitand bitor bool break case catch char char16_t char32_t class compl const const_cast constexpr continue decltype default delete do double dynamic_cast else enum explicit export extern false final float for friend goto if inline int int8_t int16_t int32_t int64_t long mutable namespace new noexcept not not_eq nullptr operator or or_eq override private protected ptrdiff_t public register reinterpret_cast return short signed sizeof size_t static static_assert static_cast struct switch template this thread_local throw true try typedef typeid typename union unsigned using virtual void volatile wchar_t while xor xor_eq
 secondary=
-# these are some doxygen keywords (incomplete)
-docComment=attention author brief bug class code date def enum example exception file fn namespace note param remarks return see since struct throw todo typedef var version warning union
+# these are the Doxygen keywords
+docComment=a addindex addtogroup anchor arg attention author authors b brief bug c callergraph callgraph category cite class code cond copybrief copydetails copydoc copyright date def defgroup deprecated details dir dontinclude dot dotfile e else elseif em endcode endcond enddot endhtmlonly endif endinternal endlatexonly endlink endmanonly endmsc endrtfonly endverbatim endxmlonly enum example exception extends file fn headerfile hideinitializer htmlinclude htmlonly if ifnot image implements include includelineno ingroup interface internal invariant latexonly li line link mainpage manonly memberof msc mscfile n name namespace nosubgrouping note overload p package page par paragraph param post pre private privatesection property protected protectedsection protocol public publicsection ref related relatedalso relates relatesalso remark remarks result return returns retval rtfonly sa section see short showinitializer since skip skipline snippet struct subpage subsection subsubsection ta
 bleofcontents test throw throws todo tparam typedef union until var verbatim verbinclude version warning weakgroup xmlonly xrefitem
 
 [lexer_properties]
 styling.within.preprocessor=1


Modified: data/filetypes.css
1 files changed, 1 insertions(+), 0 deletions(-)
===================================================================
@@ -16,6 +16,7 @@ attribute=attribute
 value=value
 id=number
 identifier2=keyword_2
+variable=identifier_1
 important=extra
 directive=preprocessor
 identifier3=keyword_3


Modified: data/filetypes.d
5 files changed, 4 insertions(+), 1 deletions(-)
===================================================================
@@ -5,7 +5,7 @@ default=default
 comment=comment
 commentline=comment_line
 commentdoc=comment_doc
-commentdocnested=comment_doc
+commentnested=comment
 number=number_1
 word=keyword_1
 word2=keyword_2
@@ -28,6 +28,9 @@ secondary=
 docComment=Authors Bugs Copyright Date Deprecated Examples History License Macros Params Returns See_Also Standards Throws Version
 types=
 
+[lexer_properties]
+fold.d.comment.explicit=0
+
 [settings]
 # default extension used when saving files
 extension=d


Modified: data/filetypes.docbook
33 files changed, 32 insertions(+), 1 deletions(-)
===================================================================
@@ -1,5 +1,36 @@
 # For complete documentation of this file, please see Geany's main documentation
-[styling=XML]
+[styling]
+# note: these key names don't have a html_ prefix unlike filetypes.html
+default=default
+tag=tag
+tagunknown=tag_unknown
+attribute=attribute
+attributeunknown=attribute_unknown
+number=number_1
+doublestring=string_1
+singlestring=string_1
+other=other
+comment=comment
+entity=entity
+tagend=tag_end
+xmlstart=tag
+xmlend=tag_end
+cdata=string_2
+question=number_2
+value=value
+xccomment=comment
+
+sgml_default=default
+sgml_comment=comment
+sgml_special=number_1
+sgml_command=number_2
+sgml_doublestring=string_1
+sgml_simplestring=string_1
+sgml_1st_param=attribute
+sgml_entity=entity
+sgml_block_default=default
+sgml_1st_param_comment=comment
+sgml_error=error
 
 [keywords]
 # all items must be in one line


Modified: data/filetypes.perl
10 files changed, 5 insertions(+), 5 deletions(-)
===================================================================
@@ -10,13 +10,13 @@
 character=character
 preprocessor=preprocessor
 operator=operator
-identifier=identifier_1
-scalar=scalar
+identifier=identifier
+scalar=identifier_1
 pod=comment_doc
 regex=regex
-array=regex
-hash=regex
-symboltable=number_2
+array=identifier_2
+hash=identifier_3
+symboltable=identifier_4
 backticks=backticks
 pod_verbatim=comment_doc_keyword
 reg_subst=regex


Modified: data/filetypes.sh
4 files changed, 2 insertions(+), 2 deletions(-)
===================================================================
@@ -8,10 +8,10 @@ word=keyword_1
 string=string_1
 character=character
 operator=operator
-identifier=identifier_1
+identifier=identifier
 backticks=backticks
 param=parameter
-scalar=scalar
+scalar=identifier_1
 error=error
 here_delim=here_doc
 here_q=here_doc


Modified: data/filetypes.tcl
1 files changed, 1 insertions(+), 0 deletions(-)
===================================================================
@@ -9,6 +9,7 @@ blockcomment=comment
 number=number_1
 operator=operator
 identifier=identifier_1
+subbrace=identifier_2
 wordinquote=string_1
 inquote=string_1
 substitution=function


Modified: data/filetypes.vala
4 files changed, 2 insertions(+), 2 deletions(-)
===================================================================
@@ -5,8 +5,8 @@
 # all items must be in one line
 primary=abstract as async base bool break callback case catch char class const constpointer construct continue default delegate delete do double dynamic else ensures enum errordomain extern false finally float for foreach generic get global if in inline int int16 int32 int64 int8 interface internal is lock long namespace new null out override owned private protected public ref requires return set sealed short signal size_t sizeof ssize_t static string struct switch this throw throws time_t true try typeof uchar uint uint16 uint32 uint64 uint8 ulong unichar unowned ushort using value var virtual void weak while yield
 #secondary=
-# these are some doxygen and valadoc keywords (incomplete)
-docComment=attention author brief bug class code date def deprecated enum example exception file fn inheritDoc link namespace note param remarks return see since struct throw throws todo typedef union var version warning
+# these are the Doxygen and Valadoc keywords
+docComment=a addindex addtogroup anchor arg attention author authors b brief bug c callergraph callgraph category cite class code cond copybrief copydetails copydoc copyright date def defgroup deprecated details dir dontinclude dot dotfile e else elseif em endcode endcond enddot endhtmlonly endif endinternal endlatexonly endlink endmanonly endmsc endrtfonly endverbatim endxmlonly enum example exception extends file fn headerfile hideinitializer htmlinclude htmlonly if ifnot image implements include includelineno ingroup inheritDoc interface internal invariant latexonly li line link mainpage manonly memberof msc mscfile n name namespace nosubgrouping note overload p package page par paragraph param post pre private privatesection property protected protectedsection protocol public publicsection ref related relatedalso relates relatesalso remark remarks result return returns retval rtfonly sa section see short showinitializer since skip skipline snippet struct subpage subsection subsu
 bsection tableofcontents test throw throws todo tparam typedef union until var verbatim verbinclude version warning weakgroup xmlonly xrefitem
 
 [lexer_properties]
 styling.within.preprocessor=1


Modified: data/geany.glade
1394 files changed, 883 insertions(+), 511 deletions(-)
===================================================================
No diff available, check online


Modified: data/snippets.conf
71 files changed, 62 insertions(+), 9 deletions(-)
===================================================================
@@ -19,13 +19,6 @@
 
 # Default is used for all filetypes and keys can be overwritten by [filetype] sections
 [Default]
-if=if (%cursor%)%block_cursor%
-else=else%block_cursor%
-for=for (i = 0; i < %cursor%; i++)%block_cursor%
-while=while (%cursor%)%block_cursor%
-do=do\n{\n\t%cursor%\n} while (%cursor%)\n%cursor%
-switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%%cursor%
-try=try%block%\ncatch (%cursor%)%block_cursor%
 
 # special keys to be used in other snippets, cannot be used "standalone"
 # can be used by %key%, e.g. %brace_open%
@@ -44,14 +37,76 @@ block_cursor=\n{\n\t%cursor%\n}\n%cursor%
 [Keybindings]
 #for=<Ctrl>7
 
+[C]
+if=if (%cursor%)%block_cursor%
+else=else%block_cursor%
+for=for (i = 0; i < %cursor%; i++)%block_cursor%
+while=while (%cursor%)%block_cursor%
+do=do\n{\n\t%cursor%\n} while (%cursor%)\n%cursor%
+switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%%cursor%
+
 [C++]
+if=if (%cursor%)%block_cursor%
+else=else%block_cursor%
 for=for (int i = 0; i < %cursor%; i++)%brace_open%\n%brace_close%
+while=while (%cursor%)%block_cursor%
+do=do\n{\n\t%cursor%\n} while (%cursor%)\n%cursor%
+switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%%cursor%
+try=try%block%\ncatch (%cursor%)%block_cursor%
 
 [Java]
+if=if (%cursor%)%block_cursor%
+else=else%block_cursor%
 for=for (int i = 0; i < %cursor%; i++)%brace_open%\n%brace_close%
+while=while (%cursor%)%block_cursor%
+do=do\n{\n\t%cursor%\n} while (%cursor%)\n%cursor%
+switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%%cursor%
+try=try%block%\ncatch (%cursor%)%block_cursor%
 
 [PHP]
+if=if (%cursor%)%block_cursor%
+else=else%block_cursor%
 for=for ($i = 0; $i < %cursor%; $i++)%brace_open%\n%brace_close%
+while=while (%cursor%)%block_cursor%
+do=do\n{\n\t%cursor%\n} while (%cursor%)\n%cursor%
+switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%%cursor%
+try=try%block%\ncatch (%cursor%)%block_cursor%
+
+[Javascript]
+if=if (%cursor%)%block_cursor%
+else=else%block_cursor%
+for=for (i = 0; i < %cursor%; i++)%block_cursor%
+while=while (%cursor%)%block_cursor%
+do=do\n{\n\t%cursor%\n} while (%cursor%)\n%cursor%
+switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%%cursor%
+try=try%block%\ncatch (%cursor%)%block_cursor%
+
+[C#]
+if=if (%cursor%)%block_cursor%
+else=else%block_cursor%
+for=for (i = 0; i < %cursor%; i++)%block_cursor%
+while=while (%cursor%)%block_cursor%
+do=do\n{\n\t%cursor%\n} while (%cursor%)\n%cursor%
+switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%%cursor%
+try=try%block%\ncatch (%cursor%)%block_cursor%
+
+[Vala]
+if=if (%cursor%)%block_cursor%
+else=else%block_cursor%
+for=for (i = 0; i < %cursor%; i++)%block_cursor%
+while=while (%cursor%)%block_cursor%
+do=do\n{\n\t%cursor%\n} while (%cursor%)\n%cursor%
+switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%%cursor%
+try=try%block%\ncatch (%cursor%)%block_cursor%
+
+[ActionScript]
+if=if (%cursor%)%block_cursor%
+else=else%block_cursor%
+for=for (i = 0; i < %cursor%; i++)%block_cursor%
+while=while (%cursor%)%block_cursor%
+do=do\n{\n\t%cursor%\n} while (%cursor%)\n%cursor%
+switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%%cursor%
+try=try%block%\ncatch (%cursor%)%block_cursor%
 
 [Python]
 for=for i in xrange(%cursor%):\n\t
@@ -69,8 +124,6 @@ iferr=iferr%block_cursor%fix%block%
 monitor=monitor%block_cursor%handle%block%
 
 [Haskell]
-# prevent completion of "do"-while-loops in Haskell
-do=
 
 [HTML]
 table=<table>\n\t<tr>\n\t\t<td>%cursor%</td>\n\t</tr>\n</table>


Modified: doc/Doxyfile.in
6 files changed, 3 insertions(+), 3 deletions(-)
===================================================================
@@ -96,9 +96,9 @@ WARN_LOGFILE           =
 #---------------------------------------------------------------------------
 INPUT                  = ../src/ ./ \
                          ../plugins/geanyplugin.h ../plugins/geanyfunctions.h \
-                         ../tagmanager/tm_source_file.c ../tagmanager/include/tm_source_file.h \
-                         ../tagmanager/tm_work_object.c ../tagmanager/include/tm_work_object.h \
-                         ../tagmanager/tm_workspace.c ../tagmanager/include/tm_workspace.h
+                         ../tagmanager/src/tm_source_file.c ../tagmanager/src/tm_source_file.h \
+                         ../tagmanager/src/tm_work_object.c ../tagmanager/src/tm_work_object.h \
+                         ../tagmanager/src/tm_workspace.c ../tagmanager/src/tm_workspace.h
 INPUT_ENCODING         = UTF-8
 FILE_PATTERNS          = *.c \
                          *.cc \


Modified: doc/geany.1.in
2 files changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -1,4 +1,4 @@
-.TH "GEANY" "1" "October 02, 2011" "geany @VERSION@" ""
+.TH "GEANY" "1" "June 18, 2012" "geany @VERSION@" ""
 .SH "NAME"
 Geany \(em a small and lightweight IDE
 .SH "SYNOPSIS"


Modified: doc/geany.html
13530 files changed, 6803 insertions(+), 6727 deletions(-)
===================================================================
No diff available, check online


Modified: doc/geany.txt
179 files changed, 111 insertions(+), 68 deletions(-)
===================================================================
@@ -1,4 +1,4 @@
-.. |(version)| replace:: 1.22
+.. |(version)| replace:: 1.23
 
 =======
  Geany
@@ -11,11 +11,12 @@
 :Authors: Enrico Tröger,
           Nick Treleaven,
           Frank Lanitz,
-          Colomban Wendling
-:Date: 2011-10-02
+          Colomban Wendling,
+          Matthew Brush
+:Date: 2012-06-18
 :Version: |(version)|
 
-Copyright © 2005-2011
+Copyright © 2005-2012
 
 This document is distributed under the terms of the GNU General Public
 License as published by the Free Software Foundation; either version 2
@@ -424,17 +425,17 @@ Startup
 
 At startup, Geany loads all files from the last time Geany was
 launched. You can disable this feature in the preferences dialog
-(see `General Startup preferences`_). If you specify some
-files on the command line, only these files will be opened, but you
-can find the files from the last session in the file menu under the
-"Recent files" item. By default this contains the last 10 recently
-opened files. You can change the number of recently opened files in
-the preferences dialog.
+(see `General Startup preferences`_).
 
 You can start several instances of Geany, but only the first will
-load files from the last session. To run a second instance of Geany,
-do not specify any filenames on the command-line, or disable opening
-files in a running instance using the appropriate command line option.
+load files from the last session. In the subsequent instances, you
+can find these files in the file menu under the "Recent files" item.
+By default this contains the last 10 recently opened files. You can
+change the number of recently opened files in the preferences dialog.
+
+To run a second instance of Geany, do not specify any filenames on
+the command-line, or disable opening files in a running instance
+using the appropriate command line option.
 
 
 Opening files from the command-line in a running instance
@@ -747,12 +748,13 @@ Column mode editing (rectangular selections)
 
 There is basic support for column mode editing. To use it, create a
 rectangular selection by holding down the Control and Shift keys
-(or Control and Alt if it doesn't work) while
-selecting some text. It is also possible to create a zero-column selection.
+(or Alt and Shift on Windows) while selecting some text.
 Once a rectangular selection exists you can start editing the text within
 this selection and the modifications will be done for every line in the
 selection.
 
+It is also possible to create a zero-column selection - this is
+useful to insert text on multiple lines.
 
 Drag and drop of text
 ^^^^^^^^^^^^^^^^^^^^^
@@ -1389,16 +1391,14 @@ Regular expressions
 
 You can use regular expressions in the Find and Replace dialogs
 by selecting the *Use regular expressions* check box (see `Matching
-options`_). The syntax is POSIX compatible, as described in the table
-below.
+options`_). The syntax is Perl compatible. Basic syntax is described
+in the table below. For full details, see
+http://www.geany.org/manual/gtk/glib/glib-regex-syntax.html.
 
 .. note::
     1. The *Use escape sequences* dialog option always applies for regular
        expressions.
     2. Searching backwards with regular expressions is not supported.
-    3. \\b, \\d, \\s, \\w are GNU extensions and may not be available
-       on non-GNU POSIX systems unless you built Geany with the
-       ``--enable-gnu-regex`` option (this is always used on Windows).
 
 **In a regular expression, the following characters are interpreted:**
 
@@ -1493,11 +1493,8 @@ the ``colorschemes`` subdirectory. They should have the extension
 ``.conf``. The default color scheme
 is read from ``filetypes.common``.
 
-The `[named_styles] section`_ is the same as for ``filetypes.common``.
-
-.. note::
-    Some filetypes do not yet support named styles so will ignore
-    any chosen color scheme.
+The `[named_styles] section`_  and `[named_colors] section`_ are the
+same as for ``filetypes.common``.
 
 The ``[theme_info]`` section can contain information about the
 theme. The ``name`` and ``description`` keys are read to set the
@@ -1597,6 +1594,8 @@ Different tag attributes like the return value or the argument list
 are separated with different characters indicating the type of the
 following argument.
 
+Pipe-separated format
+*********************
 The Pipe-separated format is easier to read and write.
 There is one tag per line and different tag attributes are separated
 by the pipe character (``|``). A line looks like::
@@ -1641,12 +1640,15 @@ Example for the wxD library for the D programming language::
     geany -g wxd.d.tags /home/username/wxd/wx/*.d
 
 
-*Generating C/C++ tag files:*
+Generating C/C++ tag files
+**************************
+You may need to first setup the `C ignore.tags`_ file.
 
-For C/C++ tag files, gcc and grep are required, so that header files
-can be preprocessed to include any other headers they depend upon.
+For C/C++ tag files gcc is required by default, so that header files
+can be preprocessed to include any other headers they depend upon. If
+you do not want this, use the ``-P`` option described above.
 
-For C/C++ files, the environment variable CFLAGS should be set with
+For preprocessing, the environment variable CFLAGS should be set with
 appropriate ``-I/path`` include paths. The following example works with
 the bash shell, generating tags for the GnomeUI library::
 
@@ -1657,28 +1659,13 @@ You can adapt this command to use CFLAGS and header files appropriate
 for whichever libraries you want.
 
 
-*Replacing the default C/C++ tags file:*
-
-Geany currently uses a default global tags file c99.tags for
-C and C++, commonly installed in /usr/share/geany. This file can
-be replaced with one containing tags parsed from a different set
-of header files. When Geany is next started, your custom tags file
-will be loaded instead of the default c99.tags. You should keep a
-copy of the generated tags file because it will get overwritten when
-upgrading Geany.
-
-*Generating tag files on Windows:*
-
-This works basically the same as on other platforms but you need to make
-sure you have grep installed and Geany can find it, i.e. it must be
-in the PATH environment variable. To test this, open a console window
-and type ``grep`` and see whether it is executed.
-If it is, then you can create a tags file like the following::
+Generating tag files on Windows
+*******************************
+This works basically the same as on other platforms::
 
     "c:\program files\geany\bin\geany" -g c:\mytags.php.tags c:\code\somefile.php
 
 
-
 C ignore.tags
 ^^^^^^^^^^^^^
 
@@ -1718,6 +1705,11 @@ manual page:
 For even more detailed information please read the manual page of
 Exuberant Ctags.
 
+Geany extends Ctags with a '*' character suffix - this means use
+prefix matching, e.g. G_GNUC_* will match G_GNUC_NULL_TERMINATED, etc.
+Note that prefix match items should be put after other items to ensure
+that items like G_GNUC_PRINTF+ get parsed correctly.
+
 
 Preferences
 -----------
@@ -1772,7 +1764,6 @@ Paths
 Startup path
     Path to start in when opening or saving files.
     It must be an absolute path.
-    Leave it blank to use the current working directory.
 
 Project files
     Path to start in when opening project files.
@@ -1986,6 +1977,8 @@ Features
 Line wrapping
     Show long lines wrapped around to new display lines.
 
+.. _smart_home_key:
+
 "Smart" home key
     Whether to move the cursor to the first non-whitespace character
     on the line when you hit the home key on your keyboard. Pressing it
@@ -3498,22 +3491,25 @@ Go to tag definition            Ctrl-T                    Jump to the definition
 Go to tag declaration           Ctrl-Shift-T              Jump to the declaration of the current word or
                                                           selection. See `Go to tag declaration`_.
 
-Go to Start of Line             Home                      Move the caret to the end of the line indentation
-                                                          unless it is already there, in which case it moves
-                                                          it to the start of the line.
+Go to Start of Line             Home                      Move the caret to the start of the line.
+                                                          Behaves differently if smart_home_key_ is set.
 
 Go to End of Line               End                       Move the caret to the end of the line.
 
-Go to End of Display Line       Alt-End                   Move the caret to the end of the display line.
+Go to Start of Display Line     Alt-Home                  Move the caret to the start of the display line.
                                                           This is useful when you use line wrapping and
-                                                          want to jump to the end of the wrapped, virtual
-                                                          line, not the real end of the whole line.
+                                                          want to jump to the start of the wrapped, virtual
+                                                          line, not the real start of the whole line.
+                                                          If the line is not wrapped, it behaves like
+                                                          `Go to Start of Line`.
+
+Go to End of Display Line       Alt-End                   Move the caret to the end of the display line.
                                                           If the line is not wrapped, it behaves like
-                                                          `Go to End of Line`, see above.
+                                                          `Go to End of Line`.
 
 Go to Previous Word Part        Ctrl-/                    Goto the previous part of the current word.
 
-Go to Next Word Part            Ctrl-\                    Goto the next part of the current word.
+Go to Next Word Part            Ctrl-\\                   Goto the next part of the current word.
 =============================== ========================= ==================================================
 
 View keybindings
@@ -3607,7 +3603,7 @@ Action                               Default shortcut     Description
 ==================================== ==================== ==================================================
 Replace tabs by space                                     Replaces all tabs with the right amount of spaces.
 
-Replace spaces by tabs                                    Replaces all spaces with tab characters.
+Replace spaces by tabs                                    Replaces leading spaces with tab characters.
 
 Toggle current fold                                       Toggles the folding state of the current code block.
 
@@ -3634,6 +3630,18 @@ Remove Markers and Error Indicators                       Combines ``Remove Mark
 ==================================== ==================== ==================================================
 
 
+Project keybindings
+```````````````````
+=============================== ========================= ==================================================
+Action                          Default shortcut          Description
+=============================== ========================= ==================================================
+New                                                       Create a new project.
+Open                                                      Opens a project file.
+Properties                                                Shows project properties.
+Close                                                     Close the current project.
+=============================== ========================= ==================================================
+
+
 Build keybindings
 `````````````````
 =============================== ========================= ==================================================
@@ -3888,9 +3896,14 @@ manual format is:
 * ``key=foreground_color;background_color;bold_flag;italic_flag``
 
 Colors have to be specified as RGB hex values prefixed by
-0x. For example red is 0xff0000, blue is 0x0000ff. The values are
-case-insensitive, but it is a good idea to use small letters. Bold
-and italic are flags and should only be "true" or "false". If their
+0x or # similar to HTML/CSS hex triplets. For example, all of the following
+are valid values for pure red; 0xff0000, 0xf00, #ff0000, or #f00.  The
+values are case-insensitive but it is a good idea to use lower-case.
+Note that you can also use *named colors* as well by substituting the
+color value with the name of a color as defined in the ``[named_colors]``
+section, see the `[named_colors] Section`_ for more information.
+
+Bold and italic are flags and should only be "true" or "false". If their
 value is something other than "true" or "false", "false" is assumed.
 
 You can omit fields to use the values from the style named ``"default"``.
@@ -4119,7 +4132,7 @@ As of Geany 0.19 this section is supplemented by the `[build-menu] section`_.
 Values that are set in the [build-menu] section will override those in this section.
 
 error_regex
-    This is a GNU-style extended regular expression to parse a filename
+    This is a regular expression to parse a filename
     and line number from build output. If undefined, Geany will fall
     back to its default error message parsing.
 
@@ -4214,8 +4227,23 @@ different files.
     entry in the above example, but they must be declared after the
     original style.
 
-This section can be overridden with color scheme files - see the `Color
-schemes menu`_.
+
+[named_colors] section
+``````````````````````
+Named colors declared here can be used in the ``[styling]`` or
+``[named_styles]`` section of any filetypes.* file or color scheme.
+
+For example::
+
+    [named_colors]
+    my_red_color=#FF0000
+    my_blue_color=#0000FF
+
+    [named_styles]
+    foo=my_red_color;my_blue_color;false;true
+
+This allows to define a color pallete by name so that to change a color
+scheme-wide only involves changing the hex value in a single location.
 
 [styling] section
 `````````````````
@@ -4965,7 +4993,7 @@ Contributing to this document
 This document (``geany.txt``) is written in `reStructuredText`__
 (or "reST"). The source file for it is located in Geany's ``doc``
 subdirectory.  If you intend on making changes, you should grab the
-source right from SVN to make sure you've got the newest version. After
+source right from Git to make sure you've got the newest version. After
 editing the file, to build the HTML document to see how your changes
 look, run "``make doc``" in the subdirectory ``doc`` of Geany's source
 directory. This regenerates the ``geany.html`` file. To generate a PDF
@@ -4974,12 +5002,25 @@ geany-|(version)|.pdf.
 
 __ http://docutils.sourceforge.net/rst.html
 
-After you are happy with your changes, create a patch::
+After you are happy with your changes, create a patch e.g. by using::
 
-    % svn diff geany.txt > foo.patch
+    % git diff geany.txt > foo.patch
+
+or even better, by creating a Git-formatted patch which will keep authoring
+and description data, by first committing your changes (doing so in a fresh
+new branch is recommended for `matser` not to diverge from upstream) and then
+using git format-patch::
+
+    % git checkout -b my-documentation-changes # create a fresh branch
+    % git commit geany.txt
+    Write a good commit message...
+    % git format-patch HEAD^
+    % git checkout master # go back to master
 
 and then submit that file to the mailing list for review.
 
+Also you can clone the Geany repository at GitHub and send a pull request.
+
 Note, you will need the Python docutils software package installed
 to build the docs. The package is named ``python-docutils`` on Debian
 and Fedora systems.
@@ -5008,8 +5049,10 @@ Keyboard commands
 Keyboard commands for Scintilla mostly follow common Windows and GTK+
 conventions. All move keys (arrows, page up/down, home and end)
 allows to extend or reduce the stream selection when holding the
-Shift key, and the rectangular selection when holding the Shift and
-Ctrl keys. Some keys may not be available with some national keyboards
+Shift key, and the rectangular selection when holding the
+appropriate keys (see `Column mode editing (rectangular selections)`_).
+
+Some keys may not be available with some national keyboards
 or because they are taken by the system such as by a window manager
 or GTK. Keyboard equivalents of menu commands are listed in the
 menus. Some less common commands with no menu equivalent are:


Modified: doc/makefile.win32
8 files changed, 5 insertions(+), 3 deletions(-)
===================================================================
@@ -3,14 +3,16 @@
 # Use localwin32.mk instead of editing variables as it is included in sub
 # makefiles.
 # Use localwin32.mk to override RST2HTML, DOXYGEN
-# For MSYS use localwin32.mk to set CP and RM.
 
 RST2HTML=python rst2html.py
 DOXYGEN=doxygen
-CP = copy
-RM = del
+CP = copy /y
 -include ../localwin32.mk
 
+ifdef MSYS
+CP = cp
+endif
+
 doc: geany.txt
 	$(RST2HTML) -stg --stylesheet=geany.css $^ geany.html
 


Modified: doc/making-a-release
33 files changed, 17 insertions(+), 16 deletions(-)
===================================================================
@@ -4,44 +4,45 @@ For major releases:
 * Try to synchronize release date with geany-plugins.
 
 Update NEWS file - ideally each committer should review their changes 
-and summarise the interesting ones. Use scripts/changelist.pl to 
-format & filter commits by a particular developer name.
+and summarize the interesting ones.  Use `git log --author='name'`
+to filter commits by a particular developer name.
 
 Ensure version numbers are all updated in:
 	configure.ac geany.nsi geany_private.rc win32-config.h wscript
 	doc/geany.txt
 Ensure release date is updated in:
-	doc/geany.txt doc/geany.1.in
+	NEWS doc/geany.txt doc/geany.1.in
 Regenerate doc/geany.html.
 Check GEANY_CODENAME is set in src/geany.h.
-Update NEWS release date.
-Add changelog entry for new release.
 
 Export the code into a new directory (i.e. not usual working copy).
 Run 'make distcheck'.
 Delete the created archive and run 'make dist' and 'make dist-bzip2'.
+Sign the archives with 'make sign'.
 
-Put the resulting tarballs on uvena.de - upload to home directory
-and after the upload is finished move them into
-/home/www/files.uvena.de/geany/.
+Put the resulting tarballs and signature files on geany.org - upload
+to home directory and after the upload is finished move them into
+/srv/www/download.geany.org/.
 Rename LATEST-IS-... to the new version number in
-/home/www/files.uvena.de/geany/ and /home/www/www.geany.org/files.
-Add the GPG signatures - use 'make sign' and check the public key
+/srv/www/download.geany.org/ and /srv/www/www.geany.org/files.
+Make sure the public part of the GPG key used to sign the archives
 can be found on the download page.
+
 Windows builds (enrico?).
 
-Tag release in SVN, remove the branch if used.
+Create a signed tag for the release in Git with 'git tag -s <version>'.
 
 Website: update Releases, Documentation links and add a News item.
 Update the manual data and links in the filesystem in
-/home/www/www.geany.org/manual. Remember to update current/hacking.html
+/srv/www/www.geany.org/manual.  Remember to update current/hacking.html
 too.
 
 Announce on geany, devel, i18n mailing lists (check you're subscribed).
-Put a news item on Sourceforge, add a new release on Freshmeat.net
-and update the information on gnomefiles.org.
+Put a news item on SourceForge (https://sourceforge.net/news/?group_id=153444)
+and a new release on freecode.com (https://freecode.com/projects/geany).
 
-For non-trunk releases, merge NEWS into trunk and any branch-only
+For non-master releases, merge NEWS into master and any branch-only
 commits that need to merged.
 
-For trunk releases, bump version strings and merge unstable branch.
+For merge releases, bump version strings and codename and merge unstable
+branch if any.


Modified: doc/plugins.dox
75 files changed, 48 insertions(+), 27 deletions(-)
===================================================================
@@ -3,7 +3,7 @@
  *
  *      Copyright 2008-2011 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
  *      Copyright 2008-2011 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
- *      Copyright 2009-2011 Frank Lanitz <frank(at)frank(dot)uvena(dot)de>
+ *      Copyright 2009-2012 Frank Lanitz <frank(at)frank(dot)uvena(dot)de>
  *
  *      This program is free software; you can redistribute it and/or modify
  *      it under the terms of the GNU General Public License as published by
@@ -84,41 +84,41 @@
  *
  *  @subsection code Managing the source code
  *
- *  For authors of plugins for Geany, we created a dedicated @a geany-plugins project at
- *  Sourceforge to ease development of plugins and help new authors.
- *  Project website: http://sourceforge.net/projects/geany-plugins
- *
- *  Each plugin author is welcome to use these services. To do so, you need an account at
- *  Sourceforge. You can easily register at (http://sourceforge.net/account/registration/).
- *  After you successfully created an account,
- *  tell your account name Enrico or Nick and you will write access to the SVN repository
- *  (http://geany-plugins.svn.sourceforge.net/viewvc/geany-plugins/).
- *  Then you can use the repository for your own plugin.
- *
- *  Authors using this service should subscribe to the
- *  geany-plugins-commits at uvena.de and geany-plugins-tracker at uvena.de
- *  mailing lists(see my previous post) to stay up to date with changes.
- *  General plugin discussion can happen on the normal geany at uvena.de or
- *  geany-devel at uvena.de lists.
+ *  For authors of plugins for Geany, we created a dedicated @a geany-plugins project
+ *  on Sourceforge and GitHub to ease development of plugins and help new authors.
+ *  All information about this project you can find at http://plugins.geany.org/
+ *
+ *  To add a new plugin to this project, get in touch with the people on the
+ *  geany-devel-mailing list and create a fork of the geany-plugins project
+ *  at https://github.com/geany/geany-plugins.
+ *  Beside of adding a new plugin, geany-devel-mailing list is also the place where
+ *  to discuss development related questions.
+ *  However, once you have done your fork of geany-plugins you can develop
+ *  your plugin until you think its the right time to publish it. At this point,
+ *  create a pull request for adding your patch set into the master branch of the main
+ *  geany-plugins repository.
+ *
+ *  Of course, you don't need to use GitHub - any Git is fine. But GitHub
+ *  is making it way easier for review, merging and get in touch with you for 
+ *  comments.
+ *
+ *  If you don't want your plugin to be part of the geany-plugins project it is also fine.
+ *  Just skip the part about forking geany-plugins and sending a pull request.
+ *  In this case it is of course also a good idea to post some kind of announcement
+ *  to geany-devel and maybe to the main geany mailing list -- it's up to you.
+ *  You can also ask for your plugin to be listed on the http://plugins.geany.org/
+ *  website as a third party plugin, helping Geany user to know about your plugin.
  *
  *  At time of writing, there are some plugins already available in the
- *  repository. Feel free to use any of these plugins as a start for your own,
+ *  repositories. Feel free to use any of these plugins as a start for your own,
  *  maybe by copying the directory structure and the autotools files
  *  (Makefile.am, configure.in, ...). Most of the available plugins are also ready for
  *  i18n support, just for reference.
  *
- *  New plugins should be imported into a new directory inside the trunk/
- *  directory. There are also the common branches and tags directories, use
- *  them as needed, use always a subdirectory for your own plugin.
- *
  *  We encourage authors using this service to only commit changes to their
  *  own plugin and not to others' plugins. Instead just send patches to
  *  geany-devel at uvena.de or the plugin author directly.
  *
- *  (the full announcement of this service can be found at
- *  http://lists.uvena.de/geany/2008-April/003225.html)
- *
- *
  *  @section paths Installation paths
  *
  *   - The plugin binary (@c pluginname.so) should be installed in Geany's libdir. This is
@@ -145,7 +145,7 @@
  *
  *  Since Geany 0.12 there is a plugin interface to extend Geany's functionality and
  *  add new features. This document gives a brief overview about how to add new
- *  plugins by writing a simple "Hello World" plugin in C.
+ *  plugins by writing a simple "Hello World" plugin in C or C++.
  *
  *
  *  @section buildenv Build environment
@@ -249,6 +249,22 @@ void plugin_cleanup(void)
  *  some memory, you are right. But it should compile and load/unload in Geany nicely.
  *  Now you have the very basic layout of a new plugin. Great, isn't it?
  *
+ *  @note
+ *
+ *  If you would rather write the plugin in C++, you can do that by marking the
+ *  plugin functions that it implements as @c extern @c "C", for example:
+ *
+ *  @code
+ *
+extern "C" void plugin_init(GeanyData *data)
+{
+}
+
+extern "C" void plugin_cleanup(void)
+{
+}
+ *  @endcode
+ *
  *  @section building Building
  *
  *  First make plugin.o:
@@ -262,6 +278,11 @@ void plugin_cleanup(void)
  *  If all went OK, put the library into one of the paths Geany looks for plugins,
  *  e.g. $prefix/lib/geany. See @ref paths "Installation paths" for details.
  *
+ *  @note
+ *
+ *  If you are writing the plugin in C++, then you will need to use your C++
+ *  compiler here, for example @c g++.
+ *
  *  @section realfunc Adding functionality
  *
  *  Let's go on and implement some real functionality.


Modified: doc/pluginsignals.c
19 files changed, 14 insertions(+), 5 deletions(-)
===================================================================
@@ -1,8 +1,8 @@
 /*
  *      pluginsignals.c - this file is part of Geany, a fast and lightweight IDE
  *
- *      Copyright 2008-2011 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
- *      Copyright 2008-2011 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
+ *      Copyright 2008-2012 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+ *      Copyright 2008-2012 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
  *
  *      This program is free software; you can redistribute it and/or modify
  *      it under the terms of the GNU General Public License as published by
@@ -156,18 +156,18 @@ static void on_document_open(GObject *obj, GeanyDocument *doc, gpointer user_dat
  */
 signal void (*project_close)(GObject *obj, gpointer user_data);
 
-/** Sent after a project dialog is created but before it is displayed. Plugins
+/** Sent after a project dialog is opened but before it is displayed. Plugins
  *  can append their own project settings tabs by using this signal.
  *  @param obj a GeanyObject instance, should be ignored.
  *  @param notebook a GtkNotebook instance that can be used by plugins to append their
  *  settings tabs.
  *  @param user_data user data.
  */
-signal void (*project_dialog_create)(GObject *obj, GtkWidget *notebook, gpointer user_data);
+signal void (*project_dialog_open)(GObject *obj, GtkWidget *notebook, gpointer user_data);
 
 /** Sent when the settings dialog is confirmed by the user. Plugins can use
  *  this signal to read the settings widgets previously added by using the
- *  @c project-dialog-create signal.
+ *  @c project-dialog-open signal.
  *  @warning The dialog will still be running afterwards if the user chose 'Apply'.
  *  @param obj a GeanyObject instance, should be ignored.
  *  @param notebook a GtkNotebook instance that can be used by plugins to read their
@@ -176,6 +176,15 @@ static void on_document_open(GObject *obj, GeanyDocument *doc, gpointer user_dat
  */
 signal void (*project_dialog_confirmed)(GObject *obj, GtkWidget *notebook, gpointer user_data);
 
+/** Sent before project dialog is closed. By using this signal, plugins can remove 
+ *  tabs previously added in project-dialog-open signal handler.
+ *  @param obj a GeanyObject instance, should be ignored.
+ *  @param notebook a GtkNotebook instance that can be used by plugins to remove
+ *  settings tabs previously added in the project-dialog-open signal handler.
+ *  @param user_data user data.
+ */
+signal void (*project_dialog_close)(GObject *obj, GtkWidget *notebook, gpointer user_data);
+
 /** Sent once Geany has finished all initialization and startup tasks and the GUI has been
  *  realized. This signal is the very last step in the startup process and is sent once
  *  the GTK main event loop has been entered.


Modified: doc/pluginsymbols.c
6 files changed, 3 insertions(+), 3 deletions(-)
===================================================================
@@ -1,8 +1,8 @@
 /*
  *      pluginsymbols.c - this file is part of Geany, a fast and lightweight IDE
  *
- *      Copyright 2008-2011 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
- *      Copyright 2008-2011 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
+ *      Copyright 2008-2012 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+ *      Copyright 2008-2012 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
  *
  *      This program is free software; you can redistribute it and/or modify
  *      it under the terms of the GNU General Public License as published by
@@ -103,7 +103,7 @@
 void plugin_cleanup();
 
 /** Called whenever the plugin should show its documentation (if any). This may open a dialog,
- * a browser with a website or a local installed HTML help file(see utils_start_browser())
+ * a browser with a website or a local installed HTML help file(see utils_open_browser())
  * or something else.
  * Can be omitted when not needed. */
 void plugin_help();


Modified: geany.nsi
14 files changed, 9 insertions(+), 5 deletions(-)
===================================================================
@@ -1,8 +1,8 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ; geany.nsi - this file is part of Geany, a fast and lightweight IDE
 ;
-; Copyright 2007-2011 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
-; Copyright 2007-2011 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
+; Copyright 2007-2012 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+; Copyright 2007-2012 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
 ;
 ; This program is free software; you can redistribute it and/or modify
 ; it under the terms of the GNU General Public License as published by
@@ -32,8 +32,8 @@ RequestExecutionLevel highest ; set execution level for Windows Vista
 ; helper defines  ;
 ;;;;;;;;;;;;;;;;;;;
 !define PRODUCT_NAME "Geany"
-!define PRODUCT_VERSION "1.22"
-!define PRODUCT_VERSION_ID "1.22.0.0"
+!define PRODUCT_VERSION "1.23"
+!define PRODUCT_VERSION_ID "1.23.0.0"
 !define PRODUCT_PUBLISHER "The Geany developer team"
 !define PRODUCT_WEB_SITE "http://www.geany.org/"
 !define PRODUCT_DIR_REGKEY "Software\Geany"
@@ -50,7 +50,7 @@ VIProductVersion "${PRODUCT_VERSION_ID}"
 VIAddVersionKey "ProductName" "${PRODUCT_NAME}"
 VIAddVersionKey "FileVersion" "${PRODUCT_VERSION}"
 VIAddVersionKey "ProductVersion" "${PRODUCT_VERSION}"
-VIAddVersionKey "LegalCopyright" "Copyright 2005-2011 by the Geany developer team"
+VIAddVersionKey "LegalCopyright" "Copyright 2005-2012 by the Geany developer team"
 VIAddVersionKey "FileDescription" "${PRODUCT_NAME} Installer"
 
 BrandingText "$(^NAME) installer (NSIS 2.46)"
@@ -128,12 +128,16 @@ Section "!Program Files" SEC01
 	SetOutPath "$INSTDIR\data"
 	File "${RESOURCEDIR}\data\GPL-2"
 	File "${RESOURCEDIR}\data\file*"
+	File "${RESOURCEDIR}\data\geany.glade"
 	File "${RESOURCEDIR}\data\snippets.conf"
 	File "${RESOURCEDIR}\data\ui_toolbar.xml"
 
 	SetOutPath "$INSTDIR\data\templates"
 	File /r "${RESOURCEDIR}\data\templates\*"
 
+	SetOutPath "$INSTDIR\data\colorschemes"
+	File /r "${RESOURCEDIR}\data\colorschemes\*"
+
 	SetOutPath "$INSTDIR\share\icons"
 	File /r "${RESOURCEDIR}\share\icons\*"
 


Modified: geany.pc.in
2 files changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -8,7 +8,7 @@ localedir=@localedir@
 
 Name: Geany
 Description: A fast and lightweight IDE using GTK2
-Requires: gtk+-2.0 >= 2.16.0
+Requires: @DEPENDENCIES@
 Version: @VERSION@
 Libs: -L${libdir}
 Cflags: -DGTK -I${includedir}/geany -I${includedir}/geany/tagmanager -I${includedir}/geany/scintilla


Modified: geany_private.rc
6 files changed, 3 insertions(+), 3 deletions(-)
===================================================================
@@ -1,8 +1,8 @@
 
 #include <windows.h> // include for version info constants
 
-#define VER_FILEVERSION             1,22,0,0
-#define VER_FILEVERSION_STR         "1.22"
+#define VER_FILEVERSION             1,23,0,0
+#define VER_FILEVERSION_STR         "1.23"
 
 A ICON MOVEABLE PURE LOADONCALL DISCARDABLE "../icons/geany.ico"
 
@@ -21,7 +21,7 @@ FILETYPE			VFT_APP
 			VALUE "FileVersion", VER_FILEVERSION_STR
 			VALUE "FileDescription", "Geany"
 			VALUE "InternalName", "Geany"
-			VALUE "LegalCopyright", "Copyright 2005-2011 by the Geany developers"
+			VALUE "LegalCopyright", "Copyright 2005-2012 by the Geany developers"
 			VALUE "LegalTrademarks", ""
 			VALUE "OriginalFilename", "Geany.exe"
 			VALUE "ProductName", "Geany"


Modified: m4/geany-gnu-regex.m4
26 files changed, 0 insertions(+), 26 deletions(-)
===================================================================
@@ -1,26 +0,0 @@
-dnl GEANY_CHECK_GNU_REGEX
-dnl Checks whether to use internal GNU regex library
-dnl Defines USE_INCLUDED_REGEX both with AC_DEFINE and as an
-dnl AM_CONDITIONAL
-AC_DEFUN([GEANY_CHECK_GNU_REGEX],
-[
-	AC_ARG_ENABLE([gnu-regex],
-			[AS_HELP_STRING([--enable-gnu-regex],
-					[compile with included GNU regex library [default=no]])],
-			,
-			[enable_gnu_regex=no])
-
-	# auto-enable included regex if necessary
-	# FIXME: this may override a user choice
-	AC_CHECK_FUNCS([regcomp], [], [enable_gnu_regex="yes"])
-
-	if test "x$enable_gnu_regex" = "xyes" ; then
-		AC_DEFINE([USE_INCLUDED_REGEX], [1], [Define if included GNU regex code should be used.])
-		AC_DEFINE([HAVE_REGCOMP], [1], [Define if you have the 'regcomp' function.])
-		AM_CONDITIONAL([USE_INCLUDED_REGEX], true)
-		GEANY_STATUS_ADD([GNU regex library], [built-in])
-	else
-		AM_CONDITIONAL([USE_INCLUDED_REGEX], false)
-		GEANY_STATUS_ADD([GNU regex library], [system])
-	fi
-])


Modified: m4/geany-i18n.m4
5 files changed, 1 insertions(+), 4 deletions(-)
===================================================================
@@ -13,10 +13,7 @@ AC_DEFUN([GEANY_I18N],
 	if test -n "${LINGUAS}"; then
 		ALL_LINGUAS="${LINGUAS}"
 	else
-		if test -z "$conf_dir"; then
-			conf_dir="."
-		fi
-		ALL_LINGUAS=`cd "$conf_dir/po" 2>/dev/null && ls *.po 2>/dev/null | $AWK 'BEGIN { FS="."; ORS=" " } { print $[]1 }'`
+		ALL_LINGUAS=`cd "$srcdir/po" 2>/dev/null && ls *.po 2>/dev/null | $AWK 'BEGIN { FS="."; ORS=" " } { print $[]1 }'`
 	fi
 
 	AM_GLIB_GNU_GETTEXT


Modified: makefile.win32
63 files changed, 45 insertions(+), 18 deletions(-)
===================================================================
@@ -1,46 +1,73 @@
+# See http://www.geany.org/Support/BuildingOnWin32
 # Running make creates config.h then calls the sub makefiles.
 #
 # Other targets are:
 #	deps: delete the dependencies so they are regenerated on next make
 #	clean: clean all generated files
+#	install: install to DESTDIR
 #
 # localwin32.mk is an optional file to override make variables.
 # Use localwin32.mk instead of editing variables as it is included in sub
 # makefiles.
-# localwin32.mk to set PREFIX instead of the default C:\libs
-# For MSYS use localwin32.mk to set CP and RM.
-# By default this will work in a Windows command prompt.
+# For MSYS set MSYS=1.
+# By default this should work in a Windows command prompt (cmd.exe).
 
 WINDRES = windres.exe
 CC = gcc
 CXX = g++
-CP = copy
+CP = copy /Y
+CP_R = xcopy /S /Y
 RM = del
-MAKE = make
+MKDIR = mkdir
+# $/ is used as a portable directory separator
+# strip is used to prevent line wrap
+/ := $(strip \)
+DESTDIR = C:/Program Files/Geany
 -include localwin32.mk
 
-# Note: && is needed after cd because each line is executed in a different
-# shell. (cd .. is just for clarity).
+ifdef MSYS
+CP = cp
+CP_R = cp -r
+RM = rm -f
+/ = /
+endif
+
 all: config.h
-	cd tagmanager/mio && $(MAKE) -f makefile.win32 && cd ../..
-	cd tagmanager && $(MAKE) -f makefile.win32 && cd ..
-	cd scintilla && $(MAKE) -f makefile.win32 && cd ..
-	cd plugins && $(MAKE) -f makefile.win32 && cd ..
-	cd src && $(MAKE) -f makefile.win32 && cd ..
+	$(MAKE) -C tagmanager/ctags -f makefile.win32
+	$(MAKE) -C tagmanager/mio -f makefile.win32
+	$(MAKE) -C tagmanager/src -f makefile.win32
+	$(MAKE) -C scintilla -f makefile.win32
+	$(MAKE) -C plugins -f makefile.win32
+	$(MAKE) -C src -f makefile.win32
 
 config.h: win32-config.h
 	$(CP) $< $@
 
 deps:
-	-$(RM) tagmanager/mio/deps.mak tagmanager/deps.mak scintilla/deps.mak plugins/deps.mak src/deps.mak
+	-$(RM) tagmanager/ctags/deps.mak tagmanager/mio/deps.mak tagmanager/src/deps.mak scintilla/deps.mak plugins/deps.mak src/deps.mak
 
 # used by src/makefile.win32 to avoid del ../file which is an error
 clean-local:
 	-$(RM) geany_private.res geany.exe
 
 clean: deps
-	cd tagmanager/mio && $(MAKE) -f makefile.win32 clean && cd ../..
-	cd tagmanager && $(MAKE) -f makefile.win32 clean && cd ..
-	cd scintilla && $(MAKE) -f makefile.win32 clean && cd ..
-	cd plugins && $(MAKE) -f makefile.win32 clean && cd ..
-	cd src && $(MAKE) -f makefile.win32 clean && cd ..
+	$(MAKE) -C tagmanager/ctags -f makefile.win32 clean
+	$(MAKE) -C tagmanager/mio -f makefile.win32 clean
+	$(MAKE) -C tagmanager/src -f makefile.win32 clean
+	$(MAKE) -C scintilla -f makefile.win32 clean
+	$(MAKE) -C plugins -f makefile.win32 clean
+	$(MAKE) -C src -f makefile.win32 clean
+
+.PHONY: all clean clean-local deps install
+
+# likely requires admin privileges
+# mkdir output is ignored in case dir exists
+# 'copy' seems to only accept / in the destination
+install:
+	-$(MKDIR) "$(DESTDIR)"
+	-$(MKDIR) "$(DESTDIR)/bin"
+	$(CP) geany.exe "$(DESTDIR)/bin"
+	-$(MKDIR) "$(DESTDIR)/lib"
+	$(CP) plugins$/*.dll "$(DESTDIR)/lib"
+	-$(MKDIR) "$(DESTDIR)/data"
+	$(CP_R) data "$(DESTDIR)/data"


Modified: plugins/Makefile.am
6 files changed, 3 insertions(+), 3 deletions(-)
===================================================================
@@ -38,7 +38,7 @@ MINGW_CFLAGS = \
 			-DGTK \
 			-I$(top_srcdir) \
 			-I$(top_srcdir)/src \
-			-I$(top_srcdir)/tagmanager/include \
+			-I$(top_srcdir)/tagmanager/src \
 			-I$(top_srcdir)/scintilla/include \
 			$(GTK_CFLAGS) \
 			$(PLUGIN_CFLAGS)
@@ -94,7 +94,7 @@ splitwindow_la_CFLAGS   = -DG_LOG_DOMAIN=\""SplitWindow"\"
 demoplugin_la_LIBADD    = $(GTK_LIBS)
 classbuilder_la_LIBADD  = $(GTK_LIBS)
 htmlchars_la_LIBADD     = $(GTK_LIBS)
-export_la_LIBADD        = $(GTK_LIBS)
+export_la_LIBADD        = $(GTK_LIBS) -lm
 saveactions_la_LIBADD   = $(GTK_LIBS)
 filebrowser_la_LIBADD   = $(GTK_LIBS)
 splitwindow_la_LIBADD   = $(GTK_LIBS)
@@ -106,7 +106,7 @@ AM_CPPFLAGS = \
 	-DDATADIR=\"$(datadir)\" \
 	-DGTK \
 	-I$(top_srcdir)/src \
-	-I$(top_srcdir)/tagmanager/include \
+	-I$(top_srcdir)/tagmanager/src \
 	-I$(top_srcdir)/scintilla/include \
 	$(GTK_CFLAGS) \
 	$(PLUGIN_CFLAGS)


Modified: plugins/classbuilder.c
4 files changed, 2 insertions(+), 2 deletions(-)
===================================================================
@@ -2,8 +2,8 @@
  *      classbuilder.c - this file is part of Geany, a fast and lightweight IDE
  *
  *      Copyright 2007 Alexander Rodin <rodin(dot)alexander(at)gmail(dot)com>
- *      Copyright 2007-2011 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
- *      Copyright 2007-2011 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
+ *      Copyright 2007-2012 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+ *      Copyright 2007-2012 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
  *
  *      This program is free software; you can redistribute it and/or modify
  *      it under the terms of the GNU General Public License as published by


Modified: plugins/demoplugin.c
4 files changed, 2 insertions(+), 2 deletions(-)
===================================================================
@@ -1,8 +1,8 @@
 /*
  *      demoplugin.c - this file is part of Geany, a fast and lightweight IDE
  *
- *      Copyright 2007-2011 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
- *      Copyright 2007-2011 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
+ *      Copyright 2007-2012 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+ *      Copyright 2007-2012 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
  *
  *      This program is free software; you can redistribute it and/or modify
  *      it under the terms of the GNU General Public License as published by


Modified: plugins/export.c
4 files changed, 2 insertions(+), 2 deletions(-)
===================================================================
@@ -1,8 +1,8 @@
 /*
  *      export.c - this file is part of Geany, a fast and lightweight IDE
  *
- *      Copyright 2007-2011 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
- *      Copyright 2007-2011 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
+ *      Copyright 2007-2012 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+ *      Copyright 2007-2012 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
  *
  *      This program is free software; you can redistribute it and/or modify
  *      it under the terms of the GNU General Public License as published by


Modified: plugins/filebrowser.c
29 files changed, 15 insertions(+), 14 deletions(-)
===================================================================
@@ -1,8 +1,8 @@
 /*
  *      filebrowser.c - this file is part of Geany, a fast and lightweight IDE
  *
- *      Copyright 2007-2011 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
- *      Copyright 2007-2011 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
+ *      Copyright 2007-2012 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+ *      Copyright 2007-2012 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
  *
  *      This program is free software; you can redistribute it and/or modify
  *      it under the terms of the GNU General Public License as published by
@@ -241,7 +241,7 @@ static void add_top_level_entry(void)
 		return;	/* ignore 'C:\' or '/' */
 
 	utf8_dir = g_path_get_dirname(current_dir);
-	setptr(utf8_dir, utils_get_utf8_from_locale(utf8_dir));
+	SETPTR(utf8_dir, utils_get_utf8_from_locale(utf8_dir));
 
 	gtk_list_store_prepend(file_store, &iter);
 	last_dir_iter = gtk_tree_iter_copy(&iter);
@@ -280,6 +280,7 @@ static void refresh(void)
 
 	utf8_dir = utils_get_utf8_from_locale(current_dir);
 	gtk_entry_set_text(GTK_ENTRY(path_entry), utf8_dir);
+	gtk_widget_set_tooltip_text(path_entry, utf8_dir);
 	ui_combo_box_add_to_history(GTK_COMBO_BOX_ENTRY(path_combo), utf8_dir, 0);
 	g_free(utf8_dir);
 
@@ -304,7 +305,7 @@ static void refresh(void)
 
 static void on_go_home(void)
 {
-	setptr(current_dir, g_strdup(g_get_home_dir()));
+	SETPTR(current_dir, g_strdup(g_get_home_dir()));
 	refresh();
 }
 
@@ -335,7 +336,7 @@ static void on_current_path(void)
 
 	if (doc == NULL || doc->file_name == NULL || ! g_path_is_absolute(doc->file_name))
 	{
-		setptr(current_dir, get_default_dir());
+		SETPTR(current_dir, get_default_dir());
 		refresh();
 		return;
 	}
@@ -344,7 +345,7 @@ static void on_current_path(void)
 	dir = g_path_get_dirname(fname);
 	g_free(fname);
 
-	setptr(current_dir, dir);
+	SETPTR(current_dir, dir);
 	refresh();
 }
 
@@ -355,7 +356,7 @@ static void on_go_up(void)
 	if (current_dir[len-1] == G_DIR_SEPARATOR)
 		current_dir[len-1] = '\0';
 	/* remove the highest directory part (which becomes the basename of current_dir) */
-	setptr(current_dir, g_path_get_dirname(current_dir));
+	SETPTR(current_dir, g_path_get_dirname(current_dir));
 	refresh();
 }
 
@@ -511,7 +512,7 @@ static void open_folder(GtkTreePath *treepath)
 {
 	gchar *fname = get_tree_path_filename(treepath);
 
-	setptr(current_dir, fname);
+	SETPTR(current_dir, fname);
 	refresh();
 }
 
@@ -574,7 +575,7 @@ static void on_find_in_files(GtkMenuItem *menuitem, gpointer user_data)
 	g_list_foreach(list, (GFunc) gtk_tree_path_free, NULL);
 	g_list_free(list);
 
-	setptr(dir, utils_get_utf8_from_locale(dir));
+	SETPTR(dir, utils_get_utf8_from_locale(dir));
 	search_show_find_in_files_dialog(dir);
 	g_free(dir);
 }
@@ -781,7 +782,7 @@ static void on_path_entry_activate(GtkEntry *entry, gpointer user_data)
 	else
 		new_dir = g_strdup(g_get_home_dir());
 
-	setptr(current_dir, new_dir);
+	SETPTR(current_dir, new_dir);
 
 	on_clear_filter(NULL, NULL);
 }
@@ -1020,11 +1021,11 @@ static void project_change_cb(G_GNUC_UNUSED GObject *obj, G_GNUC_UNUSED GKeyFile
 		g_free(dir);
 	}
 	/* get it into locale encoding */
-	setptr(new_dir, utils_get_locale_from_utf8(new_dir));
+	SETPTR(new_dir, utils_get_locale_from_utf8(new_dir));
 
 	if (! utils_str_equal(current_dir, new_dir))
 	{
-		setptr(current_dir, new_dir);
+		SETPTR(current_dir, new_dir);
 		refresh();
 	}
 	else
@@ -1045,11 +1046,11 @@ static void document_activate_cb(G_GNUC_UNUSED GObject *obj, GeanyDocument *doc,
 		return;
 
 	new_dir = g_path_get_dirname(doc->file_name);
-	setptr(new_dir, utils_get_locale_from_utf8(new_dir));
+	SETPTR(new_dir, utils_get_locale_from_utf8(new_dir));
 
 	if (! utils_str_equal(current_dir, new_dir))
 	{
-		setptr(current_dir, new_dir);
+		SETPTR(current_dir, new_dir);
 		refresh();
 	}
 	else


Modified: plugins/geanyfunctions.h
14 files changed, 14 insertions(+), 0 deletions(-)
===================================================================
@@ -302,6 +302,8 @@
 	geany_functions->p_ui->ui_combo_box_add_to_history
 #define ui_menu_add_document_items_sorted \
 	geany_functions->p_ui->ui_menu_add_document_items_sorted
+#define ui_lookup_stock_label \
+	geany_functions->p_ui->ui_lookup_stock_label
 #define dialogs_show_question \
 	geany_functions->p_dialogs->dialogs_show_question
 #define dialogs_show_msgbox \
@@ -416,7 +418,19 @@
 	geany_functions->p_stash->stash_group_display
 #define stash_group_update \
 	geany_functions->p_stash->stash_group_update
+#define stash_group_free_settings \
+	geany_functions->p_stash->stash_group_free_settings
 #define symbols_get_context_separator \
 	geany_functions->p_symbols->symbols_get_context_separator
+#define build_activate_menu_item \
+	geany_functions->p_build->build_activate_menu_item
+#define build_get_current_menu_item \
+	geany_functions->p_build->build_get_current_menu_item
+#define build_remove_menu_item \
+	geany_functions->p_build->build_remove_menu_item
+#define build_set_menu_item \
+	geany_functions->p_build->build_set_menu_item
+#define build_get_group_count \
+	geany_functions->p_build->build_get_group_count
 
 #endif


Modified: plugins/geanyplugin.h
4 files changed, 2 insertions(+), 2 deletions(-)
===================================================================
@@ -1,8 +1,8 @@
 /*
  *      geanyplugin.h - this file is part of Geany, a fast and lightweight IDE
  *
- *      Copyright 2009-2011 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
- *      Copyright 2009-2011 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
+ *      Copyright 2009-2012 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+ *      Copyright 2009-2012 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
  *
  *      This program is free software; you can redistribute it and/or modify
  *      it under the terms of the GNU General Public License as published by


Modified: plugins/genapi.py
14 files changed, 9 insertions(+), 5 deletions(-)
===================================================================
@@ -30,7 +30,9 @@
 """
 
 
-import re, sys
+import re
+import sys
+
 
 def get_function_names():
     names = []
@@ -47,6 +49,7 @@ def get_function_names():
     filep.close()
     return names
 
+
 def get_api_tuple(source):
     match = re.match("^([a-z]+)_([a-z][a-z0-9_]+)$", source)
     return 'p_' + match.group(1), match.group(2)
@@ -70,6 +73,7 @@ def get_api_tuple(source):
 
 #ifndef GEANY_FUNCTIONS_H
 #define GEANY_FUNCTIONS_H
+
 '''
 
 if __name__ == "__main__":
@@ -80,15 +84,15 @@ def get_api_tuple(source):
         sys.exit("No function names read!")
 
     f = open(outfile, 'w')
-    print >> f, header % (outfile)
+    f.write(header % (outfile))
 
     for fname in fnames:
         ptr, name = get_api_tuple(fname)
         # note: name no longer needed
-        print >> f, '#define %s \\\n\tgeany_functions->%s->%s' % (fname, ptr, fname)
+        f.write('#define %s \\\n\tgeany_functions->%s->%s\n' % (fname, ptr, fname))
 
-    print >> f, '\n#endif'
+    f.write('\n#endif\n')
     f.close()
 
     if not '-q' in sys.argv:
-        print 'Generated ' + outfile
+        sys.stdout.write('Generated %s\n' % outfile)


Modified: plugins/htmlchars.c
6 files changed, 3 insertions(+), 3 deletions(-)
===================================================================
@@ -1,9 +1,9 @@
 /*
  *      htmlchars.c - this file is part of Geany, a fast and lightweight IDE
  *
- *      Copyright 2009-2011 Frank Lanitz <frank(at)frank(dot)uvena(dot)de>
- *      Copyright 2006-2011 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
- *      Copyright 2007-2011 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
+ *      Copyright 2009-2012 Frank Lanitz <frank(at)frank(dot)uvena(dot)de>
+ *      Copyright 2006-2012 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+ *      Copyright 2007-2012 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
  *
  *      This program is free software; you can redistribute it and/or modify
  *      it under the terms of the GNU General Public License as published by


Modified: plugins/makefile.win32
10 files changed, 7 insertions(+), 3 deletions(-)
===================================================================
@@ -2,10 +2,14 @@
 
 CC = gcc
 CXX = g++
-PREFIX = C:\libs
+PREFIX = C:/libs
 RM = del
 -include ../localwin32.mk
-.SUFFIXES:
+
+ifdef MSYS
+RM = rm -f
+endif
+
 .SUFFIXES: .c .o .dll
 
 GTK_INCLUDES= \
@@ -23,7 +27,7 @@ GTK_INCLUDES= \
 INCLUDEDIRS=  -I.. \
               -I../src \
               -I../scintilla/include \
-              -I../tagmanager/include \
+              -I../tagmanager/src \
               $(GTK_INCLUDES)
 
 ALL_GTK_LIBS= \


Modified: plugins/saveactions.c
10 files changed, 5 insertions(+), 5 deletions(-)
===================================================================
@@ -1,8 +1,8 @@
 /*
  *      saveactions.c - this file is part of Geany, a fast and lightweight IDE
  *
- *      Copyright 2007-2011 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
- *      Copyright 2007-2011 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
+ *      Copyright 2007-2012 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+ *      Copyright 2007-2012 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
  *
  *      This program is free software; you can redistribute it and/or modify
  *      it under the terms of the GNU General Public License as published by
@@ -107,7 +107,7 @@ static gboolean backupcopy_set_backup_dir(const gchar *utf8_dir)
 	}
 	/** TODO add utils_is_file_writeable() to the plugin API and make use of it **/
 
-	setptr(backupcopy_backup_dir, tmp);
+	SETPTR(backupcopy_backup_dir, tmp);
 
 	return TRUE;
 }
@@ -259,7 +259,7 @@ static void instantsave_document_new_cb(GObject *obj, GeanyDocument *doc, gpoint
 
 		if (ft != NULL)
 			/* add the filetype's default extension to the new filename */
-			setptr(new_filename, g_strconcat(new_filename, ".", ft->extension, NULL));
+			SETPTR(new_filename, g_strconcat(new_filename, ".", ft->extension, NULL));
 
 		doc->file_name = new_filename;
 
@@ -454,7 +454,7 @@ static void configure_response_cb(GtkDialog *dialog, gint response, G_GNUC_UNUSE
 
 		g_key_file_set_integer(config, "backupcopy", "dir_levels", backupcopy_dir_levels);
 		g_key_file_set_string(config, "backupcopy", "time_fmt", text_time);
-		setptr(backupcopy_time_fmt, g_strdup(text_time));
+		SETPTR(backupcopy_time_fmt, g_strdup(text_time));
 		if (enable_backupcopy)
 		{
 			if (NZV(text_dir) && backupcopy_set_backup_dir(text_dir))


Modified: plugins/splitwindow.c
72 files changed, 33 insertions(+), 39 deletions(-)
===================================================================
@@ -1,8 +1,8 @@
 /*
  *      splitwindow.c - this file is part of Geany, a fast and lightweight IDE
  *
- *      Copyright 2008-2011 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
- *      Copyright 2008-2011 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+ *      Copyright 2008-2012 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
+ *      Copyright 2008-2012 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
  *
  *      This program is free software; you can redistribute it and/or modify
  *      it under the terms of the GNU General Public License as published by
@@ -75,11 +75,10 @@ enum State
 	ScintillaObject	*sci;		/* new editor widget */
 	GtkWidget		*vbox;
 	GtkWidget		*name_label;
-	gint 			handler_id;
 }
 EditWindow;
 
-static EditWindow edit_window = {NULL, NULL, NULL, NULL, 0 };
+static EditWindow edit_window = {NULL, NULL, NULL, NULL};
 
 
 static void on_unsplit(GtkMenuItem *menuitem, gpointer user_data);
@@ -106,16 +105,32 @@ static void set_line_numbers(ScintillaObject * sci, gboolean set)
 }
 
 
-static void on_sci_notify (ScintillaObject *sci, gint param, SCNotification *notif, gpointer data)
+static void on_sci_notify(ScintillaObject *sci, gint param,
+		SCNotification *nt, gpointer data)
 {
 	gint line;
 
-	switch (notif->nmhdr.code)
+	switch (nt->nmhdr.code)
 	{
+		/* adapted from editor.c: on_margin_click() */
 		case SCN_MARGINCLICK:
-			if (notif->margin == 2)
+			/* left click to marker margin toggles marker */
+			if (nt->margin == 1)
 			{
-				line = sci_get_line_from_position(sci, notif->position);
+				gboolean set;
+				gint marker = 1;
+
+				line = sci_get_line_from_position(sci, nt->position);
+				set = sci_is_marker_set_at_line(sci, line, marker);
+				if (!set)
+					sci_set_marker_at_line(sci, line, marker);
+				else
+					sci_delete_marker_at_line(sci, line, marker);
+			}
+			/* left click on the folding margin to toggle folding state of current line */
+			if (nt->margin == 2)
+			{
+				line = sci_get_line_from_position(sci, nt->position);
 				scintilla_send_message(sci, SCI_TOGGLEFOLD, line, 0);
 			}
 			break;
@@ -140,7 +155,11 @@ static void sync_to_current(ScintillaObject *sci, ScintillaObject *current)
 
 	/* override some defaults */
 	set_line_numbers(sci, geany->editor_prefs->show_linenumber_margin);
-	scintilla_send_message(sci, SCI_SETMARGINWIDTHN, 1, 0 ); /* hide marker margin (no commands) */
+	/* marker margin */
+	scintilla_send_message(sci, SCI_SETMARGINWIDTHN, 1,
+		scintilla_send_message(current, SCI_GETMARGINWIDTHN, 1, 0));
+	if (!geany->editor_prefs->folding)
+		scintilla_send_message(sci, SCI_SETMARGINWIDTHN, 2, 0);
 }
 
 
@@ -148,12 +167,6 @@ static void set_editor(EditWindow *editwin, GeanyEditor *editor)
 {
 	editwin->editor = editor;
 
-	if (editwin->handler_id > 0 && editwin->sci != NULL)
-	{
-		g_signal_handler_disconnect(editwin->sci, editwin->handler_id);
-		editwin->handler_id = 0;
-	}
-
 	/* first destroy any widget, otherwise its signals will have an
 	 * invalid document as user_data */
 	if (editwin->sci != NULL)
@@ -165,11 +178,10 @@ static void set_editor(EditWindow *editwin, GeanyEditor *editor)
 
 	sync_to_current(editwin->sci, editor->sci);
 
-	if (geany->editor_prefs->folding)
-		editwin->handler_id = g_signal_connect(editwin->sci, "sci-notify",
-				G_CALLBACK(on_sci_notify), NULL);
-	else
-		scintilla_send_message(editwin->sci, SCI_SETMARGINWIDTHN, 2, 0);
+	scintilla_send_message(editwin->sci, SCI_USEPOPUP, 1, 0);
+	/* for margin events */
+	g_signal_connect(editwin->sci, "sci-notify",
+			G_CALLBACK(on_sci_notify), NULL);
 
 	gtk_label_set_text(GTK_LABEL(editwin->name_label), DOC_FILENAME(editor->document));
 }
@@ -188,18 +200,6 @@ static void set_state(enum State id)
 }
 
 
-static const gchar *ui_get_stock_label(const gchar *stock_id)
-{
-	GtkStockItem item;
-
-	if (gtk_stock_lookup(stock_id, &item))
-		return item.label;
-
-	g_warning("No stock id '%s'!", stock_id);
-	return "";
-}
-
-
 /* Create a GtkToolButton with stock icon, label and tooltip.
  * @param label can be NULL to use stock label text. @a label can contain underscores,
  * which will be removed.
@@ -211,7 +211,7 @@ static GtkWidget *ui_tool_button_new(const gchar *stock_id, const gchar *label,
 
 	if (stock_id && !label)
 	{
-		label = ui_get_stock_label(stock_id);
+		label = ui_lookup_stock_label(stock_id);
 	}
 	dupl = utils_str_remove_chars(g_strdup(label), "_");
 	label = dupl;
@@ -363,12 +363,6 @@ static void on_unsplit(GtkMenuItem *menuitem, gpointer user_data)
 	gtk_widget_ref(notebook);
 	gtk_container_remove(GTK_CONTAINER(pane), notebook);
 
-	if (edit_window.sci != NULL && edit_window.handler_id > 0)
-	{
-		g_signal_handler_disconnect(edit_window.sci, edit_window.handler_id);
-		edit_window.handler_id = 0;
-	}
-
 	gtk_widget_destroy(pane);
 	edit_window.editor = NULL;
 	edit_window.sci = NULL;


Modified: po/ChangeLog
2093 files changed, 0 insertions(+), 2093 deletions(-)
===================================================================
@@ -1,2093 +0,0 @@
-2011-11-06  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>
-
- * mn.po: Added Mongolian translation. Thanks to Цэцэнцэнгэл.
-
-
-2011-10-30  Frank Lanitz  <frlan at frank.uvena.de>
-
- * pl.po: Update of Polish translation. Thanks to Wojciech Świderski.
-
-
-2011-10-06  Frank Lanitz  <frlan at frank.uvena.de>
-
- * sv.po: Update of Swedish translation
-
-
-2011-10-02  Frank Lanitz  <frlan at frank.uvena.de>
-
- * Release of Geany 0.21
-
-
-2011-10-01  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>
-
- * de.po: Update of German translation.
-
-
-2011-10-01  Colomban Wendling  <colomban(at)geany(dot)org>
-
- * fr.po: Update of French translation.
-
-
-2011-09-29  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>
-
- * fi.po: Update of Finnish translation. Thanks to Harri Koskinen.
- * it.po: Update of Italian translation. Thanks to Giuliano Manzitti
-          for providing the update.
-
-
-2011-09-28  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>
-
- * cs.po: Update of Czech translation. Thanks to Karel Kolman for
-   providing.
-
-
-2011-09-27  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>
-
- * ca.po: Update of Catalan translation. Thanks to Toni Garcia-Navarro.
-
-
-2011-09-26  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>
-
- * fr.po: Update of French translation. Thanks to Jean-Philippe Moal for
-          providing.
-
-
-2011-09-24  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>
-
- * ja.po: Update of Japanese translation. Thanks to Masami Chikahiro.
-
-
-2011-09-23  Peter Scholtens  <peter(dot)scholtens(at)xs4all(dot)nl>
-
- * nl.po: Repaired mismatch in translation format.
-
-
-2011-09-23  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>
-
- * gl.po: Update of Galician translation. Thanks to José Manuel
-          Castroagudín Silva.
- * tr.po: Update of Turkish translation. Thanks to Gürkan Gür.
- * zh_CN.po: Update of simplified Chinese translation. Thanks to
-             Xhacker Liu.
-
-2011-09-19  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>
-
- * en_GB.po: Update of British English translation. Thanks to Jeff Bailes.
- * es.po: Update of Spanish translation. Thanks to Lucas Vieites.
- * pt.po: Update of Portuguese translation. Thanks to André Glória.
- * pt_BR.po: Update of Brasilian Portuguese translation. Thanks to
-             Adrovane Marques Kade
-
-
-2011-09-17  Frank Lanitz  <frlan at frank.uvena.de>
-
- * *.po: Update po-files for string freeze of Geany 0.21.
- * de.po: Update of German translation.
- * fa.po: Adding Persian translation. Thanks to Moein Owhadi Kareshk for
-          providing it.
- * it.po: Update of Italian translation. Thanks to Giuliano Manzitti
-          for providing the update.
-
-
-2011-08-27  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>
-
- * de.po: Minor update of German translation.
-
-
-2011-07-29  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>
-
- * de.po: Update of German transalation.
-
-
-2011-07-28  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>
-
- * de.po: Update of German translation.
- * zh_TW.po: Update of Traditional Chinese translation.
-             Thanks to Wei-Lun Chao for providing update.
-
-
-2011-07-16  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>
-
- * fr.po: Update of French translation. Thanks to Benjamin Ballet for
-          updating.
-
-
-2011-06-18  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>
-
- * es.po: Update of Spanish transaltion. Thanks to Lucas Vieites
-          for providing the update.
-
-
-2011-06-07  Frank Lanitz  <frlan at frank.uvena.de>
-
- * tr.po: Update of Turkish translation. Thanks to Gürkan Gür.
-
-
-2011-04-06  Peter Scholtens  <peter(dot)scholtens(at)xs4all(dot)nl>
-
- * nl.po: Update of Dutch translation, updated latest changes.
-
-
-2011-05-29  Colomban Wendling  <colomban(at)geany(dot)org>
-
- * fr.po: Update of French translation.
-
-
-2011-05-27  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>
-
- * sl.po: Update of Slovenian translation. Thanks to Jože Klepec.
-
-
-2011-05-17  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>
-
- * sl.po: Update of Slovenian translation. Thanks to Jože Klepec.
-
-
-2011-04-20  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>
-
- * sv.po: Update of Swedish translation. Thanks to Tony Mattsson for
-          providing the update.
-
-
-2011-04-12  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>
-
- * de.po: Update of German translation.
-
-
-2011-04-03  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>
-
- * de.po: Update of Germa@@ Diff output truncated at 100000 characters. @@


--------------
This E-Mail was brought to you by github_commit_mail.py (Source: TBD).



More information about the Commits mailing list