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 In several places where groups need to be tagged, there is now
a switch (*) to select/deslect all groups at once. 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 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: 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? 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. L: Allow handles to be the same as the unixname.
N: Add menu setup to set users preffered character set.
mbtask: mbtask:
N: Add a thread that keeps track of disk usage of all partitions used 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 once (virus defs for example) the file is written multiple times
in the toberep database and will be multiple times announced. in the toberep database and will be multiple times announced.
N: Reimplement characterset conversion again on the gateway using the
iconv library.
mbcico: mbcico:
N: Further investigate binkp tty_error hangup. 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> </HEAD>
<BODY> <BODY>
<BLOCKQUOTE> <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> <div align="center"><H1>MBSE BBS Setup - Mail Setup -> Mail Areas.</H1></div>
<H3>Introduction.</H3> <H3>Introduction.</H3>
@ -48,8 +48,7 @@ change netmail reply board and delete message area.
<strong>Distrib. </strong>Leave this blank for now! <strong>Distrib. </strong>Leave this blank for now!
<strong>Area Type </strong>Local, Netmail, Echomail or News. <strong>Area Type </strong>Local, Netmail, Echomail or News.
<strong>Msg Kinds </strong>Private/Public, Private, Public, Read Only, FTN moderated, Usenet Moderated <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>Charset </strong>Default characterset for the area
<strong>RFC chars </strong>RFC characterset, not in use yet, defaults tp LATIN-1 2
<strong>Active </strong>If this area is active. <strong>Active </strong>If this area is active.
<strong>Days Old </strong>The maximum age of the messages before purging. <strong>Days Old </strong>The maximum age of the messages before purging.
<strong>Max. Msgs </strong>The maximum messages in this area. <strong>Max. Msgs </strong>The maximum messages in this area.

View File

@ -14,7 +14,7 @@
</HEAD> </HEAD>
<BODY> <BODY>
<BLOCKQUOTE> <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> <div align="center"><H1>MBSE BBS Setup - Mail Setup - Message Groups.</H1></div>
<H3>Introduction.</H3> <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>Use Aka </strong>The Fidonet aka to use.
<strong>Uplink </strong>The Fidonet aka of your uplink. <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>Areas </strong>Areas file in the path defined in 1.4.6 screen 2.
<strong>Charset </strong>Default character set to use.
</pre> </pre>
<P> <P>
<IMG SRC="../images/emgroup.png" alt='Mail groups setup'> <IMG SRC="../images/emgroup.png" alt='Mail groups setup'>

View File

@ -5,13 +5,13 @@
include ../Makefile.global 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 \ attach.c falists.c hdr.c parsedate.c rfcmsg.c unpacker.c \
batchrd.c ftn.c pktname.c mangle.c sectest.c proglock.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 \ dostran.c ftnmsg.c mbfile.c nodelock.c rawio.c strcasestr.c \
execute.c expipe.c getheader.c noderecord.c rfcaddr.c strutil.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 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 \ 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 \ batchrd.o ftn.o pktname.o mangle.o sectest.o proglock.o \
dostran.o ftnmsg.o mbfile.o nodelock.o rawio.o strcasestr.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 * From dostran.c
*/ */

View File

@ -89,7 +89,12 @@ void Msg_Pid(void)
temp = calloc(81, sizeof(char)); temp = calloc(81, sizeof(char));
sprintf(temp, "\001PID: MBSE-FIDO %s", VERSION); sprintf(temp, "\001PID: MBSE-FIDO %s", VERSION);
MsgText_Add2(temp); 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); tt = time(NULL);
sprintf(temp, "\001TZUTC: %s", gmtoffset(tt)); sprintf(temp, "\001TZUTC: %s", gmtoffset(tt));
MsgText_Add2(temp); MsgText_Add2(temp);

View File

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

View File

@ -219,8 +219,12 @@ void Add_Headkludges(faddr *dest, int IsReply)
break; break;
} }
// sprintf(temp, "\001CHRS: %s", getchrs(msgs.Ftncode)); if (msgs.Charset != FTNC_NONE) {
// MsgText_Add2(temp); 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()); sprintf(temp, "\001MSGID: %s %08lx", aka2str(msgs.Aka), sequencer());
MsgText_Add2(temp); MsgText_Add2(temp);
Msg.MsgIdCRC = upd_crc32(temp, crc, strlen(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) void show_charset(int y, int x, int val)
{ {
show_str(y, x, 9, getchrs(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 *); void edit_color(int *, int *, char *, char *);
char *get_color(int); char *get_color(int);
char *getmenutype(int); char *getmenutype(int);
char *getchrs(int);
void show_charset(int, int, int); void show_charset(int, int, int);
int edit_charset(int, int, int); int edit_charset(int, int, int);

View File

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