These changes to the functions epicsStrnRawFromEscaped() and
epicsStrnEscapedFromRaw() were prompted by the addition of JSON5
support to the dbStatic parser.
* \0 now represents a zero byte
* Unprintable characters are now escaped in hex
Tests for the octal escapes have been removed.
\x only takes 2 hex digits now, and the octal parser ignores a 3rd
digit if it would take the value over 0xff:
"\400" => ' ' then '0'
"\x088" => '\b' then '8'
With additional tests.
Teach the lexer/parser to recognize and decode them in JSON5 mode.
Teach the encoder to use them in JSON5 mode.
Add another error message for bad hex digits.
Test cases to show they work, and that the bad-digit check fires.
Any character other than the digits 1-9 may be preceded by a
reverse solidus '\', and unless the combination has an explicitly
defined expansion the character is included without the solidus.
JSON5 adds \', \0 and \v to the set of defined escapes, and an
escaped newline is omitted from a string.
In the test case Perl uses \13 instead of \v in the output
but it is the correct character (13 octal = 11 decimal = '\v').
Adds another lexer entry point for lexing map keys only,
adjust parser to use this instead of the general lexer.
Also defines another lexer token for internal use only.
NaN and both Infinities, with tests.
Special handling was added to yajl_test since different OSs don't
always generate the same output for special numbers (nan/NaN/...).
If configured for JSON5 the lexer now allows a leading or trailing
decimal point on doubles, and an explicit leading + sign on integers
or double numbers.
Includes test cases.
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.
* 3.15:
minor epicsTimerTest
epicsTimerTest loosen test threshold
debug epicsTimerTest
posix/epicsMath.h
Revert "libcom: fix colliding isnan/isinf between C99 and C++0x for gcc-4"
Revert "libcom: properly declare isnan() in C++ code"
travis-ci /etc/hosts workaround
redo travis-ci with matrix
epicsSockResolveTest add detail
libcom: properly declare isnan() in C++ code
libcom: fix colliding isnan/isinf between C99 and C++0x for gcc-4
libcom: import some C99 math (isnan etc.) into global namespace
# Conflicts:
# .travis.yml
# ci/travis-prepare.sh
* lp-Com/use-monotonic:
VxWorks: Measure CPU time-base frequency if necessary
replace most internal getCurrent() -> getMonotonic()
dbScan periodic scan use monotonic time
monotonic adapt to regular time APIs
* 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
* lp-asLib/as-hostname:
update release notes
asLib more string size...
asLib one short
asLib: asUseIP name lookup soft-fail
Expand Release Note entry for as-hostname changes.
as-hostname address review comments
asLib: test asUseIP
as,rsrv: use real client IP instead of untrusted host name
# Conflicts:
# documentation/RELEASE_NOTES.html
* origin/3.15: (40 commits)
Revert "More msi.plt retries for Jenkins builds on Windows"
Revert "Testing msi: Add retries if necessary"
msi: Flush stdout on program exit
Now fix the non-windows systems
Don't use / in Windows program paths
Redirect msi's STDERR to /dev/null (NUL on Windows) during tests
VxWorks: Mark undetected underflow parse test as ToDo
Fix VxWorks osiSockOptMcastLoop_t => char
Fix sync filter example in dbd.pod
doc/ca: clarify variable size array subscription
Remove cacExitHandler
Don't clear caClientCallbackThreadId in CA's exit handler
appveyor-ci: ANL Make install 4.1 -> 4.2.1
appveyor-ci: use pre-installed AppVeyor MinGW
appveyor-ci: use choco MinGW 5.3.0 to work around build problem (fixes lp:1827225)
appveyor-ci: exclude some cygwin builds (broken compiler) appveyor-ci: remove slack, add email and GitHub notifications (cherry-picked from branch 7.0)
epicsTime: rely on implicit copy constructor
iocLogServer: check return values
Fix potential buffer overflow in iocLogServer
Fix weird use of strncpy
...
# Conflicts:
# modules/database/src/ioc/dbtemplate/msi.c
# modules/database/src/std/rec/stringinRecord.c
# modules/database/src/std/rec/stringoutRecord.c
# modules/database/test/ioc/dbtemplate/msi.plt
# modules/libcom/src/osi/os/vxWorks/osdSock.h
# src/ioc/dbtemplate/msi.c
# src/ioc/dbtemplate/msi.cpp