mirror of
https://github.com/tstack/lnav
synced 2024-11-17 15:29:40 +00:00
parent
c177a321fb
commit
68759ada2d
20
.readthedocs.yaml
Normal file
20
.readthedocs.yaml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# .readthedocs.yaml
|
||||||
|
# Read the Docs configuration file
|
||||||
|
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
|
||||||
|
|
||||||
|
# Required
|
||||||
|
version: 2
|
||||||
|
|
||||||
|
# Build documentation in the docs/ directory with Sphinx
|
||||||
|
sphinx:
|
||||||
|
configuration: docs/source/conf.py
|
||||||
|
|
||||||
|
# Optionally build your docs in additional formats such as PDF
|
||||||
|
formats:
|
||||||
|
- pdf
|
||||||
|
|
||||||
|
# Optionally set the version of Python and requirements required to build your docs
|
||||||
|
python:
|
||||||
|
version: 3.7
|
||||||
|
install:
|
||||||
|
- requirements: docs/requirements.txt
|
@ -1,4 +1,5 @@
|
|||||||
[![Build](https://github.com/tstack/lnav/workflows/ci-build/badge.svg)](https://github.com/tstack/lnav/actions?query=workflow%3Aci-build)
|
[![Build](https://github.com/tstack/lnav/workflows/ci-build/badge.svg)](https://github.com/tstack/lnav/actions?query=workflow%3Aci-build)
|
||||||
|
[![Docs](https://readthedocs.org/projects/lnav/badge/?version=latest&style=plastic)](https://docs.lnav.org)
|
||||||
[![Coverage Status](https://coveralls.io/repos/github/tstack/lnav/badge.svg?branch=master)](https://coveralls.io/github/tstack/lnav?branch=master)
|
[![Coverage Status](https://coveralls.io/repos/github/tstack/lnav/badge.svg?branch=master)](https://coveralls.io/github/tstack/lnav?branch=master)
|
||||||
[![lnav](https://snapcraft.io//lnav/badge.svg)](https://snapcraft.io/lnav)
|
[![lnav](https://snapcraft.io//lnav/badge.svg)](https://snapcraft.io/lnav)
|
||||||
|
|
||||||
|
85451
src/data_scanner_re.cc
85451
src/data_scanner_re.cc
File diff suppressed because it is too large
Load Diff
@ -137,7 +137,7 @@ bool data_scanner::tokenize2(pcre_context &pc, data_token_t &token_out)
|
|||||||
|
|
||||||
EOF { return false; }
|
EOF { return false; }
|
||||||
|
|
||||||
("u"|"r")?'"'('\\'.|'""'|[^\x00\"])*'"' {
|
("u"|"r")?'"'('\\'.|[^\x00\"\\]|'""')*'"' {
|
||||||
CAPTURE(DT_QUOTED_STRING);
|
CAPTURE(DT_QUOTED_STRING);
|
||||||
switch (pi.get_string()[cap[1].c_begin]) {
|
switch (pi.get_string()[cap[1].c_begin]) {
|
||||||
case 'u':
|
case 'u':
|
||||||
@ -152,7 +152,7 @@ bool data_scanner::tokenize2(pcre_context &pc, data_token_t &token_out)
|
|||||||
[a-qstv-zA-QSTV-Z]"'" {
|
[a-qstv-zA-QSTV-Z]"'" {
|
||||||
CAPTURE(DT_WORD);
|
CAPTURE(DT_WORD);
|
||||||
}
|
}
|
||||||
("u"|"r")?"'"('\\'.|"''"|[^\x00\'])*"'"/[^sS] {
|
("u"|"r")?"'"('\\'.|"''"|[^\x00\'\\])*"'"/[^sS] {
|
||||||
CAPTURE(DT_QUOTED_STRING);
|
CAPTURE(DT_QUOTED_STRING);
|
||||||
switch (pi.get_string()[cap[1].c_begin]) {
|
switch (pi.get_string()[cap[1].c_begin]) {
|
||||||
case 'u':
|
case 'u':
|
||||||
@ -180,11 +180,11 @@ bool data_scanner::tokenize2(pcre_context &pc, data_token_t &token_out)
|
|||||||
}
|
}
|
||||||
IPV6ADDR/[^:a-zA-Z0-9] { RET(DT_IPV6_ADDRESS); }
|
IPV6ADDR/[^:a-zA-Z0-9] { RET(DT_IPV6_ADDRESS); }
|
||||||
|
|
||||||
"<""?"?[a-zA-Z0-9_:\-]+SPACE*([a-zA-Z0-9_:\-]+(SPACE*'='SPACE*('"'(('\\'.|[^\x00"])+)'"'|"'"(('\\'.|[^\x00'])+)"'"|[^\x00>]+)))*SPACE*("/"|"?")">" {
|
"<""?"?[a-zA-Z0-9_:\-]+SPACE*([a-zA-Z0-9_:\-]+(SPACE*'='SPACE*('"'(('\\'.|[^\x00"\\])+)'"'|"'"(('\\'.|[^\x00'\\])+)"'"|[^\x00>]+)))*SPACE*("/"|"?")">" {
|
||||||
RET(DT_XML_EMPTY_TAG);
|
RET(DT_XML_EMPTY_TAG);
|
||||||
}
|
}
|
||||||
|
|
||||||
"<"[a-zA-Z0-9_:\-]+SPACE*([a-zA-Z0-9_:\-]+(SPACE*"="SPACE*('"'(('\\'.|[^\x00"])+)'"'|"'"(('\\'.|[^\x00'])+)"'"|[^\x00>]+)))*SPACE*">" {
|
"<"[a-zA-Z0-9_:\-]+SPACE*([a-zA-Z0-9_:\-]+(SPACE*"="SPACE*('"'(('\\'.|[^\x00"\\])+)'"'|"'"(('\\'.|[^\x00'\\])+)"'"|[^\x00>]+)))*SPACE*">" {
|
||||||
RET(DT_XML_OPEN_TAG);
|
RET(DT_XML_OPEN_TAG);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
26
test/datafile_simple.21
Normal file
26
test/datafile_simple.21
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{"correctProperty":"test", "incorrectProperty": "test\"", "nextProperty":"test"}
|
||||||
|
key 2:2 ^
|
||||||
|
quot 2:17 ^-------------^ correctProperty
|
||||||
|
val 2:17 ^-------------^ correctProperty
|
||||||
|
quot 20:24 ^--^ test
|
||||||
|
val 20:24 ^--^ test
|
||||||
|
quot 28:45 ^---------------^ incorrectProperty
|
||||||
|
val 28:45 ^---------------^ incorrectProperty
|
||||||
|
quot 49:55 ^----^ test\"
|
||||||
|
val 49:55 ^----^ test\"
|
||||||
|
quot 59:71 ^----------^ nextProperty
|
||||||
|
val 59:71 ^----------^ nextProperty
|
||||||
|
quot 74:78 ^--^ test
|
||||||
|
val 74:78 ^--^ test
|
||||||
|
grp 2:78 ^--------------------------------------------------------------------------^ correctProperty":"test", "incorrectProperty": "test\"", "nextProperty":"test
|
||||||
|
pair 2:78 ^--------------------------------------------------------------------------^ correctProperty":"test", "incorrectProperty": "test\"", "nextProperty":"test
|
||||||
|
msg :{"correctProperty":"test", "incorrectProperty": "test\"", "nextProperty":"test"}
|
||||||
|
format :{#}
|
||||||
|
[
|
||||||
|
"correctProperty",
|
||||||
|
"test",
|
||||||
|
"incorrectProperty",
|
||||||
|
"test\\\"",
|
||||||
|
"nextProperty",
|
||||||
|
"test"
|
||||||
|
]
|
Loading…
Reference in New Issue
Block a user