<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sciteco/src, branch v0.6.4</title>
<subtitle>Scintilla-based Text Editor and COrrector</subtitle>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/'/>
<entry>
<title>fixed compiling on G++ v4.4: It needs a more verbose syntax when calling template base class constructors</title>
<updated>2015-03-18T01:53:56+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2015-03-18T01:14:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=c3e9da06da7d36fcfb62427851592fc1ba87dbe8'/>
<id>c3e9da06da7d36fcfb62427851592fc1ba87dbe8</id>
<content type='text'>
 * v4.4 is still officially supported by SciTECO (see INSTALL)
 * Ubuntu Lucid appears to use v4.4 by default and lucid is till
   supported by PPA. So this should fix building SciTECO in its PPA
   for Ubuntu Lucid.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 * v4.4 is still officially supported by SciTECO (see INSTALL)
 * Ubuntu Lucid appears to use v4.4 by default and lucid is till
   supported by PPA. So this should fix building SciTECO in its PPA
   for Ubuntu Lucid.
</pre>
</div>
</content>
</entry>
<entry>
<title>ncurses: fixed batch mode initialization for unset or broken $TERM</title>
<updated>2015-03-18T01:53:55+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2015-03-18T00:21:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=34a4c7eceda6843efd60edd233f9db2d3b03ae81'/>
<id>34a4c7eceda6843efd60edd233f9db2d3b03ae81</id>
<content type='text'>
 * If TERM is set but wrong, it might still fail. Errors are reported now.
 * If $TERM is unset or empty, we refuse to start the interactive mode.
   Unfortunately, we cannot easily let curses decide this since
   newterm() does not work as expected.
 * However this solution should be quite good: Either $TERM is empty - then
   batch mode will work but not interactive mode.
   Or it is not empty, then it is checked by the first call to newterm()
   when initializing batch mode.
   The chance of starting up interactive mode with a wrong $TERM
   or in head-less environments is now quite low.
 * This is most likely responsible for the PPA build issues.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 * If TERM is set but wrong, it might still fail. Errors are reported now.
 * If $TERM is unset or empty, we refuse to start the interactive mode.
   Unfortunately, we cannot easily let curses decide this since
   newterm() does not work as expected.
 * However this solution should be quite good: Either $TERM is empty - then
   batch mode will work but not interactive mode.
   Or it is not empty, then it is checked by the first call to newterm()
   when initializing batch mode.
   The chance of starting up interactive mode with a wrong $TERM
   or in head-less environments is now quite low.
 * This is most likely responsible for the PPA build issues.
</pre>
</div>
</content>
</entry>
<entry>
<title>fixed invalid memory accesses in the expression stack and reworked expression stack</title>
<updated>2015-03-17T19:18:18+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2015-03-17T19:18:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=14ebd5d58be3fcb5d2208f890498dd8c57f4d165'/>
<id>14ebd5d58be3fcb5d2208f890498dd8c57f4d165</id>
<content type='text'>
this was probably a regression from d94b18819ad4ee3237c46ad43a962d0121f0c3fe
and should not be in v0.5.
The return value of Expressions::find_op() must always be checked since
it might not find the operator, returning 0 (it used to be 0).
A zero index pointed to uninitialized memory - in the worst case it
pointed to invalid memory resulting in segfaults.
Too large indices were also not handled.
This was probably responsible for recent PPA build issues.
Valgrind/memcheck reports this error but I misread it as a bogus warning.

I took the opportunity to clean up the ValueStack implementation and
made it more robust by adding a few assertions.
ValueStacks now grow from large to small addresses (like stack data
structures usually do).
This means, there is no need to work with negative indices into the
stack pointer.
To reduce the potential for invalid stack accesses, stack indices are
now unsigned and have origin 0. Previously, all indices &lt; 1 were
faulty but weren't checked.
Also, I added some minor optimizations.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this was probably a regression from d94b18819ad4ee3237c46ad43a962d0121f0c3fe
and should not be in v0.5.
The return value of Expressions::find_op() must always be checked since
it might not find the operator, returning 0 (it used to be 0).
A zero index pointed to uninitialized memory - in the worst case it
pointed to invalid memory resulting in segfaults.
Too large indices were also not handled.
This was probably responsible for recent PPA build issues.
Valgrind/memcheck reports this error but I misread it as a bogus warning.

I took the opportunity to clean up the ValueStack implementation and
made it more robust by adding a few assertions.
ValueStacks now grow from large to small addresses (like stack data
structures usually do).
This means, there is no need to work with negative indices into the
stack pointer.
To reduce the potential for invalid stack accesses, stack indices are
now unsigned and have origin 0. Previously, all indices &lt; 1 were
faulty but weren't checked.
Also, I added some minor optimizations.
</pre>
</div>
</content>
</entry>
<entry>
<title>support for ncurses/win32</title>
<updated>2015-03-17T01:06:47+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2015-03-17T01:06:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=537b7b5e9f71cb57a690d903d1787d119eaa29d0'/>
<id>537b7b5e9f71cb57a690d903d1787d119eaa29d0</id>
<content type='text'>
Unfortunately, I cannot really test this curses port
since it is not supported by Windows 2000 (missing AttachConsole() API)
and it does not run very well in Wine.
Under Wine, it does not require the LINES and COLS variable to be set.
However, endwin() and the refresh later on result in a very unusable
state of operation. I cannot currently check whether this is true on
Windows XP or later.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Unfortunately, I cannot really test this curses port
since it is not supported by Windows 2000 (missing AttachConsole() API)
and it does not run very well in Wine.
Under Wine, it does not require the LINES and COLS variable to be set.
However, endwin() and the refresh later on result in a very unusable
state of operation. I cannot currently check whether this is true on
Windows XP or later.
</pre>
</div>
</content>
</entry>
<entry>
<title>always enable ^G modifier after tab completion in ^G mode.</title>
<updated>2015-03-16T23:57:08+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2015-03-16T23:57:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=5fb74180f8ca001d3d0bb256619744d35bec1fa1'/>
<id>5fb74180f8ca001d3d0bb256619744d35bec1fa1</id>
<content type='text'>
If there was a rubbed out command line and you tab completed
a file name in a string argument (TAB in ^G mode), the immediate
editing modifier was automatically reset.
This still happens if nothing could be tab completed and you
type a few characters and try to complete again (since ^G mode
will be reset). If this feature is used often, the user should perhaps
define a function key as ^G^I^G.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If there was a rubbed out command line and you tab completed
a file name in a string argument (TAB in ^G mode), the immediate
editing modifier was automatically reset.
This still happens if nothing could be tab completed and you
type a few characters and try to complete again (since ^G mode
will be reset). If this feature is used often, the user should perhaps
define a function key as ^G^I^G.
</pre>
</div>
</content>
</entry>
<entry>
<title>implemented function key masking (context-sensitive function key macros)</title>
<updated>2015-03-16T18:44:29+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2015-03-16T18:41:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=64ee41446def1605a71d49fce6461b8ff3f5c0d2'/>
<id>64ee41446def1605a71d49fce6461b8ff3f5c0d2</id>
<content type='text'>
 * fnkeys.tes has been updated to enable the command line
   editing macros (cursor keys, etc.) only in the "start" state.
   This avoids the annoying effect of inserting the macros
   into string arguments where they have no effect and must be
   rubbed out again.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 * fnkeys.tes has been updated to enable the command line
   editing macros (cursor keys, etc.) only in the "start" state.
   This avoids the annoying effect of inserting the macros
   into string arguments where they have no effect and must be
   rubbed out again.
</pre>
</div>
</content>
</entry>
<entry>
<title>clarify comment of why newterm() cannot be used on PDCurses</title>
<updated>2015-03-16T16:42:42+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2015-03-16T16:42:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=15f758399f5cb38d0d05b96e7b15df59925b026e'/>
<id>15f758399f5cb38d0d05b96e7b15df59925b026e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fixed curses prog-mode reinitialization</title>
<updated>2015-03-16T16:22:58+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2015-03-16T16:22:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=2a4acd6b619c4e52bf65b23bbbaef0cc8a0c6361'/>
<id>2a4acd6b619c4e52bf65b23bbbaef0cc8a0c6361</id>
<content type='text'>
when SciTECO interactive mode is started, the curses prog
mode is restored automatically.
Therefore it should already be set up correctly (after SciTECO
batch mode initialization).
This fixes console glitches on MinGW/PDCurses.

partial revert of commit 4dced2
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
when SciTECO interactive mode is started, the curses prog
mode is restored automatically.
Therefore it should already be set up correctly (after SciTECO
batch mode initialization).
This fixes console glitches on MinGW/PDCurses.

partial revert of commit 4dced2
</pre>
</div>
</content>
</entry>
<entry>
<title>documented the automatic EOL translation feature</title>
<updated>2015-03-16T06:25:38+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2015-03-16T06:19:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=cb8411d711700cd823c45cb42773c700e167de73'/>
<id>cb8411d711700cd823c45cb42773c700e167de73</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>implemented automatic EOL translation support</title>
<updated>2015-03-16T06:20:05+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2014-12-12T15:39:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=c310c7d875c8aa871180de130e820ed19a2489f5'/>
<id>c310c7d875c8aa871180de130e820ed19a2489f5</id>
<content type='text'>
 * activated via bit 4 of the ED flag (enabled by default)
 * automatic EOL guessing on file loading and translation to LFs.
   * works with files that have inconsistent EOL sequences.
 * automatic translation to original EOL sequences on file saving
   * works with inconsistent EOL sequences in the buffer.
     This should usually not happen if the file was read in with
     automatic EOL translation enabled.
 * also works with the EC and EG commands
 * performance is OK, depending on the file being translated.
   When reading files with UNIX EOLs, the overhead is minimal
   typically-sized files. For DOS EOLs the overhead is larger
   but still acceptable.
 * Return (line feed) is now an immediate editing command.
   This centralizes EOL sequence insertion.
   Later, other features like auto-indent could be added to
   the editing command.
 * get_eol() has been moved to main.cpp (now called
   get_eol_seq()
 * Warn if file ownership could not be preserved when
   saving files.
 * IOView has been almost completely rewritten based
   on GIOChannels. The EOL translation code is also in IOView.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 * activated via bit 4 of the ED flag (enabled by default)
 * automatic EOL guessing on file loading and translation to LFs.
   * works with files that have inconsistent EOL sequences.
 * automatic translation to original EOL sequences on file saving
   * works with inconsistent EOL sequences in the buffer.
     This should usually not happen if the file was read in with
     automatic EOL translation enabled.
 * also works with the EC and EG commands
 * performance is OK, depending on the file being translated.
   When reading files with UNIX EOLs, the overhead is minimal
   typically-sized files. For DOS EOLs the overhead is larger
   but still acceptable.
 * Return (line feed) is now an immediate editing command.
   This centralizes EOL sequence insertion.
   Later, other features like auto-indent could be added to
   the editing command.
 * get_eol() has been moved to main.cpp (now called
   get_eol_seq()
 * Warn if file ownership could not be preserved when
   saving files.
 * IOView has been almost completely rewritten based
   on GIOChannels. The EOL translation code is also in IOView.
</pre>
</div>
</content>
</entry>
</feed>
