File emacs-23.3.dif of Package emacs

--- Makefile.in
+++ Makefile.in	2010-10-18 13:57:39.899926326 +0000
@@ -131,7 +131,7 @@ libexecdir=@libexecdir@
 # (and they contain cross-references that expect them to be there).
 mandir=@mandir@
 man1dir=$(mandir)/man1
-MAN_PAGES=b2m.1 ctags.1 ebrowse.1 emacs.1 emacsclient.1 etags.1 \
+MAN_PAGES=b2m.1 ebrowse.1 emacs.1 emacsclient.1 \
           grep-changelog.1 rcs-checkin.1
 
 # Where to install and expect the info files describing Emacs.	In the
@@ -414,10 +414,8 @@ install-arch-dep: mkdir
 	    exec_prefix=${exec_prefix} bindir=${bindir} \
 	    libexecdir=${libexecdir} archlibdir=${archlibdir} \
 	    INSTALL_STRIP=${INSTALL_STRIP})
-	${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs${EXEEXT} $(DESTDIR)${bindir}/$(EMACSFULL)
-	-chmod 1755 $(DESTDIR)${bindir}/$(EMACSFULL)
-	rm -f $(DESTDIR)${bindir}/$(EMACS)
-	-ln $(DESTDIR)${bindir}/$(EMACSFULL) $(DESTDIR)${bindir}/$(EMACS)
+	${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs${EXEEXT} $(DESTDIR)${bindir}/$(EMACS)
+	-chmod 1755 $(DESTDIR)${bindir}/$(EMACS)
 	-unset CDPATH; \
 	for f in `cd lib-src && echo fns-*.el`; do \
 	  if test -r lib-src/$$f ; then \
@@ -586,15 +584,19 @@ install-arch-indep: mkdir info install-e
 	    test "$(MAKEINFO)" = "off" && ! test -e $$elt && continue; \
 	    (cd $${thisdir}; \
 	     ${INSTALL_INFO} --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \
+	     chmod a+r $(DESTDIR)${infodir}/$$elt; \
+	     gzip -f9  $(DESTDIR)${infodir}/$$elt; \
 	  done; \
 	else true; fi
 	-chmod -R a+r $(DESTDIR)${datadir}/emacs/${version} ${COPYDESTS}
 	thisdir=`/bin/pwd`; \
 	cd ${mansrcdir}; \
+	cp ctags.1 gnuctags.1; \
 	for page in ${MAN_PAGES}; do \
 	  (cd $${thisdir}; \
 	   ${INSTALL_DATA} ${mansrcdir}/$${page} $(DESTDIR)${man1dir}/$${page}; \
 	   chmod a+r $(DESTDIR)${man1dir}/$${page}); \
+	   gzip -f9  $(DESTDIR)${man1dir}/$${page}${manext}; \
 	done
 
 ## Install those items from etc/ that need to end up elsewhere.
@@ -677,7 +679,7 @@ uninstall:
 	    done; \
 	  done;)
 	(cd $(DESTDIR)${man1dir}  && rm -f $(MAN_PAGES))
-	(cd $(DESTDIR)${bindir}  && rm -f $(EMACSFULL) $(EMACS))
+	(cd $(DESTDIR)${bindir}  && rm -f $(EMACS))
 	(cd $(DESTDIR)${icondir} && rm -f hicolor/*x*/apps/emacs.png hicolor/*x*/apps/emacs22.png hicolor/scalable/apps/emacs.svg hicolor/scalable/mimetypes/emacs-document.svg )
 	-rm -f $(DESTDIR)${desktopdir}/emacs.desktop
 	for file in snake-scores tetris-scores; do \
--- configure.in
+++ configure.in	2011-07-11 10:45:13.843926716 +0200
@@ -457,11 +457,11 @@ dnl see the `changequote' comment above.
     esac
   ;;
 
-  alpha*-*-linux-gnu* )
+  alpha*-*-linux* )
     machine=alpha opsys=gnu-linux
   ;;
 
-  arm*-*-linux-gnu* )
+  arm*-*-linux* )
     machine=arm opsys=gnu-linux
   ;;
 
@@ -497,15 +497,15 @@ dnl see the `changequote' comment above.
     machine=hp800 opsys=hpux11
   ;;
 
-  hppa*-*-linux-gnu* )
+  hppa*-*-linux* )
     machine=hp800 opsys=gnu-linux
   ;;
 
   ## IBM machines
-  s390-*-linux-gnu* )
+  s390-*-linux* )
     machine=ibms390 opsys=gnu-linux
   ;;
-  s390x-*-linux-gnu* )
+  s390x-*-linux* )
     machine=ibms390x opsys=gnu-linux
   ;;
   rs6000-ibm-aix4.2* | powerpc-ibm-aix4.2*  )
@@ -539,7 +539,7 @@ dnl see the `changequote' comment above.
   ;;
 
   ## Suns
-  sparc-*-linux-gnu* | sparc64-*-linux-gnu* )
+  sparc-*-linux* | sparc64-*-linux* )
     machine=sparc opsys=gnu-linux
   ;;
 
@@ -611,7 +611,7 @@ dnl see the `changequote' comment above.
       *-darwin* )               opsys=darwin
                                 CPP="${CC-cc} -E -no-cpp-precomp"
  				;;
-      *-linux-gnu* )		opsys=gnu-linux ;;
+      *-linux* )		opsys=gnu-linux ;;
       *-sysv4.2uw* )	  	opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
       *-sysv5uw* )	  	opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
       *-sysv5OpenUNIX* )  	opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
@@ -620,28 +620,28 @@ dnl see the `changequote' comment above.
   ;;
 
   ## m68k Linux-based GNU system
-  m68k-*-linux-gnu* )
+  m68k-*-linux* )
     machine=m68k opsys=gnu-linux
   ;;
 
   ## Mips Linux-based GNU system
-  mips-*-linux-gnu* | mipsel-*-linux-gnu* \
-    | mips64-*-linux-gnu* | mips64el-*-linux-gnu* )
+  mips-*-linux* | mipsel-*-linux* \
+    | mips64-*-linux* | mips64el-*-linux* )
     machine=mips opsys=gnu-linux
   ;;
 
   ## AMD x86-64 Linux-based GNU system
-  x86_64-*-linux-gnu* )
+  x86_64-*-linux* )
     machine=amdx86-64 opsys=gnu-linux
   ;;
 
   ## Tensilica Xtensa Linux-based GNU system
-  xtensa*-*-linux-gnu* )
+  xtensa*-*-linux* )
     machine=xtensa opsys=gnu-linux
     ;;
 
   ## SuperH Linux-based GNU system
-  sh[34]*-*-linux-gnu* )
+  sh[34]*-*-linux* )
     machine=sh3 opsys=gnu-linux
   ;;
 
@@ -1010,7 +1010,7 @@ AC_SYS_LARGEFILE
 ## Note: at present CRT_DIR is only used for amdx86-64 and ibms390x.
 ## Other machine types hard-code the location in src/[ms]/*.h.
 case "${canonical}" in
-  x86_64-*-linux-gnu* | s390x-*-linux-gnu* )
+  x86_64-*-linux* | s390x-*-linux* )
    ## On x86-64 and s390x GNU/Linux distributions, the standard library
    ## can be in a variety of places.  We only try /usr/lib64 and /usr/lib.
    ## For anything else (eg /usr/lib32), it is up the user to specify
@@ -1321,8 +1321,8 @@ fi
 
 if test "${x_libraries}" != NONE; then
   if test -n "${x_libraries}"; then
-    LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
-    LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
+    LD_SWITCH_X_SITE="-L ${x_libraries%%:*}"
+    LD_SWITCH_X_SITE_AUX="-rpath-link ${x_libraries%%:*}"
   fi
   x_default_search_path=""
   x_search_path=${x_libraries}
@@ -2711,7 +2711,7 @@ AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${L
  your loader can find on its own, you might want to add "-L/..." or
  something similar.])
 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX},
-		   [Define LD_SWITCH_X_SITE_AUX with an -R option
+		   [Define LD_SWITCH_X_SITE_AUX with an -rpath-link option
 		    in case it's needed (for Solaris, for example).])
 AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE,  ${C_SWITCH_X_SITE},
 [Define C_SWITCH_X_SITE to contain any special flags your compiler
--- doc/man/etags.1
+++ doc/man/etags.1	2009-08-11 12:59:38.000000000 +0000
@@ -7,7 +7,7 @@
 ..
 
 .SH NAME
-etags, ctags \- generate tag file for Emacs, vi
+etags, gnuctags \- generate tag file for Emacs, vi
 .SH SYNOPSIS
 .hy 0
 .na
@@ -24,7 +24,7 @@ etags, ctags \- generate tag file for Em
 [\|\-\-help\|] [\|\-\-version\|]
 \fIfile\fP .\|.\|.
 
-\fBctags\fP [\|\-aCdgIRVh\|] [\|\-BtTuvwx\|] [\|\-l \fIlanguage\fP\|]
+\fBgnuctags\fP [\|\-aCdgIRVh\|] [\|\-BtTuvwx\|] [\|\-l \fIlanguage\fP\|]
 .if n .br
 [\|\-o \fItagfile\fP\|] [\|\-r \fIregexp\fP\|]
 [\|\-\-parse\-stdin=\fIfile\fP\|]
@@ -43,7 +43,7 @@ etags, ctags \- generate tag file for Em
 The \|\fBetags\fP\| program is used to create a tag table file, in a format
 understood by
 .BR emacs ( 1 )\c
-\&; the \|\fBctags\fP\| program is used to create a similar table in a
+\&; the \|\fBgnuctags\fP\| program is used to create a similar table in a
 format understood by
 .BR vi ( 1 )\c
 \&.  Both forms of the program understand
@@ -53,7 +53,7 @@ PHP, Postscript, Python, Prolog, Scheme
 most assembler\-like syntaxes.
 Both forms read the files specified on the command line, and write a tag
 table (defaults: \fBTAGS\fP for \fBetags\fP, \fBtags\fP for
-\fBctags\fP) in the current working directory.
+\fBgnuctags\fP) in the current working directory.
 Files specified with relative file names will be recorded in the tag
 table with file names relative to the directory where the tag table
 resides.  If the tag table is in /dev or is the standard output,
@@ -69,7 +69,7 @@ parsing of the file names following the
 language, overriding guesses based on filename extensions.
 .SH OPTIONS
 Some options make sense only for the \fBvi\fP style tag files produced
-by ctags;
+by gnuctags;
 \fBetags\fP does not recognize them.
 The programs accept unambiguous abbreviations for long option names.
 .TP
@@ -83,7 +83,7 @@ expression search instructions; the \fB\
 the delimiter `\|\fB?\fP\|', to search \fIbackwards\fP through files.
 The default is to use the delimiter `\|\fB/\fP\|', to search \fIforwards\fP
 through files.
-Only \fBctags\fP accepts this option.
+Only \fBgnuctags\fP accepts this option.
 .TP
 .B \-\-declarations
 In C and derived languages, create tags for function declarations,
@@ -157,7 +157,7 @@ the previous ones.  The regexps are of o
 where \fItagregexp\fP is used to match the tag.  It should not match
 useless characters.  If the match is such that more characters than
 needed are unavoidably matched by \fItagregexp\fP, it may be useful to
-add a \fInameregexp\fP, to narrow down the tag scope.  \fBctags\fP
+add a \fInameregexp\fP, to narrow down the tag scope.  \fBgnuctags\fP
 ignores regexps without a \fInameregexp\fP.  The syntax of regexps is
 the same as in emacs.  The following character escape sequences are
 supported: \\a, \\b, \\d, \\e, \\f, \\n, \\r, \\t, \\v, which
@@ -236,15 +236,15 @@ tag entries for other files in place.  C
 by deleting the existing entries for the given files and then
 rewriting the new entries at the end of the tags file.  It is often
 faster to simply rebuild the entire tag file than to use this.
-Only \fBctags\fP accepts this option.
+Only \fBgnuctags\fP accepts this option.
 .TP
 .B \-v, \-\-vgrind
 Instead of generating a tag file, write index (in \fBvgrind\fP format)
-to standard output.  Only \fBctags\fP accepts this option.
+to standard output.  Only \fBgnuctags\fP accepts this option.
 .TP
 .B \-x, \-\-cxref
 Instead of generating a tag file, write a cross reference (in
-\fBcxref\fP format) to standard output.  Only \fBctags\fP accepts this option.
+\fBcxref\fP format) to standard output.  Only \fBgnuctags\fP accepts this option.
 .TP
 .B \-h, \-H, \-\-help
 Print usage information.  Followed by one or more \-\-language=LANG
--- etc/MACHINES
+++ etc/MACHINES	2009-08-12 13:15:31.000000000 +0000
@@ -34,7 +34,7 @@ to operating system names (i.e. sunos4.1
 hppa1.1).  If you leave out the version number, the `configure' script
 will configure Emacs for the latest version it knows about.
 
-Alpha (DEC) running GNU/Linux (alpha-dec-linux-gnu)
+Alpha (DEC) running GNU/Linux (alpha-dec-linux)
 
   DEC C compiler version 5.9 (DEC C V5.9-005 on Digital UNIX V4.0f)
   is reported to produce bogus binaries of Emacs 21.2 when the
@@ -196,12 +196,12 @@ IBM RS/6000 (rs6000-ibm-aix*)
   If anyone can fix the above problems, or confirm that they don't happen
   with certain versions of various programs, we would appreciate it.
 
-IBM System/390 running GNU/Linux (s390-*-linux-gnu)
+IBM System/390 running GNU/Linux (s390-*-linux)
 
   As of Emacs 21.2, a 31-bit only version is supported on this
   system.
 
-Intel 386 (i386-*-freebsd,      i386-*-linux-gnu,
+Intel 386 (i386-*-freebsd,      i386-*-linux,
 	   i386-*-sol2.4,	i386-intsys-sysv,
 	   i386-*-sysv4,	i386-*-sysv4.2,  i386-*-cygwin,
 	   i386-*-msdos,	i386-*-windowsnt.
@@ -211,7 +211,7 @@ Intel 386 (i386-*-freebsd,      i386-*-l
   you specify does not matter, and you can use any name you like
   (but it should not contain any dashes or stars).
 
-  Use i386-*-linux-gnu for GNU/Linux systems; Emacs runs as of version 19.26.
+  Use i386-*-linux for GNU/Linux systems; Emacs runs as of version 19.26.
   Use i386-*-cygwin for Cygwin; Emacs builds as of version 22.1, in both X11
   and non-X11 modes.  (The Cygwin site has source and binaries for 21.2.)
   Use i386-intsys-sysv for Integrated Solutions 386 machines.
@@ -322,7 +322,7 @@ Siemens Nixdorf RM600 and RM400 (mips-si
     LIBXT= $(LIBW) -lXmu /usr/lib/libXt.a $(LIBXTR6) -lXext
 
 Sun 4 (sparc), Sun 386 (sparc-sun-solaris2.*,
-    			       i386-sun-solaris2.*, sparc*-*-linux-gnu)
+    			       i386-sun-solaris2.*, sparc*-*-linux)
 
   To build a 32-bit Emacs (i.e. if you are having any sort of problem
   bootstrapping a 64-bit version), you can use the Sun Studio compiler
@@ -426,7 +426,7 @@ Sun 4 (sparc), Sun 386 (sparc-sun-solari
   (now remapped as part of the text).  These are never
   swapped in.
 
-SuperH (sh[34]*-*-linux-gnu)
+SuperH (sh[34]*-*-linux)
 
   Emacs 23.0.60 was reported to work on GNU/Linux (October 2008).
   Tested on a little-endian sh4 system (cpu type SH7751R) running
@@ -525,7 +525,7 @@ X86_64 GNU/Linux
   build a 32-bit Emacs, first ensure that the necessary 32-bit system
   libraries and include files are installed.  Then use:
 
-    env CC="gcc -m32" ./configure --build=i386-linux-gnu \
+    env CC="gcc -m32" ./configure --build=i386-linux \
       --x-libraries=/usr/X11R6/lib
 
   (using the location of the 32-bit X libraries on your system).
--- leim/Makefile.in
+++ leim/Makefile.in	2007-05-22 13:58:19.000000000 +0000
@@ -222,6 +222,9 @@ leim-list.el: ${SUBDIRS} ${TIT-MISC} cha
 
 MV_DIRS = for i in $$dir; do rm -fr `basename "$$i"` ; mv "$$i" . ; done
 
+${WORLD}: %.elc: %.el
+	${RUN-EMACS} -f batch-byte-compile $<
+
 install: all
 	if [ ! -d ${INSTALLDIR} ] ; then \
           umask 022; ${srcdir}/${dot}${dot}/mkinstalldirs ${INSTALLDIR}; \
--- lib-src/Makefile.in
+++ lib-src/Makefile.in	2009-08-12 13:20:12.000000000 +0000
@@ -105,7 +105,7 @@ INSTALL_STRIP =
 
 # Things that a user might actually run,
 # which should be installed in bindir.
-INSTALLABLES = etags${EXEEXT} ctags${EXEEXT} emacsclient${EXEEXT} b2m${EXEEXT} ebrowse${EXEEXT} @LIB_SRC_EXTRA_INSTALLABLES@
+INSTALLABLES = emacsclient${EXEEXT} b2m${EXEEXT} ebrowse${EXEEXT} @LIB_SRC_EXTRA_INSTALLABLES@
 INSTALLABLE_SCRIPTS = rcs-checkin grep-changelog
 
 # Things that Emacs runs internally, or during the build process,
@@ -414,8 +414,8 @@ ebrowse${EXEEXT}: ${srcdir}/ebrowse.c $(
 
 /* We depend on etags to assure that parallel makes don\'t write two
    etags.o files on top of each other.  */
-ctags${EXEEXT}: etags${EXEEXT}
-	$(CC) ${ETAGS_CFLAGS} -DCTAGS -DEMACS_NAME="\"GNU Emacs\"" -DVERSION="\"${version}\"" ${srcdir}/etags.c $(GETOPTOBJS) $(REGEXPOBJ) $(LOADLIBES) -o ctags
+gnuctags${EXEEXT}: etags${EXEEXT}
+	$(CC) ${ETAGS_CFLAGS} -DCTAGS -DEMACS_NAME="\"GNU Emacs\"" -DVERSION="\"${version}\"" ${srcdir}/etags.c $(GETOPTOBJS) $(REGEXPOBJ) $(LOADLIBES) -o gnuctags
 
 profile${EXEEXT}: ${srcdir}/profile.c ../src/config.h
 	$(CC) ${ALL_CFLAGS} ${srcdir}/profile.c $(LOADLIBES) -o profile
--- lib-src/pop.c
+++ lib-src/pop.c	2011-11-28 08:38:56.235647209 +0000
@@ -29,6 +29,7 @@ along with GNU Emacs.  If not, see <http
 #ifdef MAIL_USE_POP
 
 #include <sys/types.h>
+#include <ctype.h>
 #ifdef WINDOWSNT
 #include "ntlib.h"
 #include <winsock.h>
--- lib-src/vcdiff
+++ lib-src/vcdiff	2009-08-12 13:22:18.000000000 +0000
@@ -76,6 +76,8 @@ esac
 
 
 rev1= rev2= status=0
+rev1=/tmp/getaXXXXXXXX
+rev2=/tmp/getbXXXXXXXX
 trap 'status=2; exit' 1 2 13 15
 trap 'rm -f $rev1 $rev2 || status=2; exit $status' 0
 
@@ -86,14 +88,14 @@ do
 	case $f in
 	s.* | */s.*)
 		if
-			rev1=`mktemp /tmp/geta.XXXXXXXX`
+			rev1=`mktemp ${rev1}` || exit 1
 			sccs get -s -p -k $sid1 "$f" > $rev1 &&
 			case $sid2 in
 			'')
 				workfile=`expr " /$f" : '.*/s.\(.*\)'`
 				;;
 			*)
-				rev2=`mktemp /tmp/getb.XXXXXXXX`
+				rev2=`mktemp ${rev2}` || exit 1
 				sccs get -s -p -k $sid2 "$f" > $rev2
 				workfile=$rev2
 			esac
--- lisp/cmuscheme.el
+++ lisp/cmuscheme.el	2009-08-12 13:29:47.000000000 +0000
@@ -241,7 +241,8 @@ is run).
 			 (read-string "Run Scheme: " scheme-program-name)
 			 scheme-program-name)))
   (if (not (comint-check-proc "*scheme*"))
-      (let ((cmdlist (split-string-and-unquote cmd)))
+      (let ((cmdlist (split-string-and-unquote cmd))
+	    process-connection-type)
 	(set-buffer (apply 'make-comint "scheme" (car cmdlist)
 			   (scheme-start-file (car cmdlist)) (cdr cmdlist)))
 	(inferior-scheme-mode)))
--- lisp/dired.el
+++ lisp/dired.el	2010-10-18 14:02:19.947926253 +0000
@@ -72,12 +72,12 @@ If nil, `dired-listing-switches' is used
 ;;;###autoload
 (defvar dired-chown-program
   (purecopy
-  (if (memq system-type '(hpux usg-unix-v irix linux gnu/linux cygwin))
+  (if (memq system-type '(hpux usg-unix-v irix gnu/linux linux lignux cygwin))
       "chown"
     (if (file-exists-p "/usr/sbin/chown")
 	"/usr/sbin/chown"
-      "/etc/chown")))
-  "Name of chown command (usually `chown' or `/etc/chown').")
+      "/bin/chown")))
+  "Name of chown command (usually `chown' or `/bin/chown').")
 
 (defvar dired-use-ls-dired (not (not (string-match "gnu" system-configuration)))
   "Non-nil means Dired should use `ls --dired'.")
--- lisp/help.el
+++ lisp/help.el	2007-05-15 16:57:09.000000000 +0000
@@ -56,6 +56,9 @@
 (defvar help-window-point-marker (make-marker)
   "Marker to override default `window-point' of `help-window'.")
 
+(defvar help-mode-hook nil
+    "Normal hook run when entering Help mode.")
+
 (defvar help-map
   (let ((map (make-sparse-keymap)))
     (define-key map (char-to-string help-char) 'help-for-help)
--- lisp/ldefs-boot.el
+++ lisp/ldefs-boot.el	2010-10-18 14:03:38.956426343 +0000
@@ -6072,8 +6072,8 @@ some of the `ls' switches are not suppor
 
 (custom-autoload 'dired-listing-switches "dired" t)
 
-(defvar dired-chown-program (purecopy (if (memq system-type '(hpux usg-unix-v irix linux gnu/linux cygwin)) "chown" (if (file-exists-p "/usr/sbin/chown") "/usr/sbin/chown" "/etc/chown"))) "\
-Name of chown command (usually `chown' or `/etc/chown').")
+(defvar dired-chown-program (if (memq system-type '(hpux usg-unix-v irix gnu/linux linux lignux cygwin)) "chown" (if (file-exists-p "/usr/sbin/chown") "/usr/sbin/chown" "/bin/chown")) "\
+Name of chown command (usually `chown' or `/bin/chown').")
 
 (defvar dired-trivial-filenames (purecopy "^\\.\\.?$\\|^#") "\
 Regexp of files to skip when finding first file of a directory.
--- lisp/site-load.el
+++ lisp/site-load.el	2009-08-12 17:19:34.000000000 +0000
@@ -0,0 +1,61 @@
+;;;;
+;;; emacs20.xx/lisp/site-load.el
+;;; Copyright (c) 1995,96,98,99 SuSE Gmbh Nuernberg, Germany.  All rights reserved.
+;;;
+;;; Autor: Werner Fink  <werner@suse.de>, No warranty of any kind
+;;;;
+;; CONFIGURATION (under bash):
+;; (export CC=gcc; \
+;;  export CFLAGS="-O2 $(arch dependent flags) -pipe \
+;;          -DSYSTEM_PURESIZE_EXTRA=25000 -DSITELOAD_PURESIZE_EXTRA=10000" ; \
+;;  ./configure $(arch)-suse-linux --with-x --with-x-toolkit=lucid \
+;;              --with-gcc --with-pop --with-system-malloc --prefix=/usr \
+;;		--exec-prefix=/usr \
+;;              --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib )
+;;
+;; include bug fixes you have
+;;
+;; MAKE:
+;;   make LDFLAGS=-s CC=gcc CFLAGS="-O2 $(arch dependent flags) -pipe \
+;;    -DSYSTEM_PURESIZE_EXTRA=25000 -DSITELOAD_PURESIZE_EXTRA=10000"
+;;
+;; DOC:
+;;   lisp/emacs-lisp/backquote.elc lisp/disp-table.elc lisp/delsel.elc
+;;   lisp/lpr.elc added to src/Makefile.in for DOCumentation
+;;
+;;;;
+(garbage-collect)
+
+(if (fboundp 'delete-frame)
+    (progn
+      (load "emacs-lisp/backquote"))
+      (garbage-collect))
+
+(load "disp-table")
+(garbage-collect)
+
+(load "lpr")
+(setq lpr-headers-switches (list "-h"))
+(setq lpr-add-switches t)
+(garbage-collect)
+
+;; Scrollbar was always on the `right' side
+(custom-set-variables '(scroll-bar-mode (quote right)))
+(garbage-collect)
+
+;; Highlight marked regions
+(custom-set-variables '(transient-mark-mode 1))
+(custom-set-variables '(mark-even-if-inactive t))
+(garbage-collect)
+
+;; Overwrite `load delsel'
+;; Choose `t' in your ~/.emacs
+(custom-set-variables '(delete-selection-mode nil))
+(garbage-collect)
+
+(setq news-inews-program "/usr/lib/news/inews")
+(setq gnus-default-nntp-server "news")
+(defvar gnus-local-domain nil)
+(garbage-collect)
+
+;;; site-load.el ends here
--- lisp/speedbar.el
+++ lisp/speedbar.el	2003-07-23 16:08:56.000000000 +0000
@@ -798,6 +798,7 @@ to toggle this value.")
 
   ;; navigation
   (define-key speedbar-key-map "n" 'speedbar-next)
+  (define-key speedbar-key-map [tab] 'speedbar-next)
   (define-key speedbar-key-map "p" 'speedbar-prev)
   (define-key speedbar-key-map "\M-n" 'speedbar-restricted-next)
   (define-key speedbar-key-map "\M-p" 'speedbar-restricted-prev)
--- lisp/international/mule-cmds.el
+++ lisp/international/mule-cmds.el	2010-10-18 14:06:48.303926020 +0000
@@ -42,6 +42,7 @@
 
 (defvar mule-keymap
   (let ((map (make-sparse-keymap)))
+    (define-key map "m" 'toggle-enable-multibyte-characters)
     (define-key map "f" 'set-buffer-file-coding-system)
     (define-key map "r" 'revert-buffer-with-coding-system)
     (define-key map "F" 'set-file-name-coding-system)
--- lisp/mh-e/mh-e.el
+++ lisp/mh-e/mh-e.el	2007-05-21 12:27:40.000000000 +0000
@@ -142,6 +142,9 @@
     "/usr/local/mh/"
     "/usr/bin/mh/"                      ; Ultrix 4.2, Linux
     "/usr/new/mh/"                      ; Ultrix < 4.2
+    "/usr/bin/"				; SuSE Linux
+    "/etc/nmh/"				; SuSE Linux
+    "/usr/lib/nmh/"			; SuSE Linux
     "/usr/contrib/mh/bin/"              ; BSDI
     "/usr/pkg/bin/"                     ; NetBSD
     "/usr/local/bin/"
@@ -162,20 +165,20 @@ Use the function `mh-variants' instead."
 This differs from `mh-variant' when the latter is set to
 \"autodetect\".")
 
-(defvar mh-progs nil
+(defvar mh-progs "/usr/bin/"
   "Directory containing MH commands, such as inc, repl, and rmm.")
 
 ;;;###autoload
 (put 'mh-progs 'risky-local-variable t)
 
-(defvar mh-lib nil
+(defvar mh-lib "/etc/nmh/"
   "Directory containing the MH library.
 This directory contains, among other things, the components file.")
 
 ;;;###autoload
 (put 'mh-lib 'risky-local-variable t)
 
-(defvar mh-lib-progs nil
+(defvar mh-lib-progs "/usr/lib/nmh/"
   "Directory containing MH helper programs.
 This directory contains, among other things, the mhl program.")
 
--- lisp/net/ange-ftp.el
+++ lisp/net/ange-ftp.el	2009-08-12 13:35:06.000000000 +0000
@@ -4957,7 +4957,7 @@ NEWNAME should be the name to give the n
 ;  "If a host matches this regexp then it is assumed to be running VOS.")
 ;
 ;(defun ange-ftp-vos-host (host)
-;  (and ange-ftp-vos-host-regexp
+;  (and host ange-ftp-vos-host-regexp
 ;       (save-match-data
 ;	 (string-match ange-ftp-vos-host-regexp host))))
 ;
@@ -5068,7 +5068,7 @@ NEWNAME should be the name to give the n
 
 ;; Return non-nil if HOST is running VMS.
 (defun ange-ftp-vms-host (host)
-  (and ange-ftp-vms-host-regexp
+  (and host ange-ftp-vms-host-regexp
        (string-match-p ange-ftp-vms-host-regexp host)))
 
 ;; Because some VMS ftp servers convert filenames to lower case
@@ -5576,7 +5576,7 @@ Other orders of $ and _ seem to all work
 
 ;; Return non-nil if HOST is running MTS.
 (defun ange-ftp-mts-host (host)
-  (and ange-ftp-mts-host-regexp
+  (and host ange-ftp-mts-host-regexp
        (string-match-p ange-ftp-mts-host-regexp host)))
 
 ;; Parse the current buffer which is assumed to be in mts ftp dir format.
@@ -5774,7 +5774,7 @@ Other orders of $ and _ seem to all work
 
 ;; Return non-nil if HOST is running CMS.
 (defun ange-ftp-cms-host (host)
-  (and ange-ftp-cms-host-regexp
+  (and host ange-ftp-cms-host-regexp
        (string-match-p ange-ftp-cms-host-regexp host)))
 
 (defun ange-ftp-add-cms-host (host)
--- lisp/textmodes/ispell.el
+++ lisp/textmodes/ispell.el	2009-08-12 13:49:26.000000000 +0000
@@ -348,10 +348,13 @@ Must be greater than 1."
   :group 'ispell)
 
 (defcustom ispell-program-name
-  (or (locate-file "aspell"   exec-path exec-suffixes 'file-executable-p)
-      (locate-file "ispell"   exec-path exec-suffixes 'file-executable-p)
-      (locate-file "hunspell" exec-path exec-suffixes 'file-executable-p)
-      "ispell")
+  (progn
+    (if (and (functionp 'append-ispell-dict-alist))
+        "ispell"
+	(or (locate-file "aspell"   exec-path exec-suffixes 'file-executable-p)
+	    (locate-file "ispell"   exec-path exec-suffixes 'file-executable-p)
+	    (locate-file "hunspell" exec-path exec-suffixes 'file-executable-p)
+	    "ispell")))
   "Program invoked by \\[ispell-word] and \\[ispell-region] commands."
   :type 'string
   :group 'ispell)
@@ -1138,6 +1141,56 @@ The variable `ispell-library-directory'
 (if ispell-menu-map-needed
     (progn
       (setq ispell-menu-map (make-sparse-keymap "Spell"))
+      ;; Begin adding list for ispell dictonaries installed on SuSE
+      (if (and (functionp 'append-ispell-dict-alist)
+	       (symbolp 'ispell-program-name)
+	       (string-match "ispell" ispell-program-name))
+	(let ((dicts (reverse (cons (cons "default" nil)
+		       (append ispell-local-dictionary-alist ispell-dictionary-alist))))
+	      (path (and (boundp 'ispell-library-path) ispell-library-path))
+	      name load-dict)
+	  (dolist (dict dicts)
+	    (setq name (car dict)
+		  load-dict (car (cdr (member "-d" (nth 5 dict)))))
+	    (cond ((not (stringp name))
+		   (define-key ispell-menu-map (vector 'default)
+		     (cons "Select Default Dict"
+			   (cons "Dictionary for which Ispell was configured"
+				 (list 'lambda () '(interactive)
+				       (list 'ispell-change-dictionary "default"))))))
+		  ((or (not path)           ; load all if library dir not defined
+		       (file-exists-p (concat path "/" name ".hash"))
+		       (file-exists-p (concat path "/" name ".has"))
+		       (and load-dict
+			    (or (file-exists-p(concat path "/" load-dict ".hash"))
+				(file-exists-p(concat path "/" load-dict ".has")))))
+		   (define-key ispell-menu-map (vector (intern name))
+		     (cons (concat "Select " (capitalize name) " Dict")
+			   (list 'lambda () '(interactive)
+				 (list 'ispell-change-dictionary name))))))))
+	 (if (and (functionp 'ispell-find-aspell-dictionaries)
+		  (symbolp 'ispell-program-name)
+		  (string-match "aspell" ispell-program-name))
+	     (progn
+	       (ispell-find-aspell-dictionaries)
+	       (let ((dicts (reverse (cons (cons "default" nil)
+			      (append ispell-local-dictionary-alist ispell-dictionary-alist))))
+		     name load-dict)
+		 (dolist (dict dicts)
+		   (setq name (car dict))
+		   (cond ((not (stringp name))
+			  (define-key ispell-menu-map (vector 'default)
+			    (cons "Select Default Dict"
+				  (cons "Dictionary for which Aspell was configured"
+					(list 'lambda () '(interactive)
+					      (list 'ispell-change-dictionary "default"))))))
+			 ((and (stringp name)
+			       (ispell-aspell-find-dictionary name))
+			  (define-key ispell-menu-map (vector (intern name))
+			    (cons (concat "Select " (capitalize name) " Dict")
+				  (list 'lambda () '(interactive)
+					(list 'ispell-change-dictionary name)))))))))))
+      ;; End adding list for ispell dictonaries installed on SuSE
       (define-key ispell-menu-map [ispell-change-dictionary]
 	`(menu-item ,(purecopy "Change Dictionary...") ispell-change-dictionary
 		    :help ,(purecopy "Supply explicit dictionary file name")))
--- site-lisp/term/func-keys.el
+++ site-lisp/term/func-keys.el	2003-07-23 16:08:56.000000000 +0000
@@ -0,0 +1,33 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; term/func-keys.el for site-lisp path
+;;; Copyright (c) 1996-2001 SuSE Gmbh Nuernberg, Germany.
+;;;
+;;; Author: Werner Fink  <werner@suse.de>, No warranty of any kind
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; num block
+;; kp_f1 .. kp_f4 and kp_tab not found on MF-102
+  (global-set-key [kp-f1]   esc-map) ; Escape
+  (global-set-key [kp-f2]  'undo) ; Undo
+  (global-set-key [kp-f3]  'isearch-forward) ; Search
+  (global-set-key [kp-f4]  'kill-line) ; Kill-Line
+;;
+;; Backspace, Delete and any thing else
+;;
+(if (not window-system)
+      ; Do nothing within terminals because they know about
+      nil
+  (if (fboundp 'normal-erase-is-backspace-mode)
+     (normal-erase-is-backspace-mode 1)
+    (global-set-key   [delete]      'delete-char))
+ ;(global-set-key   [delete]      '[127])
+ ;(global-unset-key [backspace])
+ ;(global-set-key   [backspace]   '[127])
+)
+;;
+;; Wheel mouse support
+;;
+(if (fboundp 'mouse-wheel-mode)
+  (mouse-wheel-mode 1)
+)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Ende von func-keys.el
--- site-lisp/term/gnome.el
+++ site-lisp/term/gnome.el	2003-07-23 16:08:56.000000000 +0000
@@ -0,0 +1,97 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; term/gnomw.el for site-lisp path
+;;; Copyright (c) 2000 SuSE Gmbh Nuernberg, Germany.  All rights reserved.
+;;;
+;;; Author: Werner Fink  <werner@suse.de>, No warranty of any kind
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; (define-key function-key-map "\e[1~" [find])
+; (define-key function-key-map "\eOH"  [home])
+  (define-key function-key-map "\e[1~" [home])
+  (define-key function-key-map "\e[2~" [insertchar])
+  (define-key function-key-map "\e[3~" [deletechar])
+; (define-key function-key-map "\e[4~" [select])
+; (define-key function-key-map "\eOF"  [end])
+  (define-key function-key-map "\e[4~" [end])
+  (define-key function-key-map "\e[5~" [prior])
+  (define-key function-key-map "\e[6~" [next])
+  (define-key function-key-map "\e[OP" [f1])
+  (define-key function-key-map "\e[OQ" [f2])
+  (define-key function-key-map "\e[OR" [f3])
+  (define-key function-key-map "\e[OS" [f4])
+  (define-key function-key-map "\e[15~" [f5])
+  (define-key function-key-map "\e[17~" [f6])
+  (define-key function-key-map "\e[18~" [f7])
+  (define-key function-key-map "\e[19~" [f8])
+  (define-key function-key-map "\e[20~" [f9])
+  (define-key function-key-map "\e[21~" [f10])
+  (define-key function-key-map "\e[23~" [f11])
+  (define-key function-key-map "\e[24~" [f12])
+  (define-key function-key-map "\e[25~" [f13])
+  (define-key function-key-map "\e[26~" [f14])
+  (define-key function-key-map "\e[28~" [help])
+  (define-key function-key-map "\e[29~" [menu])
+  (define-key function-key-map "\e?\e[28~" [M-help])
+  (define-key function-key-map "\e?\e[29~" [M-menu])
+  (define-key function-key-map "\e[31~" [f17])
+  (define-key function-key-map "\e[32~" [f18])
+  (define-key function-key-map "\e[33~" [f19])
+  (define-key function-key-map "\e[34~" [f20])
+;;
+;; num block
+;; [home] and [end] found in num block
+; (define-key function-key-map "\eOH" [home])
+; (define-key function-key-map "\eOF" [end])
+  (define-key function-key-map "\e[1~" [home])
+  (define-key function-key-map "\e[4~" [end])
+;;
+;; Locked num block
+  (define-key function-key-map "\eOI" [kp-tab])
+  (define-key function-key-map "\eOj" [kp-multiply])
+  (define-key function-key-map "\eOk" [kp-add])
+  (define-key function-key-map "\eOl" [kp-separator])
+  (define-key function-key-map "\eOM" [kp-enter])
+  (define-key function-key-map "\eOm" [kp-subtract])
+  (define-key function-key-map "\eOn" [kp-decimal])
+; (define-key function-key-map "\eOn" [kp-period]) ; [kp-decimal]
+  (define-key function-key-map "\eOo" [kp-divide])
+  (define-key function-key-map "\eOp" [kp-0])
+  (define-key function-key-map "\eOq" [kp-1])
+  (define-key function-key-map "\eOr" [kp-2])
+  (define-key function-key-map "\eOs" [kp-3])
+  (define-key function-key-map "\eOt" [kp-4])
+  (define-key function-key-map "\eOu" [kp-5])
+  (define-key function-key-map "\eOv" [kp-6])
+  (define-key function-key-map "\eOw" [kp-7])
+  (define-key function-key-map "\eOx" [kp-8])
+  (define-key function-key-map "\eOy" [kp-9])
+;;
+;; Undefine some ESC ESC behavior --- for later use
+  (global-unset-key "\e\e")
+  (define-key esc-map "\e" nil)
+;;
+  (define-key function-key-map  "\eOD" [left])
+  (define-key function-key-map  "\eOC" [right])
+  (define-key function-key-map  "\eOA" [up])
+  (define-key function-key-map  "\eOB" [down])
+;;
+  (define-key function-key-map  "\e\eOD" [M-left])
+  (define-key function-key-map  "\e\eOC" [M-right])
+  (define-key function-key-map  "\e\eOA" [M-up])
+  (define-key function-key-map  "\e\eOB" [M-down])
+;;
+;; Not in Use?
+  (define-key function-key-map "\C-?\eOD" [C-left])
+  (define-key function-key-map "\C-?\eOC" [C-right])
+  (define-key function-key-map "\C-?\eOA" [C-up])
+  (define-key function-key-map "\C-?\eOB" [C-down])
+;;
+;; Backspace, Delete and any thing else
+;;
+  (global-unset-key [insertchar])
+  (global-set-key   [insertchar]  'overwrite-mode)
+  (global-unset-key [deletechar])
+  (global-set-key   [deletechar]  'delete-char)
+;;
+(load "term/func-keys"  nil t)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Ende von gnomw.el
--- site-lisp/term/kvt.el
+++ site-lisp/term/kvt.el	2003-07-23 16:08:56.000000000 +0000
@@ -0,0 +1,97 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; term/kvt.el for site-lisp path
+;;; Copyright (c) 2000 SuSE Gmbh Nuernberg, Germany.  All rights reserved.
+;;;
+;;; Author: Werner Fink  <werner@suse.de>, No warranty of any kind
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+  (define-key function-key-map "\e[1~" [find])
+  (define-key function-key-map "\eOH"  [home])
+  (define-key function-key-map "\e[2~" [insertchar])
+  (define-key function-key-map "\e[3~" [deletechar])
+  (define-key function-key-map "\e[4~" [select])
+  (define-key function-key-map "\eOF"  [end])
+  (define-key function-key-map "\e[5~" [prior])
+  (define-key function-key-map "\e[6~" [next])
+  (define-key function-key-map "\e[11~" [f1])
+  (define-key function-key-map "\e[12~" [f2])
+  (define-key function-key-map "\e[13~" [f3])
+  (define-key function-key-map "\e[14~" [f4])
+  (define-key function-key-map "\e[15~" [f5])
+  (define-key function-key-map "\e[17~" [f6])
+  (define-key function-key-map "\e[18~" [f7])
+  (define-key function-key-map "\e[19~" [f8])
+  (define-key function-key-map "\e[20~" [f9])
+  (define-key function-key-map "\e[21~" [f10])
+  (define-key function-key-map "\e[23~" [f11])
+  (define-key function-key-map "\e[24~" [f12])
+  (define-key function-key-map "\e[25~" [f13])
+  (define-key function-key-map "\e[26~" [f14])
+  (define-key function-key-map "\e[28~" [help])
+  (define-key function-key-map "\e[29~" [menu])
+  (define-key function-key-map "\e?\e[28~" [M-help])
+  (define-key function-key-map "\e?\e[29~" [M-menu])
+  (define-key function-key-map "\e[31~" [f17])
+  (define-key function-key-map "\e[32~" [f18])
+  (define-key function-key-map "\e[33~" [f19])
+  (define-key function-key-map "\e[34~" [f20])
+;;
+;; num block
+;; [home] and [end] found in num block
+  (define-key function-key-map "\eOH" [home])
+  (define-key function-key-map "\eOF" [end])
+;;
+;; Locked num block
+  (define-key function-key-map "\eOP" [kp-f1])
+  (define-key function-key-map "\eOQ" [kp-f2])
+  (define-key function-key-map "\eOR" [kp-f3])
+  (define-key function-key-map "\eOS" [kp-f4])
+  (define-key function-key-map "\eOI" [kp-tab])
+  (define-key function-key-map "\eOj" [kp-multiply])
+  (define-key function-key-map "\eOk" [kp-add])
+  (define-key function-key-map "\eOl" [kp-separator])
+  (define-key function-key-map "\eOM" [kp-enter])
+  (define-key function-key-map "\eOm" [kp-subtract])
+  (define-key function-key-map "\eOn" [kp-decimal])
+; (define-key function-key-map "\eOn" [kp-period]) ; [kp-decimal]
+  (define-key function-key-map "\eOo" [kp-divide])
+  (define-key function-key-map "\eOp" [kp-0])
+  (define-key function-key-map "\eOq" [kp-1])
+  (define-key function-key-map "\eOr" [kp-2])
+  (define-key function-key-map "\eOs" [kp-3])
+  (define-key function-key-map "\eOt" [kp-4])
+  (define-key function-key-map "\eOu" [kp-5])
+  (define-key function-key-map "\eOv" [kp-6])
+  (define-key function-key-map "\eOw" [kp-7])
+  (define-key function-key-map "\eOx" [kp-8])
+  (define-key function-key-map "\eOy" [kp-9])
+;;
+;; Undefine some ESC ESC behavior --- for later use
+  (global-unset-key "\e\e")
+  (define-key esc-map "\e" nil)
+;;
+  (define-key function-key-map  "\eOD" [left])
+  (define-key function-key-map  "\eOC" [right])
+  (define-key function-key-map  "\eOA" [up])
+  (define-key function-key-map  "\eOB" [down])
+;;
+  (define-key function-key-map  "\e\eOD" [M-left])
+  (define-key function-key-map  "\e\eOC" [M-right])
+  (define-key function-key-map  "\e\eOA" [M-up])
+  (define-key function-key-map  "\e\eOB" [M-down])
+;;
+;; Not in Use?
+  (define-key function-key-map "\C-?\eOD" [C-left])
+  (define-key function-key-map "\C-?\eOC" [C-right])
+  (define-key function-key-map "\C-?\eOA" [C-up])
+  (define-key function-key-map "\C-?\eOB" [C-down])
+;;
+;; Backspace, Delete and any thing else
+;;
+  (global-unset-key [insertchar])
+  (global-set-key   [insertchar]  'overwrite-mode)
+  (global-unset-key [deletechar])
+  (global-set-key   [deletechar]  'delete-char)
+;;
+(load "term/func-keys"  nil t)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Ende von kvt.el
--- site-lisp/term/linux.el
+++ site-lisp/term/linux.el	2003-07-23 16:08:56.000000000 +0000
@@ -0,0 +1,79 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; term/linux.el for site-lisp path
+;;; Copyright (c) 1996 SuSE Gmbh Nuernberg, Germany.  All rights reserved.
+;;;
+;;; Author: Werner Fink  <werner@suse.de>, No warranty of any kind
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+  (define-key function-key-map "\e[1~" [home])
+  (define-key function-key-map "\e[2~" [insertchar])
+  (define-key function-key-map "\e[3~" [deletechar])
+  (define-key function-key-map "\e[4~" [end])
+  (define-key function-key-map "\e[5~" [prior])
+  (define-key function-key-map "\e[6~" [next])
+  (define-key function-key-map "\e[[A" [f1])
+  (define-key function-key-map "\e[[B" [f2])
+  (define-key function-key-map "\e[[C" [f3])
+  (define-key function-key-map "\e[[D" [f4])
+  (define-key function-key-map "\e[[E" [f5])
+  (define-key function-key-map "\e[17~" [f6])
+  (define-key function-key-map "\e[18~" [f7])
+  (define-key function-key-map "\e[19~" [f8])
+  (define-key function-key-map "\e[20~" [f9])
+  (define-key function-key-map "\e[21~" [f10])
+  (define-key function-key-map "\e[23~" [f11])
+  (define-key function-key-map "\e[24~" [f12])
+  (define-key function-key-map "\e[25~" [f13])
+  (define-key function-key-map "\e[26~" [f14])
+  (define-key function-key-map "\e[28~" [help])
+  (define-key function-key-map "\e[29~" [menu])
+  (define-key function-key-map "\e?\e[28~" [M-help])
+  (define-key function-key-map "\e?\e[29~" [M-menu])
+  (define-key function-key-map "\e[31~" [f17])
+  (define-key function-key-map "\e[32~" [f18])
+  (define-key function-key-map "\e[33~" [f19])
+  (define-key function-key-map "\e[34~" [f20])
+;;
+;; Not in Use?
+;; ----------------------------------
+;; Console-Setting for Linux ???
+  (define-key function-key-map "\e[H"  [M-up])
+  (define-key function-key-map "\e[Y"  [M-down])
+  (define-key function-key-map "\e[M"  [menu])
+  (define-key function-key-map "\e?\e[M"  [M-menu])
+  (define-key function-key-map "\e[P"  [pause])
+;;
+;; num block
+  (define-key function-key-map "\e[G" [begin])
+;;
+;; Locked num block Nothing to do :-)
+;;
+;; Undefine some ESC ESC behavior --- for later use
+  (global-unset-key "\e\e")
+  (define-key esc-map "\e" nil)
+;;
+  (define-key function-key-map "\e[D" [left])
+  (define-key function-key-map "\e[C" [right])
+  (define-key function-key-map "\e[A" [up])
+  (define-key function-key-map "\e[B" [down])
+;;
+  (define-key function-key-map "\e\e[D" [M-left])
+  (define-key function-key-map "\e\e[C" [M-right])
+  (define-key function-key-map "\e\e[A" [M-up])
+  (define-key function-key-map "\e\e[B" [M-down])
+;;
+;; Not in Use?
+  (define-key function-key-map "\C-?\e[D" [C-left])
+  (define-key function-key-map "\C-?\e[C" [C-right])
+  (define-key function-key-map "\C-?\e[A" [C-up])
+  (define-key function-key-map "\C-?\e[B" [C-down])
+;;
+;; Backspace, Delete and any thing else
+;;
+  (global-unset-key [insertchar])
+  (global-set-key   [insertchar]  'overwrite-mode)
+  (global-unset-key [deletechar])
+  (global-set-key   [deletechar]  'delete-char)
+;;
+(load "term/func-keys" nil t)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Ende von linux.el
--- site-lisp/term/locale.el
+++ site-lisp/term/locale.el	2007-06-04 13:26:39.000000000 +0000
@@ -0,0 +1,16 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; term/locale.el for site-lisp path
+;;; Copyright (c) 1996-2003 SuSE Linux AG Nuernberg, Germany.
+;;; Copyright (c) 2007 SuSE LINUX Products GmbH Nuernberg, Germany.
+;;;
+;;; Author: Werner Fink  <werner@suse.de>, No warranty of any kind
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(add-hook 'term-setup-hook (function (lambda ()
+				       (load "term/func-keys" t t))))
+;; Nowadays
+(if window-system
+  (setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT STRING TEXT)))
+;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Ende von locale.el
--- src/Makefile.in
+++ src/Makefile.in	2010-10-18 14:07:36.047926040 +0000
@@ -449,7 +449,7 @@ RSVG_CFLAGS= @RSVG_CFLAGS@
 /* Fix linking if compiled with GCC.  */
 #ifdef __GNUC__
 
-#ifdef LINKER
+#if 0 /* def LINKER */
 #define LINKER_WAS_SPECIFIED
 #endif
 
@@ -684,6 +684,9 @@ otherobj= $(termcapobj) lastfile.o $(mal
 #define TOOLTIP_SUPPORT
 #endif
 
+#define MYSHORTLISP ../lisp/emacs-lisp/backquote.elc ../lisp/delsel.elc \
+  ../lisp/disp-table.elc ../lisp/lpr.elc
+
 #ifdef HAVE_NS
 #define NS_SUPPORT ${lispsource}emacs-lisp/easymenu.elc \
   ${lispsource}term/ns-win.elc
@@ -882,6 +885,7 @@ shortlisp= \
 	../lisp/epa-hook.elc \
 	../lisp/widget.elc \
 	../lisp/window.elc \
+	MYSHORTLISP \
 	../lisp/version.el
 
 /* Like $shortlisp, but includes only those files from $lisp that are loaded
--- src/config.in
+++ src/config.in	2007-05-15 17:25:18.000000000 +0000
@@ -1014,6 +1014,8 @@ along with GNU Emacs.  If not, see <http
    code using `volatile' can become incorrect without. Disable with care. */
 #undef volatile
 
+/* tparam() masking because of common name in ncurses */
+#define tparam emacs_tparam
 
 /* If we're using X11/Carbon/GNUstep, define some consequences.  */
 #if defined(HAVE_X_WINDOWS) || defined(HAVE_NS)
--- src/fns.c
+++ src/fns.c	2003-07-23 16:08:56.000000000 +0000
@@ -72,6 +72,10 @@ Lisp_Object Qwidget_type;
 Lisp_Object Qcodeset, Qdays, Qmonths, Qpaper;
 
 extern Lisp_Object Qinput_method_function;
+#ifdef HAVE_MOUSE
+extern Lisp_Object do_mouse_tracking;
+extern Lisp_Object tracking_off ();
+#endif
 
 static int internal_equal P_ ((Lisp_Object , Lisp_Object, int, int));
 
@@ -2591,6 +2595,10 @@ is nil and `use-dialog-box' is non-nil.
   int count = SPECPDL_INDEX ();
 
   specbind (Qcursor_in_echo_area, Qt);
+#ifdef HAVE_MOUSE
+  record_unwind_protect (tracking_off, do_mouse_tracking);
+  do_mouse_tracking = Qnil;
+#endif
 
   map = Fsymbol_value (intern ("query-replace-map"));
 
--- src/keyboard.c
+++ src/keyboard.c	2003-07-23 16:08:56.000000000 +0000
@@ -1427,7 +1427,7 @@ DEFUN ("abort-recursive-edit", Fabort_re
 /* Restore mouse tracking enablement.  See Ftrack_mouse for the only use
    of this function.  */
 
-static Lisp_Object
+Lisp_Object
 tracking_off (old_value)
      Lisp_Object old_value;
 {
--- src/lisp.h
+++ src/lisp.h	2009-08-14 11:07:01.000000000 +0000
@@ -2000,11 +2000,10 @@ extern Lisp_Object case_temp2;
 
 /* Downcase a character, or make no change if that cannot be done.  */
 
-#define DOWNCASE(CH)						\
-  ((case_temp1 = (CH),						\
-    case_temp2 = CHAR_TABLE_REF (DOWNCASE_TABLE, case_temp1),	\
-    NATNUMP (case_temp2))					\
-   ? XFASTINT (case_temp2) : case_temp1)
+#define DOWNCASE(CH)	(__extension__				\
+  ({case_temp1 = (CH);						\
+    case_temp2 = CHAR_TABLE_REF (DOWNCASE_TABLE, case_temp1);	\
+    (NATNUMP (case_temp2)) ? XFASTINT (case_temp2) : case_temp1; }))
 
 /* 1 if CH is upper case.  */
 
@@ -2024,11 +2023,10 @@ extern Lisp_Object case_temp2;
 
 /* Upcase a character known to be not upper case.  */
 
-#define UPCASE1(CH)						\
-  ((case_temp1 = (CH),						\
-    case_temp2 = CHAR_TABLE_REF (UPCASE_TABLE, case_temp1),	\
-    NATNUMP (case_temp2))					\
-   ? XFASTINT (case_temp2) : case_temp1)
+#define UPCASE1(CH)	(__extension__				\
+  ({case_temp1 = (CH);						\
+    case_temp2 = CHAR_TABLE_REF (UPCASE_TABLE, case_temp1);	\
+    (NATNUMP (case_temp2)) ? XFASTINT (case_temp2) : case_temp1; }))
 
 extern Lisp_Object Vascii_downcase_table, Vascii_upcase_table;
 extern Lisp_Object Vascii_canon_table, Vascii_eqv_table;
--- src/prefix-args.c
+++ src/prefix-args.c	2009-08-12 13:53:28.000000000 +0000
@@ -52,6 +52,7 @@ along with GNU Emacs.  If not, see <http
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 
 int
 main (argc, argv)
@@ -74,8 +75,15 @@ Echo each ARG preceded by PREFIX and a s
   prefix = argv[0];
   argc--, argv++;
 
-  for (; argc > 0; argc--, argv++)
-    printf ("%s %s%c", prefix, argv[0], (argc > 1) ? ' ' : '\n');
+  for (; argc > 0; argc--, argv++) {
+    if (strcmp(argv[0], prefix) == 0 && argv[1]) {
+      printf ("%s %s", argv[0], argv[1]);
+      argv++;
+      argc--;
+      putc ((argc > 1) ? ' ' : '\n', stdout);
+    } else
+      printf ("%s %s%c", prefix, argv[0], (argc > 1) ? ' ' : '\n');
+  }
 
   exit (0);
 }
--- src/m/hp800.h
+++ src/m/hp800.h	2009-08-12 13:54:03.000000000 +0000
@@ -43,7 +43,7 @@ along with GNU Emacs.  If not, see <http
 
 /* Common definitions for HPUX and GNU/Linux.  */
 
-#if defined (__hpux) || defined (GNU_LINUX)
+#if defined (__hpux) || defined (__linux__)
 
 /* Define NO_REMAP if memory segmentation makes it not work well
    to change the boundary between the text section and data section
@@ -52,11 +52,11 @@ along with GNU Emacs.  If not, see <http
 
 #define NO_REMAP
 
-#endif /* __hpux or GNU_LINUX */
+#endif /* __hpux or __linux__ */
 
 /* Stuff for just GNU/Linux.  */
 
-#ifdef GNU_LINUX
+#ifdef __linux__
 
 /* Data type of load average, as read out of kmem.  */
 
@@ -65,6 +65,14 @@ along with GNU Emacs.  If not, see <http
 /* 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)
+#else
+/* 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)
 
 #endif /* GNU_LINUX */
 
@@ -79,6 +87,7 @@ along with GNU Emacs.  If not, see <http
    Otherwise Emacs assumes that text space precedes data space,
    numerically.  */
 
+#ifdef __hpux
 #define VIRT_ADDR_VARIES
 
 /* the data segment on this machine always starts at address 0x40000000. */
@@ -87,6 +96,9 @@ along with GNU Emacs.  If not, see <http
 
 #define DATA_START    0x40000000
 #define TEXT_START    0x00000000
+#else
+#define HAVE_ALLOCA
+#endif
 
 /* This machine requires completely different unexec code
    which lives in a separate file.  Specify the file name.  */
--- src/s/gnu-linux.h
+++ src/s/gnu-linux.h	2009-08-12 13:59:18.000000000 +0000
@@ -94,6 +94,7 @@ along with GNU Emacs.  If not, see <http
     functions and macros for terminal control.  */
 
 #define HAVE_TERMIOS
+#define NCURSES_OSPEED_T
 
 /* Define HAVE_PTYS if the system supports pty devices. */
 
@@ -173,7 +174,7 @@ along with GNU Emacs.  If not, see <http
 /* Here is how to find X Windows.  LD_SWITCH_X_SITE_AUX gives an -R option
    says where to find X windows at run time.  */
 
-#ifdef __mips__
+#if defined(__mips__) || defined(__powerpc__)
 #define LD_SWITCH_SYSTEM -G 0 LD_SWITCH_X_SITE_AUX
 #else
 #define LD_SWITCH_SYSTEM LD_SWITCH_X_SITE_AUX
@@ -194,6 +195,15 @@ along with GNU Emacs.  If not, see <http
 #define POSIX                 /* affects getpagesize.h and systty.h */
 #define POSIX_SIGNALS
 
+/* When _USE_BSD is defined, which it will be on glibc based
+ * systems, sigmask/sigpause will be defined in the system signal.h
+ * header file, we want the one in emacs's syssignal.h or else things
+ * blow up.  Note this worked on Intel by luck because of how arguments
+ * are passed on the stack ;-(
+ */
+#undef sigmask
+#undef sigpause
+
 /* Best not to include -lg, unless it is last on the command line */
 #define LIBS_DEBUG
 #undef LIB_GCC
--- src/sysdep.c
+++ src/sysdep.c	2011-11-28 08:46:29.903146518 +0000
@@ -131,6 +131,7 @@ extern int quit_char;
 #include "dispextern.h"
 #include "process.h"
 #include "cm.h"  /* for reset_sys_modes */
+extern void tputs P_ ((const char *, int, int (*)(int)));
 
 /* For serial_configure and serial_open.  */
 extern Lisp_Object QCport, QCspeed, QCprocess;