Updates for CHRS kludge

This commit is contained in:
Michiel Broek 2004-02-23 15:46:32 +00:00
parent 022bd58797
commit ca6e5dcafa
15 changed files with 122 additions and 41 deletions

View File

@ -22,6 +22,15 @@ v0.51.1 21-Feb-2004
In several places where groups need to be tagged, there is now
a switch (*) to select/deslect all groups at once.
mbsebbs:
Writes the ^aCHRS: kludge again in new created messages.
mbmsg:
Writes the ^aCHRS: kludge again in new created messages.
mbaff:
Writes the ^aCHRS: kludge again in new created messages.
v0.51.0 09-Feb-2004 - 21-Feb-2004

8
TODO
View File

@ -58,7 +58,9 @@ mbsebbs:
N: OLR: qwk, check netmail entered from reader, fido address missing?
N: Reimplememnt CHRS kludge.
N: Translate characterset of messages to the users preferred characterset.
N: Add menu setup to set users preffered character set.
N: There are some bugs in the bbs list menu. Make it a door?
@ -67,6 +69,7 @@ newuser:
L: Allow handles to be the same as the unixname.
N: Add menu setup to set users preffered character set.
mbtask:
N: Add a thread that keeps track of disk usage of all partitions used
@ -126,6 +129,9 @@ mbfido:
once (virus defs for example) the file is written multiple times
in the toberep database and will be multiple times announced.
N: Reimplement characterset conversion again on the gateway using the
iconv library.
mbcico:
N: Further investigate binkp tty_error hangup.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -14,7 +14,7 @@
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align="right"><h5>Last update 30-Sep-2002</h5></div>
<div align="right"><h5>Last update 23-Feb-2004</h5></div>
<div align="center"><H1>MBSE BBS Setup - Mail Setup -> Mail Areas.</H1></div>
<H3>Introduction.</H3>
@ -48,8 +48,7 @@ change netmail reply board and delete message area.
<strong>Distrib. </strong>Leave this blank for now!
<strong>Area Type </strong>Local, Netmail, Echomail or News.
<strong>Msg Kinds </strong>Private/Public, Private, Public, Read Only, FTN moderated, Usenet Moderated
<strong>FTN chars </strong>FTN characterset, not in use yet, defaults to IBMPC 2
<strong>RFC chars </strong>RFC characterset, not in use yet, defaults tp LATIN-1 2
<strong>Charset </strong>Default characterset for the area
<strong>Active </strong>If this area is active.
<strong>Days Old </strong>The maximum age of the messages before purging.
<strong>Max. Msgs </strong>The maximum messages in this area.

View File

@ -14,7 +14,7 @@
</HEAD>
<BODY>
<BLOCKQUOTE>
<div align="right"><h5>Last update 30-Sep-2002</h5></div>
<div align="right"><h5>Last update 23-Feb-2004</h5></div>
<div align="center"><H1>MBSE BBS Setup - Mail Setup - Message Groups.</H1></div>
<H3>Introduction.</H3>
@ -55,6 +55,7 @@ skip a number of extra areas for future expansion.
<strong>Use Aka </strong>The Fidonet aka to use.
<strong>Uplink </strong>The Fidonet aka of your uplink.
<strong>Areas </strong>Areas file in the path defined in 1.4.6 screen 2.
<strong>Charset </strong>Default character set to use.
</pre>
<P>
<IMG SRC="../images/emgroup.png" alt='Mail groups setup'>

View File

@ -5,13 +5,13 @@
include ../Makefile.global
COMMON_SRCS = clcomm.c client.c crc.c semafore.c signame.c \
COMMON_SRCS = clcomm.c client.c crc.c semafore.c signame.c charset.c \
attach.c falists.c hdr.c parsedate.c rfcmsg.c unpacker.c \
batchrd.c ftn.c pktname.c mangle.c sectest.c proglock.c \
dostran.c ftnmsg.c mbfile.c nodelock.c rawio.c strcasestr.c \
execute.c expipe.c getheader.c noderecord.c rfcaddr.c strutil.c \
faddr.c gmtoffset.c packet.c rfcdate.c term.c endian.c timers.c
COMMON_OBJS = clcomm.o client.o crc.o semafore.o signame.o \
COMMON_OBJS = clcomm.o client.o crc.o semafore.o signame.o charset.o \
ftscprod.o attach.o falists.o hdr.o parsedate.o rfcmsg.o unpacker.o \
batchrd.o ftn.o pktname.o mangle.o sectest.o proglock.o \
dostran.o ftnmsg.o mbfile.o nodelock.o rawio.o strcasestr.o \

68
lib/charset.c Normal file
View File

@ -0,0 +1,68 @@
/*****************************************************************************
*
* $Id$
* Purpose ...............: Characterset functions
*
*****************************************************************************
* Copyright (C) 1997-2004
*
* Michiel Broek FIDO: 2:280/2802
* Beekmansbos 10
* 1971 BV IJmuiden
* the Netherlands
*
* This file is part of MBSE BBS.
*
* This BBS is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2, or (at your option) any
* later version.
*
* MBSE BBS is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with MBSE BBS; see the file COPYING. If not, write to the Free
* Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*****************************************************************************/
#include "../config.h"
#include "mbselib.h"
char *getchrs(int val)
{
switch (val) {
case FTNC_NONE: return (char *)"Undefined";
case FTNC_CP437: return (char *)"CP437 2";
case FTNC_CP850: return (char *)"CP850 2";
case FTNC_CP865: return (char *)"CP865 2";
case FTNC_CP866: return (char *)"CP866 2";
case FTNC_LATIN_1: return (char *)"LATIN-1 2";
case FTNC_LATIN_2: return (char *)"LATIN-2 2";
case FTNC_LATIN_5: return (char *)"LATIN-5 2";
case FTNC_MAC: return (char *)"MAC 2";
default: return (char *)"LATIN-1 2";
}
}
char *getchrsdesc(int val)
{
switch (val) {
case FTNC_NONE: return (char *)"Undefined";
case FTNC_CP437: return (char *)"IBM codepage 437 (Western European) (ANSI terminal)";
case FTNC_CP850: return (char *)"IBM codepage 850 (Latin-1)";
case FTNC_CP865: return (char *)"IBM codepage 865 (Nordic)";
case FTNC_CP866: return (char *)"IBM codepage 866 (Russian)";
case FTNC_LATIN_1: return (char *)"ISO 8859-1 (Western European)";
case FTNC_LATIN_2: return (char *)"ISO 8859-2 (Eastern European)";
case FTNC_LATIN_5: return (char *)"ISO 8859-5 (Turkish)";
case FTNC_MAC: return (char *)"MacIntosh character set";
default: return (char *)"ERROR";
}
}

View File

@ -2129,6 +2129,14 @@ int attach(faddr, char *, int, char);
/*
* From charset.c
*/
char *getchrs(int); /* Return characterset name */
char *getchrsdesc(int); /* Return characterset description */
/*
* From dostran.c
*/

View File

@ -89,7 +89,12 @@ void Msg_Pid(void)
temp = calloc(81, sizeof(char));
sprintf(temp, "\001PID: MBSE-FIDO %s", VERSION);
MsgText_Add2(temp);
// sprintf(temp, "\001CHRS: %s", getchrs(msgs.Ftncode));
if (msgs.Charset != FTNC_NONE) {
sprintf(temp, "\001CHRS: %s", getchrs(msgs.Charset));
} else {
sprintf(temp, "\001CHRS: %s", getchrs(FTNC_LATIN_1));
}
MsgText_Add2(temp);
tt = time(NULL);
sprintf(temp, "\001TZUTC: %s", gmtoffset(tt));
MsgText_Add2(temp);

View File

@ -191,8 +191,12 @@ void Post(char *To, long Area, char *Subj, char *File, char *Flavor)
Msg.ReplyCRC = 0xffffffff;
sprintf(temp, "\001PID: MBSE-FIDO %s", VERSION);
MsgText_Add2(temp);
// sprintf(temp, "\001CHRS: %s", getchrs(msgs.Ftncode));
// MsgText_Add2(temp);
if (msgs.Charset != FTNC_NONE) {
sprintf(temp, "\001CHRS: %s", getchrs(msgs.Charset));
} else {
sprintf(temp, "\001CHRS: %s", getchrs(FTNC_LATIN_1));
}
MsgText_Add2(temp);
sprintf(temp, "\001TZUTC: %s", gmtoffset(tt));
MsgText_Add2(temp);

View File

@ -219,8 +219,12 @@ void Add_Headkludges(faddr *dest, int IsReply)
break;
}
// sprintf(temp, "\001CHRS: %s", getchrs(msgs.Ftncode));
// MsgText_Add2(temp);
if (msgs.Charset != FTNC_NONE) {
sprintf(temp, "\001CHRS: %s", getchrs(msgs.Charset));
} else {
sprintf(temp, "\001CHRS: %s", getchrs(FTNC_LATIN_1));
}
MsgText_Add2(temp);
sprintf(temp, "\001MSGID: %s %08lx", aka2str(msgs.Aka), sequencer());
MsgText_Add2(temp);
Msg.MsgIdCRC = upd_crc32(temp, crc, strlen(temp));

View File

@ -2190,24 +2190,6 @@ char *getmenutype(int val)
char *getchrs(int val)
{
switch (val) {
case FTNC_NONE: return (char *)"Undefined";
case FTNC_CP437: return (char *)"CP437";
case FTNC_CP850: return (char *)"CP850";
case FTNC_CP865: return (char *)"CP865";
case FTNC_CP866: return (char *)"CP866";
case FTNC_LATIN_1: return (char *)"Latin-1";
case FTNC_LATIN_2: return (char *)"Latin-2";
case FTNC_LATIN_5: return (char *)"Latin-5";
case FTNC_MAC: return (char *)"Mac";
default: return (char *)"ERROR";
}
}
void show_charset(int y, int x, int val)
{
show_str(y, x, 9, getchrs(val));

View File

@ -80,7 +80,6 @@ void show_aka(int, int, fidoaddr);
void edit_color(int *, int *, char *, char *);
char *get_color(int);
char *getmenutype(int);
char *getchrs(int);
void show_charset(int, int, int);
int edit_charset(int, int, int);

View File

@ -294,11 +294,7 @@ void InitMsgRec(void)
msgs.Type = ECHOMAIL;
msgs.MsgKinds = PUBLIC;
msgs.UsrDelete = TRUE;
#ifdef HAVE_ICONV_H
msgs.Charset = FTNC_LATIN_1;
#else
msgs.Charset = FTNC_NONE;
#endif
msgs.MaxArticles = CFG.maxarticles;
strcpy(msgs.Origin, CFG.origin);
msgs.LinkSec.level = 1;