# Copyright (c) 2001-2010 International Business Machines
# Corporation and others. All Rights Reserved.
# Begin temporary addition.
# These are very bad "C" APIs that do not work with a C compiler and
# violate many ICU coding guidelines. These were added with ticket #5996.
# Temporarily arked as C++ for the hdrtst to pass.
vzone.h
zrule.h
ztrans.h
# End temporary addition.
# common & i18n
bidi.h
basictz.h
bmsearch.h
brkiter.h
bytestream.h
calendar.h
caniter.h
chariter.h
choicfmt.h
coleitr.h
coll.h
colldata.h
convert.h
cpdtrans.h
curramt.h
currunit.h
currpinf.h
datefmt.h
dbbi.h
dcfmtsym.h
decimfmt.h
dtintrv.h
dtitvinf.h
dtitvfmt.h
dtfmtsym.h
dtptngen.h
dtrule.h
errorcode.h
fieldpos.h
fmtable.h
format.h
fpositer.h
gregocal.h
locdspnm.h
locid.h
measfmt.h
measunit.h
measure.h
msgfmt.h
normalizer2.h
normlzr.h
numfmt.h
numsys.h
parsepos.h
plurfmt.h
plurrule.h
rbbi.h
rbnf.h
rbtz.h
regex.h
rep.h
resbund.h
schriter.h
search.h
selfmt.h
simpletz.h
smpdtfmt.h
sortkey.h
std_string.h
strenum.h
stringpiece.h
stsearch.h
symtable.h
tblcoll.h
timezone.h
tmunit.h
tmutamt.h
tmutfmt.h
translit.h
tzrule.h
tztrans.h
uchriter.h
unifilt.h
unifunct.h
unimatch.h
unirepl.h
uniset.h
unistr.h
uobject.h
usetiter.h
vtzone.h
# io library
ustream.h
# layout & layoutex
LayoutEngine.h
LEFontInstance.h
LEGlyphFilter.h
LEGlyphStorage.h
LELanguages.h
LEScripts.h
LESwaps.h
# LETypes.h -- C header
# loengine.h -- C header
ParagraphLayout.h
RunArrays.h
