more
This commit is contained in:
parent
c7e7b44284
commit
ca4f216272
30
top.c
30
top.c
@ -1319,9 +1319,9 @@ static int rc_read_old (const char *const buf, RCF_t *rc) {
|
|||||||
case '0' ... '9':
|
case '0' ... '9':
|
||||||
return -15; // not supposed to have digits here
|
return -15; // not supposed to have digits here
|
||||||
|
|
||||||
case 's': // mostly for global rcfile
|
// case 's': // mostly for global rcfile
|
||||||
rc->mode_secure = 1;
|
// rc->mode_secure = 1;
|
||||||
break;
|
// break;
|
||||||
case 'S':
|
case 'S':
|
||||||
rc->win[0].winflags |= Show_CTIMES;
|
rc->win[0].winflags |= Show_CTIMES;
|
||||||
break;
|
break;
|
||||||
@ -1529,6 +1529,7 @@ static void before (char *me)
|
|||||||
* First attempt to read the /etc/rcfile which contains two lines
|
* First attempt to read the /etc/rcfile which contains two lines
|
||||||
* consisting of the secure mode switch and an update interval.
|
* consisting of the secure mode switch and an update interval.
|
||||||
* It's presence limits what ordinary users are allowed to do.
|
* It's presence limits what ordinary users are allowed to do.
|
||||||
|
* (it's actually an old-style config file)
|
||||||
*
|
*
|
||||||
* Then build the local rcfile name and try to read a crufty old-top
|
* Then build the local rcfile name and try to read a crufty old-top
|
||||||
* rcfile (whew, odoriferous), which may contain an embedded new-style
|
* rcfile (whew, odoriferous), which may contain an embedded new-style
|
||||||
@ -1539,29 +1540,33 @@ static void before (char *me)
|
|||||||
static void configs_read (void)
|
static void configs_read (void)
|
||||||
{
|
{
|
||||||
char fbuf[MEDBUFSIZ];
|
char fbuf[MEDBUFSIZ];
|
||||||
const char *cp;
|
|
||||||
int i, fd;
|
int i, fd;
|
||||||
RCF_t rcf;
|
RCF_t rcf;
|
||||||
float delay = Rc.delay_time;
|
float delay = Rc.delay_time;
|
||||||
|
|
||||||
// who says life's not fair -- at least the sys rcfiles are compatable
|
// Read part of an old-style config in /etc/toprc
|
||||||
fd = open(SYS_RCFILESPEC, O_RDONLY);
|
fd = open(SYS_RCFILESPEC, O_RDONLY);
|
||||||
if (fd > 0) {
|
if (fd > 0) {
|
||||||
ssize_t num;
|
ssize_t num;
|
||||||
num = read(fd, fbuf, sizeof(fbuf) - 1);
|
num = read(fd, fbuf, sizeof(fbuf) - 1);
|
||||||
if (num > 0) {
|
if (num > 0) {
|
||||||
if ((cp = strchr(fbuf, 's'))) Secure_mode = 1;
|
const char *sec = strchr(fbuf, 's');
|
||||||
cp++;
|
const char *eol = strchr(fbuf, '\n');
|
||||||
if ((cp = strchr(cp, '\n'))) sscanf(cp+1, "%f", &Rc.delay_time);
|
if (eol) {
|
||||||
|
const char *two = eol+1; // line two
|
||||||
|
if (sec < eol) Secure_mode = !!sec;
|
||||||
|
eol = strchr(two, '\n');
|
||||||
|
if (eol && eol > two && isdigit(*two)) Rc.delay_time = atof(two);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
close(fd);
|
close(fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
snprintf(Rc_name, sizeof(Rc_name), ".%src", Myname);
|
snprintf(Rc_name, sizeof(Rc_name), ".%src", Myname); // eeew...
|
||||||
if (getenv("HOME"))
|
if (getenv("HOME"))
|
||||||
snprintf(Rc_name, sizeof(Rc_name), "%s/.%src", getenv("HOME"), Myname);
|
snprintf(Rc_name, sizeof(Rc_name), "%s/.%src", getenv("HOME"), Myname);
|
||||||
|
|
||||||
rcf = Rc;
|
rcf = DEF_RCFILE;
|
||||||
fd = open(Rc_name, O_RDONLY);
|
fd = open(Rc_name, O_RDONLY);
|
||||||
if (fd > 0) {
|
if (fd > 0) {
|
||||||
ssize_t num;
|
ssize_t num;
|
||||||
@ -1571,7 +1576,7 @@ static void configs_read (void)
|
|||||||
fbuf[1] = '\n';
|
fbuf[1] = '\n';
|
||||||
fbuf[num+2] = '\0';
|
fbuf[num+2] = '\0';
|
||||||
if (rc_read_old(fbuf, &rcf) > 0) Crufty_rcf = 1;
|
if (rc_read_old(fbuf, &rcf) > 0) Crufty_rcf = 1;
|
||||||
else rcf = Rc; // on failure, maybe mangled
|
else rcf = DEF_RCFILE; // on failure, maybe mangled
|
||||||
rc_read_new(fbuf, &rcf);
|
rc_read_new(fbuf, &rcf);
|
||||||
delay = rcf.delay_time;
|
delay = rcf.delay_time;
|
||||||
}
|
}
|
||||||
@ -1581,7 +1586,8 @@ static void configs_read (void)
|
|||||||
// update Rc defaults, establish a Curwin and fix up the window stack
|
// update Rc defaults, establish a Curwin and fix up the window stack
|
||||||
Rc.mode_altscr = rcf.mode_altscr;
|
Rc.mode_altscr = rcf.mode_altscr;
|
||||||
Rc.mode_irixps = rcf.mode_irixps;
|
Rc.mode_irixps = rcf.mode_irixps;
|
||||||
Curwin = Winstk[(rcf.win_index)];
|
if (rcf.win_index >= GROUPSMAX) rcf.win_index = 0;
|
||||||
|
Curwin = Winstk[rcf.win_index];
|
||||||
for (i = 0; i < GROUPSMAX; i++) Winstk[i]->rc = rcf.win[i];
|
for (i = 0; i < GROUPSMAX; i++) Winstk[i]->rc = rcf.win[i];
|
||||||
|
|
||||||
// lastly, establish the true runtime secure mode and delay time
|
// lastly, establish the true runtime secure mode and delay time
|
||||||
|
Loading…
Reference in New Issue
Block a user