SHA256
1
0
forked from pool/xemacs

- Drop dependency on fwnndev: fwnn is dead and unmaintained.

OBS-URL: https://build.opensuse.org/package/show/M17N/xemacs?expand=0&rev=120
This commit is contained in:
Hillwood Yang 2024-07-06 07:17:41 +00:00 committed by Git OBS Bridge
commit 2804065d97
44 changed files with 5497 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

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

52
bnc502716-fontmenu.patch Normal file
View File

@ -0,0 +1,52 @@
--- lisp/x-font-menu.el
+++ lisp/x-font-menu.el 2009-06-17 13:00:28.066568736 +0000
@@ -166,6 +166,17 @@ It must be set at run-time.")
(setcdr dev-cache data)
data))
+(defun vassoc-ignore-case (key valist)
+ "Search VALIST for a vector whose first element is equal to KEY,
+but ignores differences in case and text representation.
+See also `assoc-ignore-case'."
+ ;; by Stig@hackvan.com
+ (let (el)
+ (catch 'done
+ (while (setq el (pop valist))
+ (and (compare-strings key 0 nil (aref el 0) 0 nil t)
+ (throw 'done el))))))
+
(defun x-reset-device-font-menus-core (device &optional debug)
"Generates the `Font', `Size', and `Weight' submenus for the Options menu.
This is run the first time that a font-menu is needed for each device.
@@ -202,7 +213,7 @@ or if you change your font path, you can
(error "internal error"))
(setq monospaced-p (string= "m" (match-string 1 name)))
(unless (string-match x-fonts-menu-junk-families family)
- (setq entry (or (vassoc family cache)
+ (setq entry (or (vassoc-ignore-case family cache)
(car (setq cache
(cons (vector family nil nil t)
cache)))))
@@ -309,7 +320,7 @@ or if you change your font path, you can
(family (and pattern
(fc-pattern-get-family pattern 0))))
(if (fc-pattern-get-successp family)
- (setq entry (vassoc family (aref dcache 0))))
+ (setq entry (vassoc-ignore-case family (aref dcache 0))))
(if (null entry)
(make-vector 5 nil)
(let ((weight (fc-pattern-get-weight pattern 0))
@@ -338,11 +349,11 @@ or if you change your font path, you can
family size weight entry slant)
(when (string-match x-font-regexp-foundry-and-family name)
(setq family (capitalize (match-string 1 name)))
- (setq entry (vassoc family (aref dcache 0))))
+ (setq entry (vassoc-ignore-case family (aref dcache 0))))
(when (and (null entry)
(string-match x-font-regexp-foundry-and-family truename))
(setq family (capitalize (match-string 1 truename)))
- (setq entry (vassoc family (aref dcache 0))))
+ (setq entry (vassoc-ignore-case family (aref dcache 0))))
(if (null entry)
(make-vector 5 nil)

66
bnc502716-xft.patch Normal file
View File

@ -0,0 +1,66 @@
--- lisp/cus-face.el
+++ lisp/cus-face.el 2009-06-17 11:35:21.427694043 +0000
@@ -236,19 +236,20 @@ If FRAME is nil, use the default face."
(and spec (vector spec) (aref spec 0))))
;; This consistently fails to dtrt
-;;(defun custom-set-face-font-size (face size &optional locale tags)
-;; "Set the font of FACE to SIZE."
-;; ;; #### should this call have tags in it?
-;; (let* ((font (apply 'face-font-name face (list locale)))
-;; ;; Gag
-;; (fontobj (font-create-object font)))
-;; (set-font-size fontobj size)
-;; (apply 'font-set-face-font face fontobj locale tags)))
-
-;; From Jan Vroonhof -- see faces.el
(defun custom-set-face-font-size (face size &optional locale tags)
"Set the font of FACE to SIZE."
- (make-face-size face size locale tags))
+ ;; #### should this call have tags in it?
+ (let* ((font (apply 'face-font-name face (list locale)))
+ ;; Gag
+ (fontobj (font-create-object font)))
+ (make-face-size face size locale tags)
+ (set-font-size fontobj size)
+ (apply 'font-set-face-font face fontobj locale tags)))
+
+;; From Jan Vroonhof -- see faces.el
+;;(defun custom-set-face-font-size (face size &optional locale tags)
+;; "Set the font of FACE to SIZE."
+;; (make-face-size face size locale tags))
(defun custom-face-font-size (face &rest args)
"Return the size of the font of FACE as a string."
@@ -258,19 +259,20 @@ If FRAME is nil, use the default face."
(format "%s" (font-size fontobj))))
;; Jan suggests this may not dtrt
-;;(defun custom-set-face-font-family (face family &optional locale tags)
-;; "Set the font of FACE to FAMILY."
-;; ;; #### should this call have tags in it?
-;; (let* ((font (apply 'face-font-name face (list locale)))
-;; ;; Gag
-;; (fontobj (font-create-object font)))
-;; (set-font-family fontobj family)
-;; (apply 'font-set-face-font face fontobj locale tags)))
-
-;; From Jan Vroonhof -- see faces.el
(defun custom-set-face-font-family (face family &optional locale tags)
"Set the font of FACE to FAMILY."
- (make-face-family face family locale tags))
+ ;; #### should this call have tags in it?
+ (let* ((font (apply 'face-font-name face (list locale)))
+ ;; Gag
+ (fontobj (font-create-object font)))
+ (make-face-family face family locale tags)
+ (set-font-family fontobj family)
+ (apply 'font-set-face-font face fontobj locale tags)))
+
+;; From Jan Vroonhof -- see faces.el
+;;(defun custom-set-face-font-family (face family &optional locale tags)
+;; "Set the font of FACE to FAMILY."
+;; (make-face-family face family locale tags))
(defun custom-face-font-family (face &rest args)
"Return the name of the font family of FACE."

View File

@ -0,0 +1,22 @@
Index: xemacs-21.5.29/lisp/x-faces.el
===================================================================
--- xemacs-21.5.29.orig/lisp/x-faces.el
+++ xemacs-21.5.29/lisp/x-faces.el
@@ -198,7 +198,7 @@ If it fails, it returns nil."
(fc-name-parse font))))
(if pattern
(let ((size (fc-pattern-get-size pattern 0))
- (copy (fc-copy-pattern-partial pattern (list "family"))))
+ (copy (fc-copy-pattern-partial pattern (list "family" "slant"))))
(fc-pattern-del-weight copy)
(fc-pattern-del-style copy)
(when copy
@@ -272,7 +272,7 @@ If it fails, it returns nil."
(fc-name-parse font))))
(if pattern
(let ((size (fc-pattern-get-size pattern 0))
- (copy (fc-copy-pattern-partial pattern (list "family"))))
+ (copy (fc-copy-pattern-partial pattern (list "family" "weight"))))
(when copy
(fc-pattern-del-slant copy)
(fc-pattern-del-style copy)

View File

@ -0,0 +1,40 @@
Index: xemacs-21.5.29/src/mule-ccl.c
===================================================================
--- xemacs-21.5.29.orig/src/mule-ccl.c
+++ xemacs-21.5.29/src/mule-ccl.c
@@ -1612,7 +1612,7 @@ ccl_driver (struct ccl_program *ccl,
Lisp_Object map, content, attrib, value;
int point, size, fin_ic;
- j = XCHAR_OR_FIXNUM (ccl_prog[ic++]); /* number of maps. */
+ j = XCHAR_OR_FIXNUM (ccl_prog[ic]); ic++; /* number of maps. */
fin_ic = ic + j;
op = reg[rrr];
if ((j > reg[RRR]) && (j >= 0))
@@ -1630,7 +1630,7 @@ ccl_driver (struct ccl_program *ccl,
for (;i < j;i++)
{
size = XVECTOR (Vcode_conversion_map_vector)->size;
- point = XCHAR_OR_FIXNUM (ccl_prog[ic++]);
+ point = XCHAR_OR_FIXNUM (ccl_prog[ic]); ic++;
if (point >= size) continue;
map =
XVECTOR (Vcode_conversion_map_vector)->contents[point];
@@ -1727,7 +1727,7 @@ ccl_driver (struct ccl_program *ccl,
stack_idx_of_map_multiple = 0;
map_set_rest_length =
- XCHAR_OR_FIXNUM (ccl_prog[ic++]); /* number of maps and separators. */
+ XCHAR_OR_FIXNUM (ccl_prog[ic]); ic++; /* number of maps and separators. */
fin_ic = ic + map_set_rest_length;
op = reg[rrr];
@@ -1914,7 +1914,7 @@ ccl_driver (struct ccl_program *ccl,
{
Lisp_Object map, attrib, value, content;
int size, point;
- j = XCHAR_OR_FIXNUM (ccl_prog[ic++]); /* map_id */
+ j = XCHAR_OR_FIXNUM (ccl_prog[ic]); ic++; /* map_id */
op = reg[rrr];
if (j >= XVECTOR (Vcode_conversion_map_vector)->size)
{

20
check-build.sh Normal file
View File

@ -0,0 +1,20 @@
#!/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
exit 0

View File

@ -0,0 +1,15 @@
Index: xemacs-21.5.29/lisp/files.el
===================================================================
--- xemacs-21.5.29.orig/lisp/files.el
+++ xemacs-21.5.29/lisp/files.el
@@ -166,7 +166,9 @@ This variable is relevant only if `backu
Checks for files in the directory returned by `temp-directory' or specified
by `small-temporary-file-directory'."
(let ((temporary-file-directory (temp-directory)))
- (not (or (let ((comp (compare-strings temporary-file-directory 0 nil
+ (not (or (null name)
+ (string-match "^/tmp/" name)
+ (let ((comp (compare-strings temporary-file-directory 0 nil
name 0 nil)))
;; Directory is under temporary-file-directory.
(and (not (eq comp t))

View File

@ -0,0 +1,13 @@
Index: lisp/cus-edit.el
===================================================================
--- lisp/cus-edit.el.orig
+++ lisp/cus-edit.el
@@ -1395,7 +1395,7 @@ item in another window.\n\n"))
(defface custom-modified-face '((((class color))
(:foreground "white" :background "blue"))
(t
- (:italic t :bold)))
+ (:italic t :bold t)))
"Face used when the customize item has been modified."
:group 'custom-magic-faces)

29
fix-load-history.el Normal file
View File

@ -0,0 +1,29 @@
;;; -*- mode: emacs-lisp -*-
;;; fix up the load-history to make it possible to use find-function
;;; on functions which are in dumped lisp files, even if XEmacs was not
;;; dumped at the place where it is finally running.
;;;
;;; Suggested by Jeff Mincy <jeff@delphioutpost.com>, see:
;;;
;;; http://list-archive.xemacs.org/xemacs-design/200204/msg00365.html
;;;
;;; Test whether this works by evaluating (find-function 'next-line)
;;;
(defvar suse-build-directory
(let ((dumped-file (symbol-file 'next-line)))
(and lisp-directory
(file-directory-p lisp-directory)
dumped-file
(not (file-exists-p dumped-file))
(string-match "^\\(.*[/\\]lisp[/\\]\\)" dumped-file)
(substring dumped-file (match-beginning 1) (match-end 1))))
"The directory that is stored in load-history for dumped files")
(when suse-build-directory
(eval-after-load 'find-func
(dolist (entry load-history)
(when (string-match (regexp-quote suse-build-directory) (car entry))
(setcar entry (replace-match lisp-directory t t (car entry)))))))

108
menus-always-utf8.patch Normal file
View File

@ -0,0 +1,108 @@
Index: xemacs-21.5.31/lwlib/xlwmenu.c
===================================================================
--- xemacs-21.5.31/lwlib/xlwmenu.c
+++ xemacs-21.5.31/lwlib/xlwmenu.c
@@ -108,7 +108,7 @@ xlwMenuResources[] =
/* We must use an iso8859-1 font here, or people without $LANG set lose.
It's fair to assume that those who do have $LANG set also have the
*fontList resource set, or at least know how to deal with this. */
- XtRString, (XtPointer) "-*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-1"),
+ XtRString, (XtPointer) "-*-helvetica-bold-r-*--*-120-*-*-*-*-*-*"),
#else
fontres (XtNfont, XtCFont, XtRFontStruct, XFontStruct *, font,
"XtDefaultFont"),
@@ -343,12 +343,12 @@ string_width (XlwMenuWidget mw,
#else
# ifdef USE_XFONTSET
XRectangle ri, rl;
- XmbTextExtents (mw->menu.font_set, s, strlen (s), &ri, &rl);
+ Xutf8TextExtents (mw->menu.font_set, s, strlen (s), &ri, &rl);
return rl.width;
# else
#ifdef HAVE_XFT_MENUBARS
XGlyphInfo glyphinfo;
- XftTextExtents8 (XtDisplay (mw), mw->menu.renderFont, (FcChar8 *) s,
+ XftTextExtentsUtf8 (XtDisplay (mw), mw->menu.renderFont, (FcChar8 *) s,
strlen (s), &glyphinfo);
return glyphinfo.xOff;
#else
@@ -435,11 +435,11 @@ string_width_u (XlwMenuWidget mw,
return width;
#else
# ifdef USE_XFONTSET
- XmbTextExtents (mw->menu.font_set, newchars, j, &ri, &rl);
+ Xutf8TextExtents (mw->menu.font_set, newchars, j, &ri, &rl);
return rl.width;
# else /* ! USE_XFONTSET */
#ifdef HAVE_XFT_MENUBARS
- XftTextExtents8 (XtDisplay (mw), mw->menu.renderFont, (FcChar8 *) newchars,
+ XftTextExtentsUtf8 (XtDisplay (mw), mw->menu.renderFont, (FcChar8 *) newchars,
j, &glyphinfo);
return glyphinfo.xOff;
#else
@@ -769,7 +769,7 @@ x_xft_text_width (Display *dpy, XftFont
{
static XGlyphInfo glyphinfo;
- XftTextExtents8 (dpy,
+ XftTextExtentsUtf8 (dpy,
xft_font,
(FcChar8 *) run, len, &glyphinfo);
return glyphinfo.xOff;
@@ -816,12 +816,12 @@ string_draw (XlwMenuWidget mw,
x_xft_text_width (display, renderFont, string, strlen (string)),
renderFont->ascent + renderFont->descent); /* XXX */
/* draw text */
- XftDrawString8 (xftDraw, color, renderFont, x, y + mw->menu.font_ascent,
+ XftDrawStringUtf8 (xftDraw, color, renderFont, x, y + mw->menu.font_ascent,
(FcChar8 *) string, strlen (string));
XftDrawDestroy (xftDraw);
# else
# ifdef USE_XFONTSET
- XmbDrawString (XtDisplay (mw), window, mw->menu.font_set, gc,
+ Xutf8DrawString (XtDisplay (mw), window, mw->menu.font_set, gc,
x, y + mw->menu.font_ascent, string, strlen (string));
# else
XDrawString (XtDisplay (mw), window, gc,
@@ -877,10 +877,10 @@ string_draw_range (
if (end <= start)
return 0;
- XmbDrawString (
+ Xutf8DrawString (
XtDisplay (mw), window, mw->menu.font_set, gc,
x, y + mw->menu.font_ascent, &string[start], end - start);
- XmbTextExtents (
+ Xutf8TextExtents (
mw->menu.font_set, &string[start], end - start, &ri, &rl);
return rl.width;
# else
@@ -903,12 +903,12 @@ string_draw_range (
renderFont, &string[start], end - start),
renderFont->ascent + renderFont->descent); /* XXX */
/* draw text */
- XftDrawString8 (xftDraw, color, renderFont,
+ XftDrawStringUtf8 (xftDraw, color, renderFont,
x, y + mw->menu.font_ascent,
(FcChar8 *) &string[start], end - start);
- XftTextExtents8 (display, renderFont, (FcChar8 *) &string[start],
- end - start, &glyphinfo);
+ XftTextExtentsUtf8 (display, renderFont, (FcChar8 *) &string[start],
+ end - start, &glyphinfo);
/* #### should use parent frame's .xftDraw */
XftDrawDestroy (xftDraw);
Index: xemacs-21.5.31/src/faces.c
===================================================================
--- xemacs-21.5.31/src/faces.c
+++ xemacs-21.5.31/src/faces.c
@@ -2484,7 +2484,7 @@ complex_vars_of_faces (void)
Fcons
(Fcons
(list1 (device_symbol),
- build_ascstring ("-*-lucidatypewriter-medium-r-*-*-*-120-*-*-*-*-*-*")),
+ build_ascstring ("-*-fixed-medium-r-*--*-120-*-*-*-*-*-*")),
inst_list);
#endif /* !HAVE_XFT */

23
reproducible.patch Normal file
View File

@ -0,0 +1,23 @@
Date: 2017-08-16
Author: Bernhard M. Wiedemann <bwiedemann suse de>
drop timestamp and build host name from .elc files
Index: xemacs-21.5.34/lisp/bytecomp.el
===================================================================
--- xemacs-21.5.34.orig/lisp/bytecomp.el
+++ xemacs-21.5.34/lisp/bytecomp.el
@@ -2156,11 +2156,8 @@ docstrings code.")
finally return res)))
(setq comments
(with-string-as-buffer-contents ""
- (insert "\n;;; compiled by "
- (or (and (boundp 'user-mail-address) user-mail-address)
- (concat (user-login-name) "@" (system-name)))
- " on "
- (current-time-string) "\n;;; from file " filename "\n")
+ (insert "\n;;; compiled"
+ "\n;;; from file " filename "\n")
(insert ";;; emacs version " emacs-version ".\n")
(insert ";;; bytecomp version " byte-compile-version "\n;;; "
(cond

View File

@ -0,0 +1,87 @@
Index: xemacs-21.5.29/lisp/mule/chinese.el
===================================================================
--- xemacs-21.5.29.orig/lisp/mule/chinese.el
+++ xemacs-21.5.29/lisp/mule/chinese.el
@@ -223,7 +223,24 @@ G2: Sisheng (PinYin - ZhuYin)"
(set-language-info-alist
"Chinese-GB" '((setup-function . setup-chinese-gb-environment-internal)
- (charset chinese-gb2312 chinese-sisheng)
+ (charset ascii
+ latin-iso8859-1
+ latin-iso8859-2
+ latin-iso8859-3
+ latin-iso8859-4
+ latin-iso8859-15
+ 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)
(coding-system cn-gb-2312 iso-2022-7bit hz-gb-2312)
(coding-priority cn-gb-2312 big5 iso-2022-7bit)
(cygwin-locale "zh")
@@ -297,7 +314,24 @@ of a Chinese character\"."))
(set-charset-ccl-program 'chinese-big5-2 'ccl-encode-big5-font)
(set-language-info-alist
- "Chinese-BIG5" '((charset chinese-big5-1 chinese-big5-2)
+ "Chinese-BIG5" '((charset ascii
+ latin-iso8859-1
+ latin-iso8859-2
+ latin-iso8859-3
+ latin-iso8859-4
+ latin-iso8859-15
+ 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)
(coding-system big5 iso-2022-7bit)
(coding-priority big5 cn-gb-2312 iso-2022-7bit)
(cygwin-locale "zh_TW")
Index: xemacs-21.5.29/lisp/mule/japanese.el
===================================================================
--- xemacs-21.5.29.orig/lisp/mule/japanese.el
+++ xemacs-21.5.29/lisp/mule/japanese.el
@@ -378,8 +378,24 @@ a similar structure:
"Japanese" '((setup-function . setup-japanese-environment-internal)
(exit-function . exit-japanese-environment)
(tutorial . "TUTORIAL.ja")
- (charset japanese-jisx0208 japanese-jisx0208-1978
- japanese-jisx0212 latin-jisx0201 katakana-jisx0201)
+ (charset ascii
+ latin-iso8859-1
+ latin-iso8859-2
+ latin-iso8859-3
+ latin-iso8859-4
+ latin-iso8859-15
+ 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)
(coding-system iso-2022-jp euc-jp
shift-jis iso-2022-jp-2)
(coding-priority iso-2022-jp euc-jp

View File

@ -0,0 +1,17 @@
Index: xemacs-21.5.29/src/intl.c
===================================================================
--- xemacs-21.5.29.orig/src/intl.c
+++ xemacs-21.5.29/src/intl.c
@@ -84,8 +84,10 @@ Otherwise, returns the locale, or possib
#ifdef HAVE_X_WINDOWS
if (!init_x_locale (locale))
{
- /* Locale not supported under X. Put it back. */
- setlocale (LC_ALL, loc);
+ /* Locale not supported under X. Set locale to "C" and print a warning. */
+ warn_when_safe (Qwarning, Qwarning,
+ "locale not supported by Xlib, setting locale to C.");
+ setlocale (LC_ALL, "C");
setlocale (LC_NUMERIC, "C");
free (loc);
return Qnil;

454
site-start.el Normal file
View File

@ -0,0 +1,454 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; 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 <werner@suse.de>, 1999
;;; Mike Fabian <mfabian@suse.de>, 2004, 2005
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq load-path (delete (concat lisp-directory
"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)
;;
;; Enable mouse wheel support
;;
(when window-system
(mwheel-install))
;; Let gnus save articles in mbox format
(defvar gnus-default-article-saver 'gnus-summary-save-in-file)
;; This system use terminfo
(defvar system-uses-terminfo t)
;; Syntax highlighting
(when (fboundp 'turn-on-lazy-lock)
(require 'font-lock)
;; use lazy-lock by default if lazy-shot is not enabled
(remove-hook 'font-lock-mode-hook 'turn-on-lazy-lock)
(add-hook 'font-lock-mode-hook
(function
(lambda ()
(unless (and (boundp 'lazy-shot-mode) lazy-shot-mode)
(turn-on-lazy-lock))))
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'.
;; create missing UTF-8 language environments:
(mapcar
(lambda (x)
(let ((langenv (car x)))
(if (not (string-match "UTF-8" langenv))
(create-variant-language-environment langenv 'utf-8))))
language-info-alist)
(set-language-unicode-precedence-list
(get-language-info current-language-environment 'charset))
;; (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 (coding-system-category (intern tmp))
;; if coding-system-category is nil the coding-system is
;; no-conversion or undecided and prefer-coding system would
;; fail.
(progn (prefer-coding-system (intern tmp))
(if (fboundp 'latin-unity-install) (latin-unity-install))))
(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:
;; (according to Aidan, file-name-coding-system is ignored for
;; XEmacs >= 21.5.26. One may use
;; (define-coding-system-alias 'file-name 'utf-8)
;; instead but even this should not be necessary if
;; LC_CTYPE is already an UTF-8 locale).
(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))))))
(if load-user-init-file-p
(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.
;; This hack is not needed anymore, something similar has been
;; implemented upstream.
;; Keeping this hack enabled causes problems, for example it often
;; causes error messages when trying to attach .pdf files in Gnus.
;; Therefore I comment it out.
;; Mon Feb 23 12:20:01 2009 <mike.fabian@gmx.de>
;; (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))
;; ))
(if (and (boundp 'xft-version) (eq window-system 'x))
(load "suse-xft-init.el" t t))
;;;;;;;;;;
;; the end

37
skel.init.el Normal file
View File

@ -0,0 +1,37 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; File name: ` ~/.xemacs/init.el '
;;; ---------------------
;;;
;;; Copyright (c) 2002,2015 SuSE Gmbh Nuernberg, Germany.
;;;
;;; Author: Werner Fink, <feedback@suse.de> 2002,2015
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Load custom file
;; ----------------
(setq custom-file "~/.xemacs/custom.el")
(load-options-file custom-file)
;;
;; More coding systems (UNICODE)
;; -----------------------------
(if (locate-library "un-define") (require 'un-define))
;;
;; Remember font and more settings
;; -------------------------------
(setq options-save-faces t)
;;
;; Load AucTeX by default
;; ----------------------
(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/")
;;;

122
suse-xft-init.el Normal file
View File

@ -0,0 +1,122 @@
;;; -*- mode: emacs-lisp -*-
;;; Fri Jul 13 20:43:53 2007 Mike FABIAN <mfabian@suse.de>
(setq xft-debug-level 0) ;; default is 1. Set to 0 to suppress all warnings
(setq suse-xft-lang-tags
(list "ar"
"en"
"de"
"he"
"ko"
"zh-TW"
"zh-CN"
"ja"
"th"
"vi"))
(mapcar (lambda (x) (define-specifier-tag (intern x))) suse-xft-lang-tags)
(defun suse-xft-find-font-for-tag (tag)
"uses fc-match to find a suitable font for tag"
(let* ((fc-match-result (shell-command-to-string
(format "fc-match monospace:lang=%s" tag)))
(family (nth 1 (split-string fc-match-result "\"")))
(style (nth 3 (split-string fc-match-result "\""))))
(format "%s:style=%s" family style)))
(defun suse-xft-make-fonts-alist (tags)
"returns an alist of with the tags as keys and suitable fonts as values"
(let ((fonts-alist nil))
(mapcar
(lambda (x)
(setq fonts-alist
(cons (cons x (suse-xft-find-font-for-tag x))
fonts-alist)))
tags)
(reverse fonts-alist)))
(setq suse-xft-fonts-alist (suse-xft-make-fonts-alist suse-xft-lang-tags))
;; tune the defaults returned by fc-match according to taste:
;; For example, I prefer "DejaVu Sans Mono" as the standard
;; font even if another font is the default for "monospace"
;; because "DejaVu Sans Mono" has a lot more special symbols
;; than most other monospaced fonts.
(if (not (equal "" (shell-command-to-string "fc-list \"DejaVu Sans Mono\"")))
(setf (cdr (assoc "en" suse-xft-fonts-alist)) "DejaVu Sans Mono"))
(defun suse-xft-set-all-faces (size)
"tries to set reasonable fonts for all faces"
(interactive "nnew size for all faces: ")
(setq suse-xft-current-size size)
(when (console-on-window-system-p)
(mapcar
(lambda (face)
(progn
;; first set the English font as the standard font for all faces
(set-face-font face
(format "%s:size=%d"
(cdr (assoc "en" suse-xft-fonts-alist))
size)
'global
nil
'remove-all)
;; then append the fonts for the other languages
(mapcar
(lambda (tag)
(set-face-font face
(format "%s:size=%d"
(cdr (assoc tag suse-xft-fonts-alist))
size)
'global
(list (intern tag))
'remove-tag-set-append))
suse-xft-lang-tags)
(if (string-match "bold-italic" (symbol-name face))
(make-face-bold-italic face)
(if (string-match "bold" (symbol-name face))
(make-face-bold face))
(if (string-match "italic" (symbol-name face))
(make-face-italic face)))
(when (fboundp 'custom-face-get-spec)
(if (and (eq t (plist-get (cadr (assoc t (custom-face-get-spec face))) :bold))
(eq t (plist-get (cadr (assoc t (custom-face-get-spec face))) :italic)))
(make-face-bold-italic face)
(if (and (eq 'bold (plist-get (cadr (assoc t (custom-face-get-spec face))) :weight))
(eq 'italic (plist-get (cadr (assoc t (custom-face-get-spec face))) :slant)))
(make-face-bold-italic face)
(if (eq 'bold (plist-get (cadr (assoc t (custom-face-get-spec face))) :weight))
(make-face-bold face))
(if (eq 'italic (plist-get (cadr (assoc t (custom-face-get-spec face))) :slant))
(make-face-italic face))
(if (eq t (plist-get (cadr (assoc t (custom-face-get-spec face))) :bold))
(make-face-bold face))
(if (eq t (plist-get (cadr (assoc t (custom-face-get-spec face))) :italic))
(make-face-italic face)))))
))
(face-list))))
(defun suse-xft-set-size (size)
(interactive "nset all fonts to point-size: ")
(setq suse-xft-current-size size)
(if (> 1 suse-xft-current-size)
(setq suse-xft-current-size 1))
(suse-xft-set-all-faces suse-xft-current-size))
(defun suse-xft-change-size (delta)
(interactive "nsize change in point (may be negative): ")
(setq suse-xft-current-size (+ delta suse-xft-current-size))
(if (> 1 suse-xft-current-size)
(setq suse-xft-current-size 1))
(suse-xft-set-all-faces suse-xft-current-size))
(setq suse-xft-current-size 12)
(suse-xft-set-all-faces suse-xft-current-size)

60
xe-list.el Normal file
View File

@ -0,0 +1,60 @@
(defvar xe-list-file-name "xe-list")
(defun xe-list-find-el (&optional buffer)
(interactive)
(let ((el-with-elc)
(el-without-elc))
(save-excursion
(if buffer
(set-buffer buffer))
(goto-char (point-min))
(while (re-search-forward "^\\(.*\\.el\\)$" nil t)
(let ((el (match-string 1)))
(save-excursion
(goto-char (point-min))
(if (re-search-forward (concat "^" (regexp-quote el) "c$") nil t)
(setq el-with-elc (cons el el-with-elc))
(setq el-without-elc (cons el el-without-elc)))))))
(list (nreverse el-with-elc) (nreverse el-without-elc))))
(defun xe-list-find-elc (&optional buffer)
(interactive)
(let ((elc-with-el)
(elc-without-el))
(save-excursion
(if buffer
(set-buffer buffer))
(goto-char (point-min))
(while (re-search-forward "^\\(.*\\.elc\\)$" nil t)
(let ((elc (match-string 1))
(el (replace-in-string (match-string 1) "\\.elc$" ".el")))
(save-excursion
(goto-char (point-min))
(if (re-search-forward (concat "^" (regexp-quote el) "$") nil t)
(setq elc-with-el (cons elc elc-with-el))
(setq elc-without-el (cons elc elc-without-el)))))))
(list (nreverse elc-with-el) (nreverse elc-without-el))))
(defun xe-list-write-list-to-file (list file)
(interactive)
(with-temp-buffer
(mapcar (lambda (x) (insert x) (insert "\n"))
list)
(write-file file)))
(defun xe-list-generate-list-files ()
(interactive)
(let ((el-lists)
(elc-lists))
(find-file xe-list-file-name)
(setq el-lists (xe-list-find-el xe-list-file-name))
(setq elc-lists (xe-list-find-elc xe-list-file-name))
(xe-list-write-list-to-file (car el-lists)
(concat xe-list-file-name "-el-with-elc"))
(xe-list-write-list-to-file (car (cdr el-lists))
(concat xe-list-file-name "-el-without-elc"))
(xe-list-write-list-to-file (car elc-lists)
(concat xe-list-file-name "-elc-with-el"))
(xe-list-write-list-to-file (car (cdr elc-lists))
(concat xe-list-file-name "-elc-without-el"))))

110
xemacs-21.4.13-ppc64.patch Normal file
View File

@ -0,0 +1,110 @@
Index: xemacs-21.5.29/src/m/powerpc64.h
===================================================================
--- /dev/null
+++ xemacs-21.5.29/src/m/powerpc64.h
@@ -0,0 +1,86 @@
+/* machine description file for PowerPC 64-bit.
+ Copyright (C) 1994, 2001, 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Emacs.
+
+GNU Emacs is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 1, or (at your option)
+any later version.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING. If not, write to
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+
+/* Now define a symbol for the cpu type, if your compiler
+ does not define it automatically:
+ Ones defined so far include vax, m68000, ns16000, pyramid,
+ orion, tahoe, APOLLO and many others */
+
+/* Use type EMACS_INT rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines. */
+
+#define NO_UNION_TYPE
+
+/* Define the type to use. */
+#define EMACS_INT long
+#define EMACS_UINT unsigned long
+#define SPECIAL_EMACS_INT
+
+/* Data type of load average, as read out of kmem. */
+
+#define LOAD_AVE_TYPE long
+
+/* Convert that into an integer that is 100 for a load average of 1.0 */
+
+#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
+
+/* Define C_ALLOCA if this machine does not support a true alloca
+ and the one written in C should be used instead.
+ Define HAVE_ALLOCA to say that the system provides a properly
+ working alloca function and it should be used.
+ Define neither one if an assembler-language alloca
+ in the file alloca.s should be used. */
+
+#define HAVE_ALLOCA
+
+/* Some really obscure 4.2-based systems (like Sequent DYNIX)
+ * do not support asynchronous I/O (using SIGIO) on sockets,
+ * even though it works fine on tty's. If you have one of
+ * these systems, define the following, and then use it in
+ * config.h (or elsewhere) to decide when (not) to use SIGIO.
+ *
+ * You'd think this would go in an operating-system description file,
+ * but since it only occurs on some, but not all, BSD systems, the
+ * reasonable place to select for it is in the machine description
+ * file.
+ */
+
+/* #define NO_SOCK_SIGIO */
+
+#if defined(__OpenBSD__)
+#define ORDINARY_LINK
+#endif
+
+#if defined (LINUX) || defined (__NetBSD__) || defined (__OpenBSD__)
+# define TEXT_END ({ extern int _etext; &_etext; })
+#endif
+
+#if (defined (__NetBSD__) || defined (__OpenBSD__)) && defined (__ELF__)
+#define HAVE_TEXT_START
+#endif
+
+#define PNTR_COMPARISON_TYPE unsigned long
+
+#undef START_FILES
+#define START_FILES pre-crt0.o /usr/lib64/crt1.o /usr/lib64/crti.o
+
+#undef LIB_STANDARD
+#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib64/crtn.o
Index: xemacs-21.5.29/src/vm-limit.c
===================================================================
--- xemacs-21.5.29.orig/src/vm-limit.c
+++ xemacs-21.5.29/src/vm-limit.c
@@ -61,6 +61,14 @@ check_memory_limits (void)
unsigned long data_size;
void (*save_warn_fun) (const char *);
+#ifdef __powerpc64__
+ /* powerpc64 has a different memory layout, which
+ * I would probably need to fake via a linker script.
+ * For now assume we cannot run out of memory.
+ */
+ return;
+#endif
+
if (lim_data == 0)
get_lim_data ();
five_percent = lim_data / 20;

View File

@ -0,0 +1,18 @@
Index: src/event-Xt.c
===================================================================
--- src/event-Xt.c.orig
+++ src/event-Xt.c
@@ -1224,8 +1224,11 @@ x_event_to_emacs_event (XEvent *x_event,
if (modifiers & XEMACS_MOD_SHIFT)
{
- int Mode_switch_p = *state & xd->ModeMask;
- KeySym bot = XLookupKeysym (ev, Mode_switch_p ? 2 : 0);
+ KeySym bot;
+ XKeyEvent tmpev = *ev;
+
+ tmpev.state = *state & (xd->ModeMask | ~0xff);
+ XLookupString(&tmpev, NULL, 0, &bot, NULL);
if (x_keysym && bot && x_keysym != bot)
modifiers &= ~XEMACS_MOD_SHIFT;
}

View File

@ -0,0 +1,72 @@
diff -ru xemacs-21.5.20.orig/lib-src/movemail.c xemacs-21.5.20/lib-src/movemail.c
--- xemacs-21.5.20.orig/lib-src/movemail.c 2005-02-14 04:40:45.000000000 +0100
+++ xemacs-21.5.20/lib-src/movemail.c 2005-05-12 12:44:12.000000000 +0200
@@ -135,7 +135,7 @@
#undef write
#undef close
-static void fatal (char *, char*);
+static void fatal (char *, char *, char *);
static void error (char *, char *, char *);
static void usage(int);
static void pfatal_with_name (char *);
@@ -309,7 +309,7 @@
#endif
if (*outname == 0)
- fatal ("Destination file name is empty", 0);
+ fatal ("Destination file name is empty", 0, 0);
VERBOSE(("checking access to output file\n"));
/* Check access to output file. */
@@ -551,7 +551,7 @@
return LOCKING;
#endif
else
- fatal("invalid lock method: %s", method_name);
+ fatal("invalid lock method: %s", method_name, 0);
return 0; /* unreached */
}
@@ -647,10 +647,10 @@
/* Print error message and exit. */
static void
-fatal (char *s1, char *s2)
+fatal (char *s1, char *s2, char *s3)
{
maybe_unlock_dot();
- error (s1, s2, NULL);
+ error (s1, s2, s3);
exit (1);
}
@@ -667,16 +667,15 @@
static void
pfatal_with_name (char *name)
{
- char *s = concat ("", strerror (errno), " for %s");
- fatal (s, name);
+ fatal ("%s for %s", strerror (errno), name);
}
static void
pfatal_and_delete (char *name)
{
- char *s = concat ("", strerror (errno), " for %s");
+ char *s = strerror (errno);
unlink (name);
- fatal (s, name);
+ fatal ("%s for %s", s, name);
}
/* Return a newly-allocated string whose contents concatenate those of s1, s2, s3. */
@@ -702,7 +701,7 @@
{
long *result = (long *) malloc (size);
if (!result)
- fatal ("virtual memory exhausted", 0);
+ fatal ("virtual memory exhausted", 0, 0);
return result;
}

View File

@ -0,0 +1,16 @@
--- src/events.c
+++ src/events.c 2012-05-31 15:13:06.832009873 +0000
@@ -1611,8 +1611,11 @@ upshift_event (Lisp_Object event)
XSET_EVENT_KEY_KEYSYM (event, make_char (c + 'A' - 'a'));
else
if (!(XEVENT_KEY_MODIFIERS (event) & XEMACS_MOD_SHIFT))
- XSET_EVENT_KEY_MODIFIERS
- (event, XEVENT_KEY_MODIFIERS (event) |= XEMACS_MOD_SHIFT);
+ {
+ Lisp_Object tmp = XEVENT_KEY_MODIFIERS (event);
+ tmp |= XEMACS_MOD_SHIFT;
+ XSET_EVENT_KEY_MODIFIERS (event, tmp);
+ }
}
void

View File

@ -0,0 +1,167 @@
---
configure | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++-
configure.ac | 33 ++++++++++++++++++++++++++++++++-
lwlib/ChangeLog | 8 ++++++++
lwlib/xt-wrappers.h | 5 +++++
src/config.h.in | 1 +
5 files changed, 96 insertions(+), 2 deletions(-)
--- configure
+++ configure 2015-05-12 00:00:00.000000000 +0000
@@ -16754,6 +16754,52 @@ fi
if test -n "$athena_lib" -a -n "$athena_h_path"; then
have_xaw=yes
+ have_athena_i18n=unset
+ if test "$athena_variant" = "Xaw3d"; then
+ save_libs_x=$libs_x
+ libs_x="-lXaw3d $libs_x" && if test "$verbose" = "yes"; then echo " Prepending \"-lXaw3d\" to \$libs_x"; fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for \"international\" resource in Xaw3d SimpleWidget" >&5
+$as_echo_n "checking for \"international\" resource in Xaw3d SimpleWidget... " >&6; }
+ if test "$cross_compiling" = yes; then :
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run test program while cross compiling
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+ #include <string.h>
+ #undef XAW_INTERNATIONALIZATION
+ #include <$athena_h_path/Simple.h>
+
+int
+main ()
+{
+int i = simpleWidgetClass->core_class.num_resources;
+ while (i-- > 0)
+ if (!strcmp(simpleWidgetClass->core_class.resources[i].resource_name,
+ "international"))
+ exit(0);
+ exit(253);
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ have_athena_i18n=yes
+else
+ have_athena_i18n=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ libs_x=$save_libs_x
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_athena_i18n" >&5
+$as_echo "$have_athena_i18n" >&6; }
+ fi
else
have_xaw=no
fi
@@ -16958,10 +17004,13 @@ _ACEOF
$as_echo "#define NEED_ATHENA 1" >>confdefs.h
need_athena="yes"
-
if test "$athena_3d" = "yes"; then
$as_echo "#define HAVE_ATHENA_3D 1" >>confdefs.h
+ if test "$have_athena_i18n" = "yes"; then
+ $as_echo "#define HAVE_ATHENA_I18N 1" >>confdefs.h
+
+ fi
fi
;;
esac
--- configure.ac
+++ configure.ac 2015-05-12 00:00:00.000000000 +0000
@@ -4028,6 +4028,35 @@ if test "$with_x11" = "yes" -a "$detect_
dnl Do we actually have a usable Athena widget set? Please?
if test -n "$athena_lib" -a -n "$athena_h_path"; then
have_xaw=yes
+ have_athena_i18n=unset
+ dnl X.org at some point added .international to SimplePart, protected
+ dnl by #ifdef XAW_INTERNATIONALIZATION in Xaw3d (only?). Unfortunately,
+ dnl the distributed headers for Xaw3d don't set this to correspond to
+ dnl the distributed library. (pkg-config does, if present.)
+ if test "$athena_variant" = "Xaw3d"; then
+ save_libs_x=$libs_x
+ XE_PREPEND(-lXaw3d, libs_x)
+ dnl The test below was provided by Ralf Soergel.
+ AC_MSG_CHECKING([for "international" resource in Xaw3d SimpleWidget])
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [#include <stdlib.h>
+ #include <string.h>
+ #undef XAW_INTERNATIONALIZATION
+ #include <$athena_h_path/Simple.h>
+ ],
+ [[int i = simpleWidgetClass->core_class.num_resources;
+ while (i-- > 0)
+ if (!strcmp(simpleWidgetClass->core_class.resources[i].resource_name,
+ "international"))
+ exit(0);
+ exit(253);
+ ]])],
+ [have_athena_i18n=yes],
+ [have_athena_i18n=no])
+ libs_x=$save_libs_x
+ AC_MSG_RESULT([$have_athena_i18n])
+ fi
else
have_xaw=no
fi
@@ -4160,9 +4189,11 @@ case "$all_widgets" in
AC_DEFINE(LWLIB_USES_ATHENA)
AC_DEFINE(NEED_ATHENA)
need_athena="yes"
-
if test "$athena_3d" = "yes"; then
AC_DEFINE(HAVE_ATHENA_3D)
+ if test "$have_athena_i18n" = "yes"; then
+ AC_DEFINE(HAVE_ATHENA_I18N)
+ fi
fi
;;
esac
--- lwlib/ChangeLog
+++ lwlib/ChangeLog 2015-05-12 00:00:00.000000000 +0000
@@ -1,3 +1,11 @@
+2015-01-08 Stephen J. Turnbull <stephen@xemacs.org>
+
+ Fix progress bar crashes.
+ Thanks to Ralf Soergel for diagnosis and a patch.
+
+ * xt-wrappers.h (HAVE_ATHENA_I18N):
+ Define XAW_INTERNATIONALIZATION when needed.
+
2013-06-23 Stephen J. Turnbull <stephen@xemacs.org>
* XEmacs 21.5.34 "kale" is released.
--- lwlib/xt-wrappers.h
+++ lwlib/xt-wrappers.h 2015-05-12 00:00:00.000000000 +0000
@@ -21,6 +21,11 @@ along with XEmacs. If not, see <http://
/* Original author: Stephen J. Turnbull for 21.5.29 */
+/* #### Factor out into xaw-wrappers (which would #include this file)? */
+#ifdef HAVE_ATHENA_I18N
+#define XAW_INTERNATIONALIZATION 1
+#endif
+
/* Generic utility macros, including coping with G++ whining.
Used in lwlib via lwlib.h and X consoles via console-x.h.
--- src/config.h.in
+++ src/config.h.in 2015-05-12 00:00:00.000000000 +0000
@@ -860,6 +860,7 @@ things are arranged in config.h.in. In
#undef LWLIB_WIDGETS_MOTIF
#undef LWLIB_WIDGETS_ATHENA
#undef HAVE_ATHENA_3D
+#undef HAVE_ATHENA_I18N
/* Other things that can be disabled by configure. */
#undef HAVE_MENUBARS

View File

@ -0,0 +1,13 @@
--- xemacs-21.5.34/src/alsaplay.c
+++ xemacs-21.5.34/src/alsaplay.c
@@ -375,6 +375,10 @@ alsa_play_sound_data (const Binbyte *dat
if ((err = snd_pcm_writei (pcm_handle, data, length)) < 0)
goto error_mixer;
+ /* Wait for it to finish */
+ if ((err = snd_pcm_drain (pcm_handle)) < 0)
+ goto error_mixer;
+
/* Put the volume back the way it used to be */
reset_volume (&mix);

View File

@ -0,0 +1,25 @@
---
src/Makefile.in.in | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
--- src/Makefile.in.in
+++ src/Makefile.in.in 2018-11-08 15:47:11.423581279 +0000
@@ -537,6 +537,9 @@ link_deps = $(start_files) $(objs) $(oth
$(LIB_SRC)/make-dump-id:
cd $(LIB_SRC) && $(MAKE) $(RECURSIVE_MAKE_ARGS) make-dump-id
+$(LIB_SRC)/insert-data-in-exec:
+ cd $(LIB_SRC) && $(MAKE) $(RECURSIVE_MAKE_ARGS) insert-data-in-exec
+
dump-id.c: $(LIB_SRC)/make-dump-id $(link_deps)
$(LIB_SRC)/make-dump-id
@@ -586,7 +589,7 @@ $(LIB_SRC)/DOC: $(LIB_SRC)/make-docfile
## (5) Dump
-$(DUMP_TARGET): $(RAW_EXE) $(BLDSRC)/NEEDTODUMP $(LIB_SRC)/DOC
+$(DUMP_TARGET): $(RAW_EXE) $(BLDSRC)/NEEDTODUMP $(LIB_SRC)/DOC $(LIB_SRC)/insert-data-in-exec
#ifdef HEAP_IN_DATA
@$(RM) $@ && touch SATISFIED
$(dump_temacs)

View File

@ -0,0 +1,38 @@
---
lisp/cus-face.el | 6 +++++-
lisp/startup.el | 2 +-
2 files changed, 6 insertions(+), 2 deletions(-)
--- lisp/cus-face.el
+++ lisp/cus-face.el 2015-07-10 10:52:20.177518702 +0000
@@ -42,6 +42,9 @@
(eval-when-compile
(require 'font))
+;; Simply to apply any custom faces
+(autoload 'initialize-custom-faces "faces")
+
;;; Declaring a face.
;;;###autoload
@@ -336,7 +339,8 @@ and non-nil, FACE will also be created a
COMMENT is a string comment about FACE.
See `defface' for the format of SPEC."
- (apply #'custom-theme-set-faces 'user args))
+ (apply #'custom-theme-set-faces 'user args)
+ (initialize-custom-faces))
;;;###autoload
(defun custom-theme-set-faces (theme &rest args)
--- lisp/startup.el
+++ lisp/startup.el 2015-07-13 11:14:12.609518333 +0000
@@ -1101,7 +1101,7 @@ exact problem."
Currently this does nothing but call `load', but it might be redefined
in the future to support automatically converting older options files to
a new format, when variables have changed, etc."
- (load filename))
+ (load filename t))
(defun command-line-1 ()
(cond

View File

@ -0,0 +1,20 @@
Author: Bernhard M. Wiedemann <bwiedemann suse de>
Date: 2023-01-14
Subject: Fix build in 2038
The UNIX Epoch needs more than 31 bits after 2038-01-19
so we extend the variable to 64 bits
Index: xemacs-21.5.34/src/buffer.h
===================================================================
--- xemacs-21.5.34.orig/src/buffer.h
+++ xemacs-21.5.34/src/buffer.h
@@ -246,7 +246,7 @@ struct buffer
-1 means visited file was nonexistent.
0 means visited file modtime unknown; in no case complain
about any mismatch on next save attempt. */
- int modtime;
+ long long modtime;
/* the value of text->modiff at the last auto-save. */
long auto_save_modified;

25
xemacs-21.5.34-gcc5.patch Normal file
View File

@ -0,0 +1,25 @@
---
src/lisp.h | 2 ++
1 file changed, 2 insertions(+)
Index: src/lisp.h
===================================================================
--- src/lisp.h.orig
+++ src/lisp.h
@@ -1154,6 +1154,8 @@ typedef int Boolint;
/* ------------------------ alignment definitions ------------------- */
+#if (!defined (__STDC_VERSION__) || __STDC_VERSION__ < 201112L) && \
+ (!defined (__cplusplus) || __cplusplus < 201103L)
/* No type has a greater alignment requirement than max_align_t.
(except perhaps for types we don't use, like long double) */
typedef union
@@ -1163,6 +1165,7 @@ typedef union
struct { void (*f)(void); } f;
struct { double d; } d;
} max_align_t;
+#endif
/* ALIGNOF returns the required alignment of a type -- i.e. a value such
that data of this type must begin at a memory address which is a

21
xemacs-21.5.34-sbrk.patch Normal file
View File

@ -0,0 +1,21 @@
--- src/gmalloc.c
+++ src/gmalloc.c 2017-03-20 15:02:35.000000000 +0000
@@ -1199,18 +1199,6 @@ along with the GNU C Library. If not, s
#include <malloc.h>
#endif
-/* #ifndef __GNU_LIBRARY__ */
-#define __sbrk sbrk
-/* #endif */
-
-#ifdef __GNU_LIBRARY__
-/* It is best not to declare this and cast its result on foreign operating
- systems with potentially hostile include files. */
-#if !(defined(linux) && defined(sparc))
-extern __ptr_t __sbrk __P ((int increment));
-#endif
-#endif
-
#ifndef NULL
#define NULL 0
#endif

View File

@ -0,0 +1,15 @@
---
src/process.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- src/process.c
+++ src/process.c 2020-10-09 07:55:43.086125891 +0000
@@ -1569,7 +1569,7 @@ const char *
signal_name (int signum)
{
if (signum >= 0 && signum < NSIG)
- return (const char *) sys_siglist[signum];
+ return (const char *) strsignal(signum);
return (const char *) GETTEXT ("unknown signal");
}

3
xemacs-21.5.34.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:33cc54a6a9a45224a64b6c57c8138b5a5f0f1be368951a6d9ec8c0aec5993ee5
size 15816932

132
xemacs-app-defaults.patch Normal file
View File

@ -0,0 +1,132 @@
Index: xemacs-21.5.29/etc/Emacs.ad
===================================================================
--- xemacs-21.5.29/etc/Emacs.ad
+++ xemacs-21.5.29/etc/Emacs.ad
@@ -65,6 +65,19 @@
! Note that by default, the pointer foreground and background are the same
! as the default face.
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Fonts for Xft ONLY:
+XEmacs*Tabs.fcFontName: sans-serif
+XEmacs*menubar.fcFontName: sans-serif:size=10
+XEmacs.modeline.attributeFont: sans-serif
+XEmacs.default.attributeFont: sans-serif
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!! FontSet for menus when you use --with-xfs or --with-xim=xlib.
+XEmacs*FontSet -*-helvetica-bold-r-*--*-120-*-*-*-*-*-*, \
+ -*-helvetica-bold-r-*--*-120-*-*-*-*-iso10646-1, \
+ *
+
! Set the menubar colors. This overrides the default foreground and
! background colors specified above.
*menubar*Foreground: Gray30
@@ -222,36 +235,36 @@
! *menubar*FontSet: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*, \
! -*-*-*-*-*-*-*-120-*-jisx0208.1983-0
!
-*menubar*Font: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*
-*popup*Font: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*
-*menubar*FontSet: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*, \
- -*-*-*-*-*-*-*-120-*-iso10646-1, \
- -*-*-*-*-*-*-*-120-*-jisx0208.1983-0, \
- -*-*-*-*-*-*-*-120-*-jisx0201.1976-0
-*popup*FontSet: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*, \
- -*-*-*-*-*-*-*-120-*-iso10646-1, \
- -*-*-*-*-*-*-*-120-*-jisx0208.1983-0, \
- -*-*-*-*-*-*-*-120-*-jisx0201.1976-0
+*menubar*Font: -*-helvetica-bold-r-*--*-120-*-*-*-*-*-*
+*popup*Font: -*-helvetica-bold-r-*--*-120-*-*-*-*-*-*
+*menubar*FontSet: -*-helvetica-bold-r-*--*-120-*-*-*-*-*-*, \
+ -*-*-*-*-*--*-120-*-iso10646-1, \
+ -*-*-*-*-*--*-120-*-jisx0208.1983-0, \
+ -*-*-*-*-*--*-120-*-jisx0201.1976-0
+*popup*FontSet: -*-helvetica-bold-r-*--*-120-*-*-*-*-*-*, \
+ -*-*-*-*-*--*-120-*-iso10646-1, \
+ -*-*-*-*-*--*-120-*-jisx0208.1983-0, \
+ -*-*-*-*-*--*-120-*-jisx0201.1976-0
! Gui elements share this font
!
-Emacs.gui-element.attributeFont: -*-helvetica-medium-r-*-*-*-120-*-*-*-*-iso8859-*
+Emacs.gui-element.attributeFont: -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*
! Font in the Motif dialog boxes.
! (Motif uses `fontList' while most other things use `font' - if you don't
! know why you probably don't want to.)
!
-*XmDialogShell*FontList: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*
-*XmTextField*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*
-*XmText*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*
-*XmList*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*
+*XmDialogShell*FontList: -*-helvetica-bold-r-*--*-120-*-*-*-*-*-*
+*XmTextField*FontList: -*-fixed-medium-r-*--*-120-*-*-*-*-*-*
+*XmText*FontList: -*-fixed-medium-r-*--*-120-*-*-*-*-*-*
+*XmList*FontList: -*-fixed-medium-r-*--*-120-*-*-*-*-*-*
! Font in the Athena dialog boxes.
! I think 14-point looks nicer than 12-point.
! Some people use 12-point anyway because you get more text, but
! there's no purpose at all in doing this for dialog boxes.
-*Dialog*Font: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-*
+*Dialog*Font: -*-helvetica-bold-r-*--*-140-*-*-*-*-*-*
! Dialog box translations.
! =======================
Index: xemacs-21.5.29/etc/sample.Xresources
===================================================================
--- xemacs-21.5.29/etc/sample.Xresources
+++ xemacs-21.5.29/etc/sample.Xresources
@@ -238,32 +238,35 @@ XEmacs*toolBarShadowThickness: 2
! There is no harm in having both resources set, except for the confusion
! you suffer. Sorry; that's the price of backward compatibility.
!
-*menubar*Font: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*
-*popup*Font: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*
-*menubar*FontSet: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*, \
- -*-*-*-*-*-*-*-120-*-iso10646-1, \
- -*-*-*-*-*-*-*-120-*-jisx0208.1983-0, \
- -*-*-*-*-*-*-*-120-*-jisx0201.1976-0
-*popup*FontSet: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*, \
- -*-*-*-*-*-*-*-120-*-iso10646-1, \
- -*-*-*-*-*-*-*-120-*-jisx0208.1983-0, \
- -*-*-*-*-*-*-*-120-*-jisx0201.1976-0
+XEmacs*menubar*Font: -*-helvetica-bold-r-*--*-120-*-*-*-*-*-*
+XEmacs*popup*Font: -*-helvetica-bold-r-*--*-120-*-*-*-*-*-*
+XEmacs*FontSet -*-helvetica-bold-r-*--*-120-*-*-*-*-*-*, \
+ -*-helvetica-bold-r-*--*-120-*-*-*-*-iso10646-1, \
+ *
+XEmacs*menubar*FontSet: -*-helvetica-bold-r-*--*-120-*-*-*-*-*-*, \
+ -*-*-*-*-*--*-120-*-iso10646-1, \
+ -*-*-*-*-*--*-120-*-jisx0208.1983-0, \
+ -*-*-*-*-*--*-120-*-jisx0201.1976-0
+XEmacs*popup*FontSet: -*-helvetica-bold-r-*--*-120-*-*-*-*-*-*, \
+ -*-*-*-*-*--*-120-*-iso10646-1, \
+ -*-*-*-*-*--*-120-*-jisx0208.1983-0, \
+ -*-*-*-*-*--*-120-*-jisx0201.1976-0
! Font in the Motif dialog boxes.
! (Motif uses `fontList' while most other things use `font' - if you don't
! know why you probably don't want to.)
!
-XEmacs*XmDialogShell*FontList: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*
-XEmacs*XmTextField*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*
-XEmacs*XmText*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*
-XEmacs*XmList*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*
+XEmacs*XmDialogShell*FontList: -*-helvetica-bold-r-*--*-120-*-*-*-*-*-*
+XEmacs*XmTextField*FontList: -*-courier-medium-r-*--*-120-*-*-*-*-*-*
+XEmacs*XmText*FontList: -*-courier-medium-r-*--*-120-*-*-*-*-*-*
+XEmacs*XmList*FontList: -*-courier-medium-r-*--*-120-*-*-*-*-*-*
! Font in the Athena dialog boxes.
! I think 14-point looks nicer than 12-point.
! Some people use 12-point anyway because you get more text, but
! there's no purpose at all in doing this for dialog boxes.
-XEmacs*Dialog*Font: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-*
+XEmacs*Dialog*Font: -*-helvetica-bold-r-*--*-140-*-*-*-*-*-*
! Dialog box translations.
! =======================

76
xemacs-level3.patch Normal file
View File

@ -0,0 +1,76 @@
Index: xemacs-21.5.29/src/event-Xt.c
===================================================================
--- xemacs-21.5.29.orig/src/event-Xt.c
+++ xemacs-21.5.29/src/event-Xt.c
@@ -515,8 +515,17 @@ x_key_is_modifier_p (KeyCode keycode, st
syms = &xd->x_keysym_map [(keycode - xd->x_keysym_map_min_code) *
xd->x_keysym_map_keysyms_per_code];
for (i = 0; i < xd->x_keysym_map_keysyms_per_code; i++)
- if (IsModifierKey (syms [i]) ||
- syms [i] == XK_Mode_switch) /* why doesn't IsModifierKey count this? */
+ if (IsModifierKey(syms[i])
+#ifdef XK_Mode_switch
+ || syms[i] == XK_Mode_switch /* why doesn't IsModifierKey count this? */
+#endif
+#ifdef XK_Num_Lock
+ || syms[i] == XK_Num_Lock
+#endif
+#if defined XK_ISO_Lock && defined XK_ISO_Last_Group_Lock
+ || (syms[i] >= XK_ISO_Lock && syms[i] <= XK_ISO_Last_Group_Lock)
+#endif
+ )
return 1;
return 0;
}
@@ -872,8 +881,17 @@ x_to_emacs_keysym (XKeyPressedEvent *eve
char dummy[256];
XLookupString (event, dummy, 200, &keysym, 0);
*x_keysym_out = keysym;
- return (IsModifierKey (keysym) || keysym == XK_Mode_switch )
- ? Qnil : x_keysym_to_emacs_keysym (keysym, simple_p);
+ return (IsModifierKey (keysym)
+#ifdef XK_Mode_switch
+ || keysym == XK_Mode_switch
+#endif
+#ifdef XK_Num_Lock
+ || keysym == XK_Num_Lock
+#endif
+#if defined XK_ISO_Lock && defined XK_ISO_Last_Group_Lock
+ || (keysym >= XK_ISO_Lock && keysym <= XK_ISO_Last_Group_Lock)
+#endif
+ ) ? Qnil : x_keysym_to_emacs_keysym (keysym, simple_p);
}
#endif /* ! XIM_MOTIF */
@@ -932,8 +950,17 @@ x_to_emacs_keysym (XKeyPressedEvent *eve
case XLookupKeySym:
case XLookupBoth:
*x_keysym_out = keysym;
- return (IsModifierKey (keysym) || keysym == XK_Mode_switch )
- ? Qnil : x_keysym_to_emacs_keysym (keysym, simple_p);
+ return (IsModifierKey (keysym)
+#ifdef XK_Mode_switch
+ || keysym == XK_Mode_switch
+#endif
+#ifdef XK_Num_Lock
+ || keysym == XK_Num_Lock
+#endif
+#if defined XK_ISO_Lock && defined XK_ISO_Last_Group_Lock
+ || (keysym >= XK_ISO_Lock && keysym <= XK_ISO_Last_Group_Lock)
+#endif
+ ) ? Qnil : x_keysym_to_emacs_keysym (keysym, simple_p);
case XLookupChars:
{
Index: xemacs-21.5.29/src/xintrinsic.h
===================================================================
--- xemacs-21.5.29.orig/src/xintrinsic.h
+++ xemacs-21.5.29/src/xintrinsic.h
@@ -22,6 +22,7 @@ Boston, MA 02111-1307, USA. */
#ifndef INCLUDED_xintrinsic_h_
#define INCLUDED_xintrinsic_h_
+#include <X11/keysym.h>
#include <X11/Intrinsic.h>
#endif /* INCLUDED_xintrinsic_h_ */

View File

@ -0,0 +1,15 @@
---
src/input-method-xlib.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- src/input-method-xlib.c
+++ src/input-method-xlib.c 2020-08-13 07:54:18.827193037 +0000
@@ -300,7 +300,7 @@ XIM_init_frame (struct frame *f)
xim = DEVICE_X_XIM (d);
- if (!xim)
+ if (!xim || ! DEVICE_X_XIM_STYLES(d))
{
return;
}

14
xemacs-libpng15.patch Normal file
View File

@ -0,0 +1,14 @@
Index: xemacs-21.5.31/glyphs-eimage.c
===================================================================
--- xemacs-21.5.31/src/glyphs-eimage.c
+++ xemacs-21.5.31/src/glyphs-eimage.c
@@ -911,7 +911,8 @@ png_instantiate (Lisp_Object image_insta
Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
struct png_unwind_data unwind;
int speccount = specpdl_depth ();
- int height, width;
+ png_uint_32 height, width;
+ int bit_depth, color_type;
struct png_memory_storage tbr; /* Data to be read */
/* PNG variables */

31
xemacs-ptmx.dif Normal file
View File

@ -0,0 +1,31 @@
Index: xemacs-21.5.29/src/process-unix.c
===================================================================
--- xemacs-21.5.29.orig/src/process-unix.c
+++ xemacs-21.5.29/src/process-unix.c
@@ -236,12 +236,6 @@ allocate_pty (void)
"/dev/ptmx_bsd" /* Tru64 */
};
-#ifdef HAVE_GETPT /* glibc */
- master_fd = getpt ();
- if (master_fd >= 0)
- goto have_master;
-#endif /* HAVE_GETPT */
-
#if defined(HAVE_OPENPTY) /* BSD, Tru64, glibc */
{
@@ -275,6 +269,13 @@ allocate_pty (void)
goto have_slave_name;
#endif /* HAVE__GETPTY */
+#ifdef HAVE_GETPT /* glibc */
+ master_fd = getpt ();
+ if (master_fd >= 0)
+ goto have_master;
+#endif /* HAVE_GETPT */
+
+
/* Master clone devices are available on most systems */
{
int i;

1
xemacs-rpmlintrc Normal file
View File

@ -0,0 +1 @@
addFilter(".*zero-length.*dump-paths\.el.*")

47
xemacs-tinfo.dif Normal file
View File

@ -0,0 +1,47 @@
--- configure.ac
+++ configure.ac 2011-11-22 14:21:37.303146192 +0000
@@ -4946,15 +4946,30 @@ if test "$with_tty" = "yes" ; then
AC_DEFINE(HAVE_TTY)
dnl Autodetect ncurses.
+ cf_tgetent=""
if test -z "$with_ncurses"; then
- AC_CHECK_LIB(ncurses, tgetent, with_ncurses=yes, with_ncurses=no)
+ with_ncurses=no;
+ for lib in tinfo ncurses ncursesw ; do
+ AC_CHECK_LIB($lib, tgetent, [with_ncurses=yes; cf_tgetent="$lib"; break])
+ done
fi
if test "$with_ncurses" = "yes"; then
+ if test x$cf_tgetent = x ; then
+ for lib in tinfo ncurses ncursesw ; do
+ AC_CHECK_LIB($lib, tgetent, [cf_tgetent="$lib"; break])
+ done
+ fi
AC_DEFINE(HAVE_NCURSES)
- AC_CHECK_HEADER(ncurses/curses.h, curses_h_file=ncurses/curses.h)
- AC_CHECK_HEADER(ncurses/term.h, term_h_file=ncurses/term.h)
+ if test "$cf_tgetent" = ncursesw; then
+ AC_DEFINE(HAVE_NCURSESW)
+ AC_CHECK_HEADER(ncursesw/curses.h, curses_h_file=ncursesw/curses.h)
+ AC_CHECK_HEADER(ncursesw/term.h, term_h_file=ncursesw/term.h)
+ else
+ AC_CHECK_HEADER(ncurses/curses.h, curses_h_file=ncurses/curses.h)
+ AC_CHECK_HEADER(ncurses/term.h, term_h_file=ncurses/term.h)
+ fi
XE_ADD_OBJS(terminfo.o)
- XE_PREPEND(-lncurses, LIBS)
+ XE_PREPEND(-l$cf_tgetent, LIBS)
if test "$ac_cv_header_ncurses_curses_h" != "yes" ; then
dnl Try again, and check for the bogus ncurses/ include bug.
--- src/config.h.in
+++ src/config.h.in 2011-11-22 14:21:50.939646812 +0000
@@ -580,6 +580,7 @@ things are arranged in config.h.in. In
/* Compile in support for ncurses? */
#undef HAVE_NCURSES
+#undef HAVE_NCURSESW
/* Full #include file paths for ncurses' curses.h and term.h. */
#undef CURSES_H_FILE
#undef TERM_H_FILE

1858
xemacs.changes Normal file

File diff suppressed because it is too large Load Diff

11
xemacs.desktop Normal file
View File

@ -0,0 +1,11 @@
[Desktop Entry]
Encoding=UTF-8
Name=X Emacs
GenericName=Text Editor
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=xemacs %f
Icon=xemacs
Type=Application
Terminal=false
X-KDE-StartupNotify=true
X-KDE-AuthorizeAction=shell_access

907
xemacs.patch Normal file
View File

@ -0,0 +1,907 @@
Index: xemacs-21.5.29/.pkgextract
===================================================================
--- /dev/null
+++ xemacs-21.5.29/.pkgextract
@@ -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
Index: xemacs-21.5.29/lib-src/gnuclient.c
===================================================================
--- xemacs-21.5.29.orig/lib-src/gnuclient.c
+++ xemacs-21.5.29/lib-src/gnuclient.c
@@ -226,7 +226,7 @@ filename_expand (char *fullpath, char *f
/* 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;
Index: xemacs-21.5.29/lib-src/mmencode.c
===================================================================
--- xemacs-21.5.29.orig/lib-src/mmencode.c
+++ xemacs-21.5.29/lib-src/mmencode.c
@@ -23,6 +23,11 @@ WITHOUT ANY EXPRESS OR IMPLIED WARRANTIE
#include <string.h>
#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
+
static void
output64chunk(int c1, int c2, int c3, int pads, FILE *outfile);
@@ -430,6 +435,32 @@ fromqp(FILE *infile, FILE *outfile, char
}
}
+/* 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;
+ fd = open(filename, flags, 00666);
+ }
+ 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)
@@ -456,6 +487,7 @@ WITHOUT ANY EXPRESS OR IMPLIED WARRANTIE
int main(int argc, char *argv[])
{
int encode = 1, which = BASE64, i, portablenewlines = 0;
+ struct stat fpstat;
FILE *fp = stdin;
FILE *fpo = stdout;
@@ -467,7 +499,7 @@ int main(int argc, char *argv[])
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);
@@ -500,7 +532,7 @@ int main(int argc, char *argv[])
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]);
@@ -510,6 +542,12 @@ int main(int argc, char *argv[])
}
#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) {
Index: xemacs-21.5.29/lib-src/pop.c
===================================================================
--- xemacs-21.5.29.orig/lib-src/pop.c
+++ xemacs-21.5.29/lib-src/pop.c
@@ -129,16 +129,20 @@ static char *find_crlf (char *, int);
#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];
Index: xemacs-21.5.29/lib-src/vcdiff
===================================================================
--- xemacs-21.5.29.orig/lib-src/vcdiff
+++ xemacs-21.5.29/lib-src/vcdiff
@@ -75,7 +75,10 @@ case $# in
esac
-rev1= rev2= status=0
+if ! type -p mktemp > /dev/null 2>&1 ; then
+ echo "$0: can not create temporary files." 1>&2
+ exit 1
+fi
trap 'status=2; exit' 1 2 13 15
trap 'rm -f $rev1 $rev2 || status=2; exit $status' 0
@@ -86,14 +89,14 @@ do
case $f in
s.* | */s.*)
if
- rev1=`mktemp /tmp/geta.XXXXXXXX`
+ rev1=`mktemp /tmp/geta.XXXXXXXX` || exit 1
sccs get -s -p -k $sid1 "$f" > $rev1 &&
case $sid2 in
'')
workfile=`expr " /$f" : '.*/s.\(.*\)'`
;;
*)
- rev2=`mktemp /tmp/getb.XXXXXXXX`
+ rev2=`mktemp /tmp/getb.XXXXXXXX` || exit 1
sccs get -s -p -k $sid2 "$f" > $rev2
workfile=$rev2
esac
Index: xemacs-21.5.29/lisp/default.el
===================================================================
--- /dev/null
+++ xemacs-21.5.29/lisp/default.el
@@ -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/")
+
Index: xemacs-21.5.29/lisp/dumped-lisp.el
===================================================================
--- xemacs-21.5.29.orig/lisp/dumped-lisp.el
+++ xemacs-21.5.29/lisp/dumped-lisp.el
@@ -42,6 +42,7 @@ in dumped-lisp.el and is not itself list
"cl"
"cl-extra" ; also loads cl-macs if we're running interpreted.
"cl-seq"
+ "cl-macs" ; Avoid autoloading of kernel functions
"post-gc"
"version"
"custom" ; Before the world so everything can be customized
@@ -300,6 +301,7 @@ in dumped-lisp.el and is not itself list
;; "sun-eos-debugger-extra"
;; "sun-eos-menubar"))
"loaddefs" ; <=== autoloads get loaded here
+ "disp-table"
))
(setq preloaded-file-list
Index: xemacs-21.5.29/lisp/find-paths.el
===================================================================
--- xemacs-21.5.29.orig/lisp/find-paths.el
+++ xemacs-21.5.29/lisp/find-paths.el
@@ -338,7 +338,7 @@ DEFAULT is the preferred value."
(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.
Index: xemacs-21.5.29/lisp/mule/cyrillic.el
===================================================================
--- xemacs-21.5.29.orig/lisp/mule/cyrillic.el
+++ xemacs-21.5.29/lisp/mule/cyrillic.el
@@ -31,6 +31,9 @@
;; converted to ISO8859-5 internally.
;;; Code:
+(eval-when-compile
+ (setq max-lisp-eval-depth (+ 800 max-lisp-eval-depth))
+ (setq max-specpdl-size (+ 2000 max-specpdl-size)))
;; Case table:
(loop
Index: xemacs-21.5.29/lisp/site-init.el
===================================================================
--- /dev/null
+++ xemacs-21.5.29/lisp/site-init.el
@@ -0,0 +1,18 @@
+;;;;
+;;; xemacs-21.1.14/lisp/site-init.el
+;;; Author: Werner Fink <werner@suse.de>
+;; CONFIGURATION see source code
+;;;;
+(garbage-collect)
+
+(setq gnus-default-nntp-server "news")
+(setq w3-directory (concat lisp-directory "w3"))
+(setq progress-feedback-use-echo-area t) ;; boo#905625 and bsc#902003
+
+(garbage-collect)
+(garbage-collect)
+(garbage-collect)
+(garbage-collect)
+(garbage-collect)
+
+;;; site-init.el ends here
Index: xemacs-21.5.29/lisp/x-win-xfree86.el
===================================================================
--- xemacs-21.5.29.orig/lisp/x-win-xfree86.el
+++ xemacs-21.5.29/lisp/x-win-xfree86.el
@@ -99,6 +99,11 @@
;; 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)])))))
+ `[(shift ,@mods ,sane-key)]))))
+;; Begin insert
+;; <werner@suse.de> set Symbol delete == [delete] to delete-char
+ (load "term/func-keys" t t)
+;; End insert
+)
;;; x-win-xfree86.el ends here
Index: xemacs-21.5.29/site-packages/lisp/term/func-keys.el
===================================================================
--- /dev/null
+++ xemacs-21.5.29/site-packages/lisp/term/func-keys.el
@@ -0,0 +1,101 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; term/func-keys.el for site-lisp path in xemacs-21.4.12
+;;; Copyright (c) 1996-2003 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
+ (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)
+;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; End of func-keys.el
Index: xemacs-21.5.29/site-packages/lisp/term/gnome.el
===================================================================
--- /dev/null
+++ xemacs-21.5.29/site-packages/lisp/term/gnome.el
@@ -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 <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 "\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
Index: xemacs-21.5.29/site-packages/lisp/term/kvt.el
===================================================================
--- /dev/null
+++ xemacs-21.5.29/site-packages/lisp/term/kvt.el
@@ -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 <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~" [(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
Index: xemacs-21.5.29/site-packages/lisp/term/linux.el
===================================================================
--- /dev/null
+++ xemacs-21.5.29/site-packages/lisp/term/linux.el
@@ -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 <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~" [(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
Index: xemacs-21.5.29/site-packages/lisp/term/xterm.el
===================================================================
--- /dev/null
+++ xemacs-21.5.29/site-packages/lisp/term/xterm.el
@@ -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 <werner@suse.de>, 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
Index: xemacs-21.5.29/src/Makefile.in.in
===================================================================
--- xemacs-21.5.29.orig/src/Makefile.in.in
+++ xemacs-21.5.29/src/Makefile.in.in
@@ -574,7 +574,7 @@ $(RAW_EXE): $(link_deps) $(DUMP_ID)
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
@@ -604,7 +604,7 @@ $(LIB_SRC)/DOC: $(LIB_SRC)/make-docfile
$(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
Index: xemacs-21.5.29/src/print.c
===================================================================
--- xemacs-21.5.29.orig/src/print.c
+++ xemacs-21.5.29/src/print.c
@@ -1104,6 +1104,40 @@ float_to_string (char *buf, double data)
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:
Index: xemacs-21.5.29/src/regex.c
===================================================================
--- xemacs-21.5.29.orig/src/regex.c
+++ xemacs-21.5.29/src/regex.c
@@ -1154,6 +1154,9 @@ print_double_string (re_char *where, re_
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;
Index: xemacs-21.5.29/suse/README.SUSE
===================================================================
--- /dev/null
+++ xemacs-21.5.29/suse/README.SUSE
@@ -0,0 +1,18 @@
+
+ XEmacs-21.5.34
+
+ * 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
+
+

3
xemacs.png Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b7b39100b15b0fea1e44c4980d9984f77e08407c733742e9b9ae10801c7ff911
size 968

639
xemacs.spec Normal file
View File

@ -0,0 +1,639 @@
#
# spec file for package xemacs
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: xemacs
# this is tricky to fix for PIE support. revisit to remove occasionaly after 21.5.34 version
#!BuildIgnore: gcc-PIE
#!BuildIgnore: diffstat
BuildRequires: alsa-lib-devel
BuildRequires: autoconf
BuildRequires: compface
BuildRequires: db-devel
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: gdbm-devel
BuildRequires: info
BuildRequires: krb5
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
BuildRequires: libtiff-devel
BuildRequires: makeinfo
BuildRequires: ncurses-devel
BuildRequires: openldap2-devel
BuildRequires: par
BuildRequires: texinfo
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xau)
BuildRequires: pkgconfig(xaw3d)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(xmu)
BuildRequires: pkgconfig(xpm)
BuildRequires: pkgconfig(xt)
%if 0%{?suse_version} > 1130
BuildRequires: gpm-devel
%else
BuildRequires: gpm
%endif
%define _id 995257d0c590
%define _hg hg%{_id}
Version: 21.5.34
Release: 0
Summary: XEmacs
License: GPL-3.0-or-later
Group: Productivity/Editors/Emacs
%define appdefdir /usr/share/X11
%define xbindir /usr/bin
%define xincludes /usr/include
%define xlibraries /usr/%{_lib}
URL: http://www.xemacs.org
# Howto get the Mercurial tree of XEmacs:
# See: http://xemacs.digimirror.nl/Develop/hgaccess.html
# hg clone http://hg.debian.org/hg/xemacs/xemacs-beta
#
# delete the .hg directory before creating the tarball in order
# not to make the source rpm huge.
Source0: http://ftp.xemacs.org/pub/xemacs/xemacs-21.5/%{name}-%{version}.tar.gz
Source1: xe-list.el
Source2: fix-load-history.el
Source3: xemacs.desktop
Source4: xemacs.png
Source5: suse-xft-init.el
Source6: site-start.el
Source7: skel.init.el
Source90: xemacs-rpmlintrc
Patch0: xemacs.patch
# keep in sync with the similar patch to the app-defaults in the main xemacs-packages package:
Patch3: xemacs-app-defaults.patch
Patch18: xemacs-21.4.8-xevent.patch
Patch20: xemacs-21.4.13-ppc64.patch
Patch23: xemacs-ptmx.dif
Patch27: xemacs-level3.patch
Patch28: xemacs-21.5.18-movemail.patch
Patch32: do-not-create-backups-in-temp-directories.patch
Patch33: set-locale-to-c-when-not-supported-by-x.patch
Patch39: xemacs-tinfo.dif
Patch43: set-language-unicode-precedence-list.patch
Patch45: fix-defface-custom-modified-face.patch
Patch50: menus-always-utf8.patch
Patch51: bnc502716-fontmenu.patch
Patch52: bnc502716-xft.patch
Patch53: xemacs-21.5.31-array.patch
Patch54: xemacs-21.5.34-gcc5.patch
Patch56: xemacs-libpng15.patch
Patch292811: bugzilla-292811-make-x-make-font-bold-italic-xft-work.patch
Patch301352: bugzilla-301352-fix-wrong-incrementing-in-macros.patch
# PATCH-FIX-UPSTREAM bsc#930170
Patch57: xemacs-21.5.34-Xaw3D_I18N.patch
# PATCH-FIX-SUSE bsc#932321
Patch58: xemacs-21.5.34-custom-fonts.patch
# PATCH-FIX-SUSE do wait on alsa
Patch59: xemacs-21.5.34-alsaplay.patch
# PATCH-FIX-SUSE avoid redefinition of sbrk
Patch60: xemacs-21.5.34-sbrk.patch
# PATCH-FIX-SUSE fix make build race
Patch61: xemacs-21.5.34-boo1115177.patch
Patch62: xemacs-libX11-boo1175028.patch
# PATCH-FIX-SUSE sys_siglist is deprecated
Patch63: xemacs-21.5.34-strsignal.patch
Patch64: xemacs-21.5.34-fix2038.patch
# PATCH-FIX-SUSE drop hostname+timestamp from .elc
Patch65: reproducible.patch
Requires(pre): permissions
Requires: ctags
Requires: efont-unicode
Requires: ifnteuro
Requires: xemacs-info
Requires: xemacs-packages
Requires: xorg-x11-fonts
Requires: xorg-x11-fonts-core
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Conflicts: gnuserv
%define _default_patch_fuzz 2
%bcond_with lock
%description
This is the current version of XEmacs, formerly known as Lucid-Emacs.
It is related to other versions of Emacs, in particular GNU Emacs. Its
emphasis is on modern graphical user interface support and an open
software development model, similar to Linux.
Lisp macros are not necessarily interchangeable between GNU-Emacs and
XEmacs. This is mainly important for translated .elc files and the key
macros.
%package -n xemacs-el
Summary: Emacs-Lisp source files for XEmacs
Group: Productivity/Editors/Emacs
Requires: xemacs = %{version}
Requires: xemacs-packages-el
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
%description -n xemacs-el
Most Emacs-Lisp source files are not needed for running XEmacs. Most of
them are also available in byte compiled form and therefore not
necessary at runtime. The true XEmacs addict will install them
nevertheless because it is often useful and enlightening to have a look
at the Lisp sources.
%package -n xemacs-info
Summary: Info Files for XEmacs
Group: Productivity/Editors/Emacs
Requires: xemacs-packages-info
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
%description -n xemacs-info
This package contains all info files for XEmacs. All these files can be
read online with XEmacs and describe XEmacs and some of its modes.
%prep
%ifarch ia64
# ia64 has different memory laylout then x86 or x86_64 have!
%global pdump_broken 1
%endif
# Currently XEmacs is not fully usable for Xfreetype support
# therefore we use XFontSet support:
%{!?enable_xfs:%global enable_xfs 1}
%{!?pdump_broken:%global pdump_broken 0}
%{!?kkcc_broken:%global kkcc_broken 0}
%if ! %enable_xfs
echo Use xft, requires X11, Xft, Xrender, freetype, and fontconfig support.
%else
echo Use xfs, that is XFontSet support for internationalized menubar.
%endif
%setup -q
%patch -P 3 -p1
%patch -P 18 -p0 -b .xevent
%patch -P 20 -p1
%patch -P 23 -p1
%patch -P 27 -p1 -b .lvl3
%patch -P 28 -p1 -b .movemail
%patch -P 32 -p1
%patch -P 33 -p1
%patch -P 39 -p0
%patch -P 43 -p1
%patch -P 45 -p0
%patch -P 50 -p1
%if ! %enable_xfs
%patch -P 51 -p0
%patch -P 52 -p0
%endif
%patch -P 53 -p0
%patch -P 54 -p0
%patch -P 56 -p1
%patch -P 292811 -p1
%patch -P 301352 -p1
%patch -P 57 -p0
%patch -P 58 -p0
%patch -P 59 -p1
%patch -P 60 -p0
%patch -P 61 -p0
%patch -P 62 -p0
%patch -P 63 -p0
%patch -P 0 -p1
find lisp/ etc/ -name '*.elc' | xargs -r rm -f
find . -name CVS -type d | xargs rm -rf
find . -name .cvsignore -type f | xargs rm -f
chmod -R u+w *
# Without making the timestamps equal here, some files will not be
# byte compiled:
find . | xargs touch -r .
# make sure that the binaries work (pagesize on build must be the same as on target, bnc#726769)
%if 0%{?suse_version} >= 1110
%ifarch ppc ppc64 ia64
%if %(getconf PAGESIZE) != 65536
%error "Error: wrong build host, PAGESIZE must be 65536"
exit 1
%endif
%endif
%endif
%patch -P 64 -p1
%patch -P 65 -p1
%build
cflags ()
{
local flag=$1; shift
local var=$1; shift
test -n "${flag}" -a -n "${var}" || return
case "${!var}" in
*${flag}*) return
esac
set -o noclobber
case "$flag" in
-Wl,*)
if echo 'int main () { return 0; }' | \
${CC:-gcc} -Werror $flag -o /dev/null -xc ldtest.c > /dev/null 2>&1 ; then
eval $var=\${$var:+\$$var\ }$flag
fi
;;
*)
if ${CC:-gcc} -Werror $flag -S -o /dev/null -xc /dev/null > /dev/null 2>&1 ; then
eval $var=\${$var:+\$$var\ }$flag
fi
esac
set +o noclobber
}
# libtoolize --force
# autoreconf --force --install --verbose
# rm configure
autoconf --force
VERSION=%{version}
SHARE=/usr/share
LIB=/usr/lib
SYS=${RPM_ARCH}-suse-linux
%ifarch %ix86
cflags -fprefetch-loop-arrays LOOP
cflags -funroll-loops LOOP
%endif
cflags -Wno-unused-but-set-variable RPM_OPT_FLAGS
cflags -Wno-unused-value RPM_OPT_FLAGS
cflags -Wno-switch RPM_OPT_FLAGS
cflags -fno-strict-aliasing RPM_OPT_FLAGS
INFO=${SHARE}/xemacs/info
LIBEXEC=${LIB}/xemacs/${VERSION}
ARCH=${LIBEXEC}/${SYS}
DATA=${SHARE}
LISP=${DATA}/xemacs/${VERSION}/lisp
ETC=${DATA}/xemacs/${VERSION}/etc
MOD=${ARCH}/modules
STATE=/var/lib/xemacs
MAN=/usr/share/man/man1
CFLAGS="-Wall ${RPM_OPT_FLAGS} -pipe ${LOOP} -DLDAP_DEPRECATED "
%ifarch s390x
CFLAGS="$CFLAGS -O1"
%endif
# To to the menu translations, add:
# $CFLAGS="$CFLAGS -DPRINT_XLWMENU_RESOURCE_CONVERSIONS "
# this prints the Xresources used for the Menus to stdout
# when the Menus are used.
#
# Maybe there are emacs and xemacs on the
# same system, therefore put binaries into /usr/X11R6/bin
#
PREFIX="--prefix=/usr \
--exec-prefix=/usr \
--bindir=%{xbindir} \
--datadir=${SHARE} \
--with-archlibdir=${ARCH} \
--with-docdir=${ARCH} \
--with-lispdir=${LISP} \
--with-etcdir=${ETC} \
--with-statedir=${STATE} \
--with-moduledir=${MOD} \
--infodir=${INFO} \
--mandir=${MAN} \
"
#
# --with-sound=both requires NAS (Network Audio System)
#
# --with-socks and --with-term needs some nonexisting libs
# (maybe included in {g}libc)
# --with-tooltalk needs tt_c.h
# --with-canna needs X11 canna support
# --with-wnn needs X11 wnn support
#
# We need site-lisp because the long time (x)emacs users
# expect something like this.
#
# --with-system-malloc only for libc.5.4.3x and higher
#
# when using "--rel-alloc, XEmacs 21.5.18 crashes often when using
# 'compile-goto-error'.
SPECIAL="--with-database=berkdb,gdbm \
--with-ncurses \
--with-tty=yes \
--with-site-lisp \
%if %kkcc_broken
--disable-kkcc \
%endif
%if 0%{?suse_version} > 1320
--with-system-malloc \
%endif
%ifnarch s390
--enable-sound=native \
--with-gpm \
%else
--with-sound=nonative,alsa \
%endif
%if %pdump_broken
--without-pdump \
%endif
"
#
# * --with-xfs Compile with XFontSet support for bilingual menubar.
# Can't use this option with --with-xim=motif or xlib.
# And should have --with-menubars=lucid.
# (this is necessary to get German, French, Japanese
# and Romanian texts in the menus.
#
FONTS="\
%if %enable_xfs
--with-xfs \
%else
--with-xft=all \
%endif
"
#
# Graphics and X window system
# * --with-cde needs Motif
#
X11="--with-xpm \
--with-gif \
--with-tiff \
--with-jpeg \
--with-png \
--with-x \
--with-athena=3d \
--with-menubars=lucid \
--with-widgets=athena \
--with-dialogs=athena \
--with-scrollbars=lucid \
--x-includes=%{xincludes} \
--x-libraries=%{xlibraries} \
--with-xim=xlib \
"
#
# Mail
# * --mail-locking should be self detected
# * --with-xface requires compface library
#
MAIL="--enable-clash-detection \
--with-ldap \
--with-pop
"
#
# Mule
#
MULE="--with-mule"
#
# Compilation
#
COMP="--with-gcc \
--with-dynamic \
--with-debug \
--enable-error-checking=none \
--with-cflags=\"${CFLAGS}\" \
"
eval ./configure $SYS $COMP $PREFIX $SPECIAL $X11 $MULE $FONTS $MAIL
if grep -q _DEFAULT_SOURCE /usr/include/features.h ; then
sed -ri '/^(#[[:blank:]]*define[[:blank:]]+_(BSD|SVID)_SOURCE)/{
s/_BSD_SOURCE/_DEFAULT_SOURCE/
s/_SVID_SOURCE/_DEFAULT_SOURCE/
}' src/config.h
fi
make %{?_smp_mflags}
%install
set +o posix
#
mkdir -p %{buildroot}%{_datadir}/xemacs/site-lisp/lisp
mkdir -p %{buildroot}%{_datadir}/xemacs/site-packages/lisp/term
%if %{with lock}
mkdir -p %{buildroot}%{_localstatedir}/lib/xemacs/lock
chmod 1777 %{buildroot}%{_localstatedir}/lib/xemacs/lock
%endif
make install DESTDIR=%{buildroot}
mv %{buildroot}%{xbindir}/xemacs-21.?-??? %{buildroot}%{xbindir}/xemacs
# fix up the load-history to make it possible to use find-function
# on functions which are in dumped lisp files, even if XEmacs was not
# dumped at the place where it is finally running.
#
# Suggested by Jeff Mincy <jeff@delphioutpost.com>, see:
#
# http://list-archive.xemacs.org/xemacs-design/200204/msg00365.html
#
# Test whether this works by evaluating (find-function 'next-line)
#
install -m 644 %{_sourcedir}/fix-load-history.el \
%{buildroot}%{_datadir}/xemacs/site-packages/lisp/
rm -rf %{buildroot}%{_datadir}/xemacs/%{version}/src/
rm -rf %{buildroot}%{_datadir}/xemacs/%{version}/lib-src/
rm -f %{buildroot}%{_datadir}/xemacs/%{version}/Installation
######################################################################
test -L %{buildroot}%{xbindir}/xemacs && \
rm %{buildroot}%{xbindir}/xemacs
ver=%{version}
test -x %{buildroot}%{xbindir}/xemacs-${ver%%.*}-b${ver##*.} && \
mv %{buildroot}%{xbindir}/xemacs-${ver%%.*}-b${ver##*.} %{buildroot}%{xbindir}/xemacs
chmod 755 %{buildroot}%{xbindir}/xemacs
rm -f %{buildroot}%{xbindir}/xemacs-script
rm -rf %{buildroot}%{_datadir}/xemacs/%{version}/etc/tests
for f in %{buildroot}%{_prefix}/man/man1/*.1 \
%{buildroot}%{_mandir}/man1/*.1 \
%{buildroot}%{_datadir}/xemacs/info/*info* \
%{buildroot}%{_datadir}/xemacs/%{version}/etc/*.1 \
%{buildroot}%{_datadir}/xemacs/%{version}/etc/mule/*.1
do
test "${f##*.}" = "gz" && continue
test -e $f || continue
gzip -9nf $f
done
find %{buildroot}%{_datadir}/xemacs/%{version}/ -name '*.orig' | xargs -r rm -f
find %{buildroot}%{_datadir}/xemacs/%{version}/ -name '*.el.ediff' | xargs -r rm -f
find %{buildroot}%{_datadir}/xemacs/%{version}/ -name '*.el.vm' | xargs -r rm -f
# ctags and etags are part of the ctags package
# b2m and rcs-checkin are in the emacs package.
# As all binaries are in /usr/bin/ with X11R7, xemacs would conflict
# with emacs if xemacs packaged b2m and rcs-checkin as well.
# Therefore we remove them from the xemacs package here.
# They are rarely needed anyway.
rm -f %{buildroot}%{xbindir}/ctags \
%{buildroot}%{xbindir}/etags \
%{buildroot}%{xbindir}/b2m \
%{buildroot}%{xbindir}/rcs-checkin \
%{buildroot}%{_mandir}/man1/ctags.1.gz \
%{buildroot}%{_mandir}/man1/etags.1.gz \
%{buildroot}%{_datadir}/xemacs/%{version}/etc/ctags.1.gz \
%{buildroot}%{_datadir}/xemacs/%{version}/etc/etags.1.gz
# Some .elc's are not needed:
find %{buildroot}%{_datadir}/xemacs/ -name '_pkg.elc' | xargs -r rm -f
find %{buildroot}%{_datadir}/xemacs/ -name 'auto-autoloads.el?' | xargs -r rm -f
find %{buildroot}%{_prefix}/lib/xemacs/ -name 'auto-autoloads.el?' | xargs -r rm -f
rm -f %{buildroot}%{_datadir}/xemacs/%{version}/lisp/default.elc
rm -f %{buildroot}%{_datadir}/xemacs/%{version}/lisp/vm/vm.elc
#if test -e /usr/share/xemacs/%{version}/lisp/xpm-button.el -a \
# -e /usr/share/xemacs/%{version}/lisp/xemacs-base/xpm-button.el
#then
# rm -f /usr/share/xemacs/%{version}/lisp/xpm-button.el
# rm -f /usr/share/xemacs/%{version}/lisp/xpm-button.elc
#fi
# no .origs
rm -f %{buildroot}%{_datadir}/xemacs/info/xemacs-faq.info.orig*
#
# Make TUTORIAL's visible
for t in %{buildroot}%{_datadir}/xemacs/%{version}/etc/mule/TUTORIAL.* ; do
test -e $t || break
test -e %{buildroot}%{_datadir}/xemacs/%{version}/etc/${t##*/} && rm -f $t
test -e $t && mv $t %{buildroot}%{_datadir}/xemacs/%{version}/etc/${t##*/}
done
# install the standard app-defaults file used for all languages
# which don't have their own app-defaults file above:
mkdir -p %{buildroot}%{appdefdir}/app-defaults/
install -m 644 etc/Emacs.ad %{buildroot}%{appdefdir}/app-defaults/XEmacs
# SuSE extension
install -m 0644 %{_sourcedir}/site-start.el %{buildroot}%{_datadir}/xemacs/site-packages/lisp/
install -m 0644 %{_sourcedir}/suse-xft-init.el %{buildroot}%{_datadir}/xemacs/site-packages/lisp/
install -m 0644 site-packages/lisp/term/func-keys.el %{buildroot}%{_datadir}/xemacs/site-packages/lisp/term/
install -m 0644 site-packages/lisp/term/linux.el %{buildroot}%{_datadir}/xemacs/site-packages/lisp/term/
install -m 0644 site-packages/lisp/term/xterm.el %{buildroot}%{_datadir}/xemacs/site-packages/lisp/term/
install -m 0644 site-packages/lisp/term/gnome.el %{buildroot}%{_datadir}/xemacs/site-packages/lisp/term/
install -m 0644 site-packages/lisp/term/kvt.el %{buildroot}%{_datadir}/xemacs/site-packages/lisp/term/
./src/xemacs -batch -no-site-file -vanilla -f batch-byte-compile %{buildroot}%{_datadir}/xemacs/site-packages/lisp/term/*.el
mkdir -p %{buildroot}/%{_docdir}/xemacs
install -m 0644 suse/README.SUSE %{buildroot}/%{_docdir}/xemacs/README.SUSE
ln -sf /usr/share/xemacs/%{version}/etc %{buildroot}/%{_docdir}/xemacs/etc
mkdir -p %{buildroot}%{_sysconfdir}/skel/.xemacs
install -m 0644 %{_sourcedir}/skel.init.el %{buildroot}%{_sysconfdir}/skel/.xemacs/init.el
%fdupes -s %{buildroot}%{_datadir}
#
# replace buildroot in comments in .elc files by spaces with the same total length:
REPLACEMENT=$(echo %{buildroot} | tr '[:print:]' ' ')
for i in $(find %{buildroot} -name "*.elc")
do
perl -pi -e "s|(;;; from file )%{buildroot}(/usr/share/xemacs/.*)|\1$REPLACEMENT\2|" $i
done
#
# gzip .el files: (doesn't completely work for me yet -> later)
#for i in $(find %{buildroot} -name "*.el")
#do
# gzip --best $i
#done
#
( find %{buildroot} \
\( \( \( -not -type d \) -a \( -not -type l \) \) -printf '%%p\n' \) -o \
\( -type d -printf '%%p/\n' \) -o \( -type l -printf '%%p\n' \) ; \
find %{buildroot}%{_datadir}/xemacs/ %{buildroot}%{_prefix}/lib/xemacs/ -type f -o -type l ) | \
grep -v "/usr/share/xemacs/%{version}/etc" | \
sort -t /| uniq | perl -p -e "s|%{buildroot}||" > xe-list
./src/xemacs -batch -no-site-file -l %{_sourcedir}/xe-list.el -f xe-list-generate-list-files
cat xe-list-el-without-elc xe-list-elc-without-el xe-list-elc-with-el \
>> xe-list-el-without-elc_xe-list-elc-without-el_xe-list-elc-with-el
##
# install desktop file
%suse_update_desktop_file -i xemacs TextEditor Utility
##
# do no include header files because RPMLINT complains about header files in non-devel
# packages:
rm -rf %{buildroot}%{_prefix}/lib/xemacs/%{version}/*-suse-linux/include/
%if %{with lock}
%if %{defined verify_permissions}
%verifyscript
%verify_permissions -e /var/lib/xemacs/lock
%endif
%if %{defined set_permissions}
%post
%set_permissions /var/lib/xemacs/lock
%endif
%endif
%files -f xe-list-el-without-elc_xe-list-elc-without-el_xe-list-elc-with-el
%defattr(-,root,root)
%dir %{_sysconfdir}/skel/.xemacs
%config %{_sysconfdir}/skel/.xemacs/init.el
%{_datadir}/applications/xemacs.desktop
%{_datadir}/pixmaps/xemacs.png
%{xbindir}/ellcc
%{xbindir}/gnuattach
%{xbindir}/gnuclient
%{xbindir}/gnudoit
%{xbindir}/ootags
%verify(not mode) %{xbindir}/xemacs
%if %pdump_broken
%{xbindir}/xemacs*.dmp
%endif
%{appdefdir}/app-defaults/XEmacs
%dir %{_prefix}/lib/xemacs
%dir %{_prefix}/lib/xemacs/%{version}
%dir %{_prefix}/lib/xemacs/%{version}/*-suse-linux/
%{_prefix}/lib/xemacs/%{version}/*-suse-linux/DOC
%{_prefix}/lib/xemacs/%{version}/*-suse-linux/add-big-package.sh
%{_prefix}/lib/xemacs/%{version}/*-suse-linux/config.values
%{_prefix}/lib/xemacs/%{version}/*-suse-linux/cvtmail
%{_prefix}/lib/xemacs/%{version}/*-suse-linux/digest-doc
%{_prefix}/lib/xemacs/%{version}/*-suse-linux/fakemail
%{_prefix}/lib/xemacs/%{version}/*-suse-linux/gnuserv
%{_prefix}/lib/xemacs/%{version}/*-suse-linux/gzip-el.sh
%{_prefix}/lib/xemacs/%{version}/*-suse-linux/hexl
%{_prefix}/lib/xemacs/%{version}/*-suse-linux/make-docfile
%{_prefix}/lib/xemacs/%{version}/*-suse-linux/mmencode
%dir %{_prefix}/lib/xemacs/%{version}/*-suse-linux/modules/
%{_prefix}/lib/xemacs/%{version}/*-suse-linux/modules/*.ell
%{_prefix}/lib/xemacs/%{version}/*-suse-linux/movemail
%{_prefix}/lib/xemacs/%{version}/*-suse-linux/profile
%{_prefix}/lib/xemacs/%{version}/*-suse-linux/rcs2log
%{_prefix}/lib/xemacs/%{version}/*-suse-linux/sorted-doc
%{_prefix}/lib/xemacs/%{version}/*-suse-linux/vcdiff
%dir %{_prefix}/lib/xemacs/site-modules/
%dir %{_docdir}/xemacs/
%doc %{_docdir}/xemacs/README.SUSE
%{_docdir}/xemacs/etc
%doc %{_mandir}/man1/gnuattach.1.gz
%doc %{_mandir}/man1/gnuclient.1.gz
%doc %{_mandir}/man1/gnudoit.1.gz
%doc %{_mandir}/man1/gnuserv.1.gz
%doc %{_mandir}/man1/xemacs.1.gz
%dir %{_datadir}/xemacs/
%dir %{_datadir}/xemacs/%{version}/
%dir %{_datadir}/xemacs/%{version}/etc/
%{_datadir}/xemacs/%{version}/etc/*
%dir %{_datadir}/xemacs/%{version}/lisp/
%doc %{_datadir}/xemacs/%{version}/lisp/ChangeLog*
%doc %{_datadir}/xemacs/%{version}/lisp/README
%dir %{_datadir}/xemacs/%{version}/lisp/mule/
%doc %{_datadir}/xemacs/%{version}/lisp/mule/mule-locale.txt
%dir %{_datadir}/xemacs/%{version}/lisp/term
%doc %{_datadir}/xemacs/%{version}/lisp/term/README
%dir %{_datadir}/xemacs/site-packages/
%dir %{_datadir}/xemacs/site-packages/lisp/
%dir %{_datadir}/xemacs/site-packages/lisp/term/
%dir %{_datadir}/xemacs/site-lisp/
%dir %{_datadir}/xemacs/site-lisp/lisp/
%if %{with lock}
%dir %{_localstatedir}/lib/xemacs/
%dir %verify(not mode group) %attr(1775,root,trusted) /var/lib/xemacs/lock
%endif
%files -n xemacs-info
%defattr(-,root,root)
%dir %{_datadir}/xemacs/
%dir %{_datadir}/xemacs/info/
%doc %{_datadir}/xemacs/info/*
%files -n xemacs-el -f xe-list-el-with-elc
%defattr(-,root,root)
%dir %{_datadir}/xemacs/
%dir %{_datadir}/xemacs/%{version}/lisp/
%dir %{_datadir}/xemacs/%{version}/lisp/mule/
%dir %{_datadir}/xemacs/%{version}/lisp/term/
%dir %{_datadir}/xemacs/site-packages/
%dir %{_datadir}/xemacs/site-packages/lisp/
%dir %{_datadir}/xemacs/site-packages/lisp/term/
%changelog

31
xemacs.test Normal file
View File

@ -0,0 +1,31 @@
Testform für xemacs
===================
08.09.2000: Version 21.1.12
Maintainer: werner
Vorraussetzungen:
=================
X _und_ libz, libjpeg, libpng, libgbdm, libdb, libtiff sollten installiert sein.
Starten:
========
xemacs
xemacs -nw
xemacs -q -vanilla
xemacs -nw -q -vanilla
als Editor von mailx/elm/pine ...
Testen mit verschiedensten File-Typen (*.tex, man-pages.
*.html, info-mode, gnus, rmail, ...)
Testen von pop-mail (?)
Ergebnisse:
===========
Hängt von der gewählten mode ab.