emacs-diffs
[Top][All Lists]
Advanced

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

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


From: Chong Yidong
Subject: [Emacs-diffs] emacs/lisp ChangeLog calendar/parse-time.el
Date: Sun, 16 Aug 2009 14:33:47 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Chong Yidong <cyd>      09/08/16 14:33:47

Modified files:
        lisp           : ChangeLog 
        lisp/calendar  : parse-time.el 

Log message:
        * calendar/parse-time.el (parse-time-string-chars): Compute using
        character classes (Bug#3190).

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/ChangeLog?cvsroot=emacs&r1=1.15944&r2=1.15945
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/calendar/parse-time.el?cvsroot=emacs&r1=1.21&r2=1.22

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/lisp/ChangeLog,v
retrieving revision 1.15944
retrieving revision 1.15945
diff -u -b -r1.15944 -r1.15945
--- ChangeLog   16 Aug 2009 14:04:25 -0000      1.15944
+++ ChangeLog   16 Aug 2009 14:33:43 -0000      1.15945
@@ -1,5 +1,8 @@
 2009-08-16  Chong Yidong  <address@hidden>
 
+       * calendar/parse-time.el (parse-time-string-chars): Compute using
+       character classes (Bug#3190).
+
        * progmodes/sh-script.el (sh-maybe-here-document): Avoid inserting
        another heredoc if the user adds another < (Bug#3226).
 

Index: calendar/parse-time.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/calendar/parse-time.el,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- calendar/parse-time.el      5 Jan 2009 03:20:41 -0000       1.21
+++ calendar/parse-time.el      16 Aug 2009 14:33:47 -0000      1.22
@@ -37,7 +37,6 @@
 
 (eval-when-compile (require 'cl))      ;and ah ain't kiddin' 'bout it
 
-(defvar parse-time-syntax (make-vector 256 nil))
 (defvar parse-time-digits (make-vector 256 nil))
 
 ;; Byte-compiler warnings
@@ -48,24 +47,17 @@
   (loop for i from ?0 to ?9
     do (aset parse-time-digits i (- i ?0))))
 
-(unless (aref parse-time-syntax ?0)
-  (loop for i from ?0 to ?9
-    do (aset parse-time-syntax i ?0))
-  (loop for i from ?A to ?Z
-    do (aset parse-time-syntax i ?A))
-  (loop for i from ?a to ?z
-    do (aset parse-time-syntax i ?a))
-  (aset parse-time-syntax ?+ 1)
-  (aset parse-time-syntax ?- -1)
-  (aset parse-time-syntax ?: ?d)
-  )
-
 (defsubst digit-char-p (char)
   (aref parse-time-digits char))
 
 (defsubst parse-time-string-chars (char)
-  (and (< char (length parse-time-syntax))
-       (aref parse-time-syntax char)))
+  (let (case-fold-search str)
+    (cond ((eq char ?+) 1)
+         ((eq char ?-) -1)
+         ((eq char ?:) ?d)
+         ((string-match "[[:upper:]]" (setq str (string char))) ?A)
+         ((string-match "[[:lower:]]" str) ?a)
+         ((string-match "[[:digit:]]" str) ?0))))
 
 (put 'parse-error 'error-conditions '(parse-error error))
 (put 'parse-error 'error-message "Parsing error")




reply via email to

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