Changes to make bright and normal colors is display menus.

This commit is contained in:
Michiel Broek 2001-09-27 20:35:25 +00:00
parent 3f5a2c6977
commit 1215de5b4f
15 changed files with 212 additions and 160 deletions

View File

@ -3,7 +3,7 @@
All following people have contributed to the MBSE BBS project. I'm sure that All following people have contributed to the MBSE BBS project. I'm sure that
people are missing from this list. The list is not in any special order. people are missing from this list. The list is not in any special order.
Michiel Broek mbse@users.sourceforge.net 2:280/2802 Michiel Broek mbroek@users.sourceforge.net 2:280/2802
Joaquim Homrighausen joho@abs.lu Joaquim Homrighausen joho@abs.lu
Andrew Milner andrew@fido.lu Andrew Milner andrew@fido.lu
Mats Wallin mw@fido.lu Mats Wallin mw@fido.lu

View File

@ -4126,6 +4126,9 @@ v0.33.18 27-Jul-2001
Shows the OS name in the info screen. Shows the OS name in the info screen.
Creates default tty records with tty names for the right Creates default tty records with tty names for the right
OS (I hope). OS (I hope).
Fixed a bug in the menu editor, deleted menus were not really
deleted.
Added setup items for the menu Display colors.
mbcico: mbcico:
Renamed sendfile function in zmsend.c to sendzfile to prevent a Renamed sendfile function in zmsend.c to sendzfile to prevent a
@ -4136,6 +4139,8 @@ v0.33.18 27-Jul-2001
mbsebbs: mbsebbs:
Removed some compiler warnings on some systems. Removed some compiler warnings on some systems.
Added menu Display lines.
Added menu item 21, display text only.
mbuseradd: mbuseradd:
Ported to work on FreeBSD. Ported to work on FreeBSD.

3
TODO
View File

@ -12,6 +12,9 @@
L = Cosmetic or nice to have. L = Cosmetic or nice to have.
SETUP.sh:
N: Better way to grep for excisting usernames and groupnames.
mbsebbs: mbsebbs:
L: Reading of function keys over modem lines, or worse PPP connections, L: Reading of function keys over modem lines, or worse PPP connections,
must be fixed. Timing problems together with modem buffering? must be fixed. Timing problems together with modem buffering?

View File

@ -11,7 +11,7 @@
</HEAD> </HEAD>
<BODY> <BODY>
<BLOCKQUOTE> <BLOCKQUOTE>
<h5>Last update 02-Feb-2001</h5> <h5>Last update 26-Sep-2001</h5>
<P>&nbsp;<P> <P>&nbsp;<P>
<H1>MBSE BBS Menu System</H1> <H1>MBSE BBS Menu System</H1>
@ -37,7 +37,7 @@ according to criteria such as security levels.
<H3>ANSI Screens.</H3> <H3>ANSI Screens.</H3>
<P> <P>
For the menus to work properly you must also draw ANSI screens, this For the menus to work properly you can draw ANSI screens, this
is what the users will see. For Linux there is "Duh DRAW" written by Ben is what the users will see. For Linux there is "Duh DRAW" written by Ben
Fowler, see sunsite.unc.edu /pub/Lunux/docs. Fowler, see sunsite.unc.edu /pub/Lunux/docs.
If you can't find it or have no internet access, you can also use If you can't find it or have no internet access, you can also use
@ -48,6 +48,18 @@ menu, the include screen may for example show the keys that you have available
in every menu. See the list of <A HREF="control.html">control codes</A>. in every menu. See the list of <A HREF="control.html">control codes</A>.
<P>&nbsp;<P> <P>&nbsp;<P>
<H3>Display lines.</H3>
<P>
It is also possible to display menu lines with the buildin display option.
The used colors are selectable, a normal color and a bright color.
The normal color is the default, you can toggle bright on and of using
the ^ in the display line. If you end a menu display line with a ; then
no newline is send after that line. If you want to output teh ^ or ; characters
you need to escape them with a backslash like this: \; or \^. The order of menu
entries is important. Also note that the display line does nothing in
autoexec menus.
<P>&nbsp;<P>
<H3>Automatic commands.</H3> <H3>Automatic commands.</H3>
<P> <P>
A menu function is usually executed when a user presses the hot-key A menu function is usually executed when a user presses the hot-key
@ -75,7 +87,7 @@ For each language you can define a set of menus. Only for the default
language all menus must exist. It makes sense to make the filenames of language all menus must exist. It makes sense to make the filenames of
your menus for each language the same and not to translate them. If a menu your menus for each language the same and not to translate them. If a menu
is missing for a non default language, the menu from the default language is missing for a non default language, the menu from the default language
path is used. path is used instead.
<P>&nbsp;<P> <P>&nbsp;<P>
<H3>Editing a menu.</H3> <H3>Editing a menu.</H3>
@ -97,8 +109,8 @@ of all available types see below. </LI>
<LI><B>Optional data.</B> Some menus need optional data, for example the <LI><B>Optional data.</B> Some menus need optional data, for example the
function goto another menu needs the name of that menu file here. </LI> function goto another menu needs the name of that menu file here. </LI>
<LI><B>Display.</B> What is to be displayed to the user. This field has <LI><B>Display.</B> What is to be displayed to the user. You can use this instead
no meaning yet. What you want to diplay must be done with ANSI screens. of ANSI screens.
</LI> </LI>
<LI><B>Security.</B> This is the minimum security level to execute this <LI><B>Security.</B> This is the minimum security level to execute this
@ -120,13 +132,13 @@ If this field is empty, no password check is done. </LI>
<LI><B>Credit.</B> How much credit a user must have to execute this menu <LI><B>Credit.</B> How much credit a user must have to execute this menu
selection. This field is not in use yet. </LI> selection. This field is not in use yet. </LI>
<LI><B>Colors.</B> The display color for the display line, not in use yet. <LI><B>Lo-colors.</B> The normal display color for the display line.
</LI> </LI>
<LI><B>Hi-colors.</B> The bright display color for the display line.</LI>
<LI><B>AutoExec.</B> If this is an automatic executed selection. </LI> <LI><B>AutoExec.</B> If this is an automatic executed selection. </LI>
<LI><B>Menu open.</B> Will be implemented later, you will be able to set
opening hours for this menu selection. </LI>
<LI><B>No door.sys</B> Suppress writing of a door.sys file in the users <LI><B>No door.sys</B> Suppress writing of a door.sys file in the users
home directory. This item is only visible with menu type 7.</LI> home directory. This item is only visible with menu type 7.</LI>
<LI><B>Y2K style</B> Writes the dates in the door.sys file in the new style, <LI><B>Y2K style</B> Writes the dates in the door.sys file in the new style,

View File

@ -11,7 +11,7 @@
</HEAD> </HEAD>
<BODY> <BODY>
<BLOCKQUOTE> <BLOCKQUOTE>
<h5>Last update 02-Feb-2001</h5> <h5>Last update 26-Sep-2001</h5>
<P>&nbsp;<P> <P>&nbsp;<P>
<h1>MBSE BBS Global Menus</h1> <h1>MBSE BBS Global Menus</h1>
@ -145,10 +145,9 @@
file to display.<br> file to display.<br>
<P> <P>
<LI value="21"><strong>Expert mode .a??</strong> Not of any use anymore. <LI value="21"><strong>Display line<strong> This entry does nothing except
This one will be removed.<br> that it displays the text on the display line.<br>
<strong>Optional data:</strong> The name of the file without extension <strong>Optional data:</strong> None.<br>
to display.<br>
<P> <P>
<LI value="22"><strong>Nextuser door:</strong> This runs the message to next <LI value="22"><strong>Nextuser door:</strong> This runs the message to next

View File

@ -2,7 +2,7 @@
* *
* File ..................: structs.h * File ..................: structs.h
* Purpose ...............: MBSE BBS Global structure * Purpose ...............: MBSE BBS Global structure
* Last modification date : 06-Jul-2001 * Last modification date : 26-Sep-2001
* *
***************************************************************************** *****************************************************************************
* Copyright (C) 1997-2001 * Copyright (C) 1997-2001
@ -903,10 +903,10 @@ struct menufile {
unsigned Y2Kdoorsys : 1; /* Write Y2K style door.sys */ unsigned Y2Kdoorsys : 1; /* Write Y2K style door.sys */
unsigned Comport : 1; /* Vmodem compart mode */ unsigned Comport : 1; /* Vmodem compart mode */
long Credit; /* Credit needed */ long Credit; /* Credit needed */
int OpenFrom; /* Open From */ int HiForeGnd; /* High ForeGround color */
int OpenTo; /* Open To */ int HiBackGnd; /* High ForeGround color */
int ForeGnd; /* ForeGround color */ int ForeGnd; /* Normal ForeGround color */
int BackGnd; /* BackGround color */ int BackGnd; /* Normal BackGround color */
}; };

View File

@ -2,7 +2,7 @@
* *
* File ..................: bbs/menu.c * File ..................: bbs/menu.c
* Purpose ...............: Display and handle the menus. * Purpose ...............: Display and handle the menus.
* Last modification date : 10-Jul-2001 * Last modification date : 27-Sep-2001
* *
***************************************************************************** *****************************************************************************
* Copyright (C) 1997-2001 * Copyright (C) 1997-2001
@ -83,7 +83,7 @@ void InitMenu()
void menu() void menu()
{ {
FILE *pMenuFile; FILE *pMenuFile;
int iFoundKey = FALSE, Key; int iFoundKey = FALSE, Key, IsANSI;
char *Input, *Semfile; char *Input, *Semfile;
char *sMenuPathFileName; char *sMenuPathFileName;
@ -133,15 +133,26 @@ void menu()
strcpy(Menus[0], CFG.default_menu); strcpy(Menus[0], CFG.default_menu);
} else { } else {
/* /*
* Display Menu Text Fields and Perform all autoexec menus in order of menu file * Display Menu Text Fields and Perform all autoexec menus in order of menu file.
* First check if there are any ANSI menus, if not, send a clearscreen first.
*/ */
IsANSI = FALSE;
while (fread(&menus, sizeof(menus), 1, pMenuFile) == 1) {
if ( Access(exitinfo.Security, menus.MenuSecurity) && (UserAge >= menus.Age)){
if ((menus.MenuType == 5) || (menus.MenuType == 19) || (menus.MenuType == 20))
IsANSI = TRUE;
}
}
fseek(pMenuFile, 0, SEEK_SET);
if (! IsANSI)
clear();
while (fread(&menus, sizeof(menus), 1, pMenuFile) == 1) { while (fread(&menus, sizeof(menus), 1, pMenuFile) == 1) {
if ( Access(exitinfo.Security, menus.MenuSecurity) && (UserAge >= menus.Age)){ if ( Access(exitinfo.Security, menus.MenuSecurity) && (UserAge >= menus.Age)){
if ( menus.AutoExec ) { if ( menus.AutoExec ) {
DoMenu( menus.MenuType ); DoMenu( menus.MenuType );
} else {
DisplayMenu( );
} }
DisplayMenu( );
} }
} }
@ -390,6 +401,10 @@ void DoMenu(int Type)
DisplayFileEnter(menus.OptionalData); DisplayFileEnter(menus.OptionalData);
break; break;
case 21:
/* display menuline only */
break;
case 22: case 22:
/* nextuser door */ /* nextuser door */
nextuser(); nextuser();
@ -693,7 +708,7 @@ void DisplayMenu ( void ) {
int highlight ; int highlight ;
/* Anything to process, if not; save CPU time, return */ /* Anything to process, if not; save CPU time, return */
if ( strlen( menus.Display ) == 0 ) { if (( strlen( menus.Display ) == 0 ) && (menus.MenuType != 21)) {
return; return;
} }
@ -731,7 +746,7 @@ void DisplayMenu ( void ) {
if ( !escaped ) { if ( !escaped ) {
if ( highlight == 0 ) { if ( highlight == 0 ) {
highlight = 1; highlight = 1;
colour( CFG.HiliteF, CFG.HiliteB ); colour( menus.HiForeGnd, menus.HiBackGnd);
} else { } else {
highlight = 0 ; highlight = 0 ;
colour( menus.ForeGnd, menus.BackGnd ); colour( menus.ForeGnd, menus.BackGnd );

View File

@ -2,7 +2,7 @@
* *
* File ..................: bbs/pop3.c * File ..................: bbs/pop3.c
* Purpose ...............: POP3 client * Purpose ...............: POP3 client
* Last modification date : 13-May-2001 * Last modification date : 26-Sep-2001
* *
***************************************************************************** *****************************************************************************
* Copyright (C) 1997-2001 * Copyright (C) 1997-2001
@ -51,7 +51,7 @@ void error_popmail(char *umsg)
pop3_send((char *)"QUIT\r\n"); pop3_send((char *)"QUIT\r\n");
p = pop3_receive(); p = pop3_receive();
pop3_close(); pop3_close();
colour(12, 0); colour(LIGHTRED, BLACK);
printf("%s\r\n", umsg); printf("%s\r\n", umsg);
fflush(stdout); fflush(stdout);
} }
@ -131,7 +131,7 @@ void retr_msg(int msgnum)
void check_popmail(char *user, char *pass) void check_popmail(char *user, char *pass)
{ {
char *p, *q, temp[128]; char *p, *q, temp[128];
int tmsgs = 0, size, msgnum, color = 9; int tmsgs = 0, size, msgnum, color = LIGHTBLUE;
FILE *tp; FILE *tp;
/* /*
@ -183,13 +183,13 @@ void check_popmail(char *user, char *pass)
/* /*
* Show progress * Show progress
*/ */
colour(color, 0); colour(color, BLACK);
printf("\rFetching message %02d/%02d, total %d bytes", msgnum, tmsgs, size); printf("\rFetching message %02d/%02d, total %d bytes", msgnum, tmsgs, size);
fflush(stdout); fflush(stdout);
if (color < 15) if (color < WHITE)
color++; color++;
else else
color = 9; color = LIGHTBLUE;
retr_msg(msgnum); retr_msg(msgnum);
} }
fclose(tp); fclose(tp);
@ -202,7 +202,7 @@ void check_popmail(char *user, char *pass)
pop3_close(); pop3_close();
if (tmsgs) { if (tmsgs) {
colour(13, 0); colour(LIGHTMAGENTA, BLACK);
printf("\r \r"); printf("\r \r");
fflush(stdout); fflush(stdout);
} }

View File

@ -2,7 +2,7 @@
* *
* File ..................: bbs/safe.c * File ..................: bbs/safe.c
* Purpose ...............: Safe Door * Purpose ...............: Safe Door
* Last modification date : 28-Jun-2001 * Last modification date : 26-Sep-2001
* *
***************************************************************************** *****************************************************************************
* Copyright (C) 1997-2001 * Copyright (C) 1997-2001
@ -70,7 +70,7 @@ void Safe(void)
Enter(1); Enter(1);
/* Safe Cracker Door */ /* Safe Cracker Door */
pout(15, 0, (char *) Language(86)); pout(WHITE, BLACK, (char *) Language(86));
Enter(1); Enter(1);
clear(); clear();
@ -81,7 +81,7 @@ void Safe(void)
return; return;
/* In the safe lies */ /* In the safe lies */
pout(15, 0, (char *) Language(87)); pout(WHITE, BLACK, (char *) Language(87));
fflush(stdout); fflush(stdout);
alarm_on(); alarm_on();
@ -90,15 +90,15 @@ void Safe(void)
clear(); clear();
Enter(2); Enter(2);
pout(10, 0, (char *) Language(88)); pout(LIGHTGREEN, BLACK, (char *) Language(88));
Enter(2); Enter(2);
colour(13, 0); colour(LIGHTMAGENTA, BLACK);
printf("%s", CFG.sSafePrize); printf("%s", CFG.sSafePrize);
Enter(2); Enter(2);
/* Do you want to open the safe ? [Y/n]: */ /* Do you want to open the safe ? [Y/n]: */
pout(15, 0, (char *) Language(102)); pout(WHITE, BLACK, (char *) Language(102));
fflush(stdout); fflush(stdout);
alarm_on(); alarm_on();
@ -120,7 +120,7 @@ void Safe(void)
Enter(1); Enter(1);
/* Do you want to try again ? [Y/n]: */ /* Do you want to try again ? [Y/n]: */
pout(12, 0, (char *) Language(101)); pout(LIGHTRED, BLACK, (char *) Language(101));
fflush(stdout); fflush(stdout);
alarm_on(); alarm_on();
@ -145,7 +145,7 @@ int getdigits(void)
int i; int i;
char temp[81]; char temp[81];
colour(15, 0); colour(WHITE, BLACK);
/* Please enter three numbers consisting from 1 to */ /* Please enter three numbers consisting from 1 to */
printf("\n\n%s%d\n", (char *) Language(89), CFG.iSafeMaxNumber); printf("\n\n%s%d\n", (char *) Language(89), CFG.iSafeMaxNumber);
/* Please enter three combinations. */ /* Please enter three combinations. */
@ -154,8 +154,8 @@ int getdigits(void)
while (TRUE) { while (TRUE) {
Enter(2); Enter(2);
/* 1st Digit */ /* 1st Digit */
pout(12, 0, (char *) Language(91)); pout(LIGHTRED, BLACK, (char *) Language(91));
colour(9, 0); colour(LIGHTBLUE, BLACK);
fflush(stdout); fflush(stdout);
Getnum(sFirst, 2); Getnum(sFirst, 2);
sprintf(temp, "1st: %s", sFirst); sprintf(temp, "1st: %s", sFirst);
@ -165,7 +165,7 @@ int getdigits(void)
} }
if((iFirst > CFG.iSafeMaxNumber) || (iFirst <= 0) || (strcmp(sFirst, "") == 0)) { if((iFirst > CFG.iSafeMaxNumber) || (iFirst <= 0) || (strcmp(sFirst, "") == 0)) {
colour(15,1); colour(WHITE, BLUE);
/* Please try again! You must input a number greater than Zero and less than */ /* Please try again! You must input a number greater than Zero and less than */
printf("\n%s%d.", (char *) Language(92), CFG.iSafeMaxNumber); printf("\n%s%d.", (char *) Language(92), CFG.iSafeMaxNumber);
Syslog('-', "Value out of range!"); Syslog('-', "Value out of range!");
@ -176,8 +176,8 @@ int getdigits(void)
while (TRUE) { while (TRUE) {
Enter(1); Enter(1);
/* 2nd digit: */ /* 2nd digit: */
pout(12, 0, (char *) Language(93)); pout(LIGHTRED, BLACK, (char *) Language(93));
colour(9, 0); colour(LIGHTBLUE, BLACK);
fflush(stdout); fflush(stdout);
Getnum(sSecond, 2); Getnum(sSecond, 2);
sprintf(temp, "2nd: %s", sSecond); sprintf(temp, "2nd: %s", sSecond);
@ -187,7 +187,7 @@ int getdigits(void)
} }
if((iSecond > CFG.iSafeMaxNumber) || (iSecond <= 0) || (strcmp(sSecond, "") == 0)) { if((iSecond > CFG.iSafeMaxNumber) || (iSecond <= 0) || (strcmp(sSecond, "") == 0)) {
colour(15,1); colour(WHITE, BLUE);
/* Please try again! You must input a number greater than Zero and less than */ /* Please try again! You must input a number greater than Zero and less than */
printf("\n%s%d.\n", (char *) Language(92), CFG.iSafeMaxNumber); printf("\n%s%d.\n", (char *) Language(92), CFG.iSafeMaxNumber);
Syslog('-', "Value out of range!"); Syslog('-', "Value out of range!");
@ -197,8 +197,8 @@ int getdigits(void)
while (TRUE) { while (TRUE) {
Enter(1); Enter(1);
pout(12, 0, (char *) Language(94)); pout(LIGHTRED, BLACK, (char *) Language(94));
colour(9, 0); colour(LIGHTBLUE, BLACK);
fflush(stdout); fflush(stdout);
Getnum(sThird, 2); Getnum(sThird, 2);
if((strcmp(sThird, "")) != 0) { if((strcmp(sThird, "")) != 0) {
@ -216,7 +216,7 @@ int getdigits(void)
break; break;
if((iThird > CFG.iSafeMaxNumber) || (iThird <= 0)) { if((iThird > CFG.iSafeMaxNumber) || (iThird <= 0)) {
colour(15,1); colour(WHITE, BLUE);
/* Please try again! You must input a number greater than Zero and less than */ /* Please try again! You must input a number greater than Zero and less than */
printf("\n%s%d.\n", (char *) Language(92), CFG.iSafeMaxNumber); printf("\n%s%d.\n", (char *) Language(92), CFG.iSafeMaxNumber);
Syslog('-', "Value out of range!"); Syslog('-', "Value out of range!");
@ -226,20 +226,20 @@ int getdigits(void)
/* Left: */ /* Left: */
Enter(1); Enter(1);
pout(12, 0, (char *) Language(95)); pout(LIGHTRED, BLACK, (char *) Language(95));
poutCR(9, 0, sFirst); poutCR(LIGHTBLUE, BLACK, sFirst);
/* Right: */ /* Right: */
pout(12, 0, (char *) Language(96)); pout(LIGHTRED, BLACK, (char *) Language(96));
poutCR(9, 0, sSecond); poutCR(LIGHTBLUE, BLACK, sSecond);
/* Left: */ /* Left: */
pout(12, 0, (char *) Language(95)); pout(LIGHTRED, BLACK, (char *) Language(95));
poutCR(9, 0, sThird); poutCR(LIGHTBLUE, BLACK, sThird);
Enter(1); Enter(1);
/* Attempt to open safe with this combination [Y/n]: */ /* Attempt to open safe with this combination [Y/n]: */
pout(12, 0, (char *) Language(97)); pout(LIGHTRED, BLACK, (char *) Language(97));
fflush(stdout); fflush(stdout);
alarm_on(); alarm_on();
i = toupper(Getone()); i = toupper(Getone());
@ -249,22 +249,22 @@ int getdigits(void)
printf("\n\n"); printf("\n\n");
/* Left: */ /* Left: */
pout(12, 0, (char *) Language(95)); pout(LIGHTRED, BLACK, (char *) Language(95));
for (iLoop = 0; iLoop < iFirst; iLoop++) for (iLoop = 0; iLoop < iFirst; iLoop++)
pout(14, 0, (char *)"."); pout(YELLOW, BLACK, (char *)".");
poutCR(9, 0, sFirst); poutCR(LIGHTBLUE, BLACK, sFirst);
/* Right: */ /* Right: */
pout(12, 0, (char *) Language(96)); pout(LIGHTRED, BLACK, (char *) Language(96));
for (iLoop = 0; iLoop < iSecond; iLoop++) for (iLoop = 0; iLoop < iSecond; iLoop++)
pout(14, 0, (char *)"."); pout(YELLOW, BLACK, (char *)".");
poutCR(9, 0, sSecond); poutCR(LIGHTBLUE, BLACK, sSecond);
/* Left: */ /* Left: */
pout(12, 0, (char *) Language(95)); pout(LIGHTRED, BLACK, (char *) Language(95));
for (iLoop = 0; iLoop < iThird; iLoop++) for (iLoop = 0; iLoop < iThird; iLoop++)
pout(14, 0, (char *)"."); pout(YELLOW, BLACK, (char *)".");
poutCR(9, 0, sThird); poutCR(LIGHTBLUE, BLACK, sThird);
if(CFG.iSafeNumGen) { if(CFG.iSafeNumGen) {
CFG.iSafeFirstDigit = (rand() % CFG.iSafeMaxNumber) + 1; CFG.iSafeFirstDigit = (rand() % CFG.iSafeMaxNumber) + 1;
@ -280,9 +280,9 @@ int getdigits(void)
Enter(1); Enter(1);
/* You have won the following... */ /* You have won the following... */
pout(12, 0, (char *) Language(98)); pout(LIGHTRED, BLACK, (char *) Language(98));
Enter(2); Enter(2);
poutCR(13, 0, CFG.sSafePrize); poutCR(LIGHTMAGENTA, BLACK, CFG.sSafePrize);
Enter(1); Enter(1);
sprintf(temp, "%s/etc/safe.data", getenv("MBSE_ROOT")); sprintf(temp, "%s/etc/safe.data", getenv("MBSE_ROOT"));
@ -311,15 +311,15 @@ int getdigits(void)
} }
Enter(1); Enter(1);
pout(10, 0, (char *) Language(99)); pout(LIGHTGREEN, BLACK, (char *) Language(99));
Enter(1); Enter(1);
if(CFG.iSafeNumGen) { if(CFG.iSafeNumGen) {
Enter(1); Enter(1);
/* The safe code was: */ /* The safe code was: */
pout(12, 0, (char *) Language(100)); pout(LIGHTRED, BLACK, (char *) Language(100));
Enter(2); Enter(2);
colour(12, 0); colour(LIGHTRED, BLACK);
/* Left: */ /* Left: */
printf("%s%d\n", (char *) Language(95), CFG.iSafeFirstDigit); printf("%s%d\n", (char *) Language(95), CFG.iSafeFirstDigit);
@ -335,13 +335,13 @@ int getdigits(void)
CFG.iSafeNumGen = FALSE; CFG.iSafeNumGen = FALSE;
if(iThird == 747) { if(iThird == 747) {
colour(9, 0); colour(LIGHTBLUE, BLACK);
printf("Code: %d %d %d\n", CFG.iSafeFirstDigit, CFG.iSafeSecondDigit, CFG.iSafeThirdDigit); printf("Code: %d %d %d\n", CFG.iSafeFirstDigit, CFG.iSafeSecondDigit, CFG.iSafeThirdDigit);
} }
Enter(1); Enter(1);
/* Please press key to continue */ /* Please press key to continue */
pout(10, 0, (char *) Language(87)); pout(LIGHTGREEN, BLACK, (char *) Language(87));
alarm_on(); alarm_on();
getchar(); getchar();
} }
@ -382,15 +382,15 @@ int SafeCheckUser(void)
Syslog('+', "Safe is currently LOCKED - exiting door."); Syslog('+', "Safe is currently LOCKED - exiting door.");
/* THE SAFE IS CURRENTLY LOCKED */ /* THE SAFE IS CURRENTLY LOCKED */
poutCR(15, 4, (char *) Language(103)); poutCR(WHITE, RED, (char *) Language(103));
Enter(1); Enter(1);
colour(12, 0); colour(LIGHTRED, BLACK);
/* has cracked the safe. */ /* has cracked the safe. */
printf("%s, %s\n", safe.Name, (char *) Language(104)); printf("%s, %s\n", safe.Name, (char *) Language(104));
/* The safe will remain locked until the sysop rewards the user. */ /* The safe will remain locked until the sysop rewards the user. */
pout(10, 0, (char *) Language(105)); pout(LIGHTGREEN, BLACK, (char *) Language(105));
Enter(2); Enter(2);
Pause(); Pause();
fclose(pSafe); fclose(pSafe);
@ -424,7 +424,7 @@ int SafeCheckUser(void)
if(Counter >= CFG.iSafeMaxTrys - 1) { if(Counter >= CFG.iSafeMaxTrys - 1) {
Enter(2); Enter(2);
/* Maximum trys per day exceeded */ /* Maximum trys per day exceeded */
pout(15, 0, (char *) Language(106)); pout(WHITE, BLACK, (char *) Language(106));
Enter(1); Enter(1);
sleep(3); sleep(3);
fclose(pSafe); fclose(pSafe);

View File

@ -2,10 +2,10 @@
* *
* File ..................: bbs/timeout.c * File ..................: bbs/timeout.c
* Purpose ...............: Inactivity timeout functions * Purpose ...............: Inactivity timeout functions
* Last modification date : 24-Dec-2000 * Last modification date : 26-Sep-2001
* *
***************************************************************************** *****************************************************************************
* Copyright (C) 1997-2000 * Copyright (C) 1997-2001
* *
* Michiel Broek FIDO: 2:280/2802 * Michiel Broek FIDO: 2:280/2802
* Beekmansbos 10 * Beekmansbos 10
@ -105,7 +105,7 @@ void die(int onsig)
void alarm_sig() void alarm_sig()
{ {
colour(12, 0); colour(LIGHTRED, BLACK);
/* Autologout: idletime reached.*/ /* Autologout: idletime reached.*/
printf("\r\n%s\r\n", (char *) Language(410)); printf("\r\n%s\r\n", (char *) Language(410));

View File

@ -1,4 +1,4 @@
# Makefile.in generated automatically by automake 1.4 from Makefile.am # Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
@ -109,7 +109,7 @@ DIST_COMMON = Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar TAR = tar
GZIP_ENV = --best GZIP_ENV = --best
DEP_FILES = .deps/grlist.P .deps/ledit.P .deps/m_archive.P \ DEP_FILES = .deps/grlist.P .deps/ledit.P .deps/m_archive.P \
.deps/m_bbs.P .deps/m_domain.P .deps/m_farea.P .deps/m_fdb.P \ .deps/m_bbs.P .deps/m_domain.P .deps/m_farea.P .deps/m_fdb.P \

View File

@ -2,7 +2,7 @@
* *
* File ..................: ledit.c * File ..................: ledit.c
* Purpose ...............: Line Editor * Purpose ...............: Line Editor
* Last modification date : 27-May-2001 * Last modification date : 27-Sep-2001
* *
***************************************************************************** *****************************************************************************
* Copyright (C) 1997-2001 * Copyright (C) 1997-2001
@ -1449,9 +1449,8 @@ void edit_color(int *fg, int *bg, char *help)
clr_index(); clr_index();
set_color(WHITE, BLACK); set_color(WHITE, BLACK);
mvprintw(5, 6, "1.7 EDIT COLORS"); mvprintw(5, 6, "1.7 EDIT COLORS");
sprintf(temp, "Change the ^%s^ color with arrow keys, press <Enter> whene done", help);
sprintf(temp, "Change ^%s^ color with arrow keys, press <Enter> whene done", help); showhelp(temp);
showhelp(help);
for (f = 0; f < 16; f++) for (f = 0; f < 16; f++)
for (b = 0; b < 8; b++) { for (b = 0; b < 8; b++) {
@ -1466,7 +1465,7 @@ void edit_color(int *fg, int *bg, char *help)
mvprintw(7, 6, "This is an example..."); mvprintw(7, 6, "This is an example...");
fflush(stdout); fflush(stdout);
mvprintw(b + 9, f + 33, "*"); mvprintw(b + 9, f + 33, "*");
ch = readkey(10,10,f,b); ch = readkey(7,28,f,b);
mvprintw(b + 9, f + 33, "."); mvprintw(b + 9, f + 33, ".");
switch(ch) { switch(ch) {
case KEY_LINEFEED: case KEY_LINEFEED:
@ -1491,6 +1490,30 @@ void edit_color(int *fg, int *bg, char *help)
char *get_color(int c)
{
switch (c) {
case BLACK: return (char *)"black";
case BLUE: return (char *)"blue";
case GREEN: return (char *)"green";
case CYAN: return (char *)"cyan";
case RED: return (char *)"red";
case MAGENTA: return (char *)"magenta";
case BROWN: return (char *)"brown";
case LIGHTGRAY: return (char *)"lightgray";
case DARKGRAY: return (char *)"darkgray";
case LIGHTBLUE: return (char *)"lightblue";
case LIGHTGREEN: return (char *)"lightgreen";
case LIGHTCYAN: return (char *)"lightcyan";
case LIGHTRED: return (char *)"lightred";
case LIGHTMAGENTA: return (char *)"lightmagenta";
case YELLOW: return (char *)"yellow";
case WHITE: return (char *)"white";
}
}
char *getmenutype(int val) char *getmenutype(int val)
{ {
switch (val) { switch (val) {
@ -1514,7 +1537,7 @@ char *getmenutype(int val)
case 18: return (char *)"Send an on-line message"; case 18: return (char *)"Send an on-line message";
case 19: return (char *)"Display textfile with more"; case 19: return (char *)"Display textfile with more";
case 20: return (char *)"Display .A?? file with Enter"; case 20: return (char *)"Display .A?? file with Enter";
case 21: return (char *)"Display Text Only";
case 22: return (char *)"Message to nextuser door"; case 22: return (char *)"Message to nextuser door";
case 23: return (char *)"Time banking system"; case 23: return (char *)"Time banking system";
@ -1590,8 +1613,6 @@ char *getmenutype(int val)
case 505: return (char *)"Print a BBS"; case 505: return (char *)"Print a BBS";
case 506: return (char *)"Search for a BBS"; case 506: return (char *)"Search for a BBS";
case 999: return (char *)"Display Text Only";
default: return (char *)"Unknown menu"; default: return (char *)"Unknown menu";
} }
} }

View File

@ -59,6 +59,7 @@ void show_magictype(int, int, int);
int edit_magictype(int, int, int); int edit_magictype(int, int, int);
void show_aka(int, int, fidoaddr); void show_aka(int, int, fidoaddr);
void edit_color(int *, int *, char *); void edit_color(int *, int *, char *);
char *get_color(int);
char *getmenutype(int); char *getmenutype(int);

View File

@ -2,7 +2,7 @@
* *
* File ..................: m_global.c * File ..................: m_global.c
* Purpose ...............: Global Setup Program * Purpose ...............: Global Setup Program
* Last modification date : 11-Aug-2001 * Last modification date : 27-Sep-2001
* *
***************************************************************************** *****************************************************************************
* Copyright (C) 1997-2001 * Copyright (C) 1997-2001
@ -1633,12 +1633,6 @@ int PickAka(char *msg, int openit)
} }
char Co[16][16] = {
"Black", "Blue", "Green", "Cyan",
"Red", "Magenta", "Brown", "Lightgray",
"Darkgary", "Lightblue", "Lightgreen", "Lightcyan",
"Lightred", "Lightmagenta", "Yellow", "White" };
int global_doc(FILE *fp, FILE *toc, int page) int global_doc(FILE *fp, FILE *toc, int page)
{ {
@ -1758,17 +1752,17 @@ int global_doc(FILE *fp, FILE *toc, int page)
addtoc(fp, toc, 1, 7, page, (char *)"Text colors"); addtoc(fp, toc, 1, 7, page, (char *)"Text colors");
fprintf(fp, " Normal text %s on %s\n", Co[CFG.TextColourF], Co[CFG.TextColourB]); fprintf(fp, " Normal text %s on %s\n", get_color(CFG.TextColourF), get_color(CFG.TextColourB));
fprintf(fp, " Underline text %s on %s\n", Co[CFG.UnderlineColourF], Co[CFG.UnderlineColourB]); fprintf(fp, " Underline text %s on %s\n", get_color(CFG.UnderlineColourF), get_color(CFG.UnderlineColourB));
fprintf(fp, " Input text %s on %s\n", Co[CFG.InputColourF], Co[CFG.InputColourB]); fprintf(fp, " Input text %s on %s\n", get_color(CFG.InputColourF), get_color(CFG.InputColourB));
fprintf(fp, " CR text %s on %s\n", Co[CFG.CRColourF], Co[CFG.CRColourB]); fprintf(fp, " CR text %s on %s\n", get_color(CFG.CRColourF), get_color(CFG.CRColourB));
fprintf(fp, " More prompt %s on %s\n", Co[CFG.MoreF], Co[CFG.MoreB]); fprintf(fp, " More prompt %s on %s\n", get_color(CFG.MoreF), get_color(CFG.MoreB));
fprintf(fp, " Hilite text %s on %s\n", Co[CFG.HiliteF], Co[CFG.HiliteB]); fprintf(fp, " Hilite text %s on %s\n", get_color(CFG.HiliteF), get_color(CFG.HiliteB));
fprintf(fp, " File name %s on %s\n", Co[CFG.FilenameF], Co[CFG.FilenameB]); fprintf(fp, " File name %s on %s\n", get_color(CFG.FilenameF), get_color(CFG.FilenameB));
fprintf(fp, " File size %s on %s\n", Co[CFG.FilesizeF], Co[CFG.FilesizeB]); fprintf(fp, " File size %s on %s\n", get_color(CFG.FilesizeF), get_color(CFG.FilesizeB));
fprintf(fp, " File date %s on %s\n", Co[CFG.FiledateF], Co[CFG.FiledateB]); fprintf(fp, " File date %s on %s\n", get_color(CFG.FiledateF), get_color(CFG.FiledateB));
fprintf(fp, " File description %s on %s\n", Co[CFG.FiledescF], Co[CFG.FiledescB]); fprintf(fp, " File description %s on %s\n", get_color(CFG.FiledescF), get_color(CFG.FiledescB));
fprintf(fp, " Message input %s on %s\n", Co[CFG.MsgInputColourF], Co[CFG.MsgInputColourB]); fprintf(fp, " Message input %s on %s\n", get_color(CFG.MsgInputColourF), get_color(CFG.MsgInputColourB));
page = newpage(fp, page); page = newpage(fp, page);
addtoc(fp, toc, 1, 8, page, (char *)"Next user door"); addtoc(fp, toc, 1, 8, page, (char *)"Next user door");

View File

@ -2,7 +2,7 @@
* *
* File ..................: mbsetup/m_menu.c * File ..................: mbsetup/m_menu.c
* Purpose ...............: Edit BBS menus * Purpose ...............: Edit BBS menus
* Last modification date : 27-May-2001 * Last modification date : 26-Sep-2001
* *
***************************************************************************** *****************************************************************************
* Copyright (C) 1997-2001 * Copyright (C) 1997-2001
@ -96,8 +96,6 @@ char *select_menurec(int max)
void Show_A_Menu(void); void Show_A_Menu(void);
void Show_A_Menu(void) void Show_A_Menu(void)
{ {
char *p;
clr_index(); clr_index();
set_color(WHITE, BLACK); set_color(WHITE, BLACK);
mvprintw( 5, 2, "8.3. EDIT MENU ITEM"); mvprintw( 5, 2, "8.3. EDIT MENU ITEM");
@ -105,50 +103,44 @@ void Show_A_Menu(void)
mvprintw( 7, 2, "1. Sel. key"); mvprintw( 7, 2, "1. Sel. key");
mvprintw( 8, 2, "2. Type nr."); mvprintw( 8, 2, "2. Type nr.");
mvprintw( 9, 2, "3. Opt. data"); mvprintw( 9, 2, "3. Opt. data");
mvprintw(10, 2, "4. Display"); mvprintw(11, 2, "4. Display");
mvprintw(11, 2, "5. Security"); mvprintw(12, 2, "5. Security");
mvprintw(12, 2, "6. Min. age"); mvprintw(13, 2, "6. Min. age");
mvprintw(13, 2, "7. Max. lvl"); mvprintw(14, 2, "7. Max. lvl");
mvprintw(14, 2, "8. Password"); mvprintw(15, 2, "8. Password");
mvprintw(15, 2, "9. Credit"); mvprintw(16, 2, "9. Credit");
mvprintw(16, 2, "10. Colors"); mvprintw(17, 2, "10. Lo-colors");
mvprintw(12,42, "11. Autoexec"); mvprintw(18, 2, "11. Hi-colors");
mvprintw(13,42, "12. Menu open"); mvprintw(15,42, "12. Autoexec");
if (menus.MenuType == 7) { if (menus.MenuType == 7) {
mvprintw(14,42, "13. No door.sys"); mvprintw(16,42, "13. No door.sys");
mvprintw(15,42, "14. Y2K style"); mvprintw(17,42, "14. Y2K style");
mvprintw(16,42, "15. Use Comport"); mvprintw(18,42, "15. Use Comport");
} }
set_color(WHITE, BLACK); set_color(WHITE, BLACK);
show_str( 7,16, 1, menus.MenuKey); show_str( 7,16, 1, menus.MenuKey);
show_int( 8,16, menus.MenuType); show_str( 8, 26,29, menus.TypeDesc); show_int( 8,16, menus.MenuType); show_str( 8, 26,29, menus.TypeDesc);
show_str( 9,16,64, menus.OptionalData); show_str( 9,16,64, menus.OptionalData);
show_str(10,16,64, menus.Display); show_str(10,16,64,(char *)"1234567890123456789012345678901234567890123456789012345678901234");
show_sec(11,16, menus.MenuSecurity); show_str(11,16,64, menus.Display);
show_int(12,16, menus.Age); show_sec(12,16, menus.MenuSecurity);
show_int(13,16, menus.MaxSecurity); show_int(13,16, menus.Age);
show_int(14,16, menus.MaxSecurity);
if (strlen(menus.Password)) if (strlen(menus.Password))
show_str(14,16,14, (char *)"**************"); show_str(15,16,14, (char *)"**************");
else else
show_str(14,16,14, (char *)"<null>"); show_str(15,16,14, (char *)"<null>");
show_int(15,16, menus.Credit); show_int(16,16, menus.Credit);
S_COL(16,16, "Display color", menus.ForeGnd, menus.BackGnd) S_COL(17,16, "Normal display color", menus.ForeGnd, menus.BackGnd)
S_COL(18,16, "Bright display color", menus.HiForeGnd, menus.HiBackGnd)
set_color(WHITE, BLACK); set_color(WHITE, BLACK);
show_bool(12,58, menus.AutoExec); show_bool(15,58, menus.AutoExec);
if ((menus.OpenFrom == 0) && (menus.OpenTo == 0))
show_str(13,58, 6, (char *)"Always");
else {
p = calloc(40, sizeof(char));
sprintf(p, "%02d:%02d - %02d:%02d", menus.OpenFrom / 60, menus.OpenFrom % 60,
menus.OpenTo / 60, menus.OpenTo % 60);
show_str(13, 58, 13, p);
free(p);
}
if (menus.MenuType == 7) { if (menus.MenuType == 7) {
show_bool(14,58, menus.NoDoorsys); show_bool(16,58, menus.NoDoorsys);
show_bool(15,58, menus.Y2Kdoorsys); show_bool(17,58, menus.Y2Kdoorsys);
show_bool(16,58, menus.Comport); show_bool(18,58, menus.Comport);
} }
} }
@ -222,38 +214,41 @@ void Edit_A_Menu(void)
for (;;) { for (;;) {
switch(select_menu(15)) { switch(select_menu(15)) {
case 0: case 0: return;
return;
break; break;
case 1: E_UPS( 7,16, 1, menus.MenuKey, "The ^key^ to select this menu item") case 1: E_UPS( 7,16, 1, menus.MenuKey, "The ^key^ to select this menu item")
case 2: menus.MenuType = GetMenuType(); case 2: menus.MenuType = GetMenuType();
memset(&menus.TypeDesc, 0, sizeof(menus.TypeDesc)); memset(&menus.TypeDesc, 0, sizeof(menus.TypeDesc));
if (menus.MenuType) if (menus.MenuType)
strcpy(menus.TypeDesc, getmenutype(menus.MenuType)); strcpy(menus.TypeDesc, getmenutype(menus.MenuType));
if (menus.MenuType == 21)
menus.AutoExec = TRUE;
Show_A_Menu(); Show_A_Menu();
break; break;
case 3: E_STR( 9,16,64, menus.OptionalData, "The ^optional data^ for this menu item") case 3: E_STR( 9,16,64, menus.OptionalData, "The ^optional data^ for this menu item")
case 4: E_STR(10,16,64, menus.Display, "The text to ^display^ for this menu") case 4: E_STR(11,16,64, menus.Display, "The text to ^display^ for this menu")
case 5: E_SEC(11,16, menus.MenuSecurity, "7.3.5 MENU ACCESS SECURITY", Show_A_Menu) case 5: E_SEC(12,16, menus.MenuSecurity, "7.3.5 MENU ACCESS SECURITY", Show_A_Menu)
case 6: E_INT(12,16, menus.Age, "The minimum ^Age^ to select this menu, 0 is don't care") case 6: E_INT(13,16, menus.Age, "The minimum ^Age^ to select this menu, 0 is don't care")
case 7: E_INT(13,16, menus.MaxSecurity, "The maximum ^Security level^ to access this menu") case 7: E_INT(14,16, menus.MaxSecurity, "The maximum ^Security level^ to access this menu")
case 8: E_STR(14,16,14, menus.Password, "The ^password^ to access this menu item") case 8: E_STR(15,16,14, menus.Password, "The ^password^ to access this menu item")
case 9: E_INT(15,16, menus.Credit, "The ^credit cost^ for this menu item") case 9: E_INT(16,16, menus.Credit, "The ^credit cost^ for this menu item")
case 10:edit_color(&menus.ForeGnd, &menus.BackGnd, (char *)"Display color"); case 10:edit_color(&menus.ForeGnd, &menus.BackGnd, (char *)"normal");
Show_A_Menu(); Show_A_Menu();
break; break;
case 11:E_BOOL(12,58, menus.AutoExec, "Is this an ^Autoexecute^ menu item") case 11:edit_color(&menus.HiForeGnd, &menus.HiBackGnd, (char *)"bright");
Show_A_Menu();
break;
case 12:E_BOOL(15,58, menus.AutoExec, "Is this an ^Autoexecute^ menu item")
case 13:if (menus.MenuType == 7) { case 13:if (menus.MenuType == 7) {
E_BOOL(14,58, menus.NoDoorsys, "Suppress writing ^door.sys^ dropfile") E_BOOL(16,58, menus.NoDoorsys, "Suppress writing ^door.sys^ dropfile")
} else } else
break; break;
case 14:if (menus.MenuType == 7) { case 14:if (menus.MenuType == 7) {
E_BOOL(15,58, menus.Y2Kdoorsys, "Create ^door.sys^ with 4 digit yearnumbers") E_BOOL(17,58, menus.Y2Kdoorsys, "Create ^door.sys^ with 4 digit yearnumbers")
} else } else
break; break;
case 15:if (menus.MenuType == 7) { case 15:if (menus.MenuType == 7) {
E_BOOL(16,58, menus.Comport, "Write real ^COM port^ in door.sys for Vmodem patch") E_BOOL(18,58, menus.Comport, "Write real ^COM port^ in door.sys for Vmodem patch")
} else } else
break; break;
} }
@ -306,7 +301,7 @@ void EditMenu(char *Name)
offset = ((o + i) - 1) * sizeof(menus); offset = ((o + i) - 1) * sizeof(menus);
fseek(tmp, offset, SEEK_SET); fseek(tmp, offset, SEEK_SET);
fread(&menus, sizeof(menus), 1, tmp); fread(&menus, sizeof(menus), 1, tmp);
if (menus.MenuType || menus.AutoExec) { if (menus.MenuKey[0] || menus.AutoExec) {
set_color(CYAN, BLACK); set_color(CYAN, BLACK);
mvprintw(y, 5, "%3d. ", o + i); mvprintw(y, 5, "%3d. ", o + i);
if (menus.AutoExec) { if (menus.AutoExec) {
@ -341,9 +336,10 @@ void EditMenu(char *Name)
if ((fil = fopen(temp, "w+")) == NULL) { if ((fil = fopen(temp, "w+")) == NULL) {
working(2, 0, 0); working(2, 0, 0);
} else { } else {
Syslog('+', "Updated menu %s", temp);
fseek(tmp, 0, SEEK_SET); fseek(tmp, 0, SEEK_SET);
while (fread(&menus, sizeof(menus), 1, tmp) == 1) { while (fread(&menus, sizeof(menus), 1, tmp) == 1) {
if (menus.MenuType || menus.AutoExec) if (menus.MenuKey[0] || menus.AutoExec)
fwrite(&menus, sizeof(menus), 1, fil); fwrite(&menus, sizeof(menus), 1, fil);
} }
fclose(fil); fclose(fil);
@ -359,6 +355,8 @@ void EditMenu(char *Name)
if (strncmp(pick, "A", 1) == 0) { if (strncmp(pick, "A", 1) == 0) {
working(1, 0, 0); working(1, 0, 0);
memset(&menus, 0, sizeof(menus)); memset(&menus, 0, sizeof(menus));
menus.ForeGnd = LIGHTGRAY;
menus.HiForeGnd = WHITE;
fseek(tmp, 0, SEEK_END); fseek(tmp, 0, SEEK_END);
fwrite(&menus, sizeof(menus), 1, tmp); fwrite(&menus, sizeof(menus), 1, tmp);
records++; records++;
@ -573,6 +571,10 @@ int bbs_menu_doc(FILE *fp, FILE *toc, int page)
fprintf(fp, " Maximum level %d\n", menus.MaxSecurity); fprintf(fp, " Maximum level %d\n", menus.MaxSecurity);
fprintf(fp, " Password %s\n", menus.Password); fprintf(fp, " Password %s\n", menus.Password);
fprintf(fp, " Credits %ld\n", menus.Credit); fprintf(fp, " Credits %ld\n", menus.Credit);
fprintf(fp, " Lo-colors %s on %s\n",
get_color(menus.ForeGnd), get_color(menus.BackGnd));
fprintf(fp, " Hi-colors %s on %s\n",
get_color(menus.HiForeGnd), get_color(menus.HiBackGnd));
if (menus.MenuType == 7) { if (menus.MenuType == 7) {
fprintf(fp, " No door.sys %s\n", getboolean(menus.NoDoorsys)); fprintf(fp, " No door.sys %s\n", getboolean(menus.NoDoorsys));
fprintf(fp, " Y2K door.sys %s\n", getboolean(menus.Y2Kdoorsys)); fprintf(fp, " Y2K door.sys %s\n", getboolean(menus.Y2Kdoorsys));