commit 489563a1666f54581e83cdf17f551f862966d186 (HEAD, refs/remotes/origin/master) Author: Paul Eggert Date: Fri Dec 23 23:15:52 2022 -0800 Update from Gnulib by running admin/merge-gnulib diff --git a/doc/misc/texinfo.tex b/doc/misc/texinfo.tex index cfc77a84ea8..cfe83359f65 100644 --- a/doc/misc/texinfo.tex +++ b/doc/misc/texinfo.tex @@ -3,7 +3,7 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2022-11-12.22} +\def\texinfoversion{2022-12-19.22} % % Copyright 1985, 1986, 1988, 1990-2022 Free Software Foundation, Inc. % @@ -591,6 +591,9 @@ % @/ allows a line break. \let\/=\allowbreak +% @- allows explicit insertion of hyphenation points +\def\-{\discretionary{\normaldash}{}{}}% + % @. is an end-of-sentence period. \def\.{.\spacefactor=\endofsentencespacefactor\space} @@ -1537,9 +1540,10 @@ \next} \def\makelink{\addtokens{\toksB}% {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} - \def\pdflink#1{% + \def\pdflink#1{\pdflinkpage{#1}{#1}}% + \def\pdflinkpage#1#2{% \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} - \setcolor{\linkcolor}#1\endlink} + \setcolor{\linkcolor}#2\endlink} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} \else % non-pdf mode @@ -1786,10 +1790,11 @@ \next} \def\makelink{\addtokens{\toksB}% {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} - \def\pdflink#1{% + \def\pdflink#1{\pdflinkpage{#1}{#1}}% + \def\pdflinkpage#1#2{% \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A << /S /GoTo /D (#1) >> >>}% - \setcolor{\linkcolor}#1\endlink} + \setcolor{\linkcolor}#2\endlink} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} % % @@ -2134,6 +2139,11 @@ \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% \fi\fi +% +% This is what gets called when #5 of \setfont is empty. +\let\cmap\gobble +% +% (end of cmaps) % Set the font macro #1 to the font named \fontprefix#2. @@ -2149,11 +2159,10 @@ \def\setfont#1#2#3#4#5{% \font#1=\fontprefix#2#3 scaled #4 \csname cmap#5\endcsname#1% + \ifx#2\ttshape\hyphenchar#1=-1 \fi + \ifx#2\ttbshape\hyphenchar#1=-1 \fi + \ifx#2\ttslshape\hyphenchar#1=-1 \fi } -% This is what gets called when #5 of \setfont is empty. -\let\cmap\gobble -% -% (end of cmaps) % Use cm as the default font prefix. % To specify the font prefix, you must define \fontprefix @@ -2815,13 +2824,6 @@ % @sansserif, explicit sans. \def\sansserif#1{{\sf #1}} -% We can't just use \exhyphenpenalty, because that only has effect at -% the end of a paragraph. Restore normal hyphenation at the end of the -% group within which \nohyphenation is presumably called. -% -\def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation} -\def\restorehyphenation{\hyphenchar\font = `- } - \newif\iffrenchspacing \frenchspacingfalse @@ -2890,27 +2892,29 @@ % Switch to typewriter. \tt % - % But `\ ' produces the large typewriter interword space. + % `\ ' produces the large typewriter interword space. \def\ {{\spaceskip = 0pt{} }}% % - % Turn off hyphenation. - \nohyphenation - % \plainfrenchspacing #1% }% \null % reset spacefactor to 1000 } -% We *must* turn on hyphenation at `-' and `_' in @code. -% (But see \codedashfinish below.) +% This is for LuaTeX: It is not sufficient to disable hyphenation at +% explicit dashes by setting `\hyphenchar` to -1. +\def\dashnobreak{% + \normaldash + \penalty 10000 } + +% We must turn on hyphenation at `-' and `_' in @code. % Otherwise, it is too hard to avoid overfull hboxes % in the Emacs manual, the Library manual, etc. +% We explicitly allow hyphenation at these characters +% using \discretionary. % -% Unfortunately, TeX uses one parameter (\hyphenchar) to control -% both hyphenation at - and hyphenation within words. -% We must therefore turn them both off (\tclose does that) -% and arrange explicitly to hyphenate at a dash. -- rms. +% Hyphenation at - and hyphenation within words was turned off +% by default for the tt fonts using the \hyphenchar parameter of TeX. { \catcode`\-=\active \catcode`\_=\active \catcode`\'=\active \catcode`\`=\active @@ -2923,7 +2927,7 @@ \let-\codedash \let_\codeunder \else - \let-\normaldash + \let-\dashnobreak \let_\realunder \fi % Given -foo (with a single dash), we do not want to allow a break @@ -3200,7 +3204,7 @@ % definition of @key with no lozenge. % -\def\key#1{{\setregularquotes \nohyphenation \tt #1}\null} +\def\key#1{{\setregularquotes \tt #1}\null} % @clicksequence{File @click{} Open ...} \def\clicksequence#1{\begingroup #1\endgroup} @@ -3747,6 +3751,7 @@ % Open one extra group, as we want to close it in the middle of \Etitlepage. \begingroup \parindent=0pt \textfonts + \headingsoff % Leave some space at the very top of the page. \vglue\titlepagetopglue % No rule at page bottom unless we print one at the top with @title. @@ -3774,11 +3779,9 @@ % If we use the new definition of \page, we always get a blank page % after the title page, which we certainly don't want. \oldpage + \pageone \endgroup % - % Need this before the \...aftertitlepage checks so that if they are - % in effect the toc pages will come out with page numbers. - \HEADINGSon } \def\finishtitlepage{% @@ -3947,7 +3950,6 @@ } \def\HEADINGSoff{{\globaldefs=1 \headingsoff}} % global setting -\HEADINGSoff % it's the default % When we turn headings on, set the page number to 1. \def\pageone{ @@ -3971,7 +3973,7 @@ \pageone \HEADINGSsinglex } -\def\HEADINGSon{\HEADINGSdouble} +% \def\HEADINGSon{\HEADINGSdouble} % defined by \CHAPPAGon \def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex} \let\HEADINGSdoubleafter=\HEADINGSafter @@ -5616,6 +5618,11 @@ \newdimen\entryrightmargin \entryrightmargin=0pt +% for PDF output, whether to make the text of the entry a link to the page +% number. set for @contents and @shortcontents where there is only one +% page number. +\newif\iflinkentrytext + % \entry typesets a paragraph consisting of the text (#1), dot leaders, and % then page number (#2) flushed to the right margin. It is used for index % and table of contents entries. The paragraph is indented by \leftskip. @@ -5642,7 +5649,7 @@ } \def\entrybreak{\unskip\space\ignorespaces}% \def\doentry{% - % Save the text of the entry + % Save the text of the entry in \boxA \global\setbox\boxA=\hbox\bgroup \bgroup % Instead of the swallowed brace. \noindent @@ -5652,12 +5659,21 @@ % with catcodes occurring. } {\catcode`\@=11 +% #1 is the page number \gdef\finishentry#1{% - \egroup % end box A + \egroup % end \boxA \dimen@ = \wd\boxA % Length of text of entry + % add any leaders and page number to \boxA. \global\setbox\boxA=\hbox\bgroup - \unhbox\boxA - % #1 is the page number. + \ifpdforxetex + \iflinkentrytext + \pdflinkpage{#1}{\unhbox\boxA}% + \else + \unhbox\boxA + \fi + \else + \unhbox\boxA + \fi % % Get the width of the page numbers, and only use % leaders if they are present. @@ -5676,6 +5692,8 @@ \fi \fi \egroup % end \boxA + % + % now output \ifdim\wd\boxB = 0pt \noindent\unhbox\boxA\par \nobreak @@ -6375,7 +6393,7 @@ \fi } -\parseargdef\setchapternewpage{\csname CHAPPAG#1\endcsname} +\parseargdef\setchapternewpage{\csname CHAPPAG#1\endcsname\HEADINGSon} \def\CHAPPAGoff{% \global\let\contentsalignmacro = \chappager @@ -6392,7 +6410,7 @@ \global\let\pchapsepmacro=\chapoddpage \global\def\HEADINGSon{\HEADINGSdouble}} -\CHAPPAGon +\setchapternewpage on % \chapmacro - Chapter opening. % @@ -6772,6 +6790,7 @@ \def\thistitle{}% no title in double-sided headings % Record where the Roman numerals started. \ifnum\romancount=0 \global\romancount=\pagecount \fi + \linkentrytexttrue } % \raggedbottom in plain.tex hardcodes \topskip so override it @@ -6899,7 +6918,7 @@ % Chapters, in the short toc. % See comments in \dochapentry re vbox and related settings. \def\shortchapentry#1#2#3#4{% - \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#4\egroup}% + \tocentry{\shortchaplabel{#2}\labelspace #1}{#4}% } % Appendices, in the main contents. @@ -6914,7 +6933,7 @@ % Unnumbered chapters. \def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}} -\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{\doshortpageno\bgroup#4\egroup}} +\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{#4}} % Sections. \def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}} @@ -6946,24 +6965,24 @@ % Move the page numbers slightly to the right \advance\entryrightmargin by -0.05em \chapentryfonts - \tocentry{#1}{\dopageno\bgroup#2\egroup}% + \tocentry{#1}{#2}% \endgroup \nobreak\vskip .25\baselineskip plus.1\baselineskip } \def\dosecentry#1#2{\begingroup \secentryfonts \leftskip=\tocindent - \tocentry{#1}{\dopageno\bgroup#2\egroup}% + \tocentry{#1}{#2}% \endgroup} \def\dosubsecentry#1#2{\begingroup \subsecentryfonts \leftskip=2\tocindent - \tocentry{#1}{\dopageno\bgroup#2\egroup}% + \tocentry{#1}{#2}% \endgroup} \def\dosubsubsecentry#1#2{\begingroup \subsubsecentryfonts \leftskip=3\tocindent - \tocentry{#1}{\dopageno\bgroup#2\egroup}% + \tocentry{#1}{#2}% \endgroup} % We use the same \entry macro as for the index entries. @@ -6972,9 +6991,6 @@ % Space between chapter (or whatever) number and the title. \def\labelspace{\hskip1em \relax} -\def\dopageno#1{{\rm #1}} -\def\doshortpageno#1{{\rm #1}} - \def\chapentryfonts{\secfonts \rm} \def\secentryfonts{\textfonts} \def\subsecentryfonts{\textfonts} @@ -7410,7 +7426,7 @@ \endgroup % \def\setupverb{% - \tt % easiest (and conventionally used) font for verbatim + \tt \def\par{\leavevmode\endgraf}% \setcodequotes \tabeightspaces @@ -7587,32 +7603,28 @@ \exdentamount=\defbodyindent } -\def\dodefunx#1{% - % First, check whether we are in the right environment: - \checkenv#1% - % - % As above, allow line break if we have multiple x headers in a row. - % It's not a great place, though. - \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi - % - % And now, it's time to reuse the body of the original defun: - \expandafter\gobbledefun#1% -} -\def\gobbledefun#1\startdefun{} +\newtoks\defidx +\newtoks\deftext -% \printdefunline \deffnheader{text} +\def\useindex#1{\defidx={#1}\ignorespaces} + +% Called as \printdefunline \deffooheader{text} % \def\printdefunline#1#2{% \begingroup \plainfrenchspacing - % call \deffnheader: + % call \deffooheader: #1#2 \endheader + % create the index entry + \defcharsdefault + \edef\temp{\noexpand\doind{\the\defidx}{\the\deftext}}% + \temp % common ending: \interlinepenalty = 10000 \advance\rightskip by 0pt plus 1fil\relax \endgraf \nobreak\vskip -\parskip - \penalty\defunpenalty % signal to \startdefun and \dodefunx + \penalty\defunpenalty % signal to \startdefun and \deffoox % Some of the @defun-type tags do not enable magic parentheses, % rendering the following check redundant. But we don't optimize. \checkparencounts @@ -7621,7 +7633,7 @@ \def\Edefun{\endgraf\medbreak} -% \makedefun{deffoo}{ (definition of \deffooheader) } +% \makedefun{deffoo} (\deffooheader parameters) { (\deffooheader expansion) } % % Define \deffoo, \deffoox \Edeffoo and \deffooheader. \def\makedefun#1{% @@ -7636,8 +7648,18 @@ \doingtypefnfalse % distinguish typed functions from all else \parseargusing\activeparens{\printdefunline#3}% }% - \def#2{\dodefunx#1}% - \def#3% + \def#2{% + % First, check whether we are in the right environment: + \checkenv#1% + % + % As in \startdefun, allow line break if we have multiple x headers + % in a row. It's not a great place, though. + \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi + % + \doingtypefnfalse % distinguish typed functions from all else + \parseargusing\activeparens{\printdefunline#3}% + }% + \def#3% definition of \deffooheader follows } \newif\ifdoingtypefn % doing typed function? @@ -7662,18 +7684,23 @@ \fi\fi } +\def\defind#1#2{ + \defidx={#1}% + \deftext={#2}% +} + % Untyped functions: % @deffn category name args \makedefun{deffn}#1 #2 #3\endheader{% - \doind{fn}{\code{#2}}% + \defind{fn}{\code{#2}}% \defname{#1}{}{#2}\magicamp\defunargs{#3\unskip}% } % @defop category class name args \makedefun{defop}#1 {\defopheaderx{#1\ \putwordon}} \def\defopheaderx#1#2 #3 #4\endheader{% - \doind{fn}{\code{#3}\space\putwordon\ \code{#2}}% + \defind{fn}{\code{#3}\space\putwordon\ \code{#2}}% \defname{#1\ \code{#2}}{}{#3}\magicamp\defunargs{#4\unskip}% } @@ -7681,7 +7708,7 @@ % @deftypefn category type name args \makedefun{deftypefn}#1 #2 #3 #4\endheader{% - \doind{fn}{\code{#3}}% + \defind{fn}{\code{#3}}% \doingtypefntrue \defname{#1}{#2}{#3}\defunargs{#4\unskip}% } @@ -7689,7 +7716,7 @@ % @deftypeop category class type name args \makedefun{deftypeop}#1 {\deftypeopheaderx{#1\ \putwordon}} \def\deftypeopheaderx#1#2 #3 #4 #5\endheader{% - \doind{fn}{\code{#4}\space\putwordon\ \code{#1\ \code{#2}}}% + \defind{fn}{\code{#4}\space\putwordon\ \code{#1\ \code{#2}}}% \doingtypefntrue \defname{#1\ \code{#2}}{#3}{#4}\defunargs{#5\unskip}% } @@ -7698,14 +7725,14 @@ % @deftypevr category type var args \makedefun{deftypevr}#1 #2 #3 #4\endheader{% - \doind{vr}{\code{#3}}% + \defind{vr}{\code{#3}}% \defname{#1}{#2}{#3}\defunargs{#4\unskip}% } % @deftypecv category class type var args \makedefun{deftypecv}#1 {\deftypecvheaderx{#1\ \putwordof}} \def\deftypecvheaderx#1#2 #3 #4 #5\endheader{% - \doind{vr}{\code{#4}\space\putwordof\ \code{#2}}% + \defind{vr}{\code{#4}\space\putwordof\ \code{#2}}% \defname{#1\ \code{#2}}{#3}{#4}\defunargs{#5\unskip}% } @@ -7722,7 +7749,7 @@ % @deftp category name args \makedefun{deftp}#1 #2 #3\endheader{% - \doind{tp}{\code{#2}}% + \defind{tp}{\code{#2}}% \defname{#1}{}{#2}\defunargs{#3\unskip}% } @@ -10489,7 +10516,7 @@ \DeclareUnicodeCharacter{00AE}{\registeredsymbol{}}% \DeclareUnicodeCharacter{00AF}{\={ }}% % - \DeclareUnicodeCharacter{00B0}{\textdegree} + \DeclareUnicodeCharacter{00B0}{\textdegree}% \DeclareUnicodeCharacter{00B1}{\ensuremath\pm}% \DeclareUnicodeCharacter{00B2}{$^2$}% \DeclareUnicodeCharacter{00B3}{$^3$}% diff --git a/lib/file-has-acl.c b/lib/file-has-acl.c index e02f0626ad3..676523ba821 100644 --- a/lib/file-has-acl.c +++ b/lib/file-has-acl.c @@ -29,9 +29,97 @@ #include "acl-internal.h" -#if GETXATTR_WITH_POSIX_ACLS +#if USE_ACL && GETXATTR_WITH_POSIX_ACLS +# include +# include # include # include +# ifndef XATTR_NAME_NFSV4_ACL +# define XATTR_NAME_NFSV4_ACL "system.nfs4_acl" +# endif + +enum { + /* ACE4_ACCESS_ALLOWED_ACE_TYPE = 0x00000000, */ + ACE4_ACCESS_DENIED_ACE_TYPE = 0x00000001, + ACE4_IDENTIFIER_GROUP = 0x00000040 +}; + +/* Return 1 if given ACL in XDR format is non-trivial, 0 if it is trivial. + -1 upon failure to determine it. Possibly change errno. Assume that + the ACL is valid, except avoid undefined behavior even if invalid. + + See . The NFSv4 acls are + defined in Internet RFC 7530 and as such, every NFSv4 server + supporting ACLs should support NFSv4 ACLs (they differ from from + POSIX draft ACLs). The ACLs can be obtained via the + nfsv4-acl-tools, e.g., the nfs4_getfacl command. Gnulib provides + only basic support of NFSv4 ACLs, i.e., recognize trivial vs + nontrivial ACLs. */ + +static int +acl_nfs4_nontrivial (uint32_t *xattr, ssize_t nbytes) +{ + enum { BYTES_PER_NETWORK_UINT = 4}; + + /* Grab the number of aces in the acl. */ + nbytes -= BYTES_PER_NETWORK_UINT; + if (nbytes < 0) + return -1; + uint32_t num_aces = ntohl (*xattr++); + if (6 < num_aces) + return 1; + int ace_found = 0; + + for (int ace_n = 0; ace_n < num_aces; ace_n++) + { + /* Get the acl type and flag. Skip the mask; it's too risky to + test it and it does not seem to be needed. Get the wholen. */ + nbytes -= 4 * BYTES_PER_NETWORK_UINT; + if (nbytes < 0) + return -1; + uint32_t type = ntohl (xattr[0]); + uint32_t flag = ntohl (xattr[1]); + uint32_t wholen = ntohl (xattr[3]); + xattr += 4; + int64_t wholen4 = wholen; + wholen4 = ((wholen4 + (BYTES_PER_NETWORK_UINT)) + & ~ (BYTES_PER_NETWORK_UINT - 1)); + + /* Trivial ACLs have only ACE4_ACCESS_ALLOWED_ACE_TYPE or + ACE4_ACCESS_DENIED_ACE_TYPE. */ + if (ACE4_ACCESS_DENIED_ACE_TYPE < type) + return 1; + + /* RFC 7530 says FLAG should be 0, but be generous to NetApp and + also accept the group flag. */ + if (flag & ~ACE4_IDENTIFIER_GROUP) + return 1; + + /* Get the who string. Check NBYTES - WHOLEN4 before storing + into NBYTES, to avoid truncation on conversion. */ + if (nbytes - wholen4 < 0) + return -1; + nbytes -= wholen4; + + /* For a trivial ACL, max 6 (typically 3) ACEs, 3 allow, 3 deny. + Check that there is at most one ACE of each TYPE and WHO. */ + int who2 + = (wholen == 6 && memcmp (xattr, "OWNER@", 6) == 0 ? 0 + : wholen == 6 && memcmp (xattr, "GROUP@", 6) == 0 ? 2 + : wholen == 9 && memcmp (xattr, "EVERYONE@", 9) == 0 ? 4 + : -1); + if (who2 < 0) + return 1; + int ace_found_bit = 1 << (who2 | type); + if (ace_found & ace_found_bit) + return 1; + ace_found |= ace_found_bit; + + xattr = (uint32_t *) ((char *) xattr + wholen4); + } + + return 0; +} #endif /* Return 1 if NAME has a nontrivial access control list, @@ -51,6 +139,7 @@ file_has_acl (char const *name, struct stat const *sb) # if GETXATTR_WITH_POSIX_ACLS ssize_t ret; + int initial_errno = errno; ret = getxattr (name, XATTR_NAME_POSIX_ACL_ACCESS, NULL, 0); if (ret < 0 && errno == ENODATA) @@ -67,6 +156,35 @@ file_has_acl (char const *name, struct stat const *sb) return 1; } + if (ret < 0) + { + /* Check for NFSv4 ACLs. The max length of a trivial + ACL is 6 words for owner, 6 for group, 7 for everyone, + all times 2 because there are both allow and deny ACEs. + There are 6 words for owner because of type, flag, mask, + wholen, "OWNER@"+pad and similarly for group; everyone is + another word to hold "EVERYONE@". */ + uint32_t xattr[2 * (6 + 6 + 7)]; + + ret = getxattr (name, XATTR_NAME_NFSV4_ACL, xattr, sizeof xattr); + if (ret < 0) + switch (errno) + { + case ENODATA: return 0; + case ERANGE : return 1; /* ACL must be nontrivial. */ + } + else + { + /* It looks like a trivial ACL, but investigate further. */ + ret = acl_nfs4_nontrivial (xattr, ret); + if (ret < 0) + { + errno = EINVAL; + return ret; + } + errno = initial_errno; + } + } if (ret < 0) return - acl_errno_valid (errno); return ret; diff --git a/lib/time.in.h b/lib/time.in.h index 6aa67498f57..aba2eda8759 100644 --- a/lib/time.in.h +++ b/lib/time.in.h @@ -315,6 +315,7 @@ _GL_CXXALIASWARN (strptime); # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define ctime rpl_ctime # endif +_GL_ATTRIBUTE_DEPRECATED _GL_FUNCDECL_RPL (ctime, char *, (time_t const *__tp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (ctime, char *, (time_t const *__tp)); diff --git a/m4/gnulib-common.m4 b/m4/gnulib-common.m4 index d17cbec58cb..8f5cc1617ab 100644 --- a/m4/gnulib-common.m4 +++ b/m4/gnulib-common.m4 @@ -105,14 +105,10 @@ AC_DEFUN # define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4) #endif -#ifdef __has_c_attribute -# if ((defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) <= 201710 \ - && _GL_GNUC_PREREQ (4, 6)) -# pragma GCC diagnostic ignored "-Wpedantic" -# endif -# define _GL_HAS_C_ATTRIBUTE(attr) __has_c_attribute (__##attr##__) -#else -# define _GL_HAS_C_ATTRIBUTE(attr) 0 +/* Disable GCC -Wpedantic if using __has_c_attribute and this is not C23+. */ +#if (defined __has_c_attribute && _GL_GNUC_PREREQ (4, 6) \ + && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) <= 201710) +# pragma GCC diagnostic ignored "-Wpedantic" #endif ]dnl There is no _GL_ATTRIBUTE_ALIGNED; use stdalign's alignas instead. @@ -202,11 +198,15 @@ AC_DEFUN - enumeration, enumeration item, - typedef, in C++ also: namespace, class, template specialization. */ -#if _GL_HAS_C_ATTRIBUTE (deprecated) -# define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]] -#elif _GL_HAS_ATTRIBUTE (deprecated) +#ifdef __has_c_attribute +# if __has_c_attribute (__deprecated__) +# define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]] +# endif +#endif +#if !defined _GL_ATTRIBUTE_DEPRECATED && _GL_HAS_ATTRIBUTE (deprecated) # define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__)) -#else +#endif +#ifndef _GL_ATTRIBUTE_DEPRECATED # define _GL_ATTRIBUTE_DEPRECATED #endif @@ -240,11 +240,15 @@ AC_DEFUN 'default' label. The compiler should not warn in this case. */ /* Applies to: Empty statement (;), inside a 'switch' statement. */ /* Always expands to something. */ -#if _GL_HAS_C_ATTRIBUTE (fallthrough) -# define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]] -#elif _GL_HAS_ATTRIBUTE (fallthrough) +#ifdef __has_c_attribute +# if __has_c_attribute (__fallthrough__) +# define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]] +# endif +#endif +#if !defined _GL_ATTRIBUTE_FALLTHROUGH && _GL_HAS_ATTRIBUTE (fallthrough) # define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__)) -#else +#endif +#ifndef _GL_ATTRIBUTE_FALLTHROUGH # define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0) #endif @@ -308,9 +312,12 @@ AC_DEFUN /* In C++ and C2x, this is spelled [[__maybe_unused__]]. GCC's syntax is __attribute__ ((__unused__)). clang supports both syntaxes. */ -#if _GL_HAS_C_ATTRIBUTE (maybe_unused) -# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]] -#else +#ifdef __has_c_attribute +# if __has_c_attribute (__maybe_unused__) +# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]] +# endif +#endif +#ifndef _GL_ATTRIBUTE_MAYBE_UNUSED # define _GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_UNUSED #endif /* Alternative spelling of this macro, for convenience and for @@ -323,11 +330,15 @@ AC_DEFUN discard the return value. The compiler may warn if the caller does not use the return value, unless the caller uses something like ignore_value. */ /* Applies to: function, enumeration, class. */ -#if _GL_HAS_C_ATTRIBUTE (nodiscard) -# define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]] -#elif _GL_HAS_ATTRIBUTE (warn_unused_result) +#ifdef __has_c_attribute +# if __has_c_attribute (__nodiscard__) +# define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]] +# endif +#endif +#if !defined _GL_ATTRIBUTE_NODISCARD && _GL_HAS_ATTRIBUTE (warn_unused_result) # define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__)) -#else +#endif +#ifndef _GL_ATTRIBUTE_NODISCARD # define _GL_ATTRIBUTE_NODISCARD #endif commit 785095c416f9bae43d2947849282b814e2c7942e Author: Po Lu Date: Sat Dec 24 14:19:46 2022 +0800 ; * src/xterm.c (x_error_quitter): Fix typo. diff --git a/src/xterm.c b/src/xterm.c index 9f6d5196720..8e0a97899fe 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -26318,8 +26318,8 @@ x_error_quitter (Display *display, XErrorEvent *event) sprintf (buf1, "X protocol error: %s on protocol request %d\n" "Serial no: %lu\n" "Failing resource ID (if any): 0x%lx\n" - "Minor code: %d\n", - "This is a bug! Please report this to bug-gnu-emacs@gnu.org!\n" + "Minor code: %d\n" + "This is a bug! Please report this to bug-gnu-emacs@gnu.org!\n", buf, event->request_code, event->serial, event->resourceid, event->minor_code); x_connection_closed (display, buf1, false); commit 283043621756fd004906ecdd5ba829a47cb3fc57 Author: Po Lu Date: Sat Dec 24 14:12:17 2022 +0800 Print out more X error details * src/xterm.c (x_error_quitter): Print the failing resource ID and minor code on an X error. diff --git a/src/xterm.c b/src/xterm.c index acb008475c7..9f6d5196720 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -26300,8 +26300,10 @@ x_error_handler (Display *display, XErrorEvent *event) static void NO_INLINE x_error_quitter (Display *display, XErrorEvent *event) { - char buf[256], buf1[400 + INT_STRLEN_BOUND (int) - + INT_STRLEN_BOUND (unsigned long)]; + char buf[256], buf1[800 + INT_STRLEN_BOUND (int) + + INT_STRLEN_BOUND (unsigned long) + + INT_STRLEN_BOUND (XID) + + INT_STRLEN_BOUND (int)]; /* Ignore BadName errors. They can happen because of fonts or colors that are not defined. */ @@ -26314,8 +26316,12 @@ x_error_quitter (Display *display, XErrorEvent *event) XGetErrorText (display, event->error_code, buf, sizeof (buf)); sprintf (buf1, "X protocol error: %s on protocol request %d\n" - "Serial no: %lu\n", buf, event->request_code, - event->serial); + "Serial no: %lu\n" + "Failing resource ID (if any): 0x%lx\n" + "Minor code: %d\n", + "This is a bug! Please report this to bug-gnu-emacs@gnu.org!\n" + buf, event->request_code, event->serial, event->resourceid, + event->minor_code); x_connection_closed (display, buf1, false); } commit 8fcedd81ab665a89f03d664a3c71308b5980604a Merge: ed0414de60d 9a3b08061fe Author: Stefan Kangas Date: Sat Dec 24 06:30:29 2022 +0100 Merge from origin/emacs-29 9a3b08061fe Fix ruby-mode.el local command injection vulnerability (b... 4b44a395b3c ; * etc/NEWS: Fix typos. 458e1752701 Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs ... eccb813a943 Fix "C-h k" in recursive minibuffers 6dda2106ece ; Improve documentation of "C-x @" a0738e8ad13 ; * etc/NEWS: Announce the new behavior of 'C-h f'. (Bug... 86b11981b0d Update Tramp version (don't merge with master) # Conflicts: # etc/NEWS commit ed0414de60ddfca4f446b29f20fe6a610d130adc Merge: 666c24a6269 86b11981b0d Author: Stefan Kangas Date: Sat Dec 24 06:30:28 2022 +0100 ; Merge from origin/emacs-29 The following commit was skipped: 86b11981b0d Update Tramp version (don't merge with master) commit 666c24a6269c35f27145350206cbbc057863e557 Author: Sean Whitton Date: Thu Dec 22 20:54:08 2022 -0700 vc-git-checkin: Stash other staged changes * lisp/vc/vc-git.el (vc-git--stash-staged-changes): New function. (vc-git-checkin): Use new function to avoid needing to unstage changes unrelated to the patch we want to commit (bug#60126). diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 0a4e9caa614..671be66bbef 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -1020,22 +1020,36 @@ vc-git-checkin ;; message. Handle also remote files. (if (eq system-type 'windows-nt) (let ((default-directory (file-name-directory file1))) - (make-nearby-temp-file "git-msg"))))) + (make-nearby-temp-file "git-msg")))) + to-stash) (when vc-git-patch-string (unless (zerop (vc-git-command nil t nil "diff" "--cached" "--quiet")) - ;; Check that all staged changes also exist in the patch. - ;; This is needed to allow adding/removing files that are - ;; currently staged to the index. So remove the whole file diff - ;; from the patch because commit will take it from the index. + ;; Check that what's already staged is compatible with what + ;; we want to commit (bug#60126). + ;; + ;; 1. If the changes to a file in the index are identical to + ;; the changes to that file we want to commit, remove the + ;; changes from our patch, and let the commit take them + ;; from the index. This is necessary for adding and + ;; removing files to work. + ;; + ;; 2. If the changes to a file in the index are different to + ;; changes to that file we want to commit, then we have to + ;; unstage the changes or abort. + ;; + ;; 3. If there are changes to a file in the index but we don't + ;; want to commit any changes to that file, we need to + ;; stash those changes before committing. (with-temp-buffer (vc-git-command (current-buffer) t nil "diff" "--cached") (goto-char (point-min)) - (let ((pos (point)) file-name file-diff file-beg) + (let ((pos (point)) file-name file-header file-diff file-beg) (while (not (eobp)) (when (and (looking-at "^diff --git a/\\(.+\\) b/\\(.+\\)") (string= (match-string 1) (match-string 2))) (setq file-name (match-string 1))) (forward-line 1) ; skip current "diff --git" line + (setq file-header (buffer-substring pos (point))) (search-forward "diff --git" nil 'move) (move-beginning-of-line 1) (setq file-diff (buffer-substring pos (point))) @@ -1049,12 +1063,15 @@ vc-git-checkin (+ file-beg (length file-diff))))) (setq vc-git-patch-string (string-replace file-diff "" vc-git-patch-string))) - ((and file-name - (yes-or-no-p - (format "Unstage already-staged changes to %s?" - file-name))) - (vc-git-command nil 0 file-name "reset" "-q" "--")) - (t (user-error "Index not empty"))) + ((string-match (format "^%s" (regexp-quote file-header)) + vc-git-patch-string) + (if (and file-name + (yes-or-no-p + (format "Unstage already-staged changes to %s?" + file-name))) + (vc-git-command nil 0 file-name "reset" "-q" "--") + (user-error "Index not empty"))) + (t (push file-name to-stash))) (setq pos (point)))))) (unless (string-empty-p vc-git-patch-string) (let ((patch-file (make-nearby-temp-file "git-patch"))) @@ -1062,7 +1079,8 @@ vc-git-checkin (insert vc-git-patch-string)) (unwind-protect (vc-git-command nil 0 patch-file "apply" "--cached") - (delete-file patch-file))))) + (delete-file patch-file)))) + (when to-stash (vc-git--stash-staged-changes files))) (cl-flet ((boolean-arg-fn (argument) (lambda (value) (when (equal value "yes") (list argument))))) @@ -1088,7 +1106,58 @@ vc-git-checkin args) (unless vc-git-patch-string (if only (list "--only" "--") '("-a")))))) - (if (and msg-file (file-exists-p msg-file)) (delete-file msg-file)))) + (if (and msg-file (file-exists-p msg-file)) (delete-file msg-file)) + (when to-stash + (let ((cached (make-nearby-temp-file "git-cached"))) + (unwind-protect + (progn (with-temp-file cached + (vc-git-command t 0 nil "stash" "show" "-p")) + (vc-git-command nil 0 cached "apply" "--cached")) + (delete-file cached)) + (vc-git-command nil 0 nil "stash" "drop"))))) + +(defun vc-git--stash-staged-changes (files) + "Stash only the staged changes to FILES." + ;; This is necessary because even if you pass a list of file names + ;; to 'git stash push', it will stash any and all staged changes. + (unless (zerop + (vc-git-command nil t files "diff" "--cached" "--quiet")) + (cl-flet + ((git-string (&rest args) + (string-trim-right + (with-output-to-string + (apply #'vc-git-command standard-output 0 nil args))))) + (let ((cached (make-nearby-temp-file "git-cached")) + (message "Previously staged changes") + tree) + ;; Use a temporary index to create a tree object corresponding + ;; to the staged changes to FILES. + (unwind-protect + (progn + (with-temp-file cached + (vc-git-command t 0 files "diff" "--cached" "--")) + (let* ((index (make-nearby-temp-file "git-index")) + (process-environment + (cons (format "GIT_INDEX_FILE=%s" index) + process-environment))) + (unwind-protect + (progn + (vc-git-command nil 0 nil "read-tree" "HEAD") + (vc-git-command nil 0 cached "apply" "--cached") + (setq tree (git-string "write-tree"))) + (delete-file index)))) + (delete-file cached)) + ;; Prepare stash commit object, which has a special structure. + (let* ((tree-commit (git-string "commit-tree" "-m" message + "-p" "HEAD" tree)) + (stash-commit (git-string "commit-tree" "-m" message + "-p" "HEAD" "-p" tree-commit + tree))) + ;; Push the new stash entry. + (vc-git-command nil 0 nil "update-ref" "--create-reflog" + "-m" message "refs/stash" stash-commit) + ;; Unstage the changes we've now stashed. + (vc-git-command nil 0 files "reset" "--")))))) (defun vc-git-find-revision (file rev buffer) (let* (process-file-side-effects commit 9a3b08061feea14d6f37685ca1ab8801758bfd1c Author: Xi Lu Date: Fri Dec 23 12:52:48 2022 +0800 Fix ruby-mode.el local command injection vulnerability (bug#60268) * lisp/progmodes/ruby-mode.el (ruby-find-library-file): Fix local command injection vulnerability. diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el index 1f3e9b6ae7b..a4aa61905e4 100644 --- a/lisp/progmodes/ruby-mode.el +++ b/lisp/progmodes/ruby-mode.el @@ -1899,7 +1899,7 @@ ruby-find-library-file (setq feature-name (read-string "Feature name: " init)))) (let ((out (substring - (shell-command-to-string (concat "gem which " feature-name)) + (shell-command-to-string (concat "gem which " (shell-quote-argument feature-name))) 0 -1))) (if (string-match-p "\\`ERROR" out) (user-error "%s" out) commit 4b44a395b3c6760fbb9d19fe5d9d23117a79bbf0 Author: Michael Albinus Date: Fri Dec 23 19:29:37 2022 +0100 ; * etc/NEWS: Fix typos. diff --git a/etc/NEWS b/etc/NEWS index 5ce3e21e8bf..6f2f74fab46 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -266,14 +266,14 @@ in common default setups. Emacs now uses the same 'region' face on Gtk and non-Gtk setups. --- -** 'C-h f' and 'C-h x' may now require confirmation when you press RET. +** 'C-h f' and 'C-h x' may now require confirmation when you press 'RET'. If the text in the minibuffer cannot be completed to a single function -or command, typing RET will not automatically complete to the shortest -candidate, but will instead ask for confirmation. Typing TAB will -complete as much as possible, and another TAB will show all the +or command, typing 'RET' will not automatically complete to the shortest +candidate, but will instead ask for confirmation. Typing 'TAB' will +complete as much as possible, and another 'TAB' will show all the possible completions. This allows you to insist on the functions name even if Help doesn't appear to know about it, by confirming with a -second RET. +second 'RET'. ** Dired commit 458e1752701d22100131182fa04f89cc971f6d86 Merge: 86b11981b0d eccb813a943 Author: Michael Albinus Date: Fri Dec 23 18:36:08 2022 +0100 Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs into emacs-29 commit a5d39e11443fa30c8e8bc58254a1a59550dcd99e Author: Stefan Kangas Date: Fri Dec 23 18:21:10 2022 +0100 ; Fix typos diff --git a/ChangeLog.3 b/ChangeLog.3 index 4b3507bae31..bff2f7a66d9 100644 --- a/ChangeLog.3 +++ b/ChangeLog.3 @@ -3928,7 +3928,7 @@ * lisp/follow.el (follow-scroll-down): Do away with the optimization of doing vertical-motion over only one window. Instead move over all windows, to - checck for being close to point-min, and setting point accordingly. + check for being close to point-min, and setting point accordingly. 2021-11-13 Eli Zaretskii @@ -50632,7 +50632,7 @@ Allow for adding constraints targeting blocks with multiple predecessors - This commit remove the limitaiton we had not being able to add + This commit remove the limitation we had not being able to add constraints derived from conditional branches to basic blocks with multiple predecessors. When this condition is verified we add a new dedicated basic block to hold the constraints. @@ -75446,7 +75446,7 @@ According to RFC 3986 it should be percent-encoded and thus should not contain spaces. However, there are HTTP server implementation (notably nginx) that do not do that. This makes Emacs url-http.el behave like - most other HTTP client implementatios. Also remove the stripping of + most other HTTP client implementations. Also remove the stripping of angle bracket quotes as they are not valid according to the RFCs. 2020-07-19 Satoshi Nakagawa (tiny change) @@ -87619,7 +87619,7 @@ itself and reevaluates it in each stop to yield an address. We also add a warning (a red bold exclamation mark) on the header line when the content of the page doesn't represent the memory location - user requested for. That happends when some error occurs in + user requested for. That happens when some error occurs in evaluating the address, and we display the last successfully displayed memory page. * lisp/progmodes/gdb-mi.el (gdb-memory-address-expression) @@ -105227,7 +105227,7 @@ Sometimes, when finding files with icomplete-mode, backward-deleting the previous word or sexp (to move up a directory) doesn't actually refresh the file list of the new directory. Forcing redisplay in - icomplete-exhibit misteriously fixes the problem. + icomplete-exhibit mysteriously fixes the problem. * lisp/icomplete.el (icomplete-exhibit): Add call to redisplay. @@ -129725,7 +129725,7 @@ * lisp/delim-col.el: Use lexical-binding. * test/lisp/delim-col-tests.el: New file. - (delim-col-tests-delimit-colummns-before-after) + (delim-col-tests-delimit-columns-before-after) (delim-col-tests-delimit-columns) (delim-col-tests-delimit-columns-format/nil) (delim-col-tests-delimit-columns-format/padding) @@ -154614,7 +154614,7 @@ Fixes: Bug#31951 * lisp/server.el (server-save-buffers-kill-terminal): Only pass - PRED=t to save-some-bufers if ARG in non-nil. + PRED=t to save-some-buffers if ARG in non-nil. 2018-06-27 Vincent Belaïche @@ -221589,7 +221589,7 @@ (ses-define-if-new-local-printer): New defsubst. (ses-center, ses-center-span, ses-dashfill) (ses-dashfill-span, ses-tildefill-span): Allow to pass printer - as an optional argument to superseed column printer/default + as an optional argument to supersede column printer/default spreadsheet printer. (ses-prin1): New defun. diff --git a/admin/git-bisect-start b/admin/git-bisect-start index 945d4901c1b..227ea0ba059 100755 --- a/admin/git-bisect-start +++ b/admin/git-bisect-start @@ -66,7 +66,7 @@ $REAL_GIT bisect start "$@" ## already on master. In other words, it is the parent of the merge ## commit for which 'git rev-list --max-parents=0 ' does not ## include ce5584125c44a1a2fbb46e810459c50b227a95e2 (which is the root -## commit of the Emacs respository). +## commit of the Emacs repository). for C in $(cat $0 | grep '^# SKIP-BRANCH ' | sed 's/^# SKIP-BRANCH //') do diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index 9ebb044652c..cd3244a9122 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi @@ -3166,7 +3166,7 @@ Bug Reference issue tracking software which assigns each report a unique and short number or identifier. Those are used to reference a given bug, e.g., in a source code comment above the code fixing some bug, in -documentation files, or in discussions on some mailinglist or IRC +documentation files, or in discussions on some mailing list or IRC channel. @findex bug-reference-mode diff --git a/doc/lispref/ChangeLog.1 b/doc/lispref/ChangeLog.1 index 82840aed1d6..361e816bc37 100644 --- a/doc/lispref/ChangeLog.1 +++ b/doc/lispref/ChangeLog.1 @@ -5150,7 +5150,7 @@ * backups.texi (Making Backups): * modes.texi (Example Major Modes): Use recommended coding style. - (Major Mode Basics, Derived Modes): Encourge more strongly use of + (Major Mode Basics, Derived Modes): Encourage more strongly use of define-derived-mode. Mention completion-at-point-functions. 2010-12-13 Chong Yidong diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 4111a86aa7e..2332bf3ecf4 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -6280,7 +6280,7 @@ SVG Images work is done directly by librsvg. @lisp -;; Embeding /tmp/subdir/rms.jpg and /tmp/another/rms.jpg +;; Embedding /tmp/subdir/rms.jpg and /tmp/another/rms.jpg (svg-embed-base-uri-image svg "subdir/rms.jpg" :width "100px" :height "100px" :x "50px" :y "75px") diff --git a/doc/lispref/tips.texi b/doc/lispref/tips.texi index 3a1f6de12b2..3216a353958 100644 --- a/doc/lispref/tips.texi +++ b/doc/lispref/tips.texi @@ -804,7 +804,7 @@ Documentation Tips preceded by @samp{URL}. For example, @smallexample -The GNU project wesite has more information (see URL +The GNU project website has more information (see URL `https://www.gnu.org/'). @end smallexample diff --git a/doc/misc/ChangeLog.1 b/doc/misc/ChangeLog.1 index 1c5e7c1e2fd..cd3f599b934 100644 --- a/doc/misc/ChangeLog.1 +++ b/doc/misc/ChangeLog.1 @@ -6012,7 +6012,7 @@ (Built-in table editor): Document M-e and M-a navigate inside table field. (Stuck projects): Docment that projects identified as - un-stuck will still be searchd for stuck sub-projects. + un-stuck will still be searched for stuck sub-projects. (Paragraphs): Document centering. (Creating timestamps, Agenda commands): Document new behavior when changing time stamps. diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi index a8f5248c4c8..eee8463a0fa 100644 --- a/doc/misc/cc-mode.texi +++ b/doc/misc/cc-mode.texi @@ -7149,7 +7149,7 @@ Indenting Directives it, whilst ``indent to body'' is active, you need to re-enable the feature by calling @code{c-toggle-cpp-indent-to-body} for these changes to take effect@footnote{Note that the removal of directives -doesn't work satisfactorally on XEmacs or on very old versions of +doesn't work satisfactorily on XEmacs or on very old versions of Emacs}. @end defopt diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 67889c0b109..6c50469d4d8 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -733,7 +733,7 @@ following snippet to allow multiple different ID formats in Org files. (and (or (org-uuidgen-p id) (string-match-p "[0-9a-z]\\{12\\}" id)) (org-attach-id-uuid-folder-format id))) - ;; When ID looks like a timestap-based ID. Group by year-month + ;; When ID looks like a timestamp-based ID. Group by year-month ;; folders. (lambda (id) (and (string-match-p "[0-9]\\{8\\}T[0-9]\\{6\\}\.[0-9]\\{6\\}" id) @@ -5431,9 +5431,9 @@ doing computation. There are now three lookup functions: -- [[doc:org-loopup-first][org-loopup-first]] -- [[doc:org-loopup-last][org-loopup-last]] -- [[doc:org-loopup-all][org-loopup-all]] +- [[doc:org-lookup-first][org-lookup-first]] +- [[doc:org-lookup-last][org-lookup-last]] +- [[doc:org-lookup-all][org-lookup-all]] See [[https://orgmode.org/org.html#Lookup-functions][the manual]] for details. *** Startup keywords diff --git a/etc/PROBLEMS b/etc/PROBLEMS index f1140499859..1b449b7009a 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS @@ -3193,7 +3193,7 @@ something like the following in your init file: ** Native Compilation on macOS -Native complitation requires the libgccjit library to be installed and +Native compilation requires the libgccjit library to be installed and its path available to Emacs. Errors such as: libgccjit.so: error: error invoking gcc driver diff --git a/lisp/ChangeLog.14 b/lisp/ChangeLog.14 index eae47fe1985..1ce11c11adf 100644 --- a/lisp/ChangeLog.14 +++ b/lisp/ChangeLog.14 @@ -6299,7 +6299,7 @@ 2008-10-22 Vinicius Jose Latorre - * ps-print.el: Deal with page sizes for label printes. Suggested by + * ps-print.el: Deal with page sizes for label printers. Suggested by Friedrich Delgado Friedrichs . (ps-print-version): New version 7.3.3. (ps-page-dimensions-database): New page sizes for label printers. @@ -6371,7 +6371,7 @@ * replace.el (query-replace, query-replace-regexp) (replace-string, replace-regexp, perform-replace): Add "word" - indicatiors to the prompt for word delimited replacements. + indicators to the prompt for word delimited replacements. * replace.el (read-regexp): Rename arg `default' to `default-value'. Doc fix. diff --git a/lisp/ChangeLog.7 b/lisp/ChangeLog.7 index 91b8d474224..83143f73360 100644 --- a/lisp/ChangeLog.7 +++ b/lisp/ChangeLog.7 @@ -14679,7 +14679,7 @@ * simple.el (current-word): Ignore text properties. * edebug.el (edebug-sit-for-seconds): New variable. - (edebug-display): Use that variable to control amt of time. + (edebug-display): Use that variable to control amount of time. 1997-06-22 Morten Welinder diff --git a/lisp/cedet/ChangeLog.1 b/lisp/cedet/ChangeLog.1 index 78275f4db3a..a3a1034e089 100644 --- a/lisp/cedet/ChangeLog.1 +++ b/lisp/cedet/ChangeLog.1 @@ -1446,7 +1446,7 @@ modes, and merge the tables together in :tables from :modetables. (srecode-make-mode-table): Init :modetables. (srecode-mode-table-find): Search in modetables. - (srecode-mode-table-new): Merge the differet files into the + (srecode-mode-table-new): Merge the different files into the modetables slot. 2012-10-01 David Engster diff --git a/lisp/gnus/ChangeLog.3 b/lisp/gnus/ChangeLog.3 index 8c1073dc8db..bf64780799d 100644 --- a/lisp/gnus/ChangeLog.3 +++ b/lisp/gnus/ChangeLog.3 @@ -11763,7 +11763,7 @@ 2010-08-29 Lars Magne Ingebrigtsen * gnus-start.el (gnus-dribble-read-file): Ensure that the directory - where the dribbel file lives exists. + where the dribble file lives exists. * message.el (message-send-mail-partially-limit): Change the default to nil, since most people don't want this. diff --git a/lisp/mail/rmailsum.el b/lisp/mail/rmailsum.el index d63e05f5fa2..20362d39d10 100644 --- a/lisp/mail/rmailsum.el +++ b/lisp/mail/rmailsum.el @@ -339,7 +339,7 @@ rmail-summary--split-header-field (split-string header "[ \f\t\n\r\v,;]+")))) (defun rmail-summary-fill-message-parents-and-descs-vectors () - "Fill parents and descendats vectors for messages. + "Fill parents and descendants vectors for messages. This populates `rmail-summary-message-parents-vector' and `rmail-summary-message-descendants-vector'." (with-current-buffer rmail-buffer diff --git a/lisp/mh-e/mh-search.el b/lisp/mh-e/mh-search.el index 058ea4499fd..1b28509dd12 100644 --- a/lisp/mh-e/mh-search.el +++ b/lisp/mh-e/mh-search.el @@ -292,7 +292,7 @@ mh-search (cons folder msg))))) folder-results-map) - ;; Vist the results folder. + ;; Visit the results folder. (mh-visit-folder index-folder () (list folder-results-map origin-map)) (goto-char (point-min)) diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index 19c160f4d6d..a5327e428ac 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -2820,7 +2820,7 @@ tramp-sh-handle-expand-file-name (when (zerop (length name)) (setq name ".")) ;; On MS Windows, some special file names are not returned properly ;; by `file-name-absolute-p'. If `tramp-syntax' is `simplified', - ;; there could be the falso positive "/:". + ;; there could be the false positive "/:". (if (or (and (eq system-type 'windows-nt) (string-match-p (tramp-compat-rx bol (| (: alpha ":") (: (literal null-device) eol))) diff --git a/lisp/org/ChangeLog.1 b/lisp/org/ChangeLog.1 index 4f51c6a1ebb..e72526c3edc 100644 --- a/lisp/org/ChangeLog.1 +++ b/lisp/org/ChangeLog.1 @@ -10418,7 +10418,7 @@ * org.el (org-adaptive-fill-function): Remove occasional spurious space character when auto-filling. - * org.el (org-mode): Call external initalizers. Now both filling + * org.el (org-mode): Call external initializers. Now both filling code and comments code have their own independent part in org.el. (org-setup-filling): Rename from `org-set-autofill-regexps'. (org-setup-comments-handling): New function. @@ -15589,7 +15589,7 @@ * ob-python.el (org-babel-python-evaluate-session): Introduced a new local function for sending input with a slight delay to allow - pythong to re-draw the prompt. No longer removing newlines inside + python to re-draw the prompt. No longer removing newlines inside code block bodies (was due to a defective regexp). 2011-07-28 Bastien Guerry @@ -17320,7 +17320,7 @@ * ob-lisp.el (org-babel-execute:lisp): Turn vectors into lists before reading by elisp. - (org-bable-lisp-vector-to-list): Stub of a vector->list function, + (org-babel-lisp-vector-to-list): Stub of a vector->list function, should be replaced with a cl-vector->el-vector function. 2011-07-28 Eric Schulte @@ -29935,7 +29935,7 @@ inserted at the correct position. * org-publish.el (org-publish-project-alist) - (org-publish-projects, org-publish-org-index): Change default anme + (org-publish-projects, org-publish-org-index): Change default name for the index of file names to "sitemap.org". * org-latex.el (org-export-latex-tables): diff --git a/lisp/org/org-element.el b/lisp/org/org-element.el index 71c242ea658..230937c4e60 100644 --- a/lisp/org/org-element.el +++ b/lisp/org/org-element.el @@ -7260,18 +7260,18 @@ org-element--cache-gapless change did not contain gaps.") ;;;###autoload -(defun org-element-cache-reset (&optional all no-persistance) +(defun org-element-cache-reset (&optional all no-persistence) "Reset cache in current buffer. When optional argument ALL is non-nil, reset cache in all Org buffers. -When optional argument NO-PERSISTANCE is non-nil, do not try to update +When optional argument NO-PERSISTENCE is non-nil, do not try to update the cache persistence in the buffer." (interactive "P") (dolist (buffer (if all (buffer-list) (list (current-buffer)))) (org-with-base-buffer buffer (when (and org-element-use-cache (derived-mode-p 'org-mode)) ;; Only persist cache in file buffers. - (when (and (buffer-file-name) (not no-persistance)) + (when (and (buffer-file-name) (not no-persistence)) (when (not org-element-cache-persistent) (org-persist-unregister 'org-element--headline-cache (current-buffer)) (org-persist-unregister 'org-element--cache (current-buffer))) diff --git a/lisp/org/org-faces.el b/lisp/org/org-faces.el index 0effa13a1d6..b3ee17ccdf6 100644 --- a/lisp/org/org-faces.el +++ b/lisp/org/org-faces.el @@ -517,7 +517,7 @@ org-agenda-structure-secondary (defface org-agenda-structure-filter '((t (:inherit (org-warning org-agenda-structure)))) "Face used for the current type of task filter in the agenda. It inherits from `org-agenda-structure' so it can adapt to -it (e.g. if that is assigned a diffent font height or family)." +it (e.g. if that is assigned a different font height or family)." :group 'org-faces) (defface org-agenda-date '((t (:inherit org-agenda-structure))) diff --git a/lisp/org/org-fold-core.el b/lisp/org/org-fold-core.el index ffa689d4fa1..c4d78496e55 100644 --- a/lisp/org/org-fold-core.el +++ b/lisp/org/org-fold-core.el @@ -145,7 +145,7 @@ ;; All the folding specs can be specified by symbol representing their ;; name. However, this is not always convenient, especially if the -;; same spec can be used for fold different syntaxical structures. +;; same spec can be used for fold different syntactical structures. ;; Any folding spec can be additionally referenced by a symbol listed ;; in the spec's `:alias' folding spec property. For example, Org ;; mode's `org-fold-outline' folding spec can be referenced as any @@ -189,9 +189,9 @@ ;; all the processing related to buffer modifications. ;; The library also provides a way to unfold the text after some -;; destructive changes breaking syntaxical structure of the buffer. +;; destructive changes breaking syntactical structure of the buffer. ;; For example, Org mode automatically reveals folded drawers when the -;; drawer becomes syntaxically incorrect: +;; drawer becomes syntactically incorrect: ;; ------- before modification ------- ;; :DRAWER: ;; Some folded text inside drawer @@ -321,7 +321,7 @@ org-fold-core--optimise-for-huge-buffers functions relying on this package might not be able to unfold the edited text. For example, removed leading stars from a folded headline in Org mode will break visibility cycling since Org mode - will not be avare that the following folded text belonged to + will not be aware that the following folded text belonged to headline. - `ignore-modification-checks': Do not try to detect insertions in the diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index edb873f5a62..2198f3115a5 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el @@ -7757,7 +7757,7 @@ c-after-change-unmark-ml-strings (1- (match-end 1)) ; 1- For the inserted ". eoll)))) - ;; ...and clear `syntax-table' text propertes from the + ;; ...and clear `syntax-table' text properties from the ;; following raw strings. (c-depropertize-ml-strings-in-region (point) (1+ eoll))) ;; Remove the temporary string delimiter. diff --git a/lisp/progmodes/idlw-help.el b/lisp/progmodes/idlw-help.el index a19abf77e5f..51afb7e4850 100644 --- a/lisp/progmodes/idlw-help.el +++ b/lisp/progmodes/idlw-help.el @@ -269,7 +269,7 @@ idlwave-help-mode Text Searches: Inside Topic: Use Emacs search functions Exit: [q]uit or mouse button 3 will kill the frame -When the hep text is a source file, the following commands are available +When the help text is a source file, the following commands are available Fontification: [F]ontify the buffer like source code Jump: [h] to function doclib header diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index bdc9e6fa78c..86bfafe2716 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -4540,7 +4540,7 @@ python-pdbtrack-comint-input-filter-function (when (and python-pdbtrack-tracked-buffer ;; Empty input is sent by C-d or `comint-send-eof' (or (string-empty-p input) - ;; "n some text" is "n" command for pdb. Split input and get firs part + ;; "n some text" is "n" command for pdb. Split input and get first part (let* ((command (car (split-string (string-trim input) " ")))) (setq python-pdbtrack-prev-command-continue (or (member command python-pdbtrack-continue-command) diff --git a/lisp/replace.el b/lisp/replace.el index 302cb65543b..cebe779ae4c 100644 --- a/lisp/replace.el +++ b/lisp/replace.el @@ -1692,7 +1692,7 @@ list-matching-lines-prefix-face multiline matches, the prefix column shows the line number for the first line and whitespace for the rest of the lines.\) If this face will display the same as the default face, the prefix -column will not be highlighted speciall." +column will not be highlighted specially." :type 'face :group 'matching :version "24.4") diff --git a/lisp/sort.el b/lisp/sort.el index d04f075abd1..b66d6453d21 100644 --- a/lisp/sort.el +++ b/lisp/sort.el @@ -86,7 +86,7 @@ sort-subr the keys are numbers, with `compare-buffer-substrings' if the keys are cons cells (the car and cdr of each cons cell are taken as start and end positions), and with `string<' otherwise." - ;; Heuristically try to avoid messages if sorting a small amt of text. + ;; Heuristically try to avoid messages if sorting a small amount of text. (let ((messages (> (- (point-max) (point-min)) 50000))) (save-excursion (if messages (message "Finding sort keys...")) diff --git a/src/dispextern.h b/src/dispextern.h index df6134e68f0..e6c4270bebd 100644 --- a/src/dispextern.h +++ b/src/dispextern.h @@ -107,7 +107,7 @@ #define NativeRectangle XRectangle { int width, height; /* size of image */ char *data; /* pointer to image data */ - int bytes_per_line; /* accelarator to next line */ + int bytes_per_line; /* accelerator to next line */ int bits_per_pixel; /* bits per pixel (ZPixmap) */ } *Emacs_Pix_Container; typedef Emacs_Pix_Container Emacs_Pixmap; @@ -1712,7 +1712,7 @@ #define FONT_TOO_HIGH(ft) \ /* Non-zero means characters in this face have a box of that thickness around them. Vertical (left and right) and horizontal - (top and bottom) borders size can be set separatedly using an + (top and bottom) borders size can be set separately using an associated list of two ints in the form (vertical_size . horizontal_size). In case one of the value is negative, its absolute value indicates the thickness, and the diff --git a/src/haikufns.c b/src/haikufns.c index 5717d0354f8..ea12a144888 100644 --- a/src/haikufns.c +++ b/src/haikufns.c @@ -3245,7 +3245,7 @@ syms_of_haikufns (void) DEFVAR_LISP ("haiku-allowed-ui-colors", Vhaiku_allowed_ui_colors, doc: /* Vector of UI colors that Emacs can look up from the system. -If this is set up incorrectly, Emacs can crash when encoutering an +If this is set up incorrectly, Emacs can crash when encountering an invalid color. */); Vhaiku_allowed_ui_colors = Qnil; diff --git a/src/itree.c b/src/itree.c index 688d5c82476..5079e2389f8 100644 --- a/src/itree.c +++ b/src/itree.c @@ -85,7 +85,7 @@ Copyright (C) 2017-2022 Free Software Foundation, Inc. this narrowing is O(K*log(N)) where K is the size of the result set. If we are interested in finding the node in a range with the smallest END, we might have to examine all K nodes in that range. - In the case of the *-overlay-channge functions, K may well be equal + In the case of the *-overlay-change functions, K may well be equal to N. Ideally, a tree based data structure for overlays would have diff --git a/src/xfaces.c b/src/xfaces.c index be4a7ca71cc..663386dc25b 100644 --- a/src/xfaces.c +++ b/src/xfaces.c @@ -7280,7 +7280,7 @@ syms_of_xfaces (void) DEFVAR_BOOL ("face-filters-always-match", face_filters_always_match, doc: /* Non-nil means that face filters are always deemed to match. This variable is intended for use only by code that evaluates -the "specifity" of a face specification and should be let-bound +the "specificity" of a face specification and should be let-bound only for this purpose. */); DEFVAR_LISP ("face--new-frame-defaults", Vface_new_frame_defaults, diff --git a/src/xterm.c b/src/xterm.c index c2bb1e2afe8..acb008475c7 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -4597,7 +4597,7 @@ x_dnd_send_position (struct frame *f, Window target, Window toplevel, maintained by the original author of the protocol specifies it for all versions. Since at least one program supports these flags, but uses protocol v4 (and not v5), set them for all - protocool versions. */ + protocol versions. */ if (button >= 4 && button <= 7) { msg.xclient.data.l[1] |= (1 << 10); diff --git a/test/lisp/gnus/mml-sec-resources/trustlist.txt b/test/lisp/gnus/mml-sec-resources/trustlist.txt index f886572d283..947ec526199 100644 --- a/test/lisp/gnus/mml-sec-resources/trustlist.txt +++ b/test/lisp/gnus/mml-sec-resources/trustlist.txt @@ -2,7 +2,7 @@ # well as empty lines are ignored. Lines have a length limit but this # is not a serious limitation as the format of the entries is fixed and # checked by gpg-agent. A non-comment line starts with optional white -# space, followed by the SHA-1 fingerpint in hex, followed by a flag +# space, followed by the SHA-1 fingerprint in hex, followed by a flag # which may be one of 'P', 'S' or '*' and optionally followed by a list of # other flags. The fingerprint may be prefixed with a '!' to mark the # key as not trusted. You should give the gpg-agent a HUP or run the diff --git a/test/lisp/progmodes/cperl-mode-resources/fontify-punctuation-vars.pl b/test/lisp/progmodes/cperl-mode-resources/fontify-punctuation-vars.pl index fa328438cb1..6d3f478595e 100644 --- a/test/lisp/progmodes/cperl-mode-resources/fontify-punctuation-vars.pl +++ b/test/lisp/progmodes/cperl-mode-resources/fontify-punctuation-vars.pl @@ -1,4 +1,4 @@ -# The following Perl punctiation variables contain characters which +# The following Perl punctuation variables contain characters which # are classified as string delimiters in the syntax table. The mode # should not be confused by these. # The corresponding tests check that two consecutive '#' characters diff --git a/test/lisp/progmodes/cperl-mode-tests.el b/test/lisp/progmodes/cperl-mode-tests.el index 1bb206e7040..96615c19383 100644 --- a/test/lisp/progmodes/cperl-mode-tests.el +++ b/test/lisp/progmodes/cperl-mode-tests.el @@ -114,7 +114,7 @@ cperl-test-indent-styles ;;; Fontification tests (ert-deftest cperl-test-fontify-punct-vars () - "Test fontification of Perl's punctiation variables. + "Test fontification of Perl's punctuation variables. Perl has variable names containing unbalanced quotes for the list separator $\" and pre- and postmatch $` and $'. A reference to these variables, for example \\$\", should not cause the dollar commit eccb813a943f4b6898cbe241c636c2ba5e63d271 Author: Eli Zaretskii Date: Fri Dec 23 16:41:08 2022 +0200 Fix "C-h k" in recursive minibuffers * lisp/subr.el (event--posn-at-point): Leave POSN alone if it doesn't have at least 6 members. This follows more faithfully what 'event-start' and 'event-end' did before they started using this function, see commit c1cead89f5f. Call posn-at-point with the minibuffer-window when in the minibuffer. (Bug#60252) diff --git a/lisp/subr.el b/lisp/subr.el index e142eaa8104..a5e66de27de 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -1576,16 +1576,18 @@ event--posn-at-point ;; Use `window-point' for the case when the current buffer ;; is temporarily switched to some other buffer (bug#50256) (let* ((pos (window-point)) - (posn (posn-at-point pos))) - (if (null posn) ;; `pos' is "out of sight". - (list (selected-window) pos '(0 . 0) 0) - ;; If `pos' is inside a chunk of text hidden by an `invisible' - ;; or `display' property, `posn-at-point' returns the position - ;; that *is* visible, whereas `event--posn-at-point' is used - ;; when we have a keyboard event, whose position is `point' even - ;; if that position is invisible. - (setf (nth 5 posn) pos) - posn))) + (posn (posn-at-point pos (if (minibufferp (current-buffer)) + (minibuffer-window))))) + (cond ((null posn) ;; `pos' is "out of sight". + (setq posn (list (selected-window) pos '(0 . 0) 0))) + ;; If `pos' is inside a chunk of text hidden by an `invisible' + ;; or `display' property, `posn-at-point' returns the position + ;; that *is* visible, whereas `event--posn-at-point' is used + ;; when we have a keyboard event, whose position is `point' even + ;; if that position is invisible. + ((> (length posn) 5) + (setf (nth 5 posn) pos))) + posn)) (defun event-start (event) "Return the starting position of EVENT. diff --git a/src/window.c b/src/window.c index 90fa6ac2dfe..cd43919a7d8 100644 --- a/src/window.c +++ b/src/window.c @@ -1649,7 +1649,8 @@ check_window_containing (struct window *w, void *user_data) set *PART to the id of that element. If there is no window under X, Y return nil and leave *PART - unmodified. TOOL_BAR_P means detect tool-bar windows. + unmodified. TOOL_BAR_P means detect tool-bar windows, and + TAB_BAR_P means detect tab-bar windows. This function was previously implemented with a loop cycling over windows with Fnext_window, and starting with the frame's selected commit 6dda2106ece7c307ed5c0a6cb892e736516effeb Author: Eli Zaretskii Date: Fri Dec 23 14:37:04 2022 +0200 ; Improve documentation of "C-x @" * doc/emacs/custom.texi (Modifier Keys): Document how to enter Shift, Control, and Meta using "C-x @". * lisp/simple.el (function-key-map): Add commentary to "C-x @" bindings to make them easier to discover. diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi index aaf41d2aef1..f75512a00e9 100644 --- a/doc/emacs/custom.texi +++ b/doc/emacs/custom.texi @@ -1990,13 +1990,17 @@ Modifier Keys modifier bits are labeled as @samp{s-}, @samp{H-} and @samp{A-} respectively. +@cindex modifier keys unsupported by keyboard Even if your keyboard lacks these additional modifier keys, you can -enter it using @kbd{C-x @@}: @kbd{C-x @@ h} adds the Hyper flag to +enter them using @kbd{C-x @@}: @kbd{C-x @@ h} adds the Hyper flag to the next character, @kbd{C-x @@ s} adds the Super flag, and @kbd{C-x @@ a} adds the Alt flag. For instance, @kbd{C-x @@ h C-a} is a way to enter @kbd{Hyper-Control-a}. (Unfortunately, there is no way to add two modifiers by using @kbd{C-x @@} twice for the same character, because the first one goes to work on the @kbd{C-x}.) +You can similarly enter the Shift, Control, and Meta modifiers by +using @kbd{C-x @ S}, @kbd{C-x @ c}, and @kbd{C-x @ m}, respectively, +although this is rarely needed. @node Function Keys @subsection Rebinding Function Keys diff --git a/lisp/simple.el b/lisp/simple.el index f85428ca740..4551b749d56 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -10053,6 +10053,8 @@ event-apply-modifier event-type (cons event-type (cdr event))))))) +;; This is what makes "C-x @" followed by [hsmaSc] work even though +;; you won't find any (define-key ctl-x-map "@" ...) binding. (define-key function-key-map [?\C-x ?@ ?h] 'event-apply-hyper-modifier) (define-key function-key-map [?\C-x ?@ ?s] 'event-apply-super-modifier) (define-key function-key-map [?\C-x ?@ ?m] 'event-apply-meta-modifier) commit a0738e8ad1384e40c8eebca41b16a0b5125d625b Author: Eli Zaretskii Date: Fri Dec 23 13:32:18 2022 +0200 ; * etc/NEWS: Announce the new behavior of 'C-h f'. (Bug#60252) diff --git a/etc/NEWS b/etc/NEWS index 0e844596347..5ce3e21e8bf 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -265,6 +265,16 @@ controlled by the internal Emacs machinery led to low-contrast faces in common default setups. Emacs now uses the same 'region' face on Gtk and non-Gtk setups. +--- +** 'C-h f' and 'C-h x' may now require confirmation when you press RET. +If the text in the minibuffer cannot be completed to a single function +or command, typing RET will not automatically complete to the shortest +candidate, but will instead ask for confirmation. Typing TAB will +complete as much as possible, and another TAB will show all the +possible completions. This allows you to insist on the functions name +even if Help doesn't appear to know about it, by confirming with a +second RET. + ** Dired --- commit 6cf0784a0d6d1fc58a200aa8f8e14cef612cd68b Author: Po Lu Date: Fri Dec 23 18:05:44 2022 +0800 Speed up completion plugins over slow networks * src/xterm.c (x_make_frame_invisible): Do not sync if `x-lax-frame-positioning' is enabled. (syms_of_xterm): Update doc string. diff --git a/src/xterm.c b/src/xterm.c index 5947145ce06..c2bb1e2afe8 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -28471,7 +28471,10 @@ x_make_frame_invisible (struct frame *f) error ("Can't notify window manager of window withdrawal"); } - XSync (FRAME_X_DISPLAY (f), False); + /* Don't perform the synchronization if the network connection is + slow, and the user says it is unwanted. */ + if (NILP (Vx_lax_frame_positioning)) + XSync (FRAME_X_DISPLAY (f), False); /* We can't distinguish this from iconification just by the event that we get from the server. @@ -28482,8 +28485,7 @@ x_make_frame_invisible (struct frame *f) SET_FRAME_ICONIFIED (f, false); if (CONSP (frame_size_history)) - frame_size_history_plain - (f, build_string ("x_make_frame_invisible")); + frame_size_history_plain (f, build_string ("x_make_frame_invisible")); unblock_input (); } @@ -32010,6 +32012,7 @@ syms_of_xterm (void) network connection with high latency. Doing so will make frame creation and placement faster at the cost of reducing the accuracy of frame placement via frame parameters, `set-frame-position', and -`set-frame-size'. */); +`set-frame-size', along with the actual state of a frame after +`x_make_frame_invisible'. */); Vx_lax_frame_positioning = Qnil; } commit 86b11981b0d49917c3185b0b1d4ca95afc85dfcf Author: Michael Albinus Date: Thu Dec 22 16:46:00 2022 +0100 Update Tramp version (don't merge with master) * doc/misc/trampver.texi: * lisp/net/trampver.el: Change version to "2.6.0.29.1". (customize-package-emacs-version-alist): Adapt Tramp version integrated in Emacs 29.1. diff --git a/doc/misc/trampver.texi b/doc/misc/trampver.texi index 45cc12b2394..c374b6d333b 100644 --- a/doc/misc/trampver.texi +++ b/doc/misc/trampver.texi @@ -7,7 +7,7 @@ @c In the Tramp GIT, the version number and the bug report address @c are auto-frobbed from configure.ac. -@set trampver 2.6.0-pre +@set trampver 2.6.0.29.1 @set trampurl https://www.gnu.org/software/tramp/ @set tramp-bug-report-address tramp-devel@@gnu.org @set emacsver 26.1 diff --git a/lisp/net/trampver.el b/lisp/net/trampver.el index caf6750c26d..49caadc93ab 100644 --- a/lisp/net/trampver.el +++ b/lisp/net/trampver.el @@ -7,7 +7,7 @@ ;; Maintainer: Michael Albinus ;; Keywords: comm, processes ;; Package: tramp -;; Version: 2.6.0-pre +;; Version: 2.6.0.29.1 ;; Package-Requires: ((emacs "26.1")) ;; Package-Type: multi ;; URL: https://www.gnu.org/software/tramp/ @@ -40,7 +40,7 @@ ;; ./configure" to change them. ;;;###tramp-autoload -(defconst tramp-version "2.6.0-pre" +(defconst tramp-version "2.6.0.29.1" "This version of Tramp.") ;;;###tramp-autoload @@ -78,7 +78,7 @@ tramp-repository-version ;; Check for Emacs version. (let ((x (if (not (string-version-lessp emacs-version "26.1")) "ok" - (format "Tramp 2.6.0-pre is not fit for %s" + (format "Tramp 2.6.0.29.1 is not fit for %s" (replace-regexp-in-string "\n" "" (emacs-version)))))) (unless (string-equal "ok" x) (error "%s" x))) @@ -104,7 +104,8 @@ tramp-inside-emacs ("2.3.3" . "26.1") ("2.3.3.26.1" . "26.1") ("2.3.5.26.2" . "26.2") ("2.3.5.26.3" . "26.3") ("2.4.3.27.1" . "27.1") ("2.4.5.27.2" . "27.2") - ("2.5.2.28.1" . "28.1") ("2.5.3.28.2" . "28.2"))) + ("2.5.2.28.1" . "28.1") ("2.5.3.28.2" . "28.2") + ("2.6.0.29.1" . "29.1"))) (add-hook 'tramp-unload-hook (lambda ()