EiC's Change log

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
               #include 
	       printf("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