Changes in 0.04g1 ================= Enhancements ------------ * EleBBS now first checks for the ELEBBS and ELEOVR environment variables. If they are emtpy, EleBBS will check the RA variables. * Added the 'Organisation' field to the usereditor. * Implemented a correct way to describe a file when "LongDesc" was set to no in the filearea editor. * New textfile control code: ^F~ - Show the users' organisation field * Added a TELNET server (TELSRV) for EleBBS/GUI, /OS2 and /W32. * When the PAGE.RA file does not exist, EleBBS will now play a default 'bleep-bleep' song * Added an IRC client to EleBBS/GUI, /OS2 and /W32 (menu item 100) This client has been put under a sub-menu item called "Internet connectivity" and can use the following parameters: /SERVER= Gives the server to join. If this parameter is specified, the user cannot join another server. eg: /SERVER=irc.sysopnet.org or /SERVER=irc.sysopnet.org:6669 /JOIN= Gives the channel to join. The user can /PART the channel. eg: /JOIN=#EleBBS /CHANLIST= Let you specify a list of channels which the user is allowed to join or not join. By default all channels are accesible. The format of such an file is: (for the rest it complies with the normal .CTL format) +#EleBBS ; Allow access to #EleBBS channel +#BBS ; Allow access to #BBS channel -* ; All other channels are access denied eg: /CHANLIST=BANLIST * The mailwriter now supports the REPLYTO and REPLYADDR kludges * You can now use up-to 255 comports in EleBBS (before only COM1-8 were supported) * When posting a message to a user that is currently online a message is sent to that user confirming him/her of this event. * You can now define up-to 20 nodenumbers to be used by EleBBS. * You can now fully define the lay-out EleBBS will use when viewing messages - this is done by writing two script-files (RDMSG and RDMSGPS). * The RAL language file now has 10 additional prompts with the prompts the IRC client (menu-type 100) needs. Please manually update all your current RAL language file. * You can now pass the hot-comport handle to EleBBS/W32 or EleBBS/GUI from another Win32 application like a mailer (Argus, Beemail) * Added support for long-filenames into the filebase - PLEASE do not use for example RAFILE COMPRESS when you use longfilenames in EleBBS this will destroy the long filenames and EleBBS will be unable to detect the duplicate files (and thus adding a file twice) * Added ALT-W command to the EleMGR - this creates a FILE_ID.DIZ from the current description and tries to add it to the archive * Added EleNEWS - a program for OS/2 and Windows95/98/NT which allows you to download a complete newsgroup and toss them into your current messagebase. Users are also able to post to this messagearea and the messages can be sent back to the server. * When the file exists, all newusers are now posted a message from the text NEWUSER.MSG to the same board as a WATCHDOG.MSG file is posted to. Scripting Commands Enhancements ------------------------------- (see Q-A.TXT for an explanation of what these functions do) * Added a SETUSERVAR command to the questionnaire language. * Added a CALC command to the questionnaire language. * Added a SETCHATREASON command to the questionnaire language. * Added a SETSTATUSBAR command to the questionnaire language. * Enhanced MENUCMD command - if the first character of the first parameter is a '#' the number behind that will be treated as a variable number. * Added a SETCHATWANTED command to the questionnaire language * The GETARROWKEY command can now also support INSERT and DELETE * Added a GETBBSOS command to the questionnaire language * Added a SETOLM command to the questionnaire language * Added a PAGEMODE command to the questionnaire language * Added a DELIMIT command to the questionnaire language * Added a GETVOLUMELABEL command to the questionnaire language * Added a YIELD command to the questionnaire language Bug Fixes --------- * Starting ELCONFIG in direct menu-edit or language-edit mode disabled the ALT-Z DOS shelling * Pressing Escape in the Waiting For Caller screen would exit with the errorlevel as specified on the command-line (-Exx) instead of zero. * Lastcaller information could sometimes be added twice in EleBBS/GUI * A user could use weird capilisation in the user name (eg: lUsErNaMe) * In the Waiting For Caller screen EleBBS did not check for events nor for the RAEXIT.* files. * EleBBS could exit with a Runtime Error 202 after an upload with an internal protocol. * When the username consisted of only one word, EleBBS could duplicate that name in doors. * When the LongDesc flag for a filearea was disabled, EleBBS would use the long-description editor anyway. * EleBBS/GUI could exit with an exception after a local download, fixed * EleFILE ADD did not support wildcards to be added to the filebase. * An IEMSI login wasn't working anymore in EleBBS * Fixed several EleBBS/GUI bugs related to comport opening and handling * Using the *A flag on the commandline did not reflect in DOOR.SYS * Going quickly through the menus in ELCONFIG could give an irritating flash when running in full-screen mode * EleBBS does not work correctly with ZModem down/uploads when the FOSSIL buffers are smaller than 2048 bytes - a warning is now issued in the ELEBBS.LOG file * The blinking cursor was visable in the WaitingForCaller screen * EleFILE's UPDATE command could update an incorrect wrong area * EleBBS' internal AVATAR interpreter did not correctly support the ^V^Y command * EleBBS/OS2's internal upload routines could sometimes fail with an "Unknown error 110" * The ansi viewer could exit with an runtime error 201 if you would display a non-supported binary file * EleBBS could ask newusers on their first logon wether they would want to do a newfiles scan. * When writing an 'Internet' message, the "To:" field was still capitalised. * When a batchfile changed the drive specifier, in some rare cases the BBS could halt * The controlcodes for message and filegroups would get incorrectly aligned * When the nodenumber was fairly high the USERON.BBS could sometimes get corrupted * ELCONFIG did not work correctly when the DOS-command MODE BW80 was executed * In EleMGR you could HURL files from a CD-ROM area - this is now prevented and an error message is displayed * In some rare cases, EleBBS would update the lastread-pointer while reading messages in a mailbox scan, marking the messages before that unread. * There would be a lot of messages in the logfiles claiming that the FILES.RDX or MESSAGES.RDX was not up-to-date, usually these messages were not correct and could be ignored. EleBBS now only issues these messages if this is actually true. * In an userlist (menu-type 13), the 'Hidden' flag would be ignored * Updated the message-reader in EleBBS, the new one supports AVATAR scrolling and more nice features. * You could add the volumelabel when using EleMGR/DOS under OS/2 * The "`" and "'" codes in the reply-header wasn't supported by EleBBS * In ELCONFIG the VoicePhone and Data Phone entries were reversed * With very large files, sometimes EleBBS could halt with a runtime error 201 * Messages defined to '' (empty) in a JAM areas were not displayed * Deleting a menu in ELCONFIG wouldn't delete the MLB (Menu LightBar) file Developer information (Long FileName Support) --------------------------------------------- Starting from EleBBS v0.04.g1 there is support for filenames longer than the standard 8.3 (DOS) format. Because the original RA structures does not allow this, there had to be made an extension to these structures. There has been added an 4-byte field and the "FreeSpace" field has been reduced to remain compatible with earlier versions of EleBBS and other BBS programs/utilties. The added field is called LfnPtr and is basically the same as the LongDescPtr field but gives an pointer to the longfilename field as stored in the same file as the descriptions are. Where possible (Windows95/98/NT) the short version of the filename is also stored in the normal name to make sure that EleBBS/DOS can handle the file. For more information look at LFNEXAM.ZIP which includes Pascal example code. Structures ---------- FILESHDRrecord = record Name : String[12]; Size, CRC32 : LongInt; Uploader : String[35]; UploadDate, FileDate, LastDL : LongInt; TimesDL : SmallWord; Attrib : Byte; PassWord : String[15]; KeyWord : Array[1..5] of String[15]; Cost : SmallWord; LongDescPtr : LongInt; LfnPtr : Longint; FreeSpace : Array[1..16] of Byte; end; {Attrib - Bit 0 : Deleted 1 : Unlisted 2 : Free (don't adjust ratio) - Does NOT affect "Cost" 3 : Not available (don't allow downloads) 4 : Locked (no kill) 5 : Missing/offline 6 : No time restrictions - always allow DL } TelnetRecord = record MaxSessions : Longint; { Maximum concurrent sessions } ServerPort : Longint; { Port we are listening on } StartNodeWith : Longint; { Starting point for the nodes } Attrib : Longint; { Bit 0: Deny telnet download } { Bit 1: Start EleBBS minized for telnet nodes } ProgramPath : String; { Path were to find EleBBS.EXE } NodeDirectories : String; { Directory TELSRV will switch to } FreeSpace : Array[1..20] of Longint; end; { Telnetrecord } LightbarRecord= record LightX : Byte; { X, Y screen coordinates } LightY : Byte; LowItem : String[135]; { Low-color item } SelectItem : String[135]; { Selected item } Attrib : Byte; { Bit 0: Enabled } FreeSpace : Array[1..100] of Byte; end; { LightbarRecord } NewsArticleRecord= record GroupName : String[100]; ArticleNr : longint; { Article number in news group } AreaNum : Longint; { Areanumber in MESSAGES.RA } BodyLen : Longint; { Length of the body text } Attribute : Longint; { Bit 0: Tossed into msgbase? } TimesSent : Longint; { Number of tries sending this msgs? } FreeSpace : Array[1..100] of Longint; { Body : Array[0..BodyLen] of Char; } end; { NewsArticleRecord } NewsGroupStatRecord=record GroupName : String[100]; LoMsgCount : Longint; FreeSpace : Array[1..40] of Longint; end; { NewsGroupStatRecord }