Commit Graph
37 Commits
Author SHA1 Message Date
Andrew Johnson d5a3df506c Fix regex's, add tests for DBD::Base
Changed $RXname to accept {} chars in the middle of a PV name.
RXdqs now handles escaped double-quotes and back-slashes properly.
New test program for the DBD::Base class and checks for each of
the $RXxxx variable regex's.
2017-10-19 23:19:27 -05:00
Andrew Johnson 7a0b095fd3 Remove /o flags from Perl regex's
Apparently they don't help in modern Perls, and can cause problems.
This commit also replaces \d with [0-9], \d also matches foreign digits.
2017-10-19 23:14:12 -05:00
Andrew Johnson 7eef48102c Merge changes from 3.15 branch into 3.16 2017-10-10 09:56:31 +02:00
Andrew Johnson 32a6f6c4f1 Fix DBD parsing slow-up with Perl 5.20 and later 2017-10-09 14:45:01 +02:00
Michael Davidsaver 987943be4e Merge remote-tracking branch 'int64b/master'
* int64b/master: (25 commits)
  std/rec: streamline variable names in int64in/int64out
  std/rec/test: recMiscTest check in64in/out
  ioc/db: dbUnitTest helps support int64
  std/rec: ioc64in/outRecord typed rset
  minor
  std/rec: fix copyright in int64in sources
  std: remove SCM keywords from int64in and int64out sources
  std/rec: fix promptgroups in dbd.pod files
  std/rec: add and improve pod for int64in and int64out
  std/rec: add pod documentation content for int64out
  std/rec: add pod documentation for int64out record
  dbStatic: dbPutStringNum() overflow handling
  dbStatic: more informative error for bad field value
  dbStatic: dbPutStringNum(, "") not an error
  Release Notes
  cvtFastPerform: Rename reserved member names, fix for vxWorks
  Simplify epicsConvertDoubleToFloat()
  More cvtFastPerform changes
  Collate and report by precision
  Restructure cvtFastPerform, fix VxWorks build
  ...
2017-05-04 20:18:24 -04:00
Michael Davidsaver 066984e11d Merge branch 'master' into link
* master: (226 commits)
  ioc/db: testdbGetFieldEqual() detect zero size
  Cleanup in asLib
  Allow whitespace before comments in AS config files
  Supress MS warning C4251
  Add a plan to std/filters/test/syncTest.c
  Fix dbUnitTest.c
  avoid void* +=
  Fix and test for macLib losing error status
  update notes
  libCom/test: ipAddrToAsciiTest skip cleanup unless valgrind is possible
  libCom/test: add ipAddrToAsciiTest to testHarness
  db/test: dbPutGetTest check dbGet() of long string field
  db: dbGet() ensure long string nil and actual string length
  db/test: dbPutGetTest check for dbGet() attribute crash
  db: fix dbGet() for attributes as long string
  db/test: dbPutGetTest add test for lp:1678494
  db: fix dbGet() of link fields as DBF_CHAR
  dbUnitTest: add testdbGetArrFieldEqual()
  db/test: add dbPutGetTest
  Update release notes as per Michael's review comment
  ...

Conflicts:
	src/ioc/db/dbLink.c
	src/ioc/db/test/Makefile
	src/std/dev/devSoSoftCallback.c
	src/std/rec/boRecord.c
	src/std/rec/dfanoutRecord.c
	src/std/rec/longinRecord.c
	src/std/rec/longoutRecord.c
2017-04-21 17:20:12 -04:00
Andrew Johnson e95fcb2e06 Merged changes from 3.15 branch, to revno 12807 2017-02-01 11:57:04 -06:00
Andrew Johnson 4a0fd0b954 Fix error message 2017-01-05 14:09:03 -06:00
Andrew Johnson 8fb2267218 Revert breaktable point() syntax, not in dbStatic 2016-09-27 16:57:53 -05:00
Andrew Johnson 813166128e Merged changes from 3.15 branch, to revno 12781 2016-09-07 10:04:54 -05:00
Andrew Johnson 7edc0c67ca JSON Links implementation
The lnkConst.c implementation is not yet complete, no support for arrays of
strings (JMOP).

Link error messages should display their record & field name, which is not yet
possible.

The ability to embed links as parameters to other link types is not complete
yet; this will be required for the calc link type.

This code currently passes all existing tests, but additional tests are needed
for the new functionality.
2016-08-29 01:12:09 -05:00
Andrew Johnson 63d8651474 Make Perl DB parser handle duplicates and rtyp '*' 2016-06-07 01:00:38 -05:00
Andrew Johnson 4284222b54 Convert GUI_ promptgroup strings to new-style 2016-05-26 16:15:48 +02:00
Andrew Johnson c76041b14c Rename JSON_STR to JSON_LINK 2016-05-20 20:32:39 -05:00
Andrew Johnson e98a6bbafa Make <menu>_NUM_CHOICES not an enum tag
Fixes lp:1580972
2016-05-12 15:05:18 -05:00
Andrew Johnson 6a592dc2c0 Support "link(name, lset)" syntax in DBD files
Both Perl and dbStaticLib support included.
Also added a new std/link directory for link types.
Nothing looks up the registered link support tables yet.
2016-05-08 22:57:42 -05:00
Andrew Johnson ba0d5f9443 Disallow single-quoted strings in Perl DBD parser 2016-04-28 19:03:17 -05:00
Andrew Johnson 13294f80cc Add basic support and tests for a JSON link address type 2016-04-27 20:47:17 -05:00
Ralph Lange 1e1799c30e tools: change RE to allow any value for promptgroup in the Perl DBD parser 2016-04-18 09:56:41 +02:00
Andrew Johnson f6cdbe2693 tools: Support for DB files, added dbExpand.pl 2015-07-06 11:26:35 -05:00
Andrew Johnson e4f336de94 Perl style fixes, document more Perl programs 2015-04-21 15:09:24 -05:00
Andrew Johnson a4298bec56 Merged dbd2html branch 2014-10-03 14:23:04 -05:00
Andrew Johnson ec7b0d5737 Merged the loadable-support branch 2014-10-02 16:53:15 -05:00
Andrew Johnson 267ed50dc7 Allow unknown field attributes in record.dbd files
They will be noisy, but are retained in regenerated output and
won't stop the build from proceeding.
2014-08-28 14:12:28 -07:00
Andrew Johnson a2d511b6e9 DBD parser accepts record type declarations
Record types are the only DBD entries for which the parser
will not accept redefinitions. This change lets it accept
a record type declaration any number of times. However once
a record type declaration has been parsed the full record
type definition cannot be loaded, an error will be raised
if the full definition is seen. The parser will still not
accept a full record type definition more than once either,
any later copies of the record type must be declarations.
2014-07-27 23:55:47 -05:00
Andrew Johnson 8eed4cdd88 Perl DBD Parser: Autovivify record types in device() entries
If a record type named in a device() entry does not exist when
the device is seen, the DBD parser will now print a warning
and create an empty record type with that name to hold the
device entry information.
This will allow support modules to be built into libraries that
include their own registerRecordDeviceDriver code, which was
apparently possible with 3.14 although not officially supported.
To avoid the warning message, the DBD file can declare each
record type before the device statement that uses it.

A record type declaration looks like this:
    recordtype(ao) {}
    device(ao, ....)
An IOC will accept and ignore a record type declaration, but it
must have loaded the full record type definition first.
2014-07-27 23:37:58 -05:00
Andrew Johnson 2fb0b0763d Implement 64-bit database field types.
Incorporates major reworking of the dbConvert.c file.
if the 64-bit stuff gets rejected most of that should
get pulled in anyway.
2014-07-10 18:13:28 -05:00
Michael Davidsaver 034388f009 recognize and store field attribute "prop()" 2013-11-04 13:39:16 -05:00
Andrew Johnson 880d714a0f tools/DBD: Include cdefs in DBD format output. 2013-03-30 23:49:18 -05:00
Andrew Johnson f519b63a6f tools/DBD: Don't include =cut lines in the captured POD. 2012-10-01 17:35:23 -05:00
Andrew Johnson 29a9ad3f90 Make the DBD parser recognize Pod syntax directly
Source DBD files can include Pod blocks, as long as the dbdExpand.pl
script doesn't try and include it in expanded DBD output files.
This makes it easier to write the Pod, and perldoc can parse most
of the result for checking (it complains about the =field directives
though, which dbdToHtml.pl handles itself).
2012-09-04 00:35:17 -05:00
Andrew Johnson 43393096ac Add ability to save & retrieve comments to DBD objects 2012-08-30 00:53:07 -05:00
Andrew Johnson f29e995103 Permit but check duplicate DBD entries
Record types cannot be duplicated however.
DBD sub-objects now have a ->what method for their description.
This also adds a method to look up a breaktable by name.
2012-08-22 16:54:54 -05:00
Andrew Johnson 93f7caebc4 tools/DBD: Fix DBD output of empty attributes
Use the regex's from Base.pm for value recognition
in both Parser.pm and Output.pm
2012-08-10 11:39:30 -05:00
Andrew Johnson 05f07d9ec8 tools/DBD: Improve error reporting
Better 'duplicate choice' message
Output messages to STDERR
2012-06-27 11:58:23 -05:00
Andrew Johnson f1994996ad Convert registerRecordDeviceDriver.pl to use DBD module.
The output is now a bit more compact as it uses Text::Wrap on
the declarations and array data.
2012-03-27 10:47:59 -05:00
Andrew Johnson d3d8418855 Move src/dbHost scripts and modules into src/tools. 2012-03-13 18:00:46 -05:00