summaryrefslogtreecommitdiff
path: root/lisp/cus-face.el
Commit message (Collapse)AuthorAge
* Add support for colored and styled underlines on tty framesMohsin Kaleem2024-04-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/dispextern.h (face, face_underline_type, syms_of_xfacse) (internal-set-lisp-face-attribute) (gui_supports_face_attributes_p): Add definitions for new underline styles of Double-line, Dots and Dashes. Rename FACE_UNDER_LINE and FACE_UNDER_WAVE to make definitions consistent. Delete tty_underline_p from the face struct and use just underline going forward. Add a flag to check whether styled underlines are available. * lisp/cus-face.el (custom-face-attributes): Add entries for Double-line, Dots and Dashes so they can be set through `customize'. * src/termchar.c (tty_display_info): Add an entry for the escape sequence to set the underline style and color on terminal frames. * src/term.c (init_tty, tty_capable_p, turn_on_face): Read and save the underline style escape sequence from the Smulx termcap (alternatively if the Su flag is set use a default sequence). Allow checking for support of styled underlines in the current terminal frame. Output the necessary escape sequences to activate a styled underline on turn_on_face; this is currently only used for the new special underline styles, a default straight underline will still use the "us" termcap. Output escape sequence to set underline color when set in the face and supported by the tty. Save a default value for this sequence on init_tty when styled underlines are supported. * src/xfaces.c (tty_supports_face_attributes_p, realize_tty_face) (map_tty_color): Assert whether styled underlines are supported by the current terminal on display-supports-face-attributes-p checks. Populate the correct underline style and color in the face spec when realizing a face. Allow map_tty_color to map underline colors alongside foreground and background. The interface of map_tty_color was amended to allow the caller to supply the underline color instead of accessing it through the face attributes. (bug#62994) * src/xterm.c (x_draw_glyph_string): Updated to use renamed FACE_UNDERLINE_SINGLE and FACE_UNDERLINE_WAVE face_underline_type enumerations.
* bytecomp.el: Rewrite the way we print dynamic docstringsStefan Monnier2024-02-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We used to print dynamic docstrings "manually" for two reasons: - References should look like `(#$ . POS)` but `prin1` was unable to print just `#$` for an sexp. - `make-docfile` needed to find those docstrings and the object to which they belonged. The second point is moot now that we don't use `make-docfile` on `.elc` files. So this patch lifts the first restriction, using `print-number-table`. The rest of the patch then simplifies and regularises the bytecompiler's generation of dynamic docstrings, which can now also easily be done for "inner" defvars and other places. * src/print.c (print_preprocess, print_object): Handle strings in `print-number-table`. (Vprint_number_table): Improve docstring. * lisp/emacs-lisp/bytecomp.el: (byte-compile--list-with-n): New function. (byte-compile--docstring-style-warn): Rename from `byte-compile-docstring-style-warn` and change calling convention. (byte-compile--\#$, byte-compile--docstrings): New vars. (byte-compile-close-variables): Bind them. (byte-compile--docstring): New function. (byte-compile-from-buffer): Set `byte-compile--\#$`. (byte-compile-output-file-form): Use `byte-compile--\#$` instead of special casing specific forms. (byte-compile--output-docform-recurse, byte-compile-output-docform): Delete functions. (byte-compile-file-form-autoload, byte-compile-file-form-defalias) (byte-compile-file-form-defvar-function, byte-compile-lambda): Use `byte-compile--docstring` and `byte-compile--list-with-n`. (byte-compile--declare-var): Add optional `not-toplevel` arg. (byte-compile-defvar): Add `toplevel` arg. Use `byte-compile--docstring`. (byte-compile-file-form-defvar): Delegate to `byte-compile-defvar`. (byte-compile--custom-declare-face): New function. Use it for `custom-declare-face`. (byte-compile-file-form-defmumble): Use `byte-compile-output-file-form` * src/doc.c (Fdocumentation_stringp): New function. (syms_of_doc): Defsubr it. (store_function_docstring): Remove left-over code from when we used DOC for the docstring of some Lisp files. * lisp/cus-face.el (custom-declare-face): Accept dynamic docstrings. * lisp/faces.el (face-documentation): Handle dynamic docstrings. * lisp/help-fns.el (describe-face): Simplify accordingly.
* ; Add 2024 to copyright yearsPo Lu2024-01-02
|
* Fix typo in pre-filter for underline propertyMauro Aranda2023-07-20
| | | | * lisp/cus-face.el (custom-face-attributes): Fix typo (Bug#64347)
* ; Add 2023 to copyright years.Eli Zaretskii2023-01-01
|
* Update font scaling documentation to not talk about "face height"Stefan Kangas2022-06-20
| | | | | | | | | | | | | | * lisp/play/gamegrid.el (gamegrid-init-buffer): * lisp/mwheel.el (mouse-wheel-scroll-amount): (mouse-wheel-text-scale): * lisp/faces.el (set-face-attribute): * lisp/face-remap.el (text-scale-mode-step): (text-scale-increase): (text-scale-adjust): * lisp/cus-face.el (custom-face-attributes): * doc/emacs/frames.texi (Mouse Commands): * doc/emacs/display.texi (Text Scale): Talk about font sized instead of "face height" (bug#46853).
* Fix a default value of the `:underline' face attributePo Lu2022-01-29
| | | | | * lisp/cus-face.el (custom-face-attributes): Add `:position' t default value of "On" for underlines.
* * lisp/cus-face.el (custom-face-attributes): Expose the lambdasStefan Monnier2022-01-19
|
* Allow controlling the underline position of facesPo Lu2022-01-10
| | | | | | | | | | | | | | | | | | | * doc/lispref/display.texi (Face Attributes): Document new `:position' property of the `:underline' attribute. * etc/NEWS: Announce new property. * lisp/cus-face.el (custom-face-attributes): Implement customization for new face attribute. * src/dispextern.h (struct face): New fields `underline_pixels_above_descent_line' and `underline_at_descent_line_p'. * src/haikuterm.c (haiku_draw_text_decoration): * src/nsterm.m (ns_draw_text_decoration): * src/w32term.c (w32_draw_glyph_string): * src/xterm.c (x_draw_glyph_string): Respect new face fields. * src/xfaces.c (realize_gui_face): Handle new `:position' keyword. (syms_of_xfaces): New symbol `:position'.
* Merge from origin/emacs-28Eli Zaretskii2022-01-01
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-01
| |
* | Adjust custom-face-attributes for 'regular' weightRobert Pluim2021-11-26
| | | | | | | | | | | | | | | | | | | | Following the changes to support "medium" weight fonts, the weight for "normal" fonts is now reported as 'regular', which caused customize-face to display faces as lisp-expressions, since it didn't recognize that. This has been corrected. * lisp/cus-face.el (custom-face-attributes): Recognize 'regular' as a weight.
* | ; * lisp/cus-face.el: Remove duplicated width entry.Robert Pluim2021-11-26
| |
* | Update 'custom-face-attributes'Eli Zaretskii2021-11-25
| | | | | | | | | | * lisp/cus-face.el (custom-face-attributes): Synchronize with tables in font.c.
* | Improve defface error messageLars Ingebrigtsen2021-11-04
|/ | | | | * lisp/cus-face.el (custom-declare-face): Improve the error message when there's a missing doc string (bug#51576).
* ; Remove some useless commentsStefan Kangas2021-04-16
|
* Add `flat-button' to custom-face-attributesPedro Andres Aranda Gutierrez2021-01-11
| | | | | * lisp/cus-face.el (custom-face-attributes): Add `flat-button' (bug#45769).
* Use lexical-binding in the remaining preloaded filesStefan Monnier2021-01-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/widget.el: * lisp/w32-fns.el: * lisp/textmodes/fill.el: * lisp/term/common-win.el: * lisp/scroll-bar.el: * lisp/rfn-eshadow.el: * lisp/menu-bar.el: * lisp/language/tibetan.el: * lisp/language/thai.el: * lisp/language/misc-lang.el: * lisp/language/lao.el: * lisp/language/korean.el: * lisp/language/japanese.el: * lisp/language/indian.el: * lisp/language/hebrew.el: * lisp/language/european.el: * lisp/language/ethiopic.el: * lisp/language/english.el: * lisp/language/cyrillic.el: * lisp/language/chinese.el: * lisp/jka-cmpr-hook.el: * lisp/international/ucs-normalize.el: * lisp/international/mule.el: * lisp/international/mule-conf.el: * lisp/international/iso-transl.el: * lisp/international/fontset.el: * lisp/international/characters.el: * lisp/format.el: * lisp/facemenu.el: * lisp/electric.el: * lisp/dos-w32.el: * lisp/dos-fns.el: * lisp/disp-table.el: * lisp/cus-face.el: * lisp/composite.el: * lisp/bindings.el: * admin/unidata/blocks.awk: * admin/charsets/eucjp-ms.awk: * admin/charsets/cp51932.awk: Use `lexical-binding`.
* Update copyright year to 2021Paul Eggert2021-01-01
| | | | Run "TZ=UTC0 admin/update-copyright".
* Mark compat alias in cus-face.el obsoleteStefan Kangas2020-11-20
| | | | | | | | * lisp/cus-face.el (custom-facep): Mark compat alias obsolete. * lisp/cus-dep.el (custom-make-dependencies): * lisp/cus-edit.el (customize-changed-options) (custom-unsaved-options, customize-saved, customize-apropos) (custom-save-faces): Adjust callers.
* Allow negative line width for :box face attributeAlexandre Adolphe2020-04-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Separate values for box line width and height and allow both to be negative which makes the visual width and height of the boxed string unchanged (Bug#13011). * doc/lispref/display.texi (Face Attributes): Modify :box attribute description to reflect the new possibilities. * lisp/cus-face.el (custom-face-attributes): Set box attribute to get two integer to set vertical and horizontal width and modify pre-filter to accept dotted list of two int as valid box attribute. * src/dispextern.h (face): Use two int for box horizontal and vertical line width. * src/nsfont.m (nsfont_draw): Use new face attributes. * src/nsterm.m (ns_draw_box, ns_draw_relief): Support separated horizontal and vertical box line width. (ns_dumpglyphs_box_or_relief, ns_maybe_dumpglyphs_background) (ns_dumpglyphs_image, ns_draw_glyph_string_foreground) (ns_draw_composite_glyph_string_foreground): Use new face attributes. * src/w32term.c (w32_draw_box_rect, w32_draw_relief_rect): Support separated horizontal and vertical box line width. (x_draw_glyph_string_background, x_draw_glyph_string_foreground) (x_draw_composite_glyph_string_foreground) (x_draw_glyphless_glyph_string_foreground, x_draw_glyph_string_box) (x_draw_image_foreground, x_draw_image_relief) (w32_draw_image_foreground_1, x_draw_image_glyph_string): Use new face attributes. * src/xfaces.c (Sinternal_set_lisp_face_attribute, realize_x_face): Accept box attribute as a list of two ints. * src/xdisp.c (estimate_mode_line_height, produce_image_glyph) (produce_xwidget_glyph, x_produce_glyphs): Use new face attributes. * src/xterm.c (x_draw_box_rect, x_draw_relief_rect): Support separated horizontal and vertical box line width. (x_draw_glyph_string_background, x_draw_glyph_string_foreground) (x_draw_composite_glyph_string_foreground) (x_draw_glyphless_glyph_string_foreground, x_draw_glyph_string_box) (x_draw_image_foreground, x_draw_image_relief, x_draw_image_foreground_1) (x_draw_image_glyph_string): Use new face attributes.
* Update copyright year to 2020Paul Eggert2020-01-01
| | | | Run "TZ=UTC0 admin/update-copyright $(git ls-files)".
* Added face parameter :extend.Jimmy Aguilar Mena2019-10-14
| | | | | This is an initial change to add a parameter :extend that will be used in the display engine later.
* Arrange custom-face-attributes closer to how heavy they areLars Ingebrigtsen2019-08-14
| | | | | * lisp/cus-face.el (custom-face-attributes): Arrange the weights more in order of how heavy they are (bug#15526).
* Merge from origin/emacs-26Paul Eggert2018-12-31
|\ | | | | | | | | | | 2fcf2df Fix copyright years by hand 26bed8b Update copyright year to 2019 2814292 Fix value of default frame height. (Bug#33921)
| * Update copyright year to 2019Paul Eggert2019-01-01
| | | | | | | | Run 'TZ=UTC0 admin/update-copyright $(git ls-files)'.
* | Fix theme applicationDaniel Colascione2018-06-19
| | | | | | | | | | | | | | Fix an inverted test. Patch due to Andy Moreton. * lisp/cus-face.el (custom-theme-set-faces): Correct sense of `custom--should-apply-setting' test.
* | Apply non-user themes only when askedDaniel Colascione2018-06-16
|/ | | | | | | | | | | | | | | | | | | | | Theme settings now generally aren't actually applied until a call to `enable-theme-, either one made explicitly or implicitly through `load-theme' with NO-ENABLE nil. This change has the effect of not applying theme changes just because we load a lisp file containing a theme specification. The previous behavior is preserved for the special case of the `user' theme, which is frequently used for ad-hoc customization. * lisp/cus-face.el (custom-theme-set-faces): Call `custom--should-apply-setting' to decide whether to apply a setting. * lisp/custom.el (custom--should-apply-setting): New function. (custom--inhibit-theme-enable): Add `apply-only-user' option; default to it. (custom-push-theme, custom-theme-set-variables): Call `custom--should-apply-setting' to decide whether to apply a setting.
* Update copyright year to 2018Paul Eggert2018-01-01
| | | | Run admin/update-copyright.
* Prefer HTTPS to FTP and HTTP in documentationPaul Eggert2017-09-13
| | | | | | | | | | | | | Most of this change is to boilerplate commentary such as license URLs. This change was prompted by ftp://ftp.gnu.org's going-away party, planned for November. Change these FTP URLs to https://ftp.gnu.org instead. Make similar changes for URLs to other organizations moving away from FTP. Also, change HTTP to HTTPS for URLs to gnu.org and fsf.org when this works, as this will further help defend against man-in-the-middle attacks (for this part I omitted the MS-DOS and MS-Windows sources and the test tarballs to keep the workload down). HTTPS is not fully working to lists.gnu.org so I left those URLs alone for now.
* Update copyright year to 2017Paul Eggert2016-12-31
| | | | Run admin/update-copyright.
* Update copyright year to 2016Paul Eggert2016-01-01
| | | | Run admin/update-copyright.
* Update copyright year to 2015Paul Eggert2015-01-01
| | | | Run admin/update-copyright.
* * cus-face.el (custom-face-attributes): Add :distant-foreground.Andreas Schwab2014-05-25
|
* Update copyright year to 2014 by running admin/update-copyright.Paul Eggert2014-01-01
|
* Doc fixes for face functions.Chong Yidong2013-12-21
| | | | | | | | * faces.el (face-spec-set): * cus-face.el (custom-theme-set-faces, custom-set-faces): * custom.el (defface): Doc fixes. Fixes: debbugs:16203
* Merge from emacs-24; up to 2012-12-06T01:39:03Z!monnier@iro.umontreal.caPaul Eggert2013-01-02
|\
| * Update copyright notices for 2013.Paul Eggert2013-01-01
| |
* | Revamp face-spec-set to be more analogous to setq for faces.Chong Yidong2012-11-25
|/ | | | | | | | | | | | | | | | | | | | | | | * lisp/faces.el (face-spec-set): Change the third arg to specify whether this function is being called via defface, customize, or a third party. Set the appropriate symbol properties. Clear the override spec if setting via Custom. Initialize face if necessary. (face-spec-recalc): Allow theme faces to completely replace the defface spec, in the same way as custom faces (Bug#8454). * lisp/cus-edit.el (custom-face-set, custom-face-mark-to-save) (custom-face-reset-saved, custom-face-mark-to-reset-standard): Simplify by using the new arg to face-spec-set. * lisp/cus-face.el (custom-declare-face): Move face initialization to face-spec-set. (custom-theme-set-faces): Don't initialize the face name here, as that is now done in face-spec-set. * lisp/emacs-lisp/lisp-mode.el (eval-defun-1): When evaluating defface, reset face-override-spec too, and use custom-declare-face. Fixes: debbugs:4988
* Fixes: debbugs:11805Andreas Schwab2012-08-21
| | | | | * cus-face.el (custom-face-attributes): Fix customize type for the :underline attribute.
* Implement wave-style variant of underlining.Alp Aker2012-06-16
| | | | | | | | | | | | | | | | | | | | * doc/lispref/display.texi: Document new face attribute. * lisp/cus-face.el (custom-face-attributes): Add wave-style underline attribute. * lisp/faces.el (set-face-attribute): Update docstring. * src/dispextern.h (face_underline_type): New enum. (face): Add field for underline type. * src/nsterm.m (ns_draw_underwave): New function. (ns_draw_text_decoration): Use it. * src/w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave): New functions. (x_draw_glyph_string): Use them. * src/xfaces.c (Qline, Qwave): New Lisp objects. (check_lface_attrs, merge_face_ref) (Finternal_set_lisp_face_attribute, realize_x_face): Handle wave-style underline face attributes. * src/xterm.c (x_draw_underwave): New function. (x_draw_glyph_string): Use it.
* Add 2012 to FSF copyright years for Emacs filesGlenn Morris2012-01-05
|
* Fix for disable-theme/defface interaction (Bug#8889).Chong Yidong2011-06-18
| | | | | * lisp/cus-face.el (custom-declare-face): Call custom-theme-recalc face anytime existing face settings are present.
* Handle calling defface on a face with existing theme settings (Bug#8454).Chong Yidong2011-05-08
| | | | | * lisp/cus-face.el (custom-declare-face): Call custom-theme-recalc-face if the face has existing theme settings.
* Fix typos in comments.Juanma Barranquero2011-04-08
|
* Convert consecutive FSF copyright years to ranges.Glenn Morris2011-01-24
|
* Nuke arch-tags.Glenn Morris2011-01-15
|
* Merge from emacs-23Stefan Monnier2011-01-14
|\
| * Add 2011 to FSF/AIST copyright years.Glenn Morris2011-01-02
| |
* | Revert 2010-10-18 change; use safe-functions instead.Chong Yidong2010-10-19
| | | | | | | | | | | | | | | | | | | | * cus-face.el (custom-theme-set-faces): Revert 2010-10-18 change. Don't mark as safe. * custom.el (custom-theme-set-variables): Likewise. (load-theme): Add custom-theme-set-faces and custom-theme-set-variables to safe-functions while loading. (custom-enabled-themes): Mark as risky.