1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-22 13:40:44 -08:00
Commit graph

434 commits

Author SHA1 Message Date
Eli Zaretskii
19dcb237b5 ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
Po Lu
a374849926 Fix the DJGPP port
* config.bat:
* msdos/sed1v2.inp:
* msdos/sed2v2.inp:
* msdos/sed3v2.inp:
* msdos/sedlibmk.inp: Update for Emacs 28.
* msdos/langinfo.h: New file.

* lisp/loadup.el: Use correct path to temacs when dumping on
MS-DOS.
* src/callproc.c (environ) [MSDOS]: New declaration.
(child_setup, emacs_spawn): Update MS-DOS parts for Emacs 28.
* src/fileio.c (Fcopy_file): Don't use copy_file_range on
MS-DOS.
* src/msdos.c (initialize_msdos_display): Add
`defined_color_hook'.
(openat, fchmodat, futimens, utimensat): New functions.

* src/msdos.h (FRAME_X_DISPLAY): New macro.
* src/process.c: Make some more things conditional on
subprocess support.
(PIPECONN_P, PIPECONN1_P) [!subprocesses]: New placeholder
macros.
(Fnum_processors): Return 1 on MSDOS.
(open_channel_for_module): Avoid subprocess specific code
on MSDOS.
2021-12-11 19:49:40 +08:00
Glenn Morris
52e7049b58 * lisp/loadup.el: Unbreak build. 2021-10-29 16:41:11 +01:00
João Távora
d3a832a61a Simplify hack-read-symbol-shorthands again (bug#50946)
* lisp/loadup.el (load-source-file-function): Don't set twice.

* lisp/shorthands.el (hack-read-symbol-shorthands): Simplify.
(load-with-shorthands-and-code-conversion): Remove.

* lisp/international/mule.el (load-with-code-conversion): Call
hack-read-symbol-shorthands-function.  Set up shorthands.
(hack-read-symbol-shorthands-function): New variable.
2021-10-04 00:17:12 +01:00
Eli Zaretskii
340e527bed Preload paren.el
* lisp/Makefile.in (COMPILE_FIRST): Add the dependencies of
comp.el, so that they are natively-compiled in advance.
* lisp/loadup.el ("paren"): Preload paren.el.	(Bug#50934)
2021-10-02 11:06:18 +03:00
João Távora
9307889d68 Simplify shorthand injection (bug#50946)
* lisp/loadup.el: Load "shorthands" relatively late. Set
load-source-file-function to load-with-shorthands-and-code-conversion

* lisp/international/mule.el (hack-elisp-shorthands)
(load-with-shorthands-and-code-conversion): Move to
lisp/shorthands.el

* lisp/shorthands.el: New file.
2021-10-02 01:43:16 +01:00
João Távora
71857d4106 Move most of the shorthand implementation to C code
It passes the tests designed for the previous Elisp implementation.

Likely, this isn't the final form of the implementation.  For one, the
reader is much slower and allocates a Lisp string for every atom read,
regardless if its already interned or not.  This has the potential to
be catastrophic in terms of GC.

Also rename the main variable to elisp-shorthands, from the
repetitive shorthand-shorthands.

For some reason, I had to put 'hack-elisp-shorthands' and
'load-with-shorthands-and-code-conversion', the new source-file
loading functions, in lisp/international/mule.el.

Otherwise, lisp/loadup.el wouldn't see them, for some reason that I
didn't investigate.  This should probably be fixed.

* lisp/shorthand.el: Remove.

* test/lisp/shorthand-tests.el: Remove.

* src/lread.c:
(read1, Fintern, Fintern_soft, Funintern): Use
oblookup_considering_shorthand.
(oblookup_considering_shorthand): New helper.
(syms_of_lread): Declare elisp-shorthands.

* lisp/progmodes/elisp-mode.el (elisp-shorthands):
Put a safe-local-variable spec.

* test/lisp/progmodes/elisp-mode-tests.el (elisp-shorthand-read-buffer)
(elisp-shorthand-read-from-string)
(elisp-shorthand-byte-compile-a-file)
(elisp-shorthand-load-a-file): New tests.

* test/lisp/progmodes/elisp-resources/simple-shorthand-test.el: New file

* lisp/loadup.el (load-source-file-function): Set to
load-with-shorthands-and-code-conversion.

* lisp/international/mule.el (hack-elisp-shorthands): Move here.
(load-with-shorthands-and-code-conversion): And here.
2021-09-27 01:07:11 +01:00
Mattias Engdegård
fc268ed439 Dump with lexical-binding bound to nil
* lisp/loadup.el (dump-mode): Temporarily bind `lexical-binding` to
nil while dumping.  Otherwise, it will be t in Emacs by default
and that is not our intention (yet).
2021-09-20 10:14:35 +02:00
Eli Zaretskii
0788ab9e5c ; * lisp/loadup.el: Fix "Eager macro-expansion error" on w32. 2021-09-18 10:56:05 +03:00
Stefan Kangas
63f419f133 ; Minor stylistic fixes found by checkdoc 2021-09-16 19:37:07 +02:00
Andrea Corallo
40736357b8 Rename feature nativecomp' into native-compile'
* test/src/comp-tests.el : Rename feature `nativecomp' into
	`native-compile'.
	* test/lisp/help-fns-tests.el (help-fns-test-lisp-defun): Likewise.
	* src/comp.c (syms_of_comp): Likewise.
	* lisp/startup.el (normal-top-level): Likewise.
	* lisp/loadup.el: Likewise.
	* lisp/help.el (help-function-arglist): Likewise.
	* lisp/emacs-lisp/package.el (package--native-compile-async)
	(package--delete-directory): Likewise.
	* lisp/emacs-lisp/nadvice.el (advice--add-function): Likewise.
	* lisp/emacs-lisp/comp.el (comp-ensure-native-compiler): Likewise.
	* lisp/emacs-lisp/advice.el (ad-add-advice): Likewise.
2021-05-05 22:27:29 +02:00
Andrea Corallo
b064ddd3f6 Merge remote-tracking branch 'savannah/master' into native-comp 2021-04-13 12:06:23 +02:00
Stefan Monnier
5ad3893eba * lisp/loadup.el: Use lexical-binding 2021-04-10 16:58:11 -04:00
Andrea Corallo
b77575198c ; * lisp/loadup.el: Fix comment. 2021-04-06 21:03:42 +02:00
Andrea Corallo
6f8ec14491 Output native compiled preloaded files into the 'preloaded' subfolder
* src/comp.c (fixup_eln_load_path): Account the fact that the
	file can be dumped in the 'preloaded' subfolder.
	* lisp/loadup.el: Likewise.
	* src/lread.c (maybe_swap_for_eln1): New function.
	(maybe_swap_for_eln): Handle 'preloaded' subfolder.
	* src/Makefile.in (LISP_PRELOADED): Export preloaded files.
2021-04-04 22:41:17 +02:00
Andrea Corallo
6ca6c71cd0 Merge remote-tracking branch 'savannah/master' into native-comp 2021-03-19 15:28:00 +01:00
Lars Ingebrigtsen
6a75b6fcb1 Don't pre-load facemenu
* lisp/facemenu.el (facemenu-add-face-function): Move to avoid a
compilation warning.
(facemenu-color-alist): Made obsolete.

* lisp/faces.el (read-color): Don't use it.

* lisp/loadup.el ("emacs-lisp/syntax"): Don't load facemenu.

* lisp/wid-edit.el (color): Don't use facemenu-color-alist.
(widget-color--choose-action): Require facemenu.
(widget-color-action): Ditto.

* lisp/progmodes/cperl-mode.el (facemenu): Require.

* lisp/textmodes/sgml-mode.el (facemenu): Require.
2021-03-18 05:55:16 +01:00
Lars Ingebrigtsen
1e9c9ebee3 Unbind M-o' and add new C-x x f' binding
* doc/lispref/modes.texi (Other Font Lock Variables):
`font-lock-fontify-block' is no longer bound.
* lisp/bindings.el (ctl-x-x-map): Bind `font-lock-update'.

* lisp/font-lock.el (font-lock-update): New command written by
Gregory Heytings <gregory@heytings.org>.

* lisp/loadup.el: Remove transitional experimental code.
2021-03-18 05:10:37 +01:00
Andrea Corallo
711b2c8349 * lisp/loadup.el: Don't load pcase on native builds (bug#47025). 2021-03-10 15:56:05 +01:00
Andrea Corallo
43b0df62cd Merge commit '9cbdf20316' into native-comp 2021-03-09 10:03:47 +01:00
Eli Zaretskii
b456b19ec4 Fix typos and doc strings in native-compilation files
* lisp/emacs-lisp/comp.el (comp-speed, comp-debug, comp-verbose)
(comp-always-compile, comp-deferred-compilation-deny-list)
(comp-bootstrap-deny-list, comp-never-optimize-functions)
(comp-async-jobs-number, comp-async-cu-done-hook)
(comp-async-all-done-hook, comp-async-env-modifier-form)
(comp-pass, comp-native-compiling, comp-post-pass-hooks)
(comp-known-predicate-p, comp-pred-to-cstr)
(comp-symbol-values-optimizable, comp-limple-assignments)
(comp-limple-calls, comp-limple-branches, comp-block)
(comp-vec--verify-idx, comp-vec-aref, comp-vec-append)
(comp-vec-prepend, comp-block-preds)
(comp-ensure-native-compiler, comp-log, comp-log-func)
(comp-loop-insn-in-block, comp-byte-frame-size)
(comp-add-func-to-ctxt, comp-spill-lap-function, comp-spill-lap)
(comp-lap-fall-through-p, comp-new-frame, comp-emit-set-call)
(comp-copy-slot, comp-latch-make-fill, comp-emit-cond-jump)
(comp-body-eff, comp-op-case, comp-prepare-args-for-top-level)
(comp-limplify-top-level, comp-negate-arithm-cmp-fun)
(comp-emit-assume, comp-cond-cstrs-target-mvar)
(comp-function-foldable-p, comp-function-call-maybe-fold)
(comp-form-tco-call-seq, comp-clean-up-stale-eln)
(comp-delete-or-replace-file, comp--native-compile)
(native--compile-async, native-compile)
(batch-byte-native-compile-for-bootstrap): Fix typos, wording, and
punctuation in doc strings.
* lisp/loadup.el: Fix typos.

* src/lread.c (syms_of_lread): Doc fix.
2021-03-04 20:36:43 +02:00
Stefan Kangas
697aaafca3 Convert isearch menu to easymenu
* lisp/isearch.el (isearch-menu-bar-yank-map)
(isearch-menu-bar-map, isearch-mode-map): Move menu definition
from here...
(isearch-menu-bar-map): ...to here, and convert to easymenu.

* lisp/loadup.el ("emacs-lisp/easymenu"): Move before isearch.el.
2021-02-28 00:07:32 +01:00
Stefan Kangas
cd411ecb28 Convert emacs-lisp-mode menu to easy-menu-define
* lisp/loadup.el: Preload easymenu.

* lisp/progmodes/elisp-mode.el (emacs-lisp-mode-map): Convert menu to
use easy-menu-define (bug#24774).
2021-02-27 15:24:35 +01:00
Andrea Corallo
f92bb788a0 Merge remote-tracking branch 'savannah/master' into native-comp 2021-02-17 22:26:28 +01:00
Lars Ingebrigtsen
0334ac671c Also mention `M-o M-o' removal
* lisp/loadup.el (facemenu-keymap-restore): Also restore `M-o M-o'.
2021-02-14 16:55:37 +01:00
Andrea Corallo
2fcb85c3e7 Merge remote-tracking branch 'savannah/master' into HEAD 2021-02-10 21:56:55 +01:00
Lars Ingebrigtsen
81e55fa6c3 Fix build problem with previous facemenu change
* lisp/facemenu.el (facemenu-add-face-function): Move to avoid a
warning.
(list-colors-display): Autoload.
2021-02-10 20:37:14 +01:00
Lars Ingebrigtsen
21e475ea0c Remove the 'M-o' ('facemap-keymap') binding experimentally
* doc/lispref/maps.texi (Standard Keymaps):
* doc/lispref/keymaps.texi (Prefix Keys): Remove mentions.

* etc/facemenu-removal.txt: New temporary file.

* lisp/loadup.el: Don't load facemenu.el.
(removed-facemenu-command): New command.
(facemenu-keymap-restore): New function.

* lisp/textmodes/text-mode.el (center-paragraph): Remove binding.
(center-line): Remove binding.
2021-02-10 19:38:18 +01:00
Andrea Corallo
5db5064395 Merge remote-tracking branch 'savannah/master' into HEAD 2021-01-02 10:11:15 +01:00
Paul Eggert
ba05d005e5 Update copyright year to 2021
Run "TZ=UTC0 admin/update-copyright".
2021-01-01 01:13:56 -08:00
Andrea Corallo
715a1ca174 Merge remote-tracking branch 'savannah/master' into HEAD 2020-12-06 18:07:27 +01:00
Lars Ingebrigtsen
f365eb2e05 Preload iso-trans.el
* lisp/loadup.el ("international/iso-transl"): Load by default so
that we get `Alt-' bindings (bug#21310).

* lisp/international/iso-transl.el: Remove autoloads and some
comments.
2020-12-04 10:46:34 +01:00
Andrea Corallo
2a8bf2222d Merge remote-tracking branch 'savannah/master' into dev 2020-11-14 22:07:54 +01:00
Philipp Stephani
b13e87c35b Capitalize portable dump messages.
We capitalize all other messages during the dump, so capitalize the
"dump mode" and "dumping fingerprint" ones as well for consistency.

* src/pdumper.c (Fdump_emacs_portable): Capitalize fingerprint message
prefix.

* lisp/loadup.el: Capitalize "dump mode" message.
2020-11-14 13:33:07 +01:00
Andrea Corallo
8b135af5bb Provide feature nativecomp and make use of it
* lisp/emacs-lisp/comp.el (comp-ensure-native-compiler): Use
	`featurep' to identify if the native compiler is available.
	* lisp/emacs-lisp/nadvice.el (advice--add-function): Likewise.
	* lisp/emacs-lisp/package.el (package--delete-directory): Likewise.
	* lisp/loadup.el: Likewise.
	* src/comp.c (syms_of_comp): Provide feature nativecomp.
2020-10-10 18:47:45 +02:00
Andrea Corallo
87c6aa13b3 Make primitive redefinition effective through trampoline synthesis
* lisp/loadup.el (dump-mode): Set `comp-enable-subr-trampolines'
	when finished bootstrap.
	* src/data.c (Ffset): Call `comp-enable-subr-trampolines' when
	redefining a subr.
	* src/comp.c (syms_of_comp): Define `comp-subr-trampoline-install'
	symbol.
	(syms_of_comp): Define `comp-enable-subr-trampolines' variable.
2020-10-05 21:32:38 +02:00
Andrea Corallo
6a726c5ad7 Merge remote-tracking branch 'savannah/master' into HEAD 2020-09-13 18:20:21 +02:00
Stefan Monnier
f7e35f8162 * lisp/loadup.el ("button"): Move to after loaddefs.el 2020-09-10 22:10:02 -04:00
Andrea Corallo
67c5369156 Rename and move eln system directory
Rename eln sys directory into 'native-lisp' and move it from
"$(DESTDIR)${libexecdir}/emacs/${version}/${configuration}/" to
"$(DESTDIR)${libdir}/emacs/".

Add to the directory name used to disambiguate the eln compatibility
the Emacs version to have it more user friendly.

	* Makefile.in (clean, install-eln): Rename eln-cache into
	native-lisp.
	(ELN_DESTDIR): Move from
	'$(DESTDIR)${libexecdir}/emacs/${version}/${configuration}/' to
	'$(DESTDIR)${libdir}/emacs/'.

	* lisp/loadup.el: Update for comp-native-path-postfix ->
	comp-native-version-dir rename.

	* src/comp.c (syms_of_comp): Rename eln-cache -> native-lisp.
	(syms_of_comp, Fcomp_el_to_eln_filename): Rename
	comp-native-path-postfix -> comp-native-version-dir.
	(hash_native_abi): Rework and add emacs-version to
	comp-native-version-dir.
2020-09-04 17:12:22 +02:00
Andrea Corallo
171db31101 Make install target functional for new eln-cache directory arrangement
* src/comp.h (fixup_eln_load_path): New extern.

	* src/comp.c (fixup_eln_load_path): New function.

	* src/pdumper.c (dump_do_dump_relocation): Update to make use of
	'fixup_eln_load_path'.

	* lisp/loadup.el: Update to store in the compilation unit the
	correct eln-cache installed path. Rename --lisp-dest -> --eln-dest
	and.

	* Makefile.in: Pass the eln destination directory to
	src/Makefile. Rename LISP_DESTDIR -> ELN_DESTDIR.
	(ELN_DESTDIR): Define.
	(install-eln): New target.
	(install): Add install-eln as prerequisite.

	* src/Makefile.in: Rename --lisp-dest -> --eln-dest and
	LISP_DESTDIR -> ELN_DESTDIR.
2020-08-17 18:04:23 +02:00
Andrea Corallo
f5dceed09a * lisp/loadup.el: Use new 'native-comp-available-p'. 2020-05-23 14:25:44 +01:00
Andrea Corallo
8db8c851ad Always set load-true-file-name' where load-file-name' is set too.
Fix bug#40620.

	* lisp/cus-dep.el (custom-make-dependencies): Set
	load-true-file-name.

	* lisp/emacs-lisp/package.el (package-quickstart-refresh):
	Likewise.

	* lisp/international/mule.el (load-with-code-conversion):
	Likewise.

	* lisp/loadup.el (load-true-file-name): Likewise.
2020-04-14 19:58:41 +01:00
Andrea Corallo
3dd6cf8139 Implement working make install for native build. 2020-04-12 16:52:05 +01:00
Andrea Corallo
f4156b452f Implement position independent dump.
Set the filename for every compilation unit as realtive to obtain a
position independent dump.

	* lisp/loadup.el: Modify filename for every compilation unit as
	position independent.

	* src/pdumper.c (dump_do_dump_relocation): Update to be invocation
	directory relative.
2020-04-12 16:52:05 +01:00
Mattias Engdegård
43203d5068 * lisp/loadup.el: Set max-specpdl-size to 1800 when loading cl-generic.el. 2020-01-01 17:38:42 +01:00
Paul Eggert
365e01cc9f Update copyright year to 2020
Run "TZ=UTC0 admin/update-copyright $(git ls-files)".
2020-01-01 00:59:52 +00:00
Stefan Monnier
2aaced1686 * lisp/loadup.el: Load minibuffer after cl-generic
This is so minibuffer.el can make use of cl-generic

* lisp/minibuffer.el (minibuffer-local-completion-map):
Move switch-to-completions bindings here from...
* lisp/simple.el (minibuffer-local-completion-map): ... here.
2019-10-27 13:21:21 -04:00
Juri Linkov
7970c89c77 Text-based nox builds compiled without X window support 2019-09-04 22:05:05 +03:00
Juri Linkov
3e0ad29a60 Frame-local tab-bar and window-local tab-line.
* etc/NEWS: Add 'tab-bar-mode' and 'global-tab-line-mode'.

* etc/TODO: Remove tab-related items.

* lisp/cus-start.el: Add tab-bar-mode, tab-bar-max-label-size.

* lisp/frame.el (frame-notice-user-settings): handle tab-bar-lines.

* lisp/loadup.el: Load "tab-bar".

* lisp/menu-bar.el (menu-bar-options-save): Add tab-bar-mode.
(menu-bar-showhide-menu): Define showhide-tab-bar.

* lisp/startup.el (tab-bar-images-pixel-height): New defconst.
(command-line): Reset tab-bar-mode.
(x-apply-session-resources): Add "tabBar", "TabBar".

* lisp/subr.el (read-key): Add tab-bar.

* lisp/tab-bar.el: New file.
* lisp/tab-line.el: New file.

* lisp/window.el (window--dump-frame): Add tab-bar-height.

* src/dispextern.h (enum window_part): Add ON_TAB_LINE.
(struct glyph_matrix): Add tab_line_p.
(struct glyph_row): Add tab_line_p.
(MATRIX_TAB_LINE_ROW): New macro.
(MATRIX_FIRST_TEXT_ROW): Handle more mode lines.
(MR_PARTIALLY_VISIBLE_AT_TOP): Add WINDOW_TAB_LINE_HEIGHT.
(MATRIX_TAB_LINE_HEIGHT, CURRENT_TAB_LINE_HEIGHT)
(DESIRED_TAB_LINE_HEIGHT): New macros.
(enum face_id): Add TAB_BAR_FACE_ID and TAB_LINE_FACE_ID.
(struct it): Add tab_line_p.
(tab_bar_item_idx, tab_bar_item_image): New enums.
(DEFAULT_TAB_BAR_LABEL_SIZE, DEFAULT_TAB_BAR_BUTTON_MARGIN)
(DEFAULT_TAB_BAR_BUTTON_RELIEF, DEFAULT_TAB_BAR_IMAGE_HEIGHT):
New constants.

* src/dispnew.c (adjust_glyph_matrix): Use window_wants_tab_line.
(shift_glyph_matrix): Add WINDOW_TAB_LINE_HEIGHT.
(clear_current_matrices, clear_desired_matrices):
Call clear_glyph_matrix on tab_bar_window.
(blank_row): Add WINDOW_TAB_LINE_HEIGHT.
(required_matrix_height): Change 2 to 3.
(fake_current_matrices): Reset tab_line_p.
(adjust_frame_glyphs_for_window_redisplay): Handle tab_bar_window.
Add FRAME_TAB_BAR_HEIGHT and FRAME_TAB_BAR_LINES.
(free_glyphs): Handle tab_bar_window.
(update_frame): Handle tab_bar_window.
(update_window): Handle row->tab_line_p.
(scrolling_window): Change arg type from bool to int.
Change header_line_p to tab_line_p.
(buffer_posn_from_coords): Add window_wants_tab_line.
(mode_line_string): Use MATRIX_TAB_LINE_ROW for part ON_TAB_LINE.

* src/frame.c (frame_default_tab_bar_height): New internal variable.
(adjust_frame_size): Handle tab_bar_window.
(make_frame): Reset tab_bar_redisplayed, tab_bar_resized and
last_tab_bar_item.
(Ftab_bar_pixel_width): New function.
(frame_parms): Add tab-bar-lines.
(gui_figure_window_size): Add new arg tabbar_p.
(syms_of_frame): Add Qtab_bar_size, Qupdate_frame_tab_bar,
Qfree_frame_tab_bar, Qtab_bar_lines, Stab_bar_pixel_width.
Add Qtab_bar_lines to frame_inhibit_implied_resize.
(tab-bar-mode): New variable.

* src/frame.h (GCALIGNED_STRUCT): Add tab_bar_window,
desired_tab_bar_string, current_tab_bar_string.
(GCALIGNED_STRUCT): Add tab_bar_items, last_tab_bar_item,
minimize_tab_bar_window_p, tab_bar_redisplayed, tab_bar_resized,
tab_bar_lines, tab_bar_height, n_tab_bar_rows, n_tab_bar_items.
(fset_tab_bar_items, fset_tab_bar_window)
(fset_current_tab_bar_string, fset_desired_tab_bar_string):
New inlines.
(FRAME_TAB_BAR_LINES, FRAME_TAB_BAR_HEIGHT): New macros.
(FRAME_TOP_MARGIN, FRAME_TOP_MARGIN_HEIGHT):
Use FRAME_TAB_BAR_LINES.

* src/fringe.c (draw_fringe_bitmap_1, update_window_fringes):
Add WINDOW_TAB_LINE_HEIGHT.

* src/gtkutil.c (xg_frame_set_char_size): Add FRAME_TABBAR_WIDTH.
(x_wm_set_size_hint): Add FRAME_TABBAR_WIDTH.

* src/keyboard.c (read_char): Handle Qtab_bar.
(kbd_buffer_get_event): Handle TAB_BAR_EVENT.
(make_lispy_position): Add WINDOW_TAB_LINE_HEIGHT.
Handle TAB_BAR_EVENT.
(tab_bar_items_vector, tab_bar_item_properties, ntab_bar_items):
New internal variables.
(tab_bar_items, process_tab_bar_item, set_prop_tab_bar)
(parse_tab_bar_item, init_tab_bar_items, append_tab_bar_item):
New functions.
(read_char_x_menu_prompt, read_key_sequence): Handle Qtab_bar.
(tab-bar-separator-image-expression): New variable.

* src/keymap.c (syms_of_keymap): Add Qtab_bar and Qtab_line.

* src/menu.c (x_popup_menu_1, Fx_popup_dialog): Handle Qtab_bar.

* src/termhooks.h (enum event_kind): Add TAB_BAR_EVENT.
(GCALIGNED_STRUCT): Add change_tab_bar_height_hook.

* src/w32fns.c (w32_frame_parm_handlers): Add w32_set_tab_bar_lines.

* src/w32term.c (w32_draw_window_cursor): Add WINDOW_TAB_LINE_HEIGHT.

* src/window.c (window_body_height): Add WINDOW_TAB_LINE_HEIGHT.
(Fwindow_tab_line_height): New function.
(coordinates_in_window): Use window_wants_tab_line with
CURRENT_TAB_LINE_HEIGHT.
(window_relative_x_coord): Add ON_TAB_LINE.
(Fcoordinates_in_window_p): Add ON_TAB_LINE.
(window_from_coordinates): Add new arg tab_bar_p.
(Fwindow_line_height): Use window_wants_tab_line with
WINDOW_TAB_LINE_HEIGHT.
(Fwindow_lines_pixel_dimensions): Add WINDOW_TAB_LINE_HEIGHT.
(make_window): Set tab_line_height to -1.
(window_wants_tab_line): New function.
(window_internal_height): Use window_wants_tab_line.
(window_scroll_pixel_based): Add WINDOW_TAB_LINE_HEIGHT.
(Frecenter): Set minimize_tab_bar_window_p to 1.
(GCALIGNED_STRUCT): Add frame_tab_bar_lines and frame_tab_bar_height.
(Fcurrent_window_configuration): Set frame_tab_bar_lines and
frame_tab_bar_height.
(set_window_scroll_bars): Add WINDOW_TAB_LINE_HEIGHT.
(syms_of_window): Add Qtab_line_format and Swindow_tab_line_height.

* src/window.h (GCALIGNED_STRUCT): Add tab_line_height.
(WINDOW_TAB_BAR_P, WINDOW_TAB_LINE_HEIGHT, WINDOW_TAB_LINE_LINES):
New macros.
(WINDOW_TOP_EDGE_Y, WINDOW_BOTTOM_EDGE_Y, WINDOW_TAB_LINE_HEIGHT):
Add WINDOW_TAB_BAR_P.

* src/xdisp.c (window_box_height): Add window_wants_tab_line with
MATRIX_TAB_LINE_ROW and CURRENT_TAB_LINE_HEIGHT.
(pos_visible_p): Use window_wants_tab_line.
Add WINDOW_TAB_LINE_HEIGHT.
(get_glyph_string_clip_rects): Add WINDOW_TAB_LINE_HEIGHT.
(get_phys_cursor_geometry): Add WINDOW_TAB_LINE_HEIGHT.
(remember_mouse_glyph): Use MATRIX_TAB_LINE_ROW for part
ON_TAB_LINE.
(init_iterator): Use MATRIX_TAB_LINE_ROW for TAB_LINE_FACE_ID.
Add WINDOW_TAB_LINE_HEIGHT.  Add window_wants_tab_line.
(Fwindow_text_pixel_size): Add WINDOW_TAB_LINE_HEIGHT.
(prepare_menu_bars): Call update_tab_bar.
(update_tab_bar, build_desired_tab_bar_string)
(display_tab_bar_line, tab_bar_height, Ftab_bar_height)
(redisplay_tab_bar, tab_bar_item_info, get_tab_bar_item)
(handle_tab_bar_click, note_tab_bar_highlight): New functions.
(compute_window_start_on_continuation_line): Use window_wants_tab_line.
(try_cursor_movement): Use window_wants_tab_line with
CURRENT_TAB_LINE_HEIGHT.
(redisplay_window): Use window_wants_tab_line with
CURRENT_TAB_LINE_HEIGHT.
(try_window_reusing_current_matrix): Use window_wants_tab_line
with WINDOW_TAB_LINE_HEIGHT.
(Fdump_tab_bar_row): New function.
(compute_line_metrics): Add WINDOW_TAB_LINE_HEIGHT.
(display_line): Use window_wants_tab_line.
(display_mode_line): Set tab_line_p to true if face_id is
TAB_LINE_FACE_ID.
(Fformat_mode_line): Handle Qtab_line and Qtab_bar.
(gui_clear_end_of_line): Add WINDOW_TAB_LINE_HEIGHT.
(erase_phys_cursor): Use WINDOW_TAB_LINE_HEIGHT.
(show_mouse_face): Use tab_bar_window.
(note_mode_line_or_margin_highlight): Use MATRIX_TAB_LINE_ROW for
area ON_TAB_LINE.
(note_mouse_highlight): Call note_tab_bar_highlight,
(expose_frame): Handle tab_bar_window.
(syms_of_xdisp): Add Sdump_tab_bar_row and Stab_bar_height.
(auto-resize-tab-bars, auto-raise-tab-bar-buttons)
(tab-bar-border, tab-bar-button-margin, tab-bar-button-relief)
(tab-bar-max-label-size): New variables.

* src/xfaces.c (lookup_basic_face): Add TAB_LINE_FACE_ID and
TAB_BAR_FACE_ID.
(syms_of_xfaces): Define Qtab_bar and Qtab_line.

* src/xfns.c (x_set_tab_bar_lines, x_change_tab_bar_height):
New functions.
(xic_set_statusarea): Add FRAME_TABBAR_TOP_HEIGHT.
(frame_geometry): Add FRAME_TAB_BAR_HEIGHT and Qtab_bar_size.

* src/xterm.c (x_draw_image_relief): Use tab_bar_button_relief.
(x_draw_image_relief): Use TAB_BAR_FACE_ID.
(handle_one_xevent): Handle tab_bar_window.
(x_set_window_size_1): Add FRAME_TABBAR_WIDTH.
(x_create_terminal): Set change_tab_bar_height_hook.

* src/xterm.h (struct x_output): Add tabbar_top_height,
tabbar_bottom_height, tabbar_left_width, tabbar_right_width
tabbar_widget, tabbar_in_hbox, tabbar_is_packed.
(FRAME_TABBAR_TOP_HEIGHT): Add FRAME_TABBAR_TOP_HEIGHT,
FRAME_TABBAR_BOTTOM_HEIGHT, FRAME_TABBAR_HEIGHT,
FRAME_TABBAR_LEFT_WIDTH, FRAME_TABBAR_RIGHT_WIDTH,
FRAME_TABBAR_WIDTH.
2019-08-31 23:40:07 +03:00
Paul Eggert
f744797af1 Go back to "Maintainer: emacs-devel@gnu.org"
Restore lines saying "Maintainer: emacs-devel@gnu.org" when there is
no special maintainer for a file.  Although this wasn't documented
it was common practice and removing the lines didn't have consensus.
2019-05-25 14:25:18 -07:00