Commit Graph

201 Commits

Author SHA1 Message Date
Andrew Johnson
975e9ec553 Doxygen text and markup fixes and updates 2020-08-09 00:33:07 -05:00
Andrew Johnson
de2de5e2fd yajl: Clean up the formatting of some C macros 2020-08-09 00:33:07 -05:00
Andrew Johnson
a8e0de043c Support for 'single-quoted strings'
Also adds missing character flag VIC for 'r'.
The a5_spec_example test was copied from the JSON5 spec.
2020-08-09 00:33:07 -05:00
Andrew Johnson
549d6f67e3 YAJL support for JSON5 \xXX hex escapes in strings, with 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.
2020-08-09 00:33:07 -05:00
Andrew Johnson
55f4e55383 Support for JSON5 character escapes in strings
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').
2020-08-09 00:33:07 -05:00
Andrew Johnson
e2256d0663 Accept unquoted identifiers as map keys
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.
2020-08-09 00:33:07 -05:00
Andrew Johnson
88e0ced03e JSON5 support for generating unquoted map keys
Added a new routine to yajl_encode.c that validates bare identifiers.
Use this in yajl_gen_string() to avoid quoting keys we don't have to.
2020-08-09 00:33:07 -05:00
Andrew Johnson
baaf50c6d2 Add yajl_gen_json5 option and generator support for special numbers
When this flag is set, the yajl_gen_double() routine can output
the values NaN, -Infinity and +Infinity.
2020-08-09 00:33:07 -05:00
Andrew Johnson
97b8df6912 Added JSON5 support for parsing special numbers
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/...).
2020-08-09 00:33:07 -05:00
Andrew Johnson
98a358437f Add JSON5 support for hexadecimal integers
With tests for YAJL.

Note yajl_parse_integer still can't handle LLONG_MIN in base 10 or 16.
2020-08-09 00:33:07 -05:00
Andrew Johnson
00ac15cec5 Turning on JSON5 also enables comments
Includes the simple test case.
2020-08-09 00:33:07 -05:00
Andrew Johnson
456e774d85 JSON5: Modified lexer for some number support
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.
2020-08-09 00:33:07 -05:00
Andrew Johnson
91c5b2fee2 Trailing commas now require a json5 parser
Modifies the yajl test case to add the -5 option
2020-08-09 00:33:06 -05:00
Andrew Johnson
ae604b2a55 Start of JSON5 support
Added yajl_allow_json5 config flag, pass it around.
Added -5 option to yajl_test and yajlTestConverter.pl
2020-08-09 00:33:06 -05:00
Andrew Johnson
d381a936b5 Fix for yajl#188 potential UB
Apparently it is UB to use an enum in va_start()
2020-08-09 00:33:06 -05:00
Andrew Johnson
e542a22631 Fix Darwin version of epicsMonotonicResolution() 2020-08-04 16:22:03 -05:00
Andrew Johnson
951b6acbbc Fix Cygwin TCP_NODELAY issue from Paul Chu & Freddie 2020-08-03 12:25:31 -05:00
Andrew Johnson
3c99391d93 Added SPDX License ID to all EPICS-original source files
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.
2020-08-03 11:53:01 -05:00
Andrew Johnson
957f386d77 Removed EPICS license header and (c) from yacc/antelope sources
These should never have been added in the first place.
2020-08-03 11:49:56 -05:00
Andrew Johnson
60aaa16e1d Removed EPICS license header and (c) from flex sources
These should never have been added in the first place.
2020-08-03 11:49:56 -05:00
Andrew Johnson
3506d11558 Speed up osdTimeGetCurrent() on recent macOS
Fixes https://github.com/epics-base/epics-base/issues/83
2020-08-03 11:37:19 -05:00
Ralph Lange
7d2e352f6a Merge changes from 3.15 branch into 7.0
- merged 3.15 branch up to bf7a1605

# Conflicts:
#	modules/database/src/ioc/db/dbChannel.c
2020-07-15 11:46:45 +02:00
Andrew Johnson
1eeac6da2f Switch RTEMS to the default osdMessageQueue 2020-07-02 16:14:08 -05:00
Michael Davidsaver
19146a597b WIN32: fix epicsSocketEnableAddressReuseDuringTimeWaitState() 2020-06-19 20:17:14 -07:00
Andrew Johnson
1fec685eed Merge new stuff after the 7.0.4 release work 2020-05-28 21:23:44 -05:00
Michael Davidsaver
6188d3fdaf update doc comments 2020-05-28 16:26:56 -07:00
Andrew Johnson
005580556c Add and document the macro IOCSHFUNCDEF_HAS_USAGE 2020-05-28 17:33:18 -05:00
Andrew Johnson
88d34c2d38 Merge changes from 3.15 branch into 7.0 2020-05-24 23:17:33 -05:00
Michael Davidsaver
4eeb205374 Remove ANSI-C OS prototypes from flexdef.h
Use osiUnistd.h instead.
Add io.h to osiUnistd.h on Windows

# Conflicts:
#	modules/libcom/src/flex/flexdef.h
#	modules/libcom/src/osi/os/WIN32/osiUnistd.h
2020-05-21 11:49:27 -07:00
36a8b51d8e CleanupWhitespace
removed spaces at end of line

replaced tabs with spaces
2020-05-20 14:48:09 -07:00
Michael Davidsaver
055223dbe4 fix epicsTempFile in antelope+e_flex 2020-05-20 14:48:09 -07:00
Michael Davidsaver
799e72b1e3 libCom: actually use libComAPI.h in libCom 2020-05-20 14:47:51 -07:00
Michael Davidsaver
b2750bbe93 Merge remote-tracking branch 'github/7.0' into 7.0
* github/7.0:
  Unify doxygen keywords to use '\' not '@'
  Applied all doxy-libcom changes to latest headers

# Conflicts:
#	modules/libcom/src/yajl/yajl_common.h
2020-05-20 13:33:36 -07:00
Andrew Johnson
9142eca878 Unify doxygen keywords to use '\' not '@' 2020-05-19 18:04:26 -05:00
Andrew Johnson
a09b1c8569 Applied all doxy-libcom changes to latest headers 2020-05-13 00:34:33 -05:00
Michael Davidsaver
a9934792a0 Merge remote-tracking branch 'lp-anj7/expanded-rules' into 7.0
* lp-anj7/expanded-rules:
  Generate module version files with new RULES_EXPAND facilities
  Extend RULES_EXPAND to add more features
  More generator doc updates
  Document <library>_API = <stem> for Makefiles
  Convert epicsShareAPI to epicsStdCall in modules/ca
  Update generator script
  Modify rules to allow multiple API.h libraries to be built
  Convert modules/ca to use LIBCA_API instead of epicsShare
  Try out a representative sample of APIs from multiple libraries
  Add build rules to generate and install *API.h header files
  Add script to generate *API.h headers
2020-04-30 11:34:34 -07:00
Michael Davidsaver
5149627242 Merge commit '17efb0b82c4a3b07f8072d3f574d12d01e2435ec' into 7.0
* commit '17efb0b82c4a3b07f8072d3f574d12d01e2435ec':
  WIN32: osdFindSymbol.c use PSAPI_VERSION
  WIN32: epicsFindSymbol() clear error on success
  epicsLoadTest: avoid stdcall name mangling on WIN32
  epicsLoadTest: test expected failure
  WIN32: epicsFindSymbol() fix use of EnumProcessModules()
  fix epicsLoadError()
  WIN32: GetLastError() returns DWORD
  WIN32: osdFindSymbol() use psapi
  WIN32: epicsLoadError() strip trailing newlines
  add epicsLoadTest
  WIN32 fix epicsFindSymbol()
  WIN32 fix epicsFindSymbol() error propagation
  OSX fix osdFindSymbol
2020-04-29 16:44:59 -07:00
Michael Davidsaver
5d5e552a7e de-init hooks 2020-04-29 16:40:16 -07:00
Andrew Johnson
18a632b0e9 Merge 3.15 branch into 7.0 after ci-scripts added 2020-04-27 12:27:50 -05:00
Michael Davidsaver
ce4fb6085f iocsh: add usage messages 2020-04-24 20:28:00 -07:00
Michael Davidsaver
f1cbe93b6c Revert "replace most internal getCurrent() -> getMonotonic()"
This reverts commit 4f2228fb1d
except for some test code.
2020-04-24 15:37:48 -07:00
Michael Davidsaver
17efb0b82c WIN32: osdFindSymbol.c use PSAPI_VERSION
Prefer the more specific PSAPI_VERSION to NTDDI_VERSION.
2020-04-23 15:25:31 -07:00
Michael Davidsaver
379ea6e586 WIN32: epicsFindSymbol() clear error on success 2020-04-19 10:32:12 -07:00
Michael Davidsaver
9edb9c2050 WIN32: epicsFindSymbol() fix use of EnumProcessModules() 2020-04-18 08:18:03 -07:00
Michael Davidsaver
aa7c2a647c fix epicsLoadError()
FORMAT_MESSAGE_IGNORE_INSERTS as no va_list is provided.

Handle possibility of n=0 if unable to lookup error.
2020-04-18 07:35:21 -07:00
Michael Davidsaver
6e41f2911b WIN32: GetLastError() returns DWORD 2020-04-18 07:33:57 -07:00
Michael Davidsaver
db2cd68ce3 WIN32: osdFindSymbol() use psapi 2020-04-16 07:53:06 -07:00
Michael Davidsaver
1492baace9 WIN32: epicsLoadError() strip trailing newlines 2020-04-16 07:45:40 -07:00
Andrew Johnson
85d1982890 Merge changes from 3.15 branch into 7.0 2020-04-15 21:39:54 -05:00
Michael Davidsaver
24df056bcb WIN32 fix epicsFindSymbol()
Passing zero as to GetProcAddress is undocumented,
but seems to be equivalent to passing GetModuleHandle(NULL)
which searches only the address space of the executable file.

Emulate the effect of dlsym(0, ...) by searching all
loaded modules.  Probably not so efficient...
2020-03-24 08:38:36 -07:00