--- crashmail-0.71.orig/doc/example.prefs +++ crashmail-0.71/doc/example.prefs @@ -32,7 +32,7 @@ ; In the Linux version of CrashMail, it is possible to enter "syslog" as the ; filename. If you do this, everything will be logged to the syslog instead. -LOGFILE "c:\\fido\\logs\\crashmail.log" +LOGFILE "/var/log/crashmail.log" LOGLEVEL 5 ; DUPEFILE @@ -49,7 +49,7 @@ ; KILL Dupes are killed ; IGNORE No dupechecking -DUPEFILE "c:\\fido\\logs\\crashmail.dupes" 200 +DUPEFILE "/var/log/crashmail.dupes" 200 DUPEMODE BAD ; LOOPMODE IGNORE/LOG/LOG+BAD @@ -97,41 +97,41 @@ ; The inbound directory is the directory where CrashMail looks for .pkt files ; and bundles to toss. -INBOUND "c:\\fido\\inbound" +INBOUND "/var/spool/ftn/inb" ; OUTBOUND ; ; The outbound directory is where CrashMail writes the flow files that tells ; the mailer what files to send. -OUTBOUND "c:\\fido\\outbound" +OUTBOUND "/var/spool/ftn/outb" ; TEMPDIR ; ; This is the directory where CrashMail unpacks incoming bundles. ; -TEMPDIR "c:\\fido\\temp" +TEMPDIR "/tmp" ; CREATEPKTDIR ; ; This is the directory where CrashMail stores created .pkt files until they ; are stored in the packet directory. -CREATEPKTDIR "c:\\fido\\temp" +CREATEPKTDIR "/tmp" ; PACKETDIR ; ; This is the directory where CrashMail stores generated bundles. -PACKETDIR "c:\\fido\\packets" +PACKETDIR "/var/spool/ftn/outb" ; STATSFILE ; ; This is the file where CrashMail stores statistics about areas and nodes. ; You can display the contents of this file with CrashStats. -STATSFILE "c:\\fido\\crashmail.stats" +STATSFILE "/var/spool/ftn/data/crashmail.stats" ; BEFORETOSS ; @@ -388,8 +388,8 @@ ; the bundle matches the recog string, CrashMail uses that packer. ? can be ; used as a wildcard and you can use $xx to specify a hexadecimal number. -PACKER "LHA" "c:\\fido\\bin\\lha a %a %f" "c:\\fido\\bin\\lha x %a" "??-lh?-" -PACKER "ZIP" "c:\\fido\\bin\\pkzip %a %f" "c:\\fido\\bin\\pkunzip %a" "PK" +PACKER "LHA" "/usr/bin/lha a %a %f" "/usr/bin/lha %a" "??-lh?-" +PACKER "ZIP" "/usr/bin/zip -j %a %f" "/usr/bin/unzip -j %a" "PK" ; AKA ; === @@ -514,7 +514,7 @@ ; ; The file that is sent when a downlink issues a %HELP command. -AREAFIXHELP "c:\\fido\\AreafixHelp.txt" +AREAFIXHELP "/usr/share/crashmail/AreafixHelp.txt" ; AREAFIXMAXLINES ; @@ -541,7 +541,7 @@ ; available for forward-requests. GROUP specifies the group needed to be ; allowed to forward-requests areas in this list. -AREALIST 2:200/100.0 "c:\\fido\\lists\\R20Desc.lst" GROUP A FORWARD DESC +AREALIST 2:200/100.0 "/var/spool/ftn/R20Desc.lst" GROUP A FORWARD DESC ; Routing ; ======= @@ -696,18 +696,18 @@ ; ; You must use one of these %-codes or the new path will not be unique. -NETMAIL "NETMAIL" 2:200/108.7 JAM "c:\\fido\\areas\\NETMAIL" +NETMAIL "NETMAIL" 2:200/108.7 JAM "/var/spool/ftn/msg/NETMAIL" -AREA "BAD" 2:200/108.7 JAM "c:\\fido\\areas\\BAD" +AREA "BAD" 2:200/108.7 JAM "/var/spool/ftn/msg/BAD" -AREA "DEFAULT_A" 2:200/108.7 JAM "c:\\fido\\areas\\%8" +AREA "DEFAULT_A" 2:200/108.7 JAM "/var/spool/ftn/msg/%a" -AREA "R20_INTRESSE" 2:200/108.7 JAM "c:\\fido\\areas\\36124179" +AREA "R20_INTRESSE" 2:200/108.7 JAM "/var/spool/ftn/msg/R20_INTRESSE" EXPORT %2:200/100.0 DESCRIPTION "Intresseklubben" GROUP A -AREA "R20_TRASHCAN" 2:200/108.7 JAM "c:\\fido\\areas\\3612417a" +AREA "R20_TRASHCAN" 2:200/108.7 JAM "/var/spool/ftn/msg/R20_TRASHCAN" EXPORT %2:200/100.0 DESCRIPTION "Soptunnan" GROUP A --- crashmail-0.71.orig/src/Makefile +++ crashmail-0.71/src/Makefile @@ -10,6 +10,7 @@ @echo make cleanos2 ......... Remove object files under OS/2 linux : + mkdir -p obj make -C cmnllib -f Makefile.linux make -C jamlib -f Makefile.linux make -C oslib_linux --- crashmail-0.71.orig/src/Makefile.linux +++ crashmail-0.71/src/Makefile.linux @@ -36,9 +36,14 @@ # Commands -CC = gcc $(DEFS) -I $(INCDIR) -Wall +CC = gcc $(CPPFLAGS) $(CFLAGS) $(DEFS) $(LDFLAGS) -I $(INCDIR) -Wall RM = rm -f +# Edited for Debian - make it possible to install unstripped binaries +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) STRIP = strip +else +STRIP = true +endif # Objects --- crashmail-0.71.orig/src/oslib_os2/osmem.c +++ crashmail-0.71/src/oslib_os2/osmem.c @@ -1,18 +1,18 @@ -#include - -#include - -void *osAlloc(ulong size) -{ - return malloc((size_t)size); -} - -void *osAllocCleared(ulong size) -{ - return calloc((size_t)size,1); -} - -void osFree(void *buf) -{ - free(buf); -} +#include + +#include + +void *osAlloc(ulong size) +{ + return malloc((size_t)size); +} + +void *osAllocCleared(ulong size) +{ + return calloc((size_t)size,1); +} + +void osFree(void *buf) +{ + free(buf); +} --- crashmail-0.71.orig/src/oslib_os2/osfile.c +++ crashmail-0.71/src/oslib_os2/osfile.c @@ -1,10 +1,10 @@ #include -#include -#include -#include +#include +#include +#include -#include -#include +#include +#include osFile osOpen(uchar *name,ulong mode) { @@ -32,74 +32,74 @@ fclose((FILE *)os); } -int osGetChar(osFile os) -{ - int c; - - c=fgetc((FILE *)os); - - if(c==EOF) - c=-1; - - return(c); -} - -ulong osRead(osFile os,void *buf,ulong bytes) -{ - return fread(buf,1,bytes,(FILE *)os); -} - -bool osPutChar(osFile os, uchar ch) -{ - if(fputc(ch,(FILE *)os)==EOF) +int osGetChar(osFile os) +{ + int c; + + c=fgetc((FILE *)os); + + if(c==EOF) + c=-1; + + return(c); +} + +ulong osRead(osFile os,void *buf,ulong bytes) +{ + return fread(buf,1,bytes,(FILE *)os); +} + +bool osPutChar(osFile os, uchar ch) +{ + if(fputc(ch,(FILE *)os)==EOF) return(FALSE); return(TRUE); -} - -bool osWrite(osFile os,const void *buf,ulong bytes) -{ - if(fwrite(buf,1,bytes,(FILE *)os)!=bytes) +} + +bool osWrite(osFile os,const void *buf,ulong bytes) +{ + if(fwrite(buf,1,bytes,(FILE *)os)!=bytes) return(FALSE); return(TRUE); -} - -bool osPuts(osFile os,uchar *str) -{ - if(fputs(str,(FILE *)os)==EOF) +} + +bool osPuts(osFile os,uchar *str) +{ + if(fputs(str,(FILE *)os)==EOF) return(FALSE); return(TRUE); -} - -ulong osFGets(osFile os,uchar *str,ulong max) -{ - char *s; - - s=fgets(str,max,(FILE *)os); - - if(s) - { - if(strlen(s)>=2 && s[strlen(s)-1]==10 && s[strlen(s)-2]==13) - { - /* CRLF -> LF */ - - s[strlen(s)-2]=10; - s[strlen(s)-1]=0; - } - - return (ulong)strlen(s); - } - - return(0); -} - -ulong osFTell(osFile os) -{ - return ftell((FILE *)os); -} - +} + +ulong osFGets(osFile os,uchar *str,ulong max) +{ + char *s; + + s=fgets(str,max,(FILE *)os); + + if(s) + { + if(strlen(s)>=2 && s[strlen(s)-1]==10 && s[strlen(s)-2]==13) + { + /* CRLF -> LF */ + + s[strlen(s)-2]=10; + s[strlen(s)-1]=0; + } + + return (ulong)strlen(s); + } + + return(0); +} + +ulong osFTell(osFile os) +{ + return ftell((FILE *)os); +} + bool osFPrintf(osFile os,uchar *fmt,...) { @@ -128,15 +128,15 @@ return(TRUE); } -void osSeek(osFile fh,ulong offset,short mode) -{ - int md; - - if(mode == OFFSET_BEGINNING) - md=SEEK_SET; - - if(mode == OFFSET_END) - md=SEEK_END; - - fseek((FILE *)fh,offset,md); -} +void osSeek(osFile fh,ulong offset,short mode) +{ + int md; + + if(mode == OFFSET_BEGINNING) + md=SEEK_SET; + + if(mode == OFFSET_END) + md=SEEK_END; + + fseek((FILE *)fh,offset,md); +} --- crashmail-0.71.orig/src/oslib_os2/os.c +++ crashmail-0.71/src/oslib_os2/os.c @@ -1,13 +1,13 @@ -#include - -#include - -bool osInit(void) -{ - return(TRUE); -} - -void osEnd(void) -{ -} - +#include + +#include + +bool osInit(void) +{ + return(TRUE); +} + +void osEnd(void) +{ +} + --- crashmail-0.71.orig/src/oslib_os2/os_os2.h +++ crashmail-0.71/src/oslib_os2/os_os2.h @@ -1,32 +1,32 @@ -#include - -#include -#include - -bool osInit(void); -void osEnd(void); - -typedef unsigned short UINT16; /* Unsigned 16-bit integer */ - -#define OS_EXIT_ERROR 10 -#define OS_EXIT_OK 0 - -#define OS_PLATFORM_NAME "2" -#define OS_CURRENT_DIR "." -#define OS_PATH_CHARS "\\" - -#define OS_CONFIG_NAME "crashmail.prefs" +#include + +#include +#include + +bool osInit(void); +void osEnd(void); + +typedef unsigned short UINT16; /* Unsigned 16-bit integer */ + +#define OS_EXIT_ERROR 10 +#define OS_EXIT_OK 0 + +#define OS_PLATFORM_NAME "2" +#define OS_CURRENT_DIR "." +#define OS_PATH_CHARS "\\" + +#define OS_CONFIG_NAME "crashmail.prefs" #define OS_CONFIG_VAR "CMCONFIGFILE" - -/* - Used by MakeFullPath. If path doesn't end with one of these characters, - the first character will be appended to it. - - Example: - - OS_PATH_CHARS = "/:" - - "inbound" + "file" --> "inbound/file" - "inbound/" + "file" --> "inbound/file" - "inbound:" + "file" --> "inbound/file" -*/ + +/* + Used by MakeFullPath. If path doesn't end with one of these characters, + the first character will be appended to it. + + Example: + + OS_PATH_CHARS = "/:" + + "inbound" + "file" --> "inbound/file" + "inbound/" + "file" --> "inbound/file" + "inbound:" + "file" --> "inbound/file" +*/ --- crashmail-0.71.orig/src/oslib_os2/osdir.c +++ crashmail-0.71/src/oslib_os2/osdir.c @@ -1,100 +1,100 @@ #include -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include -#include - -#include -#include - -bool osReadDir(uchar *dirname,struct jbList *filelist,bool (*acceptfunc)(uchar *filename)) -{ - DIR *dir; - struct dirent *dirent; - struct osFileEntry *tmp; - char buf[200]; - - jbNewList(filelist); - - if(!(dir=opendir(dirname))) - return(FALSE); - - while((dirent=readdir(dir))) - { - bool add; - - if(!acceptfunc) add=TRUE; - else add=(*acceptfunc)(dirent->d_name); - - if(add) - { - struct stat st; - - MakeFullPath(dirname,dirent->d_name,buf,200); - - if(stat(buf,&st) == 0) - { - if(!(tmp=(struct osFileEntry *)osAllocCleared(sizeof(struct osFileEntry)))) - { - jbFreeList(filelist); - closedir(dir); - return(FALSE); - } - - mystrncpy(tmp->Name,dirent->d_name,100); - tmp->Size=st.st_size; - tmp->Date=st.st_mtime; - - jbAddNode(filelist,(struct jbNode *)tmp); - } - } - } - - closedir(dir); - - return(TRUE); -} - -bool osScanDir(uchar *dirname,void (*func)(uchar *file)) -{ - DIR *dir; - struct dirent *dirent; - - if(!(dir=opendir(dirname))) - return(FALSE); - - while((dirent=readdir(dir))) - (*func)(dirent->d_name); - - closedir(dir); - - return(TRUE); -} - -struct osFileEntry *osGetFileEntry(uchar *file) -{ - struct stat st; - struct osFileEntry *tmp; - - if(stat(file,&st) != 0) - return(FALSE); - - if(!(tmp=(struct osFileEntry *)osAllocCleared(sizeof(struct osFileEntry)))) - return(FALSE); - - mystrncpy(tmp->Name,GetFilePart(file),100); - - tmp->Size=st.st_size; - tmp->Date=st.st_mtime; - - return(tmp); -} +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + +bool osReadDir(uchar *dirname,struct jbList *filelist,bool (*acceptfunc)(uchar *filename)) +{ + DIR *dir; + struct dirent *dirent; + struct osFileEntry *tmp; + char buf[200]; + + jbNewList(filelist); + + if(!(dir=opendir(dirname))) + return(FALSE); + + while((dirent=readdir(dir))) + { + bool add; + + if(!acceptfunc) add=TRUE; + else add=(*acceptfunc)(dirent->d_name); + + if(add) + { + struct stat st; + + MakeFullPath(dirname,dirent->d_name,buf,200); + + if(stat(buf,&st) == 0) + { + if(!(tmp=(struct osFileEntry *)osAllocCleared(sizeof(struct osFileEntry)))) + { + jbFreeList(filelist); + closedir(dir); + return(FALSE); + } + + mystrncpy(tmp->Name,dirent->d_name,100); + tmp->Size=st.st_size; + tmp->Date=st.st_mtime; + + jbAddNode(filelist,(struct jbNode *)tmp); + } + } + } + + closedir(dir); + + return(TRUE); +} + +bool osScanDir(uchar *dirname,void (*func)(uchar *file)) +{ + DIR *dir; + struct dirent *dirent; + + if(!(dir=opendir(dirname))) + return(FALSE); + + while((dirent=readdir(dir))) + (*func)(dirent->d_name); + + closedir(dir); + + return(TRUE); +} + +struct osFileEntry *osGetFileEntry(uchar *file) +{ + struct stat st; + struct osFileEntry *tmp; + + if(stat(file,&st) != 0) + return(FALSE); + + if(!(tmp=(struct osFileEntry *)osAllocCleared(sizeof(struct osFileEntry)))) + return(FALSE); + + mystrncpy(tmp->Name,GetFilePart(file),100); + + tmp->Size=st.st_size; + tmp->Date=st.st_mtime; + + return(tmp); +} --- crashmail-0.71.orig/src/crashmail/filter.c +++ crashmail-0.71/src/crashmail/filter.c @@ -753,14 +753,14 @@ if(tmproute) Copy4D(&my4d,&tmproute->Aka->Node); - LogWrite(4,SYSTEMINFO,"Filter: Remapping message to %s at %lu:%lu/%lu.%lu", + LogWrite(4,SYSTEMINFO,"Filter: Remapping message to %s at %u:%u/%u.%u", newto, newdest4d.Zone, newdest4d.Net, newdest4d.Node, newdest4d.Point); - LogWrite(4,SYSTEMINFO,"Filter: Message originally to %s at %lu:%lu/%lu.%lu", + LogWrite(4,SYSTEMINFO,"Filter: Message originally to %s at %u:%u/%u.%u", oldto, olddest4d.Zone, olddest4d.Net, --- crashmail-0.71.orig/src/crashmail/config.c +++ crashmail-0.71/src/crashmail/config.c @@ -1944,7 +1944,7 @@ void WriteNode4D(osFile fh,struct Node4D *n4d) { - osFPrintf(fh,"%lu:%lu/%lu.%lu",n4d->Zone,n4d->Net,n4d->Node,n4d->Point); + osFPrintf(fh,"%u:%u/%u.%u",n4d->Zone,n4d->Net,n4d->Node,n4d->Point); } uchar *nodekeywords[]={"DEFAULTGROUP","REMOTESYSOP","REMOTEAF", --- crashmail-0.71.orig/src/crashmail/dupe.c +++ crashmail-0.71/src/crashmail/dupe.c @@ -127,7 +127,7 @@ { ulong err=osError(); LogWrite(1,SYSTEMERR,"Failed to open dupe file %s in read/write mode",config.cfg_DupeFile); - LogWrite(1,SYSTEMERR,"Error: %s",config.cfg_DupeFile,osErrorMsg(err)); + LogWrite(1,SYSTEMERR,"Error: %s",osErrorMsg(err)); return(FALSE); } --- crashmail-0.71.orig/src/crashmail/handle.c +++ crashmail-0.71/src/crashmail/handle.c @@ -577,7 +577,7 @@ if(!temptnode) { - LogWrite(1,TOSSINGERR,"%lu:%lu/%lu.%lu doesn't receive %s", + LogWrite(1,TOSSINGERR,"%u:%u/%u.%u doesn't receive %s", mm->PktOrig.Zone, mm->PktOrig.Net, mm->PktOrig.Node, @@ -594,7 +594,7 @@ if(temptnode->Flags & TOSSNODE_READONLY) { - LogWrite(1,TOSSINGERR,"%lu:%lu/%lu.%lu is not allowed to write in %s", + LogWrite(1,TOSSINGERR,"%u:%u/%u.%u is not allowed to write in %s", mm->PktOrig.Zone, mm->PktOrig.Net, mm->PktOrig.Node, @@ -1328,7 +1328,7 @@ if(!tmproute) { - LogWrite(1,TOSSINGERR,"No routing configured for %lu:%lu/%lu.%lu - message lost", + LogWrite(1,TOSSINGERR,"No routing configured for %u:%u/%u.%u - message lost", mm->DestNode.Zone, mm->DestNode.Net, mm->DestNode.Node, @@ -1367,7 +1367,7 @@ if(mm->Type != oldtype) { - LogWrite(4,TOSSINGINFO,"Changed priority for netmail to %lu:%lu/%lu.%lu from %s to %s", + LogWrite(4,TOSSINGINFO,"Changed priority for netmail to %u:%u/%u.%u from %s to %s", Dest4D.Zone,Dest4D.Net,Dest4D.Node,Dest4D.Point, prinames[oldtype],prinames[mm->Type]); } @@ -1378,7 +1378,7 @@ { Dest4D.Point=0; - LogWrite(4,TOSSINGINFO,"Cannot send %s to a point, sending to %lu:%lu/%lu.%lu instead", + LogWrite(4,TOSSINGINFO,"Cannot send %s to a point, sending to %u:%u/%u.%u instead", prinames[mm->Type],Dest4D.Zone,Dest4D.Net,Dest4D.Node,Dest4D.Point); } } @@ -1389,7 +1389,7 @@ { if(IsLoopMail(mm)) { - LogWrite(1,TOSSINGERR,"Possible loopmail detected: Received from %lu:%lu/%lu.%lu, to %lu:%lu/%lu.%lu", + LogWrite(1,TOSSINGERR,"Possible loopmail detected: Received from %u:%u/%u.%u, to %u:%u/%u.%u", mm->PktOrig.Zone, mm->PktOrig.Net, mm->PktOrig.Node, @@ -1559,7 +1559,7 @@ if(!patternnode) { - LogWrite(3,TOSSINGERR,"Refused to route file-attach from %lu:%lu/%lu.%lu to %lu:%lu/%lu.%lu",mm->OrigNode.Zone,mm->OrigNode.Net,mm->OrigNode.Node,mm->OrigNode.Point, + LogWrite(3,TOSSINGERR,"Refused to route file-attach from %u:%u/%u.%u to %u:%u/%u.%u",mm->OrigNode.Zone,mm->OrigNode.Net,mm->OrigNode.Node,mm->OrigNode.Point, mm->DestNode.Zone,mm->DestNode.Net,mm->DestNode.Node,mm->DestNode.Point); @@ -1592,7 +1592,7 @@ if(mm->Subject[0] != 0) strcat(mm->Subject," "); strcat(mm->Subject,GetFilePart(buf)); - LogWrite(4,TOSSINGINFO,"Routing file %s to %lu:%lu/%lu.%lu",GetFilePart(buf),Dest4D.Zone,Dest4D.Net,Dest4D.Node,Dest4D.Point); + LogWrite(4,TOSSINGINFO,"Routing file %s to %u:%u/%u.%u",GetFilePart(buf),Dest4D.Zone,Dest4D.Net,Dest4D.Node,Dest4D.Point); if((mm->Flags & MMFLAG_EXPORTED)) { @@ -1646,7 +1646,7 @@ if(mm->Type == PKTS_NORMAL) { - LogWrite(5,TOSSINGINFO,"Routing message to %lu:%lu/%lu.%lu via %lu:%lu/%lu.%lu", + LogWrite(5,TOSSINGINFO,"Routing message to %u:%u/%u.%u via %u:%u/%u.%u", mm->DestNode.Zone, mm->DestNode.Net, mm->DestNode.Node, @@ -1658,7 +1658,7 @@ } else { - LogWrite(5,TOSSINGINFO,"Sending message directly to %lu:%lu/%lu.%lu", + LogWrite(5,TOSSINGINFO,"Sending message directly to %u:%u/%u.%u", Dest4D.Zone, Dest4D.Net, Dest4D.Node, --- crashmail-0.71.orig/src/crashmail/areafix.c +++ crashmail-0.71/src/crashmail/areafix.c @@ -619,7 +619,7 @@ { uchar buf2[100]; - LogWrite(3,AREAFIX,"AreaFix: %s requested from %lu:%lu/%lu.%lu",areaname,arealist->Node->Node.Zone,arealist->Node->Node.Net,arealist->Node->Node.Node,arealist->Node->Node.Point); + LogWrite(3,AREAFIX,"AreaFix: %s requested from %u:%u/%u.%u",areaname,arealist->Node->Node.Zone,arealist->Node->Node.Net,arealist->Node->Node.Node,arealist->Node->Node.Point); sprintf(buf2,"Request sent to %u:%u/%u.%u",arealist->Node->Node.Zone,arealist->Node->Node.Net,arealist->Node->Node.Node,arealist->Node->Node.Point); AddCommandReply(afr,buf,buf2); @@ -737,7 +737,7 @@ { if(tn->ConfigNode->Flags & NODE_SENDAREAFIX) { - LogWrite(5,AREAFIX,"AreaFix: Sending message to AreaFix at %ld:%ld/%ld.%ld", + LogWrite(5,AREAFIX,"AreaFix: Sending message to AreaFix at %d:%d/%d.%d", tn->ConfigNode->Node.Zone, tn->ConfigNode->Node.Net, tn->ConfigNode->Node.Node, @@ -780,7 +780,7 @@ if((tn->ConfigNode->Flags & NODE_SENDTEXT) && !(tn->Flags & TOSSNODE_FEED)) { - LogWrite(5,AREAFIX,"AreaFix: Notifying sysop at %ld:%ld/%ld.%ld", + LogWrite(5,AREAFIX,"AreaFix: Notifying sysop at %d:%d/%d.%d", tn->ConfigNode->Node.Zone, tn->ConfigNode->Node.Net, tn->ConfigNode->Node.Node, @@ -1081,7 +1081,7 @@ switch(type) { case SENDLIST_QUERY: - LogWrite(4,AREAFIX,"AreaFix: Sending query to %lu:%lu/%lu.%lu", + LogWrite(4,AREAFIX,"AreaFix: Sending query to %u:%u/%u.%u", cnode->Node.Zone, cnode->Node.Net, cnode->Node.Node, @@ -1090,7 +1090,7 @@ break; case SENDLIST_UNLINKED: - LogWrite(4,AREAFIX,"AreaFix: Sending list of unlinked areas to %lu:%lu/%lu.%lu", + LogWrite(4,AREAFIX,"AreaFix: Sending list of unlinked areas to %u:%u/%u.%u", cnode->Node.Zone, cnode->Node.Net, cnode->Node.Node, @@ -1099,7 +1099,7 @@ break; case SENDLIST_FULL: - LogWrite(4,AREAFIX,"AreaFix: Sending list of areas to %lu:%lu/%lu.%lu", + LogWrite(4,AREAFIX,"AreaFix: Sending list of areas to %u:%u/%u.%u", cnode->Node.Zone, cnode->Node.Net, cnode->Node.Node, @@ -1116,7 +1116,7 @@ switch(type) { case SENDLIST_QUERY: - afAddLine(afr,"This is a list of all connected areas at %lu:%lu/%lu.%lu:", + afAddLine(afr,"This is a list of all connected areas at %u:%u/%u.%u:", from4d->Zone, from4d->Net, from4d->Node, @@ -1124,7 +1124,7 @@ break; case SENDLIST_FULL: - afAddLine(afr,"This is a list of all available areas at %lu:%lu/%lu.%lu:", + afAddLine(afr,"This is a list of all available areas at %u:%u/%u.%u:", from4d->Zone, from4d->Net, from4d->Node, @@ -1132,7 +1132,7 @@ break; case SENDLIST_UNLINKED: - afAddLine(afr,"This is a list of all unlinked areas at %lu:%lu/%lu.%lu:", + afAddLine(afr,"This is a list of all unlinked areas at %u:%u/%u.%u:", from4d->Zone, from4d->Net, from4d->Node, @@ -1298,7 +1298,7 @@ osFile fh; struct afReply *afr; - LogWrite(4,AREAFIX,"AreaFix: Sending help file to %lu:%lu/%lu.%lu", + LogWrite(4,AREAFIX,"AreaFix: Sending help file to %u:%u/%u.%u", cnode->Node.Zone, cnode->Node.Net, cnode->Node.Node, @@ -1336,7 +1336,7 @@ int c; struct afReply *afr; - LogWrite(4,AREAFIX,"AreaFix: Sending configuration info to %lu:%lu/%lu.%lu", + LogWrite(4,AREAFIX,"AreaFix: Sending configuration info to %u:%u/%u.%u", cnode->Node.Zone, cnode->Node.Net, cnode->Node.Node, @@ -1345,7 +1345,7 @@ if(!(afr=afInitReply(config.cfg_Sysop,from4d,toname,&cnode->Node,"AreaFix configuration info"))) return; - afAddLine(afr,"Configuration for %lu:%lu/%lu.%lu:", + afAddLine(afr,"Configuration for %u:%u/%u.%u:", cnode->Node.Zone, cnode->Node.Net, cnode->Node.Node, @@ -1659,7 +1659,7 @@ if(!tmproute) { - LogWrite(1,TOSSINGERR,"No route found for %ld:%ld/%ld.%ld", + LogWrite(1,TOSSINGERR,"No route found for %d:%d/%d.%d", cnode->Node.Zone, cnode->Node.Net, cnode->Node.Node, --- crashmail-0.71.orig/src/crashmail/crashmail.c +++ crashmail-0.71/src/crashmail/crashmail.c @@ -351,7 +351,7 @@ if(!cnode) { - LogWrite(1,USERERR,"Unknown node %lu:%lu/%lu.%lu",n4d.Zone,n4d.Net,n4d.Node,n4d.Point); + LogWrite(1,USERERR,"Unknown node %u:%u/%u.%u",n4d.Zone,n4d.Net,n4d.Node,n4d.Point); return(FALSE); } @@ -428,7 +428,7 @@ } else { - LogWrite(1,USERERR,"Unknown node %lu:%lu/%lu.%lu",n4d.Zone,n4d.Net,n4d.Node,n4d.Point); + LogWrite(1,USERERR,"Unknown node %u:%u/%u.%u",n4d.Zone,n4d.Net,n4d.Node,n4d.Point); return(FALSE); } } --- crashmail-0.71.orig/src/crashmail/pkt.c +++ crashmail-0.71/src/crashmail/pkt.c @@ -270,7 +270,7 @@ mystrncpy(domain,&PktHeader[PKTHEADER45_ORIGDOMAIN],9); - LogWrite(1,ACTIONINFO,"Tossing %s (%luK) from %ld:%ld/%ld.%ld@%s %s", + LogWrite(1,ACTIONINFO,"Tossing %s (%luK) from %d:%d/%d.%d@%s %s", fe->Name, (fe->Size+512)/1024, PktOrig.Zone, @@ -289,7 +289,7 @@ if(month > 11) month=12; - LogWrite(1,ACTIONINFO,"Tossing %s (%luK) from %ld:%ld/%ld.%ld (%02ld-%s-%02ld %02ld:%02ld:%02ld) %s", + LogWrite(1,ACTIONINFO,"Tossing %s (%luK) from %d:%d/%d.%d (%02d-%s-%02d %02d:%02d:%02d) %s", fe->Name, (fe->Size+512)/1024, PktOrig.Zone, --- crashmail-0.71.orig/src/crashmail/logwrite.c +++ crashmail-0.71/src/crashmail/logwrite.c @@ -96,12 +96,12 @@ if(usesyslog) { va_start(args, fmt); - vprintf(fmt,args); printf("\n"); + va_end(args); + va_start(args, fmt); vsyslog(syslogpri[category],fmt,args); - va_end(args); return; @@ -109,9 +109,9 @@ #endif va_start(args, fmt); - vprintf(fmt,args); printf("\n"); + va_end(args); time(&t); tp=localtime(&t); @@ -125,6 +125,7 @@ tp->tm_min, tp->tm_sec); + va_start(args, fmt); osVFPrintf(logfh,fmt,args); osFPrintf(logfh,"\n"); --- crashmail-0.71.orig/src/crashmail/areafix.h +++ crashmail-0.71/src/crashmail/areafix.h @@ -1,14 +1,14 @@ - -#define SENDLIST_FULL 1 -#define SENDLIST_QUERY 2 -#define SENDLIST_UNLINKED 3 -#define SENDLIST_HELP 4 -#define SENDLIST_INFO 5 - -void DoSendAFList(short type,struct ConfigNode *cnode); -bool AreaFix(struct MemMessage *mm); - -void SendRemoveMessages(struct Area *area); -void RemoveDeletedAreas(void); - - + +#define SENDLIST_FULL 1 +#define SENDLIST_QUERY 2 +#define SENDLIST_UNLINKED 3 +#define SENDLIST_HELP 4 +#define SENDLIST_INFO 5 + +void DoSendAFList(short type,struct ConfigNode *cnode); +bool AreaFix(struct MemMessage *mm); + +void SendRemoveMessages(struct Area *area); +void RemoveDeletedAreas(void); + + --- crashmail-0.71.orig/src/jamlib/Makefile.win32 +++ crashmail-0.71/src/jamlib/Makefile.win32 @@ -1,29 +1,29 @@ -CC = gcc -Wall -AR = ar -ru -RM = del - -OBJS = crc32.o mbase.o message.o lastread.o subpack.o structrw.o - -jamlib.a : $(OBJS) - $(AR) jamlib.a $(OBJS) - -crc32.o: crc32.c jam.h - $(CC) -c crc32.c -o crc32.o - -mbase.o: mbase.c jam.h - $(CC) -c mbase.c -o mbase.o - -message.o: message.c jam.h - $(CC) -c message.c -o message.o - -lastread.o: lastread.c jam.h - $(CC) -c lastread.c -o lastread.o - -subpack.o: subpack.c jam.h - $(CC) -c subpack.c -o subpack.o - -structrw.o: structrw.c jam.h - $(CC) -c structrw.c -o structrw.o - -clean: - $(RM) *.o *.a +CC = gcc -Wall +AR = ar -ru +RM = del + +OBJS = crc32.o mbase.o message.o lastread.o subpack.o structrw.o + +jamlib.a : $(OBJS) + $(AR) jamlib.a $(OBJS) + +crc32.o: crc32.c jam.h + $(CC) -c crc32.c -o crc32.o + +mbase.o: mbase.c jam.h + $(CC) -c mbase.c -o mbase.o + +message.o: message.c jam.h + $(CC) -c message.c -o message.o + +lastread.o: lastread.c jam.h + $(CC) -c lastread.c -o lastread.o + +subpack.o: subpack.c jam.h + $(CC) -c subpack.c -o subpack.o + +structrw.o: structrw.c jam.h + $(CC) -c structrw.c -o structrw.o + +clean: + $(RM) *.o *.a --- crashmail-0.71.orig/src/jamlib/jam.h +++ crashmail-0.71/src/jamlib/jam.h @@ -39,13 +39,14 @@ #include #include #include +#include -#ifndef linux -typedef unsigned short ushort; /* must be 16 bits wide */ -typedef unsigned long ulong; /* must be 32 bits wide */ +#ifndef __GLIBC__ +typedef uint16_t ushort; /* must be 16 bits wide */ +typedef uint32_t ulong; /* must be 32 bits wide */ #endif -typedef unsigned char uchar; /* must be 8 bits wide */ +typedef uint8_t uchar; /* must be 8 bits wide */ /* ** Error codes --- crashmail-0.71.orig/src/jamlib/Makefile.linux +++ crashmail-0.71/src/jamlib/Makefile.linux @@ -1,4 +1,4 @@ -CC = gcc -D__LINUX__ -Wall +CC = gcc $(CPPFLAGS) $(CFLAGS) -D__LINUX__ $(LDFLAGS) -Wall AR = ar -ru RM = rm -f --- crashmail-0.71.orig/src/oslib_linux/os_linux.h +++ crashmail-0.71/src/oslib_linux/os_linux.h @@ -1,6 +1,7 @@ #include +#include -typedef unsigned short UINT16; /* Unsigned 16-bit integer */ +typedef uint16_t UINT16; /* Unsigned 16-bit integer */ #define OS_EXIT_ERROR 10 #define OS_EXIT_OK 0 --- crashmail-0.71.orig/src/oslib_linux/Makefile +++ crashmail-0.71/src/oslib_linux/Makefile @@ -1,6 +1,6 @@ INCDIR = ../ -CC = gcc -Wall -I $(INCDIR) -DPLATFORM_LINUX +CC = gcc $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -Wall -I $(INCDIR) -DPLATFORM_LINUX AR = ar -ru RM = rm -f --- crashmail-0.71.orig/src/oslib_win32/osmem.c +++ crashmail-0.71/src/oslib_win32/osmem.c @@ -1,18 +1,18 @@ -#include - -#include - -void *osAlloc(ulong size) -{ - return malloc((size_t)size); -} - -void *osAllocCleared(ulong size) -{ - return calloc((size_t)size,1); -} - -void osFree(void *buf) -{ - free(buf); -} +#include + +#include + +void *osAlloc(ulong size) +{ + return malloc((size_t)size); +} + +void *osAllocCleared(ulong size) +{ + return calloc((size_t)size,1); +} + +void osFree(void *buf) +{ + free(buf); +} --- crashmail-0.71.orig/src/oslib_win32/osfile.c +++ crashmail-0.71/src/oslib_win32/osfile.c @@ -1,386 +1,386 @@ -#include - -#include /* Only for vsprintf() */ -#include - -#include -#include - -#define MIN(a,b) ((a)<(b)? (a):(b)) - -#define OSFILE_BUFSIZE 5000 - -#define LASTACCESS_READ 1 -#define LASTACCESS_WRITE 2 - -struct osfile -{ - HANDLE h; - uchar *buf; - int lastaccessmode; - ulong bufmax; - ulong buflen; - ulong bufpos; - ulong filepos; -}; - -bool win32writebuffer(struct osfile *osf) -{ - DWORD numberofbyteswritten; - - if(osf->bufpos == 0) - return(TRUE); /* Nothing to do */ - - if(!WriteFile(osf->h,osf->buf,osf->bufpos,&numberofbyteswritten,NULL)) - return(FALSE); - - if(numberofbyteswritten != osf->bufpos) - return(FALSE); - - osf->bufpos=0; - osf->buflen=0; - - return(TRUE); -} - -bool win32readbuffer(struct osfile *osf) -{ - DWORD numberofbytesread; - - if(!ReadFile(osf->h,osf->buf,osf->bufmax,&numberofbytesread,NULL)) - return(FALSE); - - if(numberofbytesread == 0) - return(FALSE); - - osf->buflen=numberofbytesread; - osf->bufpos=0; - - return(TRUE); -} - -bool win32setmoderead(struct osfile *osf) -{ - if(osf->lastaccessmode == LASTACCESS_WRITE) - { - /* Flush write buffer */ - - if(!win32writebuffer(osf)) - return(FALSE); - - osf->buflen=0; - osf->bufpos=0; - } - - osf->lastaccessmode = LASTACCESS_READ; - return(TRUE); -} - -bool win32setmodewrite(struct osfile *osf) -{ - if(osf->lastaccessmode == LASTACCESS_READ) - { - /* File pointer needs to be adjusted */ - - SetFilePointer(osf->h,osf->filepos,NULL,FILE_END); - - osf->buflen=0; - osf->bufpos=0; - } - - osf->lastaccessmode = LASTACCESS_WRITE; - return(TRUE); -} - -osFile osOpen(uchar *name,ulong mode) -{ - DWORD desiredaccess; - DWORD sharemode; - DWORD creationdisposition; - struct osfile *os; - - if(!(os=osAllocCleared(sizeof(struct osfile)))) - return(NULL); - - if(!(os->buf=osAlloc(OSFILE_BUFSIZE))) - { - osFree(os); - return(NULL); - } - - if(mode == MODE_NEWFILE) - { - desiredaccess=GENERIC_WRITE; - sharemode=0; - creationdisposition=CREATE_ALWAYS; - } - else if(mode == MODE_OLDFILE) - { - desiredaccess=GENERIC_READ; - sharemode=FILE_SHARE_READ; - creationdisposition=OPEN_EXISTING; - } - else - { - desiredaccess=GENERIC_READ | GENERIC_WRITE; - sharemode=FILE_SHARE_READ | FILE_SHARE_WRITE; - creationdisposition=OPEN_ALWAYS; - } - - os->h=CreateFile(name,desiredaccess,sharemode,NULL, - creationdisposition,FILE_ATTRIBUTE_NORMAL,NULL); - - if(os->h == INVALID_HANDLE_VALUE) - { - osFree(os->buf); - osFree(os); - return(NULL); - } - - os->bufmax=OSFILE_BUFSIZE; - - return (osFile)os; -} - -void osClose(osFile os) -{ - struct osfile *osf=(struct osfile *)os; - - if(osf->lastaccessmode == LASTACCESS_WRITE) - win32writebuffer(osf); - - CloseHandle(osf->h); - osFree(osf->buf); - osFree(osf); -} - -ulong osRead(osFile os,void *buf,ulong bytes) -{ - struct osfile *osf=(struct osfile *)os; - ulong read,n; - - win32setmoderead(osf); - - read=0; - - if(osf->buflen-osf->bufpos != 0) - { - /* Copy what's left in the buffer */ - - n=MIN(osf->buflen-osf->bufpos,bytes); - - memcpy(buf,&osf->buf[osf->bufpos],n); - osf->bufpos+=n; - osf->filepos+=n; - - buf+=n; - bytes-=n; - read+=n; - } - - if(bytes > osf->bufmax) - { - /* Larger than buffer, read directly */ - - DWORD numberofbytesread; - - if(!ReadFile(osf->h,buf,bytes,&numberofbytesread,NULL)) - return(read); - - read+=numberofbytesread; - osf->filepos+=numberofbytesread; - } - else if(bytes > 0) - { - /* Get rest from buffer */ - - if(!win32readbuffer(osf)) - return(read); - - n=MIN(osf->buflen-osf->bufpos,bytes); - - memcpy(buf,&osf->buf[osf->bufpos],n); - osf->bufpos+=n; - osf->filepos+=n; - - buf+=n; - bytes-=n; - read+=n; - } - - return(read); -} - -int osGetChar(osFile os) -{ - struct osfile *osf=(struct osfile *)os; - - win32setmoderead(osf); - - if(osf->buflen-osf->bufpos == 0) - { - /* Buffer needs to be refilled */ - - if(!win32readbuffer(osf)) - return(-1); - } - - osf->filepos++; - return(osf->buf[osf->bufpos++]); -} - -ulong osFGets(osFile os,uchar *str,ulong max) -{ - ulong d; - int ch; - - d=0; - - if(max==0) - return(0); - - for(;;) - { - ch=osGetChar(os); - - if(ch == -1) /* End of file */ - { - str[d]=0; - return(d); - } - - if(ch == 10) /* End of line */ - { - str[d++]=ch; - str[d]=0; - return(d); - } - - if(ch != 13) /* CRs are skipped */ - str[d++]=ch; - - if(d == max-1) /* Buffer full */ - { - str[d]=0; - return(d); - } - } -} - -bool osWrite(osFile os,const void *buf,ulong bytes) -{ - struct osfile *osf=(struct osfile *)os; - DWORD numberofbyteswritten; - - win32setmodewrite(osf); - - if(bytes > osf->bufmax-osf->bufpos) - { - /* Will not fit in buffer */ - - if(!win32writebuffer(osf)) - return(FALSE); - } - - if(bytes > osf->bufmax) - { - /* Larger than buffer, write directly */ - - if(!WriteFile(osf->h,buf,bytes,&numberofbyteswritten,NULL)) - return(FALSE); - - if(numberofbyteswritten != bytes) - return(FALSE); - - osf->filepos+=bytes; - } - else - { - /* Put in buffer */ - - memcpy(&osf->buf[osf->bufpos],buf,bytes); - osf->bufpos+=bytes; - osf->filepos+=bytes; - } - - return(TRUE); -} - -bool osPutChar(osFile os, uchar ch) -{ - struct osfile *osf=(struct osfile *)os; - - win32setmodewrite(osf); - - if(osf->bufpos == osf->bufmax) - { - if(!win32writebuffer(osf)) - return(FALSE); - } - - osf->buf[osf->bufpos++]=ch; - osf->filepos++; - - return(TRUE); -} - -bool osPuts(osFile os,uchar *str) -{ - if(osWrite(os,str,strlen(str))!=strlen(str)) - return(FALSE); - - return(TRUE); -} - -bool osFPrintf(osFile os,uchar *fmt,...) -{ - va_list args; - uchar buf[1000]; - - va_start(args, fmt); - vsprintf(buf,fmt,args); - va_end(args); - - return osPuts(os,buf); -} - -bool osVFPrintf(osFile os,uchar *fmt,va_list args) -{ - uchar buf[1000]; - - vsprintf(buf,fmt,args); - - return osPuts(os,buf); -} - -void osSeek(osFile os,ulong offset,short mode) -{ - struct osfile *osf=(struct osfile *)os; - DWORD movemethod; - - /* Flush buffer if needed */ - - if(osf->lastaccessmode == LASTACCESS_WRITE) - win32writebuffer(osf); - - /* Empty buffer */ - - osf->buflen=0; - osf->bufpos=0; - osf->lastaccessmode=0; - - if(mode == OFFSET_BEGINNING) - movemethod=FILE_BEGIN; - - if(mode == OFFSET_END) - movemethod=FILE_END; - - osf->filepos=SetFilePointer(osf->h,offset,NULL,movemethod); -} - -ulong osFTell(osFile os) -{ - struct osfile *osf=(struct osfile *)os; - - return(osf->filepos); -} +#include + +#include /* Only for vsprintf() */ +#include + +#include +#include + +#define MIN(a,b) ((a)<(b)? (a):(b)) + +#define OSFILE_BUFSIZE 5000 + +#define LASTACCESS_READ 1 +#define LASTACCESS_WRITE 2 + +struct osfile +{ + HANDLE h; + uchar *buf; + int lastaccessmode; + ulong bufmax; + ulong buflen; + ulong bufpos; + ulong filepos; +}; + +bool win32writebuffer(struct osfile *osf) +{ + DWORD numberofbyteswritten; + + if(osf->bufpos == 0) + return(TRUE); /* Nothing to do */ + + if(!WriteFile(osf->h,osf->buf,osf->bufpos,&numberofbyteswritten,NULL)) + return(FALSE); + + if(numberofbyteswritten != osf->bufpos) + return(FALSE); + + osf->bufpos=0; + osf->buflen=0; + + return(TRUE); +} + +bool win32readbuffer(struct osfile *osf) +{ + DWORD numberofbytesread; + + if(!ReadFile(osf->h,osf->buf,osf->bufmax,&numberofbytesread,NULL)) + return(FALSE); + + if(numberofbytesread == 0) + return(FALSE); + + osf->buflen=numberofbytesread; + osf->bufpos=0; + + return(TRUE); +} + +bool win32setmoderead(struct osfile *osf) +{ + if(osf->lastaccessmode == LASTACCESS_WRITE) + { + /* Flush write buffer */ + + if(!win32writebuffer(osf)) + return(FALSE); + + osf->buflen=0; + osf->bufpos=0; + } + + osf->lastaccessmode = LASTACCESS_READ; + return(TRUE); +} + +bool win32setmodewrite(struct osfile *osf) +{ + if(osf->lastaccessmode == LASTACCESS_READ) + { + /* File pointer needs to be adjusted */ + + SetFilePointer(osf->h,osf->filepos,NULL,FILE_END); + + osf->buflen=0; + osf->bufpos=0; + } + + osf->lastaccessmode = LASTACCESS_WRITE; + return(TRUE); +} + +osFile osOpen(uchar *name,ulong mode) +{ + DWORD desiredaccess; + DWORD sharemode; + DWORD creationdisposition; + struct osfile *os; + + if(!(os=osAllocCleared(sizeof(struct osfile)))) + return(NULL); + + if(!(os->buf=osAlloc(OSFILE_BUFSIZE))) + { + osFree(os); + return(NULL); + } + + if(mode == MODE_NEWFILE) + { + desiredaccess=GENERIC_WRITE; + sharemode=0; + creationdisposition=CREATE_ALWAYS; + } + else if(mode == MODE_OLDFILE) + { + desiredaccess=GENERIC_READ; + sharemode=FILE_SHARE_READ; + creationdisposition=OPEN_EXISTING; + } + else + { + desiredaccess=GENERIC_READ | GENERIC_WRITE; + sharemode=FILE_SHARE_READ | FILE_SHARE_WRITE; + creationdisposition=OPEN_ALWAYS; + } + + os->h=CreateFile(name,desiredaccess,sharemode,NULL, + creationdisposition,FILE_ATTRIBUTE_NORMAL,NULL); + + if(os->h == INVALID_HANDLE_VALUE) + { + osFree(os->buf); + osFree(os); + return(NULL); + } + + os->bufmax=OSFILE_BUFSIZE; + + return (osFile)os; +} + +void osClose(osFile os) +{ + struct osfile *osf=(struct osfile *)os; + + if(osf->lastaccessmode == LASTACCESS_WRITE) + win32writebuffer(osf); + + CloseHandle(osf->h); + osFree(osf->buf); + osFree(osf); +} + +ulong osRead(osFile os,void *buf,ulong bytes) +{ + struct osfile *osf=(struct osfile *)os; + ulong read,n; + + win32setmoderead(osf); + + read=0; + + if(osf->buflen-osf->bufpos != 0) + { + /* Copy what's left in the buffer */ + + n=MIN(osf->buflen-osf->bufpos,bytes); + + memcpy(buf,&osf->buf[osf->bufpos],n); + osf->bufpos+=n; + osf->filepos+=n; + + buf+=n; + bytes-=n; + read+=n; + } + + if(bytes > osf->bufmax) + { + /* Larger than buffer, read directly */ + + DWORD numberofbytesread; + + if(!ReadFile(osf->h,buf,bytes,&numberofbytesread,NULL)) + return(read); + + read+=numberofbytesread; + osf->filepos+=numberofbytesread; + } + else if(bytes > 0) + { + /* Get rest from buffer */ + + if(!win32readbuffer(osf)) + return(read); + + n=MIN(osf->buflen-osf->bufpos,bytes); + + memcpy(buf,&osf->buf[osf->bufpos],n); + osf->bufpos+=n; + osf->filepos+=n; + + buf+=n; + bytes-=n; + read+=n; + } + + return(read); +} + +int osGetChar(osFile os) +{ + struct osfile *osf=(struct osfile *)os; + + win32setmoderead(osf); + + if(osf->buflen-osf->bufpos == 0) + { + /* Buffer needs to be refilled */ + + if(!win32readbuffer(osf)) + return(-1); + } + + osf->filepos++; + return(osf->buf[osf->bufpos++]); +} + +ulong osFGets(osFile os,uchar *str,ulong max) +{ + ulong d; + int ch; + + d=0; + + if(max==0) + return(0); + + for(;;) + { + ch=osGetChar(os); + + if(ch == -1) /* End of file */ + { + str[d]=0; + return(d); + } + + if(ch == 10) /* End of line */ + { + str[d++]=ch; + str[d]=0; + return(d); + } + + if(ch != 13) /* CRs are skipped */ + str[d++]=ch; + + if(d == max-1) /* Buffer full */ + { + str[d]=0; + return(d); + } + } +} + +bool osWrite(osFile os,const void *buf,ulong bytes) +{ + struct osfile *osf=(struct osfile *)os; + DWORD numberofbyteswritten; + + win32setmodewrite(osf); + + if(bytes > osf->bufmax-osf->bufpos) + { + /* Will not fit in buffer */ + + if(!win32writebuffer(osf)) + return(FALSE); + } + + if(bytes > osf->bufmax) + { + /* Larger than buffer, write directly */ + + if(!WriteFile(osf->h,buf,bytes,&numberofbyteswritten,NULL)) + return(FALSE); + + if(numberofbyteswritten != bytes) + return(FALSE); + + osf->filepos+=bytes; + } + else + { + /* Put in buffer */ + + memcpy(&osf->buf[osf->bufpos],buf,bytes); + osf->bufpos+=bytes; + osf->filepos+=bytes; + } + + return(TRUE); +} + +bool osPutChar(osFile os, uchar ch) +{ + struct osfile *osf=(struct osfile *)os; + + win32setmodewrite(osf); + + if(osf->bufpos == osf->bufmax) + { + if(!win32writebuffer(osf)) + return(FALSE); + } + + osf->buf[osf->bufpos++]=ch; + osf->filepos++; + + return(TRUE); +} + +bool osPuts(osFile os,uchar *str) +{ + if(osWrite(os,str,strlen(str))!=strlen(str)) + return(FALSE); + + return(TRUE); +} + +bool osFPrintf(osFile os,uchar *fmt,...) +{ + va_list args; + uchar buf[1000]; + + va_start(args, fmt); + vsprintf(buf,fmt,args); + va_end(args); + + return osPuts(os,buf); +} + +bool osVFPrintf(osFile os,uchar *fmt,va_list args) +{ + uchar buf[1000]; + + vsprintf(buf,fmt,args); + + return osPuts(os,buf); +} + +void osSeek(osFile os,ulong offset,short mode) +{ + struct osfile *osf=(struct osfile *)os; + DWORD movemethod; + + /* Flush buffer if needed */ + + if(osf->lastaccessmode == LASTACCESS_WRITE) + win32writebuffer(osf); + + /* Empty buffer */ + + osf->buflen=0; + osf->bufpos=0; + osf->lastaccessmode=0; + + if(mode == OFFSET_BEGINNING) + movemethod=FILE_BEGIN; + + if(mode == OFFSET_END) + movemethod=FILE_END; + + osf->filepos=SetFilePointer(osf->h,offset,NULL,movemethod); +} + +ulong osFTell(osFile os) +{ + struct osfile *osf=(struct osfile *)os; + + return(osf->filepos); +} --- crashmail-0.71.orig/src/oslib_win32/Makefile +++ crashmail-0.71/src/oslib_win32/Makefile @@ -1,34 +1,34 @@ -INCDIR = ../ - -CC = gcc -I $(INCDIR) -DPLATFORM_WIN32 -Wall -AR = ar -ru -RM = del - -OBJS = osfile.o osdir.o osmisc.o osmem.o ospattern.o os.o - -oslib.a : $(OBJS) - $(AR) oslib.a $(OBJS) - -# os - -osfile.o : osfile.c - $(CC) -c osfile.c -o osfile.o - -osmisc.o : osmisc.c - $(CC) -c osmisc.c -o osmisc.o - -osdir.o : osdir.c - $(CC) -c osdir.c -o osdir.o - -osmem.o : osmem.c - $(CC) -c osmem.c -o osmem.o - -ospattern.o : ospattern.c - $(CC) -c ospattern.c -o ospattern.o - -os.o : os.c - $(CC) -c os.c -o os.o - -clean : - $(RM) *.o *.a - +INCDIR = ../ + +CC = gcc -I $(INCDIR) -DPLATFORM_WIN32 -Wall +AR = ar -ru +RM = del + +OBJS = osfile.o osdir.o osmisc.o osmem.o ospattern.o os.o + +oslib.a : $(OBJS) + $(AR) oslib.a $(OBJS) + +# os + +osfile.o : osfile.c + $(CC) -c osfile.c -o osfile.o + +osmisc.o : osmisc.c + $(CC) -c osmisc.c -o osmisc.o + +osdir.o : osdir.c + $(CC) -c osdir.c -o osdir.o + +osmem.o : osmem.c + $(CC) -c osmem.c -o osmem.o + +ospattern.o : ospattern.c + $(CC) -c ospattern.c -o ospattern.o + +os.o : os.c + $(CC) -c os.c -o os.o + +clean : + $(RM) *.o *.a + --- crashmail-0.71.orig/src/oslib_win32/os.c +++ crashmail-0.71/src/oslib_win32/os.c @@ -1,13 +1,13 @@ -#include - -#include - -bool osInit(void) -{ - return(TRUE); -} - -void osEnd(void) -{ -} - +#include + +#include + +bool osInit(void) +{ + return(TRUE); +} + +void osEnd(void) +{ +} + --- crashmail-0.71.orig/src/oslib_win32/osmisc.c +++ crashmail-0.71/src/oslib_win32/osmisc.c @@ -1,105 +1,105 @@ -#include - -#include /* For system() */ - -#include -#include - -#include -#include - -void osSetComment(uchar *file,uchar *comment) -{ - /* Does not exist in this os */ -} - -/* Returns -1 if dir was not found and errorlevel otherwise */ - -int osChDirExecute(uchar *dir,uchar *cmd) -{ - char olddir[300]; - int res; - - if(!GetCurrentDirectory(300,olddir)) - return(-1); - - if(!SetCurrentDirectory(dir)) - return(-1); - - res=osExecute(cmd); - - SetCurrentDirectory(olddir); - - return(res); -} - - -int osExecute(uchar *cmd) -{ - return system(cmd); -} - -bool osExists(uchar *file) -{ - HANDLE hFind; - WIN32_FIND_DATA FindFileData; - - hFind = FindFirstFile(file,&FindFileData); - FindClose(hFind); - - if (hFind == INVALID_HANDLE_VALUE) - return(FALSE); - - return(TRUE); -} - -bool osMkDir(uchar *dir) -{ - if(CreateDirectory(dir,NULL)) - return(TRUE); - - return(FALSE); -} - - -bool osRename(uchar *oldfile,uchar *newfile) -{ - if(MoveFile(oldfile,newfile)) - return(TRUE); - - return(FALSE); -} - -bool osDelete(uchar *file) -{ - if(DeleteFile(file)) - return(TRUE); - - return(FALSE); -} - -void osSleep(int secs) -{ - Sleep(secs*1000); -} - -uchar *osErrorMsg(ulong errnum) -{ - uchar charbuf[1000]; - static uchar oembuf[1000]; - - FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_MAX_WIDTH_MASK, - NULL,(DWORD)errnum,0,charbuf,1000,NULL); - - CharToOem(charbuf,oembuf); - - return (uchar *)oembuf; -} - -ulong osError(void) -{ - return (ulong)GetLastError(); -} - - - +#include + +#include /* For system() */ + +#include +#include + +#include +#include + +void osSetComment(uchar *file,uchar *comment) +{ + /* Does not exist in this os */ +} + +/* Returns -1 if dir was not found and errorlevel otherwise */ + +int osChDirExecute(uchar *dir,uchar *cmd) +{ + char olddir[300]; + int res; + + if(!GetCurrentDirectory(300,olddir)) + return(-1); + + if(!SetCurrentDirectory(dir)) + return(-1); + + res=osExecute(cmd); + + SetCurrentDirectory(olddir); + + return(res); +} + + +int osExecute(uchar *cmd) +{ + return system(cmd); +} + +bool osExists(uchar *file) +{ + HANDLE hFind; + WIN32_FIND_DATA FindFileData; + + hFind = FindFirstFile(file,&FindFileData); + FindClose(hFind); + + if (hFind == INVALID_HANDLE_VALUE) + return(FALSE); + + return(TRUE); +} + +bool osMkDir(uchar *dir) +{ + if(CreateDirectory(dir,NULL)) + return(TRUE); + + return(FALSE); +} + + +bool osRename(uchar *oldfile,uchar *newfile) +{ + if(MoveFile(oldfile,newfile)) + return(TRUE); + + return(FALSE); +} + +bool osDelete(uchar *file) +{ + if(DeleteFile(file)) + return(TRUE); + + return(FALSE); +} + +void osSleep(int secs) +{ + Sleep(secs*1000); +} + +uchar *osErrorMsg(ulong errnum) +{ + uchar charbuf[1000]; + static uchar oembuf[1000]; + + FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_MAX_WIDTH_MASK, + NULL,(DWORD)errnum,0,charbuf,1000,NULL); + + CharToOem(charbuf,oembuf); + + return (uchar *)oembuf; +} + +ulong osError(void) +{ + return (ulong)GetLastError(); +} + + + --- crashmail-0.71.orig/src/oslib_win32/osdir.c +++ crashmail-0.71/src/oslib_win32/osdir.c @@ -1,149 +1,149 @@ -#include - -#include -#include -#include -#include - -#include -#include - -void win32finddata_to_fileentry(WIN32_FIND_DATA *w32,struct osFileEntry *fe) -{ - FILETIME local; - SYSTEMTIME systime; - struct tm tp; - - mystrncpy(fe->Name,w32->cFileName,100); - - fe->Size=w32->nFileSizeLow; - - FileTimeToLocalFileTime(&w32->ftLastWriteTime,&local); - FileTimeToSystemTime(&local,&systime); - - tp.tm_sec=systime.wSecond; - tp.tm_min=systime.wMinute; - tp.tm_hour=systime.wHour; - tp.tm_mday=systime.wDay; - tp.tm_mon=systime.wMonth-1; - tp.tm_year=systime.wYear-1900; - tp.tm_wday=0; - tp.tm_yday=0; - tp.tm_isdst=-1; - - fe->Date=mktime(&tp); - - if(fe->Date == -1) /* Just in case */ - time(&fe->Date); -} - -bool win32readdiraddfile(WIN32_FIND_DATA *FindFileData,struct jbList *filelist,bool (*acceptfunc)(uchar *filename)) -{ - bool add; - struct osFileEntry *tmp; - - if(!acceptfunc) add=TRUE; - else add=(*acceptfunc)(FindFileData->cFileName); - - if(add) - { - if(!(tmp=(struct osFileEntry *)osAllocCleared(sizeof(struct osFileEntry)))) - { - jbFreeList(filelist); - return(FALSE); - } - - win32finddata_to_fileentry(FindFileData,tmp); - jbAddNode(filelist,(struct jbNode *)tmp); - } - - return(TRUE); -} - -bool osReadDir(uchar *dirname,struct jbList *filelist,bool (*acceptfunc)(uchar *filename)) -{ - WIN32_FIND_DATA FindFileData; - HANDLE hFind; - char buf[200]; - - jbNewList(filelist); - - mystrncpy(buf,dirname,190); - - if(buf[strlen(buf)-1] != '\\') - strcat(buf,"\\"); - - strcat(buf,"*"); - - hFind = FindFirstFile(buf,&FindFileData); - - if (hFind == INVALID_HANDLE_VALUE) - return(FALSE); - - if(!win32readdiraddfile(&FindFileData,filelist,acceptfunc)) - { - FindClose(hFind); - return(FALSE); - } - - while(FindNextFile(hFind,&FindFileData)) - { - if(!win32readdiraddfile(&FindFileData,filelist,acceptfunc)) - { - FindClose(hFind); - return(FALSE); - } - } - - FindClose(hFind); - - return(TRUE); -} - -bool osScanDir(uchar *dirname,void (*func)(uchar *file)) -{ - WIN32_FIND_DATA FindFileData; - HANDLE hFind; - char buf[200]; - - mystrncpy(buf,dirname,190); - - if(buf[strlen(buf)-1] != '\\') - strcat(buf,"\\"); - - strcat(buf,"*"); - - hFind = FindFirstFile(buf,&FindFileData); - - if (hFind == INVALID_HANDLE_VALUE) - return(FALSE); - - (*func)(FindFileData.cFileName); - - while(FindNextFile(hFind,&FindFileData)) - (*func)(FindFileData.cFileName); - - FindClose(hFind); - - return(TRUE); -} - -struct osFileEntry *osGetFileEntry(uchar *file) -{ - WIN32_FIND_DATA FindFileData; - HANDLE hFind; - struct osFileEntry *tmp; - - hFind = FindFirstFile(file,&FindFileData); - FindClose(hFind); - - if (hFind == INVALID_HANDLE_VALUE) - return(NULL); - - if(!(tmp=(struct osFileEntry *)osAllocCleared(sizeof(struct osFileEntry)))) - return(NULL); - - win32finddata_to_fileentry(&FindFileData,tmp); - - return(tmp); -} +#include + +#include +#include +#include +#include + +#include +#include + +void win32finddata_to_fileentry(WIN32_FIND_DATA *w32,struct osFileEntry *fe) +{ + FILETIME local; + SYSTEMTIME systime; + struct tm tp; + + mystrncpy(fe->Name,w32->cFileName,100); + + fe->Size=w32->nFileSizeLow; + + FileTimeToLocalFileTime(&w32->ftLastWriteTime,&local); + FileTimeToSystemTime(&local,&systime); + + tp.tm_sec=systime.wSecond; + tp.tm_min=systime.wMinute; + tp.tm_hour=systime.wHour; + tp.tm_mday=systime.wDay; + tp.tm_mon=systime.wMonth-1; + tp.tm_year=systime.wYear-1900; + tp.tm_wday=0; + tp.tm_yday=0; + tp.tm_isdst=-1; + + fe->Date=mktime(&tp); + + if(fe->Date == -1) /* Just in case */ + time(&fe->Date); +} + +bool win32readdiraddfile(WIN32_FIND_DATA *FindFileData,struct jbList *filelist,bool (*acceptfunc)(uchar *filename)) +{ + bool add; + struct osFileEntry *tmp; + + if(!acceptfunc) add=TRUE; + else add=(*acceptfunc)(FindFileData->cFileName); + + if(add) + { + if(!(tmp=(struct osFileEntry *)osAllocCleared(sizeof(struct osFileEntry)))) + { + jbFreeList(filelist); + return(FALSE); + } + + win32finddata_to_fileentry(FindFileData,tmp); + jbAddNode(filelist,(struct jbNode *)tmp); + } + + return(TRUE); +} + +bool osReadDir(uchar *dirname,struct jbList *filelist,bool (*acceptfunc)(uchar *filename)) +{ + WIN32_FIND_DATA FindFileData; + HANDLE hFind; + char buf[200]; + + jbNewList(filelist); + + mystrncpy(buf,dirname,190); + + if(buf[strlen(buf)-1] != '\\') + strcat(buf,"\\"); + + strcat(buf,"*"); + + hFind = FindFirstFile(buf,&FindFileData); + + if (hFind == INVALID_HANDLE_VALUE) + return(FALSE); + + if(!win32readdiraddfile(&FindFileData,filelist,acceptfunc)) + { + FindClose(hFind); + return(FALSE); + } + + while(FindNextFile(hFind,&FindFileData)) + { + if(!win32readdiraddfile(&FindFileData,filelist,acceptfunc)) + { + FindClose(hFind); + return(FALSE); + } + } + + FindClose(hFind); + + return(TRUE); +} + +bool osScanDir(uchar *dirname,void (*func)(uchar *file)) +{ + WIN32_FIND_DATA FindFileData; + HANDLE hFind; + char buf[200]; + + mystrncpy(buf,dirname,190); + + if(buf[strlen(buf)-1] != '\\') + strcat(buf,"\\"); + + strcat(buf,"*"); + + hFind = FindFirstFile(buf,&FindFileData); + + if (hFind == INVALID_HANDLE_VALUE) + return(FALSE); + + (*func)(FindFileData.cFileName); + + while(FindNextFile(hFind,&FindFileData)) + (*func)(FindFileData.cFileName); + + FindClose(hFind); + + return(TRUE); +} + +struct osFileEntry *osGetFileEntry(uchar *file) +{ + WIN32_FIND_DATA FindFileData; + HANDLE hFind; + struct osFileEntry *tmp; + + hFind = FindFirstFile(file,&FindFileData); + FindClose(hFind); + + if (hFind == INVALID_HANDLE_VALUE) + return(NULL); + + if(!(tmp=(struct osFileEntry *)osAllocCleared(sizeof(struct osFileEntry)))) + return(NULL); + + win32finddata_to_fileentry(&FindFileData,tmp); + + return(tmp); +} --- crashmail-0.71.orig/src/cmnllib/Makefile.linux +++ crashmail-0.71/src/cmnllib/Makefile.linux @@ -1,6 +1,6 @@ INCDIR = ../ -CC = gcc -DPLATFORM_LINUX -I $(INCDIR) -Wall +CC = gcc $(CPPFLAGS) $(CFLAGS) -DPLATFORM_LINUX $(LDFLAGS) -I $(INCDIR) -Wall AR = ar -ru RM = rm -f --- crashmail-0.71.orig/debian/copyright +++ crashmail-0.71/debian/copyright @@ -0,0 +1,26 @@ +Originally obtained from: http://www.billingware.org/crashmail.html +Currently hosted at: https://alioth.debian.org/projects/crashmail/ +Packaged for Debian by: Robert James Clay +Upstream author: Johan Billing <2:201/128.77> + +JAMLIB is copyright 1999 Björn Stenberg. JAMLIB is released under the +GNU Lesser General Public License. On Debian systems, the complete text of +the GNU Lesser General Public License can be found in the +/usr/share/common-licenses/LGPL-2.1 file. + +Except where explicitly stated otherwise, all other parts of CrashMail are +copyright 1999 Johan Billing. Permission to use, copy and distribute +CrashMail is granted provided that this copyright notice is included. +Permission to modify CrashMail is granted. Distributing modified versions of +CrashMail is allowed provided that the documentation clearly states that it +is a modified version. Parts of CrashMail may be freely used in other +projects as long as the documentation mentions the original copyright +holder. + +The JAM message base proposal is: +JAM(mbp) - Copyright 1993 Joaquim Homrighausen, Andrew Milner, + Mats Birch, Mats Wallin. + ALL RIGHTS RESERVED + +This version constitutes a modified version, as some of the of the +configuration defaults have been changed to conform to the Debian policy. --- crashmail-0.71.orig/debian/control +++ crashmail-0.71/debian/control @@ -0,0 +1,23 @@ +Source: crashmail +Section: mail +Priority: extra +Maintainer: Robert James Clay +Standards-Version: 3.9.4 +Build-Depends: debhelper (>= 5.0.0), dpkg-dev (>= 1.16.1~) +Homepage: https://alioth.debian.org/projects/crashmail/ +Vcs-Browser: http://git.debian.org/?p=crashmail/crashmail.git +Vcs-Git: git://git.debian.org/crashmail/crashmail.git + +Package: crashmail +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Suggests: zip, unzip, unar, goldedplus | jamnntpd +Homepage: https://alioth.debian.org/projects/crashmail/ +Description: JAM and *.MSG capable Fidonet tosser + CrashMail II is basically a more portable version of + CrashMail, a tosser for Amiga computers. Users of the old + Amiga version will probably find some things familiar + while some features are gone such as the ARexx port (for + obvious reasons!) and the GUI configuration editor. The + only feature that CrashMail II has and the old CrashMail + hasn't is support for JAM messagebases. --- crashmail-0.71.orig/debian/crashmail.docs +++ crashmail-0.71/debian/crashmail.docs @@ -0,0 +1,2 @@ +doc/ReadMe.txt +doc/filter.txt --- crashmail-0.71.orig/debian/crashmail.install +++ crashmail-0.71/debian/crashmail.install @@ -0,0 +1,8 @@ +bin/crashmail usr/bin +bin/crashstats usr/bin +bin/crashlist usr/bin +bin/crashgetnode usr/bin +bin/crashmaint usr/bin +bin/crashwrite usr/bin +bin/crashexport usr/bin +doc/AreafixHelp.txt usr/share/crashmail --- crashmail-0.71.orig/debian/compat +++ crashmail-0.71/debian/compat @@ -0,0 +1 @@ +5 --- crashmail-0.71.orig/debian/rules +++ crashmail-0.71/debian/rules @@ -0,0 +1,66 @@ +#!/usr/bin/make -f +# This is the rules for building CrashMail packages for Debian. +# Based on sample: "GNU copyright 1997 to 1999 by Joey Hess". + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +DPKG_EXPORT_BUILDFLAGS = 1 +export DEB_BUILD_MAINT_OPTIONS=hardening=-format +include /usr/share/dpkg/buildflags.mk + +build: build-arch build-indep +build-arch: build-stamp +build-indep: build-stamp +build-stamp: + dh_testdir + + + # Add here commands to compile the package. + mkdir bin + $(MAKE) -C src linux + + touch build-stamp + +clean: + dh_testdir + dh_testroot + rm -rf bin + rm -f build-stamp + + # Add here commands to clean up after the build process. + $(MAKE) -C src cleanlinux + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do by default. + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_installdocs + dh_installexamples doc/example.prefs + dh_installman man/* + dh_installchangelogs doc/History.txt + dh_install + dh_link + dh_strip + dh_compress + dh_fixperms + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install --- crashmail-0.71.orig/debian/changelog +++ crashmail-0.71/debian/changelog @@ -0,0 +1,108 @@ +crashmail (0.71-5) unstable; urgency=low + + * New Maintainer. (Closes: #693229) + * Move installation of doc/AreafixHelp.txt to debian/install. + * Set 'Packaged for Debian by' to jame@rocasa.us in debian/copyright. + * Move installation of doc files from the old top level Makefile to the + dh_installdocs command line by adding them to a debian/crashmail.docs file. + * Add usage of the CPPFLAGS,CFLAGS,and LDFLAGS variables to necessary src/ + directory Makefile.linux files. + * Changes to debian/control: + - Add 'dpkg-dev (>= 1.16.1~)' to Build-Depends. + - Update Standards-Version to v3.9.4, no changes required. + - Replace the Suggested non-free lha package with the unar package. + * Changes to debian/rules: + - Add build-arch and build-indep targets. + - Update CPPFLAGS, CFLAGS, and LDFLAGS using dpkg-buildflags. + - Moved installation of man pages from the old top level Makefile to the + dh_installman command line. + - Moved installation of example files from the old top level Makefile to a + dh_installexamples command line. + - Moved installation of executables from the old top level Makefile to a + dh_install command line and a debian/crashmail.install file. + - Move the make build & clean lines from the old top level Makefile to their + corresponding debian/rules build and clean targets. + - Move the bin directory lines from the old top level Makefile. + + -- Robert James Clay Fri, 25 Jan 2013 21:04:40 -0500 + +crashmail (0.71-4) unstable; urgency=low + + * Fix build problems on kFreeBSD. + (Closes: Bug#592481) + + -- Peter Krefting Thu, 12 Aug 2010 07:45:00 +0100 + +crashmail (0.71-3) unstable; urgency=low + + * Fix errors on 64-bit architectures. + (Closes: Bug#511223) + + -- Peter Krefting Sat, 11 Jul 2009 20:45:00 +0100 + +crashmail (0.71-2) unstable; urgency=low + + * Added support for installing unstripped binaries. + (Closes: Bug#436670) + * Updated policy and debhelper usage. + + -- Peter Karlsson Sun, 02 Sep 2007 20:45:00 +0100 + +crashmail (0.71-1) unstable; urgency=low + + * New upstream release. + + -- Peter Karlsson Wed, 28 Jul 2004 19:20:00 +0100 + +crashmail (0.70-2) unstable; urgency=low + + * Added missing document "filter.txt" to the package. + + -- Peter Karlsson Mon, 22 Dec 2003 21:00:00 +0100 + +crashmail (0.70-1) unstable; urgency=low + + * New upstream release. + * Updated copyright file to match current license terms. + + -- Peter Karlsson Sun, 14 Dec 2003 00:00:00 +0100 + +crashmail (0.62-1) unstable; urgency=low + + * New upstream release. + * Updated to Standards-Version 3.5.5: + - Move the AreafixHelp.txt to /usr/share/crashmail since it is + referenced from the sample configuration. + + -- peter karlsson Fri, 17 Aug 2001 22:45:00 +0200 + +crashmail (0.60-3) unstable; urgency=low + + * Bugfix for crashwrite: No longer cut lines longer than 100 characters. + + -- peter karlsson Fri, 16 Mar 2001 22:45:00 +0100 + +crashmail (0.60-2) unstable; urgency=low + + * New maintainer (previously sponsored). + * Updated to Standards-Version 3.0.1. + * Added Build-Depends. + * Suggests goldedplus (Fidonet reader). + * Move sample preferences file to be compliant with debian-policy. + + -- peter karlsson Fri, 25 Aug 2000 20:10:00 +0200 + +crashmail (0.60-1) unstable; urgency=low + + * New upstream release. + * Changed sample preferences to reflect Debian GNU/Linux paths. + * AreaFixHelp.txt no longer compressed, so crashmail can use it directly. + * Suggests zip, unzip and lha for [de]compression of mail bundles. + + -- Per Lundberg Sun, 21 Nov 1999 20:30:47 +0100 + +crashmail (0.52-1) unstable; urgency=low + + * Initial Release. + + -- Per Lundberg Tue, 19 Oct 1999 20:54:38 +0200