SILENT KILLERPanel

Current Path: > > opt > alt > libicu65 > usr > > include > > unicode


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //opt/alt/libicu65/usr//include//unicode

NameTypeSizeLast ModifiedActions
alphaindex.h File 27118 bytes February 08 2022 16:22:58.
appendable.h File 8694 bytes February 08 2022 16:22:58.
basictz.h File 9365 bytes February 08 2022 16:22:58.
brkiter.h File 28464 bytes February 08 2022 16:22:58.
bytestream.h File 9829 bytes February 08 2022 16:22:58.
bytestrie.h File 21266 bytes February 08 2022 16:22:58.
bytestriebuilder.h File 7248 bytes February 08 2022 16:22:58.
calendar.h File 108278 bytes February 08 2022 16:22:58.
caniter.h File 7611 bytes February 08 2022 16:22:58.
casemap.h File 25933 bytes February 08 2022 16:22:58.
char16ptr.h File 7393 bytes February 08 2022 16:22:58.
chariter.h File 24632 bytes February 08 2022 16:22:58.
choicfmt.h File 24482 bytes February 08 2022 16:22:58.
coleitr.h File 14094 bytes February 08 2022 16:22:58.
coll.h File 57581 bytes February 08 2022 16:22:58.
compactdecimalformat.h File 7047 bytes February 08 2022 16:22:58.
curramt.h File 3851 bytes February 08 2022 16:22:58.
currpinf.h File 7473 bytes February 08 2022 16:22:58.
currunit.h File 4149 bytes February 08 2022 16:22:58.
datefmt.h File 41641 bytes February 08 2022 16:22:58.
dbbi.h File 1223 bytes February 08 2022 16:22:58.
dcfmtsym.h File 20611 bytes February 08 2022 16:22:59.
decimfmt.h File 89480 bytes February 08 2022 16:22:59.
docmain.h File 7142 bytes February 08 2022 16:22:58.
dtfmtsym.h File 38609 bytes February 08 2022 16:22:59.
dtintrv.h File 3930 bytes February 08 2022 16:22:58.
dtitvfmt.h File 47745 bytes February 08 2022 16:22:59.
dtitvinf.h File 18959 bytes February 08 2022 16:22:59.
dtptngen.h File 25684 bytes February 08 2022 16:22:59.
dtrule.h File 8888 bytes February 08 2022 16:22:59.
edits.h File 21237 bytes February 08 2022 16:22:58.
enumset.h File 2130 bytes February 08 2022 16:22:58.
errorcode.h File 4956 bytes February 08 2022 16:22:58.
fieldpos.h File 8899 bytes February 08 2022 16:22:59.
filteredbrk.h File 5501 bytes February 08 2022 16:22:58.
fmtable.h File 25007 bytes February 08 2022 16:22:59.
format.h File 12802 bytes February 08 2022 16:22:59.
formattedvalue.h File 10521 bytes February 08 2022 16:22:59.
fpositer.h File 3109 bytes February 08 2022 16:22:59.
gender.h File 3408 bytes February 08 2022 16:22:59.
gregocal.h File 32472 bytes February 08 2022 16:22:59.
icudataver.h File 1051 bytes February 08 2022 16:22:58.
icuplug.h File 12166 bytes February 08 2022 16:22:58.
idna.h File 13000 bytes February 08 2022 16:22:58.
listformatter.h File 9701 bytes February 08 2022 16:22:59.
localebuilder.h File 11540 bytes February 08 2022 16:22:58.
localematcher.h File 23043 bytes February 08 2022 16:22:58.
localpointer.h File 20159 bytes February 08 2022 16:22:58.
locdspnm.h File 7292 bytes February 08 2022 16:22:58.
locid.h File 48536 bytes February 08 2022 16:22:58.
measfmt.h File 11603 bytes February 08 2022 16:22:59.
measunit.h File 95554 bytes February 08 2022 16:22:59.
measure.h File 4423 bytes February 08 2022 16:22:59.
messagepattern.h File 34521 bytes February 08 2022 16:22:58.
msgfmt.h File 45168 bytes February 08 2022 16:22:59.
normalizer2.h File 34851 bytes February 08 2022 16:22:58.
normlzr.h File 31682 bytes February 08 2022 16:22:58.
nounit.h File 2754 bytes February 08 2022 16:22:59.
numberformatter.h File 88383 bytes February 08 2022 16:22:59.
numberrangeformatter.h File 30865 bytes February 08 2022 16:22:59.
numfmt.h File 51001 bytes February 08 2022 16:22:59.
numsys.h File 7364 bytes February 08 2022 16:22:59.
parseerr.h File 3155 bytes February 08 2022 16:22:58.
parsepos.h File 5692 bytes February 08 2022 16:22:58.
platform.h File 28752 bytes February 08 2022 16:22:58.
plurfmt.h File 25800 bytes February 08 2022 16:22:59.
plurrule.h File 18835 bytes February 08 2022 16:22:59.
ptypes.h File 3577 bytes February 08 2022 16:22:58.
putil.h File 6487 bytes February 08 2022 16:22:58.
rbbi.h File 27218 bytes February 08 2022 16:22:58.
rbnf.h File 49899 bytes February 08 2022 16:22:59.
rbtz.h File 15979 bytes February 08 2022 16:22:59.
regex.h File 86382 bytes February 08 2022 16:22:59.
region.h File 9404 bytes February 08 2022 16:22:59.
reldatefmt.h File 23159 bytes February 08 2022 16:22:59.
rep.h File 9599 bytes February 08 2022 16:22:58.
resbund.h File 18503 bytes February 08 2022 16:22:58.
schriter.h File 6475 bytes February 08 2022 16:22:58.
scientificnumberformatter.h File 6553 bytes February 08 2022 16:22:59.
search.h File 22757 bytes February 08 2022 16:22:59.
selfmt.h File 14643 bytes February 08 2022 16:22:59.
simpleformatter.h File 12888 bytes February 08 2022 16:22:58.
simpletz.h File 46527 bytes February 08 2022 16:22:59.
smpdtfmt.h File 72670 bytes February 08 2022 16:22:59.
sortkey.h File 11444 bytes February 08 2022 16:22:59.
std_string.h File 1076 bytes February 08 2022 16:22:58.
strenum.h File 10158 bytes February 08 2022 16:22:58.
stringoptions.h File 5926 bytes February 08 2022 16:22:58.
stringpiece.h File 7556 bytes February 08 2022 16:22:58.
stringtriebuilder.h File 15698 bytes February 08 2022 16:22:58.
stsearch.h File 21810 bytes February 08 2022 16:22:59.
symtable.h File 4374 bytes February 08 2022 16:22:58.
tblcoll.h File 37489 bytes February 08 2022 16:22:59.
timezone.h File 42005 bytes February 08 2022 16:22:59.
tmunit.h File 3461 bytes February 08 2022 16:22:59.
tmutamt.h File 5015 bytes February 08 2022 16:22:59.
tmutfmt.h File 8042 bytes February 08 2022 16:22:59.
translit.h File 67400 bytes February 08 2022 16:22:59.
tzfmt.h File 43916 bytes February 08 2022 16:22:59.
tznames.h File 17252 bytes February 08 2022 16:22:59.
tzrule.h File 36215 bytes February 08 2022 16:22:59.
tztrans.h File 6271 bytes February 08 2022 16:22:59.
ubidi.h File 91711 bytes February 08 2022 16:22:58.
ubiditransform.h File 12950 bytes February 08 2022 16:22:58.
ubrk.h File 24547 bytes February 08 2022 16:22:58.
ucal.h File 58265 bytes February 08 2022 16:22:59.
ucasemap.h File 15546 bytes February 08 2022 16:22:58.
ucat.h File 5484 bytes February 08 2022 16:22:58.
uchar.h File 143936 bytes February 08 2022 16:22:58.
ucharstrie.h File 23120 bytes February 08 2022 16:22:58.
ucharstriebuilder.h File 7378 bytes February 08 2022 16:22:58.
uchriter.h File 13521 bytes February 08 2022 16:22:58.
uclean.h File 11474 bytes February 08 2022 16:22:58.
ucnv.h File 85085 bytes February 08 2022 16:22:58.
ucnv_cb.h File 6748 bytes February 08 2022 16:22:58.
ucnv_err.h File 21492 bytes February 08 2022 16:22:58.
ucnvsel.h File 6283 bytes February 08 2022 16:22:58.
ucol.h File 62939 bytes February 08 2022 16:22:59.
ucoleitr.h File 9684 bytes February 08 2022 16:22:59.
uconfig.h File 12356 bytes February 08 2022 16:22:58.
ucpmap.h File 5663 bytes February 08 2022 16:22:58.
ucptrie.h File 23002 bytes February 08 2022 16:22:58.
ucsdet.h File 15018 bytes February 08 2022 16:22:59.
ucurr.h File 16507 bytes February 08 2022 16:22:58.
udat.h File 62342 bytes February 08 2022 16:22:59.
udata.h File 15930 bytes February 08 2022 16:22:58.
udateintervalformat.h File 10272 bytes February 08 2022 16:22:59.
udatpg.h File 26639 bytes February 08 2022 16:22:59.
udisplaycontext.h File 6029 bytes February 08 2022 16:22:58.
uenum.h File 7970 bytes February 08 2022 16:22:58.
ufieldpositer.h File 4461 bytes February 08 2022 16:22:59.
uformattable.h File 11198 bytes February 08 2022 16:22:59.
uformattedvalue.h File 12431 bytes February 08 2022 16:22:59.
ugender.h File 2052 bytes February 08 2022 16:22:59.
uidna.h File 34169 bytes February 08 2022 16:22:58.
uiter.h File 23319 bytes February 08 2022 16:22:58.
uldnames.h File 10702 bytes February 08 2022 16:22:58.
ulistformatter.h File 9047 bytes February 08 2022 16:22:59.
uloc.h File 53805 bytes February 08 2022 16:22:58.
ulocdata.h File 11533 bytes February 08 2022 16:22:59.
umachine.h File 14877 bytes February 08 2022 16:22:58.
umisc.h File 1365 bytes February 08 2022 16:22:58.
umsg.h File 24812 bytes February 08 2022 16:22:59.
umutablecptrie.h File 8435 bytes February 08 2022 16:22:58.
unifilt.h File 4055 bytes February 08 2022 16:22:58.
unifunct.h File 4141 bytes February 08 2022 16:22:58.
unimatch.h File 6244 bytes February 08 2022 16:22:58.
unirepl.h File 3464 bytes February 08 2022 16:22:59.
uniset.h File 66459 bytes February 08 2022 16:22:58.
unistr.h File 174523 bytes February 08 2022 16:22:58.
unorm.h File 21015 bytes February 08 2022 16:22:58.
unorm2.h File 25254 bytes February 08 2022 16:22:58.
unum.h File 54906 bytes February 08 2022 16:22:59.
unumberformatter.h File 25972 bytes February 08 2022 16:22:59.
unumsys.h File 7387 bytes February 08 2022 16:22:59.
uobject.h File 10936 bytes February 08 2022 16:22:58.
upluralrules.h File 8068 bytes February 08 2022 16:22:59.
uregex.h File 73784 bytes February 08 2022 16:22:59.
uregion.h File 10073 bytes February 08 2022 16:22:59.
ureldatefmt.h File 17670 bytes February 08 2022 16:22:59.
urename.h File 134109 bytes February 08 2022 16:22:58.
urep.h File 5507 bytes February 08 2022 16:22:58.
ures.h File 37415 bytes February 08 2022 16:22:58.
uscript.h File 27510 bytes February 08 2022 16:22:58.
usearch.h File 39039 bytes February 08 2022 16:22:59.
uset.h File 40958 bytes February 08 2022 16:22:58.
usetiter.h File 9781 bytes February 08 2022 16:22:58.
ushape.h File 18432 bytes February 08 2022 16:22:58.
uspoof.h File 67480 bytes February 08 2022 16:22:59.
usprep.h File 8331 bytes February 08 2022 16:22:58.
ustdio.h File 39469 bytes February 08 2022 16:22:59.
ustream.h File 1934 bytes February 08 2022 16:22:59.
ustring.h File 74211 bytes February 08 2022 16:22:58.
ustringtrie.h File 3224 bytes February 08 2022 16:22:58.
utext.h File 59527 bytes February 08 2022 16:22:58.
utf.h File 8046 bytes February 08 2022 16:22:58.
utf16.h File 23878 bytes February 08 2022 16:22:58.
utf32.h File 763 bytes February 08 2022 16:22:58.
utf8.h File 31700 bytes February 08 2022 16:22:58.
utf_old.h File 46929 bytes February 08 2022 16:22:58.
utmscale.h File 14113 bytes February 08 2022 16:22:59.
utrace.h File 16112 bytes February 08 2022 16:22:58.
utrans.h File 26130 bytes February 08 2022 16:22:59.
utypes.h File 31481 bytes February 08 2022 16:22:58.
uvernum.h File 6832 bytes February 08 2022 16:22:58.
uversion.h File 6145 bytes February 08 2022 16:22:58.
vtzone.h File 20784 bytes February 08 2022 16:22:59.

Reading File: //opt/alt/libicu65/usr//include//unicode/ucnv_err.h

// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
**********************************************************************
*   Copyright (C) 1999-2009, International Business Machines
*   Corporation and others.  All Rights Reserved.
**********************************************************************
 *
 *
 *   ucnv_err.h:
 */

/**
 * \file
 * \brief C UConverter predefined error callbacks
 *
 *  <h2>Error Behaviour Functions</h2>
 *  Defines some error behaviour functions called by ucnv_{from,to}Unicode
 *  These are provided as part of ICU and many are stable, but they
 *  can also be considered only as an example of what can be done with
 *  callbacks.  You may of course write your own.
 *
 *  If you want to write your own, you may also find the functions from
 *  ucnv_cb.h useful when writing your own callbacks.
 *
 *  These functions, although public, should NEVER be called directly.
 *  They should be used as parameters to the ucnv_setFromUCallback
 *  and ucnv_setToUCallback functions, to set the behaviour of a converter
 *  when it encounters ILLEGAL/UNMAPPED/INVALID sequences.
 *
 *  usage example:  'STOP' doesn't need any context, but newContext
 *    could be set to something other than 'NULL' if needed. The available
 *    contexts in this header can modify the default behavior of the callback.
 *
 *  \code
 *  UErrorCode err = U_ZERO_ERROR;
 *  UConverter *myConverter = ucnv_open("ibm-949", &err);
 *  const void *oldContext;
 *  UConverterFromUCallback oldAction;
 *
 *
 *  if (U_SUCCESS(err))
 *  {
 *      ucnv_setFromUCallBack(myConverter,
 *                       UCNV_FROM_U_CALLBACK_STOP,
 *                       NULL,
 *                       &oldAction,
 *                       &oldContext,
 *                       &status);
 *  }
 *  \endcode
 *
 *  The code above tells "myConverter" to stop when it encounters an
 *  ILLEGAL/TRUNCATED/INVALID sequences when it is used to convert from
 *  Unicode -> Codepage. The behavior from Codepage to Unicode is not changed,
 *  and ucnv_setToUCallBack would need to be called in order to change
 *  that behavior too.
 *
 *  Here is an example with a context:
 *
 *  \code
 *  UErrorCode err = U_ZERO_ERROR;
 *  UConverter *myConverter = ucnv_open("ibm-949", &err);
 *  const void *oldContext;
 *  UConverterFromUCallback oldAction;
 *
 *
 *  if (U_SUCCESS(err))
 *  {
 *      ucnv_setToUCallBack(myConverter,
 *                       UCNV_TO_U_CALLBACK_SUBSTITUTE,
 *                       UCNV_SUB_STOP_ON_ILLEGAL,
 *                       &oldAction,
 *                       &oldContext,
 *                       &status);
 *  }
 *  \endcode
 *
 *  The code above tells "myConverter" to stop when it encounters an
 *  ILLEGAL/TRUNCATED/INVALID sequences when it is used to convert from
 *  Codepage -> Unicode. Any unmapped and legal characters will be
 *  substituted to be the default substitution character.
 */

#ifndef UCNV_ERR_H
#define UCNV_ERR_H

#include "unicode/utypes.h"

#if !UCONFIG_NO_CONVERSION

/** Forward declaring the UConverter structure. @stable ICU 2.0 */
struct UConverter;

/** @stable ICU 2.0 */
typedef struct UConverter UConverter;

/**
 * FROM_U, TO_U context options for sub callback
 * @stable ICU 2.0
 */
#define UCNV_SUB_STOP_ON_ILLEGAL "i"

/**
 * FROM_U, TO_U context options for skip callback
 * @stable ICU 2.0
 */
#define UCNV_SKIP_STOP_ON_ILLEGAL "i"

/**
 * FROM_U_CALLBACK_ESCAPE context option to escape the code unit according to ICU (%UXXXX) 
 * @stable ICU 2.0
 */
#define UCNV_ESCAPE_ICU       NULL
/**
 * FROM_U_CALLBACK_ESCAPE context option to escape the code unit according to JAVA (\\uXXXX)
 * @stable ICU 2.0
 */
#define UCNV_ESCAPE_JAVA      "J"
/**
 * FROM_U_CALLBACK_ESCAPE context option to escape the code unit according to C (\\uXXXX \\UXXXXXXXX)
 * TO_U_CALLBACK_ESCAPE option to escape the character value according to C (\\xXXXX)
 * @stable ICU 2.0
 */
#define UCNV_ESCAPE_C         "C"
/**
 * FROM_U_CALLBACK_ESCAPE context option to escape the code unit according to XML Decimal escape \htmlonly(&amp;#DDDD;)\endhtmlonly
 * TO_U_CALLBACK_ESCAPE context option to escape the character value according to XML Decimal escape \htmlonly(&amp;#DDDD;)\endhtmlonly
 * @stable ICU 2.0
 */
#define UCNV_ESCAPE_XML_DEC   "D"
/**
 * FROM_U_CALLBACK_ESCAPE context option to escape the code unit according to XML Hex escape \htmlonly(&amp;#xXXXX;)\endhtmlonly
 * TO_U_CALLBACK_ESCAPE context option to escape the character value according to XML Hex escape \htmlonly(&amp;#xXXXX;)\endhtmlonly
 * @stable ICU 2.0
 */
#define UCNV_ESCAPE_XML_HEX   "X"
/**
 * FROM_U_CALLBACK_ESCAPE context option to escape the code unit according to Unicode (U+XXXXX)
 * @stable ICU 2.0
 */
#define UCNV_ESCAPE_UNICODE   "U"

/**
 * FROM_U_CALLBACK_ESCAPE context option to escape the code unit according to CSS2 conventions (\\HH..H<space>, that is,
 * a backslash, 1..6 hex digits, and a space)
 * @stable ICU 4.0
 */
#define UCNV_ESCAPE_CSS2   "S"

/** 
 * The process condition code to be used with the callbacks.  
 * Codes which are greater than UCNV_IRREGULAR should be 
 * passed on to any chained callbacks.
 * @stable ICU 2.0
 */
typedef enum {
    UCNV_UNASSIGNED = 0,  /**< The code point is unassigned.
                             The error code U_INVALID_CHAR_FOUND will be set. */
    UCNV_ILLEGAL = 1,     /**< The code point is illegal. For example, 
                             \\x81\\x2E is illegal in SJIS because \\x2E
                             is not a valid trail byte for the \\x81 
                             lead byte.
                             Also, starting with Unicode 3.0.1, non-shortest byte sequences
                             in UTF-8 (like \\xC1\\xA1 instead of \\x61 for U+0061)
                             are also illegal, not just irregular.
                             The error code U_ILLEGAL_CHAR_FOUND will be set. */
    UCNV_IRREGULAR = 2,   /**< The codepoint is not a regular sequence in 
                             the encoding. For example, \\xED\\xA0\\x80..\\xED\\xBF\\xBF
                             are irregular UTF-8 byte sequences for single surrogate
                             code points.
                             The error code U_INVALID_CHAR_FOUND will be set. */
    UCNV_RESET = 3,       /**< The callback is called with this reason when a
                             'reset' has occurred. Callback should reset all
                             state. */
    UCNV_CLOSE = 4,        /**< Called when the converter is closed. The
                             callback should release any allocated memory.*/
    UCNV_CLONE = 5         /**< Called when ucnv_safeClone() is called on the
                              converter. the pointer available as the
                              'context' is an alias to the original converters'
                              context pointer. If the context must be owned
                              by the new converter, the callback must clone 
                              the data and call ucnv_setFromUCallback 
                              (or setToUCallback) with the correct pointer.
                              @stable ICU 2.2
                           */
} UConverterCallbackReason;


/**
 * The structure for the fromUnicode callback function parameter.
 * @stable ICU 2.0
 */
typedef struct {
    uint16_t size;              /**< The size of this struct. @stable ICU 2.0 */
    UBool flush;                /**< The internal state of converter will be reset and data flushed if set to TRUE. @stable ICU 2.0    */
    UConverter *converter;      /**< Pointer to the converter that is opened and to which this struct is passed as an argument. @stable ICU 2.0  */
    const UChar *source;        /**< Pointer to the source source buffer. @stable ICU 2.0    */
    const UChar *sourceLimit;   /**< Pointer to the limit (end + 1) of source buffer. @stable ICU 2.0    */
    char *target;               /**< Pointer to the target buffer. @stable ICU 2.0    */
    const char *targetLimit;    /**< Pointer to the limit (end + 1) of target buffer. @stable ICU 2.0     */
    int32_t *offsets;           /**< Pointer to the buffer that receives the offsets. *offset = blah ; offset++;. @stable ICU 2.0  */
} UConverterFromUnicodeArgs;


/**
 * The structure for the toUnicode callback function parameter.
 * @stable ICU 2.0
 */
typedef struct {
    uint16_t size;              /**< The size of this struct   @stable ICU 2.0 */
    UBool flush;                /**< The internal state of converter will be reset and data flushed if set to TRUE. @stable ICU 2.0   */
    UConverter *converter;      /**< Pointer to the converter that is opened and to which this struct is passed as an argument. @stable ICU 2.0 */
    const char *source;         /**< Pointer to the source source buffer. @stable ICU 2.0    */
    const char *sourceLimit;    /**< Pointer to the limit (end + 1) of source buffer. @stable ICU 2.0    */
    UChar *target;              /**< Pointer to the target buffer. @stable ICU 2.0    */
    const UChar *targetLimit;   /**< Pointer to the limit (end + 1) of target buffer. @stable ICU 2.0     */
    int32_t *offsets;           /**< Pointer to the buffer that receives the offsets. *offset = blah ; offset++;. @stable ICU 2.0  */
} UConverterToUnicodeArgs;


/**
 * DO NOT CALL THIS FUNCTION DIRECTLY!
 * This From Unicode callback STOPS at the ILLEGAL_SEQUENCE,
 * returning the error code back to the caller immediately.
 *
 * @param context Pointer to the callback's private data
 * @param fromUArgs Information about the conversion in progress
 * @param codeUnits Points to 'length' UChars of the concerned Unicode sequence
 * @param length Size (in bytes) of the concerned codepage sequence
 * @param codePoint Single UChar32 (UTF-32) containing the concerend Unicode codepoint.
 * @param reason Defines the reason the callback was invoked
 * @param err This should always be set to a failure status prior to calling.
 * @stable ICU 2.0
 */
U_STABLE void U_EXPORT2 UCNV_FROM_U_CALLBACK_STOP (
                  const void *context,
                  UConverterFromUnicodeArgs *fromUArgs,
                  const UChar* codeUnits,
                  int32_t length,
                  UChar32 codePoint,
                  UConverterCallbackReason reason,
                  UErrorCode * err);



/**
 * DO NOT CALL THIS FUNCTION DIRECTLY!
 * This To Unicode callback STOPS at the ILLEGAL_SEQUENCE,
 * returning the error code back to the caller immediately.
 *
 * @param context Pointer to the callback's private data
 * @param toUArgs Information about the conversion in progress
 * @param codeUnits Points to 'length' bytes of the concerned codepage sequence
 * @param length Size (in bytes) of the concerned codepage sequence
 * @param reason Defines the reason the callback was invoked
 * @param err This should always be set to a failure status prior to calling.
 * @stable ICU 2.0
 */
U_STABLE void U_EXPORT2 UCNV_TO_U_CALLBACK_STOP (
                  const void *context,
                  UConverterToUnicodeArgs *toUArgs,
                  const char* codeUnits,
                  int32_t length,
                  UConverterCallbackReason reason,
                  UErrorCode * err);

/**
 * DO NOT CALL THIS FUNCTION DIRECTLY!
 * This From Unicode callback skips any ILLEGAL_SEQUENCE, or
 * skips only UNASSINGED_SEQUENCE depending on the context parameter
 * simply ignoring those characters. 
 *
 * @param context  The function currently recognizes the callback options:
 *                 UCNV_SKIP_STOP_ON_ILLEGAL: STOPS at the ILLEGAL_SEQUENCE,
 *                      returning the error code back to the caller immediately.
 *                 NULL: Skips any ILLEGAL_SEQUENCE
 * @param fromUArgs Information about the conversion in progress
 * @param codeUnits Points to 'length' UChars of the concerned Unicode sequence
 * @param length Size (in bytes) of the concerned codepage sequence
 * @param codePoint Single UChar32 (UTF-32) containing the concerend Unicode codepoint.
 * @param reason Defines the reason the callback was invoked
 * @param err Return value will be set to success if the callback was handled,
 *      otherwise this value will be set to a failure status.
 * @stable ICU 2.0
 */
U_STABLE void U_EXPORT2 UCNV_FROM_U_CALLBACK_SKIP (
                  const void *context,
                  UConverterFromUnicodeArgs *fromUArgs,
                  const UChar* codeUnits,
                  int32_t length,
                  UChar32 codePoint,
                  UConverterCallbackReason reason,
                  UErrorCode * err);

/**
 * DO NOT CALL THIS FUNCTION DIRECTLY!
 * This From Unicode callback will Substitute the ILLEGAL SEQUENCE, or 
 * UNASSIGNED_SEQUENCE depending on context parameter, with the
 * current substitution string for the converter. This is the default
 * callback.
 *
 * @param context The function currently recognizes the callback options:
 *                 UCNV_SUB_STOP_ON_ILLEGAL: STOPS at the ILLEGAL_SEQUENCE,
 *                      returning the error code back to the caller immediately.
 *                 NULL: Substitutes any ILLEGAL_SEQUENCE
 * @param fromUArgs Information about the conversion in progress
 * @param codeUnits Points to 'length' UChars of the concerned Unicode sequence
 * @param length Size (in bytes) of the concerned codepage sequence
 * @param codePoint Single UChar32 (UTF-32) containing the concerend Unicode codepoint.
 * @param reason Defines the reason the callback was invoked
 * @param err Return value will be set to success if the callback was handled,
 *      otherwise this value will be set to a failure status.
 * @see ucnv_setSubstChars
 * @stable ICU 2.0
 */
U_STABLE void U_EXPORT2 UCNV_FROM_U_CALLBACK_SUBSTITUTE (
                  const void *context,
                  UConverterFromUnicodeArgs *fromUArgs,
                  const UChar* codeUnits,
                  int32_t length,
                  UChar32 codePoint,
                  UConverterCallbackReason reason,
                  UErrorCode * err);

/**
 * DO NOT CALL THIS FUNCTION DIRECTLY!
 * This From Unicode callback will Substitute the ILLEGAL SEQUENCE with the
 * hexadecimal representation of the illegal codepoints
 *
 * @param context The function currently recognizes the callback options:
 *        <ul>
 *        <li>UCNV_ESCAPE_ICU: Substitues the  ILLEGAL SEQUENCE with the hexadecimal 
 *          representation in the format  %UXXXX, e.g. "%uFFFE%u00AC%uC8FE"). 
 *          In the Event the converter doesn't support the characters {%,U}[A-F][0-9], 
 *          it will  substitute  the illegal sequence with the substitution characters.
 *          Note that  codeUnit(32bit int eg: unit of a surrogate pair) is represented as
 *          %UD84D%UDC56</li>
 *        <li>UCNV_ESCAPE_JAVA: Substitues the  ILLEGAL SEQUENCE with the hexadecimal 
 *          representation in the format  \\uXXXX, e.g. "\\uFFFE\\u00AC\\uC8FE"). 
 *          In the Event the converter doesn't support the characters {\,u}[A-F][0-9], 
 *          it will  substitute  the illegal sequence with the substitution characters.
 *          Note that  codeUnit(32bit int eg: unit of a surrogate pair) is represented as
 *          \\uD84D\\uDC56</li>
 *        <li>UCNV_ESCAPE_C: Substitues the  ILLEGAL SEQUENCE with the hexadecimal 
 *          representation in the format  \\uXXXX, e.g. "\\uFFFE\\u00AC\\uC8FE"). 
 *          In the Event the converter doesn't support the characters {\,u,U}[A-F][0-9], 
 *          it will  substitute  the illegal sequence with the substitution characters.
 *          Note that  codeUnit(32bit int eg: unit of a surrogate pair) is represented as
 *          \\U00023456</li>
 *        <li>UCNV_ESCAPE_XML_DEC: Substitues the  ILLEGAL SEQUENCE with the decimal 
 *          representation in the format \htmlonly&amp;#DDDDDDDD;, e.g. "&amp;#65534;&amp;#172;&amp;#51454;")\endhtmlonly. 
 *          In the Event the converter doesn't support the characters {&amp;,#}[0-9], 
 *          it will  substitute  the illegal sequence with the substitution characters.
 *          Note that  codeUnit(32bit int eg: unit of a surrogate pair) is represented as
 *          &amp;#144470; and Zero padding is ignored.</li>
 *        <li>UCNV_ESCAPE_XML_HEX:Substitues the  ILLEGAL SEQUENCE with the decimal 
 *          representation in the format \htmlonly&amp;#xXXXX; e.g. "&amp;#xFFFE;&amp;#x00AC;&amp;#xC8FE;")\endhtmlonly. 
 *          In the Event the converter doesn't support the characters {&,#,x}[0-9], 
 *          it will  substitute  the illegal sequence with the substitution characters.
 *          Note that  codeUnit(32bit int eg: unit of a surrogate pair) is represented as
 *          \htmlonly&amp;#x23456;\endhtmlonly</li>
 *        </ul>
 * @param fromUArgs Information about the conversion in progress
 * @param codeUnits Points to 'length' UChars of the concerned Unicode sequence
 * @param length Size (in bytes) of the concerned codepage sequence
 * @param codePoint Single UChar32 (UTF-32) containing the concerend Unicode codepoint.
 * @param reason Defines the reason the callback was invoked
 * @param err Return value will be set to success if the callback was handled,
 *      otherwise this value will be set to a failure status.
 * @stable ICU 2.0
 */
U_STABLE void U_EXPORT2 UCNV_FROM_U_CALLBACK_ESCAPE (
                  const void *context,
                  UConverterFromUnicodeArgs *fromUArgs,
                  const UChar* codeUnits,
                  int32_t length,
                  UChar32 codePoint,
                  UConverterCallbackReason reason,
                  UErrorCode * err);


/**
 * DO NOT CALL THIS FUNCTION DIRECTLY!
 * This To Unicode callback skips any ILLEGAL_SEQUENCE, or
 * skips only UNASSINGED_SEQUENCE depending on the context parameter
 * simply ignoring those characters. 
 *
 * @param context  The function currently recognizes the callback options:
 *                 UCNV_SKIP_STOP_ON_ILLEGAL: STOPS at the ILLEGAL_SEQUENCE,
 *                      returning the error code back to the caller immediately.
 *                 NULL: Skips any ILLEGAL_SEQUENCE
 * @param toUArgs Information about the conversion in progress
 * @param codeUnits Points to 'length' bytes of the concerned codepage sequence
 * @param length Size (in bytes) of the concerned codepage sequence
 * @param reason Defines the reason the callback was invoked
 * @param err Return value will be set to success if the callback was handled,
 *      otherwise this value will be set to a failure status.
 * @stable ICU 2.0
 */
U_STABLE void U_EXPORT2 UCNV_TO_U_CALLBACK_SKIP (
                  const void *context,
                  UConverterToUnicodeArgs *toUArgs,
                  const char* codeUnits,
                  int32_t length,
                  UConverterCallbackReason reason,
                  UErrorCode * err);

/**
 * DO NOT CALL THIS FUNCTION DIRECTLY!
 * This To Unicode callback will Substitute the ILLEGAL SEQUENCE,or 
 * UNASSIGNED_SEQUENCE depending on context parameter,  with the
 * Unicode substitution character, U+FFFD.
 *
 * @param context  The function currently recognizes the callback options:
 *                 UCNV_SUB_STOP_ON_ILLEGAL: STOPS at the ILLEGAL_SEQUENCE,
 *                      returning the error code back to the caller immediately.
 *                 NULL: Substitutes any ILLEGAL_SEQUENCE
 * @param toUArgs Information about the conversion in progress
 * @param codeUnits Points to 'length' bytes of the concerned codepage sequence
 * @param length Size (in bytes) of the concerned codepage sequence
 * @param reason Defines the reason the callback was invoked
 * @param err Return value will be set to success if the callback was handled,
 *      otherwise this value will be set to a failure status.
 * @stable ICU 2.0
 */
U_STABLE void U_EXPORT2 UCNV_TO_U_CALLBACK_SUBSTITUTE (
                  const void *context,
                  UConverterToUnicodeArgs *toUArgs,
                  const char* codeUnits,
                  int32_t length,
                  UConverterCallbackReason reason,
                  UErrorCode * err);

/**
 * DO NOT CALL THIS FUNCTION DIRECTLY!
 * This To Unicode callback will Substitute the ILLEGAL SEQUENCE with the
 * hexadecimal representation of the illegal bytes
 *  (in the format  %XNN, e.g. "%XFF%X0A%XC8%X03").
 *
 * @param context This function currently recognizes the callback options:
 *      UCNV_ESCAPE_ICU, UCNV_ESCAPE_JAVA, UCNV_ESCAPE_C, UCNV_ESCAPE_XML_DEC,
 *      UCNV_ESCAPE_XML_HEX and UCNV_ESCAPE_UNICODE.
 * @param toUArgs Information about the conversion in progress
 * @param codeUnits Points to 'length' bytes of the concerned codepage sequence
 * @param length Size (in bytes) of the concerned codepage sequence
 * @param reason Defines the reason the callback was invoked
 * @param err Return value will be set to success if the callback was handled,
 *      otherwise this value will be set to a failure status.
 * @stable ICU 2.0
 */

U_STABLE void U_EXPORT2 UCNV_TO_U_CALLBACK_ESCAPE (
                  const void *context,
                  UConverterToUnicodeArgs *toUArgs,
                  const char* codeUnits,
                  int32_t length,
                  UConverterCallbackReason reason,
                  UErrorCode * err);

#endif

#endif

/*UCNV_ERR_H*/ 

SILENT KILLER Tool