summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2015-03-22 22:56:28 -0300
committerHisham Muhammad <hisham@gobolinux.org>2015-03-22 22:56:28 -0300
commit442a0d33e43b93e675281de70d6eacf9a9d4b8f8 (patch)
tree12cc1262514276750e69f6d90e5e9b1fd454da51
parent1e0c530a465662c4049a6ea93ecda6b006ba45bd (diff)
Do not trust isalpha(c) for values > 255.
Fixes #174.
-rw-r--r--AvailableColumnsPanel.c2
-rw-r--r--CategoriesPanel.c2
-rw-r--r--ColumnsPanel.c2
-rw-r--r--IncSet.c2
-rw-r--r--Panel.c2
-rw-r--r--RichString.c2
-rw-r--r--htop.c2
7 files changed, 7 insertions, 7 deletions
diff --git a/AvailableColumnsPanel.c b/AvailableColumnsPanel.c
index d954da8c..6c4b5ef5 100644
--- a/AvailableColumnsPanel.c
+++ b/AvailableColumnsPanel.c
@@ -55,7 +55,7 @@ static HandlerResult AvailableColumnsPanel_eventHandler(Panel* super, int ch) {
}
default:
{
- if (isalpha(ch))
+ if (ch < 255 && isalpha(ch))
result = Panel_selectByTyping(super, ch);
break;
}
diff --git a/CategoriesPanel.c b/CategoriesPanel.c
index bf6ee543..084f48e4 100644
--- a/CategoriesPanel.c
+++ b/CategoriesPanel.c
@@ -102,7 +102,7 @@ static HandlerResult CategoriesPanel_eventHandler(Panel* super, int ch) {
break;
}
default:
- if (isalpha(ch))
+ if (ch < 255 && isalpha(ch))
result = Panel_selectByTyping(super, ch);
if (result == BREAK_LOOP)
result = IGNORED;
diff --git a/ColumnsPanel.c b/ColumnsPanel.c
index f4eed99e..844e9580 100644
--- a/ColumnsPanel.c
+++ b/ColumnsPanel.c
@@ -70,7 +70,7 @@ static HandlerResult ColumnsPanel_eventHandler(Panel* super, int ch) {
}
default:
{
- if (isalpha(ch))
+ if (ch < 255 && isalpha(ch))
result = Panel_selectByTyping(super, ch);
if (result == BREAK_LOOP)
result = IGNORED;
diff --git a/IncSet.c b/IncSet.c
index 40aa9233..a7761602 100644
--- a/IncSet.c
+++ b/IncSet.c
@@ -153,7 +153,7 @@ bool IncSet_handleKey(IncSet* this, int ch, Panel* panel, IncMode_GetPanelValue
}
}
doSearch = false;
- } else if (isprint((char)ch) && (mode->index < INCMODE_MAX)) {
+ } else if (ch < 255 && isprint((char)ch) && (mode->index < INCMODE_MAX)) {
mode->buffer[mode->index] = ch;
mode->index++;
mode->buffer[mode->index] = 0;
diff --git a/Panel.c b/Panel.c
index 4355b1e2..681e9ca5 100644
--- a/Panel.c
+++ b/Panel.c
@@ -427,7 +427,7 @@ HandlerResult Panel_selectByTyping(Panel* this, int ch) {
if (!this->eventHandlerBuffer)
this->eventHandlerBuffer = calloc(100, 1);
- if (isalnum(ch)) {
+ if (ch < 255 && isalnum(ch)) {
int len = strlen(this->eventHandlerBuffer);
if (len < 99) {
this->eventHandlerBuffer[len] = ch;
diff --git a/RichString.c b/RichString.c
index 51914b08..22ffecb5 100644
--- a/RichString.c
+++ b/RichString.c
@@ -128,7 +128,7 @@ static inline void RichString_writeFrom(RichString* this, int attrs, const char*
int newLen = from + len;
RichString_setLen(this, newLen);
for (int i = from, j = 0; i < newLen; i++, j++)
- this->chptr[i] = (isprint(data_c[j]) ? data_c[j] : '?') | attrs;
+ this->chptr[i] = (data_c[j] >= 32 ? data_c[j] : '?') | attrs;
this->chptr[newLen] = 0;
}
diff --git a/htop.c b/htop.c
index 281d40ea..62e49c9c 100644
--- a/htop.c
+++ b/htop.c
@@ -852,7 +852,7 @@ int main(int argc, char** argv) {
continue;
}
- if (isdigit((char)ch)) {
+ if (ch < 255 && isdigit((char)ch)) {
if (Panel_size(panel) == 0) continue;
pid_t pid = ch-48 + acc;
for (int i = 0; i < ProcessList_size(pl); i++) {

© 2014-2024 Faster IT GmbH | imprint | privacy policy