aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/button.el (follow)
Commit message (Collapse)AuthorAgeFilesLines
* ; Add 2026 to copyright years.Sean Whitton2026-01-011-1/+1
|
* Prevent button.el from clearing help-echo stringsKévin Le Gouguec2025-03-081-11/+21
| | | | | | | | | | | | | | | | | | | In order to fix one of the issues discussed in bug#61413, i.e. 'buttonize' clobbering the help-echo property set by 'icon-string'. This is a reasonable interpretation of the button.el docstrings - "if HELP-ECHO, use that as the `help-echo' property"; conversely, if not HELP-ECHO, then do not do anything, preserving existing values for that property. * lisp/button.el (button--properties): Only add a help-echo property if HELP-ECHO is non-nil. Add an additional property for bookkeeping. (unbuttonize-region): Check for that bookkeeping property before clearing help-echo. * test/lisp/button-tests.el (button--preserve-help-echo): Validate these changes.
* Merge branch 'scratch/no-purespace' into 'master'Stefan Kangas2025-02-011-1/+1
|\
| * Delete remaining calls to purecopyStefan Kangas2024-12-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/button.el (default-button): * lisp/calendar/holidays.el (holiday-solar-holidays) (holiday-bahai-holidays, holiday-islamic-holidays) (holiday-christian-holidays, holiday-hebrew-holidays) (holiday-oriental-holidays, holiday-general-holidays): * lisp/comint.el (comint-file-name-prefix): * lisp/composite.el (unicode-category-table): * lisp/cus-face.el (custom-declare-face): * lisp/custom.el (custom-add-load, custom-add-package-version) (custom-add-version, custom-add-link, custom-declare-group) (custom-declare-variable): * lisp/dired.el (dired-listing-switches): * lisp/epa-hook.el (epa-file-name-regexp): * lisp/faces.el (x-font-regexp, x-font-regexp-head) (x-font-regexp-slant, x-font-regexp-weight, ) (set-face-attribute, set-face-documentation, face-x-resources) (face-font-registry-alternatives, face-font-family-alternatives) (term-file-prefix): * lisp/find-file.el (ff-special-constructs): * lisp/format.el (format-alist): * lisp/help.el (help-for-help): * lisp/image-file.el (image-file-name-extensions): * lisp/info.el: * lisp/isearch.el (isearch-help-for-help-internal) (search-whitespace-regexp): * lisp/jka-cmpr-hook.el (jka-compr-load-suffixes) (jka-compr-mode-alist-additions) (jka-compr-compression-info-list, jka-compr-build-file-regexp): * lisp/language/ethiopic.el (font-ccl-encoder-alist): * lisp/language/korea-util.el (default-korean-keyboard): * lisp/language/tibetan.el (tibetan-precomposition-rule-regexp) (tibetan-precomposed-regexp): * lisp/locate.el (locate-ls-subdir-switches): * lisp/lpr.el (lpr-command): * lisp/mail/rmail.el (rmail-secondary-file-regexp) (rmail-secondary-file-directory, rmail-highlighted-headers) (rmail-ignored-headers, rmail-spool-directory, rmail-file-name): * lisp/mail/sendmail.el (mail-default-directory) (mail-signature-file, mail-citation-prefix-regexp) (mail-personal-alias-file, mail-header-separator): * lisp/menu-bar.el (yank-menu): * lisp/net/eudc.el (eudc-tools-menu): * lisp/newcomment.el (comment-padding, comment-end): * lisp/obsolete/autoload.el (autoload-generate-file-autoloads): * lisp/progmodes/hideshow.el (hs-special-modes-alist): * lisp/ps-print.el (ps-page-dimensions-database): * lisp/rfn-eshadow.el (file-name-shadow-tty-properties): * lisp/shell.el (shell-dumb-shell-regexp): * lisp/simple.el (overwrite-mode-binary, overwrite-mode-textual) (mark-inactive, shell-command-switch) (next-error-overlay-arrow-position): * lisp/subr.el (package--builtin-versions, eval-after-load): * lisp/tab-bar.el ([tab-bar]): * lisp/term/pgtk-win.el (x-gtk-stock-map): * lisp/term/x-win.el (x-gtk-stock-map): * lisp/tool-bar.el ([tool-bar]): * lisp/widget.el (define-widget): Remove calls to purecopy.
* | Update copyright year to 2025Paul Eggert2025-01-011-1/+1
|/ | | | Run "TZ=UTC0 admin/update-copyright".
* Remove buttons when disabling 'button-mode'Robert Pluim2024-10-111-2/+9
| | | | | | * lisp/button.el (button-mode): Remove all buttons when disabling. * doc/lispref/display.texi (Button Buffer Commands): Document the change. (Bug#73175)
* Add unbuttonize-regionRobert Pluim2024-10-111-1/+13
| | | | | | * doc/lispref/display.texi (Making Buttons): Document it. * lisp/button.el (unbuttonize-region): New function, removes all buttons in the specified region.
* Merge from savannah/emacs-29Po Lu2024-01-021-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dc4e6b13296 ; Update copyright years in more files 64b37776318 ; Run set-copyright from admin.el 8e1c56ae467 ; Add 2024 to copyright years # Conflicts: # doc/misc/modus-themes.org # doc/misc/texinfo.tex # etc/NEWS # etc/refcards/ru-refcard.tex # etc/themes/modus-operandi-theme.el # etc/themes/modus-themes.el # etc/themes/modus-vivendi-theme.el # lib/alloca.in.h # lib/binary-io.h # lib/c-ctype.h # lib/c-strcasecmp.c # lib/c-strncasecmp.c # lib/careadlinkat.c # lib/cloexec.c # lib/close-stream.c # lib/diffseq.h # lib/dup2.c # lib/filemode.h # lib/fpending.c # lib/fpending.h # lib/fsusage.c # lib/getgroups.c # lib/getloadavg.c # lib/gettext.h # lib/gettime.c # lib/gettimeofday.c # lib/group-member.c # lib/malloc.c # lib/md5-stream.c # lib/md5.c # lib/md5.h # lib/memmem.c # lib/memrchr.c # lib/nanosleep.c # lib/save-cwd.h # lib/sha1.c # lib/sig2str.c # lib/stdlib.in.h # lib/strtoimax.c # lib/strtol.c # lib/strtoll.c # lib/time_r.c # lib/xalloc-oversized.h # lisp/auth-source-pass.el # lisp/emacs-lisp/lisp-mnt.el # lisp/emacs-lisp/timer.el # lisp/info-look.el # lisp/jit-lock.el # lisp/loadhist.el # lisp/mail/rmail.el # lisp/net/ntlm.el # lisp/net/webjump.el # lisp/progmodes/asm-mode.el # lisp/progmodes/project.el # lisp/progmodes/sh-script.el # lisp/textmodes/flyspell.el # lisp/textmodes/reftex-toc.el # lisp/textmodes/reftex.el # lisp/textmodes/tex-mode.el # lisp/url/url-gw.el # m4/alloca.m4 # m4/clock_time.m4 # m4/d-type.m4 # m4/dirent_h.m4 # m4/dup2.m4 # m4/euidaccess.m4 # m4/fchmodat.m4 # m4/filemode.m4 # m4/fsusage.m4 # m4/getgroups.m4 # m4/getloadavg.m4 # m4/getrandom.m4 # m4/gettime.m4 # m4/gettimeofday.m4 # m4/gnulib-common.m4 # m4/group-member.m4 # m4/inttypes.m4 # m4/malloc.m4 # m4/manywarnings.m4 # m4/mempcpy.m4 # m4/memrchr.m4 # m4/mkostemp.m4 # m4/mktime.m4 # m4/nproc.m4 # m4/nstrftime.m4 # m4/pathmax.m4 # m4/pipe2.m4 # m4/pselect.m4 # m4/pthread_sigmask.m4 # m4/readlink.m4 # m4/realloc.m4 # m4/sig2str.m4 # m4/ssize_t.m4 # m4/stat-time.m4 # m4/stddef_h.m4 # m4/stdint.m4 # m4/stdio_h.m4 # m4/stdlib_h.m4 # m4/stpcpy.m4 # m4/strnlen.m4 # m4/strtoimax.m4 # m4/strtoll.m4 # m4/time_h.m4 # m4/timegm.m4 # m4/timer_time.m4 # m4/timespec.m4 # m4/unistd_h.m4 # m4/warnings.m4 # nt/configure.bat # nt/preprep.c # test/lisp/register-tests.el
| * ; Add 2024 to copyright yearsPo Lu2024-01-021-1/+1
| |
* | ; Fix typosStefan Kangas2023-12-101-1/+1
| |
* | Enable canceling tap gesturesPo Lu2023-11-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/commands.texi (Touchscreen Events): Relate new THRESHOLD argument to touch-screen-track-tap. * lisp/button.el (push-button): * lisp/wid-edit.el (widget-button--check-and-call-button): Provide a threshold to enable canceling button presses. * lisp/touch-screen.el (touch-screen-track-tap): Enable canceling tap gestures and resuming touch sequence translation if the touch point exceeds a set threshold.
* | ; Fix push-button when triggered by a single keypressSteven Allen2023-08-311-1/+1
| | | | | | | | | | * lisp/button.el (push-button): Don't assume the event is a list, it may be a single key. (Bug#65539)
* | Merge remote-tracking branch 'origin/master' into feature/androidPo Lu2023-07-141-1/+1
|\ \
| * | cl-print: Put buttons on ellipsesStefan Monnier2023-07-131-1/+1
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, in *Backtrace* we have a nice behavior for cl-printed objects where they're truncated by default to a manageable size but we can click on the "..." to expand them when needed. The patch below moves that functionality to `cl-print.el` such that it can be enjoyed "everywhere" (bug#64536). It also has the benefit of simplifying the code since `backtrace.el` had to look for ellipses in order to add buttons to them, whereas now we can put the ellipses right when we write them. * lisp/emacs-lisp/cl-print.el (cl-print-object-contents): Improve docstring. (cl-print-expand-ellipsis-function): New var. (cl-print--default-expand-ellipsis): New function. (cl-print-expand-ellipsis): New command. (cl-print-insert-ellipsis): Allow nil instead of 0 to mean "this elides the whole object". (cl-print-ellipsis): Move button type from `backtrace.el`. (cl-print-propertize-ellipsis): Put a button. (cl-print--expand-ellipsis): Rename from `cl-print-expand-ellipsis`. (cl-print-to-string-with-limit): Allow new value t for `limit`. * lisp/emacs-lisp/backtrace.el (backtrace--font-lock-keywords): Simplify. (backtrace--match-ellipsis-in-string): Delete function. (backtrace--change-button-skip): Adjust to new button type name. (backtrace--expand-ellipsis): New function, extracted from `backtrace-expand-ellipsis`. (backtrace-expand-ellipsis): Delete function. (backtrace-ellipsis): Move button type to `cl-print.el`. (backtrace--print-to-string): Don't look for cl-print ellipses any more. (backtrace-mode): Use `backtrace--expand-ellipsis`. * lisp/ielm.el (ielm--expand-ellipsis): New function. (inferior-emacs-lisp-mode): Use it to fill the data when expanded. * test/lisp/emacs-lisp/cl-print-tests.el (cl-print-tests-check-ellipsis-expansion) (cl-print-tests-check-ellipsis-expansion-rx): Adjust to new internal function name.
* | Update Android portPo Lu2023-01-191-8/+22
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * .gitignore: Add new files. * INSTALL.android: Explain how to build Emacs for ancient versions of Android. * admin/merge-gnulib (GNULIB_MODULES): Add getdelim. * build-aux/config.guess (timestamp, version): * build-aux/config.sub (timestamp, version): Autoupdate. * configure.ac (BUILD_DETAILS, ANDROID_MIN_SDK): (ANDROID_STUBIFY): Allow specifying CFLAGS via ANDROID_CFLAGS. Add new configure tests for Android API version when not explicitly specified. * doc/emacs/android.texi (Android): Add reference to ``Other Input Devices''. (Android File System): Remove restrictions on directory-files on the assets directory. * doc/emacs/emacs.texi (Top): Add Other Input Devices to menu. * doc/emacs/input.texi (Other Input Devices): New node. * doc/lispref/commands.texi (Touchscreen Events): Document changes to touchscreen input events. * doc/lispref/frames.texi (Pop-Up Menus): Likewise. * etc/NEWS: Announce changes. * java/Makefile.in: Use lib-src/asset-directory-tool to generate an `directory-tree' file placed in /assets. * java/debug.sh: Large adjustments to support Android 2.2 and later. * java/org/gnu/emacs/EmacsContextMenu.java (inflateMenuItems): * java/org/gnu/emacs/EmacsCopyArea.java (perform): * java/org/gnu/emacs/EmacsDialog.java (toAlertDialog): * java/org/gnu/emacs/EmacsDrawLine.java (perform): * java/org/gnu/emacs/EmacsDrawRectangle.java (perform): * java/org/gnu/emacs/EmacsDrawable.java (EmacsDrawable): * java/org/gnu/emacs/EmacsFillPolygon.java (perform): * java/org/gnu/emacs/EmacsFillRectangle.java (perform): * java/org/gnu/emacs/EmacsGC.java (EmacsGC): * java/org/gnu/emacs/EmacsPixmap.java (EmacsPixmap): (destroyHandle): * java/org/gnu/emacs/EmacsSdk7FontDriver.java (draw): Avoid redundant canvas saves and restores. * java/org/gnu/emacs/EmacsService.java (run): * java/org/gnu/emacs/EmacsView.java (EmacsView): (handleDirtyBitmap): * java/org/gnu/emacs/EmacsWindow.java (changeWindowBackground) (EmacsWindow): Make compatible with Android 2.2 and later. * lib-src/Makefile.in (DONT_INSTALL): Add asset-directory-tool on Android.:(asset-directory-tool{EXEEXT}): New target. * lib-src/asset-directory-tool.c (struct directory_tree, xmalloc) (main_1, main_2, main): New file. * lib, m4: Merge from gnulib. This will be reverted before merging to master. * lisp/button.el (button-map): (push-button): * lisp/frame.el (display-popup-menus-p): Improve touchscreen support. * lisp/subr.el (event-start): (event-end): Handle touchscreen events. * lisp/touch-screen.el (touch-screen-handle-timeout): (touch-screen-handle-point-update): (touch-screen-handle-point-up): (touch-screen-track-tap): (touch-screen-track-drag): (touch-screen-drag-mode-line-1): (touch-screen-drag-mode-line): New functions. ([mode-line touchscreen-begin]): ([bottom-divider touchscreen-begin]): Bind new events. * lisp/wid-edit.el (widget-event-point): (widget-keymap): (widget-event-start): (widget-button--check-and-call-button): (widget-button-click): Improve touchscreen support. * src/alloc.c (make_lisp_symbol): Avoid ICE on Android NDK GCC. (mark_pinned_symbols): Likewise. * src/android.c (struct android_emacs_window): New struct. (window_class): New variable. (android_run_select_thread): Add workaround for Android platform bug. (android_extract_long, android_scan_directory_tree): New functions. (android_file_access_p): Use those functions instead. (android_init_emacs_window): New function. (android_init_emacs_gc_class): Update signature of `markDirty'. (android_change_gc, android_set_clip_rectangles): Tell the GC whether or not clip rects were dirtied. (android_swap_buffers): Do not look up method every time. (struct android_dir): Adjust for new directory tree lookup. (android_opendir, android_readdir, android_closedir): Likewise. (android_four_corners_bilinear): Fix coding style. (android_ftruncate): New function. * src/android.h: Update prototypes. Replace ftruncate with android_ftruncate when necessary. * src/androidterm.c (handle_one_android_event): Pacify GCC. Fix touch screen tool bar bug. * src/emacs.c (using_utf8): Fix compilation error. * src/fileio.c (Ffile_system_info): Return Qnil when fsusage.o is not built. * src/filelock.c (BOOT_TIME_FILE): Fix definition for Android. * src/frame.c (Fx_parse_geometry): Fix uninitialized variable uses. * src/keyboard.c (lispy_function_keys): Fix `back'. * src/menu.c (x_popup_menu_1): Handle touch screen events. (Fx_popup_menu): Document changes. * src/sfnt.c (main): Improve tests. * src/sfntfont-android.c (sfntfont_android_put_glyphs): Fix minor problem. (init_sfntfont_android): Check for HAVE_DECL_ANDROID_GET_DEVICE_API_LEVEL. * src/sfntfont.c (struct sfnt_font_desc): New fields `adstyle' and `languages'. (sfnt_parse_style): Append tokens to adstyle. (sfnt_parse_languages): New function. (sfnt_enum_font_1): Parse supported languages and adstyle. (sfntfont_list_1): Handle new fields. (sfntfont_text_extents): Fix uninitialized variable use. (syms_of_sfntfont, mark_sfntfont): Adjust accordingly.
* ; Add 2023 to copyright years.Eli Zaretskii2023-01-011-1/+1
|
* Add support for user-customizable iconsLars Ingebrigtsen2022-07-281-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/emacs/custom.texi (Specific Customization): Mention it. * doc/emacs/display.texi (Icons): New node. * doc/lispref/display.texi (Icons): New node. * lisp/button.el (buttonize): (button--properties, buttonize-region): Allow not overriding faces. * lisp/cus-edit.el (custom-save-all): Save icons. (custom-icon): New widget. (custom-icon-value-create, custom-toggle-hide-icon) (custom--icons-widget-value, custom-icon-set): Helper functions for the widget. (customize-icon): Main command. (custom-icon-state-set, custom-icon-state): Helper functions. (custom-theme-set-icons): Function to be used by theme writers. (custom-set-icons): Function to be used in .emacs. (custom-save-icons): New function. * lisp/custom.el (custom-push-theme): Add icons. * lisp/emacs-lisp/icons.el: New file. * test/lisp/emacs-lisp/icons-tests.el: Add some tests.
* Fix button-buffer-map binding errorLars Ingebrigtsen2022-04-161-2/+2
| | | | | * lisp/button.el (button-buffer-map): Fix error in map rewriting in previous commit.
* Crosslink some buttonize function doc stringsLars Ingebrigtsen2022-04-161-2/+6
| | | | | * lisp/button.el (buttonize-region, buttonize): Crosslink doc strings for discoverability.
* Bind TAB and <backtab> on buttonsLars Ingebrigtsen2022-04-161-23/+18
| | | | * lisp/button.el (button-map): Inherit from 'button-buffer-map'.
* Add new function buttonize-regionLars Ingebrigtsen2022-04-161-10/+23
| | | | | | * lisp/button.el (buttonize-region): New function. (button--properties): Factored out. (buttonize): Use it.
* Merge from origin/emacs-28Eli Zaretskii2022-01-011-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 836be7a112 ; * etc/refcards/ru-refcard.tex: Update Copyright year. 86cbc6ee4a * lisp/net/tramp-sh.el: Adapt copyright year ebe8772f65 ; Minor fixes related to copyright years 23c1ee6989 ; * test/manual/etags/ETAGS.good_N: Adjust to copyright ye... 8d3fc7ec89 * src/xfaces.c (face_for_font): Make 'hash' be uintptr_t. 19dcb237b5 ; Add 2022 to copyright years. # Conflicts: # etc/NEWS # etc/refcards/ru-refcard.tex # lib/cdefs.h # lisp/erc/erc-dcc.el # lisp/erc/erc-imenu.el # lisp/erc/erc-replace.el # lisp/image-dired.el # lisp/progmodes/xref.el # m4/alloca.m4 # m4/byteswap.m4 # m4/errno_h.m4 # m4/getopt.m4 # m4/gnulib-common.m4 # m4/inttypes.m4 # m4/stddef_h.m4 # m4/stdint.m4 # m4/sys_socket_h.m4
| * ; Add 2022 to copyright years.Eli Zaretskii2022-01-011-1/+1
| |
* | Do not buttonize key bindings outside of *Help* buffersGregory Heytings2021-11-291-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * etc/NEWS: Mention the new variable. * lisp/apropos.el (apropos-describe-plist): Bind the new variable (bug#52053). * lisp/button.el (button-describe): Bind the new variable. * lisp/help-fns.el (describe-function, describe-variable) (describe-face, describe-symbol, describe-syntax) (describe-categories, describe-keymap, describe-mode) (describe-widget): Bind the new variable. * lisp/help-macro.el (make-help-screen): Bind the new variable. * lisp/help.el (help-buffer-under-preparation): New variable that is bound to t by commands that create a *Help* buffer. (substitute-command-keys): Use the new variable: help-link-key-to-documentation is supposed to have an effect only "in *Help* buffers". Fixes bug#52053. (view-lossage, describe-bindings, describe-key): Bind the new variable. * lisp/repeat.el (describe-repeat-maps): Bind the new variable. * lisp/international/mule-cmds.el (describe-input-method) (describe-language-environment): Bind the new variable. * lisp/international/mule-diag.el (describe-character-set) (describe-coding-system, describe-font, describe-fontset) ((list-fontsets): Bind the new variable.
* | Make the lambda/closure buttons in `C-h b' say what they doLars Ingebrigtsen2021-11-061-2/+5
| | | | | | | | | | | | | | * lisp/button.el (buttonize): Add a help-echo property. * lisp/help.el (help--describe-command): Say what the lambda/closure buttons do.
* | Add mouse-face to buttonizeLars Ingebrigtsen2021-11-061-0/+1
| | | | | | | | * lisp/button.el (buttonize): Add the highlight mouse-face.
* | Rename button-buttonize to buttonizeLars Ingebrigtsen2021-11-041-1/+3
| | | | | | | | | | | | | | | | * lisp/help.el (help--describe-command): * lisp/emacs-lisp/memory-report.el (memory-report--buffers): * lisp/button.el (button-buttonize): * doc/lispref/display.texi (Making Buttons): Rename button-buttonize to just buttonize and adjust callers.
* | Mark all def* functions that should indent as `defun'Lars Ingebrigtsen2021-10-131-0/+1
|/ | | | | | | | | | | | | | | | | | | | | | | | | * lisp/abbrev.el (define-abbrev): (define-abbrev-table): Mark all functions that have names that start with "def" that should indent according to the current heuristics (bug#43329). * lisp/autoinsert.el (define-auto-insert): * lisp/button.el (define-button-type): * lisp/subr.el (define-key-after): (define-mail-user-agent): (define-keymap): * lisp/widget.el (define-widget): * lisp/emacs-lisp/package.el (define-package): * lisp/international/mule-cmds.el (define-char-code-property): * lisp/international/mule.el (define-charset): (define-coding-system): (define-translation-table): (define-translation-hash-table):
* ; More minor stylistic fixes found by checkdocStefan Kangas2021-09-221-22/+23
|
* * lisp/button.el (button-map): Bind [follow-link] to 'mouse-face' (bug#49626)Juri Linkov2021-07-201-0/+1
|
* ; Fix some typos.Basil L. Contovounesios2021-03-111-2/+2
|
* Update copyright year to 2021Paul Eggert2021-01-011-1/+1
| | | | Run "TZ=UTC0 admin/update-copyright".
* button-buttonize doc string clarificationLars Ingebrigtsen2020-12-111-1/+3
| | | | | * lisp/button.el (button-buttonize): Clarify what happens when DATA isn't present.
* Add a new function `button-buttonize'Lars Ingebrigtsen2020-12-111-0/+12
| | | | | | * doc/lispref/display.texi (Manipulating Buttons): Document it. * lisp/button.el (button-buttonize): Implement it.
* Substitute command keys in button help-echo valuesBasil L. Contovounesios2020-10-161-6/+11
| | | | | | | | | * lisp/button.el (button--help-echo): Pass resulting string through substitute-command-keys for consistency with show-help-function. * test/lisp/button-tests.el (button-tests--map): New test keymap. (button--help-echo-string, button--help-echo-form) (button--help-echo-function): Use it to test command key substitution in help-echo strings (bug#43070).
* Make the button navigation commands available via a minor modeLars Ingebrigtsen2020-09-091-0/+4
| | | | | | * lisp/button.el (button-mode): New minor mode. * doc/lispref/display.texi (Button Buffer Commands): Mention it.
* Add some documentation for widget-describe and button-describeLars Ingebrigtsen2020-08-071-1/+5
| | | | | | | | | * doc/emacs/help.texi (Key Help): Document button-describe and widget-describe. * lisp/button.el (push-button): Mention button-describe. * lisp/cus-edit.el (Custom-newline): Mention widget-describe (bug#139).
* Add new commands to describe buttons and widgetsMauro Aranda2020-08-071-0/+45
| | | | | | | | | | | | * lisp/help-fns.el (describe-widget-functions): New variable, used by describe-widget. (describe-widget): New command, to display information about a widget. * lisp/button.el (button-describe): New command, for describing a button. (button--describe): Helper function for button-describe. * lisp/wid-edit.el (widget-describe): New command, for describing a widget. (widget--resolve-parent-action): Helper function, to allow widget-describe to display more useful information (bug#139).
* make-text-button no longer modifies its string argPaul Eggert2020-06-061-3/+6
| | | | | | | | | * etc/NEWS: Mention this. * lisp/apropos.el (apropos-library-button): * lisp/ibuf-ext.el (ibuffer-old-saved-filters-warning): There’s no longer a need copy make-text-button’s string arg. * lisp/button.el (make-text-button): Return a copy of a string arg. Delay making the copy until after error-checking.
* Revert make-text-button string copyPaul Eggert2020-06-031-1/+0
| | | | | | | | | | | * lisp/button.el (make-text-button): Don’t make a copy of a button’s string label. This reverts the change made in 2020-05-17T05:23:28Z!eggert@cs.ucla.edu, which broke SLY. Problem reported by João Távora in: https://lists.gnu.org/r/emacs-devel/2020-06/msg00117.html However, we’ll need a better fix for this once string literals become contents, if SLY uses string constants for text button labels.
* Fix make-text-button bug with string copyPaul Eggert2020-06-031-1/+2
| | | | | | | | * lisp/button.el (make-text-button): Use the copy of BEG uniformly, instead of in just one place. This fixes a typo introduced in 2020-05-17T05:23:28Z!eggert@cs.ucla.edu. Problem reported by João Távora in: https://lists.gnu.org/r/emacs-devel/2020-06/msg00117.html
* Don’t attempt to modify constant stringsPaul Eggert2020-05-161-1/+1
| | | | | | | | | | | | | | | | | | | | | * lisp/bookmark.el (bookmark-bmenu-set-header): Use copy-sequence instead of concat, for clarity. Also, the byte-compiler optimizes (concat "a" "b") into "ab". * lisp/button.el (make-text-button): * test/lisp/erc/erc-track-tests.el (erc-track--erc-faces-in): * test/lisp/password-cache-tests.el: (password-cache-tests-add-and-remove) (password-cache-tests-read-from-cache) (password-cache-tests-in-cache-p, password-cache-tests-read) (password-cache-tests-reset) (password-cache-tests-add/expires-key) (password-cache-tests-no-password-cache): Don’t attempt to modify constant strings. * lisp/progmodes/elisp-mode.el (elisp--xref-format) (elisp--xref-format-extra): Don’t attempt to modify constant strings via put-text-property. * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs-loop-across-ref): Don’t attempt to modify constant vectors or strings.
* Only treat display strings as buttons if they have 'button' propertyClément Pit-Claudel2020-05-091-4/+6
| | | | | | * lisp/button.el (push-button): Use 'posn-point' instead of 'posn-string' if the string doesn't have the 'button' property (Bug#40859).
* Update copyright year to 2020Paul Eggert2020-01-011-1/+1
| | | | Run "TZ=UTC0 admin/update-copyright $(git ls-files)".
* ; Spelling fixesPaul Eggert2019-12-101-1/+1
|
* button-* function doc string clarificationsJiajie Chen2019-10-121-6/+18
| | | | | | | | * lisp/button.el (button-start, button-end, button-get) (button-put, button-label): Have the doc string mention that they have to be called from the current buffer (bug#23909). Copyright-paperwork-exempt: yes
* Further improve button.el support for help-echoBasil L. Contovounesios2019-10-031-10/+16
| | | | | | | | | | | | | | The last change to forward-button added support for help-echo values that are functions. This patch fixes the arguments passed to such functions and further adds support for help-echo values that are forms (bug#37515). * doc/lispref/display.texi (Button Properties): Fix description of help-echo button property. * lisp/button.el (button--help-echo): New function. (forward-button): Use it. (backward-button): Clarify help-echo reference in docstring. * test/lisp/button-tests.el (button--help-echo-string) (button--help-echo-form, button--help-echo-function): New tests.
* Use lexical-binding in button.elBasil L. Contovounesios2019-10-031-33/+29
| | | | | | | | | | | | * lisp/button.el: Use lexical-binding. Expand Keywords header. Quote function symbols as such. Use ;;;-comments where appropriate. (button): Remove outdated commentary of defface. (define-button-type, make-button, insert-button, make-text-button) (insert-text-button): Clarify in docstring that PROPERTIES argument is a plist. (button-type-subtype-p, button-has-type-p): Do not overspecify return value in docstring. (button-put): Fix typo in commentary.
* Make forward-button support help-echo function (bug#37515)Katsumi Yamaoka2019-09-261-0/+3
| | | | * lisp/button.el (forward-button): Support help-echo function.
* Extend button.el to take callback dataLars Ingebrigtsen2019-07-301-7/+25
| | | | | | | | | * doc/lispref/display.texi (Button Buffer Commands) (Button Buffer Commands): Document this. * lisp/button.el (backward-button, forward-button): Accept a NO-ERROR parameter. (button-activate): Make it possible to have specific data in the callback action.