Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-40
Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 135-143) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 49-55) - Merge from emacs--devo--0 - Update from CVS - Update from CVS: Makefile.in (release-*): New targets.
This commit is contained in:
commit
b1af5d6a27
72 changed files with 9536 additions and 3832 deletions
|
@ -1,3 +1,12 @@
|
|||
2006-03-03 Claudio Fontana <claudio@gnu.org>
|
||||
|
||||
* Makefile.in (install, uninstall): Add DESTDIR variable to
|
||||
support staged installations.
|
||||
|
||||
2006-02-14 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* configure: Regenerated.
|
||||
|
||||
2006-02-14 Richard M. Stallman <rms@gnu.org>
|
||||
|
||||
* configure.in (s390x-*-linux-gnu*): New configuration.
|
||||
|
|
104
Makefile.in
104
Makefile.in
|
@ -250,7 +250,7 @@ SUBDIR_MAKEFILES = lib-src/Makefile man/Makefile lispref/Makefile lispintro/Make
|
|||
# avoid nuking an existing dir file, so we don't do that here;
|
||||
# instead, we have written out explicit code in the `install' targets.
|
||||
COPYDIR = ${srcdir}/etc ${srcdir}/lisp
|
||||
COPYDESTS = ${etcdir} ${lispdir}
|
||||
COPYDESTS = $(DESTDIR)${etcdir} $(DESTDIR)${lispdir}
|
||||
|
||||
all: ${SUBDIR} leim
|
||||
|
||||
|
@ -375,20 +375,20 @@ 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} ${bindir}/$(EMACSFULL)
|
||||
-chmod 1755 ${bindir}/$(EMACSFULL)
|
||||
rm -f ${bindir}/$(EMACS)
|
||||
-ln ${bindir}/$(EMACSFULL) ${bindir}/$(EMACS)
|
||||
${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)
|
||||
-unset CDPATH; \
|
||||
for f in `cd lib-src && echo fns-*.el`; do \
|
||||
if test -r lib-src/$$f ; then \
|
||||
${INSTALL_DATA} lib-src/$$f ${archlibdir}/$$f; \
|
||||
${INSTALL_DATA} lib-src/$$f $(DESTDIR)${archlibdir}/$$f; \
|
||||
else true; fi ; \
|
||||
done
|
||||
if test "${carbon_appdir}" != ""; then \
|
||||
umask 022; mkdir -p ${carbon_appdir}/Emacs.app; \
|
||||
umask 022; mkdir -p $(DESTDIR)${carbon_appdir}/Emacs.app; \
|
||||
(cd mac/Emacs.app; (tar -chf - . | \
|
||||
(cd ${carbon_appdir}/Emacs.app; umask 022; tar -xvf - \
|
||||
(cd $(DESTDIR)${carbon_appdir}/Emacs.app; umask 022; tar -xvf - \
|
||||
&& cat > /dev/null))) || exit 1; \
|
||||
fi
|
||||
|
||||
|
@ -439,86 +439,86 @@ install-arch-indep: mkdir info
|
|||
rm -f $${subdir}/dired.todo ; \
|
||||
done) ; \
|
||||
done
|
||||
-rm -f ${lispdir}/subdirs.el
|
||||
$(srcdir)/update-subdirs ${lispdir}
|
||||
if [ -f ${datadir}/emacs/${version}/site-lisp/subdirs.el ]; \
|
||||
-rm -f $(DESTDIR)${lispdir}/subdirs.el
|
||||
$(srcdir)/update-subdirs $(DESTDIR)${lispdir}
|
||||
if [ -f $(DESTDIR)${datadir}/emacs/${version}/site-lisp/subdirs.el ]; \
|
||||
then true; \
|
||||
else \
|
||||
(echo "(if (fboundp 'normal-top-level-add-subdirs-to-load-path)"; \
|
||||
echo " (normal-top-level-add-subdirs-to-load-path))") \
|
||||
> ${datadir}/emacs/${version}/site-lisp/subdirs.el; \
|
||||
> $(DESTDIR)${datadir}/emacs/${version}/site-lisp/subdirs.el; \
|
||||
fi
|
||||
chmod a+r ${datadir}/emacs/${version}/site-lisp/subdirs.el
|
||||
-if [ -f ${datadir}/emacs/site-lisp/subdirs.el ]; \
|
||||
chmod a+r $(DESTDIR)${datadir}/emacs/${version}/site-lisp/subdirs.el
|
||||
-if [ -f $(DESTDIR)${datadir}/emacs/site-lisp/subdirs.el ]; \
|
||||
then true; \
|
||||
else \
|
||||
(echo "(if (fboundp 'normal-top-level-add-subdirs-to-load-path)"; \
|
||||
echo " (normal-top-level-add-subdirs-to-load-path))") \
|
||||
> ${datadir}/emacs/site-lisp/subdirs.el; \
|
||||
> $(DESTDIR)${datadir}/emacs/site-lisp/subdirs.el; \
|
||||
fi
|
||||
-chmod a+r ${datadir}/emacs/site-lisp/subdirs.el
|
||||
-chmod a+r $(DESTDIR)${datadir}/emacs/site-lisp/subdirs.el
|
||||
-unset CDPATH; \
|
||||
if [ `(cd ./etc; /bin/pwd)` != `(cd ${docdir}; /bin/pwd)` ]; \
|
||||
if [ `(cd ./etc; /bin/pwd)` != `(cd $(DESTDIR)${docdir}; /bin/pwd)` ]; \
|
||||
then \
|
||||
echo "Copying etc/DOC-* to ${docdir} ..." ; \
|
||||
echo "Copying etc/DOC-* to $(DESTDIR)${docdir} ..." ; \
|
||||
(cd ./etc; tar -chf - DOC*) \
|
||||
|(cd ${docdir}; umask 022; tar -xvf - && cat > /dev/null) || exit 1; \
|
||||
(cd $(docdir); chown $${LOGNAME:-$$USERNAME} DOC*; chmod a+r DOC*; \
|
||||
|(cd $(DESTDIR)${docdir}; umask 022; tar -xvf - && cat > /dev/null) || exit 1; \
|
||||
(cd $(DESTDIR)$(docdir); chown $${LOGNAME:-$$USERNAME} DOC*; chmod a+r DOC*; \
|
||||
if test "`echo DOC-*`" != "DOC-*"; then rm DOC; fi); \
|
||||
else true; fi
|
||||
-unset CDPATH; \
|
||||
if [ -r ./lisp ] \
|
||||
&& [ -r ./lisp/simple.el ] \
|
||||
&& [ x`(cd ./lisp; /bin/pwd)` != x`(cd ${lispdir}; /bin/pwd)` ] \
|
||||
&& [ x`(cd ./lisp; /bin/pwd)` != x`(cd $(DESTDIR)${lispdir}; /bin/pwd)` ] \
|
||||
&& [ x`(cd ${srcdir}/lisp; /bin/pwd)` != x`(cd ./lisp; /bin/pwd)` ]; \
|
||||
then \
|
||||
echo "Copying lisp/*.el and lisp/*.elc to ${lispdir} ..." ; \
|
||||
echo "Copying lisp/*.el and lisp/*.elc to $(DESTDIR)${lispdir} ..." ; \
|
||||
(cd lisp; tar -chf - *.el *.elc) \
|
||||
|(cd ${lispdir}; umask 022; tar -xvf - && cat > /dev/null) || exit 1; \
|
||||
(cd ${lispdir}; find . -exec chown $${LOGNAME:-$$USERNAME} {} ';') ; \
|
||||
|(cd $(DESTDIR)${lispdir}; umask 022; tar -xvf - && cat > /dev/null) || exit 1; \
|
||||
(cd $(DESTDIR)${lispdir}; find . -exec chown $${LOGNAME:-$$USERNAME} {} ';') ; \
|
||||
else true; fi
|
||||
-unset CDPATH; \
|
||||
if [ -n "${GZIP_PROG}" ]; \
|
||||
then \
|
||||
echo "Compressing *.el ..." ; \
|
||||
(cd ${lispdir}; for f in `find . -name "*.elc" -print`; do \
|
||||
(cd $(DESTDIR)${lispdir}; for f in `find . -name "*.elc" -print`; do \
|
||||
${GZIP_PROG} -9n `echo $$f|sed 's/.elc$$/.el/'` ; \
|
||||
done) \
|
||||
else true; fi
|
||||
-unset CDPATH; \
|
||||
thisdir=`/bin/pwd`; \
|
||||
if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd ${infodir} && /bin/pwd)` ]; \
|
||||
if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd $(DESTDIR)${infodir} && /bin/pwd)` ]; \
|
||||
then \
|
||||
(cd ${infodir}; \
|
||||
(cd $(DESTDIR)${infodir}; \
|
||||
if [ -f dir ]; then true; \
|
||||
else \
|
||||
(cd $${thisdir}; \
|
||||
${INSTALL_DATA} ${srcdir}/info/dir ${infodir}/dir; \
|
||||
chmod a+r ${infodir}/dir); \
|
||||
${INSTALL_DATA} ${srcdir}/info/dir $(DESTDIR)${infodir}/dir; \
|
||||
chmod a+r $(DESTDIR)${infodir}/dir); \
|
||||
fi; \
|
||||
cd ${srcdir}/info ; \
|
||||
for f in ada-mode* autotype* calc* ccmode* cl* dired-x* ebrowse* ediff* efaq* eintr* elisp* emacs* emacs-mime* emacs-xtra* eshell* eudc* flymake* forms* gnus* idlwave* info* message* mh-e* newsticker* org* pcl-cvs* pgg* reftex* sc* ses* sieve* speedbar* tramp* vip* widget* woman* smtpmail* url* rcirc* erc*; do \
|
||||
(cd $${thisdir}; \
|
||||
${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f; \
|
||||
chmod a+r ${infodir}/$$f); \
|
||||
${INSTALL_DATA} ${srcdir}/info/$$f $(DESTDIR)${infodir}/$$f; \
|
||||
chmod a+r $(DESTDIR)${infodir}/$$f); \
|
||||
done); \
|
||||
else true; fi
|
||||
-unset CDPATH; \
|
||||
thisdir=`/bin/pwd`; \
|
||||
if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd ${infodir} && /bin/pwd)` ]; \
|
||||
if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd $(DESTDIR)${infodir} && /bin/pwd)` ]; \
|
||||
then \
|
||||
for f in ada-mode autotype calc ccmode cl dired-x ebrowse ediff efaq elisp eintr emacs emacs-mime emacs-xtra eshell eudc flymake forms gnus idlwave info message mh-e newsticker org pcl-cvs pgg reftex sc ses sieve speedbar tramp vip viper widget woman smtpmail url rcirc erc; do \
|
||||
(cd $${thisdir}; \
|
||||
${INSTALL_INFO} --info-dir=${infodir} ${infodir}/$$f); \
|
||||
${INSTALL_INFO} --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$f); \
|
||||
done; \
|
||||
else true; fi
|
||||
-chmod -R a+r ${datadir}/emacs ${COPYDESTS} ${infodir}
|
||||
-chmod -R a+r $(DESTDIR)${datadir}/emacs ${COPYDESTS} $(DESTDIR)${infodir}
|
||||
thisdir=`/bin/pwd`; \
|
||||
cd ${srcdir}/etc; \
|
||||
for page in emacs emacsclient etags ctags ; do \
|
||||
(cd $${thisdir}; \
|
||||
${INSTALL_DATA} ${srcdir}/etc/$${page}.1 ${man1dir}/$${page}${manext}; \
|
||||
chmod a+r ${man1dir}/$${page}${manext}); \
|
||||
${INSTALL_DATA} ${srcdir}/etc/$${page}.1 $(DESTDIR)${man1dir}/$${page}${manext}; \
|
||||
chmod a+r $(DESTDIR)${man1dir}/$${page}${manext}); \
|
||||
done
|
||||
|
||||
### Install LEIM files. Although they are machine-independent, we
|
||||
|
@ -537,15 +537,15 @@ install-strip:
|
|||
### /usr/local/lib/emacs/19.0/mips-dec-ultrix4.2), we use mkinstalldirs
|
||||
### instead of mkdir. Not all systems' mkdir programs have the `-p' flag.
|
||||
mkdir: FRC
|
||||
if [ -d ${datadir} ]; then true; else \
|
||||
$(srcdir)/mkinstalldirs ${datadir}; \
|
||||
chmod a+r ${datadir};\
|
||||
if [ -d $(DESTDIR)${datadir} ]; then true; else \
|
||||
$(srcdir)/mkinstalldirs $(DESTDIR)${datadir}; \
|
||||
chmod a+r $(DESTDIR)${datadir};\
|
||||
fi
|
||||
$(srcdir)/mkinstalldirs ${COPYDESTS} ${infodir} ${man1dir} \
|
||||
${bindir} ${docdir} ${libexecdir} \
|
||||
${datadir}/emacs/site-lisp \
|
||||
${datadir}/emacs/${version}/site-lisp \
|
||||
`echo ${locallisppath} | sed 's/:/ /g'`
|
||||
$(srcdir)/mkinstalldirs ${COPYDESTS} $(DESTDIR)${infodir} $(DESTDIR)${man1dir} \
|
||||
$(DESTDIR)${bindir} $(DESTDIR)${docdir} $(DESTDIR)${libexecdir} \
|
||||
$(DESTDIR)${datadir}/emacs/site-lisp \
|
||||
$(DESTDIR)${datadir}/emacs/${version}/site-lisp \
|
||||
$(DESTDIR)`echo ${locallisppath} | sed 's,:, $(DESTDIR),g'`
|
||||
|
||||
### Delete all the installed files that the `install' target would
|
||||
### create (but not the noninstalled files such as `make all' would
|
||||
|
@ -558,24 +558,24 @@ uninstall:
|
|||
prefix=${prefix} exec_prefix=${exec_prefix} \
|
||||
bindir=${bindir} libexecdir=${libexecdir} archlibdir=${archlibdir})
|
||||
-unset CDPATH; \
|
||||
for dir in ${lispdir} ${etcdir} ; do \
|
||||
for dir in $(DESTDIR)${lispdir} $(DESTDIR)${etcdir} ; do \
|
||||
if [ -d $${dir} ]; then \
|
||||
case `(cd $${dir} ; /bin/pwd)` in \
|
||||
`(cd ${srcdir} ; /bin/pwd)`* ) ;; \
|
||||
* ) rm -rf $${dir} ;; \
|
||||
esac ; \
|
||||
case $${dir} in \
|
||||
${datadir}/emacs/${version}/* ) \
|
||||
rm -rf ${datadir}/emacs/${version} \
|
||||
$(DESTDIR)${datadir}/emacs/${version}/* ) \
|
||||
rm -rf $(DESTDIR)${datadir}/emacs/${version} \
|
||||
;; \
|
||||
esac ; \
|
||||
fi ; \
|
||||
done
|
||||
(cd ${archlibdir} && rm -f fns-*)
|
||||
-rm -rf ${libexecdir}/emacs/${version}
|
||||
(cd ${infodir} && rm -f cl* ada-mode* autotype* calc* ccmode* ebrowse* efaq* eintr elisp* eshell* eudc* idlwave* message* pcl-cvs* reftex* speedbar* tramp* widget* woman* dired-x* ediff* emacs* emacs-xtra* flymake* forms* gnus* info* mh-e* newsticker* org* sc* ses* vip* smtpmail* url* rcirc* erc*)
|
||||
(cd ${man1dir} && rm -f emacs${manext} emacsclient${manext} etags${manext} ctags${manext})
|
||||
(cd ${bindir} && rm -f $(EMACSFULL) $(EMACS))
|
||||
(cd $(DESTDIR)${archlibdir} && rm -f fns-*)
|
||||
-rm -rf $(DESTDIR)${libexecdir}/emacs/${version}
|
||||
(cd $(DESTDIR)${infodir} && rm -f cl* ada-mode* autotype* calc* ccmode* ebrowse* efaq* eintr elisp* eshell* eudc* idlwave* message* pcl-cvs* reftex* speedbar* tramp* widget* woman* dired-x* ediff* emacs* emacs-xtra* flymake* forms* gnus* info* mh-e* newsticker* org* sc* ses* vip* smtpmail* url* rcirc* erc*)
|
||||
(cd $(DESTDIR)${man1dir} && rm -f emacs${manext} emacsclient${manext} etags${manext} ctags${manext})
|
||||
(cd $(DESTDIR)${bindir} && rm -f $(EMACSFULL) $(EMACS))
|
||||
|
||||
|
||||
FRC:
|
||||
|
|
|
@ -33,13 +33,6 @@ Assigned to Bill Wohler <wohler@newt.com>.
|
|||
|
||||
* BUGS
|
||||
|
||||
** Reiner Steib's 23 Jan 2006 bug report that tool bar icons don't update.
|
||||
URL/MID: http://mid.gmane.org/v9acdmrcse.fsf@marauder.physik.uni-ulm.de
|
||||
|
||||
** Problems with moving point across invisible text,
|
||||
including Ralf Angeli's 21 Feb bug report
|
||||
and Martin Rudalics' 14 Feb bug report "Re: moving point and invisible text"
|
||||
|
||||
** Markus Gritsch's report about Emacs looping on Windoze with the following
|
||||
.emacs file, and then reduce Emacs frame width to "something quite narrow":
|
||||
(setq-default truncate-lines t)
|
||||
|
|
3
configure
vendored
3
configure
vendored
|
@ -2136,6 +2136,9 @@ _ACEOF
|
|||
s390-*-linux-gnu* )
|
||||
machine=ibms390 opsys=gnu-linux
|
||||
;;
|
||||
s390x-*-linux-gnu* )
|
||||
machine=ibms390x opsys=gnu-linux
|
||||
;;
|
||||
rs6000-ibm-aix3.1* | powerpc-ibm-aix3.1* )
|
||||
machine=ibmrs6000 opsys=aix3-1
|
||||
;;
|
||||
|
|
|
@ -1,3 +1,13 @@
|
|||
2006-03-07 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* orgcard.tex: Version number change only.
|
||||
|
||||
2006-03-05 Bill Wohler <wohler@newt.com>
|
||||
|
||||
Release MH-E version 7.93.
|
||||
|
||||
* NEWS, MH-E-NEWS: Update for MH-E release 7.93.
|
||||
|
||||
2006-02-23 Herbert Euler <herberteuler@hotmail.com> (tiny change)
|
||||
|
||||
* TUTORIAL.cn: Fix omission bug: Add dot (ASCII 0x2E) on first line.
|
||||
|
|
|
@ -355,6 +355,10 @@ in the Agent, it won't get downloaded once more. Customize
|
|||
On composing messages, it is enabled by `use-hard-newlines'. Decoding
|
||||
format=flowed was present but not documented in earlier versions.
|
||||
|
||||
** The option `mm-fill-flowed' can be used to disable treatment of
|
||||
format=flowed messages. Also, flowed text is disabled when sending
|
||||
inline PGP signed messages. (New in Gnus 5.10.7)
|
||||
|
||||
** Gnus supports the generation of RFC 2298 Disposition Notification requests.
|
||||
|
||||
This is invoked with the C-c M-n key binding from message mode.
|
||||
|
|
|
@ -6,6 +6,46 @@ Copying and distribution of this file, with or without modification,
|
|||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved.
|
||||
|
||||
* Changes in MH-E 7.93
|
||||
|
||||
Version 7.93, the fourth 8.0 beta release, fixes a handful of bugs in
|
||||
searching and limiting exposed during continued beta testing.
|
||||
|
||||
** Variables Deleted in MH-E 7.93
|
||||
|
||||
*** mh-show-use-goto-addr-flag
|
||||
|
||||
This flag was redundant and inconsistent with
|
||||
`goto-address-highlight-p' at the same time, so we removed it. Please
|
||||
customize `goto-address-highlight-p' if you wish to turn off email
|
||||
address and URL highlighting.
|
||||
|
||||
** Bug Fixes in MH-E 7.93
|
||||
|
||||
*** `/ s' Can Miss the Original Mail
|
||||
|
||||
The command `/ s' failed to include the message with the "Re:" in the
|
||||
Subject. This has been fixed (closes SF #1438369).
|
||||
|
||||
*** XEmacs -nw Fails with number-char-or-marker-p Error
|
||||
|
||||
Hopefully, this is the last we'll hear of problems associated with
|
||||
XEmacs' incompatible `device-color-cells' function (closes SF
|
||||
#1436924).
|
||||
|
||||
*** Pick-based Searches Fail
|
||||
|
||||
The command `C-c C-p' failed to find any matches. This has been fixed
|
||||
(closes SF #1435381).
|
||||
|
||||
*** Can't Narrow to Subject with Regexp Chars
|
||||
|
||||
The command `/ s' could not limit subjects that had special pick
|
||||
characters (such as [, *, $, .). This has been fixed (closes SF
|
||||
#1432548).
|
||||
|
||||
|
||||
|
||||
* Changes in MH-E 7.92
|
||||
|
||||
Version 7.92, the third 8.0 beta release, removes the "sed -i" in the
|
||||
|
|
2
etc/NEWS
2
etc/NEWS
|
@ -3082,7 +3082,7 @@ See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details.
|
|||
---
|
||||
** MH-E changes.
|
||||
|
||||
Upgraded to MH-E version 7.92. There have been major changes since
|
||||
Upgraded to MH-E version 7.93. There have been major changes since
|
||||
version 5.0.2; see MH-E-NEWS for details.
|
||||
|
||||
** Calendar changes:
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
% Reference Card for Org Mode 4.07
|
||||
% Reference Card for Org Mode 4.08
|
||||
%
|
||||
%**start of header
|
||||
\newcount\columnsperpage
|
||||
|
@ -58,7 +58,7 @@
|
|||
% Thanks to Paul Rubin, Bob Chassell, Len Tower, and Richard Mlynarik
|
||||
% for their many good ideas.
|
||||
|
||||
\def\orgversionnumber{4.07}
|
||||
\def\orgversionnumber{4.08}
|
||||
\def\year{2006}
|
||||
|
||||
\def\shortcopyrightnotice{\vskip 1ex plus 2 fill
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2006-03-03 Claudio Fontana <claudio@gnu.org>
|
||||
|
||||
* Makefile.in (install): Add DESTDIR variable to support staged
|
||||
installations.
|
||||
|
||||
2005-12-17 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* makefile.w32-in ($(TIT), leim-list.el): Warn that parts of
|
||||
|
|
|
@ -33,7 +33,7 @@ datadir=@datadir@
|
|||
srcdir=@srcdir@
|
||||
|
||||
# Where to install LEIM files.
|
||||
INSTALLDIR=${datadir}/emacs/${version}/leim
|
||||
INSTALLDIR=$(DESTDIR)${datadir}/emacs/${version}/leim
|
||||
|
||||
GZIP_PROG = @GZIP_PROG@
|
||||
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2006-02-23 Claudio Fontana <claudio@gnu.org>
|
||||
|
||||
* Makefile.in (install, uninstall): Add DESTDIR variable to
|
||||
support staged installations.
|
||||
|
||||
2005-12-30 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* makefile.w32-in (MOUSE_SUPPORT): Add tooltip.elc.
|
||||
|
|
|
@ -285,11 +285,11 @@ blessmail:
|
|||
maybe-blessmail: BLESSMAIL
|
||||
#ifdef MOVEMAIL_NEEDS_BLESSING
|
||||
/* Don\'t charge ahead and do it! Let the installer decide.
|
||||
./blessmail ${archlibdir}/movemail${EXEEXT} */
|
||||
./blessmail $(DESTDIR)${archlibdir}/movemail${EXEEXT} */
|
||||
@if [ `wc -l <blessmail` != 2 ] ; then \
|
||||
dir=`sed -n -e 's/echo mail directory = \(.*\)/\1/p' blessmail`; \
|
||||
echo Assuming $$dir is really the mail spool directory, you should; \
|
||||
echo run lib-src/blessmail ${archlibdir}/movemail${EXEEXT}; \
|
||||
echo run lib-src/blessmail $(DESTDIR)${archlibdir}/movemail${EXEEXT}; \
|
||||
echo as root, to give movemail${EXEEXT} appropriate permissions.; \
|
||||
echo Do that after running make install.; \
|
||||
fi
|
||||
|
@ -297,50 +297,50 @@ maybe-blessmail: BLESSMAIL
|
|||
|
||||
/* Install the internal utilities. Until they are installed, we can
|
||||
just run them directly from lib-src. */
|
||||
${archlibdir}: all
|
||||
$(DESTDIR)${archlibdir}: all
|
||||
@echo
|
||||
@echo "Installing utilities run internally by Emacs."
|
||||
$(top_srcdir)/mkinstalldirs ${archlibdir}
|
||||
if [ `(cd ${archlibdir} && /bin/pwd)` != `/bin/pwd` ]; then \
|
||||
$(top_srcdir)/mkinstalldirs $(DESTDIR)${archlibdir}
|
||||
if [ `(cd $(DESTDIR)${archlibdir} && /bin/pwd)` != `/bin/pwd` ]; then \
|
||||
for file in ${UTILITIES}; do \
|
||||
$(INSTALL_PROGRAM) $(INSTALL_STRIP) $$file ${archlibdir}/$$file ; \
|
||||
$(INSTALL_PROGRAM) $(INSTALL_STRIP) $$file $(DESTDIR)${archlibdir}/$$file ; \
|
||||
done ; \
|
||||
fi
|
||||
$(top_srcdir)/mkinstalldirs ${gamedir}
|
||||
touch ${gamedir}/snake-scores
|
||||
touch ${gamedir}/tetris-scores
|
||||
$(top_srcdir)/mkinstalldirs $(DESTDIR)${gamedir}
|
||||
touch $(DESTDIR)${gamedir}/snake-scores
|
||||
touch $(DESTDIR)${gamedir}/tetris-scores
|
||||
/* If the following commands fail, that is not a big deal.
|
||||
update-game-score will detect at runtime that it is not setuid,
|
||||
and handle things accordingly. */
|
||||
-if chown ${gameuser} ${archlibdir}/update-game-score && chmod u+s ${archlibdir}/update-game-score; then \
|
||||
chown ${gameuser} ${gamedir}; \
|
||||
chmod u=rwx,g=rwx,o=rx ${gamedir}; \
|
||||
-if chown ${gameuser} $(DESTDIR)${archlibdir}/update-game-score && chmod u+s $(DESTDIR)${archlibdir}/update-game-score; then \
|
||||
chown ${gameuser} $(DESTDIR)${gamedir}; \
|
||||
chmod u=rwx,g=rwx,o=rx $(DESTDIR)${gamedir}; \
|
||||
fi
|
||||
if [ `(cd ${archlibdir} && /bin/pwd)` \
|
||||
if [ `(cd $(DESTDIR)${archlibdir} && /bin/pwd)` \
|
||||
!= `(cd ${srcdir} && /bin/pwd)` ]; then \
|
||||
for file in ${SCRIPTS}; do \
|
||||
$(INSTALL_PROGRAM) ${srcdir}/$$file ${archlibdir}/$$file; \
|
||||
$(INSTALL_PROGRAM) ${srcdir}/$$file $(DESTDIR)${archlibdir}/$$file; \
|
||||
done ; \
|
||||
fi
|
||||
|
||||
install: ${archlibdir}
|
||||
install: $(DESTDIR)${archlibdir}
|
||||
@echo
|
||||
@echo "Installing utilities for users to run."
|
||||
for file in ${INSTALLABLES} ; do \
|
||||
$(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} ${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \
|
||||
chmod a+rx ${bindir}/`echo $${file} | sed '$(TRANSFORM)'`; \
|
||||
$(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \
|
||||
chmod a+rx $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'`; \
|
||||
done
|
||||
for file in ${INSTALLABLE_SCRIPTS} ; do \
|
||||
$(INSTALL_PROGRAM) ${srcdir}/$${file} ${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \
|
||||
chmod a+rx ${bindir}/`echo $${file} | sed '$(TRANSFORM)'`; \
|
||||
$(INSTALL_PROGRAM) ${srcdir}/$${file} $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \
|
||||
chmod a+rx $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'`; \
|
||||
done
|
||||
|
||||
uninstall:
|
||||
(cd ${bindir}; \
|
||||
(cd $(DESTDIR)${bindir}; \
|
||||
for file in ${INSTALLABLES} ${INSTALLABLE_SCRIPTS}; do \
|
||||
rm -f ${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \
|
||||
rm -f $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \
|
||||
done)
|
||||
(cd ${archlibdir}; \
|
||||
(cd $(DESTDIR)${archlibdir}; \
|
||||
rm -f ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS})
|
||||
|
||||
mostlyclean:
|
||||
|
|
204
lisp/ChangeLog
204
lisp/ChangeLog
|
@ -1,26 +1,177 @@
|
|||
2006-03-08 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* help.el (view-lossage): Remove trailing whitespace before
|
||||
inserting "\n".
|
||||
|
||||
2006-03-07 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* files.el (hack-local-variables-confirm): Set
|
||||
coding-system-for-read to nil before writing to .emacs.
|
||||
|
||||
* arc-mode.el (archive-extract): Check if an existing buffer name
|
||||
comes from a different archive.
|
||||
|
||||
* help.el (describe-key-briefly): If KEY is a down event, read and
|
||||
discard the up event.
|
||||
|
||||
2006-03-07 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
* progmodes/gud.el (gud-speedbar-buttons): Allow pointers to
|
||||
be edited and use font-lock-warning-face for any changes.
|
||||
|
||||
* progmodes/gdb-ui.el (gdb-edit-value-handler): New function.
|
||||
(gdb-edit-value): Use it to report any errors.
|
||||
|
||||
2006-03-07 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* help.el (describe-key): Remove leftover test code.
|
||||
|
||||
2006-03-07 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* textmodes/org.el: Move defvars out of eval-when-compile. Use
|
||||
buffer-file-name variable.
|
||||
(org-agenda-file-to-end, org-agenda-file-to-front): Remove unused
|
||||
arg `file'.
|
||||
(org-level-faces): Remove startup dependency.
|
||||
(org-cycle, org-map-tree, org-scan-tags)
|
||||
(org-remember-handler): Don't call `outline-level' directly.
|
||||
(org-mhe-search-all-folders): New option.
|
||||
(org-mhe-get-message-folder-from-index)
|
||||
(org-mhe-get-message-folder): Fix indexing search.
|
||||
(org-format-agenda-item): Handle nil TAGS argument.
|
||||
(org-cleaned-string-for-export, org-activate-target-links)
|
||||
(org-make-target-link-regexp): Deal with empty radio target list.
|
||||
(org-tag): New face.
|
||||
(org-get-level-face): New function.
|
||||
(org-set-font-lock-defaults): Simplify setup for headlines.
|
||||
(org-complete): Pass common substring to
|
||||
`display-completion-list'.
|
||||
|
||||
2006-03-06 David Ponce <david@dponce.com>
|
||||
|
||||
* tree-widget.el: Update Commentary header.
|
||||
(tree-widget-theme-name): Ignore parent themes.
|
||||
(tree-widget-set-parent-theme): New function.
|
||||
(tree-widget-set-theme): Use it.
|
||||
(tree-widget-set-image-properties): Move definition. Does nothing
|
||||
if image properties have already been set.
|
||||
(tree-widget-image-properties): Move definition. Receive an image
|
||||
name. Set the :pointer property.
|
||||
(tree-widget-lookup-image): Doc fix. Search in parent themes.
|
||||
Don't set the :pointer image property.
|
||||
(tree-widget-convert-widget): New function. Handle :dynargs
|
||||
compatibility here.
|
||||
(tree-widget): Use it to :convert-widget. Add the :expander-p
|
||||
predicate to control when the :expander function is entered.
|
||||
Thanks to Ken Manheimer <ken.manheimer@gmail.com> for the idea.
|
||||
(tree-widget-value-create): Handle :expander-p. widget-apply
|
||||
:expander.
|
||||
(tree-widget-expander-p): New function. Default value of the
|
||||
:expander-p property.
|
||||
|
||||
2006-03-06 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* help.el (describe-key): Properly handle the return value of
|
||||
read-key-sequence when grabbing an up-event. Cleanup mouse-1
|
||||
remaps. Handle string and vector `follow-link' values.
|
||||
|
||||
2006-03-06 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* complete.el (PC-expand-many-files): Try be more careful when parsing
|
||||
the shell's output.
|
||||
|
||||
2006-03-05 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* outline.el (hide-sublevels): Provide better interactive default.
|
||||
|
||||
2006-03-06 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* international/fontset.el (create-fontset-from-fontset-spec):
|
||||
Fix regexp for paring FONTSET-SPEC (allow spaces after `:').
|
||||
|
||||
2006-03-05 Luc Teirlinck <teirllm@auburn.edu>
|
||||
|
||||
* progmodes/gud.el (gud-jdb-marker-filter): Quote `[' with two
|
||||
backslashes instead of one in regexp.
|
||||
(gud-tooltip-dereference): Add missing optional argument.
|
||||
|
||||
2006-03-04 John Paul Wallington <jpw@pobox.com>
|
||||
|
||||
* wdired.el (toplevel): Require `cl' at compile-time.
|
||||
|
||||
2006-03-04 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* server.el (server-process-filter): Handle errors during
|
||||
evaluation of the argument.
|
||||
|
||||
2006-03-03 John Paul Wallington <jpw@pobox.com>
|
||||
|
||||
* t-mouse.el (t-mouse-drag-start, t-mouse-swap-alt-keys): Doc fix;
|
||||
escape parentheses at beginning of line.
|
||||
(t-mouse-tty, t-mouse-make-event): Doc fix; use imperative.
|
||||
(t-mouse-mode): Remove period from end of error message.
|
||||
|
||||
2006-03-03 Agustin Martin <agustin.martin@hispalinux.es>
|
||||
|
||||
* textmodes/flyspell.el (flyspell-process-localwords):
|
||||
Be case-sensitive.
|
||||
|
||||
2006-03-03 Martin Rudalics <rudalics@gmx.at>
|
||||
|
||||
* cus-edit.el (custom-quote): Remove function, since it has been
|
||||
moved to custom.el.
|
||||
|
||||
* font-lock.el (lisp-font-lock-keywords-2)
|
||||
* emacs-lisp/rx.el (rx-check-any, rx-check-not)
|
||||
* generic-x.el (reg-generic-mode): Quote "]"s in regexps when
|
||||
they have no special meaning.
|
||||
|
||||
* midnight.el (clean-buffer-list): Handle case where base-buffer of
|
||||
indirect buffer gets killed before indirect buffer. Use dolist.
|
||||
|
||||
2006-03-03 Ken Manheimer <ken.manheimer@gmail.com>
|
||||
|
||||
* emacs-lisp/edebug.el (edebug-display): Use `edebug-sit-for-seconds'
|
||||
value instead of a literal constant (1) on more pauses.
|
||||
|
||||
2006-03-03 Slawomir Nowaczyk <slawomir.nowaczyk.847@student.lu.se> (tiny change)
|
||||
|
||||
* textmodes/flyspell.el (flyspell-external-point-words):
|
||||
Be case-sensitive.
|
||||
|
||||
2006-03-03 Ryan Yeske <rcyeske@gmail.com>
|
||||
|
||||
* net/rcirc.el (rcirc-url-regexp): Match entire url when it starts
|
||||
with "www".
|
||||
|
||||
2006-03-03 Ken Manheimer <ken.manheimer@gmail.com>
|
||||
|
||||
* allout.el: Restablish intermediate missing comment header to
|
||||
preserve outline structure.
|
||||
(allout-beginning-of-current-entry): Skip invisible text.
|
||||
(allout-open-topic): Fix opening a topic at end-of-buffer.
|
||||
(allout-minor-mode): Move nearer to allout-mode function.
|
||||
|
||||
2006-03-02 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* textmodes/org.el (org-paste-subtree): Removed forgotten (debug)
|
||||
form.
|
||||
* textmodes/org.el (org-paste-subtree): Remove (debug) form.
|
||||
|
||||
2006-03-02 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
* dframe.el (dframe-frame-mode): Don't burp when menu-bar-lines
|
||||
is nil.
|
||||
|
||||
* progmodes/gud.el (gud-speedbar-menu-items): Use
|
||||
buffer-local-value and add missing :visible keyword.
|
||||
* progmodes/gud.el (gud-speedbar-menu-items):
|
||||
Use buffer-local-value and add missing :visible keyword.
|
||||
|
||||
* progmodes/gdb-ui.el (gdb-speedbar-refresh): Quieten
|
||||
speedbar-refresh.
|
||||
* progmodes/gdb-ui.el (gdb-speedbar-refresh): Quieten speedbar-refresh.
|
||||
|
||||
2006-03-01 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* textmodes/reftex-index.el (reftex-index-map): `follow-mouse'
|
||||
must be `follow-link'.
|
||||
|
||||
* textmodes/reftex-toc.el (reftex-toc-map): `follow-mouse' must be
|
||||
`follow-link'.
|
||||
* textmodes/reftex-toc.el (reftex-toc-map): Likewise.
|
||||
|
||||
* textmodes/org.el (org-export-as-html): Fix bugs in HTML
|
||||
formatting: No nested anchors.
|
||||
|
@ -28,8 +179,7 @@
|
|||
(org-read-date): Add (require 'parse-time).
|
||||
(org-set-tags): Fix bug with extra inserted space.
|
||||
(org-export-html-style): Define a style class for targets.
|
||||
(org-agenda-keymap, org-mouse-map): Add a binding for
|
||||
`follow-link'.
|
||||
(org-agenda-keymap, org-mouse-map): Add a binding for `follow-link'.
|
||||
(org-hide-leading-stars): New option.
|
||||
(org-hide): New face.
|
||||
(org-set-font-lock-defaults): Allow to hide leading stars.
|
||||
|
@ -45,12 +195,11 @@
|
|||
preserve window-start.
|
||||
(speedbar-update-directory-contents): Try to preserve window-start
|
||||
and window-point.
|
||||
(speedbar-update-special-contents): Don't move back to start of
|
||||
window.
|
||||
(speedbar-update-special-contents): Don't move back to start of window.
|
||||
|
||||
* progmodes/gdb-ui.el (gdb-speedbar-refresh): Rename from
|
||||
gdb-speedbar-timer-fn. Use speedbar-refresh instead of
|
||||
speedbar-timer-fn
|
||||
speedbar-timer-fn.
|
||||
(gdb-var-update-handler, gdb-var-update-handler-1): Use it.
|
||||
(gdb-speedbar-expand-node): Use speedbar-delete-subblock
|
||||
instead of gdb-speedbar-timer-fn.
|
||||
|
@ -137,17 +286,17 @@
|
|||
* startup.el (command-line):
|
||||
* subr.el (locate-library):
|
||||
* emacs-lisp/autoload.el (update-directory-autoloads):
|
||||
* emacs-lisp/find-func.el (find-library-suffixes): Use
|
||||
`get-load-suffixes' instead of `load-suffixes'.
|
||||
* emacs-lisp/find-func.el (find-library-suffixes):
|
||||
Use `get-load-suffixes' instead of `load-suffixes'.
|
||||
|
||||
* subr.el (locate-library):
|
||||
* emacs-lisp/find-func.el (find-library-name): Use
|
||||
`load-file-rep-suffixes' instead of '("").
|
||||
* emacs-lisp/find-func.el (find-library-name):
|
||||
Use `load-file-rep-suffixes' instead of '("").
|
||||
|
||||
2006-02-26 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
* ido.el (ido-save-history, ido-load-history): Simplify. Don't
|
||||
use find-file-noselect to avoid interference from other modes.
|
||||
* ido.el (ido-save-history, ido-load-history): Simplify.
|
||||
Don't use find-file-noselect to avoid interference from other modes.
|
||||
|
||||
2006-02-25 Thien-Thi Nguyen <ttn@gnu.org>
|
||||
|
||||
|
@ -166,8 +315,8 @@
|
|||
|
||||
2006-02-24 Alan Mackenzie <bug-cc-mode@gnu.org>
|
||||
|
||||
* progmodes/cc-mode.el (c-postprocess-file-styles): Bind
|
||||
inhibit-read-only to t, around the call to
|
||||
* progmodes/cc-mode.el (c-postprocess-file-styles):
|
||||
Bind inhibit-read-only to t, around the call to
|
||||
c-remove-any-local-eval-or-mode-variables, so that it works on a
|
||||
RO file.
|
||||
|
||||
|
@ -208,13 +357,12 @@
|
|||
|
||||
* progmodes/cc-mode.el:
|
||||
[Supersedes patch to cc-engine.el 2005-12-16T20:07:49Z!monnier@iro.umontreal.ca]
|
||||
(c-after-change): Protect the match data with save-match-data. It
|
||||
was getting corrupted by c-after-change-check-<>-operators.
|
||||
(c-after-change): Protect the match data with save-match-data.
|
||||
It was getting corrupted by c-after-change-check-<>-operators.
|
||||
|
||||
* cc-defs.el: [Supersedes patch V1.38]:
|
||||
(top level): Check for a buggy font-lock-compile-keywords ONLY in
|
||||
XEmacs. GNU Emacs 22 now has a check which would throw an error
|
||||
here.
|
||||
XEmacs. GNU Emacs 22 now has a check which would throw an error here.
|
||||
|
||||
* progmodes/cc-awk.el (c-awk-after-change): Protect the match data
|
||||
with save-match-data. It was being corrupted when Font Lock was
|
||||
|
@ -230,14 +378,12 @@
|
|||
(c-forward-objc-directive): Replace c-forward-token-2 with crude
|
||||
coding; c-f-t-2 doesn't move over a token at EOB.
|
||||
|
||||
* progmodes/cc-defs.el (c-version): Update version number to
|
||||
5.31.2
|
||||
* progmodes/cc-defs.el (c-version): Update version number to 5.31.2.
|
||||
|
||||
* progmodes/cc-cmds.el, cc-mode.el, cc-engine.el
|
||||
(c-update-modeline): Concatenate the minor mode indicators
|
||||
directly onto mode-name, removing c-submode-indicators.
|
||||
Sometimes, c-s-i got separated from the mode name on the mode
|
||||
line.
|
||||
Sometimes, c-s-i got separated from the mode name on the mode line.
|
||||
|
||||
* progmodes/cc-cmds.el (c-electric-brace, c-electric-semi&comma)
|
||||
(c-electric-colon): Correct doc-strings: "/ln" -> "/la".
|
||||
|
|
|
@ -1605,6 +1605,8 @@ OPEN: A topic that is not closed, though its offspring or body may be."
|
|||
allout-mode
|
||||
) ; let*
|
||||
) ; defun
|
||||
;;;_ > allout-minor-mode
|
||||
(defalias 'allout-minor-mode 'allout-mode)
|
||||
|
||||
;;;_ - Position Assessment
|
||||
;;;_ > allout-hidden-p (&optional pos)
|
||||
|
@ -1612,9 +1614,6 @@ OPEN: A topic that is not closed, though its offspring or body may be."
|
|||
"Non-nil if the character after point is invisible."
|
||||
(get-char-property (or pos (point)) 'invisible))
|
||||
|
||||
;;;_ > allout-minor-mode
|
||||
(defalias 'allout-minor-mode 'allout-mode)
|
||||
|
||||
;;;_ > allout-overlay-insert-in-front-handler (ol after beg end
|
||||
;;; &optional prelen)
|
||||
(defun allout-overlay-insert-in-front-handler (ol after beg end
|
||||
|
@ -1753,6 +1752,7 @@ to return the current depth of the most recently matched topic."
|
|||
|
||||
;;;_ #4 Navigation
|
||||
|
||||
;;;_ - Position Assessment
|
||||
;;;_ : Location Predicates
|
||||
;;;_ > allout-on-current-heading-p ()
|
||||
(defun allout-on-current-heading-p ()
|
||||
|
@ -2236,9 +2236,10 @@ Returns the value of point."
|
|||
"When not already there, position point at beginning of current topic header.
|
||||
|
||||
If already there, move cursor to bullet for hot-spot operation.
|
||||
\(See `allout-mode' doc string for details on hot-spot operation.)"
|
||||
\(See `allout-mode' doc string for details of hot-spot operation.)"
|
||||
(interactive)
|
||||
(let ((start-point (point)))
|
||||
(move-beginning-of-line 1)
|
||||
(allout-end-of-prefix)
|
||||
(if (and (interactive-p)
|
||||
(= (point) start-point))
|
||||
|
@ -2927,7 +2928,9 @@ Nuances:
|
|||
;; Going inwards - double-space if first offspring is
|
||||
;; double-spaced, otherwise snug up.
|
||||
(allout-end-of-entry)
|
||||
(line-move 1)
|
||||
(if (eobp)
|
||||
(newline 1)
|
||||
(line-move 1))
|
||||
(allout-beginning-of-current-line)
|
||||
(backward-char 1)
|
||||
(if (bolp)
|
||||
|
|
|
@ -929,17 +929,19 @@ using `make-temp-file', and the generated name is returned."
|
|||
(read-only-p (or archive-read-only
|
||||
view-p
|
||||
(string-match file-name-invalid-regexp ename)))
|
||||
(arcfilename (expand-file-name (concat arcname ":" iname)))
|
||||
(buffer (get-buffer bufname))
|
||||
(just-created nil)
|
||||
(file-name-coding archive-file-name-coding-system))
|
||||
(if buffer
|
||||
(if (and buffer
|
||||
(string= (buffer-file-name buffer) arcfilename))
|
||||
nil
|
||||
(setq archive (archive-maybe-copy archive))
|
||||
(setq bufname (generate-new-buffer-name bufname))
|
||||
(setq buffer (get-buffer-create bufname))
|
||||
(setq just-created t)
|
||||
(with-current-buffer buffer
|
||||
(setq buffer-file-name
|
||||
(expand-file-name (concat arcname ":" iname)))
|
||||
(setq buffer-file-name arcfilename)
|
||||
(setq buffer-file-truename
|
||||
(abbreviate-file-name buffer-file-name))
|
||||
;; Set the default-directory to the dir of the superior buffer.
|
||||
|
|
|
@ -94,7 +94,7 @@
|
|||
:group 'convenience)
|
||||
|
||||
(defcustom PC-first-char 'find-file
|
||||
"*Control how the first character of a string is to be interpreted.
|
||||
"Control how the first character of a string is to be interpreted.
|
||||
If nil, the first character of a string is not taken literally if it is a word
|
||||
delimiter, so that \".e\" matches \"*.e*\".
|
||||
If t, the first character of a string is always taken literally even if it is a
|
||||
|
@ -107,13 +107,13 @@ completion."
|
|||
:group 'partial-completion)
|
||||
|
||||
(defcustom PC-meta-flag t
|
||||
"*If non-nil, TAB means PC completion and M-TAB means normal completion.
|
||||
"If non-nil, TAB means PC completion and M-TAB means normal completion.
|
||||
Otherwise, TAB means normal completion and M-TAB means Partial Completion."
|
||||
:type 'boolean
|
||||
:group 'partial-completion)
|
||||
|
||||
(defcustom PC-word-delimiters "-_. "
|
||||
"*A string of characters treated as word delimiters for completion.
|
||||
"A string of characters treated as word delimiters for completion.
|
||||
Some arcane rules:
|
||||
If `]' is in this string, it must come first.
|
||||
If `^' is in this string, it must not come first.
|
||||
|
@ -124,13 +124,13 @@ expression (not containing character ranges like `a-z')."
|
|||
:group 'partial-completion)
|
||||
|
||||
(defcustom PC-include-file-path '("/usr/include" "/usr/local/include")
|
||||
"*A list of directories in which to look for include files.
|
||||
"A list of directories in which to look for include files.
|
||||
If nil, means use the colon-separated path in the variable $INCPATH instead."
|
||||
:type '(repeat directory)
|
||||
:group 'partial-completion)
|
||||
|
||||
(defcustom PC-disable-includes nil
|
||||
"*If non-nil, include-file support in \\[find-file] is disabled."
|
||||
"If non-nil, include-file support in \\[find-file] is disabled."
|
||||
:type 'boolean
|
||||
:group 'partial-completion)
|
||||
|
||||
|
@ -764,7 +764,13 @@ or properties are considered."
|
|||
(erase-buffer)
|
||||
(shell-command (concat "echo " name) t)
|
||||
(goto-char (point-min))
|
||||
(if (looking-at ".*No match")
|
||||
;; CSH-style shells were known to output "No match", whereas
|
||||
;; SH-style shells tend to simply output `name' when no match is found.
|
||||
(if (looking-at (concat ".*No match\\|\\(^\\| \\)\\("
|
||||
(regexp-quote name)
|
||||
"\\|"
|
||||
(regexp-quote (expand-file-name name))
|
||||
"\\)\\( \\|$\\)"))
|
||||
nil
|
||||
(insert "(\"")
|
||||
(while (search-forward " " nil t)
|
||||
|
@ -787,7 +793,14 @@ or properties are considered."
|
|||
"\\)\\'")))
|
||||
(setq p nil)
|
||||
(while files
|
||||
(or (string-match PC-ignored-regexp (car files))
|
||||
;; This whole process of going through to shell, to echo, and
|
||||
;; finally parsing the output is a hack. It breaks as soon as
|
||||
;; there are spaces in the file names or when the no-match
|
||||
;; message changes. To make up for it, we check that what we read
|
||||
;; indeed exists, so we may miss some files, but we at least won't
|
||||
;; list non-existent ones.
|
||||
(or (not (file-exists-p (car files)))
|
||||
(string-match PC-ignored-regexp (car files))
|
||||
(setq p (cons (car files) p)))
|
||||
(setq files (cdr files)))
|
||||
p))))
|
||||
|
|
|
@ -468,21 +468,6 @@
|
|||
|
||||
;;; Utilities.
|
||||
|
||||
(defun custom-quote (sexp)
|
||||
"Quote SEXP iff it is not self quoting."
|
||||
(if (or (memq sexp '(t nil))
|
||||
(keywordp sexp)
|
||||
(and (listp sexp)
|
||||
(memq (car sexp) '(lambda)))
|
||||
(stringp sexp)
|
||||
(numberp sexp)
|
||||
(vectorp sexp)
|
||||
;;; (and (fboundp 'characterp)
|
||||
;;; (characterp sexp))
|
||||
)
|
||||
sexp
|
||||
(list 'quote sexp)))
|
||||
|
||||
(defun custom-split-regexp-maybe (regexp)
|
||||
"If REGEXP is a string, split it to a list at `\\|'.
|
||||
You can get the original back with from the result with:
|
||||
|
|
|
@ -2660,13 +2660,14 @@ MSG is printed after `::::} '."
|
|||
;; Display result of previous evaluation.
|
||||
(if (and edebug-break
|
||||
(not (eq edebug-execution-mode 'Continue-fast)))
|
||||
(sit-for 1)) ; Show break message.
|
||||
(edebug-sit-for edebug-sit-for-seconds)) ; Show message.
|
||||
(edebug-previous-result)))
|
||||
|
||||
(cond
|
||||
(edebug-break
|
||||
(cond
|
||||
((eq edebug-execution-mode 'continue) (edebug-sit-for 1))
|
||||
((eq edebug-execution-mode 'continue)
|
||||
(edebug-sit-for edebug-sit-for-seconds))
|
||||
((eq edebug-execution-mode 'Continue-fast) (edebug-sit-for 0))
|
||||
(t (setq edebug-stop t))))
|
||||
;; not edebug-break
|
||||
|
|
|
@ -372,8 +372,8 @@ FORM is of the form `(and FORM1 ...)'."
|
|||
(if (eq ?^ (aref arg 0))
|
||||
(setq arg (concat "\\" arg)))
|
||||
;; Remove ] and set flag for adding it to start of overall result.
|
||||
(when (string-match "]" arg)
|
||||
(setq arg (replace-regexp-in-string "]" "" arg)
|
||||
(when (string-match "\\]" arg)
|
||||
(setq arg (replace-regexp-in-string "\\]" "" arg)
|
||||
rx-bracket "]")))
|
||||
(when (symbolp arg)
|
||||
(let ((translation (condition-case nil
|
||||
|
@ -405,7 +405,7 @@ ARG is optional."
|
|||
(defun rx-check-not (arg)
|
||||
"Check arg ARG for Rx `not'."
|
||||
(unless (or (and (symbolp arg)
|
||||
(string-match "\\`\\[\\[:[-a-z]:]]\\'"
|
||||
(string-match "\\`\\[\\[:[-a-z]:\\]\\]\\'"
|
||||
(condition-case nil
|
||||
(rx-to-string arg 'no-group)
|
||||
(error ""))))
|
||||
|
|
|
@ -2404,9 +2404,13 @@ n -- to ignore the local variables list.
|
|||
(when (and (= char ?!) unsafe-vars)
|
||||
(dolist (elt unsafe-vars)
|
||||
(add-to-list 'safe-local-variable-values elt))
|
||||
(customize-save-variable
|
||||
'safe-local-variable-values
|
||||
safe-local-variable-values))
|
||||
;; When this is called from desktop-restore-file-buffer,
|
||||
;; coding-system-for-read may be non-nil. Reset it before
|
||||
;; writing to .emacs.
|
||||
(let ((coding-system-for-read nil))
|
||||
(customize-save-variable
|
||||
'safe-local-variable-values
|
||||
safe-local-variable-values)))
|
||||
(kill-buffer buf)
|
||||
(or (= char ?!)
|
||||
(= char ?\s)
|
||||
|
|
|
@ -2121,7 +2121,7 @@ other modes in which C preprocessor directives are used. e.g. `asm-mode' and
|
|||
;; Erroneous structures.
|
||||
("(\\(abort\\|assert\\|warn\\|check-type\\|cerror\\|error\\|signal\\)\\>" 1 font-lock-warning-face)
|
||||
;; Words inside \\[] tend to be for `substitute-command-keys'.
|
||||
("\\\\\\\\\\[\\(\\sw+\\)]" 1 font-lock-constant-face prepend)
|
||||
("\\\\\\\\\\[\\(\\sw+\\)\\]" 1 font-lock-constant-face prepend)
|
||||
;; Words inside `' tend to be symbol names.
|
||||
("`\\(\\sw\\sw+\\)'" 1 font-lock-constant-face prepend)
|
||||
;; Constant values.
|
||||
|
|
|
@ -433,7 +433,7 @@ like an INI file. You can add this hook to `find-file-hook'."
|
|||
(define-generic-mode reg-generic-mode
|
||||
'(?\;)
|
||||
'("key" "classes_root" "REGEDIT" "REGEDIT4")
|
||||
'(("\\(\\[.*]\\)" 1 font-lock-constant-face)
|
||||
'(("\\(\\[.*\\]\\)" 1 font-lock-constant-face)
|
||||
("^\\([^\n\r]*\\)\\s-*=" 1 font-lock-variable-name-face))
|
||||
'("\\.[rR][eE][gG]\\'")
|
||||
(list
|
||||
|
|
|
@ -1,3 +1,31 @@
|
|||
2006-03-08 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* gnus-util.el (gnus-tool-bar-update): New function.
|
||||
|
||||
* gnus-group.el (gnus-group-update-tool-bar): New variable.
|
||||
(gnus-group-insert-group-line): Add gnus-tool-bar-update.
|
||||
|
||||
* gnus-topic.el (gnus-topic-prepare-topic): Add gnus-tool-bar-update.
|
||||
|
||||
2006-03-08 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
* nnmail.el (nnmail-split-it): Invert match-partial-words behavior
|
||||
if optional last element is specified in splits (FIELD VALUE...).
|
||||
|
||||
2006-03-06 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
* mm-view.el (mm-w3m-cid-retrieve-1): Check carefully whether
|
||||
handle is multipart when calling it recursively.
|
||||
(mm-w3m-cid-retrieve): Display warning if retrieving fails.
|
||||
|
||||
2006-03-03 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* mm-util.el (mm-with-unibyte-current-buffer): Change "Emacs 23"
|
||||
to "Emacs 23 (unicode)" in doc string.
|
||||
|
||||
* gnus-sum.el (gnus-summary-set-display-table): Change "Emacs 23" to
|
||||
"Emacs 23 (unicode)" in comment.
|
||||
|
||||
2006-03-03 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
* mm-decode.el (mm-get-part): Don't use
|
||||
|
|
193
lisp/gnus/TODO
193
lisp/gnus/TODO
|
@ -1,193 +0,0 @@
|
|||
2004-08-22 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* Disclaimer: This is *temporary* file to keep track of the changes
|
||||
in the trunk, that have or have not made it into the Gnus branch.
|
||||
|
||||
|
||||
|
||||
2004--08-22 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* Add `:version "21.4"' to all new defcustoms. Grep ChangeLog and
|
||||
ChangeLog.1 for "new variable". Also check if the `:version
|
||||
"21.1"' and `:version "21.3"' entries are correct.
|
||||
|
||||
|
||||
|
||||
2002-10-02 Karl Berry <karl@gnu.org>
|
||||
|
||||
* In directory ./man:
|
||||
|
||||
* emacs-mime.texi, gnus-faq.texi, gnus.texi, message.texi,
|
||||
pgg.texi, sieve.texi: Per rms, update all manuals to use @copying
|
||||
instead of @ifinfo. Also use @ifnottex instead of @ifinfo around
|
||||
the top node, where needed for the sake of the HTML output.
|
||||
(The Gnus manual is not fixed since it's not clear to me how it
|
||||
works; and the Tramp manual already uses @copying, although in an
|
||||
unusual way. All others were changed.)
|
||||
|
||||
==> Done. Not yet in Gnus repository.
|
||||
|
||||
|
||||
|
||||
2004-06-29 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
* nntp.el (nntp-authinfo-file): Add :group 'nntp.
|
||||
|
||||
* nnimap.el (nnimap-authinfo-file, nnimap-prune-cache):
|
||||
Add :group 'nnimap.
|
||||
|
||||
==> applied, here and in Gnus repository.
|
||||
|
||||
2004-05-18 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* mm-view.el (mm-insert-inline): Make it work in read-only buffer.
|
||||
|
||||
* gnus-win.el (gnus-all-windows-visible-p): Don't consider
|
||||
non-visible windows.
|
||||
|
||||
2004-05-07 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* rfc2047.el (rfc2047-encode-message-header): Don't encode non-address
|
||||
headers as address headers (which breaks if subject has a single ").
|
||||
|
||||
==> already in Gnus
|
||||
|
||||
2004-05-06 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* nnimap.el (nnimap-demule): Avoid string-as-multibyte.
|
||||
|
||||
==> applied, here and in Gnus repository.
|
||||
|
||||
2004-04-21 Richard M. Stallman <rms@gnu.org>
|
||||
|
||||
* mailcap.el (mailcap-mime-data): Mark as risky.
|
||||
|
||||
==> applied, here and in Gnus repository.
|
||||
|
||||
2004-03-27 Juanma Barranquero <lektu@terra.es>
|
||||
|
||||
* gnus-srvr.el (gnus-server-prepare): Remove spurious call to `cdr'.
|
||||
|
||||
==> already in Gnus
|
||||
|
||||
2004-03-22 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* gnus-art.el: Use inhibit-read-only instead of buffer-read-only.
|
||||
(gnus-narrow-to-page): Don't assume point-min == 1.
|
||||
(gnus-article-edit-mode): Derive from message-mode.
|
||||
(gnus-button-alist): Add buttons to (info "(emacs)Keymaps").
|
||||
|
||||
* gnus-score.el (gnus-score-find-bnews): Simplify and don't assume
|
||||
point-min == 1.
|
||||
|
||||
* imap.el (imap-parse-address-list, imap-parse-body-ext):
|
||||
Disable incorrect use of `assert'.
|
||||
|
||||
==> applied / modified
|
||||
|
||||
2004-03-05 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* message.el (message-mode): Fix last change.
|
||||
|
||||
==> applied
|
||||
|
||||
2004-03-04 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* message.el (message-mode): Set comment-start-skip.
|
||||
|
||||
==> applied
|
||||
|
||||
2004-02-08 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* nnlistserv.el (nnlistserv-kk-wash-article): Fix paren nesting.
|
||||
|
||||
* gnus-score.el (gnus-summary-increase-score): Fix format string.
|
||||
|
||||
==> applied; here and in Gnus v5-10. Already fixed in No Gnus.
|
||||
|
||||
2003-06-25 Sam Steingold <sds@gnu.org>
|
||||
|
||||
* gnus-group.el (gnus-group-suspend): Avoid some consing.
|
||||
|
||||
==> hunk FAILED / not very important / skip
|
||||
|
||||
2003-06-11 Sam Steingold <sds@gnu.org>
|
||||
|
||||
* pop3.el (pop3-leave-mail-on-server): New user variable.
|
||||
(pop3-movemail): Delete mail only when it is nil.
|
||||
|
||||
==> applied / Was not documented in the Gnus manual, added it.
|
||||
|
||||
2003-05-10 Juanma Barranquero <lektu@terra.es>
|
||||
|
||||
* message.el (message-buffer-naming-style): Fix typo.
|
||||
|
||||
==> variable has been removed.
|
||||
|
||||
2003-05-07 Dave Love <fx@gnu.org>
|
||||
|
||||
[Partial sync with Gnus.]
|
||||
|
||||
* rfc2047.el (rfc2047-header-encoding-alist): Add Followup-To.
|
||||
(rfc2047-encode-message-header): Fold when encoding not necessary.
|
||||
(rfc2047-encode-region): Skip \n as whitespace.
|
||||
(rfc2047-fold-region): Fix whitespace regexps. Don't break just
|
||||
after the header name.
|
||||
(rfc2047-unfold-region): Fix regexp and whitespace-skipping.
|
||||
|
||||
2003-05-06 Jesper Harder <harder@ifa.au.dk>
|
||||
|
||||
* gnus-cus.el (gnus-group-customize, gnus-score-parameters):
|
||||
Don't quote nil and t in docstrings.
|
||||
|
||||
* gnus-score.el (gnus-score-lower-thread): Likewise.
|
||||
|
||||
* gnus-art.el (gnus-article-mime-match-handle-function): Likewise.
|
||||
|
||||
==> already in Gnus
|
||||
|
||||
2003-02-28 ShengHuo ZHU <zsh@cs.rochester.edu>
|
||||
|
||||
* nnfolder.el (nnfolder-request-accept-article): Don't use
|
||||
mail-header-unfold-field.
|
||||
|
||||
* imap.el (imap-ssl-open): Don't depend on ssl.el.
|
||||
* nntp.el (nntp-open-ssl-stream): Don't depend on ssl.el.
|
||||
|
||||
2003-02-18 Juanma Barranquero <lektu@terra.es>
|
||||
|
||||
* ietf-drums.el (ietf-drums-remove-whitespace): Fix character constant.
|
||||
|
||||
2003-02-14 Juanma Barranquero <lektu@terra.es>
|
||||
|
||||
* mm-uu.el (mm-uu-dissect): Fix use of character constant.
|
||||
|
||||
==> already done. [2003-02-14 ShengHuo ZHU synced stuff to Gnus]
|
||||
|
||||
2003-02-11 Stefan Monnier <monnier@cs.yale.edu>
|
||||
|
||||
* nntp.el (nntp-accept-process-output): Don't use point-max to get
|
||||
the buffer's size.
|
||||
|
||||
==> already done. [2003-02-14 ShengHuo ZHU synced stuff to Gnus]
|
||||
|
||||
2003-01-31 Joe Buehler <jhpb@draco.hekimian.com>
|
||||
|
||||
* nnheader.el: Added cygwin to system-type comparisons.
|
||||
|
||||
==> already done.
|
||||
|
||||
|
||||
|
||||
2004-08-22 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* It seems that the last few changes and all older changes have
|
||||
already been applied in Gnus repository, e.g. by ShengHuo ZHU
|
||||
<zsh@cs.rochester.edu>.
|
||||
|
||||
# Local Variables:
|
||||
# coding: iso-2022-7bit
|
||||
# mode: change-log
|
||||
# End:
|
||||
|
||||
# arch-tag: e6e5d695-4d00-46b1-a49d-508a2418a483
|
|
@ -1379,6 +1379,18 @@ if it is a string, only list groups matching REGEXP."
|
|||
(gnus-range-difference (list active) (gnus-info-read info))
|
||||
seen))))))
|
||||
|
||||
(defcustom gnus-group-update-tool-bar
|
||||
(and (not (featurep 'xemacs))
|
||||
(boundp 'tool-bar-mode)
|
||||
tool-bar-mode
|
||||
;; Using `redraw-frame' (see `gnus-tool-bar-update') in Emacs 21 might
|
||||
;; be confusing, so maybe we shouldn't call it by default.
|
||||
(fboundp 'force-window-update))
|
||||
"Force updating the group buffer tool bar."
|
||||
:group 'gnus-group
|
||||
:version "22.1"
|
||||
:type 'boolean)
|
||||
|
||||
(defun gnus-group-insert-group-line (gnus-tmp-group gnus-tmp-level
|
||||
gnus-tmp-marked number
|
||||
gnus-tmp-method)
|
||||
|
@ -1447,8 +1459,10 @@ if it is a string, only list groups matching REGEXP."
|
|||
(bbb-grouplens-group-p gnus-tmp-group))
|
||||
""))
|
||||
(buffer-read-only nil)
|
||||
beg end
|
||||
header gnus-tmp-header) ; passed as parameter to user-funcs.
|
||||
(beginning-of-line)
|
||||
(setq beg (point))
|
||||
(gnus-add-text-properties
|
||||
(point)
|
||||
(prog1 (1+ (point))
|
||||
|
@ -1463,6 +1477,12 @@ if it is a string, only list groups matching REGEXP."
|
|||
gnus-marked ,gnus-tmp-marked-mark
|
||||
gnus-indentation ,gnus-group-indentation
|
||||
gnus-level ,gnus-tmp-level))
|
||||
(setq end (point))
|
||||
(when gnus-group-update-tool-bar
|
||||
(gnus-put-text-property beg end 'point-entered
|
||||
'gnus-tool-bar-update)
|
||||
(gnus-put-text-property beg end 'point-left
|
||||
'gnus-tool-bar-update))
|
||||
(forward-line -1)
|
||||
(when (inline (gnus-visual-p 'group-highlight 'highlight))
|
||||
(gnus-run-hooks 'gnus-group-update-hook))
|
||||
|
|
|
@ -3099,7 +3099,7 @@ display only a single character."
|
|||
;; We keep TAB as well.
|
||||
(aset table ?\t nil)
|
||||
;; We nix out any glyphs 127 through 255, or 127 through 159 in
|
||||
;; Emacs 23, that are not set already.
|
||||
;; Emacs 23 (unicode), that are not set already.
|
||||
(let ((i (if (ignore-errors (= (make-char 'latin-iso8859-1 160) 160))
|
||||
160
|
||||
256)))
|
||||
|
|
|
@ -585,6 +585,11 @@ articles in the topic and its subtopics."
|
|||
(not (eq (nth 2 type) 'hidden))
|
||||
level all-entries unread))
|
||||
(gnus-topic-update-unreads (car type) unread)
|
||||
(when gnus-group-update-tool-bar
|
||||
(gnus-put-text-property beg end 'point-entered
|
||||
'gnus-tool-bar-update)
|
||||
(gnus-put-text-property beg end 'point-left
|
||||
'gnus-tool-bar-update))
|
||||
(goto-char end)
|
||||
unread))
|
||||
|
||||
|
|
|
@ -1459,6 +1459,23 @@ Return nil otherwise."
|
|||
display))
|
||||
display)))))
|
||||
|
||||
(defun gnus-tool-bar-update (&rest ignore)
|
||||
"Update the tool bar."
|
||||
(when (and (boundp 'tool-bar-mode)
|
||||
tool-bar-mode)
|
||||
(let* ((args nil)
|
||||
(func (cond ((featurep 'xemacs)
|
||||
'ignore)
|
||||
((fboundp 'tool-bar-update)
|
||||
'tool-bar-update)
|
||||
((fboundp 'force-window-update)
|
||||
'force-window-update)
|
||||
((fboundp 'redraw-frame)
|
||||
(setq args (list (selected-frame)))
|
||||
'redraw-frame)
|
||||
(t 'ignore))))
|
||||
(apply func args))))
|
||||
|
||||
;; Fixme: This has only one use (in gnus-agent), which isn't worthwhile.
|
||||
(defmacro gnus-mapcar (function seq1 &rest seqs2_n)
|
||||
"Apply FUNCTION to each element of the sequences, and make a list of the results.
|
||||
|
|
|
@ -733,7 +733,8 @@ NOTE: Use this macro with caution in multibyte buffers (it is not
|
|||
worth using this macro in unibyte buffers of course). Use of
|
||||
`(set-buffer-multibyte t)', which is run finally, is generally
|
||||
harmful since it is likely to modify existing data in the buffer.
|
||||
For instance, it converts \"\\300\\255\" into \"\\255\" in Emacs 23."
|
||||
For instance, it converts \"\\300\\255\" into \"\\255\" in
|
||||
Emacs 23 (unicode)."
|
||||
(let ((multibyte (make-symbol "multibyte"))
|
||||
(buffer (make-symbol "buffer")))
|
||||
`(if mm-emacs-mule
|
||||
|
|
|
@ -213,21 +213,25 @@
|
|||
|
||||
(defun mm-w3m-cid-retrieve-1 (url handle)
|
||||
(dolist (elem handle)
|
||||
(when (listp elem)
|
||||
(if (equal url (mm-handle-id elem))
|
||||
(progn
|
||||
(mm-insert-part elem)
|
||||
(throw 'found-handle (mm-handle-media-type elem))))
|
||||
(if (equal "multipart" (mm-handle-media-supertype elem))
|
||||
(mm-w3m-cid-retrieve-1 url elem)))))
|
||||
(when (consp elem)
|
||||
(when (equal url (mm-handle-id elem))
|
||||
(mm-insert-part elem)
|
||||
(throw 'found-handle (mm-handle-media-type elem)))
|
||||
(when (and (stringp (car elem))
|
||||
(equal "multipart" (mm-handle-media-supertype elem)))
|
||||
(mm-w3m-cid-retrieve-1 url elem)))))
|
||||
|
||||
(defun mm-w3m-cid-retrieve (url &rest args)
|
||||
"Insert a content pointed by URL if it has the cid: scheme."
|
||||
(when (string-match "\\`cid:" url)
|
||||
(catch 'found-handle
|
||||
(mm-w3m-cid-retrieve-1 (concat "<" (substring url (match-end 0)) ">")
|
||||
(with-current-buffer w3m-current-buffer
|
||||
gnus-article-mime-handles)))))
|
||||
(or (catch 'found-handle
|
||||
(mm-w3m-cid-retrieve-1
|
||||
(setq url (concat "<" (substring url (match-end 0)) ">"))
|
||||
(with-current-buffer w3m-current-buffer
|
||||
gnus-article-mime-handles)))
|
||||
(prog1
|
||||
nil
|
||||
(message "Failed to find \"Content-ID: %s\"" url)))))
|
||||
|
||||
(defun mm-inline-text-html-render-with-w3m (handle)
|
||||
"Render a text/html part using emacs-w3m."
|
||||
|
|
|
@ -1425,11 +1425,12 @@ See the documentation for the variable `nnmail-split-fancy' for details."
|
|||
|
||||
;; Not in cache, compute a regexp for the field/value pair.
|
||||
(t
|
||||
(let* ((field (nth 0 split))
|
||||
(value (nth 1 split))
|
||||
partial-front
|
||||
partial-rear
|
||||
regexp)
|
||||
(let ((field (nth 0 split))
|
||||
(value (nth 1 split))
|
||||
(split-rest (cddr split))
|
||||
partial-front
|
||||
partial-rear
|
||||
regexp)
|
||||
(if (symbolp value)
|
||||
(setq value (cdr (assq value nnmail-split-abbrev-alist))))
|
||||
(if (and (>= (length value) 2)
|
||||
|
@ -1441,7 +1442,13 @@ See the documentation for the variable `nnmail-split-fancy' for details."
|
|||
(string= ".*" (substring value -2)))
|
||||
(setq value (substring value 0 -2)
|
||||
partial-rear ""))
|
||||
(when nnmail-split-fancy-match-partial-words
|
||||
;; Invert the match-partial-words behavior if the optional
|
||||
;; last element is specified.
|
||||
(while (eq (car split-rest) '-)
|
||||
(setq split-rest (cddr split-rest)))
|
||||
(when (if (cadr split-rest)
|
||||
(not nnmail-split-fancy-match-partial-words)
|
||||
nnmail-split-fancy-match-partial-words)
|
||||
(setq partial-front ""
|
||||
partial-rear ""))
|
||||
(setq regexp (concat "^\\(\\("
|
||||
|
@ -1456,7 +1463,7 @@ See the documentation for the variable `nnmail-split-fancy' for details."
|
|||
(or partial-rear "\\>")))
|
||||
(push (cons split regexp) nnmail-split-cache)
|
||||
;; Now that it's in the cache, just call nnmail-split-it again
|
||||
;; on the same split, which will find it immediately in the cache.
|
||||
;; on the same split, which will find it immediately in the cache.
|
||||
(nnmail-split-it split))))))
|
||||
|
||||
(defun nnmail-expand-newtext (newtext)
|
||||
|
|
64
lisp/help.el
64
lisp/help.el
|
@ -429,8 +429,9 @@ To record all your input on a file, use `open-dribble-file'."
|
|||
(with-current-buffer standard-output
|
||||
(goto-char (point-min))
|
||||
(while (progn (move-to-column 50) (not (eobp)))
|
||||
(search-forward " " nil t)
|
||||
(insert "\n")))
|
||||
(when (search-forward " " nil t)
|
||||
(delete-char -1))
|
||||
(insert "\n")))
|
||||
(print-help-return-message)))
|
||||
|
||||
|
||||
|
@ -577,6 +578,12 @@ temporarily enables it to allow getting help on disabled items and buttons."
|
|||
(setq saved-yank-menu (copy-sequence yank-menu))
|
||||
(menu-bar-update-yank-menu "(any string)" nil))
|
||||
(setq key (read-key-sequence "Describe key (or click or menu item): "))
|
||||
;; If KEY is a down-event, read and discard the
|
||||
;; corresponding up-event.
|
||||
(if (and (vectorp key)
|
||||
(eventp (elt key 0))
|
||||
(memq 'down (event-modifiers (elt key 0))))
|
||||
(read-event))
|
||||
(list
|
||||
key
|
||||
(if current-prefix-arg (prefix-numeric-value current-prefix-arg))
|
||||
|
@ -658,8 +665,9 @@ temporarily enables it to allow getting help on disabled items and buttons."
|
|||
(prefix-numeric-value current-prefix-arg)
|
||||
;; If KEY is a down-event, read the corresponding up-event
|
||||
;; and use it as the third argument.
|
||||
(if (and (consp key) (symbolp (car key))
|
||||
(memq 'down (cdr (get (car key) 'event-symbol-elements))))
|
||||
(if (and (vectorp key)
|
||||
(eventp (elt key 0))
|
||||
(memq 'down (event-modifiers (elt key 0))))
|
||||
(read-event))))
|
||||
;; Put yank-menu back as it was, if we changed it.
|
||||
(when saved-yank-menu
|
||||
|
@ -705,30 +713,34 @@ temporarily enables it to allow getting help on disabled items and buttons."
|
|||
(princ "\n which is ")
|
||||
(describe-function-1 defn)
|
||||
(when up-event
|
||||
(let ((ev (aref up-event 0))
|
||||
(descr (key-description up-event))
|
||||
(let ((type (event-basic-type up-event))
|
||||
(hdr "\n\n-------------- up event ---------------\n\n")
|
||||
defn
|
||||
defn sequence
|
||||
mouse-1-tricky mouse-1-remapped)
|
||||
(when (and (consp ev)
|
||||
(eq (car ev) 'mouse-1)
|
||||
(setq sequence (vector up-event))
|
||||
(when (and (eq type 'mouse-1)
|
||||
(windowp window)
|
||||
mouse-1-click-follows-link
|
||||
(not (eq mouse-1-click-follows-link 'double))
|
||||
(with-current-buffer (window-buffer window)
|
||||
(mouse-on-link-p (posn-point (event-start ev)))))
|
||||
(setq mouse-1-tricky (integerp mouse-1-click-follows-link)
|
||||
mouse-1-remapped (or (not mouse-1-tricky)
|
||||
(> mouse-1-click-follows-link 0)))
|
||||
(if mouse-1-remapped
|
||||
(setcar ev 'mouse-2)))
|
||||
(setq defn (or (string-key-binding up-event) (key-binding up-event)))
|
||||
(setq mouse-1-remapped
|
||||
(with-current-buffer (window-buffer window)
|
||||
(mouse-on-link-p (posn-point
|
||||
(event-start up-event))))))
|
||||
(setq mouse-1-tricky (and (integerp mouse-1-click-follows-link)
|
||||
(> mouse-1-click-follows-link 0)))
|
||||
(cond ((stringp mouse-1-remapped)
|
||||
(setq sequence mouse-1-remapped))
|
||||
((vectorp mouse-1-remapped)
|
||||
(setcar up-event (elt mouse-1-remapped 0)))
|
||||
(t (setcar up-event 'mouse-2))))
|
||||
(setq defn (or (string-key-binding sequence)
|
||||
(key-binding sequence)))
|
||||
(unless (or (null defn) (integerp defn) (equal defn 'undefined))
|
||||
(princ (if mouse-1-tricky
|
||||
"\n\n----------------- up-event (short click) ----------------\n\n"
|
||||
hdr))
|
||||
(setq hdr nil)
|
||||
(princ descr)
|
||||
(princ (symbol-name type))
|
||||
(if (windowp window)
|
||||
(princ " at that spot"))
|
||||
(if mouse-1-remapped
|
||||
|
@ -738,26 +750,22 @@ temporarily enables it to allow getting help on disabled items and buttons."
|
|||
(princ "\n which is ")
|
||||
(describe-function-1 defn))
|
||||
(when mouse-1-tricky
|
||||
(setcar ev
|
||||
(if (> mouse-1-click-follows-link 0) 'mouse-1 'mouse-2))
|
||||
(setq defn (or (string-key-binding up-event) (key-binding up-event)))
|
||||
(unless (or (null defn) (integerp defn) (equal defn 'undefined))
|
||||
(setcar up-event 'mouse-1)
|
||||
(setq defn (or (string-key-binding (vector up-event))
|
||||
(key-binding (vector up-event))))
|
||||
(unless (or (null defn) (integerp defn) (eq defn 'undefined))
|
||||
(princ (or hdr
|
||||
"\n\n----------------- up-event (long click) ----------------\n\n"))
|
||||
(princ "Pressing ")
|
||||
(princ descr)
|
||||
(princ "Pressing mouse-1")
|
||||
(if (windowp window)
|
||||
(princ " at that spot"))
|
||||
(princ (format " for longer than %d milli-seconds\n"
|
||||
(abs mouse-1-click-follows-link)))
|
||||
(if (not mouse-1-remapped)
|
||||
(princ " remaps it to <mouse-2> which" ))
|
||||
mouse-1-click-follows-link))
|
||||
(princ " runs the command ")
|
||||
(prin1 defn)
|
||||
(princ "\n which is ")
|
||||
(describe-function-1 defn)))))
|
||||
(print-help-return-message)))))))
|
||||
|
||||
|
||||
(defun describe-mode (&optional buffer)
|
||||
"Display documentation of current major mode and minor modes.
|
||||
|
|
|
@ -1,3 +1,62 @@
|
|||
2006-03-06 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-e.el (Version, mh-version): Add +cvs to version.
|
||||
|
||||
2006-03-05 Satyaki Das <satyaki@theforce.stanford.edu>
|
||||
|
||||
* mh-search.el (mh-index-update-single-msg): Fix a bug in the
|
||||
handling of duplicate messages. The test in cond was too strong
|
||||
and wasn't catching the case where origin-map was nil.
|
||||
|
||||
2006-03-05 Bill Wohler <wohler@newt.com>
|
||||
|
||||
Release MH-E version 7.93.
|
||||
|
||||
* mh-e.el (Version, mh-version): Update for release 7.93.
|
||||
|
||||
2006-03-05 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-folder.el (mh-folder-mode): Drop 'load-path argument when
|
||||
calling mh-image-load-path-for-library since this is the default.
|
||||
|
||||
* mh-letter.el (mh-letter-mode): Ditto.
|
||||
|
||||
* mh-utils.el (mh-logo-display): Ditto.
|
||||
|
||||
2006-03-04 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-compat.el (mh-image-load-path-for-library): Move here from
|
||||
mh-utils.el and wrap with mh-defun-compat since this function will
|
||||
be soon added to image.el.
|
||||
|
||||
* mh-utils.el (mh-image-load-path-for-library): Move to
|
||||
mh-compat.el.
|
||||
(mh-normalize-folder-name): Add return-nil-if-folder-empty
|
||||
argument which is useful when calling mh-normalize-folder-name to
|
||||
process the folder argument for the folders command.
|
||||
(mh-sub-folders): Use new flag to mh-normalize-folder-name to make
|
||||
this function more robust. It could too easily list the folders in
|
||||
/.
|
||||
(mh-folder-list): Fix a couple of problems pointed out by Thomas
|
||||
Baumann. Set folder to nil if empty. Don't append "/" if folder
|
||||
nil.
|
||||
|
||||
2006-03-03 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-folder.el (mh-folder-mode): Rename mh-image-load-path to
|
||||
mh-image-load-path-for-library.
|
||||
|
||||
* mh-letter.el (mh-letter-mode): Rename mh-image-load-path to
|
||||
mh-image-load-path-for-library.
|
||||
|
||||
* mh-utils.el (mh-image-load-path): Rename to
|
||||
mh-image-load-path-for-library. Add example to docstring. Rename
|
||||
local variable mh-image-directory to image-directory. Move error
|
||||
checks to default case in cond and simplify.
|
||||
|
||||
* mh-comp.el (mh-send-letter, mh-insert-auto-fields): Sync
|
||||
docstrings with manual.
|
||||
|
||||
2006-03-02 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-folder.el (mh-tool-bar-init): Autoload.
|
||||
|
@ -20,8 +79,8 @@
|
|||
(mh-tool-bar-letter-buttons-init): Don't call mh-image-load-path.
|
||||
(mh-tool-bar-define call): Format.
|
||||
|
||||
* mh-utils.el (mh-image-directory,
|
||||
mh-image-load-path-called-flag): Delete.
|
||||
* mh-utils.el (mh-image-directory)
|
||||
(mh-image-load-path-called-flag): Delete.
|
||||
(mh-image-load-path): Incorporate changes from Gnus team. Biggest
|
||||
changes are that it no longer uses/sets mh-image-directory or
|
||||
mh-image-load-path-called-flag, and returns the updated path
|
||||
|
|
|
@ -230,6 +230,13 @@ The hook `mh-before-send-letter-hook' is run at the beginning of
|
|||
this command. For example, if you want to check your spelling in
|
||||
your message before sending, add the function `ispell-message'.
|
||||
|
||||
Unless `mh-insert-auto-fields' had previously been called
|
||||
manually, the function `mh-insert-auto-fields' is called to
|
||||
insert fields based upon the recipients. If fields are added, you
|
||||
are given a chance to see and to confirm these fields before the
|
||||
message is actually sent. You can do away with this confirmation
|
||||
by turning off the option `mh-auto-fields-prompt-flag'.
|
||||
|
||||
In case the MH \"send\" program is installed under a different name,
|
||||
use `mh-send-prog' to tell MH-E the name."
|
||||
(interactive "P")
|
||||
|
@ -979,14 +986,16 @@ sequence."
|
|||
(defun mh-insert-auto-fields (&optional non-interactive)
|
||||
"Insert custom fields if recipient is found in `mh-auto-fields-list'.
|
||||
|
||||
Sets buffer-local `mh-insert-auto-fields-done-local' if header
|
||||
fields were added. If NON-INTERACTIVE is non-nil, perform actions
|
||||
quietly and only if `mh-insert-auto-fields-done-local' is nil.
|
||||
Once the header contains one or more recipients, you may run this
|
||||
command to insert these fields manually. However, if you use this
|
||||
command, the automatic insertion when the message is sent is
|
||||
disabled.
|
||||
|
||||
An `identity' entry is skipped if one was already entered
|
||||
manually.
|
||||
|
||||
Return t if fields added; otherwise return nil."
|
||||
In a program, set buffer-local `mh-insert-auto-fields-done-local'
|
||||
if header fields were added. If NON-INTERACTIVE is non-nil,
|
||||
perform actions quietly and only if
|
||||
`mh-insert-auto-fields-done-local' is nil. Return t if fields
|
||||
added; otherwise return nil."
|
||||
(interactive)
|
||||
(when (or (not non-interactive)
|
||||
(not mh-insert-auto-fields-done-local))
|
||||
|
|
|
@ -115,6 +115,84 @@ introduced in Emacs 22."
|
|||
`(face-background ,face ,frame)
|
||||
`(face-background ,face ,frame ,inherit)))
|
||||
|
||||
(mh-defun-compat mh-image-load-path-for-library
|
||||
image-load-path-for-library (library image &optional path)
|
||||
"Return a suitable search path for images relative to LIBRARY.
|
||||
|
||||
Images for LIBRARY are searched for in \"../../etc/images\" and
|
||||
\"../etc/images\" relative to the files in \"lisp/LIBRARY\" as
|
||||
well as in `image-load-path' and `load-path'.
|
||||
|
||||
This function returns the value of `load-path' augmented with the
|
||||
path to IMAGE. If PATH is given, it is used instead of
|
||||
`load-path'.
|
||||
|
||||
Here is an example that uses a common idiom to provide
|
||||
compatibility with versions of Emacs that lack the variable
|
||||
`image-load-path':
|
||||
|
||||
(let ((load-path
|
||||
(image-load-path-for-library \"mh-e\" \"mh-logo.xpm\"))
|
||||
(image-load-path
|
||||
(image-load-path-for-library \"mh-e\" \"mh-logo.xpm\" 'image-load-path)))
|
||||
(mh-tool-bar-folder-buttons-init))
|
||||
|
||||
This function is used by Emacs versions that don't have
|
||||
`image-load-path-for-library'."
|
||||
(unless library (error "No library specified"))
|
||||
(unless image (error "No image specified"))
|
||||
(let ((image-directory))
|
||||
(cond
|
||||
;; Try relative setting.
|
||||
((let (library-name d1ei d2ei)
|
||||
;; First, find library in the load-path.
|
||||
(setq library-name (locate-library library))
|
||||
(if (not library-name)
|
||||
(error "Cannot find library %s in load-path" library))
|
||||
;; And then set image-directory relative to that.
|
||||
(setq
|
||||
;; Go down 2 levels.
|
||||
d2ei (expand-file-name
|
||||
(concat (file-name-directory library-name) "../../etc/images"))
|
||||
;; Go down 1 level.
|
||||
d1ei (expand-file-name
|
||||
(concat (file-name-directory library-name) "../etc/images")))
|
||||
(setq image-directory
|
||||
;; Set it to nil if image is not found.
|
||||
(cond ((file-exists-p (expand-file-name image d2ei)) d2ei)
|
||||
((file-exists-p (expand-file-name image d1ei)) d1ei)))))
|
||||
;; Check for images in image-load-path or load-path.
|
||||
((let ((img image)
|
||||
(dir (or
|
||||
;; Images in image-load-path.
|
||||
(mh-image-search-load-path image)
|
||||
;; Images in load-path.
|
||||
(locate-library image)))
|
||||
parent)
|
||||
;; Since the image might be in a nested directory (for
|
||||
;; example, mail/attach.pbm), adjust `image-directory'
|
||||
;; accordingly.
|
||||
(and dir
|
||||
(setq dir (file-name-directory dir))
|
||||
(progn
|
||||
(while (setq parent (file-name-directory img))
|
||||
(setq img (directory-file-name parent)
|
||||
dir (expand-file-name "../" dir)))
|
||||
(setq image-directory dir)))))
|
||||
(t
|
||||
(error "Could not find image %s for library %s" image library)))
|
||||
|
||||
;; Return augmented `image-load-path' or `load-path'.
|
||||
(cond ((and path (symbolp path))
|
||||
(nconc (list image-directory)
|
||||
(delete image-directory
|
||||
(if (boundp path)
|
||||
(copy-sequence (symbol-value path))
|
||||
nil))))
|
||||
(t
|
||||
(nconc (list image-directory)
|
||||
(delete image-directory (copy-sequence load-path)))))))
|
||||
|
||||
(mh-defun-compat mh-image-search-load-path
|
||||
image-search-load-path (file &optional path)
|
||||
"Emacs 21 and XEmacs don't have `image-search-load-path'.
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
;; Author: Bill Wohler <wohler@newt.com>
|
||||
;; Maintainer: Bill Wohler <wohler@newt.com>
|
||||
;; Version: 7.92+cvs
|
||||
;; Version: 7.93+cvs
|
||||
;; Keywords: mail
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
@ -116,7 +116,7 @@
|
|||
;; Try to keep variables local to a single file. Provide accessors if
|
||||
;; variables are shared. Use this section as a last resort.
|
||||
|
||||
(defconst mh-version "7.92+cvs" "Version number of MH-E.")
|
||||
(defconst mh-version "7.93+cvs" "Version number of MH-E.")
|
||||
|
||||
;; Variants
|
||||
|
||||
|
|
|
@ -591,10 +591,9 @@ perform the operation on all messages in that region.
|
|||
\\{mh-folder-mode-map}"
|
||||
(mh-do-in-gnu-emacs
|
||||
(unless mh-folder-buttons-init-flag
|
||||
(let ((load-path
|
||||
(mh-image-load-path "mh-e" "mh-logo.xpm" 'load-path))
|
||||
(image-load-path
|
||||
(mh-image-load-path "mh-e" "mh-logo.xpm" 'image-load-path)))
|
||||
(let ((load-path (mh-image-load-path-for-library "mh-e" "mh-logo.xpm"))
|
||||
(image-load-path (mh-image-load-path-for-library
|
||||
"mh-e" "mh-logo.xpm" 'image-load-path)))
|
||||
(mh-tool-bar-folder-buttons-init)
|
||||
(setq mh-folder-buttons-init-flag t)))
|
||||
(set (make-local-variable 'tool-bar-map) mh-folder-tool-bar-map))
|
||||
|
|
|
@ -313,10 +313,9 @@ order).
|
|||
(make-local-variable 'mh-sent-from-msg)
|
||||
(mh-do-in-gnu-emacs
|
||||
(unless mh-letter-buttons-init-flag
|
||||
(let ((load-path
|
||||
(mh-image-load-path "mh-e" "mh-logo.xpm" 'load-path))
|
||||
(image-load-path
|
||||
(mh-image-load-path "mh-e" "mh-logo.xpm" 'image-load-path)))
|
||||
(let ((load-path (mh-image-load-path-for-library "mh-e" "mh-logo.xpm"))
|
||||
(image-load-path (mh-image-load-path-for-library
|
||||
"mh-e" "mh-logo.xpm" 'image-load-path)))
|
||||
(mh-tool-bar-letter-buttons-init)
|
||||
(setq mh-letter-buttons-init-flag t)))
|
||||
(set (make-local-variable 'tool-bar-map) mh-letter-tool-bar-map))
|
||||
|
|
|
@ -1907,22 +1907,24 @@ copied from. The function updates the hash tables
|
|||
|
||||
This function should only be called in the appropriate index
|
||||
folder buffer."
|
||||
(cond ((and origin-map (gethash checksum mh-index-checksum-origin-map))
|
||||
(let* ((intermediate (gethash msg origin-map))
|
||||
(ofolder (car intermediate))
|
||||
(omsg (cdr intermediate)))
|
||||
;; This is most probably a duplicate. So eliminate it.
|
||||
(call-process "rm" nil nil nil
|
||||
(format "%s%s/%s" mh-user-path
|
||||
(substring mh-current-folder 1) msg))
|
||||
(when (gethash ofolder mh-index-data)
|
||||
(remhash omsg (gethash ofolder mh-index-data)))))
|
||||
(cond ((gethash checksum mh-index-checksum-origin-map)
|
||||
(when origin-map
|
||||
(let* ((intermediate (gethash msg origin-map))
|
||||
(ofolder (car intermediate))
|
||||
(omsg (cdr intermediate)))
|
||||
;; This is most probably a duplicate. So eliminate it.
|
||||
(call-process "rm" nil nil nil
|
||||
(format "%s%s/%s" mh-user-path
|
||||
(substring mh-current-folder 1) msg))
|
||||
(when (gethash ofolder mh-index-data)
|
||||
(remhash omsg (gethash ofolder mh-index-data))))))
|
||||
(t
|
||||
(setf (gethash msg mh-index-msg-checksum-map) checksum)
|
||||
(when origin-map
|
||||
(when (and origin-map (gethash msg origin-map))
|
||||
(setf (gethash checksum mh-index-checksum-origin-map)
|
||||
(gethash msg origin-map))))))
|
||||
|
||||
|
||||
(provide 'mh-search)
|
||||
|
||||
;; Local Variables:
|
||||
|
|
|
@ -81,78 +81,6 @@ used in lieu of `search' in the CL package."
|
|||
"Delete the next LINES lines."
|
||||
(delete-region (point) (progn (forward-line lines) (point))))
|
||||
|
||||
;;;###mh-autoload
|
||||
(defun mh-image-load-path (library image &optional path)
|
||||
"Return a suitable search path for images of LIBRARY.
|
||||
|
||||
Images for LIBRARY are searched for in \"../../etc/images\" and
|
||||
\"../etc/images\" relative to the files in \"lisp/LIBRARY\", in
|
||||
`image-load-path', or in `load-path'.
|
||||
|
||||
This function returns value of `load-path' augmented with the
|
||||
path to IMAGE. If PATH is given, it is used instead of
|
||||
`load-path'."
|
||||
(unless library (error "No library specified"))
|
||||
(unless image (error "No image specified"))
|
||||
(let ((mh-image-directory))
|
||||
(cond
|
||||
;; Try relative setting.
|
||||
((let (mh-library-name d1ei d2ei)
|
||||
;; First, find library in the load-path.
|
||||
(setq mh-library-name (locate-library library))
|
||||
(if (not mh-library-name)
|
||||
(error "Cannot find library %s in load-path" library))
|
||||
;; And then set mh-image-directory relative to that.
|
||||
(setq
|
||||
;; Go down 2 levels.
|
||||
d2ei (expand-file-name
|
||||
(concat (file-name-directory mh-library-name)
|
||||
"../../etc/images"))
|
||||
;; Go down 1 level.
|
||||
d1ei (expand-file-name
|
||||
(concat (file-name-directory mh-library-name)
|
||||
"../etc/images")))
|
||||
(setq mh-image-directory
|
||||
;; Set it to nil if image is not found.
|
||||
(cond ((file-exists-p (expand-file-name image d2ei)) d2ei)
|
||||
((file-exists-p (expand-file-name image d1ei)) d1ei)))))
|
||||
;; Check for images in image-load-path or load-path.
|
||||
((let ((img image)
|
||||
(dir (or
|
||||
;; Images in image-load-path.
|
||||
(mh-image-search-load-path image)
|
||||
;; Images in load-path.
|
||||
(locate-library image)))
|
||||
parent)
|
||||
;; Since the image might be in a nested directory
|
||||
;; (for example, mail/attach.pbm), adjust `mh-image-directory'
|
||||
;; accordingly.
|
||||
(and dir
|
||||
(setq dir (file-name-directory dir))
|
||||
(progn
|
||||
(while (setq parent (file-name-directory img))
|
||||
(setq img (directory-file-name parent)
|
||||
dir (expand-file-name "../" dir)))
|
||||
(setq mh-image-directory dir))))))
|
||||
;;
|
||||
(unless (file-exists-p mh-image-directory)
|
||||
(error "Directory %s in mh-image-directory does not exist"
|
||||
mh-image-directory))
|
||||
(unless (file-exists-p (expand-file-name image mh-image-directory))
|
||||
(error "Directory %s in mh-image-directory does not contain image %s"
|
||||
mh-image-directory image))
|
||||
;; Return augmented `image-load-path' or `load-path'.
|
||||
(cond ((and path (symbolp path))
|
||||
(nconc (list mh-image-directory)
|
||||
(delete mh-image-directory
|
||||
(if (boundp path)
|
||||
(copy-sequence (symbol-value path))
|
||||
nil))))
|
||||
(t
|
||||
(nconc (list mh-image-directory)
|
||||
(delete mh-image-directory
|
||||
(copy-sequence load-path)))))))
|
||||
|
||||
;;;###mh-autoload
|
||||
(defun mh-make-local-vars (&rest pairs)
|
||||
"Initialize local variables according to the variable-value PAIRS."
|
||||
|
@ -203,10 +131,9 @@ Ignores case when searching for OLD."
|
|||
(defun mh-logo-display ()
|
||||
"Modify mode line to display MH-E logo."
|
||||
(mh-do-in-gnu-emacs
|
||||
(let ((load-path
|
||||
(mh-image-load-path "mh-e" "mh-logo.xpm" 'load-path))
|
||||
(image-load-path
|
||||
(mh-image-load-path "mh-e" "mh-logo.xpm" 'image-load-path)))
|
||||
(let ((load-path (mh-image-load-path-for-library "mh-e" "mh-logo.xpm"))
|
||||
(image-load-path (mh-image-load-path-for-library
|
||||
"mh-e" "mh-logo.xpm" 'image-load-path)))
|
||||
(add-text-properties
|
||||
0 2
|
||||
`(display ,(or mh-logo-cache
|
||||
|
@ -487,7 +414,8 @@ names and the function is called when OUTPUT is available."
|
|||
do (progn (setf (cdr x) t) (return)))))))
|
||||
|
||||
(defun mh-normalize-folder-name (folder &optional empty-string-okay
|
||||
dont-remove-trailing-slash)
|
||||
dont-remove-trailing-slash
|
||||
return-nil-if-folder-empty)
|
||||
"Normalizes FOLDER name.
|
||||
|
||||
Makes sure that two '/' characters never occur next to each
|
||||
|
@ -500,8 +428,19 @@ empty string then nothing is added.
|
|||
|
||||
If optional argument DONT-REMOVE-TRAILING-SLASH is non-nil then a
|
||||
trailing '/' if present is retained (if present), otherwise it is
|
||||
removed."
|
||||
(when (stringp folder)
|
||||
removed.
|
||||
|
||||
If optional argument RETURN-NIL-IF-FOLDER-EMPTY is non-nil, then
|
||||
return nil if FOLDER is \"\" or \"+\". This is useful when
|
||||
normalizing the folder for the \"folders\" command which displays
|
||||
the directories in / if passed \"+\". This is usually not
|
||||
desired. If this argument is non-nil, then EMPTY-STRING-OKAY has
|
||||
no effect."
|
||||
(cond
|
||||
((if (and (or (equal folder "+") (equal folder ""))
|
||||
return-nil-if-folder-empty)
|
||||
(setq folder nil)))
|
||||
((stringp folder)
|
||||
;; Replace two or more consecutive '/' characters with a single '/'
|
||||
(while (string-match "//" folder)
|
||||
(setq folder (replace-match "/" nil t folder)))
|
||||
|
@ -514,10 +453,11 @@ removed."
|
|||
(stringp mh-current-folder-name))
|
||||
(setq folder (format "%s/%s/" mh-current-folder-name
|
||||
(substring folder 1))))
|
||||
;; XXX: Purge empty strings from the list that split-string returns. In
|
||||
;; XEmacs, (split-string "+foo/" "/") returns ("+foo" "") while in GNU
|
||||
;; Emacs it returns ("+foo"). In the code it is assumed that the
|
||||
;; components list has no empty strings.
|
||||
;; XXX: Purge empty strings from the list that split-string
|
||||
;; returns. In XEmacs, (split-string "+foo/" "/") returns
|
||||
;; ("+foo" "") while in GNU Emacs it returns ("+foo"). In the
|
||||
;; code it is assumed that the components list has no empty
|
||||
;; strings.
|
||||
(let ((components (delete "" (split-string folder "/")))
|
||||
(result ()))
|
||||
;; Remove .. and . from the pathname.
|
||||
|
@ -537,8 +477,10 @@ removed."
|
|||
(when leading-slash-present
|
||||
(setq folder (concat "/" folder)))))
|
||||
(cond ((and empty-string-okay (equal folder "")))
|
||||
((equal folder "") (setq folder "+"))
|
||||
((not (equal (aref folder 0) ?+)) (setq folder (concat "+" folder)))))
|
||||
((equal folder "")
|
||||
(setq folder "+"))
|
||||
((not (equal (aref folder 0) ?+))
|
||||
(setq folder (concat "+" folder))))))
|
||||
folder)
|
||||
|
||||
(defmacro mh-children-p (folder)
|
||||
|
@ -568,23 +510,25 @@ Respects the value of `mh-recursive-folders-flag'. If this flag
|
|||
is nil, and the sub-folders have not been explicitly viewed, then
|
||||
they will not be returned."
|
||||
(let ((folder-list))
|
||||
;; Normalize folder. Strip leading +. Add trailing slash (done in
|
||||
;; two steps to avoid infinite loops when replacing "/*$" with "/"
|
||||
;; in XEmacs). If no folder is specified, ensure it is nil to
|
||||
;; ensure we get the top-level folders; otherwise mh-sub-folders
|
||||
;; returns all the files in / if given an empty string or +.
|
||||
;; Normalize folder. Strip leading + and trailing slash(es). If no
|
||||
;; folder is specified, ensure it is nil to avoid adding the
|
||||
;; folder to the folder-list and adding a slash to it.
|
||||
(when folder
|
||||
(setq folder (mh-replace-regexp-in-string "^\+" "" folder))
|
||||
(setq folder (mh-replace-regexp-in-string "/+$" "" folder)))
|
||||
(setq folder (mh-replace-regexp-in-string "/+$" "" folder))
|
||||
(if (equal folder "")
|
||||
(setq folder nil)))
|
||||
;; Add provided folder to list, unless all folders are asked for.
|
||||
;; Then append slash to separate sub-folders.
|
||||
(unless (null folder)
|
||||
(setq folder-list (list folder)))
|
||||
(setq folder-list (list folder))
|
||||
(setq folder (concat folder "/")))
|
||||
(loop for f in (mh-sub-folders folder) do
|
||||
(setq folder-list
|
||||
(append folder-list
|
||||
(if (mh-children-p f)
|
||||
(mh-folder-list (concat folder "/" (car f)))
|
||||
(list (concat folder "/" (car f)))))))
|
||||
(mh-folder-list (concat folder (car f)))
|
||||
(list (concat folder (car f)))))))
|
||||
folder-list))
|
||||
|
||||
;;;###mh-autoload
|
||||
|
@ -596,7 +540,7 @@ results of the actual folders call.
|
|||
If optional argument ADD-TRAILING-SLASH-FLAG is non-nil then a
|
||||
slash is added to each of the sub-folder names that may have
|
||||
nested folders within them."
|
||||
(let* ((folder (mh-normalize-folder-name folder))
|
||||
(let* ((folder (mh-normalize-folder-name folder nil nil t))
|
||||
(match (gethash folder mh-sub-folders-cache 'no-result))
|
||||
(sub-folders (cond ((eq match 'no-result)
|
||||
(setf (gethash folder mh-sub-folders-cache)
|
||||
|
|
|
@ -179,20 +179,21 @@ displayed (can be nil if the buffer was never displayed) and its
|
|||
lifetime, i.e., its \"age\" when it will be purged."
|
||||
(interactive)
|
||||
(let ((tm (float-time)) bts (ts (format-time-string "%Y-%m-%d %T"))
|
||||
(bufs (buffer-list)) buf delay cbld bn)
|
||||
(while (setq buf (pop bufs))
|
||||
(setq bts (midnight-buffer-display-time buf) bn (buffer-name buf)
|
||||
delay (if bts (- tm bts) 0) cbld (clean-buffer-list-delay bn))
|
||||
(message "[%s] `%s' [%s %d]" ts bn (if bts (round delay)) cbld)
|
||||
(unless (or (midnight-find bn clean-buffer-list-kill-never-regexps
|
||||
'string-match)
|
||||
(midnight-find bn clean-buffer-list-kill-never-buffer-names
|
||||
'string-equal)
|
||||
(get-buffer-process buf)
|
||||
(and (buffer-file-name buf) (buffer-modified-p buf))
|
||||
(get-buffer-window buf 'visible) (< delay cbld))
|
||||
(message "[%s] killing `%s'" ts bn)
|
||||
(kill-buffer buf)))))
|
||||
delay cbld bn)
|
||||
(dolist (buf (buffer-list))
|
||||
(when (buffer-live-p buf)
|
||||
(setq bts (midnight-buffer-display-time buf) bn (buffer-name buf)
|
||||
delay (if bts (- tm bts) 0) cbld (clean-buffer-list-delay bn))
|
||||
(message "[%s] `%s' [%s %d]" ts bn (if bts (round delay)) cbld)
|
||||
(unless (or (midnight-find bn clean-buffer-list-kill-never-regexps
|
||||
'string-match)
|
||||
(midnight-find bn clean-buffer-list-kill-never-buffer-names
|
||||
'string-equal)
|
||||
(get-buffer-process buf)
|
||||
(and (buffer-file-name buf) (buffer-modified-p buf))
|
||||
(get-buffer-window buf 'visible) (< delay cbld))
|
||||
(message "[%s] killing `%s'" ts bn)
|
||||
(kill-buffer buf))))))
|
||||
|
||||
;;; midnight hook
|
||||
|
||||
|
|
|
@ -1635,12 +1635,13 @@ ones added to the list automatically are marked with an asterisk."
|
|||
(defvar rcirc-url-regexp
|
||||
(rx-to-string
|
||||
`(and word-boundary
|
||||
(or "www."
|
||||
(and (or "http" "https" "ftp" "file" "gopher" "news" "telnet"
|
||||
"wais" "mailto")
|
||||
"://"
|
||||
(1+ (char "-a-zA-Z0-9_."))
|
||||
(optional ":" (1+ (char "0-9"))))
|
||||
(or (and
|
||||
(or (and (or "http" "https" "ftp" "file" "gopher" "news"
|
||||
"telnet" "wais" "mailto")
|
||||
"://")
|
||||
"www.")
|
||||
(1+ (char "-a-zA-Z0-9_."))
|
||||
(optional ":" (1+ (char "0-9"))))
|
||||
(and (1+ (char "-a-zA-Z0-9_."))
|
||||
(or ".com" ".net" ".org")
|
||||
word-boundary))
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
:group 'editing)
|
||||
|
||||
(defcustom outline-regexp "[*\^L]+"
|
||||
"*Regular expression to match the beginning of a heading.
|
||||
"Regular expression to match the beginning of a heading.
|
||||
Any line whose beginning matches this regexp is considered to start a heading.
|
||||
Note that Outline mode only checks this regexp at the start of a line,
|
||||
so the regexp need not (and usually does not) start with `^'.
|
||||
|
@ -56,7 +56,7 @@ in the file it applies to. See also `outline-heading-end-regexp'."
|
|||
:group 'outlines)
|
||||
|
||||
(defcustom outline-heading-end-regexp "\n"
|
||||
"*Regular expression to match the end of a heading line.
|
||||
"Regular expression to match the end of a heading line.
|
||||
You can assume that point is at the beginning of a heading when this
|
||||
regexp is searched for. The heading ends at the end of the match.
|
||||
The recommended way to set this is with a `Local Variables:' list
|
||||
|
@ -828,7 +828,13 @@ Show the heading too, if it is currently invisible."
|
|||
|
||||
(defun hide-sublevels (levels)
|
||||
"Hide everything but the top LEVELS levels of headers, in whole buffer."
|
||||
(interactive "p")
|
||||
(interactive (list
|
||||
(cond
|
||||
(current-prefix-arg (prefix-numeric-value current-prefix-arg))
|
||||
((save-excursion (beginning-of-line)
|
||||
(looking-at outline-regexp))
|
||||
(funcall outline-level))
|
||||
(t 1))))
|
||||
(if (< levels 1)
|
||||
(error "Must keep at least one level of headers"))
|
||||
(let (outline-view-change-hook)
|
||||
|
|
|
@ -796,7 +796,12 @@ type=\"\\(.*?\\)\"")
|
|||
(concat "server interpreter mi \"-var-assign "
|
||||
varnum " " value "\"\n")
|
||||
(concat "-var-assign " varnum " " value "\n"))
|
||||
'ignore))))
|
||||
`(lambda () (gdb-edit-value-handler ,value))))))
|
||||
|
||||
(defun gdb-edit-value-handler (value)
|
||||
(goto-char (point-min))
|
||||
(if (re-search-forward gdb-error-regexp nil t)
|
||||
(message-box "Invalid number or expression (%s)" value)))
|
||||
|
||||
(defcustom gdb-show-changed-values t
|
||||
"If non-nil change the face of out of scope variables and changed values.
|
||||
|
|
|
@ -399,7 +399,7 @@ t means that there is no stack, and we are in display-file mode.")
|
|||
gud-speedbar-key-map
|
||||
gud-expansion-speedbar-buttons))
|
||||
|
||||
(add-to-list
|
||||
(add-to-list
|
||||
'speedbar-mode-functions-list
|
||||
'("GUD" (speedbar-item-info . gud-speedbar-item-info)
|
||||
(speedbar-line-directory . ignore))))
|
||||
|
@ -493,11 +493,15 @@ required by the caller."
|
|||
'bracket char
|
||||
'gdb-speedbar-expand-node varnum
|
||||
(concat expr "\t" type "\t" value)
|
||||
(if (or parent status)
|
||||
(if (or parent (eq status 'out-of-scope))
|
||||
nil 'gdb-edit-value)
|
||||
nil
|
||||
(if (and (or parent (eq status 'out-of-scope))
|
||||
gdb-show-changed-values) 'shadow t)
|
||||
(if gdb-show-changed-values
|
||||
(or parent (case status
|
||||
(changed 'font-lock-warning-face)
|
||||
(out-of-scope 'shadow)
|
||||
(t t)))
|
||||
t)
|
||||
depth)
|
||||
(speedbar-make-tag-line
|
||||
'bracket char
|
||||
|
@ -684,7 +688,7 @@ To run GDB in text command mode, set `gud-gdb-command-name' to
|
|||
(buffer-name gud-comint-buffer)
|
||||
(with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba)))
|
||||
(error "Multiple debugging is only supported with \"gdb --fullname\""))
|
||||
|
||||
|
||||
(gud-common-init command-line nil 'gud-gdb-marker-filter)
|
||||
(set (make-local-variable 'gud-minor-mode) 'gdb)
|
||||
|
||||
|
@ -2152,7 +2156,7 @@ nil)
|
|||
;; print line numbers using LOCALE, inserting a comma or a
|
||||
;; period at the thousands positions (how ingenious!).
|
||||
|
||||
"\\(\[[0-9]+\] \\)*\\([a-zA-Z0-9.$_]+\\)\\.[a-zA-Z0-9$_<>(),]+ \
|
||||
"\\(\\[[0-9]+] \\)*\\([a-zA-Z0-9.$_]+\\)\\.[a-zA-Z0-9$_<>(),]+ \
|
||||
\\(([a-zA-Z0-9.$_]+:\\|line=\\)\\([0-9.,]+\\)"
|
||||
gud-marker-acc)
|
||||
|
||||
|
@ -3372,7 +3376,7 @@ For C this would dereference a pointer expression.")
|
|||
"The mouse movement event that led to a tooltip display.
|
||||
This event can be examined by forms in GUD-TOOLTIP-DISPLAY.")
|
||||
|
||||
(defun gud-tooltip-dereference ()
|
||||
(defun gud-tooltip-dereference (&optional arg)
|
||||
"Toggle whether tooltips should show `* expr' or `expr'.
|
||||
With arg, dereference expr iff arg is positive."
|
||||
(interactive "P")
|
||||
|
|
|
@ -343,10 +343,14 @@ PROC is the server process. Format of STRING is \"PATH PATH PATH... \\n\"."
|
|||
(if coding-system
|
||||
(setq arg (decode-coding-string arg coding-system)))
|
||||
(if eval
|
||||
(let ((v (eval (car (read-from-string arg)))))
|
||||
(let* (errorp
|
||||
(v (condition-case errobj
|
||||
(eval (car (read-from-string arg)))
|
||||
(error (setq errorp t) errobj))))
|
||||
(when v
|
||||
(with-temp-buffer
|
||||
(let ((standard-output (current-buffer)))
|
||||
(if errorp (princ "error: "))
|
||||
(pp v)
|
||||
;; Suppress the error rose when the pipe to PROC is closed.
|
||||
(condition-case err
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
;; Copyright (C) 1994,1995 Alessandro Rubini <rubini@linux.it>
|
||||
;; parts are by Ian T Zimmermann <itz@rahul.net>, 1995,1998
|
||||
;; Copyright (C) 2006
|
||||
;; Copyright (C) 2006
|
||||
;; Free Software Foundation, Inc.
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
@ -29,15 +29,15 @@
|
|||
;;; Commentary:
|
||||
|
||||
;; This package provides access to mouse event as reported by the
|
||||
;; gpm-Linux package. It uses the program "mev" to get mouse events.
|
||||
;; It tries to reproduce the functionality offered by emacs under X.
|
||||
;; gpm-Linux package. It uses the program "mev" to get mouse events.
|
||||
;; It tries to reproduce the functionality offered by Emacs under X.
|
||||
;; The "gpm" server runs under Linux, so this package is rather
|
||||
;; Linux-dependent.
|
||||
|
||||
;; Modified by Nick Roberts for Emacs 22. In particular, the mode-line is
|
||||
;; now position sensitive.
|
||||
|
||||
(defvar t-mouse-process nil
|
||||
(defvar t-mouse-process nil
|
||||
"Embeds the process which passes mouse events to emacs.
|
||||
It is used by the program t-mouse.")
|
||||
|
||||
|
@ -53,7 +53,7 @@ See `t-mouse-start-debug'.")
|
|||
|
||||
(defvar t-mouse-drag-start nil
|
||||
"Whenever a drag starts in a special part of a window
|
||||
(not the text), the `translated' starting coordinates including the
|
||||
\(not the text), the `translated' starting coordinates including the
|
||||
window and part involved are saved here. This is necessary lest they
|
||||
get re-translated when the button goes up, at which time window
|
||||
configuration may have changed.")
|
||||
|
@ -63,10 +63,10 @@ configuration may have changed.")
|
|||
|
||||
(defvar t-mouse-swap-alt-keys nil
|
||||
"When set, Emacs will handle mouse events with the right Alt
|
||||
(a.k.a. Alt-Ger) modifier, not with the regular left Alt modifier.
|
||||
\(a.k.a. Alt-Ger) modifier, not with the regular left Alt modifier.
|
||||
Useful for people who play strange games with their keyboard tables.")
|
||||
|
||||
(defvar t-mouse-fix-21 nil
|
||||
(defvar t-mouse-fix-21 nil
|
||||
"Enable brain-dead chords for 2 button mice.")
|
||||
|
||||
|
||||
|
@ -75,7 +75,7 @@ Useful for people who play strange games with their keyboard tables.")
|
|||
;; get the number of the current virtual console
|
||||
|
||||
(defun t-mouse-tty ()
|
||||
"Returns number of virtual terminal Emacs is running on, as a string.
|
||||
"Return number of virtual terminal Emacs is running on, as a string.
|
||||
For example, \"2\" for /dev/tty2."
|
||||
(with-temp-buffer
|
||||
(call-process "ps" nil t nil "h" (format "%s" (emacs-pid)))
|
||||
|
@ -148,8 +148,8 @@ For example, \"2\" for /dev/tty2."
|
|||
|
||||
;;; This fun is partly Copyright (C) 1994 Per Abrahamsen <abraham@iesd.auc.dk>
|
||||
(defun t-mouse-make-event ()
|
||||
"Makes a Lisp style event from the contents of mouse input accumulator.
|
||||
Also trims the accumulator by all the data used to build the event."
|
||||
"Make a Lisp style event from the contents of mouse input accumulator.
|
||||
Also trim the accumulator by all the data used to build the event."
|
||||
(let (ob (ob-pos (condition-case nil
|
||||
(progn
|
||||
;; this test is just needed for Fedora Core 3
|
||||
|
@ -185,13 +185,13 @@ Also trims the accumulator by all the data used to build the event."
|
|||
(progn
|
||||
(setq end-of-root-event-name (match-beginning 0))
|
||||
(setq new-event-name-string
|
||||
(concat (substring
|
||||
(concat (substring
|
||||
event-name-string 0
|
||||
end-of-root-event-name) "-3"))
|
||||
|
||||
;;Change the event to the symbol that corresponds to the
|
||||
;;name we made. The proper symbol already exists.
|
||||
(setq event-type
|
||||
(setq event-type
|
||||
(intern new-event-name-string))))))
|
||||
|
||||
;;store current position for mouse-position
|
||||
|
@ -231,7 +231,7 @@ Also trims the accumulator by all the data used to build the event."
|
|||
(concat t-mouse-filter-accumulator string))
|
||||
(let ((event (t-mouse-make-event)))
|
||||
(while event
|
||||
(if (or track-mouse
|
||||
(if (or track-mouse
|
||||
(not (eq 'mouse-movement (event-basic-type event))))
|
||||
(setq unread-command-events
|
||||
(nconc unread-command-events (list event))))
|
||||
|
@ -249,7 +249,7 @@ The (secret) scrollbar interface is not implemented yet."
|
|||
;; stop-process. That doesn't work; mev receives the signal fine but
|
||||
;; is not really stopped: instead it returns from
|
||||
;; kill(getpid(), SIGTSTP) immediately. I don't understand what's up
|
||||
;; itz Tue Mar 24 14:27:38 PST 1998.
|
||||
;; itz Tue Mar 24 14:27:38 PST 1998.
|
||||
|
||||
(add-hook 'suspend-hook
|
||||
(function (lambda ()
|
||||
|
@ -281,8 +281,8 @@ Turn it on to use emacs mouse commands, and off to use t-mouse commands."
|
|||
(let ((tty (t-mouse-tty))
|
||||
(process-connection-type t))
|
||||
(if (not (stringp tty))
|
||||
(error "Cannot find a virtual terminal."))
|
||||
(setq t-mouse-process
|
||||
(error "Cannot find a virtual terminal"))
|
||||
(setq t-mouse-process
|
||||
(start-process "t-mouse" nil
|
||||
"mev" "-i" "-E" "-C" tty
|
||||
(if t-mouse-swap-alt-keys
|
||||
|
|
|
@ -1322,7 +1322,8 @@ The list of incorrect words should be in `flyspell-external-ispell-buffer'.
|
|||
The buffer to mark them in is `flyspell-large-region-buffer'."
|
||||
(let (words-not-found
|
||||
(ispell-otherchars (ispell-get-otherchars))
|
||||
(buffer-scan-pos flyspell-large-region-beg))
|
||||
(buffer-scan-pos flyspell-large-region-beg)
|
||||
(case-fold-search nil))
|
||||
(with-current-buffer flyspell-external-ispell-buffer
|
||||
(goto-char (point-min))
|
||||
;; Loop over incorrect words, in the order they were reported,
|
||||
|
@ -1409,6 +1410,7 @@ The buffer to mark them in is `flyspell-large-region-buffer'."
|
|||
;;*---------------------------------------------------------------------*/
|
||||
(defun flyspell-process-localwords (misspellings-buffer)
|
||||
(let (localwords
|
||||
(case-fold-search nil)
|
||||
(ispell-casechars (ispell-get-casechars)))
|
||||
;; Get localwords from the original buffer
|
||||
(save-excursion
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
;; Author: Carsten Dominik <dominik at science dot uva dot nl>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
|
||||
;; Version: 4.07
|
||||
;; Version: 4.08
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
|
@ -81,6 +81,9 @@
|
|||
;;
|
||||
;; Changes since version 4.00:
|
||||
;; ---------------------------
|
||||
;; Version 4.08
|
||||
;;
|
||||
;;
|
||||
;; Version 4.07
|
||||
;; - Bug fixes.
|
||||
;; - Leading stars in headlines can be hidden, so make the outline look
|
||||
|
@ -136,7 +139,7 @@
|
|||
|
||||
;;; Customization variables
|
||||
|
||||
(defvar org-version "4.07"
|
||||
(defvar org-version "4.08"
|
||||
"The version number of the file org.el.")
|
||||
(defun org-version ()
|
||||
(interactive)
|
||||
|
@ -796,7 +799,7 @@ as possible."
|
|||
(defcustom org-level-color-stars-only nil
|
||||
"Non-nil means fontify only the stars in each headline.
|
||||
When nil, the entire headline is fontified.
|
||||
Changing it requires restart of Emacs to become effective."
|
||||
Changing it requires restart of `font-lock-mode' to become effective."
|
||||
:group 'org-structure
|
||||
:type 'boolean)
|
||||
|
||||
|
@ -806,7 +809,7 @@ This works by using the face `org-hide' for these stars. This
|
|||
face is white for a light background, and black for a dark
|
||||
background. You may have to customize the face `org-hide' to
|
||||
make this work.
|
||||
Changing the variable requires restart of Emacs to become effective."
|
||||
Changing it requires restart of `font-lock-mode' to become effective."
|
||||
:group 'org-structure
|
||||
:type 'boolean)
|
||||
|
||||
|
@ -814,7 +817,9 @@ Changing the variable requires restart of Emacs to become effective."
|
|||
"Non-nil means, skip even levels and only use odd levels for the outline.
|
||||
This has the effect that two stars are being added/taken away in
|
||||
promotion/demotion commands. It also influences how levels are
|
||||
handled by the exporters."
|
||||
handled by the exporters.
|
||||
Changing it requires restart of `font-lock-mode' to become effective
|
||||
for fontification."
|
||||
:group 'org-structure
|
||||
:type 'boolean)
|
||||
|
||||
|
@ -1157,6 +1162,14 @@ For more examples, see the system specific constants
|
|||
(string :tag "Command")
|
||||
(sexp :tag "Lisp form")))))
|
||||
|
||||
(defcustom org-mhe-search-all-folders nil
|
||||
"Non-nil means, that the search for the mh-message will be extended to
|
||||
all folders if the message cannot be found in the folder given in the link.
|
||||
Searching all folders is very effective with one of the search engines
|
||||
supported by MH-E, but will be slow with pick."
|
||||
:group 'org-link
|
||||
:type 'boolean)
|
||||
|
||||
(defgroup org-remember nil
|
||||
"Options concerning interaction with remember.el."
|
||||
:tag "Org Remember"
|
||||
|
@ -1855,6 +1868,14 @@ When this is non-nil, the headline after the keyword is set to the
|
|||
"Face for links."
|
||||
:group 'org-faces)
|
||||
|
||||
(defface org-tag
|
||||
'((((type tty) (class color)) (:foreground "cyan" :weight bold))
|
||||
(((class color) (background light)) (:foreground "Purple" :weight bold))
|
||||
(((class color) (background dark)) (:foreground "Cyan" :weight bold))
|
||||
(t (:bold t)))
|
||||
"Face for links."
|
||||
:group 'org-faces)
|
||||
|
||||
(defface org-done ;; font-lock-type-face
|
||||
'((((type tty) (class color)) (:foreground "green"))
|
||||
(((class color) (background light)) (:foreground "ForestGreen" :bold t))
|
||||
|
@ -1879,25 +1900,10 @@ When this is non-nil, the headline after the keyword is set to the
|
|||
"Face used for time grids."
|
||||
:group 'org-faces)
|
||||
|
||||
(defvar org-level-faces nil)
|
||||
|
||||
(when (not org-level-faces)
|
||||
(setq org-level-faces
|
||||
'(
|
||||
org-level-1
|
||||
org-level-2
|
||||
org-level-3
|
||||
org-level-4
|
||||
org-level-5
|
||||
org-level-6
|
||||
org-level-7
|
||||
org-level-8
|
||||
))
|
||||
(when org-odd-levels-only
|
||||
(setq org-level-faces (apply 'append (mapcar (lambda (x) (list x x))
|
||||
org-level-faces)))
|
||||
(setq org-level-faces (append (cdr org-level-faces) (list 'org-level-1)))))
|
||||
|
||||
(defvar org-level-faces
|
||||
'(org-level-1 org-level-2 org-level-3 org-level-4
|
||||
org-level-5 org-level-6 org-level-7 org-level-8
|
||||
))
|
||||
(defvar org-n-levels (length org-level-faces))
|
||||
|
||||
(defun org-set-regexps-and-options ()
|
||||
|
@ -1985,48 +1991,48 @@ When this is non-nil, the headline after the keyword is set to the
|
|||
|
||||
;; Tell the compiler about dynamically scoped variables,
|
||||
;; and variables from other packages
|
||||
(eval-when-compile
|
||||
(defvar zmacs-regions)
|
||||
(defvar original-date)
|
||||
(defvar org-transient-mark-mode)
|
||||
(defvar org-old-auto-fill-inhibit-regexp)
|
||||
(defvar orgtbl-mode-menu)
|
||||
(defvar org-html-entities)
|
||||
(defvar org-goto-start-pos)
|
||||
(defvar org-cursor-color)
|
||||
(defvar org-time-was-given)
|
||||
(defvar org-ts-what)
|
||||
(defvar mark-active)
|
||||
(defvar timecnt)
|
||||
(defvar levels-open)
|
||||
(defvar title)
|
||||
(defvar author)
|
||||
(defvar email)
|
||||
(defvar text)
|
||||
(defvar entry)
|
||||
(defvar date)
|
||||
(defvar language)
|
||||
(defvar options)
|
||||
(defvar ans1)
|
||||
(defvar ans2)
|
||||
(defvar starting-day)
|
||||
(defvar include-all-loc)
|
||||
(defvar vm-message-pointer)
|
||||
(defvar vm-folder-directory)
|
||||
(defvar wl-summary-buffer-elmo-folder)
|
||||
(defvar wl-summary-buffer-folder-name)
|
||||
(defvar gnus-group-name)
|
||||
(defvar gnus-article-current)
|
||||
(defvar w3m-current-url)
|
||||
(defvar mh-progs)
|
||||
(defvar mh-current-folder)
|
||||
(defvar mh-show-folder-buffer)
|
||||
(defvar mh-index-folder)
|
||||
(defvar org-selected-point)
|
||||
(defvar calendar-mode-map)
|
||||
(defvar remember-save-after-remembering)
|
||||
(defvar remember-data-file)
|
||||
(defvar last-arg))
|
||||
(defvar zmacs-regions)
|
||||
(defvar original-date)
|
||||
(defvar org-transient-mark-mode)
|
||||
(defvar org-old-auto-fill-inhibit-regexp)
|
||||
(defvar orgtbl-mode-menu)
|
||||
(defvar org-html-entities)
|
||||
(defvar org-goto-start-pos)
|
||||
(defvar org-cursor-color)
|
||||
(defvar org-time-was-given)
|
||||
(defvar org-ts-what)
|
||||
(defvar mark-active)
|
||||
(defvar timecnt)
|
||||
(defvar levels-open)
|
||||
(defvar title)
|
||||
(defvar author)
|
||||
(defvar email)
|
||||
(defvar text)
|
||||
(defvar entry)
|
||||
(defvar date)
|
||||
(defvar language)
|
||||
(defvar options)
|
||||
(defvar ans1)
|
||||
(defvar ans2)
|
||||
(defvar starting-day)
|
||||
(defvar include-all-loc)
|
||||
(defvar vm-message-pointer)
|
||||
(defvar vm-folder-directory)
|
||||
(defvar wl-summary-buffer-elmo-folder)
|
||||
(defvar wl-summary-buffer-folder-name)
|
||||
(defvar gnus-group-name)
|
||||
(defvar gnus-article-current)
|
||||
(defvar w3m-current-url)
|
||||
(defvar mh-progs)
|
||||
(defvar mh-current-folder)
|
||||
(defvar mh-show-folder-buffer)
|
||||
(defvar mh-index-folder)
|
||||
(defvar mh-searcher)
|
||||
(defvar org-selected-point)
|
||||
(defvar calendar-mode-map)
|
||||
(defvar remember-save-after-remembering)
|
||||
(defvar remember-data-file)
|
||||
(defvar last-arg)
|
||||
|
||||
;;; Define the mode
|
||||
|
||||
|
@ -2216,7 +2222,7 @@ The following commands are available:
|
|||
|
||||
(defun org-activate-target-links (limit)
|
||||
"Run through the buffer and add overlays to target matches."
|
||||
(when org-radio-targets
|
||||
(when (and org-radio-targets org-target-link-regexp)
|
||||
(let ((case-fold-search t))
|
||||
(if (re-search-forward org-target-link-regexp limit t)
|
||||
(progn
|
||||
|
@ -2253,16 +2259,17 @@ With optional argument RADIO, only find radio targets."
|
|||
"Make regular expression matching all strings in TARGETS.
|
||||
The regular expression finds the targets also if there is a line break
|
||||
between words."
|
||||
(concat
|
||||
"\\<\\("
|
||||
(mapconcat
|
||||
(lambda (x)
|
||||
(while (string-match " +" x)
|
||||
(setq x (replace-match "\\s-+" t t x)))
|
||||
x)
|
||||
targets
|
||||
"\\|")
|
||||
"\\)\\>"))
|
||||
(and targets
|
||||
(concat
|
||||
"\\<\\("
|
||||
(mapconcat
|
||||
(lambda (x)
|
||||
(while (string-match " +" x)
|
||||
(setq x (replace-match "\\s-+" t t x)))
|
||||
x)
|
||||
targets
|
||||
"\\|")
|
||||
"\\)\\>")))
|
||||
|
||||
(defvar org-camel-regexp "\\*?\\<[A-Z]+[a-z]+[A-Z][a-zA-Z]*\\>"
|
||||
"Matches CamelCase words, possibly with a star before it.")
|
||||
|
@ -2302,12 +2309,14 @@ between words."
|
|||
(defun org-set-font-lock-defaults ()
|
||||
(let ((org-font-lock-extra-keywords
|
||||
(list
|
||||
'("^\\(\\**\\)\\(\\*\\)\\(.*\\)" (1 (org-get-level-face 1))
|
||||
(2 (org-get-level-face 2)) (3 (org-get-level-face 3)))
|
||||
'(org-activate-links (0 'org-link t))
|
||||
'(org-activate-links2 (0 'org-link t))
|
||||
'(org-activate-target-links (0 'org-link t))
|
||||
'(org-activate-dates (0 'org-link t))
|
||||
'(org-activate-camels (0 'org-link t))
|
||||
'(org-activate-tags (1 'org-link t))
|
||||
'(org-activate-tags (1 'org-tag t))
|
||||
(list (concat "^\\*+[ \t]*" org-not-done-regexp)
|
||||
'(1 'org-warning t))
|
||||
(list (concat "\\[#[A-Z]\\]") '(0 'org-special-keyword t))
|
||||
|
@ -2334,30 +2343,28 @@ between words."
|
|||
'("^[ \t]*\\(:.*\\)" (1 'org-table t))
|
||||
'("| *\\(:?=[^|\n]*\\)" (1 'org-formula t))
|
||||
'("^[ \t]*| *\\([#!$*_^]\\) *|" (1 'org-formula t))
|
||||
))
|
||||
(exp
|
||||
;; The font-lock expression for headlines is complicated. It depends
|
||||
;; on two user options, and it needs to determine the level in
|
||||
;; order to compute the level.
|
||||
(cond
|
||||
((and org-level-color-stars-only (not org-hide-leading-stars))
|
||||
'("^\\(\\*+\\).*" 1 (nth (% (- (match-end 1) (match-beginning 1) 1) org-n-levels) org-level-faces) nil t))
|
||||
((and (not org-level-color-stars-only) org-hide-leading-stars)
|
||||
'("^\\(\\**\\)\\(\\*.*\\)" (1 'org-hide) (2 (nth (% (- (match-end 1) (match-beginning 1)) org-n-levels) org-level-faces) nil t)))
|
||||
((and org-level-color-stars-only org-hide-leading-stars)
|
||||
'("^\\(\\**\\)\\(\\*\\).*" (1 'org-hide) (2 (nth (% (- (match-end 1) (match-beginning 1)) org-n-levels) org-level-faces) nil t)))
|
||||
(t
|
||||
'("^\\(\\*+\\).*" 0 (nth (% (- (match-end 1) (match-beginning 1) 1) org-n-levels) org-level-faces) nil t)))))
|
||||
|
||||
)))
|
||||
|
||||
;; Now set the full font-lock-keywords
|
||||
(set (make-local-variable 'org-font-lock-keywords)
|
||||
(append
|
||||
(if org-xemacs-p (list exp) (list (cons 'eval (list 'quote exp))))
|
||||
org-font-lock-extra-keywords))
|
||||
org-font-lock-extra-keywords)
|
||||
(set (make-local-variable 'font-lock-defaults)
|
||||
'(org-font-lock-keywords t nil nil backward-paragraph))
|
||||
(kill-local-variable 'font-lock-keywords) nil))
|
||||
|
||||
(defvar org-m nil)
|
||||
(defvar org-l nil)
|
||||
(defvar org-f nil)
|
||||
(defun org-get-level-face (n)
|
||||
"Get the right face for match N in font-lock matching of healdines."
|
||||
(setq org-l (- (match-end 2) (match-beginning 1)))
|
||||
(if org-odd-levels-only (setq org-l (1+ (/ org-l 2))))
|
||||
(setq org-f (nth (1- (% org-l org-n-levels)) org-level-faces))
|
||||
(cond
|
||||
((eq n 1) (if org-hide-leading-stars 'org-hide org-f))
|
||||
((eq n 2) org-f)
|
||||
(t (if org-level-color-stars-only nil org-f))))
|
||||
|
||||
(defun org-unfontify-region (beg end &optional maybe_loudly)
|
||||
"Remove fontification and activation overlays from links."
|
||||
(font-lock-default-unfontify-region beg end)
|
||||
|
@ -2463,7 +2470,7 @@ between words."
|
|||
(save-excursion
|
||||
(org-back-to-heading)
|
||||
(outline-up-heading (if (< arg 0) (- arg)
|
||||
(- (outline-level) arg)))
|
||||
(- (funcall outline-level) arg)))
|
||||
(org-show-subtree)))
|
||||
|
||||
((save-excursion (beginning-of-line 1) (looking-at outline-regexp))
|
||||
|
@ -2820,7 +2827,7 @@ in the region."
|
|||
(defun org-map-tree (fun)
|
||||
"Call FUN for every heading underneath the current one."
|
||||
(org-back-to-heading)
|
||||
(let ((level (outline-level)))
|
||||
(let ((level (funcall outline-level)))
|
||||
(save-excursion
|
||||
(funcall fun)
|
||||
(while (and (progn
|
||||
|
@ -3301,7 +3308,7 @@ heading be marked DONE, and the current time will be added."
|
|||
(if (string-match "\\(.*\\)::\\(.*\\)" org-archive-location)
|
||||
(progn
|
||||
(setq file (format (match-string 1 org-archive-location)
|
||||
(file-name-nondirectory (buffer-file-name)))
|
||||
(file-name-nondirectory buffer-file-name))
|
||||
heading (match-string 2 org-archive-location)))
|
||||
(error "Invalid `org-archive-location'"))
|
||||
(if (> (length file) 0)
|
||||
|
@ -3468,7 +3475,10 @@ At all other locations, this simply calls `ispell-complete-word'."
|
|||
(message "Making completion list...")
|
||||
(let ((list (sort (all-completions pattern table) 'string<)))
|
||||
(with-output-to-temp-buffer "*Completions*"
|
||||
(display-completion-list list)))
|
||||
(condition-case nil
|
||||
;; Protection needed for XEmacs and emacs 21
|
||||
(display-completion-list list pattern)
|
||||
(error (display-completion-list list)))))
|
||||
(message "Making completion list...%s" "done"))))))
|
||||
|
||||
;;; Comments, TODO and DEADLINE
|
||||
|
@ -4491,7 +4501,7 @@ first press `1' to indicate that the agenda should be temporarily (until the
|
|||
next use of \\[org-agenda]) restricted to the current file."
|
||||
(interactive "P")
|
||||
(catch 'exit
|
||||
(let ((restrict-ok (and (buffer-file-name) (eq major-mode 'org-mode)))
|
||||
(let ((restrict-ok (and buffer-file-name (eq major-mode 'org-mode)))
|
||||
(custom org-agenda-custom-commands)
|
||||
c entry key type string)
|
||||
(put 'org-agenda-files 'org-restrict nil)
|
||||
|
@ -4526,7 +4536,7 @@ C Configure your own agenda commands")
|
|||
(message "")
|
||||
(when (equal c ?1)
|
||||
(if restrict-ok
|
||||
(put 'org-agenda-files 'org-restrict (list (buffer-file-name)))
|
||||
(put 'org-agenda-files 'org-restrict (list buffer-file-name))
|
||||
(error "Cannot restrict agenda to current buffer"))
|
||||
(message "Press key for agenda command%s"
|
||||
(if restrict-ok " (restricted to current file)" ""))
|
||||
|
@ -4650,8 +4660,8 @@ dates."
|
|||
(dotodo include-all)
|
||||
(doclosed org-agenda-show-log)
|
||||
(org-agenda-keep-modes keep-modes)
|
||||
(entry (buffer-file-name))
|
||||
(org-agenda-files (list (buffer-file-name)))
|
||||
(entry buffer-file-name)
|
||||
(org-agenda-files (list buffer-file-name))
|
||||
(date (calendar-current-date))
|
||||
(win (selected-window))
|
||||
(pos1 (point))
|
||||
|
@ -5178,7 +5188,7 @@ date. It also removes lines that contain only whitespace."
|
|||
"Make the position visible."
|
||||
(if (and org-disable-agenda-to-diary ;; called from org-agenda
|
||||
(stringp string)
|
||||
(buffer-file-name))
|
||||
buffer-file-name)
|
||||
(setq string (org-modify-diary-entry-string string))))))
|
||||
|
||||
(defun org-modify-diary-entry-string (string)
|
||||
|
@ -5190,7 +5200,7 @@ date. It also removes lines that contain only whitespace."
|
|||
'help-echo
|
||||
(format
|
||||
"mouse-2 or RET jump to diary file %s"
|
||||
(abbreviate-file-name (buffer-file-name)))
|
||||
(abbreviate-file-name buffer-file-name))
|
||||
'org-agenda-diary-link t
|
||||
'org-marker (org-agenda-new-marker (point-at-bol)))
|
||||
string)
|
||||
|
@ -5212,7 +5222,7 @@ If the current buffer visits an agenda file, find the next one in the list.
|
|||
If the current buffer does not, find the first agenda file."
|
||||
(interactive)
|
||||
(let ((files (append org-agenda-files (list (car org-agenda-files))))
|
||||
(tcf (if (buffer-file-name) (file-truename (buffer-file-name))))
|
||||
(tcf (if buffer-file-name (file-truename buffer-file-name)))
|
||||
file)
|
||||
(unless files (error "No agenda files"))
|
||||
(catch 'exit
|
||||
|
@ -5223,14 +5233,14 @@ If the current buffer does not, find the first agenda file."
|
|||
(throw 'exit t))))
|
||||
(find-file (car org-agenda-files)))))
|
||||
|
||||
(defun org-agenda-file-to-end (&optional file)
|
||||
(defun org-agenda-file-to-end ()
|
||||
"Move/add the current file to the end of the agenda file list.
|
||||
If the file is not present in the list, it is appended to the list. If it is
|
||||
present, it is moved there."
|
||||
(interactive)
|
||||
(org-agenda-file-to-front 'to-end file))
|
||||
(org-agenda-file-to-front 'to-end))
|
||||
|
||||
(defun org-agenda-file-to-front (&optional to-end file)
|
||||
(defun org-agenda-file-to-front (&optional to-end)
|
||||
"Move/add the current file to the top of the agenda file list.
|
||||
If the file is not present in the list, it is added to the front. If it is
|
||||
present, it is moved there. With optional argument TO-END, add/move to the
|
||||
|
@ -5239,11 +5249,11 @@ end of the list."
|
|||
(let ((file-alist (mapcar (lambda (x)
|
||||
(cons (file-truename x) x))
|
||||
org-agenda-files))
|
||||
(ctf (file-truename (buffer-file-name)))
|
||||
(ctf (file-truename buffer-file-name))
|
||||
x had)
|
||||
(setq x (assoc ctf file-alist) had x)
|
||||
|
||||
(if (not x) (setq x (cons ctf (abbreviate-file-name (buffer-file-name)))))
|
||||
(if (not x) (setq x (cons ctf (abbreviate-file-name buffer-file-name))))
|
||||
(if to-end
|
||||
(setq file-alist (append (delq x file-alist) (list x)))
|
||||
(setq file-alist (cons x (delq x file-alist))))
|
||||
|
@ -5259,7 +5269,7 @@ end of the list."
|
|||
These are the files which are being checked for agenda entries.
|
||||
Optional argument FILE means, use this file instead of the current."
|
||||
(interactive)
|
||||
(let* ((file (or file (buffer-file-name)))
|
||||
(let* ((file (or file buffer-file-name))
|
||||
(true-file (file-truename file))
|
||||
(afile (abbreviate-file-name file))
|
||||
(files (delq nil (mapcar
|
||||
|
@ -5383,9 +5393,9 @@ function from a program - use `org-agenda-get-day-entries' instead."
|
|||
(cond
|
||||
((null org-category)
|
||||
(setq org-category
|
||||
(if (buffer-file-name)
|
||||
(if buffer-file-name
|
||||
(file-name-sans-extension
|
||||
(file-name-nondirectory (buffer-file-name)))
|
||||
(file-name-nondirectory buffer-file-name))
|
||||
"???")))
|
||||
((symbolp org-category) (symbol-name org-category))
|
||||
(t org-category))
|
||||
|
@ -5482,7 +5492,7 @@ the documentation of `org-diary'."
|
|||
'keymap org-agenda-keymap
|
||||
'help-echo
|
||||
(format "mouse-2 or RET jump to org file %s"
|
||||
(abbreviate-file-name (buffer-file-name)))))
|
||||
(abbreviate-file-name buffer-file-name))))
|
||||
(regexp (concat "[\n\r]\\*+ *\\("
|
||||
(if org-select-this-todo-keyword
|
||||
(concat "\\<\\(" org-select-this-todo-keyword
|
||||
|
@ -5524,7 +5534,7 @@ the documentation of `org-diary'."
|
|||
'keymap org-agenda-keymap
|
||||
'help-echo
|
||||
(format "mouse-2 or RET jump to org file %s"
|
||||
(abbreviate-file-name (buffer-file-name)))))
|
||||
(abbreviate-file-name buffer-file-name))))
|
||||
(regexp (regexp-quote
|
||||
(substring
|
||||
(format-time-string
|
||||
|
@ -5601,7 +5611,7 @@ the documentation of `org-diary'."
|
|||
'keymap org-agenda-keymap
|
||||
'help-echo
|
||||
(format "mouse-2 or RET jump to org file %s"
|
||||
(abbreviate-file-name (buffer-file-name)))))
|
||||
(abbreviate-file-name buffer-file-name))))
|
||||
(regexp (concat
|
||||
"\\<" org-closed-string " *\\["
|
||||
(regexp-quote
|
||||
|
@ -5657,7 +5667,7 @@ the documentation of `org-diary'."
|
|||
'keymap org-agenda-keymap
|
||||
'help-echo
|
||||
(format "mouse-2 or RET jump to org file %s"
|
||||
(abbreviate-file-name (buffer-file-name)))))
|
||||
(abbreviate-file-name buffer-file-name))))
|
||||
(regexp org-deadline-time-regexp)
|
||||
(todayp (equal date (calendar-current-date))) ; DATE bound by calendar
|
||||
(d1 (calendar-absolute-from-gregorian date)) ; DATE bound by calendar
|
||||
|
@ -5719,7 +5729,7 @@ the documentation of `org-diary'."
|
|||
'keymap org-agenda-keymap
|
||||
'help-echo
|
||||
(format "mouse-2 or RET jump to org file %s"
|
||||
(abbreviate-file-name (buffer-file-name)))))
|
||||
(abbreviate-file-name buffer-file-name))))
|
||||
(regexp org-scheduled-time-regexp)
|
||||
(todayp (equal date (calendar-current-date))) ; DATE bound by calendar
|
||||
(d1 (calendar-absolute-from-gregorian date)) ; DATE bound by calendar
|
||||
|
@ -5768,7 +5778,7 @@ the documentation of `org-diary'."
|
|||
'keymap org-agenda-keymap
|
||||
'help-echo
|
||||
(format "mouse-2 or RET jump to org file %s"
|
||||
(abbreviate-file-name (buffer-file-name)))))
|
||||
(abbreviate-file-name buffer-file-name))))
|
||||
(regexp org-tr-regexp)
|
||||
(d0 (calendar-absolute-from-gregorian date))
|
||||
marker hdmarker ee txt d1 d2 s1 s2 timestr category tags)
|
||||
|
@ -5861,11 +5871,11 @@ only the correctly processes TXT should be returned - this is used by
|
|||
(if (string-match "^ +" txt) (setq txt (replace-match "" nil nil txt)))
|
||||
(let* ((category (or category
|
||||
org-category
|
||||
(if (buffer-file-name)
|
||||
(if buffer-file-name
|
||||
(file-name-sans-extension
|
||||
(file-name-nondirectory (buffer-file-name)))
|
||||
(file-name-nondirectory buffer-file-name))
|
||||
"")))
|
||||
(tag (or (nth (1- (length tags)) tags) ""))
|
||||
(tag (or (nth (1- (or (length tags) 0)) tags) ""))
|
||||
time ;; needed for the eval of the prefix format
|
||||
(ts (if dotime (concat (if (stringp dotime) dotime "") txt)))
|
||||
(time-of-day (and dotime (org-get-time-of-day ts)))
|
||||
|
@ -6495,7 +6505,7 @@ are included in the output."
|
|||
'keymap org-agenda-keymap
|
||||
'help-echo
|
||||
(format "mouse-2 or RET jump to org file %s"
|
||||
(abbreviate-file-name (buffer-file-name)))))
|
||||
(abbreviate-file-name buffer-file-name))))
|
||||
lspos
|
||||
tags tags-list tags-alist (llast 0) rtn level category i txt
|
||||
todo marker)
|
||||
|
@ -6507,7 +6517,7 @@ are included in the output."
|
|||
(setq todo (if (match-end 1) (match-string 2))
|
||||
tags (if (match-end 4) (match-string 4)))
|
||||
(goto-char (setq lspos (1+ (match-beginning 0))))
|
||||
(setq level (outline-level)
|
||||
(setq level (funcall outline-level)
|
||||
category (org-get-category))
|
||||
(setq i llast llast level)
|
||||
;; remove tag lists from same and sublevels
|
||||
|
@ -7232,9 +7242,8 @@ sequences, it will now work."
|
|||
"Returns the name of the message folder in a index folder buffer."
|
||||
(save-excursion
|
||||
(mh-index-previous-folder)
|
||||
(if (not (re-search-forward "^\\(+.*\\)$" nil t))
|
||||
(message "Problem getting folder from index.")
|
||||
(message (match-string 1)))))
|
||||
(re-search-forward "^\\(+.*\\)$" nil t)
|
||||
(message (match-string 1))))
|
||||
|
||||
(defun org-mhe-get-message-folder ()
|
||||
"Return the name of the current message folder. Be careful if you
|
||||
|
@ -7278,23 +7287,21 @@ idea..."
|
|||
"Follow an MHE link to FOLDER and ARTICLE."
|
||||
(setq article (org-add-angle-brackets article))
|
||||
(require 'mh-e)
|
||||
(require 'mh-search)
|
||||
(mh-find-path)
|
||||
(let* ((show-buf (concat "show-" folder)))
|
||||
(mh-visit-folder folder)
|
||||
(get-buffer-create show-buf)
|
||||
(mh-show-msg
|
||||
(string-to-number
|
||||
(car (split-string
|
||||
(with-temp-buffer
|
||||
(call-process
|
||||
(expand-file-name "pick" mh-progs)
|
||||
nil t nil
|
||||
folder
|
||||
"--message-id"
|
||||
article)
|
||||
(buffer-string))
|
||||
"\n"))))
|
||||
(pop-to-buffer show-buf)))
|
||||
(mh-search-choose)
|
||||
(if (equal mh-searcher 'pick)
|
||||
(progn
|
||||
(mh-search folder (list "--message-id" article))
|
||||
(when (and org-mhe-search-all-folders
|
||||
(not (org-mhe-get-message-real-folder)))
|
||||
(kill-this-buffer)
|
||||
(mh-search "+" (list "--message-id" article))))
|
||||
(mh-search "+" article))
|
||||
(if (org-mhe-get-message-real-folder)
|
||||
(mh-show-msg 1)
|
||||
(kill-this-buffer)
|
||||
(error "Message not found")))
|
||||
|
||||
(defun org-open-file (path &optional in-emacs line search)
|
||||
"Open the file at PATH.
|
||||
|
@ -7309,7 +7316,7 @@ opened in Emacs.
|
|||
If the file does not exist, an error is thrown."
|
||||
(setq in-emacs (or in-emacs line search))
|
||||
(let* ((file (if (equal path "")
|
||||
(buffer-file-name)
|
||||
buffer-file-name
|
||||
(convert-standard-filename (org-expand-file-name path))))
|
||||
(dirp (file-directory-p file))
|
||||
(dfile (downcase file))
|
||||
|
@ -7345,7 +7352,7 @@ If the file does not exist, an error is thrown."
|
|||
(shell-command (concat cmd " &"))))
|
||||
((or (stringp cmd)
|
||||
(eq cmd 'emacs))
|
||||
(unless (equal (file-truename file) (file-truename (buffer-file-name)))
|
||||
(unless (equal (file-truename file) (file-truename buffer-file-name))
|
||||
(funcall (cdr (assq 'file org-link-frame-setup)) file))
|
||||
(if line (goto-line line)
|
||||
(if search (org-link-search search))))
|
||||
|
@ -7412,7 +7419,7 @@ For file links, arg negates `org-context-in-file-links'."
|
|||
(save-excursion
|
||||
(vm-select-folder-buffer)
|
||||
(let* ((message (car vm-message-pointer))
|
||||
(folder (buffer-file-name))
|
||||
(folder buffer-file-name)
|
||||
(subject (vm-su-subject message))
|
||||
(author (vm-su-full-name message))
|
||||
(message-id (vm-su-message-id message)))
|
||||
|
@ -7457,7 +7464,7 @@ For file links, arg negates `org-context-in-file-links'."
|
|||
(save-excursion
|
||||
(save-restriction
|
||||
(rmail-narrow-to-non-pruned-header)
|
||||
(let ((folder (buffer-file-name))
|
||||
(let ((folder buffer-file-name)
|
||||
(message-id (mail-fetch-field "message-id"))
|
||||
(author (mail-fetch-field "from"))
|
||||
(subject (mail-fetch-field "subject")))
|
||||
|
@ -7512,7 +7519,7 @@ For file links, arg negates `org-context-in-file-links'."
|
|||
((eq major-mode 'org-mode)
|
||||
;; Just link to current headline
|
||||
(setq cpltxt (concat "file:"
|
||||
(abbreviate-file-name (buffer-file-name))))
|
||||
(abbreviate-file-name buffer-file-name)))
|
||||
;; Add a context search string
|
||||
(when (org-xor org-context-in-file-links arg)
|
||||
;; Check if we are on a target
|
||||
|
@ -7537,10 +7544,10 @@ For file links, arg negates `org-context-in-file-links'."
|
|||
(setq cpltxt (substring cpltxt 0 -2)))
|
||||
(setq link (org-make-link cpltxt)))
|
||||
|
||||
((buffer-file-name)
|
||||
(buffer-file-name
|
||||
;; Just link to this file here.
|
||||
(setq cpltxt (concat "file:"
|
||||
(abbreviate-file-name (buffer-file-name))))
|
||||
(abbreviate-file-name buffer-file-name)))
|
||||
;; Add a context string
|
||||
(when (org-xor org-context-in-file-links arg)
|
||||
(setq txt (if (org-region-active-p)
|
||||
|
@ -7706,7 +7713,7 @@ is in the current directory or below."
|
|||
(case-fold-search nil)
|
||||
(search (match-string 2 link)))
|
||||
(when (save-match-data
|
||||
(equal (file-truename (buffer-file-name))
|
||||
(equal (file-truename buffer-file-name)
|
||||
(file-truename path)))
|
||||
;; We are linking to this same file
|
||||
(if (and org-file-link-context-use-camel-case
|
||||
|
@ -7835,7 +7842,7 @@ See also the variable `org-reverse-note-order'."
|
|||
((and (org-on-heading-p nil) (not current-prefix-arg))
|
||||
;; Put it below this entry, at the beg/end of the subtree
|
||||
(org-back-to-heading)
|
||||
(setq level (outline-level))
|
||||
(setq level (funcall outline-level))
|
||||
(if reversed
|
||||
(outline-end-of-heading)
|
||||
(outline-end-of-subtree))
|
||||
|
@ -7868,7 +7875,7 @@ See also the variable `org-reverse-note-order'."
|
|||
(let ((all org-reverse-note-order)
|
||||
entry)
|
||||
(while (setq entry (pop all))
|
||||
(if (string-match (car entry) (buffer-file-name))
|
||||
(if (string-match (car entry) buffer-file-name)
|
||||
(throw 'exit (cdr entry))))
|
||||
nil)))))
|
||||
|
||||
|
@ -10510,7 +10517,8 @@ translations. There is currently no way for users to extend this.")
|
|||
"Cleanup a buffer substring so that links can be created safely."
|
||||
(interactive)
|
||||
(let* ((cb (current-buffer))
|
||||
(re-radio (concat "\\([^<]\\)\\(" org-target-link-regexp "\\)"))
|
||||
(re-radio (and org-target-link-regexp
|
||||
(concat "\\([^<]\\)\\(" org-target-link-regexp "\\)")))
|
||||
rtn)
|
||||
(save-excursion
|
||||
(set-buffer (get-buffer-create " org-mode-tmp"))
|
||||
|
@ -10524,8 +10532,9 @@ translations. There is currently no way for users to extend this.")
|
|||
(replace-match "\\1(INVISIBLE)"))
|
||||
;; Find matches for radio targets and turn them into links
|
||||
(goto-char (point-min))
|
||||
(while (re-search-forward re-radio nil t)
|
||||
(replace-match "\\1[[\\2]]"))
|
||||
(when re-radio
|
||||
(while (re-search-forward re-radio nil t)
|
||||
(replace-match "\\1[[\\2]]")))
|
||||
;; Find all links that contain a newline and put them into a single line
|
||||
(goto-char (point-min))
|
||||
(while (re-search-forward "\\(\\[\\[[^]]*?\\)[ \t]*\n[ \t]*\\([^]]*\\]\\]\\)" nil t)
|
||||
|
@ -10590,7 +10599,7 @@ underlined headlines. The default is 3."
|
|||
(level 0) line txt
|
||||
(umax nil)
|
||||
(case-fold-search nil)
|
||||
(filename (concat (file-name-sans-extension (buffer-file-name))
|
||||
(filename (concat (file-name-sans-extension buffer-file-name)
|
||||
".txt"))
|
||||
(buffer (find-file-noselect filename))
|
||||
(levels-open (make-vector org-level-max nil))
|
||||
|
@ -10748,7 +10757,7 @@ underlined headlines. The default is 3."
|
|||
Also removes the first line of the buffer if it specifies a mode,
|
||||
and all options lines."
|
||||
(interactive)
|
||||
(let* ((filename (concat (file-name-sans-extension (buffer-file-name))
|
||||
(let* ((filename (concat (file-name-sans-extension buffer-file-name)
|
||||
".txt"))
|
||||
(buffer (find-file-noselect filename))
|
||||
(ore (concat
|
||||
|
@ -10822,7 +10831,7 @@ Does include HTML export options as well as TODO and CATEGORY stuff."
|
|||
org-export-with-sub-superscripts
|
||||
org-export-with-emphasize
|
||||
org-export-with-TeX-macros
|
||||
(file-name-nondirectory (buffer-file-name))
|
||||
(file-name-nondirectory buffer-file-name)
|
||||
(if (equal org-todo-interpretation 'sequence)
|
||||
(mapconcat 'identity org-todo-keywords " ")
|
||||
"TODO FEEDBACK VERIFY DONE")
|
||||
|
@ -10895,7 +10904,7 @@ The prefix ARG specifies how many levels of the outline should become
|
|||
headlines. The default is 3. Lower levels will become bulleted lists."
|
||||
(interactive "P")
|
||||
(org-export-as-html arg 'hidden)
|
||||
(org-open-file (buffer-file-name)))
|
||||
(org-open-file buffer-file-name))
|
||||
|
||||
(defun org-export-as-html-batch ()
|
||||
"Call `org-export-as-html', may be used in batch processing as
|
||||
|
@ -10927,7 +10936,7 @@ headlines. The default is 3. Lower levels will become bulleted lists."
|
|||
(lines (org-export-find-first-heading-line all_lines))
|
||||
(level 0) (line "") (origline "") txt todo
|
||||
(umax nil)
|
||||
(filename (concat (file-name-sans-extension (buffer-file-name))
|
||||
(filename (concat (file-name-sans-extension buffer-file-name)
|
||||
".html"))
|
||||
(buffer (find-file-noselect filename))
|
||||
(levels-open (make-vector org-level-max nil))
|
||||
|
@ -11661,7 +11670,7 @@ When LEVEL is non-nil, increase section numbers on that level."
|
|||
The iCalendar file will be located in the same directory as the Org-mode
|
||||
file, but with extension `.ics'."
|
||||
(interactive)
|
||||
(org-export-icalendar nil (buffer-file-name)))
|
||||
(org-export-icalendar nil buffer-file-name))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-export-icalendar-all-agenda-files ()
|
||||
|
@ -11698,7 +11707,7 @@ file and store it under the name `org-combined-agenda-icalendar-file'."
|
|||
(set-buffer (org-get-agenda-file-buffer file))
|
||||
(setq category (or org-category
|
||||
(file-name-sans-extension
|
||||
(file-name-nondirectory (buffer-file-name)))))
|
||||
(file-name-nondirectory buffer-file-name))))
|
||||
(if (symbolp category) (setq category (symbol-name category)))
|
||||
(let ((standard-output ical-buffer))
|
||||
(if combine
|
||||
|
@ -12842,4 +12851,3 @@ Show the heading too, if it is currently invisible."
|
|||
|
||||
;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd
|
||||
;;; org.el ends here
|
||||
|
||||
|
|
|
@ -50,14 +50,16 @@
|
|||
;; Specify a function to be called to dynamically provide the
|
||||
;; tree's children in response to an expand request. This function
|
||||
;; will be passed the tree widget and must return a list of child
|
||||
;; widgets.
|
||||
;; widgets. Child widgets returned by the :expander function are
|
||||
;; stored in the :args property of the tree widget.
|
||||
;;
|
||||
;; *Please note:* Child widgets returned by the :expander function
|
||||
;; are stored in the :args property of the tree widget. To speed
|
||||
;; up successive expand requests, the :expander function is not
|
||||
;; called again when the :args value is non-nil. To refresh child
|
||||
;; values, it is necessary to set the :args property to nil, then
|
||||
;; redraw the tree.
|
||||
;; :expander-p
|
||||
;; Specify a predicate which must return non-nil to indicate that
|
||||
;; the :expander function above has to be called. By default, to
|
||||
;; speed up successive expand requests, the :expander-p predicate
|
||||
;; return non-nil when the :args value is nil. So, by default, to
|
||||
;; refresh child values, it is necessary to set the :args property
|
||||
;; to nil, then redraw the tree.
|
||||
;;
|
||||
;; :open-icon (default `tree-widget-open-icon')
|
||||
;; :close-icon (default `tree-widget-close-icon')
|
||||
|
@ -265,19 +267,42 @@ See also the option `widget-image-conversion'."
|
|||
|
||||
(defsubst tree-widget-theme-name ()
|
||||
"Return the current theme name, or nil if no theme is active."
|
||||
(and tree-widget--theme (aref tree-widget--theme 0)))
|
||||
(and tree-widget--theme (car (aref tree-widget--theme 0))))
|
||||
|
||||
(defsubst tree-widget-set-theme (&optional name)
|
||||
(defsubst tree-widget-set-parent-theme (name)
|
||||
"Set to NAME the parent theme of the current theme.
|
||||
The default parent theme is the \"default\" theme."
|
||||
(unless (member name (aref tree-widget--theme 0))
|
||||
(aset tree-widget--theme 0
|
||||
(append (aref tree-widget--theme 0) (list name)))
|
||||
;; Load the theme setup
|
||||
(let ((default-directory (tree-widget-themes-directory)))
|
||||
(when default-directory
|
||||
(load (expand-file-name "tree-widget-theme-setup" name) t)))))
|
||||
|
||||
(defun tree-widget-set-theme (&optional name)
|
||||
"In the current buffer, set the theme to use for images.
|
||||
The current buffer must be where the tree widget is drawn.
|
||||
Optional argument NAME is the name of the theme to use. It defaults
|
||||
to the value of the variable `tree-widget-theme'.
|
||||
Does nothing if NAME is already the current theme."
|
||||
Does nothing if NAME is already the current theme.
|
||||
|
||||
If there is a \"tree-widget-theme-setup\" library in the theme
|
||||
directory, load it to setup a parent theme or the images properties.
|
||||
Typically it should contain something like this:
|
||||
|
||||
(tree-widget-set-parent-theme \"my-parent-theme\")
|
||||
(tree-widget-set-image-properties
|
||||
(if (featurep 'xemacs)
|
||||
'(:ascent center)
|
||||
'(:ascent center :mask (heuristic t))
|
||||
))"
|
||||
(or name (setq name (or tree-widget-theme "default")))
|
||||
(unless (string-equal name (tree-widget-theme-name))
|
||||
(set (make-local-variable 'tree-widget--theme)
|
||||
(make-vector 4 nil))
|
||||
(aset tree-widget--theme 0 name)))
|
||||
(tree-widget-set-parent-theme name)
|
||||
(tree-widget-set-parent-theme "default")))
|
||||
|
||||
(defun tree-widget--locate-sub-directory (name path)
|
||||
"Locate the sub-directory NAME in PATH.
|
||||
|
@ -328,50 +353,6 @@ specified directory is not accessible."
|
|||
(aset tree-widget--theme 1 (or found 'void))
|
||||
found))
|
||||
|
||||
(defsubst tree-widget-set-image-properties (props)
|
||||
"In current theme, set images properties to PROPS."
|
||||
(aset tree-widget--theme 2 props))
|
||||
|
||||
(defun tree-widget-image-properties (file)
|
||||
"Return the properties of an image in current theme.
|
||||
FILE is the absolute file name of an image.
|
||||
|
||||
If there is a \"tree-widget-theme-setup\" library in the theme
|
||||
directory, where is located FILE, load it to setup theme images
|
||||
properties. Typically it should contain something like this:
|
||||
|
||||
(tree-widget-set-image-properties
|
||||
(if (featurep 'xemacs)
|
||||
'(:ascent center)
|
||||
'(:ascent center :mask (heuristic t))
|
||||
))
|
||||
|
||||
When there is no \"tree-widget-theme-setup\" library in the current
|
||||
theme directory, load the one from the default theme, if available.
|
||||
Default global properties are provided for respectively Emacs and
|
||||
XEmacs in the variables `tree-widget-image-properties-emacs', and
|
||||
`tree-widget-image-properties-xemacs'."
|
||||
;; If properties are in the cache, use them.
|
||||
(let ((plist (aref tree-widget--theme 2)))
|
||||
(unless plist
|
||||
;; Load tree-widget-theme-setup if available.
|
||||
(load (expand-file-name "tree-widget-theme-setup"
|
||||
(file-name-directory file)) t t)
|
||||
;; If properties have been setup, use them.
|
||||
(unless (setq plist (aref tree-widget--theme 2))
|
||||
;; Try from the default theme.
|
||||
(load (expand-file-name "../default/tree-widget-theme-setup"
|
||||
(file-name-directory file)) t t)
|
||||
;; If properties have been setup, use them.
|
||||
(unless (setq plist (aref tree-widget--theme 2))
|
||||
;; By default, use supplied global properties.
|
||||
(setq plist (if (featurep 'xemacs)
|
||||
tree-widget-image-properties-xemacs
|
||||
tree-widget-image-properties-emacs))
|
||||
;; Setup the cache.
|
||||
(tree-widget-set-image-properties plist))))
|
||||
plist))
|
||||
|
||||
(defconst tree-widget--cursors
|
||||
;; Pointer shapes when the mouse pointer is over inactive
|
||||
;; tree-widget images. This feature works since Emacs 22, and
|
||||
|
@ -384,35 +365,46 @@ XEmacs in the variables `tree-widget-image-properties-emacs', and
|
|||
("no-handle" . arrow)
|
||||
))
|
||||
|
||||
(defsubst tree-widget-set-image-properties (props)
|
||||
"In current theme, set images properties to PROPS.
|
||||
Does nothing if images properties have already been set for that
|
||||
theme."
|
||||
(or (aref tree-widget--theme 2)
|
||||
(aset tree-widget--theme 2 props)))
|
||||
|
||||
(defsubst tree-widget-image-properties (name)
|
||||
"Return the properties of image NAME in current theme.
|
||||
Default global properties are provided for respectively Emacs and
|
||||
XEmacs in the variables `tree-widget-image-properties-emacs', and
|
||||
`tree-widget-image-properties-xemacs'."
|
||||
;; Add the pointer shape
|
||||
(cons :pointer
|
||||
(cons (or (cdr (assoc name tree-widget--cursors)) 'hand)
|
||||
(tree-widget-set-image-properties
|
||||
(if (featurep 'xemacs)
|
||||
tree-widget-image-properties-xemacs
|
||||
tree-widget-image-properties-emacs)))))
|
||||
|
||||
(defun tree-widget-lookup-image (name)
|
||||
"Look up in current theme for an image with NAME.
|
||||
Search first in current theme, then in default theme (see also the
|
||||
variable `tree-widget-theme').
|
||||
Search first in current theme, then in parent themes (see also the
|
||||
function `tree-widget-set-parent-theme').
|
||||
Return the first image found having a supported format, or nil if not
|
||||
found."
|
||||
(let ((default-directory (tree-widget-themes-directory)))
|
||||
(let ((default-directory (tree-widget-themes-directory)) file)
|
||||
(when default-directory
|
||||
(let (file (theme (tree-widget-theme-name)))
|
||||
(catch 'found
|
||||
(dolist (dir (if (string-equal theme "default")
|
||||
'("default") (list theme "default")))
|
||||
(dolist (fmt (tree-widget-image-formats))
|
||||
(dolist (ext (cdr fmt))
|
||||
(setq file (expand-file-name (concat name ext) dir))
|
||||
(and
|
||||
(file-readable-p file)
|
||||
(file-regular-p file)
|
||||
(throw
|
||||
'found
|
||||
(tree-widget-create-image
|
||||
(car fmt) file
|
||||
;; Add the pointer shape
|
||||
(cons :pointer
|
||||
(cons
|
||||
(or (cdr (assoc name tree-widget--cursors))
|
||||
'hand)
|
||||
(tree-widget-image-properties file)))))))))
|
||||
nil)))))
|
||||
(catch 'found
|
||||
(dolist (dir (aref tree-widget--theme 0))
|
||||
(dolist (fmt (tree-widget-image-formats))
|
||||
(dolist (ext (cdr fmt))
|
||||
(setq file (expand-file-name (concat name ext) dir))
|
||||
(and (file-readable-p file)
|
||||
(file-regular-p file)
|
||||
(throw 'found
|
||||
(tree-widget-create-image
|
||||
(car fmt) file
|
||||
(tree-widget-image-properties name)))))))
|
||||
nil))))
|
||||
|
||||
(defun tree-widget-find-image (name)
|
||||
"Find the image with NAME in current theme.
|
||||
|
@ -530,12 +522,13 @@ Handle mouse button 1 click on buttons.")
|
|||
(define-widget 'tree-widget 'default
|
||||
"Tree widget."
|
||||
:format "%v"
|
||||
:convert-widget 'widget-types-convert-widget
|
||||
:convert-widget 'tree-widget-convert-widget
|
||||
:value-get 'widget-value-value-get
|
||||
:value-delete 'widget-children-value-delete
|
||||
:value-create 'tree-widget-value-create
|
||||
:action 'tree-widget-action
|
||||
:help-echo 'tree-widget-help-echo
|
||||
:expander-p 'tree-widget-expander-p
|
||||
:open-icon 'tree-widget-open-icon
|
||||
:close-icon 'tree-widget-close-icon
|
||||
:empty-icon 'tree-widget-empty-icon
|
||||
|
@ -646,6 +639,14 @@ This hook should be local in the buffer setup to display widgets.")
|
|||
(1- (point)) (point)
|
||||
'display (list 'space :width tree-widget-space-width)))
|
||||
|
||||
(defun tree-widget-convert-widget (widget)
|
||||
"Convert :args as widget types in WIDGET."
|
||||
(let ((tree (widget-types-convert-widget widget)))
|
||||
;; Compatibility
|
||||
(widget-put tree :expander (or (widget-get tree :expander)
|
||||
(widget-get tree :dynargs)))
|
||||
tree))
|
||||
|
||||
(defun tree-widget-value-create (tree)
|
||||
"Create the TREE tree-widget."
|
||||
(let* ((node (tree-widget-node tree))
|
||||
|
@ -662,8 +663,6 @@ This hook should be local in the buffer setup to display widgets.")
|
|||
(if (widget-get tree :open)
|
||||
;;;; Expanded node.
|
||||
(let ((args (widget-get tree :args))
|
||||
(xpandr (or (widget-get tree :expander)
|
||||
(widget-get tree :dynargs)))
|
||||
(guide (widget-get tree :guide))
|
||||
(noguide (widget-get tree :no-guide))
|
||||
(endguide (widget-get tree :end-guide))
|
||||
|
@ -674,9 +673,11 @@ This hook should be local in the buffer setup to display widgets.")
|
|||
(endguidi (tree-widget-find-image "end-guide"))
|
||||
(handli (tree-widget-find-image "handle"))
|
||||
(nohandli (tree-widget-find-image "no-handle")))
|
||||
;; Request children at run time, when not already done.
|
||||
(when (and (not args) xpandr)
|
||||
(setq args (mapcar 'widget-convert (funcall xpandr tree)))
|
||||
;; Request children at run time, when requested.
|
||||
(when (and (widget-get tree :expander)
|
||||
(widget-apply tree :expander-p))
|
||||
(setq args (mapcar 'widget-convert
|
||||
(widget-apply tree :expander)))
|
||||
(widget-put tree :args args))
|
||||
;; Defer the node widget creation after icon creation.
|
||||
(widget-put tree :node (widget-convert node))
|
||||
|
@ -800,6 +801,11 @@ Ignore the EVENT argument."
|
|||
"Collapse node"
|
||||
"Expand node"))
|
||||
|
||||
(defun tree-widget-expander-p (tree)
|
||||
"Return non-nil if the TREE tree-widget :expander has to be called.
|
||||
That is, if TREE :args is nil."
|
||||
(null (widget-get tree :args)))
|
||||
|
||||
(provide 'tree-widget)
|
||||
|
||||
;; arch-tag: c3a1ada2-1663-41dc-9d16-2479ed8320e8
|
||||
|
|
|
@ -169,13 +169,13 @@
|
|||
;; probably needs rewriting `tumme-display-thumbs' to be more general.
|
||||
;;
|
||||
;; * Find some way of toggling on and off really nice keybindings in
|
||||
;; dired (for example, using C-n or <down> instead of C-S-n). Richard
|
||||
;; dired (for example, using C-n or <down> instead of C-S-n). Richard
|
||||
;; suggested that we could keep C-t as prefix for tumme commands as it
|
||||
;; is currently not used in dired. He also suggested that
|
||||
;; is currently not used in dired. He also suggested that
|
||||
;; `dired-next-line' and `dired-previous-line' figure out if tumme is
|
||||
;; enabled in the current buffer and, if it is, call
|
||||
;; `tumme-dired-next-line' and `tumme-dired-previous-line',
|
||||
;; respectively. Update: This is partly done; some bindings have now
|
||||
;; respectively. Update: This is partly done; some bindings have now
|
||||
;; been added to dired.
|
||||
;;
|
||||
;; * Enhanced gallery creation with basic CSS-support and pagination
|
||||
|
|
|
@ -1,3 +1,14 @@
|
|||
2006-03-07 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* url-http.el (url-http-find-free-connection): Fix braino in last fix.
|
||||
|
||||
2006-03-05 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* url-http.el (url-http-find-free-connection): Don't kill the process
|
||||
when killing the temp buffer.
|
||||
(url-http-symbol-value-in-buffer): Massage to make it clear to the
|
||||
byte-compiler that the function is defined.
|
||||
|
||||
2006-02-20 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* url.el (url-redirect-buffer): New var.
|
||||
|
|
|
@ -121,7 +121,11 @@ request.")
|
|||
(let ((buf (generate-new-buffer " *url-http-temp*")))
|
||||
;; `url-open-stream' needs a buffer in which to do things
|
||||
;; like authentication. But we use another buffer afterwards.
|
||||
(unwind-protect (url-open-stream host buf host port)
|
||||
(unwind-protect
|
||||
(let ((proc (url-open-stream host buf host port)))
|
||||
;; Drop the temp buffer link before killing the buffer.
|
||||
(set-process-buffer proc nil)
|
||||
proc)
|
||||
(kill-buffer buf)))))))
|
||||
|
||||
;; Building an HTTP request
|
||||
|
@ -1109,15 +1113,15 @@ CBARGS as the arguments."
|
|||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;; file-name-handler stuff from here on out
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
(if (not (fboundp 'symbol-value-in-buffer))
|
||||
(defun url-http-symbol-value-in-buffer (symbol buffer
|
||||
&optional unbound-value)
|
||||
(defalias 'url-http-symbol-value-in-buffer
|
||||
(if (fboundp 'symbol-value-in-buffer)
|
||||
'symbol-value-in-buffer
|
||||
(lambda (symbol buffer &optional unbound-value)
|
||||
"Return the value of SYMBOL in BUFFER, or UNBOUND-VALUE if it is unbound."
|
||||
(with-current-buffer buffer
|
||||
(if (not (boundp symbol))
|
||||
unbound-value
|
||||
(symbol-value symbol))))
|
||||
(defalias 'url-http-symbol-value-in-buffer 'symbol-value-in-buffer))
|
||||
(if (not (boundp symbol))
|
||||
unbound-value
|
||||
(symbol-value symbol))))))
|
||||
|
||||
(defun url-http-head (url)
|
||||
(let ((url-request-method "HEAD")
|
||||
|
|
|
@ -103,6 +103,7 @@
|
|||
|
||||
(defvar dired-backup-overwrite) ; Only in Emacs 20.x this is a custom var
|
||||
|
||||
(eval-when-compile (require 'cl))
|
||||
(require 'dired)
|
||||
(autoload 'dired-do-create-files-regexp "dired-aux")
|
||||
(autoload 'dired-call-process "dired-aux")
|
||||
|
|
|
@ -1,3 +1,17 @@
|
|||
2006-03-08 Luc Teirlinck <teirllm@auburn.edu>
|
||||
|
||||
* searching.texi (Regexp Special): Put remark between parentheses
|
||||
to avoid misreading.
|
||||
|
||||
2006-03-07 Luc Teirlinck <teirllm@auburn.edu>
|
||||
|
||||
* searching.texi (Syntax of Regexps): More accurately describe
|
||||
which characters are special in which situations.
|
||||
(Regexp Special): Recommend _not_ to quote `]' or `-' when they
|
||||
are not special. Describe in detail when `[' and `]' are special.
|
||||
(Regexp Backslash): Plenty of regexps with unbalanced square
|
||||
brackets are valid, so reword that statement.
|
||||
|
||||
2006-03-02 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
* keymaps.texi (Tool Bar): Add tool-bar-border.
|
||||
|
|
|
@ -235,12 +235,15 @@ it easier to verify even very complex regexps.
|
|||
|
||||
Regular expressions have a syntax in which a few characters are
|
||||
special constructs and the rest are @dfn{ordinary}. An ordinary
|
||||
character is a simple regular expression that matches that character and
|
||||
nothing else. The special characters are @samp{.}, @samp{*}, @samp{+},
|
||||
@samp{?}, @samp{[}, @samp{]}, @samp{^}, @samp{$}, and @samp{\}; no new
|
||||
special characters will be defined in the future. Any other character
|
||||
appearing in a regular expression is ordinary, unless a @samp{\}
|
||||
precedes it.
|
||||
character is a simple regular expression that matches that character
|
||||
and nothing else. The special characters are @samp{.}, @samp{*},
|
||||
@samp{+}, @samp{?}, @samp{[}, @samp{^}, @samp{$}, and @samp{\}; no new
|
||||
special characters will be defined in the future. The character
|
||||
@samp{]} is special if it ends a character alternative (see later).
|
||||
The character @samp{-} is special inside a character alternative. A
|
||||
@samp{[:} and balancing @samp{:]} enclose a character class inside a
|
||||
character alternative. Any other character appearing in a regular
|
||||
expression is ordinary, unless a @samp{\} precedes it.
|
||||
|
||||
For example, @samp{f} is not a special character, so it is ordinary, and
|
||||
therefore @samp{f} is a regular expression that matches the string
|
||||
|
@ -468,6 +471,34 @@ ordinary since there is no preceding expression on which the @samp{*}
|
|||
can act. It is poor practice to depend on this behavior; quote the
|
||||
special character anyway, regardless of where it appears.@refill
|
||||
|
||||
As a @samp{\} is not special inside a character alternative, it can
|
||||
never remove the special meaning of @samp{-} or @samp{]}. So you
|
||||
should not quote these characters when they have no special meaning
|
||||
either. This would not clarify anything, since backslashes can
|
||||
legitimately precede these characters where they @emph{have} special
|
||||
meaning, as in @code{[^\]} (@code{"[^\\]"} for Lisp string syntax),
|
||||
which matches any single character except a backslash.
|
||||
|
||||
In practice, most @samp{]} that occur in regular expressions close a
|
||||
character alternative and hence are special. However, occasionally a
|
||||
regular expression may try to match a complex pattern of literal
|
||||
@samp{[} and @samp{]}. In such situations, it sometimes may be
|
||||
necessary to carefully parse the regexp from the start to determine
|
||||
which square brackets enclose a character alternative. For example,
|
||||
@code{[^][]]} consists of the complemented character alternative
|
||||
@code{[^][]} (which matches any single character that is not a square
|
||||
bracket), followed by a literal @samp{]}.
|
||||
|
||||
The exact rules are that at the beginning of a regexp, @samp{[} is
|
||||
special and @samp{]} not. This lasts until the first unquoted
|
||||
@samp{[}, after which we are in a character alternative; @samp{[} is
|
||||
no longer special (except when it starts a character class) but @samp{]}
|
||||
is special, unless it immediately follows the special @samp{[} or that
|
||||
@samp{[} followed by a @samp{^}. This lasts until the next special
|
||||
@samp{]} that does not end a character class. This ends the character
|
||||
alternative and restores the ordinary syntax of regular expressions;
|
||||
an unquoted @samp{[} is special again and a @samp{]} not.
|
||||
|
||||
@node Char Classes
|
||||
@subsubsection Character Classes
|
||||
@cindex character classes in regexp
|
||||
|
@ -740,8 +771,8 @@ with a symbol-constituent character.
|
|||
|
||||
@kindex invalid-regexp
|
||||
Not every string is a valid regular expression. For example, a string
|
||||
with unbalanced square brackets is invalid (with a few exceptions, such
|
||||
as @samp{[]]}), and so is a string that ends with a single @samp{\}. If
|
||||
that ends inside a character alternative without terminating @samp{]}
|
||||
is invalid, and so is a string that ends with a single @samp{\}. If
|
||||
an invalid regular expression is passed to any of the search functions,
|
||||
an @code{invalid-regexp} error is signaled.
|
||||
|
||||
|
|
|
@ -1,3 +1,40 @@
|
|||
2006-03-09 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
* gnus.texi: Markup fix.
|
||||
(Fancy Mail Splitting): Specify new feature.
|
||||
|
||||
2006-03-08 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
* gnus.texi (Fancy Mail Splitting): Improve descriptions about
|
||||
partial-words matching.
|
||||
|
||||
2006-03-07 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* emacs-mime.texi (Display Customization): Reword image/.* stuff.
|
||||
|
||||
* gnus.texi (Oort Gnus): Add note about `gnus-load'.
|
||||
(MIME Commands): Fix mm-discouraged-alternatives.
|
||||
|
||||
2006-03-08 Luc Teirlinck <teirllm@auburn.edu>
|
||||
|
||||
* search.texi (Regexps): More accurately describe which characters
|
||||
are special in which situations. Recommend _not_ to quote `]' or
|
||||
`-' when they are not special.
|
||||
|
||||
2006-03-07 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* org.texi: Version number change only.
|
||||
|
||||
2006-03-06 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-e.texi: Move from SourceForge repository to Savannah. This is
|
||||
version 7.93, which is a total rewrite from the previous edition
|
||||
1.3 for MH-E version 5.0.2, and corresponds to MH-E version 7.93.
|
||||
|
||||
2006-03-03 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* gnus.texi (Oort Gnus): Add `mm-fill-flowed'.
|
||||
|
||||
2006-03-01 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* org.texi: (Interaction): Added item about `org-mouse.el' by
|
||||
|
|
|
@ -1219,12 +1219,12 @@ prompted for a comment. Comments can also be added from Dired, and
|
|||
then also to multiple files at once, by typing @kbd{C-t c}
|
||||
(@code{tumme-dired-comment-files}).
|
||||
|
||||
Tumme also provide simple image manipulation commands, like rotating
|
||||
thumbnails and original image files. In the thumbnail buffer, type
|
||||
@kbd{L} to rotate the original image 90 degrees anti clockwise, and
|
||||
@kbd{R} to rotate it 90 degrees clockwise. This rotation will be done
|
||||
lossless (the image quality will not be reduced) and needs an external
|
||||
utility called JpegTRAN to work.
|
||||
Tumme also provides simple image manipulation commands, like
|
||||
rotating thumbnails and original image files. In the thumbnail
|
||||
buffer, type @kbd{L} to rotate the original image 90 degrees anti
|
||||
clockwise, and @kbd{R} to rotate it 90 degrees clockwise. This
|
||||
rotation will be done lossless (the image quality will not be reduced)
|
||||
and needs an external utility called JpegTRAN to work.
|
||||
|
||||
@node Misc Dired Features
|
||||
@section Other Dired Features
|
||||
|
|
|
@ -322,13 +322,14 @@ you could say something like:
|
|||
(remove "text/html" mm-automatic-display))
|
||||
@end lisp
|
||||
|
||||
Adding @code{"image/.*"} might also be useful. Spammers use it as the
|
||||
prefered part of @samp{multipart/alternative} messages, and you might
|
||||
Adding @code{"image/.*"} might also be useful. Spammers use images as
|
||||
the prefered part of @samp{multipart/alternative} messages, so you might
|
||||
not notice there are other parts. See also
|
||||
@code{gnus-buttonized-mime-types} (@pxref{MIME Commands, ,MIME Commands,
|
||||
gnus, Gnus Manual}), to which adding @code{"multipart/alternative"}
|
||||
enables you to choose manually one of two types those mails include.
|
||||
For example, you can set those variables like:
|
||||
@code{gnus-buttonized-mime-types}, @ref{MIME Commands, ,MIME Commands,
|
||||
gnus, Gnus Manual}. After adding @code{"multipart/alternative"} to
|
||||
@code{gnus-buttonized-mime-types} you can choose manually which
|
||||
alternative you'd like to view. For example, you can set those
|
||||
variables like:
|
||||
|
||||
@lisp
|
||||
(setq gnus-buttonized-mime-types
|
||||
|
|
100
man/gnus.texi
100
man/gnus.texi
|
@ -9369,10 +9369,10 @@ Display "multipart/alternative" parts as "multipart/mixed".
|
|||
Display "multipart/related" parts as "multipart/mixed".
|
||||
|
||||
If displaying "text/html" is discouraged, see
|
||||
@code{mm-discouraged-alternatives} in @ref{Display Customization,
|
||||
Display Customization, , emacs-mime, Emacs-Mime Manual}. Images or
|
||||
other material inside a "multipart/related" part might be overlooked
|
||||
when this variable is @code{nil}.
|
||||
@code{mm-discouraged-alternatives}, images or other material inside a
|
||||
"multipart/related" part might be overlooked when this variable is
|
||||
@code{nil}. @ref{Display Customization, Display Customization, ,
|
||||
emacs-mime, Emacs-Mime Manual}.
|
||||
|
||||
@vindex gnus-mime-display-multipart-as-mixed
|
||||
@item gnus-mime-display-multipart-as-mixed
|
||||
|
@ -14006,7 +14006,8 @@ splits. Here are the possible split syntaxes:
|
|||
If the split is a string, that will be taken as a group name. Normal
|
||||
regexp match expansion will be done. See below for examples.
|
||||
|
||||
@item (@var{field} @var{value} [- @var{restrict} [@dots{}] ] @var{split})
|
||||
@c Don't fold this line.
|
||||
@item (@var{field} @var{value} [- @var{restrict} [@dots{}] ] @var{split} [@var{invert-match-partial-words}])
|
||||
If the split is a list, the first element of which is a string, then
|
||||
store the message as specified by @var{split}, if header @var{field}
|
||||
(a regexp) contains @var{value} (also a regexp). If @var{restrict}
|
||||
|
@ -14014,6 +14015,11 @@ store the message as specified by @var{split}, if header @var{field}
|
|||
the end of the matched @var{value}, the @var{split} is ignored. If
|
||||
none of the @var{restrict} clauses match, @var{split} is processed.
|
||||
|
||||
The last element @var{invert-match-partial-words} is optional. If it is
|
||||
not omitted and the value is non-@code{nil}, the match-partial-words
|
||||
behavior controlled by the @code{nnmail-split-fancy-match-partial-words}
|
||||
variable (see below) will be inverted. (New in Gnus 5.10.7)
|
||||
|
||||
@item (| @var{split} @dots{})
|
||||
If the split is a list, and the first element is @code{|} (vertical
|
||||
bar), then process each @var{split} until one of them matches. A
|
||||
|
@ -14067,10 +14073,50 @@ If the split is @code{nil}, it is ignored.
|
|||
@end table
|
||||
|
||||
In these splits, @var{field} must match a complete field name.
|
||||
@var{value} must match a complete word according to the fundamental mode
|
||||
syntax table. You can use @code{.*} in the regexps to match partial
|
||||
field names or words. In other words, all @var{value}'s are wrapped in
|
||||
@samp{\<} and @samp{\>} pairs.
|
||||
|
||||
Normally, @var{value} in these splits must match a complete @emph{word}
|
||||
according to the fundamental mode syntax table. In other words, all
|
||||
@var{value}'s will be implicitly surrounded by @code{\<...\>} markers,
|
||||
which are word delimiters. Therefore, if you use the following split,
|
||||
for example,
|
||||
|
||||
@example
|
||||
(any "joe" "joemail")
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
messages sent from @samp{joedavis@@foo.org} will normally not be filed
|
||||
in @samp{joemail}. If you want to alter this behavior, you can use any
|
||||
of the following three ways:
|
||||
|
||||
@enumerate
|
||||
@item
|
||||
@vindex nnmail-split-fancy-match-partial-words
|
||||
You can set the @code{nnmail-split-fancy-match-partial-words} variable
|
||||
to non-@code{nil} in order to ignore word boundaries and instead the
|
||||
match becomes more like a grep. This variable controls whether partial
|
||||
words are matched during fancy splitting. The default value is
|
||||
@code{nil}.
|
||||
|
||||
Note that it influences all @var{value}'s in your split rules.
|
||||
|
||||
@item
|
||||
@var{value} beginning with @code{.*} ignores word boundaries in front of
|
||||
a word. Similarly, if @var{value} ends with @code{.*}, word boundaries
|
||||
in the rear of a word will be ignored. For example, the @var{value}
|
||||
@code{"@@example\\.com"} does not match @samp{foo@@example.com} but
|
||||
@code{".*@@example\\.com"} does.
|
||||
|
||||
@item
|
||||
You can set the @var{invert-match-partial-words} flag in your split
|
||||
rules of the @samp{(@var{field} @var{value} @dots{})} types,
|
||||
aforementioned in this section. If the flag is set, word boundaries on
|
||||
both sides of a word are ignored even if
|
||||
@code{nnmail-split-fancy-match-partial-words} is @code{nil}.
|
||||
Contrarily, if the flag is set, word boundaries are not ignored even if
|
||||
@code{nnmail-split-fancy-match-partial-words} is non-@code{nil}. (New
|
||||
in Gnus 5.10.7)
|
||||
@end enumerate
|
||||
|
||||
@vindex nnmail-split-abbrev-alist
|
||||
@var{field} and @var{value} can also be Lisp symbols, in that case
|
||||
|
@ -14118,25 +14164,6 @@ groups when users send to an address using different case
|
|||
(i.e. mailing-list@@domain vs Mailing-List@@Domain). The default value
|
||||
is @code{t}.
|
||||
|
||||
@vindex nnmail-split-fancy-match-partial-words
|
||||
@code{nnmail-split-fancy-match-partial-words} controls whether partial
|
||||
words are matched during fancy splitting.
|
||||
|
||||
Normally, regular expressions given in @code{nnmail-split-fancy} are
|
||||
implicitly surrounded by @code{\<...\>} markers, which are word
|
||||
delimiters. If this variable is true, they are not implicitly
|
||||
surrounded by anything.
|
||||
|
||||
@example
|
||||
(any "joe" "joemail")
|
||||
@end example
|
||||
|
||||
In this example, messages sent from @samp{joedavis@@foo.org} will
|
||||
normally not be filed in @samp{joemail}. With
|
||||
@code{nnmail-split-fancy-match-partial-words} set to @code{t},
|
||||
however, the match will happen. In effect, the requirement of a word
|
||||
boundary is removed and instead the match becomes more like a grep.
|
||||
|
||||
@findex nnmail-split-fancy-with-parent
|
||||
@code{nnmail-split-fancy-with-parent} is a function which allows you to
|
||||
split followups into the same groups their parents are in. Sometimes
|
||||
|
@ -22295,11 +22322,11 @@ default.
|
|||
@item gnus-use-toolbar
|
||||
@vindex gnus-use-toolbar
|
||||
This variable specifies the position to display the toolbar. If
|
||||
@code{nil}, don't display toolbars. If it is non-nil, it should be one
|
||||
of the symbols @code{default}, @code{top}, @code{bottom}, @code{right},
|
||||
and @code{left}. @code{default} means to use the default toolbar, the
|
||||
rest mean to display the toolbar on the place which those names show.
|
||||
The default is @code{default}.
|
||||
@code{nil}, don't display toolbars. If it is non-@code{nil}, it should
|
||||
be one of the symbols @code{default}, @code{top}, @code{bottom},
|
||||
@code{right}, and @code{left}. @code{default} means to use the default
|
||||
toolbar, the rest mean to display the toolbar on the place which those
|
||||
names show. The default is @code{default}.
|
||||
|
||||
@item gnus-toolbar-thickness
|
||||
@vindex gnus-toolbar-thickness
|
||||
|
@ -26221,6 +26248,8 @@ groups.
|
|||
A new file from Raymond Scholz @email{rscholz@@zonix.de} for deuglifying
|
||||
broken Outlook (Express) articles.
|
||||
|
||||
@c FIXME: `gnus-load' is mentioned in README, which is not included in
|
||||
@c CVS. We should find a better place for this item.
|
||||
@item
|
||||
@code{(require 'gnus-load)}
|
||||
|
||||
|
@ -26308,6 +26337,11 @@ composing messages, it is enabled by @code{use-hard-newlines}.
|
|||
Decoding format=flowed was present but not documented in earlier
|
||||
versions.
|
||||
|
||||
@item
|
||||
The option @code{mm-fill-flowed} can be used to disable treatment of
|
||||
``format=flowed'' messages. Also, flowed text is disabled when sending
|
||||
inline PGP signed messages. (New in Gnus 5.10.7)
|
||||
|
||||
@item
|
||||
Gnus supports the generation of RFC 2298 Disposition Notification requests.
|
||||
|
||||
|
|
10928
man/mh-e.texi
10928
man/mh-e.texi
File diff suppressed because it is too large
Load diff
|
@ -4,7 +4,7 @@
|
|||
@setfilename ../info/org
|
||||
@settitle Org Mode Manual
|
||||
|
||||
@set VERSION 4.07
|
||||
@set VERSION 4.08
|
||||
@set DATE March 2006
|
||||
|
||||
@dircategory Emacs
|
||||
|
|
|
@ -498,11 +498,13 @@ elisp, The Emacs Lisp Reference Manual}.
|
|||
special constructs and the rest are @dfn{ordinary}. An ordinary
|
||||
character is a simple regular expression which matches that same
|
||||
character and nothing else. The special characters are @samp{$},
|
||||
@samp{^}, @samp{.}, @samp{*}, @samp{+}, @samp{?}, @samp{[}, @samp{]} and
|
||||
@samp{\}. Any other character appearing in a regular expression is
|
||||
ordinary, unless a @samp{\} precedes it. (When you use regular
|
||||
expressions in a Lisp program, each @samp{\} must be doubled, see the
|
||||
example near the end of this section.)
|
||||
@samp{^}, @samp{.}, @samp{*}, @samp{+}, @samp{?}, @samp{[}, and
|
||||
@samp{\}. The character @samp{]} is special if it ends a character
|
||||
alternative (see later). The character @samp{-} is special inside a
|
||||
character alternative. Any other character appearing in a regular
|
||||
expression is ordinary, unless a @samp{\} precedes it. (When you use
|
||||
regular expressions in a Lisp program, each @samp{\} must be doubled,
|
||||
see the example near the end of this section.)
|
||||
|
||||
For example, @samp{f} is not a special character, so it is ordinary, and
|
||||
therefore @samp{f} is a regular expression that matches the string
|
||||
|
@ -682,6 +684,14 @@ no preceding expression on which the @samp{*} can act. It is poor practice
|
|||
to depend on this behavior; it is better to quote the special character anyway,
|
||||
regardless of where it appears.
|
||||
|
||||
As a @samp{\} is not special inside a character alternative, it can
|
||||
never remove the special meaning of @samp{-} or @samp{]}. So you
|
||||
should not quote these characters when they have no special meaning
|
||||
either. This would not clarify anything, since backslashes can
|
||||
legitimately precede these characters where they @emph{have} special
|
||||
meaning, as in @code{[^\]} (@code{"[^\\]"} for Lisp string syntax),
|
||||
which matches any single character except a backslash.
|
||||
|
||||
@node Regexp Backslash
|
||||
@section Backslash in Regular Expressions
|
||||
|
||||
|
|
|
@ -1,3 +1,48 @@
|
|||
2006-03-08 Luc Teirlinck <teirllm@auburn.edu>
|
||||
|
||||
* window.c: Declare preserve_y as a static global variable.
|
||||
(window_scroll_pixel_based): No longer declare preserve_y;
|
||||
it is global now.
|
||||
(syms_of_window): set preserve_y to -1.
|
||||
|
||||
2006-03-08 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
|
||||
|
||||
* image.c [MAC_OS] (XPutPixel): Set alpha channel bits if pixmap
|
||||
depth is 32.
|
||||
[MAC_OS] (XGetPixel): Strip off alpha channel bits if pixmap
|
||||
depth is 32.
|
||||
|
||||
2006-03-06 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* xdisp.c (handle_invisible_prop): Don't update it->position with
|
||||
a buffer position if we're in a display string.
|
||||
|
||||
2006-03-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
|
||||
|
||||
* macterm.h (MAC_AQUA_VERTICAL_SCROLL_BAR_WIDTH)
|
||||
(MAC_AQUA_SMALL_VERTICAL_SCROLL_BAR_WIDTH): New defines.
|
||||
|
||||
* macfns.c (x_default_scroll_bar_color_parameter)
|
||||
(x_set_scroll_bar_foreground, x_set_scroll_bar_background): Remove
|
||||
unnecessary prototypes.
|
||||
(x_set_scroll_bar_default_width): Use
|
||||
MAC_AQUA_VERTICAL_SCROLL_BAR_WIDTH.
|
||||
(mac_set_scroll_bar_width): New function.
|
||||
(mac_frame_parm_handlers): Set it as handler for scroll-bar-width.
|
||||
|
||||
* macterm.c (get_control_part_bounds): Fix type of return value.
|
||||
(x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
|
||||
(XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]: Don't show
|
||||
scroll bar if it is not tall enough to display scroll bar thumb.
|
||||
[USE_CARBON_EVENTS] (mac_convert_event_ref)
|
||||
(mac_handle_command_event, mac_handle_window_event)
|
||||
(mac_handle_mouse_event): Check error code of GetEventParameter.
|
||||
(convert_fn_keycode) [MAC_OSX]: Likewise.
|
||||
|
||||
2006-03-05 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* xselect.c (x_catch_errors_unwind): Fix missing return value.
|
||||
|
||||
2006-03-02 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
* frame.h (struct frame): New member n_tool_bar_rows.
|
||||
|
|
|
@ -194,7 +194,7 @@ XPutPixel (ximage, x, y, pixel)
|
|||
char *base_addr = GetPixBaseAddr (pixmap);
|
||||
short row_bytes = GetPixRowBytes (pixmap);
|
||||
|
||||
((unsigned long *) (base_addr + y * row_bytes))[x] = pixel;
|
||||
((unsigned long *) (base_addr + y * row_bytes))[x] = 0xff000000 | pixel;
|
||||
}
|
||||
else if (depth == 1)
|
||||
{
|
||||
|
@ -238,7 +238,7 @@ XGetPixel (ximage, x, y)
|
|||
char *base_addr = GetPixBaseAddr (pixmap);
|
||||
short row_bytes = GetPixRowBytes (pixmap);
|
||||
|
||||
return ((unsigned long *) (base_addr + y * row_bytes))[x];
|
||||
return ((unsigned long *) (base_addr + y * row_bytes))[x] & 0x00ffffff;
|
||||
}
|
||||
else if (depth == 1)
|
||||
{
|
||||
|
|
31
src/macfns.c
31
src/macfns.c
|
@ -210,15 +210,6 @@ void x_explicitly_set_name P_ ((struct frame *, Lisp_Object, Lisp_Object));
|
|||
void x_set_menu_bar_lines P_ ((struct frame *, Lisp_Object, Lisp_Object));
|
||||
void x_set_title P_ ((struct frame *, Lisp_Object, Lisp_Object));
|
||||
void x_set_tool_bar_lines P_ ((struct frame *, Lisp_Object, Lisp_Object));
|
||||
void x_set_scroll_bar_foreground P_ ((struct frame *, Lisp_Object,
|
||||
Lisp_Object));
|
||||
void x_set_scroll_bar_background P_ ((struct frame *, Lisp_Object,
|
||||
Lisp_Object));
|
||||
static Lisp_Object x_default_scroll_bar_color_parameter P_ ((struct frame *,
|
||||
Lisp_Object,
|
||||
Lisp_Object,
|
||||
char *, char *,
|
||||
int));
|
||||
|
||||
extern void mac_get_window_bounds P_ ((struct frame *, Rect *, Rect *));
|
||||
|
||||
|
@ -1897,7 +1888,7 @@ x_set_scroll_bar_default_width (f)
|
|||
int wid = FRAME_COLUMN_WIDTH (f);
|
||||
|
||||
#ifdef MAC_OSX
|
||||
FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = 16; /* Aqua scroll bars. */
|
||||
FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = MAC_AQUA_VERTICAL_SCROLL_BAR_WIDTH;
|
||||
FRAME_CONFIG_SCROLL_BAR_COLS (f) = (FRAME_CONFIG_SCROLL_BAR_WIDTH (f) +
|
||||
wid - 1) / wid;
|
||||
#else /* not MAC_OSX */
|
||||
|
@ -1911,6 +1902,24 @@ x_set_scroll_bar_default_width (f)
|
|||
#endif /* not MAC_OSX */
|
||||
}
|
||||
|
||||
void
|
||||
mac_set_scroll_bar_width (f, arg, oldval)
|
||||
struct frame *f;
|
||||
Lisp_Object arg, oldval;
|
||||
{
|
||||
#ifdef MAC_OSX
|
||||
if (INTEGERP (arg) && XINT (arg) > 0)
|
||||
{
|
||||
if (XINT (arg) < (MAC_AQUA_SMALL_VERTICAL_SCROLL_BAR_WIDTH
|
||||
+ MAC_AQUA_VERTICAL_SCROLL_BAR_WIDTH) / 2)
|
||||
XSETINT (arg, MAC_AQUA_SMALL_VERTICAL_SCROLL_BAR_WIDTH);
|
||||
else
|
||||
XSETINT (arg, MAC_AQUA_VERTICAL_SCROLL_BAR_WIDTH);
|
||||
}
|
||||
#endif
|
||||
x_set_scroll_bar_width (f, arg, oldval);
|
||||
}
|
||||
|
||||
|
||||
/* Subroutines of creating a frame. */
|
||||
|
||||
|
@ -4373,7 +4382,7 @@ frame_parm_handler mac_frame_parm_handlers[] =
|
|||
x_set_menu_bar_lines,
|
||||
x_set_mouse_color,
|
||||
x_explicitly_set_name,
|
||||
x_set_scroll_bar_width,
|
||||
mac_set_scroll_bar_width,
|
||||
x_set_title,
|
||||
x_set_unsplittable,
|
||||
x_set_vertical_scroll_bars,
|
||||
|
|
171
src/macterm.c
171
src/macterm.c
|
@ -4267,8 +4267,8 @@ static OSStatus set_scroll_bar_timer P_ ((EventTimerInterval));
|
|||
static int control_part_code_to_scroll_bar_part P_ ((ControlPartCode));
|
||||
static void construct_scroll_bar_click P_ ((struct scroll_bar *, int,
|
||||
struct input_event *));
|
||||
static OSErr get_control_part_bounds P_ ((ControlHandle, ControlPartCode,
|
||||
Rect *));
|
||||
static OSStatus get_control_part_bounds P_ ((ControlHandle, ControlPartCode,
|
||||
Rect *));
|
||||
static void x_scroll_bar_handle_press P_ ((struct scroll_bar *,
|
||||
ControlPartCode,
|
||||
struct input_event *));
|
||||
|
@ -4389,7 +4389,7 @@ construct_scroll_bar_click (bar, part, bufp)
|
|||
bufp->modifiers = 0;
|
||||
}
|
||||
|
||||
static OSErr
|
||||
static OSStatus
|
||||
get_control_part_bounds (ch, part_code, rect)
|
||||
ControlHandle ch;
|
||||
ControlPartCode part_code;
|
||||
|
@ -4533,7 +4533,10 @@ x_set_toolkit_scroll_bar_thumb (bar, portion, position, whole)
|
|||
ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar);
|
||||
int value, viewsize, maximum;
|
||||
|
||||
if (whole == 0 || XINT (bar->track_height) == 0)
|
||||
if (XINT (bar->track_height) == 0)
|
||||
return;
|
||||
|
||||
if (whole == 0)
|
||||
value = 0, viewsize = 1, maximum = 0;
|
||||
else
|
||||
{
|
||||
|
@ -4544,10 +4547,9 @@ x_set_toolkit_scroll_bar_thumb (bar, portion, position, whole)
|
|||
|
||||
BLOCK_INPUT;
|
||||
|
||||
if (IsControlVisible (ch)
|
||||
&& (GetControlViewSize (ch) != viewsize
|
||||
|| GetControl32BitValue (ch) != value
|
||||
|| GetControl32BitMaximum (ch) != maximum))
|
||||
if (GetControlViewSize (ch) != viewsize
|
||||
|| GetControl32BitValue (ch) != value
|
||||
|| GetControl32BitMaximum (ch) != maximum)
|
||||
{
|
||||
/* Temporarily hide the scroll bar to avoid multiple redraws. */
|
||||
SetControlVisibility (ch, false, false);
|
||||
|
@ -4594,7 +4596,12 @@ x_scroll_bar_create (w, top, left, width, height, disp_top, disp_height)
|
|||
r.bottom = disp_top + disp_height;
|
||||
|
||||
#if TARGET_API_MAC_CARBON
|
||||
ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p", width < disp_height,
|
||||
ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p",
|
||||
#if USE_TOOLKIT_SCROLL_BARS
|
||||
false,
|
||||
#else
|
||||
width < disp_height,
|
||||
#endif
|
||||
0, 0, 0, kControlScrollBarProc, (long) bar);
|
||||
#else
|
||||
ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p", width < disp_height,
|
||||
|
@ -4764,6 +4771,7 @@ XTset_vertical_scroll_bar (w, portion, whole, position)
|
|||
/* Adjustments according to Inside Macintosh to make it look nice */
|
||||
disp_top = top;
|
||||
disp_height = height;
|
||||
#ifdef MAC_OS8
|
||||
if (disp_top == 0)
|
||||
{
|
||||
disp_top = -1;
|
||||
|
@ -4777,6 +4785,7 @@ XTset_vertical_scroll_bar (w, portion, whole, position)
|
|||
|
||||
if (sb_left + sb_width == FRAME_PIXEL_WIDTH (f))
|
||||
sb_left++;
|
||||
#endif
|
||||
|
||||
/* Does the scroll bar exist yet? */
|
||||
if (NILP (w->vertical_scroll_bar))
|
||||
|
@ -4812,8 +4821,10 @@ XTset_vertical_scroll_bar (w, portion, whole, position)
|
|||
MoveControl (ch, sb_left + VERTICAL_SCROLL_BAR_WIDTH_TRIM, disp_top);
|
||||
SizeControl (ch, sb_width - VERTICAL_SCROLL_BAR_WIDTH_TRIM * 2,
|
||||
disp_height);
|
||||
#ifndef USE_TOOLKIT_SCROLL_BARS
|
||||
if (sb_width < disp_height)
|
||||
ShowControl (ch);
|
||||
#endif
|
||||
|
||||
/* Remember new settings. */
|
||||
XSETINT (bar->left, sb_left);
|
||||
|
@ -4831,30 +4842,41 @@ XTset_vertical_scroll_bar (w, portion, whole, position)
|
|||
|
||||
#ifdef USE_TOOLKIT_SCROLL_BARS
|
||||
if (NILP (bar->track_top))
|
||||
{
|
||||
ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar);
|
||||
Rect r0, r1;
|
||||
if (sb_width >= disp_height)
|
||||
{
|
||||
XSETINT (bar->track_top, 0);
|
||||
XSETINT (bar->track_height, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar);
|
||||
Rect r0, r1;
|
||||
|
||||
BLOCK_INPUT;
|
||||
BLOCK_INPUT;
|
||||
|
||||
SetControl32BitMinimum (ch, 0);
|
||||
SetControl32BitMaximum (ch, 1);
|
||||
SetControlViewSize (ch, 1);
|
||||
SetControl32BitMinimum (ch, 0);
|
||||
SetControl32BitMaximum (ch, 1);
|
||||
SetControlViewSize (ch, 1);
|
||||
|
||||
/* Move the scroll bar thumb to the top. */
|
||||
SetControl32BitValue (ch, 0);
|
||||
get_control_part_bounds (ch, kControlIndicatorPart, &r0);
|
||||
/* Move the scroll bar thumb to the top. */
|
||||
SetControl32BitValue (ch, 0);
|
||||
get_control_part_bounds (ch, kControlIndicatorPart, &r0);
|
||||
|
||||
/* Move the scroll bar thumb to the bottom. */
|
||||
SetControl32BitValue (ch, 1);
|
||||
get_control_part_bounds (ch, kControlIndicatorPart, &r1);
|
||||
/* Move the scroll bar thumb to the bottom. */
|
||||
SetControl32BitValue (ch, 1);
|
||||
get_control_part_bounds (ch, kControlIndicatorPart, &r1);
|
||||
|
||||
UnionRect (&r0, &r1, &r0);
|
||||
XSETINT (bar->track_top, r0.top);
|
||||
XSETINT (bar->track_height, r0.bottom - r0.top);
|
||||
UnionRect (&r0, &r1, &r0);
|
||||
XSETINT (bar->track_top, r0.top);
|
||||
XSETINT (bar->track_height, r0.bottom - r0.top);
|
||||
|
||||
UNBLOCK_INPUT;
|
||||
}
|
||||
/* Don't show the scroll bar if its height is not enough to
|
||||
display the scroll bar thumb. */
|
||||
if (r0.bottom - r0.top > 0)
|
||||
ShowControl (ch);
|
||||
|
||||
UNBLOCK_INPUT;
|
||||
}
|
||||
|
||||
x_set_toolkit_scroll_bar_thumb (bar, portion, position, whole);
|
||||
#else /* not USE_TOOLKIT_SCROLL_BARS */
|
||||
|
@ -8408,6 +8430,7 @@ mac_get_mouse_btn (EventRef ref)
|
|||
XTread_socket loop). */
|
||||
static Boolean mac_convert_event_ref (EventRef eventRef, EventRecord *eventRec)
|
||||
{
|
||||
OSStatus err;
|
||||
Boolean result = ConvertEventRefToEventRecord (eventRef, eventRec);
|
||||
|
||||
if (result)
|
||||
|
@ -8441,13 +8464,19 @@ static Boolean mac_convert_event_ref (EventRef eventRef, EventRecord *eventRec)
|
|||
unsigned char char_codes;
|
||||
UInt32 key_code;
|
||||
|
||||
eventRec->what = keyDown;
|
||||
GetEventParameter (eventRef, kEventParamKeyMacCharCodes, typeChar,
|
||||
NULL, sizeof (char), NULL, &char_codes);
|
||||
GetEventParameter (eventRef, kEventParamKeyCode, typeUInt32,
|
||||
NULL, sizeof (UInt32), NULL, &key_code);
|
||||
eventRec->message = char_codes | ((key_code & 0xff) << 8);
|
||||
result = 1;
|
||||
err = GetEventParameter (eventRef, kEventParamKeyMacCharCodes,
|
||||
typeChar, NULL, sizeof (char),
|
||||
NULL, &char_codes);
|
||||
if (err == noErr)
|
||||
err = GetEventParameter (eventRef, kEventParamKeyCode,
|
||||
typeUInt32, NULL, sizeof (UInt32),
|
||||
NULL, &key_code);
|
||||
if (err == noErr)
|
||||
{
|
||||
eventRec->what = keyDown;
|
||||
eventRec->message = char_codes | ((key_code & 0xff) << 8);
|
||||
result = 1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -8463,7 +8492,7 @@ static Boolean mac_convert_event_ref (EventRef eventRef, EventRecord *eventRec)
|
|||
if (result)
|
||||
{
|
||||
/* Need where and when. */
|
||||
UInt32 mods;
|
||||
UInt32 mods = 0;
|
||||
|
||||
GetEventParameter (eventRef, kEventParamMouseLocation, typeQDPoint,
|
||||
NULL, sizeof (Point), NULL, &eventRec->where);
|
||||
|
@ -8873,8 +8902,7 @@ mac_handle_command_event (next_handler, event, data)
|
|||
EventRef event;
|
||||
void *data;
|
||||
{
|
||||
OSStatus result;
|
||||
OSErr err;
|
||||
OSStatus result, err;
|
||||
HICommand command;
|
||||
Lisp_Object class_key, id_key, binding;
|
||||
|
||||
|
@ -8882,10 +8910,10 @@ mac_handle_command_event (next_handler, event, data)
|
|||
if (result != eventNotHandledErr)
|
||||
return result;
|
||||
|
||||
GetEventParameter (event, kEventParamDirectObject, typeHICommand, NULL,
|
||||
sizeof (HICommand), NULL, &command);
|
||||
err = GetEventParameter (event, kEventParamDirectObject, typeHICommand,
|
||||
NULL, sizeof (HICommand), NULL, &command);
|
||||
|
||||
if (command.commandID == 0)
|
||||
if (err != noErr || command.commandID == 0)
|
||||
return eventNotHandledErr;
|
||||
|
||||
/* A HICommand event is mapped to an Apple event whose event class
|
||||
|
@ -8939,12 +8967,14 @@ mac_handle_window_event (next_handler, event, data)
|
|||
void *data;
|
||||
{
|
||||
WindowPtr wp;
|
||||
OSStatus result;
|
||||
OSStatus result, err;
|
||||
UInt32 attributes;
|
||||
XSizeHints *size_hints;
|
||||
|
||||
GetEventParameter (event, kEventParamDirectObject, typeWindowRef,
|
||||
NULL, sizeof (WindowPtr), NULL, &wp);
|
||||
err = GetEventParameter (event, kEventParamDirectObject, typeWindowRef,
|
||||
NULL, sizeof (WindowPtr), NULL, &wp);
|
||||
if (err != noErr)
|
||||
return eventNotHandledErr;
|
||||
|
||||
switch (GetEventKind (event))
|
||||
{
|
||||
|
@ -8961,8 +8991,11 @@ mac_handle_window_event (next_handler, event, data)
|
|||
if (result != eventNotHandledErr)
|
||||
return result;
|
||||
|
||||
GetEventParameter (event, kEventParamAttributes, typeUInt32,
|
||||
NULL, sizeof (UInt32), NULL, &attributes);
|
||||
err = GetEventParameter (event, kEventParamAttributes, typeUInt32,
|
||||
NULL, sizeof (UInt32), NULL, &attributes);
|
||||
if (err != noErr)
|
||||
break;
|
||||
|
||||
size_hints = FRAME_SIZE_HINTS (mac_window_to_frame (wp));
|
||||
if ((attributes & kWindowBoundsChangeUserResize)
|
||||
&& ((size_hints->flags & (PResizeInc | PBaseSize | PMinSize))
|
||||
|
@ -8971,9 +9004,12 @@ mac_handle_window_event (next_handler, event, data)
|
|||
Rect bounds;
|
||||
int width, height;
|
||||
|
||||
GetEventParameter (event, kEventParamCurrentBounds,
|
||||
typeQDRectangle,
|
||||
NULL, sizeof (Rect), NULL, &bounds);
|
||||
err = GetEventParameter (event, kEventParamCurrentBounds,
|
||||
typeQDRectangle, NULL, sizeof (Rect),
|
||||
NULL, &bounds);
|
||||
if (err != noErr)
|
||||
break;
|
||||
|
||||
width = bounds.right - bounds.left;
|
||||
height = bounds.bottom - bounds.top;
|
||||
|
||||
|
@ -9022,7 +9058,7 @@ mac_handle_mouse_event (next_handler, event, data)
|
|||
EventRef event;
|
||||
void *data;
|
||||
{
|
||||
OSStatus result;
|
||||
OSStatus result, err;
|
||||
|
||||
switch (GetEventKind (event))
|
||||
{
|
||||
|
@ -9038,22 +9074,31 @@ mac_handle_mouse_event (next_handler, event, data)
|
|||
if (result != eventNotHandledErr || read_socket_inev == NULL)
|
||||
return result;
|
||||
|
||||
GetEventParameter (event, kEventParamWindowRef, typeWindowRef,
|
||||
NULL, sizeof (WindowRef), NULL, &wp);
|
||||
err = GetEventParameter (event, kEventParamWindowRef, typeWindowRef,
|
||||
NULL, sizeof (WindowRef), NULL, &wp);
|
||||
if (err != noErr)
|
||||
break;
|
||||
|
||||
f = mac_window_to_frame (wp);
|
||||
if (f != mac_focus_frame (&one_mac_display_info))
|
||||
break;
|
||||
|
||||
GetEventParameter (event, kEventParamMouseWheelAxis,
|
||||
typeMouseWheelAxis, NULL,
|
||||
sizeof (EventMouseWheelAxis), NULL, &axis);
|
||||
if (axis != kEventMouseWheelAxisY)
|
||||
err = GetEventParameter (event, kEventParamMouseWheelAxis,
|
||||
typeMouseWheelAxis, NULL,
|
||||
sizeof (EventMouseWheelAxis), NULL, &axis);
|
||||
if (err != noErr || axis != kEventMouseWheelAxisY)
|
||||
break;
|
||||
|
||||
GetEventParameter (event, kEventParamMouseWheelDelta, typeSInt32,
|
||||
NULL, sizeof (SInt32), NULL, &delta);
|
||||
GetEventParameter (event, kEventParamMouseLocation, typeQDPoint,
|
||||
NULL, sizeof (Point), NULL, &point);
|
||||
err = GetEventParameter (event, kEventParamMouseWheelDelta,
|
||||
typeSInt32, NULL, sizeof (SInt32),
|
||||
NULL, &delta);
|
||||
if (err != noErr)
|
||||
break;
|
||||
err = GetEventParameter (event, kEventParamMouseLocation,
|
||||
typeQDPoint, NULL, sizeof (Point),
|
||||
NULL, &point);
|
||||
if (err != noErr)
|
||||
break;
|
||||
read_socket_inev->kind = WHEEL_EVENT;
|
||||
read_socket_inev->code = 0;
|
||||
read_socket_inev->modifiers =
|
||||
|
@ -9515,13 +9560,13 @@ convert_fn_keycode (EventRef eventRef, int keyCode, int *newCode)
|
|||
Fn modifier. That's why we need the table.
|
||||
|
||||
*/
|
||||
|
||||
OSStatus err;
|
||||
UInt32 mods = 0;
|
||||
if (!NILP(Vmac_function_modifier))
|
||||
{
|
||||
GetEventParameter (eventRef, kEventParamKeyModifiers, typeUInt32, NULL,
|
||||
sizeof (UInt32), NULL, &mods);
|
||||
if (mods & kEventKeyModifierFnMask)
|
||||
err = GetEventParameter (eventRef, kEventParamKeyModifiers, typeUInt32,
|
||||
NULL, sizeof (UInt32), NULL, &mods);
|
||||
if (err != noErr && mods & kEventKeyModifierFnMask)
|
||||
{ *newCode = fn_keycode_to_xkeysym_table [keyCode & 0x7f];
|
||||
|
||||
return (*newCode != 0);
|
||||
|
|
|
@ -519,6 +519,10 @@ struct scroll_bar {
|
|||
text from glomming up against the scroll bar */
|
||||
#define VERTICAL_SCROLL_BAR_WIDTH_TRIM (0)
|
||||
|
||||
/* Variations of possible Aqua scroll bar width. */
|
||||
#define MAC_AQUA_VERTICAL_SCROLL_BAR_WIDTH (15)
|
||||
#define MAC_AQUA_SMALL_VERTICAL_SCROLL_BAR_WIDTH (11)
|
||||
|
||||
/* Size of hourglass controls */
|
||||
#define HOURGLASS_WIDTH 16
|
||||
#define HOURGLASS_HEIGHT 16
|
||||
|
|
|
@ -215,6 +215,10 @@ Lisp_Object Vscroll_preserve_screen_position;
|
|||
|
||||
int window_deletion_count;
|
||||
|
||||
/* Used by the function window_scroll_pixel_based */
|
||||
|
||||
static int preserve_y;
|
||||
|
||||
#if 0 /* This isn't used anywhere. */
|
||||
/* Nonzero means we can split a frame even if it is "unsplittable". */
|
||||
static int inhibit_frame_unsplittable;
|
||||
|
@ -4724,7 +4728,6 @@ window_scroll_pixel_based (window, n, whole, noerror)
|
|||
int this_scroll_margin;
|
||||
/* True if we fiddled the window vscroll field without really scrolling. */
|
||||
int vscrolled = 0;
|
||||
static int preserve_y = -1;
|
||||
|
||||
SET_TEXT_POS_FROM_MARKER (start, w->start);
|
||||
|
||||
|
@ -7022,6 +7025,8 @@ syms_of_window ()
|
|||
minibuf_selected_window = Qnil;
|
||||
staticpro (&minibuf_selected_window);
|
||||
|
||||
preserve_y = -1;
|
||||
|
||||
DEFVAR_LISP ("temp-buffer-show-function", &Vtemp_buffer_show_function,
|
||||
doc: /* Non-nil means call as function to display a help buffer.
|
||||
The function is called with one argument, the buffer to be displayed.
|
||||
|
|
|
@ -3661,8 +3661,11 @@ handle_invisible_prop (it)
|
|||
the invisible text. Otherwise the cursor would be
|
||||
placed _after_ the ellipsis when the point is after the
|
||||
first invisible character. */
|
||||
it->position.charpos = IT_CHARPOS (*it) - 1;
|
||||
it->position.bytepos = CHAR_TO_BYTE (it->position.charpos);
|
||||
if (!STRINGP (it->object))
|
||||
{
|
||||
it->position.charpos = IT_CHARPOS (*it) - 1;
|
||||
it->position.bytepos = CHAR_TO_BYTE (it->position.charpos);
|
||||
}
|
||||
setup_for_ellipsis (it, 0);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -620,6 +620,7 @@ x_catch_errors_unwind (dummy)
|
|||
BLOCK_INPUT;
|
||||
x_uncatch_errors ();
|
||||
UNBLOCK_INPUT;
|
||||
return Qnil;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue