<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sciteco/Makefile.am, branch lsp</title>
<subtitle>Scintilla-based Text Editor and COrrector</subtitle>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/'/>
<entry>
<title>imported sj.h - a minimalist JSON parser</title>
<updated>2026-08-10T21:55:40+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>rhaberkorn@fmsbw.de</email>
</author>
<published>2026-08-02T13:04:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=9b78fc83dbd29b5594431b1c49b7d13865141aaa'/>
<id>9b78fc83dbd29b5594431b1c49b7d13865141aaa</id>
<content type='text'>
It will be useful for implementing LSP support.
It does not have JSON escape/unescape functions, so those
will still have to be written.

Source: https://github.com/rxi/sj.h
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It will be useful for implementing LSP support.
It does not have JSON escape/unescape functions, so those
will still have to be written.

Source: https://github.com/rxi/sj.h
</pre>
</div>
</content>
</entry>
<entry>
<title>`make check` doesn't have to build documentation first</title>
<updated>2026-07-21T18:17:21+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>rhaberkorn@fmsbw.de</email>
</author>
<published>2026-07-21T18:17:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=70443a91395bc3e150d54e93d994ee7ac8249d71'/>
<id>70443a91395bc3e150d54e93d994ee7ac8249d71</id>
<content type='text'>
Building documentation is slow, so this speeds up
development-test cycles.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Building documentation is slow, so this speeds up
development-test cycles.
</pre>
</div>
</content>
</entry>
<entry>
<title>added gtk-broadway-run.sh as an alternative to xfvb-run</title>
<updated>2026-07-05T09:45:11+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>rhaberkorn@fmsbw.de</email>
</author>
<published>2026-07-05T00:26:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=45d8de38393c2b34eaafd49901a48fced685b1e8'/>
<id>45d8de38393c2b34eaafd49901a48fced685b1e8</id>
<content type='text'>
The latter sometimes fails and causes a lot of fallout on OBS servers.
gtk-broadway-run.sh uses the GTK Broadway backend instead and will
only work with GTK applications.

It is currently tested for the Debian and RPM packages and might
later be integrated into the FreeBSD package as well.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The latter sometimes fails and causes a lot of fallout on OBS servers.
gtk-broadway-run.sh uses the GTK Broadway backend instead and will
only work with GTK applications.

It is currently tested for the Debian and RPM packages and might
later be integrated into the FreeBSD package as well.
</pre>
</div>
</content>
</entry>
<entry>
<title>terex is the new regular expression engine now and replaces PCRE (GRegex)</title>
<updated>2026-06-27T22:39:51+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>rhaberkorn@fmsbw.de</email>
</author>
<published>2026-06-27T22:39:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=4fe5bc6f3867096965270c90f2e1e5df77b8825f'/>
<id>4fe5bc6f3867096965270c90f2e1e5df77b8825f</id>
<content type='text'>
* terex is based on Henry Spencer's regular expression engine for Tcl.
  It is a hybrid NFA/DFA design which has better worst-time runtimes than
  the backtracking PCRE. Memory usage is also limited and can no longer
  increase catastrophically.
* It should no longer be possible to crash SciTECO with pathological
  searches.
* Since it reliably supports partial matches (REG_EXPECT) we can
  now enable the new backwards-search algorithm by default.
  This used to be broken because of a glib bug, which I already
  fixed. It would however take a long time until this ends up
  on the majority of glib installations.
* Regexp executions can still be quite slow if you are looking
  for a pattern at the end of a huge file, which can hang the editor,
  but this can now at least theoretically be solved by adding
  hooks into terex to poll for interruptions.
* We can now also get rid of a TECO-pattern to regexp translation
  step by directly generating terex tokens (TODO).
* Performance-wise terex appears to be slower than PCRE for simple
  forward searches even when linking everything with optimzations (FIXME).
* Having a stand-alone regular expression engine is also a huge
  step in getting rid of glib.

See also: https://git.fmsbw.de/terex/about/
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* terex is based on Henry Spencer's regular expression engine for Tcl.
  It is a hybrid NFA/DFA design which has better worst-time runtimes than
  the backtracking PCRE. Memory usage is also limited and can no longer
  increase catastrophically.
* It should no longer be possible to crash SciTECO with pathological
  searches.
* Since it reliably supports partial matches (REG_EXPECT) we can
  now enable the new backwards-search algorithm by default.
  This used to be broken because of a glib bug, which I already
  fixed. It would however take a long time until this ends up
  on the majority of glib installations.
* Regexp executions can still be quite slow if you are looking
  for a pattern at the end of a huge file, which can hang the editor,
  but this can now at least theoretically be solved by adding
  hooks into terex to poll for interruptions.
* We can now also get rid of a TECO-pattern to regexp translation
  step by directly generating terex tokens (TODO).
* Performance-wise terex appears to be slower than PCRE for simple
  forward searches even when linking everything with optimzations (FIXME).
* Having a stand-alone regular expression engine is also a huge
  step in getting rid of glib.

See also: https://git.fmsbw.de/terex/about/
</pre>
</div>
</content>
</entry>
<entry>
<title>&lt;EW&gt; now accepts a numeric argument to specify the buffer to save</title>
<updated>2025-07-19T15:09:33+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2025-07-19T14:38:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=29e11f68bae0364034fb692062403735bec8d07a'/>
<id>29e11f68bae0364034fb692062403735bec8d07a</id>
<content type='text'>
* In this case we always save the given buffer and never the current Q-Register.
* The current Q-Register is only saved without any numeric argument.
  The same semantics make sense for &lt;EF&gt; so that Q*EF closes the current buffer
  even when editing a Q-Register.
* This variant is present in Video TECO.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* In this case we always save the given buffer and never the current Q-Register.
* The current Q-Register is only saved without any numeric argument.
  The same semantics make sense for &lt;EF&gt; so that Q*EF closes the current buffer
  even when editing a Q-Register.
* This variant is present in Video TECO.
</pre>
</div>
</content>
</entry>
<entry>
<title>Gtk/win32: fixed fonts and therefore pango warnings on startup (closes #7)</title>
<updated>2025-04-18T18:27:00+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2025-04-18T18:27:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=91fa1656600a52eddf650ea550e7cbd69d72903e'/>
<id>91fa1656600a52eddf650ea550e7cbd69d72903e</id>
<content type='text'>
* The default womanpage font is the abstract "Serif" now, so that should be
  more portable. "Times" wasn't found on Windows.
* Win32 distributions include a custom .teco_css now, which
  removes the small-caps font attribute from the type label.
  The default Gtk theme on Windows references the "Segoe UI" font
  and it doesn't have a small-caps variant.
  In fact no default Windows font appears to have one.
* We could add a custom .teco_ini to win32 distributions as well,
  but there is currently no need for it.
* Do not distribute the /win32 files. They are used only for building
  Win32/64 packages. There is no point in distributing them in the tarball if
  the /debian and /freebsd directories aren't distributed as well.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* The default womanpage font is the abstract "Serif" now, so that should be
  more portable. "Times" wasn't found on Windows.
* Win32 distributions include a custom .teco_css now, which
  removes the small-caps font attribute from the type label.
  The default Gtk theme on Windows references the "Segoe UI" font
  and it doesn't have a small-caps variant.
  In fact no default Windows font appears to have one.
* We could add a custom .teco_ini to win32 distributions as well,
  but there is currently no need for it.
* Do not distribute the /win32 files. They are used only for building
  Win32/64 packages. There is no point in distributing them in the tarball if
  the /debian and /freebsd directories aren't distributed as well.
</pre>
</div>
</content>
</entry>
<entry>
<title>rename sample.teco_ini to fallback.teco_ini and mung it by default</title>
<updated>2025-03-03T20:35:04+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2025-03-02T22:44:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=1b907dae072f2aa93d75d8c056a9bd02555a17f8'/>
<id>1b907dae072f2aa93d75d8c056a9bd02555a17f8</id>
<content type='text'>
* After installation, SciTECO will therefore start into a more userfriendly mode
  even if the user does not create a custom ~/.teco_ini.
  It is hoped that this will scare away less of new users, who
  are not willing to read through all of the documentation.
  Still, users are warned in the absence of ~/.teco_ini.
  This warning however, might not be immediately visible, especially
  not when running gsciteco without an attached console.
  (This will change once I redo the UI and allow a number of messages
  to be queued in the message area.)
* Theoretically, you could also just extend fallback.teco_ini from ~/.teco_ini,
  but that would require installing it into $SCITECOPATH.
* Since the fallback profile will now be munged automatically
  on a wide range of systems, we set up xclip only when detecting X11
  ($DISPLAY is non-empty).
  E.g. when running under Wayland or the Linux console, you still won't
  get the clipboard registers, which is probably better than having the
  clipboard operations fail once you try to use them.
* xclip is now "suggested" on Debian/Ubuntu.
  Unfortunately we cannot pull it in only in the presence of X11.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* After installation, SciTECO will therefore start into a more userfriendly mode
  even if the user does not create a custom ~/.teco_ini.
  It is hoped that this will scare away less of new users, who
  are not willing to read through all of the documentation.
  Still, users are warned in the absence of ~/.teco_ini.
  This warning however, might not be immediately visible, especially
  not when running gsciteco without an attached console.
  (This will change once I redo the UI and allow a number of messages
  to be queued in the message area.)
* Theoretically, you could also just extend fallback.teco_ini from ~/.teco_ini,
  but that would require installing it into $SCITECOPATH.
* Since the fallback profile will now be munged automatically
  on a wide range of systems, we set up xclip only when detecting X11
  ($DISPLAY is non-empty).
  E.g. when running under Wayland or the Linux console, you still won't
  get the clipboard registers, which is probably better than having the
  clipboard operations fail once you try to use them.
* xclip is now "suggested" on Debian/Ubuntu.
  Unfortunately we cannot pull it in only in the presence of X11.
</pre>
</div>
</content>
</entry>
<entry>
<title>Curses: don't install PNG icons</title>
<updated>2024-12-23T01:07:44+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2024-12-23T01:07:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=e5d1253d363a209ecd1288278808e38ac87b34d9'/>
<id>e5d1253d363a209ecd1288278808e38ac87b34d9</id>
<content type='text'>
* They are used at runtime only by the GTK port.
* Their existence can cause problems if OS-specific build systems
  have to clean these files from the staging directory afterwards.
  This was the case on FreeBSD where the committer refused to remove
  these files after installation.
  In the official FreeBSD port, we therefore currently ship the
  PNG icons unnecessarily.
* They are now installed and shipped only on GTK builds.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* They are used at runtime only by the GTK port.
* Their existence can cause problems if OS-specific build systems
  have to clean these files from the staging directory afterwards.
  This was the case on FreeBSD where the committer refused to remove
  these files after installation.
  In the official FreeBSD port, we therefore currently ship the
  PNG icons unnecessarily.
* They are now installed and shipped only on GTK builds.
</pre>
</div>
</content>
</entry>
<entry>
<title>the SciTECO data installation path is now configurable via --with-scitecodatadir</title>
<updated>2023-06-19T17:45:16+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2023-06-19T17:45:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=60a09132b62c3cae86f5e832830a4490ba5bf712'/>
<id>60a09132b62c3cae86f5e832830a4490ba5bf712</id>
<content type='text'>
* This is also the base of $SCITECOPATH.
* Changing it is useful for packaging where it is not possible to factor out the common
  files between Curses and Gtk builds into a "sciteco-common" package.
  As an alternative, you can now create disjunct sciteco-curses and sciteco-gtk packages.
* You will most likely want to use this for Gtk builds as in:
  --with-interface=gtk --program-prefix=g --with-scitecodatadir=/usr/local/share/gsciteco.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* This is also the base of $SCITECOPATH.
* Changing it is useful for packaging where it is not possible to factor out the common
  files between Curses and Gtk builds into a "sciteco-common" package.
  As an alternative, you can now create disjunct sciteco-curses and sciteco-gtk packages.
* You will most likely want to use this for Gtk builds as in:
  --with-interface=gtk --program-prefix=g --with-scitecodatadir=/usr/local/share/gsciteco.
</pre>
</div>
</content>
</entry>
<entry>
<title>simplified win32 packaging using mingw-bundedlls</title>
<updated>2022-12-03T05:07:56+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2022-12-03T02:04:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=4b501f288309e8d201a758ba23ddccfa9dffed81'/>
<id>4b501f288309e8d201a758ba23ddccfa9dffed81</id>
<content type='text'>
* mingw-bundledlls finds and copies transitive DLL dependencies.
* Like all external one-file sources, mingw-bundledlls has been copied into contrib/
  instead of adding a submodule.
  It's taken from here: https://github.com/mpreisler/mingw-bundledlls
* Packaging is more robust now if dependant DLLs are upgraded or if we
  decide to link in more statically.
  With the old scheme, we might also miss some DLL and break builds
  without even noticing it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* mingw-bundledlls finds and copies transitive DLL dependencies.
* Like all external one-file sources, mingw-bundledlls has been copied into contrib/
  instead of adding a submodule.
  It's taken from here: https://github.com/mpreisler/mingw-bundledlls
* Packaging is more robust now if dependant DLLs are upgraded or if we
  decide to link in more statically.
  With the old scheme, we might also miss some DLL and break builds
  without even noticing it.
</pre>
</div>
</content>
</entry>
</feed>
