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
f9146175
Commit
f9146175
authored
Feb 18, 2018
by
Hisham Muhammad
Browse files
Make settings file finding sequence more straightforward
Avoid unnecessary access() call and make code read more linearly.
parent
03b25817
Changes
1
Hide whitespace changes
Inline
Side-by-side
Settings.c
View file @
f9146175
...
...
@@ -382,10 +382,8 @@ Settings* Settings_new(int cpuCount) {
free
(
htopDir
);
free
(
configDir
);
struct
stat
st
;
if
(
lstat
(
legacyDotfile
,
&
st
)
!=
0
)
{
st
.
st_mode
=
0
;
}
if
(
access
(
legacyDotfile
,
R_OK
)
!=
0
||
S_ISLNK
(
st
.
st_mode
))
{
int
err
=
lstat
(
legacyDotfile
,
&
st
);
if
(
err
||
S_ISLNK
(
st
.
st_mode
))
{
free
(
legacyDotfile
);
legacyDotfile
=
NULL
;
}
...
...
@@ -394,28 +392,33 @@ Settings* Settings_new(int cpuCount) {
this
->
colorScheme
=
0
;
this
->
changed
=
false
;
this
->
delay
=
DEFAULT_DELAY
;
bool
ok
=
Settings_read
(
this
,
legacyDotfile
?
legacyDotfile
:
this
->
filename
);
if
(
ok
)
{
if
(
legacyDotfile
)
{
bool
ok
=
false
;
if
(
legacyDotfile
)
{
ok
=
Settings_read
(
this
,
legacyDotfile
);
if
(
ok
)
{
// Transition to new location and delete old configuration file
if
(
Settings_write
(
this
))
unlink
(
legacyDotfile
);
}
}
else
{
free
(
legacyDotfile
);
}
if
(
!
ok
)
{
ok
=
Settings_read
(
this
,
this
->
filename
);
}
if
(
!
ok
)
{
this
->
changed
=
true
;
// TODO: how to get SYSCONFDIR correctly through Autoconf?
char
*
systemSettings
=
String_cat
(
SYSCONFDIR
,
"/htoprc"
);
ok
=
Settings_read
(
this
,
systemSettings
);
free
(
systemSettings
);
if
(
!
ok
)
{
Settings_defaultMeters
(
this
);
this
->
hideKernelThreads
=
true
;
this
->
highlightMegabytes
=
true
;
this
->
highlightThreads
=
true
;
this
->
headerMargin
=
true
;
}
}
free
(
legacyDotfile
);
if
(
!
ok
)
{
Settings_defaultMeters
(
this
);
this
->
hideKernelThreads
=
true
;
this
->
highlightMegabytes
=
true
;
this
->
highlightThreads
=
true
;
this
->
headerMargin
=
true
;
}
return
this
;
}
...
...
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