Newfiles reports with selectable CHRS kludge

This commit is contained in:
Michiel Broek
2007-03-02 13:23:34 +00:00
parent aa5b915b11
commit 7e87a7a984
7 changed files with 137 additions and 105 deletions

View File

@@ -4,7 +4,7 @@
* Purpose ...............: Announce new files and FileFind
*
*****************************************************************************
* Copyright (C) 1997-2005
* Copyright (C) 1997-2007
*
* Michiel Broek FIDO: 2:280/2802
* Beekmansbos 10
@@ -174,13 +174,15 @@ int StartMsg(void)
CountPosted(newfiles.Area);
snprintf(Msg.From, 101, "%s", newfiles.From);
snprintf(Msg.To, 101, "%s", newfiles.Too);
chartran_init((char *)"CP437", get_ic_ftn(newfiles.charset), 'f');
snprintf(Msg.From, 101, "%s", chartran(newfiles.From));
snprintf(Msg.To, 101, "%s", chartran(newfiles.Too));
if (MsgCount == 1) {
snprintf(Msg.Subject, 101, "%s", newfiles.Subject);
snprintf(Msg.Subject, 101, "%s", chartran(newfiles.Subject));
TotalSize = TotalFiles = 0;
} else
snprintf(Msg.Subject, 101, "%s #%d", newfiles.Subject, MsgCount);
snprintf(Msg.Subject, 101, "%s #%d", chartran(newfiles.Subject), MsgCount);
snprintf(Msg.FromAddress, 101, "%s", aka2str(newfiles.UseAka));
Msg.Written = time(NULL);
Msg.Arrived = time(NULL);
@@ -191,7 +193,7 @@ int StartMsg(void)
* Start message text including kludges
*/
Msg_Id(newfiles.UseAka);
Msg_Pid();
Msg_Pid(newfiles.charset);
return Msg_Top(newfiles.Template, newfiles.Language, newfiles.UseAka);
}
@@ -227,6 +229,8 @@ void FinishMsg(int Final, int filepos)
Msg_UnLock();
Syslog('+', "Posted message %ld, %d bytes", Msg.Id, Msg.Size);
chartran_close();
snprintf(temp, PATH_MAX, "%s/tmp/echomail.jam", getenv("MBSE_ROOT"));
if ((fp = fopen(temp, "a")) != NULL) {
fprintf(fp, "%s %u\n", newfiles.Area, Msg.Id);
@@ -268,12 +272,12 @@ int Report(gr_list *ta, int filepos)
break;
}
Syslog('m', "Announce %s %s %s", T_File.Echo, T_File.Name, T_File.LName);
Syslog('m', "Announce %s %s %s", T_File.Echo, T_File.Name, chartran(T_File.LName));
if ((fi = OpenMacro(newfiles.Template, newfiles.Language, FALSE)) != NULL) {
/*
* Area block header
*/
MacroVars("GJZ", "ssd", T_File.Echo, T_File.Comment, 0);
MacroVars("GJZ", "ssd", T_File.Echo, chartran(T_File.Comment), 0);
fseek(fi, filepos, SEEK_SET);
Msg_Macro(fi);
filepos1 = ftell(fi);
@@ -296,7 +300,7 @@ int Report(gr_list *ta, int filepos)
ftime = T_File.Fdate;
MacroVars("sl", "ss", T_File.Name, T_File.LName);
MacroVars("bk", "dd", T_File.Size, T_File.SizeKb);
MacroVars("dt", "ss", rfcdate(ftime), To_Low(T_File.LDesc[0],newfiles.HiAscii));
MacroVars("dt", "ss", rfcdate(ftime), chartran(T_File.LDesc[0]));
Msg_Macro(fi);
filepos2 = ftell(fi);
@@ -306,7 +310,7 @@ int Report(gr_list *ta, int filepos)
for (i = 1; i < 24; i++) {
fseek(fi, filepos2, SEEK_SET);
if (strlen(T_File.LDesc[i])) {
MacroVars("t", "s", To_Low(T_File.LDesc[i],newfiles.HiAscii));
MacroVars("t", "s", chartran(T_File.LDesc[i]));
Msg_Macro(fi);
} else {
line = calloc(MAXSTR, sizeof(char));

View File

@@ -4,7 +4,7 @@
* Purpose ...............: Announce new files and FileFind
*
*****************************************************************************
* Copyright (C) 1997-2005
* Copyright (C) 1997-2007
*
* Michiel Broek FIDO: 2:280/2802
* Beekmansbos 10
@@ -193,7 +193,7 @@ int StartReply(ff_list *ffl)
MsgText_Add2(temp);
Msg.ReplyCRC = upd_crc32(temp, crc, strlen(temp));
free(temp);
Msg_Pid();
Msg_Pid(FTNC_NONE);
return Msg_Top(scanmgr.template, scanmgr.Language, scanmgr.Aka);
}

View File

@@ -4,7 +4,7 @@
* Purpose ...............: Announce new files and FileFind
*
*****************************************************************************
* Copyright (C) 1997-2005
* Copyright (C) 1997-2007
*
* Michiel Broek FIDO: 2:280/2802
* Beekmansbos 10
@@ -81,7 +81,10 @@ void Msg_Id(fidoaddr aka)
void Msg_Pid(void)
/*
* Passed charset overrides defaults
*/
void Msg_Pid(int charset)
{
char *temp;
time_t tt;
@@ -89,7 +92,9 @@ void Msg_Pid(void)
temp = calloc(81, sizeof(char));
snprintf(temp, 81, "\001PID: MBSE-FIDO %s (%s-%s)", VERSION, OsName(), OsCPU());
MsgText_Add2(temp);
if (msgs.Charset != FTNC_NONE) {
if (charset != FTNC_NONE) {
snprintf(temp, 81, "\001CHRS: %s", getftnchrs(charset));
} else if (msgs.Charset != FTNC_NONE) {
snprintf(temp, 81, "\001CHRS: %s", getftnchrs(msgs.Charset));
} else {
snprintf(temp, 81, "\001CHRS: %s", getftnchrs(FTNC_LATIN_1));

View File

@@ -5,7 +5,7 @@
void Msg_Id(fidoaddr);
void Msg_Pid(void);
void Msg_Pid(int);
void Msg_Macro(FILE *);
int Msg_Top(char *, int, fidoaddr);
void Msg_Bot(fidoaddr, char *, char *);