diff mbox

[3/3] powertop: ncurses: Enable ncurses for android and miscellaneous changes

Message ID 1310711748-23531-4-git-send-email-amit.kachhap@linaro.org
State New
Headers show

Commit Message

Amit Daniel Kachhap July 15, 2011, 6:35 a.m. UTC
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(-)

Comments

Kok, Auke-jan H July 15, 2011, 5:35 p.m. UTC | #1
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.

Auke
Amit Daniel Kachhap July 19, 2011, 6:34 a.m. UTC | #2
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
>
diff mbox

Patch

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;