On 15 July 2011 23:05, Kok, Auke-jan H <auke-jan.h....@intel.com> wrote:
> On Thu, Jul 14, 2011 at 11:35 PM, Amit Daniel Kachhap
> <amit.kach...@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.kach...@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
>

_______________________________________________
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev

Reply via email to