Skip to content

Instantly share code, notes, and snippets.

@sgithens
Created March 29, 2022 13:03
Show Gist options
  • Save sgithens/01eafa92da21ad9d71088f7237485add to your computer and use it in GitHub Desktop.
Save sgithens/01eafa92da21ad9d71088f7237485add to your computer and use it in GitHub Desktop.
macroexpanded defboxer preference
(pprint (macroexpand-1 '(defboxer-preference bu::print-fractions (true-or-false)
((*print-rationals* :boolean (boxer-eval::boxer-boolean *print-rationals*))
#+capi results #-capi result-appearance
("Should fractional numbers (e.g., 1/2) appear as ")
("fractions (1/2), rather than decimals (0.5) ?"))
(setq *print-rationals* true-or-false)
boxer-eval::*novalue*)))
(PROGN
(UNLESS (FAST-MEMQ 'BOXER-USER::PRINT-FRACTIONS *BOXER-PREFERENCES-LIST*)
(SETQ *BOXER-PREFERENCES-LIST* (APPEND *BOXER-PREFERENCES-LIST* (LIST 'BOXER-USER::PRINT-FRACTIONS))))
(LET ((EXISTING-R-ENTRY (ASSOC 'BOXER-USER::PRINT-FRACTIONS *PREFERENCE-READ-HANDLERS*))
(EXISTING-W-ENTRY (ASSOC 'BOXER-USER::PRINT-FRACTIONS *PREFERENCE-WRITE-HANDLERS*)))
(IF (NULL EXISTING-R-ENTRY)
(PUSH (LIST 'BOXER-USER::PRINT-FRACTIONS 'PRINT-FRACTIONS-FILE-READER ':BOOLEAN)
*PREFERENCE-READ-HANDLERS*)
(SETF (CADR EXISTING-R-ENTRY) 'PRINT-FRACTIONS-FILE-READER (CADDR EXISTING-R-ENTRY) ':BOOLEAN))
(IF (NULL EXISTING-W-ENTRY)
(PUSH (LIST 'BOXER-USER::PRINT-FRACTIONS 'PRINT-FRACTIONS-FILE-WRITER ':BOOLEAN)
*PREFERENCE-WRITE-HANDLERS*)
(SETF (CADR EXISTING-W-ENTRY) 'PRINT-FRACTIONS-FILE-WRITER (CADDR EXISTING-W-ENTRY) ':BOOLEAN)))
(DEFUN PRINT-FRACTIONS-FILE-READER (VALUE-STRING)
(LET ((NEW-VALUE (COERCE-CONFIG-VALUE VALUE-STRING :BOOLEAN)))
(UNLESS (OR (NULL *SITE-INITIALIZATION-VERBOSITY*) (MEMBER :MCL-APPGEN *FEATURES*))
(FORMAT T "~%Initializing System Variable ~A to ~A" '*PRINT-RATIONALS* NEW-VALUE))
(SETQ *PRINT-RATIONALS* NEW-VALUE)))
(DEFUN PRINT-FRACTIONS-FILE-WRITER (FILESTREAM)
(FORMAT FILESTREAM "~A: ~A~%" 'BOXER-USER::PRINT-FRACTIONS (IF *PRINT-RATIONALS* "True" "False")))
(SETF (GET 'BOXER-USER::PRINT-FRACTIONS 'SYSTEM-PARAMETER-DEFAULT-VALUE)
#'(LAMBDA () (BOXER-EVAL:BOXER-BOOLEAN *PRINT-RATIONALS*)))
(UNLESS (NULL '(RESULTS
("Should fractional numbers (e.g., 1/2) appear as ")
("fractions (1/2), rather than decimals (0.5) ?")))
(SETF (GET 'BOXER-USER::PRINT-FRACTIONS 'SYSTEM-PARAMETER-TYPE) 'RESULTS)
(SETF (GET 'BOXER-USER::PRINT-FRACTIONS 'SYSTEM-PARAMETER-DOCUMENTATION)
'(("Should fractional numbers (e.g., 1/2) appear as ")
("fractions (1/2), rather than decimals (0.5) ?"))))
(DEFUN PRINT-FRACTIONS-Q-FUNCTION (TRUE-OR-FALSE)
(SETQ *PRINT-RATIONALS* TRUE-OR-FALSE)
BOXER-EVAL::*NOVALUE*)
(DEFUN PRINT-FRACTIONS-DI-ACTION (DI)
(LET ((EXISTING (FAST-ASSQ 'PRINT-FRACTIONS-Q-FUNCTION *PREFERENCE-DIALOG-CHANGE-LIST*))
(VALUE (CAPI:BUTTON-SELECTED DI)))
(COND ((NOT (NULL EXISTING)) (SETF (CDR EXISTING) VALUE))
(T (PUSH (CONS 'PRINT-FRACTIONS-Q-FUNCTION VALUE) *PREFERENCE-DIALOG-CHANGE-LIST*)))))
(DEFUN PRINT-FRACTIONS-DI-DOC (DI)
(UNLESS (EQ DI *PREFERENCE-DIALOG-LAST-DOC-ITEM*)
(SETF (CAPI:DISPLAY-PANE-TEXT *CURRENT-DOCUMENTATION-DIALOG-ITEM*)
'("Should fractional numbers (e.g., 1/2) appear as "
"fractions (1/2), rather than decimals (0.5) ?"))
(SETQ *PREFERENCE-DIALOG-LAST-DOC-ITEM* DI)))
(SETF (GET 'BOXER-USER::PRINT-FRACTIONS 'SYSTEM-PARAMETER-PREF-DIALOG-INFO)
(LIST '*PRINT-RATIONALS* 'RESULTS ':BOOLEAN 'PRINT-FRACTIONS-DI-ACTION 'PRINT-FRACTIONS-DI-DOC))
(BOXER-EVAL:DEFBOXER-PRIMITIVE BOXER-USER::PRINT-FRACTIONS (TRUE-OR-FALSE)
(LET ((TRUE-OR-FALSE (BOXER-EVAL:TRUE? TRUE-OR-FALSE)))
(SETQ *PRINT-RATIONALS* TRUE-OR-FALSE)
BOXER-EVAL::*NOVALUE*)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment