I have uploaded a new test release of BricxCC and NBC/NXC tonight (11/30/09 at 9:00pm CST).
http://bricxcc.sourceforge.net/test_release.zip
The biggest change is support for enums. At the moment NXC does not enforce types on enums so you can define a variable of an enum named type and then assign to that variable any integer value rather than only enumerations that are a member of the named enum type.
http://bricxcc.svn.sourceforge.net/viewvc/bricxcc/tests/enums.nxc?revision=264
I fixed a bug with unsigned values in a return statement. I also added a slew of stdio.h, string.h, and ctype.h functions to the NXC API. Here are a couple sample programs. The first one shows some of the new functions from string.h:
http://bricxcc.svn.sourceforge.net/viewvc/bricxcc/tests/strings.nxc?revision=264
This next program demonstrates how to use several functions from stdio.h:
http://bricxcc.svn.sourceforge.net/viewvc/bricxcc/tests/fileio.nxc?revision=269
The fseek, rewind, and all the printf-like functions require the enhanced NBC/NXC firmware. Make sure that you configure your compiler options to target version 1.28 or later of the enhanced firmware (aka NXT 2.0 compatible).
A while ago someone on the nxtasy forums reported problems with the FileSeek operation that I added to the enhanced firmware. Based on my testing this evening, it looks like the problem was with using the LDR_CMD_FILESEEKSTART constants as the origin. The LDR_CMD_* constants are not the right numeric values to use as the seek origin. Instead, use the SEEK_SET, SEEK_CUR, and SEEK_END constants (0, 1, and 2) that are included in the API as of tonights update.