commit 4a743729d71d2dd55c7e489f3cead0d78a0dfe31 (HEAD, refs/remotes/origin/master) Author: Eli Zaretskii Date: Fri Jul 26 09:52:54 2024 +0300 ; Don't use non-ASCII in Emacs manual sources unless necessary * doc/emacs/mini.texi: * doc/emacs/emacs.texi: * doc/emacs/custom.texi: * doc/emacs/calendar.texi: * doc/emacs/cal-xtra.texi: * doc/emacs/ack.texi: ASCIIfy. diff --git a/doc/emacs/ack.texi b/doc/emacs/ack.texi index bb8001c382f..8fd3d61ec64 100644 --- a/doc/emacs/ack.texi +++ b/doc/emacs/ack.texi @@ -1,4 +1,3 @@ -@c -*- coding: utf-8 -*- @c This is part of the Emacs manual. @c Copyright (C) 1994--1997, 1999--2024 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @@ -53,7 +52,7 @@ D-Bus message bus protocol; @file{zeroconf.el}, a mode for browsing Avahi services; @file{secrets.el}, an interface to keyring daemons for storing confidential data; and @file{filenotify.el} and the associated low-level interface routines, for watching file status changes. -He and Kai Großjohann wrote the Tramp package, which provides +He and Kai Gro@ss{}johann wrote the Tramp package, which provides transparent remote file editing using ssh, ftp, and other network protocols. He and Daniel Pittman wrote @file{tramp-cache.el}. @@ -63,7 +62,7 @@ point vertically fixed by scrolling the window when moving up and down in the buffer. @item -Aurélien Aptel added dynamic module support to Emacs. Philipp +Aur@'elien Aptel added dynamic module support to Emacs. Philipp Stephani and others also worked on the dynamic module code. @item @@ -71,7 +70,7 @@ Joe Arceneaux wrote the original text property implementation, and implemented support for X11. @item -Emil Åström, Milan Zamaza, and Stefan Bruda wrote @file{prolog.el}, +Emil @AA{}str@''om, Milan Zamaza, and Stefan Bruda wrote @file{prolog.el}, a mode for editing Prolog (and Mercury) code. @item @@ -108,7 +107,7 @@ footnotes in email messages; and @file{gnus-audio.el} and @item Alexander L. Belikoff, Sergey Berezin, Sacha Chua, David Edmondson, Noah Friedman, Andreas Fuchs, Mario Lang, Ben Mesander, Lawrence -Mitchell, Gergely Nagy, Michael Olson, Per Persson, Jorgen Schäfer, +Mitchell, Gergely Nagy, Michael Olson, Per Persson, Jorgen Sch@"afer, Alex Schroeder, and Tom Tromey wrote ERC, an advanced Internet Relay Chat client (for more information, see the file @file{CREDITS} in the ERC distribution). @@ -174,7 +173,7 @@ David M. Brown wrote @file{array.el}, for editing arrays and other tabular data. @item -Włodek Bzyl and Ryszard Kubiak wrote @file{ogonek.el}, a package for +W@l{}odek Bzyl and Ryszard Kubiak wrote @file{ogonek.el}, a package for changing the encoding of Polish characters. @item @@ -283,7 +282,7 @@ text replace the current selection. Eric Ding wrote @file{goto-addr.el}, @item -Jan Djärv added support for the GTK+ toolkit and X drag-and-drop. +Jan Dj@"arv added support for the GTK+ toolkit and X drag-and-drop. He also wrote @file{dynamic-setting.el}. @item @@ -291,11 +290,11 @@ Carsten Dominik wrote Ref@TeX{}, a package for setting up labels and cross-references in @LaTeX{} documents; and co-wrote IDLWAVE mode (q.v.). He was the original author of Org mode, for maintaining notes, todo lists, and project planning. Bastien Guerry subsequently took -over maintainership. Benjamin Andresen, Thomas Baumann, Joel Boehland, Jan Böcker, Lennart +over maintainership. Benjamin Andresen, Thomas Baumann, Joel Boehland, Jan B@"ocker, Lennart Borgman, Baoqiu Cui, Dan Davison, Christian Egli, Eric S. Fraga, Daniel German, Chris Gray, Konrad Hinsen, Tassilo Horn, Philip Jackson, Martyn Jago, Thorsten Jolitz, Jambunathan K, Tokuya Kameshima, Sergey Litvinov, David Maus, Ross Patterson, Juan Pechiar, Sebastian Rose, Eric Schulte, Paul Sexton, Ulf Stegemann, Andy Stewart, Christopher Suckling, David O'Toole, John Wiegley, Zhang Weize, -Piotr Zieliński, and others also wrote various Org mode components. +Piotr Zieli@'nski, and others also wrote various Org mode components. For more information, @pxref{History and Acknowledgments,,, org, The Org Manual}. @item @@ -325,7 +324,7 @@ Stephen Eglen wrote @file{mspools.el}, which tells you which Procmail folders have mail waiting in them. @item -Torbjörn Einarsson wrote @file{f90.el}, a mode for Fortran 90 files. +Torbj@"orn Einarsson wrote @file{f90.el}, a mode for Fortran 90 files. @item Tsugutomo Enami co-wrote the support for international character sets. @@ -390,7 +389,7 @@ Kevin Gallagher rewrote and enhanced the EDT emulation, and wrote flow control. @item -Fabián E. Gallina rewrote @file{python.el}, the major mode for the +Fabi@'an E. Gallina rewrote @file{python.el}, the major mode for the Python programming language used in Emacs 24.3 onwards. @item @@ -398,7 +397,7 @@ Kevin Gallo added multiple-frame support for Windows NT and wrote @file{w32-win.el}, support functions for the MS-Windows window system. @item -Juan León Lahoz García wrote @file{wdired.el}, a package for +Juan Le@'on Lahoz Garc@'ia wrote @file{wdired.el}, a package for performing file operations by directly editing Dired buffers. @item @@ -537,9 +536,9 @@ He also wrote @file{network-stream.el}, for opening network processes; and implemented libxml2 support. He also wrote @file{eww.el}, an Emacs Lisp web browser; and implemented native zlib decompression. Components of Gnus have also been written by: Nagy Andras, David -Blacka, Scott Byer, Ludovic Courtès, Julien Danjou, Kevin Greiner, Kai -Großjohann, Joe Hildebrand, Paul Jarc, Simon Josefsson, Sascha -Lüdecke, David Moore, Jim Radford, Benjamin Rutt, Raymond Scholz, +Blacka, Scott Byer, Ludovic Court@`es, Julien Danjou, Kevin Greiner, Kai +Gro@ss{}johann, Joe Hildebrand, Paul Jarc, Simon Josefsson, Sascha +L@"udecke, David Moore, Jim Radford, Benjamin Rutt, Raymond Scholz, Thomas Steffen, Reiner Steib, Jan Tatarik, Didier Verna, Ilja Weis, Katsumi Yamaoka, Teodor Zlatanov, and others (@pxref{Contributors,,,gnus, the Gnus Manual}). @@ -580,7 +579,7 @@ S/MIME and Sieve components; and @file{tls.el} and @file{starttls.el} for the Transport Layer Security protocol. @item -Arne Jørgensen wrote @file{latexenc.el}, a package to +Arne J@o{}rgensen wrote @file{latexenc.el}, a package to automatically guess the correct coding system in @LaTeX{} files. @item @@ -635,7 +634,7 @@ files and running a PostScript interpreter interactively from within Emacs. @item -Karel Klíč contributed SELinux support, for preserving the +Karel Kl@'i@v{c} contributed SELinux support, for preserving the Security-Enhanced Linux context of files on backup and copy. @item @@ -665,7 +664,7 @@ R. Dodd. He also wrote @file{ls-lisp.el}, a Lisp emulation of the program. @item -David Kågedal wrote @file{tempo.el}, providing support for +David K@aa{}gedal wrote @file{tempo.el}, providing support for easy insertion of boilerplate text and other common constructions. @item @@ -730,7 +729,7 @@ Leo Liu wrote @file{pcmpl-x.el}, providing completion for miscellaneous external tools; and revamped support for Octave in Emacs 24.4. @item -Károly Lőrentey wrote the multi-terminal code, which allows +K@'aroly L@H{o}rentey wrote the multi-terminal code, which allows Emacs to run on graphical and text terminals simultaneously. @item @@ -855,7 +854,7 @@ and @file{rfc822.el}, a parser for E-mail addresses in the format used in mail messages and news articles (Internet RFC 822 and its successors). @item -Gerd Möllmann was the Emacs maintainer from the beginning of Emacs 21 +Gerd M@"ollmann was the Emacs maintainer from the beginning of Emacs 21 development until the release of 21.1. He wrote the new display engine used from Emacs 21 onwards, and the asynchronous timers facility. He also wrote @code{ebrowse}, the C@t{++} browser; @@ -923,7 +922,7 @@ and @code{winterm} terminal emulators; and @file{vc-dir.el}, displaying the status of version-controlled directories. @item -Hrvoje Nikšić wrote @file{savehist.el}, for saving the minibuffer +Hrvoje Nik@v{s}i@'c wrote @file{savehist.el}, for saving the minibuffer history between Emacs sessions. @item @@ -1011,7 +1010,7 @@ Fred Pierresteguy and Paul Reilly made Emacs work with X Toolkit widgets. @item -François Pinard, Greg McGary, and Bruno Haible wrote @file{po.el}, +Fran@,{c}ois Pinard, Greg McGary, and Bruno Haible wrote @file{po.el}, support for PO translation files. @item @@ -1026,7 +1025,7 @@ minor mode for displaying a ruler in the header line; and structures. @item -Francesco A. Potortì wrote @file{cmacexp.el}, providing a command which +Francesco A. Potort@`i wrote @file{cmacexp.el}, providing a command which runs the C preprocessor on a region of a file and displays the results. He also expanded and redesigned the @code{etags} program. @@ -1266,11 +1265,11 @@ Olaf Sylvester wrote @file{bs.el}, a package for manipulating Emacs buffers. @item -Tibor Šimko and Milan Zamazal wrote @file{slovak.el}, support for +Tibor @v{S}imko and Milan Zamazal wrote @file{slovak.el}, support for editing text in Slovak language. @item -João Távora wrote many improvements for @file{flymake.el}, an +Jo@~ao T@'avora wrote many improvements for @file{flymake.el}, an on-the-fly syntax-checking package. @item @@ -1392,7 +1391,7 @@ John Wiegley was the Emacs (co-)maintainer from Emacs 25 to 29.1. He wrote @file{align.el}, a set of commands for aligning text according to regular-expression based rules; @file{isearchb.el} for fast buffer switching; @file{timeclock.el}, a package for keeping track of time -spent on projects; the Bahá'í calendar support; @file{pcomplete.el}, a +spent on projects; the Bah@'a'@'i calendar support; @file{pcomplete.el}, a programmable completion facility; @file{remember.el}, a mode for jotting down things to remember; @file{eudcb-mab.el}, an address book backend for the Emacs Unified Directory Client; and @code{eshell}, a diff --git a/doc/emacs/cal-xtra.texi b/doc/emacs/cal-xtra.texi index 49fa2e9547e..f8a99d14002 100644 --- a/doc/emacs/cal-xtra.texi +++ b/doc/emacs/cal-xtra.texi @@ -1,4 +1,4 @@ -@c This is part of the Emacs manual. -*- coding: utf-8 -*- +@c This is part of the Emacs manual. @c Copyright (C) 2004--2024 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @c @@ -202,7 +202,7 @@ the month (1 specifies the first occurrence, 2 the second occurrence, @minus{}1 the last occurrence, @minus{}2 the second-to-last occurrence, and so on). - You can specify holidays that occur on fixed days of the Bahá'í, + You can specify holidays that occur on fixed days of the Bah@'a'@'i, Chinese, Hebrew, Islamic, and Julian calendars too. For example, @smallexample @@ -513,7 +513,7 @@ the fourth pattern. @subsection Diary Entries Using non-Gregorian Calendars As well as entries based on the standard Gregorian calendar, your -diary can have entries based on Bahá'í, Chinese, Hebrew, or Islamic dates. +diary can have entries based on Bah@'a'@'i, Chinese, Hebrew, or Islamic dates. Recognition of such entries can be time-consuming, however, and since most people don't use them, you must explicitly enable their use. If you want the diary to recognize Hebrew-date diary entries, for example, @@ -535,7 +535,7 @@ you must do this: @end smallexample @noindent -Similarly, for Islamic, Bahá'í and Chinese entries, add +Similarly, for Islamic, Bah@'a'@'i and Chinese entries, add @code{diary-islamic-list-entries} and @code{diary-islamic-mark-entries}, @code{diary-bahai-list-entries} and @code{diary-bahai-mark-entries}, or @code{diary-chinese-list-entries} and @code{diary-chinese-mark-entries}. @@ -546,7 +546,7 @@ or @code{diary-chinese-list-entries} and @code{diary-chinese-mark-entries}. @vindex diary-islamic-entry-symbol These diary entries have the same formats as Gregorian-date diary entries; except that @code{diary-bahai-entry-symbol} (default @samp{B}) -must precede a Bahá'í date, @code{diary-chinese-entry-symbol} (default +must precede a Bah@'a'@'i date, @code{diary-chinese-entry-symbol} (default @samp{C}) a Chinese date, @code{diary-hebrew-entry-symbol} (default @samp{H}) a Hebrew date, and @code{diary-islamic-entry-symbol} (default @samp{I}) an Islamic date. Moreover, non-Gregorian month names may not @@ -574,7 +574,7 @@ nonmarking if preceded by @code{diary-nonmarking-symbol} (default Here is a table of commands used in the calendar to create diary entries that match the selected date and other dates that are similar in -the Bahá'í, Chinese, Hebrew, or Islamic calendars: +the Bah@'a'@'i, Chinese, Hebrew, or Islamic calendars: @table @kbd @item i h d @@ -962,7 +962,7 @@ Make a diary entry with today's equivalent Julian calendar date. @item %%(diary-astro-day-number) Make a diary entry with today's equivalent astronomical (Julian) day number. @item %%(diary-bahai-date) -Make a diary entry with today's equivalent Bahá'í calendar date. +Make a diary entry with today's equivalent Bah@'a'@'i calendar date. @item %%(diary-chinese-date) Make a diary entry with today's equivalent Chinese calendar date. @item %%(diary-coptic-date) diff --git a/doc/emacs/calendar.texi b/doc/emacs/calendar.texi index 10fe404099d..f511b789796 100644 --- a/doc/emacs/calendar.texi +++ b/doc/emacs/calendar.texi @@ -1,4 +1,4 @@ -@c This is part of the Emacs manual. -*- coding: utf-8 -*- +@c This is part of the Emacs manual. @c Copyright (C) 1985--1987, 1993--1995, 1997, 2000--2024 Free Software @c Foundation, Inc. @c See file emacs.texi for copying conditions. @@ -552,7 +552,7 @@ holidays centered around a different month, use @kbd{C-u M-x holidays}, which prompts for the month and year. The holidays known to Emacs include United States holidays and the -major Bahá'í, Chinese, Christian, Islamic, and Jewish +major Bah@'a'@'i, Chinese, Christian, Islamic, and Jewish holidays; also the solstices and equinoxes. @findex list-holidays @@ -803,8 +803,8 @@ days are named by combining one of ten @dfn{celestial stems} with one of twelve @dfn{terrestrial branches} for a total of sixty names that are repeated in a cycle of sixty. -@cindex Bahá'í calendar - The Bahá'í calendar system is based on a solar cycle of 19 months with +@cindex Bah@'a'@'i calendar + The Bah@'a'@'i calendar system is based on a solar cycle of 19 months with 19 days each. The four remaining intercalary days are placed between the 18th and 19th months. @@ -844,7 +844,7 @@ Display French Revolutionary date for selected day (@code{calendar-french-print-date}). @findex calendar-bahai-print-date @item p b -Display Bahá'í date for selected day +Display Bah@'a'@'i date for selected day (@code{calendar-bahai-print-date}). @findex calendar-chinese-print-date @item p C @@ -911,7 +911,7 @@ Move to a date specified in the Julian calendar Move to a date specified with an astronomical (Julian) day number (@code{calendar-astro-goto-day-number}). @item g b -Move to a date specified in the Bahá'í calendar +Move to a date specified in the Bah@'a'@'i calendar (@code{calendar-bahai-goto-date}). @item g h Move to a date specified in the Hebrew calendar diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi index 1527e42bbfe..2f664182c27 100644 --- a/doc/emacs/custom.texi +++ b/doc/emacs/custom.texi @@ -1,4 +1,3 @@ -@c -*- coding: utf-8 -*- @c This is part of the Emacs manual. @c Copyright (C) 1985--1987, 1993--1995, 1997, 2000--2024 Free Software @c Foundation, Inc. diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi index 72e985ec44d..fc22e8d7296 100644 --- a/doc/emacs/emacs.texi +++ b/doc/emacs/emacs.texi @@ -1,4 +1,4 @@ -\input texinfo @c -*- coding: utf-8 -*- +\input texinfo @setfilename ../../info/emacs.info @settitle GNU Emacs Manual @@ -1445,73 +1445,73 @@ USA @c I wonder if it would be better to drop it in favor of AUTHORS? Contributors to GNU Emacs include Jari Aalto, Eric Abrahamsen, Per Abrahamsen, Tomas Abrahamsson, Jay K. Adams, Alon Albert, Michael Albinus, Nagy -Andras, Benjamin Andresen, Ralf Angeli, Dmitry Antipov, Joe Arceneaux, Emil Åström, +Andras, Benjamin Andresen, Ralf Angeli, Dmitry Antipov, Joe Arceneaux, Emil @AA{}str@"om, Miles Bader, David Bakhash, Juanma Barranquero, Eli Barzilay, Thomas Baumann, Steven L. Baur, Jay Belanger, Alexander L. Belikoff, Thomas Bellman, Scott Bender, Boaz Ben-Zvi, Sergey Berezin, Stephen Berman, Jonas Bernoulli, Karl Berry, Anna M. Bigatti, Ray Blaak, Martin Blais, Jim Blandy, Johan -Bockgård, Jan Böcker, Joel Boehland, Lennart Borgman, Per Bothner, +Bockg@aa{}rd, Jan B@"ocker, Joel Boehland, Lennart Borgman, Per Bothner, Terrence Brannon, Frank Bresz, Peter Breton, Emmanuel Briot, Kevin Broadey, Vincent Broman, Michael Brouwer, David M. Brown, Ken Brown, Stefan Bruda, Damien Cassou, Daniel Colascione, -Georges Brun-Cottan, Joe Buehler, Scott Byer, Włodek Bzyl, Tino Calancha, +Georges Brun-Cottan, Joe Buehler, Scott Byer, W@l{}odek Bzyl, Tino Calancha, Bill Carpenter, Per Cederqvist, Hans Chalupsky, Chris Chase, Bob Chassell, Andrew Choi, Chong Yidong, Sacha Chua, Stewart Clamen, James Clark, Mike Clarkson, Glynn Clements, Andrea Corallo, Andrew Cohen, Daniel Colascione, -Christoph Conrad, Ludovic Courtès, Andrew Csillag, +Christoph Conrad, Ludovic Court@`es, Andrew Csillag, Toby Cubitt, Baoqiu Cui, Doug Cutting, Mathias Dahl, Yue Daian, Julien Danjou, Satyaki Das, Vivek Dasmohapatra, Dan Davison, Michael DeCorte, Gary Delp, Nachum Dershowitz, Dave Detlefs, Matthieu Devin, Christophe de Dinechin, Eri -Ding, Jan Djärv, Lawrence R. Dodd, Carsten Dominik, Scott Draves, +Ding, Jan Dj@"arv, Lawrence R. Dodd, Carsten Dominik, Scott Draves, Benjamin Drieu, Viktor Dukhovni, Jacques Duthen, Dmitry Dzhus, John Eaton, Rolf Ebert, Carl Edman, David Edmondson, Paul Eggert, Stephen -Eglen, Christian Egli, Torbjörn Einarsson, Tsugutomo Enami, David +Eglen, Christian Egli, Torbj@"orn Einarsson, Tsugutomo Enami, David Engster, Hans Henrik Eriksen, Michael Ernst, Ata Etemadi, Frederick Farnbach, Oscar Figueiredo, Fred Fish, Steve Fisk, Thomas Fitzsimmons, Karl Fogel, Gary Foster, Eric S. Fraga, Romain Francoise, Noah Friedman, Andreas Fuchs, Shigeru Fukaya, Xue Fuqiao, Hallvard Furuseth, Keith Gabryelski, Peter S. -Galbraith, Kevin Gallagher, Fabián E. Gallina, Kevin Gallo, Juan León Lahoz García, +Galbraith, Kevin Gallagher, Fabi@'an E. Gallina, Kevin Gallo, Juan Le@'en Lahoz Garc@'ia, Howard Gayle, Daniel German, Stephen Gildea, Julien Gilles, David Gillespie, Bob Glickstein, Nicolas Goaziou, Deepak Goel, David De La Harpe Golden, Boris Goldowsky, David Goodger, Chris Gray, Kevin Greiner, Michelangelo Grigni, Odd -Gripenstam, Kai Großjohann, Michael Gschwind, Bastien Guerry, Henry +Gripenstam, Kai Gro@ss{}johann, Michael Gschwind, Bastien Guerry, Henry Guillaume, Dmitry Gutov, Doug Gwyn, Bruno Haible, Ken'ichi Handa, Lars Hansen, Chris Hanson, Jesper Harder, Alexandru Harsanyi, K. Shane Hartman, John Heidemann, Jon K. Hellan, Magnus Henoch, Markus Heritsch, Dirk Herrmann, Karl Heuer, Manabu Higashida, Konrad Hinsen, Torsten Hilbrich, Anders Holst, -Jeffrey C. Honig, Jürgen Hötzel, Tassilo Horn, Kurt Hornik, Khaled Hosny, Tom Houlder, Joakim +Jeffrey C. Honig, J@"urgen H@"otzel, Tassilo Horn, Kurt Hornik, Khaled Hosny, Tom Houlder, Joakim Hove, Denis Howe, Lars Ingebrigtsen, Andrew Innes, Seiichiro Inoue, Philip Jackson, Martyn Jago, Pavel Janik, Paul Jarc, Ulf Jasper, Thorsten Jolitz, Michael K. Johnson, Kyle Jones, Terry Jones, Simon -Josefsson, Alexandre Julliard, Arne Jørgensen, Tomoji Kagatani, +Josefsson, Alexandre Julliard, Arne J@o{}rgensen, Tomoji Kagatani, Brewster Kahle, Tokuya Kameshima, Lute Kamstra, Stefan Kangas, Ivan Kanis, David Kastrup, David Kaufman, Henry Kautz, Taichi Kawabata, Taro Kawagishi, Howard Kaye, Michael Kifer, Richard King, Peter Kleiweg, Karel -Klíč, Shuhei Kobayashi, Pavel Kobyakov, Larry K. Kolodney, David +Kl@'i@v{c}, Shuhei Kobayashi, Pavel Kobyakov, Larry K. Kolodney, David M. Koppelman, Koseki Yoshinori, Robert Krawitz, Sebastian Kremer, -Ryszard Kubiak, Tak Kunihiro, Igor Kuzmin, David Kågedal, Daniel LaLiberte, Karl +Ryszard Kubiak, Tak Kunihiro, Igor Kuzmin, David K@aa{}gedal, Daniel LaLiberte, Karl Landstrom, Mario Lang, Aaron Larson, James R. Larus, Gemini Lasswell, Vinicius Jose Latorre, Werner Lemberg, Frederic Lepied, Peter Liljenberg, Christian Limpach, Lars Lindberg, Chris Lindblad, Anders Lindgren, Thomas Link, Juri Linkov, Francis Litterio, Sergey Litvinov, Leo Liu, Emilio C. Lopes, -Martin Lorentzson, Dave Love, Eric Ludlam, Károly Lőrentey, Sascha -Lüdecke, Greg McGary, Roland McGrath, Michael McNamara, Alan Mackenzie, +Martin Lorentzson, Dave Love, Eric Ludlam, K@'aroly L@H{o}rentey, Sascha +L@"udecke, Greg McGary, Roland McGrath, Michael McNamara, Alan Mackenzie, Christopher J. Madsen, Neil M. Mager, Arni Magnusson, Artur Malabarba, Ken Manheimer, Bill Mann, Brian Marick, Simon Marshall, Bengt Martensson, Charlie Martin, Yukihiro Matsumoto, Tomohiro Matsuyama, David Maus, Thomas May, Will Mengarini, David Megginson, Jimmy Aguilar Mena, Stefan Merten, Ben A. Mesander, Wayne Mesard, Brad -Miller, Lawrence Mitchell, Richard Mlynarik, Gerd Möllmann, Dani Moncayo, Stefan +Miller, Lawrence Mitchell, Richard Mlynarik, Gerd M@"ollmann, Dani Moncayo, Stefan Monnier, Keith Moore, Jan Moringen, Morioka Tomohiko, Glenn Morris, Don Morrison, Diane Murray, Riccardo Murri, Sen Nagata, Erik Naggum, Gergely Nagy, Nobuyoshi Nakada, Thomas Neumann, Mike Newton, Thien-Thi Nguyen, -Jurgen Nickelsen, Dan Nicolaescu, Hrvoje Nikšić, Jeff Norden, +Jurgen Nickelsen, Dan Nicolaescu, Hrvoje Nik@v{s}i@'c, Jeff Norden, Andrew Norman, Theresa O'Connor, Kentaro Ohkouchi, Christian Ohler, Kenichi Okada, Alexandre Oliva, Bob Olson, Michael Olson, Takaaki Ota, Mark Oteiza, Pieter E. J. Pareit, Ross Patterson, David Pearson, Juan Pechiar, Jeff Peck, Damon Anton Permezel, Tom Perrine, William M. Perry, Per Persson, Jens Petersen, Nicolas Petton, Daniel Pfeiffer, Justus Piater, Richard L. -Pieri, Fred Pierresteguy, François Pinard, Daniel Pittman, Christian -Plaunt, Alexander Pohoyda, David Ponce, Noam Postavsky, Francesco A. Potortì, +Pieri, Fred Pierresteguy, Fran@,{c}ois Pinard, Daniel Pittman, Christian +Plaunt, Alexander Pohoyda, David Ponce, Noam Postavsky, Francesco A. Potort@`i, Michael D. Prange, Mukesh Prasad, Steve Purcell, Ken Raeburn, Marko Rahamaa, Ashwin Ram, Eric S. Raymond, Paul Reilly, Edward M. Reingold, David Reitter, Alex Rezinsky, Rob Riepel, Lara Rios, Adrian Robert, Nick @@ -1519,19 +1519,19 @@ Roberts, Roland B. Roberts, John Robinson, Denis B. Roegel, Danny Roozendaal, Sebastian Rose, William Rosenblatt, Markus Rost, Guillermo J. Rozas, Martin Rudalics, Ivar Rummelhoff, Jason Rumney, Wolfgang Rupprecht, Benjamin Rutt, Kevin Ryde, Phil Sainty, James B. Salem, Masahiko Sato, -Timo Savola, Jorgen Schäfer, Holger Schauer, William Schelter, Ralph +Timo Savola, Jorgen Sch@"afer, Holger Schauer, William Schelter, Ralph Schleicher, Gregor Schmid, Michael Schmidt, Ronald S. Schnell, Philippe Schnoebelen, Jan Schormann, Alex Schroeder, Stefan Schoef, -Rainer Schöpf, Raymond Scholz, Eric Schulte, Andreas Schwab, Randal +Rainer Sch@"opf, Raymond Scholz, Eric Schulte, Andreas Schwab, Randal Schwartz, Oliver Seidel, Manuel Serrano, Paul Sexton, Hovav Shacham, Stanislav Shalunov, Marc Shapiro, Richard Sharman, Olin Shivers, Tibor -Šimko, Espen Skoglund, Rick Sladkey, Lynn Slater, Chris Smith, +@v{S}imko, Espen Skoglund, Rick Sladkey, Lynn Slater, Chris Smith, David Smith, JD Smith, Paul D. Smith, Wilson Snyder, William Sommerfeld, Simon South, Andre Spiegel, Michael Staats, Thomas Steffen, Ulf Stegemann, Reiner Steib, Sam Steingold, Ake Stenhoff, Philipp Stephani, Peter Stephenson, Ken Stevens, Andy Stewart, Jonathan Stigelman, Martin Stjernholm, Kim F. Storm, Steve Strassmann, Christopher Suckling, Olaf Sylvester, Naoto -Takahashi, Steven Tamm, Jan Tatarik, João Távora, Luc Teirlinck, +Takahashi, Steven Tamm, Jan Tatarik, Jo@~ao T@'avora, Luc Teirlinck, Jean-Philippe Theberge, Jens T.@: Berger Thielemann, Spencer Thomas, Jim Thompson, Toru Tomabechi, David O'Toole, Markus Triska, Tom Tromey, Eli Tziperman, Daiki Ueno, Masanobu Umeda, Rajesh Vaidheeswarran, Neil @@ -1544,7 +1544,7 @@ Wohler, Steven A. Wood, Dale R. Worley, Francis J. Wright, Felix S. T. Wu, Tom Wurgler, Yamamoto Mitsuharu, Katsumi Yamaoka, Masatake Yamato, Jonathan Yavner, Ryan Yeske, Ilya Zakharevich, Milan Zamazal, Victor Zandy, Eli Zaretskii, Jamie Zawinski, Andrew Zhilin, -Shenghuo Zhu, Piotr Zieliński, Ian T. Zimmermann, Reto Zimmermann, +Shenghuo Zhu, Piotr Zieli@'nski, Ian T. Zimmermann, Reto Zimmermann, Neal Ziring, Teodor Zlatanov, and Detlev Zundel. @end iftex diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi index 79744967455..9d012cd6fbc 100644 --- a/doc/emacs/mini.texi +++ b/doc/emacs/mini.texi @@ -1,4 +1,3 @@ -@c -*- coding: utf-8 -*- @c This is part of the Emacs manual. @c Copyright (C) 1985--1987, 1993--1995, 1997, 2000--2024 Free Software @c Foundation, Inc. @@ -990,7 +989,7 @@ and delivers the response. For example, if you type @kbd{C-x C-w} file, Emacs issues a prompt like this: @smallexample -File ‘foo.el’ exists; overwrite? (y or n) +File `foo.el' exists; overwrite? (y or n) @end smallexample @cindex yes or no prompt commit c22b4198b2e5a9d63109c5ceeb386fbb1904f5dc Author: Eli Zaretskii Date: Thu Jul 25 21:26:08 2024 +0300 Fix display of 'display' strings in RTL paragraphs at window-start * src/xdisp.c (handle_single_display_spec) (get_overlay_strings_1, push_prefix_prop): Initialize bidi paragraph direction if not yet done. (Bug#72287) diff --git a/src/xdisp.c b/src/xdisp.c index 45317cc9f5d..a8f9f59b654 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -6355,6 +6355,12 @@ handle_single_display_spec (struct it *it, Lisp_Object spec, Lisp_Object object, return retval; } + /* We want the string to inherit the paragraph direction of the + parent object, so we need to calculate that if not yet done. */ + ptrdiff_t eob = (BUFFERP (object) ? ZV : it->end_charpos); + if (it->bidi_it.first_elt && it->bidi_it.charpos < eob) + bidi_paragraph_init (it->paragraph_embedding, &it->bidi_it, true); + /* Save current settings of IT so that we can restore them when we are finished with the glyph property value. */ push_it (it, position); @@ -6387,9 +6393,10 @@ handle_single_display_spec (struct it *it, Lisp_Object spec, Lisp_Object object, if (BUFFERP (object)) *position = start_pos; - /* Force paragraph direction to be that of the parent - object. If the parent object's paragraph direction is - not yet determined, default to L2R. */ + /* Force paragraph direction to be that of the parent object. + If the parent object's paragraph direction is not yet + determined (which shouldn not happen, since we called + bidi_paragraph_init above), default to L2R. */ if (it->bidi_p && it->bidi_it.paragraph_dir == R2L) it->paragraph_embedding = it->bidi_it.paragraph_dir; else @@ -7044,6 +7051,11 @@ get_overlay_strings_1 (struct it *it, ptrdiff_t charpos, bool compute_stop_p) strings have been processed. */ eassert (!compute_stop_p || it->sp == 0); + /* We want the string to inherit the paragraph direction of the + parent object, so we need to calculate that if not yet done. */ + if (it->bidi_it.first_elt && it->bidi_it.charpos < ZV) + bidi_paragraph_init (it->paragraph_embedding, &it->bidi_it, true); + /* When called from handle_stop, there might be an empty display string loaded. In that case, don't bother saving it. But don't use this optimization with the bidi iterator, since we @@ -7197,7 +7209,7 @@ iterate_out_of_display_property (struct it *it) eassert (eob >= CHARPOS (it->position) && CHARPOS (it->position) >= bob); /* Maybe initialize paragraph direction. If we are at the beginning - of a new paragraph, next_element_from_buffer may not have a + of a new paragraph, next_element_from_buffer may not have had a chance to do that. */ if (it->bidi_it.first_elt && it->bidi_it.charpos < eob) bidi_paragraph_init (it->paragraph_embedding, &it->bidi_it, true); @@ -24415,6 +24427,12 @@ push_prefix_prop (struct it *it, Lisp_Object prop) || it->method == GET_FROM_STRING || it->method == GET_FROM_IMAGE); + /* We want the string to inherit the paragraph direction of the parent + object, so we need to calculate that if not yet done. */ + ptrdiff_t eob = (STRINGP (it->string) ? SCHARS (it->string) : ZV); + if (it->bidi_it.first_elt && it->bidi_it.charpos < eob) + bidi_paragraph_init (it->paragraph_embedding, &it->bidi_it, true); + /* We need to save the current buffer/string position, so it will be restored by pop_it, because iterate_out_of_display_property depends on that being set correctly, but some situations leave commit e56e4b345a25194bc7adb83523e8d886b718c9fa Author: Mattias Engdegård Date: Thu Jul 25 12:37:34 2024 +0200 Use timer accessors instead of aref/aset * lisp/emacs-lisp/timer-list.el (list-timers): * lisp/gnus/mail-source.el (mail-source-start-idle-timer): * lisp/play/gamegrid.el (gamegrid-set-timer): * lisp/progmodes/vhdl-mode.el (vhdl-run-when-idle): * lisp/simple.el (analyze-text-conversion): * lisp/time.el (display-time-event-handler): Use timer accessors. diff --git a/lisp/emacs-lisp/timer-list.el b/lisp/emacs-lisp/timer-list.el index 52309a247c0..c237eeb52af 100644 --- a/lisp/emacs-lisp/timer-list.el +++ b/lisp/emacs-lisp/timer-list.el @@ -41,23 +41,21 @@ nil `[ ;; Idle. ,(propertize - (if (aref timer 7) " *" " ") + (if (timer--idle-delay timer) " *" " ") 'help-echo "* marks idle timers" 'timer timer) ;; Next time. ,(propertize - (let ((time (list (aref timer 1) - (aref timer 2) - (aref timer 3)))) + (let ((time (timer--time timer))) (format "%12s" (format-seconds "%dd %hh %mm %z%,1ss" (float-time - (if (aref timer 7) + (if (timer--idle-delay timer) time (time-subtract time nil)))))) 'help-echo "Time until next invocation") ;; Repeat. - ,(let ((repeat (aref timer 4))) + ,(let ((repeat (timer--repeat-delay timer))) (cond ((numberp repeat) (propertize @@ -73,7 +71,7 @@ (let ((cl-print-compiled 'static) (cl-print-compiled-button nil) (print-escape-newlines t)) - (cl-prin1-to-string (aref timer 5))) + (cl-prin1-to-string (timer--function timer))) 'help-echo "Function called by timer")])) (append timer-list timer-idle-list))) (tabulated-list-print)) diff --git a/lisp/gnus/mail-source.el b/lisp/gnus/mail-source.el index fdafc29f7e8..64685490ab0 100644 --- a/lisp/gnus/mail-source.el +++ b/lisp/gnus/mail-source.el @@ -954,9 +954,8 @@ See the Gnus manual for details." ;; Since idle timers created when Emacs is already in the idle ;; state don't get activated until Emacs _next_ becomes idle, we ;; need to force our timer to be considered active now. We do - ;; this by being naughty and poking the timer internals directly - ;; (element 0 of the vector is nil if the timer is active). - (aset mail-source-report-new-mail-idle-timer 0 nil))) + ;; this by being naughty and poking the timer internals directly. + (setf (timer--triggered mail-source-report-new-mail-idle-timer) nil))) (declare-function display-time-event-handler "time" ()) diff --git a/lisp/play/gamegrid.el b/lisp/play/gamegrid.el index 36c72c5cff7..ec1f3f372fb 100644 --- a/lisp/play/gamegrid.el +++ b/lisp/play/gamegrid.el @@ -493,11 +493,7 @@ convert to an Emacs image-spec instead") (defun gamegrid-set-timer (delay) (if gamegrid-timer - (timer-set-time gamegrid-timer - (list (aref gamegrid-timer 1) - (aref gamegrid-timer 2) - (aref gamegrid-timer 3)) - delay))) + (timer-set-time gamegrid-timer (timer--time gamegrid-timer) delay))) (defun gamegrid-kill-timer () (if gamegrid-timer diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el index 144bfa944d3..22706be6bb5 100644 --- a/lisp/progmodes/vhdl-mode.el +++ b/lisp/progmodes/vhdl-mode.el @@ -2341,7 +2341,7 @@ Ignore byte-compiler warnings you might see." (if (fboundp 'start-itimer) (start-itimer "vhdl-mode" function secs repeat t) ;; explicitly activate timer (necessary when Emacs is already idle) - (aset (run-with-idle-timer secs repeat function) 0 nil))) + (setf (timer--triggered (run-with-idle-timer secs repeat function)) nil))) (defun vhdl-warning-when-idle (&rest args) "Wait until idle, then print out warning STRING and beep." diff --git a/lisp/simple.el b/lisp/simple.el index 5961afa20e9..a9f8b5845d8 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -11354,8 +11354,7 @@ seconds." (if timer ;; The timer is already running. See if it's due to expire ;; within the next five seconds. - (let ((time (list (aref timer 1) (aref timer 2) - (aref timer 3)))) + (let ((time (timer--time timer))) (unless (<= (time-convert (time-subtract time nil) 'integer) 5) diff --git a/lisp/time.el b/lisp/time.el index b6f8de8fc4a..02007d890cb 100644 --- a/lisp/time.el +++ b/lisp/time.el @@ -239,8 +239,8 @@ would give mode line times like `94/12/30 21:07:48 (UTC)'." (timer display-time-timer) ;; Compute the time when this timer will run again, next. (next-time (timer-relative-time - (list (aref timer 1) (aref timer 2) (aref timer 3)) - (* 5 (aref timer 4)) 0))) + (timer--time timer) + (* 5 (timer--repeat-delay timer)) 0))) ;; If the activation time is not in the future, ;; skip executions until we reach a time in the future. ;; This avoids a long pause if Emacs has been suspended for hours. commit d2cb9f2bf6ef9f3fcd8c21455ca1f1e624e61bf4 Author: Michael Albinus Date: Thu Jul 25 13:38:27 2024 +0200 Tramp's method "kubernetes" supports now optional namespace * doc/misc/tramp.texi (Inline methods): Extend Kubernetes host name syntax by an optional namespace. (Kubernetes setup): Mention optional namespace part of the host name. * etc/NEWS: Tramp's method "kubernetes" supports now optional namespace. Fix typos. * lisp/net/tramp-container.el (tramp-kubernetes-namespace): Initialize with nil. Adapt docstring. (tramp-kubernetes--name-regexp): New defconst. (tramp-kubernetes--host-name-regexp): Change in order to cover also an optional namespace. (Bug#59797) (tramp-kubernetes--namespace): New defun. (tramp-kubernetes--context-namespace): Use it. (tramp-skeleton-kubernetes-vector): Add sanity check for superfluous user name or port number. diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index eddf0272641..e548432700f 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi @@ -999,9 +999,11 @@ if desired. @cindex @option{kubernetes} method Integration for containers in Kubernetes pods. The host name is -@samp{@var{pod}}, or @samp{@var{container}.@var{pod}} if an -explicit container name shall be used. Otherwise, the first container -in a pod is used. +@samp{@var{pod}}, or @samp{@var{container}.@var{pod}} if an explicit +container name shall be used. Otherwise, the first container in a pod +is used. @samp{@var{pod}%@var{namespace}} as host name allows to use +another namespace but the default one. This can also be combined with +the @samp{@var{container}.} prefix. This method does not support user names. @@ -3246,7 +3248,9 @@ by setting the pod annotation @vindex tramp-kubernetes-namespace @value{tramp} uses the default Kubernetes context and namespace. If another context or namespace shall be used, configure the user options -@code{tramp-kubernetes-context} and @code{tramp-kubernetes-namespace}. +@code{tramp-kubernetes-context} or @code{tramp-kubernetes-namespace}, +respectively. An explicit @samp{%@var{namespace}} postfix in the host +name takes precedence. @node Auto-save File Lock and Backup diff --git a/etc/NEWS b/etc/NEWS index f133769bebf..607244b4b4b 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -24,11 +24,12 @@ applies, and please also update docstrings as needed. * Installation Changes in Emacs 31.1 -** When using GCC 4 or later to build Emacs on 32-bit x86 systems, -'configure' now defaults to using the GCC options -mfpmath=sse (if the -host system supports SSE2) or -fno-tree-sra (if not). These GCC options -work around GCC bug 58416, which can cause Emacs to behave incorrectly -in rare cases. +** Changed GCC default options on 32-bit x86 systems. +When using GCC 4 or later to build Emacs on 32-bit x86 systems, +'configure' now defaults to using the GCC options '-mfpmath=sse' (if the +host system supports SSE2) or '-fno-tree-sra' (if not). These GCC +options work around GCC bug 58416, which can cause Emacs to behave +incorrectly in rare cases. * Startup Changes in Emacs 31.1 @@ -37,7 +38,7 @@ in rare cases. * Changes in Emacs 31.1 --- -** "find-func.el" commands now have history enabled. +** find-func.el commands now have history enabled. The 'find-function', 'find-library', 'find-face-definition', and 'find-variable' commands now allow retrieving previous input using the usual minibuffer history commands. Each command has a separate history. @@ -52,13 +53,13 @@ usual minibuffer history commands. Each command has a separate history. --- *** 'whitespace-cleanup' now adds missing newline at end of file. -If 'whitespace-style' includes 'missing-newline-at-eof (which is the +If 'whitespace-style' includes 'missing-newline-at-eof' (which is the default), the 'whitespace-cleanup' function will now add the newline. ** Eshell --- -*** New option 'eshell-command-async-buffer'. +*** New user option 'eshell-command-async-buffer'. This option lets you tell 'eshell-command' how to respond if its output buffer is already in use by another invocation of 'eshell-command', much like 'async-shell-command-buffer' does for 'shell-command'. By default, @@ -68,7 +69,7 @@ necessary. To restore the previous behavior, set this option to +++ *** 'eshell-execute-file' is now an interactive command. -Interactively, this now prompts for a script file to execute. With the +Interactively, this now prompts for a script file to execute. With the prefix argument, it will also insert any output into the current buffer at point. @@ -79,8 +80,8 @@ where to send the standard error output. See the "(eshell) Entry Points" node in the Eshell manual for more details. +++ -*** Eshell's built-in "wait" command now accepts a timeout. -By passing "-t" or "--timeout", you can specify a maximum time to wait +*** Eshell's built-in 'wait' command now accepts a timeout. +By passing '-t' or '--timeout', you can specify a maximum time to wait for the processes to exit. Additionally, you can now wait for external processes by passing their PIDs. @@ -91,7 +92,7 @@ processes by passing their PIDs. Sliced images allow for more intuitive scrolling up/down by letting you scroll past each slice, instead of jumping past the entire image. Previously, SHR sliced images when zoomed to their original size, no -matter how large or small that was). Now, SHR slices any images taller +matter how large or small that was. Now, SHR slices any images taller than 'shr-sliced-image-height'. For more information, see the "(eww) Advanced" node in the EWW manual. @@ -111,13 +112,13 @@ point. If a region is active, it runs all the unit tests under the region. It is bound to 'C-c C-t t' in 'go-ts-mode'. The 'go-ts-mode-test-this-file' command runs all unit tests in the current -file. It is bound to 'C-c C-t f' in 'go-ts-mode'. +file. It is bound to 'C-c C-t f' in 'go-ts-mode'. The 'go-ts-mode-test-this-package' command runs all unit tests under the package of the current buffer. It is bound to 'C-c C-t p' in 'go-ts-mode'. -The 'go-ts-mode-build-tags' variable is available to set a list of build -tags for the test commands. +The 'go-ts-mode-build-tags' user option is available to set a list of +build tags for the test commands. ** Emacs Lisp mode @@ -154,8 +155,18 @@ positives. --- *** Dedicated buffer for plain text contents. When switching to the plain text contents with 'doc-view-open-text', -DocView now creates a dedicated buffer to display it. 'C-c C-c' gets you +DocView now creates a dedicated buffer to display it. 'C-c C-c' gets you back to real DocView buffer if it still exists. + +** Tramp + ++++ +*** Connection method "kubernetes" supports now optional namespace. +The host name for Kubernetes connections can be of kind +[CONTAINER.]POD[%NAMESPACE], in order to specify the namespace to be +used. This overrides the setiing in 'tramp-kubernetes-namespace', if +any. + * New Modes and Packages in Emacs 31.1 @@ -182,9 +193,9 @@ It has been obsolete since Emacs 26.1. Use the group 'text' instead. --- ** Process execution has been optimized on Android. -The run-time performance of subprocesses on recent Android releases -where a userspace executable loader is required has been optimized on -systems featuring Linux 3.5.0 and above. +The run-time performance of subprocesses on recent Android releases, +where a userspace executable loader is required, has been optimized on +systems featuring GNU/Linux 3.5.0 and above. ---------------------------------------------------------------------- diff --git a/lisp/net/tramp-container.el b/lisp/net/tramp-container.el index 02512e64ef6..27bad70753c 100644 --- a/lisp/net/tramp-container.el +++ b/lisp/net/tramp-container.el @@ -50,18 +50,14 @@ ;; ;; Open file in a Kubernetes container: ;; -;; C-x C-f /kubernetes:[CONTAINER.]POD:/path/to/file +;; C-x C-f /kubernetes:[CONTAINER.]POD[%NAMESPACE]:/path/to/file ;; ;; Where: ;; POD is the pod to connect to. ;; CONTAINER is the container to connect to (optional). ;; By default, the first container in that pod will ;; be used. -;; -;; Completion for POD and accessing it operate in the current -;; namespace, use this command to change it: -;; -;; "kubectl config set-context --current --namespace=" +;; NAMESPACE is the namespace to be used (optional). ;; ;; ;; @@ -151,11 +147,14 @@ If it is nil, the default context will be used." :type '(choice (const :tag "Use default" nil) (string))) -(defcustom tramp-kubernetes-namespace "default" - "Namespace of Kubernetes." +(defcustom tramp-kubernetes-namespace nil + "Namespace of Kubernetes. +If it is nil, the current namespace will be used. An explicit NAMESPACE +in the remote file name host part will override it." :group 'tramp - :version "30.1" - :type 'string) + :version "31.1" + :type '(choice (const :tag "Use default" nil) + (string))) ;;;###tramp-autoload (defcustom tramp-toolbox-program "toolbox" @@ -324,10 +323,18 @@ see its function help for a description of the format." (push (concat elt "." (car line)) names))) (mapcar (lambda (name) (list nil name)) (delq nil names)))))) +;; +;; `lower' could also match non-ascii letters. But since this regexp +;; is only used for strings matching `tramp-host-regexp', this doesn't +;; hurt. +(defconst tramp-kubernetes--name-regexp (rx (** 1 63 (any lower digit "-"))) + "Regexp matching kubernetes names.") + (defconst tramp-kubernetes--host-name-regexp - (rx (? (group (regexp tramp-host-regexp)) ".") - (group (regexp tramp-host-regexp))) - "The CONTAINER.POD syntax of kubernetes host names in Tramp.") + (rx bos (? (group (regexp tramp-kubernetes--name-regexp)) ".") + (group (regexp tramp-kubernetes--name-regexp)) + (? "%" (group (regexp tramp-kubernetes--name-regexp))) eos) + "The CONTAINER.POD%NAMESPACE syntax of kubernetes host names in Tramp.") ;;;###tramp-autoload (defun tramp-kubernetes--container (vec) @@ -345,6 +352,16 @@ see its function help for a description of the format." (match-string 2 host))) "")) +;;;###tramp-autoload +(defun tramp-kubernetes--namespace (vec) + "Extract the namespace from a kubernetes host name in VEC. +Use `tramp-kubernetes-namespace' otherwise." + (or (when-let ((_ vec) + (host (tramp-file-name-host vec))) + (and (string-match tramp-kubernetes--host-name-regexp host) + (match-string 3 host))) + tramp-kubernetes-namespace)) + ;; We must change `vec' and `default-directory' to the previous hop, ;; in order to run `process-file' in a proper environment. (defmacro tramp-skeleton-kubernetes-vector (vec &rest body) @@ -355,6 +372,11 @@ BODY is the backend specific code." (cond ((null ,vec) tramp-null-hop) ((equal (tramp-file-name-method ,vec) tramp-kubernetes-method) + ;; Sanity check. We don't support `user' or `port' in + ;; Kubernetes file names. + (when (or (tramp-file-name-user-domain ,vec) + (tramp-file-name-port ,vec)) + (tramp-user-error ,vec "Wrong kubernetes file name syntax")) (if (tramp-file-name-hop ,vec) (tramp-dissect-hop-name (tramp-file-name-hop ,vec)) tramp-null-hop)) @@ -400,8 +422,8 @@ Obey `tramp-kubernetes-context'" #'identity `(,(when-let ((context (tramp-kubernetes--current-context vec))) (format "--context=%s" context)) - ,(when tramp-kubernetes-namespace - (format "--namespace=%s" tramp-kubernetes-namespace))) + ,(when-let ((namespace (tramp-kubernetes--namespace vec))) + (format "--namespace=%s" namespace))) " ")) ;;;###tramp-autoload @@ -617,9 +639,9 @@ see its function help for a description of the format." ;; This variable will be eval'ed in `tramp-expand-args'. (tramp-extra-expand-args . (?a (tramp-kubernetes--container (car tramp-current-connection)) - ?h (tramp-kubernetes--pod (car tramp-current-connection)) - ?x (tramp-kubernetes--context-namespace - (car tramp-current-connection))))) + ?h (tramp-kubernetes--pod (car tramp-current-connection)) + ?x (tramp-kubernetes--context-namespace + (car tramp-current-connection))))) "Default connection-local variables for remote kubernetes connections.") (connection-local-set-profile-variables