mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 17:24:23 +00:00
Merged from emacs@sv.gnu.org
Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-216 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-217 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-218 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-219 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-220 Improve tq.el. * emacs@sv.gnu.org/emacs--devo--0--patch-221 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-222 Update from CVS: src/puresize.h (PURESIZE_RATIO): Reduce to 10/6. * emacs@sv.gnu.org/emacs--devo--0--patch-223 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-224 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-225 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-226 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-227 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-228 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-229 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-230 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-231 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-232 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-233 Update from CVS: lisp/progmodes/python.el (python-mode): Fix typo. * emacs@sv.gnu.org/gnus--rel--5.10--patch-84 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-85 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-86 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-550
This commit is contained in:
commit
447b0165ac
120 changed files with 3834 additions and 1854 deletions
|
|
@ -37,6 +37,9 @@ Assigned to Bill Wohler <wohler@newt.com>.
|
|||
|
||||
** Is there a basic problem with cl-byte-compile-compiler-macro?
|
||||
|
||||
** Recalculate the tool bar height after changing the default font.
|
||||
(Bug report by Yamamoto Mistuharu, 31 Mar 2006)
|
||||
|
||||
** 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)
|
||||
|
|
@ -76,7 +79,7 @@ you're going to handle.
|
|||
DIRECTORY STATUS IN CHARGE
|
||||
--------- ------ ---------
|
||||
etc (and subdirs) done Thien-Thi Nguyen (ttn(@gnu.org))
|
||||
leim working Kenichi Handa
|
||||
leim done Kenichi Handa
|
||||
lib-src done ttn
|
||||
lisp done ttn
|
||||
lisp/calc done Jay Belanger
|
||||
|
|
@ -85,8 +88,8 @@ lisp/emacs-lisp done ttn
|
|||
lisp/emulation done ttn
|
||||
lisp/eshell done ttn
|
||||
lisp/gnus done Romain Francoise
|
||||
lisp/international working Kenichi Handa
|
||||
lisp/language working Kenichi Handa
|
||||
lisp/international done Kenichi Handa
|
||||
lisp/language done Kenichi Handa
|
||||
lisp/mail done ttn
|
||||
lisp/mh-e done Bill Wohler
|
||||
lisp/net done ttn
|
||||
|
|
|
|||
|
|
@ -1,3 +1,20 @@
|
|||
2006-04-18 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* gnus-refcard.tex: Bump version to 5.11. Remove duplicate
|
||||
\def's. Update date.
|
||||
|
||||
2006-04-18 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* MORE.STUFF: Add MH-E.
|
||||
|
||||
2006-04-18 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* orgcard.tex: Version number change only.
|
||||
|
||||
2006-04-12 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* PROBLEMS (C-SPC fails ...): Explicitly say fcitx in the header.
|
||||
|
||||
2006-04-11 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* orgcard.tex: (section{Tables}): Document column narrowing.
|
||||
|
|
@ -19,7 +36,7 @@
|
|||
2006-03-28 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* images/README: Update with following information.
|
||||
|
||||
|
||||
* images/data-save.xpm, images/mail/flag-for-followup.xpm:
|
||||
* images/zoom-in.xpm, images/zoom-out.xpm: New images from GNOME
|
||||
2.12.
|
||||
|
|
@ -28,27 +45,27 @@
|
|||
* images/mail/flag-for-followup.pbm, images/mail/inbox.pbm:
|
||||
* images/mail/move.pbm, images/next-page.pbm, images/zoom-out.pbm:
|
||||
New bitmaps for new images.
|
||||
|
||||
* images/refresh.xpm, images/sort-ascending.xpm,
|
||||
|
||||
* images/refresh.xpm, images/sort-ascending.xpm,
|
||||
* images/sort-descending.xpm: Update with GTK 2.x images. Note
|
||||
that the default GTK icons are not overridden by the GNOME theme
|
||||
due to a bug which was fixed in GNOME 2.15. Once GNOME 2.16 is in
|
||||
wide circulation, then the GTK icons should be replaced with the
|
||||
equivalent GNOME icons. Until then, we should be consistent with
|
||||
GTK first, then GNOME.
|
||||
|
||||
* images/mail/repack.xpm, images/mail/reply-from.xpm:
|
||||
|
||||
* images/mail/repack.xpm, images/mail/reply-from.xpm:
|
||||
* images/mail/reply-to.xpm, images/search-replace.xpm:
|
||||
* images/separator.xpm, images/show.xpm: Update custom icons to be
|
||||
closer to their GNOME counterparts.
|
||||
|
||||
* images/attach.pbm, images/exit.pbm, images/mail/compose.pbm:
|
||||
|
||||
* images/attach.pbm, images/exit.pbm, images/mail/compose.pbm:
|
||||
* images/mail/repack.pbm, images/mail/reply-all.pbm:
|
||||
* images/mail/reply-from.pbm, images/mail/reply-to.pbm:
|
||||
* images/mail/reply.pbm, images/mail/send.pbm, images/show.pbm:
|
||||
* images/search-replace.pbm: Update bitmaps.
|
||||
|
||||
* images/execute.pbm, images/execute.xpm, images/fld-open.pbm:
|
||||
|
||||
* images/execute.pbm, images/execute.xpm, images/fld-open.pbm:
|
||||
* images/fld-open.xpm, images/highlight.pbm, images/highlight.xpm:
|
||||
* images/mail.pbm, images/mail.xpm, images/mail/alias.pbm:
|
||||
* images/mail/alias.xpm, images/mail/refile.pbm:
|
||||
|
|
|
|||
|
|
@ -71,6 +71,8 @@ You might find bug-fixes or enhancements in these places.
|
|||
|
||||
* Ispell: <URL:http://www.eng.utah.edu/~kstevens/ispell-page.html>
|
||||
|
||||
* MH-E: <URL:http://mh-e.sourceforge.net/>
|
||||
|
||||
* PC Selection: <URL:ftp://ftp.thp.uni-duisburg.de/pub/source/elisp/>
|
||||
|
||||
* PS mode: <URL:http://odur.let.rug.nl/%7Ekleiweg/postscript/>
|
||||
|
|
|
|||
|
|
@ -991,7 +991,7 @@ xmodmap command to the xdm setup script for that display.
|
|||
|
||||
Use the shell command `xset bc' to make the old X Menu package work.
|
||||
|
||||
*** C-SPC fails to work on Fedora GNU/Linux (or with some input method).
|
||||
*** C-SPC fails to work on Fedora GNU/Linux (or with fcitx input method).
|
||||
|
||||
Fedora Core 4 steals the C-SPC key by default for the `iiimx' program
|
||||
which is the input method for some languages. It blocks Emacs users
|
||||
|
|
|
|||
14
etc/TODO
14
etc/TODO
|
|
@ -9,12 +9,14 @@ to the FSF.
|
|||
|
||||
* Small but important fixes needed in existing features:
|
||||
|
||||
** whitespace-cleanup should work only on the region if the region is active.
|
||||
|
||||
** Distribute a bar cursor of width > 1 evenly between the two glyphs
|
||||
on each side of the bar (what to do at the edges?).
|
||||
|
||||
** Make vc-checkin avoid reverting the buffer if has not changed after
|
||||
the checkin. Comparing (md5 BUFFER) to (md5 FILE) should be enough.
|
||||
|
||||
** Make vc-annotate show place the cursor in the annotate buffer at the
|
||||
same line as the current buffer.
|
||||
|
||||
** buffer-offer-save should be a permanent local.
|
||||
|
||||
** revert-buffer should eliminate overlays and the mark.
|
||||
|
|
@ -69,7 +71,7 @@ to the FSF.
|
|||
** Redesign the load-history data structure so it can cope better
|
||||
with evaluating definitions of the same function from different files,
|
||||
recording which file the latest definition came from.
|
||||
|
||||
|
||||
* Important features:
|
||||
|
||||
** Provide user-friendly ways to list all available font families,
|
||||
|
|
@ -158,7 +160,7 @@ typically due to pilot errors and should thus be in debug-ignored-errors.
|
|||
** Emacs Lisp mode could put an overlay on the defun for every
|
||||
function that has advice. The overlay could have `after-text' like "
|
||||
[Function has advice]". It might look like
|
||||
(defun foo [Function has advice] (x y)
|
||||
(defun foo [Function has advice] (x y)
|
||||
The overlay could also be a button that you could use to view the advice.
|
||||
|
||||
** ange-ftp
|
||||
|
|
@ -261,7 +263,7 @@ typically due to pilot errors and should thus be in debug-ignored-errors.
|
|||
** Highlight rectangles (`mouse-track-rectangle-p' in XEmacs). Already in CUA,
|
||||
but it's a valuable feature worth making more general.
|
||||
|
||||
** Support simultaneous tty and X frames. [See the multi-tty branch of Emacs
|
||||
** Support simultaneous tty and X frames. [See the multi-tty branch of Emacs
|
||||
at http://lorentey.hu/project/emacs.]
|
||||
|
||||
** Provide MIME support for Rmail using the Gnus MIME library. [Maybe
|
||||
|
|
|
|||
|
|
@ -76,8 +76,9 @@
|
|||
% \input{gnusref} % % % % % % % % % % % % % % % % % % % % % % % % % %
|
||||
%% include file for the Gnus refcard and booklet
|
||||
|
||||
\def\progver{5.10}\def\refver{5.10-2} % program and refcard versions
|
||||
\def\date{Mar, 2005}
|
||||
\def\progver{5.11} % program version
|
||||
% \def\refver{5.10-2} % refcard version (not used)
|
||||
\def\date{April, 2006}
|
||||
\def\author{Gnus Bugfixing Girls + Boys $<$bugs@gnus.org$>$}
|
||||
|
||||
%%
|
||||
|
|
@ -1267,10 +1268,6 @@
|
|||
|
||||
\begin{document}
|
||||
|
||||
\def\progver{5.10}\def\refver{5.10-1} % program and refcard versions
|
||||
\def\date{Jan 10th, 2004}
|
||||
\def\author{Gnus Bugfixing Girls + Boys $<$bugs@gnus.org$>$}
|
||||
|
||||
\ifthenelse{\isundefined{\booklettrue}}{ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\raggedbottom\raggedright
|
||||
\twocolumn
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
% Reference Card for Org Mode
|
||||
\def\orgversionnumber{4.21}
|
||||
\def\orgversionnumber{4.24}
|
||||
\def\year{2006}
|
||||
%
|
||||
%**start of header
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# Makefile for leim subdirectory in GNU Emacs.
|
||||
# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
|
||||
# Free Software Foundation, Inc.
|
||||
# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
|
|
@ -47,7 +47,7 @@ BUILT-EMACS = ${dot}${dot}/src/emacs
|
|||
buildlisppath=${srcdir}/${dot}${dot}/lisp
|
||||
|
||||
# How to run Emacs.
|
||||
RUN-EMACS = EMACSLOADPATH=$(buildlisppath) \
|
||||
RUN-EMACS = EMACSLOADPATH=$(buildlisppath) LC_ALL=C\
|
||||
${BUILT-EMACS} -batch --no-init-file --no-site-file --multibyte
|
||||
|
||||
# Subdirectories to be made if ${srcdir} is different from the current
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; quail/croatian.el -- Quail package for inputing Croatian -*-coding: iso-8859-2;-*-
|
||||
|
||||
;; Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Hrvoje Nik¹iæ <hniksic@xemacs.org>,
|
||||
;; modeled after czech.el by Milan Zamazal.
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
;;; cyril-jis.el --- Quail package for inputting JISX0208 Cyrillic letters
|
||||
|
||||
;; Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1997, 2005
|
||||
;; Copyright (C) 1997
|
||||
;; National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
;; Registration Number H14PRO021
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
;; Copyright (C) 1997, 1998, 2001, 2002, 2003, 2004, 2005
|
||||
;; Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1997, 2005
|
||||
;; Copyright (C) 1997, 2003
|
||||
;; National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
;; Registration Number H14PRO021
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; hangul3.el --- Quail package for inputting Korean Hangul characters -*-coding: iso-2022-7bit;-*-
|
||||
|
||||
;; Copyright (C) 1997, 1998, 2001 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1997, 1998, 2001, 2002 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1997, 2002
|
||||
;; National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
;; Registration Number H14PRO021
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
;;; hanja.el --- Quail-package for Korean Hanja (KSC5601) -*-coding: iso-2022-7bit;-*-
|
||||
|
||||
;; Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1997
|
||||
;; National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
;; Registration Number H14PRO021
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
;;; japanese.el --- Quail package for inputting Japanese -*-coding: iso-2022-7bit;-*-
|
||||
|
||||
;; Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2005
|
||||
;; National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
;; Registration Number H14PRO021
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
;;; latin-alt.el --- Quail package for inputting various European characters -*-coding: iso-2022-7bit;-*-
|
||||
|
||||
;; Copyright (C) 1997, 1998, 2001, 2002 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1997, 1999
|
||||
;; Copyright (C) 1999
|
||||
;; National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
;; Registration Number H14PRO021
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
;;; latin-ltx.el --- Quail package for TeX-style input -*-coding: utf-8;-*-
|
||||
|
||||
;; Copyright (C) 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2001
|
||||
;; Copyright (C) 2001, 2005
|
||||
;; National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
;; Registration Number H14PRO021
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
;;; latin-post.el --- Quail packages for inputting various European characters -*-coding: iso-2022-7bit;-*-
|
||||
|
||||
;; Copyright (C) 1997, 1998, 2001, 2002 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1997
|
||||
;; Copyright (C) 1997, 1999
|
||||
;; National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
;; Registration Number H14PRO021
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
;;; latin-pre.el --- Quail packages for inputting various European characters -*-coding: iso-2022-7bit;-*-
|
||||
|
||||
;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
|
||||
;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
;; Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1997, 1999, 2005
|
||||
;; Copyright (C) 1997, 1998, 1999, 2000, 2005
|
||||
;; National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
;; Registration Number H14PRO021
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; pypunct-b5.el --- Quail packages for Chinese (pinyin + extra symbols)
|
||||
|
||||
;; Copyright (C) 1997, 2000
|
||||
;; Copyright (C) 1997, 2000, 2003
|
||||
;; National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
;; Registration Number H14PRO021
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
;;; tibetan.el --- Quail package for inputting Tibetan characters
|
||||
|
||||
;; Copyright (C) 1995 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1995, 1998, 1999, 2000
|
||||
;; Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1997, 1998, 1999, 2000
|
||||
;; National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
;; Registration Number H14PRO021
|
||||
|
||||
|
|
|
|||
224
lisp/ChangeLog
224
lisp/ChangeLog
|
|
@ -1,3 +1,225 @@
|
|||
2006-04-18 Dan Nicolaescu <dann@ics.uci.edu>
|
||||
|
||||
* progmodes/python.el (python-mode): Fix typo.
|
||||
|
||||
2006-04-18 J.D. Smith <jdsmith@as.arizona.edu>
|
||||
|
||||
* comint.el (comint-previous-input): Don't clobber input line
|
||||
when moving off either end of the input history ring.
|
||||
(comint-delete-input): New function, used by
|
||||
`comint-previous-input' and others.
|
||||
(comint-previous-matching-input): Use
|
||||
`coming-delete-input'. Save the partial input if leaving the
|
||||
edit line. Goto point-max before deleting input to avoid
|
||||
partial input fragments hanging around.
|
||||
(comint-restore-input): New function, used by
|
||||
`comint-previous-input', and bound to "C-c C-j".
|
||||
|
||||
2006-04-18 Luc Teirlinck <teirllm@auburn.edu>
|
||||
|
||||
* imenu.el (imenu--index-alist): Balance parentheses.
|
||||
|
||||
2006-04-18 Dan Nicolaescu <dann@ics.uci.edu>
|
||||
|
||||
* progmodes/python.el (python-mode): Add support for
|
||||
hs-minor-mode.
|
||||
|
||||
2006-04-19 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* abbrev.el (read-abbrev-file): Use abbrev-file-name if optional
|
||||
file is nil.
|
||||
|
||||
2006-04-18 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* tooltip.el (tooltip-mode, tooltip-use-echo-area): Doc fixes.
|
||||
|
||||
* imenu.el (imenu-create-index-function, imenu--index-alist)
|
||||
(imenu--last-menubar-index-alist, imenu--make-index-alist)
|
||||
(imenu-default-create-index-function, imenu--generic-function):
|
||||
Doc fixes.
|
||||
|
||||
* image-mode.el (image-toggle-display): Handle tar and arc subfiles.
|
||||
|
||||
* help-mode.el (help-mode): Set view-exit-action to delete window.
|
||||
|
||||
* env.el (setenv): Get rid of arg UNSET. Interactive unsetting
|
||||
now works by passing nil as arg.
|
||||
|
||||
* apropos.el (apropos-print): Don't do where-is on self-insert-command.
|
||||
|
||||
* abbrev.el (edit-abbrevs-redefine): Temporarily widen.
|
||||
(read-abbrev-file): Provide default when reading filename.
|
||||
|
||||
* files.el (enable-local-variables): Allow :all as value.
|
||||
(hack-local-variables): Implement that value.
|
||||
(safe-local-variable-values, safe-local-eval-forms)
|
||||
(enable-local-variables): Mark as risky.
|
||||
(find-file-visit-truename, kept-old-versions): Mark safe.
|
||||
|
||||
* time-stamp.el (time-stamp-format, time-stamp-line-limit)
|
||||
(time-stamp-start, time-stamp-end, time-stamp-inserts-lines)
|
||||
(time-stamp-count, time-stamp-pattern): Add safe-local-variable prop.
|
||||
|
||||
2006-04-18 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* progmodes/tcl.el (tcl-send-string, tcl-send-region):
|
||||
Use forward-line so as to get to BOL even in the presence of fields.
|
||||
(tcl-eval-region): Strip surrounding space to avoid multiple prompts
|
||||
in return.
|
||||
(inferior-tcl): Tell tclsh to work in interactive mode.
|
||||
|
||||
* complete.el (partial-completion-mode):
|
||||
Use 'choose-completion-string-functions to make sure that
|
||||
choose-completion fills the minibuffer properly.
|
||||
|
||||
* complete.el (PC-old-read-file-name-internal): Remove.
|
||||
(PC-read-include-file-name-internal): Remove. Turn it into an advice
|
||||
of read-file-name-internal.
|
||||
(partial-completion-mode): Enable/disable this advice.
|
||||
|
||||
2006-04-18 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* net/tramp.el (tramp-completion-file-name-handler): Revert change
|
||||
of 2006-04-17.
|
||||
|
||||
2006-04-18 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* textmodes/org.el (org-insert-heading): Insert heading before
|
||||
current if at beginning of line.
|
||||
(org-todo, org-date): New faces.
|
||||
(org-table-align): Make sure tooltip window contains full text.
|
||||
(org-no-properties): New defsubst.
|
||||
(org-set-font-lock-defaults): Use new faces.
|
||||
|
||||
2006-04-18 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
* progmodes/gud.el (gud-speedbar-item-info): Display frame address
|
||||
for root variables.
|
||||
|
||||
* progmodes/gdb-ui.el (gdb-pc-address): Rename from gdb-frame-address.
|
||||
(gdb-frame-address): Re-use to identify frame for watch expression.
|
||||
(gdb-var-list, gdb-var-create-handler): Add frame address for root
|
||||
variables.
|
||||
(gdb-init-1, gdb-source, gdb-post-prompt, )
|
||||
(gdb-assembler-custom, gdb-invalidate-assembler): Use gdb-pc-address.
|
||||
(gdb-frame-handler): Get gdb-frame-address.
|
||||
|
||||
2006-04-17 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
Sync with Tramp 2.0.53.
|
||||
|
||||
* net/tramp.el (tramp-completion-mode): ?\t has event-modifier
|
||||
'control. Reported by Matthias F,bv(Brste <slashdevslashnull@gmx.net>.
|
||||
(tramp-completion-file-name-handler): Add autoload cookie for
|
||||
adding to `file-name-handler-alist'.
|
||||
|
||||
* net/tramp-smb.el (tramp-smb-wait-for-output): Wait always for
|
||||
the prompt. If it returns earlier (when detecting an error
|
||||
message), the rest of the output will merge accidently with the
|
||||
output of the next command. Reported by M Jared Finder
|
||||
<jared@hpalace.com>.
|
||||
|
||||
* net/tramp-vc.el (vc-user-login-name): Wrap defadvice with a test
|
||||
for `process-file', in order to let it work for older Emacsen too.
|
||||
|
||||
2006-04-17 Ralf Angeli <angeli@iwi.uni-sb.de>
|
||||
|
||||
* textmodes/tex-mode.el (tex-font-lock-match-suscript): New function.
|
||||
(tex-font-lock-keywords-3): Use it.
|
||||
|
||||
2006-04-16 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* newcomment.el (comment-add): New function.
|
||||
(comment-region-default, comment-dwim): Use it.
|
||||
|
||||
2006-04-15 Michael Olson <mwolson@gnu.org>
|
||||
|
||||
* emacs-lisp/tq.el: Improve comments.
|
||||
(tq-queue-head-question): New accessor function.
|
||||
(tq-queue-head-regexp, tq-queue-head-closure, tq-queue-head-fn):
|
||||
Update for modified queue structure.
|
||||
(tq-queue-add): Accept `question' argument.
|
||||
(tq-queue-pop): If a question is pending, send it.
|
||||
(tq-enqueue): Accept new optional argument `delay-question'.
|
||||
If this is non-nil, and at least one other question is pending a
|
||||
response, queue the question rather than sending it immediately.
|
||||
|
||||
2006-04-15 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
|
||||
|
||||
* calendar/appt.el (appt-add): Check whether an appointment is
|
||||
already present in appt-time-msg-list. Simplify code.
|
||||
|
||||
2006-04-14 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* progmodes/cc-langs.el (c-mode-menu):
|
||||
Don't presume c-subword-mode is bound.
|
||||
|
||||
2006-04-13 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* cus-edit.el (customize-package-emacs-version-alist): Update docstring.
|
||||
(customize-package-emacs-version): Use cdr instead of cadr now
|
||||
that alists use dotted pairs.
|
||||
|
||||
* custom.el (defcustom): Fix docstring for :package-version.
|
||||
|
||||
2006-04-13 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* net/tramp.el (tramp-display-shell-command-buffer): New defvar.
|
||||
(tramp-handle-shell-command): Display output buffer only when
|
||||
`tramp-display-shell-command-buffer' is true.
|
||||
(tramp-handle-process-file): Set `tramp-display-shell-command-buffer'.
|
||||
|
||||
2006-04-13 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* textmodes/org.el (org-set-autofill-regexps): Set only the local
|
||||
values of `adaptive-fill-regexp' and `adaptive-fill-function'.
|
||||
|
||||
2006-04-13 Romain Francoise <romain@orebokech.com>
|
||||
|
||||
* pcvs-parse.el (cvs-parse-table): Use `with-temp-buffer' to avoid
|
||||
leaving temporary .cvsignore buffers behind.
|
||||
|
||||
2006-04-13 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* textmodes/org.el: (org-set-regexps-and-options)
|
||||
(org-get-current-options): Better names for the startup folding
|
||||
options.
|
||||
|
||||
2006-04-13 Thien-Thi Nguyen <ttn@gnu.org>
|
||||
|
||||
* vc.el (vc-annotate): Arrange for point to end up at the same
|
||||
line number as in the original, but only when using a new buffer.
|
||||
|
||||
2006-04-12 Davis Herring <herring@lanl.gov> (tiny change)
|
||||
|
||||
* files.el (hack-one-local-variable-eval-safep):
|
||||
Recognize `edebug-form-spec' for `put', but only if it passes
|
||||
`edebug-basic-spec'. Generalize `put' handling.
|
||||
|
||||
* emacs-lisp/edebug.el (edebug-basic-spec): New function for
|
||||
vetting file-local form specs.
|
||||
|
||||
* allout.el (allout-layout): Autoload its `safe-local-variable'
|
||||
property.
|
||||
|
||||
2006-04-13 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* textmodes/org.el: (org-ctrl-c-ctrl-c): Improve documentation string.
|
||||
(org-agenda-mouse-1-follows-link)
|
||||
(org-mouse-1-follows-link): New options.
|
||||
(org-format-agenda-item): Fix bug if TAGS is nil.
|
||||
(org-agenda-get-scheduled): Quote `priority' symbol in plist.
|
||||
|
||||
2006-04-13 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
* progmodes/gdb-ui.el (gdb-set-gud-minor-mode-existing-buffers):
|
||||
GDB 6.1+ gives full filename for "info sources" so use
|
||||
file-name-nondirectory.
|
||||
|
||||
2006-04-12 Romain Francoise <romain@orebokech.com>
|
||||
|
||||
* subr.el (read-passwd): Bind `message-log-max' to nil.
|
||||
|
||||
2006-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* progmodes/perl-mode.el (perl-indent-new-calculate):
|
||||
|
|
@ -2835,7 +3057,7 @@
|
|||
(vc-default-update-changelog): Don't use vc-user-login-name, we
|
||||
don't need it here.
|
||||
|
||||
* tramp-vc.el (vc-user-login-name): Comment out defadvice, it is
|
||||
* net/tramp-vc.el (vc-user-login-name): Comment out defadvice, it is
|
||||
no longer necessary.
|
||||
|
||||
2006-01-25 Kenichi Handa <handa@m17n.org>
|
||||
|
|
|
|||
|
|
@ -160,8 +160,10 @@ or may be omitted (it is usually omitted)."
|
|||
(defun edit-abbrevs-redefine ()
|
||||
"Redefine abbrevs according to current buffer contents."
|
||||
(interactive)
|
||||
(define-abbrevs t)
|
||||
(set-buffer-modified-p nil))
|
||||
(save-restriction
|
||||
(widen)
|
||||
(define-abbrevs t)
|
||||
(set-buffer-modified-p nil)))
|
||||
|
||||
(defun define-abbrevs (&optional arg)
|
||||
"Define abbrevs according to current visible buffer contents.
|
||||
|
|
@ -195,9 +197,12 @@ the ones defined from the buffer now."
|
|||
Optional argument FILE is the name of the file to read;
|
||||
it defaults to the value of `abbrev-file-name'.
|
||||
Optional second argument QUIETLY non-nil means don't display a message."
|
||||
(interactive "fRead abbrev file: ")
|
||||
(load (if (and file (> (length file) 0)) file abbrev-file-name)
|
||||
nil quietly)
|
||||
(interactive
|
||||
(list
|
||||
(read-file-name (format "Read abbrev file (default %s): "
|
||||
abbrev-file-name)
|
||||
nil abbrev-file-name t)))
|
||||
(load (or file abbrev-file-name) nil quietly)
|
||||
(setq abbrevs-changed nil))
|
||||
|
||||
(defun quietly-read-abbrev-file (&optional file)
|
||||
|
|
|
|||
|
|
@ -666,6 +666,7 @@ the layout used for the allout.el source file.)
|
|||
`allout-layout' can additionally have the value `t', in which
|
||||
case the value of `allout-default-layout' is used.")
|
||||
(make-variable-buffer-local 'allout-layout)
|
||||
;;;###autoload
|
||||
(put 'allout-layout 'safe-local-variable t)
|
||||
|
||||
;;;_ : Topic header format
|
||||
|
|
|
|||
|
|
@ -908,6 +908,7 @@ If non-nil TEXT is a string that will be printed as a heading."
|
|||
;; Calculate key-bindings if we want them.
|
||||
(and do-keys
|
||||
(commandp symbol)
|
||||
(not (eq symbol 'self-insert-command))
|
||||
(indent-to 30 1)
|
||||
(if (let ((keys
|
||||
(save-excursion
|
||||
|
|
|
|||
|
|
@ -498,11 +498,11 @@ The time should be in either 24 hour format or am/pm format."
|
|||
(interactive "sTime (hh:mm[am/pm]): \nsMessage: ")
|
||||
(unless (string-match appt-time-regexp new-appt-time)
|
||||
(error "Unacceptable time-string"))
|
||||
(let* ((appt-time-string (concat new-appt-time " " new-appt-msg))
|
||||
(appt-time (list (appt-convert-time new-appt-time)))
|
||||
(time-msg (list appt-time appt-time-string t)))
|
||||
(setq appt-time-msg-list (nconc appt-time-msg-list (list time-msg)))
|
||||
(setq appt-time-msg-list (appt-sort-list appt-time-msg-list))))
|
||||
(let ((time-msg (list (list (appt-convert-time new-appt-time))
|
||||
(concat new-appt-time " " new-appt-msg) t)))
|
||||
(unless (member time-msg appt-time-msg-list)
|
||||
(setq appt-time-msg-list
|
||||
(appt-sort-list (nconc appt-time-msg-list (list time-msg)))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun appt-delete ()
|
||||
|
|
|
|||
|
|
@ -465,6 +465,7 @@ executed once when the buffer is created."
|
|||
(define-key map "\C-c\C-l" 'comint-dynamic-list-input-ring)
|
||||
(define-key map "\C-c\C-n" 'comint-next-prompt)
|
||||
(define-key map "\C-c\C-p" 'comint-previous-prompt)
|
||||
(define-key map "\C-c\C-j" 'comint-restore-input)
|
||||
(define-key map "\C-c\C-d" 'comint-send-eof)
|
||||
(define-key map "\C-c\C-s" 'comint-write-output)
|
||||
(define-key map "\C-c." 'comint-insert-previous-argument)
|
||||
|
|
@ -558,6 +559,9 @@ This is to support the command \\[comint-get-next-from-history].")
|
|||
"Non-nil if you are accumulating input lines to send as input together.
|
||||
The command \\[comint-accumulate] sets this.")
|
||||
|
||||
(defvar comint-stored-incomplete-input nil
|
||||
"Stored input for history cycling.")
|
||||
|
||||
(put 'comint-replace-by-expanded-history 'menu-enable 'comint-input-autoexpand)
|
||||
(put 'comint-input-ring 'permanent-local t)
|
||||
(put 'comint-input-ring-index 'permanent-local t)
|
||||
|
|
@ -638,6 +642,7 @@ Entry to this mode runs the hooks on `comint-mode-hook'."
|
|||
(make-local-variable 'comint-scroll-to-bottom-on-input)
|
||||
(make-local-variable 'comint-move-point-for-output)
|
||||
(make-local-variable 'comint-scroll-show-maximum-output)
|
||||
(make-local-variable 'comint-stored-incomplete-input)
|
||||
;; This makes it really work to keep point at the bottom.
|
||||
(make-local-variable 'scroll-conservatively)
|
||||
(setq scroll-conservatively 10000)
|
||||
|
|
@ -1015,6 +1020,16 @@ See also `comint-read-input-ring'."
|
|||
(t
|
||||
arg)))
|
||||
|
||||
(defun comint-restore-input ()
|
||||
"Restore unfinished input."
|
||||
(interactive)
|
||||
(when comint-input-ring-index
|
||||
(comint-delete-input)
|
||||
(when (> (length comint-stored-incomplete-input) 0)
|
||||
(insert comint-stored-incomplete-input)
|
||||
(message "Input restored"))
|
||||
(setq comint-input-ring-index nil)))
|
||||
|
||||
(defun comint-search-start (arg)
|
||||
"Index to start a directional search, starting at `comint-input-ring-index'."
|
||||
(if comint-input-ring-index
|
||||
|
|
@ -1035,9 +1050,18 @@ Moves relative to `comint-input-ring-index'."
|
|||
arg)))
|
||||
|
||||
(defun comint-previous-input (arg)
|
||||
"Cycle backwards through input history."
|
||||
"Cycle backwards through input history, saving input."
|
||||
(interactive "*p")
|
||||
(comint-previous-matching-input "." arg))
|
||||
(if (and comint-input-ring-index
|
||||
(or ;; leaving the "end" of the ring
|
||||
(and (< arg 0) ; going down
|
||||
(eq comint-input-ring-index 0))
|
||||
(and (> arg 0) ; going up
|
||||
(eq comint-input-ring-index
|
||||
(1- (ring-length comint-input-ring)))))
|
||||
comint-stored-incomplete-input)
|
||||
(comint-restore-input)
|
||||
(comint-previous-matching-input "." arg)))
|
||||
|
||||
(defun comint-next-input (arg)
|
||||
"Cycle forwards through input history."
|
||||
|
|
@ -1077,6 +1101,14 @@ Moves relative to START, or `comint-input-ring-index'."
|
|||
(if (string-match regexp (ring-ref comint-input-ring n))
|
||||
n)))
|
||||
|
||||
(defun comint-delete-input ()
|
||||
"Delete all input between accumulation or process mark and point."
|
||||
(delete-region
|
||||
;; Can't use kill-region as it sets this-command
|
||||
(or (marker-position comint-accum-marker)
|
||||
(process-mark (get-buffer-process (current-buffer))))
|
||||
(point-max)))
|
||||
|
||||
(defun comint-previous-matching-input (regexp n)
|
||||
"Search backwards through input history for match for REGEXP.
|
||||
\(Previous history elements are earlier commands.)
|
||||
|
|
@ -1088,13 +1120,13 @@ If N is negative, find the next or Nth next match."
|
|||
;; Has a match been found?
|
||||
(if (null pos)
|
||||
(error "Not found")
|
||||
;; If leaving the edit line, save partial input
|
||||
(if (null comint-input-ring-index) ;not yet on ring
|
||||
(setq comint-stored-incomplete-input
|
||||
(funcall comint-get-old-input)))
|
||||
(setq comint-input-ring-index pos)
|
||||
(message "History item: %d" (1+ pos))
|
||||
(delete-region
|
||||
;; Can't use kill-region as it sets this-command
|
||||
(or (marker-position comint-accum-marker)
|
||||
(process-mark (get-buffer-process (current-buffer))))
|
||||
(point))
|
||||
(comint-delete-input)
|
||||
(insert (ring-ref comint-input-ring pos)))))
|
||||
|
||||
(defun comint-next-matching-input (regexp n)
|
||||
|
|
|
|||
|
|
@ -141,8 +141,6 @@ If nil, means use the colon-separated path in the variable $INCPATH instead."
|
|||
"A list of the environment variable names and values.")
|
||||
|
||||
|
||||
(defvar PC-old-read-file-name-internal nil)
|
||||
|
||||
(defun PC-bindings (bind)
|
||||
(let ((completion-map minibuffer-local-completion-map)
|
||||
(must-match-map minibuffer-local-must-match-map))
|
||||
|
|
@ -219,21 +217,32 @@ second TAB brings up the `*Completions*' buffer."
|
|||
((not PC-disable-includes)
|
||||
(add-hook 'find-file-not-found-functions 'PC-look-for-include-file)))
|
||||
;; ... with some underhand redefining.
|
||||
(cond ((and (not partial-completion-mode)
|
||||
(functionp PC-old-read-file-name-internal))
|
||||
(fset 'read-file-name-internal PC-old-read-file-name-internal))
|
||||
((and (not PC-disable-includes) (not PC-old-read-file-name-internal))
|
||||
(setq PC-old-read-file-name-internal
|
||||
(symbol-function 'read-file-name-internal))
|
||||
(fset 'read-file-name-internal
|
||||
'PC-read-include-file-name-internal)))
|
||||
(when (and partial-completion-mode (null PC-env-vars-alist))
|
||||
(setq PC-env-vars-alist
|
||||
(mapcar (lambda (string)
|
||||
(let ((d (string-match "=" string)))
|
||||
(cons (concat "$" (substring string 0 d))
|
||||
(and d (substring string (1+ d))))))
|
||||
process-environment))))
|
||||
(cond ((not partial-completion-mode)
|
||||
(ad-disable-advice 'read-file-name-internal 'around 'PC-include-file)
|
||||
(ad-activate 'read-file-name-internal))
|
||||
((not PC-disable-includes)
|
||||
(ad-enable-advice 'read-file-name-internal 'around 'PC-include-file)
|
||||
(ad-activate 'read-file-name-internal)))
|
||||
;; Adjust the completion selection in *Completion* buffers to the way
|
||||
;; we work. The default minibuffer completion code only completes the
|
||||
;; text before point and leaves the text after point alone (new in
|
||||
;; Emacs-22). In contrast we use the whole text and we even sometimes
|
||||
;; move point to a place before EOB, to indicate the first position where
|
||||
;; there's a difference, so when the user uses choose-completion, we have
|
||||
;; to trick choose-completion into replacing the whole minibuffer text
|
||||
;; rather than only the text before point. --Stef
|
||||
(funcall
|
||||
(if partial-completion-mode 'add-hook 'remove-hook)
|
||||
'choose-completion-string-functions
|
||||
(lambda (&rest x) (goto-char (point-max)) nil))
|
||||
;; Build the env-completion and mapping table.
|
||||
(when (and partial-completion-mode (null PC-env-vars-alist))
|
||||
(setq PC-env-vars-alist
|
||||
(mapcar (lambda (string)
|
||||
(let ((d (string-match "=" string)))
|
||||
(cons (concat "$" (substring string 0 d))
|
||||
(and d (substring string (1+ d))))))
|
||||
process-environment))))
|
||||
|
||||
|
||||
(defun PC-complete ()
|
||||
|
|
@ -930,20 +939,23 @@ absolute rather than relative to some directory on the SEARCH-PATH."
|
|||
(setq sorted (cdr sorted)))
|
||||
compressed))))
|
||||
|
||||
(defun PC-read-include-file-name-internal (string dir action)
|
||||
(if (string-match "<\\([^\"<>]*\\)>?$" string)
|
||||
(let* ((name (substring string (match-beginning 1) (match-end 1)))
|
||||
(defadvice read-file-name-internal (around PC-include-file disable)
|
||||
(if (string-match "<\\([^\"<>]*\\)>?\\'" (ad-get-arg 0))
|
||||
(let* ((string (ad-get-arg 0))
|
||||
(action (ad-get-arg 2))
|
||||
(name (substring string (match-beginning 1) (match-end 1)))
|
||||
(str2 (substring string (match-beginning 0)))
|
||||
(completion-table
|
||||
(mapcar (function (lambda (x) (list (format "<%s>" x))))
|
||||
(mapcar (lambda (x) (format "<%s>" x))
|
||||
(PC-include-file-all-completions
|
||||
name (PC-include-file-path)))))
|
||||
(cond
|
||||
((not completion-table) nil)
|
||||
((eq action nil) (try-completion str2 completion-table nil))
|
||||
((eq action t) (all-completions str2 completion-table nil))
|
||||
((eq action 'lambda) (test-completion str2 completion-table nil))))
|
||||
(funcall PC-old-read-file-name-internal string dir action)))
|
||||
(setq ad-return-value
|
||||
(cond
|
||||
((not completion-table) nil)
|
||||
((eq action 'lambda) (test-completion str2 completion-table nil))
|
||||
((eq action nil) (try-completion str2 completion-table nil))
|
||||
((eq action t) (all-completions str2 completion-table nil)))))
|
||||
ad-do-it))
|
||||
|
||||
|
||||
(provide 'complete)
|
||||
|
|
|
|||
|
|
@ -1082,14 +1082,29 @@ Show the buffer in another window, but don't select it."
|
|||
;; Packages will update this variable, so make it available.
|
||||
;;;###autoload
|
||||
(defvar customize-package-emacs-version-alist nil
|
||||
"Alist that maps packages to alists of package to Emacs versions.
|
||||
The value alists map all package versions used with
|
||||
the :package-version keyword to Emacs versions. Packages are
|
||||
symbols and versions are strings.
|
||||
"Alist mapping versions of Emacs to versions of a package.
|
||||
These package versions are listed in the :package-version
|
||||
keyword used in `defcustom', `defgroup', and `defface'. Its
|
||||
elements look like this:
|
||||
|
||||
For example:
|
||||
'((MH-E (\"7.4\" \"22.1\") (\"8.0\" \"22.1\"))
|
||||
(Gnus (\"5.11\" \"22.1\")))")
|
||||
(PACKAGE (PVERSION . EVERSION)...)
|
||||
|
||||
For each PACKAGE, which is a symbol, there are one or more
|
||||
elements that contain a package version PVERSION with an
|
||||
associated Emacs version EVERSION. These versions are strings.
|
||||
For example, the MH-E package updates this alist with the
|
||||
following:
|
||||
|
||||
(add-to-list 'customize-package-emacs-version-alist
|
||||
'(MH-E (\"6.0\" . \"22.1\") (\"6.1\" . \"22.1\")
|
||||
(\"7.0\" . \"22.1\") (\"7.1\" . \"22.1\")
|
||||
(\"7.2\" . \"22.1\") (\"7.3\" . \"22.1\")
|
||||
(\"7.4\" . \"22.1\") (\"8.0\" . \"22.1\")))
|
||||
|
||||
The value of PACKAGE needs to be unique and it needs to match the
|
||||
PACKAGE value appearing in the :package-version keyword. Since
|
||||
the user might see the value in a error message, a good choice is
|
||||
the official name of the package, such as MH-E or Gnus.")
|
||||
|
||||
;;;###autoload
|
||||
(defalias 'customize-changed 'customize-changed-options)
|
||||
|
|
@ -1154,7 +1169,7 @@ that were added or redefined since that version."
|
|||
|
||||
(defun customize-package-emacs-version (symbol package-version)
|
||||
"Return Emacs version of SYMBOL.
|
||||
PACKAGE-VERSION has the form (PACKAGE VERSION). The VERSION of
|
||||
PACKAGE-VERSION has the form (PACKAGE . VERSION). The VERSION of
|
||||
PACKAGE is looked up in the associated list
|
||||
`customize-package-emacs-version-alist' to find the version of
|
||||
Emacs that is associated with it."
|
||||
|
|
@ -1167,9 +1182,10 @@ Emacs that is associated with it."
|
|||
((setq package-versions (assq (car package-version)
|
||||
customize-package-emacs-version-alist))
|
||||
(setq emacs-version
|
||||
(cadr (assoc (cadr package-version) package-versions)))
|
||||
(cdr (assoc (cdr package-version) package-versions)))
|
||||
(unless emacs-version
|
||||
(message "Package version of %s not found in %s" symbol
|
||||
(message "%s version %s not found in %s" symbol
|
||||
(cdr package-version)
|
||||
"customize-package-emacs-version-alist")))
|
||||
(t
|
||||
(message "Package %s neglected to update %s"
|
||||
|
|
|
|||
|
|
@ -272,11 +272,14 @@ The following common keywords are also meaningful.
|
|||
first introduced, or its default value was changed, in Emacs
|
||||
version VERSION.
|
||||
:package-version
|
||||
VALUE should be a list with the form (PACKAGE VERSION)
|
||||
VALUE should be a list with the form (PACKAGE . VERSION)
|
||||
specifying that the variable was first introduced, or its
|
||||
default value was changed, in PACKAGE version VERSION. This
|
||||
keyword takes priority over :version. The PACKAGE and VERSION
|
||||
must appear in the alist `customize-package-emacs-version-alist'.
|
||||
Since PACKAGE must be unique and the user might see it in an
|
||||
error message, a good choice is the official name of the
|
||||
package, such as MH-E or Gnus.
|
||||
:tag LABEL
|
||||
Use LABEL, a string, instead of the item's name, to label the item
|
||||
in customization menus and buffers.
|
||||
|
|
|
|||
|
|
@ -258,6 +258,20 @@ Both SYMBOL and SPEC are unevaluated. The SPEC can be 0, t, a symbol
|
|||
edebug-form-spec
|
||||
))
|
||||
|
||||
;;;###autoload
|
||||
(defun edebug-basic-spec (spec)
|
||||
"Return t if SPEC uses only extant spec symbols.
|
||||
An extant spec symbol is a symbol that is not a function and has a
|
||||
`edebug-form-spec' property."
|
||||
(cond ((listp spec)
|
||||
(catch 'basic
|
||||
(while spec
|
||||
(unless (edebug-basic-spec (car spec)) (throw 'basic nil))
|
||||
(setq spec (cdr spec)))
|
||||
t))
|
||||
((symbolp spec)
|
||||
(unless (functionp spec) (get spec 'edebug-form-spec)))))
|
||||
|
||||
;;; Utilities
|
||||
|
||||
;; Define edebug-gensym - from old cl.el
|
||||
|
|
|
|||
|
|
@ -228,6 +228,14 @@ The search is done in the source for library LIBRARY."
|
|||
(with-syntax-table emacs-lisp-mode-syntax-table
|
||||
(goto-char (point-min))
|
||||
(if (or (re-search-forward regexp nil t)
|
||||
;; `regexp' matches definitions using known forms like
|
||||
;; `defun', or `defvar'. But some functions/variables
|
||||
;; are defined using special macros (or functions), so
|
||||
;; if `regexp' can't find the definition, we look for
|
||||
;; something of the form "(SOMETHING <symbol> ...)".
|
||||
;; This fails to distinguish function definitions from
|
||||
;; variable declarations (or even uses thereof), but is
|
||||
;; a good pragmatic fallback.
|
||||
(re-search-forward
|
||||
(concat "^([^ ]+" find-function-space-re "['(]?"
|
||||
(regexp-quote (symbol-name symbol))
|
||||
|
|
|
|||
|
|
@ -27,18 +27,56 @@
|
|||
|
||||
;;; Commentary:
|
||||
|
||||
;; manages receiving a stream asynchronously,
|
||||
;; parsing it into transactions, and then calling
|
||||
;; handler functions
|
||||
;; This file manages receiving a stream asynchronously, parsing it
|
||||
;; into transactions, and then calling the associated handler function
|
||||
;; upon the completion of each transaction.
|
||||
|
||||
;; Our basic structure is the queue/process/buffer triple. Each entry
|
||||
;; of the queue is a regexp/closure/function triple. We buffer
|
||||
;; bytes from the process until we see the regexp at the head of the
|
||||
;; queue. Then we call the function with the closure and the
|
||||
;; collected bytes.
|
||||
;; of the queue part is a list of question, regexp, closure, and
|
||||
;; function that is consed to the last element.
|
||||
|
||||
;; A transaction queue may be created by calling `tq-create'.
|
||||
|
||||
;; A request may be added to the queue by calling `tq-enqueue'. If
|
||||
;; the `delay-question' argument is non-nil, we will wait to send the
|
||||
;; question to the process until it has finished sending other input.
|
||||
;; Otherwise, once a request is enqueued, we send the given question
|
||||
;; immediately to the process.
|
||||
|
||||
;; We then buffer bytes from the process until we see the regexp that
|
||||
;; was provided in the call to `tq-enqueue'. Then we call the
|
||||
;; provided function with the closure and the collected bytes. If we
|
||||
;; have indicated that the question from the next transaction was not
|
||||
;; sent immediately, send it at this point, awaiting the response.
|
||||
|
||||
;;; Code:
|
||||
|
||||
;;; Accessors
|
||||
|
||||
;; This part looks like (queue . (process . buffer))
|
||||
(defun tq-queue (tq) (car tq))
|
||||
(defun tq-process (tq) (car (cdr tq)))
|
||||
(defun tq-buffer (tq) (cdr (cdr tq)))
|
||||
|
||||
;; The structure of `queue' is as follows
|
||||
;; ((question regexp closure . fn)
|
||||
;; <other queue entries>)
|
||||
;; question: string to send to the process
|
||||
(defun tq-queue-head-question (tq) (car (car (tq-queue tq))))
|
||||
;; regexp: regular expression that matches the end of a response from
|
||||
;; the process
|
||||
(defun tq-queue-head-regexp (tq) (car (cdr (car (tq-queue tq)))))
|
||||
;; closure: additional data to pass to function
|
||||
(defun tq-queue-head-closure (tq) (car (cdr (cdr (car (tq-queue tq))))))
|
||||
;; fn: function to call upon receiving a complete response from the
|
||||
;; process
|
||||
(defun tq-queue-head-fn (tq) (cdr (cdr (cdr (car (tq-queue tq))))))
|
||||
|
||||
;; Determine whether queue is empty
|
||||
(defun tq-queue-empty (tq) (not (tq-queue tq)))
|
||||
|
||||
;;; Core functionality
|
||||
|
||||
;;;###autoload
|
||||
(defun tq-create (process)
|
||||
"Create and return a transaction queue communicating with PROCESS.
|
||||
|
|
@ -54,33 +92,37 @@ to a tcp server on another machine."
|
|||
(tq-filter ',tq string)))
|
||||
tq))
|
||||
|
||||
;;; accessors
|
||||
(defun tq-queue (tq) (car tq))
|
||||
(defun tq-process (tq) (car (cdr tq)))
|
||||
(defun tq-buffer (tq) (cdr (cdr tq)))
|
||||
|
||||
(defun tq-queue-add (tq re closure fn)
|
||||
(defun tq-queue-add (tq question re closure fn)
|
||||
(setcar tq (nconc (tq-queue tq)
|
||||
(cons (cons re (cons closure fn)) nil)))
|
||||
(cons (cons question (cons re (cons closure fn))) nil)))
|
||||
'ok)
|
||||
|
||||
(defun tq-queue-head-regexp (tq) (car (car (tq-queue tq))))
|
||||
(defun tq-queue-head-fn (tq) (cdr (cdr (car (tq-queue tq)))))
|
||||
(defun tq-queue-head-closure (tq) (car (cdr (car (tq-queue tq)))))
|
||||
(defun tq-queue-empty (tq) (not (tq-queue tq)))
|
||||
(defun tq-queue-pop (tq) (setcar tq (cdr (car tq))) (null (car tq)))
|
||||
(defun tq-queue-pop (tq)
|
||||
(setcar tq (cdr (car tq)))
|
||||
(let ((question (tq-queue-head-question tq)))
|
||||
(when question
|
||||
(process-send-string (tq-process tq) question)))
|
||||
(null (car tq)))
|
||||
|
||||
|
||||
;;; must add to queue before sending!
|
||||
(defun tq-enqueue (tq question regexp closure fn)
|
||||
(defun tq-enqueue (tq question regexp closure fn &optional delay-question)
|
||||
"Add a transaction to transaction queue TQ.
|
||||
This sends the string QUESTION to the process that TQ communicates with.
|
||||
When the corresponding answer comes back, we call FN
|
||||
with two arguments: CLOSURE, and the answer to the question.
|
||||
|
||||
When the corresponding answer comes back, we call FN with two
|
||||
arguments: CLOSURE, which may contain additional data that FN
|
||||
needs, and the answer to the question.
|
||||
|
||||
REGEXP is a regular expression to match the entire answer;
|
||||
that's how we tell where the answer ends."
|
||||
(tq-queue-add tq regexp closure fn)
|
||||
(process-send-string (tq-process tq) question))
|
||||
that's how we tell where the answer ends.
|
||||
|
||||
If DELAY-QUESTION is non-nil, delay sending this question until
|
||||
the process has finished replying to any previous questions.
|
||||
This produces more reliable results with some processes."
|
||||
(let ((sendp (or (not delay-question)
|
||||
(not (tq-queue-head-question tq)))))
|
||||
(tq-queue-add tq (unless sendp question) regexp closure fn)
|
||||
(when sendp
|
||||
(process-send-string (tq-process tq) question))))
|
||||
|
||||
(defun tq-close (tq)
|
||||
"Shut down transaction queue TQ, terminating the process."
|
||||
|
|
|
|||
24
lisp/env.el
24
lisp/env.el
|
|
@ -94,15 +94,10 @@ Use `$$' to insert a single dollar sign."
|
|||
|
||||
;; Fixme: Should the environment be recoded if LC_CTYPE &c is set?
|
||||
|
||||
(defun setenv (variable &optional value unset substitute-env-vars frame)
|
||||
(defun setenv (variable &optional value substitute-env-vars frame)
|
||||
"Set the value of the environment variable named VARIABLE to VALUE.
|
||||
VARIABLE should be a string. VALUE is optional; if not provided or
|
||||
nil, the environment variable VARIABLE will be removed.
|
||||
UNSET if non-nil means to remove VARIABLE from the environment.
|
||||
SUBSTITUTE-ENV-VARS, if non-nil, means to substitute environment
|
||||
variables in VALUE with `substitute-env-vars', where see.
|
||||
Value is the new value if VARIABLE, or nil if removed from the
|
||||
environment.
|
||||
|
||||
Interactively, a prefix argument means to unset the variable, and
|
||||
otherwise the current value (if any) of the variable appears at
|
||||
|
|
@ -116,6 +111,13 @@ modifying either `global-environment' or the environment
|
|||
belonging to the selected frame, depending on the value of
|
||||
`local-environment-variables'.
|
||||
|
||||
SUBSTITUTE-ENV-VARS, if non-nil, means to substitute environment
|
||||
variables in VALUE with `substitute-env-vars', which see.
|
||||
This is normally used only for interactive calls.
|
||||
|
||||
The return value is the new value of VARIABLE, or nil if
|
||||
it was removed from the environment.
|
||||
|
||||
If optional parameter FRAME is non-nil, then it should be a a
|
||||
frame. If the specified frame has its own set of environment
|
||||
variables, this function will modify VARIABLE in it. Note that
|
||||
|
|
@ -127,7 +129,7 @@ As a special case, setting variable `TZ' calls `set-time-zone-rule' as
|
|||
a side-effect."
|
||||
(interactive
|
||||
(if current-prefix-arg
|
||||
(list (read-envvar-name "Clear environment variable: " 'exact) nil t)
|
||||
(list (read-envvar-name "Clear environment variable: " 'exact) nil)
|
||||
(let* ((var (read-envvar-name "Set environment variable: " nil))
|
||||
(value (getenv var)))
|
||||
(when value
|
||||
|
|
@ -137,7 +139,6 @@ a side-effect."
|
|||
(read-from-minibuffer (format "Set %s to value: " var)
|
||||
nil nil nil 'setenv-history
|
||||
value)
|
||||
nil
|
||||
t))))
|
||||
(if (and (multibyte-string-p variable) locale-coding-system)
|
||||
(let ((codings (find-coding-systems-string (concat variable value))))
|
||||
|
|
@ -145,10 +146,9 @@ a side-effect."
|
|||
(memq (coding-system-base locale-coding-system) codings))
|
||||
(error "Can't encode `%s=%s' with `locale-coding-system'"
|
||||
variable (or value "")))))
|
||||
(if unset
|
||||
(setq value nil)
|
||||
(if substitute-env-vars
|
||||
(setq value (substitute-env-vars value))))
|
||||
(and value
|
||||
substitute-env-vars
|
||||
(setq value (substitute-env-vars value)))
|
||||
(if (multibyte-string-p variable)
|
||||
(setq variable (encode-coding-string variable locale-coding-system)))
|
||||
(if (and value (multibyte-string-p value))
|
||||
|
|
|
|||
|
|
@ -452,6 +452,8 @@ not safe, Emacs queries you, once, whether to set them all.
|
|||
\(When you say yes to certain values, they are remembered as safe.)
|
||||
|
||||
:safe means set the safe variables, and ignore the rest.
|
||||
:all means set all variables, whether safe or not.
|
||||
(Don't set it permanently to :all.)
|
||||
nil means always ignore the file local variables.
|
||||
|
||||
Any other value means always query you once whether to set them all.
|
||||
|
|
@ -464,8 +466,9 @@ a -*- line.
|
|||
The command \\[normal-mode], when used interactively,
|
||||
always obeys file local variable specifications and the -*- line,
|
||||
and ignores this variable."
|
||||
:type '(choice (const :tag "Obey" t)
|
||||
:type '(choice (const :tag "Query Unsafe" t)
|
||||
(const :tag "Safe Only" :safe)
|
||||
(const :tag "Do all" :all)
|
||||
(const :tag "Ignore" nil)
|
||||
(other :tag "Query" other))
|
||||
:group 'find-file)
|
||||
|
|
@ -2283,6 +2286,7 @@ asking you for confirmation."
|
|||
default-text-properties
|
||||
display-time-string
|
||||
enable-local-eval
|
||||
enable-local-variables
|
||||
eval
|
||||
exec-directory
|
||||
exec-path
|
||||
|
|
@ -2319,6 +2323,8 @@ asking you for confirmation."
|
|||
parse-time-rules
|
||||
process-environment
|
||||
rmail-output-file-alist
|
||||
safe-local-variable-values
|
||||
safe-local-eval-forms
|
||||
save-some-buffers-action-alist
|
||||
special-display-buffer-names
|
||||
standard-input
|
||||
|
|
@ -2356,9 +2362,11 @@ asking you for confirmation."
|
|||
(c-indent-level . integerp)
|
||||
(comment-column . integerp)
|
||||
(compile-command . string-or-null-p)
|
||||
(find-file-visit-truename . t)
|
||||
(fill-column . integerp)
|
||||
(fill-prefix . string-or-null-p)
|
||||
(indent-tabs-mode . t)
|
||||
(kept-old-versions . integerp)
|
||||
(kept-new-versions . integerp)
|
||||
(left-margin . t)
|
||||
(no-byte-compile . t)
|
||||
|
|
@ -2631,6 +2639,7 @@ is specified, returning t if it is specified."
|
|||
(if (or (and (eq enable-local-variables t)
|
||||
(null unsafe-vars)
|
||||
(null risky-vars))
|
||||
(eq enable-local-variables :all)
|
||||
(hack-local-variables-confirm
|
||||
result unsafe-vars risky-vars))
|
||||
(dolist (elt result)
|
||||
|
|
@ -2690,12 +2699,14 @@ It is dangerous if either of these conditions are met:
|
|||
(and (eq (car exp) 'put)
|
||||
(hack-one-local-variable-quotep (nth 1 exp))
|
||||
(hack-one-local-variable-quotep (nth 2 exp))
|
||||
(memq (nth 1 (nth 2 exp))
|
||||
'(lisp-indent-hook))
|
||||
;; Only allow safe values of lisp-indent-hook;
|
||||
;; not functions.
|
||||
(or (numberp (nth 3 exp))
|
||||
(equal (nth 3 exp) ''defun)))
|
||||
(let ((prop (nth 1 (nth 2 exp))) (val (nth 3 exp)))
|
||||
(cond ((eq prop 'lisp-indent-hook)
|
||||
;; Only allow safe values of lisp-indent-hook;
|
||||
;; not functions.
|
||||
(or (numberp val) (equal val ''defun)))
|
||||
((eq prop 'edebug-form-spec)
|
||||
;; Only allow indirect form specs.
|
||||
(edebug-basic-spec val)))))
|
||||
;; Allow expressions that the user requested.
|
||||
(member exp safe-local-eval-forms)
|
||||
;; Certain functions can be allowed with safe arguments
|
||||
|
|
|
|||
|
|
@ -1,3 +1,52 @@
|
|||
2006-04-17 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
[ Merge from Gnus trunk. ]
|
||||
|
||||
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
|
||||
(mm-charset-override-alist): New variable.
|
||||
(mm-charset-to-coding-system): Use it.
|
||||
(mm-codepage-setup): New helper function.
|
||||
(mm-charset-eval-alist): New variable.
|
||||
(mm-charset-to-coding-system): Use mm-charset-eval-alist. Warn
|
||||
about unknown charsets. Add allow-override. Use
|
||||
`mm-charset-override-alist' only when decoding.
|
||||
(mm-detect-mime-charset-region): Use :mime-charset.
|
||||
|
||||
* mm-bodies.el (mm-decode-body, mm-decode-string): Call
|
||||
`mm-charset-to-coding-system' with allow-override argument.
|
||||
|
||||
* message.el (message-tool-bar-zap-list, message-tool-bar)
|
||||
(message-tool-bar-gnome, message-tool-bar-retro): New variables.
|
||||
(message-tool-bar-local-item-from-menu): Remove.
|
||||
(message-tool-bar-map): Replace by `message-make-tool-bar'.
|
||||
(message-make-tool-bar): New function.
|
||||
(message-mode): Use `message-make-tool-bar'.
|
||||
|
||||
* gnus-sum.el (gnus-summary-tool-bar)
|
||||
(gnus-summary-tool-bar-gnome, gnus-summary-tool-bar-retro)
|
||||
(gnus-summary-tool-bar-zap-list): New variables.
|
||||
(gnus-summary-make-tool-bar): Complete rewrite using
|
||||
`gmm-tool-bar-from-list'.
|
||||
|
||||
* gnus-group.el (gnus-group-tool-bar, gnus-group-tool-bar-gnome)
|
||||
(gnus-group-tool-bar-retro, gnus-group-tool-bar-zap-list): New
|
||||
variables.
|
||||
(gnus-group-make-tool-bar): Complete rewrite using
|
||||
`gmm-tool-bar-from-list'.
|
||||
(gnus-group-tool-bar-update): New function.
|
||||
|
||||
* gmm-utils.el: New file.
|
||||
|
||||
2006-04-12 Ralf Angeli <angeli@iwi.uni-sb.de>
|
||||
|
||||
* flow-fill.el (fill-flowed): Remove trailing space from blank
|
||||
quoted lines.
|
||||
|
||||
2006-04-12 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* gnus-art.el (gnus-article-mode): Set
|
||||
cursor-in-non-selected-windows to nil.
|
||||
|
||||
2006-04-12 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
* gnus-art.el (gnus-mime-view-part-as-charset): Ignore charset
|
||||
|
|
@ -12,13 +61,6 @@
|
|||
* gnus-uu.el (gnus-uu-save-article): Put mml tags instead of part
|
||||
tag to summarized topics part in order to encode non-ASCII text.
|
||||
|
||||
2006-04-12 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* rfc2231.el (rfc2231-decode-encoded-string): Work on unibyte
|
||||
buffer and then decode the buffer text if necessary.
|
||||
(rfc2231-encode-string): Be sure to work on multibyte buffer at
|
||||
first, and after mm-encode-body, change the buffer to unibyte.
|
||||
|
||||
2006-04-11 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* gnus-art.el (gnus-button-valid-localpart-regexp): Exclude `@'.
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ RFC 2646 suggests 66 characters for readability."
|
|||
(set-buffer (or (current-buffer) buffer))
|
||||
(goto-char (point-min))
|
||||
;; Remove space stuffing.
|
||||
(while (re-search-forward "^ " nil t)
|
||||
(while (re-search-forward "^\\( \\|>+ $\\)" nil t)
|
||||
(delete-char -1)
|
||||
(forward-line 1))
|
||||
(goto-char (point-min))
|
||||
|
|
|
|||
413
lisp/gnus/gmm-utils.el
Normal file
413
lisp/gnus/gmm-utils.el
Normal file
|
|
@ -0,0 +1,413 @@
|
|||
;;; gmm-utils.el --- Utility functions for Gnus, Message and MML
|
||||
|
||||
;; Copyright (C) 2006 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Reiner Steib <reiner.steib@gmx.de>
|
||||
;; Keywords: news
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; GNU Emacs is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation; either version 2, or (at your option)
|
||||
;; any later version.
|
||||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with GNU Emacs; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
;; Boston, MA 02110-1301, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; This library provides self-contained utility functions. The functions are
|
||||
;; used in Gnus, Message and MML, but within this library there are no
|
||||
;; dependencies on Gnus, Message, or MML or Gnus.
|
||||
|
||||
;;; Code:
|
||||
|
||||
;; (require 'wid-edit)
|
||||
|
||||
(defgroup gmm nil
|
||||
"Utility functions for Gnus, Message and MML"
|
||||
:prefix "gmm-"
|
||||
:version "23.0" ;; No Gnus
|
||||
:group 'lisp)
|
||||
|
||||
;; Helper functions from `gnus-utils.el': gmm-verbose, gmm-message, gmm-error
|
||||
|
||||
(defcustom gmm-verbose 7
|
||||
"Integer that says how verbose gmm should be.
|
||||
The higher the number, the more messages will flash to say what
|
||||
it done. At zero, it will be totally mute; at five, it will
|
||||
display most important messages; and at ten, it will keep on
|
||||
jabbering all the time."
|
||||
:type 'integer
|
||||
:group 'gmm)
|
||||
|
||||
;;;###autoload
|
||||
(defun gmm-message (level &rest args)
|
||||
"If LEVEL is lower than `gmm-verbose' print ARGS using `message'.
|
||||
|
||||
Guideline for numbers:
|
||||
1 - error messages, 3 - non-serious error messages, 5 - messages for things
|
||||
that take a long time, 7 - not very important messages on stuff, 9 - messages
|
||||
inside loops."
|
||||
(if (<= level gmm-verbose)
|
||||
(apply 'message args)
|
||||
;; We have to do this format thingy here even if the result isn't
|
||||
;; shown - the return value has to be the same as the return value
|
||||
;; from `message'.
|
||||
(apply 'format args)))
|
||||
|
||||
;;;###autoload
|
||||
(defun gmm-error (level &rest args)
|
||||
"Beep an error if LEVEL is equal to or less than `gmm-verbose'.
|
||||
ARGS are passed to `message'."
|
||||
(when (<= (floor level) gmm-verbose)
|
||||
(apply 'message args)
|
||||
(ding)
|
||||
(let (duration)
|
||||
(when (and (floatp level)
|
||||
(not (zerop (setq duration (* 10 (- level (floor level)))))))
|
||||
(sit-for duration))))
|
||||
nil)
|
||||
|
||||
;;;###autoload
|
||||
(defun gmm-widget-p (symbol)
|
||||
"Non-nil iff SYMBOL is a widget."
|
||||
(get symbol 'widget-type))
|
||||
|
||||
;; Copy of the `nnmail-lazy' code from `nnmail.el':
|
||||
(define-widget 'gmm-lazy 'default
|
||||
"Base widget for recursive datastructures.
|
||||
|
||||
This is copy of the `lazy' widget in Emacs 22.1 provided for compatibility."
|
||||
:format "%{%t%}: %v"
|
||||
:convert-widget 'widget-value-convert-widget
|
||||
:value-create (lambda (widget)
|
||||
(let ((value (widget-get widget :value))
|
||||
(type (widget-get widget :type)))
|
||||
(widget-put widget :children
|
||||
(list (widget-create-child-value
|
||||
widget (widget-convert type) value)))))
|
||||
:value-delete 'widget-children-value-delete
|
||||
:value-get (lambda (widget)
|
||||
(widget-value (car (widget-get widget :children))))
|
||||
:value-inline (lambda (widget)
|
||||
(widget-apply (car (widget-get widget :children))
|
||||
:value-inline))
|
||||
:default-get (lambda (widget)
|
||||
(widget-default-get
|
||||
(widget-convert (widget-get widget :type))))
|
||||
:match (lambda (widget value)
|
||||
(widget-apply (widget-convert (widget-get widget :type))
|
||||
:match value))
|
||||
:validate (lambda (widget)
|
||||
(widget-apply (car (widget-get widget :children)) :validate)))
|
||||
|
||||
;; Note: The format of `gmm-tool-bar-item' may change if some future Emacs
|
||||
;; version will provide customizable tool bar buttons using a different
|
||||
;; interface.
|
||||
|
||||
;; TODO: Extend API so that the "Command" entry can be a function or a plist.
|
||||
;; In case of a list it should have the format...
|
||||
;;
|
||||
;; (:none command-without-modifier
|
||||
;; :shift command-with-shift-pressed
|
||||
;; :control command-with-ctrl-pressed
|
||||
;; :control-shift command-with-control-and-shift-pressed
|
||||
;; ;; mouse-2 and mouse-3 can't be used in Emacs yet.
|
||||
;; :mouse-2 command-on-mouse-2-press
|
||||
;; :mouse-3 command-on-mouse-3-press) ;; typically a menu of related commands
|
||||
;;
|
||||
;; Combinations of mouse-[23] plus shift and/or controll might be overkill.
|
||||
;;
|
||||
;; Then use (plist-get rs-command :none), (plist-get rs-command :shift)
|
||||
|
||||
(define-widget 'gmm-tool-bar-item (if (gmm-widget-p 'lazy) 'lazy 'gmm-lazy)
|
||||
"Tool bar list item."
|
||||
:tag "Tool bar item"
|
||||
:type '(choice
|
||||
(list :tag "Command and Icon"
|
||||
(function :tag "Command")
|
||||
(string :tag "Icon file")
|
||||
(choice
|
||||
(const :tag "Default map" nil)
|
||||
;; Note: Usually we need non-nil attributes if map is t.
|
||||
(const :tag "No menu" t)
|
||||
(sexp :tag "Other map"))
|
||||
(plist :inline t :tag "Properties"))
|
||||
(list :tag "Separator"
|
||||
(const :tag "No command" gmm-ignore)
|
||||
(string :tag "Icon file")
|
||||
(const :tag "No map")
|
||||
(plist :inline t :tag "Properties"))))
|
||||
|
||||
(define-widget 'gmm-tool-bar-zap-list (if (gmm-widget-p 'lazy) 'lazy 'gmm-lazy)
|
||||
"Tool bar zap list."
|
||||
:tag "Tool bar zap list"
|
||||
:type '(choice (const :tag "Zap all" t)
|
||||
(const :tag "Keep all" nil)
|
||||
(list
|
||||
;; :value
|
||||
;; Work around (bug in customize?), see
|
||||
;; <news:v9is48jrj1.fsf@marauder.physik.uni-ulm.de>
|
||||
;; (new-file open-file dired kill-buffer write-file
|
||||
;; print-buffer customize help)
|
||||
(set :inline t
|
||||
(const new-file)
|
||||
(const open-file)
|
||||
(const dired)
|
||||
(const kill-buffer)
|
||||
(const save-buffer)
|
||||
(const write-file)
|
||||
(const undo)
|
||||
(const cut)
|
||||
(const copy)
|
||||
(const paste)
|
||||
(const search-forward)
|
||||
(const print-buffer)
|
||||
(const customize)
|
||||
(const help))
|
||||
(repeat :inline t
|
||||
:tag "Other"
|
||||
(symbol :tag "Icon item")))))
|
||||
|
||||
;; (defun gmm-color-cells (&optional display)
|
||||
;; "Return the number of color cells supported by DISPLAY.
|
||||
;; Compatibility function."
|
||||
;; ;; `display-color-cells' doesn't return more than 256 even if color depth is
|
||||
;; ;; > 8 in Emacs 21.
|
||||
;; ;;
|
||||
;; ;; Feel free to add proper XEmacs support.
|
||||
;; (let* ((cells (and (fboundp 'display-color-cells)
|
||||
;; (display-color-cells display)))
|
||||
;; (plane (and (fboundp 'x-display-planes)
|
||||
;; (ash 1 (x-display-planes))))
|
||||
;; (none -1))
|
||||
;; (max (if (integerp cells) cells none)
|
||||
;; (if (integerp plane) plane none))))
|
||||
|
||||
(defcustom gmm-tool-bar-style
|
||||
(if (and (boundp 'tool-bar-mode)
|
||||
tool-bar-mode
|
||||
(and (fboundp 'display-visual-class)
|
||||
(not (memq (display-visual-class)
|
||||
(list 'static-gray 'gray-scale
|
||||
'static-color 'pseudo-color)))))
|
||||
'gnome
|
||||
'retro)
|
||||
"Prefered tool bar style."
|
||||
:type '(choice (const :tag "GNOME style" 'gnome)
|
||||
(const :tag "Retro look" 'retro))
|
||||
:group 'gmm)
|
||||
|
||||
(defvar tool-bar-map)
|
||||
|
||||
;;;###autoload
|
||||
(defun gmm-tool-bar-from-list (icon-list zap-list default-map)
|
||||
"Make a tool bar from ICON-LIST.
|
||||
|
||||
Within each entry of ICON-LIST, the first element is a menu
|
||||
command, the second element is an icon file name and the third
|
||||
element is a test function. You can use \\[describe-key]
|
||||
<menu-entry> to find out the name of a menu command. The fourth
|
||||
and all following elements are passed a the PROPS argument to the
|
||||
function `tool-bar-local-item'.
|
||||
|
||||
If ZAP-LIST is a list, remove those item from the default
|
||||
`tool-bar-map'. If it is t, start with a new sparse map. You
|
||||
can use \\[describe-key] <icon> to find out the name of an icon
|
||||
item. When \\[describe-key] <icon> shows \"<tool-bar> <new-file>
|
||||
runs the command find-file\", then use `new-file' in ZAP-LIST.
|
||||
|
||||
DEFAULT-MAP specifies the default key map for ICON-LIST."
|
||||
(let (;; For Emacs 21, we must let-bind `tool-bar-map'. In Emacs 22, we
|
||||
;; could use some other local variable.
|
||||
(tool-bar-map (if (eq zap-list t)
|
||||
(make-sparse-keymap)
|
||||
(copy-keymap tool-bar-map))))
|
||||
(when (listp zap-list)
|
||||
;; Zap some items which aren't relevant for this mode and take up space.
|
||||
(dolist (key zap-list)
|
||||
(define-key tool-bar-map (vector key) nil)))
|
||||
(mapc (lambda (el)
|
||||
(let ((command (car el))
|
||||
(icon (nth 1 el))
|
||||
(fmap (or (nth 2 el) default-map))
|
||||
(props (cdr (cdr (cdr el)))) )
|
||||
;; command may stem from different from-maps:
|
||||
(cond ((eq command 'gmm-ignore)
|
||||
;; The dummy `gmm-ignore', see `gmm-tool-bar-item'
|
||||
;; widget. Suppress tooltip by adding `:enable nil'.
|
||||
(if (fboundp 'tool-bar-local-item)
|
||||
(apply 'tool-bar-local-item icon nil nil
|
||||
tool-bar-map :enable nil props)
|
||||
;; (tool-bar-local-item ICON DEF KEY MAP &rest PROPS)
|
||||
;; (tool-bar-add-item ICON DEF KEY &rest PROPS)
|
||||
(apply 'tool-bar-add-item icon nil nil :enable nil props)))
|
||||
((equal fmap t) ;; Not a menu command
|
||||
(if (fboundp 'tool-bar-local-item)
|
||||
(apply 'tool-bar-local-item
|
||||
icon command
|
||||
(intern icon) ;; reuse icon or fmap here?
|
||||
tool-bar-map props)
|
||||
;; Emacs 21 compatibility:
|
||||
(apply 'tool-bar-add-item
|
||||
icon command
|
||||
(intern icon)
|
||||
props)))
|
||||
(t ;; A menu command
|
||||
(if (fboundp 'tool-bar-local-item-from-menu)
|
||||
(apply 'tool-bar-local-item-from-menu
|
||||
;; (apply 'tool-bar-local-item icon def key
|
||||
;; tool-bar-map props)
|
||||
command icon tool-bar-map (symbol-value fmap)
|
||||
props)
|
||||
;; Emacs 21 compatibility:
|
||||
(apply 'tool-bar-add-item-from-menu
|
||||
command icon (symbol-value fmap)
|
||||
props))))
|
||||
t))
|
||||
(if (symbolp icon-list)
|
||||
(eval icon-list)
|
||||
icon-list))
|
||||
tool-bar-map))
|
||||
|
||||
;; WARNING: The following is subject to change. Don't rely on it yet.
|
||||
|
||||
;; From MH-E without modifications:
|
||||
|
||||
(defmacro gmm-defun-compat (name function arg-list &rest body)
|
||||
"Create function NAME.
|
||||
If FUNCTION exists, then NAME becomes an alias for FUNCTION.
|
||||
Otherwise, create function NAME with ARG-LIST and BODY."
|
||||
(let ((defined-p (fboundp function)))
|
||||
(if defined-p
|
||||
`(defalias ',name ',function)
|
||||
`(defun ,name ,arg-list ,@body))))
|
||||
|
||||
(gmm-defun-compat gmm-image-search-load-path
|
||||
image-search-load-path (file &optional path)
|
||||
"Emacs 21 and XEmacs don't have `image-search-load-path'.
|
||||
This function returns nil on those systems."
|
||||
nil)
|
||||
|
||||
;; From MH-E with modifications:
|
||||
|
||||
;; Don't use `gmm-defun-compat' until API changes in
|
||||
;; `image-load-path-for-library' in Emacs CVS are completed.
|
||||
|
||||
(defun gmm-image-load-path-for-library (library image &optional path no-error)
|
||||
"Return a suitable search path for images relative to LIBRARY.
|
||||
|
||||
First it searches for IMAGE in `image-load-path' (excluding
|
||||
\"`data-directory'/images\") and `load-path', followed by a path
|
||||
suitable for LIBRARY, which includes \"../../etc/images\" and
|
||||
\"../etc/images\" relative to the library file itself, and then
|
||||
in \"`data-directory'/images\".
|
||||
|
||||
Then this function returns a list of directories which contains
|
||||
first the directory in which IMAGE was found, followed by the
|
||||
value of `load-path'. If PATH is given, it is used instead of
|
||||
`load-path'.
|
||||
|
||||
If NO-ERROR is non-nil and a suitable path can't be found, don't
|
||||
signal an error. Instead, return a list of directories as before,
|
||||
except that nil appears in place of the image directory.
|
||||
|
||||
Here is an example that uses a common idiom to provide
|
||||
compatibility with versions of Emacs that lack the variable
|
||||
`image-load-path':
|
||||
|
||||
;; Shush compiler.
|
||||
(defvar image-load-path)
|
||||
|
||||
(let* ((load-path (image-load-path-for-library \"mh-e\" \"mh-logo.xpm\"))
|
||||
(image-load-path (cons (car load-path)
|
||||
(when (boundp 'image-load-path)
|
||||
image-load-path))))
|
||||
(mh-tool-bar-folder-buttons-init))"
|
||||
(unless library (error "No library specified"))
|
||||
(unless image (error "No image specified"))
|
||||
(let (image-directory image-directory-load-path)
|
||||
;; Check for images in image-load-path or load-path.
|
||||
(let ((img image)
|
||||
(dir (or
|
||||
;; Images in image-load-path.
|
||||
(gmm-image-search-load-path image) ;; "gmm-" prefix!
|
||||
;; 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.
|
||||
(when dir
|
||||
(setq dir (file-name-directory dir))
|
||||
(while (setq parent (file-name-directory img))
|
||||
(setq img (directory-file-name parent)
|
||||
dir (expand-file-name "../" dir))))
|
||||
(setq image-directory-load-path dir))
|
||||
|
||||
;; If `image-directory-load-path' isn't Emacs' image directory,
|
||||
;; it's probably a user preference, so use it. Then use a
|
||||
;; relative setting if possible; otherwise, use
|
||||
;; `image-directory-load-path'.
|
||||
(cond
|
||||
;; User-modified image-load-path?
|
||||
((and image-directory-load-path
|
||||
(not (equal image-directory-load-path
|
||||
(file-name-as-directory
|
||||
(expand-file-name "images" data-directory)))))
|
||||
(setq image-directory image-directory-load-path))
|
||||
;; 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 (file-name-as-directory
|
||||
(expand-file-name
|
||||
(concat (file-name-directory library-name) "../../etc/images")))
|
||||
;; Go down 1 level.
|
||||
d1ei (file-name-as-directory
|
||||
(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)))))
|
||||
;; Use Emacs' image directory.
|
||||
(image-directory-load-path
|
||||
(setq image-directory image-directory-load-path))
|
||||
(no-error
|
||||
(message "Could not find image %s for library %s" image library))
|
||||
(t
|
||||
(error "Could not find image %s for library %s" image library)))
|
||||
|
||||
;; Return an augmented `path' or `load-path'.
|
||||
(nconc (list image-directory)
|
||||
(delete image-directory (copy-sequence (or path load-path))))))
|
||||
|
||||
(defun gmm-customize-mode (&optional mode)
|
||||
"Customize customization group for MODE.
|
||||
If mode is nil, use `major-mode' of the curent buffer."
|
||||
(interactive)
|
||||
(customize-group
|
||||
(or mode
|
||||
(intern (let ((mode (symbol-name major-mode)))
|
||||
(string-match "^\\(.+\\)-mode$" mode)
|
||||
(match-string 1 mode))))))
|
||||
|
||||
(provide 'gmm-utils)
|
||||
|
||||
;; arch-tag: e0b60920-2ce6-40c1-bfc0-cadbbe26b602
|
||||
;;; gmm-utils.el ends here
|
||||
|
|
@ -3809,6 +3809,7 @@ commands:
|
|||
(make-local-variable 'gnus-article-ignored-charsets)
|
||||
;; Prevent recent Emacsen from displaying non-break space as "\ ".
|
||||
(set (make-local-variable 'nobreak-char-display) nil)
|
||||
(setq cursor-in-non-selected-windows nil)
|
||||
(gnus-set-default-directory)
|
||||
(buffer-disable-undo)
|
||||
(setq buffer-read-only t)
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@
|
|||
(require 'gnus-range)
|
||||
(require 'gnus-win)
|
||||
(require 'gnus-undo)
|
||||
(require 'gmm-utils)
|
||||
(require 'time-date)
|
||||
(require 'gnus-ems)
|
||||
|
||||
|
|
@ -979,36 +980,135 @@ simple manner.")
|
|||
|
||||
(gnus-run-hooks 'gnus-group-menu-hook)))
|
||||
|
||||
(defvar gnus-group-toolbar-map nil)
|
||||
|
||||
;; Emacs 21 tool bar. Should be no-op otherwise.
|
||||
(defun gnus-group-make-tool-bar ()
|
||||
(if (and
|
||||
(condition-case nil (require 'tool-bar) (error nil))
|
||||
(fboundp 'tool-bar-add-item-from-menu)
|
||||
(default-value 'tool-bar-mode)
|
||||
(not gnus-group-toolbar-map))
|
||||
(setq gnus-group-toolbar-map
|
||||
(let ((tool-bar-map (make-sparse-keymap))
|
||||
(load-path (mm-image-load-path)))
|
||||
(tool-bar-add-item-from-menu
|
||||
'gnus-group-get-new-news "get-news" gnus-group-mode-map)
|
||||
(tool-bar-add-item-from-menu
|
||||
'gnus-group-get-new-news-this-group "gnntg" gnus-group-mode-map)
|
||||
(tool-bar-add-item-from-menu
|
||||
'gnus-group-catchup-current "catchup" gnus-group-mode-map)
|
||||
(tool-bar-add-item-from-menu
|
||||
'gnus-group-describe-group "describe-group" gnus-group-mode-map)
|
||||
(tool-bar-add-item "subscribe" 'gnus-group-subscribe 'subscribe
|
||||
:help "Subscribe to the current group")
|
||||
(tool-bar-add-item "unsubscribe" 'gnus-group-unsubscribe
|
||||
'unsubscribe
|
||||
:help "Unsubscribe from the current group")
|
||||
(tool-bar-add-item-from-menu
|
||||
'gnus-group-exit "exit-gnus" gnus-group-mode-map)
|
||||
tool-bar-map)))
|
||||
(if gnus-group-toolbar-map
|
||||
(set (make-local-variable 'tool-bar-map) gnus-group-toolbar-map)))
|
||||
(defvar gnus-group-tool-bar-map nil)
|
||||
|
||||
(defun gnus-group-tool-bar-update (&optional symbol value)
|
||||
"Update group buffer toolbar.
|
||||
Setter function for custom variables."
|
||||
(when symbol
|
||||
(set-default symbol value))
|
||||
;; (setq-default gnus-group-tool-bar-map nil)
|
||||
;; (use-local-map gnus-group-mode-map)
|
||||
(when (gnus-alive-p)
|
||||
(with-current-buffer gnus-group-buffer
|
||||
(gnus-group-make-tool-bar t))))
|
||||
|
||||
(defcustom gnus-group-tool-bar (if (eq gmm-tool-bar-style 'gnome)
|
||||
'gnus-group-tool-bar-gnome
|
||||
'gnus-group-tool-bar-retro)
|
||||
"Specifies the Gnus group tool bar.
|
||||
|
||||
It can be either a list or a symbol refering to a list. See
|
||||
`gmm-tool-bar-from-list' for the format of the list. The
|
||||
default key map is `gnus-group-mode-map'.
|
||||
|
||||
Pre-defined symbols include `gnus-group-tool-bar-gnome' and
|
||||
`gnus-group-tool-bar-retro'."
|
||||
:type '(choice (const :tag "GNOME style" gnus-group-tool-bar-gnome)
|
||||
(const :tag "Retro look" gnus-group-tool-bar-retro)
|
||||
(repeat :tag "User defined list" gmm-tool-bar-item)
|
||||
(symbol))
|
||||
:version "22.1" ;; Gnus 5.10.9
|
||||
:initialize 'custom-initialize-default
|
||||
:set 'gnus-group-tool-bar-update
|
||||
:group 'gnus-group)
|
||||
|
||||
(defcustom gnus-group-tool-bar-gnome
|
||||
'((gnus-group-post-news "mail/compose")
|
||||
;; Some useful agent icons? I don't use the agent so agent users should
|
||||
;; suggest useful commands:
|
||||
(gnus-agent-toggle-plugged "connect" t
|
||||
:visible (and gnus-agent (not gnus-plugged)))
|
||||
(gnus-agent-toggle-plugged "disconnect" t
|
||||
:visible (and gnus-agent gnus-plugged))
|
||||
;; FIXME: gnus-agent-toggle-plugged (in gnus-agent-group-make-menu-bar)
|
||||
;; should have a better help text.
|
||||
(gnus-group-send-queue "mail/outbox" t
|
||||
:visible (and gnus-agent gnus-plugged)
|
||||
:help "Send articles from the queue group")
|
||||
(gnus-group-get-new-news "mail/inbox" nil
|
||||
:visible (or (not gnus-agent)
|
||||
gnus-plugged))
|
||||
;; FIXME: gnus-*-read-group should have a better help text.
|
||||
(gnus-topic-read-group "open" nil
|
||||
:visible (and (boundp 'gnus-topic-mode)
|
||||
gnus-topic-mode))
|
||||
(gnus-group-read-group "open" nil
|
||||
:visible (not (and (boundp 'gnus-topic-mode)
|
||||
gnus-topic-mode)))
|
||||
;; (gnus-group-find-new-groups "???" nil)
|
||||
(gnus-group-save-newsrc "save")
|
||||
(gnus-group-describe-group "describe")
|
||||
(gnus-group-unsubscribe-current-group "gnus/toggle-subscription")
|
||||
(gnus-group-prev-unread-group "left-arrow")
|
||||
(gnus-group-next-unread-group "right-arrow")
|
||||
(gnus-group-exit "exit")
|
||||
(gmm-customize-mode "preferences" t :help "Edit mode preferences")
|
||||
(gnus-info-find-node "help"))
|
||||
"List of functions for the group tool bar (GNOME style).
|
||||
|
||||
See `gmm-tool-bar-from-list' for the format of the list."
|
||||
:type '(repeat gmm-tool-bar-item)
|
||||
:version "22.1" ;; Gnus 5.10.9
|
||||
:initialize 'custom-initialize-default
|
||||
:set 'gnus-group-tool-bar-update
|
||||
:group 'gnus-group)
|
||||
|
||||
(defcustom gnus-group-tool-bar-retro
|
||||
'((gnus-group-get-new-news "gnus/get-news")
|
||||
(gnus-group-get-new-news-this-group "gnus/gnntg")
|
||||
(gnus-group-catchup-current "gnus/catchup")
|
||||
(gnus-group-describe-group "gnus/describe-group")
|
||||
(gnus-group-subscribe "gnus/subscribe" t
|
||||
:help "Subscribe to the current group")
|
||||
(gnus-group-unsubscribe "gnus/unsubscribe" t
|
||||
:help "Unsubscribe from the current group")
|
||||
(gnus-group-exit "gnus/exit-gnus" gnus-group-mode-map))
|
||||
"List of functions for the group tool bar (retro look).
|
||||
|
||||
See `gmm-tool-bar-from-list' for the format of the list."
|
||||
:type '(repeat gmm-tool-bar-item)
|
||||
:version "22.1" ;; Gnus 5.10.9
|
||||
:initialize 'custom-initialize-default
|
||||
:set 'gnus-group-tool-bar-update
|
||||
:group 'gnus-group)
|
||||
|
||||
(defcustom gnus-group-tool-bar-zap-list t
|
||||
"List of icon items from the global tool bar.
|
||||
These items are not displayed in the Gnus group mode tool bar.
|
||||
|
||||
See `gmm-tool-bar-from-list' for the format of the list."
|
||||
:type 'gmm-tool-bar-zap-list
|
||||
:version "22.1" ;; Gnus 5.10.9
|
||||
:initialize 'custom-initialize-default
|
||||
:set 'gnus-group-tool-bar-update
|
||||
:group 'gnus-group)
|
||||
|
||||
(defvar image-load-path)
|
||||
|
||||
(defun gnus-group-make-tool-bar (&optional force)
|
||||
"Make a group mode tool bar from `gnus-group-tool-bar'.
|
||||
When FORCE, rebuild the tool bar."
|
||||
(when (and (not (featurep 'xemacs))
|
||||
(boundp 'tool-bar-mode)
|
||||
tool-bar-mode
|
||||
;; The Gnus 5.10.6 code checked (default-value 'tool-bar-mode).
|
||||
;; Why? --rsteib
|
||||
(or (not gnus-group-tool-bar-map) force))
|
||||
(let* ((load-path
|
||||
(gmm-image-load-path-for-library "gnus"
|
||||
"gnus/toggle-subscription.xpm"
|
||||
nil t))
|
||||
(image-load-path (cons (car load-path)
|
||||
(when (boundp 'image-load-path)
|
||||
image-load-path)))
|
||||
(map (gmm-tool-bar-from-list gnus-group-tool-bar
|
||||
gnus-group-tool-bar-zap-list
|
||||
'gnus-group-mode-map)))
|
||||
(if map
|
||||
(set (make-local-variable 'tool-bar-map) map))))
|
||||
gnus-group-tool-bar-map)
|
||||
|
||||
(defun gnus-group-mode ()
|
||||
"Major mode for reading news.
|
||||
|
|
@ -1379,6 +1479,17 @@ if it is a string, only list groups matching REGEXP."
|
|||
(gnus-range-difference (list active) (gnus-info-read info))
|
||||
seen))))))
|
||||
|
||||
;; Moving through the Group buffer (in topic mode) e.g. with C-n doesn't
|
||||
;; update the state (enabled/disabled) of the icon `gnus-group-describe-group'
|
||||
;; automatically. After `C-l' the state is correct. See the following report
|
||||
;; on emacs-devel
|
||||
;; <http://thread.gmane.org/v9acdmrcse.fsf@marauder.physik.uni-ulm.de>:
|
||||
;; From: Reiner Steib
|
||||
;; Subject: tool bar icons not updated according to :active condition
|
||||
;; Newsgroups: gmane.emacs.devel
|
||||
;; Date: Mon, 23 Jan 2006 19:59:13 +0100
|
||||
;; Message-ID: <v9acdmrcse.fsf@marauder.physik.uni-ulm.de>
|
||||
|
||||
(defcustom gnus-group-update-tool-bar
|
||||
(and (not (featurep 'xemacs))
|
||||
(boundp 'tool-bar-mode)
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@
|
|||
(require 'gnus-int)
|
||||
(require 'gnus-undo)
|
||||
(require 'gnus-util)
|
||||
(require 'gmm-utils)
|
||||
(require 'mm-decode)
|
||||
(require 'nnoo)
|
||||
|
||||
|
|
@ -2546,47 +2547,161 @@ gnus-summary-show-article-from-menu-as-charset-%s" cs))))
|
|||
|
||||
(defvar gnus-summary-tool-bar-map nil)
|
||||
|
||||
;; Emacs 21 tool bar. Should be no-op otherwise.
|
||||
(defun gnus-summary-make-tool-bar ()
|
||||
(if (and (fboundp 'tool-bar-add-item-from-menu)
|
||||
(default-value 'tool-bar-mode)
|
||||
(not gnus-summary-tool-bar-map))
|
||||
(setq gnus-summary-tool-bar-map
|
||||
(let ((tool-bar-map (make-sparse-keymap))
|
||||
(load-path (mm-image-load-path)))
|
||||
(tool-bar-add-item-from-menu
|
||||
'gnus-summary-prev-unread "prev-ur" gnus-summary-mode-map)
|
||||
(tool-bar-add-item-from-menu
|
||||
'gnus-summary-next-unread "next-ur" gnus-summary-mode-map)
|
||||
(tool-bar-add-item-from-menu
|
||||
'gnus-summary-post-news "post" gnus-summary-mode-map)
|
||||
(tool-bar-add-item-from-menu
|
||||
'gnus-summary-followup-with-original "fuwo" gnus-summary-mode-map)
|
||||
(tool-bar-add-item-from-menu
|
||||
'gnus-summary-followup "followup" gnus-summary-mode-map)
|
||||
(tool-bar-add-item-from-menu
|
||||
'gnus-summary-reply-with-original "reply-wo" gnus-summary-mode-map)
|
||||
(tool-bar-add-item-from-menu
|
||||
'gnus-summary-reply "reply" gnus-summary-mode-map)
|
||||
(tool-bar-add-item-from-menu
|
||||
'gnus-summary-caesar-message "rot13" gnus-summary-mode-map)
|
||||
(tool-bar-add-item-from-menu
|
||||
'gnus-uu-decode-uu "uu-decode" gnus-summary-mode-map)
|
||||
(tool-bar-add-item-from-menu
|
||||
'gnus-summary-save-article-file "save-aif" gnus-summary-mode-map)
|
||||
(tool-bar-add-item-from-menu
|
||||
'gnus-summary-save-article "save-art" gnus-summary-mode-map)
|
||||
(tool-bar-add-item-from-menu
|
||||
'gnus-uu-post-news "uu-post" gnus-summary-mode-map)
|
||||
(tool-bar-add-item-from-menu
|
||||
'gnus-summary-catchup "catchup" gnus-summary-mode-map)
|
||||
(tool-bar-add-item-from-menu
|
||||
'gnus-summary-catchup-and-exit "cu-exit" gnus-summary-mode-map)
|
||||
(tool-bar-add-item-from-menu
|
||||
'gnus-summary-exit "exit-summ" gnus-summary-mode-map)
|
||||
tool-bar-map)))
|
||||
(if gnus-summary-tool-bar-map
|
||||
(set (make-local-variable 'tool-bar-map) gnus-summary-tool-bar-map)))
|
||||
;; Note: The :set function in the `gnus-summary-tool-bar*' variables will only
|
||||
;; affect _new_ message buffers. We might add a function that walks thru all
|
||||
;; summary-mode buffers and force the update.
|
||||
(defun gnus-summary-tool-bar-update (&optional symbol value)
|
||||
"Update summary mode toolbar.
|
||||
Setter function for custom variables."
|
||||
(setq-default gnus-summary-tool-bar-map nil)
|
||||
(when symbol
|
||||
;; When used as ":set" function:
|
||||
(set-default symbol value))
|
||||
(when (gnus-buffer-live-p gnus-summary-buffer)
|
||||
(with-current-buffer gnus-summary-buffer
|
||||
(gnus-summary-make-tool-bar))))
|
||||
|
||||
(defcustom gnus-summary-tool-bar (if (eq gmm-tool-bar-style 'gnome)
|
||||
'gnus-summary-tool-bar-gnome
|
||||
'gnus-summary-tool-bar-retro)
|
||||
"Specifies the Gnus summary tool bar.
|
||||
|
||||
It can be either a list or a symbol refering to a list. See
|
||||
`gmm-tool-bar-from-list' for the format of the list. The
|
||||
default key map is `gnus-summary-mode-map'.
|
||||
|
||||
Pre-defined symbols include `gnus-summary-tool-bar-gnome' and
|
||||
`gnus-summary-tool-bar-retro'."
|
||||
:type '(choice (const :tag "GNOME style" gnus-summary-tool-bar-gnome)
|
||||
(const :tag "Retro look" gnus-summary-tool-bar-retro)
|
||||
(repeat :tag "User defined list" gmm-tool-bar-item)
|
||||
(symbol))
|
||||
:version "22.1" ;; Gnus 5.10.9
|
||||
:initialize 'custom-initialize-default
|
||||
:set 'gnus-summary-tool-bar-update
|
||||
:group 'gnus-summary)
|
||||
|
||||
(defcustom gnus-summary-tool-bar-gnome
|
||||
'((gnus-summary-post-news "mail/compose" nil)
|
||||
(gnus-summary-insert-new-articles "mail/inbox" nil
|
||||
:visible (or (not gnus-agent)
|
||||
gnus-plugged))
|
||||
(gnus-summary-reply-with-original "mail/reply")
|
||||
(gnus-summary-reply "mail/reply" nil :visible nil)
|
||||
(gnus-summary-followup-with-original "mail/reply-all")
|
||||
(gnus-summary-followup "mail/reply-all" nil :visible nil)
|
||||
(gnus-summary-mail-forward "mail/forward")
|
||||
(gnus-summary-save-article "mail/save")
|
||||
(gnus-summary-search-article-forward "search" nil :visible nil)
|
||||
(gnus-summary-print-article "print")
|
||||
(gnus-summary-tick-article-forward "flag-followup" nil :visible nil)
|
||||
;; Some new commands that may need more suitable icons:
|
||||
(gnus-summary-save-newsrc "save" nil :visible nil)
|
||||
;; (gnus-summary-show-article "stock_message-display" nil :visible nil)
|
||||
(gnus-summary-prev-article "left-arrow")
|
||||
(gnus-summary-next-article "right-arrow")
|
||||
(gnus-summary-next-page "next-page")
|
||||
;; (gnus-summary-enter-digest-group "right_arrow" nil :visible nil)
|
||||
;;
|
||||
;; Maybe some sort-by-... could be added:
|
||||
;; (gnus-summary-sort-by-author "sort-a-z" nil :visible nil)
|
||||
;; (gnus-summary-sort-by-date "sort-1-9" nil :visible nil)
|
||||
(gnus-summary-mark-as-expirable
|
||||
"delete" nil
|
||||
:visible (gnus-check-backend-function 'request-expire-articles
|
||||
gnus-newsgroup-name))
|
||||
(gnus-summary-mark-as-spam
|
||||
"mail/spam" t
|
||||
:visible (and (fboundp 'spam-group-ham-contents-p)
|
||||
(spam-group-ham-contents-p gnus-newsgroup-name))
|
||||
:help "Mark as spam")
|
||||
(gnus-summary-mark-as-read-forward
|
||||
"mail/not-spam" nil
|
||||
:visible (and (fboundp 'spam-group-spam-contents-p)
|
||||
(spam-group-spam-contents-p gnus-newsgroup-name)))
|
||||
;;
|
||||
(gnus-summary-exit "exit")
|
||||
(gmm-customize-mode "preferences" t :help "Edit mode preferences")
|
||||
(gnus-info-find-node "help"))
|
||||
"List of functions for the summary tool bar (GNOME style).
|
||||
|
||||
See `gmm-tool-bar-from-list' for the format of the list."
|
||||
:type '(repeat gmm-tool-bar-item)
|
||||
:version "22.1" ;; Gnus 5.10.9
|
||||
:initialize 'custom-initialize-default
|
||||
:set 'gnus-summary-tool-bar-update
|
||||
:group 'gnus-summary)
|
||||
|
||||
(defcustom gnus-summary-tool-bar-retro
|
||||
'((gnus-summary-prev-unread-article "gnus/prev-ur")
|
||||
(gnus-summary-next-unread-article "gnus/next-ur")
|
||||
(gnus-summary-post-news "gnus/post")
|
||||
(gnus-summary-followup-with-original "gnus/fuwo")
|
||||
(gnus-summary-followup "gnus/followup")
|
||||
(gnus-summary-reply-with-original "gnus/reply-wo")
|
||||
(gnus-summary-reply "gnus/reply")
|
||||
(gnus-summary-caesar-message "gnus/rot13")
|
||||
(gnus-uu-decode-uu "gnus/uu-decode")
|
||||
(gnus-summary-save-article-file "gnus/save-aif")
|
||||
(gnus-summary-save-article "gnus/save-art")
|
||||
(gnus-uu-post-news "gnus/uu-post")
|
||||
(gnus-summary-catchup "gnus/catchup")
|
||||
(gnus-summary-catchup-and-exit "gnus/cu-exit")
|
||||
(gnus-summary-exit "gnus/exit-summ")
|
||||
;; Some new command that may need more suitable icons:
|
||||
(gnus-summary-print-article "gnus/print" nil :visible nil)
|
||||
(gnus-summary-mark-as-expirable "gnus/close" nil :visible nil)
|
||||
(gnus-summary-save-newsrc "gnus/save" nil :visible nil)
|
||||
;; (gnus-summary-enter-digest-group "gnus/right_arrow" nil :visible nil)
|
||||
(gnus-summary-search-article-forward "gnus/search" nil :visible nil)
|
||||
;; (gnus-summary-insert-new-articles "gnus/paste" nil :visible nil)
|
||||
;; (gnus-summary-toggle-threads "gnus/open" nil :visible nil)
|
||||
;;
|
||||
(gnus-info-find-node "gnus/help" nil :visible nil))
|
||||
"List of functions for the summary tool bar (retro look).
|
||||
|
||||
See `gmm-tool-bar-from-list' for the format of the list."
|
||||
:type '(repeat gmm-tool-bar-item)
|
||||
:version "22.1" ;; Gnus 5.10.9
|
||||
:initialize 'custom-initialize-default
|
||||
:set 'gnus-summary-tool-bar-update
|
||||
:group 'gnus-summary)
|
||||
|
||||
(defcustom gnus-summary-tool-bar-zap-list t
|
||||
"List of icon items from the global tool bar.
|
||||
These items are not displayed in the Gnus summary mode tool bar.
|
||||
|
||||
See `gmm-tool-bar-from-list' for the format of the list."
|
||||
:type 'gmm-tool-bar-zap-list
|
||||
:version "22.1" ;; Gnus 5.10.9
|
||||
:initialize 'custom-initialize-default
|
||||
:set 'gnus-summary-tool-bar-update
|
||||
:group 'gnus-summary)
|
||||
|
||||
(defvar image-load-path)
|
||||
|
||||
(defun gnus-summary-make-tool-bar (&optional force)
|
||||
"Make a summary mode tool bar from `gnus-summary-tool-bar'.
|
||||
When FORCE, rebuild the tool bar."
|
||||
(when (and (not (featurep 'xemacs))
|
||||
(boundp 'tool-bar-mode)
|
||||
tool-bar-mode
|
||||
(or (not gnus-summary-tool-bar-map) force))
|
||||
(let* ((load-path
|
||||
(gmm-image-load-path-for-library "gnus"
|
||||
"mail/save.xpm"
|
||||
nil t))
|
||||
(image-load-path (cons (car load-path)
|
||||
(when (boundp 'image-load-path)
|
||||
image-load-path)))
|
||||
(map (gmm-tool-bar-from-list gnus-summary-tool-bar
|
||||
gnus-summary-tool-bar-zap-list
|
||||
'gnus-summary-mode-map)))
|
||||
(when map
|
||||
;; Need to set `gnus-summary-tool-bar-map' because `gnus-article-mode'
|
||||
;; uses it's value.
|
||||
(setq gnus-summary-tool-bar-map map))))
|
||||
(set (make-local-variable 'tool-bar-map) gnus-summary-tool-bar-map))
|
||||
|
||||
(defun gnus-score-set-default (var value)
|
||||
"A version of set that updates the GNU Emacs menu-bar."
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
(defvar gnus-list-identifiers)) ; gnus-sum is required where necessary
|
||||
(require 'canlock)
|
||||
(require 'mailheader)
|
||||
(require 'gmm-utils)
|
||||
(require 'nnheader)
|
||||
;; This is apparently necessary even though things are autoloaded.
|
||||
;; Because we dynamically bind mail-abbrev-mode-regexp, we'd better
|
||||
|
|
@ -2529,7 +2530,7 @@ M-RET `message-newline-and-reformat' (break the line and reformat)."
|
|||
(set (make-local-variable 'font-lock-defaults)
|
||||
'(message-font-lock-keywords t))
|
||||
(if (boundp 'tool-bar-map)
|
||||
(set (make-local-variable 'tool-bar-map) (message-tool-bar-map))))
|
||||
(set (make-local-variable 'tool-bar-map) (message-make-tool-bar))))
|
||||
(easy-menu-add message-mode-menu message-mode-map)
|
||||
(easy-menu-add message-mode-field-menu message-mode-map)
|
||||
(gnus-make-local-hook 'after-change-functions)
|
||||
|
|
@ -6586,53 +6587,123 @@ which specify the range to operate on."
|
|||
|
||||
;; Support for toolbar
|
||||
(eval-when-compile
|
||||
(defvar tool-bar-map)
|
||||
(defvar tool-bar-mode))
|
||||
|
||||
(defun message-tool-bar-local-item-from-menu (command icon in-map &optional from-map &rest props)
|
||||
;; We need to make tool bar entries in local keymaps with
|
||||
;; `tool-bar-local-item-from-menu' in Emacs >= 22
|
||||
(if (fboundp 'tool-bar-local-item-from-menu)
|
||||
(tool-bar-local-item-from-menu command icon in-map from-map props)
|
||||
(tool-bar-add-item-from-menu command icon from-map props)))
|
||||
;; Note: The :set function in the `message-tool-bar*' variables will only
|
||||
;; affect _new_ message buffers. We might add a function that walks thru all
|
||||
;; message-mode buffers and force the update.
|
||||
(defun message-tool-bar-update (&optional symbol value)
|
||||
"Update message mode toolbar.
|
||||
Setter function for custom variables."
|
||||
(setq-default message-tool-bar-map nil)
|
||||
(when symbol
|
||||
;; When used as ":set" function:
|
||||
(set-default symbol value)))
|
||||
|
||||
(defun message-tool-bar-map ()
|
||||
(or message-tool-bar-map
|
||||
(setq message-tool-bar-map
|
||||
(and
|
||||
(condition-case nil (require 'tool-bar) (error nil))
|
||||
(fboundp 'tool-bar-add-item-from-menu)
|
||||
(defcustom message-tool-bar (if (eq gmm-tool-bar-style 'gnome)
|
||||
'message-tool-bar-gnome
|
||||
'message-tool-bar-retro)
|
||||
"Specifies the message mode tool bar.
|
||||
|
||||
It can be either a list or a symbol refering to a list. See
|
||||
`gmm-tool-bar-from-list' for the format of the list. The
|
||||
default key map is `message-mode-map'.
|
||||
|
||||
Pre-defined symbols include `message-tool-bar-gnome' and
|
||||
`message-tool-bar-retro'."
|
||||
:type '(repeat gmm-tool-bar-list-item)
|
||||
:type '(choice (const :tag "GNOME style" message-tool-bar-gnome)
|
||||
(const :tag "Retro look" message-tool-bar-retro)
|
||||
(repeat :tag "User defined list" gmm-tool-bar-item)
|
||||
(symbol))
|
||||
:version "22.1" ;; Gnus 5.10.9
|
||||
:initialize 'custom-initialize-default
|
||||
:set 'message-tool-bar-update
|
||||
:group 'message)
|
||||
|
||||
(defcustom message-tool-bar-gnome
|
||||
'((ispell-message "spell" nil
|
||||
:visible (or (not (boundp 'flyspell-mode))
|
||||
(not flyspell-mode)))
|
||||
(flyspell-buffer "spell" t
|
||||
:visible (and (boundp 'flyspell-mode)
|
||||
flyspell-mode)
|
||||
:help "Flyspell whole buffer")
|
||||
(gmm-ignore "separator")
|
||||
(message-send-and-exit "mail/send")
|
||||
(message-dont-send "mail/save-draft")
|
||||
(message-kill-buffer "close") ;; stock_cancel
|
||||
(mml-attach-file "attach" mml-mode-map)
|
||||
(mml-preview "mail/preview" mml-mode-map)
|
||||
;; (mml-secure-message-sign-encrypt "lock" mml-mode-map :visible nil)
|
||||
(message-insert-importance-high "important" nil :visible nil)
|
||||
(message-insert-importance-low "unimportant" nil :visible nil)
|
||||
(message-insert-disposition-notification-to "receipt" nil :visible nil)
|
||||
(gmm-customize-mode "preferences" t :help "Edit mode preferences")
|
||||
(message-info "help" t :help "Message manual"))
|
||||
"List of items for the message tool bar (GNOME style).
|
||||
|
||||
See `gmm-tool-bar-from-list' for details on the format of the list."
|
||||
:type '(repeat gmm-tool-bar-item)
|
||||
:version "22.1" ;; Gnus 5.10.9
|
||||
:initialize 'custom-initialize-default
|
||||
:set 'message-tool-bar-update
|
||||
:group 'message)
|
||||
|
||||
(defcustom message-tool-bar-retro
|
||||
'(;; Old Emacs 21 icon for consistency.
|
||||
(message-send-and-exit "gnus/mail_send")
|
||||
(message-kill-buffer "close")
|
||||
(message-dont-send "cancel")
|
||||
(mml-attach-file "attach" mml-mode-map)
|
||||
(ispell-message "spell")
|
||||
(mml-preview "preview" mml-mode-map)
|
||||
(message-insert-importance-high "gnus/important")
|
||||
(message-insert-importance-low "gnus/unimportant")
|
||||
(message-insert-disposition-notification-to "gnus/receipt"))
|
||||
"List of items for the message tool bar (retro style).
|
||||
|
||||
See `gmm-tool-bar-from-list' for details on the format of the list."
|
||||
:type '(repeat gmm-tool-bar-item)
|
||||
:version "22.1" ;; Gnus 5.10.9
|
||||
:initialize 'custom-initialize-default
|
||||
:set 'message-tool-bar-update
|
||||
:group 'message)
|
||||
|
||||
(defcustom message-tool-bar-zap-list
|
||||
'(new-file open-file dired kill-buffer write-file
|
||||
print-buffer customize help)
|
||||
"List of icon items from the global tool bar.
|
||||
These items are not displayed on the message mode tool bar.
|
||||
|
||||
See `gmm-tool-bar-from-list' for the format of the list."
|
||||
:type 'gmm-tool-bar-zap-list
|
||||
:version "22.1" ;; Gnus 5.10.9
|
||||
:initialize 'custom-initialize-default
|
||||
:set 'message-tool-bar-update
|
||||
:group 'message)
|
||||
|
||||
(defvar image-load-path)
|
||||
|
||||
(defun message-make-tool-bar (&optional force)
|
||||
"Make a message mode tool bar from `message-tool-bar-list'.
|
||||
When FORCE, rebuild the tool bar."
|
||||
(when (and (not (featurep 'xemacs))
|
||||
(boundp 'tool-bar-mode)
|
||||
tool-bar-mode
|
||||
(let ((tool-bar-map (copy-keymap tool-bar-map))
|
||||
(load-path (mm-image-load-path)))
|
||||
;; Zap some items which aren't so relevant and take
|
||||
;; up space.
|
||||
(dolist (key '(print-buffer kill-buffer save-buffer
|
||||
write-file dired open-file))
|
||||
(define-key tool-bar-map (vector key) nil))
|
||||
(message-tool-bar-local-item-from-menu
|
||||
'message-send-and-exit "mail/send" tool-bar-map message-mode-map)
|
||||
(message-tool-bar-local-item-from-menu
|
||||
'message-kill-buffer "close" tool-bar-map message-mode-map)
|
||||
(message-tool-bar-local-item-from-menu
|
||||
'message-dont-send "cancel" tool-bar-map message-mode-map)
|
||||
(message-tool-bar-local-item-from-menu
|
||||
'mml-attach-file "attach" tool-bar-map mml-mode-map)
|
||||
(message-tool-bar-local-item-from-menu
|
||||
'ispell-message "spell" tool-bar-map message-mode-map)
|
||||
(message-tool-bar-local-item-from-menu
|
||||
'mml-preview "preview"
|
||||
tool-bar-map mml-mode-map)
|
||||
(message-tool-bar-local-item-from-menu
|
||||
'message-insert-importance-high "important"
|
||||
tool-bar-map message-mode-map)
|
||||
(message-tool-bar-local-item-from-menu
|
||||
'message-insert-importance-low "unimportant"
|
||||
tool-bar-map message-mode-map)
|
||||
(message-tool-bar-local-item-from-menu
|
||||
'message-insert-disposition-notification-to "receipt"
|
||||
tool-bar-map message-mode-map)
|
||||
tool-bar-map)))))
|
||||
(or (not message-tool-bar-map) force))
|
||||
(setq message-tool-bar-map
|
||||
(let* ((load-path
|
||||
(gmm-image-load-path-for-library "message"
|
||||
"mail/save-draft.xpm"
|
||||
nil t))
|
||||
(image-load-path (cons (car load-path)
|
||||
(when (boundp 'image-load-path)
|
||||
image-load-path))))
|
||||
(gmm-tool-bar-from-list message-tool-bar
|
||||
message-tool-bar-zap-list
|
||||
'message-mode-map))))
|
||||
message-tool-bar-map)
|
||||
|
||||
;;; Group name completion.
|
||||
|
||||
|
|
|
|||
|
|
@ -56,6 +56,8 @@
|
|||
;; known to break servers.
|
||||
;; Note: UTF-16 variants are invalid for text parts [RFC 2781],
|
||||
;; so this can't happen :-/.
|
||||
;; PPS: Yes, it can happen if the user specifies UTF-16 in the MML
|
||||
;; markup. - jh.
|
||||
(utf-16 . base64)
|
||||
(utf-16be . base64)
|
||||
(utf-16le . base64))
|
||||
|
|
@ -251,7 +253,10 @@ decoding. If it is nil, default to `mail-parse-charset'."
|
|||
(mm-decode-content-transfer-encoding encoding type))
|
||||
(when (and (featurep 'mule) ;; Fixme: Wrong test for unibyte session.
|
||||
(not (eq charset 'gnus-decoded)))
|
||||
(let ((coding-system (mm-charset-to-coding-system charset)))
|
||||
(let ((coding-system (mm-charset-to-coding-system
|
||||
;; Allow overwrite using
|
||||
;; `mm-charset-override-alist'.
|
||||
charset nil t)))
|
||||
(if (and (not coding-system)
|
||||
(listp mail-parse-ignored-charsets)
|
||||
(memq 'gnus-unknown mail-parse-ignored-charsets))
|
||||
|
|
@ -282,7 +287,11 @@ decoding. If it is nil, default to `mail-parse-charset'."
|
|||
(setq charset mail-parse-charset))
|
||||
(or
|
||||
(when (featurep 'mule)
|
||||
(let ((coding-system (mm-charset-to-coding-system charset)))
|
||||
(let ((coding-system (mm-charset-to-coding-system
|
||||
charset
|
||||
;; Allow overwrite using
|
||||
;; `mm-charset-override-alist'.
|
||||
nil t)))
|
||||
(if (and (not coding-system)
|
||||
(listp mail-parse-ignored-charsets)
|
||||
(memq 'gnus-unknown mail-parse-ignored-charsets))
|
||||
|
|
|
|||
|
|
@ -177,6 +177,29 @@ system object in XEmacs."
|
|||
;; no-MULE XEmacs:
|
||||
(car (memq cs (mm-get-coding-system-list))))))
|
||||
|
||||
(defun mm-codepage-setup (number &optional alias)
|
||||
"Create a coding system cpNUMBER.
|
||||
The coding system is created using `codepage-setup'. If ALIAS is
|
||||
non-nil, an alias is created and added to
|
||||
`mm-charset-synonym-alist'. If ALIAS is a string, it's used as
|
||||
the alias. Else windows-NUMBER is used."
|
||||
(interactive
|
||||
(let ((completion-ignore-case t)
|
||||
(candidates (cp-supported-codepages)))
|
||||
(list (completing-read "Setup DOS Codepage: (default 437) " candidates
|
||||
nil t nil nil "437"))))
|
||||
(when alias
|
||||
(setq alias (if (stringp alias)
|
||||
(intern alias)
|
||||
(intern (format "windows-%s" number)))))
|
||||
(let* ((cp (intern (format "cp%s" number))))
|
||||
(unless (mm-coding-system-p cp)
|
||||
(codepage-setup number))
|
||||
(when (and alias
|
||||
;; Don't add alias if setup of cp failed.
|
||||
(mm-coding-system-p cp))
|
||||
(add-to-list 'mm-charset-synonym-alist (cons alias cp)))))
|
||||
|
||||
(defvar mm-charset-synonym-alist
|
||||
`(
|
||||
;; Not in XEmacs, but it's not a proper MIME charset anyhow.
|
||||
|
|
@ -200,8 +223,61 @@ system object in XEmacs."
|
|||
,@(if (and (not (mm-coding-system-p 'windows-1250))
|
||||
(mm-coding-system-p 'cp1250))
|
||||
'((windows-1250 . cp1250)))
|
||||
;; A Microsoft misunderstanding.
|
||||
,@(if (and (not (mm-coding-system-p 'unicode))
|
||||
(mm-coding-system-p 'utf-16-le))
|
||||
'((unicode . utf-16-le)))
|
||||
;; A Microsoft misunderstanding.
|
||||
,@(unless (mm-coding-system-p 'ks_c_5601-1987)
|
||||
(if (mm-coding-system-p 'cp949)
|
||||
'((ks_c_5601-1987 . cp949))
|
||||
'((ks_c_5601-1987 . euc-kr))))
|
||||
)
|
||||
"A mapping from invalid charset names to the real charset names.")
|
||||
"A mapping from unknown or invalid charset names to the real charset names.")
|
||||
|
||||
(defcustom mm-charset-override-alist
|
||||
`((iso-8859-1 . windows-1252))
|
||||
"A mapping from undesired charset names to their replacement.
|
||||
|
||||
You may add pairs like (iso-8859-1 . windows-1252) here,
|
||||
i.e. treat iso-8859-1 as windows-1252. windows-1252 is a
|
||||
superset of iso-8859-1."
|
||||
:type '(list (set :inline t
|
||||
(const (iso-8859-1 . windows-1252))
|
||||
(const (undecided . windows-1252)))
|
||||
(repeat :inline t
|
||||
:tag "Other options"
|
||||
(cons (symbol :tag "From charset")
|
||||
(symbol :tag "To charset"))))
|
||||
:version "23.0" ;; No Gnus
|
||||
:group 'mime)
|
||||
|
||||
(defcustom mm-charset-eval-alist
|
||||
(if (featurep 'xemacs)
|
||||
nil ;; I don't know what would be useful for XEmacs.
|
||||
'(;; Emacs 21 offers 1250 1251 1253 1257. Emacs 22 provides autoloads for
|
||||
;; 1250-1258 (i.e. `mm-codepage-setup' does nothing).
|
||||
(windows-1250 . (mm-codepage-setup 1250 t))
|
||||
(windows-1251 . (mm-codepage-setup 1251 t))
|
||||
(windows-1253 . (mm-codepage-setup 1253 t))
|
||||
(windows-1257 . (mm-codepage-setup 1257 t))))
|
||||
"An alist of (CHARSET . FORM) pairs.
|
||||
If an article is encoded in an unknown CHARSET, FORM is
|
||||
evaluated. This allows to load additional libraries providing
|
||||
charsets on demand. If supported by your Emacs version, you
|
||||
could use `autoload-coding-system' here."
|
||||
:version "23.0" ;; No Gnus
|
||||
:type '(list (set :inline t
|
||||
(const (windows-1250 . (mm-codepage-setup 1250 t)))
|
||||
(const (windows-1251 . (mm-codepage-setup 1251 t)))
|
||||
(const (windows-1253 . (mm-codepage-setup 1253 t)))
|
||||
(const (windows-1257 . (mm-codepage-setup 1257 t)))
|
||||
(const (cp850 . (mm-codepage-setup 850 nil))))
|
||||
(repeat :inline t
|
||||
:tag "Other options"
|
||||
(cons (symbol :tag "charset")
|
||||
(symbol :tag "form"))))
|
||||
:group 'mime)
|
||||
|
||||
(defvar mm-binary-coding-system
|
||||
(cond
|
||||
|
|
@ -426,11 +502,17 @@ mail with multiple parts is preferred to sending a Unicode one.")
|
|||
(pop alist))
|
||||
out)))
|
||||
|
||||
(defun mm-charset-to-coding-system (charset &optional lbt)
|
||||
(defun mm-charset-to-coding-system (charset &optional lbt
|
||||
allow-override)
|
||||
"Return coding-system corresponding to CHARSET.
|
||||
CHARSET is a symbol naming a MIME charset.
|
||||
If optional argument LBT (`unix', `dos' or `mac') is specified, it is
|
||||
used as the line break code type of the coding system."
|
||||
used as the line break code type of the coding system.
|
||||
|
||||
If ALLOW-OVERRIDE is given, use `mm-charset-override-alist' to
|
||||
map undesired charset names to their replacement. This should
|
||||
only be used for decoding, not for encoding."
|
||||
;; OVERRIDE is used (only) in `mm-decode-body' and `mm-decode-string'.
|
||||
(when (stringp charset)
|
||||
(setq charset (intern (downcase charset))))
|
||||
(when lbt
|
||||
|
|
@ -442,6 +524,11 @@ used as the line break code type of the coding system."
|
|||
((or (null (mm-get-coding-system-list))
|
||||
(not (fboundp 'coding-system-get)))
|
||||
charset)
|
||||
;; Check override list quite early. Should only used for decoding, not for
|
||||
;; encoding!
|
||||
((and allow-override
|
||||
(let ((cs (cdr (assq charset mm-charset-override-alist))))
|
||||
(and cs (mm-coding-system-p cs) cs))))
|
||||
;; ascii
|
||||
((eq charset 'us-ascii)
|
||||
'ascii)
|
||||
|
|
@ -454,9 +541,27 @@ used as the line break code type of the coding system."
|
|||
;;; (eq charset (coding-system-get charset 'mime-charset))
|
||||
)
|
||||
charset)
|
||||
;; Eval expressions from `mm-charset-eval-alist'
|
||||
((let* ((el (assq charset mm-charset-eval-alist))
|
||||
(cs (car el))
|
||||
(form (cdr el)))
|
||||
(and cs
|
||||
form
|
||||
(prog2
|
||||
;; Avoid errors...
|
||||
(condition-case nil (eval form) (error nil))
|
||||
;; (message "Failed to eval `%s'" form))
|
||||
(mm-coding-system-p cs)
|
||||
(message "Added charset `%s' via `mm-charset-eval-alist'" cs))
|
||||
cs)))
|
||||
;; Translate invalid charsets.
|
||||
((let ((cs (cdr (assq charset mm-charset-synonym-alist))))
|
||||
(and cs (mm-coding-system-p cs) cs)))
|
||||
(and cs
|
||||
(mm-coding-system-p cs)
|
||||
;; (message
|
||||
;; "Using synonym `%s' from `mm-charset-synonym-alist' for `%s'"
|
||||
;; cs charset)
|
||||
cs)))
|
||||
;; Last resort: search the coding system list for entries which
|
||||
;; have the right mime-charset in case the canonical name isn't
|
||||
;; defined (though it should be).
|
||||
|
|
@ -468,6 +573,11 @@ used as the line break code type of the coding system."
|
|||
(eq charset (or (coding-system-get c :mime-charset)
|
||||
(coding-system-get c 'mime-charset))))
|
||||
(setq cs c)))
|
||||
(unless cs
|
||||
;; Warn the user about unknown charset:
|
||||
(if (fboundp 'gnus-message)
|
||||
(gnus-message 7 "Unknown charset: %s" charset)
|
||||
(message "Unknown charset: %s" charset)))
|
||||
cs))))
|
||||
|
||||
(defsubst mm-replace-chars-in-string (string from to)
|
||||
|
|
@ -1070,7 +1180,8 @@ If SUFFIX is non-nil, add that at the end of the file name."
|
|||
(defun mm-detect-mime-charset-region (start end)
|
||||
"Detect MIME charset of the text in the region between START and END."
|
||||
(let ((cs (mm-detect-coding-region start end)))
|
||||
(coding-system-get cs 'mime-charset)))
|
||||
(or (coding-system-get cs :mime-charset)
|
||||
(coding-system-get cs 'mime-charset))))
|
||||
(defun mm-detect-mime-charset-region (start end)
|
||||
"Detect MIME charset of the text in the region between START and END."
|
||||
(let ((cs (mm-detect-coding-region start end)))
|
||||
|
|
|
|||
|
|
@ -197,6 +197,7 @@ Commands:
|
|||
(view-mode)
|
||||
(make-local-variable 'view-no-disable-on-exit)
|
||||
(setq view-no-disable-on-exit t)
|
||||
(setq view-exit-action (lambda (buffer) (delete-window)))
|
||||
(run-mode-hooks 'help-mode-hook))
|
||||
|
||||
;;;###autoload
|
||||
|
|
|
|||
|
|
@ -139,7 +139,11 @@ and showing the image as an image."
|
|||
;; was inserted
|
||||
(let* ((image
|
||||
(if (and (buffer-file-name)
|
||||
(not (buffer-modified-p)))
|
||||
(not (buffer-modified-p))
|
||||
(not (and (boundp 'archive-superior-buffer)
|
||||
archive-superior-buffer))
|
||||
(not (and (boundp 'tar-superior-buffer)
|
||||
tar-superior-buffer)))
|
||||
(progn (clear-image-cache)
|
||||
(create-image (buffer-file-name)))
|
||||
(create-image
|
||||
|
|
|
|||
|
|
@ -208,18 +208,13 @@ during matching.")
|
|||
|
||||
;;;###autoload
|
||||
(defvar imenu-create-index-function 'imenu-default-create-index-function
|
||||
"The function to use for creating a buffer index.
|
||||
"The function to use for creating an index alist of the current buffer.
|
||||
|
||||
It should be a function that takes no arguments and returns an index
|
||||
of the current buffer as an alist.
|
||||
It should be a function that takes no arguments and returns
|
||||
an index alist of the current buffer. The function is
|
||||
called within a `save-excursion'.
|
||||
|
||||
Simple elements in the alist look like (INDEX-NAME . INDEX-POSITION).
|
||||
Special elements look like (INDEX-NAME INDEX-POSITION FUNCTION ARGUMENTS...).
|
||||
A nested sub-alist element looks like (INDEX-NAME SUB-ALIST).
|
||||
The function `imenu--subalist-p' tests an element and returns t
|
||||
if it is a sub-alist.
|
||||
|
||||
This function is called within a `save-excursion'.")
|
||||
See `imenu--index-alist' for the format of the buffer index alist.")
|
||||
;;;###autoload
|
||||
(make-variable-buffer-local 'imenu-create-index-function)
|
||||
|
||||
|
|
@ -431,15 +426,27 @@ Don't move point."
|
|||
;; The latest buffer index.
|
||||
;; Buffer local.
|
||||
(defvar imenu--index-alist nil
|
||||
"The buffer index computed for this buffer in Imenu.
|
||||
Simple elements in the alist look like (INDEX-NAME . INDEX-POSITION).
|
||||
Special elements look like (INDEX-NAME INDEX-POSITION FUNCTION ARGUMENTS...).
|
||||
A nested sub-alist element looks like (INDEX-NAME SUB-ALIST).")
|
||||
"The buffer index alist computed for this buffer in Imenu.
|
||||
|
||||
Simple elements in the alist look like (INDEX-NAME . POSITION).
|
||||
POSITION is the buffer position of the item; to go to the item
|
||||
is simply to move point to that position.
|
||||
|
||||
Special elements look like (INDEX-NAME POSITION FUNCTION ARGUMENTS...).
|
||||
To \"go to\" a special element means applying FUNCTION
|
||||
to INDEX-NAME, POSITION, and the ARGUMENTS.
|
||||
|
||||
A nested sub-alist element looks like (INDEX-NAME SUB-ALIST).
|
||||
The function `imenu--subalist-p' tests an element and returns t
|
||||
if it is a sub-alist.
|
||||
|
||||
There is one simple element with negative POSITION; selecting that
|
||||
element recalculates the buffer's index alist.")
|
||||
|
||||
(make-variable-buffer-local 'imenu--index-alist)
|
||||
|
||||
(defvar imenu--last-menubar-index-alist nil
|
||||
"The latest buffer index used to update the menu bar menu.")
|
||||
"The latest buffer index alist used to update the menu bar menu.")
|
||||
|
||||
(make-variable-buffer-local 'imenu--last-menubar-index-alist)
|
||||
|
||||
|
|
@ -547,19 +554,12 @@ A nested sub-alist element looks like (INDEX-NAME SUB-ALIST).")
|
|||
|
||||
|
||||
(defun imenu--make-index-alist (&optional noerror)
|
||||
"Create an index-alist for the definitions in the current buffer.
|
||||
|
||||
"Create an index alist for the definitions in the current buffer.
|
||||
This works by using the hook function `imenu-create-index-function'.
|
||||
Report an error if the list is empty unless NOERROR is supplied and
|
||||
non-nil.
|
||||
|
||||
Simple elements in the alist look like (INDEX-NAME . INDEX-POSITION).
|
||||
Special elements look like (INDEX-NAME FUNCTION ARGUMENTS...).
|
||||
A nested sub-alist element looks like (INDEX-NAME SUB-ALIST).
|
||||
The function `imenu--subalist-p' tests an element and returns t
|
||||
if it is a sub-alist.
|
||||
|
||||
There is one simple element with negative POSITION; that's intended
|
||||
as a way for the user to ask to recalculate the buffer's index alist."
|
||||
See `imenu--index-alist' for the format of the index alist."
|
||||
(or (and imenu--index-alist
|
||||
(or (not imenu-auto-rescan)
|
||||
(and imenu-auto-rescan
|
||||
|
|
@ -657,11 +657,15 @@ and speed-up matching.")
|
|||
(make-variable-buffer-local 'imenu-syntax-alist)
|
||||
|
||||
(defun imenu-default-create-index-function ()
|
||||
"*Wrapper for index searching functions.
|
||||
"*Default function to create an index alist of the current buffer.
|
||||
|
||||
Moves point to end of buffer and then repeatedly calls
|
||||
The most general method is to move point to end of buffer, then repeatedly call
|
||||
`imenu-prev-index-position-function' and `imenu-extract-index-name-function'.
|
||||
Their results are gathered into an index alist."
|
||||
All the results returned by the latter are gathered into an index alist.
|
||||
This method is used if those two variables are non-nil.
|
||||
|
||||
The alternate method, which is the one most often used, is to call
|
||||
`imenu--generic-function' with `imenu-generic-expression' as argument."
|
||||
;; These should really be done by setting imenu-create-index-function
|
||||
;; in these major modes. But save that change for later.
|
||||
(cond ((and imenu-prev-index-position-function
|
||||
|
|
@ -687,27 +691,6 @@ Their results are gathered into an index alist."
|
|||
(t
|
||||
(error "This buffer cannot use `imenu-default-create-index-function'"))))
|
||||
|
||||
;; Not used and would require cl at run time
|
||||
;; (defun imenu--flatten-index-alist (index-alist &optional concat-names prefix)
|
||||
;; ;; Takes a nested INDEX-ALIST and returns a flat index alist.
|
||||
;; ;; If optional CONCAT-NAMES is non-nil, then a nested index has its
|
||||
;; ;; name and a space concatenated to the names of the children.
|
||||
;; ;; Third argument PREFIX is for internal use only.
|
||||
;; (mapcan
|
||||
;; (lambda (item)
|
||||
;; (let* ((name (car item))
|
||||
;; (pos (cdr item))
|
||||
;; (new-prefix (and concat-names
|
||||
;; (if prefix
|
||||
;; (concat prefix imenu-level-separator name)
|
||||
;; name))))
|
||||
;; (cond
|
||||
;; ((or (markerp pos) (numberp pos))
|
||||
;; (list (cons new-prefix pos)))
|
||||
;; (t
|
||||
;; (imenu--flatten-index-alist pos new-prefix)))))
|
||||
;; index-alist))
|
||||
|
||||
;;;
|
||||
;;; Generic index gathering function.
|
||||
;;;
|
||||
|
|
@ -724,7 +707,7 @@ for modes which use `imenu--generic-function'. If it is not set, but
|
|||
;; This function can be called with quitting disabled,
|
||||
;; so it needs to be careful never to loop!
|
||||
(defun imenu--generic-function (patterns)
|
||||
"Return an index of the current buffer as an alist.
|
||||
"Return an index alist of the current buffer based on PATTERNS.
|
||||
|
||||
PATTERNS is an alist with elements that look like this:
|
||||
(MENU-TITLE REGEXP INDEX)
|
||||
|
|
@ -732,9 +715,8 @@ or like this:
|
|||
(MENU-TITLE REGEXP INDEX FUNCTION ARGUMENTS...)
|
||||
with zero or more ARGUMENTS. The former format creates a simple
|
||||
element in the index alist when it matches; the latter creates a
|
||||
special element of the form (NAME POSITION-MARKER FUNCTION
|
||||
ARGUMENTS...) with FUNCTION and ARGUMENTS copied from
|
||||
`imenu-generic-expression'.
|
||||
special element of the form (INDEX-NAME POSITION-MARKER FUNCTION
|
||||
ARGUMENTS...) with FUNCTION and ARGUMENTS copied from PATTERNS.
|
||||
|
||||
MENU-TITLE is a string used as the title for the submenu or nil
|
||||
if the entries are not nested.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,172 @@
|
|||
2006-04-18 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-e.el (defcustom-mh, defface-mh, defgroup-mh, mh-face-data)
|
||||
(mh-strip-package-version, mh-face-data, mh-inherit-face-flag)
|
||||
(mh-min-colors-defined-flag): Do not unbind these macros and
|
||||
variables. Nice idea, but too many nasty side-effects. These
|
||||
macros are needed by [Cc]ustom-make-dependencies when creating the
|
||||
MH-E customization groups in mh-cus-load.el. These disappeared
|
||||
when the macros above were introduced. Besides, if a developer
|
||||
were to try to show the help for a macro or variable they were
|
||||
looking at and got [No match] when they did so, that would be bad.
|
||||
|
||||
2006-04-17 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-comp.el (mh-insert-x-mailer): Strip build number from
|
||||
version in X-Mailer field (closes SF #1466481).
|
||||
|
||||
* mh-acros.el (mh-defun-compat): Rename to defun-mh in order that
|
||||
variables and functions with the same name are found correctly by
|
||||
find-func (invoked by clicking on the filename link in the *Help*
|
||||
buffer).
|
||||
(mh-defmacro-compat): Rename to defmacro-mh. Ditto.
|
||||
* mh-e.el: (mh-defgroup): Rename to defgroup-mh. Ditto.
|
||||
(mh-defcustom): Rename to defcustom-mh. Ditto.
|
||||
(mh-defface): Rename to defface-mh. Ditto.
|
||||
(mh-font-lock-add-keywords): Make changes according to these
|
||||
renamings.
|
||||
|
||||
* mh-e.el, mh-compat.el, mh-gnus.el: Use the new names (closes SF
|
||||
#1472029).
|
||||
|
||||
* mh-utils.el (mh-sub-folders-actual): Mention that folder must
|
||||
have been processed by mh-normalize-folder-name.
|
||||
(mh-folder-completion-function): Handle completion of folders with
|
||||
absolute names. Also, when flag is t, display complete folder name
|
||||
to provide proper highlighting in Emacs 22 now that
|
||||
minibuffer-completing-file-name is nil (closes SF #1470518).
|
||||
(mh-folder-completing-read): No longer set
|
||||
minibuffer-completing-file-name to t. This was causing "Can't set
|
||||
current directory errors" when browsing absolute file names.
|
||||
Another benefit of this change is that SPC can be used for
|
||||
completion again (closes SF #1470518).
|
||||
|
||||
2006-04-15 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-compat.el (mh-font-lock-add-keywords): Fix typo in docstring.
|
||||
|
||||
2006-04-14 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-funcs.el (view-exit-action): No need to wrap defvar with
|
||||
eval-when-compile when shushing compiler.
|
||||
|
||||
* mh-mime.el (mh-identity-pgg-default-user-id): Ditto.
|
||||
|
||||
* mh-seq.el (view-exit-action): Ditto.
|
||||
|
||||
* mh-show.el (font-lock-auto-fontify): Ditto.
|
||||
|
||||
* mh-utils.el (mh-speed-flists-cache): Ditto
|
||||
|
||||
* mh-acros.el (struct, x, y): No need to wrap defvar with
|
||||
eval-when-compile when shushing compiler, even when
|
||||
mh-do-in-xemacs or another construct is used.
|
||||
|
||||
* mh-comp.el (sendmail-coding-system): Ditto.
|
||||
|
||||
* mh-e.el (mark-active): Ditto.
|
||||
|
||||
* mh-folder.el (desktop-save-buffer, font-lock-auto-fontify)
|
||||
(image-load-path, font-lock-defaults): Ditto.
|
||||
|
||||
* mh-letter.el (image-load-path, font-lock-defaults): Ditto.
|
||||
|
||||
* mh-mime.el (dots, type, ov)
|
||||
(mm-verify-function-alist, mm-decrypt-function-alist)
|
||||
(pressed-details): Ditto.
|
||||
|
||||
* mh-search.el (pick-folder, mh-do-in-xemacs)
|
||||
(mh-mairix-folder, mh-flists-search-folders)
|
||||
(which-func-mode, mh-speed-flists-inhibit-flag): Ditto.
|
||||
|
||||
* mh-seq.el (tool-bar-mode): Ditto.
|
||||
|
||||
* mh-utils.el (completion-root-regexp)
|
||||
(minibuffer-completing-file-name): Ditto.
|
||||
|
||||
* mh-xface.el (default-enable-multibyte-characters): Ditto.
|
||||
|
||||
* mh-compat.el (mh-font-lock-add-keywords): New alias for
|
||||
font-lock-add-keywords. Returns nil on XEmacs.
|
||||
|
||||
* mh-e.el: Add MH-E function and variable keywords such as
|
||||
mh-defun-compat and mh-defcustom to font-lock-keywords.
|
||||
|
||||
2006-04-13 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-e.el (customize-package-emacs-version-alist)
|
||||
(mh-e, mh-alias, mh-folder, mh-folder-selection)
|
||||
(mh-identity, mh-inc, mh-junk, mh-letter, mh-ranges)
|
||||
(mh-scan-line-formats, mh-search, mh-sending-mail, )
|
||||
(mh-sequences, mh-show, mh-speedbar, mh-thread, mh-tool-bar)
|
||||
(mh-hooks, mh-faces, mh-alias-completion-ignore-case-flag)
|
||||
(mh-alias-expand-aliases-flag, mh-alias-flash-on-comma)
|
||||
(mh-alias-insert-file, mh-alias-insertion-location)
|
||||
(mh-alias-local-users, mh-alias-local-users-prefix)
|
||||
(mh-alias-passwd-gecos-comma-separator-flag)
|
||||
(mh-new-messages-folders, mh-ticked-messages-folders)
|
||||
(mh-large-folder, mh-recenter-summary-flag)
|
||||
(mh-recursive-folders-flag, mh-sortm-args)
|
||||
(mh-default-folder-for-message-function, )
|
||||
(mh-default-folder-list, mh-default-folder-must-exist-flag)
|
||||
(mh-default-folder-prefix, mh-identity-list)
|
||||
(mh-auto-fields-list, mh-auto-fields-prompt-flag)
|
||||
(mh-identity-default, mh-identity-handlers, mh-inc-prog)
|
||||
(mh-inc-spool-list, mh-junk-background, mh-junk-disposition)
|
||||
(mh-junk-program, mh-compose-insertion)
|
||||
(mh-compose-skipped-header-fields)
|
||||
(mh-compose-space-does-completion-flag)
|
||||
(mh-delete-yanked-msg-window-flag)
|
||||
(mh-extract-from-attribution-verb, mh-ins-buf-prefix)
|
||||
(mh-letter-complete-function, mh-letter-fill-column)
|
||||
(mh-mml-method-default, mh-signature-file-name)
|
||||
(mh-signature-separator-flag, mh-x-face-file, )
|
||||
(mh-yank-behavior, mh-interpret-number-as-range-flag)
|
||||
(mh-adaptive-cmd-note-flag, mh-scan-format-file, mh-scan-prog)
|
||||
(mh-search-program, mh-compose-forward-as-mime-flag)
|
||||
(mh-compose-letter-function, mh-compose-prompt-flag)
|
||||
(mh-forward-subject-format, mh-insert-x-mailer-flag)
|
||||
(mh-redist-full-contents-flag, mh-reply-default-reply-to)
|
||||
(mh-reply-show-message-flag, )
|
||||
(mh-refile-preserves-sequences-flag, mh-tick-seq)
|
||||
(mh-update-sequences-after-mh-show-flag)
|
||||
(mh-bury-show-buffer-flag, mh-clean-message-header-flag)
|
||||
(mh-decode-mime-flag, )
|
||||
(mh-display-buttons-for-alternatives-flag)
|
||||
(mh-display-buttons-for-inline-parts-flag)
|
||||
(mh-do-not-confirm-flag, mh-fetch-x-image-url)
|
||||
(mh-graphical-smileys-flag, mh-graphical-emphasis-flag)
|
||||
(mh-highlight-citation-style, mh-invisible-header-fields)
|
||||
(mh-invisible-header-fields-default, mh-lpr-command-format)
|
||||
(mh-max-inline-image-height, mh-max-inline-image-width)
|
||||
(mh-mhl-format-file, mh-mime-save-parts-default-directory)
|
||||
(mh-print-background-flag, mh-show-maximum-size)
|
||||
(mh-show-use-xface-flag, mh-store-default-directory)
|
||||
(mh-summary-height, mh-speed-update-interval)
|
||||
(mh-show-threads-flag, mh-tool-bar-search-function)
|
||||
(mh-defcustom, mh-after-commands-processed-hook)
|
||||
(mh-alias-reloaded-hook, mh-before-commands-processed-hook)
|
||||
(mh-before-quit-hook, mh-before-send-letter-hook)
|
||||
(mh-delete-msg-hook, mh-find-path-hook, mh-folder-mode-hook)
|
||||
(mh-forward-hook, mh-inc-folder-hook, )
|
||||
(mh-insert-signature-hook, )
|
||||
(mh-kill-folder-suppress-prompt-hooks, mh-letter-mode-hook)
|
||||
(mh-mh-to-mime-hook, mh-search-mode-hook, mh-quit-hook)
|
||||
(mh-refile-msg-hook, mh-show-hook, mh-show-mode-hook)
|
||||
(mh-unseen-updated-hook, mh-folder-address, mh-folder-body)
|
||||
(mh-folder-cur-msg-number, mh-folder-date, mh-folder-deleted)
|
||||
(mh-folder-followup, mh-folder-msg-number, mh-folder-refiled)
|
||||
(mh-folder-sent-to-me-hint, mh-folder-sent-to-me-sender)
|
||||
(mh-folder-subject, mh-folder-tick, mh-folder-to)
|
||||
(mh-letter-header-field, mh-search-folder, mh-show-cc)
|
||||
(mh-show-date, mh-show-from, mh-show-header, mh-show-pgg-bad)
|
||||
(mh-show-pgg-good, mh-show-pgg-unknown, mh-show-signature)
|
||||
(mh-show-subject, mh-show-to, mh-show-xface, )
|
||||
(mh-speedbar-folder, mh-speedbar-folder-with-unseen-messages)
|
||||
(mh-speedbar-selected-folder)
|
||||
(mh-speedbar-selected-folder-with-unseen-messages): Use dotted
|
||||
notation in :package-version keyword.
|
||||
|
||||
2006-04-07 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-e.el (mh-path, mh-variant): Define with mh-defcustom and add
|
||||
|
|
@ -21,7 +190,7 @@
|
|||
(mh-scan-line-formats, mh-search, mh-sending-mail)
|
||||
(mh-sequences, mh-show, mh-speedbar, mh-thread, mh-tool-bar)
|
||||
(mh-hooks, mh-faces): Add :package-version keyword to these
|
||||
groups.
|
||||
groups (closes SF #1452724).
|
||||
(mh-alias-completion-ignore-case-flag)
|
||||
(mh-alias-expand-aliases-flag, mh-alias-flash-on-comma)
|
||||
(mh-alias-insert-file, mh-alias-insertion-location)
|
||||
|
|
@ -67,7 +236,7 @@
|
|||
(mh-show-use-xface-flag, mh-store-default-directory)
|
||||
(mh-summary-height, mh-speed-update-interval)
|
||||
(mh-show-threads-flag, mh-tool-bar-search-function): Add
|
||||
:package-version keyword to these options.
|
||||
:package-version keyword to these options (closes SF #1452724).
|
||||
(mh-after-commands-processed-hook)
|
||||
(mh-alias-reloaded-hook, mh-before-commands-processed-hook)
|
||||
(mh-before-quit-hook, mh-before-send-letter-hook)
|
||||
|
|
@ -78,7 +247,7 @@
|
|||
(mh-mh-to-mime-hook, mh-search-mode-hook, mh-quit-hook)
|
||||
(mh-refile-msg-hook, mh-show-hook, mh-show-mode-hook)
|
||||
(mh-unseen-updated-hook): Add :package-version keyword to these
|
||||
hooks.
|
||||
hooks (closes SF #1452724).
|
||||
(mh-min-colors-defined-flag)
|
||||
(mh-folder-address, mh-folder-body, mh-folder-cur-msg-number)
|
||||
(mh-folder-date, mh-folder-deleted, mh-folder-followup)
|
||||
|
|
@ -92,10 +261,10 @@
|
|||
(mh-speedbar-folder, mh-speedbar-folder-with-unseen-messages)
|
||||
(mh-speedbar-selected-folder)
|
||||
(mh-speedbar-selected-folder-with-unseen-messages): : Add
|
||||
:package-version keyword to these faces.
|
||||
:package-version keyword to these faces (closes SF #1452724).
|
||||
|
||||
* mh-tool-bar.el (mh-tool-bar-define): Added commented-out
|
||||
:package-version keywords.
|
||||
:package-version keywords (closes SF #1452724).
|
||||
|
||||
2006-03-28 Bill Wohler <wohler@newt.com>
|
||||
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ loads \"cl\" appropriately."
|
|||
(funcall ',function ,@args))))
|
||||
|
||||
;;;###mh-autoload
|
||||
(defmacro mh-defun-compat (name function arg-list &rest body)
|
||||
(defmacro defun-mh (name function arg-list &rest body)
|
||||
"Create function NAME.
|
||||
If FUNCTION exists, then NAME becomes an alias for FUNCTION.
|
||||
Otherwise, create function NAME with ARG-LIST and BODY."
|
||||
|
|
@ -90,10 +90,10 @@ Otherwise, create function NAME with ARG-LIST and BODY."
|
|||
(if defined-p
|
||||
`(defalias ',name ',function)
|
||||
`(defun ,name ,arg-list ,@body))))
|
||||
(put 'mh-defun-compat 'lisp-indent-function 'defun)
|
||||
(put 'defun-mh 'lisp-indent-function 'defun)
|
||||
|
||||
;;;###mh-autoload
|
||||
(defmacro mh-defmacro-compat (name macro arg-list &rest body)
|
||||
(defmacro defmacro-mh (name macro arg-list &rest body)
|
||||
"Create macro NAME.
|
||||
If MACRO exists, then NAME becomes an alias for MACRO.
|
||||
Otherwise, create macro NAME with ARG-LIST and BODY."
|
||||
|
|
@ -101,7 +101,7 @@ Otherwise, create macro NAME with ARG-LIST and BODY."
|
|||
(if defined-p
|
||||
`(defalias ',name ',macro)
|
||||
`(defmacro ,name ,arg-list ,@body))))
|
||||
(put 'mh-defmacro-compat 'lisp-indent-function 'defun)
|
||||
(put 'defmacro-mh 'lisp-indent-function 'defun)
|
||||
|
||||
|
||||
|
||||
|
|
@ -130,7 +130,9 @@ check if variable `transient-mark-mode' is active."
|
|||
(boundp 'mark-active) mark-active))))
|
||||
|
||||
;; Shush compiler.
|
||||
(eval-when-compile (mh-do-in-xemacs (defvar struct) (defvar x) (defvar y)))
|
||||
(defvar struct) ; XEmacs
|
||||
(defvar x) ; XEmacs
|
||||
(defvar y) ; XEmacs
|
||||
|
||||
;;;###mh-autoload
|
||||
(defmacro mh-defstruct (name-spec &rest fields)
|
||||
|
|
|
|||
|
|
@ -215,7 +215,7 @@ ignored."
|
|||
(setq other-headers (cdr other-headers)))))
|
||||
|
||||
;; Shush compiler.
|
||||
(eval-when-compile (mh-do-in-xemacs (defvar sendmail-coding-system)))
|
||||
(defvar sendmail-coding-system) ; XEmacs
|
||||
|
||||
;;;###autoload
|
||||
(defun mh-send-letter (&optional arg)
|
||||
|
|
@ -912,7 +912,10 @@ The versions of MH-E, Emacs, and MH are shown."
|
|||
(format "MH-E %s; %s; %sEmacs %s"
|
||||
mh-version mh-variant-in-use
|
||||
(if mh-xemacs-flag "X" "GNU ")
|
||||
(cond ((not mh-xemacs-flag) emacs-version)
|
||||
(cond ((not mh-xemacs-flag)
|
||||
(string-match "[0-9]+\\.[0-9]+\\(\\.[0-9]+\\)?"
|
||||
emacs-version)
|
||||
(match-string 0 emacs-version))
|
||||
((string-match "[0-9.]*\\( +\([ a-z]+[0-9]+\)\\)?"
|
||||
emacs-version)
|
||||
(match-string 0 emacs-version))
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
;; versions of Gnus.
|
||||
|
||||
;; Items are listed alphabetically (except for mh-require which is
|
||||
;; needed by a lesser character).
|
||||
;; needed sooner it would normally appear).
|
||||
|
||||
(require 'mh-acros)
|
||||
|
||||
|
|
@ -62,7 +62,7 @@ Simulate NOERROR argument in XEmacs which lacks it."
|
|||
(load filename noerror t)
|
||||
(load (format "%s" feature) noerror t)))))
|
||||
|
||||
(mh-defun-compat mh-assoc-string assoc-string (key list case-fold)
|
||||
(defun-mh mh-assoc-string assoc-string (key list case-fold)
|
||||
"Like `assoc' but specifically for strings.
|
||||
Case is ignored if CASE-FOLD is non-nil.
|
||||
This function is used by Emacs versions that lack `assoc-string',
|
||||
|
|
@ -77,7 +77,7 @@ introduced in Emacs 22."
|
|||
'cancel-timer
|
||||
'delete-itimer))
|
||||
|
||||
(mh-defun-compat mh-display-color-cells display-color-cells (&optional display)
|
||||
(defun-mh mh-display-color-cells display-color-cells (&optional display)
|
||||
"Return the number of color cells supported by DISPLAY.
|
||||
This function is used by XEmacs to return 2 when
|
||||
`device-color-cells' returns nil. This happens when compiling or
|
||||
|
|
@ -115,7 +115,12 @@ introduced in Emacs 22."
|
|||
`(face-background ,face ,frame)
|
||||
`(face-background ,face ,frame ,inherit)))
|
||||
|
||||
(mh-defun-compat mh-image-load-path-for-library
|
||||
(defun-mh mh-font-lock-add-keywords font-lock-add-keywords
|
||||
(mode keywords &optional how)
|
||||
"XEmacs does not have `font-lock-add-keywords'.
|
||||
This function returns nil on that system.")
|
||||
|
||||
(defun-mh mh-image-load-path-for-library
|
||||
image-load-path-for-library (library image &optional path no-error)
|
||||
"Return a suitable search path for images used by LIBRARY.
|
||||
|
||||
|
|
@ -210,7 +215,7 @@ compatibility with versions of Emacs that lack the variable
|
|||
(nconc (list image-directory)
|
||||
(delete image-directory (copy-sequence (or path load-path))))))
|
||||
|
||||
(mh-defun-compat mh-image-search-load-path
|
||||
(defun-mh mh-image-search-load-path
|
||||
image-search-load-path (file &optional path)
|
||||
"Emacs 21 and XEmacs don't have `image-search-load-path'.
|
||||
This function returns nil on those systems."
|
||||
|
|
@ -229,13 +234,13 @@ This function returns nil on those systems."
|
|||
'point-at-eol))
|
||||
|
||||
(mh-require 'mailabbrev nil t)
|
||||
(mh-defun-compat mh-mail-abbrev-make-syntax-table
|
||||
(defun-mh mh-mail-abbrev-make-syntax-table
|
||||
mail-abbrev-make-syntax-table ()
|
||||
"Emacs 21 and XEmacs don't have `mail-abbrev-make-syntax-table'.
|
||||
This function returns nil on those systems."
|
||||
nil)
|
||||
|
||||
(mh-defun-compat mh-match-string-no-properties
|
||||
(defun-mh mh-match-string-no-properties
|
||||
match-string-no-properties (num &optional string)
|
||||
"Return string of text matched by last search, without text properties.
|
||||
This function is used by XEmacs that lacks `match-string-no-properties'.
|
||||
|
|
@ -244,7 +249,7 @@ The argument STRING is ignored."
|
|||
(buffer-substring-no-properties
|
||||
(match-beginning num) (match-end num)))
|
||||
|
||||
(mh-defun-compat mh-replace-regexp-in-string replace-regexp-in-string
|
||||
(defun-mh mh-replace-regexp-in-string replace-regexp-in-string
|
||||
(regexp rep string &optional fixedcase literal subexp start)
|
||||
"Replace REGEXP with REP everywhere in STRING and return result.
|
||||
This function is used by XEmacs that lacks `replace-regexp-in-string'.
|
||||
|
|
@ -264,7 +269,7 @@ The arguments FIXEDCASE, SUBEXP, and START, used by
|
|||
"A list of characters that are _NOT_ reserved in the URL spec.
|
||||
This is taken from RFC 2396."))
|
||||
|
||||
(mh-defun-compat mh-url-hexify-string url-hexify-string (str)
|
||||
(defun-mh mh-url-hexify-string url-hexify-string (str)
|
||||
"Escape characters in a string.
|
||||
This is a copy of `url-hexify-string' from url-util.el in Emacs
|
||||
22; needed by Emacs 21."
|
||||
|
|
@ -278,7 +283,7 @@ This is a copy of `url-hexify-string' from url-util.el in Emacs
|
|||
(char-to-string char)))
|
||||
str ""))
|
||||
|
||||
(mh-defun-compat mh-view-mode-enter
|
||||
(defun-mh mh-view-mode-enter
|
||||
view-mode-enter (&optional return-to exit-action)
|
||||
"Enter View mode.
|
||||
This function is used by XEmacs that lacks `view-mode-enter'.
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -522,11 +522,10 @@ font-lock is done highlighting.")
|
|||
(add-to-list 'which-func-modes 'mh-folder-mode))
|
||||
|
||||
;; Shush compiler.
|
||||
(eval-when-compile
|
||||
(defvar desktop-save-buffer)
|
||||
(defvar font-lock-auto-fontify)
|
||||
(defvar image-load-path)
|
||||
(mh-do-in-xemacs (defvar font-lock-defaults)))
|
||||
(defvar desktop-save-buffer)
|
||||
(defvar font-lock-auto-fontify)
|
||||
(defvar image-load-path)
|
||||
(defvar font-lock-defaults) ; XEmacs
|
||||
|
||||
(defvar mh-folder-buttons-init-flag nil)
|
||||
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ Display the results only if something went wrong."
|
|||
(display-buffer mh-temp-buffer)))
|
||||
|
||||
;; Shush compiler.
|
||||
(eval-when-compile (defvar view-exit-action))
|
||||
(defvar view-exit-action)
|
||||
|
||||
;;;###mh-autoload
|
||||
(defun mh-list-folders ()
|
||||
|
|
|
|||
|
|
@ -39,19 +39,19 @@
|
|||
(mh-require 'mml nil t)
|
||||
|
||||
;; Copy of function from gnus-util.el.
|
||||
(mh-defun-compat mh-gnus-local-map-property gnus-local-map-property (map)
|
||||
(defun-mh mh-gnus-local-map-property gnus-local-map-property (map)
|
||||
"Return a list suitable for a text property list specifying keymap MAP."
|
||||
(cond (mh-xemacs-flag (list 'keymap map))
|
||||
((>= emacs-major-version 21) (list 'keymap map))
|
||||
(t (list 'local-map map))))
|
||||
|
||||
;; Copy of function from mm-decode.el.
|
||||
(mh-defun-compat mh-mm-merge-handles mm-merge-handles (handles1 handles2)
|
||||
(defun-mh mh-mm-merge-handles mm-merge-handles (handles1 handles2)
|
||||
(append (if (listp (car handles1)) handles1 (list handles1))
|
||||
(if (listp (car handles2)) handles2 (list handles2))))
|
||||
|
||||
;; Copy of function from mm-decode.el.
|
||||
(mh-defun-compat mh-mm-set-handle-multipart-parameter
|
||||
(defun-mh mh-mm-set-handle-multipart-parameter
|
||||
mm-set-handle-multipart-parameter (handle parameter value)
|
||||
;; HANDLE could be a CTL.
|
||||
(if handle
|
||||
|
|
@ -59,7 +59,7 @@
|
|||
(car handle))))
|
||||
|
||||
;; Copy of function from mm-view.el.
|
||||
(mh-defun-compat mh-mm-inline-text-vcard mm-inline-text-vcard (handle)
|
||||
(defun-mh mh-mm-inline-text-vcard mm-inline-text-vcard (handle)
|
||||
(let (buffer-read-only)
|
||||
(mm-insert-inline
|
||||
handle
|
||||
|
|
@ -73,17 +73,17 @@
|
|||
|
||||
;; Function from mm-decode.el used in PGP messages. Just define it with older
|
||||
;; Gnus to avoid compiler warning.
|
||||
(mh-defun-compat mh-mm-possibly-verify-or-decrypt
|
||||
(defun-mh mh-mm-possibly-verify-or-decrypt
|
||||
mm-possibly-verify-or-decrypt (parts ctl)
|
||||
nil)
|
||||
|
||||
;; Copy of macro in mm-decode.el.
|
||||
(mh-defmacro-compat mh-mm-handle-multipart-ctl-parameter
|
||||
(defmacro-mh mh-mm-handle-multipart-ctl-parameter
|
||||
mm-handle-multipart-ctl-parameter (handle parameter)
|
||||
`(get-text-property 0 ,parameter (car ,handle)))
|
||||
|
||||
;; Copy of function in mm-decode.el.
|
||||
(mh-defun-compat mh-mm-readable-p mm-readable-p (handle)
|
||||
(defun-mh mh-mm-readable-p mm-readable-p (handle)
|
||||
"Say whether the content of HANDLE is readable."
|
||||
(and (< (with-current-buffer (mm-handle-buffer handle)
|
||||
(buffer-size)) 10000)
|
||||
|
|
@ -93,7 +93,7 @@
|
|||
(not (mh-mm-long-lines-p 76))))))
|
||||
|
||||
;; Copy of function in mm-bodies.el.
|
||||
(mh-defun-compat mh-mm-long-lines-p mm-long-lines-p (length)
|
||||
(defun-mh mh-mm-long-lines-p mm-long-lines-p (length)
|
||||
"Say whether any of the lines in the buffer is longer than LENGTH."
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
|
|
@ -105,21 +105,21 @@
|
|||
(and (> (current-column) length)
|
||||
(current-column))))
|
||||
|
||||
(mh-defun-compat mh-mm-keep-viewer-alive-p mm-keep-viewer-alive-p (handle)
|
||||
(defun-mh mh-mm-keep-viewer-alive-p mm-keep-viewer-alive-p (handle)
|
||||
;; Released Gnus doesn't keep handles associated with externally displayed
|
||||
;; MIME parts. So this will always return nil.
|
||||
nil)
|
||||
|
||||
(mh-defun-compat mh-mm-destroy-parts mm-destroy-parts (list)
|
||||
(defun-mh mh-mm-destroy-parts mm-destroy-parts (list)
|
||||
"Older versions of Emacs don't have this function."
|
||||
nil)
|
||||
|
||||
(mh-defun-compat mh-mm-uu-dissect-text-parts mm-uu-dissect-text-parts (handles)
|
||||
(defun-mh mh-mm-uu-dissect-text-parts mm-uu-dissect-text-parts (handles)
|
||||
"Emacs 21 and XEmacs don't have this function."
|
||||
nil)
|
||||
|
||||
;; Copy of function in mml.el.
|
||||
(mh-defun-compat mh-mml-minibuffer-read-disposition
|
||||
(defun-mh mh-mml-minibuffer-read-disposition
|
||||
mml-minibuffer-read-disposition (type &optional default)
|
||||
(unless default (setq default
|
||||
(if (and (string-match "\\`text/" type)
|
||||
|
|
|
|||
|
|
@ -278,9 +278,8 @@ searching for `mh-mail-header-separator' in the buffer."
|
|||
(defvar mh-letter-buttons-init-flag nil)
|
||||
|
||||
;; Shush compiler.
|
||||
(eval-when-compile
|
||||
(defvar image-load-path)
|
||||
(mh-do-in-xemacs (defvar font-lock-defaults)))
|
||||
(defvar image-load-path)
|
||||
(defvar font-lock-defaults) ; XEmacs
|
||||
|
||||
;; Ensure new buffers won't get this mode if default-major-mode is nil.
|
||||
(put 'mh-letter-mode 'mode-class 'special)
|
||||
|
|
|
|||
|
|
@ -825,7 +825,9 @@ being used to highlight the signature in a MIME part."
|
|||
;;; Button Display
|
||||
|
||||
;; Shush compiler.
|
||||
(eval-when-compile (mh-do-in-xemacs (defvar dots) (defvar type) (defvar ov)))
|
||||
(defvar dots) ; XEmacs
|
||||
(defvar type) ; XEmacs
|
||||
(defvar ov) ; XEmacs
|
||||
|
||||
(defun mh-insert-mime-button (handle index displayed)
|
||||
"Insert MIME button for HANDLE.
|
||||
|
|
@ -870,12 +872,9 @@ by commands like \"K v\" which operate on individual MIME parts."
|
|||
(mh-funcall-if-exists overlay-put ov 'evaporate t))))
|
||||
|
||||
;; Shush compiler.
|
||||
(eval-when-compile
|
||||
(when (< emacs-major-version 22)
|
||||
(defvar mm-verify-function-alist)
|
||||
(defvar mm-decrypt-function-alist))
|
||||
(mh-do-in-xemacs
|
||||
(defvar pressed-details)))
|
||||
(defvar mm-verify-function-alist) ; < Emacs 22
|
||||
(defvar mm-decrypt-function-alist) ; < Emacs 22
|
||||
(defvar pressed-details) ; XEmacs
|
||||
|
||||
(defun mh-insert-mime-security-button (handle)
|
||||
"Display buttons for PGP message, HANDLE."
|
||||
|
|
@ -1537,7 +1536,7 @@ a prefix argument NOCONFIRM."
|
|||
(after-find-file nil)))
|
||||
|
||||
;; Shush compiler.
|
||||
(eval-when-compile (defvar mh-identity-pgg-default-user-id))
|
||||
(defvar mh-identity-pgg-default-user-id)
|
||||
|
||||
;;;###mh-autoload
|
||||
(defun mh-mml-secure-message-encrypt (method)
|
||||
|
|
|
|||
|
|
@ -324,7 +324,7 @@ folder containing the index search results."
|
|||
count (> (hash-table-count msg-hash) 0)))))))
|
||||
|
||||
;; Shush compiler.
|
||||
(eval-when-compile (mh-do-in-xemacs (defvar pick-folder)))
|
||||
(defvar pick-folder) ; XEmacs
|
||||
|
||||
(defun mh-search-folder (folder window-config)
|
||||
"Search FOLDER for messages matching a pattern.
|
||||
|
|
@ -404,10 +404,8 @@ or nothing to search all folders."
|
|||
(mh-index-sequenced-messages folders mh-tick-seq))
|
||||
|
||||
;; Shush compiler.
|
||||
(eval-when-compile
|
||||
(mh-do-in-xemacs
|
||||
(defvar mh-mairix-folder)
|
||||
(defvar mh-flists-search-folders)))
|
||||
(defvar mh-mairix-folder) ; XEmacs
|
||||
(defvar mh-flists-search-folders) ; XEmacs
|
||||
|
||||
;;;###mh-autoload
|
||||
(defun mh-index-sequenced-messages (folders sequence)
|
||||
|
|
@ -1414,9 +1412,7 @@ being the list of messages originally from that folder."
|
|||
(mh-require 'which-func nil t)
|
||||
|
||||
;; Shush compiler.
|
||||
(eval-when-compile
|
||||
(if (or mh-xemacs-flag (< emacs-major-version 22))
|
||||
(defvar which-func-mode)))
|
||||
(defvar which-func-mode) ; < Emacs 22, XEmacs
|
||||
|
||||
;;;###mh-autoload
|
||||
(defun mh-index-create-imenu-index ()
|
||||
|
|
@ -1441,7 +1437,7 @@ being the list of messages originally from that folder."
|
|||
mh-index-data)
|
||||
|
||||
;; Shush compiler
|
||||
(eval-when-compile (if mh-xemacs-flag (defvar mh-speed-flists-inhibit-flag)))
|
||||
(defvar mh-speed-flists-inhibit-flag) ; XEmacs
|
||||
|
||||
;;;###mh-autoload
|
||||
(defun mh-index-execute-commands ()
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ you want to delete the messages, use \"\\[universal-argument]
|
|||
(apply #'mh-speed-flists t folders-changed))))
|
||||
|
||||
;; Shush compiler.
|
||||
(eval-when-compile (defvar view-exit-action))
|
||||
(defvar view-exit-action)
|
||||
|
||||
;;;###mh-autoload
|
||||
(defun mh-list-sequences ()
|
||||
|
|
@ -202,7 +202,7 @@ MESSAGE appears."
|
|||
" "))))
|
||||
|
||||
;; Shush compiler.
|
||||
(eval-when-compile (mh-do-in-xemacs (defvar tool-bar-mode)))
|
||||
(defvar tool-bar-mode) ; XEmacs
|
||||
|
||||
;;;###mh-autoload
|
||||
(defun mh-narrow-to-seq (sequence)
|
||||
|
|
|
|||
|
|
@ -815,7 +815,7 @@ operation."
|
|||
(put 'mh-show-mode 'mode-class 'special)
|
||||
|
||||
;; Shush compiler.
|
||||
(eval-when-compile (defvar font-lock-auto-fontify))
|
||||
(defvar font-lock-auto-fontify)
|
||||
|
||||
;;;###mh-autoload
|
||||
(define-derived-mode mh-show-mode text-mode "MH-Show"
|
||||
|
|
|
|||
|
|
@ -556,10 +556,18 @@ nested folders within them."
|
|||
sub-folders)
|
||||
sub-folders)))
|
||||
|
||||
;; FIXME: This function does not do well if FOLDER does not exist. It
|
||||
;; then changes the context to that folder which causes problems down
|
||||
;; the line. Since a folder in the cache could later be deleted, it
|
||||
;; would be good for mh-sub-folders-actual to return nil in this case
|
||||
;; so that mh-sub-folders could delete it from the cache. This
|
||||
;; function could protect itself by using a temporary context.
|
||||
(defun mh-sub-folders-actual (folder)
|
||||
"Execute the command folders to return the sub-folders of FOLDER.
|
||||
Filters out the folder names that start with \".\" so that
|
||||
directories that aren't usually mail folders are hidden."
|
||||
directories that aren't usually mail folders are hidden.
|
||||
Expects FOLDER to have already been normalized with
|
||||
(mh-normalize-folder-name folder nil nil t)"
|
||||
(let ((arg-list `(,(expand-file-name "folders" mh-progs)
|
||||
nil (t nil) nil "-noheader" "-norecurse" "-nototal"
|
||||
,@(if (stringp folder) (list folder) ())))
|
||||
|
|
@ -657,7 +665,7 @@ See `expand-file-name' for description of DEFAULT."
|
|||
(defvar mh-folder-hist nil)
|
||||
|
||||
;; Shush compiler.
|
||||
(eval-when-compile (defvar mh-speed-flists-cache))
|
||||
(defvar mh-speed-flists-cache)
|
||||
|
||||
(defvar mh-allow-root-folder-flag nil
|
||||
"Non-nil means \"+\" is an acceptable folder name.
|
||||
|
|
@ -683,53 +691,58 @@ This variable should never be set.")
|
|||
(defun mh-folder-completion-function (name predicate flag)
|
||||
"Programmable completion for folder names.
|
||||
NAME is the partial folder name that has been input. PREDICATE if
|
||||
non-nil is a function that is used to filter the possible choices
|
||||
and FLAG determines whether the completion is over."
|
||||
non-nil is a function that is used to filter the possible
|
||||
choices. FLAG is nil to indicate `try-completion', t for
|
||||
`all-completions', or the symbol lambda for `test-completion'.
|
||||
See Info node `(elisp) Programmed Completion' for details."
|
||||
(let* ((orig-name name)
|
||||
;; After normalization, name is nil, +, or +something. If a
|
||||
;; trailing slash is present, it is preserved.
|
||||
(name (mh-normalize-folder-name name nil t))
|
||||
(last-slash (mh-search-from-end ?/ name))
|
||||
(last-complete (if last-slash (substring name 0 last-slash) nil))
|
||||
;; nil if + or +folder; +folder/ if slash present.
|
||||
(last-complete (if last-slash (substring name 0 (1+ last-slash)) nil))
|
||||
;; Either +folder/remainder, +remainder, or "".
|
||||
(remainder (cond (last-complete (substring name (1+ last-slash)))
|
||||
((and (> (length name) 0) (equal (aref name 0) ?+))
|
||||
(substring name 1))
|
||||
(name (substring name 1))
|
||||
(t ""))))
|
||||
(cond ((eq flag nil)
|
||||
(let ((try-res (try-completion
|
||||
name
|
||||
(mapcar (lambda (x)
|
||||
(cons (if (not last-complete)
|
||||
(concat "+" (car x))
|
||||
(concat last-complete "/" (car x)))
|
||||
(cdr x)))
|
||||
(mh-sub-folders last-complete t))
|
||||
predicate)))
|
||||
(let ((try-res
|
||||
(try-completion
|
||||
name
|
||||
(mapcar (lambda (x)
|
||||
(cons (concat (or last-complete "+") (car x))
|
||||
(cdr x)))
|
||||
(mh-sub-folders last-complete t))
|
||||
predicate)))
|
||||
(cond ((eq try-res nil) nil)
|
||||
((and (eq try-res t) (equal name orig-name)) t)
|
||||
((eq try-res t) name)
|
||||
(t try-res))))
|
||||
((eq flag t)
|
||||
(all-completions
|
||||
remainder (mh-sub-folders last-complete t) predicate))
|
||||
(mapcar (lambda (x)
|
||||
(concat (or last-complete "+") x))
|
||||
(all-completions
|
||||
remainder (mh-sub-folders last-complete t) predicate)))
|
||||
((eq flag 'lambda)
|
||||
(let ((path (concat mh-user-path
|
||||
(substring (mh-normalize-folder-name name) 1))))
|
||||
(let ((path (concat (unless (and (> (length name) 1)
|
||||
(eq (aref name 1) ?/))
|
||||
mh-user-path)
|
||||
(substring name 1))))
|
||||
(cond (mh-allow-root-folder-flag (file-exists-p path))
|
||||
((equal path mh-user-path) nil)
|
||||
(t (file-exists-p path))))))))
|
||||
|
||||
;; Shush compiler.
|
||||
(eval-when-compile
|
||||
(mh-do-in-xemacs
|
||||
(defvar completion-root-regexp)
|
||||
(defvar minibuffer-completing-file-name)))
|
||||
(defvar completion-root-regexp) ; XEmacs
|
||||
(defvar minibuffer-completing-file-name) ; XEmacs
|
||||
|
||||
(defun mh-folder-completing-read (prompt default allow-root-folder-flag)
|
||||
"Read folder name with PROMPT and default result DEFAULT.
|
||||
If ALLOW-ROOT-FOLDER-FLAG is non-nil then \"+\" is allowed to be
|
||||
a folder name corresponding to `mh-user-path'."
|
||||
(mh-normalize-folder-name
|
||||
(let ((minibuffer-completing-file-name t)
|
||||
(completion-root-regexp "^[+/]")
|
||||
(let ((completion-root-regexp "^[+/]")
|
||||
(minibuffer-local-completion-map mh-folder-completion-map)
|
||||
(mh-allow-root-folder-flag allow-root-folder-flag))
|
||||
(completing-read prompt 'mh-folder-completion-function nil nil nil
|
||||
|
|
|
|||
|
|
@ -60,8 +60,7 @@
|
|||
(funcall mh-show-xface-function)))
|
||||
|
||||
;; Shush compiler.
|
||||
(eval-when-compile
|
||||
(mh-do-in-xemacs (defvar default-enable-multibyte-characters)))
|
||||
(defvar default-enable-multibyte-characters) ; XEmacs
|
||||
|
||||
(defun mh-face-display-function ()
|
||||
"Display a Face, X-Face, or X-Image-URL header field.
|
||||
|
|
|
|||
|
|
@ -979,7 +979,7 @@ Returns nil if an error message has appeared."
|
|||
;; Algorithm: get waiting output. See if last line contains
|
||||
;; tramp-smb-prompt sentinel or tramp-smb-errors strings.
|
||||
;; If not, wait a bit and again get waiting output.
|
||||
(while (and (not found) (not err))
|
||||
(while (not found)
|
||||
|
||||
;; Accept pending output.
|
||||
(tramp-accept-process-output proc)
|
||||
|
|
|
|||
|
|
@ -3584,6 +3584,10 @@ the result will be a local, non-Tramp, filename."
|
|||
"Global variable keeping asynchronous process object.
|
||||
Used in `tramp-handle-shell-command'")
|
||||
|
||||
(defvar tramp-display-shell-command-buffer t
|
||||
"Whether to display output buffer of `shell-command'.
|
||||
This is necessary for handling DISPLAY of `process-file'.")
|
||||
|
||||
(defun tramp-handle-shell-command (command &optional output-buffer error-buffer)
|
||||
"Like `shell-command' for tramp files.
|
||||
This will break if COMMAND prints a newline, followed by the value of
|
||||
|
|
@ -3692,7 +3696,8 @@ This will break if COMMAND prints a newline, followed by the value of
|
|||
(skip-chars-forward "^ ")
|
||||
(setq status (read (current-buffer)))))
|
||||
(unless (zerop (buffer-size))
|
||||
(display-buffer output-buffer))
|
||||
(when tramp-display-shell-command-buffer
|
||||
(display-buffer output-buffer)))
|
||||
status))
|
||||
;; The following is only executed if something strange was
|
||||
;; happening. Emit a helpful message and do it anyway.
|
||||
|
|
@ -3707,11 +3712,10 @@ This will break if COMMAND prints a newline, followed by the value of
|
|||
(when (and (numberp buffer) (zerop buffer))
|
||||
(error "Implementation does not handle immediate return"))
|
||||
(when (consp buffer) (error "Implementation does not handle error files"))
|
||||
(shell-command
|
||||
(mapconcat 'tramp-shell-quote-argument
|
||||
(cons program args)
|
||||
" ")
|
||||
buffer))
|
||||
(let ((tramp-display-shell-command-buffer display))
|
||||
(shell-command
|
||||
(mapconcat 'tramp-shell-quote-argument (cons program args) " ")
|
||||
buffer)))
|
||||
|
||||
;; File Editing.
|
||||
|
||||
|
|
@ -4454,24 +4458,28 @@ necessary anymore."
|
|||
file)
|
||||
(member (match-string 1 file) (mapcar 'car tramp-methods)))
|
||||
((or (equal last-input-event 'tab)
|
||||
;; Emacs
|
||||
(and (integerp last-input-event)
|
||||
(not (event-modifiers last-input-event))
|
||||
(or (char-equal last-input-event ?\?)
|
||||
(char-equal last-input-event ?\t) ; handled by 'tab already?
|
||||
(char-equal last-input-event ?\ )))
|
||||
;; Emacs
|
||||
(and (integerp last-input-event)
|
||||
(or
|
||||
;; ?\t has event-modifier 'control
|
||||
(char-equal last-input-event ?\t)
|
||||
(and (not (event-modifiers last-input-event))
|
||||
(or (char-equal last-input-event ?\?)
|
||||
(char-equal last-input-event ?\ )))))
|
||||
;; XEmacs
|
||||
(and (featurep 'xemacs)
|
||||
(not (event-modifiers last-input-event))
|
||||
(or (char-equal
|
||||
(funcall (symbol-function 'event-to-character)
|
||||
last-input-event) ?\?)
|
||||
(char-equal
|
||||
(funcall (symbol-function 'event-to-character)
|
||||
last-input-event) ?\t)
|
||||
(char-equal
|
||||
(funcall (symbol-function 'event-to-character)
|
||||
last-input-event) ?\ ))))
|
||||
(or
|
||||
;; ?\t has event-modifier 'control
|
||||
(char-equal
|
||||
(funcall (symbol-function 'event-to-character)
|
||||
last-input-event) ?\t)
|
||||
(and (not (event-modifiers last-input-event))
|
||||
(or (char-equal
|
||||
(funcall (symbol-function 'event-to-character)
|
||||
last-input-event) ?\?)
|
||||
(char-equal
|
||||
(funcall (symbol-function 'event-to-character)
|
||||
last-input-event) ?\ ))))))
|
||||
t)))
|
||||
|
||||
(defun tramp-completion-handle-file-exists-p (filename)
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
;; are auto-frobbed from configure.ac, so you should edit that file and run
|
||||
;; "autoconf && ./configure" to change them.
|
||||
|
||||
(defconst tramp-version "2.0.52"
|
||||
(defconst tramp-version "2.0.53"
|
||||
"This version of Tramp.")
|
||||
|
||||
(defconst tramp-bug-report-address "tramp-devel@gnu.org"
|
||||
|
|
|
|||
|
|
@ -895,6 +895,11 @@ indentation to be kept as it was before narrowing."
|
|||
(delete-char n)
|
||||
(setq ,bindent (- ,bindent n)))))))))))
|
||||
|
||||
(defun comment-add (arg)
|
||||
(if (and (null arg) (= (string-match "[ \t]*\\'" comment-start) 1))
|
||||
comment-add
|
||||
(1- (prefix-numeric-value arg))))
|
||||
|
||||
(defun comment-region-internal (beg end cs ce
|
||||
&optional ccs cce block lines indent)
|
||||
"Comment region BEG .. END.
|
||||
|
|
@ -999,7 +1004,6 @@ The strings used as comment starts are built from
|
|||
|
||||
(defun comment-region-default (beg end &optional arg)
|
||||
(let* ((numarg (prefix-numeric-value arg))
|
||||
(add comment-add)
|
||||
(style (cdr (assoc comment-style comment-styles)))
|
||||
(lines (nth 2 style))
|
||||
(block (nth 1 style))
|
||||
|
|
@ -1032,8 +1036,7 @@ The strings used as comment starts are built from
|
|||
((consp arg) (uncomment-region beg end))
|
||||
((< numarg 0) (uncomment-region beg end (- numarg)))
|
||||
(t
|
||||
(setq numarg (if (and (null arg) (= (length comment-start) 1))
|
||||
add (1- numarg)))
|
||||
(setq numarg (comment-add arg))
|
||||
(comment-region-internal
|
||||
beg end
|
||||
(let ((s (comment-padright comment-start numarg)))
|
||||
|
|
@ -1091,9 +1094,8 @@ You can configure `comment-style' to change the way regions are commented."
|
|||
;; FIXME: If there's no comment to kill on this line and ARG is
|
||||
;; specified, calling comment-kill is not very clever.
|
||||
(if arg (comment-kill (and (integerp arg) arg)) (comment-indent))
|
||||
(let ((add (if arg (prefix-numeric-value arg)
|
||||
(if (= (length comment-start) 1) comment-add 0))))
|
||||
;; Some modes insist on keeping column 0 comment in column 0
|
||||
(let ((add (comment-add arg)))
|
||||
;; Some modes insist on keeping column 0 comment in column 0
|
||||
;; so we need to move away from it before inserting the comment.
|
||||
(indent-according-to-mode)
|
||||
(insert (comment-padright comment-start add))
|
||||
|
|
|
|||
|
|
@ -271,8 +271,8 @@ The remaining KEYS are passed directly to `cvs-create-fileinfo'."
|
|||
;; on the current branch (either because it only exists in other
|
||||
;; branches, or because it's been removed).
|
||||
(if (ignore-errors
|
||||
(with-current-buffer
|
||||
(find-file-noselect (expand-file-name
|
||||
(with-temp-buffer
|
||||
(insert-file-contents (expand-file-name
|
||||
".cvsignore" (file-name-directory dir)))
|
||||
(goto-char (point-min))
|
||||
(re-search-forward
|
||||
|
|
|
|||
|
|
@ -267,7 +267,8 @@ the evaluated constant value at compile time."
|
|||
["Hungry delete" c-toggle-hungry-state
|
||||
:style toggle :selected c-hungry-delete-key]
|
||||
["Subword mode" c-subword-mode
|
||||
:style toggle :selected c-subword-mode])))
|
||||
:style toggle :selected (and (boundp 'c-subword-mode)
|
||||
c-subword-mode)])))
|
||||
|
||||
|
||||
;;; Syntax tables.
|
||||
|
|
|
|||
|
|
@ -100,7 +100,9 @@
|
|||
(defvar tool-bar-map)
|
||||
(defvar speedbar-initial-expansion-list-name)
|
||||
|
||||
(defvar gdb-frame-address "main" "Initialization for Assembler buffer.")
|
||||
(defvar gdb-pc-address nil "Initialization for Assembler buffer.
|
||||
Set to \"main\" at start if gdb-show-main is t.")
|
||||
(defvar gdb-frame-address nil "Identity of frame for watch expression.")
|
||||
(defvar gdb-previous-frame-address nil)
|
||||
(defvar gdb-memory-address "main")
|
||||
(defvar gdb-previous-frame nil)
|
||||
|
|
@ -109,8 +111,9 @@
|
|||
(defvar gdb-current-language nil)
|
||||
(defvar gdb-var-list nil
|
||||
"List of variables in watch window.
|
||||
Each element has the form (VARNUM EXPRESSION NUMCHILD TYPE VALUE STATUS) where
|
||||
STATUS is nil (unchanged), `changed' or `out-of-scope'.")
|
||||
Each element has the form (VARNUM EXPRESSION NUMCHILD TYPE VALUE STATUS FP)
|
||||
where STATUS is nil (unchanged), `changed' or `out-of-scope', FP the frame
|
||||
address for root variables.")
|
||||
(defvar gdb-force-update t
|
||||
"Non-nil means that view of watch expressions will be updated in the speedbar.")
|
||||
(defvar gdb-main-file nil "Source file from which program execution begins.")
|
||||
|
|
@ -417,7 +420,8 @@ With arg, use separate IO iff arg is positive."
|
|||
(goto-char (point-min))
|
||||
(when (search-forward "read in on demand:" nil t)
|
||||
(while (re-search-forward gdb-source-file-regexp nil t)
|
||||
(push (or (match-string 1) (match-string 2)) gdb-source-file-list))
|
||||
(push (file-name-nondirectory (or (match-string 1) (match-string 2)))
|
||||
gdb-source-file-list))
|
||||
(dolist (buffer (buffer-list))
|
||||
(with-current-buffer buffer
|
||||
(when (and buffer-file-name
|
||||
|
|
@ -515,7 +519,7 @@ With arg, use separate IO iff arg is positive."
|
|||
(setq comint-input-sender 'gdb-send)
|
||||
|
||||
;; (re-)initialize
|
||||
(setq gdb-frame-address (if gdb-show-main "main" nil))
|
||||
(setq gdb-pc-address (if gdb-show-main "main" nil))
|
||||
(setq gdb-previous-frame-address nil
|
||||
gdb-memory-address "main"
|
||||
gdb-previous-frame nil
|
||||
|
|
@ -719,7 +723,7 @@ With arg, enter name of variable to be watched in the minibuffer."
|
|||
expr)
|
||||
(match-string 2)
|
||||
(match-string 3)
|
||||
nil nil)))
|
||||
nil nil gdb-frame-address)))
|
||||
(push var gdb-var-list)
|
||||
(speedbar 1)
|
||||
(unless (string-equal
|
||||
|
|
@ -1205,7 +1209,7 @@ This filter may simply queue input for a later time."
|
|||
(cons
|
||||
(match-string 1 args)
|
||||
(string-to-number (match-string 2 args))))
|
||||
(setq gdb-frame-address (match-string 3 args))
|
||||
(setq gdb-pc-address (match-string 3 args))
|
||||
;; cover for auto-display output which comes *before*
|
||||
;; stopped annotation
|
||||
(if (eq gdb-output-sink 'inferior) (setq gdb-output-sink 'user)))
|
||||
|
|
@ -1356,7 +1360,7 @@ happens to be appropriate."
|
|||
(gdb-get-buffer-create 'gdb-breakpoints-buffer)
|
||||
(gdb-invalidate-breakpoints)
|
||||
;; Do this through gdb-get-selected-frame -> gdb-frame-handler
|
||||
;; so gdb-frame-address is updated.
|
||||
;; so gdb-pc-address is updated.
|
||||
;; (gdb-invalidate-assembler)
|
||||
|
||||
(if (string-equal gdb-version "pre-6.4")
|
||||
|
|
@ -3003,11 +3007,11 @@ BUFFER nil or omitted means use the current buffer."
|
|||
(pos 1) (address) (flag) (bptno))
|
||||
(with-current-buffer buffer
|
||||
(save-excursion
|
||||
(if (not (equal gdb-frame-address "main"))
|
||||
(if (not (equal gdb-pc-address "main"))
|
||||
(progn
|
||||
(goto-char (point-min))
|
||||
(if (and gdb-frame-address
|
||||
(search-forward gdb-frame-address nil t))
|
||||
(if (and gdb-pc-address
|
||||
(search-forward gdb-pc-address nil t))
|
||||
(progn
|
||||
(setq pos (point))
|
||||
(beginning-of-line)
|
||||
|
|
@ -3037,7 +3041,7 @@ BUFFER nil or omitted means use the current buffer."
|
|||
(goto-char (point-min))
|
||||
(if (search-forward address nil t)
|
||||
(gdb-put-breakpoint-icon (eq flag ?y) bptno))))))))
|
||||
(if (not (equal gdb-frame-address "main"))
|
||||
(if (not (equal gdb-pc-address "main"))
|
||||
(with-current-buffer buffer
|
||||
(set-window-point (get-buffer-window buffer 0) pos)))))
|
||||
|
||||
|
|
@ -3099,7 +3103,7 @@ BUFFER nil or omitted means use the current buffer."
|
|||
(special-display-frame-alist gdb-frame-parameters))
|
||||
(display-buffer (gdb-get-buffer-create 'gdb-assembler-buffer))))
|
||||
|
||||
;; modified because if gdb-frame-address has changed value a new command
|
||||
;; modified because if gdb-pc-address has changed value a new command
|
||||
;; must be enqueued to update the buffer with the new output
|
||||
(defun gdb-invalidate-assembler (&optional ignored)
|
||||
(if (gdb-get-buffer 'gdb-assembler-buffer)
|
||||
|
|
@ -3108,7 +3112,7 @@ BUFFER nil or omitted means use the current buffer."
|
|||
(string-equal gdb-selected-frame gdb-previous-frame))
|
||||
(if (or (not (member 'gdb-invalidate-assembler
|
||||
gdb-pending-triggers))
|
||||
(not (string-equal gdb-frame-address
|
||||
(not (string-equal gdb-pc-address
|
||||
gdb-previous-frame-address)))
|
||||
(progn
|
||||
;; take previous disassemble command, if any, off the queue
|
||||
|
|
@ -3121,11 +3125,11 @@ BUFFER nil or omitted means use the current buffer."
|
|||
(gdb-enqueue-input
|
||||
(list
|
||||
(concat gdb-server-prefix "disassemble "
|
||||
(if (member gdb-frame-address '(nil "main")) nil "0x")
|
||||
gdb-frame-address "\n")
|
||||
(if (member gdb-pc-address '(nil "main")) nil "0x")
|
||||
gdb-pc-address "\n")
|
||||
'gdb-assembler-handler))
|
||||
(push 'gdb-invalidate-assembler gdb-pending-triggers)
|
||||
(setq gdb-previous-frame-address gdb-frame-address)
|
||||
(setq gdb-previous-frame-address gdb-pc-address)
|
||||
(setq gdb-previous-frame gdb-selected-frame)))))))
|
||||
|
||||
(defun gdb-get-selected-frame ()
|
||||
|
|
@ -3140,8 +3144,10 @@ BUFFER nil or omitted means use the current buffer."
|
|||
(setq gdb-pending-triggers
|
||||
(delq 'gdb-get-selected-frame gdb-pending-triggers))
|
||||
(goto-char (point-min))
|
||||
(if (re-search-forward "Stack level \\([0-9]+\\)" nil t)
|
||||
(setq gdb-frame-number (match-string 1)))
|
||||
(when (re-search-forward
|
||||
"Stack level \\([0-9]+\\), frame at \\(0x[[:xdigit:]]+\\)" nil t)
|
||||
(setq gdb-frame-number (match-string 1))
|
||||
(setq gdb-frame-address (match-string 2)))
|
||||
(goto-char (point-min))
|
||||
(when (re-search-forward ".*=\\s-+0x0*\\(\\S-*\\)\\s-+in\\s-+\\(\\S-+?\\)\
|
||||
\\(?: (\\(\\S-+?\\):[0-9]+?)\\)*;? "
|
||||
|
|
@ -3153,7 +3159,7 @@ BUFFER nil or omitted means use the current buffer."
|
|||
(if (gdb-get-buffer 'gdb-assembler-buffer)
|
||||
(with-current-buffer (gdb-get-buffer 'gdb-assembler-buffer)
|
||||
(setq mode-name (concat "Machine:" gdb-selected-frame))))
|
||||
(setq gdb-frame-address (match-string 1))
|
||||
(setq gdb-pc-address (match-string 1))
|
||||
(if (and (match-string 3) gud-overlay-arrow-position)
|
||||
(let ((buffer (marker-buffer gud-overlay-arrow-position))
|
||||
(position (marker-position gud-overlay-arrow-position)))
|
||||
|
|
|
|||
|
|
@ -374,8 +374,9 @@ t means that there is no stack, and we are in display-file mode.")
|
|||
(defun gud-speedbar-item-info ()
|
||||
"Display the data type of the watch expression element."
|
||||
(let ((var (nth (- (line-number-at-pos (point)) 2) gdb-var-list)))
|
||||
(if (nth 4 var)
|
||||
(speedbar-message "%s" (nth 3 var)))))
|
||||
(if (nth 6 var)
|
||||
(speedbar-message "%s: %s" (nth 6 var) (nth 3 var))
|
||||
(speedbar-message "%s" (nth 3 var)))))
|
||||
|
||||
(defun gud-install-speedbar-variables ()
|
||||
"Install those variables used by speedbar to enhance gud/gdb."
|
||||
|
|
|
|||
|
|
@ -1744,6 +1744,14 @@ lines count as headers.
|
|||
#'python-eldoc-function)
|
||||
(add-hook 'eldoc-mode-hook
|
||||
'(lambda () (run-python nil t)) nil t) ; need it running
|
||||
(unless (assoc 'python-mode hs-special-modes-alist)
|
||||
(setq
|
||||
hs-special-modes-alist
|
||||
(cons (list
|
||||
'python-mode "^\\s-*def\\>" nil "#"
|
||||
(lambda (arg)(python-end-of-defun)(skip-chars-backward " \t\n"))
|
||||
nil)
|
||||
hs-special-modes-alist)))
|
||||
(if (featurep 'hippie-exp)
|
||||
(set (make-local-variable 'hippie-expand-try-functions-list)
|
||||
(cons 'python-try-complete hippie-expand-try-functions-list)))
|
||||
|
|
|
|||
|
|
@ -1042,7 +1042,7 @@ Returns nil if line starts inside a string, t if in a comment."
|
|||
(defun tcl-send-string (proc string)
|
||||
(with-current-buffer (process-buffer proc)
|
||||
(goto-char (process-mark proc))
|
||||
(beginning-of-line)
|
||||
(forward-line 0) ;Not (beginning-of-line) because of fields.
|
||||
(if (looking-at comint-prompt-regexp)
|
||||
(set-marker inferior-tcl-delete-prompt-marker (point))))
|
||||
(comint-send-string proc string))
|
||||
|
|
@ -1050,7 +1050,7 @@ Returns nil if line starts inside a string, t if in a comment."
|
|||
(defun tcl-send-region (proc start end)
|
||||
(with-current-buffer (process-buffer proc)
|
||||
(goto-char (process-mark proc))
|
||||
(beginning-of-line)
|
||||
(forward-line 0) ;Not (beginning-of-line) because of fields.
|
||||
(if (looking-at comint-prompt-regexp)
|
||||
(set-marker inferior-tcl-delete-prompt-marker (point))))
|
||||
(comint-send-region proc start end))
|
||||
|
|
@ -1080,7 +1080,11 @@ See variable `inferior-tcl-buffer'."
|
|||
Prefix argument means switch to the Tcl buffer afterwards."
|
||||
(interactive "r\nP")
|
||||
(let ((proc (inferior-tcl-proc)))
|
||||
(tcl-send-region proc start end)
|
||||
(tcl-send-region
|
||||
proc
|
||||
;; Strip leading and trailing whitespace.
|
||||
(save-excursion (goto-char start) (skip-chars-forward " \t\n") (point))
|
||||
(save-excursion (goto-char end) (skip-chars-backward " \t\n") (point)))
|
||||
(tcl-send-string proc "\n")
|
||||
(if and-go (switch-to-tcl t))))
|
||||
|
||||
|
|
@ -1149,7 +1153,12 @@ See documentation for function `inferior-tcl-mode' for more information."
|
|||
(unless (comint-check-proc "*inferior-tcl*")
|
||||
(set-buffer (apply (function make-comint) "inferior-tcl" cmd nil
|
||||
tcl-command-switches))
|
||||
(inferior-tcl-mode))
|
||||
(inferior-tcl-mode)
|
||||
;; Make tclsh display a prompt on ms-windows (or under Unix, when a tty
|
||||
;; wasn't used). Doesn't affect wish, unfortunately.
|
||||
(unless (process-tty-name (inferior-tcl-proc))
|
||||
(tcl-send-string (inferior-tcl-proc)
|
||||
"set ::tcl_interactive 1; concat\n")))
|
||||
(set (make-local-variable 'tcl-application) cmd)
|
||||
(setq inferior-tcl-buffer "*inferior-tcl*")
|
||||
(pop-to-buffer "*inferior-tcl*"))
|
||||
|
|
|
|||
|
|
@ -1540,7 +1540,8 @@ by doing (clear-string STRING)."
|
|||
(let ((pass nil)
|
||||
(c 0)
|
||||
(echo-keystrokes 0)
|
||||
(cursor-in-echo-area t))
|
||||
(cursor-in-echo-area t)
|
||||
(message-log-max nil))
|
||||
(add-text-properties 0 (length prompt)
|
||||
minibuffer-prompt-properties prompt)
|
||||
(while (progn (message "%s%s"
|
||||
|
|
|
|||
|
|
@ -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.21
|
||||
;; Version: 4.24
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
|
|
@ -81,9 +81,17 @@
|
|||
;;
|
||||
;; Changes since version 4.00:
|
||||
;; ---------------------------
|
||||
;; Version 4.21
|
||||
;; Version 4.24
|
||||
;; - Bug fixes.
|
||||
;;
|
||||
;; Version 4.23
|
||||
;; - Bug fixes.
|
||||
;;
|
||||
;; Version 4.22
|
||||
;; - Bug fixes.
|
||||
;; - In agenda buffer, mouse-1 no longer follows link.
|
||||
;; See `org-agenda-mouse-1-follows-link' and `org-mouse-1-follows-link'.
|
||||
;;
|
||||
;; Version 4.20
|
||||
;; - Links use now the [[link][description]] format by default.
|
||||
;; When inserting links, the user is prompted for a description.
|
||||
|
|
@ -174,7 +182,7 @@
|
|||
|
||||
;;; Customization variables
|
||||
|
||||
(defvar org-version "4.21"
|
||||
(defvar org-version "4.24"
|
||||
"The version number of the file org.el.")
|
||||
(defun org-version ()
|
||||
(interactive)
|
||||
|
|
@ -227,7 +235,11 @@ uninteresting. Also tables look terrible when wrapped."
|
|||
(defcustom org-startup-align-all-tables nil
|
||||
"Non-nil means, align all tables when visiting a file.
|
||||
This is useful when the column width in tables is forced with <N> cookies
|
||||
in table fields. Such tables will look correct only after the first re-align."
|
||||
in table fields. Such tables will look correct only after the first re-align.
|
||||
This can also be configured on a per-file basis by adding one of
|
||||
the following lines anywhere in the buffer:
|
||||
#+STARTUP: align
|
||||
#+STARTUP: noalign"
|
||||
:group 'org-startup
|
||||
:type 'boolean)
|
||||
|
||||
|
|
@ -237,7 +249,6 @@ This means, if you start editing an org file, you will get an
|
|||
immediate reminder of any due deadlines.
|
||||
This can also be configured on a per-file basis by adding one of
|
||||
the following lines anywhere in the buffer:
|
||||
|
||||
#+STARTUP: dlcheck
|
||||
#+STARTUP: nodlcheck"
|
||||
:group 'org-startup
|
||||
|
|
@ -391,7 +402,12 @@ 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.
|
||||
Changing it requires restart of `font-lock-mode' to become effective
|
||||
for fontification also in regions already fontified."
|
||||
for fontification also in regions already fontified.
|
||||
You may also set this on a per-file basis by adding one of the following
|
||||
lines to the buffer:
|
||||
|
||||
#+STARTUP: odd
|
||||
#+STARTUP: oddeven"
|
||||
:group 'org-edit-structure
|
||||
:group 'org-font-lock
|
||||
:type 'boolean)
|
||||
|
|
@ -870,6 +886,13 @@ Needs to be set before org.el is loaded."
|
|||
:group 'org-link-follow
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom org-mouse-1-follows-link t
|
||||
"Non-nil means, mouse-1 on a link will follow the link.
|
||||
A longer mouse click will still set point. Does not wortk on XEmacs.
|
||||
Needs to be set before org.el is loaded."
|
||||
:group 'org-link-follow
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom org-mark-ring-length 4
|
||||
"Number of different positions to be recorded in the ring
|
||||
Changing this requires a restart of Emacs to work correctly."
|
||||
|
|
@ -1112,7 +1135,7 @@ closing date."
|
|||
:type 'boolean)
|
||||
|
||||
(defgroup org-priorities nil
|
||||
"Keywords in Org-mode."
|
||||
"Priorities in Org-mode."
|
||||
:tag "Org Priorities"
|
||||
:group 'org-todo)
|
||||
|
||||
|
|
@ -1167,7 +1190,7 @@ moved to the new date."
|
|||
:type 'boolean)
|
||||
|
||||
(defgroup org-tags nil
|
||||
"Options concerning startup of Org-mode."
|
||||
"Options concerning tags in Org-mode."
|
||||
:tag "Org Tags"
|
||||
:group 'org)
|
||||
|
||||
|
|
@ -1301,21 +1324,28 @@ forth between agenda and calendar."
|
|||
:tag "Org Agenda Window Setup"
|
||||
:group 'org-agenda)
|
||||
|
||||
(defcustom org-agenda-mouse-1-follows-link nil
|
||||
"Non-nil means, mouse-1 on a link will follow the link in the agenda.
|
||||
A longer mouse click will still set point. Does not wortk on XEmacs.
|
||||
Needs to be set before org.el is loaded."
|
||||
:group 'org-agenda-setup
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom org-select-timeline-window t
|
||||
"Non-nil means, after creating a timeline, move cursor into Timeline window.
|
||||
When nil, cursor will remain in the current window."
|
||||
:group 'org-agenda-window-setup
|
||||
:group 'org-agenda-setup
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom org-select-agenda-window t
|
||||
"Non-nil means, after creating an agenda, move cursor into Agenda window.
|
||||
When nil, cursor will remain in the current window."
|
||||
:group 'org-agenda-window-setup
|
||||
:group 'org-agenda-setup
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom org-fit-agenda-window t
|
||||
"Non-nil means, change window size of agenda to fit content."
|
||||
:group 'org-agenda-window-setup
|
||||
:group 'org-agenda-setup
|
||||
:type 'boolean)
|
||||
|
||||
(defgroup org-agenda-display nil
|
||||
|
|
@ -1884,7 +1914,12 @@ 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 it requires restart of `font-lock-mode' to become effective
|
||||
also in regions already fontified."
|
||||
also in regions already fontified.
|
||||
You may also set this on a per-file basis by adding one of the following
|
||||
lines to the buffer:
|
||||
|
||||
#+STARTUP: hidestars
|
||||
#+STARTUP: showstars"
|
||||
:group 'org-font-lock
|
||||
:type 'boolean)
|
||||
|
||||
|
|
@ -2051,6 +2086,14 @@ Changing this variable requires a restart of Emacs to take effect."
|
|||
"Face for links."
|
||||
:group 'org-faces)
|
||||
|
||||
(defface org-date
|
||||
'((((type tty) (class color)) (:foreground "cyan" :weight bold))
|
||||
(((class color) (background light)) (:foreground "Purple" :underline t))
|
||||
(((class color) (background dark)) (:foreground "Cyan" :underline t))
|
||||
(t (:bold t)))
|
||||
"Face for links."
|
||||
:group 'org-faces)
|
||||
|
||||
(defface org-tag
|
||||
'((((type tty) (class color)) (:weight bold))
|
||||
(((class color) (background light)) (:weight bold))
|
||||
|
|
@ -2059,6 +2102,15 @@ Changing this variable requires a restart of Emacs to take effect."
|
|||
"Face for tags."
|
||||
:group 'org-faces)
|
||||
|
||||
(defface org-todo ;; font-lock-warning-face
|
||||
'((((type tty) (class color)) (:foreground "red"))
|
||||
(((class color) (background light)) (:foreground "Red" :bold t))
|
||||
(((class color) (background dark)) (:foreground "Red1" :bold t))
|
||||
; (((class color) (background dark)) (:foreground "Pink" :bold t))
|
||||
(t (:inverse-video t :bold t)))
|
||||
"Face for TODO keywords."
|
||||
:group 'org-faces)
|
||||
|
||||
(defface org-done ;; font-lock-type-face
|
||||
'((((type tty) (class color)) (:foreground "green"))
|
||||
(((class color) (background light)) (:foreground "ForestGreen" :bold t))
|
||||
|
|
@ -2165,7 +2217,9 @@ Changing this variable requires a restart of Emacs to take effect."
|
|||
((equal key "STARTUP")
|
||||
(let ((opts (org-split-string value splitre))
|
||||
(set '(("fold" org-startup-folded t)
|
||||
("overview" org-startup-folded t)
|
||||
("nofold" org-startup-folded nil)
|
||||
("showall" org-startup-folded nil)
|
||||
("content" org-startup-folded content)
|
||||
("hidestars" org-hide-leading-stars t)
|
||||
("showstars" org-hide-leading-stars nil)
|
||||
|
|
@ -2379,6 +2433,10 @@ The following commands are available:
|
|||
s)
|
||||
(match-string-no-properties num string)))
|
||||
|
||||
(defsubst org-no-properties (s)
|
||||
(remove-text-properties 0 (length s) org-rm-props s)
|
||||
s)
|
||||
|
||||
(defun org-current-time ()
|
||||
"Current time, possibly rounded to `org-time-stamp-rounding-minutes'."
|
||||
(if (> org-time-stamp-rounding-minutes 0)
|
||||
|
|
@ -2406,7 +2464,8 @@ that will be added to PLIST. Returns the string that was modified."
|
|||
(if (featurep 'xemacs) [button2] [mouse-2]) 'org-open-at-mouse)
|
||||
(define-key org-mouse-map
|
||||
(if (featurep 'xemacs) [button3] [mouse-3]) 'org-find-file-at-mouse)
|
||||
(define-key org-mouse-map [follow-link] 'mouse-face)
|
||||
(when org-mouse-1-follows-link
|
||||
(define-key org-mouse-map [follow-link] 'mouse-face))
|
||||
(when org-tab-follows-link
|
||||
(define-key org-mouse-map [(tab)] 'org-open-at-point)
|
||||
(define-key org-mouse-map "\C-i" 'org-open-at-point))
|
||||
|
|
@ -2508,7 +2567,9 @@ that will be added to PLIST. Returns the string that was modified."
|
|||
(defun org-activate-bracket-links (limit)
|
||||
"Run through the buffer and add overlays to bracketed links."
|
||||
(if (re-search-forward org-bracket-link-regexp limit t)
|
||||
(let* ((help (concat "LINK: " (org-match-string-no-properties 1)))
|
||||
(let* ((help (concat "LINK: "
|
||||
(org-match-string-no-properties 1)))
|
||||
;; FIXME: above we should remove the escapes.
|
||||
(ip (list 'invisible 'org-link 'intangible t 'rear-nonsticky t
|
||||
'keymap org-mouse-map 'mouse-face 'highlight
|
||||
'help-echo help))
|
||||
|
|
@ -2656,13 +2717,13 @@ between words."
|
|||
(if (memq 'plain lk) '(org-activate-plain-links (0 'org-link t)))
|
||||
(if (memq 'bracket lk) '(org-activate-bracket-links (0 'org-link t)))
|
||||
(if (memq 'radio lk) '(org-activate-target-links (0 'org-link t)))
|
||||
(if (memq 'date lk) '(org-activate-dates (0 'org-link t)))
|
||||
(if (memq 'date lk) '(org-activate-dates (0 'org-date t)))
|
||||
(if (memq 'camel lk) '(org-activate-camels (0 'org-link t)))
|
||||
(if (memq 'tag lk) '(org-activate-tags (1 'org-tag prepend)))
|
||||
(if org-table-limit-column-width
|
||||
'(org-hide-wide-columns (0 nil append)))
|
||||
(list (concat "^\\*+[ \t]*" org-not-done-regexp)
|
||||
'(1 'org-warning t))
|
||||
'(1 'org-todo t))
|
||||
(list (concat "\\[#[A-Z]\\]") '(0 'org-special-keyword t))
|
||||
(list (concat "\\<" org-deadline-string) '(0 'org-special-keyword t))
|
||||
(list (concat "\\<" org-scheduled-string) '(0 'org-special-keyword t))
|
||||
|
|
@ -2683,7 +2744,7 @@ between words."
|
|||
'("| *\\(:?=[^|\n]*\\)" (1 'org-formula t))
|
||||
'("^[ \t]*| *\\([#!$*_^]\\) *|" (1 'org-formula t))
|
||||
(if org-format-transports-properties-p
|
||||
'("| *\\(<[0-9]+>\\) *|" (1 'org-formula t)))
|
||||
'("| *\\(<[0-9]+>\\) *" (1 'org-formula t)))
|
||||
)))
|
||||
(setq org-font-lock-extra-keywords (delq nil org-font-lock-extra-keywords))
|
||||
;; Now set the full font-lock-keywords
|
||||
|
|
@ -3048,7 +3109,10 @@ or nil."
|
|||
(error (outline-next-heading)))
|
||||
(prog1 (match-string 0)
|
||||
(funcall outline-level)))))
|
||||
(unless (bolp) (newline))
|
||||
(if (and (bolp)
|
||||
(save-excursion (backward-char 1) (not (org-invisible-p))))
|
||||
(open-line 1)
|
||||
(newline))
|
||||
(insert head)
|
||||
(if (looking-at "[ \t]*")
|
||||
(replace-match " "))
|
||||
|
|
@ -4249,7 +4313,7 @@ used to insert the time stamp into the buffer to include the time."
|
|||
;; the range start.
|
||||
(if (save-excursion
|
||||
(re-search-backward
|
||||
(concat org-ts-regexp "--\\=")
|
||||
(concat org-ts-regexp "--\\=") ; FIXME: exactly two minuses?
|
||||
(- (point) 20) t))
|
||||
(apply
|
||||
'encode-time
|
||||
|
|
@ -4769,7 +4833,8 @@ The following commands are available:
|
|||
(if (featurep 'xemacs) [(button2)] [(mouse-2)]) 'org-agenda-goto-mouse)
|
||||
(define-key org-agenda-keymap
|
||||
(if (featurep 'xemacs) [(button3)] [(mouse-3)]) 'org-agenda-show-mouse)
|
||||
(define-key org-agenda-keymap [follow-link] 'mouse-face)
|
||||
(when org-agenda-mouse-1-follows-link
|
||||
(define-key org-agenda-keymap [follow-link] 'mouse-face))
|
||||
(easy-menu-define org-agenda-menu org-agenda-mode-map "Agenda menu"
|
||||
'("Agenda"
|
||||
("Agenda Files")
|
||||
|
|
@ -5156,7 +5221,7 @@ NDAYS defaults to `org-agenda-ndays'."
|
|||
(d (- nt n1)))
|
||||
(- sd (+ (if (< d 0) 7 0) d)))))
|
||||
(day-numbers (list start))
|
||||
;FIXME (inhibit-redisplay t)
|
||||
(inhibit-redisplay t)
|
||||
s e rtn rtnall file date d start-pos end-pos todayp nd)
|
||||
(setq org-agenda-redo-command
|
||||
(list 'org-agenda-list (list 'quote include-all) start-day ndays t))
|
||||
|
|
@ -5522,7 +5587,7 @@ With prefix ARG, go back that many times `org-agenda-ndays'."
|
|||
(org-disable-agenda-to-diary t))
|
||||
(save-excursion
|
||||
(save-window-excursion
|
||||
(list-diary-entries date 1)))
|
||||
(list-diary-entries date 1))) ;; Keep this name for now, compatibility
|
||||
(if (not (get-buffer fancy-diary-buffer))
|
||||
(setq entries nil)
|
||||
(with-current-buffer fancy-diary-buffer
|
||||
|
|
@ -5966,7 +6031,7 @@ the documentation of `org-diary'."
|
|||
(org-add-props txt nil
|
||||
'face 'org-scheduled-today
|
||||
'undone-face 'org-scheduled-today 'done-face 'org-done
|
||||
'category category priority (+ 99 priority))
|
||||
'category category 'priority (+ 99 priority))
|
||||
(org-add-props txt nil 'priority priority 'category category)))
|
||||
(push txt ee))
|
||||
(outline-next-heading))))
|
||||
|
|
@ -6227,7 +6292,7 @@ only the correctly processes TXT should be returned - this is used by
|
|||
(file-name-sans-extension
|
||||
(file-name-nondirectory buffer-file-name))
|
||||
"")))
|
||||
(tag (or (nth (1- (or (length tags) 0)) tags) ""))
|
||||
(tag (if tags (nth (1- (length tags)) 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)))
|
||||
|
|
@ -7282,7 +7347,10 @@ optional argument IN-EMACS is non-nil, Emacs will visit the file."
|
|||
(format "Execute \"%s\" in shell? "
|
||||
(org-add-props cmd nil
|
||||
'face 'org-warning))))
|
||||
(shell-command cmd)
|
||||
(progn
|
||||
(message "Executing %s..." cmd)
|
||||
(shell-command cmd)
|
||||
(message "Executing %s...done" cmd))
|
||||
(error "Abort"))))
|
||||
|
||||
(t
|
||||
|
|
@ -7670,6 +7738,28 @@ folders."
|
|||
(kill-this-buffer)
|
||||
(error "Message not found"))))
|
||||
|
||||
(defun org-upgrade-old-links (&optional query-description)
|
||||
"Transfer old <...> style links to new [[...]] style links.
|
||||
With arg query-description, ask at each match for a description text to use
|
||||
for this link."
|
||||
(interactive (list (y-or-n-p "Would you like to be queried for a description at each link?")))
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(let ((re (concat "\\([^[]\\)<\\("
|
||||
"\\(" (mapconcat 'identity org-link-types "\\|")
|
||||
"\\):"
|
||||
"[^" org-non-link-chars "]+\\)>"))
|
||||
l1 l2 (cnt 0))
|
||||
(while (re-search-forward re nil t)
|
||||
(setq cnt (1+ cnt)
|
||||
l1 (org-match-string-no-properties 2)
|
||||
l2 (save-match-data (org-link-escape l1)))
|
||||
(when query-description (setq l1 (read-string "Desc: " l1)))
|
||||
(if (equal l1 l2)
|
||||
(replace-match (concat (match-string 1) "[[" l1 "]]") t t)
|
||||
(replace-match (concat (match-string 1) "[[" l2 "][" l1 "]]") t t)))
|
||||
(message "%d matches have beed treated" cnt))))
|
||||
|
||||
(defun org-open-file (path &optional in-emacs line search)
|
||||
"Open the file at PATH.
|
||||
First, this expands any special file name abbreviations. Then the
|
||||
|
|
@ -8619,7 +8709,7 @@ This is being used to correctly align a single field after TAB or RET.")
|
|||
(> (org-string-width xx) fmax))
|
||||
(org-add-props xx nil
|
||||
'help-echo
|
||||
(concat "Clipped table field, use C-c ` to edit. Full value is:\n" (copy-sequence xx)))
|
||||
(concat "Clipped table field, use C-c ` to edit. Full value is:\n" (org-no-properties (copy-sequence xx))))
|
||||
(setq f1 (min fmax (or (string-match org-bracket-link-regexp xx) fmax)))
|
||||
(unless (> f1 1)
|
||||
(error "Cannot narrow field starting with wide link \"%s\""
|
||||
|
|
@ -10153,7 +10243,8 @@ $1-> %s\n" orig formula form))
|
|||
(org-table-align)))))
|
||||
|
||||
(defun org-table-recalculate (&optional all noalign)
|
||||
"Recalculate the current table line by applying all stored formulas."
|
||||
"Recalculate the current table line by applying all stored formulas.
|
||||
With prefix arg ALL, do this for all lines in the table."
|
||||
(interactive "P")
|
||||
(or (memq this-command org-recalc-commands)
|
||||
(setq org-recalc-commands (cons this-command org-recalc-commands)))
|
||||
|
|
@ -11376,7 +11467,7 @@ Does include HTML export options as well as TODO and CATEGORY stuff."
|
|||
(mapconcat 'identity org-todo-keywords " ")
|
||||
"Me Jason Marie DONE")
|
||||
(cdr (assoc org-startup-folded
|
||||
'((nil . "nofold")(t . "fold")(content . "content"))))
|
||||
'((nil . "showall") (t . "overview") (content . "content"))))
|
||||
(if org-startup-with-deadline-check "dlcheck" "nodlcheck")
|
||||
(if org-odd-levels-only "odd" "oddeven")
|
||||
(if org-hide-leading-stars "hidestars" "showstars")
|
||||
|
|
@ -11718,8 +11809,9 @@ headlines. The default is 3. Lower levels will become bulleted lists."
|
|||
(concat "<img src=\"" thefile "\"/>")
|
||||
(concat "<a href=\"" thefile "\">" desc "</a>")))))
|
||||
((member type '("bbdb" "vm" "wl" "mhe" "rmail" "gnus" "shell"))
|
||||
(setq rpl (concat "<i><" type ":" path "></i>"))))
|
||||
;; FIXME: We get to see the escaped links!!!!!
|
||||
(setq rpl (concat "<i><" type ":"
|
||||
(save-match-data (org-link-unescape path))
|
||||
"></i>"))))
|
||||
(setq line (replace-match rpl t t line)
|
||||
start (+ start (length rpl))))
|
||||
;; TODO items
|
||||
|
|
@ -12196,6 +12288,89 @@ file, but with extension `.ics'."
|
|||
(interactive)
|
||||
(org-export-icalendar nil buffer-file-name))
|
||||
|
||||
(defun org-export-as-xml ()
|
||||
"Export current buffer as XOXO XML buffer."
|
||||
(interactive)
|
||||
(cond ((eq org-export-xml-type 'xoxo)
|
||||
(org-export-as-xoxo (current-buffer)))))
|
||||
|
||||
(defun org-export-as-xoxo-insert-into (buffer &rest output)
|
||||
(with-current-buffer buffer
|
||||
(apply 'insert output)))
|
||||
|
||||
(defun org-export-as-xoxo (&optional buffer)
|
||||
"Export the org buffer as XOXO.
|
||||
The XOXO buffer is named *xoxo-<source buffer name>*"
|
||||
(interactive (list (current-buffer)))
|
||||
;; A quickie abstraction
|
||||
|
||||
;; Output everything as XOXO
|
||||
(with-current-buffer (get-buffer buffer)
|
||||
(goto-char (point-min)) ;; CD: beginning-of-buffer is not allowed.
|
||||
(let* ((filename (concat (file-name-sans-extension buffer-file-name)
|
||||
".xml"))
|
||||
(out (find-file-noselect filename))
|
||||
(last-level 1)
|
||||
(hanging-li nil))
|
||||
;; Check the output buffer is empty.
|
||||
(with-current-buffer out (erase-buffer))
|
||||
;; Kick off the output
|
||||
(org-export-as-xoxo-insert-into out "<ol class='xoxo'>\n")
|
||||
(while (re-search-forward "^\\(\\*+\\) \\(.+\\)" (point-max) 't)
|
||||
(let* ((hd (match-string-no-properties 1))
|
||||
(level (length hd))
|
||||
(text (concat
|
||||
(match-string-no-properties 2)
|
||||
(save-excursion
|
||||
(goto-char (match-end 0))
|
||||
(let ((str ""))
|
||||
(catch 'loop
|
||||
(while 't
|
||||
(forward-line)
|
||||
(if (looking-at "^[ \t]\\(.*\\)")
|
||||
(setq str (concat str (match-string-no-properties 1)))
|
||||
(throw 'loop str)))))))))
|
||||
|
||||
;; Handle level rendering
|
||||
(cond
|
||||
((> level last-level)
|
||||
(org-export-as-xoxo-insert-into out "\n<ol>\n"))
|
||||
|
||||
((< level last-level)
|
||||
(dotimes (- (- last-level level) 1)
|
||||
(if hanging-li
|
||||
(org-export-as-xoxo-insert-into out "</li>\n"))
|
||||
(org-export-as-xoxo-insert-into out "</ol>\n"))
|
||||
(when hanging-li
|
||||
(org-export-as-xoxo-insert-into out "</li>\n")
|
||||
(setq hanging-li nil)))
|
||||
|
||||
((equal level last-level)
|
||||
(if hanging-li
|
||||
(org-export-as-xoxo-insert-into out "</li>\n")))
|
||||
)
|
||||
|
||||
(setq last-level level)
|
||||
|
||||
;; And output the new li
|
||||
(setq hanging-li 't)
|
||||
(if (equal ?+ (elt text 0))
|
||||
(org-export-as-xoxo-insert-into out "<li class='" (substring text 1) "'>")
|
||||
(org-export-as-xoxo-insert-into out "<li>" text))))
|
||||
|
||||
;; Finally finish off the ol
|
||||
(dotimes (- last-level 1)
|
||||
(if hanging-li
|
||||
(org-export-as-xoxo-insert-into out "</li>\n"))
|
||||
(org-export-as-xoxo-insert-into out "</ol>\n"))
|
||||
|
||||
;; Finish the buffer off and clean it up.
|
||||
(switch-to-buffer-other-window out)
|
||||
(indent-region (point-min) (point-max))
|
||||
(save-buffer)
|
||||
(goto-char (point-min))
|
||||
)))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-export-icalendar-all-agenda-files ()
|
||||
"Export all files in `org-agenda-files' to iCalendar .ics files.
|
||||
|
|
@ -12742,19 +12917,36 @@ See the individual commands for more information."
|
|||
(org-paste-subtree arg)))
|
||||
|
||||
(defun org-ctrl-c-ctrl-c (&optional arg)
|
||||
"Call realign table, or recognize a table.el table, or update keywords.
|
||||
When the cursor is inside a table created by the table.el package,
|
||||
activate that table. Otherwise, if the cursor is at a normal table
|
||||
created with org.el, re-align that table. This command works even if
|
||||
the automatic table editor has been turned off.
|
||||
"Set tags in headline, or update according to changed information at point.
|
||||
|
||||
If the cursor is in a headline, prompt for tags and insert them into
|
||||
the current line, aligned to `org-tags-column'. When in a headline and
|
||||
called with prefix arg, realign all tags in the current buffer.
|
||||
This command does many different things, depending on context:
|
||||
|
||||
If the cursor is in one of the special #+KEYWORD lines, this triggers
|
||||
scanning the buffer for these lines and updating the information.
|
||||
If the cursor is on a #+TBLFM line, re-apply the formulae to the table."
|
||||
- If the cursor is in a headline, prompt for tags and insert them
|
||||
into the current line, aligned to `org-tags-column'. When called
|
||||
with prefix arg, realign all tags in the current buffer.
|
||||
|
||||
- If the cursor is in one of the special #+KEYWORD lines, this
|
||||
triggers scanning the buffer for these lines and updating the
|
||||
information.
|
||||
|
||||
- If the cursor is inside a table, realign the table. This command
|
||||
works even if the automatic table editor has been turned off.
|
||||
|
||||
- If the cursor is on a #+TBLFM line, re-apply the formulas to
|
||||
the entire table.
|
||||
|
||||
- If the cursor is inside a table created by the table.el package,
|
||||
activate that table.
|
||||
|
||||
- If the current buffer is a remember buffer, close note and file it.
|
||||
with a prefix argument, file it without further interaction to the default
|
||||
location.
|
||||
|
||||
- If the cursor is on a <<<target>>>, update radio targets and corresponding
|
||||
links in this buffer.
|
||||
|
||||
- If the cursor is on a numbered item in a plain list, renumber the
|
||||
ordered list."
|
||||
(interactive "P")
|
||||
(let ((org-enable-table-editor t))
|
||||
(cond
|
||||
|
|
@ -13091,9 +13283,10 @@ With optional NODE, go directly to that node."
|
|||
;; through to `fill-paragraph' when appropriate.
|
||||
(set (make-local-variable 'fill-paragraph-function) 'org-fill-paragraph)
|
||||
;; Adaptive filling: To get full control, first make sure that
|
||||
;; `adaptive-fill-regexp' never matches. Then install our won matcher.
|
||||
(setq adaptive-fill-regexp "\000")
|
||||
(setq adaptive-fill-function 'org-adaptive-fill-function))
|
||||
;; `adaptive-fill-regexp' never matches. Then install our own matcher.
|
||||
(set (make-local-variable 'adaptive-fill-regexp) "\000")
|
||||
(set (make-local-variable 'adaptive-fill-function)
|
||||
'org-adaptive-fill-function))
|
||||
|
||||
(defun org-fill-paragraph (&optional justify)
|
||||
"Re-align a table, pass through to fill-paragraph if no table."
|
||||
|
|
@ -13368,7 +13561,6 @@ Show the heading too, if it is currently invisible."
|
|||
(or (match-beginning 1) (point-max)))
|
||||
(if org-noutline-p nil ?\n))))
|
||||
|
||||
|
||||
(defun org-make-options-regexp (kwds)
|
||||
"Make a regular expression for keyword lines."
|
||||
(concat
|
||||
|
|
@ -13402,114 +13594,6 @@ Show the heading too, if it is currently invisible."
|
|||
|
||||
(run-hooks 'org-load-hook)
|
||||
|
||||
;; Experimental code
|
||||
;; FIXME: Move this code when it is ready.
|
||||
|
||||
(defun org-upgrade-old-links (&optional query-description)
|
||||
"Transfer old <...> style links to new [[...]] style links.
|
||||
With arg query-description, ask at each match for a description text to use
|
||||
for this link."
|
||||
(interactive (list (y-or-n-p "Would you like to be queried for a description at each link?")))
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(let ((re (concat "\\([^[]\\)<\\("
|
||||
"\\(" (mapconcat 'identity org-link-types "\\|")
|
||||
"\\):"
|
||||
"[^" org-non-link-chars "]+\\)>"))
|
||||
l1 l2 (cnt 0))
|
||||
(while (re-search-forward re nil t)
|
||||
(setq cnt (1+ cnt)
|
||||
l1 (org-match-string-no-properties 2)
|
||||
l2 (save-match-data (org-link-escape l1)))
|
||||
(when query-description (setq l1 (read-string "Desc: " l1)))
|
||||
(if (equal l1 l2)
|
||||
(replace-match (concat (match-string 1) "[[" l1 "]]") t t)
|
||||
(replace-match (concat (match-string 1) "[[" l2 "][" l1 "]]") t t)))
|
||||
(message "%d matches have beed treated" cnt))))
|
||||
|
||||
(defun org-export-as-xml ()
|
||||
"Export current buffer as XOXO XML buffer."
|
||||
(interactive)
|
||||
(cond ((eq org-export-xml-type 'xoxo)
|
||||
(org-export-as-xoxo (current-buffer)))))
|
||||
|
||||
(defun org-export-as-xoxo-insert-into (buffer &rest output)
|
||||
(with-current-buffer buffer
|
||||
(apply 'insert output)))
|
||||
|
||||
(defun org-export-as-xoxo (&optional buffer)
|
||||
"Export the org buffer as XOXO.
|
||||
The XOXO buffer is named *xoxo-<source buffer name>*"
|
||||
(interactive (list (current-buffer)))
|
||||
;; A quickie abstraction
|
||||
|
||||
;; Output everything as XOXO
|
||||
(with-current-buffer (get-buffer buffer)
|
||||
(goto-char (point-min)) ;; CD: beginning-of-buffer is not allowed.
|
||||
(let* ((filename (concat (file-name-sans-extension buffer-file-name)
|
||||
".xml"))
|
||||
(out (find-file-noselect filename))
|
||||
(last-level 1)
|
||||
(hanging-li nil))
|
||||
;; Check the output buffer is empty.
|
||||
(with-current-buffer out (erase-buffer))
|
||||
;; Kick off the output
|
||||
(org-export-as-xoxo-insert-into out "<ol class='xoxo'>\n")
|
||||
(while (re-search-forward "^\\(\\*+\\) \\(.+\\)" (point-max) 't)
|
||||
(let* ((hd (match-string-no-properties 1))
|
||||
(level (length hd))
|
||||
(text (concat
|
||||
(match-string-no-properties 2)
|
||||
(save-excursion
|
||||
(goto-char (match-end 0))
|
||||
(let ((str ""))
|
||||
(catch 'loop
|
||||
(while 't
|
||||
(forward-line)
|
||||
(if (looking-at "^[ \t]\\(.*\\)")
|
||||
(setq str (concat str (match-string-no-properties 1)))
|
||||
(throw 'loop str)))))))))
|
||||
|
||||
;; Handle level rendering
|
||||
(cond
|
||||
((> level last-level)
|
||||
(org-export-as-xoxo-insert-into out "\n<ol>\n"))
|
||||
|
||||
((< level last-level)
|
||||
(dotimes (- (- last-level level) 1)
|
||||
(if hanging-li
|
||||
(org-export-as-xoxo-insert-into out "</li>\n"))
|
||||
(org-export-as-xoxo-insert-into out "</ol>\n"))
|
||||
(when hanging-li
|
||||
(org-export-as-xoxo-insert-into out "</li>\n")
|
||||
(setq hanging-li nil)))
|
||||
|
||||
((equal level last-level)
|
||||
(if hanging-li
|
||||
(org-export-as-xoxo-insert-into out "</li>\n")))
|
||||
)
|
||||
|
||||
(setq last-level level)
|
||||
|
||||
;; And output the new li
|
||||
(setq hanging-li 't)
|
||||
(if (equal ?+ (elt text 0))
|
||||
(org-export-as-xoxo-insert-into out "<li class='" (substring text 1) "'>")
|
||||
(org-export-as-xoxo-insert-into out "<li>" text))))
|
||||
|
||||
;; Finally finish off the ol
|
||||
(dotimes (- last-level 1)
|
||||
(if hanging-li
|
||||
(org-export-as-xoxo-insert-into out "</li>\n"))
|
||||
(org-export-as-xoxo-insert-into out "</ol>\n"))
|
||||
|
||||
;; Finish the buffer off and clean it up.
|
||||
(switch-to-buffer-other-window out)
|
||||
(indent-region (point-min) (point-max) nil)
|
||||
(save-buffer)
|
||||
(goto-char (point-min))
|
||||
)))
|
||||
|
||||
;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd
|
||||
;;; org.el ends here
|
||||
|
||||
|
|
|
|||
|
|
@ -594,20 +594,24 @@ An alternative value is \" . \", if you use a font with a narrow period."
|
|||
'(face subscript display (raise -0.3))
|
||||
'(face superscript display (raise +0.3)))))
|
||||
|
||||
(defun tex-font-lock-match-suscript (limit)
|
||||
"Match subscript and superscript patterns up to LIMIT."
|
||||
(when (re-search-forward "[_^] *\\([^\n\\{}]\\|\
|
||||
\\\\\\([a-zA-Z@]+\\|[^ \t\n]\\)\\|{[^\\{]*}\\|\\({\\)\\)" limit t)
|
||||
(when (match-end 3)
|
||||
(let ((beg (match-beginning 3))
|
||||
(end (save-restriction
|
||||
(narrow-to-region (point-min) limit)
|
||||
(condition-case nil (scan-lists (point) 1 1) (error nil)))))
|
||||
(store-match-data (if end
|
||||
(list (match-beginning 0) end beg end)
|
||||
(list beg beg beg beg)))))
|
||||
t))
|
||||
|
||||
(defconst tex-font-lock-keywords-3
|
||||
(append tex-font-lock-keywords-2
|
||||
(eval-when-compile
|
||||
(let ((general "\\([a-zA-Z@]+\\|[^ \t\n]\\)")
|
||||
(slash "\\\\")
|
||||
;; This is not the same regexp as before: it has a `+' removed.
|
||||
;; The + makes the matching faster in the above cases (where we can
|
||||
;; exit as soon as the match fails) but would make this matching
|
||||
;; degenerate to nasty complexity (because we try to match the
|
||||
;; closing brace, which forces trying all matching combinations).
|
||||
(arg "{\\(?:[^{}\\]\\|\\\\.\\|{[^}]*}\\)*"))
|
||||
`((,(concat "[_^] *\\([^\n\\{}#]\\|" slash general "\\|#[0-9]\\|" arg "}\\)")
|
||||
(1 (tex-font-lock-suscript (match-beginning 0))
|
||||
append))))))
|
||||
'((tex-font-lock-match-suscript
|
||||
(1 (tex-font-lock-suscript (match-beginning 0)) append))))
|
||||
"Experimental expressions to highlight in TeX modes.")
|
||||
|
||||
(defvar tex-font-lock-keywords tex-font-lock-keywords-1
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; Maintainer's Time-stamp: <2006-02-06 15:11:58 ttn>
|
||||
;; Maintainer's Time-stamp: <2006-04-12 20:30:56 rms>
|
||||
;; Maintainer: Stephen Gildea <gildea@stop.mail-abuse.org>
|
||||
;; Keywords: tools
|
||||
|
||||
|
|
@ -93,6 +93,7 @@ historical default."
|
|||
:type 'string
|
||||
:group 'time-stamp
|
||||
:version "20.1")
|
||||
;;;###autoload(put 'time-stamp-format 'safe-local-variable 'stringp)
|
||||
|
||||
(defcustom time-stamp-active t
|
||||
"*Non-nil to enable time-stamping of buffers by \\[time-stamp].
|
||||
|
|
@ -150,7 +151,7 @@ Do not change `time-stamp-line-limit', `time-stamp-start',
|
|||
incompatible with other people's files! If you must change them for some
|
||||
application, do so in the local variables section of the time-stamped file
|
||||
itself.")
|
||||
|
||||
;;;###autoload(put 'time-stamp-line-limit 'safe-local-variable 'integerp)
|
||||
|
||||
(defvar time-stamp-start "Time-stamp:[ \t]+\\\\?[\"<]+" ;Do not change!
|
||||
"Regexp after which the time stamp is written by \\[time-stamp].
|
||||
|
|
@ -163,7 +164,7 @@ Do not change `time-stamp-line-limit', `time-stamp-start',
|
|||
incompatible with other people's files! If you must change them for some
|
||||
application, do so in the local variables section of the time-stamped file
|
||||
itself.")
|
||||
|
||||
;;;###autoload(put 'time-stamp-start 'safe-local-variable t)
|
||||
|
||||
(defvar time-stamp-end "\\\\?[\">]" ;Do not change!
|
||||
"Regexp marking the text after the time stamp.
|
||||
|
|
@ -183,6 +184,7 @@ Do not change `time-stamp-start', `time-stamp-end', `time-stamp-pattern',
|
|||
or `time-stamp-inserts-lines' for yourself or you will be incompatible
|
||||
with other people's files! If you must change them for some application,
|
||||
do so in the local variables section of the time-stamped file itself.")
|
||||
;;;###autoload(put 'time-stamp-end 'safe-local-variable t)
|
||||
|
||||
|
||||
(defvar time-stamp-inserts-lines nil ;Do not change!
|
||||
|
|
@ -199,6 +201,7 @@ Do not change `time-stamp-end' or `time-stamp-inserts-lines' for
|
|||
yourself or you will be incompatible with other people's files!
|
||||
If you must change them for some application, do so in the local
|
||||
variables section of the time-stamped file itself.")
|
||||
;;;###autoload(put 'time-stamp-inserts-lines 'safe-local-variable t)
|
||||
|
||||
|
||||
(defvar time-stamp-count 1 ;Do not change!
|
||||
|
|
@ -209,6 +212,7 @@ Do not change `time-stamp-count' for yourself or you will be
|
|||
incompatible with other people's files! If you must change it for
|
||||
some application, do so in the local variables section of the
|
||||
time-stamped file itself.")
|
||||
;;;###autoload(put 'time-stamp-count 'safe-local-variable 'integerp)
|
||||
|
||||
|
||||
(defvar time-stamp-pattern nil ;Do not change!
|
||||
|
|
@ -244,6 +248,7 @@ Do not change `time-stamp-pattern' `time-stamp-line-limit',
|
|||
incompatible with other people's files! If you must change them for
|
||||
some application, do so only in the local variables section of the
|
||||
time-stamped file itself.")
|
||||
;;;###autoload(put 'time-stamp-pattern 'safe-local-variable 'stringp)
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -47,11 +47,15 @@
|
|||
;; would be accompanied by a full redisplay.
|
||||
|
||||
(define-minor-mode tooltip-mode
|
||||
"Toggle Tooltip display.
|
||||
With ARG, turn tooltip mode on if and only if ARG is positive.
|
||||
"Toggle Tooltip mode.
|
||||
With ARG, turn Tooltip mode on if and only if ARG is positive.
|
||||
When this minor mode is enabled, Emacs displays help text
|
||||
in a pop-up window on mouse-over. When it is disabled,
|
||||
Emacs displays the help text in the echo area instead."
|
||||
in a pop-up window for buttons and menu items that you put the mouse on.
|
||||
\(However, if `tooltip-use-echo-area' is non-nil, this and
|
||||
all pop-up help appears in the echo area.)
|
||||
|
||||
When Tooltip mode is disabled, Emacs displays one line of
|
||||
the help text in the echo area, and does not make a pop-up window."
|
||||
:global t
|
||||
:init-value (not (or noninteractive
|
||||
emacs-basic-display
|
||||
|
|
@ -142,7 +146,9 @@ position to pop up the tooltip."
|
|||
:group 'basic-faces)
|
||||
|
||||
(defcustom tooltip-use-echo-area nil
|
||||
"Use the echo area instead of tooltip frames for help and GUD tooltips."
|
||||
"Use the echo area instead of tooltip frames for help and GUD tooltips.
|
||||
To display multi-line help text in the echo area, set this to t
|
||||
and enable `tooltip-mode'."
|
||||
:type 'boolean
|
||||
:group 'tooltip)
|
||||
|
||||
|
|
|
|||
12
lisp/vc.el
12
lisp/vc.el
|
|
@ -3107,7 +3107,11 @@ colors. `vc-annotate-background' specifies the background color."
|
|||
(vc-ensure-vc-buffer)
|
||||
(setq vc-annotate-display-mode display-mode) ;Not sure why. --Stef
|
||||
(let* ((temp-buffer-name (format "*Annotate %s (rev %s)*" (buffer-name) rev))
|
||||
(temp-buffer-show-function 'vc-annotate-display-select))
|
||||
(temp-buffer-show-function 'vc-annotate-display-select)
|
||||
;; If BUF is specified, we presume the caller maintains current line,
|
||||
;; so we don't need to do it here. This implementation may give
|
||||
;; strange results occasionally in the case of REV != WORKFILE-REV.
|
||||
(current-line (unless buf (line-number-at-pos))))
|
||||
(message "Annotating...")
|
||||
;; If BUF is specified it tells in which buffer we should put the
|
||||
;; annotations. This is used when switching annotations to another
|
||||
|
|
@ -3129,6 +3133,8 @@ colors. `vc-annotate-background' specifies the background color."
|
|||
(set (make-local-variable 'vc-annotate-parent-rev) rev)
|
||||
(set (make-local-variable 'vc-annotate-parent-display-mode)
|
||||
display-mode)))
|
||||
(when current-line
|
||||
(goto-line current-line temp-buffer-name))
|
||||
(message "Annotating... done")))
|
||||
|
||||
(defun vc-annotate-prev-version (prefix)
|
||||
|
|
@ -3310,8 +3316,8 @@ The annotations are relative to the current time, unless overridden by OFFSET."
|
|||
(let* ((color (or (vc-annotate-compcar difference vc-annotate-color-map)
|
||||
(cons nil vc-annotate-very-old-color)))
|
||||
;; substring from index 1 to remove any leading `#' in the name
|
||||
(face-name (concat "vc-annotate-face-"
|
||||
(if (string-equal
|
||||
(face-name (concat "vc-annotate-face-"
|
||||
(if (string-equal
|
||||
(substring (cdr color) 0 1) "#")
|
||||
(substring (cdr color) 1)
|
||||
(cdr color))))
|
||||
|
|
|
|||
|
|
@ -1,3 +1,35 @@
|
|||
2006-04-18 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* tips.texi (Coding Conventions): Explain when the package's
|
||||
prefix should appear later on (not at the start of the name).
|
||||
|
||||
* searching.texi (String Search): Clarify effect of NOERROR.
|
||||
|
||||
* modes.texi (Imenu): Clarify what special items do.
|
||||
|
||||
* hooks.texi (Standard Hooks): Delete text about old hook names.
|
||||
|
||||
2006-04-17 Romain Francoise <romain@orebokech.com>
|
||||
|
||||
* variables.texi (Local Variables): Update the default value of
|
||||
`max-specpdl-size'.
|
||||
|
||||
2006-04-15 Michael Olson <mwolson@gnu.org>
|
||||
|
||||
* processes.texi (Transaction Queues): Mention the new optional
|
||||
`delay-question' argument for `tq-enqueue'.
|
||||
|
||||
2006-04-13 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* customize.texi (Common Keywords): Use dotted notation for
|
||||
:package-version value. Specify its values. Improve documentation
|
||||
for customize-package-emacs-version-alist.
|
||||
|
||||
2006-04-12 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* customize.texi (Common Keywords): Move description of
|
||||
customize-package-emacs-version-alist to @defvar.
|
||||
|
||||
2006-04-10 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* customize.texi (Common Keywords): Add :package-version.
|
||||
|
|
@ -43,8 +75,7 @@
|
|||
|
||||
2006-03-19 Alan Mackenzie <acm@muc.de>
|
||||
|
||||
* text.texi (Special Properties): Clarify the definition of
|
||||
'fontified.
|
||||
* text.texi (Special Properties): Clarify `fontified' property.
|
||||
|
||||
2006-03-16 Richard Stallman <rms@gnu.org>
|
||||
|
||||
|
|
|
|||
|
|
@ -131,25 +131,47 @@ This option specifies that the item was first introduced in Emacs
|
|||
version @var{version}, or that its default value was changed in that
|
||||
version. The value @var{version} must be a string.
|
||||
|
||||
@item :package-version '(@var{package} @var{version})
|
||||
@item :package-version '(@var{package} . @var{version})
|
||||
This option specifies that the item was first introduced in
|
||||
@var{package} version @var{version}, or that its default value was
|
||||
changed in that version. This keyword takes priority over :version.
|
||||
The value of @var{package} is a symbol and @var{version} is a string.
|
||||
The @var{package} and @var{version} must appear in the alist
|
||||
@code{customize-package-emacs-version-alist}. This alist maps packages
|
||||
to alists that map all package versions used with the
|
||||
@code{:package-version} keyword to Emacs versions. Packages are
|
||||
symbols and versions are strings. For example, the MH-E package
|
||||
updates this alist with the following:
|
||||
@code{customize-package-emacs-version-alist}. Since @var{package} must
|
||||
be unique and the user might see it in an error message, a good choice
|
||||
is the official name of the package, such as MH-E or Gnus.
|
||||
|
||||
@end table
|
||||
|
||||
Packages that use the @code{:package-version} keyword must also update
|
||||
the @code{customize-package-emacs-version-alist} variable.
|
||||
|
||||
@defvar customize-package-emacs-version-alist
|
||||
This alist provides a mapping for the versions of Emacs that are
|
||||
associated with versions of a package listed in the
|
||||
@code{:package-version} keyword. Its elements look like this:
|
||||
|
||||
@example
|
||||
(@var{package} (@var{pversion} . @var{eversion})@dots{})
|
||||
@end example
|
||||
|
||||
For each @var{package}, which is a symbol, there are one or more
|
||||
elements that contain a package version @var{pversion} with an
|
||||
associated Emacs version @var{eversion}. These versions are strings.
|
||||
For example, the MH-E package updates this alist with the following:
|
||||
|
||||
@smallexample
|
||||
(add-to-list 'customize-package-emacs-version-alist
|
||||
'(MH-E ("6.0" "22.1") ("6.1" "22.1") ("7.0" "22.1")
|
||||
("7.1" "22.1") ("7.2" "22.1") ("7.3" "22.1")
|
||||
("7.4" "22.1") ("8.0" "22.1")))
|
||||
'(MH-E ("6.0" . "22.1") ("6.1" . "22.1") ("7.0" . "22.1")
|
||||
("7.1" . "22.1") ("7.2" . "22.1") ("7.3" . "22.1")
|
||||
("7.4" . "22.1") ("8.0" . "22.1")))
|
||||
@end smallexample
|
||||
|
||||
@end table
|
||||
The value of @var{package} needs to be unique and it needs to match
|
||||
the @var{package} value appearing in the @code{:package-version}
|
||||
keyword. Since the user might see the value in a error message, a good
|
||||
choice is the official name of the package, such as MH-E or Gnus.
|
||||
@end defvar
|
||||
|
||||
@node Group Definitions
|
||||
@section Defining Custom Groups
|
||||
|
|
|
|||
|
|
@ -31,11 +31,6 @@ these functions are called in a special way (they are passed arguments,
|
|||
or their values are used). The variables whose names end in
|
||||
@samp{-function} have single functions as their values.
|
||||
|
||||
(In older Emacs versions, some normal hooks had names ending in
|
||||
@samp{-hooks} or @samp{-functions}, and some abnormal hooks had names
|
||||
ending in @samp{-hook}. We have renamed all of these to conform to
|
||||
the above conventions.)
|
||||
|
||||
@c We need to xref to where each hook is documented or else document
|
||||
@c it here.
|
||||
|
||||
|
|
|
|||
|
|
@ -2174,10 +2174,9 @@ An element can also look like this:
|
|||
(@var{menu-title} @var{regexp} @var{index} @var{function} @var{arguments}@dots{})
|
||||
@end example
|
||||
|
||||
Like in the previous case, each match for this element creates an
|
||||
index item. However, if this index item is selected by the user, it
|
||||
calls @var{function} with arguments consisting of the item name, the
|
||||
buffer position, and @var{arguments}.
|
||||
Each match for this element creates an index item, and when the index
|
||||
item is selected by the user, it calls @var{function} with arguments
|
||||
consisting of the item name, the buffer position, and @var{arguments}.
|
||||
|
||||
For Emacs Lisp mode, @code{imenu-generic-expression} could look like
|
||||
this:
|
||||
|
|
|
|||
|
|
@ -1508,7 +1508,7 @@ process, or it may be a TCP connection to a server, possibly on another
|
|||
machine.
|
||||
@end defun
|
||||
|
||||
@defun tq-enqueue queue question regexp closure fn
|
||||
@defun tq-enqueue queue question regexp closure fn &optional delay-question
|
||||
This function sends a transaction to queue @var{queue}. Specifying the
|
||||
queue has the effect of specifying the subprocess to talk to.
|
||||
|
||||
|
|
@ -1521,6 +1521,10 @@ The argument @var{regexp} is a regular expression that should match
|
|||
text at the end of the entire answer, but nothing before; that's how
|
||||
@code{tq-enqueue} determines where the answer ends.
|
||||
|
||||
If the argument @var{delay-question} is non-nil, delay sending this
|
||||
question until the process has finished replying to any previous
|
||||
questions. This produces more reliable results with some processes."
|
||||
|
||||
The return value of @code{tq-enqueue} itself is not meaningful.
|
||||
@end defun
|
||||
|
||||
|
|
|
|||
|
|
@ -86,6 +86,10 @@ upper bound and returns @code{nil}. (It would be more consistent now to
|
|||
return the new position of point in that case, but some existing
|
||||
programs may depend on a value of @code{nil}.)
|
||||
|
||||
The argument @var{noerror} only affects valid searches which fail to
|
||||
find a match. Invalid arguments cause errors regardless of
|
||||
@var{noerror}.
|
||||
|
||||
If @var{repeat} is supplied (it must be a positive number), then the
|
||||
search is repeated that many times (each time starting at the end of the
|
||||
previous time's match). If these successive searches succeed, the
|
||||
|
|
|
|||
|
|
@ -56,9 +56,13 @@ distinguish your program from other Lisp programs.@footnote{The
|
|||
benefits of a Common Lisp-style package system are considered not to
|
||||
outweigh the costs.} Then take care to begin the names of all global
|
||||
variables, constants, and functions in your program with the chosen
|
||||
prefix. This helps avoid name conflicts. (Occasionally, for a command
|
||||
name intended for users to use, it is cleaner if some words come
|
||||
before the package name prefix.)
|
||||
prefix. This helps avoid name conflicts.
|
||||
|
||||
Occasionally, for a command name intended for users to use, it is more
|
||||
convenient if some words come before the package's name prefix. And
|
||||
constructs that define functions, variables, etc., work better if they
|
||||
start with @samp{defun} or @samp{defvar}, so put the name prefix later
|
||||
on in the name.
|
||||
|
||||
This recommendation applies even to names for traditional Lisp
|
||||
primitives that are not primitives in Emacs Lisp---such as
|
||||
|
|
|
|||
|
|
@ -276,7 +276,7 @@ that Lisp avoids infinite recursion on an ill-defined function.
|
|||
@code{max-lisp-eval-depth} provides another limit on depth of nesting.
|
||||
@xref{Definition of max-lisp-eval-depth,, Eval}.
|
||||
|
||||
The default value is 600. Entry to the Lisp debugger increases the
|
||||
The default value is 1000. Entry to the Lisp debugger increases the
|
||||
value, if there is little room left, to make sure the debugger itself
|
||||
has room to execute.
|
||||
@end defvar
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
2006-04-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
|
||||
|
||||
* inc/config.h (pid_t): Define to int.
|
||||
|
||||
2006-02-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
|
||||
|
||||
* makefile.MPW (shortlisp, SOME_MACHINE_LISP): Sync with
|
||||
|
|
|
|||
|
|
@ -906,7 +906,7 @@ Boston, MA 02110-1301, USA. */
|
|||
/* #undef mbstate_t */
|
||||
|
||||
/* Define to `int' if <sys/types.h> does not define. */
|
||||
/* #undef pid_t */
|
||||
#define pid_t int
|
||||
|
||||
/* Define to any substitute for sys_siglist. */
|
||||
/* #undef sys_siglist */
|
||||
|
|
|
|||
|
|
@ -1,3 +1,54 @@
|
|||
2006-04-18 J.D. Smith <jdsmith@as.arizona.edu>
|
||||
|
||||
* misc.texi (Shell Ring): Added notes on saved input when
|
||||
navigating off the end of the history list.
|
||||
|
||||
2006-04-18 Chong Yidong <cyd@mit.edu>
|
||||
|
||||
* misc.texi (Shell Options): Correct default value of
|
||||
comint-scroll-show-maximum-output.
|
||||
|
||||
2006-04-18 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* org.texi: (Formula syntax): Fixed link to Calc Manual.
|
||||
|
||||
2006-04-17 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* gnus.texi (Emacsen): Don't support Emacs 20.7 and XEmacs 21.1.
|
||||
|
||||
2006-04-17 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-e.texi (Folders): Updated mh-before-quit-hook and
|
||||
mh-quit-hook example with code that removes the buffers rather
|
||||
than just bury them.
|
||||
|
||||
2006-04-18 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
* building.texi (Watch Expressions): Update.
|
||||
|
||||
2006-04-17 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
Sync with Tramp 2.0.53.
|
||||
|
||||
2006-04-13 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* org.texi: (Updating settings): New section.
|
||||
(Visibility cycling): Better names for the startup folding
|
||||
options.
|
||||
(Exporting): Completely restructured.
|
||||
(The very busy C-c C-c key): New section.
|
||||
(Summary of in-buffer settings): New section.
|
||||
|
||||
2006-04-12 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* search.texi: Clean up previous change.
|
||||
|
||||
2006-04-12 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* search.texi (Regexp Backslash, Regexp Replace): Add index
|
||||
entries for ``back reference'' and mention the term itself in the
|
||||
text.
|
||||
|
||||
2006-04-11 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* custom.texi (Safe File Variables):
|
||||
|
|
|
|||
|
|
@ -929,20 +929,26 @@ the new frame.
|
|||
@cindex Watching expressions in GDB
|
||||
|
||||
@findex gud-watch
|
||||
@kindex C-x C-a C-w @r{(GUD)}
|
||||
If you want to see how a variable changes each time your program
|
||||
stops, move point into the variable name and click on the watch icon
|
||||
in the tool bar (@code{gud-watch}).
|
||||
in the tool bar (@code{gud-watch}) or type @kbd{C-x C-a C-w}. If you
|
||||
specify a prefix argument, you can enter the variable name in the
|
||||
minibuffer.
|
||||
|
||||
Each watch expression is displayed in the speedbar. Complex data
|
||||
types, such as arrays, structures and unions are represented in a tree
|
||||
format. Leaves and simple data types show the name of the expression
|
||||
and its value and, when the speedbar frame is selected, display the
|
||||
type as a tooltip. Higher levels show the name, type and address
|
||||
value for pointers and just the name and type otherwise.
|
||||
value for pointers and just the name and type otherwise. Root expressions
|
||||
also display the frame address as a tooltip to help identify the frame
|
||||
in which they were defined.
|
||||
|
||||
To expand or contract a complex data type, click @kbd{Mouse-2}
|
||||
on the tag to the left of the expression.
|
||||
|
||||
@kindex D @r{(GDB speedbar)}
|
||||
@findex gdb-var-delete
|
||||
To delete a complex watch expression, move point to the root
|
||||
expression in the speedbar and type @kbd{D} (@code{gdb-var-delete}).
|
||||
|
|
@ -965,9 +971,8 @@ edit its value.
|
|||
@vindex gdb-use-colon-colon-notation
|
||||
If the variable @code{gdb-use-colon-colon-notation} is
|
||||
non-@code{nil}, Emacs uses the @samp{@var{function}::@var{variable}}
|
||||
format to display variables in the speedbar. Since this does not work
|
||||
for variables defined in compound statements, the default value is
|
||||
@code{nil}.
|
||||
format. This allows the user to display watch expressions which share
|
||||
the same variable name. The default value is @code{nil}.
|
||||
|
||||
@vindex gdb-speedbar-auto-raise
|
||||
To automatically raise the speedbar every time the display of watch
|
||||
|
|
|
|||
|
|
@ -24870,16 +24870,17 @@ Gnus should work on:
|
|||
@itemize @bullet
|
||||
|
||||
@item
|
||||
Emacs 20.7 and up.
|
||||
Emacs 21.1 and up.
|
||||
|
||||
@item
|
||||
XEmacs 21.1 and up.
|
||||
XEmacs 21.4 and up.
|
||||
|
||||
@end itemize
|
||||
|
||||
This Gnus version will absolutely not work on any Emacsen older than
|
||||
that. Not reliably, at least. Older versions of Gnus may work on older
|
||||
Emacs versions.
|
||||
Emacs versions. Particularly, Gnus 5.10.8 should also work on Emacs
|
||||
20.7 and XEmacs 21.1.
|
||||
|
||||
There are some vague differences between Gnus on the various
|
||||
platforms---XEmacs features more graphics (a logo and a toolbar)---but
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@
|
|||
@set VERSION 7.93
|
||||
@c Edition of the manual. It is either empty for the first edition or
|
||||
@c has the form ", nth Edition" (without the quotes).
|
||||
@set EDITION , 6th Edition
|
||||
@set UPDATED 2006-04-02
|
||||
@set EDITION , 7th Edition
|
||||
@set UPDATED 2006-04-17
|
||||
@set UPDATE-MONTH April, 2006
|
||||
|
||||
@c Other variables.
|
||||
|
|
@ -3724,33 +3724,36 @@ again.
|
|||
@findex mh-execute-commands
|
||||
@kindex q
|
||||
@vindex mh-before-quit-hook
|
||||
@vindex mh-before-quit-hook, example
|
||||
@vindex mh-quit-hook
|
||||
@vindex mh-quit-hook, example
|
||||
|
||||
The two hooks @code{mh-before-quit-hook} and @code{mh-quit-hook} are
|
||||
called by @kbd{q}. The former one is called before the quit occurs, so
|
||||
you might use it to perform any MH-E operations; you could perform
|
||||
some query and abort the quit or call @code{mh-execute-commands}, for
|
||||
example. The latter is not run in an MH-E context, so you might use it
|
||||
to modify the window setup. For example, if the window configuration
|
||||
was saved as in the example in @ref{Miscellaneous Commands and
|
||||
Options}, you would also want to set @code{mh-quit-hook} to the
|
||||
following:
|
||||
|
||||
@c XXX Replace this with my example for killing the mail buffers.
|
||||
|
||||
@vindex mh-quit-hook, example
|
||||
to modify the window setup. If you find that @kbd{q} buries a lot of
|
||||
buffers that you would rather remove, you can use both
|
||||
@code{mh-before-quit-hook} and @code{mh-quit-hook} to accomplish that.
|
||||
|
||||
@smalllisp
|
||||
@group
|
||||
(defun my-mh-quit-hook ()
|
||||
"Clear window configuration variables as the MH window is gone."
|
||||
(setq my-mh-screen-saved nil)
|
||||
(setq my-mh-screen nil)
|
||||
(if my-normal-screen
|
||||
(set-window-configuration my-normal-screen))
|
||||
(setq my-normal-screen nil))
|
||||
(defvar my-mh-folder-buffer-to-delete nil
|
||||
"Folder buffer that is being quit.")
|
||||
|
||||
@i{Clean up window setup in mh-quit-hook}
|
||||
(defun my-mh-before-quit-hook ()
|
||||
"Save folder buffer that is to be deleted."
|
||||
(setq my-mh-folder-buffer-to-delete (current-buffer)))
|
||||
|
||||
(defun my-mh-quit-hook ()
|
||||
"Kill folder buffer rather than just bury it."
|
||||
(set-buffer my-mh-folder-buffer-to-delete)
|
||||
(if (get-buffer mh-show-buffer)
|
||||
(kill-buffer mh-show-buffer))
|
||||
(kill-buffer (current-buffer)))
|
||||
|
||||
@i{Kill MH-Folder buffer instead of burying it}
|
||||
@end group
|
||||
@end smalllisp
|
||||
|
||||
|
|
|
|||
|
|
@ -967,14 +967,14 @@ current directory.
|
|||
@vindex comint-scroll-to-bottom-on-input
|
||||
If the variable @code{comint-scroll-to-bottom-on-input} is
|
||||
non-@code{nil}, insertion and yank commands scroll the selected window
|
||||
to the bottom before inserting.
|
||||
to the bottom before inserting. The default is @code{nil}.
|
||||
|
||||
@vindex comint-scroll-show-maximum-output
|
||||
If @code{comint-scroll-show-maximum-output} is non-@code{nil}, then
|
||||
arrival of output when point is at the end tries to place the last line of
|
||||
text at the bottom line of the window, so as to show as much useful
|
||||
text as possible. (This mimics the scrolling behavior of many
|
||||
terminals.) The default is @code{nil}.
|
||||
text as possible. (This mimics the scrolling behavior of most
|
||||
terminals.) The default is @code{t}.
|
||||
|
||||
@vindex comint-move-point-for-output
|
||||
By setting @code{comint-move-point-for-output}, you can opt for
|
||||
|
|
|
|||
528
man/org.texi
528
man/org.texi
|
|
@ -4,7 +4,7 @@
|
|||
@setfilename ../info/org
|
||||
@settitle Org Mode Manual
|
||||
|
||||
@set VERSION 4.21
|
||||
@set VERSION 4.24
|
||||
@set DATE April 2006
|
||||
|
||||
@dircategory Emacs
|
||||
|
|
@ -22,8 +22,7 @@
|
|||
|
||||
@c Macro definitions
|
||||
|
||||
@c FIXME: does not look good in html
|
||||
@c Subheadings inside a table. Need a difference between info and the rest.
|
||||
@c Subheadings inside a table.
|
||||
@macro tsubheading{text}
|
||||
@ifinfo
|
||||
@subsubheading \text\
|
||||
|
|
@ -183,21 +182,24 @@ The weekly/daily agenda
|
|||
|
||||
Exporting
|
||||
|
||||
* ASCII export:: Export as a structured ASCII file
|
||||
* HTML export:: Export as an HTML file
|
||||
* iCalendar export:: Create calendar entries.
|
||||
* ASCII export:: Exporting to plain ASCII
|
||||
* HTML export:: Exporting to HTML
|
||||
* XML export:: Exporting to XML
|
||||
* iCalendar export:: Exporting in iCalendar format
|
||||
* Text interpretation:: How the exporter looks at the file
|
||||
|
||||
HTML export
|
||||
Text interpretation by the exporter
|
||||
|
||||
* HTML formatting:: Interpretation of the buffer content
|
||||
* Export options:: How to influence exports
|
||||
* Comment lines:: Lines which will not be exported
|
||||
* Comment lines:: Some lines will not be exported
|
||||
* Enhancing text:: Subscripts, symbols and more
|
||||
* Export options:: How to influence the export settings
|
||||
|
||||
Miscellaneous
|
||||
|
||||
* Completion:: M-TAB knows what you need
|
||||
* Customization:: Adapting Org-mode to your taste
|
||||
* Updating settings:: How to tell Org-mode that settings have changed
|
||||
* Summary of in-buffer settings:: Using special lines to set options
|
||||
* The very busy C-c C-c key:: When in doubt, press C-c C-c
|
||||
* Clean view:: Getting rid of leading stars in the outline
|
||||
* TTY keys:: Using Org-mode on a tty
|
||||
* FAQ:: Frequently asked questions
|
||||
|
|
@ -451,9 +453,9 @@ per-file basis by adding one of the following lines anywhere in the
|
|||
buffer:
|
||||
|
||||
@example
|
||||
#+STARTUP: fold
|
||||
#+STARTUP: nofold
|
||||
#+STARTUP: overview
|
||||
#+STARTUP: content
|
||||
#+STARTUP: showall
|
||||
@end example
|
||||
|
||||
@node Motion, Structure editing, Visibility cycling, Document Structure
|
||||
|
|
@ -786,8 +788,8 @@ unpredictable for you, configure the variables
|
|||
Convert the active region to table. If every line contains at least one
|
||||
TAB character, the function assumes that the material is tab separated.
|
||||
If not, lines are split at whitespace into fields. You can use a prefix
|
||||
argument to indicate the minimum number of consequtive spaces required
|
||||
to indentify a field separator (default: just one).@*
|
||||
argument to indicate the minimum number of consecutive spaces required
|
||||
to identify a field separator (default: just one).@*
|
||||
If there is no active region, this command creates an empty Org-mode
|
||||
table. However, it's easier to just start typing, like
|
||||
@kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}.
|
||||
|
|
@ -982,7 +984,7 @@ it off with
|
|||
|
||||
The width of columns is automatically determined by the table editor.
|
||||
Sometimes a single field or a few fields need to carry more text,
|
||||
leading to unconveniently wide columns. To limit@footnote{This feature
|
||||
leading to inconveniently wide columns. To limit@footnote{This feature
|
||||
does not work on XEmacs.} the width of a column, one field anywhere in
|
||||
the column must carry the string @samp{<N>} where @samp{N} is an integer
|
||||
specifying the width of the column in characters. The next re-align
|
||||
|
|
@ -1054,7 +1056,7 @@ A formula can be any algebraic expression understood by the Emacs
|
|||
@file{calc} package. Note that @file{calc} has the slightly
|
||||
non-standard convention that @samp{/} has lower precedence than
|
||||
@samp{*}, so that @samp{a/b*c} is interpreted as @samp{a/(b*c)}. Before
|
||||
evaluation by @code{calc-eval} (@pxref{Calling Calc from Your Lisp
|
||||
evaluation by @code{calc-eval} (@pxref{Calling Calc from Your
|
||||
Programs,calc-eval,Calling calc from Your Lisp Programs,calc,GNU Emacs
|
||||
Calc Manual}), variable substitution takes place:
|
||||
|
||||
|
|
@ -2888,21 +2890,34 @@ visit org files will not be removed.
|
|||
@chapter Exporting
|
||||
@cindex exporting
|
||||
|
||||
For printing and sharing of notes, Org-mode documents can be exported
|
||||
as ASCII or HTML files. To incorporate entries with associated times
|
||||
like deadlines or appointments into a desktop calendar program like
|
||||
iCal, Org-mode can also produce extracts in the iCalendar format.
|
||||
Org-mode documents can be exported into a variety of other formats. For
|
||||
printing and sharing of notes, ASCII export produces a readable and
|
||||
simple version of an Org-mode file. HTML export allows to publish a
|
||||
notes file on the web, while the XML format provides a solid base for
|
||||
exchange with a broad range of other applications. To incorporate
|
||||
entries with associated times like deadlines or appointments into a
|
||||
desktop calendar program like iCal, Org-mode can also produce extracts
|
||||
in the iCalendar format. Currently Org-mode only supports export, not
|
||||
import of these different formats.
|
||||
|
||||
When exporting, Org-mode uses special conventions to enrich the output
|
||||
produced. @xref{Text interpretation}, for more details.
|
||||
|
||||
@menu
|
||||
* ASCII export:: Export as a structured ASCII file
|
||||
* HTML export:: Export as an HTML file
|
||||
* iCalendar export:: Create calendar entries.
|
||||
* ASCII export:: Exporting to plain ASCII
|
||||
* HTML export:: Exporting to HTML
|
||||
* XML export:: Exporting to XML
|
||||
* iCalendar export:: Exporting in iCalendar format
|
||||
* Text interpretation:: How the exporter looks at the file
|
||||
@end menu
|
||||
|
||||
@node ASCII export, HTML export, Exporting, Exporting
|
||||
@section ASCII export
|
||||
@cindex ASCII export
|
||||
|
||||
ASCII export produces an simple and very readable version of an Org-mode
|
||||
file.
|
||||
|
||||
@cindex region, active
|
||||
@cindex active region
|
||||
@cindex transient-mark-mode
|
||||
|
|
@ -2926,11 +2941,9 @@ at a different level, specify it with a prefix argument. For example,
|
|||
@end example
|
||||
|
||||
@noindent
|
||||
creates only top level headlines and does the rest as items. Lines
|
||||
starting with @samp{#} and subtrees starting with the word @samp{COMMENT}
|
||||
will not be exported.
|
||||
creates only top level headlines and does the rest as items.
|
||||
|
||||
@node HTML export, iCalendar export, ASCII export, Exporting
|
||||
@node HTML export, XML export, ASCII export, Exporting
|
||||
@section HTML export
|
||||
@cindex HTML export
|
||||
|
||||
|
|
@ -2948,12 +2961,6 @@ Export as HTML file @file{myfile.html}.
|
|||
@kindex C-c C-x b
|
||||
@item C-c C-x b
|
||||
Export as HTML file and open it with a browser.
|
||||
@kindex C-c C-x t
|
||||
@item C-c C-x t
|
||||
Insert template with export options, see below.
|
||||
@kindex C-c :
|
||||
@item C-c :
|
||||
Toggle fixed-width for entry (QUOTE) or region, see below.
|
||||
@end table
|
||||
|
||||
@cindex headline levels, for exporting
|
||||
|
|
@ -2969,118 +2976,10 @@ at a different level, specify it with a prefix argument. For example,
|
|||
@noindent
|
||||
creates two levels of headings and does the rest as items.
|
||||
|
||||
@menu
|
||||
* HTML formatting:: Interpretation of the buffer content
|
||||
* Export options:: How to influence exports
|
||||
* Comment lines:: Lines which will not be exported
|
||||
@end menu
|
||||
|
||||
@node HTML formatting, Export options, HTML export, HTML export
|
||||
@subsection HTML formatting
|
||||
|
||||
Not all text is transferred literally to the exported HTML file. The
|
||||
exporter implements the following interpretation:
|
||||
|
||||
@itemize @bullet
|
||||
|
||||
@cindex hand-formatted lists
|
||||
@cindex lists, hand-formatted
|
||||
@item
|
||||
Hand-formatted lists with @samp{-}, @samp{*} or @samp{+} as
|
||||
bullet, or with @samp{1.} or @samp{2)} as enumerator will be recognized and
|
||||
transformed into HTML lists. See @xref{Plain Lists}.
|
||||
|
||||
@cindex underlined text
|
||||
@cindex bold text
|
||||
@cindex italic text
|
||||
@item
|
||||
You can make words @b{*bold*}, @i{/italic/}, and _underlined_
|
||||
|
||||
@cindex @TeX{} interpretation
|
||||
@item
|
||||
Simple @TeX{}-like math constructs are interpreted:
|
||||
|
||||
@cindex completion, of @TeX{} symbols
|
||||
@itemize @minus
|
||||
@item
|
||||
@samp{10^22} and @samp{J_n} are super- and subscripts. You can quote
|
||||
@samp{^} and @samp{_} with a backslash: @samp{\_} and @samp{\^}
|
||||
@item
|
||||
@samp{\alpha} indicates a Greek letter, @samp{\to} an arrow. You can
|
||||
use completion for these macros, just type @samp{\} and maybe a few
|
||||
letters, and press @kbd{M-@key{TAB}} to see possible completions.
|
||||
@end itemize
|
||||
|
||||
@cindex tables, export to HTML
|
||||
@item
|
||||
Tables are transformed into HTML tables. Data fields before the first
|
||||
horizontal separator line will be formatted as table header fields.
|
||||
|
||||
@cindex fixed width
|
||||
@item
|
||||
If a headline starts with the word @samp{QUOTE}, the text below the
|
||||
headline will be typeset as fixed-width, to allow quoting of computer
|
||||
codes etc. Lines starting with @samp{:} are also typeset in
|
||||
fixed-width font.
|
||||
|
||||
@cindex HTML tags
|
||||
@item
|
||||
If you want to include HTML tags which should be interpreted as such,
|
||||
mark them with a @samp{@@} like in @samp{@@<b>bold text@@</b>}.
|
||||
Plain @samp{<} and @samp{>} are always transformed to @samp{<} and
|
||||
@samp{>} in HTML export.
|
||||
@end itemize
|
||||
|
||||
If these conversions conflict with your habits of typing ASCII text,
|
||||
they can all be turned off with corresponding variables.
|
||||
|
||||
@node Export options, Comment lines, HTML formatting, HTML export
|
||||
@subsection Export options
|
||||
@cindex options, for export
|
||||
|
||||
@cindex completion, of option keywords
|
||||
The exporter recognizes special lines in the buffer which provide
|
||||
additional information. These lines may be put anywhere in the file.
|
||||
The whole set of lines can be inserted into the buffer with @kbd{C-c
|
||||
C-x t}. For individual lines, a good way to make sure the keyword is
|
||||
correct is to type @samp{#+} and then use @kbd{M-@key{TAB}} completion
|
||||
(@pxref{Completion}).
|
||||
|
||||
@example
|
||||
#+TITLE: the title to be shown (default is the buffer name)
|
||||
#+AUTHOR: the author (default taken from @code{user-full-name})
|
||||
#+EMAIL: his/her email address (default from @code{user-mail-address})
|
||||
#+LANGUAGE: language for HTML, e.g. @samp{en} (@code{org-export-default-language})
|
||||
#+TEXT: Some descriptive text to be inserted at the beginning.
|
||||
#+TEXT: Several lines may be given.
|
||||
#+OPTIONS: H:2 num:t toc:t \n:nil @:t ::t |:t ^:t *:nil TeX:t
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
The OPTIONS line is a compact form to specify export settings. Here
|
||||
you can:
|
||||
@cindex headline levels
|
||||
@cindex section-numbers
|
||||
@cindex table of contents
|
||||
@cindex linebreak preservation
|
||||
@cindex quoted html tags
|
||||
@cindex fixed-width sections
|
||||
@cindex tables
|
||||
@cindex @TeX{}-like syntax for sub- and superscripts
|
||||
@cindex emphasized text
|
||||
@cindex @TeX{} macros
|
||||
@example
|
||||
H: @r{set the number of headline levels for export}
|
||||
num: @r{turn on/off section-numbers}
|
||||
toc: @r{turn on/off table of contents}
|
||||
\n: @r{turn on/off linebreak-preservation}
|
||||
@@: @r{turn on/off quoted html tags}
|
||||
:: @r{turn on/off fixed-width sections}
|
||||
|: @r{turn on/off tables}
|
||||
^: @r{turn on/off @TeX{}-like syntax for sub- and superscripts.}
|
||||
*: @r{turn on/off emphasized text (bold, italic, underlined)}
|
||||
TeX: @r{turn on/off @TeX{} macros}
|
||||
@end example
|
||||
|
||||
You can also give style information for the exported file. The
|
||||
default specification can be configured through the option
|
||||
|
|
@ -3100,28 +2999,25 @@ end of the outline tree. For example:
|
|||
@end example
|
||||
|
||||
Remember to execute @kbd{M-x normal-mode} after changing this to make
|
||||
the new style visible to Emacs. This command reastarts org-mode for the
|
||||
current buffer and forces Emacs to re-evaluate the loval variables
|
||||
the new style visible to Emacs. This command restarts org-mode for the
|
||||
current buffer and forces Emacs to re-evaluate the local variables
|
||||
section in the buffer.
|
||||
|
||||
@node Comment lines, , Export options, HTML export
|
||||
@subsection Comment lines
|
||||
@cindex comment lines
|
||||
@cindex exporting, not
|
||||
@node XML export, iCalendar export, HTML export, Exporting
|
||||
@section XML export
|
||||
@cindex XML export
|
||||
|
||||
Lines starting with @samp{#} in column zero are treated as comments
|
||||
and will never be exported. Also entire subtrees starting with the
|
||||
word @samp{COMMENT} will never be exported. Finally, any text before
|
||||
the first headline will not be exported either. This applies also for
|
||||
ASCII export.
|
||||
Org-mode contains an XML exporter that produces XOXO-style XML.
|
||||
Currently, this exporter only handles the general outline structure and
|
||||
does not interpret any additional Org-mode features.
|
||||
|
||||
@table @kbd
|
||||
@kindex C-c ;
|
||||
@item C-c ;
|
||||
Toggle the COMMENT keyword at the beginning of an entry.
|
||||
@kindex C-c C-x C-x
|
||||
@item C-c C-x C-x
|
||||
Export as XML file @file{myfile.xml}.
|
||||
@end table
|
||||
|
||||
@node iCalendar export, , HTML export, Exporting
|
||||
@node iCalendar export, Text interpretation, XML export, Exporting
|
||||
@section iCalendar export
|
||||
@cindex iCalendar export
|
||||
|
||||
|
|
@ -3170,13 +3066,164 @@ to make iCal re-read the calendar files each time a new version of
|
|||
"osascript -e 'tell application \"iCal\" to reload calendars'")))
|
||||
@end lisp
|
||||
|
||||
@node Text interpretation, , iCalendar export, Exporting
|
||||
@section Text interpretation by the exporter
|
||||
|
||||
The exporter backends interpret additional structure in the Org-mode file
|
||||
in order to produce better output.
|
||||
|
||||
@menu
|
||||
* Comment lines:: Some lines will not be exported
|
||||
* Enhancing text:: Subscripts, symbols and more
|
||||
* Export options:: How to influence the export settings
|
||||
@end menu
|
||||
|
||||
@node Comment lines, Enhancing text, Text interpretation, Text interpretation
|
||||
@subsection Comment lines
|
||||
@cindex comment lines
|
||||
@cindex exporting, not
|
||||
|
||||
Lines starting with @samp{#} in column zero are treated as comments
|
||||
and will never be exported. Also entire subtrees starting with the
|
||||
word @samp{COMMENT} will never be exported. Finally, any text before
|
||||
the first headline will not be exported either.
|
||||
|
||||
@table @kbd
|
||||
@kindex C-c ;
|
||||
@item C-c ;
|
||||
Toggle the COMMENT keyword at the beginning of an entry.
|
||||
@end table
|
||||
|
||||
|
||||
|
||||
@node Enhancing text, Export options, Comment lines, Text interpretation
|
||||
@subsection Enhancing text for export
|
||||
@cindex enhancing text
|
||||
@cindex richer text
|
||||
|
||||
Some of the export backends of Org-mode allow for sophisticated text
|
||||
formatting, this is true in particular for the HTML backend. Org-mode
|
||||
has a number of typing conventions that allow to produce a richly
|
||||
formatted output.
|
||||
|
||||
|
||||
@itemize @bullet
|
||||
|
||||
@cindex hand-formatted lists
|
||||
@cindex lists, hand-formatted
|
||||
@item
|
||||
Plain lists @samp{-}, @samp{*} or @samp{+} as bullet, or with @samp{1.}
|
||||
or @samp{2)} as enumerator will be recognized and transformed if the
|
||||
backend supports lists. See @xref{Plain Lists}.
|
||||
|
||||
@cindex underlined text
|
||||
@cindex bold text
|
||||
@cindex italic text
|
||||
@item
|
||||
You can make words @b{*bold*}, @i{/italic/}, and _underlined_
|
||||
|
||||
@cindex @TeX{} interpretation
|
||||
@item
|
||||
Simple @TeX{}-like math constructs are interpreted:
|
||||
|
||||
@cindex completion, of @TeX{} symbols
|
||||
@itemize @minus
|
||||
@item
|
||||
@samp{10^22} and @samp{J_n} are super- and subscripts. You can quote
|
||||
@samp{^} and @samp{_} with a backslash: @samp{\_} and @samp{\^}
|
||||
@item
|
||||
@samp{\alpha} indicates a Greek letter, @samp{\to} an arrow. You can
|
||||
use completion for these macros, just type @samp{\} and maybe a few
|
||||
letters, and press @kbd{M-@key{TAB}} to see possible completions.
|
||||
@end itemize
|
||||
|
||||
@cindex tables, export
|
||||
@item
|
||||
Tables are transformed into native tables under the exporter, if the
|
||||
export backend supports this. Data fields before the first horizontal
|
||||
separator line will be formatted as table header fields.
|
||||
|
||||
@cindex fixed width
|
||||
@item
|
||||
If a headline starts with the word @samp{QUOTE}, the text below the
|
||||
headline will be typeset as fixed-width, to allow quoting of computer
|
||||
codes etc. Lines starting with @samp{:} are also typeset in
|
||||
fixed-width font.
|
||||
@table @kbd
|
||||
@kindex C-c :
|
||||
@item C-c :
|
||||
Toggle fixed-width for entry (QUOTE) or region, see below.
|
||||
@end table
|
||||
@end itemize
|
||||
|
||||
If these conversions conflict with your habits of typing ASCII text,
|
||||
they can all be turned off with corresponding variables (see the
|
||||
customization group @code{org-export-general}, and the following section
|
||||
which explains how to set export options with special lines in a
|
||||
buffer.
|
||||
|
||||
@node Export options, , Enhancing text, Text interpretation
|
||||
@subsection Export options
|
||||
@cindex options, for export
|
||||
|
||||
@cindex completion, of option keywords
|
||||
The exporter recognizes special lines in the buffer which provide
|
||||
additional information. These lines may be put anywhere in the file.
|
||||
The whole set of lines can be inserted into the buffer with @kbd{C-c
|
||||
C-x t}. For individual lines, a good way to make sure the keyword is
|
||||
correct is to type @samp{#+} and then use @kbd{M-@key{TAB}} completion
|
||||
(@pxref{Completion}).
|
||||
|
||||
@table @kbd
|
||||
@kindex C-c C-x t
|
||||
@item C-c C-x t
|
||||
Insert template with export options, see example below.
|
||||
@end table
|
||||
|
||||
@example
|
||||
#+TITLE: the title to be shown (default is the buffer name)
|
||||
#+AUTHOR: the author (default taken from @code{user-full-name})
|
||||
#+EMAIL: his/her email address (default from @code{user-mail-address})
|
||||
#+LANGUAGE: language for HTML, e.g. @samp{en} (@code{org-export-default-language})
|
||||
#+TEXT: Some descriptive text to be inserted at the beginning.
|
||||
#+TEXT: Several lines may be given.
|
||||
#+OPTIONS: H:2 num:t toc:t \n:nil @:t ::t |:t ^:t *:nil TeX:t
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
The OPTIONS line is a compact form to specify export settings. Here
|
||||
you can:
|
||||
@cindex headline levels
|
||||
@cindex section-numbers
|
||||
@cindex table of contents
|
||||
@cindex linebreak preservation
|
||||
@cindex quoted html tags
|
||||
@cindex fixed-width sections
|
||||
@cindex tables
|
||||
@cindex @TeX{}-like syntax for sub- and superscripts
|
||||
@cindex emphasized text
|
||||
@cindex @TeX{} macros
|
||||
@example
|
||||
H: @r{set the number of headline levels for export}
|
||||
num: @r{turn on/off section-numbers}
|
||||
toc: @r{turn on/off table of contents}
|
||||
\n: @r{turn on/off linebreak-preservation}
|
||||
@@: @r{turn on/off quoted html tags}
|
||||
:: @r{turn on/off fixed-width sections}
|
||||
|: @r{turn on/off tables}
|
||||
^: @r{turn on/off @TeX{}-like syntax for sub- and superscripts.}
|
||||
*: @r{turn on/off emphasized text (bold, italic, underlined)}
|
||||
TeX: @r{turn on/off @TeX{} macros}
|
||||
@end example
|
||||
|
||||
@node Miscellaneous, Index, Exporting, Top
|
||||
@chapter Miscellaneous
|
||||
|
||||
@menu
|
||||
* Completion:: M-TAB knows what you need
|
||||
* Customization:: Adapting Org-mode to your taste
|
||||
* Updating settings:: How to tell Org-mode that settings have changed
|
||||
* Summary of in-buffer settings:: Using special lines to set options
|
||||
* The very busy C-c C-c key:: When in doubt, press C-c C-c
|
||||
* Clean view:: Getting rid of leading stars in the outline
|
||||
* TTY keys:: Using Org-mode on a tty
|
||||
* FAQ:: Frequently asked questions
|
||||
|
|
@ -3229,7 +3276,7 @@ Elsewhere, complete dictionary words using ispell.
|
|||
@end table
|
||||
|
||||
|
||||
@node Customization, Updating settings, Completion, Miscellaneous
|
||||
@node Customization, Summary of in-buffer settings, Completion, Miscellaneous
|
||||
@section Customization
|
||||
@cindex customization
|
||||
@cindex options, for customization
|
||||
|
|
@ -3239,43 +3286,112 @@ There are more than 100 variables that can be used to customize
|
|||
Org-mode. For the sake of compactness of the manual, we are not
|
||||
describing the variables here. A structured overview of customization
|
||||
variables is available with @kbd{M-x org-customize}. Or select
|
||||
@code{Browse Org Group} from the @code{Org->Customization} menu.
|
||||
@code{Browse Org Group} from the @code{Org->Customization} menu. Many
|
||||
settings can also be activated on a per-file basis, by putting special
|
||||
lines into the buffer (@pxref{Summary of in-buffer settings}).
|
||||
|
||||
@node Updating settings, Clean view, Customization, Miscellaneous
|
||||
@section Updating settings after changes
|
||||
@cindex updating, after setting changes
|
||||
@node Summary of in-buffer settings, The very busy C-c C-c key, Customization, Miscellaneous
|
||||
@section Summary of in-buffer settings
|
||||
@cindex in-buffer settings
|
||||
@cindex special keywords
|
||||
|
||||
Org-mode uses special lines in the buffer to define settings on a
|
||||
per-file basis. These lines start with a @samp{#+} followed by a
|
||||
keyword, a colon, and then individual words defining a setting. Several
|
||||
settings words con be in the same line, but you can also have multiple
|
||||
lines for the keyword. While these settings are described throughout
|
||||
the manual, here is a summary. After changing any of those lines in the
|
||||
buffer, press @kbd{C-c C-c} with the cursor still in the line to
|
||||
activate the changes immediately. Otherwise they become effective only
|
||||
when the file is visited again in a new Emacs session.
|
||||
|
||||
@table @kbd
|
||||
@item #+STARTUP:
|
||||
This line sets options to be used at startup of org-mode, when an
|
||||
Org-mode file is being visited. The first set of options deals with the
|
||||
initial visibility of the outline tree. The corresponding variable for
|
||||
global default settings is @code{org-startup-folded}, with a default
|
||||
value @code{t}, which means @code{overview}.
|
||||
@example
|
||||
overview @r{top-level headlines only}
|
||||
content @r{all headlines}
|
||||
showall @r{no folding at all, show everything}
|
||||
@end example
|
||||
Then there are options for aligning tables upon visiting a file. This
|
||||
is useful in files containing narrowed table columns. The corresponding
|
||||
variable is @code{org-startup-align-all-tables}, with a default value
|
||||
@code{nil}.
|
||||
@example
|
||||
align @r{align all tables}
|
||||
noalign @r{don't align table on startup}
|
||||
@end example
|
||||
Here are the options for hiding leading stars in outline headings. The
|
||||
corresponding variables are @code{org-hide-leading-stars} and
|
||||
@code{org-odd-levels-only}, both with a default setting @code{nil}
|
||||
(meaning @code{showstars} and @code{oddeven}).
|
||||
@example
|
||||
hidestars @r{make all but one of the stars starting a headline invisible.}
|
||||
showstars @r{show all stars starting a headline}
|
||||
odd @r{allow only odd outline levels (1,3,...)}
|
||||
oddeven @r{allow all outline levels}
|
||||
@end example
|
||||
@item #+SEQ_TODO: #+TYP_TODO:
|
||||
These lines that the TODO keywords and their interpretation in the
|
||||
current file. The corresponding variables are @code{org-todo-keywords}
|
||||
and @code{org-todo-interpretation}.
|
||||
@item #+CATEGORY:
|
||||
This line sets the category for the agenda file. The category applies
|
||||
for all subsequent lines until the next @samp{#+CATEGORY} line, or the
|
||||
end of the file.
|
||||
@item #+TBLFM:
|
||||
This line contains the formulas for the table directly above the line.
|
||||
@item #+TITLE:, #+AUTHOR:, #+EMAIL:, #+LANGUAGE:, #+TEXT:, #+OPTIONS:
|
||||
These line provide setting for exporting files. For more details see
|
||||
@ref{Export options}.
|
||||
@end table
|
||||
|
||||
@node The very busy C-c C-c key, Clean view, Summary of in-buffer settings, Miscellaneous
|
||||
@section The very busy C-c C-c key
|
||||
@kindex C-c C-c
|
||||
|
||||
Org-mode uses special lines in the buffer to set file-local values for a
|
||||
number of user options. When such settings are changed, you need to
|
||||
inform Org-mode that something has be modified and that it should
|
||||
recheck the buffer for setting. This is done with the command @kbd{C-c
|
||||
C-c} in the following situations:
|
||||
The key @kbd{C-c C-c} has many purposes in org-mode, which are all
|
||||
mentioned scattered throughout this manual. One specific function of
|
||||
this key is to add @emph{tags} to a headline (@pxref{Tags}). In many
|
||||
other circumstances it means something like @emph{Hey Org-mode, look
|
||||
here and update according to what you see here}. Here is a summary what
|
||||
this means in different contexts.
|
||||
|
||||
@itemize @bullet
|
||||
@itemize @minus
|
||||
@c @item
|
||||
@c If the cursor is in a headline, prompt for tags and insert them
|
||||
@c into the current line, aligned to `org-tags-column'. When called
|
||||
@c with prefix arg, realign all tags in the current buffer.
|
||||
@item
|
||||
After changing any of the special buffer lines starting with @samp{#+},
|
||||
for example @samp{#+STARTUP}, @samp{#+CATEGORY}. Org-mode will then
|
||||
read these settings and activate them (see @ref{Visibility cycling},
|
||||
@ref{Narrow columns}, @ref{Clean view}, @ref{Per file keywords},
|
||||
@ref{Categories})
|
||||
If the cursor is in one of the special #+KEYWORD lines, this
|
||||
triggers scanning the buffer for these lines and updating the
|
||||
information.
|
||||
@item
|
||||
After editing by hand a @samp{#+TBLFM} line containing formulas for a
|
||||
table. When pressing @kbd{C-c C-c} in that line, all formulas are
|
||||
re-applied to the entire table (@pxref{Editing/debugging formulas}).
|
||||
If the cursor is inside a table, realign the table. This command
|
||||
works even if the automatic table editor has been turned off.
|
||||
@item
|
||||
In a table, @kbd{C-c C-c} does force a re-align, even if the table
|
||||
editor is turned off (@pxref{Built-in table editor})
|
||||
If the cursor is on a #+TBLFM line, re-apply the formulas to
|
||||
the entire table.
|
||||
@item
|
||||
In an ordered plain list, @kbd{C-c C-c} forces a renumbering of the list
|
||||
(@pxref{Plain Lists}).
|
||||
If the cursor is inside a table created by the @file{table.el} package,
|
||||
activate that table.
|
||||
@item
|
||||
After adding a new radio target @samp{<<<New target>>>}, @kbd{C-c C-c}
|
||||
must be used with the cursor on that target to activate it throughout
|
||||
the buffer.
|
||||
If the current buffer is a remember buffer, close note and file it.
|
||||
with a prefix argument, file it without further interaction to the default
|
||||
location.
|
||||
@item
|
||||
If the cursor is on a <<<target>>>, update radio targets and corresponding
|
||||
links in this buffer.
|
||||
@item
|
||||
If the cursor is on a numbered item in a plain list, renumber the
|
||||
ordered list.
|
||||
@end itemize
|
||||
|
||||
@node Clean view, TTY keys, Updating settings, Miscellaneous
|
||||
@node Clean view, TTY keys, The very busy C-c C-c key, Miscellaneous
|
||||
@section A cleaner outline view
|
||||
@cindex hiding leading stars
|
||||
@cindex clean outline view
|
||||
|
|
@ -3371,12 +3487,10 @@ activate changes immediately).
|
|||
#+STARTUP: oddeven
|
||||
@end example
|
||||
|
||||
You can convert an Org-mode file from single-star-per-level to
|
||||
the double-star-per-level convention with @kbd{M-x org-convert-to-odd-levels
|
||||
RET} in that file. There is no command for the back conversion because
|
||||
such a command might merge levels and in this way destroy the
|
||||
structure of the tree.
|
||||
@c FIXME: Maybe we should have such a command...
|
||||
You can convert an Org-mode file from single-star-per-level to the
|
||||
double-star-per-level convention with @kbd{M-x org-convert-to-odd-levels
|
||||
RET} in that file. The reverse operation is @kbd{M-x
|
||||
org-convert-to-oddeven-levels}.
|
||||
|
||||
@node TTY keys, FAQ, Clean view, Miscellaneous
|
||||
@section Using org-mode on a tty
|
||||
|
|
@ -3448,8 +3562,8 @@ attached to the old style using angular brackets and no hiding of the
|
|||
link text. Please give them back to me, don't tell me it is not
|
||||
possible!}@*
|
||||
@c
|
||||
Would I let you down like that? If you must (even if I don't understand
|
||||
why), you can do this
|
||||
Would I let you down like that? If you must, you can do this
|
||||
|
||||
@lisp
|
||||
(setq org-link-style 'plain
|
||||
org-link-format "<%s>")
|
||||
|
|
@ -3574,12 +3688,14 @@ You may also select specific files with
|
|||
&%%(org-diary) ~/path/to/another/org-file.org
|
||||
@end example
|
||||
|
||||
If you now launch the calendar and press @kbd{d} to display a diary,
|
||||
the headlines of entries containing a timestamp, date range, schedule,
|
||||
or deadline referring to the selected date will be listed. Just like
|
||||
in Org-mode's agenda view, the diary for @emph{today} contains
|
||||
additional entries for overdue deadlines and scheduled items. See
|
||||
also the documentation of the @command{org-diary} function.
|
||||
If you now launch the calendar and press @kbd{d} to display a diary, the
|
||||
headlines of entries containing a timestamp, date range, schedule, or
|
||||
deadline referring to the selected date will be listed. Just like in
|
||||
Org-mode's agenda view, the diary for @emph{today} contains additional
|
||||
entries for overdue deadlines and scheduled items. See also the
|
||||
documentation of the @command{org-diary} function. Under XEmacs, it is
|
||||
not possible to jump back from the diary to the org, this works only in
|
||||
the agenda buffer.
|
||||
|
||||
@end enumerate
|
||||
|
||||
|
|
@ -3594,9 +3710,9 @@ Org-mode can cooperate with the following packages:
|
|||
@item @file{org-mouse.el} by Piotr Zielinski
|
||||
This package implements extended mouse functionality for Org-mode. It
|
||||
allows you to cycle visibility and to edit the document structure with
|
||||
the mouse. It also provides a context-sensitive menu that changes
|
||||
depending on the context of a mouse-click. Use a search engine to find
|
||||
this package on the web.
|
||||
the mouse. Best of all, it provides a context-sensitive menu on
|
||||
@key{mouse-3} that changes depending on the context of a mouse-click.
|
||||
Use a search engine to find this package on the web.
|
||||
@cindex @file{table.el}
|
||||
@item @file{table.el} by Takaaki Ota
|
||||
Org mode cooperates with table.el, see @ref{table.el}. @file{table.el}
|
||||
|
|
@ -3687,12 +3803,6 @@ Recalculating a table line applies the formulas from left to right.
|
|||
If a formula uses @emph{calculated} fields further down the row,
|
||||
multiple recalculation may be needed to get all fields consistent.
|
||||
@item
|
||||
Under XEmacs, if Org-mode entries are included into the diary, it is
|
||||
not possible to jump back from the diary to the org file. Apparently,
|
||||
the text properties are lost when the fancy-diary-display is used.
|
||||
However, from Org-mode's timeline and agenda buffers (created with
|
||||
@kbd{C-c C-r} and @kbd{C-c a}), things do work correctly.
|
||||
@item
|
||||
You can only make a single word boldface or italic. To emphasize
|
||||
several words in a row, each must have the emphasize markers, like in
|
||||
@samp{*three* *bold* *words*}.
|
||||
|
|
@ -3725,6 +3835,8 @@ specified time.
|
|||
@item
|
||||
Sacha Chua suggested to copy some linking code from Planner.
|
||||
@item
|
||||
Kees Dullemond inspired the use of narrowed tabled columns.
|
||||
@item
|
||||
Christian Egli converted the documentation into TeXInfo format, patched
|
||||
CSS formatting into the HTML exporter, and inspired the agenda.
|
||||
@item
|
||||
|
|
|
|||
|
|
@ -750,8 +750,10 @@ can add groups for syntactic purposes without interfering with
|
|||
the numbering of the groups that are meant to be referred to.
|
||||
|
||||
@item \@var{d}
|
||||
@cindex back reference, in regexp
|
||||
matches the same text that matched the @var{d}th occurrence of a
|
||||
@samp{\( @dots{} \)} construct.
|
||||
@samp{\( @dots{} \)} construct. This is called a @dfn{back
|
||||
reference}.
|
||||
|
||||
After the end of a @samp{\( @dots{} \)} construct, the matcher remembers
|
||||
the beginning and end of the text matched by that construct. Then,
|
||||
|
|
@ -1002,15 +1004,17 @@ any match for a specified pattern.
|
|||
Replace every match for @var{regexp} with @var{newstring}.
|
||||
@end table
|
||||
|
||||
@cindex back reference, in regexp replacement
|
||||
In @code{replace-regexp}, the @var{newstring} need not be constant:
|
||||
it can refer to all or part of what is matched by the @var{regexp}.
|
||||
@samp{\&} in @var{newstring} stands for the entire match being
|
||||
replaced. @samp{\@var{d}} in @var{newstring}, where @var{d} is a
|
||||
digit, stands for whatever matched the @var{d}th parenthesized
|
||||
grouping in @var{regexp}. @samp{\#} refers to the count of
|
||||
replacements already made in this command, as a decimal number. In
|
||||
the first replacement, @samp{\#} stands for @samp{0}; in the second,
|
||||
for @samp{1}; and so on. For example,
|
||||
grouping in @var{regexp}. (This is called a ``back reference''.)
|
||||
@samp{\#} refers to the count of replacements already made in this
|
||||
command, as a decimal number. In the first replacement, @samp{\#}
|
||||
stands for @samp{0}; in the second, for @samp{1}; and so on. For
|
||||
example,
|
||||
|
||||
@example
|
||||
M-x replace-regexp @key{RET} c[ad]+r @key{RET} \&-safe @key{RET}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
@c In the Tramp CVS, the version number is auto-frobbed from
|
||||
@c configure.ac, so you should edit that file and run
|
||||
@c "autoconf && ./configure" to change the version number.
|
||||
@set trampver 2.0.52
|
||||
@set trampver 2.0.53
|
||||
|
||||
@c Other flags from configuration
|
||||
@set prefix /usr/local
|
||||
|
|
|
|||
191
src/ChangeLog
191
src/ChangeLog
|
|
@ -1,3 +1,194 @@
|
|||
2006-04-18 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* xmenu.c (restore_menu_items, save_menu_items): New fns.
|
||||
(set_frame_menubar): Use save_menu_items. Save updated vector in
|
||||
the frame before unwinding it. Don't use unuse_menu_items. Don't
|
||||
use discard_menu_items.
|
||||
(digest_single_submenu): Abort if an item is not in a pane.
|
||||
(init_menu_items): Put the error check at the top.
|
||||
|
||||
* keymap.c (describe_map): Make "shadowed" warning more verbose.
|
||||
|
||||
* window.c (adjust_window_trailing_edge): Correctly distinguish
|
||||
series vs parallel cases, even when window has no parent.
|
||||
|
||||
* abbrev.c (record_symbol): New function.
|
||||
(Finsert_abbrev_table_description): Sort the abbrevs alphabetically.
|
||||
|
||||
2006-04-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
|
||||
|
||||
* image.c (x_create_bitmap_from_data) [MAC_OS]: Don't check return
|
||||
value of xmalloc.
|
||||
|
||||
* mac.c (mac_coerce_file_name_ptr, mac_coerce_file_name_desc)
|
||||
(create_apple_event_from_event_ref, xrm_get_preference_database)
|
||||
(cfstring_create_normalized): Don't check return value of xmalloc.
|
||||
|
||||
* macselect.c (get_scrap_target_type_list, defer_apple_events)
|
||||
(copy_scrap_flavor_data, mac_handle_service_event): Don't check
|
||||
return value of xmalloc/xrealloc.
|
||||
|
||||
* macterm.c (XCreateGC, x_per_char_metric, xlfdpat_create)
|
||||
(init_font_name_table, init_font_name_table, mac_do_list_fonts)
|
||||
(XLoadQueryFont, mac_store_apple_event): Don't check
|
||||
return value of xmalloc.
|
||||
|
||||
2006-04-17 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
* window.c (coordinates_in_window): On the vertical border,
|
||||
calculate the row number measured from the top of the window, not
|
||||
the top of the frame.
|
||||
(window_loop): Test w->dedicated with !NILP instead of EQ Qt.
|
||||
(window_scroll_pixel_based): Fix off-by-one bug in 2002-12-23 change.
|
||||
|
||||
2006-04-16 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* s/ms-w32.h (SYSTEM_PURESIZE_EXTRA): Reduce to 24000.
|
||||
|
||||
2006-04-16 Romain Francoise <romain@orebokech.com>
|
||||
|
||||
* puresize.h (BASE_PURESIZE): Decrement back to 1200000.
|
||||
|
||||
2006-04-16 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* puresize.h (PURESIZE_RATIO): Reduce to 10/6.
|
||||
|
||||
2006-04-15 Romain Francoise <romain@orebokech.com>
|
||||
|
||||
* puresize.h (BASE_PURESIZE): Increment to 1210000.
|
||||
|
||||
2006-04-13 Micha,Ak(Bl Cadilhac <michael.cadilhac@lrde.org> (tiny change)
|
||||
|
||||
* print.c (Fprin1_to_string): Mention in the `doc' that the
|
||||
behavior is modified by `print-level' and `print-length'.
|
||||
|
||||
2006-04-13 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* coding.c (setup_coding_system): If eol-type is not yet decided
|
||||
and system_eol_type is not LF, set CODING_REQUIRE_ENCODING_MASK.
|
||||
If coding_system is nil, return 0.
|
||||
(code_convert_region1): Even if coding_system is nil, don't skip
|
||||
conversion if system_eol_type is not LF.
|
||||
(code_convert_string1): Likewise.
|
||||
(code_convert_string_norecord): Likewise.
|
||||
|
||||
2006-04-13 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* coding.c (setup_coding_system): Fix previous change.
|
||||
(encode_coding): If eol_type is not yet decided, use
|
||||
system_eol_type.
|
||||
(shrink_encoding_region): If eol_type is not yet decided and
|
||||
system_eol_type is not LF, don't shrink.
|
||||
|
||||
2006-04-13 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
* xdisp.c (note_mouse_highlight): Add help echo for dragging vertical
|
||||
line.
|
||||
|
||||
2006-04-12 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* keyboard.c (read_key_sequence): Explicitly avoid keybuf[-1].
|
||||
|
||||
* process.c (conv_lisp_to_sockaddr): If FAMILY unknown, just return.
|
||||
(Fprocess_send_eof): Abort if fail to open null device.
|
||||
|
||||
2006-04-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
|
||||
|
||||
* fns.c [HAVE_MENUS && MAC_OS]: Include macterm.h.
|
||||
|
||||
* image.c [MAC_OS] (xpm_load_image): Add parentheses around
|
||||
assignment used as truth value. Add explicit braces to avoid
|
||||
ambiguous `else'.
|
||||
[MAC_OS] (gif_load): Remove unused variable `gcpro1'.
|
||||
|
||||
* lisp.h (syms_of_fontset, Fset_fontset_font): Put extern and
|
||||
EXFUN in #ifdef HAVE_WINDOW_SYSTEM.
|
||||
(syms_of_xfns, syms_of_xsmfns, syms_of_xselect, syms_of_xterm):
|
||||
Put externs in #ifdef HAVE_X_WINDOWS.
|
||||
(syms_of_macfns, syms_of_macselect, syms_of_macterm)
|
||||
(syms_of_macmenu, syms_of_mac) [MAC_OS]: Add externs.
|
||||
(init_mac_osx_environment) [MAC_OSX]: Add extern.
|
||||
|
||||
* mac.c (init_process): Remove undef.
|
||||
(select) [MAC_OSX]: Undefine before including sysselect.h.
|
||||
(posix_pathname_to_fsspec, fsspec_to_posix_pathname) [MAC_OSX]:
|
||||
Remove functions and prototypes.
|
||||
(parse_value): Add parentheses around + inside shift.
|
||||
(path_from_vol_dir_name): Make static.
|
||||
(get_temp_dir_name): Remove unused variables `cpb' and `dir_name'.
|
||||
[!MAC_OSX] (get_path_to_system_folder): Likewise.
|
||||
(Fmac_get_file_creator, Fmac_get_file_type): Remove unused
|
||||
variable `cCode'.
|
||||
(Fmac_coerce_ae_data): Remove unused variables `fref' and `fs'.
|
||||
(Fmac_get_preference): Add explicit braces to avoid ambiguous `else'.
|
||||
|
||||
* macfns.c (x_to_mac_color): Remove unused variable `tail'.
|
||||
(x_set_mouse_color): Remove unused variable `dpy'.
|
||||
(Fx_create_frame): Remove unused variable `x_frame_count'.
|
||||
(Fx_server_version): Add explicit braces to avoid ambiguous `else'.
|
||||
(x_sync): Move from macterm.c.
|
||||
(Fx_file_dialog): Remove unused variable `default_filter_index'.
|
||||
|
||||
* macmenu.c (min_menu_id): Make element type explicit.
|
||||
|
||||
* macselect.c (get_flavor_type_from_symbol): Remove unused
|
||||
variable `val'.
|
||||
(get_scrap_private_timestamp, x_get_foreign_selection)
|
||||
(copy_scrap_flavor_data): Add explicit braces to avoid ambiguous `else'.
|
||||
(Fmac_process_deferred_apple_events): Remove unused variables
|
||||
`keyword', `reply', `apple_event', `count', and `err'.
|
||||
|
||||
* macterm.c: Don't include gnu.h.
|
||||
(x_io_error_quitter, x_draw_image_foreground_1): Remove prototypes.
|
||||
(x_sync): Move to macfns.c.
|
||||
[USE_CG_DRAWING] (mac_define_fringe_bitmap): Remove unused
|
||||
variable `mask_bits'.
|
||||
(mac_compute_glyph_string_overhangs): Avoid ambiguous `else'.
|
||||
(x_draw_image_glyph_string): Remove unused variable `pixmap'.
|
||||
(x_mac_to_emacs_modifiers): Remove function.
|
||||
(XTset_vertical_scroll_bar, mac_handle_visibility_change)
|
||||
(x_make_frame_visible, xlfdpat_create, mac_handle_command_event):
|
||||
Add explicit braces to avoid ambiguous `else'.
|
||||
(x_make_frame_visible): Remove unused variables `type',
|
||||
`original_top', and `original_left'.
|
||||
(mac_do_list_fonts, XTread_socket): Add parentheses around && within ||.
|
||||
(x_load_font): Remove unused variables `full_name', and `value'.
|
||||
(do_get_menus, do_init_managers, do_check_ram_size) [!MAC_OS8]:
|
||||
Remove functions.
|
||||
(do_zoom_window): Reorganize variables with respect to conditionals.
|
||||
(init_command_handler): Remove unused variable `err'.
|
||||
[MAC_OSX] (mac_check_bundle): Remove unused variable `child'.
|
||||
|
||||
* macterm.h (x_set_mouse_position, x_set_mouse_pixel_position)
|
||||
(x_make_frame_invisible, x_iconify_frame, x_free_frame_resources)
|
||||
(x_destroy_window, x_wm_set_size_hint, x_delete_display, XFreeGC)
|
||||
(do_menu_choice, have_menus_p, x_real_positions)
|
||||
(x_set_menu_bar_lines, x_pixel_width, x_pixel_height, x_char_width)
|
||||
(x_char_height, x_sync, x_set_tool_bar_lines, x_activate_menubar)
|
||||
(free_frame_menubar): Add externs.
|
||||
|
||||
* unexmacosx.c: Include config.h before using HAVE_MALLOC_MALLOC_H.
|
||||
(malloc, realloc, free): Add undefs.
|
||||
(read_load_commands): Remove unused variable `n' and `j'.
|
||||
(copy_data_segment): Remove unused variable `r'.
|
||||
|
||||
* xdisp.c (get_glyph_string_clip_rects): Add parentheses around &&
|
||||
within ||. Add explicit braces to avoid ambiguous `else'.
|
||||
(dump_glyph_row): Remove label for `inverse_p' from legend.
|
||||
|
||||
* xfaces.c (Finternal_merge_in_global_face, try_font_list): Add
|
||||
explicit braces to avoid ambiguous `else'.
|
||||
|
||||
2006-04-11 Micha,Ak(Bl Cadilhac <michael.cadilhac@lrde.org> (tiny change)
|
||||
|
||||
* dispnew.c (init_display): Don't init X display if the user asked
|
||||
for a non-X display.
|
||||
|
||||
2006-04-12 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* coding.c (setup_coding_system): Use system_eol_type for default
|
||||
coding->eol_type.
|
||||
|
||||
2006-04-11 Dan Nicolaescu <dann@ics.uci.edu>
|
||||
|
||||
* lisp.h (wrong_type_argument): Mark as NO_RETURN.
|
||||
|
|
|
|||
26
src/abbrev.c
26
src/abbrev.c
|
|
@ -531,6 +531,13 @@ describe_abbrev (sym, stream)
|
|||
Fterpri (stream);
|
||||
}
|
||||
|
||||
static void
|
||||
record_symbol (sym, list)
|
||||
Lisp_Object sym, list;
|
||||
{
|
||||
XSETCDR (list, Fcons (sym, XCDR (list)));
|
||||
}
|
||||
|
||||
DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,
|
||||
Sinsert_abbrev_table_description, 1, 2, 0,
|
||||
doc: /* Insert before point a full description of abbrev table named NAME.
|
||||
|
|
@ -546,6 +553,7 @@ READABLE is non-nil, they are listed. */)
|
|||
Lisp_Object name, readable;
|
||||
{
|
||||
Lisp_Object table;
|
||||
Lisp_Object symbols;
|
||||
Lisp_Object stream;
|
||||
|
||||
CHECK_SYMBOL (name);
|
||||
|
|
@ -554,12 +562,22 @@ READABLE is non-nil, they are listed. */)
|
|||
|
||||
XSETBUFFER (stream, current_buffer);
|
||||
|
||||
symbols = Fcons (Qnil, Qnil);
|
||||
map_obarray (table, record_symbol, symbols);
|
||||
symbols = XCDR (symbols);
|
||||
symbols = Fsort (symbols, Qstring_lessp);
|
||||
|
||||
if (!NILP (readable))
|
||||
{
|
||||
insert_string ("(");
|
||||
Fprin1 (name, stream);
|
||||
insert_string (")\n\n");
|
||||
map_obarray (table, describe_abbrev, stream);
|
||||
while (! NILP (symbols))
|
||||
{
|
||||
describe_abbrev (XCAR (symbols), stream);
|
||||
symbols = XCDR (symbols);
|
||||
}
|
||||
|
||||
insert_string ("\n\n");
|
||||
}
|
||||
else
|
||||
|
|
@ -567,7 +585,11 @@ READABLE is non-nil, they are listed. */)
|
|||
insert_string ("(define-abbrev-table '");
|
||||
Fprin1 (name, stream);
|
||||
insert_string (" '(\n");
|
||||
map_obarray (table, write_abbrev, stream);
|
||||
while (! NILP (symbols))
|
||||
{
|
||||
write_abbrev (XCAR (symbols), stream);
|
||||
symbols = XCDR (symbols);
|
||||
}
|
||||
insert_string (" ))\n\n");
|
||||
}
|
||||
|
||||
|
|
|
|||
19
src/coding.c
19
src/coding.c
|
|
@ -3603,6 +3603,8 @@ setup_coding_system (coding_system, coding)
|
|||
{
|
||||
coding->eol_type = CODING_EOL_UNDECIDED;
|
||||
coding->common_flags = CODING_REQUIRE_DETECTION_MASK;
|
||||
if (system_eol_type != CODING_EOL_LF)
|
||||
coding->common_flags |= CODING_REQUIRE_ENCODING_MASK;
|
||||
}
|
||||
else if (XFASTINT (eol_type) == 1)
|
||||
{
|
||||
|
|
@ -3918,9 +3920,12 @@ setup_coding_system (coding_system, coding)
|
|||
coding->type = coding_type_no_conversion;
|
||||
coding->category_idx = CODING_CATEGORY_IDX_BINARY;
|
||||
coding->common_flags = 0;
|
||||
coding->eol_type = CODING_EOL_LF;
|
||||
coding->eol_type = NILP (coding_system) ? system_eol_type : CODING_EOL_LF;
|
||||
if (coding->eol_type != CODING_EOL_LF)
|
||||
coding->common_flags
|
||||
|= CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK;
|
||||
coding->pre_write_conversion = coding->post_read_conversion = Qnil;
|
||||
return -1;
|
||||
return NILP (coding_system) ? 0 : -1;
|
||||
}
|
||||
|
||||
/* Free memory blocks allocated for storing composition information. */
|
||||
|
|
@ -4994,6 +4999,8 @@ encode_coding (coding, source, destination, src_bytes, dst_bytes)
|
|||
coding->consumed = coding->consumed_char = 0;
|
||||
coding->errors = 0;
|
||||
coding->result = CODING_FINISH_NORMAL;
|
||||
if (coding->eol_type == CODING_EOL_UNDECIDED)
|
||||
coding->eol_type = system_eol_type;
|
||||
|
||||
switch (coding->type)
|
||||
{
|
||||
|
|
@ -5250,6 +5257,8 @@ shrink_encoding_region (beg, end, coding, str)
|
|||
if (coding->type == coding_type_ccl
|
||||
|| coding->eol_type == CODING_EOL_CRLF
|
||||
|| coding->eol_type == CODING_EOL_CR
|
||||
|| (coding->eol_type == CODING_EOL_UNDECIDED
|
||||
&& system_eol_type != CODING_EOL_LF)
|
||||
|| (coding->cmp_data && coding->cmp_data->used > 0))
|
||||
{
|
||||
/* We can't skip any data. */
|
||||
|
|
@ -7105,7 +7114,7 @@ code_convert_region1 (start, end, coding_system, encodep)
|
|||
from = XFASTINT (start);
|
||||
to = XFASTINT (end);
|
||||
|
||||
if (NILP (coding_system))
|
||||
if (NILP (coding_system) && system_eol_type == CODING_EOL_LF)
|
||||
return make_number (to - from);
|
||||
|
||||
if (setup_coding_system (Fcheck_coding_system (coding_system), &coding) < 0)
|
||||
|
|
@ -7160,7 +7169,7 @@ code_convert_string1 (string, coding_system, nocopy, encodep)
|
|||
CHECK_STRING (string);
|
||||
CHECK_SYMBOL (coding_system);
|
||||
|
||||
if (NILP (coding_system))
|
||||
if (NILP (coding_system) && system_eol_type == CODING_EOL_LF)
|
||||
return (NILP (nocopy) ? Fcopy_sequence (string) : string);
|
||||
|
||||
if (setup_coding_system (Fcheck_coding_system (coding_system), &coding) < 0)
|
||||
|
|
@ -7219,7 +7228,7 @@ code_convert_string_norecord (string, coding_system, encodep)
|
|||
CHECK_STRING (string);
|
||||
CHECK_SYMBOL (coding_system);
|
||||
|
||||
if (NILP (coding_system))
|
||||
if (NILP (coding_system) && system_eol_type == CODING_EOL_LF)
|
||||
return string;
|
||||
|
||||
if (setup_coding_system (Fcheck_coding_system (coding_system), &coding) < 0)
|
||||
|
|
|
|||
|
|
@ -6695,7 +6695,7 @@ init_display ()
|
|||
try to use X, and die with an error message if that doesn't work. */
|
||||
|
||||
#ifdef HAVE_X_WINDOWS
|
||||
if (! display_arg)
|
||||
if (! inhibit_window_system && ! display_arg)
|
||||
{
|
||||
char *display;
|
||||
#ifdef VMS
|
||||
|
|
|
|||
|
|
@ -204,6 +204,7 @@ init_eval_once ()
|
|||
specpdl_size = 50;
|
||||
specpdl = (struct specbinding *) xmalloc (specpdl_size * sizeof (struct specbinding));
|
||||
specpdl_ptr = specpdl;
|
||||
/* Don't forget to update docs (lispref node "Local Variables"). */
|
||||
max_specpdl_size = 1000;
|
||||
max_lisp_eval_depth = 300;
|
||||
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue