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
f2a190b0
Commit
f2a190b0
authored
Feb 27, 2014
by
Hisham Muhammad
Browse files
New logic for highlighting basenames with spaces
parent
61bd7706
Changes
3
Hide whitespace changes
Inline
Side-by-side
Process.c
View file @
f2a190b0
...
...
@@ -165,6 +165,7 @@ typedef struct Process_ {
#endif
int exit_signal;
int basenameOffset;
bool updated;
#ifdef DEBUG
...
...
@@ -404,14 +405,19 @@ static inline void Process_writeCommand(Process* this, int attr, int baseattr, R
RichString_append
(
str
,
attr
,
this
->
comm
);
if
(
this
->
pl
->
highlightBaseName
)
{
int
finish
=
RichString_size
(
str
)
-
1
;
int
space
=
RichString_findChar
(
str
,
' '
,
start
)
;
int
space
=
start
+
this
->
basenameOffset
;
if
(
space
!=
-
1
)
finish
=
space
-
1
;
for
(;;)
{
int
slash
=
RichString_findChar
(
str
,
'/'
,
start
);
if
(
slash
==
-
1
||
slash
>
finish
)
break
;
start
=
slash
+
1
;
int
colon
=
RichString_findChar
(
str
,
':'
,
start
);
if
(
colon
!=
-
1
&&
colon
<
finish
)
{
finish
=
colon
;
}
else
{
for
(
int
i
=
finish
-
start
;
i
>
0
;
i
--
)
{
if
(
this
->
comm
[
i
]
==
'/'
)
{
start
+=
i
+
1
;
break
;
}
}
}
RichString_setAttrn
(
str
,
baseattr
,
start
,
finish
);
}
...
...
Process.h
View file @
f2a190b0
...
...
@@ -144,6 +144,7 @@ typedef struct Process_ {
#endif
int
exit_signal
;
int
basenameOffset
;
bool
updated
;
#ifdef DEBUG
...
...
ProcessList.c
View file @
f2a190b0
...
...
@@ -667,15 +667,15 @@ static void ProcessList_readOomData(Process* process, const char* dirname, const
snprintf
(
filename
,
MAX_NAME
,
"%s/%s/oom_score"
,
dirname
,
name
);
FILE
*
file
=
fopen
(
filename
,
"r"
);
if
(
!
file
)
return
;
return
;
char
buffer
[
256
];
if
(
!
fgets
(
buffer
,
255
,
file
))
{
return
;
return
;
}
unsigned
int
oom
;
int
ok
=
sscanf
(
buffer
,
"%u"
,
&
oom
);
if
(
ok
>=
1
)
{
process
->
oom
=
oom
;
process
->
oom
=
oom
;
}
fclose
(
file
);
}
...
...
@@ -695,12 +695,20 @@ static bool ProcessList_readCmdlineFile(Process* process, const char* dirname, c
char
command
[
4096
+
1
];
// max cmdline length on Linux
int
amtRead
=
xread
(
fd
,
command
,
sizeof
(
command
)
-
1
);
close
(
fd
);
int
tokenEnd
=
0
;
if
(
amtRead
>
0
)
{
for
(
int
i
=
0
;
i
<
amtRead
;
i
++
)
if
(
command
[
i
]
==
'\0'
||
command
[
i
]
==
'\n'
)
{
if
(
tokenEnd
==
0
)
{
tokenEnd
=
i
;
}
command
[
i
]
=
' '
;
}
}
if
(
tokenEnd
==
0
)
{
tokenEnd
=
amtRead
;
}
process
->
basenameOffset
=
tokenEnd
;
command
[
amtRead
]
=
'\0'
;
free
(
process
->
comm
);
process
->
comm
=
strdup
(
command
);
...
...
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