;ELC ;;; Compiled ;;; in Emacs version 27.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\207" [require cl-lib iso8601] 2) #@13 (fn CHAR) (defalias 'parse-time-string-chars #[257 "\300X\203\211\301X\203\300\207\302X\203\211\303X\203\302\207\211\304\267\202(\305\207\306\207\307\207\302X\2055\211\303X\2055\302\207" [97 122 48 57 #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (43 34 45 36 58 38)) 1 -1 100] 3 (#$ . 476)]) (put 'parse-time-string-chars 'byte-optimizer 'byte-compile-inline-expand) #@158 Tokenize STRING into substrings. Each substring is a run of "valid" characters, i.e., lowercase letters, digits, plus or minus signs or colons. (fn STRING) (defalias 'parse-time-tokenize #[257 "\300G\300\211\301\300W\203uW\203&\302H!\211\262\204&T\262\202 \262\211\303=\262T\211\262W\203P\302H!\211\262\203P\205K\211\303=\262\202.X\203\203g\304\305\306%\202n\307#B\262\202\237\207" [nil 0 #[257 "\300X\203\211\301X\203\300\207\302X\203\211\303X\203\302\207\211\304\267\202(\305\207\306\207\307\207\302X\2055\211\303X\2055\302\207" [97 122 48 57 #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (43 34 45 36 58 38)) 1 -1 100] 3 "\n\n(fn CHAR)"] 48 cl-parse-integer :start :end substring] 13 (#$ . 906)]) (defvar parse-time-months '(("jan" . 1) ("feb" . 2) ("mar" . 3) ("apr" . 4) ("may" . 5) ("jun" . 6) ("jul" . 7) ("aug" . 8) ("sep" . 9) ("oct" . 10) ("nov" . 11) ("dec" . 12) ("january" . 1) ("february" . 2) ("march" . 3) ("april" . 4) ("june" . 6) ("july" . 7) ("august" . 8) ("september" . 9) ("october" . 10) ("november" . 11) ("december" . 12))) (defvar parse-time-weekdays '(("sun" . 0) ("mon" . 1) ("tue" . 2) ("wed" . 3) ("thu" . 4) ("fri" . 5) ("sat" . 6) ("sunday" . 0) ("monday" . 1) ("tuesday" . 2) ("wednesday" . 3) ("thursday" . 4) ("friday" . 5) ("saturday" . 6))) #@48 (zoneinfo seconds-off daylight-savings-time-p) (defvar parse-time-zoneinfo (byte-code "\300\301\302\303\304D\305\306\307BB\310\306D\311\312\313BB\314\312D\315\316\317BB\320\316D\321\322\323BB\257 \207" [("z" 0) ("ut" 0) ("gmt" 0) "pst" -28800 "pdt" -25200 (t) "mst" "mdt" -21600 (t) "cst" "cdt" -18000 (t) "est" "edt" -14400 (t)] 13) (#$ . 2299)) #@32 (slots predicate extractor...) (defvar parse-time-rules (byte-code "\300\301\302\303\304\305\306BB\307\310\311\312F\313\314\315E\316\317\320BB\321\322\323\324\325\257\326\327\330\331\332\257\333\334\335BB\336\337\340E\341\342\343E\257 \207" [((6) parse-time-weekdays) ((3) (1 31)) ((4) parse-time-months) ((5) (100)) (2 1 0) #[0 ";\205G\301U\205\302H\303U\205\304H\303U\207" [parse-time-elt 8 2 58 5] 2] ([0 2] [3 5] [6 8]) (8 7) parse-time-zoneinfo #[0 "@\207" [parse-time-val] 1] #[0 "A@\207" [parse-time-val] 1] (8) #[0 ";\205G\301U\205\302H\303U\206\302H\304U\207" [parse-time-elt 5 0 43 45] 2] #[0 "\301\302\303\304\305\306\307%\302\303\304\310\306\305%_\\\311H\312U\203\313\202 \310#\207" [parse-time-elt * 60 cl-parse-integer :start 3 :end 5 1 0 45 -1] 10] (5 4 3) #[0 ";\205G\301U\205\302H\303U\205\304H\303U\207" [parse-time-elt 10 4 45 7] 2] ([0 4] [5 7] [8 10]) (2 1 0) #[0 ";\205G\301U\205\302H\303U\207" [parse-time-elt 5 2 58] 2] [0 2] [3 5] #[0 "\300\207" [0] 1] (2 1 0) #[0 ";\205G\301U\205\302H\303U\207" [parse-time-elt 4 1 58] 2] [0 1] [2 4] #[0 "\300\207" [0] 1] (2 1 0) #[0 ";\205G\301U\205\302H\303U\207" [parse-time-elt 7 1 58] 2] ([0 1] [2 4] [5 7]) (5) (50 110) #[0 "\301\\\207" [parse-time-elt 1900] 2] (5) (0 49) #[0 "\301\\\207" [parse-time-elt 2000] 2]] 15) (#$ . 2652)) #@506 Parse the time in STRING into (SEC MIN HOUR DAY MON YEAR DOW DST TZ). STRING should be something resembling an RFC 822 (or later) date-time, e.g., "Fri, 25 Mar 2016 16:24:56 +0100", but this function is somewhat liberal in what format it accepts, and will attempt to return a "likely" value even for somewhat malformed strings. The values returned are identical to those of `decode-time', but any unknown values other than DST are returned as nil, and an unknown DST value is returned as -1. (fn STRING) (defalias 'parse-time-string #[257 "\303\211\211\211\211\211\211\304\303\257 \305\227!\211\203\310\211A\262\242\303\203\302\211\204\302\211A\262\242\211A\262\242\211A\262\242\303@8\204\274\211:\203i\306!\204i \247\205y\211@ X\205y\211A\203e A@X\205y \202y\2119\203w\307 J\"A\202y\211 \211\203\274\310\262\203\274\203\252\211A\262\242\311!\203\243\312 \313\314H\315\316H%\202\245\211 \262\202\253\n\211A\262\242 \233\211\240\266\202\201)\266\202)\266\202\207" [parse-time-rules parse-time-elt parse-time-val nil -1 parse-time-tokenize functionp assoc t vectorp cl-parse-integer :start 0 :end 1] 17 (#$ . 4022)]) #@156 Parse an ISO 8601 time string, such as 2016-12-01T23:35:06-05:00. If DATE-STRING cannot be parsed, it falls back to `parse-time-string'. (fn DATE-STRING) (defalias 'parse-iso8601-time-string #[257 "\300!\203\301\302!!\202\303!\211\205\304!\207" [iso8601-valid-p decoded-time-set-defaults iso8601-parse parse-time-string encode-time] 4 (#$ . 5207)]) (provide 'parse-time)