Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
htop
Commits
8bd603cb
Commit
8bd603cb
authored
Aug 20, 2015
by
Hisham Muhammad
Browse files
Make Unicode strings safe for ncurses 6 ABI.
Closes #241.
parent
78be8201
Changes
3
Hide whitespace changes
Inline
Side-by-side
RichString.c
View file @
8bd603cb
...
...
@@ -32,8 +32,8 @@ in the source distribution for its full text.
#define RichString_size(this) ((this)->chlen)
#define RichString_sizeVal(this) ((this).chlen)
#define RichString_begin(this) RichString (this);
(this).chlen = 0
; (this).chptr = (this).chstr;
#define RichString_beginAllocated(this)
(this).chlen = 0
; (this).chptr = (this).chstr;
#define RichString_begin(this) RichString (this);
memset(&this, 0, sizeof(RichString))
; (this).chptr = (this).chstr;
#define RichString_beginAllocated(this)
memset(&this, 0, sizeof(RichString))
; (this).chptr = (this).chstr;
#define RichString_end(this) RichString_prune(&(this));
#ifdef HAVE_LIBNCURSESW
...
...
@@ -79,6 +79,7 @@ static void RichString_extendLen(RichString* this, int len) {
this
->
chptr
=
realloc
(
this
->
chptr
,
charBytes
(
len
+
1
));
}
}
RichString_setChar
(
this
,
len
,
0
);
this
->
chlen
=
len
;
}
...
...
@@ -155,9 +156,8 @@ int RichString_findChar(RichString* this, char c, int start) {
void
RichString_prune
(
RichString
*
this
)
{
if
(
this
->
chlen
>
RICHSTRING_MAXLEN
)
free
(
this
->
chptr
);
memset
(
this
,
0
,
sizeof
(
RichString
));
this
->
chptr
=
this
->
chstr
;
this
->
chlen
=
0
;
RichString_setChar
(
this
,
0
,
0
);
}
void
RichString_setAttr
(
RichString
*
this
,
int
attrs
)
{
...
...
RichString.h
View file @
8bd603cb
...
...
@@ -30,8 +30,8 @@ in the source distribution for its full text.
#define RichString_size(this) ((this)->chlen)
#define RichString_sizeVal(this) ((this).chlen)
#define RichString_begin(this) RichString (this);
(this).chlen = 0
; (this).chptr = (this).chstr;
#define RichString_beginAllocated(this)
(this).chlen = 0
; (this).chptr = (this).chstr;
#define RichString_begin(this) RichString (this);
memset(&this, 0, sizeof(RichString))
; (this).chptr = (this).chstr;
#define RichString_beginAllocated(this)
memset(&this, 0, sizeof(RichString))
; (this).chptr = (this).chstr;
#define RichString_end(this) RichString_prune(&(this));
#ifdef HAVE_LIBNCURSESW
...
...
configure.ac
View file @
8bd603cb
...
...
@@ -143,7 +143,10 @@ fi
AC_ARG_ENABLE(unicode, [AC_HELP_STRING([--enable-unicode], [enable Unicode support])], ,enable_unicode="yes")
if test "x$enable_unicode" = xyes; then
AC_CHECK_LIB([ncursesw6], [refresh], [], [
AC_CHECK_LIB([ncursesw6], [refresh], [
AC_DEFINE(HAVE_LIBNCURSESW, 1, [])
LIBS="-lncursesw6 $LIBS "
], [
AC_CHECK_LIB([ncursesw], [refresh], [], [
missing_libraries="$missing_libraries libncursesw"
AC_MSG_ERROR([You may want to use --disable-unicode or install libncursesw.])
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment