Announcing Minix editline 1.14.0
It is with great pleasure I announce the next release of the editline library by Simmule Turner and Rich Salz! This is a popular library, it exists in several forked versions. This release marks the end of a huge effort where archaeological methods have been applied to recover fixes and improvements developed independently over several decades by the following projects: Heimdal, Festival speech-tools, Debian, and Mr. Steve Tell.
Noteworthy changes and additions:
- The symbols rl_complete() and rl_list_possib() are no longer possible to overload as function pointers. Instead the FSF libreadline rl_set_complete_func() and rl_set_list_possib_func() API has been added for implementing custom completion handlers.
- 8-bit handling now work correctly on non-utf8 terminals, including meta characters and key bindings. This is actually a revert of an old broken Debian patch.
- The functions el_bind_key() and el_bind_key_in_metamap() have been added thanks to the efforts of Festival speech-tools hacker Mr. Alan W. Black.
- Support for capitalizing words (M-c), also from Mr. Alan W Black.
- Improved FSF libreadline compatibility and signal safety fixes by Mr. Steve Tell.
- The HUGE code cleanups are mostly courtesy of the Heimdal Project,.
- Several more APIs for increased compatibility with FSF libreadline have also been added. See the file include/editline.h for details.
Online GIT repository and release tarball available at the usual places:
- vmlinux:editline.git (Main GIT)
- github:editline.git (Backup)
- editline-1.14.0.tar.bz2, MD5 (FTP)
Report bugs to the email found in the README file. See also the Freshmeat page for a more consistent updates.
Thursday, 12 August 2010 at 18:17 | /hacks | permanent link to this entry
Announcing Micro Tetris™ 1.2.0
New release of Micro Tetris™, v1.2.0, available for download now! Noteworthy changes and additions:
- Preview display fixes from Mattias Walström
- Next level triggered after every 10 cleared lines
- Speed increase by each level
- Display high score at game over
- High score recorded to save file
- Pause key fixed, Mattias Walström
Online GIT repository and release tarball available at the usual places:
- vmlinux:tetris.git (Main GIT)
- github:tetris.git (Backup)
- tetris-1.2.0.tar.bz2, MD5 (FTP)
See also the Freshmeat page for a more consistent updates.
Monday, 02 August 2010 at 00:56 | /hacks | permanent link to this entry
Minix editline moves to GIT
A small heads-up, I've migrated the Minix editline project from Bazaar to GIT. The new URL for keeping tabs on your favourite free readline() clone is:
I'm currently working on fixing up the tree and doing some house cleaning - including making more stuff configurable - before releasing a 1.14.0 later on.
One such item is the integration of libtool with our autoconf friends. This should make it lot more portable (again) and also help smooth a merge with other sources for this library. More on that as well, later, hopefully.
Monday, 19 July 2010 at 02:40 | /hacks | permanent link to this entry
Editline v1.13.0 Available!
First release with the new name. Available from the usual places:
- bzr branch http://bzr.vmlinux.org/editline
- Tarball: editline-1.13.0.tar.bz2 (MD5)
Report bugs to the EMAIL found in the README file.
Tuesday, 09 March 2010 at 23:11 | /hacks | permanent link to this entry
On reviving pimd and mrouted
I'm unsure if I should take any pride in this, they are old and stale projects that probably should have been forgotten a long time ago. But the original pimd and mrouted multicast routing prodocols have been revived at github.org.
We need them at work and I were a bit tired of digging around the Internet for patches trying to keep them running on our ever evolving new platform. So I sat down a couple of week-ends and read up a bit on pimd and mrouted, collecting patches from the usual places as well as some unexpected places, before creating the projects.
Yes, I am aware of the effort to extend Quagga with a native pimd and I will definitely look into that in due course.
Starting these projects using GIT actually brings closure for me. If anything I can rest assured that my efforts can easily be picked up by someone else should I loose interest.
To those of you having trouble building and using pimd/mrouted, please include build logs and full debug logs in your emails requesting help. Thanks!
Saturday, 30 January 2010 at 13:23 | /hacks | permanent link to this entry
Log rotation for sysklogd
I have been using the BusyBox syslogd for a while now. It's nice and small, but sometimes a bit too limited. Due to the resource limitations of my target system I've been dreading having to pull in something else. But recently the lack of standard syslog features, most notably support for more than one remote syslog server and the ability to, e.g., split debug and warning messages to separate log files, have forced me to shop around a bit.
I found sysklogd to be small enough but yet competent. It's the default in most Debian and Ubuntu installations and is a descendant of BSD. So I started playing with it, only to find out (again!) that the BusyBox guys really know what they are doing. The BusyBox syslogd support automatic log rotation, has a a neat circular buffer which a logread tool can hook into and supports double buffering. The one feature I cannot do without is the built-in support for rotating log files. My system is embedded and I don't want to drag in logrotate(8), or cron for that matter, only to rotate a few files. Also, there are several problems with having external scripts do the log rotation.
So, I set about porting the BusyBox log rotation code to sysklogd. Here is the first patch, which will be updated whenever I find bugs, make additions or changes.
When it is done and feels stable enough I'll submit it upstream. If not for general inclusion then perhaps it fits into the contributed patches category.
Sunday, 11 October 2009 at 12:48 | /hacks | permanent link to this entry
Micro Snake
Wow, it would seem I've started a series of miniature games. Yesterday I released Micro Snake on Freshmeat. Like last time, it's a very small implementation with as few dependencies as possible, made for playing on dumb ASCII/ANSI vt100 terminals.
The project is a refactor of an original DOS game by Simon Huggins. Thank you Simon for allowing me to reuse your work!
Like most code I publish these days it's under the ISC License.
Download the code and try it out!
Thursday, 23 July 2009 at 12:07 | /hacks | permanent link to this entry
Editline First Post
For a while now I've been maintaining a port of Minix editline library libedit. Mainly for my own purposes, or rather on behalf of Westermo WeOS, where it is used in the CLI. This library is the same as the Debian editline package, even though the origin of that package is somewhat unclear to me.
Today I decided to adjust the package name and bump the version number to indicate that my port is the same, and now slightly more advanced, than the Debian version. To that end I've now changed the repository name and prepared for merging with Debian. Getting this work accepted back into Debian is a completely different issue.
Get the code as a Bazaar branch, or view its change log through the Loggerhead web interface:
I now intend to do some further integration work, adapting the debian/ directory from editline-1.12-5 and smoothing out any remaining issues before I release 1.13.0.
Sunday, 14 June 2009 at 20:44 | /hacks | permanent link to this entry
Micro Tetris™
Actually, this similarity in board layout, key combinations and feel led me to do some archaeological digging. I dowloaded the BSD games collection and, after having called GNU Indent on the obfuscated code, I started noticing such extreme similarities that just could not be coincidental. The layout and constructs of the code are virtually the same, so I can only conclude that they must share the same ancestor. Maybe this code is that ancestor, considering that the BSD Tetris is copyrighted in 1992 and this version stems from 1989, it is maybe not a completly illogical conclusion.
See for yourself.
Saturday, 13 June 2009 at 00:04 | /hacks | permanent link to this entry
Brief libev update
I have now updated the libev examples. It took me a while, but during that time I have been hard at work converting two of our network daemons to use libev. As of today the upcoming Westermo WeOS uses libev in both its rstpd and igmpd implementations.
Updated example code:
Enjoy, and feel free to contact me if you have any questions or comments on the code. For libev specific help I can really recommend its mailing list!
Sunday, 05 April 2009 at 23:53 | /hacks | permanent link to this entry