auto-import changelog data from emacs-21.1-2.7.src.rpm
Thu Dec 06 2001 Trond Eivind Glomsrd <teg@redhat.com> 21.1-2.7 - Increase recursive-load-depth-limit from 10 to 50 Wed Dec 05 2001 Trond Eivind Glomsrd <teg@redhat.com> 21.1-2 - Make it conflict with old versions of gettext Thu Nov 29 2001 Trond Eivind Glomsrd <teg@redhat.com> 21.1-1 - rpm-spec-mode 0.11h, should fix #56748 Tue Nov 06 2001 Trond Eivind Glomsrd <teg@redhat.com> 21.1-0.4 - php mode 1.0.1. Should fix some speedbar problems. Tue Oct 23 2001 Trond Eivind Glomsrd <teg@redhat.com> 21.1-0.3 - Minor cleanups - add ssl.el Mon Oct 22 2001 Trond Eivind Glomsrd <teg@redhat.com> 21.1-0.2 - Add more files from the libexec directory (#54874, #54875) Sun Oct 21 2001 Trond Eivind Glomsrd <teg@redhat.com> 21.1-0.1 - 21.1 - Build on IA64 again - the default config now handles it - Drop all old patches - Misc cleanups - Update the elisp manual to 21-2.7 - Deprecate the emacs-nox and emacs-X11 subpackages. Simplify build procedure to match. - Update php-mode to 1.0.0 Mon Oct 15 2001 Trond Eivind Glomsrd <teg@redhat.com> 20.7-43 - Add php-mode 0.9.9 - Add URL (#54603) - don't run autoconf/libtoolize during build - they're broken - don't build on IA64 until they are fixed Sun Sep 16 2001 Trond Eivind Glomsrd <teg@redhat.com> 20.7-42 - Update python-mode to the version in the python 2.2a3 - Include po-mode in emacs, instead of including in gettext
This commit is contained in:
parent
3b2e936b60
commit
c0806599d0
@ -1,5 +1,4 @@
|
||||
elisp-manual-21-2.6.tar.bz2
|
||||
emacs-20.7.tar.bz2
|
||||
elisp-manual-21-2.7.tar.bz2
|
||||
emacs-21.1.tar.bz2
|
||||
emacs-asian.tar.bz2
|
||||
gnus-5.8.8-compiled.tar.bz2
|
||||
leim-20.7.tar.bz2
|
||||
leim-21.1.tar.bz2
|
||||
|
301
emacs.spec
301
emacs.spec
@ -1,8 +1,9 @@
|
||||
Summary: The libraries needed to run the GNU Emacs text editor.
|
||||
Name: emacs
|
||||
Version: 20.7
|
||||
Release: 41
|
||||
Version: 21.1
|
||||
Release: 2.7
|
||||
License: GPL
|
||||
URL: http://www.gnu.org/software/emacs/
|
||||
Group: Applications/Editors
|
||||
Source0: ftp://ftp.gnu.org/gnu/emacs/emacs-%{version}.tar.bz2
|
||||
Source1: ftp://ftp.gnu.org/gnu/emacs/leim-%{version}.tar.bz2
|
||||
@ -10,37 +11,25 @@ Source3: emacs.desktop
|
||||
Source4: emacs.png
|
||||
Source5: dotemacs
|
||||
Source6: site-start.el
|
||||
Source7: http://www.python.org/emacs/python-mode/python-mode.el
|
||||
# From /usr/X11R6/lib/X11/locale/locale.alias
|
||||
Source8: emacs.locale.alias
|
||||
Source11: http://www.tihlde.org/~stigb/rpm-spec-mode.el
|
||||
Source12: mwheel.el
|
||||
Source13: lisp-startup-localealias.patch
|
||||
Source14: ftp://ftp.gnus.org/pub/gnus/gnus-5.8.8-compiled.tar.bz2
|
||||
Source15: emacs-asian.tar.bz2
|
||||
Source16: ftp://ftp.gnu.org/gnus/emacs/elisp-manual-21-2.6.tar.bz2
|
||||
Patch0: emacs-20.7-xaw3d.patch
|
||||
Patch2: emacs-20.3-tmprace.patch
|
||||
Patch3: emacs-20.3-linkscr.patch
|
||||
Patch4: emacs-20.4-nmhlocation.patch
|
||||
Patch5: emacs-20.5-loadup.patch
|
||||
Patch6: emacs-20.6-kbdbuffer.patch
|
||||
Patch7: emacs-20.6-ia64.patch
|
||||
Patch8: emacs-20.6-ia64-2.patch
|
||||
Patch9: emacs-20.6-ia64-3.patch
|
||||
Patch10: emacs-20.7-manboption.patch
|
||||
Patch11: emacs-20.7-proto.patch
|
||||
Patch12: emacs-cpp-Makefile.patch
|
||||
Patch13: emacs-20.7-makeregexp.patch
|
||||
|
||||
# From Python-2.2a3
|
||||
Source7: python-mode.el
|
||||
Source8: http://www.tihlde.org/~stigb/rpm-spec-mode.el
|
||||
Source9: emacs-asian.tar.bz2
|
||||
Source10: ftp://ftp.gnu.org/gnu/emacs/elisp-manual-21-2.7.tar.bz2
|
||||
# 1.0.0 - http://prdownloads.sourceforge.net/php-mode/php-mode-100.el
|
||||
Source11: php-mode.el
|
||||
Source12: php-mode-init.el
|
||||
Source13: ssl.el
|
||||
Source14: po-mode.el
|
||||
Source15: po-mode-init.el
|
||||
Patch0: emacs-21.1-recloadlimit.patch
|
||||
Patch50: emacs-20.7-s390.patch
|
||||
|
||||
Buildroot: %{_tmppath}/%{name}-%{version}-root
|
||||
Prereq: /sbin/install-info
|
||||
BuildRequires: Xaw3d-devel glibc-devel gcc XFree86-devel bzip2 ncurses-devel
|
||||
BuildRequires: zlib-devel libpng-devel libjpeg-devel libungif-devel libtiff-devel
|
||||
# temporary hack. roll tamago into base emacs package
|
||||
#Requires: tamago
|
||||
Obsoletes: emacs-nox emacs-X11
|
||||
Conflicts: gettext < 0.10.40
|
||||
|
||||
%description
|
||||
Emacs is a powerful, customizable, self-documenting, modeless text
|
||||
@ -78,54 +67,12 @@ user must press in order to input a particular character in a
|
||||
non-English character set. Input methods for many different character
|
||||
sets are included in this package.
|
||||
|
||||
%package nox
|
||||
Summary: The Emacs text editor without support for the X Window System.
|
||||
Group: Applications/Editors
|
||||
Requires: emacs
|
||||
Prereq: fileutils
|
||||
|
||||
%description nox
|
||||
Emacs-nox is the Emacs text editor program without support for the X
|
||||
Window System.
|
||||
|
||||
You need to install this package only if you plan on exclusively using
|
||||
Emacs without the X Window System (emacs-X11 will work both in X and
|
||||
out of X, but emacs-nox will only work outside of X). You'll also
|
||||
need to install the emacs package in order to run Emacs.
|
||||
|
||||
%package X11
|
||||
Summary: The Emacs text editor for the X Window System.
|
||||
Group: Applications/Editors
|
||||
Requires: emacs
|
||||
|
||||
%description X11
|
||||
Emacs-X11 includes the Emacs text editor program for use with the X
|
||||
Window System (it provides support for the mouse and other GUI
|
||||
elements). Emacs-X11 will also run Emacs outside of X, but it has a
|
||||
larger memory footprint than the 'non-X' Emacs package (emacs-nox).
|
||||
|
||||
Install emacs-X11 if you're going to use Emacs with the X Window
|
||||
System. You should also install emacs-X11 if you're going to run
|
||||
Emacs both with and without X (it will work fine both ways). You'll
|
||||
also need to install the emacs package in order to run Emacs.
|
||||
|
||||
%prep
|
||||
|
||||
%setup -q -b 1
|
||||
|
||||
%patch0 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
%patch13 -p1
|
||||
|
||||
|
||||
%ifarch s390 s390x
|
||||
%patch50 -p1 -b .s390
|
||||
@ -133,50 +80,22 @@ also need to install the emacs package in order to run Emacs.
|
||||
|
||||
%build
|
||||
|
||||
PUREDEF="-DNCURSES_OSPEED_T"
|
||||
XPUREDEF="-DNCURSES_OSPEED_T"
|
||||
libtoolize --force --copy
|
||||
autoconf
|
||||
CONFOPTS="--mandir=%{_mandir} --infodir=%{_infodir} --prefix=/usr --libexecdir=/usr/lib --sharedstatedir=/var --with-gcc --with-pop"
|
||||
export CFLAGS="-DMAIL_USE_LOCKF $RPM_OPT_FLAGS"
|
||||
#to find installinfo
|
||||
export PATH="$PATH:/sbin:/usr/sbin"
|
||||
|
||||
BuildEmacs() {
|
||||
dir=$1
|
||||
configflags=$2
|
||||
[ -d build-$1 ] && rm -rf build-$1
|
||||
mkdir build-$1 && cd build-$1
|
||||
CFLAGS="-DMAIL_USE_LOCKF $RPM_OPT_FLAGS $PUREDEF" LDFLAGS=-s \
|
||||
../configure ${CONFOPTS} $2 ${RPM_ARCH}-redhat-linux-gnu
|
||||
# blarg
|
||||
echo "#include <string.h>" >> src/config.h
|
||||
%configure --with-gcc --with-pop --with-sound
|
||||
make
|
||||
cd ..
|
||||
}
|
||||
|
||||
|
||||
#Build binary with X support
|
||||
BuildEmacs withx "--with-x-toolkit"
|
||||
|
||||
%define recompile build-withx/src/emacs -batch --no-init-file --no-site-file -f batch-byte-compile
|
||||
|
||||
#change the locale.alias for the nox builds
|
||||
#patch lisp/startup.el %SOURCE10
|
||||
#rm -fv lisp/startup.elc
|
||||
#%{recompile} lisp/startup.el
|
||||
|
||||
#Build binary without X support
|
||||
BuildEmacs nox "--with-x=no"
|
||||
|
||||
#change the locale.alias back for packaging
|
||||
#patch -R lisp/startup.el %SOURCE10
|
||||
#rm -fv lisp/startup.elc
|
||||
#%{recompile} lisp/startup.el
|
||||
%define recompile src/emacs -batch --no-init-file --no-site-file -f batch-byte-compile
|
||||
|
||||
# recompile patched .el files
|
||||
%{recompile} lisp/mail/mh-utils.el lisp/progmodes/make-mode.el
|
||||
|
||||
# bytecompile python-mode, mwheel and rpm-spec-mode
|
||||
cp %SOURCE7 %SOURCE11 %SOURCE12 .
|
||||
%{recompile} python-mode.el mwheel.el rpm-spec-mode.el
|
||||
# bytecompile python-mode, ssl, php-mode and rpm-spec-mode
|
||||
cp %SOURCE7 %SOURCE8 %SOURCE11 %SOURCE13 %SOURCE14 .
|
||||
%{recompile} python-mode.el rpm-spec-mode.el php-mode.el ssl.el po-mode.el
|
||||
|
||||
|
||||
|
||||
@ -186,51 +105,20 @@ mkdir -p $RPM_BUILD_ROOT/usr
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/share/emacs/site-lisp/site-start.d
|
||||
|
||||
mkdir -p $RPM_BUILD_ROOT/%{_infodir}
|
||||
make install -C build-withx \
|
||||
prefix=$RPM_BUILD_ROOT/usr \
|
||||
libexecdir=$RPM_BUILD_ROOT/usr/lib \
|
||||
sharedstatedir=$RPM_BUILD_ROOT/var \
|
||||
mandir=$RPM_BUILD_ROOT/%{_mandir} \
|
||||
infodir=$RPM_BUILD_ROOT/%{_infodir}
|
||||
|
||||
# install the locale file
|
||||
install -m 644 %SOURCE8 $RPM_BUILD_ROOT/usr/share/emacs/locale.alias
|
||||
%makeinstall
|
||||
|
||||
#install lisp files for Japanese and other Asian languages
|
||||
pushd $RPM_BUILD_ROOT
|
||||
tar --use-compress-program=bzip2 -xf %{SOURCE15}
|
||||
popd
|
||||
|
||||
# We want a newer gnus
|
||||
tar --use-compress-program=bzip2 -xf %{SOURCE14}
|
||||
pushd gnus-5.8.8
|
||||
#PATH=$RPM_BUILD_ROOT/usr/bin:$PATH ./configure
|
||||
#make
|
||||
|
||||
rm -f $RPM_BUILD_ROOT//usr/share/emacs/%{version}/lisp/gnus/*
|
||||
install -m 644 lisp/* $RPM_BUILD_ROOT//usr/share/emacs/%{version}/lisp/gnus/
|
||||
rm -f $RPM_BUILD_ROOT/%{_infodir}/gnus*
|
||||
install -m 644 texi/{gnus,gnus-?,gnus-??} $RPM_BUILD_ROOT/%{_infodir}
|
||||
tar --use-compress-program=bzip2 -xf %{SOURCE9}
|
||||
popd
|
||||
|
||||
rm -f $RPM_BUILD_ROOT/%{_infodir}/dir
|
||||
gzip -9nf $RPM_BUILD_ROOT/%{_infodir}/*
|
||||
|
||||
|
||||
#change the locale.alias for this one and regenerate
|
||||
# Do it this way, using the macro here seems to confuse RPM
|
||||
patch lisp/startup.el %SOURCE13
|
||||
|
||||
rm -fv lisp/startup.elc
|
||||
%{recompile} lisp/startup.el
|
||||
rm -f build-nox/src/emacs-%{version}*
|
||||
make -C build-nox
|
||||
install -c -m755 build-nox/src/emacs $RPM_BUILD_ROOT/usr/bin/emacs-nox
|
||||
|
||||
install -c -m755 build-nox/src/emacs $RPM_BUILD_ROOT/usr/bin/emacs-nox
|
||||
install -m 644 %SOURCE6 $RPM_BUILD_ROOT/usr/share/emacs/site-lisp/site-start.el
|
||||
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/lib/emacs/site-lisp
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/share/emacs/site-lisp
|
||||
|
||||
mv $RPM_BUILD_ROOT%{_mandir}/man1/ctags.1 $RPM_BUILD_ROOT%{_mandir}/man1/gctags.1
|
||||
mv $RPM_BUILD_ROOT/usr/bin/ctags $RPM_BUILD_ROOT/usr/bin/gctags
|
||||
@ -242,11 +130,14 @@ install -c -m 0644 %SOURCE3 $RPM_BUILD_ROOT/etc/X11/applnk/Applications/
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/share/pixmaps
|
||||
install -c -m 0644 %SOURCE4 $RPM_BUILD_ROOT/usr/share/pixmaps/
|
||||
|
||||
install -c -m644 build-nox/etc/DOC-* $RPM_BUILD_ROOT/usr/share/emacs/%{version}/etc
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/share/emacs/%{version}/etc
|
||||
install -c -m644 etc/DOC-* $RPM_BUILD_ROOT/usr/share/emacs/%{version}/etc
|
||||
|
||||
# Python mode, mwheel and rpm-spec mode
|
||||
# Python mode, php mode and rpm-spec mode
|
||||
|
||||
install -c -m0644 python-mode.el python-mode.elc mwheel.el mwheel.elc rpm-spec-mode.el rpm-spec-mode.elc $RPM_BUILD_ROOT/usr/share/emacs/site-lisp/
|
||||
install -c -m0644 po-mode.el po-mode.elc php-mode.el php-mode.elc python-mode.el python-mode.elc rpm-spec-mode.el rpm-spec-mode.elc ssl.el ssl.elc $RPM_BUILD_ROOT/usr/share/emacs/site-lisp/
|
||||
install -m0644 %SOURCE12 $RPM_BUILD_ROOT/usr/share/emacs/site-lisp/site-start.d/php-mode-init.el
|
||||
install -m0644 %SOURCE15 $RPM_BUILD_ROOT/usr/share/emacs/site-lisp/site-start.d/po-mode-init.el
|
||||
|
||||
# default initialization file
|
||||
mkdir -p $RPM_BUILD_ROOT/etc/skel
|
||||
@ -263,17 +154,15 @@ rm -f $RPM_BUILD_ROOT/%{_mandir}/man1/*ctags*
|
||||
rm -f $RPM_BUILD_ROOT/usr/share/emacs/%{version}/etc/ctags*
|
||||
|
||||
# The elisp reference manual
|
||||
bzcat %{SOURCE16} | tar xf -
|
||||
pushd elisp-manual-21-2.6
|
||||
bzcat %{SOURCE10} | tar xf -
|
||||
pushd elisp-manual-21-2.7
|
||||
install -m 644 elisp elisp-? elisp-?? $RPM_BUILD_ROOT/%{_infodir}
|
||||
popd
|
||||
|
||||
find $RPM_BUILD_ROOT/usr/share/emacs/%{version}/lisp \
|
||||
-name '*.elc' -print | sed "s^$RPM_BUILD_ROOT^^" > core-filelist
|
||||
find $RPM_BUILD_ROOT/usr/share/emacs/%{version}/lisp -type f\
|
||||
-not -name '*.el' -print | sed "s^$RPM_BUILD_ROOT^^" > core-filelist
|
||||
find $RPM_BUILD_ROOT/usr/share/emacs/%{version}/lisp \
|
||||
-type d -printf "%%%%dir %%p\n" | sed "s^$RPM_BUILD_ROOT^^" >> core-filelist
|
||||
find $RPM_BUILD_ROOT/usr/lib/emacs/%{version} -type f | \
|
||||
sed "s^$RPM_BUILD_ROOT^^" | grep -v movemail >> core-filelist
|
||||
|
||||
# Include .el files which lack a corresponding byte compiled form
|
||||
for I in `find $RPM_BUILD_ROOT/usr/share/emacs/%{version}/lisp \
|
||||
@ -284,8 +173,8 @@ for I in `find $RPM_BUILD_ROOT/usr/share/emacs/%{version}/lisp \
|
||||
done >> core-filelist
|
||||
|
||||
# Include all non elisp files which emacs installs
|
||||
find $RPM_BUILD_ROOT/usr/share/emacs/%{version}/lisp -type f | \
|
||||
sed "s^$RPM_BUILD_ROOT^^" | grep -v "\.el\(c\)\?$" >> core-filelist
|
||||
#find $RPM_BUILD_ROOT/usr/share/emacs/%{version}/lisp -type f | \
|
||||
# sed "s^$RPM_BUILD_ROOT^^" | grep -v "\.el\(c\)\?$" >> core-filelist
|
||||
|
||||
|
||||
find $RPM_BUILD_ROOT/usr/share/emacs/%{version}/leim \
|
||||
@ -310,8 +199,6 @@ find $RPM_BUILD_ROOT/usr/share/emacs/%{version}/leim \
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
rm -rf build-nox
|
||||
rm -rf build-withx
|
||||
|
||||
%define info_files ccmode cl dired-x ediff emacs forms gnus info message mh-e reftex sc vip viper widget elisp
|
||||
%post
|
||||
@ -327,65 +214,47 @@ for f in %{info_files}; do
|
||||
done
|
||||
fi
|
||||
|
||||
%triggerin nox -- emacs-X11
|
||||
if [ -L /usr/bin/emacs ]; then
|
||||
rm /usr/bin/emacs
|
||||
fi
|
||||
|
||||
%triggerpostun nox -- emacs-X11
|
||||
[ $2 = 0 ] || exit 0
|
||||
if [ ! -L /usr/bin/emacs ]; then
|
||||
ln -sf emacs-nox /usr/bin/emacs
|
||||
fi
|
||||
|
||||
%post nox
|
||||
if [ ! -x /usr/bin/emacs -a ! -L /usr/bin/emacs ]; then
|
||||
ln -sf emacs-nox /usr/bin/emacs
|
||||
fi
|
||||
|
||||
%postun nox
|
||||
[ $1 = 0 ] || exit 0
|
||||
if [ -L /usr/bin/emacs ]; then
|
||||
rm /usr/bin/emacs
|
||||
fi
|
||||
|
||||
%files -f core-filelist
|
||||
%defattr(-,root,root)
|
||||
%config(noreplace) /etc/skel/.emacs
|
||||
%doc etc/NEWS BUGS README etc/FAQ
|
||||
%doc etc/NEWS BUGS README
|
||||
/usr/bin/b2m
|
||||
/usr/bin/emacsclient
|
||||
/usr/bin/etags
|
||||
/usr/bin/rcs-checkin
|
||||
%{_mandir}/*/*
|
||||
%{_infodir}/*
|
||||
/usr/share/emacs/locale.alias
|
||||
/usr/share/emacs/site-lisp/python-mode.elc
|
||||
/usr/share/emacs/site-lisp/mwheel.elc
|
||||
/usr/share/emacs/site-lisp/php-mode.elc
|
||||
/usr/share/emacs/site-lisp/po-mode.elc
|
||||
/usr/share/emacs/site-lisp/rpm-spec-mode.elc
|
||||
/usr/share/emacs/site-lisp/ssl.elc
|
||||
/usr/share/emacs/site-lisp/subdirs.el
|
||||
|
||||
/usr/share/emacs/site-lisp/site-start.d/lang.emacs.el
|
||||
/usr/share/emacs/site-lisp/site-start.d/php-mode-init.el
|
||||
/usr/share/emacs/site-lisp/site-start.d/po-mode-init.el
|
||||
/usr/share/emacs/site-lisp/lang
|
||||
|
||||
%dir /usr/lib/emacs
|
||||
%dir /usr/lib/emacs/site-lisp
|
||||
%dir /usr/lib/emacs/%{version}
|
||||
%dir /usr/lib/emacs/%{version}/*
|
||||
%attr(0755,root,root) /usr/lib/emacs/%{version}/*/movemail
|
||||
|
||||
%dir /usr/share/emacs
|
||||
%dir /usr/share/emacs/site-lisp
|
||||
%dir /usr/share/emacs/%{version}
|
||||
%dir /usr/share/emacs/%{version}/*
|
||||
/usr/share/emacs/%{version}/etc/*
|
||||
/usr/libexec/emacs/%{version}/*/*
|
||||
%attr(0755,root,root) /usr/libexec/emacs/%{version}/*/movemail
|
||||
%attr(0644,root,root) %config /usr/share/emacs/site-lisp/site-start.el
|
||||
%dir /usr/share/emacs/site-lisp/site-start.d
|
||||
%dir /usr/share/emacs/%{version}
|
||||
%dir /usr/share/emacs/%{version}/site-lisp
|
||||
%dir /usr/share/emacs/%{version}/leim
|
||||
/usr/share/emacs/%{version}/etc
|
||||
%attr(755,root,root) /usr/bin/emacs
|
||||
%attr(755,root,root) /usr/bin/emacs-%{version}
|
||||
%config(noreplace) /etc/X11/applnk/Applications/emacs.desktop
|
||||
/usr/share/pixmaps/emacs.png
|
||||
|
||||
%files -f el-filelist el
|
||||
%defattr(-,root,root)
|
||||
/usr/share/emacs/site-lisp/python-mode.el
|
||||
/usr/share/emacs/site-lisp/mwheel.el
|
||||
/usr/share/emacs/site-lisp/php-mode.el
|
||||
/usr/share/emacs/site-lisp/po-mode.el
|
||||
/usr/share/emacs/site-lisp/ssl.el
|
||||
/usr/share/emacs/site-lisp/rpm-spec-mode.el
|
||||
|
||||
%files -f leim-filelist leim
|
||||
@ -393,18 +262,46 @@ fi
|
||||
/usr/share/emacs/%{version}/leim/leim-list.el
|
||||
%dir /usr/share/emacs/%{version}/leim
|
||||
|
||||
%files nox
|
||||
%defattr(-,root,root)
|
||||
/usr/bin/emacs-nox
|
||||
|
||||
%files X11
|
||||
%defattr(-,root,root)
|
||||
%attr(755,root,root) /usr/bin/emacs
|
||||
%attr(755,root,root) /usr/bin/emacs-%{version}
|
||||
%config(noreplace) /etc/X11/applnk/Applications/emacs.desktop
|
||||
/usr/share/pixmaps/emacs.png
|
||||
|
||||
%changelog
|
||||
* Thu Dec 6 2001 Trond Eivind Glomsrød <teg@redhat.com> 21.1-2.7
|
||||
- Increase recursive-load-depth-limit from 10 to 50
|
||||
|
||||
* Wed Dec 5 2001 Trond Eivind Glomsrød <teg@redhat.com> 21.1-2
|
||||
- Make it conflict with old versions of gettext
|
||||
|
||||
* Thu Nov 29 2001 Trond Eivind Glomsrød <teg@redhat.com> 21.1-1
|
||||
- rpm-spec-mode 0.11h, should fix #56748
|
||||
|
||||
* Tue Nov 6 2001 Trond Eivind Glomsrød <teg@redhat.com> 21.1-0.4
|
||||
- php mode 1.0.1. Should fix some speedbar problems.
|
||||
|
||||
* Tue Oct 23 2001 Trond Eivind Glomsrød <teg@redhat.com> 21.1-0.3
|
||||
- Minor cleanups
|
||||
- add ssl.el
|
||||
|
||||
* Mon Oct 22 2001 Trond Eivind Glomsrød <teg@redhat.com> 21.1-0.2
|
||||
- Add more files from the libexec directory (#54874, #54875)
|
||||
|
||||
* Sun Oct 21 2001 Trond Eivind Glomsrød <teg@redhat.com> 21.1-0.1
|
||||
- 21.1
|
||||
- Build on IA64 again - the default config now handles it
|
||||
- Drop all old patches
|
||||
- Misc cleanups
|
||||
- Update the elisp manual to 21-2.7
|
||||
- Deprecate the emacs-nox and emacs-X11 subpackages.
|
||||
Simplify build procedure to match.
|
||||
- Update php-mode to 1.0.0
|
||||
|
||||
* Mon Oct 15 2001 Trond Eivind Glomsrød <teg@redhat.com> 20.7-43
|
||||
- Add php-mode 0.9.9
|
||||
- Add URL (#54603)
|
||||
- don't run autoconf/libtoolize during build - they're broken
|
||||
- don't build on IA64 until they are fixed
|
||||
|
||||
* Sun Sep 16 2001 Trond Eivind Glomsrød <teg@redhat.com> 20.7-42
|
||||
- Update python-mode to the version in the python 2.2a3
|
||||
- Include po-mode in emacs, instead of including in gettext
|
||||
|
||||
* Mon Jul 30 2001 Trond Eivind Glomsrød <teg@redhat.com>
|
||||
- Minor fix to make-mode fontify regexp (#50010)
|
||||
- Build without emacs being installed (#49085)
|
||||
|
6
php-mode-init.el
Normal file
6
php-mode-init.el
Normal file
@ -0,0 +1,6 @@
|
||||
;; Use php-mode for .php,.php3,.php4 and .phtml files
|
||||
|
||||
(autoload 'php-mode "php-mode")
|
||||
(setq auto-mode-alist (cons '("\\.php[34]\\|.php\\|.phtml" . php-mode)
|
||||
auto-mode-alist))
|
||||
|
12
po-mode-init.el
Normal file
12
po-mode-init.el
Normal file
@ -0,0 +1,12 @@
|
||||
;; Use po-mode for translation files
|
||||
|
||||
(autoload 'po-mode "po-mode")
|
||||
(setq auto-mode-alist (cons '("\\.po[tx]?\\'\\|\\.po\\." . po-mode)
|
||||
auto-mode-alist))
|
||||
|
||||
;;; To automatically use proper fonts under Emacs 20, also add:
|
||||
|
||||
(autoload 'po-find-file-coding-system "po-mode")
|
||||
(modify-coding-system-alist 'file "\\.po[tx]?\\'\\|\\.po\\."
|
||||
'po-find-file-coding-system)
|
||||
|
2693
po-mode.el
Normal file
2693
po-mode.el
Normal file
File diff suppressed because it is too large
Load Diff
281
python-mode.el
281
python-mode.el
@ -2,13 +2,13 @@
|
||||
|
||||
;; Copyright (C) 1992,1993,1994 Tim Peters
|
||||
|
||||
;; Author: 1995-1998 Barry A. Warsaw
|
||||
;; Author: 1995-2001 Barry A. Warsaw
|
||||
;; 1992-1994 Tim Peters
|
||||
;; Maintainer: python-mode@python.org
|
||||
;; Created: Feb 1992
|
||||
;; Keywords: python languages oop
|
||||
|
||||
(defconst py-version "3.105"
|
||||
(defconst py-version "$Revision: 4.6 $"
|
||||
"`python-mode' version number.")
|
||||
|
||||
;; This software is provided as-is, without express or implied
|
||||
@ -25,30 +25,34 @@
|
||||
;; and is the current maintainer. Tim's now back but disavows all
|
||||
;; responsibility for the mode. Smart Tim :-)
|
||||
|
||||
;; This version of python-mode.el is no longer compatible with Emacs
|
||||
;; 18. I am striving to maintain compatibility with the X/Emacs 19
|
||||
;; lineage but as time goes on that becomes more and more difficult.
|
||||
;; I current recommend that you upgrade to the latest stable released
|
||||
;; version of your favorite branch: Emacs 20.3 or better, or XEmacs
|
||||
;; 20.4 or better (XEmacs 21.0 is in beta testing as of this writing
|
||||
;; 27-Oct-1998 appears to work fine with this version of
|
||||
;; python-mode.el). Even Windows users should be using at least
|
||||
;; NTEmacs 20.3, and XEmacs 21.0 will work very nicely on Windows when
|
||||
;; it is released.
|
||||
;; pdbtrack support contributed by Ken Manheimer, April 2001.
|
||||
|
||||
;; This version of python-mode.el has only been tested with XEmacs
|
||||
;; 21.1.14 and Emacs 20.7 as these are the latest versions of these
|
||||
;; Emacsen as of this writing (11-Apr-2001). I have no intent to test
|
||||
;; it with earlier Emacsen, but I will accept patches if they are
|
||||
;; small and reasonable. Please use the SourceForge Python project to
|
||||
;; submit bugs or patches:
|
||||
;;
|
||||
;; http://sourceforge.net/projects/python
|
||||
|
||||
;; FOR MORE INFORMATION:
|
||||
|
||||
;; For more information on installing python-mode.el, especially with
|
||||
;; respect to compatibility information, please see
|
||||
;;
|
||||
;; There is some information on python-mode.el at
|
||||
|
||||
;; http://www.python.org/emacs/python-mode/
|
||||
;;
|
||||
;; This site also contains links to other packages that you might find
|
||||
;; useful, such as pdb interfaces, OO-Browser links, etc.
|
||||
;; but this link is fairly out of date, due to the current difficulty
|
||||
;; in updating that site. It does contain links to other packages that
|
||||
;; you might find useful, such as pdb interfaces, OO-Browser links,
|
||||
;; etc. Eventually, we'll be able to update it much more easily.
|
||||
|
||||
;; BUG REPORTING:
|
||||
|
||||
;; To submit bug reports, use C-c C-b. Please include a complete, but
|
||||
;; As mentioned above, please use the SourceForge Python project for
|
||||
;; submitting bug reports or patches. The old recommendation, to use
|
||||
;; C-c C-b will still work, but those reports have a higher chance of
|
||||
;; getting buried in my mailbox. Please include a complete, but
|
||||
;; concise code sample and a recipe for reproducing the bug. Send
|
||||
;; suggestions and other comments to python-mode@python.org.
|
||||
|
||||
@ -56,40 +60,11 @@
|
||||
;; doubtful that a texinfo manual would be very useful, but if you
|
||||
;; want to contribute one, I'll certainly accept it!
|
||||
|
||||
;; TO DO LIST:
|
||||
|
||||
;; - Better integration with pdb.py and gud-mode for debugging.
|
||||
;; - Rewrite according to GNU Emacs Lisp standards.
|
||||
;; - have py-execute-region on indented code act as if the region is
|
||||
;; left justified. Avoids syntax errors.
|
||||
;; - add a py-goto-block-down, bound to C-c C-d
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'comint)
|
||||
(require 'custom)
|
||||
(eval-when-compile
|
||||
(require 'cl)
|
||||
(if (not (and (condition-case nil
|
||||
(require 'custom)
|
||||
(error nil))
|
||||
;; Stock Emacs 19.34 has a broken/old Custom library
|
||||
;; that does more harm than good. Fortunately, it is
|
||||
;; missing defcustom
|
||||
(fboundp 'defcustom)))
|
||||
(error "STOP! STOP! STOP! STOP!
|
||||
|
||||
The Custom library was not found or is out of date. A more current
|
||||
version is required. Please download and install the latest version
|
||||
of the Custom library from:
|
||||
|
||||
<http://www.dina.kvl.dk/~abraham/custom/>
|
||||
|
||||
See the Python Mode home page for details:
|
||||
|
||||
<http://www.python.org/emacs/python-mode>
|
||||
")))
|
||||
|
||||
|
||||
|
||||
;; user definable variables
|
||||
@ -148,6 +123,14 @@ you're editing someone else's Python code."
|
||||
:type 'integer
|
||||
:group 'python)
|
||||
|
||||
(defcustom py-continuation-offset 4
|
||||
"*Additional amount of offset to give for some continuation lines.
|
||||
Continuation lines are those that immediately follow a backslash
|
||||
terminated line. Only those continuation lines for a block opening
|
||||
statement are given this extra offset."
|
||||
:type 'integer
|
||||
:group 'python)
|
||||
|
||||
(defcustom py-smart-indentation t
|
||||
"*Should `python-mode' try to automagically set some indentation variables?
|
||||
When this variable is non-nil, two things happen when a buffer is set
|
||||
@ -276,6 +259,22 @@ When non-nil, arguments are printed."
|
||||
:group 'python)
|
||||
(make-variable-buffer-local 'py-indent-offset)
|
||||
|
||||
(defcustom py-pdbtrack-do-tracking-p t
|
||||
"*Controls whether the pdbtrack feature is enabled or not.
|
||||
When non-nil, pdbtrack is enabled in all comint-based buffers,
|
||||
e.g. shell buffers and the *Python* buffer. When using pdb to debug a
|
||||
Python program, pdbtrack notices the pdb prompt and displays the
|
||||
source file and line that the program is stopped at, much the same way
|
||||
as gud-mode does for debugging C programs with gdb."
|
||||
:type 'boolean
|
||||
:group 'python)
|
||||
(make-variable-buffer-local 'py-pdbtrack-do-tracking-p)
|
||||
|
||||
(defcustom py-pdbtrack-minor-mode-string " PDB"
|
||||
"*String to use in the minor mode list when pdbtrack is enabled."
|
||||
:type 'string
|
||||
:group 'python)
|
||||
|
||||
;; Not customizable
|
||||
(defvar py-master-file nil
|
||||
"If non-nil, execute the named file instead of the buffer's file.
|
||||
@ -299,13 +298,6 @@ buffer is prepended to come up with a file name.")
|
||||
|
||||
(defconst py-emacs-features
|
||||
(let (features)
|
||||
;; NTEmacs 19.34.6 has a broken make-temp-name; it always returns
|
||||
;; the same string.
|
||||
(let ((tmp1 (make-temp-name ""))
|
||||
(tmp2 (make-temp-name "")))
|
||||
(if (string-equal tmp1 tmp2)
|
||||
(push 'broken-temp-names features)))
|
||||
;; return the features
|
||||
features)
|
||||
"A list of features extant in the Emacs you are using.
|
||||
There are many flavors of Emacs out there, with different levels of
|
||||
@ -319,7 +311,7 @@ support for features needed by `python-mode'.")
|
||||
"from" "global" "if" "import"
|
||||
"in" "is" "lambda" "not"
|
||||
"or" "pass" "print" "raise"
|
||||
"return" "while"
|
||||
"return" "while" "yield"
|
||||
)
|
||||
"\\|"))
|
||||
(kw2 (mapconcat 'identity
|
||||
@ -332,6 +324,8 @@ support for features needed by `python-mode'.")
|
||||
;; block introducing keywords with immediately following colons.
|
||||
;; Yes "except" is in both lists.
|
||||
(cons (concat "\\b\\(" kw2 "\\)[ \n\t(]") 1)
|
||||
;; `as' but only in "import foo as bar"
|
||||
'("[ \t]*\\(\\bfrom\\b.*\\)?\\bimport\\b.*\\b\\(as\\)\\b" . 2)
|
||||
;; classes
|
||||
'("\\bclass[ \t]+\\([a-zA-Z_]+[a-zA-Z0-9_]*\\)"
|
||||
1 font-lock-type-face)
|
||||
@ -347,6 +341,9 @@ support for features needed by `python-mode'.")
|
||||
"Queue of Python temp files awaiting execution.
|
||||
Currently-active file is at the head of the list.")
|
||||
|
||||
(defvar py-pdbtrack-is-tracking-p nil)
|
||||
|
||||
|
||||
|
||||
;; Constants
|
||||
|
||||
@ -428,6 +425,17 @@ Currently-active file is at the head of the list.")
|
||||
"[ \t]+File \"\\([^\"]+\\)\", line \\([0-9]+\\)"
|
||||
"Regular expression that describes tracebacks.")
|
||||
|
||||
;; pdbtrack contants
|
||||
(defconst py-pdbtrack-stack-entry-regexp
|
||||
"> \\([^(]+\\)(\\([0-9]+\\))[?a-zA-Z0-9_]+()"
|
||||
"Regular expression pdbtrack uses to find a stack trace entry.")
|
||||
|
||||
(defconst py-pdbtrack-input-prompt "\n[(<]?pdb[>)]? "
|
||||
"Regular expression pdbtrack uses to recognize a pdb prompt.")
|
||||
|
||||
(defconst py-pdbtrack-track-range 10000
|
||||
"Max number of characters from end of buffer to search for stack entry.")
|
||||
|
||||
|
||||
|
||||
;; Major mode boilerplate
|
||||
@ -489,6 +497,7 @@ Currently-active file is at the head of the list.")
|
||||
;; Miscellaneous
|
||||
(define-key py-mode-map "\C-c:" 'py-guess-indent-offset)
|
||||
(define-key py-mode-map "\C-c\t" 'py-indent-region)
|
||||
(define-key py-mode-map "\C-c\C-d" 'py-pdbtrack-toggle-stack-tracking)
|
||||
(define-key py-mode-map "\C-c\C-n" 'py-next-statement)
|
||||
(define-key py-mode-map "\C-c\C-p" 'py-previous-statement)
|
||||
(define-key py-mode-map "\C-c\C-u" 'py-goto-block-up)
|
||||
@ -1091,6 +1100,70 @@ This function is appropriate for `comint-output-filter-functions'."
|
||||
(py-execute-file pyproc (car py-file-queue))))
|
||||
))
|
||||
|
||||
(defun py-pdbtrack-overlay-arrow (activation)
|
||||
"Activate or de arrow at beginning-of-line in current buffer."
|
||||
;; This was derived/simplified from edebug-overlay-arrow
|
||||
(cond (activation
|
||||
(setq overlay-arrow-position (make-marker))
|
||||
(setq overlay-arrow-string "=>")
|
||||
(set-marker overlay-arrow-position (py-point 'bol) (current-buffer))
|
||||
(setq py-pdbtrack-is-tracking-p t))
|
||||
(overlay-arrow-position
|
||||
(setq overlay-arrow-position nil)
|
||||
(setq py-pdbtrack-is-tracking-p nil))
|
||||
))
|
||||
|
||||
(defun py-pdbtrack-track-stack-file (text)
|
||||
"Show the file indicated by the pdb stack entry line, in a separate window.
|
||||
|
||||
Activity is disabled if the buffer-local variable
|
||||
`py-pdbtrack-do-tracking-p' is nil.
|
||||
|
||||
We depend on the pdb input prompt matching `py-pdbtrack-input-prompt'
|
||||
at the beginning of the line."
|
||||
;; Instead of trying to piece things together from partial text
|
||||
;; (which can be almost useless depending on Emacs version), we
|
||||
;; monitor to the point where we have the next pdb prompt, and then
|
||||
;; check all text from comint-last-input-end to process-mark.
|
||||
;;
|
||||
;; KLM: It might be nice to provide an optional override, so this
|
||||
;; routine could be fed debugger output strings as the text
|
||||
;; argument, for deliberate application elsewhere.
|
||||
;;
|
||||
;; KLM: We're very conservative about clearing the overlay arrow, to
|
||||
;; minimize residue. This means, for instance, that executing other
|
||||
;; pdb commands wipes out the highlight.
|
||||
(let* ((origbuf (current-buffer))
|
||||
(currproc (get-buffer-process origbuf)))
|
||||
(if (not (and currproc py-pdbtrack-do-tracking-p))
|
||||
(py-pdbtrack-overlay-arrow nil)
|
||||
(let* (;(origdir default-directory)
|
||||
(procmark (process-mark currproc))
|
||||
(block (buffer-substring (max comint-last-input-end
|
||||
(- procmark
|
||||
py-pdbtrack-track-range))
|
||||
procmark))
|
||||
fname lineno)
|
||||
(if (not (string-match (concat py-pdbtrack-input-prompt "$") block))
|
||||
(py-pdbtrack-overlay-arrow nil)
|
||||
(if (not (string-match
|
||||
(concat ".*" py-pdbtrack-stack-entry-regexp ".*")
|
||||
block))
|
||||
(py-pdbtrack-overlay-arrow nil)
|
||||
(setq fname (match-string 1 block)
|
||||
lineno (match-string 2 block))
|
||||
(if (file-exists-p fname)
|
||||
(progn
|
||||
(find-file-other-window fname)
|
||||
(goto-line (string-to-int lineno))
|
||||
(message "pdbtrack: line %s, file %s" lineno fname)
|
||||
(py-pdbtrack-overlay-arrow t)
|
||||
(pop-to-buffer origbuf t) )
|
||||
(if (= (elt fname 0) ?\<)
|
||||
(message "pdbtrack: (Non-file source: '%s')" fname)
|
||||
(message "pdbtrack: File not found: %s" fname))
|
||||
)))))))
|
||||
|
||||
(defun py-postprocess-output-buffer (buf)
|
||||
"Highlight exceptions found in BUF.
|
||||
If an exception occurred return t, otherwise return nil. BUF must exist."
|
||||
@ -1227,6 +1300,9 @@ filter."
|
||||
(setq comint-prompt-regexp "^>>> \\|^[.][.][.] \\|^(pdb) ")
|
||||
(add-hook 'comint-output-filter-functions
|
||||
'py-comint-output-filter-function)
|
||||
;; pdbtrack
|
||||
(add-hook 'comint-output-filter-functions 'py-pdbtrack-track-stack-file)
|
||||
(setq py-pdbtrack-do-tracking-p t)
|
||||
(set-syntax-table py-mode-syntax-table)
|
||||
(use-local-map py-shell-map)
|
||||
))
|
||||
@ -1278,11 +1354,24 @@ is inserted at the end. See also the command `py-clear-queue'."
|
||||
(format "python-%d-%d" sn pid)
|
||||
(format "python-%d" sn)))
|
||||
(make-temp-name "python-")))
|
||||
(file (expand-file-name temp py-temp-directory)))
|
||||
(write-region start end file nil 'nomsg)
|
||||
(file (expand-file-name temp py-temp-directory))
|
||||
(cur (current-buffer))
|
||||
(buf (get-buffer-create file)))
|
||||
;; Write the contents of the buffer, watching out for indented regions.
|
||||
(save-excursion
|
||||
(goto-char start)
|
||||
(let ((needs-if (/= (py-point 'bol) (py-point 'boi))))
|
||||
(set-buffer buf)
|
||||
(when needs-if
|
||||
(insert "if 1:\n"))
|
||||
(insert-buffer-substring cur start end)))
|
||||
(cond
|
||||
;; always run the code in its own asynchronous subprocess
|
||||
(async
|
||||
;; User explicitly wants this to run in its own async subprocess
|
||||
(save-excursion
|
||||
(set-buffer buf)
|
||||
(write-region (point-min) (point-max) file nil 'nomsg))
|
||||
(let* ((buf (generate-new-buffer-name py-output-buffer))
|
||||
;; TBD: a horrible hack, but why create new Custom variables?
|
||||
(arg (if (string-equal py-which-bufname "Python")
|
||||
@ -1290,11 +1379,15 @@ is inserted at the end. See also the command `py-clear-queue'."
|
||||
(start-process py-which-bufname buf py-which-shell arg file)
|
||||
(pop-to-buffer buf)
|
||||
(py-postprocess-output-buffer buf)
|
||||
;; TBD: clean up the temporary file!
|
||||
))
|
||||
;; if the Python interpreter shell is running, queue it up for
|
||||
;; execution there.
|
||||
(proc
|
||||
;; use the existing python shell
|
||||
(save-excursion
|
||||
(set-buffer buf)
|
||||
(write-region (point-min) (point-max) file nil 'nomsg))
|
||||
(if (not py-file-queue)
|
||||
(py-execute-file proc file)
|
||||
(message "File %s queued for execution" file))
|
||||
@ -1306,7 +1399,10 @@ is inserted at the end. See also the command `py-clear-queue'."
|
||||
(if (string-equal py-which-bufname "JPython")
|
||||
" -" ""))))
|
||||
;; otherwise either run it synchronously in a subprocess
|
||||
(shell-command-on-region start end cmd py-output-buffer)
|
||||
(save-excursion
|
||||
(set-buffer buf)
|
||||
(shell-command-on-region (point-min) (point-max)
|
||||
cmd py-output-buffer))
|
||||
;; shell-command-on-region kills the output buffer if it never
|
||||
;; existed and there's no output from the command
|
||||
(if (not (get-buffer py-output-buffer))
|
||||
@ -1316,8 +1412,12 @@ is inserted at the end. See also the command `py-clear-queue'."
|
||||
(pop-to-buffer py-output-buffer)
|
||||
(if err-p
|
||||
(pop-to-buffer py-exception-buffer)))
|
||||
)))
|
||||
)))
|
||||
))
|
||||
;; TBD: delete the buffer
|
||||
)
|
||||
)
|
||||
;; Clean up after ourselves.
|
||||
(kill-buffer buf)))
|
||||
|
||||
|
||||
;; Code execution commands
|
||||
@ -1708,7 +1808,8 @@ dedenting."
|
||||
;; chunk of non-whitespace characters on base line, + 1 more
|
||||
;; column
|
||||
(end-of-line)
|
||||
(setq endpos (point) searching t)
|
||||
(setq endpos (point)
|
||||
searching t)
|
||||
(back-to-indentation)
|
||||
(setq startpos (point))
|
||||
;; look at all "=" from left to right, stopping at first
|
||||
@ -1733,7 +1834,12 @@ dedenting."
|
||||
(progn
|
||||
(goto-char startpos)
|
||||
(skip-chars-forward "^ \t\n")))
|
||||
(1+ (current-column))))))
|
||||
;; if this is a continuation for a block opening
|
||||
;; statement, add some extra offset.
|
||||
(+ (current-column) (if (py-statement-opens-block-p)
|
||||
py-continuation-offset 0)
|
||||
1)
|
||||
))))
|
||||
|
||||
;; not on a continuation line
|
||||
((bobp) (current-indentation))
|
||||
@ -2464,6 +2570,29 @@ A `nomenclature' is a fancy way of saying AWordWithMixedCaseNotUnderscores."
|
||||
(py-keep-region-active))
|
||||
|
||||
|
||||
|
||||
;; pdbtrack functions
|
||||
(defun py-pdbtrack-toggle-stack-tracking (arg)
|
||||
(interactive "P")
|
||||
(if (not (get-buffer-process (current-buffer)))
|
||||
(error "No process associated with buffer '%s'" (current-buffer)))
|
||||
;; missing or 0 is toggle, >0 turn on, <0 turn off
|
||||
(if (or (not arg)
|
||||
(zerop (setq arg (prefix-numeric-value arg))))
|
||||
(setq py-pdbtrack-do-tracking-p (not py-pdbtrack-do-tracking-p))
|
||||
(setq py-pdbtrack-do-tracking-p (> arg 0)))
|
||||
(message "%sabled Python's pdbtrack"
|
||||
(if py-pdbtrack-do-tracking-p "En" "Dis")))
|
||||
|
||||
(defun turn-on-pdbtrack ()
|
||||
(interactive)
|
||||
(py-pdbtrack-toggle-stack-tracking 1))
|
||||
|
||||
(defun turn-off-pdbtrack ()
|
||||
(interactive)
|
||||
(py-pdbtrack-toggle-stack-tracking 0))
|
||||
|
||||
|
||||
|
||||
;; Documentation functions
|
||||
|
||||
@ -2775,7 +2904,7 @@ local bindings to py-newline-and-indent."))
|
||||
"Return the parse state at point (see `parse-partial-sexp' docs)."
|
||||
(save-excursion
|
||||
(let ((here (point))
|
||||
pps done)
|
||||
in-listcomp pps done)
|
||||
(while (not done)
|
||||
;; back up to the first preceding line (if any; else start of
|
||||
;; buffer) that begins with a popular Python keyword, or a
|
||||
@ -2784,6 +2913,13 @@ local bindings to py-newline-and-indent."))
|
||||
;; at a non-zero nesting level. It may be slow for people who
|
||||
;; write huge code blocks or huge lists ... tough beans.
|
||||
(re-search-backward py-parse-state-re nil 'move)
|
||||
;; Watch out for landing inside a list comprehension
|
||||
(save-excursion
|
||||
(if (and (looking-at "[ \t]*\\<\\(if\\|for\\)\\>")
|
||||
(py-safe (progn (up-list -1) t))
|
||||
(eq (char-after) ?\[))
|
||||
(setq in-listcomp (point))
|
||||
(setq in-listcomp nil)))
|
||||
(beginning-of-line)
|
||||
;; In XEmacs, we have a much better way to test for whether
|
||||
;; we're in a triple-quoted string or not. Emacs does not
|
||||
@ -2806,6 +2942,9 @@ local bindings to py-newline-and-indent."))
|
||||
;; XEmacs
|
||||
(setq done (or (not (buffer-syntactic-context))
|
||||
(bobp)))
|
||||
(when in-listcomp
|
||||
(goto-char in-listcomp)
|
||||
(setq done nil))
|
||||
(when done
|
||||
(setq pps (parse-partial-sexp (point) here)))
|
||||
))
|
||||
@ -2842,12 +2981,16 @@ If nesting level is zero, return nil."
|
||||
"Go to the beginning of the triple quoted string we find ourselves in.
|
||||
DELIM is the TQS string delimiter character we're searching backwards
|
||||
for."
|
||||
(let ((skip (and delim (make-string 1 delim))))
|
||||
(let ((skip (and delim (make-string 1 delim)))
|
||||
(continue t))
|
||||
(when skip
|
||||
(save-excursion
|
||||
(while continue
|
||||
(py-safe (search-backward skip))
|
||||
(if (and (eq (char-before) delim)
|
||||
(eq (char-before (1- (point))) delim))
|
||||
(setq continue (and (not (bobp))
|
||||
(= (char-before) ?\\))))
|
||||
(if (and (= (char-before) delim)
|
||||
(= (char-before (1- (point))) delim))
|
||||
(setq skip (make-string 3 delim))))
|
||||
;; we're looking at a triple-quoted string
|
||||
(py-safe (search-backward skip)))))
|
||||
@ -3097,6 +3240,12 @@ These are Python temporary files awaiting execution."
|
||||
|
||||
;; arrange to kill temp files when Emacs exists
|
||||
(add-hook 'kill-emacs-hook 'py-kill-emacs-hook)
|
||||
(add-hook 'comint-output-filter-functions 'py-pdbtrack-track-stack-file)
|
||||
|
||||
;; Add a designator to the minor mode strings
|
||||
(or (assq 'py-pdbtrack-minor-mode-string minor-mode-alist)
|
||||
(push '(py-pdbtrack-is-tracking-p py-pdbtrack-minor-mode-string)
|
||||
minor-mode-alist))
|
||||
|
||||
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
;; Author: Stig Bjørlykke, <stigb@tihlde.org>
|
||||
;; Keywords: unix, languages
|
||||
;; Version: 0.11g
|
||||
;; Version: 0.11h
|
||||
|
||||
;; This file is not yet part of FSF Emacs or XEmacs.
|
||||
|
||||
@ -407,7 +407,7 @@ the package."
|
||||
(defvar rpm-spec-font-lock-keywords
|
||||
'(
|
||||
("%[a-zA-Z0-9_]+" 0 rpm-spec-macro-face)
|
||||
("^\\([a-zA-Z0-9]+\\)\\(\([a-zA-Z0-9]+\)\\):"
|
||||
("^\\([a-zA-Z0-9]+\\)\\(\([a-zA-Z0-9,]+\)\\):"
|
||||
(1 rpm-spec-tag-face)
|
||||
(2 rpm-spec-ghost-face))
|
||||
("^\\([a-zA-Z0-9]+\\):" 1 rpm-spec-tag-face)
|
||||
|
7
sources
7
sources
@ -1,5 +1,4 @@
|
||||
367bc83b70bd10b8908549087b73530d elisp-manual-21-2.6.tar.bz2
|
||||
7c55c72e7cc8f1cb49b57b670b82dba2 emacs-20.7.tar.bz2
|
||||
5fefba94ab9e079b0b0fd3db36a115c1 elisp-manual-21-2.7.tar.bz2
|
||||
a5a99bb492ac59e7dc25670076a52757 emacs-21.1.tar.bz2
|
||||
606b7415499a88b839a7cf414e3caaa8 emacs-asian.tar.bz2
|
||||
9395bc6d85f12471ee8f1f9bd6988d9e gnus-5.8.8-compiled.tar.bz2
|
||||
112c8f7493ef295fc9022feb4653eab0 leim-20.7.tar.bz2
|
||||
81d338aaddaaa7c1a876f49042087ef4 leim-21.1.tar.bz2
|
||||
|
201
ssl.el
Normal file
201
ssl.el
Normal file
@ -0,0 +1,201 @@
|
||||
;;; ssl.el,v --- ssl functions for emacsen without them builtin
|
||||
;; Author: wmperry
|
||||
;; Created: 1999/10/14 12:44:18
|
||||
;; Version: 1.2
|
||||
;; Keywords: comm
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;; Copyright (c) 1995, 1996 by William M. Perry <wmperry@cs.indiana.edu>
|
||||
;;; Copyright (c) 1996 - 1999 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 2, 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.
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(require 'cl)
|
||||
(require 'base64)
|
||||
|
||||
(eval-and-compile
|
||||
(condition-case ()
|
||||
(require 'custom)
|
||||
(error nil))
|
||||
(if (and (featurep 'custom) (fboundp 'custom-declare-variable))
|
||||
nil ;; We've got what we needed
|
||||
;; We have the old custom-library, hack around it!
|
||||
(defmacro defgroup (&rest args)
|
||||
nil)
|
||||
(defmacro defcustom (var value doc &rest args)
|
||||
(` (defvar (, var) (, value) (, doc))))))
|
||||
|
||||
(defgroup ssl nil
|
||||
"Support for `Secure Sockets Layer' encryption."
|
||||
:group 'comm)
|
||||
|
||||
(defcustom ssl-certificate-directory "~/.w3/certs/"
|
||||
"*Directory to store CA certificates in"
|
||||
:group 'ssl
|
||||
:type 'directory)
|
||||
|
||||
(defcustom ssl-rehash-program-name "c_rehash"
|
||||
"*Program to run after adding a cert to a directory .
|
||||
Run with one argument, the directory name."
|
||||
:group 'ssl
|
||||
:type 'string)
|
||||
|
||||
(defcustom ssl-view-certificate-program-name "x509"
|
||||
"*The program to run to provide a human-readable view of a certificate."
|
||||
:group 'ssl
|
||||
:type 'string)
|
||||
|
||||
(defcustom ssl-view-certificate-program-arguments '("-text" "-inform" "DER")
|
||||
"*Arguments that should be passed to the certificate viewing program.
|
||||
The certificate is piped to it.
|
||||
Maybe a way of passing a file should be implemented"
|
||||
:group 'ssl
|
||||
:type 'list)
|
||||
|
||||
(defcustom ssl-certificate-directory-style 'ssleay
|
||||
"*Style of cert database to use, the only valid value right now is `ssleay'.
|
||||
This means a directory of pem encoded certificates with hash symlinks."
|
||||
:group 'ssl
|
||||
:type '(choice (const :tag "SSLeay" :value ssleay)
|
||||
(const :tag "OpenSSL" :value openssl)))
|
||||
|
||||
(defcustom ssl-certificate-verification-policy 0
|
||||
"*How far up the certificate chain we should verify."
|
||||
:group 'ssl
|
||||
:type '(choice (const :tag "No verification" :value 0)
|
||||
(const :tag "Verification required" :value 1)
|
||||
(const :tag "Reject connection if verification fails" :value 3)
|
||||
(const :tag "SSL_VERIFY_CLIENT_ONCE" :value 5)))
|
||||
|
||||
(defcustom ssl-program-name "openssl"
|
||||
"*The program to run in a subprocess to open an SSL connection."
|
||||
:group 'ssl
|
||||
:type 'string)
|
||||
|
||||
(defcustom ssl-program-arguments
|
||||
'("s_client"
|
||||
"-quiet"
|
||||
"-host" host
|
||||
"-port" service
|
||||
"-verify" (int-to-string ssl-certificate-verification-policy)
|
||||
"-CApath" ssl-certificate-directory
|
||||
)
|
||||
"*Arguments that should be passed to the program `ssl-program-name'.
|
||||
This should be used if your SSL program needs command line switches to
|
||||
specify any behaviour (certificate file locations, etc).
|
||||
The special symbols 'host and 'port may be used in the list of arguments
|
||||
and will be replaced with the hostname and service/port that will be connected
|
||||
to."
|
||||
:group 'ssl
|
||||
:type 'list)
|
||||
|
||||
(defun ssl-certificate-information (der)
|
||||
"Return an assoc list of information about a certificate in DER format."
|
||||
(let ((certificate (concat "-----BEGIN CERTIFICATE-----\n"
|
||||
(base64-encode-string der)
|
||||
"\n-----END CERTIFICATE-----\n"))
|
||||
(exit-code 0))
|
||||
(save-excursion
|
||||
(set-buffer (get-buffer-create " *openssl*"))
|
||||
(erase-buffer)
|
||||
(insert certificate)
|
||||
(setq exit-code (condition-case ()
|
||||
(call-process-region (point-min) (point-max)
|
||||
ssl-program-name
|
||||
t (list (current-buffer) nil) t
|
||||
"x509"
|
||||
"-subject" ; Print the subject DN
|
||||
"-issuer" ; Print the issuer DN
|
||||
"-dates" ; Both before and after dates
|
||||
"-serial" ; print out serial number
|
||||
"-noout" ; Don't spit out the certificate
|
||||
)
|
||||
(error -1)))
|
||||
(if (/= exit-code 0)
|
||||
nil
|
||||
(let ((vals nil))
|
||||
(goto-char (point-min))
|
||||
(while (re-search-forward "^\\([^=\n\r]+\\)\\s *=\\s *\\(.*\\)" nil t)
|
||||
(push (cons (match-string 1) (match-string 2)) vals))
|
||||
vals)))))
|
||||
|
||||
(defun ssl-accept-ca-certificate ()
|
||||
"Ask if the user is willing to accept a new CA certificate. The buffer-name
|
||||
should be the intended name of the certificate, and the buffer should probably
|
||||
be in DER encoding"
|
||||
;; TODO, check if it is really new or if we already know it
|
||||
(let* ((process-connection-type nil)
|
||||
(tmpbuf (generate-new-buffer "X509 CA Certificate Information"))
|
||||
(response (save-excursion
|
||||
(and (eq 0
|
||||
(apply 'call-process-region
|
||||
(point-min) (point-max)
|
||||
ssl-view-certificate-program-name
|
||||
nil tmpbuf t
|
||||
ssl-view-certificate-program-arguments))
|
||||
(switch-to-buffer tmpbuf)
|
||||
(goto-char (point-min))
|
||||
(or (recenter) t)
|
||||
(yes-or-no-p
|
||||
"Accept this CA to vouch for secure server identities? ")
|
||||
(kill-buffer tmpbuf)))))
|
||||
(if (not response)
|
||||
nil
|
||||
(if (not (file-directory-p ssl-certificate-directory))
|
||||
(make-directory ssl-certificate-directory))
|
||||
(case ssl-certificate-directory-style
|
||||
(ssleay
|
||||
(base64-encode-region (point-min) (point-max))
|
||||
(goto-char (point-min))
|
||||
(insert "-----BEGIN CERTIFICATE-----\n")
|
||||
(goto-char (point-max))
|
||||
(insert "-----END CERTIFICATE-----\n")
|
||||
(let ((f (expand-file-name
|
||||
(concat (file-name-sans-extension (buffer-name)) ".pem")
|
||||
ssl-certificate-directory)))
|
||||
(write-file f)
|
||||
(call-process ssl-rehash-program-name
|
||||
nil nil nil
|
||||
(expand-file-name ssl-certificate-directory))))))))
|
||||
|
||||
(defun open-ssl-stream (name buffer host service)
|
||||
"Open a SSL connection for a service to a host.
|
||||
Returns a subprocess-object to represent the connection.
|
||||
Input and output work as for subprocesses; `delete-process' closes it.
|
||||
Args are NAME BUFFER HOST SERVICE.
|
||||
NAME is name for process. It is modified if necessary to make it unique.
|
||||
BUFFER is the buffer (or buffer-name) to associate with the process.
|
||||
Process output goes at end of that buffer, unless you specify
|
||||
an output stream or filter function to handle the output.
|
||||
BUFFER may be also nil, meaning that this process is not associated
|
||||
with any buffer
|
||||
Third arg is name of the host to connect to, or its IP address.
|
||||
Fourth arg SERVICE is name of the service desired, or an integer
|
||||
specifying a port number to connect to."
|
||||
(if (integerp service) (setq service (int-to-string service)))
|
||||
(let* ((process-connection-type nil)
|
||||
(port service)
|
||||
(proc (eval
|
||||
(`
|
||||
(start-process name buffer ssl-program-name
|
||||
(,@ ssl-program-arguments))))))
|
||||
(process-kill-without-query proc)
|
||||
proc))
|
||||
|
||||
(provide 'ssl)
|
Loading…
Reference in New Issue
Block a user