/*
*******************************************************************************
*   Copyright (C) 2005, International Business Machines
*   Corporation and others.  All Rights Reserved.
*******************************************************************************
*
*   file name:  udeprctd.h
*   encoding:   US-ASCII
*   tab size:   8 (not used)
*   indentation:4
*
*   Created by: gendraft.pl, a perl script written by Ram Viswanadha
*
*  Contains data for commenting out APIs.
*  Gets included by umachine.h
*
*  THIS FILE IS MACHINE-GENERATED, DON'T PLAY WITH IT IF YOU DON'T KNOW WHAT
*  YOU ARE DOING, OTHERWISE VERY BAD THINGS WILL HAPPEN!
*/

#ifndef UDEPRCTD_H
#define UDEPRCTD_H

#ifdef U_HIDE_DEPRECATED_API

#define LEUnicode_3_4 LEUnicode_DEPRECATED_API_DO_NOT_USE
#define UBRK_TITLE_3_4 UBRK_TITLE_DEPRECATED_API_DO_NOT_USE
#define ucol_getContractions_3_4 ucol_getContractions_DEPRECATED_API_DO_NOT_USE
#define ucol_getLocale_3_4 ucol_getLocale_DEPRECATED_API_DO_NOT_USE
#define ULOC_REQUESTED_LOCALE_3_4 ULOC_REQUESTED_LOCALE_DEPRECATED_API_DO_NOT_USE
#define RES_NONE_3_4 RES_NONE_DEPRECATED_API_DO_NOT_USE
#define RES_STRING_3_4 RES_STRING_DEPRECATED_API_DO_NOT_USE
#define RES_BINARY_3_4 RES_BINARY_DEPRECATED_API_DO_NOT_USE
#define RES_TABLE_3_4 RES_TABLE_DEPRECATED_API_DO_NOT_USE
#define RES_ALIAS_3_4 RES_ALIAS_DEPRECATED_API_DO_NOT_USE
#define RES_INT_3_4 RES_INT_DEPRECATED_API_DO_NOT_USE
#define RES_ARRAY_3_4 RES_ARRAY_DEPRECATED_API_DO_NOT_USE
#define RES_INT_VECTOR_3_4 RES_INT_VECTOR_DEPRECATED_API_DO_NOT_USE
#define RES_RESERVED_3_4 RES_RESERVED_DEPRECATED_API_DO_NOT_USE
#define ures_countArrayItems_3_4 ures_countArrayItems_DEPRECATED_API_DO_NOT_USE
#define ures_getVersionNumber_3_4 ures_getVersionNumber_DEPRECATED_API_DO_NOT_USE
#define ures_getLocale_3_4 ures_getLocale_DEPRECATED_API_DO_NOT_USE
#define utrans_open_3_4 utrans_open_DEPRECATED_API_DO_NOT_USE
#define utrans_getID_3_4 utrans_getID_DEPRECATED_API_DO_NOT_USE
#define utrans_unregister_3_4 utrans_unregister_DEPRECATED_API_DO_NOT_USE
#define utrans_getAvailableID_3_4 utrans_getAvailableID_DEPRECATED_API_DO_NOT_USE

#endif /* U_HIDE_DEPRECATED_API */
#endif /* UDEPRCTD_H */

