/*
******************************************************************************
*
-* Copyright (C) 2009, International Business Machines
+* Copyright (C) 2009-2011, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
#include "unicode/utypes.h"
#include "unicode/icudataver.h"
-#include "unicode/uversion.h"
#include "unicode/ures.h"
#include "uresimp.h" /* for ures_getVersionByKey */
-#include "cmemory.h"
-
-/*
- * Determines if icustd is in the data.
- */
-static UBool hasICUSTDBundle();
-
-static UBool hasICUSTDBundle() {
- UErrorCode status = U_ZERO_ERROR;
- UBool result = TRUE;
-
- UResourceBundle *icustdbundle = ures_openDirect(NULL, U_ICU_STD_BUNDLE, &status);
- if (U_SUCCESS(status)) {
- result = TRUE;
- } else {
- result = FALSE;
- }
-
- ures_close(icustdbundle);
-
- return result;
-}
U_CAPI void U_EXPORT2 u_getDataVersion(UVersionInfo dataVersionFillin, UErrorCode *status) {
UResourceBundle *icudatares = NULL;
ures_close(icudatares);
}
}
-
-U_CAPI UBool U_EXPORT2 u_isDataOlder(UVersionInfo dataVersionFillin, UBool *isModifiedFillin, UErrorCode *status) {
- UBool result = TRUE;
- UVersionInfo dataVersion;
- UVersionInfo wiredVersion;
-
- if (U_FAILURE(*status)) {
- return result;
- }
-
- u_getDataVersion(dataVersion, status);
- if (U_SUCCESS(*status)) {
- u_versionFromString(wiredVersion, U_ICU_DATA_VERSION);
-
- if (uprv_memcmp(dataVersion, wiredVersion, sizeof(UVersionInfo)) >= 0) {
- result = FALSE;
- }
-
- if (dataVersionFillin != NULL) {
- uprv_memcpy(dataVersionFillin, dataVersion, sizeof(UVersionInfo));
- }
-
- if (hasICUSTDBundle()) {
- *isModifiedFillin = FALSE;
- } else {
- *isModifiedFillin = TRUE;
- }
- }
-
- return result;
-}