(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP" BASE 10)
(FILECREATED "29-Mar-88 17:26:09" 
"{FireFS:CS:Univ Rochester}<Koomen>LispUsers>Lyric>DATEFORMAT-EDITOR.;2" 18094  

      changes to%:  (FNS EDIT-DATEFORMAT DATEFORMAT-EDITOR-GET-STATE DATEFORMAT-EDITOR-PUT-STATE DATEFORMAT-EDITOR-SHOW-STATE DATEFORMAT-EDITOR-GETDFLTFN DATEFORMAT-EDITOR-PUTDFLTFN DATEFORMAT-EDITOR-SHOWFN)
 (VARS DATEFORMAT-EDITORCOMS $$DATEFORMAT-EDITOR-ITEMS) (PROPS (DATEFORMAT-EDITOR MAKEFILE-ENVIRONMENT))

      previous date%: "24-Sep-87 14:22:44" 
|{FireFS:CS:Univ Rochester}<Koomen>LispUsers>Lyric>DATEFORMAT-EDITOR.;1|)


(* "
Copyright (c) 1987, 1988 by Johannes A. G. M. Koomen.  All rights reserved.
")

(PRETTYCOMPRINT DATEFORMAT-EDITORCOMS)

(RPAQQ DATEFORMAT-EDITORCOMS ((* ;;; "This system provides a facility for editing date formats as described in section 12.5 of the Interlisp-D manual, Koto version.  User entry point is the function EDIT-DATEFORMAT.  Editing is accomplished using a FREEMENU.  Items displayed in this menu are stored on DATEFORMAT-EDITOR-ITEMS.  Call (GET-DATEFORMAT-EDITOR T) after changing this variable.  Input to EDIT-DATEFORMAT is either NIL or a value returned by the DATEFORMAT function.  Output is either NIL -- in case editing was aborted -- or another value as returned from the DATEFORMAT function.") (* ;;; "Interface") (FNS EDIT-DATEFORMAT GET-DATEFORMAT-EDITOR) (INITVARS (EDIT-DATEFORMAT-DEFAULT (DATEFORMAT))) (* ;;; "Support") (FILES (SYSLOAD) FREEMENU) (PROP MAKEFILE-ENVIRONMENT DATEFORMAT-EDITOR) (FNS DATEFORMAT-EDITOR-STATUS DATEFORMAT-EDITOR-GET-STATE DATEFORMAT-EDITOR-PUT-STATE DATEFORMAT-EDITOR-SHOW-STATE DATEFORMAT-EDITOR-ABORTFN DATEFORMAT-EDITOR-CLOSEFN DATEFORMAT-EDITOR-GETDFLTFN DATEFORMAT-EDITOR-PUTDFLTFN DATEFORMAT-EDITOR-QUITFN DATEFORMAT-EDITOR-SHOWFN) (COMS (* ;; "Redefine \OUTDATE in the system file IOCHARS to add two new DATEFORMAT options: MONTH.LONG and MONTH.LEADING") (FNS \DFE-OUTDATE) (P (COND ((CCODEP (QUOTE \DFE-OUTDATE)) (MOVD? (QUOTE \OUTDATE) (QUOTE \DFE-SAVED-OUTDATE)) (MOVD (QUOTE \DFE-OUTDATE) (QUOTE \OUTDATE)))))) (VARS $$DATEFORMAT-EDITOR-ITEMS ($$DATEFORMAT-EDITOR (GET-DATEFORMAT-EDITOR)) ($$DATEFORMAT-EDITOR-IDATE (IDATE " 1-Jan-88 23:56:41"))) (INITVARS (DATEFORMAT-EDITOR-ITEMS (COPY $$DATEFORMAT-EDITOR-ITEMS)) (EDIT-DATEFORMAT-DEFAULT (DATEFORMAT))))
)



(* ;;; 
"This system provides a facility for editing date formats as described in section 12.5 of the Interlisp-D manual, Koto version.  User entry point is the function EDIT-DATEFORMAT.  Editing is accomplished using a FREEMENU.  Items displayed in this menu are stored on DATEFORMAT-EDITOR-ITEMS.  Call (GET-DATEFORMAT-EDITOR T) after changing this variable.  Input to EDIT-DATEFORMAT is either NIL or a value returned by the DATEFORMAT function.  Output is either NIL -- in case editing was aborted -- or another value as returned from the DATEFORMAT function."
)




(* ;;; "Interface")

(DEFINEQ

(EDIT-DATEFORMAT
(LAMBDA (DATEFORMAT) (* ; "Edited 29-Mar-88 17:24 by Koomen") (* ;;; "This system provides a facility for editing date formats as described in section 12.14 of the Interlisp-D manual, Koto version.  Editing is accomplished using a FREEMENU.  Items displayed in this menu are stored on DATEFORMAT-EDITOR-ITEMS.  Call (GET-DATEFORMAT-EDITOR T) after changing this variable.  Input is either NIL or a value returned by the DATEFORMAT function.  Output is either NIL -- in case editing was aborted -- or another value as returned from the DATEFORMAT function.") (PROG ((DFE (GET-DATEFORMAT-EDITOR))) (DATEFORMAT-EDITOR-PUT-STATE DFE (OR DATEFORMAT EDIT-DATEFORMAT-DEFAULT)) (OPENW DFE) (DATEFORMAT-EDITOR-SHOW-STATE DFE) (DATEFORMAT-EDITOR-STATUS DFE (QUOTE EDIT)) (NLSETQ (while (EQ (DATEFORMAT-EDITOR-STATUS DFE) (QUOTE EDIT)) do (BLOCK))) (CLOSEW DFE) (if (EQ (DATEFORMAT-EDITOR-STATUS DFE) (QUOTE QUIT)) then (RETURN (DATEFORMAT-EDITOR-GET-STATE DFE)) else (DATEFORMAT-EDITOR-STATUS DFE (QUOTE ABORT)))))
)

(GET-DATEFORMAT-EDITOR
(LAMBDA (RECOMPUTE?) (* ; "Edited 24-Sep-87 13:36 by Koomen") (DECLARE (GLOBALVARS $$DATEFORMAT-EDITOR DATEFORMAT-EDITOR-ITEMS LASTMOUSEX LASTMOUSEY SCREENWIDTH SCREENHEIGHT)) (PROG ((DFE $$DATEFORMAT-EDITOR)) (if (OR RECOMPUTE? (NOT (WINDOWP DFE)) (NOT (FMEMB (DATEFORMAT-EDITOR-STATUS DFE) (QUOTE (QUIT ABORT))))) then (SETQ DFE (FREEMENU DATEFORMAT-EDITOR-ITEMS "Date Format Editor")) (SETQ $$DATEFORMAT-EDITOR DFE) (WINDOWPROP DFE (QUOTE CLOSEFN) (FUNCTION DATEFORMAT-EDITOR-CLOSEFN)) (WINDOWPROP DFE (QUOTE SHRINKFN) (QUOTE DON'T)) (WINDOWPROP DFE (QUOTE RESHAPEFN) (QUOTE DON'T)) (DATEFORMAT-EDITOR-STATUS DFE (QUOTE QUIT))) (MOVEW DFE (IMAX 0 (IMIN LASTMOUSEX (IDIFFERENCE SCREENWIDTH (fetch (REGION WIDTH) of (WINDOWREGION DFE))))) (IMAX 0 (IMIN LASTMOUSEY (IDIFFERENCE SCREENHEIGHT (fetch (REGION HEIGHT) of (WINDOWREGION DFE)))))) (RETURN DFE)))
)
)

(RPAQ? EDIT-DATEFORMAT-DEFAULT (DATEFORMAT))



(* ;;; "Support")

(FILESLOAD (SYSLOAD) FREEMENU)

(PUTPROPS DATEFORMAT-EDITOR MAKEFILE-ENVIRONMENT (:READTABLE "INTERLISP" :PACKAGE "INTERLISP" :BASE 10)
)
(DEFINEQ

(DATEFORMAT-EDITOR-STATUS
(LAMBDA (DFE NEWSTATUS) (* Koomen "30-Jan-87 23:41") (if NEWSTATUS then (WINDOWPROP DFE (QUOTE DATEFORMAT-EDITOR-STATUS) NEWSTATUS) else (WINDOWPROP DFE (QUOTE DATEFORMAT-EDITOR-STATUS))))
)

(DATEFORMAT-EDITOR-GET-STATE
(LAMBDA (DFE) (* ; "Edited 29-Mar-88 15:05 by Koomen") (PROG ((FMT NIL) (ITEM NIL) (STATE (FM.GETSTATE DFE))) (if (SETQ ITEM (LISTGET STATE (QUOTE TIME))) then (SELECTQ (FM.ITEMPROP ITEM (QUOTE ID)) (TIME-SECS NIL) (TIME-NONE (push FMT (QUOTE NO.TIME))) (TIME-MINS (push FMT (QUOTE NO.SECONDS))) (SHOULDNT "Bad TIME"))) (if (NOT (LISTGET FMT (QUOTE NO.TIME))) then (if (SETQ ITEM (LISTGET STATE (QUOTE TIMEZONE))) then (SELECTQ (FM.ITEMPROP ITEM (QUOTE ID)) (TIMEZONE-NO NIL) (TIMEZONE-YES (push FMT (QUOTE TIME.ZONE))) (SHOULDNT "Bad TIMEZONE")))) (if (SETQ ITEM (LISTGET STATE (QUOTE DATE))) then (SELECTQ (FM.ITEMPROP ITEM (QUOTE ID)) (DATE-NONE (push FMT (QUOTE NO.DATE))) (DATE-NORMAL NIL) (DATE-SPACES (push FMT (QUOTE SPACES))) (DATE-SLASHES (push FMT (QUOTE SLASHES))) (DATE-LEADING (push FMT (QUOTE MONTH.LEADING))) (SHOULDNT "Bad DATE"))) (if (NOT (LISTGET FMT (QUOTE NO.DATE))) then (if (SETQ ITEM (LISTGET STATE (QUOTE DAY))) then (SELECTQ (FM.ITEMPROP ITEM (QUOTE ID)) (DAY-NONE NIL) (DAY-LONG (push FMT (QUOTE DAY.OF.WEEK))) (DAY-SHORT (push FMT (QUOTE DAY.OF.WEEK)) (push FMT (QUOTE DAY.SHORT))) (SHOULDNT "Bad DAY"))) (if (SETQ ITEM (LISTGET STATE (QUOTE MONTH))) then (SELECTQ (FM.ITEMPROP ITEM (QUOTE ID)) (MONTH-LONG (push FMT (QUOTE MONTH.LONG))) (MONTH-SHORT NIL) (MONTH-NUMERIC (push FMT (QUOTE NUMBER.OF.MONTH))) (SHOULDNT "Bad MONTH"))) (if (SETQ ITEM (LISTGET STATE (QUOTE YEAR))) then (SELECTQ (FM.ITEMPROP ITEM (QUOTE ID)) (YEAR-LONG (push FMT (QUOTE YEAR.LONG))) (YEAR-SHORT NIL) (SHOULDNT "Bad YEAR"))) (if (SETQ ITEM (LISTGET STATE (QUOTE LEADER))) then (SELECTQ (FM.ITEMPROP ITEM (QUOTE ID)) (LEADER-NO (push FMT (QUOTE NO.LEADING.SPACES))) (LEADER-YES NIL) (SHOULDNT "Bad LEADER")))) (RETURN (APPLY (FUNCTION DATEFORMAT) (DREVERSE FMT)))))
)

(DATEFORMAT-EDITOR-PUT-STATE
(LAMBDA (DFE DATEFORMAT) (* ; "Edited 29-Mar-88 14:17 by Koomen") (FM.RESETMENU DFE) (for FMT in (if (AND DATEFORMAT (EQ (CAR (LISTP DATEFORMAT)) (QUOTE DATEFORMAT))) then (CDR DATEFORMAT)) bind (DATE ← (QUOTE DATE-NORMAL)) (YEAR ← (QUOTE YEAR-SHORT)) (MONTH ← (QUOTE MONTH-SHORT)) (DAY ← (QUOTE DAY-NONE)) (LEADER ← (QUOTE LEADER-YES)) (TIME ← (QUOTE TIME-SECS)) (TIMEZONE ← (QUOTE TIMEZONE-NO)) do (SELECTQ FMT (NO.DATE (SETQ DATE (QUOTE DATE-NONE))) (NUMBER.OF.MONTH (SETQ MONTH (QUOTE MONTH-NUMERIC))) (MONTH.LEADING (SETQ DATE (QUOTE DATE-LEADING))) (MONTH.LONG (SETQ MONTH (QUOTE MONTH-LONG))) (YEAR.LONG (SETQ YEAR (QUOTE YEAR-LONG))) (SLASHES (SETQ DATE (QUOTE DATE-SLASHES))) (SPACES (SETQ DATE (QUOTE DATE-SPACES))) (NO.LEADING.SPACES (SETQ LEADER (QUOTE LEADER-NO))) (NO.TIME (SETQ TIME (QUOTE TIME-NONE))) (TIME.ZONE (SETQ TIMEZONE (QUOTE TIMEZONE-YES))) (NO.SECONDS (SETQ TIME (QUOTE TIME-MINS))) (DAY.OF.WEEK (OR (EQ DAY (QUOTE DAY-SHORT)) (SETQ DAY (QUOTE DAY-LONG)))) (DAY.SHORT (SETQ DAY (QUOTE DAY-SHORT))) (PROGN (* ; "???") NIL)) finally (if (AND DATE (SETQ DATE (FM.GETITEM DATE NIL DFE))) then (FM.CHANGESTATE (QUOTE DATE) DATE DFE)) (if (AND YEAR (SETQ YEAR (FM.GETITEM YEAR NIL DFE))) then (FM.CHANGESTATE (QUOTE YEAR) YEAR DFE)) (if (AND MONTH (SETQ MONTH (FM.GETITEM MONTH NIL DFE))) then (FM.CHANGESTATE (QUOTE MONTH) MONTH DFE)) (if (AND DAY (SETQ DAY (FM.GETITEM DAY NIL DFE))) then (FM.CHANGESTATE (QUOTE DAY) DAY DFE)) (if (AND LEADER (SETQ LEADER (FM.GETITEM LEADER NIL DFE))) then (FM.CHANGESTATE (QUOTE LEADER) LEADER DFE)) (if (AND TIME (SETQ TIME (FM.GETITEM TIME NIL DFE))) then (FM.CHANGESTATE (QUOTE TIME) TIME DFE)) (if (AND TIMEZONE (SETQ TIMEZONE (FM.GETITEM TIMEZONE NIL DFE))) then (FM.CHANGESTATE (QUOTE TIMEZONE) TIMEZONE DFE))))
)

(DATEFORMAT-EDITOR-SHOW-STATE
(LAMBDA (DFE) (* ; "Edited 29-Mar-88 13:01 by Koomen") (LET ((PROMPTW (GETPROMPTWINDOW DFE)) (FORMAT (DATEFORMAT-EDITOR-GET-STATE DFE))) (CLEARW PROMPTW) (printout PROMPTW (GDATE $$DATEFORMAT-EDITOR-IDATE FORMAT))))
)

(DATEFORMAT-EDITOR-ABORTFN
(LAMBDA (ITEM WINDOW BUTTONS) (* Koomen "30-Jan-87 23:43") (DATEFORMAT-EDITOR-STATUS WINDOW (QUOTE ABORT)))
)

(DATEFORMAT-EDITOR-CLOSEFN
(LAMBDA (WINDOW) (* Koomen "30-Jan-87 23:42") (if (EQ (DATEFORMAT-EDITOR-STATUS WINDOW) (QUOTE EDIT)) then (DATEFORMAT-EDITOR-STATUS WINDOW (QUOTE ABORT))))
)

(DATEFORMAT-EDITOR-GETDFLTFN
(LAMBDA (ITEM WINDOW BUTTONS) (* ; "Edited 29-Mar-88 13:08 by Koomen") (if (EQ (DATEFORMAT-EDITOR-STATUS WINDOW) (QUOTE EDIT)) then (DATEFORMAT-EDITOR-PUT-STATE WINDOW EDIT-DATEFORMAT-DEFAULT) (DATEFORMAT-EDITOR-SHOW-STATE WINDOW)))
)

(DATEFORMAT-EDITOR-PUTDFLTFN
(LAMBDA (ITEM WINDOW BUTTONS) (* ; "Edited 29-Mar-88 13:16 by Koomen") (if (EQ (DATEFORMAT-EDITOR-STATUS WINDOW) (QUOTE EDIT)) then (SETQ EDIT-DATEFORMAT-DEFAULT (DATEFORMAT-EDITOR-GET-STATE WINDOW))))
)

(DATEFORMAT-EDITOR-QUITFN
(LAMBDA (ITEM WINDOW BUTTONS) (* Koomen "30-Jan-87 23:44") (DATEFORMAT-EDITOR-STATUS WINDOW (QUOTE QUIT)))
)

(DATEFORMAT-EDITOR-SHOWFN
(LAMBDA (ITEM WINDOW BUTTONS) (* ; "Edited 29-Mar-88 13:03 by Koomen") (if (EQ (DATEFORMAT-EDITOR-STATUS WINDOW) (QUOTE EDIT)) then (DATEFORMAT-EDITOR-SHOW-STATE WINDOW)))
)
)



(* ;; 
"Redefine \OUTDATE in the system file IOCHARS to add two new DATEFORMAT options: MONTH.LONG and MONTH.LEADING"
)

(DEFINEQ

(\DFE-OUTDATE
(LAMBDA (UD FORMAT STRING) (* Koomen "20-Feb-87 01:03") (* bvm%: "28-Jun-85 17:23") (* ;; "Adapted from \OUTDATE in IOCHARS of 28-Jun-85 21:07:58") (PROG ((TIME (CDDDR UD)) (SEPR (CHARCODE -)) YEAR SIZE DAY MONTH S N NO.DATE NO.TIME NO.LEADING.SPACES TIME.ZONE TIME.ZONE.LENGTH YEAR.LENGTH MONTH.LENGTH DAY.LENGTH NO.SECONDS NUMBER.OF.MONTH YEAR.LONG MONTH.LONG MONTH.LEADING DAY.OF.WEEK DAY.SHORT) (if (NULL FORMAT) then NIL elseif (NEQ (CAR (LISTP FORMAT)) (QUOTE DATEFORMAT)) then (LISPERROR "ILLEGAL ARG" FORMAT) else (for TOKEN in FORMAT do (SELECTQ TOKEN (NO.DATE (SETQ NO.DATE T)) (NO.TIME (SETQ NO.TIME T)) (NUMBER.OF.MONTH (SETQ NUMBER.OF.MONTH T)) (MONTH.LONG (SETQ MONTH.LONG T)) (MONTH.LEADING (SETQ MONTH.LEADING T)) (YEAR.LONG (SETQ YEAR.LONG T)) (SLASHES (SETQ SEPR (CHARCODE /))) (SPACES (SETQ SEPR (CHARCODE SPACE))) (NO.LEADING.SPACES (SETQ NO.LEADING.SPACES T)) (TIME.ZONE (SETQ TIME.ZONE (CDR (ASSOC \TimeZoneComp TIME.ZONES)))) (NO.SECONDS (SETQ NO.SECONDS T)) (DAY.OF.WEEK (SETQ DAY.OF.WEEK T)) (DAY.SHORT (SETQ DAY.SHORT T)) NIL)) (if MONTH.LEADING then (SETQ NUMBER.OF.MONTH NIL) (SETQ SEPR (CHARCODE SPACE)))) (SETQ SIZE (IPLUS (if NO.DATE then 0 else (SETQ YEAR (CAR UD)) (SETQ MONTH (IPLUS (CADR UD) 1)) (SETQ DAY (CADDR UD)) (IPLUS 2 (SETQ YEAR.LENGTH (if YEAR.LONG then 4 elseif (IGREATERP YEAR 1999) then (SETQ YEAR.LONG T) 4 else (SETQ YEAR (IREMAINDER YEAR 100)) 2)) (SETQ DAY.LENGTH (if (AND (OR NO.LEADING.SPACES MONTH.LEADING) (ILESSP DAY 10)) then 1 else 2)) (SETQ MONTH.LENGTH (if NUMBER.OF.MONTH then (if (AND (OR NO.LEADING.SPACES MONTH.LEADING) (ILESSP MONTH 10)) then 1 else 2) elseif MONTH.LONG then (SETQ MONTH (CAR (NTH (QUOTE ("January" "February" "March" "April" "May" "June" "July" "August" "September" "October" "November" "December")) MONTH))) (NCHARS MONTH) else (SETQ MONTH (CAR (NTH (QUOTE ("Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec")) MONTH))) 3)) (if MONTH.LEADING then (* ; "Insert a comma") 1 else 0) (if DAY.OF.WEEK then (SETQ DAY.OF.WEEK (CAR (NTH (QUOTE ("Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday" "Sunday")) (IPLUS (CAR (CDDDDR TIME)) 1)))) (IPLUS 3 (SETQ DAY.SHORT (if DAY.SHORT then (SETQ DAY.OF.WEEK (SUBSTRING DAY.OF.WEEK 1 3)) 3 else (NCHARS DAY.OF.WEEK)))) else 0))) (if NO.TIME then 0 else (IPLUS (if NO.DATE then 5 else 6) (if NO.SECONDS then 0 else 3) (if (NULL TIME.ZONE) then 0 elseif (EQ (SETQ TIME.ZONE.LENGTH (NCHARS TIME.ZONE)) 1) then 4 else (IPLUS TIME.ZONE.LENGTH 1)))))) (SETQ S (ALLOCSTRING SIZE (CHARCODE SPACE))) (if NO.DATE then (SETQ N 0) else (if MONTH.LEADING then (if NUMBER.OF.MONTH then (PROMPTPRINT MONTH.LENGTH) (\RPLRIGHT S (SETQ N MONTH.LENGTH) MONTH MONTH.LENGTH) else (RPLSTRING S 1 MONTH) (SETQ N MONTH.LENGTH)) (RPLCHARCODE S (add N 1) SEPR) (\RPLRIGHT S (add N (if (AND (OR NO.LEADING.SPACES MONTH.LEADING) (ILESSP DAY 10)) then 1 else 2)) DAY 1) (if MONTH.LEADING then (RPLCHARCODE S (add N 1) (CHARCODE ","))) else (\RPLRIGHT S (SETQ N (if (AND NO.LEADING.SPACES (ILESSP DAY 10)) then 1 else 2)) DAY 1) (RPLCHARCODE S (add N 1) SEPR) (if NUMBER.OF.MONTH then (\RPLRIGHT S (add N MONTH.LENGTH) MONTH MONTH.LENGTH) else (RPLSTRING S (IPLUS N 1) MONTH) (add N MONTH.LENGTH))) (RPLCHARCODE S (add N 1) SEPR) (\RPLRIGHT S (add N YEAR.LENGTH) YEAR 2) (if (NOT NO.TIME) then (add N 1)) (if DAY.OF.WEEK then (* Day of week at very end in parens) (RPLCHARCODE S (IPLUS (IDIFFERENCE SIZE DAY.SHORT) -1) (CHARCODE "(")) (RPLSTRING S (IDIFFERENCE SIZE DAY.SHORT) DAY.OF.WEEK) (RPLCHARCODE S SIZE (CHARCODE ")")))) (if (NOT NO.TIME) then (\RPLRIGHT S (IPLUS N 2) (CAR TIME) 2) (RPLCHARCODE S (IPLUS N 3) (CHARCODE %:)) (\RPLRIGHT S (add N 5) (CADR TIME) 2) (if (NOT NO.SECONDS) then (RPLCHARCODE S (IPLUS N 1) (CHARCODE %:)) (\RPLRIGHT S (add N 3) (CADDR TIME) 2)) (if TIME.ZONE then (RPLSTRING S (IPLUS N 2) TIME.ZONE) (if (EQ TIME.ZONE.LENGTH 1) then (* Fill in daylight or standard) (RPLSTRING S (IPLUS N 3) (if (CADDDR TIME) then "DT" else "ST"))))) (RETURN (if STRING then (SUBSTRING S 1 -1 STRING) else S))))
)
)
(COND ((CCODEP (QUOTE \DFE-OUTDATE)) (MOVD? (QUOTE \OUTDATE) (QUOTE \DFE-SAVED-OUTDATE)) (MOVD (QUOTE \DFE-OUTDATE) (QUOTE \OUTDATE))))

(RPAQQ $$DATEFORMAT-EDITOR-ITEMS (((TYPE MOMENTARY LABEL "Quit" FONT (GACHA 10 BOLD) SELECTEDFN DATEFORMAT-EDITOR-QUITFN MESSAGE "Stop editing, return current settings") (TYPE DISPLAY LABEL "") (TYPE MOMENTARY LABEL "Abort" FONT (GACHA 10 BOLD) SELECTEDFN DATEFORMAT-EDITOR-ABORTFN MESSAGE "Stop editing, ignore changes, return NIL") (TYPE DISPLAY LABEL "      Default:") (TYPE MOMENTARY LABEL "Get" FONT (GACHA 10 BOLD) SELECTEDFN DATEFORMAT-EDITOR-GETDFLTFN MESSAGE "Use default settings") (TYPE MOMENTARY LABEL "Put" FONT (GACHA 10 BOLD) SELECTEDFN DATEFORMAT-EDITOR-PUTDFLTFN MESSAGE "Save settings as default") (TYPE DISPLAY LABEL "")) ((TYPE DISPLAY LABEL "")) ((TYPE DISPLAY LABEL "DATE:     " FONT (GACHA 10 BOLD))) ((TYPE DISPLAY LABEL "  Format: " FONT (GACHA 10 BOLD)) (TYPE NWAY COLLECTION DATE ID DATE-NORMAL LABEL "dd-mon-yy" SELECTEDFN DATEFORMAT-EDITOR-SHOWFN) (TYPE NWAY COLLECTION DATE ID DATE-SLASHES LABEL "dd/mon/yy" SELECTEDFN DATEFORMAT-EDITOR-SHOWFN) (TYPE NWAY COLLECTION DATE ID DATE-NONE LABEL "none" SELECTEDFN DATEFORMAT-EDITOR-SHOWFN)) ((TYPE DISPLAY LABEL "          ") (TYPE NWAY COLLECTION DATE ID DATE-SPACES LABEL "dd mon yy" SELECTEDFN DATEFORMAT-EDITOR-SHOWFN) (TYPE NWAY COLLECTION DATE ID DATE-LEADING LABEL "mon dd, yy" SELECTEDFN DATEFORMAT-EDITOR-SHOWFN)) ((TYPE DISPLAY LABEL "  Year:   " FONT (GACHA 10 BOLD)) (TYPE NWAY COLLECTION YEAR ID YEAR-LONG LABEL "long" SELECTEDFN DATEFORMAT-EDITOR-SHOWFN) (TYPE NWAY COLLECTION YEAR ID YEAR-SHORT LABEL "short" SELECTEDFN DATEFORMAT-EDITOR-SHOWFN)) ((TYPE DISPLAY LABEL "  Month:  " FONT (GACHA 10 BOLD)) (TYPE NWAY COLLECTION MONTH ID MONTH-LONG LABEL "long" SELECTEDFN DATEFORMAT-EDITOR-SHOWFN) (TYPE NWAY COLLECTION MONTH ID MONTH-SHORT LABEL "short" SELECTEDFN DATEFORMAT-EDITOR-SHOWFN) (TYPE NWAY COLLECTION MONTH ID MONTH-NUMERIC LABEL "numeric" SELECTEDFN DATEFORMAT-EDITOR-SHOWFN)) ((TYPE DISPLAY LABEL "  Weekday:" FONT (GACHA 10 BOLD)) (TYPE NWAY COLLECTION DAY ID DAY-LONG LABEL "long" SELECTEDFN DATEFORMAT-EDITOR-SHOWFN) (TYPE NWAY COLLECTION DAY ID DAY-SHORT LABEL "short" SELECTEDFN DATEFORMAT-EDITOR-SHOWFN) (TYPE NWAY COLLECTION DAY ID DAY-NONE LABEL "none" SELECTEDFN DATEFORMAT-EDITOR-SHOWFN)) ((TYPE DISPLAY LABEL "  Spaces: " FONT (GACHA 10 BOLD)) (TYPE NWAY COLLECTION LEADER ID LEADER-YES LABEL "yes" SELECTEDFN DATEFORMAT-EDITOR-SHOWFN) (TYPE NWAY COLLECTION LEADER ID LEADER-NO LABEL "no" SELECTEDFN DATEFORMAT-EDITOR-SHOWFN)) ((TYPE DISPLAY LABEL "")) ((TYPE DISPLAY LABEL "TIME:" FONT (GACHA 10 BOLD))) ((TYPE DISPLAY LABEL "  Format:   " FONT (GACHA 10 BOLD)) (TYPE NWAY COLLECTION TIME ID TIME-SECS LABEL "hh:mm:ss" SELECTEDFN DATEFORMAT-EDITOR-SHOWFN) (TYPE NWAY COLLECTION TIME ID TIME-MINS LABEL "hh:mm" SELECTEDFN DATEFORMAT-EDITOR-SHOWFN) (TYPE NWAY COLLECTION TIME ID TIME-NONE LABEL "none" SELECTEDFN DATEFORMAT-EDITOR-SHOWFN)) ((TYPE DISPLAY LABEL "  Time Zone:" FONT (GACHA 10 BOLD)) (TYPE NWAY COLLECTION TIMEZONE ID TIMEZONE-YES LABEL "yes" SELECTEDFN DATEFORMAT-EDITOR-SHOWFN) (TYPE NWAY COLLECTION TIMEZONE ID TIMEZONE-NO LABEL "no" SELECTEDFN DATEFORMAT-EDITOR-SHOWFN)))
)

(RPAQ $$DATEFORMAT-EDITOR (GET-DATEFORMAT-EDITOR))

(RPAQ $$DATEFORMAT-EDITOR-IDATE (IDATE " 1-Jan-88 23:56:41"))

(RPAQ? DATEFORMAT-EDITOR-ITEMS (COPY $$DATEFORMAT-EDITOR-ITEMS))

(RPAQ? EDIT-DATEFORMAT-DEFAULT (DATEFORMAT))
(PUTPROPS DATEFORMAT-EDITOR COPYRIGHT ("Johannes A. G. M. Koomen" 1987 1988))
(DECLARE%: DONTCOPY
  (FILEMAP (NIL (2949 4866 (EDIT-DATEFORMAT 2959 . 3982) (GET-DATEFORMAT-EDITOR 3984 . 4864)) (5073 
10323 (DATEFORMAT-EDITOR-STATUS 5083 . 5299) (DATEFORMAT-EDITOR-GET-STATE 5301 . 7103) (
DATEFORMAT-EDITOR-PUT-STATE 7105 . 8911) (DATEFORMAT-EDITOR-SHOW-STATE 8913 . 9160) (
DATEFORMAT-EDITOR-ABORTFN 9162 . 9298) (DATEFORMAT-EDITOR-CLOSEFN 9300 . 9485) (
DATEFORMAT-EDITOR-GETDFLTFN 9487 . 9750) (DATEFORMAT-EDITOR-PUTDFLTFN 9752 . 9984) (
DATEFORMAT-EDITOR-QUITFN 9986 . 10120) (DATEFORMAT-EDITOR-SHOWFN 10122 . 10321)) (10448 14525 (
\DFE-OUTDATE 10458 . 14523)))))
STOP