aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Kangas2023-02-18 10:45:46 +0100
committerStefan Kangas2023-02-18 10:45:46 +0100
commit0be5f7ab6368175953c0a5bcbbd485fd9edda2b0 (patch)
tree9794ae60deb1cedca6d4354a8d89619db5a10710 /src
parent1298d1db189bf434e54a792d3a6746237881f251 (diff)
parent1769a588300f471a85fe8887864ae33340dececb (diff)
downloademacs-0be5f7ab6368175953c0a5bcbbd485fd9edda2b0.tar.gz
emacs-0be5f7ab6368175953c0a5bcbbd485fd9edda2b0.zip
Merge from origin/emacs-29
1769a588300 Fix some uses of 'use-dialog-box' deef41a8259 Fix hi-lock-tests when 'use-dialog-box' is non-nil 5093a534960 Fix regression due to change in face sort order by 'face-... 3e747630999 * lisp/files.el (file-equal-p): Work around Haiku stat bug. 13fd7667f9c ; * src/treesit.c: Improve sectioning. a40b1745d4a (project-vc-backend-markers-alist): Add entry for vc-got 18e96ed7c8a project.el: Extract backend->marker association for a defvar 0a5615669a4 Don't completely clip into visible range in treesit_recor... 5b34fc07085 * lisp/treesit.el (treesit-node-at): Update docstring (bu... 1c7d7623781 ; Minor copyedit of NEWS wrt *-ts-modes 09fad246de8 * lisp/calc/calc.el (calc-mode): Improve docstring. 8aad8d75aa9 ; Improve and update documentation of native compilation d6e4f243720 Merge 'emacs-29' into 'feature/inhibit-native-comp-cleanup' a555abc56d5 Fix order of faces in 'face-list' b44a7ff85dc Allow 'icon-title-format' to have the value t f1f571e72ae Add electric indent for preproc directives 83af806ab7c Rename 'emacs-news-toggle-tag' to 'emacs-news-cycle-tag' 5bc88b3b175 Add menu to news-mode 40f4bc4e0aa ; Avoid installing VC package dependencies multiple times 1c9d81a2b42 Attempt to recognise if a VC package has no Elisp files 2550e8bb0b0 Fix mule-tests under en_US.UTF-8 locale 32795309939 Move block closer above declaration_list rule (bug#61531) b18754bb179 Minor improvements in c-ts-mode and docs 3c6b726a7b4 Add super node as a keyword 1917c51fe68 ; Prevent ERC-induced false positive in JUnit report b16965ef7e6 Delete perplexing paragraph from Gnus manual 43c62a4732d ; Fix typo fdac69b45e6 ; Auto-commit of loaddefs files. 7678b7e46f2 Eglot: check server capability before sending didSave (bu... a3a1ef7bd5e Fix rust-ts-mode type and module highlighting (Bug#61302) 477aa047ee7 rust-ts-mode: Highlight variable reassignments 5206a551c16 Improve backward compatibility of save-restriction accd88d5545 Don't indent template_string contents (bug#61503) d97a3839967 csharp-ts-mode: fontify compiler directives (bug#61512) 420d2cae846 Update to Transient v0.3.7-209-gdab1dfa a3751b5d0c1 ; Raise an error if a VC package checkout is empty 6a32ba8b69c ; Fix the installation of dependencies for VC packages 4eac80fcc39 ; Prepare to update ERC version to 5.5 4f099a72173 ; Remove failing erc-reuse-buffers test ce4a066ed1e * Generate trampolines in a temporary directory if no oth... 4bb27a5ca93 ; Minor docs copyedits 13bcff3da5c Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/... 3d572ae0d50 Rename with/without-narrowing to with/without-restriction d806b0e33cf * lisp/repeat.el: Rename internal function and variable (... 1a64f326e0a * Fix previous change 95692f6754c Rename native-comp-deferred-compilation-deny-list 8d8464bd5a9 Rename native-comp-deferred-compilation into native-comp-... 5d0912f1445 Rename comp-enable-subr-trampolines into native-comp-enab... dd8b720ee74 ; * etc/NEWS: Fix typos. 909bd04cf5f ; * lisp/calendar/lunar.el: Add comments. (bug#61460) 10f2aedea9a ; * lisp/progmodes/c-ts-mode.el (c-ts-base-mode): delete ... abfd00e5c02 * lisp/emacs-lisp/comp.el (native-comp-never-optimize-fun... 1795839babc Support `comp-enable-subr-trampolines' as string value 865758130a1 ; * admin/git-bisect-start: Update failing commits b948d0d7efe Merge branch 'scratch/fix-locked-narrowing' b6e2799aa1c * Some more `inhibit-native-compile' clean-up dcb2379a463 Minor improvements to labeled narrowing c0681cd3477 Revert "Add new variable 'inhibit-native-compilation'" 3969a34fa1b Revert "Rename to inhibit-automatic-native-compilation" 4297039bd13 Save and restore the absence of narrowing locks 2956e54b1dd Add an extensive test for labeled (locked) narrowing 79ce185ad13 Update the documentation about labeled (locked) narrowing a6cd4553d48 Rename two long line optimizations variables 0d73e4aa261 Add specific symbols for narrowings d8438e2bb44 Add 'without-narrowing' macro 97314447e60 Make 'narrowing-lock' and 'narrowing-unlock' internal a4aa32bdfff Fix 'save-restriction' for narrowing locks
Diffstat (limited to 'src')
-rw-r--r--src/comp.c98
-rw-r--r--src/data.c2
-rw-r--r--src/treesit.c26
-rw-r--r--src/xdisp.c11
4 files changed, 78 insertions, 59 deletions
diff --git a/src/comp.c b/src/comp.c
index 7d2987605d9..1b55226b0c3 100644
--- a/src/comp.c
+++ b/src/comp.c
@@ -5174,8 +5174,7 @@ maybe_defer_native_compilation (Lisp_Object function_name,
5174 if (!load_gccjit_if_necessary (false)) 5174 if (!load_gccjit_if_necessary (false))
5175 return; 5175 return;
5176 5176
5177 if (!native_comp_deferred_compilation 5177 if (!native_comp_jit_compilation
5178 || !NILP (Vinhibit_automatic_native_compilation)
5179 || noninteractive 5178 || noninteractive
5180 || !NILP (Vpurify_flag) 5179 || !NILP (Vpurify_flag)
5181 || !COMPILEDP (definition) 5180 || !COMPILEDP (definition)
@@ -5672,28 +5671,18 @@ syms_of_comp (void)
5672{ 5671{
5673#ifdef HAVE_NATIVE_COMP 5672#ifdef HAVE_NATIVE_COMP
5674 DEFVAR_LISP ("comp--delayed-sources", Vcomp__delayed_sources, 5673 DEFVAR_LISP ("comp--delayed-sources", Vcomp__delayed_sources,
5675 doc: /* List of sources to be native-compiled when startup is finished. 5674 doc: /* List of sources to be native-compiled when startup is finished.
5676For internal use. */); 5675For internal use. */);
5677 DEFVAR_BOOL ("comp--compilable", 5676 DEFVAR_BOOL ("comp--compilable", comp__compilable,
5678 comp__compilable, 5677 doc: /* Non-nil when comp.el can be native compiled.
5679 doc: /* Non-nil when comp.el can be native compiled.
5680For internal use. */); 5678For internal use. */);
5681 /* Compiler control customizes. */ 5679 /* Compiler control customizes. */
5682 DEFVAR_LISP ("inhibit-automatic-native-compilation", 5680 DEFVAR_BOOL ("native-comp-jit-compilation", native_comp_jit_compilation,
5683 Vinhibit_automatic_native_compilation, 5681 doc: /* If non-nil, compile loaded .elc files asynchronously.
5684 doc: /* If non-nil, inhibit automatic native compilation of loaded .elc files.
5685 5682
5686After compilation, each function definition is updated to the native 5683After compilation, each function definition is updated to use the
5687compiled one. */); 5684natively-compiled one. */);
5688 Vinhibit_automatic_native_compilation = Qnil; 5685 native_comp_jit_compilation = true;
5689
5690 DEFVAR_BOOL ("native-comp-deferred-compilation",
5691 native_comp_deferred_compilation,
5692 doc: /* If non-nil compile loaded .elc files asynchronously.
5693
5694After compilation, each function definition is updated to the native
5695compiled one. */);
5696 native_comp_deferred_compilation = true;
5697 5686
5698 DEFSYM (Qnative_comp_speed, "native-comp-speed"); 5687 DEFSYM (Qnative_comp_speed, "native-comp-speed");
5699 DEFSYM (Qnative_comp_debug, "native-comp-debug"); 5688 DEFSYM (Qnative_comp_debug, "native-comp-debug");
@@ -5837,74 +5826,83 @@ compiled one. */);
5837 /* FIXME should be initialized but not here... Plus this don't have 5826 /* FIXME should be initialized but not here... Plus this don't have
5838 to be necessarily exposed to lisp but can easy debug for now. */ 5827 to be necessarily exposed to lisp but can easy debug for now. */
5839 DEFVAR_LISP ("comp-subr-list", Vcomp_subr_list, 5828 DEFVAR_LISP ("comp-subr-list", Vcomp_subr_list,
5840 doc: /* List of all defined subrs. */); 5829 doc: /* List of all defined subrs. */);
5841 DEFVAR_LISP ("comp-abi-hash", Vcomp_abi_hash, 5830 DEFVAR_LISP ("comp-abi-hash", Vcomp_abi_hash,
5842 doc: /* String signing the .eln files ABI. */); 5831 doc: /* String signing the .eln files ABI. */);
5843 Vcomp_abi_hash = Qnil; 5832 Vcomp_abi_hash = Qnil;
5844 DEFVAR_LISP ("comp-native-version-dir", Vcomp_native_version_dir, 5833 DEFVAR_LISP ("comp-native-version-dir", Vcomp_native_version_dir,
5845 doc: /* Directory in use to disambiguate eln compatibility. */); 5834 doc: /* Directory in use to disambiguate eln compatibility. */);
5846 Vcomp_native_version_dir = Qnil; 5835 Vcomp_native_version_dir = Qnil;
5847 5836
5848 DEFVAR_LISP ("comp-deferred-pending-h", Vcomp_deferred_pending_h, 5837 DEFVAR_LISP ("comp-deferred-pending-h", Vcomp_deferred_pending_h,
5849 doc: /* Hash table symbol-name -> function-value. 5838 doc: /* Hash table symbol-name -> function-value.
5850For internal use. */); 5839For internal use. */);
5851 Vcomp_deferred_pending_h = CALLN (Fmake_hash_table, QCtest, Qeq); 5840 Vcomp_deferred_pending_h = CALLN (Fmake_hash_table, QCtest, Qeq);
5852 5841
5853 DEFVAR_LISP ("comp-eln-to-el-h", Vcomp_eln_to_el_h, 5842 DEFVAR_LISP ("comp-eln-to-el-h", Vcomp_eln_to_el_h,
5854 doc: /* Hash table eln-filename -> el-filename. */); 5843 doc: /* Hash table eln-filename -> el-filename. */);
5855 Vcomp_eln_to_el_h = CALLN (Fmake_hash_table, QCtest, Qequal); 5844 Vcomp_eln_to_el_h = CALLN (Fmake_hash_table, QCtest, Qequal);
5856 5845
5857 DEFVAR_LISP ("native-comp-eln-load-path", Vnative_comp_eln_load_path, 5846 DEFVAR_LISP ("native-comp-eln-load-path", Vnative_comp_eln_load_path,
5858 doc: /* List of eln cache directories. 5847 doc: /* List of directories to look for natively-compiled *.eln files.
5859 5848
5860If a directory is non absolute it is assumed to be relative to 5849The *.eln files are actually looked for in a version-specific
5861`invocation-directory'. 5850subdirectory of each directory in this list. That subdirectory
5862`comp-native-version-dir' value is used as a sub-folder name inside 5851is determined by the value of `comp-native-version-dir'.
5863each eln cache directory. 5852If the name of a directory in this list is not absolute, it is
5864The last directory of this list is assumed to be the system one. */); 5853assumed to be relative to `invocation-directory'.
5854The last directory of this list is assumed to be the one holding
5855the system *.eln files, which are the files produced when building
5856Emacs. */);
5865 5857
5866 /* Temporary value in use for bootstrap. We can't do better as 5858 /* Temporary value in use for bootstrap. We can't do better as
5867 `invocation-directory' is still unset, will be fixed up during 5859 `invocation-directory' is still unset, will be fixed up during
5868 dump reload. */ 5860 dump reload. */
5869 Vnative_comp_eln_load_path = Fcons (build_string ("../native-lisp/"), Qnil); 5861 Vnative_comp_eln_load_path = Fcons (build_string ("../native-lisp/"), Qnil);
5870 5862
5871 DEFVAR_BOOL ("comp-enable-subr-trampolines", comp_enable_subr_trampolines, 5863 DEFVAR_LISP ("native-comp-enable-subr-trampolines",
5872 doc: /* If non-nil, enable primitive trampoline synthesis. 5864 Vnative_comp_enable_subr_trampolines,
5873This makes Emacs respect redefinition or advises of primitive functions 5865 doc: /* If non-nil, enable generation of trampolines for calling primitives.
5874when they are called from Lisp code natively-compiled at `native-comp-speed' 5866Trampolines are needed so that Emacs respects redefinition or advice of
5875of 2. 5867primitive functions when they are called from Lisp code natively-compiled
5868at `native-comp-speed' of 2.
5876 5869
5877By default, this is enabled, and when Emacs sees a redefined or advised 5870By default, the value is t, and when Emacs sees a redefined or advised
5878primitive called from natively-compiled Lisp, it generates a trampoline 5871primitive called from natively-compiled Lisp, it generates a trampoline
5879for it on-the-fly. 5872for it on-the-fly.
5880 5873
5881Disabling this, when a trampoline for a redefined or advised primitive is 5874If the value is a file name (a string), it specifies the directory in
5882not available from previous compilations, means that such redefinition 5875which to deposit the generated trampolines, overriding the directories
5883or advise will not have effect on calls from natively-compiled Lisp code. 5876in `native-comp-eln-load-path'.
5884That is, calls to primitives without existing trampolines from 5877
5885natively-compiled Lisp will behave as if the primitive was called 5878When this variable is nil, generation of trampolines is disabled.
5886directly from C. */); 5879
5880Disabling the generation of trampolines, when a trampoline for a redefined
5881or advised primitive is not already available from previous compilations,
5882means that such redefinition or advice will not have effect when calling
5883primitives from natively-compiled Lisp code. That is, calls to primitives
5884without existing trampolines from natively-compiled Lisp will behave as if
5885the primitive was called directly from C, and will ignore its redefinition
5886and advice. */);
5887 5887
5888 DEFVAR_LISP ("comp-installed-trampolines-h", Vcomp_installed_trampolines_h, 5888 DEFVAR_LISP ("comp-installed-trampolines-h", Vcomp_installed_trampolines_h,
5889 doc: /* Hash table subr-name -> installed trampoline. 5889 doc: /* Hash table subr-name -> installed trampoline.
5890This is used to prevent double trampoline instantiation but also to 5890This is used to prevent double trampoline instantiation, and also to
5891protect the trampolines against GC. */); 5891protect the trampolines against GC. */);
5892 Vcomp_installed_trampolines_h = CALLN (Fmake_hash_table); 5892 Vcomp_installed_trampolines_h = CALLN (Fmake_hash_table);
5893 5893
5894 DEFVAR_LISP ("comp-no-native-file-h", V_comp_no_native_file_h, 5894 DEFVAR_LISP ("comp-no-native-file-h", V_comp_no_native_file_h,
5895 doc: /* Files for which no deferred compilation has to be performed. 5895 doc: /* Files for which no deferred compilation should be performed.
5896These files' compilation should not be deferred because the bytecode 5896These files' compilation should not be deferred because the bytecode
5897version was explicitly requested by the user during load. 5897version was explicitly requested by the user during load.
5898For internal use. */); 5898For internal use. */);
5899 V_comp_no_native_file_h = CALLN (Fmake_hash_table, QCtest, Qequal); 5899 V_comp_no_native_file_h = CALLN (Fmake_hash_table, QCtest, Qequal);
5900 5900
5901 DEFVAR_BOOL ("comp-file-preloaded-p", comp_file_preloaded_p, 5901 DEFVAR_BOOL ("comp-file-preloaded-p", comp_file_preloaded_p,
5902 doc: /* When non-nil assume the file being compiled to 5902 doc: /* When non-nil, assume the file being compiled to be preloaded. */);
5903be preloaded. */);
5904 5903
5905 DEFVAR_LISP ("comp-loaded-comp-units-h", Vcomp_loaded_comp_units_h, 5904 DEFVAR_LISP ("comp-loaded-comp-units-h", Vcomp_loaded_comp_units_h,
5906 doc: /* Hash table recording all loaded compilation units. 5905 doc: /* Hash table recording all loaded compilation units, file -> CU. */);
5907file -> CU. */);
5908 Vcomp_loaded_comp_units_h = 5906 Vcomp_loaded_comp_units_h =
5909 CALLN (Fmake_hash_table, QCweakness, Qvalue, QCtest, Qequal); 5907 CALLN (Fmake_hash_table, QCweakness, Qvalue, QCtest, Qequal);
5910 5908
diff --git a/src/data.c b/src/data.c
index 04ac2b09ac3..1fa8b0358b5 100644
--- a/src/data.c
+++ b/src/data.c
@@ -855,7 +855,7 @@ DEFUN ("fset", Ffset, Sfset, 2, 2, 0,
855#ifdef HAVE_NATIVE_COMP 855#ifdef HAVE_NATIVE_COMP
856 register Lisp_Object function = XSYMBOL (symbol)->u.s.function; 856 register Lisp_Object function = XSYMBOL (symbol)->u.s.function;
857 857
858 if (comp_enable_subr_trampolines 858 if (!NILP (Vnative_comp_enable_subr_trampolines)
859 && SUBRP (function) 859 && SUBRP (function)
860 && !SUBR_NATIVE_COMPILEDP (function)) 860 && !SUBR_NATIVE_COMPILEDP (function))
861 CALLN (Ffuncall, Qcomp_subr_trampoline_install, symbol); 861 CALLN (Ffuncall, Qcomp_subr_trampoline_install, symbol);
diff --git a/src/treesit.c b/src/treesit.c
index cab2f0d5354..e1d6f1ef79f 100644
--- a/src/treesit.c
+++ b/src/treesit.c
@@ -720,6 +720,7 @@ Return nil if a grammar library for LANGUAGE is not available. */)
720 } 720 }
721} 721}
722 722
723
723/*** Parsing functions */ 724/*** Parsing functions */
724 725
725static void 726static void
@@ -770,7 +771,8 @@ treesit_record_change (ptrdiff_t start_byte, ptrdiff_t old_end_byte,
770 treesit_check_parser (lisp_parser); 771 treesit_check_parser (lisp_parser);
771 TSTree *tree = XTS_PARSER (lisp_parser)->tree; 772 TSTree *tree = XTS_PARSER (lisp_parser)->tree;
772 /* See comment (ref:visible-beg-null) if you wonder why we don't 773 /* See comment (ref:visible-beg-null) if you wonder why we don't
773 update visible_beg/end when tree is NULL. */ 774 update visible_beg/end when tree is NULL. */
775
774 if (tree != NULL) 776 if (tree != NULL)
775 { 777 {
776 eassert (start_byte <= old_end_byte); 778 eassert (start_byte <= old_end_byte);
@@ -794,8 +796,14 @@ treesit_record_change (ptrdiff_t start_byte, ptrdiff_t old_end_byte,
794 ptrdiff_t old_end_offset = (min (visible_end, 796 ptrdiff_t old_end_offset = (min (visible_end,
795 max (visible_beg, old_end_byte)) 797 max (visible_beg, old_end_byte))
796 - visible_beg); 798 - visible_beg);
797 ptrdiff_t new_end_offset = (min (visible_end, 799 /* We don't clip new_end_offset under visible_end, because
798 max (visible_beg, new_end_byte)) 800 inserting in narrowed region always extends the visible
801 region. If we clip new_end_offset here, and re-add the
802 clipped "tail" in treesit_sync_visible_region later,
803 while it is technically equivalent, tree-sitter's
804 incremental parsing algorithm doesn't seem to like it
805 (bug#61369). */
806 ptrdiff_t new_end_offset = (max (visible_beg, new_end_byte)
799 - visible_beg); 807 - visible_beg);
800 eassert (start_offset <= old_end_offset); 808 eassert (start_offset <= old_end_offset);
801 eassert (start_offset <= new_end_offset); 809 eassert (start_offset <= new_end_offset);
@@ -817,11 +825,13 @@ treesit_record_change (ptrdiff_t start_byte, ptrdiff_t old_end_byte,
817 /* Move forward. */ 825 /* Move forward. */
818 visi_beg_delta = (old_end_byte < visible_beg 826 visi_beg_delta = (old_end_byte < visible_beg
819 ? new_end_byte - old_end_byte : 0); 827 ? new_end_byte - old_end_byte : 0);
828
820 XTS_PARSER (lisp_parser)->visible_beg = visible_beg + visi_beg_delta; 829 XTS_PARSER (lisp_parser)->visible_beg = visible_beg + visi_beg_delta;
821 XTS_PARSER (lisp_parser)->visible_end = (visible_end 830 XTS_PARSER (lisp_parser)->visible_end = (visible_end
822 + visi_beg_delta 831 + visi_beg_delta
823 + (new_end_offset 832 + (new_end_offset
824 - old_end_offset)); 833 - old_end_offset));
834
825 eassert (XTS_PARSER (lisp_parser)->visible_beg >= 0); 835 eassert (XTS_PARSER (lisp_parser)->visible_beg >= 0);
826 eassert (XTS_PARSER (lisp_parser)->visible_beg 836 eassert (XTS_PARSER (lisp_parser)->visible_beg
827 <= XTS_PARSER (lisp_parser)->visible_end); 837 <= XTS_PARSER (lisp_parser)->visible_end);
@@ -1104,6 +1114,7 @@ treesit_read_buffer (void *parser, uint32_t byte_index,
1104 return beg; 1114 return beg;
1105} 1115}
1106 1116
1117
1107/*** Functions for parser and node object */ 1118/*** Functions for parser and node object */
1108 1119
1109/* Wrap the parser in a Lisp_Object to be used in the Lisp 1120/* Wrap the parser in a Lisp_Object to be used in the Lisp
@@ -1266,6 +1277,9 @@ treesit_ensure_query_compiled (Lisp_Object query, Lisp_Object *signal_symbol,
1266 return treesit_query; 1277 return treesit_query;
1267} 1278}
1268 1279
1280
1281/* Lisp definitions. */
1282
1269DEFUN ("treesit-parser-p", 1283DEFUN ("treesit-parser-p",
1270 Ftreesit_parser_p, Streesit_parser_p, 1, 1, 0, 1284 Ftreesit_parser_p, Streesit_parser_p, 1, 1, 0,
1271 doc: /* Return t if OBJECT is a tree-sitter parser. */) 1285 doc: /* Return t if OBJECT is a tree-sitter parser. */)
@@ -1484,6 +1498,7 @@ treesit_parser_live_p (Lisp_Object parser)
1484 (!NILP (Fbuffer_live_p (XTS_PARSER (parser)->buffer)))); 1498 (!NILP (Fbuffer_live_p (XTS_PARSER (parser)->buffer))));
1485} 1499}
1486 1500
1501
1487/*** Parser API */ 1502/*** Parser API */
1488 1503
1489DEFUN ("treesit-parser-root-node", 1504DEFUN ("treesit-parser-root-node",
@@ -1730,6 +1745,7 @@ positions. PARSER is the parser issuing the notification. */)
1730 return Qnil; 1745 return Qnil;
1731} 1746}
1732 1747
1748
1733/*** Node API */ 1749/*** Node API */
1734 1750
1735/* Check that OBJ is a positive integer and signal an error if 1751/* Check that OBJ is a positive integer and signal an error if
@@ -2252,6 +2268,7 @@ produced by tree-sitter. */)
2252 return same_node ? Qt : Qnil; 2268 return same_node ? Qt : Qnil;
2253} 2269}
2254 2270
2271
2255/*** Query functions */ 2272/*** Query functions */
2256 2273
2257DEFUN ("treesit-pattern-expand", 2274DEFUN ("treesit-pattern-expand",
@@ -2826,6 +2843,7 @@ the query. */)
2826 return Fnreverse (result); 2843 return Fnreverse (result);
2827} 2844}
2828 2845
2846
2829/*** Navigation */ 2847/*** Navigation */
2830 2848
2831static inline void 2849static inline void
@@ -3446,7 +3464,7 @@ DEFUN ("treesit-available-p", Ftreesit_available_p,
3446#endif 3464#endif
3447} 3465}
3448 3466
3449 3467
3450/*** Initialization */ 3468/*** Initialization */
3451 3469
3452/* Initialize the tree-sitter routines. */ 3470/* Initialize the tree-sitter routines. */
diff --git a/src/xdisp.c b/src/xdisp.c
index 1cc83cf946c..be6556a288a 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -13424,7 +13424,8 @@ gui_consider_frame_title (Lisp_Object frame)
13424 13424
13425 Fselect_window (f->selected_window, Qt); 13425 Fselect_window (f->selected_window, Qt);
13426 set_buffer_internal_1 (XBUFFER (XWINDOW (f->selected_window)->contents)); 13426 set_buffer_internal_1 (XBUFFER (XWINDOW (f->selected_window)->contents));
13427 fmt = FRAME_ICONIFIED_P (f) ? Vicon_title_format : Vframe_title_format; 13427 fmt = (FRAME_ICONIFIED_P (f) && !EQ (Vicon_title_format, Qt)
13428 ? Vicon_title_format : Vframe_title_format);
13428 13429
13429 mode_line_target = MODE_LINE_TITLE; 13430 mode_line_target = MODE_LINE_TITLE;
13430 title_start = MODE_LINE_NOPROP_LEN (0); 13431 title_start = MODE_LINE_NOPROP_LEN (0);
@@ -36655,9 +36656,11 @@ which no explicit name has been set (see `modify-frame-parameters'). */);
36655 DEFVAR_LISP ("icon-title-format", Vicon_title_format, 36656 DEFVAR_LISP ("icon-title-format", Vicon_title_format,
36656 doc: /* Template for displaying the title bar of an iconified frame. 36657 doc: /* Template for displaying the title bar of an iconified frame.
36657\(Assuming the window manager supports this feature.) 36658\(Assuming the window manager supports this feature.)
36658This variable has the same structure as `mode-line-format' (which see), 36659If the value is a string, it should have the same structure
36659and is used only on frames for which no explicit name has been set 36660as `mode-line-format' (which see), and is used only on frames
36660\(see `modify-frame-parameters'). */); 36661for which no explicit name has been set \(see `modify-frame-parameters').
36662If the value is t, that means use `frame-title-format' for
36663iconified frames. */);
36661 /* Do not nest calls to pure_list. This works around a bug in 36664 /* Do not nest calls to pure_list. This works around a bug in
36662 Oracle Developer Studio 12.6. */ 36665 Oracle Developer Studio 12.6. */
36663 Lisp_Object icon_title_name_format 36666 Lisp_Object icon_title_name_format