From 0eefd3391244511ccf3dd0285977ef15309880e0 Mon Sep 17 00:00:00 2001 From: shuhei Date: Sun, 11 Mar 2001 13:07:55 +0000 Subject: [PATCH] Sync up with main trunk. --- APEL-CFG | 2 +- ChangeLog | 28 +++++++++++++ README.ja | 125 ++++++++++++++++++++++++++++++++++++++++++++------------ broken.el | 4 +- emu.el | 15 ++++--- inv-19.el | 10 ++--- path-util.el | 2 +- pccl.el | 2 +- pces-nemacs.el | 2 +- poe-18.el | 17 ++------ poe.el | 2 +- poem.el | 2 +- product.el | 6 +-- timezone.el | 15 +++++-- 14 files changed, 169 insertions(+), 63 deletions(-) diff --git a/APEL-CFG b/APEL-CFG index 7605343..d11d4f0 100644 --- a/APEL-CFG +++ b/APEL-CFG @@ -63,7 +63,7 @@ ;; (setq PREFIX "/usr/local") -;; Mule based on Emacs 19.28 and eariler. +;; Mule based on Emacs 19.28 and earlier. ;; (setq LISPDIR "/usr/local/share/mule/site-lisp") ;; Mule based on Emacs 19.29 and later. ;; (setq LISPDIR "/usr/local/share/emacs/site-lisp") diff --git a/ChangeLog b/ChangeLog index 88b730c..07176b6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -12,6 +12,34 @@ (install-file): Use `install-overwritten-file-modes'. (install-elisp-module): Use `install-file'. +2001-02-23 Katsumi Yamaoka + + * emu.el (char-category for XEmacs): Don't use `int-char' when the + function `char-category-list' returns a list of characters. + +2001-02-01 NAKAJIMA Mikio + + * README.ja: Updated as to MAKEIT.BAT and MAKE1.BAT. + * make1.bat: New file. + * makeit.bat: Ditto. + * make.bat: Removed. + +2001-01-18 Katsumi Yamaoka + + * inv-19.el (next-visible-point): Return the value of `point-max' + when the position of next `invisible' property change is not found. + +2001-01-15 Yuuichi Teranishi + + * poe-18.el (floor): Removed. + + * timezone.el (timezone-floor): New function. + (timezone-fix-time-2): Use `timezone-floor' instead of `floor'. + +2000-12-31 NAKAJIMA Mikio + + * README.ja: Typo fixed. + 2000-12-30 NAKAJIMA Mikio diff --git a/README.ja b/README.ja index bf05894..159efe0 100644 --- a/README.ja +++ b/README.ja @@ -112,9 +112,9 @@ Emacs $B$K$h$kJT=8$N:]!":G=*=$@5;~9o$rJ]B8$9$k$?$a$N%f!<%F%#%j%F%#!#(B ** $BE83+$7$?>l=j$G$N%G%#%l%/%H%j!<$K%$%s%9%H!<%k$7$?$/$J$$$J$i!"0J2<$N$3$H$@$1$r$d$C$F(B -$B$/$@$5$$(B (MS-DOS $B7O$N(B OS $B$N$?$a$K(B make.bat $B$,MQ0U$5$l$F$$$^$9!#(B -make.bat $B$NMxMQ$K$D$$$F$O2<5-!V(Bmake.bat $B$rMxMQ$9$k(B (MS-DOS $B7O(B OS $B$N>l(B -$B9g(B)$B!W$r;2>H$7$F2<$5$$(B)$B!#(B: +$B$/$@$5$$(B (MS-DOS $B7O$N(B OS $B$N$?$a$K(B MAKEIT.BAT $B$,MQ0U$5$l$F$$$^$9!#(B +MAKEIT.BAT $B$NMxMQ$K$D$$$F$O2<5-!V(BMAKEIT.BAT $B$rMxMQ$9$k(B (MS-DOS $B7O(B OS +$B$N>l9g(B)$B!W$r;2>H$7$F2<$5$$(B)$B!#(B: % make @@ -169,7 +169,7 @@ emu $B%b%8%e!<%k$,%$%s%9%H!<%k$5$l$k!"%P!<%8%g%sFCM-$N(B lisp $B%G%#%l%/%H%j! $B%U%!%$%k(B APEL-CFG $B$rJT=8$9$k$3$H$GB>$NA*Br<+M3$J@_Dj$r;XDj$9$k$3$H$,$G(B $B$-$^$9!#$=$NCf$N%3%a%s%H$rFI$s$G$/$@$5$$!#(B -(c) XEmacs $B$N%Q%C%1!<%8$H$7$F%$%s%9%H!<%k$9$k(B +** XEmacs $B$N%Q%C%1!<%8$H$7$F%$%s%9%H!<%k$9$k(B XEmacs $B$N%Q%C%1!<%8%G%#%l%/%H%j!<$K%$%s%9%H!<%k$9$k>l9g$O!"0J2<$N$3$H(B $B$r$7$F$/$@$5$$(B: @@ -192,39 +192,56 @@ emacs $B$N%3%^%s%IL>$r;XDj$9$k$3$H$,$G$-$^$9!#Nc$($P!"(B XEmacs $B$N%Q%C%1!<%8%7%9%F%`$O(B XEmacs 21.0 $B$+$=$l0J9_$rMW5a$9$k$3$H$KCm(B $B0U$7$F$/$@$5$$!#(B -** make.bat $B$rMxMQ$9$k(B (MS-DOS $B7O(B OS $B$N>l9g(B) +** MAKEIT.BAT $B$rMxMQ$9$k(B (MS-DOS $B7O(B OS $B$N>l9g(B) -MS-DOS $B7O$N(B OS $B$N$?$a$K(B make.bat $B$,MQ0U$5$l$F$$$^$9!#(Bmake.bat $B$rMxMQ(B -$B$9$k$K$OE:IU$N(B make.bat $B$rJT=8$9$k$3$H$,I,MW$G$9(B (cygwin $B4D6-$rMxMQ(B -$B$7$F$$$kJ}$O(B make.exe $B$H(B Makefile $B$rMxMQ$9$k$3$H$,$G$-$^$9(B)$B!#(B +MS-DOS $B7O$N(B OS $B$N$?$a$K(B MAKEIT.BAT $B$H(B MAKE1.BAT $B$,MQ0U$5$l$F$$$^$9(B +(cygwin $B4D6-$rMxMQ$7$F$$$kJ}$O(B make.exe $B$H(B Makefile $B$rMxMQ$9$k$3$H$,$G(B +$B$-$^$9(B)$B!#(BMAKEIT.BAT $B$O!"%$%s%9%H!<%k$N4D6-JQ?t$r@_Dj$7$?8e$K(B MAKE1.BAT +$B$r8F=P$7$^$9!#(BMAKE1.BAT $B$K$h$C$F(B%' $B$Ol9g$NJQ?t@_Dj$NNc$r5s$2$^$9!#(B + + set PREFIX=c:\usr\Meadow + set EMACS=%PREFIX%\1.10\bin\meadow95.exe + set EXEC_PREFIX= set LISPDIR=%PREFIX%\site-lisp - set VLISPDIR=%PREFIX%\%MEADOWVER%\site-lisp + set VERSION_SPECIFIC_LISPDIR=%PREFIX%\1.10\site-lisp + set DEFAULT_MAKE_ARG=elc -$B$G!"(Bmeadow $B$N%P%$%J%j$,(B c:\usr\meadow\1.10\bin\meadow95.exe $B$K%$%s%9(B -$B%H!<%k$5$l$F$$$k$3$H$rA0Ds$K$7$F$$$^$9!#$=$NA0Ds$K4p$E$-!"(BAPEL $B$N%b(B -$B%8%e!<%k$N$&$A!"(Bmeadow $B$N%P!<%8%g%s$K0MB8$7$J$$%b%8%e!<%k$r(B +$B>e5-$NNc$G$O!"(Bmeadow $B$N%P%$%J%j$,(B c:\usr\Meadow\1.10\bin\meadow95.exe +$B$K%$%s%9%H!<%k$5$l$F$$$k$3$H$rA0Ds$K$7$F$$$^$9!#$=$NA0Ds$K4p$E$-!"(BAPEL +$B$N%b%8%e!<%k$N$&$A!"(Bmeadow $B$N%P!<%8%g%s$K0MB8$7$J$$%b%8%e!<%k$r(B - c:\usr\meadow\site-lisp + c:\usr\Meadow\site-lisp $B$K!"%P!<%8%g%s$K0MB8$9$k%b%8%e!<%k$r(B - c:\usr\meadow\1.10\site-lisp + c:\usr\Meadow\1.10\site-lisp -$B$K%$%s%9%H!<%k$7$h$&$H$7$^$9!#>e5-$NNc$r;29M$K!"<+J,$N4D6-MQ$N@_Dj$r=q(B -$B$-9~$s$G(B make.bat $B$rF0$+$7$F2<$5$$!#(B +$B$K%$%s%9%H!<%k$7$h$&$H$7$^$9!#(B 19.3x $B0JA0$N(B Emacs ($BNc$($P(B 19.28 $B%Y!<%9$N(B Mule for Windows) $B$K$O%P!<%8%g(B $B%s0MB8$N(B site-lisp $B%G%#%l%/%H%j(B ($B>e5-$NNc$G8@$($P(B -c:\usr\meadow\1.10\site-lisp) $B$,B8:_$;$:!"%G%#%U%)%k%H$G$O(B load-path $B$b(B +c:\usr\Meadow\1.10\site-lisp) $B$,B8:_$;$:!"%G%#%U%)%k%H$G$O(B load-path $B$b(B $BDL$C$F$$$^$;$s!#$3$N>l9g$O(B c:\usr\mule\site-lisp $B$J$I$N%P!<%8%g%sHs0MB8(B $B$N(B site-lisp $B%G%#%l%/%H%j$K(B APEL $B$NA4$F$N%b%8%e!<%k$rF~$l$l$PNI$$$G$7$g(B $B$&!#(B @@ -233,10 +250,66 @@ Demacs $B$N@_DjNc$r=`Hw$9$k$3$H$,$G$-$^$;$s$G$7$?!#(BDemacs $B$K(B APEL $B$ $B%9%H!<%k$7$?J}$O!"@_DjNc$r(B apel-ja@m17n.org $B$KAw$C$F2<$5$$(B ($BHs9XFIl9g$O!"(BDOSPROMPT $B$N%W%m%Q%F%#$G4D6-JQ?t$N=i4|%5%$%:$,!V<+(B +$BF0!W$K$J$C$F$$$k$H!"4D6-JQ?t$,@_Dj$G$-$J$$$H$$$&%(%i!<$,=P$k$N$G!"E,Ev(B +$B$JCM(B (2048 $B$J$I(B) $B$rF~$l$F$*$/I,MW$,$"$j$^$9!#(Bnon Windows $B$N(B DOS $B$N>l9g(B +$B$O!"(Bconfig.sys $B$K(B + + SHELL=C:\COMMAND.COM /E:4096 /P + +$B$J$I$H=q$-!"4D6-JQ?t$K3dEv$F2DG=$J%a%b%j$r3NJ]$7$^$9!#(BDOS $B$N%P!<%8%g%s(B +$B$K$h$C$F(B /E:nnn $B$G;XDj$G$-$k4D6-JQ?tNN0h$N%5%$%:$N@)Ls$,0[$J$j!";XDj$N(B +$B;EJ}$,0c$C$?$j!"FCDj$NCM$r;XDj$9$k$HIT6q9g$r@8$8$k2DG=@-$,$"$k$N$G>\$7(B +$B$/$O$4MxMQ$N(B version $B$N%^%K%e%"%kEy$r$4Mw2<$5$$!#(B + +*** Windows $B$N(B cvs.exe $B$G%A%'%C%/%"%&%H$7$?(B MAKEIT.BAT $B$rMxMQ$9$k>l9g$NLdBjE@(B + $B$J$*!"(BWindows $B%M%$%F%#%V$N(B cvs.exe (not cygwin) $B$rMxMQ$7$F(B APEL $B$r(B checkout $B$7$?>l9g$O!"(Bcvs.exe $B$K$h$j9TKv%3!<%I$,@55,2=$5$l$F(B CRCRLF $B$K(B -$B$J$C$F$$$k2DG=@-$,$"$j$^$9!#$3$N$h$&$J>l9g!"(Bmake.bat $B$OF0$-$^$;$s$N$G(B -$B9TKv%3!<%I$r(B CRLF $B$K=$@5$7$F$*;H$$2<$5$$!#$3$NLdBj$K$D$$$F>\$7$/$O!"(B +$B$J$C$F$$$k2DG=@-$,$"$j$^$9!#$3$N$h$&$J>l9g!"(BMAKEIT.BAT, MAKE1.BAT $B$OF0(B +$B$-$^$;$s$N$G9TKv%3!<%I$r(B CRLF $B$K=$@5$7$F$*;H$$2<$5$$!#$3$NLdBj$K$D$$$F(B +$B>\$7$/$O!"(B http://openlab.ring.gr.jp/skk/cvswin-ja.html @@ -452,7 +525,7 @@ MODULE $B$,Ds6!$5$l$F$$$k(B (provided) $B$+!"(BPATHS $B$KB8:_$9$k>l9g$K(B STRING $B$+$i0BA4$J%U%!%$%kL>$rJV$7$^$9!#(B -$B$=$l$OJQ?t(B 'filename-fileters' $B$r;2>H$7$^$9!#$=$NJQ?t$O%U%!%$%kL>$NA*(B +$B$=$l$OJQ?t(B 'filename-filters' $B$r;2>H$7$^$9!#$=$NJQ?t$O%U%!%$%kL>$NA*(B $BJL4o$N$?$a$N4X?t$N%j%9%H$G$9!#=i4|@_Dj$NA*JL4o$O0J2<$NJQ?t$r;2>H$7$F$$(B $B$^$9!#(B diff --git a/broken.el b/broken.el index c74eb63..08d9f15 100644 --- a/broken.el +++ b/broken.el @@ -1,4 +1,4 @@ -;;; broken.el --- Emacs broken facility infomation registry. +;;; broken.el --- Emacs broken facility information registry. ;; Copyright (C) 1998, 1999 Tanaka Akira @@ -56,7 +56,7 @@ ASSERTION is evaluated statically. FACILITY must be symbol. -If ASSERTION is not ommited and evaluated to nil and NO-NOTICE is nil, +If ASSERTION is not omitted and evaluated to nil and NO-NOTICE is nil, it is noticed." (` (static-if (, assertion) (eval-and-compile diff --git a/emu.el b/emu.el index fce2080..8b91770 100644 --- a/emu.el +++ b/emu.el @@ -3,7 +3,7 @@ ;; Copyright (C) 1995,1996,1997,1998 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko -;; Keywords: emulation, compatibility, NEmacs, MULE, Emacs/mule, XEmacs +;; Keywords: emulation, compatibility, Nemacs, MULE, Emacs/mule, XEmacs ;; This file is part of emu. @@ -98,7 +98,12 @@ CHAR can be any multilingual character TABLE defaults to the current buffer's category table." (mapconcat (lambda (chr) - (char-to-string (int-char chr))) + (if (integerp chr) + (char-to-string (int-char chr)) + (char-to-string chr))) + ;; `char-category-list' returns a list of + ;; characters in XEmacs 21.2.25 and later, + ;; otherwise integers. (char-category-list character) "")) ) @@ -118,7 +123,7 @@ TABLE defaults to the current buffer's category table." )) ) ((boundp 'NEMACS) - ;; for NEmacs and NEpoch + ;; for Nemacs and Nepoch ;; old MULE emulation (defconst *noconv* 0) @@ -130,7 +135,7 @@ TABLE defaults to the current buffer's category table." (defun code-convert-string (str ic oc) "Convert code in STRING from SOURCE code to TARGET code, -On successful converion, returns the result string, +On successful conversion, returns the result string, else returns nil." (if (not (eq ic oc)) (convert-string-kanji-code str ic oc) @@ -157,7 +162,7 @@ else returns nil." (defun code-convert-string (str ic oc) "Convert code in STRING from SOURCE code to TARGET code, -On successful converion, returns the result string, +On successful conversion, returns the result string, else returns nil. [emu-latin1.el; old MULE emulating function]" str) diff --git a/inv-19.el b/inv-19.el index 11074bf..a05cc71 100644 --- a/inv-19.el +++ b/inv-19.el @@ -45,11 +45,11 @@ (get-text-property pos 'invisible)) (defun next-visible-point (pos) - (save-excursion - (goto-char (next-single-property-change pos 'invisible)) - (if (eq (following-char) ?\n) - (forward-char)) - (point))) + (if (setq pos (next-single-property-change pos 'invisible)) + (if (eq ?\n (char-after pos)) + (1+ pos) + pos) + (point-max))) ;;; @ end diff --git a/path-util.el b/path-util.el index db87fc7..8e37115 100644 --- a/path-util.el +++ b/path-util.el @@ -38,7 +38,7 @@ directories and it does not exist in `load-path'. You can use following PATH styles: load-path relative: \"PATH/\" - (it is searched from `defaul-load-path') + (it is searched from `default-load-path') home directory relative: \"~/PATH/\" \"~USER/PATH/\" absolute path: \"/HOO/BAR/BAZ/\" diff --git a/pccl.el b/pccl.el index c696f75..7f7f3a9 100644 --- a/pccl.el +++ b/pccl.el @@ -50,7 +50,7 @@ (defadvice define-ccl-program (before accept-long-ccl-program activate) - "When CCL-PROGRAM is too long, internal buffer is extended automaticaly." + "When CCL-PROGRAM is too long, internal buffer is extended automatically." (let ((try-ccl-compile t) (prog (eval (ad-get-arg 1)))) (ad-set-arg 1 (` '(, prog))) diff --git a/pces-nemacs.el b/pces-nemacs.el index 6f29ea1..314ab82 100644 --- a/pces-nemacs.el +++ b/pces-nemacs.el @@ -101,7 +101,7 @@ (defmacro as-binary-process (&rest body) (` (let (selective-display ; Disable ^M to nl translation. - ;; NEmacs + ;; Nemacs kanji-flag (default-kanji-process-code 0) program-kanji-code-alist) diff --git a/poe-18.el b/poe-18.el index b84d0fe..7e344d2 100644 --- a/poe-18.el +++ b/poe-18.el @@ -457,15 +457,6 @@ resolution finer than a second." "Return the absolute value of ARG." (if (< arg 0) (- arg) arg)) -(defun floor (arg &optional divisor) - "Return the largest integer no grater than ARG. -With optional DIVISOR, return the largest integer no greater than ARG/DIVISOR." - (if (null divisor) - (setq divisor 1)) - (if (< arg 0) - (- (/ (- divisor 1 arg) divisor)) - (/ arg divisor))) - ;;; @ Basic lisp subroutines. ;;; @@ -585,7 +576,7 @@ if omitted or nil, the default is `minibuffer-local-map'. If fourth arg READ is non-nil, then interpret the result as a lisp object and return that object: in other words, do `(car (read-from-string INPUT-STRING))' -Fifth arg HIST is ignored in this implementatin." +Fifth arg HIST is ignored in this implementation." (si:read-from-minibuffer prompt initial-contents keymap read)))) ;; Add optional argument `frame'. @@ -594,7 +585,7 @@ Fifth arg HIST is ignored in this implementatin." (fset 'si:get-buffer-window (symbol-function 'get-buffer-window)) (defun get-buffer-window (buffer &optional frame) "Return a window currently displaying BUFFER, or nil if none. -Optional argunemt FRAME is ignored in this implementation." +Optional argument FRAME is ignored in this implementation." (si:get-buffer-window buffer)))) (defun walk-windows (proc &optional minibuf all-frames) @@ -605,7 +596,7 @@ Optional second arg MINIBUF t means count the minibuffer window even if not active. MINIBUF nil or omitted means count the minibuffer iff it is active. MINIBUF neither t nor nil means not to count the minibuffer even if it is active. -Optional third argunemt ALL-FRAMES is ignored in this implementation." +Optional third argument ALL-FRAMES is ignored in this implementation." (if (window-minibuffer-p (selected-window)) (setq minibuf t)) (let* ((walk-windows-start (selected-window)) @@ -626,7 +617,7 @@ No argument or nil as argument means do this for the current buffer." ;;; @@ Frame (Emacs 18 cannot make frame) ;;; -;; The following four are frequently used for manupulating the current frame. +;; The following four are frequently used for manipulating the current frame. ;; frame.el has `screen-width', `screen-height', `set-screen-width' and ;; `set-screen-height' for backward compatibility and declare them as obsolete. (defun frame-width (&optional frame) diff --git a/poe.el b/poe.el index 2b0e3d4..272abd7 100644 --- a/poe.el +++ b/poe.el @@ -292,7 +292,7 @@ Completion ignores case if the ambient value of (if (fboundp 'string-to-number) (fset 'si:string-to-number (symbol-function 'string-to-number)) (fset 'si:string-to-number (symbol-function 'string-to-int)) - ;; XXX: In v18, this causes infinite loop while bytecompiling. + ;; XXX: In v18, this causes infinite loop while byte-compiling. ;; (defalias 'string-to-int 'string-to-number) ) (put 'string-to-number 'defun-maybe t) diff --git a/poem.el b/poem.el index ec752a3..ec87a43 100644 --- a/poem.el +++ b/poem.el @@ -64,7 +64,7 @@ If STRING is multibyte, the result is STRING itself. (defun-maybe charset-after (&optional pos) "Return charset of a character in current buffer at position POS. -If POS is nil, it defauls to the current point. +If POS is nil, it defaults to the current point. If POS is out of range, the value is nil. \[Emacs 20.3 emulating function]" (char-charset (char-after pos)) diff --git a/product.el b/product.el index 70eae24..32fc6bf 100644 --- a/product.el +++ b/product.el @@ -96,7 +96,7 @@ numbers. Optional 4th argument CODE-NAME is a string." "Set code-name of PRODUCT to CODE-NAME." (aset product 3 code-name)) (defun product-set-checkers (product checkers) - "Set ckecker functions of PRODUCT to CHECKERS." + "Set checker functions of PRODUCT to CHECKERS." (aset product 4 checkers)) (defun product-set-family-products (product products) "Set family products of PRODUCT to PRODUCTS." @@ -135,7 +135,7 @@ PRODUCT-NAME is a string of the product's name." "Add checker function(s) to a product. PRODUCT is a product structure which returned by `product-define'. The rest arguments CHECKERS should be functions. These functions -are regist to the product's checkers list, and will be called by +are registered to the product's checkers list, and will be called by `product-run-checkers'. If a checker is `ignore' will be ignored all checkers after this." (setq product (product-find product)) @@ -205,7 +205,7 @@ FEATURE is a symbol of the feature." (defun product-find (product) "Find product information. -If PROCUCT is a product structure, then return PRODUCT itself. +If PRODUCT is a product structure, then return PRODUCT itself. If PRODUCT is a string, then find product by name and return a product structure. If PRODUCT is symbol of feature, then return the feature's product." diff --git a/timezone.el b/timezone.el index 8db1d85..33f0231 100644 --- a/timezone.el +++ b/timezone.el @@ -278,6 +278,15 @@ or an integer of the form +-HHMM, or a time zone name." (if (< timezone 0) (- minutes) minutes)))) (t 0))) +(defun timezone-floor (arg &optional divisor) + "Return the largest integer no grater than ARG. +With optional DIVISOR, return the largest integer no greater than ARG/DIVISOR." + (if (null divisor) + (setq divisor 1)) + (if (< arg 0) + (- (/ (- divisor 1 arg) divisor)) + (/ arg divisor))) + (defun timezone-time-from-absolute (date seconds) "Compute the UTC time equivalent to DATE at time SECONDS after midnight. Return a list suitable as an argument to `current-time-zone', @@ -296,9 +305,9 @@ Gregorian date Sunday, December 31, 1 BC." (seconds-per-day-3 128) ;; (seconds (+ seconds (* days seconds-per-day))) ;; (current-time-arithmetic-base (float 65536)) - ;; (hi (floor (/ seconds current-time-arithmetic-base))) + ;; (hi (timezone-floor (/ seconds current-time-arithmetic-base))) ;; (hibase (* hi current-time-arithmetic-base)) - ;; (lo (floor (- seconds hibase))) + ;; (lo (timezone-floor (- seconds hibase))) (seconds-1 (/ seconds 65536)) (seconds-2 (% (/ seconds 256) 256)) (seconds-3 (% seconds 256)) @@ -409,7 +418,7 @@ If TIMEZONE is nil, use the local time zone." (diff (- (timezone-zone-to-minute timezone) (timezone-zone-to-minute local))) (minute (+ minute diff)) - (hour-fix (floor minute 60))) + (hour-fix (timezone-floor minute 60))) (setq hour (+ hour hour-fix)) (setq minute (- minute (* 60 hour-fix))) ;; HOUR may be larger than 24 or smaller than 0. -- 1.7.10.4