Automatic setting screenlength for new users

This commit is contained in:
Michiel Broek 2005-08-30 18:58:18 +00:00
parent 20864b64b4
commit 757de0c8fa
4 changed files with 14 additions and 4 deletions

View File

@ -47,6 +47,8 @@ v0.71.5 18-Aug-2005
mbnewusr: mbnewusr:
Changed syntax for calling mbpasswd. Changed syntax for calling mbpasswd.
If we can detect the users screenlength then we don't bother
asking the user.
mbsetup: mbsetup:
Added node setup switch to override node Hold or Down status. Added node setup switch to override node Hold or Down status.

View File

@ -55,6 +55,7 @@ int main(int argc, char **argv)
FILE *pTty; FILE *pTty;
int i, rc = 0; int i, rc = 0;
struct passwd *pw; struct passwd *pw;
struct winsize ws;
pTTY = calloc(15, sizeof(char)); pTTY = calloc(15, sizeof(char));
tty = ttyname(1); tty = ttyname(1);
@ -105,6 +106,10 @@ int main(int argc, char **argv)
Syslog(' ', " "); Syslog(' ', " ");
Syslog(' ', "MBNEWUSR v%s", VERSION); Syslog(' ', "MBNEWUSR v%s", VERSION);
if (ioctl(1, TIOCGWINSZ, &ws) != -1 && (ws.ws_col > 0) && (ws.ws_row > 0)) {
Syslog('b', "columns=%d lines=%d", ws.ws_col, ws.ws_row);
}
if ((rc = rawport()) != 0) { if ((rc = rawport()) != 0) {
WriteError("Unable to set raw mode"); WriteError("Unable to set raw mode");
Fast_Bye(MBERR_OK);; Fast_Bye(MBERR_OK);;
@ -218,7 +223,7 @@ int main(int argc, char **argv)
alarm_on(); alarm_on();
Pause(); Pause();
newuser(); newuser(ws.ws_row);
Fast_Bye(MBERR_OK); Fast_Bye(MBERR_OK);
return 0; return 0;
} }

View File

@ -71,7 +71,7 @@ int chat_with_sysop = FALSE; /* Just for linking */
/* /*
* The main newuser registration function * The main newuser registration function
*/ */
int newuser() int newuser(int rows)
{ {
FILE *pUsrConfig; FILE *pUsrConfig;
int i, x, Found, iLang, recno = 0, Count = 0, badname; int i, x, Found, iLang, recno = 0, Count = 0, badname;
@ -450,7 +450,10 @@ int newuser()
usrconfig.iTimeLeft = 20; /* Set Timeleft in users file to 20 */ usrconfig.iTimeLeft = 20; /* Set Timeleft in users file to 20 */
if (CFG.AskScreenlen) { if ((rows > 18) && (rows < 100)) {
usrconfig.iScreenLen = rows;
Syslog('+', "Setting screenlength to %d according to the users termianl", rows);
} else if (CFG.AskScreenlen) {
Enter(1); Enter(1);
/* Please enter your Screen Length [24]: */ /* Please enter your Screen Length [24]: */
pout(LIGHTMAGENTA, BLACK, (char *) Language(64)); pout(LIGHTMAGENTA, BLACK, (char *) Language(64));

View File

@ -4,7 +4,7 @@
#define _NEWUSER_H #define _NEWUSER_H
int newuser(void); int newuser(int);
void Fast_Bye(int); void Fast_Bye(int);
#endif #endif