df17f51e00
X-SVN-Rev: 17542
97 lines
2.3 KiB
C
97 lines
2.3 KiB
C
/*
|
|
*******************************************************************************
|
|
*
|
|
* Copyright (C) 1999-2005, International Business Machines
|
|
* Corporation and others. All Rights Reserved.
|
|
*
|
|
*******************************************************************************
|
|
* file name: gennorm.h
|
|
* encoding: US-ASCII
|
|
* tab size: 8 (not used)
|
|
* indentation:4
|
|
*
|
|
* created on: 2001may25
|
|
* created by: Markus W. Scherer
|
|
*/
|
|
|
|
#ifndef __GENPROPS_H__
|
|
#define __GENPROPS_H__
|
|
|
|
#include "unicode/utypes.h"
|
|
#include "unicode/uset.h"
|
|
|
|
/* file definitions */
|
|
#define DATA_NAME "unorm"
|
|
#define DATA_TYPE "icu"
|
|
|
|
/*
|
|
* data structure that holds the normalization properties for one or more
|
|
* code point(s) at build time
|
|
*/
|
|
typedef struct Norm {
|
|
uint8_t udataCC, lenNFD, lenNFKD;
|
|
uint8_t qcFlags, combiningFlags;
|
|
uint16_t canonBothCCs, compatBothCCs, combiningIndex, specialTag;
|
|
uint32_t *nfd, *nfkd;
|
|
uint32_t value32; /* temporary variable for generating runtime norm32 and fcd values */
|
|
int32_t fncIndex;
|
|
USet *canonStart;
|
|
UBool unsafeStart;
|
|
} Norm;
|
|
|
|
/*
|
|
* modularization flags
|
|
*
|
|
* Corresponding bits in gStoreFlags control whether certain kinds of data
|
|
* are to be stored in (1) or omitted from (0) the data file.
|
|
* The flags are controlled by a command-line argument, with a letter
|
|
* per flag.
|
|
*/
|
|
enum {
|
|
UGENNORM_STORE_COMPAT, /* (k) compatibility decompositions */
|
|
UGENNORM_STORE_COMPOSITION, /* (c) composition data */
|
|
UGENNORM_STORE_FCD, /* (f) FCD data */
|
|
UGENNORM_STORE_AUX, /* (a) auxiliary trie and associated data */
|
|
UGENNORM_STORE_EXCLUSIONS, /* (x) exclusion sets */
|
|
UGENNORM_STORE_COUNT
|
|
};
|
|
|
|
extern uint32_t gStoreFlags;
|
|
|
|
#define DO_STORE(flag) (0!=(gStoreFlags&U_MASK(flag)))
|
|
#define DO_NOT_STORE(flag) (0==(gStoreFlags&U_MASK(flag)))
|
|
|
|
/* global flags */
|
|
extern UBool beVerbose, haveCopyright;
|
|
|
|
/* prototypes */
|
|
extern void
|
|
setUnicodeVersion(const char *v);
|
|
|
|
extern void
|
|
init(void);
|
|
|
|
extern void
|
|
storeNorm(uint32_t code, Norm *norm);
|
|
|
|
extern void
|
|
setQCFlags(uint32_t code, uint8_t qcFlags);
|
|
|
|
extern void
|
|
setCompositionExclusion(uint32_t code);
|
|
|
|
U_CFUNC void
|
|
setFNC(uint32_t c, UChar *s);
|
|
|
|
extern void
|
|
processData(void);
|
|
|
|
extern void
|
|
generateData(const char *dataDir, UBool csource);
|
|
|
|
extern void
|
|
cleanUpData(void);
|
|
|
|
#endif
|
|
|