All are now robust against overflow, NAN or negative argument.
Passing seconds=0 calls the OS scheduler, offering to yield.
Passing seconds>0 delays at least the requested time, up to a
limit which usually depends on the OS tick rate.
This is really a workaround for a Win32/MinGW bug in sscanf, which
will only set the %n argument for the format "%u %n" when there is
a space following the unsigned number.
This changes the IOC's behavior very slightly.
Report throw from first call to epicsTime::getCurrent().
Reorganized test order so a bad time provider doesn't stop
all tests from being run. Also cleaned up a few extraneous
variables.
This test fails if the cwd is not writable, but on vxWorks the
fault appears at the fclose() not the fopen() line. The code
now detects this and tells the user what's probably wrong.
Windows stack sizes were the same as vxWorks - tiny.
The stack sizes are now multiples of sizeof(void*).
On 32-bit systems they give 256KB, 512KB and 1MB;
64-bit systems get twice those numbers.
Fixes lp:903448
Clients try to use long string support to fetch DBF_STRING
fields use DBF_CTRL_CHAR with a 1-element array, but the IOC
was rejecting that. This permits it, and also ensures that
the resulting strings are zero-terminated.
Fixes lp:907761
Merged J. Lewis Muir's fix for comments introduced by macro.
Added fixes to allow comments to be indented too, which used
to work if the '#' was followed by white-space or any argument
separator character.
The handling of comment lines is only performed before macro
expansion, thus lines with macros that expand to comment lines will
not be correctly handled as comment lines.
By chance this kind of worked sometimes because a "#" command that
does nothing is internally added to the command registry to make it
show up in the help output. Relying on this is broken. Furthermore,
if the line starts with '#' followed by a non-separator character
(e.g. "##", "#whatever", etc.) it will not work (i.e. it will produce
a command-not-found error).
This fix checks to see if the first character of the line after macro
expansion is '#'. If it is, it considers the line to be a comment.
This allows the same version of Base to be used from both RHEL5 and RHEL6
for example; they use different Perl versions which are not compatible at
the ABI level.
Most shells strip the single-quote chars from arguments, but on
win32-x86 this is not happening so we need to do it ourselves.
The single quotes are important to prevent un-escaping of things
that shouldn't be unescaped.
The finite() function is provided in glibc but not in uClibc.
C99 requires isfinite() to be a macro, so we can test for it
and define our own finite() macro in osi/os/posix/epicsMath.h
Replace the buggy local copies of the functions UnixPath(),
LocalPath(), readRelease() and expandRelease() with the
library versions from our EPICS::Path and EPICS::Release
perl modules.
If two targets using the same OS are built in parallel,
they can both try to install the same include/os/* file
at the same time, causing the installEpics.pl script to
die. We fix this by making all installations atomic:
First copy the file to the installation directory using
a unique name, then rename it to the target name. The
target name is in the same directory and filesystem as
the temporary name, so the rename should be atomic.
o fixed launchpad epics base bug 878387
o added regression test for bug 878372
o build the optional test and diagnostic codes for all (not just vxWorks) IOCs
o added acctstRegister optional IOC shell registration for regression tests
Two menus can get modified by users; these checks make sure they
haven't been damaged too much:
* menuConvert is checked to flag problems with IOCs converted from
3.13.x, where the SLOPE choice didn't exist.
* menuScan is checked to ensure the three initial choices are still
present and that there is at least one periodic scan rate.