Server IP : 111.118.215.189 / Your IP : 18.220.118.29 Web Server : Apache System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64 User : a1673wkz ( 2475) PHP Version : 8.2.25 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /usr/share/emacs/24.3/lisp/emacs-lisp/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
;ELC ;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:09:01 2024 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/emacs-lisp/eieio-base.el ;;; in Emacs version 24.3.1 ;;; 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\302\303\304\305\306$\210\307\310\311\310\312\"\"\210\313\310\304\303\314$\210\307\315\311\315\316\"\"\210\313\315\304\303\317$\210\307\320\311\320\321\"\"\210\313\320\304\303\322$\210\302\323\304\324\325$\210\307\326\311\326\327\"\"\210\313\326\330\323\331$\210\307\332\311\332\333\"\"\210\313\332\304\323\334$\207" [require eieio eieio-defclass eieio-instance-inheritor nil ((parent-instance :initarg :parent-instance :type eieio-instance-inheritor-child :documentation "The parent of this instance.\nIf a slot of this class is referenced, and is unbound, then the parent\nis checked for a value.")) ("This special class can enable instance inheritance.\nUse `clone' to make a new object that does instance inheritance from\na parent instance. When a slot in the child is referenced, and has\nnot been set, use values from the parent." :abstract t) eieio--defalias slot-unbound eieio--defgeneric-init-form #1="If a slot OBJECT in this CLASS is unbound, try to inherit, or throw a signal.\nSLOT-NAME is the offending slot. FN is the function signaling the error." eieio--defmethod #[(object class slot-name fn) "\302\303\"\203 \304\211\303\" \"\207\305 \207" [object slot-name slot-boundp parent-instance eieio-oref call-next-method] 4 #1#] clone #2="Clone OBJ, initializing `:parent' to OBJ.\nAll slots are unbound, except those initialized with PARAMS." #[(obj &rest params) "\306G \"\nH\205 @;\307\211\310\311I\210HI\210 \204X \312 \313\216\314\315\"\203H \316\317\307\"!T\310\211\224O\n\320\321\f!QI\210*\202_ \n@I\210\203r \322 \203o A\202p \"\210\323\324#\210,\207" [obj eieio-unbound object-name params num passname make-vector 1 0 object match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match "-\\([0-9]+\\)" string-to-number match-string "-" int-to-string shared-initialize eieio-oset parent-instance nm nobj object-class save-match-data-internal] 7 #2#] eieio-instance-inheritor-slot-boundp #3="Return non-nil if the instance inheritor OBJECT's SLOT is bound.\nSee `slot-boundp' for details on binding slots.\nThe instance inheritor uses unbound slots as a way of cascading cloned\nslot values, so testing for a slot being bound requires extra steps\nfor this kind of object." #[(object slot) "\302 \"\203 \303\207\302\304\"\205 \305\306\304\" \"\207" [object slot slot-boundp t parent-instance eieio-instance-inheritor-slot-boundp eieio-oref] 4 #3#] eieio-instance-tracker ((tracking-symbol :type symbol :allocation :class :documentation "The symbol used to maintain a list of our instances.\nThe instance list is treated as a variable, with new instances added to it.")) ("This special class enables instance tracking.\nInheritors from this class must overload `tracking-symbol' which is\na variable symbol used to store a list of all instances." :abstract t) initialize-instance #4="Make sure THIS is in our master list of this class.\nOptional argument SLOTS are the initialization arguments." :AFTER #[(this &rest slots) "\302\303\" J>?\205 \304 JC\"L)\207" [this sym eieio-oref tracking-symbol append] 4 #4#] delete-instance #5="Remove THIS from the master list of this class." #[(this) "\301\302\"\303\301\302\"J\"L\207" [this eieio-oref tracking-symbol delq] 6 #5#]] 5) #@88 Find KEY as an element of SLOT in the objects in LIST-SYMBOL. Returns the first match. (defalias 'eieio-instance-tracker-find #[(key slot list-symbol) "\303 \nJ#\207" [key slot list-symbol object-assoc] 4 (#$ . 3898)]) (byte-code "\300\301\302\303\304$\210\305\306\307\306\310\"\"\210\311\306\312\301\313$\210\300\314\302\315\316$\210\305\317\307\317\320\"\"\210\311\317\302\314\321$\207" [eieio-defclass eieio-singleton nil ((singleton :type eieio-singleton :allocation :class :documentation "The only instance of this class that will be instantiated.\nMultiple calls to `make-instance' will return this object.")) ("This special class causes subclasses to be singletons.\nA singleton is a class which will only ever have one instance." :abstract t) eieio--defalias constructor eieio--defgeneric-init-form #1="Constructor for singleton CLASS.\nNAME and SLOTS initialize the new object.\nThis constructor guarantees that no matter how many you request,\nonly one object ever exists." eieio--defmethod :STATIC #[(class name &rest slots) "\303\304\"\211\n=\203 \305\304\306 #\202 )\207" [class old eieio-unbound eieio-oref-default singleton eieio-oset-default call-next-method] 5 #1#] eieio-persistent ((file :initarg :file :type string :documentation "The save file for this persistent object.\nThis must be a string, and must be specified when the new object is\ninstantiated.") (extension :type string :allocation :class :initform ".eieio" :documentation "Extension of files saved by this object.\nEnables auto-choosing nice file names based on name.") (file-header-line :type string :allocation :class :initform ";; EIEIO PERSISTENT OBJECT" :documentation "Header line for the save file.\nThis is used with the `object-write' method.") (do-backups :type boolean :allocation :class :initform t :documentation "Saving this object should make backup files.\nSetting to nil will mean no backups are made.")) ("This special class enables persistence through save files\nUse the `object-save' method to write this object to disk. The save\nformat is Emacs Lisp code which calls the constructor for the saved\nobject. For this reason, only slots which do not have an `:initarg'\nspecified will not be saved." :abstract t) eieio-persistent-save-interactive #2="Prepare to save THIS. Use in an `interactive' statement.\nQuery user for file name with PROMPT if THIS does not yet specify\na file. Optional argument NAME specifies a default file name." #[(this prompt &optional name) "\303\304\"\204 \305\304\306 \307\n\205 \n\310\311\"P##\210\310\304\"\207" [this prompt name slot-boundp file eieio-oset read-file-name nil eieio-oref extension] 10 #2#]] 5) #@260 Read a persistent object from FILENAME, and return it. Signal an error if the object in FILENAME is not a constructor for CLASS. Optional ALLOW-SUBCLASS says that it is ok for `eieio-persistent-read' to load in subclasses of class instead of being pedantic. (defalias 'eieio-persistent-read #[(filename &optional class allow-subclass) "\204 \305\306!\210\203 \307\310\311\217\204 \312\313\314D\"\210\307\211\315\216r\316\317!q\210\320\307\211\211\321%\210eb\210\322 )\323 !\324\n@\325\"\204E \326\327!\210\203` \n@=\204` \f\203\\ \324\n@\"\204` \326\330!\210\331\n!\332\n\333#\210)\n*\207" [class buffstr ret filename allow-subclass message "Unsafe call to `eieio-persistent-read'." nil (byte-code "\301N\302H\303=\207" [class eieio-class-definition 0 defclass] 2) ((error)) signal wrong-type-argument class-p ((kill-buffer " *tmp eieio read*")) get-buffer-create " *tmp eieio read*" insert-file-contents t buffer-string read child-of-class-p eieio-persistent error "Corrupt object on disk: Unknown saved object" "Corrupt object on disk: Invalid saved class" eieio-persistent-convert-list-to-object eieio-oset file] 6 (#$ . 6570)]) #@405 Convert the INPUTLIST, representing object creation to an object. While it is possible to just `eval' the INPUTLIST, this code instead validates the existing list, and explicitly creates objects instead of calling eval. This avoids the possibility of accidentally running malicious code. Note: This function recurses when a slot of :type of some object is identified, and needing more object creation. (defalias 'eieio-persistent-convert-list-to-object #[(inputlist) "@A@AA\306\211\211K\242\307=\203 \310 KA@!\210)\n\203H \n@\nA@\f \311\f \f#\f B\f B*\nAA\211\204# \312\313\f \237$,\207" [inputlist createslots slots objname objclass cname nil autoload load-library eieio-persistent-validate/fix-slot-value apply make-instance value name] 6 (#$ . 7727)]) #@245 Validate that in CLASS, the SLOT with PROPOSED-VALUE is good, then fix. A limited number of functions, such as quote, list, and valid object constructor functions are considered valid. Second, any text properties will be stripped from strings. (defalias 'eieio-persistent-validate/fix-slot-value #[(class slot proposed-value) ":\203\326 \306 \307\n#\307\211\211\310Z \311NH H\312\f!@\313=\203- A@\202\324 @\314=\203? G\315U\203? \307\202\324 \203X \307\316\317\217\203X \320@\"\203X \321!\202\324 @\314=\203\323 A@:\203\323 \307\322\323\217\203\323 :\203y \307\324\325\217\204~ \326\327\n\"\210A\307\211\203\245 @\320@@\"\204\234 \326\330!\210A\211\204\211 *\307A\307\211\203\313 @\321!BA\211\204\264 *\237)\202\324 +\207;\203\337 \331!\207\207" [proposed-value class slot classtype type slot-idx eieio-slot-name-index nil 3 eieio-class-definition eieio-persistent-slot-type-is-class-p quote list 1 (byte-code "\301N\302H\303=\207" [classtype eieio-class-definition 0 defclass] 2) ((error)) child-of-class-p eieio-persistent-convert-list-to-object (byte-code "A@@\301N\302H\303=\207" [proposed-value eieio-class-definition 0 defclass] 2) ((error)) (byte-code "@\301N\302H\303=\207" [classtype eieio-class-definition 0 defclass] 2) ((error)) error "In save file, list of object constructors found, but no :type specified for slot %S" "Corrupt object on disk" substring-no-properties class-public-type PV --dolist-tail-- objlist subobj] 5 (#$ . 8512)]) #@88 Return the class refered to in TYPE. If no class is referenced there, then return nil. (defalias 'eieio-persistent-slot-type-is-class-p #[(type) "\304\305\306\217\203 \2079\203( \307\310\311!\"\203( \304\312\313\217\203( \314\311!\315\211\224O!\2079\203I \307\316\311!\"\203I \304\317\320\217\203I \314\311!\315\211\224O!B\207:\203r @\321=\203r \304A\304\211\203n @\322\n!A\211\204` * )\207\304\207" [type ans subtype --dolist-tail-- nil (byte-code "\301N\302H\303=\207" [type eieio-class-definition 0 defclass] 2) ((error)) string-match "-child$" symbol-name (byte-code "\301\302!\303\211\224O!\304N\303H\305=\207" [type intern-soft symbol-name 0 eieio-class-definition defclass] 4) ((error)) intern-soft 0 "-list$" (byte-code "\301\302!\303\211\224O!\304N\303H\305=\207" [type intern-soft symbol-name 0 eieio-class-definition defclass] 4) ((error)) or eieio-persistent-slot-type-is-class-p] 5 (#$ . 10035)]) (byte-code "\300\301\302\301\303\"\"\210\304\301\305\306\307$\210\300\310\302\310\311\"\"\210\304\310\305\306\312$\210\300\313\302\313\314\"\"\210\304\313\305\306\315$\210\316\317\305\211\320$\210\300\321\302\321\322\"\"\210\304\321\305\317\323$\210\324\325!\207" [eieio--defalias object-write eieio--defgeneric-init-form #1="Write persistent object THIS out to the current stream.\nOptional argument COMMENT is a header line comment." eieio--defmethod nil eieio-persistent #[(this &optional comment) "\302 \206\n \303\304\"\"\207" [this comment call-next-method eieio-oref file-header-line] 5 #1#] eieio-persistent-path-relative #2="For object THIS, make absolute file name FILE relative." #[(this file) "\302\303!\304\305 \300\"!\"\207" [file this file-relative-name expand-file-name file-name-directory eieio-oref] 6 #2#] eieio-persistent-save #3="Save persistent object THIS to disk.\nOptional argument FILE overrides the file name specified in the object\ninstance." #[(this &optional file) "\212\306\307!q\310\311\305\"!\311\305\"\312\216\212\313 \210p\314\305 \203( \315 \"\202+ \316 !#\210\317\311\320\"\"\210)\311\321\"?\322ed\"@\323=\204O \324ed \325\326%.\207" [this cfn default-directory b standard-output file get-buffer-create " *tmp object write*" file-name-directory eieio-oref ((byte-code "\304\305 #\210\306\307!\207" [this cfn buffer-file-name b eieio-oset file nil kill-buffer] 4)) erase-buffer eieio-oset eieio-persistent-path-relative file-name-nondirectory object-write file-header-line do-backups find-coding-systems-region undecided write-region nil 1 cs backup-inhibited buffer-file-coding-system] 6 #3#] eieio-defclass eieio-named ("Object with a name.\nName storage already occurs in an object. This object provides get/set\naccess to it." :abstract t) slot-missing #4="Called when a non-existent slot is accessed.\nFor variable `eieio-named', provide an imaginary `object-name' slot.\nArgument OBJ is the named object.\nArgument SLOT-NAME is the slot that was attempted to be accessed.\nOPERATION is the type of access, such as `oref' or `oset'.\nNEW-VALUE is the value that was being set into SLOT if OPERATION were\na set type." #[(obj slot-name operation &optional new-value) "\304=\204\f \305=\203) \306=\203% \n;\204 \307\310\311\nF\"\210\312\n\"\207\313!\207\314 \207" [slot-name operation new-value obj object-name :object-name oset signal invalid-slot-type string object-set-name-string object-name-string call-next-method] 6 #4#] provide eieio-base] 5)