Older blog entries for rbrady (starting at number 25)


Excellent - I now have a modified version of Slang which uses an array of wchar_t for each character, and compiles and links and everything. And, better, it even seems to work. Now to get it to output UTF-8...


Started trying to port SLang curses implementation to be able to deal with wide characters. It's highly confusing, but not as confusing as ncurses. Hopefully, lessons learnt in porting slcurses will be transferrable to ncurses.


Ages ago (well, in 97-99), I was part of the development team of the Cryosphere, a SciFi mud. I dropped out of this due to the pressures of university, and I got interested in other stuff (the Unicode stuff, as it happens). By February 1999, it had died.

Eighteen months later, it has been resurrected (by some folks who were high-ups in Attempt #2). And I now have some free time. So I've joined again. We have now, (which we failed to have in 1999), a vision, which we can get to through a series of incremental steps - and when we get there, it will rock.


There was fixing of yet more xterm bugs! At least these were mainly ones I introduced, so therefore I could find them. :-) Also much hacking on a new Gujarati renderer, which can share something like 90% of the code with the Devanagari renderer. Started making an appropriate font. Progress slow due to not being able to read Gujarati.


Stared lots at Gujarati glyphs and managed to cobble together a couple of fonts that work. These have gone into CVS.

Other indic hacking - I'm making all the Indic renderers indicate invalid sequences better, and share more code between them. And some other bits and pieces.

Got some feedback re: the Devanagari renderer and keymaps. They work! (Apart from some minor glitches in the keymap). Hopefully this means gtk HEAD will get translated into Hindi soon.

The Future

I've arranged to go to the main UK office next week. Looking forward to this, as I finally get to meet my boss.


Signed the contract yesterday, so I'm now officially employed. :) Um, yay!


Most of today was spent tracking down bugs in xterm. I fixed the combining-doublewide characters interaction problem and the consequent U+FFFF getting mangled issue, and some potential security issues wrt the UTF-8 decoder.

The Killer Bug was the recently-tracked-down CutBuffer problem. It's all icky and complicated, but related to the fact that Xterm is exporting cutbuffers in UTF-8 and then importing them in Latin1. This is clearly wrong, but no-one seems to know the right answer. I suspect I will make it so it converts the exported strings to Latin1, as that, whilst not good, is several million times better than the current behaviour, which is of no use to anyone.


Some people have been recently talking about free Unicode fonts. It might interesting them to learn of the ucs- fonts project - which has extended many standard X11 fonts to a decent Unicode range. Soon, the -Adobe- pixel fonts will also be ready to a quite large range.

If you have XFree86 4.0, you already have these fonts, and a UTF-8 supporting xterm. Just type "xterm -u8 -fn 9x18u" and lo! This doesn't support CJK or combining characters, but you can get a patch for that, which hopefully will be integrated into the standard Xterm soon.

Obviously this doesn't support Indic scripts, however works in ongoing on support for Indic scripts in Pango, and will hopefully be ready for 1.0, along with a decent selection of pixel fonts for : Devanagari, Bengali, Gurmukhi, Burmese, Gujarati, Oriya, and possibly other scripts.

OpenType support is more confusing, and something I'd prefer not to have to do on my own. If anyone is interested in collaborating on this issue, I'd strongly recommend getting on the appropriate mailing lists, including fonts@xfree86, and the linux-utf8.

Some folk also might be interested to learn a stab at a free TrueType font editor exits. The main thing missing from this is hinting. All that is needed for OpenType is editors for Numerous Tables.

Bill of Rights

The Bill of Rights is far from unique. The Constitutions of most countries guarantee certain rights. All member states of the European Union are signatories to the European Convention on Human Rights, which prohibits the abridgement of lots of basic rights which weren't guaranteed by the Bill of Rights These rights include

  • The right not to be a slave (1865 in US)
  • The right not to be killed (still absent)
  • The right not to be tortured (as part of investigation, not prohibited by US constitution, the 8th amendment only applies to punishments)
  • The right to be presumed innocent until proven otherwise (still absent, I think)
  • The right not to be discriminated against on grounds of sex, race, colour, language, national origin, association with a national minority (1920, at least.)
  • The right to free and fair elections (1964)
  • The right to education (still absent)

So, whilst the United States's constitution is actually pretty good today, it would be false to credit this to the Bill of Rights, which didn't really contain anything that was very radical (most of the points being enshrined in English law at the time).


The current standard for C, is ISO 9899:1999, not :1990 The standardisation work for this was done entirely by ISO (which ANSI are a member organisation of, of course).


Continued hacking on xterm to support CJK/Thai. There is a strange selection crashbug still there, but I can't reliably reproduce it. Debugging isn't helped by the fact that the Xterm sourcecode isn't exactly the best example of modular, well-documented code.

Continued hacking on Indic script support for Pango. I have discovered my X server crashes when it tries to access a BDF file with a longer-than-1024-chars-long line. Must find out if XF86 4 does this and report it if so.

Need to if there is a standard Sinhala keyboard layout. This seems to be just about the only Indic script that doesn't fit well onto the Inscript keyboard layout that I'm using to enter all the other scripts. (due to the prenalised stops). Please let me know if you do...

Driving lessons going well, haven't crashed into anything or killed anyone yet. (this is a good sign).

  • Forgot to mention, was 21st birthday on the 26th. Now can become an MP (although admittedly I'd have to persaude a whole lot of people to vote for me first.)
  • Back in Leicester.
  • Sent the form off for a provisional driving licence (which is needed in order to start learning to drive).
  • Myanmar (the script) turns out to be a lot more interesting than I was assuming. The World's Writing Systems as always has basically everything needed, though. Probably the ligature substitution engine will get a lot smarter by the end of the week. Getting the funky [-style R to work will not be fun though. In the unlikely event that anyone is interested, here is some sample output of the myanmar shaper

Now have a Burmese renderer working. If there is anyone here who can read this script (preferably a native speaker), please let me know, I want to test it on a real person.

Moving out of the house tomorrow. Must do packing and tidying and throwing away assorted junk.

Haven't written in here for a while now.

  • Degree - I got a 3rd. I am generally happy with this, I was afraid I'd do better. For my project, I think I got a 2:1, and I got a 2:2 for the recent exams, it was the 1st semester exams that pulled me down. But an honours degree is an honours degree, so I'm happy. :)
  • Rendering of Indic Scripts - made quite a bit of progress here, I've started a Bengali renderer based on the Devanagari renderer. This has some new and interesting issues to deal with (in particular, characters that map to two glyphs, which occur on either side of another character). After this is working, I'll pull the common code into a library and make renderers for all the other Indic scripts (apart from Tibetan, which still looks very scary).

16 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!