403Webshell
Server IP : 217.160.0.212  /  Your IP : 216.73.217.46
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1073854427 ( 1073854427)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/share/emacs/28.2/lisp/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/emacs/28.2/lisp//button.elc
;ELC
;;; Compiled
;;; in Emacs version 28.2
;;; with all optimizations.



(custom-declare-face 'button '((t :inherit link)) "Default face used for buttons." :group 'basic-faces)
#@25 Keymap used by buttons.
(defvar button-map (byte-code "\300 \301\302\303#\210\301\304\303#\210\301\305\306#\210\301\307\303#\210\301\310\303#\210\207" [make-sparse-keymap define-key [(control 109)] push-button [mouse-2] [follow-link] mouse-face [mode-line mouse-2] [header-line mouse-2]] 5) (#$ . 188))
#@114 Keymap useful for buffers containing buttons.
Mode-specific keymaps may want to use this as their parent keymap.
(defvar button-buffer-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\305#\210\207" [make-sparse-keymap define-key [9] forward-button "	" backward-button [backtab]] 5) (#$ . 503))
#@91 Non-nil if Button mode is enabled.
Use the command `button-mode' to change this variable.
(defvar button-mode nil (#$ . 822))
(make-variable-buffer-local 'button-mode)
#@605 A minor mode for navigating to buttons with the TAB key.

This is a minor mode.  If called interactively, toggle the `Button
mode' mode.  If the prefix argument is positive, enable the mode, and
if it is zero or negative, disable the mode.

If called from Lisp, toggle the mode if ARG is `toggle'.  Enable the
mode if ARG is nil, omitted, or is a positive number.  Disable the
mode if ARG is a negative number.

To check whether the minor mode is enabled in the current buffer,
evaluate `button-mode'.

The mode's hook is called both when the mode is enabled and when it is
disabled.

(fn &optional ARG)
(defalias 'button-mode #[256 "\302 \303=\203
?\202\247\203\304W\203\305\202\306\307\301!\2031\310\300	\"\2031\300	B\311\312\203;\313\202<\314\"\210\315\316!\203^\302 \203P\211\302 \232\203^\317\320\203Z\321\202[\322\323#\210\210\324 \210\207" [button-mode local-minor-modes current-message toggle 1 nil t boundp delq run-hooks button-mode-hook button-mode-on-hook button-mode-off-hook called-interactively-p any message "Button mode %sabled%s" "en" "dis" " in current buffer" force-mode-line-update] 6 (#$ . 997) (byte-code "\203\n\301!\202\302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)])
(defvar button-mode-hook nil)
(byte-code "\302\303N\204\f\304\302\303\305#\210\304\302\306\307#\210\304\302\310\311C#\210\312\313\311\311\211%\210\304\314\315\316#\210\304\314\317\320#\210\304\314\321	#\210\304\314\322\316#\210\304\314\323\324#\210\304\314\325\326\327!#\210\304\314\330\331#\210\304\314\332\331#\210\304\316\333\314#\207" [button-buffer-map button-map button-mode-hook variable-documentation put "Hook run after entering or leaving `button-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode button-mode default-button face button mouse-face highlight keymap type action ignore help-echo purecopy "mouse-2, RET: Push this button" evaporate t rear-nonsticky button-category-symbol] 6)
#@152 Return the symbol used by `button-type' TYPE to store properties.
Buttons inherit them by setting their `category' property to that symbol.

(fn TYPE)
(defalias 'button-category-symbol #[257 "\211\300N\206\n\301\302\"\207" [button-category-symbol error "Unknown button type `%s'"] 4 (#$ . 3084)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put button-category-symbol speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@606 Define a `button type' called NAME (a symbol).
The remaining PROPERTIES arguments form a plist of PROPERTY VALUE
pairs, specifying properties to use as defaults for buttons with
this type (a button's type may be set by giving it a `type'
property when creating the button, using the :type keyword
argument).

In addition, the keyword argument :supertype may be used to specify a
`button-type' from which NAME inherits its default property values
(however, the inheritance happens only when NAME is defined; subsequent
changes to a supertype are not reflected in its subtypes).

(fn NAME &rest PROPERTIES)
(defalias 'define-button-type #[385 "\300\301!\302P!\303\304\"\206\303\305\"\206\306\211\307N\206 \310\311\"\262\312\307#\210\313!\211\203B\312\211A\262\242\211A\262\242#\210\202+\210\312\314#\210\203m\211A\262\242\211\305=\203]\304\262\312\211A\262\242#\266\202J\304N\204y\312\304\306#\210\207" [make-symbol symbol-name "-button" plist-get supertype :supertype button button-category-symbol error "Unknown button type `%s'" put symbol-plist type] 10 (#$ . 3538)])
#@72 Set the `button-type' TYPE's PROP property to VAL.

(fn TYPE PROP VAL)
(defalias 'button-type-put #[771 "\300\211\301N\206\f\302\303\"\262#\207" [put button-category-symbol error "Unknown button type `%s'"] 8 (#$ . 4654)])
#@68 Get the property of `button-type' TYPE named PROP.

(fn TYPE PROP)
(defalias 'button-type-get #[514 "\211\300N\206\301\302\"\262N\207" [button-category-symbol error "Unknown button type `%s'"] 6 (#$ . 4889)])
#@86 Return non-nil if `button-type' TYPE is a subtype of SUPERTYPE.

(fn TYPE SUPERTYPE)
(defalias 'button-type-subtype-p #[514 "=\206\205\300\301\302\"\"\207" [button-type-subtype-p button-type-get supertype] 6 (#$ . 5110)])
#@122 Return the position at which BUTTON starts.

This function only works when BUTTON is in the current buffer.

(fn BUTTON)
(defalias 'button-start #[257 "\300!\203\n\301!\207\302T\303\"\206e\207" [overlayp overlay-start previous-single-property-change button] 4 (#$ . 5348)])
#@120 Return the position at which BUTTON ends.

This function only works when BUTTON is in the current buffer.

(fn BUTTON)
(defalias 'button-end #[257 "\300!\203\n\301!\207\302\303\"\206d\207" [overlayp overlay-end next-single-property-change button] 4 (#$ . 5635)])
#@129 Get the property of button BUTTON named PROP.

This function only works when BUTTON is in the current buffer.

(fn BUTTON PROP)
(defalias 'button-get #[514 "\300!\203\301\"\207\302!\203\303A\304!#\207\305!\203(\303\306!#\207\303\"\207" [overlayp overlay-get button--area-button-p get-text-property button--area-button-string markerp marker-buffer] 7 (#$ . 5911)])
#@122 Set BUTTON's PROP property to VAL.

This function only works when BUTTON is in the current buffer.

(fn BUTTON PROP VAL)
(defalias 'button-put #[771 "\300\267\202\301\262\211\211\302N\206\303\304\"\262\262\202\303\305!\210\306!\203+\307#\207\310!\203@\311!\262\312\313G%\207\312\314T\315\"\206Je\316\315\"\206Rd$\207" [#s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (type 6 :type 6 category 27)) category button-category-symbol error "Unknown button type `%s'" "Button `category' property may not be set directly" overlayp overlay-put button--area-button-p button--area-button-string put-text-property 0 previous-single-property-change button next-single-property-change] 9 (#$ . 6300)])
#@671 Call BUTTON's `action' property.
If USE-MOUSE-ACTION is non-nil, invoke the button's `mouse-action'
property instead of `action'; if the button has no `mouse-action',
the value of `action' is used instead.

The action can either be a marker or a function.  If it's a
marker then goto it.  Otherwise if it is a function then it is
called with BUTTON as only argument.  BUTTON is either an
overlay, a buffer position, or (for buttons in the mode-line or
header-line) a string.

If BUTTON has a `button-data' value, call the function with this
value instead of BUTTON.

This function only works when BUTTON is in the current buffer.

(fn BUTTON &optional USE-MOUSE-ACTION)
(defalias 'button-activate #[513 "\211\203\300\301\"\206\300\302\"\300\303\"\304!\2031\305 r\306\307\"\216\310\311\312!!!\210b\210\313\314!*\207\2067!\207" [button-get mouse-action action button-data markerp internal--before-save-selected-window make-closure #[0 "\301\300!\207" [V0 internal--after-save-selected-window] 2] select-window display-buffer marker-buffer recenter 0] 9 (#$ . 7064)])
#@106 Return BUTTON's text label.

This function only works when BUTTON is in the current buffer.

(fn BUTTON)
(defalias 'button-label #[257 "\300!\203\f\301\302!!\207\303\304!\305!\"\207" [button--area-button-p substring-no-properties button--area-button-string buffer-substring-no-properties button-start button-end] 5 (#$ . 8152)])
#@45 Return BUTTON's `button-type'.

(fn BUTTON)
(defalias 'button-type #[257 "\300\301\"\207" [button-get type] 4 (#$ . 8492)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put button-type speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@92 Return non-nil if BUTTON has `button-type' TYPE, or one of its subtypes.

(fn BUTTON TYPE)
(defalias 'button-has-type-p #[514 "\300\301\302\"\"\207" [button-type-subtype-p button-get type] 6 (#$ . 8760)])
#@126 Return non-nil if BUTTON is an area button.
Such area buttons are used for buttons in the mode-line and header-line.

(fn B)
(defalias 'button--area-button-p #[257 "\211\242;\207" [] 2 (#$ . 8974)])
(defalias 'button--area-button-string 'car "Return area button BUTTON's button-string.")
#@394 Make a button from BEG to END in the current buffer.
The remaining PROPERTIES arguments form a plist of PROPERTY VALUE
pairs, specifying properties to add to the button.
In addition, the keyword argument :type may be used to specify a
`button-type' from which to inherit other properties; see
`define-button-type'.

Also see `make-text-button', `insert-button'.

(fn BEG END &rest PROPERTIES)
(defalias 'make-button #[642 "\300\301\302\301%\203\303\211A\262\242\211A\262\242#\210\202\304\305#\210\306\307\"\2041\304\307\310#\210\207" [make-overlay nil t button-put overlay-put button overlay-get category default-button] 9 (#$ . 9269)])
#@366 Insert a button with the label LABEL.
The remaining arguments form a plist of PROPERTY VALUE pairs,
specifying properties to add to the button.
In addition, the keyword argument :type may be used to specify a
`button-type' from which to inherit other properties; see
`define-button-type'.

Also see `insert-text-button', `make-button'.

(fn LABEL &rest PROPERTIES)
(defalias 'insert-button #[385 "\300\301`c\210`$\207" [apply make-button] 7 (#$ . 9930)])
#@1108 Make a button from BEG to END in the current buffer.
The remaining PROPERTIES arguments form a plist of PROPERTY VALUE
pairs, specifying properties to add to the button.
In addition, the keyword argument :type may be used to specify a
`button-type' from which to inherit other properties; see
`define-button-type'.

This function is like `make-button', except that the button is actually
part of the text instead of being a property of the buffer.  That is,
this function uses text properties, the other uses overlays.
Creating large numbers of buttons can also be somewhat faster
using `make-text-button'.  Note, however, that if there is an existing
face property at the site of the button, the button face may not be visible.
You may want to use `make-button' in that case.

If the property `button-data' is present, it will later be used
as the argument for the `action' callback function instead of the
default argument, which is the button itself.

BEG can also be a string, in which case a copy of it is made into
a button and returned.

Also see `insert-text-button'.

(fn BEG END &rest PROPERTIES)
(defalias 'make-text-button #[642 "\300\301\302\"\206\f\301\303\"\304\305\"\203\306\307!\210\211\204%\305\310BB\262\202<\211\305\240\210\211AA@\211\311N\2068\306\312\"\262\240\210;\203M\313!\262\314\262G\262\315\316\317CBB$\210\206_\207" [nil plist-member type :type plist-get category error "Button `category' property may not be set directly" default-button button-category-symbol "Unknown button type `%s'" copy-sequence 0 add-text-properties button t] 11 (#$ . 10395)])
#@585 Insert a button with the label LABEL.
The remaining PROPERTIES arguments form a plist of PROPERTY VALUE
pairs, specifying properties to add to the button.
In addition, the keyword argument :type may be used to specify a
`button-type' from which to inherit other properties; see
`define-button-type'.

This function is like `insert-button', except that the button is
actually part of the text instead of being a property of the buffer.
Creating large numbers of buttons can also be somewhat faster using
`insert-text-button'.

Also see `make-text-button'.

(fn LABEL &rest PROPERTIES)
(defalias 'insert-text-button #[385 "\300\301`c\210`$\207" [apply make-text-button] 7 (#$ . 12012)])
#@170 Return the button at position POS in the current buffer, or nil.
If the button at POS is a text property button, the return value
is a marker pointing to POS.

(fn POS)
(defalias 'button-at #[257 "\300\301\"\211\205\300\302\"\205\303!\203\207\304\305\"\207" [get-char-property button category overlayp copy-marker t] 5 (#$ . 12706)])
#@208 Return the next button after position POS in the current buffer.
If COUNT-CURRENT is non-nil, count any button at POS in the search,
instead of starting at the next button.

(fn POS &optional COUNT-CURRENT)
(defalias 'next-button #[513 "\211\204\n\300\301\"\262dW\205\302!\206\303!\207" [next-single-char-property-change button button-at next-button] 5 (#$ . 13057)])
#@213 Return the previous button before position POS in the current buffer.
If COUNT-CURRENT is non-nil, count any button at POS in the search,
instead of starting at the next button.

(fn POS &optional COUNT-CURRENT)
(defalias 'previous-button #[513 "\300!\211\203)\203\f\207\301\302!\303\"\262\300!\211\203%\302!U?\205(\207\304!\207\301\303\"\262\300!\206?eV\205?\300S!\207" [button-at previous-single-char-property-change button-start button previous-button] 7 (#$ . 13442)])
#@812 Perform the action specified by a button at location POS.
POS may be either a buffer position or a mouse-event.  If
USE-MOUSE-ACTION is non-nil, invoke the button's `mouse-action'
property instead of its `action' property; if the button has no
`mouse-action', the value of `action' is used instead.

The action in both cases may be either a function to call or a
marker to display and is invoked using `button-activate' (which
see).

POS defaults to point, except when `push-button' is invoked
interactively as the result of a mouse-event, in which case, the
mouse event is used.

If there's no button at POS, do nothing and return nil, otherwise
return t.

To get a description of the function that will be invoked when
pushing a button, use the `button-describe' command.

(fn &optional POS USE-MOUSE-ACTION)
(defalias 'push-button #[512 "\250\204=\300!\203=\301!r\302\211@\262!q\210\303!\211\205&\304A\305@#\211\2033\306\307\"\266\202\202;\310\311!\307\"\266\202)\207\312\206C`!\211\205N\306\"\210\307\207" [eventp event-start window-buffer posn-string get-text-property button button-activate t push-button posn-point button-at] 8 (#$ . 13941) (byte-code "\250\203	`\202\nC\207" [last-command-event] 1)])
#@201 Evaluate BUTTON's `help-echo' property and return its value.
If the result is non-nil, pass it through `substitute-command-keys'
before returning it, as is done for `show-help-function'.

(fn BUTTON)
(defalias 'button--help-echo #[257 "\301\302\"\303!\203\211\304 \305!\203\202p\306!#\202#\307\"\211\205*\310!\207" [lexical-binding button-get help-echo functionp selected-window overlayp button-start eval substitute-command-keys] 7 (#$ . 15181)])
#@512 Move to the Nth next button, or Nth previous button if N is negative.
If N is 0, move to the start of any button at point.
If WRAP is non-nil, moving past either end of the buffer continues from the
other end.
If DISPLAY-MESSAGE is non-nil, the button's `help-echo' property
is displayed.  Any button with a non-nil `skip' property is
skipped over.

If NO-ERROR, return nil if no further buttons could be found
instead of erroring out.

Returns the button found.

(fn N &optional WRAP DISPLAY-MESSAGE NO-ERROR)
(defalias 'forward-button #[1025 "\300\301U\203\302`!\211\262\203\211\303!b\210\202\211\301V\203\"\304\202#\305\301V\203-e\202.d\300\211\306	!\262	\307\262\211\204\207\301V\203\207\203\207`!\262\204\\\203\\\307\"\262\2039\303!b\210\204o`\262\202x`U\203x\307\262\310\311\"\2049S\262	\2029\266\211\204\236?\205\260\312\203\233\313\202\234\314!\207\205\245\315!\211\203\256\316\317\"\210\210\211\207" [nil 0 button-at button-start next-button previous-button abs t button-get skip user-error "No buttons!" "No more buttons" button--help-echo message "%s"] 12 (#$ . 15652) "p\nd\nd"])
#@512 Move to the Nth previous button, or Nth next button if N is negative.
If N is 0, move to the start of any button at point.
If WRAP is non-nil, moving past either end of the buffer continues from the
other end.
If DISPLAY-MESSAGE is non-nil, the button's `help-echo' property
is displayed.  Any button with a non-nil `skip' property is
skipped over.

If NO-ERROR, return nil if no further buttons could be found
instead of erroring out.

Returns the button found.

(fn N &optional WRAP DISPLAY-MESSAGE NO-ERROR)
(defalias 'backward-button #[1025 "\300[$\207" [forward-button] 9 (#$ . 16809) "p\nd\nd"])
#@249 Describe a button's PROPERTIES (an alist) in a *Help* buffer.
This is a helper function for `button-describe', in order to be possible to
use `help-setup-xref'.

Each element of PROPERTIES should be of the form (PROPERTY . VALUE).

(fn PROPERTIES)
(defalias 'button--describe #[257 "\305\306D\307\310!\"\210\311\211\223\210\312	B\313\nB\314 \315 \316!\211\311\211r\315 q\210\317\320\321\322\"\"c\210\323\211\205w\211@\324!\321	\"\325!\203n\326\327\330!\331\332#\333\334\261\210\2119\203g\317\335\"c\210\336!\266\202p\337c\210\340!\210\266A\266\202\2022\262)\262rq\210\341\311\"\262)\325\342!\203\224\342\"\202\225\211)\266\204*\207" [help-window-point-marker temp-buffer-window-setup-hook temp-buffer-window-show-hook help-window-old-frame standard-output help-setup-xref button--describe called-interactively-p interactive nil help-mode-setup help-mode-finish selected-frame help-buffer temp-buffer-window-setup format-message "This button's type is `%s'." alist-get type (action mouse-action) symbol-name functionp "\n\n" propertize capitalize face bold "\nThe " " of this button is" " `%s',\nwhich is " describe-function-1 "\n" princ temp-buffer-window-show help-window-setup] 14 (#$ . 17422)])
#@283 Display a buffer with information about the button at point.

When called from Lisp, pass BUTTON-OR-POS as the button to describe, or a
buffer position where a button is present.  If BUTTON-OR-POS is nil, the
button at point is the button to describe.

(fn &optional BUTTON-OR-POS)
(defalias 'button-describe #[256 "\300!\203\f\301!\202\211\204\301`!\202\302!\205\211\211\205(\303\304\305\"\306\"\211\2051\307!\210\310\207" [integer-or-marker-p button-at overlayp mapcar make-closure #[257 "\211\301\300\"B\207" [V0 button-get] 5 "\n\n(fn PROP)"] (type action mouse-action) button--describe t] 6 (#$ . 18663) "d"])
#@258 Make STRING into a button and return it.
When clicked, CALLBACK will be called with the DATA as the
function argument.  If DATA isn't present (or is nil), the button
itself will be used instead as the function argument.

(fn STRING CALLBACK &optional DATA)
(defalias 'button-buttonize #[770 "\301\302\303\211\304\305\304\306\304\307\310\311&\207" [button-map propertize face button t follow-link category button-data keymap action] 19 (#$ . 19302)])
(provide 'button)

Youez - 2016 - github.com/yon3zu
LinuXploit