Friday, September 29, 2006

Yab and YaGui

Yesterday, I resumed work on Yab (Yet Another Basic), and fixed a bug on a feature I had added, that allowed me to continue work on YaGui, a Visual Tool for creating programs with Yab.

For now, I fixed a bug in the creation and destruction of Windows in YaGui (although a small bug still lingers) and started work on the Properties Editor. It follows focus and gives info on Name, Caption, Width, Height and position of a Window.

However, the CVS version of Yab is not enough for the creation of YaGui, since it is missing a few features that were temporarily disabled to keep backwards compatibility. No problem there... I will fork it, until the code can be entered on the main source tree.

I will later post some screenshots, and I will keep you informed of my progress.

Tuesday, September 05, 2006

getprotobyname , getprotobynumber

In Zeta and BeOS those two functions are not implemented. In fact, BeOS doesn't declare them at all. However some posix compliant programs require them, although they don't use them, and a few use them. Yesterday I stambled on one of them and tried to find a solution.

What I did was I created for Zeta a new library, called libmoreposix.so and included a simple implementation of those functions, I found on Koders. And guess what? It seems to have worked!!! I will be posting the library up soon, for everyone to try.

Thursday, August 31, 2006

gettext

While compiling gettext for Zeta I found that the headers for libexpat (that is included in Zeta) where missing. Those files are expat.h and expat_external.h. So I downloaded a recent expat library and placed the headers in the include directory. This allowed me to fully compile gettext.

Testing the library with make check was a success.

The code for gettext for Zeta can be found on BeOSMaxFiles.org

Expat 2.0 library I downloaded for the headers is here.

libxml2

Trying to compile libxml2 on Zeta I have found that two additional libraries need to be included in the makefiles: libnet and libbsd. The first one contains functions such as closesocket and gethostname and the second one glob and globfree. These libraries aren't part of R5, so they should not be needed there.

After succesful compilation, running the tests is also a success.

Trial and Error....

I have been involved with BeOS/Zeta for several years now, ever since I tried BeOS 5 Personal Edition. However only recently I started programming on this OS and found it to be a great exercise for the mind.

Porting of a fiew programs and games and helping with the development of yab has helped me understand how BeOS Api works.

During my adventures with porting, I have found out that most problems can be overcome by simply changing a few lines of code or updating old system libraries with newer versions (provided they are opensourced).

A simple example is that Gcc 2.93 used by BeOS/Zeta cannot have a new variable declared after a call to a function, so all variable declerations are moved to the beginning of the function.

Another problem are missing defines from posix headers, but also those can be added, just by googling and finding out where they should go and what they declare.

Further yet, a missing implementation of flock function that I have found is used by newer autoconf can be overcome simply by editing sub lock in xfile.pm and just living it empty.

This blog will follow my porting efforts and will give you details on the changes I make and the applications/games I port.