Sync from SUSE:SLFO:Main emacs revision 4e3681d0405d963e350425ede31d4651

This commit is contained in:
Adrian Schröter 2024-05-03 12:20:52 +02:00
commit 6ac180b144
35 changed files with 19936 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

107
01a4035c.patch Normal file
View File

@ -0,0 +1,107 @@
From e339926272a598bd9ee7e02989c1662b89e64cf0 Mon Sep 17 00:00:00 2001
From: lu4nx <lx@shellcodes.org>
Date: Tue, 6 Dec 2022 15:42:40 +0800
Subject: [PATCH] Fix etags local command injection vulnerability
* lib-src/etags.c: (escape_shell_arg_string): New function.
(process_file_name): Use it to quote file names passed to the
shell. (Bug#59817)
(cherry picked from commit 01a4035c869b91c153af9a9132c87adb7669ea1c)
---
lib-src/etags.c | 63 +++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 58 insertions(+), 5 deletions(-)
diff --git lib-src/etags.c lib-src/etags.c
index c9c32691016..a6bd7f66e29 100644
--- lib-src/etags.c
+++ lib-src/etags.c
@@ -408,6 +408,7 @@ static void invalidate_nodes (fdesc *, node **);
static void put_entries (node *);
static void clean_matched_file_tag (char const * const, char const * const);
+static char *escape_shell_arg_string (char *);
static void do_move_file (const char *, const char *);
static char *concat (const char *, const char *, const char *);
static char *skip_spaces (char *);
@@ -1704,13 +1705,16 @@ process_file_name (char *file, language *lang)
else
{
#if MSDOS || defined (DOS_NT)
- char *cmd1 = concat (compr->command, " \"", real_name);
- char *cmd = concat (cmd1, "\" > ", tmp_name);
+ int buf_len = strlen (compr->command) + strlen (" \"\" > \"\"") + strlen (real_name) + strlen (tmp_name) + 1;
+ char *cmd = xmalloc (buf_len);
+ snprintf (cmd, buf_len, "%s \"%s\" > \"%s\"", compr->command, real_name, tmp_name);
#else
- char *cmd1 = concat (compr->command, " '", real_name);
- char *cmd = concat (cmd1, "' > ", tmp_name);
+ char *new_real_name = escape_shell_arg_string (real_name);
+ char *new_tmp_name = escape_shell_arg_string (tmp_name);
+ int buf_len = strlen (compr->command) + strlen (" > ") + strlen (new_real_name) + strlen (new_tmp_name) + 1;
+ char *cmd = xmalloc (buf_len);
+ snprintf (cmd, buf_len, "%s %s > %s", compr->command, new_real_name, new_tmp_name);
#endif
- free (cmd1);
inf = (system (cmd) == -1
? NULL
: fopen (tmp_name, "r" FOPEN_BINARY));
@@ -7689,6 +7693,55 @@ etags_mktmp (void)
return templt;
}
+/*
+ * Adds single quotes around a string, if found single quotes, escaped it.
+ * Return a newly-allocated string.
+ *
+ * For example:
+ * escape_shell_arg_string("test.txt") => 'test.txt'
+ * escape_shell_arg_string("'test.txt") => ''\''test.txt'
+ */
+static char *
+escape_shell_arg_string (char *str)
+{
+ char *p = str;
+ int need_space = 2; /* ' at begin and end */
+
+ while (*p != '\0')
+ {
+ if (*p == '\'')
+ need_space += 4; /* ' to '\'', length is 4 */
+ else
+ need_space++;
+
+ p++;
+ }
+
+ char *new_str = xnew (need_space + 1, char);
+ new_str[0] = '\'';
+ new_str[need_space-1] = '\'';
+
+ int i = 1; /* skip first byte */
+ p = str;
+ while (*p != '\0')
+ {
+ new_str[i] = *p;
+ if (*p == '\'')
+ {
+ new_str[i+1] = '\\';
+ new_str[i+2] = '\'';
+ new_str[i+3] = '\'';
+ i += 3;
+ }
+
+ i++;
+ p++;
+ }
+
+ new_str[need_space] = '\0';
+ return new_str;
+}
+
static void
do_move_file(const char *src_file, const char *dst_file)
{
--
2.35.3

51
3c1693d0.patch Normal file
View File

@ -0,0 +1,51 @@
From 3c1693d08b0a71d40a77e7b40c0ebc42dca2d2cc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ulrich=20M=C3=BCller?= <ulm@gentoo.org>
Date: Tue, 7 Mar 2023 18:25:37 +0100
Subject: Fix Elisp code injection vulnerability in emacsclient-mail.desktop
A crafted mailto URI could contain unescaped double-quote
characters, allowing injection of Elisp code. Therefore, any
'\' and '"' characters are replaced by '\\' and '\"', using Bash
pattern substitution (which is not available in the POSIX shell).
We want to pass literal 'u=${1//\\/\\\\}; u=${u//\"/\\\"};' in the
bash -c command, but in the desktop entry '"', '$', and '\' must
be escaped as '\\"', '\\$', and '\\\\', respectively (backslashes
are expanded twice, see the Desktop Entry Specification).
Reported by Gabriel Corona <gabriel.corona@free.fr>.
* etc/emacsclient-mail.desktop (Exec): Escape backslash and
double-quote characters.
---
etc/emacsclient-mail.desktop | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/etc/emacsclient-mail.desktop b/etc/emacsclient-mail.desktop
index 91df122..49c6f99 100644
--- a/etc/emacsclient-mail.desktop
+++ b/etc/emacsclient-mail.desktop
@@ -1,7 +1,10 @@
[Desktop Entry]
Categories=Network;Email;
Comment=GNU Emacs is an extensible, customizable text editor - and more
-Exec=sh -c "exec emacsclient --alternate-editor= --display=\\"\\$DISPLAY\\" --eval \\"(message-mailto \\\\\\"\\$1\\\\\\")\\"" sh %u
+# We want to pass the following commands to the shell wrapper:
+# u=${1//\\/\\\\}; u=${u//\"/\\\"}; exec emacsclient --alternate-editor= --display="$DISPLAY" --eval "(message-mailto \"$u\")"
+# Special chars '"', '$', and '\' must be escaped as '\\"', '\\$', and '\\\\'.
+Exec=bash -c "u=\\${1//\\\\\\\\/\\\\\\\\\\\\\\\\}; u=\\${u//\\\\\\"/\\\\\\\\\\\\\\"}; exec emacsclient --alternate-editor= --display=\\"\\$DISPLAY\\" --eval \\"(message-mailto \\\\\\"\\$u\\\\\\")\\"" bash %u
Icon=emacs
Name=Emacs (Mail, Client)
MimeType=x-scheme-handler/mailto;
@@ -13,7 +16,7 @@ Actions=new-window;new-instance;
[Desktop Action new-window]
Name=New Window
-Exec=sh -c "exec emacsclient --alternate-editor= --create-frame --eval \\"(message-mailto \\\\\\"\\$1\\\\\\")\\"" sh %u
+Exec=bash -c "u=\\${1//\\\\\\\\/\\\\\\\\\\\\\\\\}; u=\\${u//\\\\\\"/\\\\\\\\\\\\\\"}; exec emacsclient --alternate-editor= --create-frame --eval \\"(message-mailto \\\\\\"\\$u\\\\\\")\\"" bash %u
[Desktop Action new-instance]
Name=New Instance
--
cgit v1.1

30
CVE-2022-48338.patch Normal file
View File

@ -0,0 +1,30 @@
From 22fb5ff5126dc8bb01edaa0252829d853afb284f Mon Sep 17 00:00:00 2001
From: Xi Lu <lx@shellcodes.org>
Date: Fri, 23 Dec 2022 12:52:48 +0800
Subject: [PATCH] Fix ruby-mode.el local command injection vulnerability
(bug#60268)
* lisp/progmodes/ruby-mode.el
(ruby-find-library-file): Fix local command injection vulnerability.
(cherry picked from commit 9a3b08061feea14d6f37685ca1ab8801758bfd1c)
---
lisp/progmodes/ruby-mode.el | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git lisp/progmodes/ruby-mode.el lisp/progmodes/ruby-mode.el
index 72631a6557f..9b05b04a52c 100644
--- lisp/progmodes/ruby-mode.el
+++ lisp/progmodes/ruby-mode.el
@@ -1819,7 +1819,7 @@ or `gem' statement around point."
(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)
--
2.35.3

29
CVE-2022-48339.patch Normal file
View File

@ -0,0 +1,29 @@
From 807d2d5b3a7cd1d0e3f7dd24de22770f54f5ae16 Mon Sep 17 00:00:00 2001
From: Xi Lu <lx@shellcodes.org>
Date: Sat, 24 Dec 2022 16:28:54 +0800
Subject: [PATCH] Fix htmlfontify.el command injection vulnerability.
* lisp/htmlfontify.el (hfy-text-p): Fix command injection
vulnerability. (Bug#60295)
(cherry picked from commit 1b4dc4691c1f87fc970fbe568b43869a15ad0d4c)
---
lisp/htmlfontify.el | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git lisp/htmlfontify.el lisp/htmlfontify.el
index 115f67c9560..f8d1e205369 100644
--- lisp/htmlfontify.el
+++ lisp/htmlfontify.el
@@ -1882,7 +1882,7 @@ Hardly bombproof, but good enough in the context in which it is being used."
(defun hfy-text-p (srcdir file)
"Is SRCDIR/FILE text? Use `hfy-istext-command' to determine this."
- (let* ((cmd (format hfy-istext-command (expand-file-name file srcdir)))
+ (let* ((cmd (format hfy-istext-command (shell-quote-argument (expand-file-name file srcdir))))
(rsp (shell-command-to-string cmd)))
(string-match "text" rsp)))
--
2.35.3

159
app-defaults.Emacs Normal file
View File

@ -0,0 +1,159 @@
! ==========================================================================
! Emacs
! ==========================================================================
Emacs.pane.menubar.font: -*-helvetica-bold-r-normal--12-*-*-*-p-*-iso8859-*
Emacs.menu*.font: -*-helvetica-bold-r-normal--12-*-*-*-p-*-iso8859-*
! With GNU Emacs 24 Xft is used, therefore no fontsets are required. If you
! like to use fontsets you have to disable "FontBackend" and enable "Font".
! If Xft fails then X font scheme (including fontsets) is used as fallback.
!! Emacs.FontBackend: xft,x
!! Emacs.Font: fontset-16
Emacs*Fontset-0:\
-*-fixed-medium-r-*--16-*-*-*-*-*-fontset-16,\
latin-iso8859-1:-*-fixed-medium-r-*--16-*-iso8859-1,\
latin-iso8859-2:-*-fixed-medium-r-*--16-*-iso8859-2,\
latin-iso8859-3:-*-fixed-medium-r-*--16-*-iso8859-3,\
latin-iso8859-4:-*-fixed-medium-r-*--16-*-iso8859-4,\
cyrillic-iso8859-5:-*-fixed-medium-r-*--16-*-iso8859-5,\
greek-iso8859-7:-*-fixed-medium-r-*--16-*-iso8859-7,\
hebrew-iso8859-8:-*-fixed-medium-r-*--16-*-iso8859-8,\
latin-iso8859-9:-*-fixed-medium-r-*--16-*-iso8859-9,\
latin-iso8859-15:-*-fixed-medium-r-*--16-*-iso8859-15,\
arabic-digit:-*-fixed-medium-r-*--16-*-mulearabic-0,\
arabic-1-column:-*-fixed-medium-r-*--16-*-mulearabic-1,\
arabic-2-column:-*-fixed-medium-r-*--16-*-mulearabic-2,\
katakana-jisx0201:-*-fixed-medium-r-*--16-*-jisx0201.1976-0,\
japanese-jisx0208:-*-fixed-medium-r-*--16-*-jisx0208*-0,\
korean-ksc5601:-*-fixed-medium-r-*--16-*-ksc5601*-*,\
chinese-big5-1:-*-fixed-medium-r-*--16-*-big5*-0,\
chinese-gb2312:-*-medium-r-normal-*-16-*-gb2312*-*,\
chinese-cns11643-1:-*-medium-r-normal-*-16-*-cns11643*-1,\
chinese-cns11643-2:-*-medium-r-normal-*-16-*-cns11643*-2,\
chinese-cns11643-3:-*-medium-r-normal-*-16-*-cns11643*-3,\
chinese-cns11643-4:-*-medium-r-normal-*-16-*-cns11643*-4,\
chinese-cns11643-5:-*-medium-r-normal-*-16-*-cns11643*-5,\
chinese-cns11643-6:-*-medium-r-normal-*-16-*-cns11643*-6,\
chinese-cns11643-7:-*-medium-r-normal-*-16-*-cns11643*-7,\
thai-tis620:-*-fixed-medium-r-*--16-*-tis620.2529-1,\
vietnamese-viscii-lower:-*-fixed-medium-r-*--16-*-viscii1.1-1,\
lao:-*-fixed-medium-r-*--16-*-mulelao-1,\
tibetan:-*-fixed-medium-r-*--16-*-muletibetan-0,\
tibetan-1-column:-*-fixed-medium-r-*--16-*-muletibetan-1
Emacs*Fontset-1:\
-*-fixed-medium-r-*--24-*-*-*-*-*-fontset-24,\
latin-iso8859-1:-*-fixed-medium-r-*--24-*-iso8859-1,\
latin-iso8859-2:-*-fixed-medium-r-*--24-*-iso8859-2,\
latin-iso8859-3:-*-fixed-medium-r-*--24-*-iso8859-3,\
latin-iso8859-4:-*-fixed-medium-r-*--24-*-iso8859-4,\
cyrillic-iso8859-5:-*-fixed-medium-r-*--24-*-iso8859-5,\
greek-iso8859-7:-*-fixed-medium-r-*--24-*-iso8859-7,\
hebrew-iso8859-8:-*-fixed-medium-r-*--24-*-iso8859-8,\
latin-iso8859-9:-*-fixed-medium-r-*--24-*-iso8859-9,\
latin-iso8859-15:-*-fixed-medium-r-*--24-*-iso8859-15,\
arabic-digit:-*-fixed-medium-r-*--24-*-mulearabic-0,\
arabic-1-column:-*-fixed-medium-r-*--24-*-mulearabic-1,\
arabic-2-column:-*-fixed-medium-r-*--24-*-mulearabic-2,\
katakana-jisx0201:-*-fixed-medium-r-*--24-*-jisx0201.1976-0,\
japanese-jisx0208:-*-fixed-medium-r-*--24-*-jisx0208*-0,\
korean-ksc5601:-*-fixed-medium-r-*--24-*-ksc5601*-*,\
chinese-big5-1:-*-fixed-medium-r-*--24-*-big5*-0,\
chinese-gb2312:-*-medium-r-normal-*-24-*-gb2312*-*,\
chinese-cns11643-1:-*-medium-r-normal-*-24-*-cns11643*-1,\
chinese-cns11643-2:-*-medium-r-normal-*-24-*-cns11643*-2,\
chinese-cns11643-3:-*-medium-r-normal-*-24-*-cns11643*-3,\
chinese-cns11643-4:-*-medium-r-normal-*-24-*-cns11643*-4,\
chinese-cns11643-5:-*-medium-r-normal-*-24-*-cns11643*-5,\
chinese-cns11643-6:-*-medium-r-normal-*-24-*-cns11643*-6,\
chinese-cns11643-7:-*-medium-r-normal-*-24-*-cns11643*-7,\
thai-tis620:-*-fixed-medium-r-*--24-*-tis620.2529-1,\
vietnamese-viscii-lower:-*-fixed-medium-r-*--24-*-viscii1.1-1,\
lao:-*-fixed-medium-r-*--24-*-mulelao-1,\
indian-is13194:-*-fixed-medium-r-*--24-*-is13194-devanagari,\
indian-1-column:-*-fixed-medium-r-*--24-*-muleindian-1,\
indian-2-column:-*-fixed-medium-r-*--24-*-muleindian-2,\
tibetan:-*-fixed-medium-r-*--24-*-muletibetan-0,\
tibetan-1-column:-*-fixed-medium-r-*--24-*-muletibetan-1
Emacs*Fontset-2:\
-*-fixed-medium-r-*--20-*-*-*-*-*-fontset-20,\
latin-iso8859-1:-*-fixed-medium-r-*--20-*-iso8859-1,\
latin-iso8859-2:-*-fixed-medium-r-*--20-*-iso8859-2,\
latin-iso8859-3:-*-fixed-medium-r-*--20-*-iso8859-3,\
latin-iso8859-4:-*-fixed-medium-r-*--20-*-iso8859-4,\
cyrillic-iso8859-5:-*-fixed-medium-r-*--20-*-iso8859-5,\
greek-iso8859-7:-*-fixed-medium-r-*--20-*-iso8859-7,\
hebrew-iso8859-8:-*-fixed-medium-r-*--20-*-iso8859-8,\
latin-iso8859-9:-*-fixed-medium-r-*--20-*-iso8859-9,\
latin-iso8859-15:-*-fixed-medium-r-*--20-*-iso8859-15,\
katakana-jisx0201:-*-fixed-medium-r-*--20-*-jisx0201.1976-0,\
japanese-jisx0208:-*-fixed-medium-r-*--20-*-jisx0208*-0,\
korean-ksc5601:-*-fixed-medium-r-*--20-*-ksc5601*-*
Emacs*Fontset-3:\
-*-fixed-medium-r-*--18-*-*-*-*-*-fontset-18,\
latin-iso8859-1:-*-fixed-medium-r-*--18-*-iso8859-1,\
latin-iso8859-2:-*-fixed-medium-r-*--18-*-iso8859-2,\
latin-iso8859-3:-*-fixed-medium-r-*--18-*-iso8859-3,\
latin-iso8859-4:-*-fixed-medium-r-*--18-*-iso8859-4,\
cyrillic-iso8859-5:-*-fixed-medium-r-*--18-*-iso8859-5,\
greek-iso8859-7:-*-fixed-medium-r-*--18-*-iso8859-7,\
hebrew-iso8859-8:-*-fixed-medium-r-*--18-*-iso8859-8,\
latin-iso8859-9:-*-fixed-medium-r-*--18-*-iso8859-9,\
latin-iso8859-15:-*-fixed-medium-r-*--18-*-iso8859-15,\
katakana-jisx0201:-*-*-medium-r-*--18-*-jisx0201.1976-0,\
japanese-jisx0208:-*-*-medium-r-*--18-*-jisx0208*-0,\
korean-ksc5601:-*-fixed-medium-r-*--18-*-ksc5601*-*
Emacs*Fontset-4:\
-*-fixed-medium-r-*--14-*-*-*-*-*-fontset-14,\
latin-iso8859-1:-*-fixed-medium-r-*--14-*-iso8859-1,\
latin-iso8859-2:-*-fixed-medium-r-*--14-*-iso8859-2,\
latin-iso8859-3:-*-fixed-medium-r-*--14-*-iso8859-3,\
latin-iso8859-4:-*-fixed-medium-r-*--14-*-iso8859-4,\
cyrillic-iso8859-5:-*-fixed-medium-r-*--14-*-iso8859-5,\
greek-iso8859-7:-*-fixed-medium-r-*--14-*-iso8859-7,\
hebrew-iso8859-8:-*-fixed-medium-r-*--14-*-iso8859-8,\
latin-iso8859-9:-*-fixed-medium-r-*--14-*-iso8859-9,\
latin-iso8859-15:-*-fixed-medium-r-*--14-*-iso8859-15,\
katakana-jisx0201:-*-fixed-medium-r-*--14-*-jisx0201.1976-0,\
japanese-jisx0208:-*-fixed-medium-r-*--14-*-jisx0208*-0,\
korean-ksc5601:-*-fixed-medium-r-*--14-*-ksc5601*-*,\
thai-tis620:-*-fixed-medium-r-*--14-*-tis620.2529-1,\
lao:-*-fixed-medium-r-*--14-*-mulelao-1
Emacs*Fontset-5:\
-*-fixed-medium-r-*--12-*-*-*-*-*-fontset-12,\
latin-iso8859-1:-*-fixed-medium-r-*--12-*-iso8859-1,\
latin-iso8859-2:-*-fixed-medium-r-*--12-*-iso8859-2,\
latin-iso8859-3:-*-fixed-medium-r-*--12-*-iso8859-3,\
latin-iso8859-4:-*-fixed-medium-r-*--12-*-iso8859-4,\
cyrillic-iso8859-5:-*-fixed-medium-r-*--12-*-iso8859-5,\
greek-iso8859-7:-*-fixed-medium-r-*--12-*-iso8859-7,\
latin-iso8859-15:-*-fixed-medium-r-*--12-*-iso8859-15,\
hebrew-iso8859-8:-*-fixed-medium-r-*--12-*-iso8859-8,\
latin-iso8859-9:-*-fixed-medium-r-*--12-*-iso8859-9,\
katakana-jisx0201:-*-fixed-medium-r-*--12-*-jisx0201.1976-0,\
japanese-jisx0208:-*-fixed-medium-r-*--12-*-jisx0208*-0,\
korean-ksc5601:-*-fixed-medium-r-*--12-*-ksc5601.1987-0
Emacs*Fontset-6:\
-*-fixed-medium-r-*--10-*-*-*-*-*-fontset-10,\
latin-iso8859-1:-*-fixed-medium-r-*--10-*-iso8859-1,\
latin-iso8859-2:-*-fixed-medium-r-*--10-*-iso8859-2,\
latin-iso8859-3:-*-fixed-medium-r-*--10-*-iso8859-3,\
latin-iso8859-4:-*-fixed-medium-r-*--10-*-iso8859-4,\
cyrillic-iso8859-5:-*-fixed-medium-r-*--10-*-iso8859-5,\
greek-iso8859-7:-*-fixed-medium-r-*--10-*-iso8859-7,\
hebrew-iso8859-8:-*-fixed-medium-r-*--10-*-iso8859-8,\
latin-iso8859-9:-*-fixed-medium-r-*--10-*-iso8859-9,\
latin-iso8859-15:-*-fixed-medium-r-*--10-*-iso8859-15,\
katakana-jisx0201:-*-fixed-medium-r-*--10-*-jisx0201.1976-0,\
japanese-jisx0208:-*-fixed-medium-r-*--10-*-jisx0208*-0,\
korean-ksc5601:-*-fixed-medium-r-*--10-*-ksc5601*-*
Emacs*Fontset-7:\
-*-fixed-medium-r-*--8-*-*-*-*-*-fontset-8,\
latin-iso8859-1:-*-fixed-medium-r-*--8-*-iso8859-1,\
greek-iso8859-7:-*-fixed-medium-r-*--8-*-iso8859-7,\
latin-iso8859-15:-*-fixed-medium-r-*--8-*-iso8859-15
Emacs*Fontset-8:\
-*-fixed-medium-r-*--7-*-*-*-*-*-fontset-7,\
latin-iso8859-1:-*-fixed-medium-r-*--7-*-iso8859-1,\
greek-iso8859-7:-*-fixed-medium-r-*--7-*-iso8859-7,\
latin-iso8859-15:-*-fixed-medium-r-*--7-*-iso8859-15

28
check-build.sh Normal file
View File

@ -0,0 +1,28 @@
#!/bin/bash
case $BUILD_BASENAME in
*ppc*)
if test $(getconf PAGESIZE) -ne 65536; then
echo "Error: wrong build host, PAGESIZE must be 65536"
exit 1
fi
;;
*ia64*)
if test $(getconf PAGESIZE) -ne 65536; then
echo "Error: wrong build host, PAGESIZE must be 65536"
exit 1
fi
;;
*)
;;
esac
exec_shield=0
if test -e /proc/sys/kernel/exec-shield; then
read -t 1 exec_shield < /proc/sys/kernel/exec-shield
fi
if test $exec_shield -ne 0 ; then
echo Sorry, Execution Shield exists and is enabled 1>&2
exit 1
fi
exit 0

65
d3209119.patch Normal file
View File

@ -0,0 +1,65 @@
From d32091199ae5de590a83f1542a01d75fba000467 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ulrich=20M=C3=BCller?= <ulm@gentoo.org>
Date: Mon, 19 Dec 2022 16:51:20 +0100
Subject: Fix quoted argument in emacsclient-mail.desktop Exec key
Apparently the emacsclient-mail.desktop file doesn't conform to the
Desktop Entry Specification at
https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#exec-variables
which says about the Exec key:
| Field codes must not be used inside a quoted argument, the result of
| field code expansion inside a quoted argument is undefined.
However, the %u field code is used inside a quoted argument of the
Exec key in both the [Desktop Entry] and [Desktop Action new-window]
sections.
* etc/emacsclient-mail.desktop (Exec): The Desktop Entry
Specification does not allow field codes like %u inside a quoted
argument. Work around it by passing %u as first parameter ($1)
to the shell wrapper.
* etc/emacsclient.desktop (Exec): Use `sh` rather than `placeholder`
as the command name of the shell wrapper. (Bug#60204)
---
etc/emacsclient-mail.desktop | 4 ++--
etc/emacsclient.desktop | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/etc/emacsclient-mail.desktop b/etc/emacsclient-mail.desktop
index b575a41..91df122 100644
--- a/etc/emacsclient-mail.desktop
+++ b/etc/emacsclient-mail.desktop
@@ -1,7 +1,7 @@
[Desktop Entry]
Categories=Network;Email;
Comment=GNU Emacs is an extensible, customizable text editor - and more
-Exec=sh -c "exec emacsclient --alternate-editor= --display=\\"\\$DISPLAY\\" --eval \\\\(message-mailto\\\\ \\\\\\"%u\\\\\\"\\\\)"
+Exec=sh -c "exec emacsclient --alternate-editor= --display=\\"\\$DISPLAY\\" --eval \\"(message-mailto \\\\\\"\\$1\\\\\\")\\"" sh %u
Icon=emacs
Name=Emacs (Mail, Client)
MimeType=x-scheme-handler/mailto;
@@ -13,7 +13,7 @@ Actions=new-window;new-instance;
[Desktop Action new-window]
Name=New Window
-Exec=emacsclient --alternate-editor= --create-frame --eval "(message-mailto \\"%u\\")"
+Exec=sh -c "exec emacsclient --alternate-editor= --create-frame --eval \\"(message-mailto \\\\\\"\\$1\\\\\\")\\"" sh %u
[Desktop Action new-instance]
Name=New Instance
diff --git a/etc/emacsclient.desktop b/etc/emacsclient.desktop
index 1ecdecf..a9f840c7 100644
--- a/etc/emacsclient.desktop
+++ b/etc/emacsclient.desktop
@@ -3,7 +3,7 @@ Name=Emacs (Client)
GenericName=Text Editor
Comment=Edit text
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
-Exec=sh -c "if [ -n \\"\\$*\\" ]; then exec emacsclient --alternate-editor= --display=\\"\\$DISPLAY\\" \\"\\$@\\"; else exec emacsclient --alternate-editor= --create-frame; fi" placeholder %F
+Exec=sh -c "if [ -n \\"\\$*\\" ]; then exec emacsclient --alternate-editor= --display=\\"\\$DISPLAY\\" \\"\\$@\\"; else exec emacsclient --alternate-editor= --create-frame; fi" sh %F
Icon=emacs
Type=Application
Terminal=false
--
cgit v1.1

9274
d48bb487.patch Normal file

File diff suppressed because it is too large Load Diff

538
dot.gnu-emacs Normal file
View File

@ -0,0 +1,538 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; File name: ` ~/.gnu-emacs '
;;; ---------------------
;;;
;;; Note: This file is for GNU-Emacs only ...
;;; GNU-Emacs is incompatible to X-Emacs. Therefore your
;;; personal ~/.emacs should load this file if your runnning
;;; the good old GNU-emacs.
;;;
;;; If you need your own personal ~/.gnu-emacs
;;; please make a copy of this file
;;; an placein your changes and/or extension.
;;;
;;; For emacs commands have a look onto the
;;; `emacs-revcard' in the directory /usr/doc/packages/emacs/
;;;
;;; Copyright 1993-2001 Werner Fink
;;; Copyright (c) 1996-2001 SuSE Gmbh Nuernberg, Germany.
;;; All rights reserved.
;;;
;;; Author: Werner Fink, <werner@suse.de> 1993-2001
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; No splash screen at all
;; -----------------------
(if (and (file-exists-p "~/.inhibit-splash-screen")
(boundp 'inhibit-splash-screen))
(setq-default inhibit-splash-screen t))
;;
;; Debuging only
;; -------------
; (open-dribble-file "~/.dribble")
; (open-termscript "~/.termscript")
;;
;; Emacs makes backup by moving original files, to
;; avoid trouble with hardlinked files we may use:
;; -----------------------------------------------
; (defconst backup-by-copying-when-linked t)
;;
;; Rmail: We will place all Mail's an Mail-folders into ~/Mail
;; -----------------------------------------------------------
(if (file-accessible-directory-p "~/Mail/")
(setq rmail-secondary-file-directory "~/Mail/"))
;;
;; Prefix for mail-mode
;; ---------------------
(setq mail-yank-prefix "> ")
; (setq mail-archive-file-name "~/Mail/.CarbonCopy")
(setq mail-self-blind nil)
(setq mail-default-headers nil)
(setq mail-signature nil)
;;
;; Settings for message-mode
;; -------------------------
(setq message-from-style "angles")
(if (null mail-host-address)
(let ((tmph (getenv "HOSTNAME"))
(tmpf (getenv "FROM_HEADER")))
(if (or (null tmph) (not (string-match "\\." tmph)))
(setq tmph (system-name)))
(if (not (string-match "\\." tmph))
(setq mail-host-address "our.domain.is.not.set")
(string-match "\\." tmph)
(setq mail-host-address (substring tmph (match-end 0))))
(if (stringp tmpf)
(setq mail-host-address tmpf)))
(setq tmpf nil tmph nil))
;;
;; RMAILGEN: Folder im Rmail-Mode :-)
;; ----------------------------------
;;
;; 1. I want to define a mail directory that isn't `~/'
(if (file-accessible-directory-p "~/Mail/")
(setq rmailgen-default-directory "~/Mail/")) ; must end in slash
;;;
;; 2. I want 78 column
(add-hook 'mail-mode-hook (function (lambda () (setq fill-column 78))))
(if (file-exists-p "~/.abbrev_defs")
(progn (read-abbrev-file "~/.abbrev_defs")
(add-hook 'mail-setup-hook 'mail-abbrevs-setup)))
;;;
;; 3. By default, if mail-archive-file-name is non-nil then
;; archive file names will be generated automatically based on
;; the message to which a reply is being constructed. If I
;; wanted to turn this off I would put in a statement like
(setq rmailgen-archive-file-name nil)
;;;
;; 4. By default, rmailgen.el downcases generated filenames
;; If I wanted uppercase I would put in a statement like here.
(setq rmailgen-downcase "dummy")
;;;
;; 5. By default, rmailgen.el does not append `.gz' to generated
;; filenames. If I wanted such an extension I would put in a statement
;; like
;;(setq rmailgen-gzip-file-name t)
;;;
;; 6. By default, rmailgen.el will use generated FCC filenames even
;; if the file does not exist. If I wanted to FCC only if the file
;; already exists I would put in a statement like
;; (setq rmailgen-archive-only-if-exists t)
;;;
;; 7. Add my own personal output list for specific friends
;; and special subjects.
;;;
;; First define rmail-output-file-alist, just in case this
;; is not already defined. That is, may be
;; ../lisp/rmailout.el has not been loaded yet.
(if (not (boundp 'rmail-output-file-alist))
(defvar rmail-output-file-alist nil))
;;;
(setq rmail-output-file-alist
(append
(list
; ;; For my friends (some have strange account names).
; '("^From:[ \t]*.*jones.*" . "jmjones")
; '("^From:[ \t]*.*Joe[ \t]*Smith.*" . "joe")
;
; ;; Special subject lines.
; '("^Subject:[ \t]*.*crypt.*" . "crypt++")
; '("^Subject:[ \t]*.*rmailgen.*" . "genrmail")
; '("^Subject:[ \t]*.*dired-x.*" . "dired-x")
; '("^Subject:[ \t]*.*GNU Emacs 19 RMAIL Poll.*" . "rmail")
;
; ;; Add more entries here...
)
;;;
;; In case rmail-output-file-alist has been defined
;; already elsewhere.
rmail-output-file-alist))
;;;
;; 8. Load package [REQUIRED].
(if (file-exists-p "/usr/share/emacs/site-lisp/rmailgen.el")
(require 'rmailgen))
;;
;; Base text mode
;; ----------------------
(setq default-major-mode 'text-mode)
(line-number-mode 1)
(global-set-key "\e\?" 'goto-line)
(column-number-mode 1)
;;
;; User can cutomize that: Just show e.g. DOS files with CR/NL
;; ----------------------
; (setq-default inhibit-eol-conversion t)
(setq-default require-final-newline "ask")
;;
;; Specials for X Window System
;; -------------------------
(if (not window-system)
;; ispell
;; ----------------------
;; (A few changes on ispell)
(setq ispell-highlight-face 'underline);)
;;
;; Geomtry and layout
;;
; (setq initial-frame-alist
; '((vertical-scroll-bars . right) (height . 34) (width . 80)))
; (setq default-frame-alist
; '((vertical-scroll-bars . right) (height . 34) (width . 80)))
;;
;; Some fonts
;; -----------------------
(if (> emacs-major-version 20) (require 'xfonts))
;;
;; New in Emacs 21: tool bar menu, you may switch it of
;; ----------------------------------------------------
; (if (fboundp 'tool-bar-mode) (tool-bar-mode 0))
;;
;; mouse as arrow
;; --------------
(setq x-pointer-shape x-pointer-left-ptr)
(if (x-display-color-p)
(set-mouse-color "RoyalBlue")
(set-mouse-color (cdr (assq 'mouse-color (frame-parameters)))))
;;
;; Automatically replacing of fore- and background.
(if (not (x-display-color-p))
(progn
(set-face-background 'region
(cdr (assq 'foreground-color (frame-parameters ))))
(set-face-foreground 'region
(cdr (assq 'background-color (frame-parameters ))))
;; ispell
;; ----------------------
;; (A few changes on ispell)
(setq ispell-highlight-face 'underline)))
;;
;; Highlighting of special emacs modes
;; -----------------------------------
;; We use font lock mode
;; Darken greyed strings in font lock mode
(custom-declare-face 'font-lock-string-face
'((((class grayscale) (background light)) (:foreground "gray37" :italic t))
(((class grayscale) (background dark)) (:foreground "LightGray" :italic t))
(((class color) (background light)) (:foreground "gray37"))
(((class color) (background dark)) (:foreground "LightGray"))
(t (:italic t)))
"Font Lock mode face used to highlight strings."
:group 'font-lock-highlighting-faces)
;; Enable font lock support
(require 'font-lock)
(cond ((and (boundp 'jit-lock-mode) (symbol-value 'jit-lock-mode))
(setq font-lock-support-mode '((latex-mode . fast-lock-mode) (t . jit-lock-mode))))
((and (boundp 'lazy-lock-mode) (symbol-value 'lazy-lock-mode))
(setq font-lock-support-mode '((latex-mode . fast-lock-mode) (t . lazy-lock-mode)))))
(add-hook 'after-init-hook #'(lambda () (global-font-lock-mode 1)))
;;
;; Some dialog
;; ------------------
(setq use-dialog-box t)
;;
;; less dialog
;; -----------
;(menu-prompting nil)
;;
;; Set X synchrone
;; ---------------
;; Speed up
(setq mouse-scroll-delay 0)
(setq x-selection-timeout 0)
;;
;; We use a wrapper script for netscape
;;
(if (file-executable-p "/usr/X11R6/bin/Netscape")
(setq browse-url-netscape-program "/usr/X11R6/bin/Netscape"))
)
;;
;; emacsclient: automatical popup under X11
;; ------------------------------------------
;(defun server-make-window-visible ()
; "Try to make this window even more visible."
;(if window-system
; (progn
; (let ((foo (selected-frame)))
; (sit-for 0)
; (make-frame-visible foo))
; (accept-process-output))))
;(add-hook 'server-switch-hook #'(lambda () (server-make-window-visible)))
;(add-hook 'server-visit-hook #'(lambda () (server-make-window-visible)))
;; Start it for popup
;(server-start)
;;
;; Emacs experts like this
;; -----------------------
(put 'eval-expression 'disabled nil)
;;
;; Working on parts of text
;; ------------------------
;; NB: `C-x n n' is narrow-to-region
;; `C-x n p' is narrow-to-page
;; `C-x n w' is widen
;(put 'narrow-to-region 'disabled nil)
;(put 'narrow-to-page 'disabled nil)
;;
;; GNUS
;; ----
;; Sorting
(if (or (and (= emacs-major-version 19) (> emacs-minor-version 29))
(> emacs-major-version 19))
(add-hook 'gnus-select-group-hook
#'(lambda ()
(setq-default gnus-auto-select-first nil)
(setq-default gnus-auto-center-summary nil)
(setq gnus-thread-sort-functions
'(gnus-thread-sort-by-number
gnus-thread-sort-by-subject
gnus-thread-sort-by-date
gnus-thread-sort-by-score))))
(add-hook 'gnus-select-group-hook
#'(lambda ()
(setq-default gnus-auto-select-first nil)
(setq-default gnus-auto-center-summary nil)
;; First of all, sort by date.
(gnus-keysort-headers
(function string-lessp)
(function
(lambda (a)
(gnus-sortable-date (gnus-header-date a)))))
;; Then sort by subject string ignoring `Re:'.
;; If case-fold-search is non-nil, case of letters is ignored.
(gnus-keysort-headers
(function string-lessp)
(function
(lambda (a)
(if case-fold-search
(downcase (gnus-simplify-subject (gnus-header-subject a) t))
(gnus-simplify-subject (gnus-header-subject a) t)))))
))
)
;; highlighting, menus, and subscribing in GNUS
(add-hook 'gnus-startup-hook
#'(lambda ()
(setq gnus-subscribe-newsgroup-method
#'(lambda (newsgroup)
(gnus-subscribe-newsgroup newsgroup)
(gnus-kill-newsgroup newsgroup)))
(setq gnus-use-generic-from t)
;; highlighting and menu in GNUS
(if (or (and (= emacs-major-version 19) (> emacs-minor-version 29))
(> emacs-major-version 19))
(progn
(setq gnus-visual '(highlight menu))
(setq gnus-group-highlight
'(;; News.
((and (> unread 100) (not mailp)) . gnus-summary-high-ticked-face)
((and (> unread 0) (not mailp)) . gnus-summary-high-read-face)
((and (= unread 0) (not mailp)) . gnus-summary-high-ancient-face)
((not mailp) . gnus-summary-normal-ancient-face)
;; Mail.
((and (= unread 0) (eq level 1)) . gnus-group-mail-1-empty-face)
((eq level 1) . gnus-group-mail-1-face)
((and (= unread 0) (eq level 2)) . gnus-group-mail-2-empty-face)
((eq level 2) . gnus-group-mail-2-face)
((and (= unread 0) (eq level 3)) . gnus-group-mail-3-empty-face)
((eq level 3) . gnus-group-mail-3-face)
((= unread 0) . gnus-group-mail-low-empty-face)
(t . gnus-group-mail-low-face)))
)))
)
;;
;; Common to all C modes
;; ---------------------
;(autoload 'hideshowvis-enable "hideshowvis" "Highlight foldable regions")
;(add-hook 'c-mode-common-hook
; #'(lambda () (c-set-style "linux")
; (c-set-offset 'case-label 4)
; (setq c-basic-offset 4)))
;;
;; Auto fill mode
;; --------------
(add-hook 'text-mode-hook 'turn-on-auto-fill)
;;
;; Fill-column
;; -----------
;; Fill-column ist hier auf 78 Charakter gesetzt, nach Wunsch "andern!
(setq-default fill-column 78)
(add-hook 'TeX-mode-hook #'(lambda () (setq fill-column 78)))
;;
;; AUC-TeX
;; ----------------------------
(if (boundp 'AUCTeX-version)
(progn
(let* ((version (split-string AUCTeX-version "\\."))
(major (string-to-number (car version)))
(minor (string-to-number (car (cdr version)))))
(if (or (> major 11) (and (eq major 11) (>= minor 86)))
(custom-set-default 'TeX-master nil)
(setq-default TeX-master nil)))
; ; Users private libaries
; (if (boundp 'AUCTeX-version)
; (progn
; (setq TeX-macro-private '("~/lib/tex-lib/"))
; (setq TeX-style-private "~/lib/site-lisp/auctex/style/") ; AUC-TeX-Macros
; (setq TeX-auto-private "~/lib/site-lisp/auctex/auto/"))) ; Autom. Auc-TeX-Macros
(if (and window-system (featurep 'font-lock))
(progn
(add-hook 'latex-mode-hook 'turn-on-font-lock)
(if (boundp 'AUCTeX-version)
(progn
(add-hook 'LaTeX-mode-hook 'turn-on-font-lock)
(add-hook 'LaTeX-mode-hook 'LaTeX-math-mode)
(add-hook 'after-init-hook #'(lambda () (load "auctex/font-latex" nil t)))))))
))
;;
;; Brace macros
;; ------------
(defun TeX-Inserting (sta stb stc)
(if (= (preceding-char) sta )
(insert stb)
(progn (insert stc) (backward-char 1))))
(defun TeX-schweif () (interactive "*") (TeX-Inserting ?\\ "{" "{}"))
(defun TeX-rundekl () (interactive "*") (TeX-Inserting ?\\ "(" "()"))
(defun TeX-eckigek () (interactive "*") (TeX-Inserting ?\\ "[" "[]"))
(defun TeX-exponen () (interactive "*") (TeX-Inserting ?\\ "^" "^{}"))
(defun TeX-subscri () (interactive "*") (TeX-Inserting ?\\ "_" "_{}"))
(defun TeX-dollarm () (interactive "*") (TeX-Inserting ?\\ "$" "$$"))
(defun TeX-REVbbox () (interactive "*") (TeX-Inserting ?\\ "bbox{" "\\bbox{}"))
(add-hook 'LaTeX-mode-hook
#'(lambda ()
;; Uncomment this for automatic bracket closing
;; Begin bracket closing
; (local-set-key "{" 'TeX-schweif)
; (local-set-key "(" 'TeX-rundekl)
; (local-set-key "[" 'TeX-eckigek)
; (local-set-key "^" 'TeX-exponen)
; (local-set-key "_" 'TeX-subscri)
; (local-set-key "$" 'TeX-dollarm)
; (local-set-key "\C-b" 'TeX-REVbbox)
;;
;; It's german:
;; Deutsche Tastatur im LaTeX-German-Style/Babel-Class
;; ---------------------------------------------------
;; Aktivierung mit `M-x german-mode' -> man dr"ucke
;; *nacheinander* <ComposeCharacter>, <">, <a> und staune!
;; ACHTUNG: Bei grossen Files sehr LANGSAM beim Abspeichern
;; das ist vom Prinzip her bedingt! Hier gibt's keinen Support!
; (require 'ger-keys)
;; End bracket closing
;; For ISO Latin standard: Macro out of `ger-keys'
;; ger-keys should be loaded
; (german-mode)
;; For german style usage:
; (modify-syntax-entry ?" "w")
; (local-set-key "\"" 'self-insert-command)
;; Deutsche Belegung amerikanischer Tastaturen: aus `ger-keys'
; (german-keyboard)
))
;;
;; Provide some usefull function keys
;; ----------------------------------
;; Have a look on /usr/share/emacs/site-lisp/function-keys.el
;; Extensions or changes of the keymap
;; original definitions will found in loaddefs.el.
;;(global-set-key [escape] [?\e]) ; Escape
;;
(global-set-key [M-left] 'backward-word)
(global-set-key [M-right] 'forward-word)
(global-set-key [M-up] 'beginning-of-line)
(global-set-key [M-down] 'end-of-line)
;;
; (global-set-key [C-left] 'backward-char)
; (global-set-key [C-right] 'forward-char)
; (global-set-key [C-up] 'previous-line)
; (global-set-key [C-down] 'next-line)
;;
; (global-set-key [S-left] 'backward-char)
; (global-set-key [S-right] 'forward-char)
; (global-set-key [S-up] 'previous-line)
; (global-set-key [S-down] 'next-line)
;;
(global-set-key [find] 'isearch-forward) ; Search
(global-set-key [select] 'set-mark-command) ; Mark
;;
(global-set-key [S-next] 'end-of-buffer)
(global-set-key [S-prior] 'beginning-of-buffer)
(global-set-key [S-find] 'find-file)
(global-set-key [S-select] 'switch-to-buffer)
(global-set-key [S-insert] 'insert-file)
;;
(if (and (= emacs-major-version 19) (= emacs-minor-version 29))
(define-key key-translation-map [f1] nil)) ; 19.29+
(global-set-key [S-f1] 'find-file)
(global-set-key [M-f1] 'find-file)
(global-set-key [f1] 'help-for-help) ; `Help'
(global-set-key [pause] 'toggle-read-only) ; `HoldScreen'
;;
(if (global-key-binding [f2])
(progn
(global-set-key [S-f2] 'split-window)
(global-set-key [M-f2] 'split-window))
(global-set-key [f2] 'split-window))
(if (global-key-binding [f2])
(progn
(global-set-key [S-f2] 'split-window)
(global-set-key [M-f2] 'split-window))
(global-set-key [f2] 'split-window))
(if (global-key-binding [f3])
(progn
(global-set-key [S-f3] 'isearch-forward)
(global-set-key [M-f3] 'isearch-forward))
(global-set-key [f3] 'isearch-forward))
(if (global-key-binding [f4])
(progn
(global-set-key [S-f4] 'query-replace-regexp)
(global-set-key [M-f4] 'query-replace-regexp))
(global-set-key [f4] 'query-replace-regexp))
(if (global-key-binding [f5])
(progn
(global-set-key [S-f5] 'save-buffer)
(global-set-key [M-f5] 'save-buffer))
(global-set-key [f5] 'save-buffer))
(if (global-key-binding [f6])
(progn
(global-set-key [S-f6] 'find-file)
(global-set-key [M-f6] 'find-file))
(global-set-key [f6] 'find-file))
(if (global-key-binding [f7])
(progn
(global-set-key [S-f7] 'buffer-menu)
(global-set-key [M-f7] 'buffer-menu))
(global-set-key [f7] 'buffer-menu))
(if (global-key-binding [f8])
(progn
(global-set-key [S-f8] 'repeat-complex-command)
(global-set-key [M-f8] 'repeat-complex-command))
(global-set-key [f8] 'repeat-complex-command))
(if (global-key-binding [f9])
(progn
(global-set-key [S-f9] 'execute-extended-command)
(global-set-key [M-f9] 'execute-extended-command))
(global-set-key [f9] 'execute-extended-command))
(if (global-key-binding [f10])
(progn
(global-set-key [S-f10] 'eval-expression)
(global-set-key [M-f10] 'eval-expression))
(global-set-key [f10] 'eval-expression))
;;
;;(global-set-key [f11] [?\e]) ; Escape
(global-set-key [f11] esc-map) ; Escape
;;
(global-set-key [f12] 'backward-delete-char-untabify) ; Backspace
;;
;; DEC keyboard: f13 up to f20
(global-set-key [f13] 'newline) ; Linefeed
(global-set-key [linefeed] 'newline) ; Linefeed
;;
(global-set-key [f14] 'switch-to-buffer)
;;
;; Emacs original key binding
;;
; (global-set-key [home] 'beginning-of-buffer) ;
; (global-set-key [end] 'end-of-buffer) ;
;;
(global-set-key [help] 'info) ; Help
(global-set-key [M-help] 'repeat-complex-command) ; Redo
(global-set-key [menu] 'execute-extended-command) ; Do
(global-set-key [M-menu] 'eval-expression) ; eval
;;
(global-set-key [f17] 'beginning-of-buffer)
(global-set-key [f18] 'end-of-buffer)
(global-set-key [f19] 'save-buffer)
(global-set-key [f20] 'find-file)
;;
;; Translate `C-h' to DEL.
; (keyboard-translate ?\C-h ?\C-?)
;;
;; Translate DEL to `C-h'.
; (keyboard-translate ?\C-? ?\C-h)
;;;;;;;;;;
;; the end

40
emacs-24.1-ps-mule.patch Normal file
View File

@ -0,0 +1,40 @@
---
lisp/ps-mule.el | 2 ++
lisp/textmodes/ispell.el | 14 +++++++++++---
2 files changed, 13 insertions(+), 3 deletions(-)
--- lisp/ps-mule.el
+++ lisp/ps-mule.el 2016-09-19 09:01:56.930605125 +0000
@@ -180,6 +180,8 @@ See also the variable `ps-font-info-data
(defconst ps-mule-font-info-database-latin
'((iso-8859-1
+ (normal nil nil))
+ (iso-8859-15
(normal nil nil)))
"Sample setting of `ps-mule-font-info-database' to use latin fonts.")
--- lisp/textmodes/ispell.el
+++ lisp/textmodes/ispell.el 2016-09-19 09:01:56.930605125 +0000
@@ -1502,10 +1502,18 @@ Protects against bogus binding of `enabl
nil ;; in pipe mode. Disable extended-char-mode
(nth 6 (or (assoc ispell-current-dictionary ispell-local-dictionary-alist)
(assoc ispell-current-dictionary ispell-dictionary-alist)))))
+;;
+;; Most languages in ISO-8859-15 for EURO symbols uses ISO-8859-1 chars
+;(defun ispell-get-coding-system ()
+; (nth 7 (or (assoc ispell-current-dictionary ispell-local-dictionary-alist)
+; (assoc ispell-current-dictionary ispell-dictionary-alist))))
(defun ispell-get-coding-system ()
- (nth 7 (or (assoc ispell-current-dictionary ispell-local-dictionary-alist)
- (assoc ispell-current-dictionary ispell-dictionary-alist))))
-
+ (let ((sys (nth 7 (or (assoc ispell-current-dictionary ispell-local-dictionary-alist)
+ (assoc ispell-current-dictionary ispell-dictionary-alist)))))
+ (if (and (boundp 'buffer-file-coding-system)
+ (eq buffer-file-coding-system 'iso-latin-9)
+ (eq sys 'iso-latin-1))
+ 'iso-latin-9 sys)))
(defvar ispell-pdict-modified-p nil
"Non-nil means personal dictionary has modifications to be saved.")

View File

@ -0,0 +1,15 @@
---
lisp/ps-mule.el | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- lisp/ps-mule.el
+++ lisp/ps-mule.el 2016-09-19 08:57:28.807664990 +0000
@@ -262,7 +262,7 @@ Currently, data for Japanese and Korean
(japanese-jisx0208
(normal bdf "jiskan24.bdf"))
(korean-ksc5601
- (normal bdf "hanglm24.bdf"))
+ (normal bdf "gulim24.bdf"))
(japanese-jisx0212
(normal bdf ("jksp40.bdf" "jisksp40.bdf")))
(chinese-cns11643-1

16
emacs-24.3-iconic.patch Normal file
View File

@ -0,0 +1,16 @@
---
lisp/startup.el | 3 +++
1 file changed, 3 insertions(+)
--- lisp/startup.el
+++ lisp/startup.el 2016-09-19 09:15:26.871345783 +0000
@@ -2481,6 +2481,9 @@ nil default-directory" name)
((equal argi "-no-splash")
(setq inhibit-startup-screen t))
+ ((equal argi "-iconic")
+ (setq inhibit-startup-message t))
+
((member argi '("-f" ; what the manual claims
"-funcall"
"-e")) ; what the source used to say

43
emacs-24.3-x11r7.patch Normal file
View File

@ -0,0 +1,43 @@
---
src/xrdb.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
--- src/xrdb.c
+++ src/xrdb.c 2016-09-19 09:10:35.504833294 +0000
@@ -39,6 +39,9 @@ along with GNU Emacs. If not, see <http
#include <X11/X.h>
#include <X11/Xutil.h>
#include <X11/Xresource.h>
+#ifdef USE_X_TOOLKIT
+#include <X11/Intrinsic.h>
+#endif
#ifdef HAVE_PWD_H
#include <pwd.h>
#endif
@@ -470,6 +473,15 @@ x_load_resources (Display *display, cons
XrmPutLineResource (&rdb, line);
#endif /* not USE_MOTIF */
+#ifdef USE_X_TOOLKIT
+ if ((db = XtScreenDatabase(DefaultScreenOfDisplay (display))))
+ {
+ XrmCombineDatabase (rdb, &db, FALSE);
+ rdb = db;
+ }
+ else
+ {
+#endif /* not USE_X_TOOLKIT */
user_database = get_user_db (display);
@@ -511,6 +523,10 @@ x_load_resources (Display *display, cons
XrmMergeDatabases (db, &rdb);
}
+#ifdef USE_X_TOOLKIT
+ } /* (db != XtScreenDatabase()) */
+#endif /* not USE_X_TOOLKIT */
+
return rdb;
}

41
emacs-24.4-flyspell.patch Normal file
View File

@ -0,0 +1,41 @@
---
lisp/textmodes/flyspell.el | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
--- lisp/textmodes/flyspell.el
+++ lisp/textmodes/flyspell.el 2021-10-08 09:31:55.632323098 +0000
@@ -289,6 +289,12 @@ If this variable is nil, all regions are
"The key binding for flyspell auto correction."
:type 'key-sequence)
+(defvar flyspell-signature-separator
+ (if (boundp 'message-signature-separator)
+ message-signature-separator
+ "^-- $")
+ "*String used to recognize .signatures.")
+
;;*---------------------------------------------------------------------*/
;;* Mode specific options */
;;* ------------------------------------------------------------- */
@@ -313,7 +319,6 @@ property of the major mode name.")
;;*--- mail mode -------------------------------------------------------*/
(put 'mail-mode 'flyspell-mode-predicate 'mail-mode-flyspell-verify)
(put 'message-mode 'flyspell-mode-predicate 'mail-mode-flyspell-verify)
-(defvar message-signature-separator)
(defun mail-mode-flyspell-verify ()
"Function used for `flyspell-generic-check-word-predicate' in Mail mode."
(let* ((header-end (save-excursion
@@ -325,11 +330,11 @@ property of the major mode name.")
nil t)
(point)))
(signature-begin
- (if (not (boundp 'message-signature-separator))
+ (if (not (boundp 'flyspell-signature-separator))
(point-max)
(save-excursion
(goto-char (point-max))
- (re-search-backward message-signature-separator
+ (re-search-backward flyspell-signature-separator
(max header-end (- (point) 4000)) t)
(point)))))
(cond ((< (point) header-end)

25
emacs-24.4-glibc.patch Normal file
View File

@ -0,0 +1,25 @@
---
configure | 1 +
configure.ac | 1 +
2 files changed, 2 insertions(+)
--- configure.ac
+++ configure.ac 2018-05-29 12:18:31.133648098 +0000
@@ -2380,6 +2380,7 @@ fi
use_mmap_for_buffers=no
case "$opsys" in
mingw32) use_mmap_for_buffers=yes ;;
+ gnu-linux) use_mmap_for_buffers=yes ;;
esac
AC_FUNC_MMAP
--- configure
+++ configure 2018-05-29 12:20:07.583908486 +0000
@@ -11754,6 +11754,7 @@ fi
use_mmap_for_buffers=no
case "$opsys" in
mingw32) use_mmap_for_buffers=yes ;;
+ gnu-linux) use_mmap_for_buffers=yes ;;
esac

17
emacs-24.4-nonvoid.patch Normal file
View File

@ -0,0 +1,17 @@
---
src/xmenu.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- src/xmenu.c
+++ src/xmenu.c 2016-09-19 09:01:56.930605125 +0000
@@ -2003,8 +2003,8 @@ Lisp_Object
xw_popup_dialog (struct frame *f, Lisp_Object header, Lisp_Object contents)
{
Lisp_Object title;
- const char *error_name;
- Lisp_Object selection;
+ const char *error_name = NULL;
+ Lisp_Object selection = Qnil;
ptrdiff_t specpdl_count = SPECPDL_INDEX ();
check_window_system (f);

33
emacs-24.4-ps-bdf.patch Normal file
View File

@ -0,0 +1,33 @@
---
lisp/ldefs-boot.el | 4 ++--
lisp/ps-bdf.el | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
--- lisp/ldefs-boot.el
+++ lisp/ldefs-boot.el 2018-05-29 12:23:32.824206557 +0000
@@ -26785,9 +26785,9 @@ With prefix argument ARG, restart the Pr
;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (0 0 0 0))
;;; Generated autoloads from ps-bdf.el
-(defvar bdf-directory-list (if (memq system-type '(ms-dos windows-nt)) (list (expand-file-name "fonts/bdf" installation-directory)) '("/usr/local/share/emacs/fonts/bdf")) "\
+(defvar bdf-directory-list (if (memq system-type '(ms-dos windows-nt)) (list (expand-file-name "fonts/bdf" installation-directory)) '("/usr/share/fonts/bdf")) "\
List of directories to search for `BDF' font files.
-The default value is (\"/usr/local/share/emacs/fonts/bdf\").")
+The default value is (\"/usr/share/fonts/bdf\").")
(custom-autoload 'bdf-directory-list "ps-bdf" t)
--- lisp/ps-bdf.el
+++ lisp/ps-bdf.el 2018-05-29 12:21:53.126004842 +0000
@@ -42,9 +42,9 @@
(defcustom bdf-directory-list
(if (memq system-type '(ms-dos windows-nt))
(list (expand-file-name "fonts/bdf" installation-directory))
- '("/usr/local/share/emacs/fonts/bdf"))
+ '("/usr/share/fonts/bdf"))
"List of directories to search for `BDF' font files.
-The default value is (\"/usr/local/share/emacs/fonts/bdf\")."
+The default value is (\"/usr/share/fonts/bdf\")."
:type '(repeat :tag "BDF font directory list"
(directory :tag "BDF font directory"))
:group 'ps-print-miscellany)

View File

@ -0,0 +1,83 @@
Work around openSUSE bug #1016172
--
lisp/dynamic-setting.el | 29 +++++++++++++++--------------
src/xsettings.c | 7 ++++++-
2 files changed, 21 insertions(+), 15 deletions(-)
--- lisp/dynamic-setting.el
+++ lisp/dynamic-setting.el 2016-12-20 16:51:49.533433283 +0000
@@ -33,6 +33,7 @@
;;; Customizable variables
(declare-function font-get-system-font "xsettings.c" ())
+(declare-function font-face-attributes "font.c" (font &optional frame))
(defvar font-use-system-font)
@@ -42,28 +43,28 @@ If DISPLAY-OR-FRAME is a frame, the disp
If SET-FONT is non-nil, change the font for frames. Otherwise re-apply
the current form for the frame (i.e. hinting or somesuch changed)."
- (let ((new-font (and (fboundp 'font-get-system-font)
- (font-get-system-font)))
- (frame-list (frames-on-display-list display-or-frame)))
- (when (and new-font (display-graphic-p display-or-frame))
+ (let ((system-font (and (fboundp 'font-get-system-font)
+ (font-get-system-font)))
+ (frame-list (frames-on-display-list display-or-frame))
+ (user-font (face-attribute 'default :font)))
+ (when (and system-font (display-graphic-p display-or-frame))
(clear-font-cache)
(if set-font
;; Set the font on all current and future frames, as though
;; the `default' face had been "set for this session":
- (set-frame-font new-font nil frame-list)
+ (if (not user-font)
+ (set-frame-font system-font nil frame-list)
+ (set-frame-font user-font nil frame-list))
;; Just redraw the existing fonts on all frames:
(dolist (f frame-list)
- (let ((frame-font
- (or (font-get (face-attribute 'default :font f 'default)
- :user-spec)
- (frame-parameter f 'font-parameter))))
+ ;; (apply 'font-spec (font-face-attributes (font-get-system-font)))
+ (let* ((frame-font
+ (or (face-attribute 'default :font f 'default)
+ (frame-parameter f 'font-parameter)))
+ (font-attr (font-face-attributes frame-font)))
(when frame-font
(set-frame-parameter f 'font-parameter frame-font)
- (set-face-attribute 'default f
- :width 'normal
- :weight 'normal
- :slant 'normal
- :font frame-font))))))))
+ (apply #'set-face-attribute 'default f font-attr))))))))
(defun dynamic-setting-handle-config-changed-event (event)
"Handle config-changed-event on the display in EVENT.
--- src/xsettings.c
+++ src/xsettings.c 2016-12-21 07:25:17.605036477 +0000
@@ -49,6 +49,7 @@ along with GNU Emacs. If not, see <http
#ifdef USE_CAIRO
#include <fontconfig/fontconfig.h>
#else /* HAVE_XFT */
+#include <math.h>
#include <X11/Xft/Xft.h>
#endif
#endif
@@ -625,7 +626,11 @@ apply_xft_settings (struct x_display_inf
#endif
FcPatternGetInteger (pat, FC_LCD_FILTER, 0, &oldsettings.lcdfilter);
FcPatternGetInteger (pat, FC_RGBA, 0, &oldsettings.rgba);
- FcPatternGetDouble (pat, FC_DPI, 0, &oldsettings.dpi);
+
+ if (FcPatternGetDouble (pat, FC_DPI, 0, &oldsettings.dpi) == FcResultMatch)
+ {
+ oldsettings.dpi = round(oldsettings.dpi);
+ }
if ((settings->seen & SEEN_AA) != 0 && oldsettings.aa != settings->aa)
{

View File

@ -0,0 +1,56 @@
Index: emacs-25.2/configure.ac
===================================================================
---
emacs-26.1/configure.ac | 2 +-
emacs-26.1/src/image.c | 12 ++++++++++++
2 files changed, 13 insertions(+), 1 deletion(-)
--- emacs-27.1/configure.ac
+++ emacs-27.1/configure.ac 2020-08-11 09:59:04.349950601 +0000
@@ -2603,7 +2603,7 @@ if test "${HAVE_X11}" = "yes" || test "$
else
## 6.3.5 is the earliest version known to work; see Bug#17339.
## 6.8.2 makes Emacs crash; see Bug#13867.
- EMACS_CHECK_MODULES([IMAGEMAGICK], [Wand >= 6.3.5 Wand != 6.8.2])
+ EMACS_CHECK_MODULES([IMAGEMAGICK], [MagickWand >= 6.3.5 MagickWand != 6.8.2])
fi
if test $HAVE_IMAGEMAGICK = yes; then
--- emacs-27.1/src/image.c
+++ emacs-27.1/src/image.c 2020-08-11 09:49:35.500181432 +0000
@@ -9005,7 +9005,11 @@ imagemagick_compute_animated_image (Magi
PixelWand **source, **dest;
size_t source_width, source_height;
ssize_t source_left, source_top;
+#if MagickLibVersion >= 0x700
+ PixelInfo pixel;
+#else
MagickPixelPacket pixel;
+#endif
DisposeType dispose;
ptrdiff_t lines = 0;
@@ -9070,7 +9074,11 @@ imagemagick_compute_animated_image (Magi
if (dispose == BackgroundDispose || PixelGetAlpha (source[x]))
{
PixelGetMagickColor (source[x], &pixel);
+#if MagickLibVersion >= 0x700
+ PixelSetPixelColor (dest[x + source_left], &pixel);
+#else
PixelSetMagickColor (dest[x + source_left], &pixel);
+#endif
}
}
PixelSyncIterator (dest_iterator);
@@ -9115,7 +9123,11 @@ imagemagick_load_image (struct frame *f,
MagickWand *image_wand;
PixelIterator *iterator;
PixelWand **pixels, *bg_wand = NULL;
+#if MagickLibVersion >= 0x700
+ PixelInfo pixel;
+#else
MagickPixelPacket pixel;
+#endif
Lisp_Object image;
Lisp_Object value;
Lisp_Object crop;

33
emacs-26.1-xft4x11.patch Normal file
View File

@ -0,0 +1,33 @@
---
lwlib/xlwmenu.c | 13 +++++--------
1 file changed, 5 insertions(+), 8 deletions(-)
--- lwlib/xlwmenu.c
+++ lwlib/xlwmenu.c 2018-06-15 05:50:45.749287186 +0000
@@ -1894,21 +1894,18 @@ XlwMenuInitialize (Widget request, Widge
gray_width, gray_height,
(unsigned long)1, (unsigned long)0, 1);
+ mw->menu.font = XLoadQueryFont (display, mw->menu.fontName);
#if defined USE_CAIRO || defined HAVE_XFT
- if (openXftFont (mw))
+ if (mw->menu.font || openXftFont (mw))
;
else
#endif
{
- mw->menu.font = XLoadQueryFont (display, mw->menu.fontName);
+ mw->menu.font = XLoadQueryFont (display, "fixed");
if (!mw->menu.font)
{
- mw->menu.font = XLoadQueryFont (display, "fixed");
- if (!mw->menu.font)
- {
- fprintf (stderr, "Menu font fixed not found, can't continue.\n");
- emacs_abort ();
- }
+ fprintf (stderr, "Menu font fixed not found, can't continue.\n");
+ emacs_abort ();
}
}

View File

@ -0,0 +1,112 @@
From werner@suse.de
Date: Mon, 08 Mar 2021 13:35:41 +0000
Subject: Allow GNU Emacs server to open X Display
even if the Xauthority file is not the default expected by XCloseDisplay()
---
etc/emacs.service | 1 +
lisp/server.el | 40 ++++++++++++++++++++++++++++++++++++++--
2 files changed, 39 insertions(+), 2 deletions(-)
--- etc/emacs.service
+++ etc/emacs.service 2021-10-08 09:41:15.350644801 +0000
@@ -8,6 +8,7 @@ Documentation=info:emacs man:emacs(1) ht
[Service]
Type=notify
+Environment=XAUTHORITY=%t/emacs/xauth
ExecStart=emacs --fg-daemon
# Emacs will exit with status 15 after having received SIGTERM, which
--- lisp/server.el
+++ lisp/server.el 2021-10-08 09:40:13.683712534 +0000
@@ -287,6 +287,11 @@ If nil, no instructions are displayed."
"The directory in which to place the server socket.
If local sockets are not supported, this is nil.")
+;; Hold the Xauthority if an X Display is used
+(defvar server-xauth-file nil
+ "The Xauthority file to hold the Xauthority cookies.
+If no Xauthority is used, this is nil.")
+
(defun server-clients-with (property value)
"Return a list of clients with PROPERTY set to VALUE."
(let (result)
@@ -643,7 +648,8 @@ the `server-process' variable."
(t (yes-or-no-p
"The current server still has clients; delete them? "))))
(let* ((server-dir (if server-use-tcp server-auth-dir server-socket-dir))
- (server-file (expand-file-name server-name server-dir)))
+ (server-file (expand-file-name server-name server-dir))
+ (xauth-file (concat server-dir "/xauth")))
(when server-process
;; kill it dead!
(ignore-errors (delete-process server-process)))
@@ -727,6 +733,14 @@ server or call `\\[server-force-delete]'
:plist '(:authenticated t)))))
(unless server-process (error "Could not start server process"))
(process-put server-process :server-file server-file)
+ ;; File to hold Xauthority cookies
+ (unless (file-exists-p xauth-file)
+ (make-empty-file xauth-file))
+ (when (file-exists-p xauth-file)
+ (let ((var (concat "XAUTHORITY=" xauth-file)))
+ (dolist (proc (process-list))
+ (process-put proc 'env (cons var (process-get proc 'env)))))
+ (setq server-xauth-file xauth-file))
(when server-use-tcp
(let ((auth-key (server-get-auth-key)))
(process-put server-process :auth-key auth-key)
@@ -855,7 +869,7 @@ This handles splitting the command if it
(let ((frame
(server-with-environment
(process-get proc 'env)
- '("LANG" "LC_CTYPE" "LC_ALL"
+ '("LANG" "LC_CTYPE" "LC_ALL" "LC_PAPER" "LC_MEASUREMENT"
;; For tgetent(3); list according to ncurses(3).
"BAUDRATE" "COLUMNS" "ESCDELAY" "HOME" "LINES"
"NCURSES_ASSUMED_COLORS" "NCURSES_NO_PADDING"
@@ -1123,6 +1137,8 @@ The following commands are accepted by t
nowait ; t if emacsclient does not want to wait for us.
frame ; Frame opened for the client (if any).
display ; Open frame on this display.
+ (xauth-file (expand-file-name "~/.Xauthority"))
+ xauth-cmd
parent-id ; Window ID for XEmbed
dontkill ; t if client should not be killed.
commands
@@ -1263,6 +1279,16 @@ The following commands are accepted by t
;; -env NAME=VALUE: An environment variable.
("-env"
(let ((var (pop args-left)))
+ (if (and (stringp var)
+ (string-match "^\\([^=]+\\)=\\(.*\\)" var))
+ (if (cond ((string-equal (match-string 1 var) "LANG") t)
+ ((string-equal (match-string 1 var) "LC_CTYPE") t)
+ ((string-equal (match-string 1 var) "LC_ALL") t)
+ ((string-equal (match-string 1 var) "LC_PAPER") t)
+ ((string-equal (match-string 1 var) "LC_MEASUREMENT") t)
+ ((string-equal (match-string 1 var) "DISPLAY") t)
+ ((string-equal (match-string 1 var) "XAUTHORITY") (setq xauth-file (match-string 2 var))))
+ (setenv (match-string 1 var) (match-string 2 var) t)))
;; XXX Variables should be encoded as in getenv/setenv.
(process-put proc 'env
(cons var (process-get proc 'env)))))
@@ -1278,6 +1304,16 @@ The following commands are accepted by t
;; Unknown command.
(arg (error "Unknown command: %s" arg))))
+ (if (and display server-xauth-file)
+ (progn
+ (if (not xauth-file)
+ (setq xauth-file (expand-file-name "~/.Xauthority")))
+ (if (and (file-exists-p xauth-file) (not (file-equal-p xauth-file server-xauth-file)))
+ (progn
+ (setq xauth-cmd (concat "xauth -f " xauth-file " extract - " display
+ "| xauth -f " server-xauth-file " merge -"))
+ (shell-command xauth-cmd)))))
+
;; If both -no-wait and -tty are given with file or sexp
;; arguments, use an existing frame.
(and nowait

112
emacs-27.1-pdftex.patch Normal file
View File

@ -0,0 +1,112 @@
---
etc/refcards/Makefile | 4 ++--
etc/refcards/cs-dired-ref.tex | 3 ++-
etc/refcards/cs-survival.tex | 3 ++-
etc/refcards/fr-survival.tex | 2 +-
etc/refcards/pl-refcard.tex | 2 +-
etc/refcards/ru-refcard.tex | 1 +
etc/refcards/sk-dired-ref.tex | 3 ++-
etc/refcards/sk-survival.tex | 3 ++-
etc/refcards/survival.tex | 2 +-
9 files changed, 14 insertions(+), 9 deletions(-)
--- etc/refcards/Makefile
+++ etc/refcards/Makefile 2021-03-25 15:07:14.519265674 +0000
@@ -231,12 +231,12 @@ pl-refcard.pdf: $(pl_refcard_deps)
! pdfmex --version > /dev/null 2> /dev/null; then \
echo "No mex format found."; false; \
fi
- $(ENVADD) pdftex -output-format=pdf pl-refcard.tex
+ $(ENVADD) pdfmex -output-format=pdf pl-refcard.tex
pl-refcard.dvi: $(pl_refcard_deps)
if kpsewhich -format=fmt mex > /dev/null; then \
- $(ENVADD) tex pl-refcard.tex; \
- else \
$(ENVADD) mex pl-refcard.tex; \
+ else \
+ $(ENVADD) tex pl-refcard.tex; \
fi
pl-refcard.ps: pl-refcard.dvi
dvips -t a4 -o $@ pl-refcard.dvi
--- etc/refcards/cs-dired-ref.tex
+++ etc/refcards/cs-dired-ref.tex 2021-03-25 15:07:14.519265674 +0000
@@ -108,7 +108,8 @@ see the Emacs distribution, or {\tt http
\font\eightbf=csbx8
\font\eightit=csti8
\font\eighttt=cstt8
- \font\eightmi=csmi8
+% \font\eightmi=csmi8
+ \font\eightmi=cmmi8
\font\eightsy=cmsy8
\textfont0=\eightrm
\textfont1=\eightmi
--- etc/refcards/cs-survival.tex
+++ etc/refcards/cs-survival.tex 2021-03-25 15:07:14.519265674 +0000
@@ -84,7 +84,8 @@
\font\eightbf=csbx8
\font\eightit=csti8
\font\eighttt=cstt8
-\font\eightmi=csmi8
+%\font\eightmi=csmi8
+\font\eightmi=cmmi8
\font\eightsy=cmsy8
\font\eightss=cmss8
\textfont0=\eightrm
--- etc/refcards/fr-survival.tex
+++ etc/refcards/fr-survival.tex 2021-03-25 15:08:33.797766981 +0000
@@ -1,4 +1,4 @@
-%&tex
+%
% Title: GNU Emacs Survival Card
% Copyright (C) 2000--2022 Free Software Foundation, Inc.
--- etc/refcards/pl-refcard.tex
+++ etc/refcards/pl-refcard.tex 2021-03-25 15:08:53.917386707 +0000
@@ -1,4 +1,4 @@
-%&mex
+%
% Reference Card for GNU Emacs
% Copyright (C) 1999, 2001--2022 Free Software Foundation, Inc.
--- etc/refcards/ru-refcard.tex
+++ etc/refcards/ru-refcard.tex 2021-03-25 15:07:14.519265674 +0000
@@ -25,6 +25,7 @@
\documentclass[10pt]{article}
\usepackage{multicol,tabularx}
\usepackage[a4paper,hmargin={2cm,2cm},vmargin={2cm,2cm},nohead,twoside]{geometry}
+\usepackage{type1ec}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}
--- etc/refcards/sk-dired-ref.tex
+++ etc/refcards/sk-dired-ref.tex 2021-03-25 15:07:14.519265674 +0000
@@ -109,7 +109,8 @@ see the Emacs distribution, or {\tt http
\font\eightbf=csbx8
\font\eightit=csti8
\font\eighttt=cstt8
- \font\eightmi=csmi8
+% \font\eightmi=csmi8
+ \font\eightmi=cmmi8
\font\eightsy=cmsy8
\textfont0=\eightrm
\textfont1=\eightmi
--- etc/refcards/sk-survival.tex
+++ etc/refcards/sk-survival.tex 2021-03-25 15:07:14.519265674 +0000
@@ -86,7 +86,8 @@
\font\eightbf=csbx8
\font\eightit=csti8
\font\eighttt=cstt8
-\font\eightmi=csmi8
+%\font\eightmi=csmi8
+\font\eightmi=cmmi8
\font\eightsy=cmsy8
\font\eightss=cmss8
\textfont0=\eightrm
--- etc/refcards/survival.tex
+++ etc/refcards/survival.tex 2021-03-25 15:07:57.346455997 +0000
@@ -1,4 +1,4 @@
-%&tex
+%
% Title: GNU Emacs Survival Card
% Copyright (C) 2000--2022 Free Software Foundation, Inc.

754
emacs-28.1.dif Normal file
View File

@ -0,0 +1,754 @@
---
Makefile.in | 7 +-
configure | 6 --
configure.ac | 6 --
doc/man/etags.1 | 20 ++++----
lib-src/Makefile.in | 6 +-
lib-src/pop.c | 1
lib/Makefile.in | 2
lisp/cmuscheme.el | 3 -
lisp/international/mule-cmds.el | 1
lisp/net/ange-ftp.el | 8 +--
lisp/site-load.el | 45 ++++++++++++++++++
lisp/speedbar.el | 1
lisp/textmodes/ispell.el | 82 ++++++++++++++++++++++++++++++++-
site-lisp/term/func-keys.el | 33 +++++++++++++
site-lisp/term/gnome.el | 97 ++++++++++++++++++++++++++++++++++++++++
site-lisp/term/kvt.el | 97 ++++++++++++++++++++++++++++++++++++++++
site-lisp/term/linux.el | 79 ++++++++++++++++++++++++++++++++
site-lisp/term/locale.el | 13 +++++
18 files changed, 475 insertions(+), 32 deletions(-)