This is the manifest for LibEth v0.1b, the ``Dila'' release. LibEth provides C programmers with a library of routines for Fidel I/O modeled after ANSI C standard routines for files and strings. Additional routines are available, or proposed, for the library for cultural localization for conversion between number and calendar systems. The package is intended to be a utility for I18N programmers providing Fidel and Ethio-Eritrean language support in their software.
LibEth supports SERA I/O under Unicode, and output only for Junet, JIS, Agafari, ALXEthiopian, Feedel, Washra (Ethio ASCII) character coding systems. Input for the later 4 will appear shortly. The core of the LibEth package is a character stream scanner written in AT&T Lex. The scanner serves as a runtime layer between the I/O functions and the file system. This layer, invisible to the programmer, allows the programmer to work with Fidel, as Fidel, tokenized in the addressing scheme of choice.
Differences From The Standard C Model:LibEth routines look, perform, and return values like standard c routines will. The primary difference is that the routine names are prefixed with ``fidel'' and require that an extra argument be passed at the end of the argument list. The ``seraflags''
A second difference is that the fidel_ routines expect to be passed string pointers for the ``target'' of the action. This is done to insure a successful operation by providing an automated bounds checking which becomes an issue of greater concern for mixed byte width output.
This code segment demonstrates reading of a file in one coding or encoding system -such as SERA, and writing out in another -such as Unicode. Note that fidel_fgets will allocate the memory needed to hold the actual characters read.
SERAFlags seraFlags;
FCHAR* mystring;
FILE* inptr = stdin;
FILE* outptr = stdout;
:
:
seraFlags->in = sera;
seraFlags->out = uni;
:
:
while (!feof(inptr))
{
fidel_fgets (&mystring, 80, inptr, seraFlags);
fidel_fputs (mystring, outptr, seraflags);
free (mystring);
}
:
:
LibEth-0.1b is NOT a stable release of the LibEth package. File and string I/O commands HAVE been tested and operate normally in normal conditions. Problems may be lurking when multiple file and string pointers are used simultaneously -this is a lex "lookahead" token issue.
ftoi, arab2eth, fidel_ungetc, and kb_hit may also not be reliable at this stage.
: : : :
Version 1.0, The Adwa Driver, is the ultimate goal. Every routine is robust, every routine has a man page. Any predictions now possible.