From 77f5f0afe87e10ebe35350c097d29e6ffcb9a372 Mon Sep 17 00:00:00 2001 From: George Rhoten Date: Tue, 3 Oct 2000 19:21:46 +0000 Subject: [PATCH] ICU-623 Updated the readme and fixed some formatting. X-SVN-Rev: 2556 --- icu4c/readme.html | 455 +++++++++++++++++++++++++++------------------- 1 file changed, 269 insertions(+), 186 deletions(-) diff --git a/icu4c/readme.html b/icu4c/readme.html index f4f3edde317..e0be4824f91 100644 --- a/icu4c/readme.html +++ b/icu4c/readme.html @@ -12,39 +12,42 @@ ReadMe for ICU + -

Late breaking news:

- - -
- -

ReadMe: International Components for Unicode

+

International Components for Unicode
+ ReadMe

Version: May 30, 2000
Copyright © 1997-2000 International Business Machines Corporation and others. All Rights Reserved.

-
+



-

Contents

+

Contents

-

Introduction

+

Late Breaking News And What Is New?

+ + +
+ +

Introduction

Today's software market is a global one in which it is desirable to develop and maintain one application that supports a wide variety of @@ -117,36 +130,35 @@ committed to fixing any bugs, and will also use your feedback to help plan future releases.

-

IMPORTANT: Please make sure you understand the Copyright and License information.

+

IMPORTANT: Please make sure you understand the Copyright and License information.


-

What the International Components for - Unicode Contain

+

What the International Components for Unicode + Contain

There are two ways to download the ICU releases,

-

Important Installation Notes

+

Important Installation Notes

-

Win32 Platform

+

Win32 Platform

If you are building on the Win32 platform, it is important that you understand a few build details:

@@ -577,23 +664,23 @@ drive:\installation-directory\icu).

@@ -606,7 +693,7 @@ seemingly get memory errors when you run the executable.

-

OS/390 Platform

+

OS/390 Platform

If you are building on the OS/390 UNIX System Services platform, it is important that you understand a few details:

@@ -690,7 +777,7 @@ correct. -

OS/400 Platform

+

OS/400 Platform

ICU Reference Release 1.4.0 contains partial support for the 400 platform, but additional work by the user is currently needed to get it @@ -742,8 +829,9 @@ the resolution of CRTCPPMOD used by the icc compiler

  • - Configure the Makefiles (see configure below) Note: Verify that - the mh-os400 configure file is used. + Configure the Makefiles (see configure below) + Note: Verify that the mh-os400 configure file is + used.
  • @@ -762,7 +850,7 @@ - Note on NULL pointer checks: + Note: About the NULL pointer checks
    In common/ucnv.c and common/unistr.c (search for U_MAX_PTR), there are @@ -770,10 +858,10 @@ works differently on the AS/400 architecture.
    -

    How To Build And Install ICU

    +

    How To Build And Install ICU

    -

    How To Build And Install On - Windows

    +

    How To Build And Install On + Windows

    Building International Components for Unicode requires:

    @@ -849,7 +937,7 @@
  • You are now able to develop applications with ICU.
  • -

    Note: To set the active configuration, two different +

    Note: To set the active configuration, two different possibilities are:

    -

    Future Enhancements

    +

    Future Enhancements

    -

    Programming Notes

    +

    Programming Notes

    -

    Reporting Errors

    +

    Reporting Errors

    In order for the code to be portable, only a subset of the C++ language that will compile correctly on even the oldest of C++ compilers @@ -1352,10 +1433,9 @@ en_US { one everywhere, and also allows us to more closely mimic the C++ exception protocol.

    -

    C Function and Data Type - Naming

    +

    C Function and Data Type Naming

    -

    Function names. If a function is identical (or almost +

    Function names. If a function is identical (or almost identical) to an ANSI or POSIX function, we give it the same name and (as much as possible) the same parameter list. A "u" is prepended onto the beginning of the name.

    @@ -1366,40 +1446,39 @@ en_US { "coll", etc.). This code is separated from the actual function name by an underscore, and the actual function name can be anything. For example,

    -
    +
     UChar* uloc_getLanguage(...);
     void uloc_setDefaultLocale(...);
     UChar* ures_getString(...);
    -
     
    -

    Struct and enum type names. For structs and enum types, the - rule is that their names begin with a capital "U." There is no underscore - for struct names.

    -
    +    

    Struct and enum type names. For structs and enum + types, the rule is that their names begin with a capital "U." There is no + underscore for struct names.

    +
     UResourceBundle;
     UCollator;
     UCollationResult;
    -
     
    -

    Enum value names. Enumeration values have names that begin with - "UXXX" where XXX stands for the name of the functional category.

    -
    +    

    Enum value names. Enumeration values have names that + begin with "UXXX" where XXX stands for the name of the functional + category.

    +
     UNUM_DECIMAL;
     UCOL_GREATER;
    -
     
    -

    Macro names. Macro names are in all caps, but there are - currently no other requirements.

    +

    Macro names. Macro names are in all caps, but there + are currently no other requirements.

    -

    Constant names. Many constant names (constants defined with - "const", not macros defined with "#define" that are used as constants) - begin with a lowercase k, but this isn’t universally enforced.

    +

    Constant names. Many constant names (constants + defined with "const", not macros defined with "#define" that are used as + constants) begin with a lowercase k, but this isn’t universally + enforced.

    -

    Preflighting and Overflow - Handling

    +

    Preflighting and Overflow + Handling

    In ICU's C APIs, the user needs to adhere to the following principles for consistency across all functional categories:

    @@ -1428,11 +1507,11 @@ UCOL_GREATER; this:

      -
    1. When using the "preflighting" option: you need to pass the - function a NULL pointer for the buffer pointer, and the - function returns the actual size of the result. You can then choose to - allocate a buffer of the correct size and re-run the operation if you - would like to.
    2. +
    3. When using the "preflighting" option: you need to + pass the function a NULL pointer for the buffer pointer, + and the function returns the actual size of the result. You can then + choose to allocate a buffer of the correct size and re-run the + operation if you would like to.
    4. After allocating a buffer of some reasonable size on the stack and passes that to the function, if the result can fit in that buffer, @@ -1449,20 +1528,21 @@ UCOL_GREATER;

      The following three options demonstrates how to use the preflighting interface,

      -
      -
      +    
      +
       /**
        * @param result is a pointer to where the actual result will be.
        * @param maxResultSize is the number of characters the
        *                      buffer pointed to be result has room for.
      - * @return The actual length of the result (counting the terminating null)
      + * @return The actual length of the result including the
      + *         terminating <code>NULL</code>.
        */
      -int32_t doSomething( /* input params,*/
      +int32_t doSomething( /* input parameters */,
                           UChar* result,
                           int32_t maxResultSize,
                           UErrorCode* err);
       
      -
      +

      In this sample, if the actual result doesn’t fit in the space available in maxResultSize, this function returns the amount @@ -1483,28 +1563,31 @@ int32_t doSomething( /* input params,*/ conditions will overwrite the "buffer overflow" error, e.g. MISSING_RESOURCE_ERROR etc..

      -

      Arrays as return types

      +

      Arrays as return types

      Returning an array of strings is fairly easy in C++, but very hard in C. Instead of returning the array pointer directly, we opted for an iterative interface instead: split the function into two functions. One returns the number of elements in the array, and the other one returns a single specified element from the array.

      -
      -
      -int32_t countArrayItems(/* params */);
      -int32_t getArrayElement(int32_t elementIndex, /* other params */,
      +    
      +
      +int32_t countArrayItems(/* parameters */);
      +int32_t getArrayElement(int32_t elementIndex,
      +
      +                        /* other parameters */,
      +
                               UChar* result,
                               int32_t maxResultSize,
                               UErrorCode* err);
       
      -
      +

      In this case, iterating across all the elements in the array would amount to a call to the count() function followed by multiple calls to the getElement() function.

      -
      -
      +    
      +
       UChar element[50];
       
       for (i = 0; i < countArrayItems(...); i++) {
      @@ -1512,7 +1595,7 @@ for (i = 0; i < countArrayItems(...); i++) {
           /* do something with element */
       }
       
      -
      +

      In the case of the resource bundle ures_XXXX functions returning 2-dimensional arrays, the getElement() function takes both x @@ -1520,29 +1603,31 @@ for (i = 0; i < countArrayItems(...); i++) { returns the number of arrays (x axis). Since the size of each array element in the resource 2-D arrays should always be the same, this provides an easy-to-use C interface.

      -
      -
      +    
      +
       void countArrayItems(int32_t* rows,
                            int32_t* columns,
      -                     /* other params */);
      +                     /* other parameters */);
       
       int32_t get2dArrayElement(int32_t rowIndex,
                                 int32_t colIndex,
      -                          /* other params */,
      +
      +                          /* other parameters */,
      +
                                 UChar* result,
                                 int32_t maxResultSize,
                                 UErrorCode* err);
       
      -
      +
      -

      Important change of error codes from - streaming conversion functions

      +

      Important Change Of Error Codes From + Streaming Conversion Functions

      We have decided to make a semantic change to the conversion API which affects applications using ICU that are migrated to use ICU version 1.6 compared to earlier ICU versions:
      The error code that is set from streaming conversion like

      -
      +
       ucnv_fromUnicode() - ucnv_toUnicode()
       ucnv_fromUChars()  - ucnv_toUChars()
       scsu_compress()    - scsu_decompress()
      @@ -1570,8 +1655,7 @@ scsu_compress()    - scsu_decompress()
           mailing list. Please see the list archive for the discussion.

      -

      Where to Find More - Information

      +

      Where To Find More Information

      http://oss.software.ibm.com/icu/ @@ -1581,9 +1665,9 @@ scsu_compress() - scsu_decompress()

      docs/udata.html is a raw draft of ICU data handling.

      -

      html/aindex.html is an +

      icuhtml/aindex.html is an alphabetical index to detailed API documentation.
      - html/HIER.html is a hierarchical + icuhtml/HIER.html is a hierarchical index to detailed API documentation.

      docs/collate.html is an overview to @@ -1597,21 +1681,20 @@ scsu_compress() - scsu_decompress() is a pointer to information on how to make applications global.

      -

      Submitting Comments, Requesting - Features and Reporting Bugs

      +

      Submitting Comments, Requesting Features + and Reporting Bugs

      To submit comments, request features and report bugs, please contact us. While we are not able to respond individually to each comment, we do review all comments. Send Internet email to icu@oss.software.ibm.com.

      -
      +

      Copyright © 1997-2000 International Business Machines Corporation and others. All Rights Reserved.
      IBM Center for Emerging Technologies Silicon Valley,
      10275 N De Anza Blvd., Cupertino, CA 95014
      All rights reserved.

      -