File 0001-OpenSUSE-patch-for-Emacs-30.x.patch of Package emacs

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Bidar?= <bjorn.bidar@thaodan.de>
Date: Thu, 19 Jan 2023 00:37:29 +0200
Subject: [PATCH] OpenSUSE patch for Emacs 30.x

---
 Makefile.in                     |  7 ++-
 configure.ac                    |  6 +-
 doc/man/etags.1                 | 20 +++----
 lib-src/Makefile.in             |  4 +-
 lib-src/pop.c                   |  1 +
 lisp/cmuscheme.el               |  3 +-
 lisp/international/mule-cmds.el |  1 +
 lisp/speedbar.el                |  1 +
 lisp/textmodes/ispell.el        | 88 +++++++++++++++++++++++++++---
 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 +++++
 site-load.el                    | 90 ++++++++++++++++++++++++++++++
 15 files changed, 513 insertions(+), 27 deletions(-)
 create mode 100644 site-lisp/term/func-keys.el
 create mode 100644 site-lisp/term/gnome.el
 create mode 100644 site-lisp/term/kvt.el
 create mode 100644 site-lisp/term/linux.el
 create mode 100644 site-lisp/term/locale.el
 create mode 100644 site-load.el

diff --git a/Makefile.in b/Makefile.in
index 342bec11d81851bd42800f3f6d0bc5ba32d48346..36c367888ee1ef188d9e56a9d11b882c63b2d979 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -627,7 +627,7 @@ install-arch-dep:
 	umask 022; ${MKDIR_P} "$(DESTDIR)${bindir}"
 	$(MAKE) -C lib-src install
 ifeq (${ns_self_contained},no)
-	${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs${EXEEXT} "$(DESTDIR)${bindir}/$(EMACSFULL)"
+	${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs${EXEEXT} "$(DESTDIR)${bindir}/$(EMACS)"
 ifeq (${HAVE_BE_APP},yes)
 	${INSTALL_PROGRAM} $(INSTALL_STRIP) src/Emacs "$(DESTDIR)${prefix}/apps/Emacs"
 endif
@@ -637,7 +637,7 @@ install-arch-dep:
 endif
 	${INSTALL_DATA} src/emacs.pdmp "$(DESTDIR)${libexecdir}/emacs/${version}/${configuration}"/emacs-${EMACS_PDMP}
 endif
-	-chmod 755 "$(DESTDIR)${bindir}/$(EMACSFULL)"
+	-chmod 755 "$(DESTDIR)${bindir}/$(EMACS)"
 ifndef NO_BIN_LINK
 	rm -f "$(DESTDIR)${bindir}/$(EMACS)"
 	cd "$(DESTDIR)${bindir}" && $(LN_S_FILEONLY) "$(EMACSFULL)" "$(EMACS)"
@@ -826,6 +826,7 @@ install-man:
 	umask 022; ${MKDIR_P} "$(DESTDIR)${man1dir}"
 	thisdir=`pwd -P`; \
 	cd ${mansrcdir}; \
+	cp ctags.1 gnuctags.1; \
 	for page in *.1; do \
 	  test "$$page" = ChangeLog.1 && continue; \
 	  dest=`echo "$${page}" | sed -e 's/\.1$$//' -e '$(TRANSFORM)'`.1; \
@@ -969,7 +970,7 @@ uninstall:
 	   for page in *.1; do \
 	     rm -f "$(DESTDIR)${man1dir}"/`echo "$${page}" | sed -e 's/\.1$$//' -e '$(TRANSFORM)'`.1$$ext; done; \
 	 fi)
-	rm -f "$(DESTDIR)${bindir}/$(EMACS)" "$(DESTDIR)${bindir}/$(EMACSFULL)"
+	rm -f "$(DESTDIR)${bindir}/$(EMACS)"
 	(if cd "$(DESTDIR)${icondir}"; then \
 	   rm -f hicolor/*x*/apps/"${EMACS_NAME}.png" \
 	     "hicolor/scalable/apps/${EMACS_NAME}.svg" \
diff --git a/configure.ac b/configure.ac
index f78997ede249a678b9f01dcd0370e9236b2c68fe..fe6acec12cc5bd63e017435afd2687f6659b4617 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2849,10 +2849,8 @@ AC_DEFUN
 LD_SWITCH_X_SITE_RPATH=
 if test "${x_libraries}" != NONE; then
   if test -n "${x_libraries}"; then
-    LD_SWITCH_X_SITE=-L`AS_ECHO(["$x_libraries"]) | sed -e 's/:/ -L/g'`
-    LD_SWITCH_X_SITE_RPATH=-Wl,-rpath,`
-      AS_ECHO(["$x_libraries"]) | sed -e 's/:/ -Wl,-rpath,/g'
-    `
+    LD_SWITCH_X_SITE="-L ${x_libraries%%:*}"
+    LD_SWITCH_X_SITE_RPATH="-Wl,-rpath-link,${x_libraries%%:*}"
   fi
   x_default_search_path=""
   x_search_path=${x_libraries}
diff --git a/doc/man/etags.1 b/doc/man/etags.1
index a87ad22d48ecda0fc7278757c00443c4fe4536de..d421081a5afa48004b86a6fcc71492be3af83ccf 100644
--- a/doc/man/etags.1
+++ b/doc/man/etags.1
@@ -7,7 +7,7 @@
 ..
 
 .SH NAME
-etags, ctags \- generate tag file for Emacs, vi
+etags, gnuctags \- generate tag file for Emacs, vi
 .SH SYNOPSIS
 .hy 0
 .na
@@ -27,7 +27,7 @@ etags, ctags \- generate tag file for Emacs, vi
 [\|\-\-help\|] [\|\-\-version\|]
 \fIfile\fP .\|.\|.
 
-\fBctags\fP [\|\-aCdgIQRVh\|] [\|\-BtTuvwx\|] [\|\-l \fIlanguage\fP\|]
+\fBgnuctags\fP [\|\-aCdgIQRVh\|] [\|\-BtTuvwx\|] [\|\-l \fIlanguage\fP\|]
 .if n .br
 [\|\-o \fItagfile\fP\|] [\|\-r \fIregexp\fP\|]
 [\|\-\-parse\-stdin=\fIfile\fP\|]
@@ -47,7 +47,7 @@ etags, ctags \- generate tag file for Emacs, vi
 The \|\fBetags\fP\| program is used to create a tag table file, in a format
 understood by
 .BR emacs ( 1 )\c
-\&; the \|\fBctags\fP\| program is used to create a similar table in a
+\&; the \|\fBgnuctags\fP\| program is used to create a similar table in a
 format understood by
 .BR vi ( 1 )\c
 \&.  Both forms of the program understand
@@ -57,7 +57,7 @@ Perl, Ruby, Rust, PHP, PostScript, Python, Prolog, Scheme and most
 assembler\-like syntaxes.
 Both forms read the files specified on the command line, and write a tag
 table (defaults: \fBTAGS\fP for \fBetags\fP, \fBtags\fP for
-\fBctags\fP) in the current working directory.
+\fBgnuctags\fP) in the current working directory.
 Files specified with relative file names will be recorded in the tag
 table with file names relative to the directory where the tag table
 resides.  If the tag table is in /dev or is the standard output,
@@ -73,7 +73,7 @@ parsing of the file names following the switch according to the given
 language, overriding guesses based on filename extensions.
 .SH OPTIONS
 Some options make sense only for the \fBvi\fP style tag files produced
-by ctags;
+by gnuctags;
 \fBetags\fP does not recognize them.
 The programs accept unambiguous abbreviations for long option names.
 .TP
@@ -87,7 +87,7 @@ expression search instructions; the \fB\-B\fP option writes them using
 the delimiter "\|\fB?\fP\|", to search \fIbackwards\fP through files.
 The default is to use the delimiter "\|\fB/\fP\|", to search \fIforwards\fP
 through files.
-Only \fBctags\fP accepts this option.
+Only \fBgnuctags\fP accepts this option.
 .TP
 .B \-\-declarations
 In C and derived languages, create tags for function declarations,
@@ -185,7 +185,7 @@ the previous ones.  The regexps are of one of the forms:
 where \fItagregexp\fP is used to match the tag.  It should not match
 useless characters.  If the match is such that more characters than
 needed are unavoidably matched by \fItagregexp\fP, it may be useful to
-add a \fInameregexp\fP, to narrow down the tag scope.  \fBctags\fP
+add a \fInameregexp\fP, to narrow down the tag scope.  \fBgnuctags\fP
 ignores regexps without a \fInameregexp\fP.  The syntax of regexps is
 the same as in Emacs, except that backslash escapes are the same
 as GNU grep (which means, for example, that shy groups are not supported),
@@ -281,15 +281,15 @@ tag entries for other files in place.  Currently, this is implemented
 by deleting the existing entries for the given files and then
 rewriting the new entries at the end of the tags file.  It is often
 faster to simply rebuild the entire tag file than to use this.
-Only \fBctags\fP accepts this option.
+Only \fBgnuctags\fP accepts this option.
 .TP
 .B \-v, \-\-vgrind
 Instead of generating a tag file, write index (in \fBvgrind\fP format)
-to standard output.  Only \fBctags\fP accepts this option.
+to standard output.  Only \fBgnuctags\fP accepts this option.
 .TP
 .B \-x, \-\-cxref
 Instead of generating a tag file, write a cross reference (in
-\fBcxref\fP format) to standard output.  Only \fBctags\fP accepts this option.
+\fBcxref\fP format) to standard output.  Only \fBgnuctags\fP accepts this option.
 .TP
 .B \-h, \-H, \-\-help
 Print usage information.  Followed by one or more \-\-language=LANG
diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in
index 439d9a1a52d3da806977731c73f2750e4ae58679..49dd51d9aa2cd717e94f46ec75efea616f8fa107 100644
--- a/lib-src/Makefile.in
+++ b/lib-src/Makefile.in
@@ -155,7 +155,7 @@ ANDROID=
 CLIENTW = @CLIENTW@
 
 # Things that a user might actually run, which should be installed in bindir.
-INSTALLABLES = etags${EXEEXT} ctags${EXEEXT} emacsclient${EXEEXT} $(CLIENTW) \
+INSTALLABLES = etags${EXEEXT} gnuctags${EXEEXT} emacsclient${EXEEXT} $(CLIENTW) \
                ebrowse${EXEEXT}
 
 # Things that Emacs runs internally, or during the build process,
@@ -419,7 +419,7 @@ etags${EXEEXT}:
 ## etags.o files on top of each other.
 ## FIXME?
 ## Can't we use a wrapper that calls 'etags --ctags'?
-ctags${EXEEXT}: ${srcdir}/ctags.c ${etags_deps}
+gnuctags${EXEEXT}: ${srcdir}/ctags.c ${etags_deps}
 	$(AM_V_CCLD)$(CC) ${ALL_CFLAGS} -o $@ $< $(etags_libs)
 
 asset-directory-tool${EXEEXT}: ${srcdir}/asset-directory-tool.c $(config_h)
diff --git a/lib-src/pop.c b/lib-src/pop.c
index db6e7638990b399820606a81c34504de2115a6b8..b1167731b85ddf8cbfcbc580d44ed8225cf5814e 100644
--- a/lib-src/pop.c
+++ b/lib-src/pop.c
@@ -26,6 +26,7 @@ Copyright (C) 1991, 1993, 1996-1997, 1999, 2001-2025 Free Software
 #ifdef MAIL_USE_POP
 
 #include <sys/types.h>
+#include <ctype.h>
 #ifdef WINDOWSNT
 #include "ntlib.h"
 #undef _WIN32_WINNT
diff --git a/lisp/cmuscheme.el b/lisp/cmuscheme.el
index 51b183de34797f2004a10e59e2fd7255449e444d..75068691aadcac41ad13741d69c6a49e0be4b878 100644
--- a/lisp/cmuscheme.el
+++ b/lisp/cmuscheme.el
@@ -232,7 +232,8 @@ run-scheme
 			 (read-string "Run Scheme: " scheme-program-name)
 			 scheme-program-name)))
   (if (not (comint-check-proc "*scheme*"))
-      (let ((cmdlist (split-string-and-unquote cmd)))
+      (let ((cmdlist (split-string-and-unquote cmd))
+	    process-connection-type)
         (set-buffer (apply #'make-comint "scheme" (car cmdlist)
 			   (scheme-start-file (car cmdlist)) (cdr cmdlist)))
 	(inferior-scheme-mode)))
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el
index 4caefb75b284110e3f8b9268b2cf445f273185f5..1f416181d22f26cbad3968d98d1deb59a64e58bd 100644
--- a/lisp/international/mule-cmds.el
+++ b/lisp/international/mule-cmds.el
@@ -39,6 +39,7 @@ dos-codepage
 
 (defvar mule-keymap
   (let ((map (make-sparse-keymap)))
+    (define-key map "m" 'toggle-enable-multibyte-characters)
     (define-key map "f" 'set-buffer-file-coding-system)
     (define-key map "r" 'revert-buffer-with-coding-system)
     (define-key map "F" 'set-file-name-coding-system)
diff --git a/lisp/speedbar.el b/lisp/speedbar.el
index 104e23b9bc9fa1088c5fd66eb1ec25c558fb0241..96d627fb92681808ae4eb135687518eb76de7c01 100644
--- a/lisp/speedbar.el
+++ b/lisp/speedbar.el
@@ -728,6 +728,7 @@ speedbar-mode-map
 
     ;; Navigation.
     (define-key map "n" 'speedbar-next)
+    (define-key map [tab] 'speedbar-next)
     (define-key map "p" 'speedbar-prev)
     (define-key map "\M-n" 'speedbar-restricted-next)
     (define-key map "\M-p" 'speedbar-restricted-prev)
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index d795589cb2c46816641a7a6b7f5553a2cb7929d8..b5a59aec588a843df7559a3de2549c21650a3219 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -191,13 +191,15 @@ ispell-choices-win-default-height
   :type 'integer)
 
 (defcustom ispell-program-name
-  (or (executable-find "aspell")
-      (executable-find "ispell")
-      (executable-find "hunspell")
-      ;; Enchant is commonly installed as `enchant-2', so use this
-      ;; name and avoid old versions of `enchant'.
-      (executable-find "enchant-2")
-      "ispell")
+  (if (functionp 'append-ispell-dict-alist)
+	"ispell"
+    (or (executable-find "aspell")
+	(executable-find "ispell")
+	(executable-find "hunspell")
+	;; Enchant is commonly installed as `enchant-2', so use this
+	;; name and avoid old versions of `enchant'.
+	(executable-find "enchant-2")
+	"ispell"))
   "Program invoked by \\[ispell-word] and \\[ispell-region] commands."
   :type 'string
   :set (lambda (symbol value)
@@ -1426,6 +1428,78 @@ ispell-menu-map
 
   ;; Define commands in menu in opposite order you want them to appear.
   (let ((map (make-sparse-keymap "Spell")))
+    ;; Begin adding list for ispell dictonaries installed on SuSE
+    (if (and (functionp 'append-ispell-dict-alist)
+             (symbolp 'ispell-program-name)
+             (string-match "ispell" ispell-program-name))
+	(let ((dicts (reverse (cons (cons "default" nil)
+                                    (append ispell-local-dictionary-alist ispell-dictionary-alist))))
+	      (path (and (boundp 'ispell-library-path) ispell-library-path))
+	      name load-dict)
+	  (dolist (dict dicts)
+	    (setq name (car dict)
+		  load-dict (car (cdr (member "-d" (nth 5 dict)))))
+	    (cond ((not (stringp name))
+		   (define-key map (vector 'default)
+		     (cons "Select Default Dict"
+			   (cons "Dictionary for which Ispell was configured"
+				 (list 'lambda () '(interactive)
+				       (list 'ispell-change-dictionary "default"))))))
+		  ((or (not path)           ; load all if library dir not defined
+		       (file-exists-p (concat path "/" name ".hash"))
+		       (file-exists-p (concat path "/" name ".has"))
+		       (and load-dict
+			    (or (file-exists-p(concat path "/" load-dict ".hash"))
+				(file-exists-p(concat path "/" load-dict ".has")))))
+		   (define-key map (vector (intern name))
+		     (cons (concat "Select " (capitalize name) " Dict")
+			   (list 'lambda () '(interactive)
+				 (list 'ispell-change-dictionary name))))))))
+      (if (and (functionp 'ispell-find-aspell-dictionaries)
+               (symbolp 'ispell-program-name)
+               (string-match "aspell" ispell-program-name))
+          (progn
+            (ispell-find-aspell-dictionaries)
+            (let ((dicts (reverse (cons (cons "default" nil)
+                                        (append ispell-local-dictionary-alist ispell-dictionary-alist))))
+                  name load-dict)
+              (dolist (dict dicts)
+                (setq name (car dict))
+                (cond ((not (stringp name))
+                       (define-key map (vector 'default)
+                         (cons "Select Default Dict"
+                               (cons "Dictionary for which Aspell was configured"
+                                     (list 'lambda () '(interactive)
+                                           (list 'ispell-change-dictionary "default"))))))
+                      ((and (stringp name)
+                            (ispell-aspell-find-dictionary name))
+                       (define-key map (vector (intern name))
+                         (cons (concat "Select " (capitalize name) " Dict")
+                               (list 'lambda () '(interactive)
+                                     (list 'ispell-change-dictionary name)))))))))
+        (if (and (functionp 'ispell-find-hunspell-dictionaries)
+                 (symbolp 'ispell-program-name)
+                 (string-match "hunspell" ispell-program-name))
+            (progn
+              (ispell-find-hunspell-dictionaries)
+              (let ((dicts (reverse (cons (cons "default" nil)
+                                          (append ispell-local-dictionary-alist ispell-hunspell-dictionary-alist))))
+                    name load-dict)
+                (dolist (dict dicts)
+                  (setq name (car dict))
+                  (cond ((not (stringp name))
+                         (define-key map (vector 'default)
+                           (cons "Select Default Dict"
+                                 (cons "Dictionary for which Hunspell was configured"
+                                       (list 'lambda () '(interactive)
+                                             (list 'ispell-change-dictionary "default"))))))
+                        ((stringp name)
+                         (define-key map (vector (intern name))
+                           (cons (concat "Select " (capitalize name) " Dict")
+                                 (list 'lambda () '(interactive)
+                                       (list 'ispell-change-dictionary name)
+                                       )))))))))))
+    ;; End adding list for ispell dictonaries installed on SuSE
     (define-key map [ispell-change-dictionary]
       `(menu-item ,(purecopy "Change Dictionary...") ispell-change-dictionary
 		  :help ,(purecopy "Supply explicit dictionary file name")))
diff --git a/site-lisp/term/func-keys.el b/site-lisp/term/func-keys.el
new file mode 100644
index 0000000000000000000000000000000000000000..07b7675239e293ffb594c754e33a5a5e594f030e
--- /dev/null
+++ b/site-lisp/term/func-keys.el
@@ -0,0 +1,33 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; term/func-keys.el for site-lisp path
+;;; Copyright (c) 1996-2001 SuSE Gmbh Nuernberg, Germany.
+;;;
+;;; Author: Werner Fink  <werner@suse.de>, No warranty of any kind
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; num block
+;; kp_f1 .. kp_f4 and kp_tab not found on MF-102
+  (global-set-key [kp-f1]   esc-map) ; Escape
+  (global-set-key [kp-f2]  'undo) ; Undo
+  (global-set-key [kp-f3]  'isearch-forward) ; Search
+  (global-set-key [kp-f4]  'kill-line) ; Kill-Line
+;;
+;; Backspace, Delete and any thing else
+;;
+(if (not window-system)
+      ; Do nothing within terminals because they know about
+      nil
+  (if (fboundp 'normal-erase-is-backspace-mode)
+     (normal-erase-is-backspace-mode 1)
+    (global-set-key   [delete]      'delete-char))
+ ;(global-set-key   [delete]      '[127])
+ ;(global-unset-key [backspace])
+ ;(global-set-key   [backspace]   '[127])
+)
+;;
+;; Wheel mouse support
+;;
+(if (fboundp 'mouse-wheel-mode)
+  (mouse-wheel-mode 1)
+)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Ende von func-keys.el
diff --git a/site-lisp/term/gnome.el b/site-lisp/term/gnome.el
new file mode 100644
index 0000000000000000000000000000000000000000..6fb7cf7253d0d04558114394a1819353ffa0631e
--- /dev/null
+++ b/site-lisp/term/gnome.el
@@ -0,0 +1,97 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; term/gnomw.el for site-lisp path
+;;; Copyright (c) 2000 SuSE Gmbh Nuernberg, Germany.  All rights reserved.
+;;;
+;;; Author: Werner Fink  <werner@suse.de>, No warranty of any kind
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; (define-key function-key-map "\e[1~" [find])
+; (define-key function-key-map "\eOH"  [home])
+  (define-key function-key-map "\e[1~" [home])
+  (define-key function-key-map "\e[2~" [insertchar])
+  (define-key function-key-map "\e[3~" [deletechar])
+; (define-key function-key-map "\e[4~" [select])
+; (define-key function-key-map "\eOF"  [end])
+  (define-key function-key-map "\e[4~" [end])
+  (define-key function-key-map "\e[5~" [prior])
+  (define-key function-key-map "\e[6~" [next])
+  (define-key function-key-map "\e[OP" [f1])
+  (define-key function-key-map "\e[OQ" [f2])
+  (define-key function-key-map "\e[OR" [f3])
+  (define-key function-key-map "\e[OS" [f4])
+  (define-key function-key-map "\e[15~" [f5])
+  (define-key function-key-map "\e[17~" [f6])
+  (define-key function-key-map "\e[18~" [f7])
+  (define-key function-key-map "\e[19~" [f8])
+  (define-key function-key-map "\e[20~" [f9])
+  (define-key function-key-map "\e[21~" [f10])
+  (define-key function-key-map "\e[23~" [f11])
+  (define-key function-key-map "\e[24~" [f12])
+  (define-key function-key-map "\e[25~" [f13])
+  (define-key function-key-map "\e[26~" [f14])
+  (define-key function-key-map "\e[28~" [help])
+  (define-key function-key-map "\e[29~" [menu])
+  (define-key function-key-map "\e?\e[28~" [M-help])
+  (define-key function-key-map "\e?\e[29~" [M-menu])
+  (define-key function-key-map "\e[31~" [f17])
+  (define-key function-key-map "\e[32~" [f18])
+  (define-key function-key-map "\e[33~" [f19])
+  (define-key function-key-map "\e[34~" [f20])
+;;
+;; num block
+;; [home] and [end] found in num block
+; (define-key function-key-map "\eOH" [home])
+; (define-key function-key-map "\eOF" [end])
+  (define-key function-key-map "\e[1~" [home])
+  (define-key function-key-map "\e[4~" [end])
+;;
+;; Locked num block
+  (define-key function-key-map "\eOI" [kp-tab])
+  (define-key function-key-map "\eOj" [kp-multiply])
+  (define-key function-key-map "\eOk" [kp-add])
+  (define-key function-key-map "\eOl" [kp-separator])
+  (define-key function-key-map "\eOM" [kp-enter])
+  (define-key function-key-map "\eOm" [kp-subtract])
+  (define-key function-key-map "\eOn" [kp-decimal])
+; (define-key function-key-map "\eOn" [kp-period]) ; [kp-decimal]
+  (define-key function-key-map "\eOo" [kp-divide])
+  (define-key function-key-map "\eOp" [kp-0])
+  (define-key function-key-map "\eOq" [kp-1])
+  (define-key function-key-map "\eOr" [kp-2])
+  (define-key function-key-map "\eOs" [kp-3])
+  (define-key function-key-map "\eOt" [kp-4])
+  (define-key function-key-map "\eOu" [kp-5])
+  (define-key function-key-map "\eOv" [kp-6])
+  (define-key function-key-map "\eOw" [kp-7])
+  (define-key function-key-map "\eOx" [kp-8])
+  (define-key function-key-map "\eOy" [kp-9])
+;;
+;; Undefine some ESC ESC behavior --- for later use
+  (global-unset-key "\e\e")
+  (define-key esc-map "\e" nil)
+;;
+  (define-key function-key-map  "\eOD" [left])
+  (define-key function-key-map  "\eOC" [right])
+  (define-key function-key-map  "\eOA" [up])
+  (define-key function-key-map  "\eOB" [down])
+;;
+  (define-key function-key-map  "\e\eOD" [M-left])
+  (define-key function-key-map  "\e\eOC" [M-right])
+  (define-key function-key-map  "\e\eOA" [M-up])
+  (define-key function-key-map  "\e\eOB" [M-down])
+;;
+;; Not in Use?
+  (define-key function-key-map "\C-?\eOD" [C-left])
+  (define-key function-key-map "\C-?\eOC" [C-right])
+  (define-key function-key-map "\C-?\eOA" [C-up])
+  (define-key function-key-map "\C-?\eOB" [C-down])
+;;
+;; Backspace, Delete and any thing else
+;;
+  (global-unset-key [insertchar])
+  (global-set-key   [insertchar]  'overwrite-mode)
+  (global-unset-key [deletechar])
+  (global-set-key   [deletechar]  'delete-char)
+;;
+(load "term/func-keys"  nil t)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Ende von gnomw.el
diff --git a/site-lisp/term/kvt.el b/site-lisp/term/kvt.el
new file mode 100644
index 0000000000000000000000000000000000000000..16faa8c17beb417ec6be2a8b49de69cba0b2f4a6
--- /dev/null
+++ b/site-lisp/term/kvt.el
@@ -0,0 +1,97 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; term/kvt.el for site-lisp path
+;;; Copyright (c) 2000 SuSE Gmbh Nuernberg, Germany.  All rights reserved.
+;;;
+;;; Author: Werner Fink  <werner@suse.de>, No warranty of any kind
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+  (define-key function-key-map "\e[1~" [find])
+  (define-key function-key-map "\eOH"  [home])
+  (define-key function-key-map "\e[2~" [insertchar])
+  (define-key function-key-map "\e[3~" [deletechar])
+  (define-key function-key-map "\e[4~" [select])
+  (define-key function-key-map "\eOF"  [end])
+  (define-key function-key-map "\e[5~" [prior])
+  (define-key function-key-map "\e[6~" [next])
+  (define-key function-key-map "\e[11~" [f1])
+  (define-key function-key-map "\e[12~" [f2])
+  (define-key function-key-map "\e[13~" [f3])
+  (define-key function-key-map "\e[14~" [f4])
+  (define-key function-key-map "\e[15~" [f5])
+  (define-key function-key-map "\e[17~" [f6])
+  (define-key function-key-map "\e[18~" [f7])
+  (define-key function-key-map "\e[19~" [f8])
+  (define-key function-key-map "\e[20~" [f9])
+  (define-key function-key-map "\e[21~" [f10])
+  (define-key function-key-map "\e[23~" [f11])
+  (define-key function-key-map "\e[24~" [f12])
+  (define-key function-key-map "\e[25~" [f13])
+  (define-key function-key-map "\e[26~" [f14])
+  (define-key function-key-map "\e[28~" [help])
+  (define-key function-key-map "\e[29~" [menu])
+  (define-key function-key-map "\e?\e[28~" [M-help])
+  (define-key function-key-map "\e?\e[29~" [M-menu])
+  (define-key function-key-map "\e[31~" [f17])
+  (define-key function-key-map "\e[32~" [f18])
+  (define-key function-key-map "\e[33~" [f19])
+  (define-key function-key-map "\e[34~" [f20])
+;;
+;; num block
+;; [home] and [end] found in num block
+  (define-key function-key-map "\eOH" [home])
+  (define-key function-key-map "\eOF" [end])
+;;
+;; Locked num block
+  (define-key function-key-map "\eOP" [kp-f1])
+  (define-key function-key-map "\eOQ" [kp-f2])
+  (define-key function-key-map "\eOR" [kp-f3])
+  (define-key function-key-map "\eOS" [kp-f4])
+  (define-key function-key-map "\eOI" [kp-tab])
+  (define-key function-key-map "\eOj" [kp-multiply])
+  (define-key function-key-map "\eOk" [kp-add])
+  (define-key function-key-map "\eOl" [kp-separator])
+  (define-key function-key-map "\eOM" [kp-enter])
+  (define-key function-key-map "\eOm" [kp-subtract])
+  (define-key function-key-map "\eOn" [kp-decimal])
+; (define-key function-key-map "\eOn" [kp-period]) ; [kp-decimal]
+  (define-key function-key-map "\eOo" [kp-divide])
+  (define-key function-key-map "\eOp" [kp-0])
+  (define-key function-key-map "\eOq" [kp-1])
+  (define-key function-key-map "\eOr" [kp-2])
+  (define-key function-key-map "\eOs" [kp-3])
+  (define-key function-key-map "\eOt" [kp-4])
+  (define-key function-key-map "\eOu" [kp-5])
+  (define-key function-key-map "\eOv" [kp-6])
+  (define-key function-key-map "\eOw" [kp-7])
+  (define-key function-key-map "\eOx" [kp-8])
+  (define-key function-key-map "\eOy" [kp-9])
+;;
+;; Undefine some ESC ESC behavior --- for later use
+  (global-unset-key "\e\e")
+  (define-key esc-map "\e" nil)
+;;
+  (define-key function-key-map  "\eOD" [left])
+  (define-key function-key-map  "\eOC" [right])
+  (define-key function-key-map  "\eOA" [up])
+  (define-key function-key-map  "\eOB" [down])
+;;
+  (define-key function-key-map  "\e\eOD" [M-left])
+  (define-key function-key-map  "\e\eOC" [M-right])
+  (define-key function-key-map  "\e\eOA" [M-up])
+  (define-key function-key-map  "\e\eOB" [M-down])
+;;
+;; Not in Use?
+  (define-key function-key-map "\C-?\eOD" [C-left])
+  (define-key function-key-map "\C-?\eOC" [C-right])
+  (define-key function-key-map "\C-?\eOA" [C-up])
+  (define-key function-key-map "\C-?\eOB" [C-down])
+;;
+;; Backspace, Delete and any thing else
+;;
+  (global-unset-key [insertchar])
+  (global-set-key   [insertchar]  'overwrite-mode)
+  (global-unset-key [deletechar])
+  (global-set-key   [deletechar]  'delete-char)
+;;
+(load "term/func-keys"  nil t)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Ende von kvt.el
diff --git a/site-lisp/term/linux.el b/site-lisp/term/linux.el
new file mode 100644
index 0000000000000000000000000000000000000000..1b9b29f6cad3de85c5063b878b4eb4e18819c505
--- /dev/null
+++ b/site-lisp/term/linux.el
@@ -0,0 +1,79 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; term/linux.el for site-lisp path
+;;; Copyright (c) 1996 SuSE Gmbh Nuernberg, Germany.  All rights reserved.
+;;;
+;;; Author: Werner Fink  <werner@suse.de>, No warranty of any kind
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+  (define-key function-key-map "\e[1~" [home])
+  (define-key function-key-map "\e[2~" [insertchar])
+  (define-key function-key-map "\e[3~" [deletechar])
+  (define-key function-key-map "\e[4~" [end])
+  (define-key function-key-map "\e[5~" [prior])
+  (define-key function-key-map "\e[6~" [next])
+  (define-key function-key-map "\e[[A" [f1])
+  (define-key function-key-map "\e[[B" [f2])
+  (define-key function-key-map "\e[[C" [f3])
+  (define-key function-key-map "\e[[D" [f4])
+  (define-key function-key-map "\e[[E" [f5])
+  (define-key function-key-map "\e[17~" [f6])
+  (define-key function-key-map "\e[18~" [f7])
+  (define-key function-key-map "\e[19~" [f8])
+  (define-key function-key-map "\e[20~" [f9])
+  (define-key function-key-map "\e[21~" [f10])
+  (define-key function-key-map "\e[23~" [f11])
+  (define-key function-key-map "\e[24~" [f12])
+  (define-key function-key-map "\e[25~" [f13])
+  (define-key function-key-map "\e[26~" [f14])
+  (define-key function-key-map "\e[28~" [help])
+  (define-key function-key-map "\e[29~" [menu])
+  (define-key function-key-map "\e?\e[28~" [M-help])
+  (define-key function-key-map "\e?\e[29~" [M-menu])
+  (define-key function-key-map "\e[31~" [f17])
+  (define-key function-key-map "\e[32~" [f18])
+  (define-key function-key-map "\e[33~" [f19])
+  (define-key function-key-map "\e[34~" [f20])
+;;
+;; Not in Use?
+;; ----------------------------------
+;; Console-Setting for Linux ???
+  (define-key function-key-map "\e[H"  [M-up])
+  (define-key function-key-map "\e[Y"  [M-down])
+  (define-key function-key-map "\e[M"  [menu])
+  (define-key function-key-map "\e?\e[M"  [M-menu])
+  (define-key function-key-map "\e[P"  [pause])
+;;
+;; num block
+  (define-key function-key-map "\e[G" [begin])
+;;
+;; Locked num block Nothing to do :-)
+;;
+;; Undefine some ESC ESC behavior --- for later use
+  (global-unset-key "\e\e")
+  (define-key esc-map "\e" nil)
+;;
+  (define-key function-key-map "\e[D" [left])
+  (define-key function-key-map "\e[C" [right])
+  (define-key function-key-map "\e[A" [up])
+  (define-key function-key-map "\e[B" [down])
+;;
+  (define-key function-key-map "\e\e[D" [M-left])
+  (define-key function-key-map "\e\e[C" [M-right])
+  (define-key function-key-map "\e\e[A" [M-up])
+  (define-key function-key-map "\e\e[B" [M-down])
+;;
+;; Not in Use?
+  (define-key function-key-map "\C-?\e[D" [C-left])
+  (define-key function-key-map "\C-?\e[C" [C-right])
+  (define-key function-key-map "\C-?\e[A" [C-up])
+  (define-key function-key-map "\C-?\e[B" [C-down])
+;;
+;; Backspace, Delete and any thing else
+;;
+  (global-unset-key [insertchar])
+  (global-set-key   [insertchar]  'overwrite-mode)
+  (global-unset-key [deletechar])
+  (global-set-key   [deletechar]  'delete-char)
+;;
+(load "term/func-keys" nil t)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Ende von linux.el
diff --git a/site-lisp/term/locale.el b/site-lisp/term/locale.el
new file mode 100644
index 0000000000000000000000000000000000000000..4b96ad023bdf8bb0cdab966326c236daae40655f
--- /dev/null
+++ b/site-lisp/term/locale.el
@@ -0,0 +1,13 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; term/locale.el for site-lisp path
+;;; Copyright (c) 1996-2003 SuSE Linux AG Nuernberg, Germany.
+;;; Copyright (c) 2007 SuSE LINUX Products GmbH Nuernberg, Germany.
+;;;
+;;; Author: Werner Fink  <werner@suse.de>, No warranty of any kind
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(add-hook 'term-setup-hook (function (lambda ()
+				       (load "term/func-keys" t t))))
+;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Ende von locale.el
diff --git a/site-load.el b/site-load.el
new file mode 100644
index 0000000000000000000000000000000000000000..ad80da6a5a2d37b763a9a681930dbe917ca62edb
--- /dev/null
+++ b/site-load.el
@@ -0,0 +1,90 @@
+;;;;
+;;; emacs-27.1/lisp/site-load.el
+;;; Copyright (c) 1995,96,98,99 SuSE Gmbh Nuernberg, Germany.  All rights reserved.
+;;;
+;;; Autor: Werner Fink  <werner@suse.de>, No warranty of any kind
+;;;;
+;; CONFIGURATION (under bash):
+;; (export CC=gcc; \
+;;  export CFLAGS="-O2 $(arch dependent flags) -pipe \
+;;          -DSYSTEM_PURESIZE_EXTRA=25000 -DSITELOAD_PURESIZE_EXTRA=10000" ; \
+;;  ./configure $(arch)-suse-linux --with-x --with-x-toolkit=lucid \
+;;              --with-gcc --with-pop --with-system-malloc --prefix=/usr \
+;;		--exec-prefix=/usr \
+;;              --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib )
+;;
+;; include bug fixes you have
+;;
+;; MAKE:
+;;   make LDFLAGS=-s CC=gcc CFLAGS="-O2 $(arch dependent flags) -pipe \
+;;    -DSYSTEM_PURESIZE_EXTRA=25000 -DSITELOAD_PURESIZE_EXTRA=10000"
+;;
+;; DOC:
+;;   lisp/delsel.elc lisp/lpr.elc added to src/Makefile.in for DOCumentation
+;;
+;;;;
+(garbage-collect)
+
+(load "emacs-lisp/pcase")
+(load "emacs-lisp/easy-mmode")
+(garbage-collect)
+
+(load "lpr")
+(setq lpr-headers-switches (list "-h"))
+(setq lpr-add-switches t)
+(garbage-collect)
+
+;; Overwrite `load delsel'
+;; Choose `t' in your ~/.emacs
+(custom-set-variables '(delete-selection-mode nil))
+(garbage-collect)
+
+(setq gnus-default-nntp-server "news")
+(garbage-collect)
+
+;;; site-load.el ends here
+;;;;
+;;; emacs-27.1/lisp/site-load.el
+;;; Copyright (c) 1995,96,98,99 SuSE Gmbh Nuernberg, Germany.  All rights reserved.
+;;;
+;;; Autor: Werner Fink  <werner@suse.de>, No warranty of any kind
+;;;;
+;; CONFIGURATION (under bash):
+;; (export CC=gcc; \
+;;  export CFLAGS="-O2 $(arch dependent flags) -pipe \
+;;          -DSYSTEM_PURESIZE_EXTRA=25000 -DSITELOAD_PURESIZE_EXTRA=10000" ; \
+;;  ./configure $(arch)-suse-linux --with-x --with-x-toolkit=lucid \
+;;              --with-gcc --with-pop --with-system-malloc --prefix=/usr \
+;;		--exec-prefix=/usr \
+;;              --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib )
+;;
+;; include bug fixes you have
+;;
+;; MAKE:
+;;   make LDFLAGS=-s CC=gcc CFLAGS="-O2 $(arch dependent flags) -pipe \
+;;    -DSYSTEM_PURESIZE_EXTRA=25000 -DSITELOAD_PURESIZE_EXTRA=10000"
+;;
+;; DOC:
+;;   lisp/delsel.elc lisp/lpr.elc added to src/Makefile.in for DOCumentation
+;;
+;;;;
+(garbage-collect)
+
+(load "emacs-lisp/pcase")
+(load "emacs-lisp/easy-mmode")
+(garbage-collect)
+
+(load "lpr")
+(setq lpr-headers-switches (list "-h"))
+(setq lpr-add-switches t)
+(garbage-collect)
+
+;; Overwrite `load delsel'
+;; Choose `t' in your ~/.emacs
+(custom-set-variables '(delete-selection-mode nil))
+(garbage-collect)
+
+(setq gnus-default-nntp-server "news")
+(garbage-collect)
+
+;;; site-load.el ends here
openSUSE Build Service is sponsored by