Added posting messages with user alias
This commit is contained in:
246
mbsebbs/mail.c
246
mbsebbs/mail.c
@@ -1,8 +1,7 @@
|
||||
/*****************************************************************************
|
||||
*
|
||||
* File ..................: bbs/mail.c
|
||||
* $Id$
|
||||
* Purpose ...............: Message reading and writing.
|
||||
* Last modification date : 26-Oct-2001
|
||||
* Todo ..................: Implement message groups.
|
||||
*
|
||||
*****************************************************************************
|
||||
@@ -132,7 +131,7 @@ int Post_Allowed(void)
|
||||
{
|
||||
if (msgs.MsgKinds == RONLY) {
|
||||
/* Message area is Readonly */
|
||||
pout(12, 0, (char *) Language(437));
|
||||
pout(LIGHTRED, BLACK, (char *) Language(437));
|
||||
fflush(stdout);
|
||||
sleep(3);
|
||||
return FALSE;
|
||||
@@ -142,6 +141,41 @@ int Post_Allowed(void)
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Check if Alias is allowed, and if so if the user
|
||||
* wants to use this in the From: field.
|
||||
*/
|
||||
int Alias_Option(void);
|
||||
int Alias_Option(void)
|
||||
{
|
||||
int rc = TRUE;
|
||||
|
||||
if (!msgs.Aliases)
|
||||
return FALSE;
|
||||
if (strlen(exitinfo.sHandle) == 0)
|
||||
return FALSE;
|
||||
|
||||
/* Use your alias ( */
|
||||
pout(CYAN, BLACK, (char *)Language(477));
|
||||
pout(CYAN, BLACK, exitinfo.sHandle);
|
||||
/* YN|) to post this message [Y/n]: */
|
||||
pout(CYAN, BLACK, (char *)Language(478));
|
||||
colour(CFG.MsgInputColourF, CFG.MsgInputColourB);
|
||||
fflush(stdout);
|
||||
alarm_on();
|
||||
if (toupper(Getone()) == Keystroke(478, 1)) {
|
||||
rc = FALSE;
|
||||
printf("%c", Keystroke(478, 1));
|
||||
} else {
|
||||
printf("%c", Keystroke(478, 0));
|
||||
}
|
||||
Enter(2);
|
||||
fflush(stdout);
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Check if netmail may be send crash or immediate.
|
||||
*/
|
||||
@@ -161,7 +195,7 @@ int Crash_Option(faddr *Dest)
|
||||
if (((Nlent = getnlent(Dest)) != NULL) && (Nlent->addr.zone)) {
|
||||
if (Nlent->oflags & OL_CM) {
|
||||
/* Crash [y/N]: */
|
||||
pout(3, 0, (char *)Language(461));
|
||||
pout(CYAN, BLACK, (char *)Language(461));
|
||||
colour(CFG.MsgInputColourF, CFG.MsgInputColourB);
|
||||
fflush(stdout);
|
||||
alarm_on();
|
||||
@@ -172,7 +206,7 @@ int Crash_Option(faddr *Dest)
|
||||
printf("%c", Keystroke(461, 1));
|
||||
} else {
|
||||
/* Warning: node is not CM, send Immediate [y/N]: */
|
||||
pout(3, 0, (char *)Language(462));
|
||||
pout(CYAN, BLACK, (char *)Language(462));
|
||||
colour(CFG.MsgInputColourF, CFG.MsgInputColourB);
|
||||
fflush(stdout);
|
||||
alarm_on();
|
||||
@@ -203,7 +237,7 @@ int IsPrivate(void)
|
||||
if (msgs.MsgKinds == BOTH) {
|
||||
Enter(1);
|
||||
/* Private [y/N]: */
|
||||
pout(3, 0, (char *) Language(163));
|
||||
pout(CYAN, BLACK, (char *) Language(163));
|
||||
fflush(stdout);
|
||||
alarm_on();
|
||||
if (toupper(Getone()) == Keystroke(163, 0)) {
|
||||
@@ -243,7 +277,7 @@ void Check_Attach(void)
|
||||
while (TRUE) {
|
||||
Enter(1);
|
||||
/* Attach file [y/N]: */
|
||||
pout(3, 0, (char *)Language(463));
|
||||
pout(CYAN, BLACK, (char *)Language(463));
|
||||
fflush(stdout);
|
||||
alarm_on();
|
||||
if (toupper(Getone()) == Keystroke(463, 0)) {
|
||||
@@ -251,7 +285,7 @@ void Check_Attach(void)
|
||||
printf("%c", Keystroke(463, 0));
|
||||
Enter(1);
|
||||
/* Please enter filename: */
|
||||
pout(14, 0, (char *)Language(245));
|
||||
pout(YELLOW, BLACK, (char *)Language(245));
|
||||
colour(CFG.MsgInputColourF, CFG.MsgInputColourB);
|
||||
fflush(stdout);
|
||||
alarm_on();
|
||||
@@ -372,15 +406,28 @@ void Post_Msg()
|
||||
|
||||
Msg_New();
|
||||
|
||||
colour(9, 0);
|
||||
colour(LIGHTBLUE, BLACK);
|
||||
/* Posting message in area: */
|
||||
printf("\n%s\"%s\"\n", (char *) Language(156), sMsgAreaDesc);
|
||||
pout(14, 0, (char *) Language(157));
|
||||
|
||||
if (msgs.Type == NEWS) {
|
||||
if (CFG.EmailMode == E_NOISP) {
|
||||
if (Alias_Option()) {
|
||||
/*
|
||||
* Set Handle
|
||||
*/
|
||||
strcpy(Msg.From, exitinfo.sHandle);
|
||||
tlcap(Msg.From); // Do we want this???
|
||||
/* From : */
|
||||
pout(YELLOW, BLACK, (char *) Language(157));
|
||||
} else {
|
||||
/*
|
||||
* Normal from address, no alias
|
||||
*/
|
||||
/* From : */
|
||||
pout(YELLOW, BLACK, (char *) Language(157));
|
||||
if (msgs.Type == NEWS) {
|
||||
if (CFG.EmailMode != E_PRMISP) {
|
||||
/*
|
||||
* If not connected to the internet, use Fido style addressing.
|
||||
* If no internet mail domain, use fidonet addressing.
|
||||
*/
|
||||
Dest = fido2faddr(CFG.EmailFidoAka);
|
||||
strcpy(Msg.From, exitinfo.sUserName);
|
||||
@@ -388,19 +435,25 @@ void Post_Msg()
|
||||
} else {
|
||||
sprintf(Msg.From, "%s@%s (%s)", exitinfo.Name, CFG.sysdomain, exitinfo.sUserName);
|
||||
}
|
||||
} else {
|
||||
} else {
|
||||
strcpy(Msg.From, exitinfo.sUserName);
|
||||
tlcap(Msg.From);
|
||||
}
|
||||
}
|
||||
colour(CFG.MsgInputColourF, CFG.MsgInputColourB);
|
||||
printf("%s", Msg.From);
|
||||
|
||||
pout(CFG.MsgInputColourF, CFG.MsgInputColourB, Msg.From);
|
||||
Syslog('b', "Setting From: %s", Msg.From);
|
||||
|
||||
if (msgs.Type != NEWS) {
|
||||
if ((msgs.Type == NEWS) || (msgs.Type == LIST)) {
|
||||
/*
|
||||
* Newsmode or maillist mode, automatic addressing to All.
|
||||
* */
|
||||
strcpy(Msg.To, "All");
|
||||
} else {
|
||||
while (TRUE) {
|
||||
Enter(1);
|
||||
/* To : */
|
||||
pout(14, 0, (char *) Language(158));
|
||||
pout(YELLOW, BLACK, (char *) Language(158));
|
||||
|
||||
colour(CFG.MsgInputColourF, CFG.MsgInputColourB);
|
||||
Getname(Msg.To, 35);
|
||||
@@ -426,14 +479,14 @@ void Post_Msg()
|
||||
*/
|
||||
if (msgs.Type == LOCALMAIL) {
|
||||
/* Verifying user ... */
|
||||
pout(3, 0, (char *) Language(159));
|
||||
pout(CYAN, BLACK, (char *) Language(159));
|
||||
x = CheckUser(Msg.To);
|
||||
} else
|
||||
x = TRUE;
|
||||
}
|
||||
} else if (msgs.Type == NETMAIL) {
|
||||
x = FALSE;
|
||||
pout(14, 0, (char *)"Address : ");
|
||||
pout(YELLOW, BLACK, (char *)"Address : ");
|
||||
FidoNode = calloc(61, sizeof(char));
|
||||
colour(CFG.MsgInputColourF, CFG.MsgInputColourB);
|
||||
GetstrC(FidoNode, 60);
|
||||
@@ -442,7 +495,7 @@ void Post_Msg()
|
||||
point = Dest->point;
|
||||
Dest->point = 0;
|
||||
if (((Nlent = getnlent(Dest)) != NULL) && (Nlent->addr.zone)) {
|
||||
colour(14, 0);
|
||||
colour(YELLOW, BLACK);
|
||||
if (point)
|
||||
printf("Boss : ");
|
||||
else
|
||||
@@ -470,7 +523,7 @@ void Post_Msg()
|
||||
} else {
|
||||
Dest->point = point;
|
||||
printf("\r");
|
||||
pout(3, 0, (char *) Language(241));
|
||||
pout(CYAN, BLACK, (char *) Language(241));
|
||||
fflush(stdout);
|
||||
alarm_on();
|
||||
if (toupper(Getone()) == Keystroke(241, 0)) {
|
||||
@@ -489,20 +542,15 @@ void Post_Msg()
|
||||
if(!x) {
|
||||
printf("\r");
|
||||
/* User not found. Try again, or (Enter) to quit */
|
||||
pout(3, 0, (char *) Language(160));
|
||||
pout(CYAN, BLACK, (char *) Language(160));
|
||||
} else
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
/*
|
||||
* Newsmode, automatic addressing to All.
|
||||
*/
|
||||
strcpy(Msg.To, "All");
|
||||
}
|
||||
|
||||
Enter(1);
|
||||
/* Subject : */
|
||||
pout(14, 0, (char *) Language(161));
|
||||
pout(YELLOW, BLACK, (char *) Language(161));
|
||||
colour(CFG.MsgInputColourF, CFG.MsgInputColourB);
|
||||
fflush(stdout);
|
||||
alarm_on();
|
||||
@@ -512,7 +560,7 @@ void Post_Msg()
|
||||
if((strcmp(Msg.Subject, "")) == 0) {
|
||||
Enter(1);
|
||||
/* Abort Message [y/N] ?: */
|
||||
pout(3, 0, (char *) Language(162));
|
||||
pout(CYAN, BLACK, (char *) Language(162));
|
||||
fflush(stdout);
|
||||
alarm_on();
|
||||
|
||||
@@ -646,27 +694,28 @@ void ShowMsgHdr()
|
||||
static char Buf1[35], Buf2[35], Buf3[81];
|
||||
struct tm *tm;
|
||||
time_t now;
|
||||
int color;
|
||||
|
||||
Buf1[0] = '\0';
|
||||
Buf2[0] = '\0';
|
||||
Buf3[0] = '\0';
|
||||
|
||||
clear();
|
||||
colour(1,7);
|
||||
colour(BLUE, LIGHTGRAY);
|
||||
printf(" %-70s", sMsgAreaDesc);
|
||||
|
||||
colour(4,7);
|
||||
colour(RED, LIGHTGRAY);
|
||||
printf("#%-5lu\n", Msg.Id);
|
||||
|
||||
/* Date : */
|
||||
pout(14, 0, (char *) Language(206));
|
||||
colour(10, 0);
|
||||
pout(YELLOW, BLACK, (char *) Language(206));
|
||||
colour(GREEN, BLACK);
|
||||
/* Use intermediate variable to prevent SIGBUS on Sparc's */
|
||||
now = Msg.Written;
|
||||
tm = gmtime(&now);
|
||||
printf("%02d-%02d-%d %02d:%02d:%02d", tm->tm_mday, tm->tm_mon+1,
|
||||
tm->tm_year+1900, tm->tm_hour, tm->tm_min, tm->tm_sec);
|
||||
colour(12, 0);
|
||||
colour(LIGHTRED, BLACK);
|
||||
if (Msg.Local) printf(" Local");
|
||||
if (Msg.Intransit) printf(" Transit");
|
||||
if (Msg.Private) printf(" Priv.");
|
||||
@@ -701,38 +750,46 @@ void ShowMsgHdr()
|
||||
printf("\n");
|
||||
|
||||
/* From : */
|
||||
pout(14,0, (char *) Language(209));
|
||||
colour(10, 0);
|
||||
pout(YELLOW, BLACK, (char *) Language(209));
|
||||
if (IsMe(Msg.From))
|
||||
color = LIGHTGREEN;
|
||||
else
|
||||
color = GREEN;
|
||||
colour(color++, BLACK);
|
||||
printf("%s ", Msg.From);
|
||||
if (iMsgAreaType != LOCALMAIL) {
|
||||
colour(11, 0);
|
||||
colour(color, BLACK);
|
||||
printf("(%s)", Msg.FromAddress);
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
/* To : */
|
||||
pout(14,0, (char *) Language(208));
|
||||
colour(10, 0);
|
||||
pout(YELLOW, BLACK, (char *) Language(208));
|
||||
if (IsMe(Msg.To))
|
||||
color = LIGHTGREEN;
|
||||
else
|
||||
color = GREEN;
|
||||
colour(color++, BLACK);
|
||||
printf("%s ", Msg.To);
|
||||
if (iMsgAreaType == NETMAIL) {
|
||||
colour(11, 0);
|
||||
colour(color, BLACK);
|
||||
printf("(%s)", Msg.ToAddress);
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
/* Subject : */
|
||||
pout(14,0, (char *) Language(210));
|
||||
colour(10, 0);
|
||||
pout(YELLOW, BLACK, (char *) Language(210));
|
||||
colour(GREEN, BLACK);
|
||||
printf("%s\n", Msg.Subject);
|
||||
|
||||
colour(CFG.HiliteF, CFG.HiliteB);
|
||||
colour(14, 1);
|
||||
colour(YELLOW, BLUE);
|
||||
if (Msg.Reply)
|
||||
sprintf(Buf1, "\"+\" %s %lu", (char *)Language(211), Msg.Reply);
|
||||
if (Msg.Original)
|
||||
sprintf(Buf2, " \"-\" %s %lu", (char *)Language(212), Msg.Original);
|
||||
sprintf(Buf3, "%s%s ", Buf1, Buf2);
|
||||
colour(14, 1);
|
||||
colour(YELLOW, BLUE);
|
||||
printf("%78s \n", Buf3);
|
||||
}
|
||||
|
||||
@@ -755,7 +812,7 @@ int Export_a_Msg(unsigned long Num)
|
||||
* The area data is already set, so we can do the next things
|
||||
*/
|
||||
if (MsgBase.Total == 0) {
|
||||
colour(15, 0);
|
||||
colour(WHITE, BLACK);
|
||||
/* There are no messages in this area */
|
||||
printf("\n%s\n\n", (char *) Language(205));
|
||||
sleep(3);
|
||||
@@ -769,7 +826,7 @@ int Export_a_Msg(unsigned long Num)
|
||||
|
||||
if (!Msg_ReadHeader(Num)) {
|
||||
perror("");
|
||||
colour(15, 0);
|
||||
colour(WHITE, BLACK);
|
||||
printf("\n%s\n\n", (char *)Language(77));
|
||||
Msg_Close();
|
||||
sleep(3);
|
||||
@@ -853,7 +910,7 @@ int Read_a_Msg(unsigned long Num, int UpdateLR)
|
||||
* The area data is already set, so we can do the next things
|
||||
*/
|
||||
if (MsgBase.Total == 0) {
|
||||
colour(15, 0);
|
||||
colour(WHITE, BLACK);
|
||||
/* There are no messages in this area */
|
||||
printf("\n%s\n\n", (char *) Language(205));
|
||||
sleep(3);
|
||||
@@ -867,7 +924,7 @@ int Read_a_Msg(unsigned long Num, int UpdateLR)
|
||||
|
||||
if (!Msg_ReadHeader(Num)) {
|
||||
perror("");
|
||||
colour(15, 0);
|
||||
colour(WHITE, BLACK);
|
||||
printf("\n%s\n\n", (char *)Language(77));
|
||||
Msg_Close();
|
||||
sleep(3);
|
||||
@@ -1005,7 +1062,8 @@ void Read_Msgs()
|
||||
|
||||
colour(CFG.TextColourF, CFG.TextColourB);
|
||||
/* Message area \"%s\" contains %lu messages. */
|
||||
printf("\n%s\"%s\" %s%lu %s", (char *) Language(221), sMsgAreaDesc, (char *) Language(222), MsgBase.Total, (char *) Language(223));
|
||||
printf("\n%s\"%s\" %s%lu %s", (char *) Language(221), sMsgAreaDesc,
|
||||
(char *) Language(222), MsgBase.Total, (char *) Language(223));
|
||||
|
||||
/*
|
||||
* Check for lastread pointer, suggest lastread number for start.
|
||||
@@ -1027,7 +1085,7 @@ void Read_Msgs()
|
||||
Start = MsgBase.Highest;
|
||||
}
|
||||
|
||||
colour(15, 0);
|
||||
colour(WHITE, BLACK);
|
||||
/* Please enter a message between */
|
||||
printf("\n%s(%lu - %lu)", (char *) Language(224), MsgBase.Lowest, MsgBase.Highest);
|
||||
/* Message number [ */
|
||||
@@ -1060,7 +1118,7 @@ int ReadPanel()
|
||||
|
||||
WhosDoingWhat(READ_POST);
|
||||
|
||||
colour(15, 4);
|
||||
colour(WHITE, RED);
|
||||
if (msgs.UsrDelete || exitinfo.Security.level >= CFG.sysop_access) {
|
||||
/* (A)gain, (N)ext, (L)ast, (R)eply, (E)nter, (D)elete, (Q)uit, e(X)port */
|
||||
printf("%s", (char *) Language(214));
|
||||
@@ -1130,7 +1188,7 @@ int ReadPanel()
|
||||
}
|
||||
} else {
|
||||
/* Next */
|
||||
pout(15, 0, (char *) Language(216));
|
||||
pout(WHITE, BLACK, (char *) Language(216));
|
||||
if (LastNum < MsgBase.Highest)
|
||||
LastNum++;
|
||||
else
|
||||
@@ -1183,9 +1241,9 @@ void Reply_Msg(int IsReply)
|
||||
x = 0;
|
||||
WhosDoingWhat(READ_POST);
|
||||
clear();
|
||||
colour(1,7);
|
||||
colour(BLUE, LIGHTGRAY);
|
||||
printf(" %-71s", sMsgAreaDesc);
|
||||
colour(4,7);
|
||||
colour(RED, LIGHTGRAY);
|
||||
printf("#%-5lu", MsgBase.Highest + 1);
|
||||
|
||||
colour(CFG.HiliteF, CFG.HiliteB);
|
||||
@@ -1201,21 +1259,21 @@ void Reply_Msg(int IsReply)
|
||||
|
||||
/* From : */
|
||||
sprintf(Msg.From, "%s", exitinfo.sUserName);
|
||||
pout(14, 0, (char *) Language(209));
|
||||
pout(YELLOW, BLACK, (char *) Language(209));
|
||||
pout(CFG.MsgInputColourF, CFG.MsgInputColourB, Msg.From);
|
||||
Enter(1);
|
||||
|
||||
/* To : */
|
||||
sprintf(Msg.To, "%s", to);
|
||||
pout(14, 0, (char *) Language(208));
|
||||
pout(YELLOW, BLACK, (char *) Language(208));
|
||||
pout(CFG.MsgInputColourF, CFG.MsgInputColourB, Msg.To);
|
||||
Enter(1);
|
||||
|
||||
/* Enter to keep Subject. */
|
||||
pout(12, 0, (char *) Language(219));
|
||||
pout(LIGHTRED, BLACK, (char *) Language(219));
|
||||
Enter(1);
|
||||
/* Subject : */
|
||||
pout(14, 0, (char *) Language(210));
|
||||
pout(YELLOW, BLACK, (char *) Language(210));
|
||||
sprintf(Msg.Subject, "%s", subj);
|
||||
pout(CFG.MsgInputColourF, CFG.MsgInputColourB, Msg.Subject);
|
||||
|
||||
@@ -1342,7 +1400,7 @@ void QuickScan_Msgs()
|
||||
if (MsgBase.Total == 0) {
|
||||
Enter(1);
|
||||
/* There are no messages in this area. */
|
||||
pout(15, 0, (char *) Language(205));
|
||||
pout(WHITE, BLACK, (char *) Language(205));
|
||||
Enter(3);
|
||||
sleep(3);
|
||||
return;
|
||||
@@ -1350,26 +1408,26 @@ void QuickScan_Msgs()
|
||||
|
||||
clear();
|
||||
/* # From To Subject */
|
||||
poutCR(14, 1, (char *) Language(220));
|
||||
poutCR(YELLOW, BLUE, (char *) Language(220));
|
||||
|
||||
if (Msg_Open(sMsgAreaBase)) {
|
||||
for (i = MsgBase.Lowest; i <= MsgBase.Highest; i++) {
|
||||
if (Msg_ReadHeader(i)) {
|
||||
|
||||
colour(15, 0);
|
||||
colour(WHITE, BLACK);
|
||||
printf("%-6lu", Msg.Id);
|
||||
if (IsMe(Msg.From))
|
||||
colour(11, 0);
|
||||
colour(LIGHTCYAN, BLACK);
|
||||
else
|
||||
colour(3, 0);
|
||||
colour(CYAN, BLACK);
|
||||
printf("%s ", padleft(Msg.From, 20, ' '));
|
||||
|
||||
if (IsMe(Msg.To))
|
||||
colour(10, 0);
|
||||
colour(LIGHTGREEN, BLACK);
|
||||
else
|
||||
colour(2, 0);
|
||||
colour(GREEN, BLACK);
|
||||
printf("%s ", padleft(Msg.To, 20, ' '));
|
||||
colour(5, 0);
|
||||
colour(MAGENTA, BLACK);
|
||||
printf("%s", padleft(Msg.Subject, 31, ' '));
|
||||
printf("\n");
|
||||
FoundMsg = TRUE;
|
||||
@@ -1383,7 +1441,7 @@ void QuickScan_Msgs()
|
||||
if(!FoundMsg) {
|
||||
Enter(1);
|
||||
/* There are no messages in this area. */
|
||||
pout(10, 0, (char *) Language(205));
|
||||
pout(LIGHTGREEN, BLACK, (char *) Language(205));
|
||||
Enter(2);
|
||||
sleep(3);
|
||||
}
|
||||
@@ -1545,13 +1603,13 @@ void MsgArea_List(char *Option)
|
||||
if ((Access(exitinfo.Security, msgs.RDSec)) && (msgs.Active)) {
|
||||
msgs.Name[31] = '\0';
|
||||
|
||||
colour(15,0);
|
||||
colour(WHITE, BLACK);
|
||||
printf("%5d", Recno + 1);
|
||||
|
||||
colour(9,0);
|
||||
colour(LIGHTBLUE, BLACK);
|
||||
printf(" %c ", 46);
|
||||
|
||||
colour(3,0);
|
||||
colour(CYAN, BLACK);
|
||||
printf("%-31s", msgs.Name);
|
||||
|
||||
iAreaCount++;
|
||||
@@ -1629,7 +1687,7 @@ void MsgArea_List(char *Option)
|
||||
/*
|
||||
* Invalid area specified - Please try again ...
|
||||
*/
|
||||
pout(12, 0, (char *) Language(233));
|
||||
pout(LIGHTRED, BLACK, (char *) Language(233));
|
||||
Enter(2);
|
||||
Pause();
|
||||
fclose(pAreas);
|
||||
@@ -1648,19 +1706,19 @@ void MsgArea_List(char *Option)
|
||||
if((strlen(msgs.Password)) > 2) {
|
||||
Enter(2);
|
||||
/* Please enter Area Password: */
|
||||
pout(15, 0, (char *) Language(233));
|
||||
pout(WHITE, BLACK, (char *) Language(233));
|
||||
fflush(stdout);
|
||||
colour(CFG.InputColourF, CFG.InputColourB);
|
||||
GetstrC(temp, 20);
|
||||
|
||||
if((strcmp(temp, msgs.Password)) != 0) {
|
||||
Enter(1);
|
||||
pout(15, 0, (char *) Language(234));
|
||||
pout(WHITE, BLACK, (char *) Language(234));
|
||||
Syslog('!', "Incorrect Message Area # %d password given: %s", iMsgAreaNumber, temp);
|
||||
SetMsgArea(iOldArea);
|
||||
} else {
|
||||
Enter(1);
|
||||
pout(15, 0, (char *) Language(235));
|
||||
pout(WHITE, BLACK, (char *) Language(235));
|
||||
Enter(2);
|
||||
}
|
||||
Pause();
|
||||
@@ -1679,7 +1737,7 @@ void Delete_MsgNum(unsigned long MsgNum)
|
||||
{
|
||||
int Result = FALSE;
|
||||
|
||||
pout(12, 0, (char *) Language(230));
|
||||
pout(LIGHTRED, BLACK, (char *) Language(230));
|
||||
|
||||
if (Msg_Open(sMsgAreaBase)) {
|
||||
if (Msg_Lock(15L)) {
|
||||
@@ -1772,9 +1830,9 @@ void CheckMail()
|
||||
|
||||
clear();
|
||||
/* Checking your mail box ... */
|
||||
language(10, 0, 150);
|
||||
language(LIGHTGREEN, BLACK, 150);
|
||||
Enter(2);
|
||||
Color = 9;
|
||||
Color = LIGHTBLUE;
|
||||
fflush(stdout);
|
||||
|
||||
/*
|
||||
@@ -1791,10 +1849,9 @@ void CheckMail()
|
||||
temp = calloc(PATH_MAX, sizeof(char));
|
||||
if (exitinfo.Email && strlen(exitinfo.Password)) {
|
||||
check_popmail(exitinfo.Name, exitinfo.Password);
|
||||
colour(Color, 0);
|
||||
colour(Color++, BLACK);
|
||||
printf("\re-mail Private e-mail mailbox");
|
||||
fflush(stdout);
|
||||
Color++;
|
||||
Count = 0;
|
||||
sprintf(temp, "%s/%s/mailbox", CFG.bbs_usersdir, exitinfo.Name);
|
||||
SetEmailArea((char *)"mailbox");
|
||||
@@ -1860,10 +1917,10 @@ void CheckMail()
|
||||
SetMsgArea(iMsgAreaNumber);
|
||||
sprintf(temp, "%d", iMsgAreaNumber + 1);
|
||||
colour(Color, 0);
|
||||
if (Color < 15)
|
||||
if (Color < WHITE)
|
||||
Color++;
|
||||
else
|
||||
Color = 9;
|
||||
Color = LIGHTBLUE;
|
||||
printf("\r%6s %-40s", temp, sMsgAreaDesc);
|
||||
fflush(stdout);
|
||||
Count = 0;
|
||||
@@ -1914,7 +1971,7 @@ void CheckMail()
|
||||
putchar('\r');
|
||||
|
||||
if (Found) {
|
||||
colour(14, 0);
|
||||
colour(YELLOW, BLACK);
|
||||
/* You have messages, read your mail now? [Y/n]: */
|
||||
printf("\n%s%d %s", (char *) Language(142), Found, (char *) Language(143));
|
||||
colour(CFG.InputColourF, CFG.InputColourB);
|
||||
@@ -1963,7 +2020,7 @@ void CheckMail()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
language(12, 0, 144);
|
||||
language(LIGHTRED, BLACK, 144);
|
||||
Enter(1);
|
||||
sleep(3);
|
||||
} /* if (Found) */
|
||||
@@ -1994,7 +2051,7 @@ void MailStatus()
|
||||
OldMsgArea = iMsgAreaNumber;
|
||||
iMsgAreaNumber = 0;
|
||||
clear();
|
||||
colour(14, 1);
|
||||
colour(YELLOW, BLUE);
|
||||
/* Area Type Description Messages Personal */
|
||||
printf("%-79s", (char *)Language(226));
|
||||
Enter(1);
|
||||
@@ -2012,16 +2069,16 @@ void MailStatus()
|
||||
case 2: SetEmailArea((char *)"trash");
|
||||
break;
|
||||
}
|
||||
colour(12, 0);
|
||||
colour(LIGHTRED, BLACK);
|
||||
printf(" Email");
|
||||
colour(11, 0);
|
||||
colour(LIGHTCYAN, BLACK);
|
||||
printf(" %-40s", Language(467 + i));
|
||||
colour(14, 0);
|
||||
colour(YELLOW, BLACK);
|
||||
if (EmailBase.Highest)
|
||||
printf(" %8lu", EmailBase.Highest - EmailBase.Lowest + 1);
|
||||
else
|
||||
printf(" 0");
|
||||
colour(9, 0);
|
||||
colour(LIGHTBLUE, BLACK);
|
||||
if (EmailBase.Highest)
|
||||
printf(" %8lu\n", EmailBase.Highest - EmailBase.Lowest + 1);
|
||||
else
|
||||
@@ -2050,9 +2107,9 @@ void MailStatus()
|
||||
if ((msgs.Active) && (exitinfo.Security.level >= msgs.RDSec.level)) {
|
||||
SetMsgArea(iMsgAreaNumber);
|
||||
sprintf(temp, "%d", iMsgAreaNumber + 1);
|
||||
colour(15, 0);
|
||||
colour(WHITE, BLACK);
|
||||
printf("%5s", temp);
|
||||
colour(12, 0);
|
||||
colour(LIGHTRED, BLACK);
|
||||
switch(msgs.Type) {
|
||||
case LOCALMAIL:
|
||||
printf(" Local");
|
||||
@@ -2070,7 +2127,7 @@ void MailStatus()
|
||||
printf(" News ");
|
||||
break;
|
||||
}
|
||||
colour(11, 0);
|
||||
colour(LIGHTCYAN, BLACK);
|
||||
printf(" %-40s", sMsgAreaDesc);
|
||||
Count = 0;
|
||||
|
||||
@@ -2084,12 +2141,12 @@ void MailStatus()
|
||||
Msg_Close();
|
||||
} else
|
||||
WriteError("Error open JAM %s", sMsgAreaBase);
|
||||
colour(14, 0);
|
||||
colour(YELLOW, BLACK);
|
||||
if (MsgBase.Highest)
|
||||
printf(" %8lu", MsgBase.Highest - MsgBase.Lowest + 1);
|
||||
else
|
||||
printf(" 0");
|
||||
colour(9, 0);
|
||||
colour(LIGHTBLUE, BLACK);
|
||||
printf(" %8d\n", Count);
|
||||
if (LC(1))
|
||||
break;
|
||||
@@ -2156,4 +2213,3 @@ void SetMsgArea(unsigned long AreaNum)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user