diff -Nru xemacs-21.5.20.orig/.pkgextract xemacs-21.5.20/.pkgextract --- xemacs-21.5.20.orig/.pkgextract 1970-01-01 01:00:00.000000000 +0100 +++ xemacs-21.5.20/.pkgextract 2005-05-12 14:38:20.000000000 +0200 @@ -0,0 +1,12 @@ +(cd ../; tar xkfI xemacs-21.4.3-info.tar.bz2) +rm -f mule-packages +rm -f xemacs-packages +tar xkfI ../xemacs-mule-sumo-2001-04-08.tar.bz2 +rm -f lib-src/pstogif +tar xkfI ../xemacs-sumo-2001-04-08.tar.bz2 +patch -p0 -s --suffix=.vm < ../xemacs-sumo-2000-01-24-vm.patch +patch -p0 -s --suffix=.ilisp < ../xemacs-sumo-2000-09-04-ilisp.patch +patch -p0 -s --suffix=.ispell < ../xemacs-sumo-2000-09-04-ispell.patch +patch -p0 -s --suffix=.mc < ../xemacs-sumo-2000-09-04-mc.patch +patch -p0 -s --suffix=.conf < ../xemacs-21.4.3-autoconf.patch +find lisp/ etc/ -name '*.elc' | xargs -r rm -f diff -Nru xemacs-21.5.20.orig/lib-src/gnuclient.c xemacs-21.5.20/lib-src/gnuclient.c --- xemacs-21.5.20.orig/lib-src/gnuclient.c 2004-12-07 00:23:41.000000000 +0100 +++ xemacs-21.5.20/lib-src/gnuclient.c 2005-05-12 14:38:20.000000000 +0200 @@ -223,7 +223,7 @@ /* Encase the string in quotes, escape all the backslashes and quotes in string. */ static char * -clean_string (const char *s) +clean_string (char *s) { int i = 0; char *p, *res; diff -Nru xemacs-21.5.20.orig/lib-src/mmencode.c xemacs-21.5.20/lib-src/mmencode.c --- xemacs-21.5.20.orig/lib-src/mmencode.c 2001-08-13 06:45:48.000000000 +0200 +++ xemacs-21.5.20/lib-src/mmencode.c 2005-05-12 14:38:20.000000000 +0200 @@ -20,6 +20,11 @@ #include #include +#include +#include +#include +#include + static void output64chunk(int c1, int c2, int c3, int pads, FILE *outfile); @@ -427,6 +432,32 @@ } } +/* not safe on nfs filesystems, but this is close */ +FILE * +safeopen(char *filename, char *mode) +{ +#ifdef MSDOS + return fopen(filename, mode); +#else + int fd; + int flags; + + if(mode[0] == 'w') { + flags = O_EXCL | O_CREAT | O_WRONLY; + } + else { + flags = O_RDONLY; + } + + fd = open(filename, flags); + + if(fd == -1) { + return (FILE *)0; + } + + return fdopen(fd, mode); +#endif +} /* Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) @@ -453,6 +484,7 @@ int main(int argc, char *argv[]) { int encode = 1, which = BASE64, i, portablenewlines = 0; + struct stat fpstat; FILE *fp = stdin; FILE *fpo = stdout; @@ -464,7 +496,7 @@ fprintf(stderr, "mimencode: -o requires a file name.\n"); exit(-1); } - fpo = fopen(argv[i], "w"); + fpo = safeopen(argv[i], "w"); if (!fpo) { perror(argv[i]); exit(-1); @@ -497,7 +529,7 @@ setmode(fileno(fpo), O_BINARY); } /* else */ #else - fp = fopen(argv[i], "r"); + fp = safeopen(argv[i], "r"); #endif /* WIN32_NATIVE */ if (!fp) { perror(argv[i]); @@ -507,6 +539,12 @@ } #ifdef WIN32_NATIVE if (fp == stdin) setmode(fileno(fp), O_BINARY); +#else + if(fstat(fileno(fp), &fpstat) == -1) { + perror("fstat"); + exit(3); + } + fchmod(fileno(fpo), fpstat.st_mode & (S_IRWXU | S_IRWXG | S_IRWXO)); #endif /* WIN32_NATIVE */ if (which == BASE64) { if (encode) { diff -Nru xemacs-21.5.20.orig/lib-src/pop.c xemacs-21.5.20/lib-src/pop.c --- xemacs-21.5.20.orig/lib-src/pop.c 2004-09-20 21:19:11.000000000 +0200 +++ xemacs-21.5.20/lib-src/pop.c 2005-05-12 14:38:20.000000000 +0200 @@ -129,16 +129,20 @@ #define POP_PORT 110 #define KPOP_PORT 1109 #if defined(WIN32_NATIVE) || defined(CYGWIN) -#define POP_SERVICE "pop3" /* we don't want the POP2 port! */ +# define POP_SERVICE "pop3" /* we don't want the POP2 port! */ #else -#define POP_SERVICE "pop" +# ifdef linux +# define POP_SERVICE "pop3" +# else +# define POP_SERVICE "pop" +# endif #endif #ifdef KERBEROS -#ifdef KRB5 -#define KPOP_SERVICE "k5pop" -#else -#define KPOP_SERVICE "kpop" -#endif +# ifdef KRB5 +# define KPOP_SERVICE "k5pop" +# else +# define KPOP_SERVICE "kpop" +# endif #endif char pop_error[ERROR_MAX]; diff -Nru xemacs-21.5.20.orig/lib-src/vcdiff xemacs-21.5.20/lib-src/vcdiff --- xemacs-21.5.20.orig/lib-src/vcdiff 1996-12-18 23:42:33.000000000 +0100 +++ xemacs-21.5.20/lib-src/vcdiff 2005-05-12 14:38:20.000000000 +0200 @@ -62,6 +62,17 @@ rev1= rev2= status=0 +rev1=/tmp/geta$$ +rev2=/tmp/getb$$ +rm -f $rev1 $rev2 +if test -e $rev1 -o -e $rev2 ; then + echo "$0: temporaray files exists." 1>&2 + exit 1 +fi +if test -n "`type -p mktemp`" ; then + rev1="`mktemp ${rev1}.XXXXXX`" || exit 1 + rev2="`mktemp ${rev2}.XXXXXX`" || exit 1 +fi trap 'status=2; exit' 1 2 13 15 trap 'rm -f $rev1 $rev2 || status=2; exit $status' 0 @@ -79,14 +90,12 @@ case $f in s.* | */s.*) if - rev1=/tmp/geta$$ get -s -p -k $sid1 "$f" > $rev1 && case $sid2 in '') workfile=`expr " /$f" : '.*/s.\(.*\)'` ;; *) - rev2=/tmp/getb$$ get -s -p -k $sid2 "$f" > $rev2 workfile=$rev2 esac diff -Nru xemacs-21.5.20.orig/lisp/default.el xemacs-21.5.20/lisp/default.el --- xemacs-21.5.20.orig/lisp/default.el 1970-01-01 01:00:00.000000000 +0100 +++ xemacs-21.5.20/lisp/default.el 2005-05-12 14:38:20.000000000 +0200 @@ -0,0 +1,9 @@ +;(require 'tex-site) +(setq-default TeX-master nil) +; Users private libaries +; (setq TeX-macro-private '("~/lib/tex-lib/")) +; AUC-TeX-Macros +; (setq TeX-style-private "~/lib/xemacs/site-lisp/auctex/style/") +; Autom. Auc-TeX-Macros +; (setq TeX-auto-private "~/lib/xemacs/site-lisp/auctex/auto/") + diff -Nru xemacs-21.5.20.orig/lisp/dumped-lisp.el xemacs-21.5.20/lisp/dumped-lisp.el --- xemacs-21.5.20.orig/lisp/dumped-lisp.el 2005-02-10 04:26:15.000000000 +0100 +++ xemacs-21.5.20/lisp/dumped-lisp.el 2005-05-12 14:38:20.000000000 +0200 @@ -38,6 +38,7 @@ "cl" "cl-extra" "cl-seq" + "cl-macs" ; Avoid autoloading of kernel functions "widget" "custom" ; Before the world so everything can be ; customized @@ -310,6 +311,7 @@ ;; "sun-eos-menubar")) "loadhist" ; Must be dumped before loaddefs is loaded "loaddefs" ; <=== autoloads get loaded here + "disp-table" )) (setq preloaded-file-list diff -Nru xemacs-21.5.20.orig/lisp/find-paths.el xemacs-21.5.20/lisp/find-paths.el --- xemacs-21.5.20.orig/lisp/find-paths.el 2005-01-15 16:17:36.000000000 +0100 +++ xemacs-21.5.20/lisp/find-paths.el 2005-05-12 14:42:37.000000000 +0200 @@ -220,7 +220,7 @@ roots (file-name-as-directory (paths-construct-path (list - "lib" + "share" emacs-program-name))) base envvar default)) @@ -267,7 +267,7 @@ roots (file-name-as-directory (paths-construct-path - (list "lib" + (list "share" (construct-emacs-version-name)))) base envvar default)) @@ -325,7 +325,7 @@ (defun construct-emacs-version-name () "Construct a string from the raw XEmacs version number." - (concat emacs-program-name "-" emacs-program-version)) + (concat emacs-program-name "/" emacs-program-version)) (defun paths-directories-which-exist (directories) "Return the directories among DIRECTORIES. diff -Nru xemacs-21.5.20.orig/lisp/mule/cyrillic.el xemacs-21.5.20/lisp/mule/cyrillic.el --- xemacs-21.5.20.orig/lisp/mule/cyrillic.el 2002-03-21 08:30:21.000000000 +0100 +++ xemacs-21.5.20/lisp/mule/cyrillic.el 2005-05-12 14:38:20.000000000 +0200 @@ -32,6 +32,9 @@ ;; Windows-1251 support deleted because XEmacs has automatic support. ;;; Code: +(eval-when-compile + (setq max-lisp-eval-depth (+ 800 max-lisp-eval-depth)) + (setq max-specpdl-size (+ 2000 max-specpdl-size))) ;; Cyrillic syntax (modify-syntax-entry 'cyrillic-iso8859-5 "w") diff -Nru xemacs-21.5.20.orig/lisp/setup-paths.el xemacs-21.5.20/lisp/setup-paths.el --- xemacs-21.5.20.orig/lisp/setup-paths.el 2004-12-27 13:25:15.000000000 +0100 +++ xemacs-21.5.20/lisp/setup-paths.el 2005-05-12 14:38:20.000000000 +0200 @@ -256,7 +256,8 @@ (paths-uniq-append (append (let ((info-directory - (paths-find-version-directory roots "info" + (paths-find-version-directory roots + "info" nil configure-info-directory))) (and info-directory diff -Nru xemacs-21.5.20.orig/lisp/site-init.el xemacs-21.5.20/lisp/site-init.el --- xemacs-21.5.20.orig/lisp/site-init.el 1970-01-01 01:00:00.000000000 +0100 +++ xemacs-21.5.20/lisp/site-init.el 2005-05-12 14:38:20.000000000 +0200 @@ -0,0 +1,17 @@ +;;;; +;;; xemacs-21.1.14/lisp/site-init.el +;;; Author: Werner Fink +;; CONFIGURATION see source code +;;;; +(garbage-collect) + +(setq gnus-default-nntp-server "news") +(setq w3-directory (concat "/usr/share/xemacs/" emacs-program-version "/lisp/w3")) + +(garbage-collect) +(garbage-collect) +(garbage-collect) +(garbage-collect) +(garbage-collect) + +;;; site-init.el ends here diff -Nru xemacs-21.5.20.orig/lisp/x-win-xfree86.el xemacs-21.5.20/lisp/x-win-xfree86.el --- xemacs-21.5.20.orig/lisp/x-win-xfree86.el 2001-05-05 00:42:19.000000000 +0200 +++ xemacs-21.5.20/lisp/x-win-xfree86.el 2005-05-12 14:38:20.000000000 +0200 @@ -65,6 +65,10 @@ ;; define also the control, meta, and meta-control versions. (loop for mods in '(() (control) (meta) (meta control)) do (define-key function-key-map `[(,@mods ,key)] `[(shift ,@mods ,sane-key)]) - )))) - + ))) +;; Begin insert +;; set Symbol delete == [delete] to delete-char + (load "term/func-keys" t t) +;; End insert +) ;;; x-win-xfree86.el ends here diff -Nru xemacs-21.5.21.orig/site-packages/lisp/site-start.el xemacs-21.5.21/site-packages/lisp/site-start.el --- xemacs-21.5.21.orig/site-packages/lisp/site-start.el 1970-01-01 01:00:00.000000000 +0100 +++ xemacs-21.5.21/site-packages/lisp/site-start.el 2005-06-17 12:48:11.000000000 +0200 @@ -0,0 +1,406 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; File name: ` /usr/share/xemacs/site-lisp/site-start.el ' +;;; System wide start file for xemacs. +;;; Copyright 1999 (c) S.u.S.E. Gmbh Fuerth, Germany. All rights reserved. +;;; Author: Werner Fink , 1999 +;;; Mike Fabian , 2004, 2005 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(setq load-path (delete (concat "/usr/share/xemacs/" + emacs-program-version + "/site-packages/lisp/term/") + load-path)) + +;; +;; Preload dynamic (i)Spell menu +;; -------------- +(load "/usr/lib/ispell/ispell-emacs-menu.el" t t) +(load "fix-load-history.el" t t) + +;; +;; i18n setup (encoding, language-environment, ...) +;; ------------------------------------------------- + +(if (locate-library "latin-unity") (require 'latin-unity)) +(if (locate-library "latin-euro-input") (require 'latin-euro-input)) +(if (and (<= emacs-major-version 21) + (<= emacs-minor-version 4) + (locate-library "un-define")) + (require 'un-define) + (provide 'un-define)) + +;; Setting the language-environment +;; +;; fix unicode-precedence-list if setting the language environment +;; screws it up. +;; +;; Unfortunately 'set-language-environment' also changes the locale. +;; For example (set-language-environment "Japanese") sets the locale +;; to ja_JP.eucJP. That is nonsense and should not be done. +;; Therefore we remember the original value of LANG and restore the +;; locale after 'set-language-environment'. + +(when (emacs-version>= 21 5 6) + (let ((old-lang (getenv "LANG")) + (case-fold-search nil)) + (when (getenv "LANG") + (cond ((string-match "af" (getenv "LANG")) + (set-language-environment "Afrikaans")) + ((string-match "sq" (getenv "LANG")) + (set-language-environment "Albanian")) + ((string-match "ca" (getenv "LANG")) + (set-language-environment "Catalan")) + ((string-match "zh_TW" (getenv "LANG")) + (set-language-environment "Chinese-BIG5") + (set-language-unicode-precedence-list + '(ascii + latin-iso8859-1 + latin-iso8859-2 + latin-iso8859-3 + latin-iso8859-4 + latin-iso8859-13 + latin-iso8859-15 + latin-iso8859-16 + cyrillic-iso8859-5 + greek-iso8859-7 + chinese-big5-1 + chinese-big5-2 + chinese-gb2312 + chinese-sisheng + korean-ksc5601 + japanese-jisx0208 + japanese-jisx0208-1978 + japanese-jisx0212 + latin-jisx0201 + katakana-jisx0201))) + ((string-match "zh_HK" (getenv "LANG")) + (set-language-environment "Chinese-BIG5") + (set-language-unicode-precedence-list + '(ascii + latin-iso8859-1 + latin-iso8859-2 + latin-iso8859-3 + latin-iso8859-4 + latin-iso8859-13 + latin-iso8859-15 + latin-iso8859-16 + cyrillic-iso8859-5 + greek-iso8859-7 + chinese-big5-1 + chinese-big5-2 + chinese-gb2312 + chinese-sisheng + korean-ksc5601 + japanese-jisx0208 + japanese-jisx0208-1978 + japanese-jisx0212 + latin-jisx0201 + katakana-jisx0201))) + ((string-match "zh_CN" (getenv "LANG")) + (set-language-environment "Chinese-GB") + (set-language-unicode-precedence-list + '(ascii + latin-iso8859-1 + latin-iso8859-2 + latin-iso8859-3 + latin-iso8859-4 + latin-iso8859-13 + latin-iso8859-15 + latin-iso8859-16 + cyrillic-iso8859-5 + greek-iso8859-7 + chinese-gb2312 + chinese-sisheng + chinese-big5-1 + chinese-big5-2 + korean-ksc5601 + japanese-jisx0208 + japanese-jisx0208-1978 + japanese-jisx0212 + latin-jisx0201 + katakana-jisx0201))) + ((string-match "zh_SG" (getenv "LANG")) + (set-language-environment "Chinese-GB") + (set-language-unicode-precedence-list + '(ascii + latin-iso8859-1 + latin-iso8859-2 + latin-iso8859-3 + latin-iso8859-4 + latin-iso8859-13 + latin-iso8859-15 + latin-iso8859-16 + cyrillic-iso8859-5 + greek-iso8859-7 + chinese-gb2312 + chinese-sisheng + chinese-big5-1 + chinese-big5-2 + korean-ksc5601 + japanese-jisx0208 + japanese-jisx0208-1978 + japanese-jisx0212 + latin-jisx0201 + katakana-jisx0201))) + ((string-match "hr" (getenv "LANG")) + (set-language-environment "Croatian")) + ((string-match "ru" (getenv "LANG")) + (set-language-environment "Cyrillic-KOI8")) + ((string-match "cs" (getenv "LANG")) + (set-language-environment "Czech")) + ((string-match "da" (getenv "LANG")) + (set-language-environment "Danish")) + ((string-match "nl" (getenv "LANG")) + (set-language-environment "Dutch")) + ((string-match "et" (getenv "LANG")) + (set-language-environment "Estonian")) + ((string-match "fi" (getenv "LANG")) + (set-language-environment "Finnish")) + ((string-match "fr" (getenv "LANG")) + (set-language-environment "French")) + ((string-match "gl" (getenv "LANG")) + (set-language-environment "Galician")) + ((string-match "de" (getenv "LANG")) + (set-language-environment "German")) + ((string-match "el" (getenv "LANG")) + (set-language-environment "Greek")) + ((string-match "kl" (getenv "LANG")) + (set-language-environment "Greenlandic")) + ((string-match "he" (getenv "LANG")) + (set-language-environment "Hebrew")) + ((string-match "iw" (getenv "LANG")) + (set-language-environment "Hebrew")) + ((string-match "hu" (getenv "LANG")) + (set-language-environment "Hungarian")) + ((string-match "ga" (getenv "LANG")) + (set-language-environment "Irish")) + ((string-match "it" (getenv "LANG")) + (set-language-environment "Italian")) + ((string-match "ja" (getenv "LANG")) + (set-language-environment "Japanese") + (set-language-unicode-precedence-list + '(ascii + latin-iso8859-1 + latin-iso8859-2 + latin-iso8859-3 + latin-iso8859-4 + latin-iso8859-13 + latin-iso8859-15 + latin-iso8859-16 + cyrillic-iso8859-5 + greek-iso8859-7 + japanese-jisx0208 + japanese-jisx0208-1978 + japanese-jisx0212 + latin-jisx0201 + katakana-jisx0201 + korean-ksc5601 + chinese-big5-1 + chinese-big5-2 + chinese-gb2312 + chinese-sisheng))) + ((string-match "ko" (getenv "LANG")) + (set-language-environment "Korean") + (set-language-unicode-precedence-list + '(ascii + latin-iso8859-1 + latin-iso8859-2 + latin-iso8859-3 + latin-iso8859-4 + latin-iso8859-13 + latin-iso8859-15 + latin-iso8859-16 + cyrillic-iso8859-5 + greek-iso8859-7 + korean-ksc5601 + japanese-jisx0208 + japanese-jisx0208-1978 + japanese-jisx0212 + latin-jisx0201 + katakana-jisx0201 + chinese-big5-1 + chinese-big5-2 + chinese-gb2312 + chinese-sisheng))) + ((string-match "lt" (getenv "LANG")) + (set-language-environment "Lithuanian")) + ((string-match "mt" (getenv "LANG")) + (set-language-environment "Maltese")) + ((string-match "nb" (getenv "LANG")) + (set-language-environment "Norwegian")) + ((string-match "nn" (getenv "LANG")) + (set-language-environment "Norwegian")) + ((string-match "no" (getenv "LANG")) + (set-language-environment "Norwegian")) + ((string-match "pl" (getenv "LANG")) + (set-language-environment "Polish")) + ((string-match "pt" (getenv "LANG")) + (set-language-environment "Portuguese")) + ((string-match "ro" (getenv "LANG")) + (set-language-environment "Romanian")) + ((string-match "sk" (getenv "LANG")) + (set-language-environment "Slovak")) + ((string-match "sl" (getenv "LANG")) + (set-language-environment "Slovenian")) + ((string-match "es" (getenv "LANG")) + (set-language-environment "Spanish")) + ((string-match "sv" (getenv "LANG")) + (set-language-environment "Swedish")) + ((string-match "th" (getenv "LANG")) + (set-language-environment "Thai-XTIS")) + ((string-match "tr" (getenv "LANG")) + (set-language-environment "Turkish")) + ((string-match "vi" (getenv "LANG")) + (set-language-environment "Vietnamese")) + (t + (set-language-environment "English"))) + (setenv "LANG" old-lang) + (set-current-locale old-lang)))) + +(defun suse-set-coding-systems () + (let* ((tmp (shell-command-to-string "locale charmap")) + (tmp (substring tmp 0 (string-match "\[ \t\n\]" tmp))) + (tmp (downcase tmp))) + (when (find-coding-system (intern tmp)) + ;; set the coding system priorities: + ;; (this is also important to make XIM in utf-8 work + ;; because XEmacs has no variable/function to set the + ;; coding-system for XIM, it is just autodetected which + ;; will work correctly only when the coding-system priorities + ;; are OK.) + (if (not (string-match "utf-8" tmp)) + (progn (prefer-coding-system (intern tmp)) + (if (fboundp 'latin-unity-install) (latin-unity-install))) + ;; it's strange, but (prefer-coding-system 'utf-8) doesn't + ;; work in XEmacs. + ;; use 'set-coding-priority-list instead, which achieves + ;; the same and works for 'utf-8 as well: + (set-coding-priority-list (list (intern tmp))) + (set-coding-category-system (intern tmp) (intern tmp))) + (if (emacs-version>= 21 5 6) + ;; XEmacs 21.5 apparently renamed this function: + (set-default-output-coding-systems (intern tmp)) + (set-default-coding-systems (intern tmp))) + (set-keyboard-coding-system (intern tmp)) + (set-terminal-coding-system (intern tmp)) + ;; XEmacs 21.5.16 needs this to be able to use non-ASCII file names: + (if (and (string-match "XEmacs" emacs-version) + (emacs-version>= 21 5 6)) + (setq file-name-coding-system (intern tmp))) + ;; without the following line, shell buffers are not by default + ;; in UTF-8 when running in an UTF-8 locale in XEmacs 21.5.16: + (setq process-coding-system-alist (cons (cons ".*" (intern tmp)) '())) + ;; these two lines appearently make no difference, if they + ;; are used instead of the above process-coding-system-alist, + ;; shell buffers still have the wrong encoding: + ;; (setq default-process-coding-system-read (intern tmp)) + ;; (setq default-process-coding-system-write (intern tmp)) + ;; and this doesn't seem to work either: + ;; (setq default-process-coding-system '(utf-8 . utf-8)) + ;; + ;; the following is necessary to enable XEmacs to pass + ;; command line arguments to external processes in the correct + ;; encoding. For example this is needed to make + ;; 'M-x grep' work when searching for UTF-8 strings + ;; while running in an UTF-8 locale. + ;; + (if (and (string-match "XEmacs" emacs-version) + (emacs-version>= 21 5 6)) + (define-coding-system-alias 'native (intern tmp)))))) + +(suse-set-coding-systems) + +;; Set input mode +(let ((value (current-input-mode))) + (set-input-mode (nth 0 value) + (nth 1 value) + (terminal-coding-system) + ;; This quit value is optional + (nth 3 value))) + +;; Hack to support some important Unicode keysyms which are not yet +;; natively supported in XEmacs: + +(defun insert-unicode-keysym () + "Assuming the last typed key has an associated keysym of the form +UXXXX, where XXXX is the hexadecimal code point of a Unicode +character, insert that Unicode character at point. " + (interactive) + (let* ((unicode-codepoint + (string-to-int + (substring (format "%s" (event-key last-command-event)) 1) 16)) + (mule-char (unicode-to-char unicode-codepoint))) + (if mule-char + (insert mule-char) + (error 'text-conversion-error + (format "Could not convert U+%X to a Mule character, sorry" + unicode-codepoint))))) + +(defun suse-global-map-default-binding () + "Workaround to make X11 keysyms of the form UXXXX work. +This is a stopgap until proper translation of these keysyms is +integrated into XEmacs" + + (interactive) + (let* ((keysym + (format "%s" (event-key last-command-event))) + (case-fold-search nil)) + (when (string-match "U[0-9A-F][0-9A-F][0-9A-F][0-9A-F]" keysym) + (insert-unicode-keysym) + (define-key global-map (intern keysym) 'insert-unicode-keysym)))) + +;;; (when (equal (console-type) 'x) +;;; (set-keymap-default-binding global-map 'suse-global-map-default-binding)) + +;; Hack to support some extra Unicode characters which are not in any +;; legacy charset. This hack is not enough to display the characters +;; correctly (should work with the Xft build of XEmacs) but at least +;; it prevents data loss if files containing these characters are read +;; and saved again. + +(make-charset 'suse-private + "Private character set for SUSE" + '(dimension 2 + chars 96 + columns 1 + final ?R ;; Change this--see docs for make-charset + long-name "Private charset for some Unicode char support." + short-name + "Suse-Private")) + +(defun suse-list-unsupported-codepoints-range (range) + (interactive) + (let ((unsupported nil) + (i (car range)) + (j (cadr range))) + (while (<= i j) + (if (not (unicode-to-char i)) + (push i unsupported)) + (setq i (1+ i))) + unsupported)) + +(defun suse-fill-charset (charset codepoint-list) + (interactive) + (let ((n 0)) + (dolist (codepoint codepoint-list) + (let ((i (mod n 96)) + (j (/ n 96))) + (if (< j 95) + (set-unicode-conversion (make-char charset (+ i #x20) (+ j #x20)) codepoint) + (message "charset %s is full" charset)) + (setq n (1+ n)))))) + +(suse-fill-charset + 'suse-private + (nconc + (suse-list-unsupported-codepoints-range '(#x0100 #x06FF)) + (suse-list-unsupported-codepoints-range '(#x0900 #x11FF)) + (suse-list-unsupported-codepoints-range '(#x1E00 #x27FF)) + (suse-list-unsupported-codepoints-range '(#x3000 #x33FF)) + (suse-list-unsupported-codepoints-range '(#xE800 #xE8FF)) + (suse-list-unsupported-codepoints-range '(#xF000 #xF0FF)) + (suse-list-unsupported-codepoints-range '(#xFB00 #xFFFF)) + )) + +;;;;;;;;;; +;; the end diff -Nru xemacs-21.5.20.orig/site-packages/lisp/term/func-keys.el xemacs-21.5.20/site-packages/lisp/term/func-keys.el --- xemacs-21.5.20.orig/site-packages/lisp/term/func-keys.el 1970-01-01 01:00:00.000000000 +0100 +++ xemacs-21.5.20/site-packages/lisp/term/func-keys.el 2005-05-12 14:38:20.000000000 +0200 @@ -0,0 +1,129 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; term/func-keys.el for site-lisp path in xemacs-21.4.12 +;;; Copyright (c) 1996-2003 SuSE Gmbh Nuernberg, Germany +;;; +;;; Author: Werner Fink , 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 + (global-set-key [(kp-tab)] 'indent-for-tab-command) + (global-set-key [(kp-0)] "0") ; 0 + (global-set-key [(kp-1)] "1") ; 1 + (global-set-key [(kp-2)] "2") ; 2 + (global-set-key [(kp-3)] "3") ; 3 + (global-set-key [(kp-4)] "4") ; 4 + (global-set-key [(kp-5)] "5") ; 5 + (global-set-key [(kp-6)] "6") ; 6 + (global-set-key [(kp-7)] "7") ; 7 + (global-set-key [(kp-8)] "8") ; 8 + (global-set-key [(kp-9)] "9") ; 9 + (global-set-key [(kp-multiply)] "*") ; `+' + (global-set-key [(kp-add)] "+") ; `+' + (global-set-key [(kp-divide)] "/") ; `/' +;; german fault: +(defvar lang-environment "en_us" + "The value of the environment variable \"LANG\" +used to set appropriate keypad. Default value is \"en_us\". +If \"LANG\" is set to \"de\" or some other aliases +(see /usr/X11R6/lib/X11/locale/) the keypad decimal is +chosen to \",\". + Your SuSE-Team") +; +(let ((lang (getenv "LANG"))) + (if (null lang) + (setq lang-environment "en_us") + (setq lang-environment lang))) +;; +; (if (string-match "^\\(de$\\|de_\\|GER_DE\\|german\\)" lang-environment) +; (progn +; (global-set-key [(kp-decimal)] ",") ; `,' german decimal +; (global-set-key [(kp-separator)] ".")) ; `.' german separator +; (global-set-key [(kp-decimal)] ".") +; (global-set-key [(kp-separator)] ",")) + (global-set-key [(kp-decimal)] ".") + (global-set-key [(kp-separator)] ",") + (global-set-key [(kp-subtract)] "-") ; `-' + (global-set-key [(kp-enter)] 'newline) ; Linefeed + (global-set-key [(kp-home)] 'beginning-of-line) ; home + (global-set-key [(kp-up)] 'previous-line) ; up + (global-set-key [(kp-prior)] 'scroll-down) ; ppg + (global-set-key [(kp-left)] 'backward-char) ; left + (global-set-key [(kp-begin)] 'beginning-of-line) ; first + (global-set-key [(kp-right)] 'forward-char) ; right + (global-set-key [(kp-end)] 'end-of-line) ; end + (global-set-key [(kp-down)] 'next-line) ; down + (global-set-key [(kp-next)] 'scroll-up) ; npg + (global-set-key [(kp-insert)] 'overwrite-mode) ; insert/ovwrt +;; +;; Backspace, Delete and any thing else +;; +(if (not (eq 'x (console-type))) + nil + ;; + ;; Overriding the BS/DEL/KP_DEL mapping for Xemacs-20.4: + ;; ... Hey they have done a good job: DEL and BS + ;; now are distinct. + ;; + (global-unset-key 'kp-delete) + (local-unset-key 'kp-delete) + ;; + ;; What will be inserted `on quoted-insert' + ;;(remprop 'delete 'ascii-character) + ;;(remprop 'backspace 'ascii-character) + ;;(put 'backspace 'ascii-character 127) + ;; +; (load "delbs" t t) + (load "x-compose" t t) + ;; + ;; Set the keyboard macro [(kp-delete)] + ;; to the same action as for [(delete-char)] + ;; + (global-set-key [(kp-delete)] 'backward-or-forward-delete-char) + (local-set-key [(kp-delete)] 'backward-or-forward-delete-char) + ;; + ;; Switch DEL/KP_DEL to delete-char + ;; + (setq delete-key-deletes-forward t) +) +;; +;; Most new users like this, but common emacs users? +;; +(global-set-key [(home)] 'beginning-of-line) +(global-set-key [(control home)] 'beginning-of-buffer) +(global-set-key [(end)] 'end-of-line) +(global-set-key [(control end)] 'end-of-buffer) +;; +;; Wheel mouse support +;; +(defvar mouse-wheel-scroll-amount 4 + "*Number of lines to scroll per click of the mouse wheel.") +; +(defun mouse-wheel-scroll-line (event) + "Scroll the current buffer by `mouse-wheel-scroll-amount'." + (interactive "e") + (condition-case nil + (case (event-button event) + (4 (scroll-down mouse-wheel-scroll-amount)) + (5 (scroll-up mouse-wheel-scroll-amount))) + (error nil))) +; +(defun mouse-wheel-scroll-screen (event) + "Scroll the current buffer." + (interactive "e") + (condition-case nil + (case (event-button event) + (4 (scroll-down)) + (5 (scroll-up))) + (error nil))) +; +(global-set-key [(button4)] 'mouse-wheel-scroll-line) +(global-set-key [(control button4)] 'mouse-wheel-scroll-screen) +(global-set-key [(button5)] 'mouse-wheel-scroll-line) +(global-set-key [(control button5)] 'mouse-wheel-scroll-screen) +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Ende von func-keys.el diff -Nru xemacs-21.5.20.orig/site-packages/lisp/term/gnome.el xemacs-21.5.20/site-packages/lisp/term/gnome.el --- xemacs-21.5.20.orig/site-packages/lisp/term/gnome.el 1970-01-01 01:00:00.000000000 +0100 +++ xemacs-21.5.20/site-packages/lisp/term/gnome.el 2005-05-12 14:38:20.000000000 +0200 @@ -0,0 +1,97 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; term/gnome.el for site-lisp path in xemacs-21.1.7 +;;; Copyright (c) 1996 SuSE Gmbh Nuernberg, Germany. All rights reserved. +;;; +;;; Author: Werner Fink , 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 "\eOP" [(f1)]) + (define-key function-key-map "\eOQ" [(f2)]) + (define-key function-key-map "\eOR" [(f3)]) + (define-key function-key-map "\eOS" [(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~" [(meta help)]) + (define-key function-key-map "\e?\e[29~" [(meta 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" [(meta left)]) + (define-key function-key-map "\e\eOC" [(meta right)]) + (define-key function-key-map "\e\eOA" [(meta up)]) + (define-key function-key-map "\e\eOB" [(meta down)]) +;; +;; Not in Use? + (define-key function-key-map "\C-?\eOD" [(control left)]) + (define-key function-key-map "\C-?\eOC" [(control right)]) + (define-key function-key-map "\C-?\eOA" [(control up)]) + (define-key function-key-map "\C-?\eOB" [(control 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 gnome.el diff -Nru xemacs-21.5.20.orig/site-packages/lisp/term/kvt.el xemacs-21.5.20/site-packages/lisp/term/kvt.el --- xemacs-21.5.20.orig/site-packages/lisp/term/kvt.el 1970-01-01 01:00:00.000000000 +0100 +++ xemacs-21.5.20/site-packages/lisp/term/kvt.el 2005-05-12 14:38:20.000000000 +0200 @@ -0,0 +1,97 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; term/kvt.el for site-lisp path in xemacs-21.1.7 +;;; Copyright (c) 2000 SuSE Gmbh Nuernberg, Germany. All rights reserved. +;;; +;;; Author: Werner Fink , 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~" [(meta help)]) + (define-key function-key-map "\e?\e[29~" [(meta 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" [(meta left)]) + (define-key function-key-map "\e\eOC" [(meta right)]) + (define-key function-key-map "\e\eOA" [(meta up)]) + (define-key function-key-map "\e\eOB" [(meta down)]) +;; +;; Not in Use? + (define-key function-key-map "\C-?\eOD" [(control left)]) + (define-key function-key-map "\C-?\eOC" [(control right)]) + (define-key function-key-map "\C-?\eOA" [(control up)]) + (define-key function-key-map "\C-?\eOB" [(control 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 -Nru xemacs-21.5.20.orig/site-packages/lisp/term/linux.el xemacs-21.5.20/site-packages/lisp/term/linux.el --- xemacs-21.5.20.orig/site-packages/lisp/term/linux.el 1970-01-01 01:00:00.000000000 +0100 +++ xemacs-21.5.20/site-packages/lisp/term/linux.el 2005-05-12 14:38:20.000000000 +0200 @@ -0,0 +1,79 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; term/linux.el for site-lisp path in xemacs-21.1.7 +;;; Copyright (c) 1996 SuSE Gmbh Nuernberg, Germany. All rights reserved. +;;; +;;; Author: Werner Fink , 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~" [(meta help)]) + (define-key function-key-map "\e?\e[29~" [(meta 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" [(meta up)]) + (define-key function-key-map "\e[Y" [(meta down)]) + (define-key function-key-map "\e[M" [(menu)]) + (define-key function-key-map "\e?\e[M" [(meta 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" [(meta left)]) + (define-key function-key-map "\e\e[C" [(meta right)]) + (define-key function-key-map "\e\e[A" [(meta up)]) + (define-key function-key-map "\e\e[B" [(meta down)]) +;; +;; Not in Use? + (define-key function-key-map "\C-?\e[D" [(control left)]) + (define-key function-key-map "\C-?\e[C" [(control right)]) + (define-key function-key-map "\C-?\e[A" [(control up)]) + (define-key function-key-map "\C-?\e[B" [(control 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 -Nru xemacs-21.5.20.orig/site-packages/lisp/term/xterm.el xemacs-21.5.20/site-packages/lisp/term/xterm.el --- xemacs-21.5.20.orig/site-packages/lisp/term/xterm.el 1970-01-01 01:00:00.000000000 +0100 +++ xemacs-21.5.20/site-packages/lisp/term/xterm.el 2005-05-12 14:38:20.000000000 +0200 @@ -0,0 +1,120 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; term/xterm.el for site-lisp path in xemacs-21.1.7 +;;; Copyright (c) 1996 SuSE Gmbh Nuernberg, Germany. All rights reserved. +;;; +;;; Author: Werner Fink , No warranty of any kind +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; MF-102: on linux console \033[1~ is not [(find)] but [(home)] +;; in xterm [(home)] is \033[H (app-keypad off) or \033OH (app-keypad on) +;; and [(find)] is \033[1~ +;; Note: this must be consistent with app-defaults of xterm, +;; terminfo/termcap, and all of inputrc, csh.cshrc, exrc + (define-key function-key-map "\e[1~" [(find)]) + (define-key function-key-map "\e[H" [(home)]) + (define-key function-key-map "\eOH" [(home)]) + (define-key function-key-map "\e[2~" [(insertchar)]) + (define-key function-key-map "\e[3~" [(deletechar)]) +;; MF-102: on linux console \033[4~ is not [(select)] but [(end)] +;; in xterm [(end] should be \033[F (app-keypad off) or \033OF (app-keypad on) +;; and [(select)] is \033[4~ +;; Note: this must be consistent with app-defaults of xterm, +;; terminfo/termcap, and all of inputrc, csh.cshrc, exrc + (define-key function-key-map "\e[4~" [(select)]) + (define-key function-key-map "\e[F" [(end)]) + (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 "\eOP" [(f1)]) + (define-key function-key-map "\eOQ" [(f2)]) + (define-key function-key-map "\eOR" [(f3)]) + (define-key function-key-map "\eOS" [(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~" [(meta help)]) + (define-key function-key-map "\e?\e[29~" [(meta 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 "\eOE" [(begin)]) +;; +;; Locked num block +;; kp-f1 .. kp-f4 and kp-tab not found on MF-102 +;; For xterm on xfree we use f1 .. f4, see above +; (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" [(meta left)]) + (define-key function-key-map "\e\eOC" [(meta right)]) + (define-key function-key-map "\e\eOA" [(meta up)]) + (define-key function-key-map "\e\eOB" [(meta down)]) +;; +;; Not in Use? + (define-key function-key-map "\C-?\eOD" [(control left)]) + (define-key function-key-map "\C-?\eOC" [(control right)]) + (define-key function-key-map "\C-?\eOA" [(control up)]) + (define-key function-key-map "\C-?\eOB" [(control down)]) + (define-key function-key-map "\eO5D" [(control left)]) + (define-key function-key-map "\eO5C" [(control right)]) + (define-key function-key-map "\eO5A" [(control up)]) + (define-key function-key-map "\eO5B" [(control 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 xterm.el diff -Nru xemacs-21.5.20.orig/src/Makefile.in.in xemacs-21.5.20/src/Makefile.in.in --- xemacs-21.5.20.orig/src/Makefile.in.in 2005-03-10 10:05:52.000000000 +0100 +++ xemacs-21.5.20/src/Makefile.in.in 2005-05-12 14:38:20.000000000 +0200 @@ -555,7 +555,7 @@ else \ $(CC) -c $(cflags) -DMAX_SIZE=0 $(SRC)/dump-data.c ;\ fi - $(LD) $(start_flags) $(ldflags) -o $@ $(start_files) $(objs) $(otherobjs) $(DUMP_ID) dump-data.o $(LIBES) + $(LD) $(start_flags) -Wl,-rpath-link,/usr/X11R6/lib $(ldflags) -o $@ $(start_files) $(objs) $(otherobjs) $(DUMP_ID) dump-data.o $(LIBES) #endif ## (3) Update the .elc's needed for dumping @@ -585,7 +585,7 @@ $(TEMACS_BATCH) -l $(LISP)/make-docfile.el -- \ -o $(LIB_SRC)/DOC -d $(SRC) -i $(LIB_SRC)/../site-packages \ $(obj_src) $(mallocdocsrc) $(rallocdocsrc) \ - $(extra_doc_files) ; fi + $(extra_doc_files) ${lispdir}disp-table.elc ; fi ## (5) Dump diff -Nru xemacs-21.5.20.orig/src/print.c xemacs-21.5.20/src/print.c --- xemacs-21.5.20.orig/src/print.c 2005-01-25 00:34:05.000000000 +0100 +++ xemacs-21.5.20/src/print.c 2005-05-12 14:38:20.000000000 +0200 @@ -1084,6 +1084,40 @@ Ibyte *cp, c; int width; + /* Check for plus infinity in a way that won't lose + if there is no plus infinity. */ + if (data == data / 2 && data > 1.0) + { + strcpy (buf, "1.0e+INF"); + return; + } + /* Likewise for minus infinity. */ + if (data == data / 2 && data < -1.0) + { + strcpy (buf, "-1.0e+INF"); + return; + } + /* Check for NaN in a way that won't fail if there are no NaNs. */ + if (! (data * 0.0 >= 0.0)) + { + /* Prepend "-" if the NaN's sign bit is negative. + The sign bit of a double is the bit that is 1 in -0.0. */ + int i; + double zero = 0.0; + union { double d; char c[sizeof (double)]; } u_data, u_minus_zero; + u_data.d = data; + u_minus_zero.d = - zero; + for (i = 0; i < sizeof (double); i++) + if (u_data.c[i] & u_minus_zero.c[i]) + { + *buf++ = '-'; + break; + } + + strcpy (buf, "0.0e+NaN"); + return; + } + if (NILP (Vfloat_output_format) || !STRINGP (Vfloat_output_format)) lose: diff -Nru xemacs-21.5.20.orig/src/regex.c xemacs-21.5.20/src/regex.c --- xemacs-21.5.20.orig/src/regex.c 2005-03-09 05:59:31.000000000 +0100 +++ xemacs-21.5.20/src/regex.c 2005-05-12 14:38:20.000000000 +0200 @@ -1154,6 +1154,9 @@ syntax, so it can be changed between regex compilations. */ /* This has no initializer because initialized variables in Emacs become read-only after dumping. */ +#ifdef __linux__ /* libc and glibc including this */ +extern +#endif reg_syntax_t re_syntax_options; diff -Nru xemacs-21.5.20.orig/src/s/linux.h xemacs-21.5.20/src/s/linux.h --- xemacs-21.5.20.orig/src/s/linux.h 2002-08-12 16:45:34.000000000 +0200 +++ xemacs-21.5.20/src/s/linux.h 2005-05-12 14:38:20.000000000 +0200 @@ -25,6 +25,7 @@ #define USG #define LINUX +#define I18N2 /* powerpc gcc 2.8.0 doesn't define __ELF__, but it is */ diff -Nru xemacs-21.5.20.orig/suse/README.SuSE xemacs-21.5.20/suse/README.SuSE --- xemacs-21.5.20.orig/suse/README.SuSE 1970-01-01 01:00:00.000000000 +0100 +++ xemacs-21.5.20/suse/README.SuSE 2005-05-12 14:38:20.000000000 +0200 @@ -0,0 +1,18 @@ + + XEmacs-21.5.16 + + * Sie finden eine Referenz-Karte im Verzeichnis etc/ + in der Datei refcard.ps, die Sie ausdrucken können. + + * Weitere Hilfe zum XEmacs findet sich ebenfalls unter etc/ + und natürlich auch Online im Editor selbst im Help-Menü. + +--- + + * You find a reference card refcard.ps in the directory etc/ + which can be printed. + + * More help for XEmacs will can be found in etc/ and + clearly online in the menu help + +