Index: third_party/sqlite/src/src/shell_icu_win.c |
diff --git a/third_party/sqlite/src/src/shell_icu_win.c b/third_party/sqlite/src/src/shell_icu_win.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..67ebbf4fbdb44abf78f155bdb1d9795451c5d2c5 |
--- /dev/null |
+++ b/third_party/sqlite/src/src/shell_icu_win.c |
@@ -0,0 +1,32 @@ |
+/* Copyright 2011 Google Inc. All Rights Reserved. |
+**/ |
+ |
+#include <windows.h> |
+#include "unicode/udata.h" |
+ |
+/* |
+** This function attempts to load the ICU data tables from a DLL. |
+** Returns 0 on failure, nonzero on success. |
+** This a hack job of icu_utils.cc:Initialize(). It's Chrome-specific code. |
+*/ |
+ |
+#define ICU_DATA_SYMBOL "icudt" U_ICU_VERSION_SHORT "_dat" |
+int sqlite_shell_init_icu() { |
+ HMODULE module; |
+ FARPROC addr; |
+ UErrorCode err; |
+ |
+ // Chrome dropped U_ICU_VERSION_SHORT from the icu data dll name. |
+ module = LoadLibrary(L"icudt.dll"); |
+ if (!module) |
+ return 0; |
+ |
+ addr = GetProcAddress(module, ICU_DATA_SYMBOL); |
+ if (!addr) |
+ return 0; |
+ |
+ err = U_ZERO_ERROR; |
+ udata_setCommonData(addr, &err); |
+ |
+ return 1; |
+} |