Current WCSDK/WCBASIC Version Information:
Summary Update Information: v7.0 Build 454.6 (summary since 453.3)
See the installed wcBASIC_Readme.txt in your wcBASIC installed folder for a more detailed history summary.
Summary Update Information: v6.3 Build 452.9
Summary Update Information: v6.3 Build 452.5
Summary Update Information: v6.2 Build 452.4
NEW: New random number generator
functions were added
Randomize(seed)
Randomize() helps seeds the RND() function. It should be called in the beginning of WCX and only need to be called once. The seed parameter is optional. If no seed is pass, one is created automatically using the current system ticks count.
Example:
Randomize() /* Seed Randomizer */
print "random number 1 to 52: "; rnd()*52+1
GetRandom(min,max)
GetRandom() helps get a random number between two numbers min and max.
Example:
Randomize() /* Seed Randomizer */
print "random number 1 to 52: "; GetRandom(1,52)
Note:
Randomize() was added because it was missing from the WCBASIC language. It is common command in BASIC. It wasn't necessary to have as the RND() could be used to initialize the seed and random number generator. The following would be the default equivalent to calling Randomize():
rnd(-1*timer()/0x7FFFFFF)
3rd party developers may wish to use one or both depending on their target version of Wildcat!
Summary Update Information: v6.1 Build 451.9
NEW: New strlib.wch functions
Function JustExtension(byval fn as string) as string
Function ForceExtension(byval fn as string, byval ext as string) as string.
JustExtension() returns the extension of a file. ForceExtension()
changes the extension to the given extension.
NEW: New htmlutil.wch functions:
Function GetWctIndex (byval s as string, found as boolean) as string
Function PrepareURL(byval fn as string, url as string) as boolean
GetWctIndex() is a special function to check for WCT files when given
a HTM file. Example. if s is
"wc:\http\public\mypage.htm", the function will return
wc:\http\public\mypage.wct if and only if the wct file exist.
ParseURL() converts a wc:\http file name format to the proper URL
formation, "/" function. It also calls
GetWCTIndex(). Example, if fn is
"wc:\http\public\mypage.htm", then ParseURL() will return
"/public/mypage.htrm" or "/public/mypage.wct" if
the WCT file exist.
These functions try to perform the same logic the web server for
wcBASIC when it looks for HTM vs WCT file to display and/or
process. Rather than checking for both redundantly, the
functions allows you to specify just one, the htm file, and a WCT will
be used if it is found.
Summary Update Information: v6.1 Build 451.8
smtpfilterhlp.wcc
msgutil.wcc
htmlutil.wcc
strlib.wcc
main.wcc
run a door.wcc
html-create message.wcc
include\smtpfilterhlp.wch
include\wcodbc.wch
include\strlib.wch
FIX: Fixed GetParam() and NextParam() functions in HTMLUTIL.WCC library to better handle URL name=value pairs with question marks in the value.
NEW: New TrimEol() function removes leading and training CRLF characters.
NEW: See WCODBC.WCH for new functions and types.
NEW: Added new function odbcClearError(conn) in wcodbc.wch.
FIX: WCRUN.EXE now automatically loads the WCODBC.DLL modules.
A new WCXML.DLL API library was added to help support XML/RSS/ATOM Web Services. New files:
WCBASIC\INCLUDE\WCXML.WCH
WCXML.DLL
Summary Update Information: v6.1 Build 451.6
NEW: New WCC compiler switch,
/D:define
This switch allows you to set compiler defines statements to compiler
condition WCX compilations. For example, you can have a DEBUG blocks
of code, such as:
#define
DEBUG
#ifdef
DEBUG
print "debug mode:"
print information
#endif
Previously, in order to compile this block you had to add a #define
DEBUG statement above the block.
Now you can do this from the command line or via WCDEV project
properties.
wcc program.wcc /d:DEBUG
This allows you to avoid having to add or remove a #define statement.
Comment: In the programming world, this concept is known as
PRODUCTION or RELEASE vs DEBUG code. You can have a RELEASE
version versus a DEBUG version.
FIX: Fixed a few compiler syntax bugs related to using colons in CASE statements and labels.
FIX: XMODEM direct local file without quotes.
Fixed a bug in function DownloadFile() for handling XMODEM downloads for a direct local file.
In general, DownloadFile() required quotes around the file name. However, it wasn't required for protocols other than XMODEM.
The library PROTUTIL.WCC was fixed to solve this XMODEM direct filename without quotes problem.
NEW: New functions added to STRLIB.WCX library.
RemoveQuotes(s) - return unquoted string
InStrSpan(s,set) - return index of any character in set in s
FirstWord(data) - return first word and the remaining data
NEW: New functions added to HTMLUTIL.WCX library.
NextParam(nv,key,data) - return the next key/data from nv pairs.
FIX: Fixed JustFileName() when passing quoted file names.
FIX: Fixed Download Successful recording of multiple files for XMODEM protocol.
The library PROTUTIL.WCC was fixed to solve this multiple file download
XMODEM recording.
NEW: New intrinsic functions were added
to delete extended user fields:
For Current User Session:
DeleteUserProfile(key) - delete a key in the
"profile" section
DeleteUserVariable(section,key) - delete a key in the specific section
For Other User Record:
DeleteUserProfile(TUser,key)
DeleteUserVariable(Tuser,section,key)
Summary Update Information: v6.1 Build 451.5
NEW: New WCSDK Native API Function:
BOOL GetConnectionInfoFromChallenge
(
const char *challenge, // input
TConnectionInfo &ci // output
);
Given a Wildcat! challenge string, retrieve the client connection information record for the specific client connected to the server.
This could be any client connected to the server, however, it is most useful for find a specific user that is logged on. This is
used by the web server to login and start new web session who who originally logged in via WcNavigator.
Note: This functions is not needed in WCX application since active
authenticated WCX sessions already has access to session information.
New Sysop and User File Manager HTML WCX
modules added to the default WILDCAT.WCL base image library and the
WCBASIC Plus Pack Source Code add-on product:
HTML-FM-DELETE.WCC
HTML-FM-MOVE.WCC
HTML-FM-EDIT.WCC
HTML-FM-EDITSAVE.WCC
Summary Update Information: v6.1 Build 451.4
Added New wcBASIC Function:
Function GetConnectedServer() as String
return the Wildcat! Server computer name.
Updated WINDOWS.WCH with additional Windows API functions
Add New wcBASIC Hook -
"xxxPostDownload.wcx"
xxxPostDownload.wcx will be called when a file has been successfully
downloaded. Depending on the type of connection the following WCX will
be called:
WEB HttpPostDownload.wcx
FTP FtpPostDownload.wcx
CONSOLE PostDownload.wcx
WCNAV NavPostDownload.wcx
Summary:
Similar to the scanfile.wcx concept, where scanfile is called after a
successful upload of a file, the postdownload.wcx module (if any) is
called after a file in the Files Database has been successfully
downloaded by the currently logged in user.
The first parameter is the name of the file and the GlobalFileRecord
will contain the current file record downloaded. In addition, the
GlobalUserRecord is also set for the current logged in user
downloading the file.
Note: GlobalResult has no meaning in PostDownload.wcx. When
PostDownload returns, nothing more is done by the calling hosting
server.
Why?
Well, the original reason for this new hook was based on a customer
request to be able to log a file download by a user. However, we
envision other usages such as:
- System notifications
- Recording
- Statistics
- Deleting a personal file once downloaded,
- other.
Summary Update Information: v6.0 Build 451.2, 451.3
The new MakeDirectory() wcBASIC function now also works for Wildcat! Path Names as well.
Important documentation note about the
wcBASIC MkDir(), Make Directory command.
As documented in the wcBASIC manual, if the MKDIR() command
failed, an exception catch error ERR_PATH is signaled. If your code
did not use a CATCH ERR_PATH statement, then the wcBASIC application
was aborted. A CATCH ERR_PATH block of code would trap the error
so that your application can continue running.
In the current version (actually since 450.9), an catch error is
thrown for all MkDir() errors except the "DIRECTORY ALREADY
EXIST" (Windows Error 18). For example, a bad directory
name passe to mkdir() will produce an ERR_PATH catch exception error
which is only detectable by using a CATCH ERR_PATH block of code in
your application. Otherwise, the application is aborted.
The key issue with the MkDIR() command is that it is not a
function. It does not return an error number or TRUE/FALSE value
as a functional version of MkDir() would. This is the
reason the new MakeDirectory() function was made available. Use
MakeDirectory() as a Boolean function to allow you to detect an error
without using catch exception trapping.
Summary Update Information: v6.0 Build 451.1
wcBASIC.ZIP (compiler and headers) and wcBASICPP.ZIP (source code) files respectively.
wcSDK, wcBASIC and wcBASIC Plus Pack packages are also available via new v6.0 CD distributions.
For WCSDK and wcBASIC development, the online help files were converted to Windows DHTML help files (CHM).
A listing of wcBASIC library modules and headers are summarized for easy viewing.
The new IDE environment WCDEV.EXE with project management support is now the official IDE for wcBASIC. While the older WCIDE.EXE utility will be made available for customers who still wish to use it, it is now considered obselete and will no longer be updated unless they is a popular need to do so. The wcDEV utility is essentially 100% the same as wcIDE with the addition of project management support similar to Microsoft's Visual Studio.