bintools/rcomp/group/RELEASE.TXT
changeset 590 360bd6b35136
parent 0 044383f39525
child 626 ac03b93ca9c4
--- a/bintools/rcomp/group/RELEASE.TXT	Wed Jun 16 16:51:40 2010 +0300
+++ b/bintools/rcomp/group/RELEASE.TXT	Wed Jun 23 16:56:47 2010 +0800
@@ -1,628 +1,663 @@
-Version 8.1.005
-===============
-Released by KunalM, 06/03/2007
-
-	1) RCOMP ported to the TOOLS2 platform, under PREQ1182, MS3.6.2
-
-
-Version 8.00.002
-================
-Released by AndrewR, 3/3/2005
-
-	1) DEFECT FIX: DEF055559 - Problems building rcomp in VC6 IDE
-
-Version 8.00.001
-================
-Released by AndrewR, 7/2/2005
-
-	1) DEFECT FIX: DEF054981 - tools_rcomp component is updated every day
-
-Version 8.00.000
-================
-Released by AndrewR, 4/2/2005
-	1) Fixed DEF054617 - rcomp doesn't build from source
-	2) Fixed INC049059 - incorrect line number for error reported by rcomp when building \s60\gs
-
-Version 7.01.009
-============
-Released by KuldipN, 22/07/2004
-	Add UID2 and UID3 keywords to RCOMP 
-	(CR HBRT-5YJJ9C Specifying UID2 and UID3 in RSS files)
-
-Version 7.01.008
-============
-Released by DuskoJ, 10/07/2003
-	1) Fixed DEF022269  Resource value is read incorrectly
-	2) Fixed INC036025  RCOMP chinese resource complation problem 
-
-Version 7.01.007
-============
-Released by Jon Chatten, 03/06/2003
-	1) Fixed "DEF025433 RComp core dumps on certain resource files"
-	2) Adjusted version number in release.txt to match binary.
-
-	
-Version 7.06
-============
-Released by Dusko Jahora, 03/06/2003
-	1) Reverted fix for DEF022269
-
-
-Version 7.05
-============
-Released by Dusko Jahora, 02/06/2003
-1)	DuskoJ
-	1)	Changes to RCOMP whihch are part of CR PCHY-5L3RDW 
-		"Typhoon must support 16bpp colour".
-	2)	Fixed DEF022269  Resource value is read incorrectly
-		(this fix was not submitted on 09/05/2003 because of 
-		 an integration error)
-
-
-Version 7.04
-============
-
-Released by Dusko Jahora, 09/05/2003
-1)	DuskoJ
-	1)	Fixed DEF022269  Resource value is read incorrectly
-
-
-Version 7.03
-============
-
-Released by Dusko Jahora, April 2003
-	1)	Fixed defect DEF017151 "RCOMP should be upgraded to support files with UTF8 
-		signature".
-
-
-1)	William
-	1)	Fixed defect ROS-58VCX8 "RCOMP doesn't allow + in filenames" by removing
-		the unnecessary validation of the filenames left by the C++ preprocessor.
-	2)	Fixed defect RED-5ACK5F "Resource compiler creates nothing for empty and bad 
-		counted byte arrays"
-2)	Dusko
-	1)	Fixed defect ROS-5B7MHW "RCOMP fails to handle boundary values correctly
-		for WORD data type"
-	
-NB. The handling of LABEL suggests that it would be pretty easy to add rls_string support
-into the compiler directly.
-
-Version 7.01
-============
-
-Released by Jon Chatten, February 2002
-
-Fixed defect ROS-56PHFA - Replaced system() call to uidcrc.exe with a call to _spawnlp -
-this addresses the IDE-hanging issue when epocrc.pl is integrated as a plug-in with the CW
-IDE on Windows 98.
-
-Removed attempt to absolutely identify uidcrc.exe - this is no longer required as the CW RCOMP/EPOCRC.PL
-plug-in now sets the PATH before invoking the command line tools.
-
-
-1)	William
-	1)	Fixed defect ROS-55KJ4U "RCOMP fails if epoc32\tools not on the path"
-
-
-Version 7.00
-============
-
-Released by David Batchelor (November/December 2001)
-
-The format of resource files changes as follows:
-
-- The initial 2 two-byte values are removed as they are completely redundant. (All the information
-  they provide can be derived from the last 2 bytes of the file combined with the size of the
-  file.)
-- Resource files now have a standard 4-byte checked-UID field at the start. The first UID is
-  0x101f4a6b, to indicate that the resource file potentially contains Unicode compressed according
-  to the "Standard Compression Scheme for Unicode" (see
-  http://www.unicode.org/unicode/reports/tr6/tr6-3.2.html). The second and third UIDs may be
-  specified on the command-line by using an optional parameter of the form
-  "-{0x12345678,0x9abcdef0}" (without the quotation marks). If "*" is used as the last UID, e.g.
-  "-{0x600ddea1,*}", then the resource file's "offset" (i.e. the 20-bit number generated from the
-  resource file's "NAME") is used as the last UID.
-- The UID field is immediately followed by a bit-array, one bit for each resource in the resource
-  file, where each bit indicates whether the corresponding resource contains compressed Unicode.
-  The bit field is padded up to a multiple of 8-bits (if necessary) with zero bits.
-- Each resource which contains compressed Unicode consists of a series of "runs" preceded by a 1
-  or 2-byte run-length (1 byte if the run is <128 bytes, else 2 bytes). The run-length value does
-  not include itself in the byte count that it holds. The first run, the third run, the fifth run
-  etc contain compressed Unicode. The second run, the fourth run, the sixth run etc contain other
-  stuff. As the protocol defines that the first run is compressed Unicode, this run may obviously
-  be of zero length - no subsequent run in that resource may be of zero length.
-- Rcomp only uses compressed Unicode for text fields if it yields any benefit (i.e. only if it
-  actually makes the output file smaller).
-- The changes are completely transparent for code that reads resources.
-
-
-Version 6.03
-============
-
-Released by William Roberts, 30-Jul-2001
-
-Fix defect EXT-4YSCUV "Resource compiler corrupts long strings"
-Handle very long C++ comments, which previously caused a "token buffer overflow" message from the
-lexical analyser. Avoid overruning the buffer for literals by using a CHECK_APPEND() macro which
-discards characters rather than run off the end, giving errors like
-
-<empty>(5) : string too long - 1 ignored
-<empty>(5) : string too long - 2 ignored
-
-Avoid overflowing the Value array in string expressions by checking the new length before
-agreeing to concatenate the strings. Ultimately it would be best to replace Value[] with 
-a char* which has been created with strdup() and can therefore be realloc'd to grow the string.
-
-Fix defect ARG-4TZF7J "RCOMP needs warning waivers registered with SI"
-Removed all warnings in tools rel build - some tools deb warnings will appear in rcomp.cpp 
-because of problems in the mks\etc\yyparse.cpp file, but I didn't want to hide related problems 
-in any new Symbian code we might add. 
-
-Improve the -v output to show the primitive types being emitted, and to dump the IndexTable as hex
-offsets followed by the resource name, e.g.
-
-    IndexTable
-    IndexTableItem 4	<empty>
-    IndexTableItem c	r_eikserv_panic_dialog
-    IndexTableItem b8	r_eiksrv_oom_event_top
-    IndexTableItem e4	r_eiksrv_oom_event_bot
-    IndexTableItem 144	r_eikserv_replace_main_batteries
-    IndexTableItem 170	r_eikserv_replace_backup_battery
-
-and 
-
-    ResourceHeader          r_eiksrv_tasklist_dialog
-    ++ResourceItemArray
-    SimpleResourceItem [Long flags]  9
-    SimpleResourceItem [LText16 title]  
-    SimpleResourceItem [LLink pages]  
-    SimpleResourceItem [LLink buttons]  
-    StructArrayResourceItem (Level 0) [items]  
-    ArrayLength [Word] 1
-    ----------------------
-    --ResourceItemArrayArray
-    ++ResourceItemArray
-    SimpleResourceItem [Word type]  1001
-    SimpleResourceItem [LText16 prompt]  
-    SimpleResourceItem [Word id]  1
-    SimpleResourceItem [Long itemflags]  0
-    StructTypeResourceItem (Level 0) [control]  
-    ----------------------
-    ++ResourceItemArray
-    SimpleResourceItem [Byte version]  0
-    SimpleResourceItem [Word flags]  0
-    SimpleResourceItem [Word height]  8
-    SimpleResourceItem [Word width]  20
-    SimpleResourceItem [LLink array_id]  
-    ----------------------
-    SimpleResourceItem [LText16 trailer]  
-    ----------------------
-
-Together these changes should make it significantly easier to step through the binary image of a
-resource and work out which element has changed unexpectedly.
-
-
-Version 6.02
-============
-
-Released by William Roberts, 15-Feb-2001
-
-Fix awful defect in version 6.01, which caused negative integer constants to be written to the file as -1.
-
-When testing with LOCKIT, RCOMP developer should be aware that the version of RCOMP.EXE used by lockit 
-is kept in \lockit\tools, not \epoc32\tools.
-
-
-Version 6.01
-============
-
-Released by William Roberts, 14-Feb-2001
-
-Redefined character literals ('x') to be effectively strings so that they can contain UTF8 encodings
-for interesting characters. This is handled using the same lexical rules as string literals, so
-the limited escape processing is also supported. The introduction of strings surrounded by single-quotes
-means that the sequence \' is now accepted as standing for '.
-
-If the character literal string decodes to more than one Unicode character, a warning is given and the
-rest of the string is ignored. The prevailing source character encoding is used, but there is no support
-narrow character literals in the difficult part of the CP1252 range: the interpretation of the literal
-is always "the Unicode encoding for the first character of the string". For example, even in a 
-CP1252 source file building a narrow resource, a literal containing the Euro symbol will be interpreted 
-as 0x20ac, not 0x80.
-
-LTEXT strings are now checked to ensure that they are less than 256 characters in length.
-
-The NAME statement can now take a string literal or a label, instead of the previous behaviour where the
-lexical analyser handled the following word differently. Any RSS file which used a keyword as a name,
-for example WORD.RSS, will need to be changed to specify the name as a literal: the preferred syntax
-is to use string literals in all cases.
-
-
-Version 3.18
-============
-
-Released by William Roberts, 05-Aug-1999.
-
-Requires BAFL 092.
-
-Changed the handling of Unicode string resources (TEXT16 and LTEXT16) to ensure that the
-Unicode characters are aligned to a multiple of 2 bytes when the resource is used.
- 
-Resources are never used in place: instead RResourceFile::AllocReadLC creates an HBufC8 to hold a
-copy of the data. This means that rather than aligning from the start of the entire resource file,
-instead we have to align to the start of the individual resource, because the data in an HBufC8 
-always starts at an aligned address.
-
-Added RCBinaryStream::Align(int nBytes) and RCBinaryStream::SetAlignBase() to support the 
-generation of the necessary padding, and call them from suitable places in RCOSTRM.CPP.
-
-Also added code to add 1 to the offset of the end of the table of resource offsets: this is tested
-in BAFL as a marker to indicate the new format of resource file.
-
-Added a /verbose flag to core.cmd which invokes RCOMP with -v.
-
-Added #pragma warning( disable : 4710 ) in a couple of places to cut down on the number of
-unnecessary and useless "warnings".
-
-Regenerated the test resources.
-
-
-Version 3.17
-============
-
-Released by William Roberts, 25-Jun-1999.
-
-Fixed defect where embedded Unicode characters could cause BUF<x> strings to fail a length check.
-Updated test code include a check for this.
-
-Added more stuff for the Engineering Automated Build.
-
-
-Version 3.16
-============
-
-Released by Pute, 9-Jun-1999.  Based on work by William Roberts,
-26-May-1999 described in the "William's notes" section below.
-
-
-Character sets
---------------
-
-We are moving towards a specific principle of character sets for RCOMP.
-
-Previously, the character set used by RCOMP was not well defined, later we
-added the CHARACTER_SET identifier.  This implied that any specific values
-inserted into strings in <n> format would be in the character set of the
-source.
-
-In this design RCOMP will have trouble handling multibyte encodings like
-Shift-JIS because the tools it relies upon, LEX and YACC, are based on
-single-octet encodings only. Sometimes a multibyte encoding will produce
-artefacts that appear to be syntax elements such as double quote marks.
-
-In future the intention is that RCOMP uses UTF-8 encoding internally,
-provided by a pre-processing phase.  This release is an interim step.
-
-In this release, when explicit values are inserted in text strings, they
-are interpreted as Unicode values and converted to UTF-8.  To retain
-backward compatibility with CP1252 source, values 80-9F are also permitted
-and these will be mapped to Unicode as before when the source character set
-is defined to be CP1252.  The use of explicit values 80-9F is deprecated
-however.
-
-The default input character set is CP1252.  Previously, the default
-character set was "unknown".  This possibility is no-longer supported.
-This was also contrary to documentation.
-
-
-Details:
-
-Test command procedure updated and enhanced.
-
-Test comparison files TUTEXT8.RSC and TUTEXT16.RSC have been updated to
-allow for the introduction of the extra characters in the CP1252 character
-set.  (128 used to be "not used" and is now the euro sign)
-
-Note that compilation warning messages about deprecated characters will
-appear durng this test.
-
-A new test source file TWTEXT.RSS and associated reference binaries have
-been added to the test suite to demonstrate explicit use of values >255.
-
-
-
-
-William's notes (edited by Pute):
----------------
-
-Defined a new "character set" called UTF8, which supports the UTF8
-encoding of Unicode strings. 
-This actually allows the whole resource source file to be entered as
-UTF8 if required.  However the default charset remains CP1252.
-
-Arranged to support embedded Unicode characters constructed using the
-<xxx> notation, to support the use of 0x07ED as the end-of-paragraph
-marker (see ETEXT 120). This exploits the UTF8 support by inserting the
-appropriate UTF8 sequence into the 8-bit data.
-
-The embedded Unicode characters are also supported in the CP1252
-character set, with internal use of 0x81 as an "escape" character
-indicating that the following bytes are a UTF8 encoded character. This
-allows existing CP1252 resource source files to be used with the new
-ETEXT.
-
-Added the Euro and the Z caron encodings to the cp1252_exceptions table.
-
-
-Only RCOMP.EXE has been rebuilt.  Judging from the timestamps, the other
-executables haven't been rebuilt for the last few releases.
-
-To build rcomp, first run ..\src\BLDEX, then MNT BLDREL
-
-Building is only possible from NT and makes use of lex and yacc from
-T:\mks - this should be updated to use the GNUPro tools which we use to
-build GCC, as the Cygnus toolchain is something we expect to have always
-available.
-
-
-
-Version 3.15
-============
-
-Released by SimonC, 01-Feb-1999
-
-Fixed defects
-	EDN484092 "RCOMP needs to be Symbianised"
-	EDN584421 "Need to rebuild RCOMP with boilerplated headers"
-
-Only RCOMP.EXE has been rebuilt.  Judging from the timestamps, the other executables
-haven't been rebuilt for the last few releases.
-
-To build rcomp, first run ..\src\BLDEX, then MNT BLDREL
-
-Building is only possible from the NT and makes use of executables on T: so this can't
-be rebuilt by licensees (which doesn't seem to have been a problem so far...)
-
-
-
-Version 3.14
-============
-
-Released by PNJ, 19-Mar-1997
-
-The CORE command and the test procedures rely on NT command extensions.
-
-
-Version 314 mods
-
-  1. In FILELINE.CPP, FileLineManager::ExtractFileName updated to add
-     filename information planted by the preprocessor. This is a rewrite of
-     the code that was removed in the previous release because it was
-     violating.
-  2. Test code now in a formalised framework accessed via MNT TEST. The
-     formalism isn't perfect because of the limitations imposed by the
-     legacy command language. See TEST.HTM in the TSRC directory for more
-     information. The test procedure relies on NT command extensions.
-  3. The CORE command procedure has been changed to allow preprocessor
-     symbols to be defined. See below.
-
-CORE syntax
-
-CORE filename [ object_directory [options] ]
-
-If options are being used the object directory parameter must be present,
-the default value is "." for the current directory.
-
-Options are:
-
-/UNICODE
-     Specifies that strings are emitted as Unicode in the resource binary.
-     Previously, this option was selected with "-u", which is the parameter
-     currently used by RCOMP itself.
-/DEFINE symbol [ symbol...]
-     Specifies one or more symbols to be defined for the preprocessor pass.
-     This must be the last option supplied because it is followed by an
-     arbitrary number of tokens and the command language is so primitive.
-
-
-
-
-
-
-
-
-Version 3.13
-============
-
-Released by PNJ, 13-Jan-1997
-
-Version number scheme is independent of product-specific E32 chain
-numbering.
-
-This is an interim release, to provide 16-bit character set functionality.
-Later releases are planned to provide other requested features.  Existing
-RSS files produce identical binaries to previous releases when compiled
-in the default non-Unicode mode.
-
-There are some serious defects in the source code which will take
-a long time to address properly, eg misuse of assert as a status check.
-
-1.  Minor changes to MNT and build settings.
-2.  Minor code changes to remove warnings.
-3.  Renamed STRING.CPP, .H to remove ambiguity with
-    standard header of the same name.
-4.  rcscan::yyerror function updated so that it actually
-    interprets formatted strings instead of ignoring the extra
-    parameters.
-5.  Fixed defect in String operator != which was doing the inverse
-    of what it is supposed to do!
-6.  Provide a qualifier for Unicode output.
-7.  Fix erroneous error message if source file not specified.
-8.  Fixed problem which caused run time fatal errors during
-    source context switching.
-9.  Introduce new tokens to differentiate between 8 and 16-bit
-    text strings.
-10. Introduce a CHARACTER_SET token to specify the source
-    character set.
-11. Introduce an extra test component directory.
-12. Introduce a command procedure wrapper for RCOMP (called CoRe)
-
-
-Language features
------------------
-
-CHARACTER_SET name
-
-Specifies the character set of the input file.  The implementation currently
-does not do much with this, but will do in the nexty release or 2.  Legal
-values for name are currently:
-
-ASCII, CP1252, CP850, ISOLatin1, ShiftJIS, Unicode
-
-Note that Unicode source text is not likely to be supported any time soon,
-largely because RCOMP relies on LEX and YACC which are not Unicode-aware.
-
-The default setting in this implementation is CP1252.
-
-
-TEXT, LTEXT and BUF
-
-Now have explicit 8 and 16-bit variants, eg TEXT8, BUF16.  The unadorned
-variants are internally converted to the 8 or 16-bit equivalents depending
-on the presence of the -u (for unicode) command line qualifier.
-
-The prefixed counter for an LTEXT16 is still an 8-bit field.
-
-The zero terminator for a TEXT16 is a 16-bit field.
-
-For text fields, it is recommended that you continue to use the unadorned
-keywords. For binary data, you should use the explicit 8-bit keywords. This
-is likely to apply most commonly to the BUF (BUF8) keyword.
-
-
-
-
-
-Version 0.03.12
-===============
-
-1) Reduced verbosity.
-2) Released a version compatible with NT4.
-
-Version 0.03.11
-===============
-
-1) PVCS'ed RCOMP and generally tidied it up.
-2) Fixed empty BUF crash.
-3) Fixed extra trailing comma crash.
-4) Cleaned up the build warnings.
-5) Added ...BUF<n>... where n is an integer giving max length of BUF.
-6) The .exe is now called rcomp.exe.
-
-Version 3.06, MartinW, 05 Jul 96
-================================
-1. Added enum handling.
-        e.g.
-        ENUM ExampleEnum { Elem1, Elem2}
-        STRUCT a { BYTE b;}
-        RESOURCE a c { b = ExampleEnum::Elem2;}
-This should set up b with the value 1.
-
-Version 3.05, MartinW, 30 May 96
-================================
-1.Deal with long (>42characters) resource names in output to header
-  file.
-2.Prevent assertion failure in case of missing comma after first item
-  in an array of struct's.
-
-Version 3.04, MartinW, 29 Apr 96
-================================
-Avoid using cin by reading from a specified file (-s<filename>). The 
-cin approach suffered from something to do with the source file being 
-left open even when the program ended. This was the case at least with 
-a test program built using C++ 1.51 and run under NT 3.51.
-e.g.    void main() { char a; cin << a; }
-        TestProgram < a.src
-        del a.src             <---- "file in use by another process".
-
-Version 3.03, MartinW, 18 Apr 96
-================================
-1.Handle syntax error with numbers more effectively so assert does not
-  fail.
-2.Accept 0 for double without warning.
-
-Version 3.02, MartinW, 11 Apr 96
-================================
-Corrected defect to do with line number in error message for text being
-converted to a number.
-
-Version 3.01, MartinW, 9 Apr 96
-===============================
-1.I added more error handling so that more proper error messages are
-  given.
-2.I altered the error message format so that it is suitable for VC++.
-  Brief seems to cope with this new format quite happily. VC++ didn't 
-  seem to like e.g. ".\t1.rss" at the start but "C:\rcomp\src\t1.rss" 
-  worked.
-3.The drive and directory for the file name specified with -i is used
-  to provide the full paths for all filenames given in error messages. 
-  If the -i file name is not a full path then the current directory and 
-  drive are used in combination with the partial path to create a full 
-  path.
-
-Version 3.00, MartinW, 19 Mar 96
-================================
-To use this resource compiler execute "mnt getrel". The egrs.bat file
-is an example of how the resource compiler may be run. The GNU
-preprocessor is used (t:\tools\gnucpp.exe) first and the output
-passed to rc3.exe. The fc4bat.exe file is used to avoid writing the
-header output file if it has in fact not changed.
-
-Details about this version
---------------------------
-This is a completely new version based on yacc and lex along with C++.
-
-Overview of system:
-        Source file (e.g.pic.rss) 
-                -> Preprocessing
-                -> Lexer
-                -> Parser
-                -> Data structures (using C++ classes)
-                -> Data file output (e.g. pic.rsg)
-                -> Header file output (e.g. pic.h)
-
-        The GNU C++ preprocessor was used. The output from this
-        includes directives giving line numbering following inclusion
-        of header files. The lexer uses this to store data which the 
-        parser then uses to output error messages in Brief format.
-    
-        The lexer and parser are generated by lex and yacc
-        respectively from rcomp.l and rcomp.y. These define the
-        tokens and the grammar for the resource script language.
-
-        Supporting C++ classes are compiled and linked along with the
-        output from lex and yacc.
-
-        The batch file rs.bat takes the file specified by the first
-        parameter and passes it to the GNU preprocessor. The output
-        is piped through to rcomp.exe. The names of the data output 
-        file and the header file are specified based on the name
-        given to rs.bat. The -i flag is used to give the original
-        name (as passed to the preprocessor) for error reporting.
-     
-        A program called fc4bat.exe is used to give an errorlevel if
-        the specified files do not match. This is used to avoid
-        changing the date on the header file if it has not changed.
-
-Issues for porting to other platforms:
-         1) atof has been used. The output of this is written to the
-            rsc file. The format must be that expected by the program
-            reading the rsc file rather than the format of the
-            machine used to generate the file.
-         2) The MKS versions of yacc and lex were used. These are PC
-            versions of the UNIX tools. The non-standard features
-            were avoided however only the PC versions have been used.
-         3) Stream handling has been used. Apparently there may be
-            differences in implementations of this extension to C++.
-
-
+version 8.4.001
+===============
+Released by Lorence Wang, 26/04/2010
+	1) DPDEF145375 RCOMP can not parse data passed to its STDIN correctly 
+
+version 8.3.001
+===============
+Released by Zheng Shen, 16/03/2010
+	1) DPDEF145001  RCOMP failed if uidcrc is not located in the same directory as it is
+
+version 8.3.000
+===============
+Released by Zheng Shen, 22/02/2010
+	1) DPDEF144562	Build Tools cannot be built in Linux
+
+version 8.2.008
+===============
+Released by Marvin Shi, 25/01/2010
+	1) DPDEF143586 Add -o2 optimization to rcomp 
+
+version 8.2.007
+===============
+Released by Marvin Shi, 15/01/2010
+	1) DPDEF143836 rcomp produces error messages which should be warning messages 
+
+Version 8.2.006
+===============
+Released by Zheng Shen, 10/12/2009
+	1) DPDEF143045 rcomp produces a warning 'Cannot convert "1.0" 
+
+Version 8.2.005
+===============
+Released by Jason Cui, 31/7/2009 (did not clear build number, should be done by next feature deliery)
+  1) SITK v1.4, GT0499, MS3.5.3, DS.1772 PREQ2471: RIT: Resource compiler (RComp) must support characters outside of the BMP 
+
+Version 8.1.005
+===============
+Released by KunalM, 06/03/2007
+
+	1) RCOMP ported to the TOOLS2 platform, under PREQ1182, MS3.6.2
+
+
+Version 8.00.002
+================
+Released by AndrewR, 3/3/2005
+
+	1) DEFECT FIX: DEF055559 - Problems building rcomp in VC6 IDE
+
+Version 8.00.001
+================
+Released by AndrewR, 7/2/2005
+
+	1) DEFECT FIX: DEF054981 - tools_rcomp component is updated every day
+
+Version 8.00.000
+================
+Released by AndrewR, 4/2/2005
+	1) Fixed DEF054617 - rcomp doesn't build from source
+	2) Fixed INC049059 - incorrect line number for error reported by rcomp when building \s60\gs
+
+Version 7.01.009
+============
+Released by KuldipN, 22/07/2004
+	Add UID2 and UID3 keywords to RCOMP 
+	(CR HBRT-5YJJ9C Specifying UID2 and UID3 in RSS files)
+
+Version 7.01.008
+============
+Released by DuskoJ, 10/07/2003
+	1) Fixed DEF022269  Resource value is read incorrectly
+	2) Fixed INC036025  RCOMP chinese resource complation problem 
+
+Version 7.01.007
+============
+Released by Jon Chatten, 03/06/2003
+	1) Fixed "DEF025433 RComp core dumps on certain resource files"
+	2) Adjusted version number in release.txt to match binary.
+
+	
+Version 7.06
+============
+Released by Dusko Jahora, 03/06/2003
+	1) Reverted fix for DEF022269
+
+
+Version 7.05
+============
+Released by Dusko Jahora, 02/06/2003
+1)	DuskoJ
+	1)	Changes to RCOMP whihch are part of CR PCHY-5L3RDW 
+		"Typhoon must support 16bpp colour".
+	2)	Fixed DEF022269  Resource value is read incorrectly
+		(this fix was not submitted on 09/05/2003 because of 
+		 an integration error)
+
+
+Version 7.04
+============
+
+Released by Dusko Jahora, 09/05/2003
+1)	DuskoJ
+	1)	Fixed DEF022269  Resource value is read incorrectly
+
+
+Version 7.03
+============
+
+Released by Dusko Jahora, April 2003
+	1)	Fixed defect DEF017151 "RCOMP should be upgraded to support files with UTF8 
+		signature".
+
+
+1)	William
+	1)	Fixed defect ROS-58VCX8 "RCOMP doesn't allow + in filenames" by removing
+		the unnecessary validation of the filenames left by the C++ preprocessor.
+	2)	Fixed defect RED-5ACK5F "Resource compiler creates nothing for empty and bad 
+		counted byte arrays"
+2)	Dusko
+	1)	Fixed defect ROS-5B7MHW "RCOMP fails to handle boundary values correctly
+		for WORD data type"
+	
+NB. The handling of LABEL suggests that it would be pretty easy to add rls_string support
+into the compiler directly.
+
+Version 7.01
+============
+
+Released by Jon Chatten, February 2002
+
+Fixed defect ROS-56PHFA - Replaced system() call to uidcrc.exe with a call to _spawnlp -
+this addresses the IDE-hanging issue when epocrc.pl is integrated as a plug-in with the CW
+IDE on Windows 98.
+
+Removed attempt to absolutely identify uidcrc.exe - this is no longer required as the CW RCOMP/EPOCRC.PL
+plug-in now sets the PATH before invoking the command line tools.
+
+
+1)	William
+	1)	Fixed defect ROS-55KJ4U "RCOMP fails if epoc32\tools not on the path"
+
+
+Version 7.00
+============
+
+Released by David Batchelor (November/December 2001)
+
+The format of resource files changes as follows:
+
+- The initial 2 two-byte values are removed as they are completely redundant. (All the information
+  they provide can be derived from the last 2 bytes of the file combined with the size of the
+  file.)
+- Resource files now have a standard 4-byte checked-UID field at the start. The first UID is
+  0x101f4a6b, to indicate that the resource file potentially contains Unicode compressed according
+  to the "Standard Compression Scheme for Unicode" (see
+  http://www.unicode.org/unicode/reports/tr6/tr6-3.2.html). The second and third UIDs may be
+  specified on the command-line by using an optional parameter of the form
+  "-{0x12345678,0x9abcdef0}" (without the quotation marks). If "*" is used as the last UID, e.g.
+  "-{0x600ddea1,*}", then the resource file's "offset" (i.e. the 20-bit number generated from the
+  resource file's "NAME") is used as the last UID.
+- The UID field is immediately followed by a bit-array, one bit for each resource in the resource
+  file, where each bit indicates whether the corresponding resource contains compressed Unicode.
+  The bit field is padded up to a multiple of 8-bits (if necessary) with zero bits.
+- Each resource which contains compressed Unicode consists of a series of "runs" preceded by a 1
+  or 2-byte run-length (1 byte if the run is <128 bytes, else 2 bytes). The run-length value does
+  not include itself in the byte count that it holds. The first run, the third run, the fifth run
+  etc contain compressed Unicode. The second run, the fourth run, the sixth run etc contain other
+  stuff. As the protocol defines that the first run is compressed Unicode, this run may obviously
+  be of zero length - no subsequent run in that resource may be of zero length.
+- Rcomp only uses compressed Unicode for text fields if it yields any benefit (i.e. only if it
+  actually makes the output file smaller).
+- The changes are completely transparent for code that reads resources.
+
+
+Version 6.03
+============
+
+Released by William Roberts, 30-Jul-2001
+
+Fix defect EXT-4YSCUV "Resource compiler corrupts long strings"
+Handle very long C++ comments, which previously caused a "token buffer overflow" message from the
+lexical analyser. Avoid overruning the buffer for literals by using a CHECK_APPEND() macro which
+discards characters rather than run off the end, giving errors like
+
+<empty>(5) : string too long - 1 ignored
+<empty>(5) : string too long - 2 ignored
+
+Avoid overflowing the Value array in string expressions by checking the new length before
+agreeing to concatenate the strings. Ultimately it would be best to replace Value[] with 
+a char* which has been created with strdup() and can therefore be realloc'd to grow the string.
+
+Fix defect ARG-4TZF7J "RCOMP needs warning waivers registered with SI"
+Removed all warnings in tools rel build - some tools deb warnings will appear in rcomp.cpp 
+because of problems in the mks\etc\yyparse.cpp file, but I didn't want to hide related problems 
+in any new Symbian code we might add. 
+
+Improve the -v output to show the primitive types being emitted, and to dump the IndexTable as hex
+offsets followed by the resource name, e.g.
+
+    IndexTable
+    IndexTableItem 4	<empty>
+    IndexTableItem c	r_eikserv_panic_dialog
+    IndexTableItem b8	r_eiksrv_oom_event_top
+    IndexTableItem e4	r_eiksrv_oom_event_bot
+    IndexTableItem 144	r_eikserv_replace_main_batteries
+    IndexTableItem 170	r_eikserv_replace_backup_battery
+
+and 
+
+    ResourceHeader          r_eiksrv_tasklist_dialog
+    ++ResourceItemArray
+    SimpleResourceItem [Long flags]  9
+    SimpleResourceItem [LText16 title]  
+    SimpleResourceItem [LLink pages]  
+    SimpleResourceItem [LLink buttons]  
+    StructArrayResourceItem (Level 0) [items]  
+    ArrayLength [Word] 1
+    ----------------------
+    --ResourceItemArrayArray
+    ++ResourceItemArray
+    SimpleResourceItem [Word type]  1001
+    SimpleResourceItem [LText16 prompt]  
+    SimpleResourceItem [Word id]  1
+    SimpleResourceItem [Long itemflags]  0
+    StructTypeResourceItem (Level 0) [control]  
+    ----------------------
+    ++ResourceItemArray
+    SimpleResourceItem [Byte version]  0
+    SimpleResourceItem [Word flags]  0
+    SimpleResourceItem [Word height]  8
+    SimpleResourceItem [Word width]  20
+    SimpleResourceItem [LLink array_id]  
+    ----------------------
+    SimpleResourceItem [LText16 trailer]  
+    ----------------------
+
+Together these changes should make it significantly easier to step through the binary image of a
+resource and work out which element has changed unexpectedly.
+
+
+Version 6.02
+============
+
+Released by William Roberts, 15-Feb-2001
+
+Fix awful defect in version 6.01, which caused negative integer constants to be written to the file as -1.
+
+When testing with LOCKIT, RCOMP developer should be aware that the version of RCOMP.EXE used by lockit 
+is kept in \lockit\tools, not \epoc32\tools.
+
+
+Version 6.01
+============
+
+Released by William Roberts, 14-Feb-2001
+
+Redefined character literals ('x') to be effectively strings so that they can contain UTF8 encodings
+for interesting characters. This is handled using the same lexical rules as string literals, so
+the limited escape processing is also supported. The introduction of strings surrounded by single-quotes
+means that the sequence \' is now accepted as standing for '.
+
+If the character literal string decodes to more than one Unicode character, a warning is given and the
+rest of the string is ignored. The prevailing source character encoding is used, but there is no support
+narrow character literals in the difficult part of the CP1252 range: the interpretation of the literal
+is always "the Unicode encoding for the first character of the string". For example, even in a 
+CP1252 source file building a narrow resource, a literal containing the Euro symbol will be interpreted 
+as 0x20ac, not 0x80.
+
+LTEXT strings are now checked to ensure that they are less than 256 characters in length.
+
+The NAME statement can now take a string literal or a label, instead of the previous behaviour where the
+lexical analyser handled the following word differently. Any RSS file which used a keyword as a name,
+for example WORD.RSS, will need to be changed to specify the name as a literal: the preferred syntax
+is to use string literals in all cases.
+
+
+Version 3.18
+============
+
+Released by William Roberts, 05-Aug-1999.
+
+Requires BAFL 092.
+
+Changed the handling of Unicode string resources (TEXT16 and LTEXT16) to ensure that the
+Unicode characters are aligned to a multiple of 2 bytes when the resource is used.
+ 
+Resources are never used in place: instead RResourceFile::AllocReadLC creates an HBufC8 to hold a
+copy of the data. This means that rather than aligning from the start of the entire resource file,
+instead we have to align to the start of the individual resource, because the data in an HBufC8 
+always starts at an aligned address.
+
+Added RCBinaryStream::Align(int nBytes) and RCBinaryStream::SetAlignBase() to support the 
+generation of the necessary padding, and call them from suitable places in RCOSTRM.CPP.
+
+Also added code to add 1 to the offset of the end of the table of resource offsets: this is tested
+in BAFL as a marker to indicate the new format of resource file.
+
+Added a /verbose flag to core.cmd which invokes RCOMP with -v.
+
+Added #pragma warning( disable : 4710 ) in a couple of places to cut down on the number of
+unnecessary and useless "warnings".
+
+Regenerated the test resources.
+
+
+Version 3.17
+============
+
+Released by William Roberts, 25-Jun-1999.
+
+Fixed defect where embedded Unicode characters could cause BUF<x> strings to fail a length check.
+Updated test code include a check for this.
+
+Added more stuff for the Engineering Automated Build.
+
+
+Version 3.16
+============
+
+Released by Pute, 9-Jun-1999.  Based on work by William Roberts,
+26-May-1999 described in the "William's notes" section below.
+
+
+Character sets
+--------------
+
+We are moving towards a specific principle of character sets for RCOMP.
+
+Previously, the character set used by RCOMP was not well defined, later we
+added the CHARACTER_SET identifier.  This implied that any specific values
+inserted into strings in <n> format would be in the character set of the
+source.
+
+In this design RCOMP will have trouble handling multibyte encodings like
+Shift-JIS because the tools it relies upon, LEX and YACC, are based on
+single-octet encodings only. Sometimes a multibyte encoding will produce
+artefacts that appear to be syntax elements such as double quote marks.
+
+In future the intention is that RCOMP uses UTF-8 encoding internally,
+provided by a pre-processing phase.  This release is an interim step.
+
+In this release, when explicit values are inserted in text strings, they
+are interpreted as Unicode values and converted to UTF-8.  To retain
+backward compatibility with CP1252 source, values 80-9F are also permitted
+and these will be mapped to Unicode as before when the source character set
+is defined to be CP1252.  The use of explicit values 80-9F is deprecated
+however.
+
+The default input character set is CP1252.  Previously, the default
+character set was "unknown".  This possibility is no-longer supported.
+This was also contrary to documentation.
+
+
+Details:
+
+Test command procedure updated and enhanced.
+
+Test comparison files TUTEXT8.RSC and TUTEXT16.RSC have been updated to
+allow for the introduction of the extra characters in the CP1252 character
+set.  (128 used to be "not used" and is now the euro sign)
+
+Note that compilation warning messages about deprecated characters will
+appear durng this test.
+
+A new test source file TWTEXT.RSS and associated reference binaries have
+been added to the test suite to demonstrate explicit use of values >255.
+
+
+
+
+William's notes (edited by Pute):
+---------------
+
+Defined a new "character set" called UTF8, which supports the UTF8
+encoding of Unicode strings. 
+This actually allows the whole resource source file to be entered as
+UTF8 if required.  However the default charset remains CP1252.
+
+Arranged to support embedded Unicode characters constructed using the
+<xxx> notation, to support the use of 0x07ED as the end-of-paragraph
+marker (see ETEXT 120). This exploits the UTF8 support by inserting the
+appropriate UTF8 sequence into the 8-bit data.
+
+The embedded Unicode characters are also supported in the CP1252
+character set, with internal use of 0x81 as an "escape" character
+indicating that the following bytes are a UTF8 encoded character. This
+allows existing CP1252 resource source files to be used with the new
+ETEXT.
+
+Added the Euro and the Z caron encodings to the cp1252_exceptions table.
+
+
+Only RCOMP.EXE has been rebuilt.  Judging from the timestamps, the other
+executables haven't been rebuilt for the last few releases.
+
+To build rcomp, first run ..\src\BLDEX, then MNT BLDREL
+
+Building is only possible from NT and makes use of lex and yacc from
+T:\mks - this should be updated to use the GNUPro tools which we use to
+build GCC, as the Cygnus toolchain is something we expect to have always
+available.
+
+
+
+Version 3.15
+============
+
+Released by SimonC, 01-Feb-1999
+
+Fixed defects
+	EDN484092 "RCOMP needs to be Symbianised"
+	EDN584421 "Need to rebuild RCOMP with boilerplated headers"
+
+Only RCOMP.EXE has been rebuilt.  Judging from the timestamps, the other executables
+haven't been rebuilt for the last few releases.
+
+To build rcomp, first run ..\src\BLDEX, then MNT BLDREL
+
+Building is only possible from the NT and makes use of executables on T: so this can't
+be rebuilt by licensees (which doesn't seem to have been a problem so far...)
+
+
+
+Version 3.14
+============
+
+Released by PNJ, 19-Mar-1997
+
+The CORE command and the test procedures rely on NT command extensions.
+
+
+Version 314 mods
+
+  1. In FILELINE.CPP, FileLineManager::ExtractFileName updated to add
+     filename information planted by the preprocessor. This is a rewrite of
+     the code that was removed in the previous release because it was
+     violating.
+  2. Test code now in a formalised framework accessed via MNT TEST. The
+     formalism isn't perfect because of the limitations imposed by the
+     legacy command language. See TEST.HTM in the TSRC directory for more
+     information. The test procedure relies on NT command extensions.
+  3. The CORE command procedure has been changed to allow preprocessor
+     symbols to be defined. See below.
+
+CORE syntax
+
+CORE filename [ object_directory [options] ]
+
+If options are being used the object directory parameter must be present,
+the default value is "." for the current directory.
+
+Options are:
+
+/UNICODE
+     Specifies that strings are emitted as Unicode in the resource binary.
+     Previously, this option was selected with "-u", which is the parameter
+     currently used by RCOMP itself.
+/DEFINE symbol [ symbol...]
+     Specifies one or more symbols to be defined for the preprocessor pass.
+     This must be the last option supplied because it is followed by an
+     arbitrary number of tokens and the command language is so primitive.
+
+
+
+
+
+
+
+
+Version 3.13
+============
+
+Released by PNJ, 13-Jan-1997
+
+Version number scheme is independent of product-specific E32 chain
+numbering.
+
+This is an interim release, to provide 16-bit character set functionality.
+Later releases are planned to provide other requested features.  Existing
+RSS files produce identical binaries to previous releases when compiled
+in the default non-Unicode mode.
+
+There are some serious defects in the source code which will take
+a long time to address properly, eg misuse of assert as a status check.
+
+1.  Minor changes to MNT and build settings.
+2.  Minor code changes to remove warnings.
+3.  Renamed STRING.CPP, .H to remove ambiguity with
+    standard header of the same name.
+4.  rcscan::yyerror function updated so that it actually
+    interprets formatted strings instead of ignoring the extra
+    parameters.
+5.  Fixed defect in String operator != which was doing the inverse
+    of what it is supposed to do!
+6.  Provide a qualifier for Unicode output.
+7.  Fix erroneous error message if source file not specified.
+8.  Fixed problem which caused run time fatal errors during
+    source context switching.
+9.  Introduce new tokens to differentiate between 8 and 16-bit
+    text strings.
+10. Introduce a CHARACTER_SET token to specify the source
+    character set.
+11. Introduce an extra test component directory.
+12. Introduce a command procedure wrapper for RCOMP (called CoRe)
+
+
+Language features
+-----------------
+
+CHARACTER_SET name
+
+Specifies the character set of the input file.  The implementation currently
+does not do much with this, but will do in the nexty release or 2.  Legal
+values for name are currently:
+
+ASCII, CP1252, CP850, ISOLatin1, ShiftJIS, Unicode
+
+Note that Unicode source text is not likely to be supported any time soon,
+largely because RCOMP relies on LEX and YACC which are not Unicode-aware.
+
+The default setting in this implementation is CP1252.
+
+
+TEXT, LTEXT and BUF
+
+Now have explicit 8 and 16-bit variants, eg TEXT8, BUF16.  The unadorned
+variants are internally converted to the 8 or 16-bit equivalents depending
+on the presence of the -u (for unicode) command line qualifier.
+
+The prefixed counter for an LTEXT16 is still an 8-bit field.
+
+The zero terminator for a TEXT16 is a 16-bit field.
+
+For text fields, it is recommended that you continue to use the unadorned
+keywords. For binary data, you should use the explicit 8-bit keywords. This
+is likely to apply most commonly to the BUF (BUF8) keyword.
+
+
+
+
+
+Version 0.03.12
+===============
+
+1) Reduced verbosity.
+2) Released a version compatible with NT4.
+
+Version 0.03.11
+===============
+
+1) PVCS'ed RCOMP and generally tidied it up.
+2) Fixed empty BUF crash.
+3) Fixed extra trailing comma crash.
+4) Cleaned up the build warnings.
+5) Added ...BUF<n>... where n is an integer giving max length of BUF.
+6) The .exe is now called rcomp.exe.
+
+Version 3.06, MartinW, 05 Jul 96
+================================
+1. Added enum handling.
+        e.g.
+        ENUM ExampleEnum { Elem1, Elem2}
+        STRUCT a { BYTE b;}
+        RESOURCE a c { b = ExampleEnum::Elem2;}
+This should set up b with the value 1.
+
+Version 3.05, MartinW, 30 May 96
+================================
+1.Deal with long (>42characters) resource names in output to header
+  file.
+2.Prevent assertion failure in case of missing comma after first item
+  in an array of struct's.
+
+Version 3.04, MartinW, 29 Apr 96
+================================
+Avoid using cin by reading from a specified file (-s<filename>). The 
+cin approach suffered from something to do with the source file being 
+left open even when the program ended. This was the case at least with 
+a test program built using C++ 1.51 and run under NT 3.51.
+e.g.    void main() { char a; cin << a; }
+        TestProgram < a.src
+        del a.src             <---- "file in use by another process".
+
+Version 3.03, MartinW, 18 Apr 96
+================================
+1.Handle syntax error with numbers more effectively so assert does not
+  fail.
+2.Accept 0 for double without warning.
+
+Version 3.02, MartinW, 11 Apr 96
+================================
+Corrected defect to do with line number in error message for text being
+converted to a number.
+
+Version 3.01, MartinW, 9 Apr 96
+===============================
+1.I added more error handling so that more proper error messages are
+  given.
+2.I altered the error message format so that it is suitable for VC++.
+  Brief seems to cope with this new format quite happily. VC++ didn't 
+  seem to like e.g. ".\t1.rss" at the start but "C:\rcomp\src\t1.rss" 
+  worked.
+3.The drive and directory for the file name specified with -i is used
+  to provide the full paths for all filenames given in error messages. 
+  If the -i file name is not a full path then the current directory and 
+  drive are used in combination with the partial path to create a full 
+  path.
+
+Version 3.00, MartinW, 19 Mar 96
+================================
+To use this resource compiler execute "mnt getrel". The egrs.bat file
+is an example of how the resource compiler may be run. The GNU
+preprocessor is used (t:\tools\gnucpp.exe) first and the output
+passed to rc3.exe. The fc4bat.exe file is used to avoid writing the
+header output file if it has in fact not changed.
+
+Details about this version
+--------------------------
+This is a completely new version based on yacc and lex along with C++.
+
+Overview of system:
+        Source file (e.g.pic.rss) 
+                -> Preprocessing
+                -> Lexer
+                -> Parser
+                -> Data structures (using C++ classes)
+                -> Data file output (e.g. pic.rsg)
+                -> Header file output (e.g. pic.h)
+
+        The GNU C++ preprocessor was used. The output from this
+        includes directives giving line numbering following inclusion
+        of header files. The lexer uses this to store data which the 
+        parser then uses to output error messages in Brief format.
+    
+        The lexer and parser are generated by lex and yacc
+        respectively from rcomp.l and rcomp.y. These define the
+        tokens and the grammar for the resource script language.
+
+        Supporting C++ classes are compiled and linked along with the
+        output from lex and yacc.
+
+        The batch file rs.bat takes the file specified by the first
+        parameter and passes it to the GNU preprocessor. The output
+        is piped through to rcomp.exe. The names of the data output 
+        file and the header file are specified based on the name
+        given to rs.bat. The -i flag is used to give the original
+        name (as passed to the preprocessor) for error reporting.
+     
+        A program called fc4bat.exe is used to give an errorlevel if
+        the specified files do not match. This is used to avoid
+        changing the date on the header file if it has not changed.
+
+Issues for porting to other platforms:
+         1) atof has been used. The output of this is written to the
+            rsc file. The format must be that expected by the program
+            reading the rsc file rather than the format of the
+            machine used to generate the file.
+         2) The MKS versions of yacc and lex were used. These are PC
+            versions of the UNIX tools. The non-standard features
+            were avoided however only the PC versions have been used.
+         3) Stream handling has been used. Apparently there may be
+            differences in implementations of this extension to C++.
+
+