From ca6e5dcafa9938df324e27644c367a64fb0e6411 Mon Sep 17 00:00:00 2001 From: Michiel Broek Date: Mon, 23 Feb 2004 15:46:32 +0000 Subject: [PATCH] Updates for CHRS kludge --- ChangeLog | 9 ++++++ TODO | 8 ++++- html/images/emareas.png | Bin 9797 -> 13897 bytes html/images/emgroup.png | Bin 7807 -> 11766 bytes html/setup/emareas.html | 5 ++- html/setup/emgroup.html | 3 +- lib/Makefile | 4 +-- lib/charset.c | 68 ++++++++++++++++++++++++++++++++++++++++ lib/mbselib.h | 20 ++++++++---- mbfido/msgutil.c | 7 ++++- mbfido/post.c | 8 +++-- mbsebbs/msgutil.c | 8 +++-- mbsetup/ledit.c | 18 ----------- mbsetup/ledit.h | 1 - mbsetup/m_marea.c | 4 --- 15 files changed, 122 insertions(+), 41 deletions(-) create mode 100644 lib/charset.c diff --git a/ChangeLog b/ChangeLog index c600bace..7322e7bb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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 diff --git a/TODO b/TODO index 5762f38a..6cb07789 100644 --- a/TODO +++ b/TODO @@ -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. diff --git a/html/images/emareas.png b/html/images/emareas.png index 17a6974ee3aaf38aaefc18028b248e3174ae378b..a41c8a6fd7be124126100c480dd3cb9dd924eb13 100644 GIT binary patch literal 13897 zcmb`uXCNKX^EbXqf)IotTJ%eZ-g}A8C3^4O)q5`?qJ#v|u5uGZ@4WyR|NnxH*9pU zr$@JT6>Ko=q@mIPQ2hZHW$^&K7xI$R_tJ8;_42jwumSXSX?1NpJRMwJXn8rfxh!aD zHEn!EXt{Yfd4xHI`Dj@{3bbw(URL(B+#EbFmPt620Du-yl9kr>%i7NlEGz8upWAMn zUlt-`t|n%#Z<~kfJH&FL?Q1wVz|c5KoDwA`=_BbMDZ#Z#LUk68D{`tNJv=b+ur~c>+R=2Rd~~y?S*bc)!q& zp~u!8Ha0F+KKFFIPumuH zelvU~6MYein!mcLRyPxr1O@wdv-5!@WiKun2bG9d|Md*-nAk?_{rHzxyNwG9@yq

%7~C=N}}4Z~74J^d~CPcUKCPeHhRG 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 annouh;2~X$cj*MX03|s!*$Nr+H~$Cr(=^Bc literal 9797 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 diff --git a/html/images/emgroup.png b/html/images/emgroup.png index 881f1f6db9e430cc84cfc07817ab738915511b01..e42d1718c8f30154d48c663be1dae58e89aef940 100644 GIT binary patch literal 11766 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 literal 7807 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 NVr*elW$1GMKL9

-
Last update 30-Sep-2002
+
Last update 23-Feb-2004

MBSE BBS Setup - Mail Setup -> Mail Areas.

Introduction.

@@ -48,8 +48,7 @@ change netmail reply board and delete message area. Distrib. Leave this blank for now! Area Type Local, Netmail, Echomail or News. Msg Kinds Private/Public, Private, Public, Read Only, FTN moderated, Usenet Moderated -FTN chars FTN characterset, not in use yet, defaults to IBMPC 2 -RFC chars RFC characterset, not in use yet, defaults tp LATIN-1 2 +Charset Default characterset for the area Active If this area is active. Days Old The maximum age of the messages before purging. Max. Msgs The maximum messages in this area. diff --git a/html/setup/emgroup.html b/html/setup/emgroup.html index f79c1494..475c4c60 100644 --- a/html/setup/emgroup.html +++ b/html/setup/emgroup.html @@ -14,7 +14,7 @@
-
Last update 30-Sep-2002
+
Last update 23-Feb-2004

MBSE BBS Setup - Mail Setup - Message Groups.

Introduction.

@@ -55,6 +55,7 @@ skip a number of extra areas for future expansion. Use Aka The Fidonet aka to use. Uplink The Fidonet aka of your uplink. Areas Areas file in the path defined in 1.4.6 screen 2. +Charset Default character set to use.

Mail groups setup diff --git a/lib/Makefile b/lib/Makefile index c3aabf39..23cd6e53 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -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 \ diff --git a/lib/charset.c b/lib/charset.c new file mode 100644 index 00000000..1be922d9 --- /dev/null +++ b/lib/charset.c @@ -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"; + } +} + + diff --git a/lib/mbselib.h b/lib/mbselib.h index bc9d4b33..3be122ec 100644 --- a/lib/mbselib.h +++ b/lib/mbselib.h @@ -2118,30 +2118,38 @@ struct termios tbufs, tbufsavs; /* Structure for raw mode */ /* * From endian.c */ -int le_int(int); +int le_int(int); /* * From attach.c */ -int attach(faddr, char *, int, char); +int attach(faddr, char *, int, char); + + + +/* + * From charset.c + */ +char *getchrs(int); /* Return characterset name */ +char *getchrsdesc(int); /* Return characterset description */ /* * From dostran.c */ -char *Dos2Unix(char *); -char *Unix2Dos(char *); +char *Dos2Unix(char *); +char *Unix2Dos(char *); /* * From execute.c */ -int execute(char *, char *, char *, char *, char *, char *); -int execsh(char *, char *, char *, char *); +int execute(char *, char *, char *, char *, char *, char *); +int execsh(char *, char *, char *, char *); diff --git a/mbfido/msgutil.c b/mbfido/msgutil.c index 44ee041e..e17ad042 100644 --- a/mbfido/msgutil.c +++ b/mbfido/msgutil.c @@ -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); diff --git a/mbfido/post.c b/mbfido/post.c index 7d67fe08..b1f5ed56 100644 --- a/mbfido/post.c +++ b/mbfido/post.c @@ -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); diff --git a/mbsebbs/msgutil.c b/mbsebbs/msgutil.c index 34516776..1b48699f 100644 --- a/mbsebbs/msgutil.c +++ b/mbsebbs/msgutil.c @@ -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)); diff --git a/mbsetup/ledit.c b/mbsetup/ledit.c index d2960e30..59a76a34 100644 --- a/mbsetup/ledit.c +++ b/mbsetup/ledit.c @@ -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)); diff --git a/mbsetup/ledit.h b/mbsetup/ledit.h index 66ac6968..c7ac7250 100644 --- a/mbsetup/ledit.h +++ b/mbsetup/ledit.h @@ -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); diff --git a/mbsetup/m_marea.c b/mbsetup/m_marea.c index 10d08e6d..7d129fff 100644 --- a/mbsetup/m_marea.c +++ b/mbsetup/m_marea.c @@ -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;