Add public method FPDFText_GetTextIndexFromCharIndex

BUG=pdfium:676

Change-Id: I46de35a86769dc2f7f73ac3552306356ca3289a5
Reviewed-on: https://pdfium-review.googlesource.com/2955
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Nicolás Peña <npm@chromium.org>
diff --git a/fpdfsdk/fpdf_searchex.cpp b/fpdfsdk/fpdf_searchex.cpp
index f82db37..1372916 100644
--- a/fpdfsdk/fpdf_searchex.cpp
+++ b/fpdfsdk/fpdf_searchex.cpp
@@ -15,3 +15,11 @@
   return static_cast<CPDF_TextPage*>(text_page)
       ->CharIndexFromTextIndex(nTextIndex);
 }
+
+DLLEXPORT int STDCALL
+FPDFText_GetTextIndexFromCharIndex(FPDF_TEXTPAGE text_page, int nCharIndex) {
+  if (!text_page)
+    return -1;
+  return static_cast<CPDF_TextPage*>(text_page)->TextIndexFromCharIndex(
+      nCharIndex);
+}
diff --git a/fpdfsdk/fpdfview_c_api_test.c b/fpdfsdk/fpdfview_c_api_test.c
index c603f59..df3ef19 100644
--- a/fpdfsdk/fpdfview_c_api_test.c
+++ b/fpdfsdk/fpdfview_c_api_test.c
@@ -168,6 +168,7 @@
 
     // fpdf_searchex.h
     CHK(FPDFText_GetCharIndexFromTextIndex);
+    CHK(FPDFText_GetTextIndexFromCharIndex);
 
     // fpdf_structtree.h
     CHK(FPDF_StructTree_GetForPage);
diff --git a/public/fpdf_searchex.h b/public/fpdf_searchex.h
index 7c1b318..a795a52 100644
--- a/public/fpdf_searchex.h
+++ b/public/fpdf_searchex.h
@@ -23,6 +23,15 @@
 DLLEXPORT int STDCALL
 FPDFText_GetCharIndexFromTextIndex(FPDF_TEXTPAGE text_page, int nTextIndex);
 
+// Get the text index in |text_page| internal character list.
+//
+//   text_page  - a text page information structure.
+//   nCharIndex - index of the character in internal character list.
+//
+// Returns the index of the text returned from |FPDFText_GetText|. -1 for error.
+DLLEXPORT int STDCALL
+FPDFText_GetTextIndexFromCharIndex(FPDF_TEXTPAGE text_page, int nCharIndex);
+
 #ifdef __cplusplus
 }  // extern "C"
 #endif  // __cplusplus