On 15 July 2011 23:05, Kok, Auke-jan H auke-jan.h.kok@intel.com wrote:
On Thu, Jul 14, 2011 at 11:35 PM, Amit Daniel Kachhap amit.kachhap@linaro.org wrote:
This patch enables ncurses for android. NCURSES_NOMACRO flag is enabled as there is some conflict with stl libraries.
Signed-off-by: Amit Daniel Kachhap amit.kachhap@linaro.org
Android.mk | 23 +++++++++++++++++++---- display.cpp | 5 ++++- display.h | 3 ++- lib.cpp | 6 ++++-- main.cpp | 5 +++++ process/do_process.cpp | 4 ++++ 6 files changed, 38 insertions(+), 8 deletions(-)
diff --git a/Android.mk b/Android.mk index 6948011..e6e73b1 100644 --- a/Android.mk +++ b/Android.mk @@ -1,17 +1,32 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := debug +LOCAL_MODULE_TAGS := optional LOCAL_SHARED_LIBRARIES := libstlport \
- libnl \
- libnl
+LOCAL_STATIC_LIBRARIES := libncurses
LOCAL_MODULE := powertop
#LOCAL_CFLAGS += -Wall -O2 -g -fno-omit-frame-pointer -fstack-protector -Wshadow -Wformat -D_FORTIFY_SOURCE=2 #LOCAL_CPPFLAGS += -Wall -O2 -g -fno-omit-frame-pointer -LOCAL_CPPFLAGS += -DDISABLE_NCURSES -DDISABLE_I18N -DDISABLE_TRYCATCH +LOCAL_CPPFLAGS += \
- -DDISABLE_I18N \
- -DDISABLE_TRYCATCH \
- -DNCURSES_NOMACROS \
- -DDISABLE_WSTRING \
- -DDEFAULT_TERM="xterm" \
-LOCAL_C_INCLUDES += external/stlport/stlport/ external/stlport/stlport/stl external/stlport/stlport/using/h/ bionic external/libnl/include/ +LOCAL_C_INCLUDES += external/stlport/stlport/ \
- external/stlport/stlport/stl \
- external/stlport/stlport/using/h/ \
- bionic \
- external/libnl/include/ \
- external/ncurses \
- external/ncurses/lib \
- external/ncurses/include \
- external/ncurses/include/ncurses
ifneq ($(TARGET_ARCH),arm) LOCAL_SHARED_LIBRARIES += libpci diff --git a/display.cpp b/display.cpp index f486050..283743c 100644 --- a/display.cpp +++ b/display.cpp @@ -84,8 +84,11 @@ void reset_display(void) keypad(stdscr, FALSE); echo(); nocbreak();
+#ifndef NCURSES_NOMACROS resetterm(); +#else
- reset_shell_mode();
+#endif }
diff --git a/display.h b/display.h index 3b24914..023f68d 100644 --- a/display.h +++ b/display.h @@ -49,7 +49,8 @@ public: int cursor_pos; int cursor_max; WINDOW *win;
- virtual ~tab_window() {};
virtual void cursor_down(void) { if (cursor_pos < cursor_max ) cursor_pos++; repaint(); } ; virtual void cursor_up(void) { if (cursor_pos > 0) cursor_pos--; repaint(); };
diff --git a/lib.cpp b/lib.cpp index d058e4f..86fcf96 100644 --- a/lib.cpp +++ b/lib.cpp @@ -238,10 +238,12 @@ void format_watts(double W, char *buffer, unsigned int len) if (W < 0.0001) sprintf(buffer, _(" 0 mW"));
-#ifndef DISABLE_NCURSES +#ifndef DISABLE_NCURSES +#ifndef DISABLE_WSTRING while (mbstowcs(NULL,buffer,0) < len) strcat(buffer, " "); -#endif +#endif //DISABLE_WSTRING +#endif //DISABLE_NCURSES }
#ifndef DISABLE_PCI diff --git a/main.cpp b/main.cpp index 3ee0a7e..fc4b0cf 100644 --- a/main.cpp +++ b/main.cpp @@ -280,6 +280,11 @@ int main(int argc, char **argv) bindtextdomain ("powertop", "/usr/share/locale"); textdomain ("powertop"); #endif
+#ifdef DEFAULT_TERM
- if (!getenv("TERM"))
- setenv("TERM", DEFAULT_TERM, 1);
+#endif uid = getuid();
if (uid != 0) { diff --git a/process/do_process.cpp b/process/do_process.cpp index 5c382f1..7e39321 100644 --- a/process/do_process.cpp +++ b/process/do_process.cpp @@ -720,7 +720,9 @@ void process_update_display(void) if (!show_power) strcpy(power, " "); sprintf(name, "%s", all_power[i]->type()); +#ifndef DISABLE_WSTRING while (mbstowcs(NULL,name,0) < 14) strcat(name, " "); +#endif
if (all_power[i]->events() == 0 && all_power[i]->usage() == 0 && all_power[i]->Witts() == 0) @@ -733,7 +735,9 @@ void process_update_display(void) else sprintf(usage, "%5i%s", (int)all_power[i]->usage(), all_power[i]->usage_units()); } +#ifndef DISABLE_WSTRING while (mbstowcs(NULL,usage,0) < 14) strcat(usage, " "); +#endif sprintf(events, "%5.1f", all_power[i]->events()); if (!all_power[i]->show_events()) events[0] = 0;
most of the code in this patch read "autotoolize this" to me...
You can redefine stuff that needs stubbing out easily, get rid of most of the #ifdefs as well.
Agreed. I will redefine mbstowcs implementation in next version.
Auke