(de lpad (n str) (cond ((is_integer str) (setq str (ltoa str 10)))) (while (lt (strlen str) n) (setq str (strcat "0" str)) ) str ) ;* readtime takes a handle to a time device and returns a string represenation ;* of that time device. If buffer is non nil it is concatted onto the name of the ;* time device. readtime( openpath( "/dev/time" ), NULL) returns a user friendly time ;* Thursday October 23 1985 14:27:33.234 (or whatever) ;* readtime( openpath( "/dev/time" ), "year") returns "2005" (or whatever) ;* readtime( openpath( "/dev/time/year" ), NULL ) returns "2005" (or whatever) (de readtime (handle buffer) (setq handle (cddr (strtok (car handle) "/"))) (cond ((nilp buffer) (setq buffer (car handle)))) (cond ((nilp buffer) (strcat (lpad 4 (add 1900 (iftime 8))) (lpad 2 (add 1 (iftime 6))) (lpad 2 (iftime 5)) (lpad 2 (iftime 1)) (lpad 2 (iftime 0)) (lpad 2 (iftime 4)) "P" (cond ((eqv (iftime 9) 0) "S") (t "D")) "T" ) ) ((strcmp buffer "year") (lpad 4 (add 1900 (iftime 8)))) ((strcmp buffer "month") (lpad 2 (add 1 (iftime 6)))) ((strcmp buffer "hour") (lpad 2 (iftime 1))) ((strcmp buffer "minuite") (lpad 2 (iftime 0))) ((strcmp buffer "second") (lpad 2 (iftime 4))) ((strcmp buffer "day_of_year") (lpad 3 (iftime 2))) ((strcmp buffer "day_of_month") (lpad 2 (iftime 5))) ((strcmp buffer "day_of_week") (lpad 1 (iftime 7))) ((strcmp buffer "friendly") (strcat (array days (iftime 7)) " " (array months (iftime 6)) " " (ltoa (iftime 5) 10) " " (lpad 4 (add 1900 (iftime 8))) " " (lpad 2 (iftime 1)) ":" (lpad 2 (iftime 0)) ":" (lpad 2 (iftime 4)) ) ) ) ) ;* writetime should set the time on the machine ;* FIX: this is not yet implemented. (de writetime (handle buffer) (setq handle (cddr (strtok (car handle) "/"))) (cond ((nilp buffer) (setq buffer (car handle)))) (cond ((nilp buffer) (strcat (lpad 4 (add 1900 (iftime 8))) (lpad 2 (add 1 (iftime 6))) (lpad 2 (iftime 5)) (lpad 2 (iftime 1)) (lpad 2 (iftime 0)) (lpad 2 (iftime 4)) "P" (cond ((eqv (iftime 9) 0) "S") (t "D")) "T" ) ) ((strcmp buffer "year") (lpad 4 (add 1900 (iftime 8)))) ((strcmp buffer "month") (lpad 2 (add 1 (iftime 6)))) ((strcmp buffer "hour") (lpad 2 (iftime 1))) ((strcmp buffer "minuite") (lpad 2 (iftime 0))) ((strcmp buffer "second") (lpad 2 (iftime 4))) ((strcmp buffer "day_of_year") (lpad 3 (iftime 2))) ((strcmp buffer "day_of_month") (lpad 2 (iftime 5))) ((strcmp buffer "day_of_week") (lpad 1 (iftime 7))) ((strcmp buffer "friendly") (strcat (array days (iftime 7)) " " (array months (iftime 6)) " " (ltoa (iftime 5) 10) " " (lpad 4 (add 1900 (iftime 8))) " " (lpad 2 (iftime 1)) ":" (lpad 2 (iftime 0)) ":" (lpad 2 (iftime 4)) ) ) ) )