emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/calendar/parse-time.el


From: Miles Bader
Subject: [Emacs-diffs] Changes to emacs/lisp/calendar/parse-time.el
Date: Fri, 04 Apr 2003 01:21:48 -0500

Index: emacs/lisp/calendar/parse-time.el
diff -c emacs/lisp/calendar/parse-time.el:1.6 
emacs/lisp/calendar/parse-time.el:1.7
*** emacs/lisp/calendar/parse-time.el:1.6       Fri Feb  1 13:13:49 2002
--- emacs/lisp/calendar/parse-time.el   Sun Nov 17 23:58:53 2002
***************
*** 32,38 ****
  ;; `parse-time-string' parses a time in a string and returns a list of 9
  ;; values, just like `decode-time', where unspecified elements in the
  ;; string are returned as nil.  `encode-time' may be applied on these
! ;; valuse to obtain an internal time value.
  
  ;;; Code:
  
--- 32,38 ----
  ;; `parse-time-string' parses a time in a string and returns a list of 9
  ;; values, just like `decode-time', where unspecified elements in the
  ;; string are returned as nil.  `encode-time' may be applied on these
! ;; values to obtain an internal time value.
  
  ;;; Code:
  
***************
*** 42,49 ****
  (defvar parse-time-digits (make-vector 256 nil))
  
  ;; Byte-compiler warnings
! (defvar elt)
! (defvar val)
  
  (unless (aref parse-time-digits ?0)
    (loop for i from ?0 to ?9
--- 42,49 ----
  (defvar parse-time-digits (make-vector 256 nil))
  
  ;; Byte-compiler warnings
! (defvar parse-time-elt)
! (defvar parse-time-val)
  
  (unless (aref parse-time-digits ?0)
    (loop for i from ?0 to ?9
***************
*** 132,174 ****
      ((4) parse-time-months)
      ((5) (100 4038))
      ((2 1 0)
!      ,#'(lambda () (and (stringp elt)
!                       (= (length elt) 8)
!                       (= (aref elt 2) ?:)
!                       (= (aref elt 5) ?:)))
       [0 2] [3 5] [6 8])
      ((8 7) parse-time-zoneinfo
!      ,#'(lambda () (car val))
!      ,#'(lambda () (cadr val)))
      ((8)
       ,#'(lambda ()
!         (and (stringp elt)
!              (= 5 (length elt))
!              (or (= (aref elt 0) ?+) (= (aref elt 0) ?-))))
!      ,#'(lambda () (* 60 (+ (parse-integer elt 3 5)
!                           (* 60 (parse-integer elt 1 3)))
!                     (if (= (aref elt 0) ?-) -1 1))))
      ((5 4 3)
!      ,#'(lambda () (and (stringp elt)
!                       (= (length elt) 10)
!                       (= (aref elt 4) ?-)
!                       (= (aref elt 7) ?-)))
       [0 4] [5 7] [8 10])
      ((2 1 0)
!      ,#'(lambda () (and (stringp elt) (= (length elt) 5) (= (aref elt 2) ?:)))
       [0 2] [3 5] ,#'(lambda () 0))
      ((2 1 0)
!      ,#'(lambda () (and (stringp elt)
!                       (= (length elt) 4)
!                       (= (aref elt 1) ?:)))
       [0 1] [2 4] ,#'(lambda () 0))
      ((2 1 0)
!      ,#'(lambda () (and (stringp elt)
!                       (= (length elt) 7)
!                       (= (aref elt 1) ?:)))
       [0 1] [2 4] [5 7])
!     ((5) (50 110) ,#'(lambda () (+ 1900 elt)))
!     ((5) (0 49) ,#'(lambda () (+ 2000 elt))))
    "(slots predicate extractor...)")
  
  (defun parse-time-string (string)
--- 132,177 ----
      ((4) parse-time-months)
      ((5) (100 4038))
      ((2 1 0)
!      ,#'(lambda () (and (stringp parse-time-elt)
!                       (= (length parse-time-elt) 8)
!                       (= (aref parse-time-elt 2) ?:)
!                       (= (aref parse-time-elt 5) ?:)))
       [0 2] [3 5] [6 8])
      ((8 7) parse-time-zoneinfo
!      ,#'(lambda () (car parse-time-val))
!      ,#'(lambda () (cadr parse-time-val)))
      ((8)
       ,#'(lambda ()
!         (and (stringp parse-time-elt)
!              (= 5 (length parse-time-elt))
!              (or (= (aref parse-time-elt 0) ?+)
!                  (= (aref parse-time-elt 0) ?-))))
!      ,#'(lambda () (* 60 (+ (parse-integer parse-time-elt 3 5)
!                           (* 60 (parse-integer parse-time-elt 1 3)))
!                     (if (= (aref parse-time-elt 0) ?-) -1 1))))
      ((5 4 3)
!      ,#'(lambda () (and (stringp parse-time-elt)
!                       (= (length parse-time-elt) 10)
!                       (= (aref parse-time-elt 4) ?-)
!                       (= (aref parse-time-elt 7) ?-)))
       [0 4] [5 7] [8 10])
      ((2 1 0)
!      ,#'(lambda () (and (stringp parse-time-elt)
!                       (= (length parse-time-elt) 5)
!                       (= (aref parse-time-elt 2) ?:)))
       [0 2] [3 5] ,#'(lambda () 0))
      ((2 1 0)
!      ,#'(lambda () (and (stringp parse-time-elt)
!                       (= (length parse-time-elt) 4)
!                       (= (aref parse-time-elt 1) ?:)))
       [0 1] [2 4] ,#'(lambda () 0))
      ((2 1 0)
!      ,#'(lambda () (and (stringp parse-time-elt)
!                       (= (length parse-time-elt) 7)
!                       (= (aref parse-time-elt 1) ?:)))
       [0 1] [2 4] [5 7])
!     ((5) (50 110) ,#'(lambda () (+ 1900 parse-time-elt)))
!     ((5) (0 49) ,#'(lambda () (+ 2000 parse-time-elt))))
    "(slots predicate extractor...)")
  
  (defun parse-time-string (string)
***************
*** 178,201 ****
    (let ((time (list nil nil nil nil nil nil nil nil nil))
        (temp (parse-time-tokenize (downcase string))))
      (while temp
!       (let ((elt (pop temp))
            (rules parse-time-rules)
            (exit nil))
        (while (and (not (null rules)) (not exit))
          (let* ((rule (pop rules))
                 (slots (pop rule))
                 (predicate (pop rule))
!                (val))
            (when (and (not (nth (car slots) time)) ;not already set
!                      (setq val (cond ((and (consp predicate)
                                             (not (eq (car predicate)
                                                      'lambda)))
!                                       (and (numberp elt)
!                                            (<= (car predicate) elt)
!                                            (<= elt (cadr predicate))
!                                            elt))
                                       ((symbolp predicate)
!                                       (cdr (assoc elt
                                                    (symbol-value predicate))))
                                       ((funcall predicate)))))
              (setq exit t)
--- 181,204 ----
    (let ((time (list nil nil nil nil nil nil nil nil nil))
        (temp (parse-time-tokenize (downcase string))))
      (while temp
!       (let ((parse-time-elt (pop temp))
            (rules parse-time-rules)
            (exit nil))
        (while (and (not (null rules)) (not exit))
          (let* ((rule (pop rules))
                 (slots (pop rule))
                 (predicate (pop rule))
!                (parse-time-val))
            (when (and (not (nth (car slots) time)) ;not already set
!                      (setq parse-time-val (cond ((and (consp predicate)
                                             (not (eq (car predicate)
                                                      'lambda)))
!                                       (and (numberp parse-time-elt)
!                                            (<= (car predicate) parse-time-elt)
!                                            (<= parse-time-elt (cadr 
predicate))
!                                            parse-time-elt))
                                       ((symbolp predicate)
!                                       (cdr (assoc parse-time-elt
                                                    (symbol-value predicate))))
                                       ((funcall predicate)))))
              (setq exit t)
***************
*** 204,212 ****
                                    (let ((this (pop rule)))
                                      (if (vectorp this)
                                          (parse-integer
!                                          elt (aref this 0) (aref this 1))
                                        (funcall this))))))
!                 (rplaca (nthcdr (pop slots) time) (or new-val val)))))))))
      time))
  
  (provide 'parse-time)
--- 207,217 ----
                                    (let ((this (pop rule)))
                                      (if (vectorp this)
                                          (parse-integer
!                                          parse-time-elt
!                                          (aref this 0) (aref this 1))
                                        (funcall this))))))
!                 (rplaca (nthcdr (pop slots) time)
!                         (or new-val parse-time-val)))))))))
      time))
  
  (provide 'parse-time)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]