EiC's Change Log. +----------------------------------+ | Significance of Changes | +----------------------------------+ | * minor change or bug fix | | *** a new feature or function | |****** major change or addition | +----------------------------------+ Changes from 3.5 to 3.6 *** added module `xv', which provides a primative interface to xv. * Fixed bug in EiC's test-module EiC/test/EiCtests/testinclude.c * Documentation updated to reflect EiC's internet programming facility. * if EiC is installed in /usr/local then the environmental variable HOMEofEiC does not need to be defined *** added the command line switch '-e'. It is used to for debugging CGI scripts. See documentation for details. * fixed bug with fgetc not returning the next character as an unsigned char converted to an int * fixed bug with EiC core dumping when the environmental variable HOMEofEiC is not defined Changes from 3.4 to 3.5 *** added module `cgihtml' ****** all global variables and functions declared static within an include file are now private to that file, and are only visible within the scope of the include file. Therefore, in general, their names will not clash with the names of any global variable visible from the EiC prompt or within any other include file. * fixed bug with EiC becoming internally unstable after passing structures/unions by value to functions from scope level file: EiC > struct {int a, b;} ab_t; ... EiC > foo(ab_t); // eic is now unstable * fixed bug with type conflicts generated by declarations of the type: int ff(char *ff); and definitions of the type: int ss(int ss) { return ss;} * fixed bug caused by safe pointers when passing structures by value to functions. * rationalised slightly the header files in EiC/src Changes from 3.3 to 3.4 *** added modules `tools' and `examples' * documentation updated *** most of the example code given in EiC's documentation is now included in the directory: ../EiC/module/examples *** the installation procedure has changed; this is because `eicc' no longer exists. ****** EiC can run its own shell scripts of the form: #!/usr/local/bin/eic -f #includeprintf("Hello, world.\n"); * fixed bug with enum being declared extern: enum rgb {RED,GREEN, BLUE}; extern enum rgb colour; enum rgb colour = RED; * fixed bug with the comma operator processing syntax of the form: foo(),f; * fixed bug with boundary affects, due to safe pointers, in `memmove' and `strncpy' * fixed bug with eic failing to cast `unsigned int' to `long' properly on platforms where sizeof(int) == sizeof(long) * fixed bug with eic to pass command line arguments in double quotes properly: % eic main2.c " hello world " * fixed bug with safe pointers when dealing with: int a, b; memcpy(&a,&b,sizeof(b)); * fixed bug with using casts with type qualifiers: (const char *)p; * fixed bug with the incrementing or deincrementing of arrays passed to functions: void foo(char *argv[]) ... *++argv; //bug here * fixed bug with the initialisation of char arrays of the type: char buf[13] = "\0""1234456789"; * fixed bug with pp directives of the type: #if !(hello) * for main, argv[argc] is now set to NULL on setup. * fixed bug with the formation of a new macro during an expansion that extends across multiple lines. Changes from 3.2 to 3.3 *** improved array bound checking functionality * update of EiC's documentation (still needs some work though) *** implemented the function `atexit' * fixed bug with rename not removing the oldfile * fixed bug with gets setting the wrong flag, preventing it from working correctly with the rest of the IO functions. *** added the function freopen * fixed several bugs with EiC's functions Changes from 3.1 to 3.2 * fixed several bugs in EiC's functions *** added the switch -N to stop eic from using any startup.h file when started. ****** MADE EiC POINTER SAFE (alpha stage) * fixed bug with EiC repeatedly catching the same SIGNAL violation * fixed bug with the initialising of non STR variables Changes from 3.0 to 3.1 * fixed defect with showMacro. * corrected NULL pointer definition. * fixed typo in "unsigned char" * fixed checking of function return type *** added POSIX.1 functions `access' and `fcntl' * convert to unsigned int for `%b'; i.e. printf("%b",15) -> binary numbers are unsigned. * fixed bug with indexing arrays of pointers with the assign operator. * prevented interpreter functions from masking builtin functions. * fixed problem with the initialisation of a global char NULL pointer: char *p = NULL; *** added the interpreter command ":clear" Changes from 0 to 3.0 Too many to list