Index: source/i18n/ufieldpositer.cpp |
diff --git a/source/i18n/ufieldpositer.cpp b/source/i18n/ufieldpositer.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7f8688425d6fb6da95d83ecb3d24e7aad467db47 |
--- /dev/null |
+++ b/source/i18n/ufieldpositer.cpp |
@@ -0,0 +1,59 @@ |
+/* |
+***************************************************************************************** |
+* Copyright (C) 2015, International Business Machines |
+* Corporation and others. All Rights Reserved. |
+***************************************************************************************** |
+*/ |
+ |
+#include "unicode/utypes.h" |
+ |
+#if !UCONFIG_NO_FORMATTING |
+ |
+#include "unicode/ufieldpositer.h" |
+#include "unicode/fpositer.h" |
+#include "unicode/localpointer.h" |
+ |
+U_NAMESPACE_USE |
+ |
+ |
+U_CAPI UFieldPositionIterator* U_EXPORT2 |
+ufieldpositer_open(UErrorCode* status) |
+{ |
+ if (U_FAILURE(*status)) { |
+ return NULL; |
+ } |
+ FieldPositionIterator* fpositer = new FieldPositionIterator(); |
+ if (fpositer == NULL) { |
+ *status = U_MEMORY_ALLOCATION_ERROR; |
+ } |
+ return (UFieldPositionIterator*)fpositer; |
+} |
+ |
+ |
+U_CAPI void U_EXPORT2 |
+ufieldpositer_close(UFieldPositionIterator *fpositer) |
+{ |
+ delete (FieldPositionIterator*)fpositer; |
+} |
+ |
+ |
+U_CAPI int32_t U_EXPORT2 |
+ufieldpositer_next(UFieldPositionIterator *fpositer, |
+ int32_t *beginIndex, int32_t *endIndex) |
+{ |
+ FieldPosition fp; |
+ int32_t field = -1; |
+ if (((FieldPositionIterator*)fpositer)->next(fp)) { |
+ field = fp.getField(); |
+ if (beginIndex) { |
+ *beginIndex = fp.getBeginIndex(); |
+ } |
+ if (endIndex) { |
+ *endIndex = fp.getEndIndex(); |
+ } |
+ } |
+ return field; |
+} |
+ |
+ |
+#endif /* #if !UCONFIG_NO_FORMATTING */ |