Mercurial > emacs
changeset 104299:81498fb7b017
* calendar/parse-time.el (parse-time-string-chars): Compute using
character classes (Bug#3190).
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Sun, 16 Aug 2009 14:33:43 +0000 |
parents | 75f3a35d516e |
children | 04280efb54c1 |
files | lisp/ChangeLog lisp/calendar/parse-time.el |
diffstat | 2 files changed, 10 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Sun Aug 16 14:04:25 2009 +0000 +++ b/lisp/ChangeLog Sun Aug 16 14:33:43 2009 +0000 @@ -1,5 +1,8 @@ 2009-08-16 Chong Yidong <cyd@stupidchicken.com> + * 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).
--- a/lisp/calendar/parse-time.el Sun Aug 16 14:04:25 2009 +0000 +++ b/lisp/calendar/parse-time.el Sun Aug 16 14:33:43 2009 +0000 @@ -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")