YZ7A7VE5MT62NTR4OEMHSXANPXCF4MAEHHDHXEHTU2XZW45ISGKQC 3OJN37CYS6M7WTKN6U5RMTWEGUQW7L73ILMUXQGK7XZK4O6PIXPAC RXCY7LD6ZRIOIKZEYKLMCYPMQPXF4DOEEFBDLVR2B22BXLZJFFBQC A3TVGLVHSVLMEHLHB3TPBSD3QGNVGX3DIK6BEBDTTHWBNW4ALMRAC SYJNWC55OP7SD3BPXWVEHCCMSNZTAGX454OSFZROWZKWLOU5MP2AC K4KPTJTYRAJID6IBUIXMLOUKQ7J7XXHHFNSJHMYHDU5IA7ZJXABQC OA42CHZKG3L5IWVBL5CWZJQCY56VWNGEHTSITKLWORFVMYYFUL5QC LVIAMWRNGZZVDNBCHOIVFDUTIDUEPNYV4OO5HT5TWEVSY3I7JZ2AC (defun lp (git-url)(let* ((uri (if (and (not (net.uri:uri-p git-url))(find #\@ git-url))(puri:parse-uri git-url)git-url))(target (merge-pathnames (make-pathname :directory(list :relative"local-projects"(etypecase uri(puri:uri (car (last (puri:uri-parsed-path uri))))(string (subseq uri(or (1+(position #\/ (string-right-trim "/" uri):from-end t))0))))))ql:*quicklisp-home*)))(legit:clone (etypecase git-url(puri:uri (puri:render-uri git-url nil))(string git-url))(namestring target))))(uiop:with-upgradability ()(defclass fw-define-op (asdf:define-op)((%systems-before :initarg :systems-before :reader systems-before)(%new-systems :initarg :new-systems :accessor new-systems)))(defmethod asdf:operate :before ((o fw-define-op) (c asdf:system) &key)(setf (slot-value o '%systems-before) (asdf:registered-systems)))(defmethod asdf:operate :after ((o fw-define-op) (c asdf:system) &key)(setf (new-systems o) (set-difference (asdf:registered-systems)(slot-value o '%systems-before):test 'equal)))(defun load-asd (pathname &key name)"Load system definitions from PATHNAME.NAME if supplied is the name of a system expected to be defined in that file.Do NOT try to load a .asd file directly with CL:LOAD. Always use ASDF:LOAD-ASD."(asdf/session:with-asdf-session ();; TODO: use OPERATE, so we consult the cache and only load once per session.(flet ((do-it (o c) (asdf:operate o c)))(let ((primary-name (asdf:primary-system-name (or name (pathname-name pathname))))(operation (asdf:make-operation 'fw-define-op)))(uiop:if-let (system (asdf:registered-system primary-name))(progn;; We already determine this to be obsolete ---;; or should we move some tests from find-system to check for up-to-date-ness here?(setf (asdf/action:component-operation-time operation system) t(asdf/system:definition-dependency-list system) nil(asdf/system:definition-dependency-set system)(uiop:list-to-hash-set nil))(do-it operation system))(let ((system (make-instance 'asdf/system:undefined-system:name primary-name :source-file pathname)))(asdf/system-registry:register-system system)(unwind-protect (do-it operation system)(when (typep system 'asdf/system:undefined-system)(asdf:clear-system system))))))))))
#.(uiop:define-package :fwoar-user(:export :*term-size*)#.(append '(:mix :cl)(mapcar #'package-name (package-use-list :cl-user))'(:alexandria :serapeum :fw.lu)))
#.(uiop:define-package :fwoar-user(:export :*term-size*)#.(append '(:mix :cl)(mapcar #'package-name (package-use-list :cl-user))'(:alexandria :serapeum :fw.lu)))
(set-dispatch-macro-character #\# #\!(lambda (stream c n)(declare (ignore c n))(read-line stream)`(eval-when (:compile-toplevel :load-toplevel :execute)(pushnew :noscript *features*))))
(set-dispatch-macro-character #\# #\!(lambda (stream c n)(declare (ignore c n))(read-line stream)`(eval-when (:compile-toplevel :load-toplevel :execute)(pushnew :noscript *features*))))
(eval-when (:compile-toplevel :load-toplevel :execute)(cffi:defcstruct winsize(ws_row :unsigned-short)(ws_col :unsigned-short)(ws_xpixel :unsigned-short)(ws_ypixel :unsigned-short))
(eval-when (:compile-toplevel :load-toplevel :execute)(cffi:defcstruct winsize(ws_row :unsigned-short)(ws_col :unsigned-short)(ws_xpixel :unsigned-short)(ws_ypixel :unsigned-short))
(defun get-term-size ()(flet ((ioctl-gwinsz (fd)(cffi:with-foreign-object (ptr '(:pointer (:struct winsize)))(let* ((res (osicat-posix:ioctl fd osicat-posix:tiocgwinsz ptr)))(if (= res 0)(cffi:with-foreign-slots ((ws_row ws_col) ptr (:struct winsize))(list ws_row ws_col))(format t "~&error~%"))))))(loop for x from 0 to 2for res = (handler-case (ioctl-gwinsz x)(osicat-posix:enotty (c) c))finally (return res)))))
(defun get-term-size ()(flet ((ioctl-gwinsz (fd)(cffi:with-foreign-object (ptr '(:pointer (:struct winsize)))(let* ((res (osicat-posix:ioctl fd osicat-posix:tiocgwinsz ptr)))(if (= res 0)(cffi:with-foreign-slots ((ws_row ws_col) ptr (:struct winsize))(list ws_row ws_col))(format t "~&error~%"))))))(loop for x from 0 to 2for res = (handler-case (ioctl-gwinsz x)(osicat-posix:enotty (c) c))finally (return res)))))