<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sciteco/scintilla, branch v2.5.0</title>
<subtitle>Scintilla-based Text Editor and COrrector</subtitle>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/'/>
<entry>
<title>upgraded to Scintilla 5.1.3 and Scinterm 3.1</title>
<updated>2021-10-11T05:02:05+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2021-10-11T05:02:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=6e67f5a682ff46d69888fec61b94bf45cec46721'/>
<id>6e67f5a682ff46d69888fec61b94bf45cec46721</id>
<content type='text'>
* Previous Scintilla version was 3.6.4 and Scinterm was 1.7 (with lots of custom patches).
  All of the patches are now either irrelevant or have been merged upstream.
* Since Scintilla 5 requires C++17, this increases the minimum GCC version at least
  to 5.0. We may actually require even newer versions.
* I could not upgrade the scintilla-mirror (which was imported from Mercurial),
  so the old sciteco-dev branch was renamed to sciteco-dev-pre-v2.0.0,
  master was deleted and I reimported the entire Scintilla repo using
  git-remote-hg.
  This means that scintilla-mirror now contains two entirely separate trees.
  But it is still possible to clone old SciTECO repos.
* The strategy/workflow of maintaining hotfix branches on scintilla-mirror has been changed.
  Instead of having one sciteco-dev branch that is rebased onto new Scintilla upstream
  releases and tagging SciTECO releases in scintilla-mirror (to keep the commits referenced),
  we now create a branch for every Scintilla version we are based on (eg. sciteco-rel-5-1-3).
  This branch is never rebased or deleted. Therefore, we are guaranteed to be able to
  clone arbitrary SciTECO repo commits - not only releases.
  Releases no longer have to be tagged in scintilla-mirror.
  On the downside, fixup commits may accumulate in these new branches.
  They can only be squashed once a new branch for a new Scintilla release is created
  (e.g. by cherry-picking followed by rebase).
* Scinterm does no longer have to reside in the Scintilla subdirectory,
  so we added it as a regular submodule.
  There are no more recursive submodules.
  The Scinterm build system has not been improved at all, but we use
  a trick based on VPATH to build Scinterm in scintilla/bin/.
* Scinterm is now in Git and we reference the upstream repo for the
  time being.
  We might mirror it and apply the same branching workflow as with Scintilla
  if necessary.
  The scinterm-mirror repository still exists but has not been touched.
  We will also have to rewrite its master branch as it was a non-reproducible
  Mercurial import.
* Scinterm now also comes with patches for Scintilla which we simply applied
  on our sciteco-rel-5-1-3 branch.
* Scintilla 5 outsourced its lexers into the Lexilla project.
  We added it as yet another submodule.
* All submodules have been moved into contrib/.
* The Scintilla API for setting lexers has consequently changed.
  We now have to call SCI_SETILEXER(0, CreateLexer(name)).
  As I did not want to introduce a separate command for setting lexers,
  &lt;ES&gt; has been extended to allow setting lexers by name with the SCI_SETILEXER
  message which effectively replaces SCI_SETLEXERLANGUAGE.
* The lexer macros (SCLEX_...) no longer serve any purpose - they weren't used
  in the SciTECO standard library anyway - and have consequently been removed
  from symbols-scilexer.c.
  The style macros from SciLexer.h (SCE_...) are theoretically still useful - even
  though they are not used by our current color schemes - and have therefore been
  retained. They can be specified as wParam in &lt;ES&gt;.
* &lt;ES&gt; no longer allows symbolic constants for lParam.
  This never made any sense since all supported symbols were always wParam.
* Scinterm supports new native cursor modes.
  They are not used for the time being and the previous CARETSTYLE_BLOCK_AFTER
  caret style is configured by default.
  It makes no sense to enable native cursor modes now since the
  command line should have a native cursor but is not yet a Scintilla view.
* The Scintilla upgrade performed much worse than before,
  so some optimizations will be necessary.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Previous Scintilla version was 3.6.4 and Scinterm was 1.7 (with lots of custom patches).
  All of the patches are now either irrelevant or have been merged upstream.
* Since Scintilla 5 requires C++17, this increases the minimum GCC version at least
  to 5.0. We may actually require even newer versions.
* I could not upgrade the scintilla-mirror (which was imported from Mercurial),
  so the old sciteco-dev branch was renamed to sciteco-dev-pre-v2.0.0,
  master was deleted and I reimported the entire Scintilla repo using
  git-remote-hg.
  This means that scintilla-mirror now contains two entirely separate trees.
  But it is still possible to clone old SciTECO repos.
* The strategy/workflow of maintaining hotfix branches on scintilla-mirror has been changed.
  Instead of having one sciteco-dev branch that is rebased onto new Scintilla upstream
  releases and tagging SciTECO releases in scintilla-mirror (to keep the commits referenced),
  we now create a branch for every Scintilla version we are based on (eg. sciteco-rel-5-1-3).
  This branch is never rebased or deleted. Therefore, we are guaranteed to be able to
  clone arbitrary SciTECO repo commits - not only releases.
  Releases no longer have to be tagged in scintilla-mirror.
  On the downside, fixup commits may accumulate in these new branches.
  They can only be squashed once a new branch for a new Scintilla release is created
  (e.g. by cherry-picking followed by rebase).
* Scinterm does no longer have to reside in the Scintilla subdirectory,
  so we added it as a regular submodule.
  There are no more recursive submodules.
  The Scinterm build system has not been improved at all, but we use
  a trick based on VPATH to build Scinterm in scintilla/bin/.
* Scinterm is now in Git and we reference the upstream repo for the
  time being.
  We might mirror it and apply the same branching workflow as with Scintilla
  if necessary.
  The scinterm-mirror repository still exists but has not been touched.
  We will also have to rewrite its master branch as it was a non-reproducible
  Mercurial import.
* Scinterm now also comes with patches for Scintilla which we simply applied
  on our sciteco-rel-5-1-3 branch.
* Scintilla 5 outsourced its lexers into the Lexilla project.
  We added it as yet another submodule.
* All submodules have been moved into contrib/.
* The Scintilla API for setting lexers has consequently changed.
  We now have to call SCI_SETILEXER(0, CreateLexer(name)).
  As I did not want to introduce a separate command for setting lexers,
  &lt;ES&gt; has been extended to allow setting lexers by name with the SCI_SETILEXER
  message which effectively replaces SCI_SETLEXERLANGUAGE.
* The lexer macros (SCLEX_...) no longer serve any purpose - they weren't used
  in the SciTECO standard library anyway - and have consequently been removed
  from symbols-scilexer.c.
  The style macros from SciLexer.h (SCE_...) are theoretically still useful - even
  though they are not used by our current color schemes - and have therefore been
  retained. They can be specified as wParam in &lt;ES&gt;.
* &lt;ES&gt; no longer allows symbolic constants for lParam.
  This never made any sense since all supported symbols were always wParam.
* Scinterm supports new native cursor modes.
  They are not used for the time being and the previous CARETSTYLE_BLOCK_AFTER
  caret style is configured by default.
  It makes no sense to enable native cursor modes now since the
  command line should have a native cursor but is not yet a Scintilla view.
* The Scintilla upgrade performed much worse than before,
  so some optimizations will be necessary.
</pre>
</div>
</content>
</entry>
<entry>
<title>support NetBSD's curses</title>
<updated>2017-03-14T05:37:40+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2017-03-14T05:37:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=6f9705bd90a9d95f57190c99554c3836ac9322cc'/>
<id>6f9705bd90a9d95f57190c99554c3836ac9322cc</id>
<content type='text'>
 * this is actually another independant Curses implementation for
   Unix platforms I wasn't aware of.
   I tested against this portable fork of it:
   https://github.com/sabotage-linux/netbsd-curses
 * Only a mimimal change to Scinterm was necessary to support it.
 * netbsd-curses might be useful for NetBSD support (which is
   otherwise untested) and when building small statically
   linked self-contained binaries since netbsd-curses is much
   smaller than ncurses.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 * this is actually another independant Curses implementation for
   Unix platforms I wasn't aware of.
   I tested against this portable fork of it:
   https://github.com/sabotage-linux/netbsd-curses
 * Only a mimimal change to Scinterm was necessary to support it.
 * netbsd-curses might be useful for NetBSD support (which is
   otherwise untested) and when building small statically
   linked self-contained binaries since netbsd-curses is much
   smaller than ncurses.
</pre>
</div>
</content>
</entry>
<entry>
<title>updated Scintilla to v3.6.4 and Scinterm to v1.7</title>
<updated>2016-04-06T16:40:59+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2016-04-06T16:40:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=dd408c9ae23d37d53e0ca7d3d75e33fdae2efdcb'/>
<id>dd408c9ae23d37d53e0ca7d3d75e33fdae2efdcb</id>
<content type='text'>
 * the Github mirrors contain crucial patches not yet contributed
   upstream, so people will currently rely on my Github mirror
   repositories in order to build SciTECO
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 * the Github mirrors contain crucial patches not yet contributed
   upstream, so people will currently rely on my Github mirror
   repositories in order to build SciTECO
</pre>
</div>
</content>
</entry>
<entry>
<title>updated Scintilla submodule: fixed threading/deadlocks in Gdk earlier than 3.6</title>
<updated>2016-02-04T03:25:25+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2016-02-04T03:25:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=d4bfd54a8811c27e67e5a0032d3836ff801c81e8'/>
<id>d4bfd54a8811c27e67e5a0032d3836ff801c81e8</id>
<content type='text'>
 * I fixed up the earlier commit a2b4a4cf4dfe7f7d72eeea566290f9ec51be7dbb.
 * For Gdk &gt;= 3.6 there are no functional improvements/fixes.
   However older Scintilla Gtk builds would have been broken by the
   last Scintilla patch. This is of course important when contributing the patch
   to the Scintilla community.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 * I fixed up the earlier commit a2b4a4cf4dfe7f7d72eeea566290f9ec51be7dbb.
 * For Gdk &gt;= 3.6 there are no functional improvements/fixes.
   However older Scintilla Gtk builds would have been broken by the
   last Scintilla patch. This is of course important when contributing the patch
   to the Scintilla community.
</pre>
</div>
</content>
</entry>
<entry>
<title>updated Scintilla: fixed crashes due to concurrent Scintilla usage</title>
<updated>2016-02-01T08:45:05+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2016-02-01T08:45:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=a2b4a4cf4dfe7f7d72eeea566290f9ec51be7dbb'/>
<id>a2b4a4cf4dfe7f7d72eeea566290f9ec51be7dbb</id>
<content type='text'>
 * this fixes the Gtk interface which often crashed because of
   memory corruptions
 * When moving away from gdk_threads_enter()/_leave() this will no
   longer be necessary. However the fix may be relevant for other
   people and should be sent upstream.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 * this fixes the Gtk interface which often crashed because of
   memory corruptions
 * When moving away from gdk_threads_enter()/_leave() this will no
   longer be necessary. However the fix may be relevant for other
   people and should be sent upstream.
</pre>
</div>
</content>
</entry>
<entry>
<title>minor Clang and OS X compilation fixes</title>
<updated>2015-10-14T14:06:30+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2015-10-14T14:06:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=574a7ff80b7a5c73e0993a25ef7996f83eee0d45'/>
<id>574a7ff80b7a5c73e0993a25ef7996f83eee0d45</id>
<content type='text'>
 * we cannot use G_N_ELEMENTS in attribute declarations with Clang
   unless declaring C++11. In this case, since the size of the orig_color_table
   is fixed anyway, the declaration was simply fixed.
 * some reordering was necessary in cmdline.cpp. This should not
   have any influence on GCC when optimizations are enabled.
 * Scintilla/Scinterm had to be updated as well.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 * we cannot use G_N_ELEMENTS in attribute declarations with Clang
   unless declaring C++11. In this case, since the size of the orig_color_table
   is fixed anyway, the declaration was simply fixed.
 * some reordering was necessary in cmdline.cpp. This should not
   have any influence on GCC when optimizations are enabled.
 * Scintilla/Scinterm had to be updated as well.
</pre>
</div>
</content>
</entry>
<entry>
<title>added full Haiku OS support (non x86_gcc2)</title>
<updated>2015-07-28T09:18:44+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2015-07-27T18:31:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=c3f7aa7252ad9adb51cef1e35f566883ef953aad'/>
<id>c3f7aa7252ad9adb51cef1e35f566883ef953aad</id>
<content type='text'>
 * Haiku can be handled like UNIX in most respects
   since it is POSIX compliant, has a UNIX-like terminal
   emulator and uses ncurses.
 * still the Glib platform macro is G_OS_HAIKU instead of
   G_OS_UNIX, so the preprocessor conditionals had to be adapted.
 * the only functional difference between a Haiku and UNIX build
   is the default SCITECOCONFIG path.
   We use the config path returned by Glib instead of $HOME,
   so .teco_ini will be in ~/config/settings on Haiku.
   Other UNIX ports appear to use the same conventions.
 * Some Haiku-specific restrictions still apply:
   * Haiku's terminal is xterm-compatible, but only supports
     8 colors. Therefore only the terminal.tes color scheme
     can be used and the terminal must be set up to
     "Use bright instead of bold text".
   * The terminal has artifacts. This appears to be a Haiku
     bug and affects other curses applications as well.
   * GTK is yet unsupported on Haiku, so there may never be
     a GUI port (unless someone writes a QT GUI for SciTECO).
   * SciTECO cannot be built with the legacy gcc2 used for
     BeOS compatibility on Haiku. This would require too many
     changes for an obsolete platform.
     BeOS and the x86_gcc2 platform of Haiku will therefore
     never be supported.
     The PPC and ARM platforms of Haiku should work but are untested.
 * a HaikuPorts recipe will be provided for the next regular
   SciTECO release. This should hopefully allow installation via
   HaikuDepot.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 * Haiku can be handled like UNIX in most respects
   since it is POSIX compliant, has a UNIX-like terminal
   emulator and uses ncurses.
 * still the Glib platform macro is G_OS_HAIKU instead of
   G_OS_UNIX, so the preprocessor conditionals had to be adapted.
 * the only functional difference between a Haiku and UNIX build
   is the default SCITECOCONFIG path.
   We use the config path returned by Glib instead of $HOME,
   so .teco_ini will be in ~/config/settings on Haiku.
   Other UNIX ports appear to use the same conventions.
 * Some Haiku-specific restrictions still apply:
   * Haiku's terminal is xterm-compatible, but only supports
     8 colors. Therefore only the terminal.tes color scheme
     can be used and the terminal must be set up to
     "Use bright instead of bold text".
   * The terminal has artifacts. This appears to be a Haiku
     bug and affects other curses applications as well.
   * GTK is yet unsupported on Haiku, so there may never be
     a GUI port (unless someone writes a QT GUI for SciTECO).
   * SciTECO cannot be built with the legacy gcc2 used for
     BeOS compatibility on Haiku. This would require too many
     changes for an obsolete platform.
     BeOS and the x86_gcc2 platform of Haiku will therefore
     never be supported.
     The PPC and ARM platforms of Haiku should work but are untested.
 * a HaikuPorts recipe will be provided for the next regular
   SciTECO release. This should hopefully allow installation via
   HaikuDepot.
</pre>
</div>
</content>
</entry>
<entry>
<title>updated Scintilla/Scinterm submodules: scintilla_noutrefresh() support</title>
<updated>2015-07-15T02:31:00+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2015-07-15T02:31:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=ea9989266dcb64025ed90d0113ed7c052d07cc34'/>
<id>ea9989266dcb64025ed90d0113ed7c052d07cc34</id>
<content type='text'>
 * improves performance and reduces flickering when showing
   large popup windows (on top of the Scintilla window).
 * Unfortunately, even with scintilla_noutrefresh(), there is still
   some flickering occasionally.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 * improves performance and reduces flickering when showing
   large popup windows (on top of the Scintilla window).
 * Unfortunately, even with scintilla_noutrefresh(), there is still
   some flickering occasionally.
</pre>
</div>
</content>
</entry>
<entry>
<title>updated Scintilla/Scinterm submodules</title>
<updated>2015-06-30T13:34:34+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2015-06-30T13:34:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=3770ea2e4130223e3d48106c163b5ba124edc2a1'/>
<id>3770ea2e4130223e3d48106c163b5ba124edc2a1</id>
<content type='text'>
latest patches have been merged upstream
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
latest patches have been merged upstream
</pre>
</div>
</content>
</entry>
<entry>
<title>major Curses UI revision: initialize curses as late as possible</title>
<updated>2015-06-22T02:05:02+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2015-06-18T14:24:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=8101cec729c07fd5bdeda70c12dbb43a2383cbe8'/>
<id>8101cec729c07fd5bdeda70c12dbb43a2383cbe8</id>
<content type='text'>
 * relies on a patched version of Scinterm that allows you to
   construct Scintilla objects, send messages etc. before Curses
   is initialized.
   The Scintilla and Scinterm submodules have been updated.
 * This once and for all fixes batch mode and stdio redirections
   in batch mode on all Curses platforms and operating systems.
 * Fixes the ^C-does-not-interrupt bug on ncurses/UNIX.
   See #4.
 * On ncurses/UNIX we will still do a newterm()-initialization.
   This allows us to keep stdout/stderr alone in case they are
   redirected. This effectively allows redirecting SciTECO's
   output into a file even in interactive mode.
   ncurses/UNIX now behaves like, e.g. PDCurses/win32a and GTK+
   in this regard.
 * Curses environment variable handling fixed.
   The environment registers are exported into the process environment
   so that Curses environment variables can be set/modified by the
   SciTECO profile.
 * Use term.h for accessing terminfo now.
   Explained set_window_title() limitations.
 * fixed interruption via SIGINT. If the UI is waiting for user
   input, SIGINT is effectively ignored instead of letting the
   next character fail always.
 * Updated sciteco(1) and sciteco(7): More options, environment variables
   and signals documented. Also rewritten DESCRIPTION section
   (different modes of operation).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 * relies on a patched version of Scinterm that allows you to
   construct Scintilla objects, send messages etc. before Curses
   is initialized.
   The Scintilla and Scinterm submodules have been updated.
 * This once and for all fixes batch mode and stdio redirections
   in batch mode on all Curses platforms and operating systems.
 * Fixes the ^C-does-not-interrupt bug on ncurses/UNIX.
   See #4.
 * On ncurses/UNIX we will still do a newterm()-initialization.
   This allows us to keep stdout/stderr alone in case they are
   redirected. This effectively allows redirecting SciTECO's
   output into a file even in interactive mode.
   ncurses/UNIX now behaves like, e.g. PDCurses/win32a and GTK+
   in this regard.
 * Curses environment variable handling fixed.
   The environment registers are exported into the process environment
   so that Curses environment variables can be set/modified by the
   SciTECO profile.
 * Use term.h for accessing terminfo now.
   Explained set_window_title() limitations.
 * fixed interruption via SIGINT. If the UI is waiting for user
   input, SIGINT is effectively ignored instead of letting the
   next character fail always.
 * Updated sciteco(1) and sciteco(7): More options, environment variables
   and signals documented. Also rewritten DESCRIPTION section
   (different modes of operation).
</pre>
</div>
</content>
</entry>
</feed>
