Adds tests to ensure that a record's special() routine can
return an error status that gets fed back to the client from
both before and after special() calls.
This was broken from 3.15 through 7.0.5 inclusive.
This refactor simplifies and streamlines the code associated with server
side filters. Apart from immediate benefits (clearer code, less duplication)
it is also hoped that this will make it easier to add write filters.
The data pointer dbfl_ref.field can now either point to a copy owned by a
filter, or it can point to the original data owned by a record. In the
latter case, the dbfl_ref.dtor is NULL.
The dbExtractArray* functions are unified to the single function
dbExtractArray and stripped of conversion functionality. This is redundant
because we always call dbGet after applying filters, which takes care of
conversion. Accordingly, dbChannelMakeArrayCopy is now obsolete and its
single use (in the ts filter) replaced with dbExtractArray. Instead, we add
the helper function dbChannelGetArrayInfo to wrap the common boilerplate
around calls to the get_array_info method, used in both arr.c and ts.c.
Our bare-word character set is wider than JSON5's. Quote any
keys containing the extra characters so YAJL can parse them,
but don't quote keys unnecessarily.
Tests for this behavior are in dbStaticTest.db
Adjust the other tests that read links parsed by the dbStatic
parser that used bareword keys, which are no longer quoted.
dbLex.l acceps a leading or trailing decimal point with float/double
values and an explicit leading + on all numbers.
Tested in dbStaticTest.db but only passing tests.
In some cases the license-identification header was missing,
so I added that as well. Replaced the remaining headers that
specifically identified "Versions 3.13.7 and higher".
Makefiles and the build system were deliberately excluded.
* main/make-simple:
restore ModuleDirs in caPerlApp
simplify e_flex/antelope path compute
further no need to search for perl modules under bin
skip RELEASE_TOPS
configure: Don't hide any perl scripts being run
missed a TOP
no need to search for perl modules under bin/
drop unnecessary *ModuleDirs
avoided embedded TOP for non sub-modules
* 3.15: (28 commits)
update RELEASE_NOTES
add option EPICS_NO_CALLBACK
replace CALLBACK -> epicsCallback
Update dbTest.c
Remove links to wiki-ext
Add POD annotations from Wiki to subArrayRecord and menuAlarmStat
Rename subArrayRecord.dbd and menuAlarmStat.dbd to .pod
Add POD annotations to longoutRecord from Wiki
Rename longoutRecord.dbd longoutRecord.dbd.pod
Add POD annotations to longinRecord from Wiki
Rename longinRecord.dbd longinRecord.dbd.pod
Add POD annotations to subRecord from Wiki
Rename subRecord.dbd subRecord.dbd.pod
Add POD annotations to selRecord from Wiki
Rename selRecord.dbd selRecord.dbd.pod
Add POD annotations to seqRecord from Wiki
Rename seqRecord.dbd seqRecord.dbd.pod
Fix menu declaration test too
Add redefinition guard to menu-generated typedefs
Updates to existing .dbd.pod texts, add event and fanout from wiki
...
# Conflicts:
# documentation/README.1st
# documentation/README.html
# modules/database/src/ioc/db/callback.h
# modules/database/src/ioc/db/dbNotify.c
# modules/database/src/ioc/db/menuAlarmStat.dbd
# modules/database/src/ioc/db/menuFtype.dbd
# modules/database/src/std/rec/compressRecord.dbd.pod
# modules/database/src/std/rec/eventRecord.dbd
# modules/database/src/std/rec/fanoutRecord.dbd
# modules/database/src/std/rec/longinRecord.dbd
# modules/database/src/std/rec/longoutRecord.dbd
# modules/database/src/std/rec/selRecord.dbd
# modules/database/src/std/rec/seqRecord.dbd
# modules/database/src/std/rec/subArrayRecord.dbd
# modules/database/src/std/rec/subRecord.dbd
# modules/libcom/src/iocsh/menuAlarmStat.dbd.pod
# modules/libcom/src/iocsh/menuFtype.dbd.pod
# src/ioc/db/menuAlarmStat.dbd
# src/ioc/db/menuFtype.dbd
Manually fix some move+rename
Make additional CALLBACK -> epicsCallback
preserve INT64 in menuFtype
preserve OLDSIM et al