diff --git a/README.md b/README.md index d38b010..c575e8a 100644 --- a/README.md +++ b/README.md @@ -31,18 +31,25 @@ Patterns In order to be detected, the DNS serial number must match one the following pattern: * `YYYYMMDDXX ; serial` - - `YYYY` is the year (4 digits); + - `YYYY` is the year (4 digits, must start by either `19` or `2`); - `MM` is the month (2 digits); - `DD` is the day (2 digits); - `XX` is any non-negative number (1 or more digits); - the word `serial` is not case-sensitive; - there can be any number of blanks on each sides of the semicolon. +* `SSSSSSSSSS ; serial` + - `SSSSSSSSSS` is the UNIX tiemstamp (10 digits, must start by `1`); + - the word `serial` is not case-sensitive; + - there can be any number of blanks on each sides of the semicolon. + * `XX ; serial` - `XX` is any non-negative number (1 or more digits); - the word `serial` is not case-sensitive; - there can be any number of blanks on each sides of the semicolon. +According to those patterns, only dates between 1900 and 2999 will be detected; however this should not be a problem at all. Most importantly, only timestamps between September 9 2001 and March 17 2030 will be detected. + Configuration ------------- diff --git a/plugin/dnsserial.vim b/plugin/dnsserial.vim index 7de4233..72ee66a 100644 --- a/plugin/dnsserial.vim +++ b/plugin/dnsserial.vim @@ -20,12 +20,20 @@ endif if !exists('g:dnsserial_patterns') let g:dnsserial_patterns = [ \{ - \'regex': '\(\d\{8}\)\(\d\+\)\s*;\s*\cserial', + \'regex': '\(19\d\{2}\|20\d\{2}\)\([01]\d\)\([0-3]\d\)\(\d\+\)\s*;\s*\cserial', \'matching': [ - \{'type': 'date', 'fmt': '%Y%m%d'}, + \{'type': 'date', 'fmt': '%Y'}, + \{'type': 'date', 'fmt': '%m'}, + \{'type': 'date', 'fmt': '%d'}, \{'type': 'integer', 'padding': 2, 'date_reset': 1} \] \}, + \{ + \'regex': '\(1\d\{9}\)\s*;\s*\cserial', + \'matching': [ + \{'type': 'date', 'fmt': '%s'}, + \] + \}, \{ \'regex': '\(\d\+\)\s*;\s*\cserial', \'matching': [