libncurses: Add recovery variant

Change-Id: I9815562c2e094ac2290b7dd7fc88a73aed8f2a6e
diff --git a/Android.bp b/Android.bp
index 55a4ed6..72693cc 100644
--- a/Android.bp
+++ b/Android.bp
@@ -96,8 +96,15 @@
     system_ext_specific: true,
 }
 
-cc_library {
-    name: "libncurses",
+prebuilt_etc {
+    name: "libncurses-terminfo-x-xterm_recovery",
+    srcs: ["lib/terminfo/x/xterm*"],
+    sub_dir: "terminfo/x",
+    recovery: true,
+}
+
+cc_defaults {
+    name: "libncurses_defaults",
     srcs: [
         "ncurses/base/define_key.c",
         "ncurses/base/key_defined.c",
@@ -264,6 +271,11 @@
     local_include_dirs: [
         "ncurses",
     ],
+}
+
+cc_library {
+    name: "libncurses",
+    defaults: ["libncurses_defaults"],
     required: [
         "libncurses-terminfo-a",
         "libncurses-terminfo-c",
@@ -282,3 +294,12 @@
     ],
     system_ext_specific: true,
 }
+
+cc_library {
+    name: "libncurses_recovery",
+    defaults: ["libncurses_defaults"],
+    required: [
+        "libncurses-terminfo-x-xterm_recovery",
+    ],
+    recovery: true,
+}
diff --git a/include/ncurses_cfg.h b/include/ncurses_cfg.h
index b01c48e..4d2a637 100644
--- a/include/ncurses_cfg.h
+++ b/include/ncurses_cfg.h
@@ -59,8 +59,13 @@
 #endif
 #define HAVE_LONG_FILE_NAMES 1
 #define MIXEDCASE_FILENAMES 1
+#if defined(__ANDROID_RECOVERY__)
+#define TERMINFO_DIRS "/system/etc/terminfo"
+#define TERMINFO "/system/etc/terminfo"
+#else
 #define TERMINFO_DIRS "/system_ext/etc/terminfo"
 #define TERMINFO "/system_ext/etc/terminfo"
+#endif
 #define HAVE_BIG_CORE 1
 #define PURE_TERMINFO 1
 #define USE_HOME_TERMINFO 1