<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sciteco/tests, branch v2.1.0</title>
<subtitle>Scintilla-based Text Editor and COrrector</subtitle>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/'/>
<entry>
<title>improved support for braces within loops: warn about unclosed braces and allow breaking from within braces</title>
<updated>2024-10-14T22:46:52+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-10-14T22:46:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=820f716dd16008eef386f6541fa76dcbac793a9b'/>
<id>820f716dd16008eef386f6541fa76dcbac793a9b</id>
<content type='text'>
For instance, you can now write &lt;23(1;)&gt; without leaving anything on the stack.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For instance, you can now write &lt;23(1;)&gt; without leaving anything on the stack.
</pre>
</div>
</content>
</entry>
<entry>
<title>pattern match characters support ^Q/^R now as well</title>
<updated>2024-10-04T19:41:16+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-10-04T19:41:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=b36ff2502ae3b0e18fa862a01fba9cc2c9067e31'/>
<id>b36ff2502ae3b0e18fa862a01fba9cc2c9067e31</id>
<content type='text'>
* makes it possible, albeit cumbersome, to escape pattern match characters
* For instance, to search for ^Q, you now have to type
  S^Q^Q^Q^Q$.
  To search for ^E you have to type
  S^Q^Q^Q^E$.
  But the last character cannot be typed with carets currently (FIXME?).
  For pattern-only characters, two ^Q should be sufficient as in
  S^Q^Q^X$.
* Perhaps it would be more elegant to abolish the difference between string building
  and pattern matching characters to avoid double quoting.
  But then all string building constructs like ^EQq should operate at the pattern level
  as well (ie. match the contents of register q verbatim instead of being interpreted as a pattern).
  TECOC and TECO-64 don't do that either.
  If we leave everything as it is, at least a new string building construct should be added for
  auto-quoting patterns (analoguous to ^EN and ^E@).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* makes it possible, albeit cumbersome, to escape pattern match characters
* For instance, to search for ^Q, you now have to type
  S^Q^Q^Q^Q$.
  To search for ^E you have to type
  S^Q^Q^Q^E$.
  But the last character cannot be typed with carets currently (FIXME?).
  For pattern-only characters, two ^Q should be sufficient as in
  S^Q^Q^X$.
* Perhaps it would be more elegant to abolish the difference between string building
  and pattern matching characters to avoid double quoting.
  But then all string building constructs like ^EQq should operate at the pattern level
  as well (ie. match the contents of register q verbatim instead of being interpreted as a pattern).
  TECOC and TECO-64 don't do that either.
  If we leave everything as it is, at least a new string building construct should be added for
  auto-quoting patterns (analoguous to ^EN and ^E@).
</pre>
</div>
</content>
</entry>
<entry>
<title>check the memory limit and allow interruptions when loading files</title>
<updated>2024-09-28T03:02:34+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-09-27T22:30:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=5395a7da901e4af9758762215b75d943ef253ef3'/>
<id>5395a7da901e4af9758762215b75d943ef253ef3</id>
<content type='text'>
* Previously you could open files of arbitrary size and the limit would be checked only afterwards.
* Many, but not all, cases should now be detected earlier.
  Since Scintilla allocates lots of memory as part of rendering,
  you can still run into memory limits even after successfully loading the file.
* Loading extremely large files can also be potentially slow.
  Therefore, it is now possible to interrupt via CTRL+C.
  Again, if the UI is blocking because of stuff done as part of rendering,
  you still may not be able to interrupt the "blocking" operation.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Previously you could open files of arbitrary size and the limit would be checked only afterwards.
* Many, but not all, cases should now be detected earlier.
  Since Scintilla allocates lots of memory as part of rendering,
  you can still run into memory limits even after successfully loading the file.
* Loading extremely large files can also be potentially slow.
  Therefore, it is now possible to interrupt via CTRL+C.
  Again, if the UI is blocking because of stuff done as part of rendering,
  you still may not be able to interrupt the "blocking" operation.
</pre>
</div>
</content>
</entry>
<entry>
<title>fixed Load/Save Q-Reg tests on Mac OS and Win32</title>
<updated>2024-09-19T02:22:20+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-09-19T02:22:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=5b3906f9255f43018c2bd9683cedddf3df37fa61'/>
<id>5b3906f9255f43018c2bd9683cedddf3df37fa61</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>"special" Q-Registers now support EQq/.../ (load) and E%q/.../ (save) commands</title>
<updated>2024-09-19T01:34:03+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-09-19T01:05:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=8fbd0b3ff42ae10c3735801ad17f5345fdc77766'/>
<id>8fbd0b3ff42ae10c3735801ad17f5345fdc77766</id>
<content type='text'>
* @EQ$/.../ sets the current directory from the contents of the given file.
  @E%$/.../ stores the currend directory in the given file.
* @EQ*/.../ will fail, just like ^U*...$.
  @E%*/.../ stores the current buffer's name in the given file.
* It's especially useful with the clipboard registers.
  There could still be a minor bug in @E%~/.../ with regard to EOL normalization
  as teco_view_save() will use the EOL style of the current document, which
  may not be the style of the Q-Reg contents.
  Conversions can generally be avoided for these particular commands.
  But without teco_view_save() we'd have to care about save point creation.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* @EQ$/.../ sets the current directory from the contents of the given file.
  @E%$/.../ stores the currend directory in the given file.
* @EQ*/.../ will fail, just like ^U*...$.
  @E%*/.../ stores the current buffer's name in the given file.
* It's especially useful with the clipboard registers.
  There could still be a minor bug in @E%~/.../ with regard to EOL normalization
  as teco_view_save() will use the EOL style of the current document, which
  may not be the style of the Q-Reg contents.
  Conversions can generally be avoided for these particular commands.
  But without teco_view_save() we'd have to care about save point creation.
</pre>
</div>
</content>
</entry>
<entry>
<title>check that local register is not edited at the end of macro calls</title>
<updated>2024-09-18T10:32:16+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-09-18T10:32:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=b7b98405089e69dfae0fc11e2a423860f50756e9'/>
<id>b7b98405089e69dfae0fc11e2a423860f50756e9</id>
<content type='text'>
* This was unsafe and could easily result in crashes, since teco_qreg_current
  would afterwards point to an already freed Q-Register.
* Since automatically editing another register or buffer is not easy to do right,
  we throw an error instead.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* This was unsafe and could easily result in crashes, since teco_qreg_current
  would afterwards point to an already freed Q-Register.
* Since automatically editing another register or buffer is not easy to do right,
  we throw an error instead.
</pre>
</div>
</content>
</entry>
<entry>
<title>fixed searches on completely new and empty documents</title>
<updated>2024-09-17T15:29:58+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-09-17T15:29:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=638f63ce8af4c398aab30a8bf71d30369d229c83'/>
<id>638f63ce8af4c398aab30a8bf71d30369d229c83</id>
<content type='text'>
This was throwing glib assertions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was throwing glib assertions.
</pre>
</div>
</content>
</entry>
<entry>
<title>test suite: enable the recursion overflow test case everywhere</title>
<updated>2024-09-15T23:52:18+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-09-15T23:52:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=ded9a02e5c1b2ad1a1224e7dcfb3b1550e712666'/>
<id>ded9a02e5c1b2ad1a1224e7dcfb3b1550e712666</id>
<content type='text'>
* It wasn't failing on FreeBSD because there are different default
  stacksize limits.
  We now set it to 8MB everywhere.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* It wasn't failing on FreeBSD because there are different default
  stacksize limits.
  We now set it to 8MB everywhere.
</pre>
</div>
</content>
</entry>
<entry>
<title>remaining types of program counters changed to gsize/gssize</title>
<updated>2024-09-12T23:49:22+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-09-12T23:31:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=a9224ebee3b6458dee42d76ec76b1a704e206107'/>
<id>a9224ebee3b6458dee42d76ec76b1a704e206107</id>
<content type='text'>
* This fixes F&lt; to the beginning of the macro, which was broken in 73d574b71a10d4661ada20275cafde75aff6c1ba.
  teco_machine_main_t::macro_pc actually has to be signed as it is sometimes set to -1.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* This fixes F&lt; to the beginning of the macro, which was broken in 73d574b71a10d4661ada20275cafde75aff6c1ba.
  teco_machine_main_t::macro_pc actually has to be signed as it is sometimes set to -1.
</pre>
</div>
</content>
</entry>
<entry>
<title>fixed searches in single-byte encoded documents</title>
<updated>2024-09-11T14:14:27+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-09-11T12:30:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=2a050759ab621b87d0782cc8235907a1757b46cc'/>
<id>2a050759ab621b87d0782cc8235907a1757b46cc</id>
<content type='text'>
* while code is guaranteed to be in valid UTF-8, this cannot be
  said about the result of string building.
* The search pattern can end up with invalid Unicode bytes even when
  searching on UTF-8 buffers, e.g. if ^EQq inserts garbage.
  There are currently no checks.
* When searching on a raw buffer, it must be possible to
  search for arbitrary bytes (^EUq).
  Since teco_pattern2regexp() was always expecting clean UTF-8 input,
  this would sometimes skip over too many bytes and could even crash.
* Instead, teco_pattern2regexp() now takes the &lt;S&gt; target codepage
  into account.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* while code is guaranteed to be in valid UTF-8, this cannot be
  said about the result of string building.
* The search pattern can end up with invalid Unicode bytes even when
  searching on UTF-8 buffers, e.g. if ^EQq inserts garbage.
  There are currently no checks.
* When searching on a raw buffer, it must be possible to
  search for arbitrary bytes (^EUq).
  Since teco_pattern2regexp() was always expecting clean UTF-8 input,
  this would sometimes skip over too many bytes and could even crash.
* Instead, teco_pattern2regexp() now takes the &lt;S&gt; target codepage
  into account.
</pre>
</div>
</content>
</entry>
</feed>
