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:
Miles Bader 2006-03-09 07:15:37 +00:00
commit b1af5d6a27
72 changed files with 9536 additions and 3832 deletions

View file

@ -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.

View file

@ -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:

View file

@ -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
View file

@ -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
;;

View file

@ -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.

View file

@ -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.

View file

@ -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

View file

@ -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:

View file

@ -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

View file

@ -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

View file

@ -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@

View file

@ -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.

View file

@ -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:

View file

@ -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".

View file

@ -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)

View file

@ -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.

View file

@ -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))))

View file

@ -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:

View file

@ -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

View file

@ -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 ""))))

View file

@ -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)

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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))

View file

@ -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)))

View file

@ -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))

View file

@ -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.

View file

@ -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

View file

@ -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."

View file

@ -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)

View file

@ -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.

View file

@ -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

View file

@ -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))

View file

@ -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'.

View file

@ -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

View file

@ -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))

View file

@ -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))

View file

@ -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:

View file

@ -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)

View file

@ -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

View file

@ -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))

View file

@ -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)

View file

@ -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.

View file

@ -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")

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -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")

View file

@ -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")

View file

@ -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.

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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.

File diff suppressed because it is too large Load diff

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -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)
{

View file

@ -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,

View file

@ -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);

View file

@ -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

View file

@ -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.

View file

@ -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);
}
}

View file

@ -620,6 +620,7 @@ x_catch_errors_unwind (dummy)
BLOCK_INPUT;
x_uncatch_errors ();
UNBLOCK_INPUT;
return Qnil;
}