;ELC ;;; Compiled ;;; in Emacs version 26.3 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\305\306\307\310#\210\305\306\311\312#\210\313\314\315\316!\"\210\313\317\320\316!\"\210\313\321\317\"\210\322\321\323\324#\210\325\316\326\317#\327\316\330\211\331$\207" [require cl-lib cl-generic eieio rudel-errors put rudel-dispatch-error error-conditions (error rudel-error rudel-dispatch-error) error-message "Could not dispatch message to handler" defalias rudel-hook-object-p eieio-make-class-predicate rudel-hook-object rudel-hook-object--eieio-childp eieio-make-child-predicate rudel-hook-object-child-p make-obsolete "use (cl-typep ... \\='rudel-hook-object) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal nil (:documentation "Mixin for classes that offer one or more hooks for each of\ntheir objects.\n\nThis idiom is usually called something like signal/slot or\nevent/subscription, but for Emacs, the notion of hooks seems more\nappropriate." :abstract t)] 6) #@75 You cannot create a new object of type `rudel-hook-object'. (fn &rest _) (defalias 'rudel-hook-object #[128 "\300\301!\207" [error "Class rudel-hook-object is abstract"] 3 (#$ . 1378)]) (byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\300\310\302\311\302\312%\210\313\314\315\316!\"\210\313\317\320\316!\"\210\313\321\317\"\210\322\321\323\324#\210\325\316\326\317#\327\316\302\330\331$\207" [cl-generic-define-method object-add-hook nil ((this rudel-hook-object) hook function &optional append) #[1027 "\300\"\235?\205'\301\203\302 C\"\202$B#\266\202\207" [slot-value eieio-oset append] 13 "Add FUNCTION to HOOK for THIS.\nIf APPEND is non-nil FUNCTION becomes the last element in the\nlist of hooks.\n\n(fn THIS HOOK FUNCTION &optional APPEND)"] object-remove-hook ((this rudel-hook-object) hook function) #[771 "\300\301\302\n\n\"\"#\207" [eieio-oset remove slot-value] 13 "Remove FUNCTION from HOOK for THIS.\n\n(fn THIS HOOK FUNCTION)"] object-run-hook-with-args ((this rudel-hook-object) hook &rest arguments) #[642 "\300\301\302\303\304\305\"\306\"\307\310%\311\"\"\207" [mapc make-byte-code 257 "\302\300\301#\207" vconcat vector [apply] 5 "\n\n(fn F)" slot-value] 11 "Run HOOK of THIS with arguments ARGUMENTS.\n\n(fn THIS HOOK &rest ARGUMENTS)"] defalias rudel-impersonator-p eieio-make-class-predicate rudel-impersonator rudel-impersonator--eieio-childp eieio-make-child-predicate rudel-impersonator-child-p make-obsolete "use (cl-typep ... \\='rudel-impersonator) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal ((impersonation-target-slot :type symbol :allocation :class :documentation "A symbol specifying the name of\nthe slot that holds the reference to the target object.")) (:documentation "A mixin that allows derived classes to transparently accesses\nthe slots of some other object as if they were their own slots." :abstract t)] 6) #@76 You cannot create a new object of type `rudel-impersonator'. (fn &rest _) (defalias 'rudel-impersonator #[128 "\300\301!\207" [error "Class rudel-impersonator is abstract"] 3 (#$ . 3329)]) (byte-code "\300\301\302\303\304\305%\210\306\307\310\311!\"\210\306\312\313\311!\"\210\306\314\312\"\210\315\314\316\317#\210\320\311\321\312#\322\311\302\323\324$\207" [cl-generic-define-method slot-missing nil ((this rudel-impersonator) slot-name operation &optional new-value) t #[1284 "\300\301\302\"\"\30311\304=\203\300\"\202-\305=\203,\211\306#\266\202\202-\3070\2024\210 \207" [slot-value eieio-oref impersonation-target-slot (invalid-slot-name) oref oset eieio-oset nil] 12 "Look up SLOT-NAME in the state machine associated to THIS.\n\n(fn CL--CNM THIS SLOT-NAME OPERATION &optional NEW-VALUE)"] defalias rudel-delegator-p eieio-make-class-predicate rudel-delegator rudel-delegator--eieio-childp eieio-make-child-predicate rudel-delegator-child-p make-obsolete "use (cl-typep ... \\='rudel-delegator) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal ((delegation-target-slot :type symbol :allocation :class :documentation "A symbol specifying the name of the\nslot that holds the reference to the target object.")) (:documentation "A mixin that allows derived state classes to transparently\ncall methods of some other object as if they were their own\nmethods." :abstract t)] 6) #@73 You cannot create a new object of type `rudel-delegator'. (fn &rest _) (defalias 'rudel-delegator #[128 "\300\301!\207" [error "Class rudel-delegator is abstract"] 3 (#$ . 4767)]) (cl-generic-define-method 'cl-no-applicable-method nil '(method (this rudel-delegator) &rest args) nil #[642 "\300\301\302\"\"\303B\"\207" [slot-value eieio-oref delegation-target-slot cl-generic-apply] 8 "Call METHOD on the target object instead of THIS.\n\n(fn METHOD THIS &rest ARGS)"]) #@311 Return complete fragment in DATA, store excess data in STORAGE. If the value of STORAGE is non-nil when calling, consider content as leftover data from last call and concatenate with DATA before processing. FUNCTION is called to identify complete and partial fragments in the data. (fn DATA STORAGE FUNCTION) (defalias 'rudel-assemble-fragments '(macro . #[771 "\300\301!\302\303FDC\304\305D\306D\257E\207" [make-symbol "x" let funcall setq cadr car] 12 (#$ . 5250)])) (put 'rudel-assemble-fragments 'edebug-form-spec '(symbolp symbolp form)) #@402 Split DATA at line breaks and return complete and incomplete lines. DATA has to be a cons-cell which contains a string of new data in its car and a list of old data strings in its cdr. The returned value is a list of the following form (COMPLETE INCOMPLETE) where complete COMPLETE is a list of complete lines and INCOMPLETE is a list of string fragments of not yet complete lines. (fn DATA STORAGE) (defalias 'rudel-assemble-lines #[514 "\300\301\302\303$\211\205\"\304\305O\306\"\211\307\310\311!\312#@P\240\210\211\262\205+GS=?\205?\203<T\313OC\202?BD\207" [cl-position 10 :from-end t split-string 0 "\n" mapconcat identity reverse "" nil] 9 (#$ . 5814)]) #@96 Execute FROMS with VAR subsequently bound to all fragments in DATA. (fn DATA VAR &rest FORMS) (defalias 'rudel-loop-fragments '(macro . #[642 "\300\301!\302D\303DC\304BEE\207" [make-symbol "fragment" dolist let progn] 10 (#$ . 6500)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put rudel-loop-fragments lisp-indent-function 2 put edebug-form-spec (form symbolp &rest form)] 5) #@240 Execute FROMS in a loop with VAR bound to chunks of DATA of SIZE. Unless (zerop (mod (length data) size) 0) the final chunk is truncated. The expression SIZE is evaluated in each loop unless it is a number. (fn DATA VAR SIZE &rest FORMS) (defalias 'rudel-loop-chunks '(macro . #[899 "\247\203\300X\203\301\302!\210\303\304!\303\305!\247?\205%\306\307\310BB\311BBC\312\313\314 D\nCCE\315\316\317\n\320BBD\321 \322\323 DE\324\300F\324E\257\312\fBFEC\"B\207" [0 error "Size should be positive" make-symbol "rest" "amount" when <= (0) ((error "Size should be positive")) progn append let while not string= ("") setq min length substring] 23 (#$ . 6911)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put rudel-loop-chunks lisp-indent-function 3 put edebug-form-spec (form symbolp numberp &rest form)] 5) #@175 Call method (concat PREFIX NAME) of OBJECT with ARGUMENTS. If no such method can be found, the condition rudel-dispatch-error is signaled. (fn OBJECT PREFIX NAME ARGUMENTS) (defalias 'rudel-dispatch #[1028 "\300P!\211\204\301\302\303\"\210\3041\305#0\2023A@=\203+\301\302\306\"\2021\301@A\"\262\207" [intern-soft signal rudel-dispatch-error method-symbol-unbound (no-method-definition) apply no-method-for-object] 9 (#$ . 7772)]) (provide 'rudel-util)