Home | History | Annotate | Download | only in i18n
      1 /*
      2 ******************************************************************************
      3 *                                                                            *
      4 * Copyright (C) 2001-2006, International Business Machines                   *
      5 *                Corporation and others. All Rights Reserved.                *
      6 *                                                                            *
      7 ******************************************************************************
      8 *   file name:  ucln_in.c
      9 *   encoding:   US-ASCII
     10 *   tab size:   8 (not used)
     11 *   indentation:4
     12 *
     13 *   created on: 2001July05
     14 *   created by: George Rhoten
     15 */
     16 
     17 #include "ucln.h"
     18 #include "ucln_in.h"
     19 #include "uassert.h"
     20 
     21 /* Leave this copyright notice here! It needs to go somewhere in this library. */
     22 static const char copyright[] = U_COPYRIGHT_STRING;
     23 
     24 static cleanupFunc *gCleanupFunctions[UCLN_I18N_COUNT];
     25 
     26 static UBool i18n_cleanup(void)
     27 {
     28     ECleanupI18NType libType = UCLN_I18N_START;
     29 
     30     while (++libType<UCLN_I18N_COUNT) {
     31         if (gCleanupFunctions[libType])
     32         {
     33             gCleanupFunctions[libType]();
     34             gCleanupFunctions[libType] = NULL;
     35         }
     36     }
     37     return TRUE;
     38 }
     39 
     40 void ucln_i18n_registerCleanup(ECleanupI18NType type,
     41                                cleanupFunc *func)
     42 {
     43     U_ASSERT(UCLN_I18N_START < type && type < UCLN_I18N_COUNT);
     44     ucln_registerCleanup(UCLN_I18N, i18n_cleanup);
     45     if (UCLN_I18N_START < type && type < UCLN_I18N_COUNT)
     46     {
     47         gCleanupFunctions[type] = func;
     48     }
     49 }
     50 
     51